diff --git a/doc/兰州铜箔LMS系统接口.postman_collection.json b/doc/兰州铜箔LMS系统接口.postman_collection.json new file mode 100644 index 000000000..e38700bc8 --- /dev/null +++ b/doc/兰州铜箔LMS系统接口.postman_collection.json @@ -0,0 +1,154 @@ +{ + "info": { + "_postman_id": "3fab44b6-d4fb-4afd-81ad-31f1ec49c8c4", + "name": "兰州铜箔LMS系统接口", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" + }, + "item": [ + { + "name": "手持请求LMS", + "description": "", + "item": [ + { + "name": "登录", + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": "http://localhost:8010/api/param/getStageCodeByCode", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "8010", + "path": [ + "api", + "param", + "getStageCodeByCode" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "LMS请求MES", + "description": "", + "item": [ + { + "name": "http://localhost:8010/api/param/getStageCodeByCode", + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": "http://localhost:8010/api/param/getStageCodeByCode", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "8010", + "path": [ + "api", + "param", + "getStageCodeByCode" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "MES请求LMS", + "description": "", + "item": [], + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "Bearer eyJhbGciOiJIUzUxMiJ9.eyJqdGkiOiI2ZjI2OGMxZjAyOTE0MTNiOWU3YThmMTM2ZTc2MWJkYSIsImF1dGgiOiJhZG1pbiIsInN1YiI6ImFkbWluIn0.lKxY3Wc_efzmBXXAS_dDC_Sfh32kZInxYmaxBzg83e5gviSJPPKolNt4IlCCaGM8HOc_yKByiIu8YFlgQif01Q", + "type": "string" + } + ] + } + }, + { + "name": "LMS请求CRM", + "description": "", + "item": [] + }, + { + "name": "CRM请求MES", + "description": "", + "item": [] + }, + { + "name": "ACS请求LMS", + "description": "", + "item": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "2f9e1cf4-d33b-4c2c-85fb-546f276da5b7", + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "id": "d7ddf3ac-5ecf-4a01-ae1c-c491bd7b645b", + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "name": "LMS请求ACS", + "description": "", + "item": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "2f9e1cf4-d33b-4c2c-85fb-546f276da5b7", + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "id": "d7ddf3ac-5ecf-4a01-ae1c-c491bd7b645b", + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] + }, + { + "name": "SAP请求LMS", + "description": "", + "item": [] + }, + { + "name": "LMS请求SAP", + "description": "", + "item": [] + } + ] +} \ No newline at end of file diff --git a/nladmin-system/src/main/java/org/nl/modules/logging/aspect/LogAspect.java b/nladmin-system/src/main/java/org/nl/modules/logging/aspect/LogAspect.java index e4730e1d8..24e8e05f4 100644 --- a/nladmin-system/src/main/java/org/nl/modules/logging/aspect/LogAspect.java +++ b/nladmin-system/src/main/java/org/nl/modules/logging/aspect/LogAspect.java @@ -28,6 +28,7 @@ import org.aspectj.lang.reflect.MethodSignature; import org.nl.modules.common.utils.RequestHolder; import org.nl.modules.common.utils.SecurityUtils; import org.nl.modules.common.utils.StringUtils; +import org.nl.modules.common.utils.ThrowableUtil; import org.nl.modules.logging.domain.Log; import org.nl.modules.logging.service.LogService; import org.springframework.stereotype.Component; @@ -132,8 +133,7 @@ public class LogAspect { public void logAfterThrowing(JoinPoint joinPoint, Throwable e) { Log log = new Log("ERROR",System.currentTimeMillis() - currentTime.get()); currentTime.remove(); - // log.setExceptionDetail(ThrowableUtil.getStackTrace(e).getBytes()); - // log.setExceptionDetail(null); + log.setExceptionDetail(ThrowableUtil.getStackTrace(e).getBytes()); HttpServletRequest request = RequestHolder.getHttpServletRequest(); logService.save(getUsername(), StringUtils.getBrowser(request), StringUtils.getIp(request), (ProceedingJoinPoint)joinPoint, log); } diff --git a/nladmin-system/src/main/java/org/nl/modules/logging/service/impl/LogServiceImpl.java b/nladmin-system/src/main/java/org/nl/modules/logging/service/impl/LogServiceImpl.java index 197e98740..caaffddfe 100644 --- a/nladmin-system/src/main/java/org/nl/modules/logging/service/impl/LogServiceImpl.java +++ b/nladmin-system/src/main/java/org/nl/modules/logging/service/impl/LogServiceImpl.java @@ -19,8 +19,8 @@ import cn.hutool.core.lang.Dict; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; -import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.reflect.MethodSignature; import org.nl.modules.common.utils.PageUtil; @@ -33,10 +33,6 @@ import org.nl.modules.logging.service.LogService; import org.nl.modules.logging.service.dto.LogQueryCriteria; import org.nl.modules.logging.service.mapstruct.LogErrorMapper; import org.nl.modules.logging.service.mapstruct.LogSmallMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.slf4j.Marker; -import org.slf4j.MarkerFactory; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; @@ -57,9 +53,8 @@ import java.util.Map; */ @Service @RequiredArgsConstructor +@Slf4j public class LogServiceImpl implements LogService { - private static final Marker MARKER = MarkerFactory.getMarker("request"); - private static final Logger log = LoggerFactory.getLogger(LogServiceImpl.class); private final LogRepository logRepository; private final LogErrorMapper logErrorMapper; private final LogSmallMapper logSmallMapper; @@ -107,9 +102,7 @@ public class LogServiceImpl implements LogService { logDto.setMethod(methodName); logDto.setUsername(username); logDto.setParams(getParameter(method, joinPoint.getArgs())); - // logDto.setParams(""); logDto.setBrowser(browser); - log.info(MARKER,JSONObject.toJSONString(logDto)); logRepository.save(logDto); } diff --git a/nladmin-system/src/main/java/org/nl/modules/loki/rest/LokiController.java b/nladmin-system/src/main/java/org/nl/modules/loki/rest/LokiController.java index 69cd1d0fc..e498cb664 100644 --- a/nladmin-system/src/main/java/org/nl/modules/loki/rest/LokiController.java +++ b/nladmin-system/src/main/java/org/nl/modules/loki/rest/LokiController.java @@ -25,16 +25,10 @@ public class LokiController { private final LokiService lokiService; - @GetMapping("/labels") + @GetMapping("/labels/values") @ApiOperation("获取标签") - public ResponseEntity labels() { - return new ResponseEntity<>(lokiService.getLabels(), HttpStatus.OK); - } - - @PostMapping("/values") - @ApiOperation("根据标签获取值") - public ResponseEntity getAllValues(@RequestBody String label) { - return new ResponseEntity<>(lokiService.getValuesByLabel(label), HttpStatus.OK); + public ResponseEntity labelsValues() { + return new ResponseEntity<>(lokiService.getLabelsValues(), HttpStatus.OK); } @PostMapping("/logs") diff --git a/nladmin-system/src/main/java/org/nl/modules/loki/service/LokiService.java b/nladmin-system/src/main/java/org/nl/modules/loki/service/LokiService.java index dedd921eb..10101c914 100644 --- a/nladmin-system/src/main/java/org/nl/modules/loki/service/LokiService.java +++ b/nladmin-system/src/main/java/org/nl/modules/loki/service/LokiService.java @@ -1,5 +1,6 @@ package org.nl.modules.loki.service; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; /** @@ -8,18 +9,6 @@ import com.alibaba.fastjson.JSONObject; * @Date: 2022-08-15 */ public interface LokiService { - /** - * 获取日志的所有标签 - * @return - */ - JSONObject getLabels(); - - /** - * 根据label获取值 - * @param label - * @return - */ - JSONObject getValuesByLabel(String label); /** * 获取日志信息 @@ -27,4 +16,10 @@ public interface LokiService { * @return */ JSONObject getLogData(JSONObject json); + + /** + * 获取labels和values树 + * @return + */ + JSONArray getLabelsValues(); } diff --git a/nladmin-system/src/main/java/org/nl/modules/loki/service/impl/LokiServiceImpl.java b/nladmin-system/src/main/java/org/nl/modules/loki/service/impl/LokiServiceImpl.java index 237fc6665..f6eeb49c0 100644 --- a/nladmin-system/src/main/java/org/nl/modules/loki/service/impl/LokiServiceImpl.java +++ b/nladmin-system/src/main/java/org/nl/modules/loki/service/impl/LokiServiceImpl.java @@ -2,6 +2,7 @@ package org.nl.modules.loki.service.impl; import cn.hutool.core.util.CharsetUtil; import cn.hutool.http.HttpUtil; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import org.nl.modules.loki.service.LokiService; @@ -23,20 +24,6 @@ public class LokiServiceImpl implements LokiService { @Value("${loki.systemName}") private String systemName; - @Override - public JSONObject getLabels() { - String result = HttpUtil.get(lokiUrl + "/labels", CharsetUtil.CHARSET_UTF_8); - JSONObject parse = (JSONObject) JSONObject.parse(result); - return parse; - } - - @Override - public JSONObject getValuesByLabel(String label) { - String result = HttpUtil.get(lokiUrl + "/label/" + label + "/values", CharsetUtil.CHARSET_UTF_8); - JSONObject parse = (JSONObject) JSONObject.parse(result); - return parse; - } - @Override public JSONObject getLogData(JSONObject json) { String logLabel = ""; @@ -78,4 +65,49 @@ public class LokiServiceImpl implements LokiService { return parse; } + /** + * 获取labels和values树 + * + * @return + */ + @Override + public JSONArray getLabelsValues() { + /** + * [{ + * label: + * value: + * children:[{ + * label + * value + * }] + * }] + */ + JSONArray result = new JSONArray(); + // 获取所有标签 + String labelString = HttpUtil.get(lokiUrl + "/labels", CharsetUtil.CHARSET_UTF_8); + JSONObject parse = (JSONObject) JSONObject.parse(labelString); + JSONArray labels = parse.getJSONArray("data"); + for (int i=0; i data = new HashMap<>(16); -// data.put("task", quartzJob); -// data.put("msg", msg); -// TemplateEngine engine = TemplateUtil.createEngine(new TemplateConfig("template", TemplateConfig.ResourceMode.CLASSPATH)); -// Template template = engine.getTemplate("email/taskAlarm.ftl"); -// emailVo.setContent(template.render(data)); -// List emails = Arrays.asList(quartzJob.getEmail().split("[,,]")); -// emailVo.setTos(emails); -// return emailVo; -// } } diff --git a/nladmin-system/src/main/java/org/nl/modules/security/rest/MobileAuthorizationController.java b/nladmin-system/src/main/java/org/nl/modules/security/rest/MobileAuthorizationController.java index b59f5162e..de0e34b7c 100644 --- a/nladmin-system/src/main/java/org/nl/modules/security/rest/MobileAuthorizationController.java +++ b/nladmin-system/src/main/java/org/nl/modules/security/rest/MobileAuthorizationController.java @@ -9,8 +9,10 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.modules.common.config.RsaProperties; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.utils.RedisUtils; +import org.nl.modules.common.utils.RsaUtils; import org.nl.modules.common.utils.dto.CurrentUser; import org.nl.modules.security.service.dto.AuthUserDto; import org.nl.modules.system.service.RoleService; @@ -48,8 +50,8 @@ public class MobileAuthorizationController { @SaIgnore public ResponseEntity login(@Validated @RequestBody AuthUserDto authUser, HttpServletRequest request) throws Exception { // 密码解密 - 前端的加密规则: encrypt(根据实际更改) - String password = authUser.getPassword(); -// String password = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey, authUser.getPassword()); +// String password = authUser.getPassword(); + String password = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey, authUser.getPassword()); // 校验数据库 // 根据用户名查询,在比对密码 UserDto userDto = userService.findByName(authUser.getUsername()); // 拿不到已经抛出异常 @@ -75,7 +77,6 @@ public class MobileAuthorizationController { // 返回 token 与 用户信息 JSONObject jsonObject = new JSONObject(); - jsonObject.put("roles", permissionList); jsonObject.put("user", userDto); Map authInfo = new HashMap(2) {{ put("token", StpUtil.getTokenValue()); diff --git a/nladmin-system/src/main/java/org/nl/wms/autotask/CleanLog.java b/nladmin-system/src/main/java/org/nl/wms/autotask/CleanLog.java new file mode 100644 index 000000000..95d001d9f --- /dev/null +++ b/nladmin-system/src/main/java/org/nl/wms/autotask/CleanLog.java @@ -0,0 +1,16 @@ +package org.nl.wms.autotask; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * 自动清除日志(操作日志、异常日志)数据 + */ +@Slf4j +@Component +public class CleanLog { + public void run(){ + log.info("run 执行成功"); + } + +} diff --git a/nladmin-system/src/main/java/org/nl/wms/log/LokiLog.java b/nladmin-system/src/main/java/org/nl/wms/log/LokiLog.java new file mode 100644 index 000000000..890d7d882 --- /dev/null +++ b/nladmin-system/src/main/java/org/nl/wms/log/LokiLog.java @@ -0,0 +1,15 @@ +package org.nl.wms.log; + +import java.lang.annotation.*; + +/** + * @author: lyd + * @description: 自定义日志注解,用作LOKI日志分类 + * @Date: 2022/10/10 + */ +@Retention(RetentionPolicy.RUNTIME) +@Target({ ElementType.METHOD}) +@Documented +public @interface LokiLog { + LokiLogType type() default LokiLogType.DEFAULT; +} diff --git a/nladmin-system/src/main/java/org/nl/wms/log/LokiLogAspect.java b/nladmin-system/src/main/java/org/nl/wms/log/LokiLogAspect.java new file mode 100644 index 000000000..11eb77545 --- /dev/null +++ b/nladmin-system/src/main/java/org/nl/wms/log/LokiLogAspect.java @@ -0,0 +1,63 @@ +package org.nl.wms.log; + +import com.alibaba.fastjson.JSONObject; +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.Signature; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Pointcut; +import org.aspectj.lang.reflect.MethodSignature; +import org.slf4j.MDC; +import org.springframework.stereotype.Component; + +import java.lang.reflect.Method; + + +/** + * @author: lyd + * @description: 自定义日志切面:https://cloud.tencent.com/developer/article/1655923 + * @Date: 2022/10/10 + */ +@Aspect +@Slf4j +@Component +public class LokiLogAspect { + /** + * 切到所有OperatorLog注解修饰的方法 + */ + @Pointcut("@annotation(org.nl.wms.log.LokiLog)") + public void operatorLog() { + // 空方法 + } + + /** + * 利用@Around环绕增强 + * + * @return + */ + @Around("operatorLog()") + public synchronized Object around(ProceedingJoinPoint pjp) throws Throwable { +// ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); +// HttpServletRequest request = attributes.getRequest(); +// HttpServletResponse response = attributes.getResponse(); + + Signature signature = pjp.getSignature(); + MethodSignature methodSignature = (MethodSignature) signature; + Method method = methodSignature.getMethod(); + LokiLog lokiLog = method.getAnnotation(LokiLog.class); + + // 获取描述信息 + LokiLogType logType = lokiLog.type(); + + MDC.put("log_file_type", logType.name()); + log.info("输入参数:" + JSONObject.toJSONString(pjp.getArgs())); + + Object proceed = pjp.proceed(); + + log.info("返回参数:" + JSONObject.toJSONString(proceed)); + MDC.remove("log_file_type"); + return proceed; + + } +} diff --git a/nladmin-system/src/main/java/org/nl/wms/log/LokiLogType.java b/nladmin-system/src/main/java/org/nl/wms/log/LokiLogType.java new file mode 100644 index 000000000..dc971d166 --- /dev/null +++ b/nladmin-system/src/main/java/org/nl/wms/log/LokiLogType.java @@ -0,0 +1,17 @@ +package org.nl.wms.log; + +/** + * @author: lyd + * @description: + * @Date: 2022/10/11 + */ +public enum LokiLogType { + DEFAULT( "默认"), + LMS_TO_MES( "LMS请求MES"), + MES_TO_LMS( "MES请求LMS"); + + private String desc; + LokiLogType(String desc) { + + } +} diff --git a/nladmin-system/src/main/resources/logback-spring.xml b/nladmin-system/src/main/resources/logback-spring.xml index 84ff0e00e..2ec458bb6 100644 --- a/nladmin-system/src/main/resources/logback-spring.xml +++ b/nladmin-system/src/main/resources/logback-spring.xml @@ -79,12 +79,15 @@ https://juejin.cn/post/6844903775631572999 - + + + + @@ -106,6 +109,9 @@ https://juejin.cn/post/6844903775631572999 + + + diff --git a/nladmin-ui/src/views/loki/api/loki.js b/nladmin-ui/src/views/loki/api/loki.js index 4adb6b525..f71149d45 100644 --- a/nladmin-ui/src/views/loki/api/loki.js +++ b/nladmin-ui/src/views/loki/api/loki.js @@ -1,20 +1,5 @@ import request from '@/utils/request' -export function getAllLabels() { - return request({ - url: 'api/loki/labels', - method: 'get' - }) -} - -export function getAllValues(label) { - return request({ - url: 'api/loki/values', - method: 'post', - data: label - }) -} - export function getLogData(param) { return request({ url: 'api/loki/logs', @@ -23,4 +8,11 @@ export function getLogData(param) { }) } -export default { getAllLabels, getAllValues, getLogData } +export function labelsValues() { + return request({ + url: 'api/loki/labels/values', + method: 'get' + }) +} + +export default { getLogData, labelsValues } diff --git a/nladmin-ui/src/views/loki/view/index.vue b/nladmin-ui/src/views/loki/view/index.vue index c7966c5fa..0bc0e0fa8 100644 --- a/nladmin-ui/src/views/loki/view/index.vue +++ b/nladmin-ui/src/views/loki/view/index.vue @@ -2,37 +2,25 @@
- - - - - - - - - - - - - - backward - forward - - - - + + + + + + + + - + - - - - + + + backward + forward + - + - +
-
+
@@ -132,10 +117,8 @@ export default { name: 'Loki', data() { return { - labelOptions: [], // 标签数据 - labelValueOptions: [], // 标签值 - logLabel: '', - logLabelValue: '', + labelAndValue: [], // 搜索的值 + labelsOptions: [], // 所有标签和对应所有值数据 timeRange: [], text: '', limits: 100, @@ -214,7 +197,14 @@ export default { window.addEventListener('scroll', this.handleScroll) }, created() { - this.initLabelOptions() + this.initLabelsValues() + }, + // 关闭定时器 - 加了缓存就必须使用deactivated + deactivated() { + // js提供的clearInterval方法用来清除定时器 + console.log('定时任务销毁') + clearInterval(this.timer) + window.removeEventListener('scroll', this.handleScroll) }, beforeDestroy() { // js提供的clearInterval方法用来清除定时器 @@ -223,25 +213,18 @@ export default { window.removeEventListener('scroll', this.handleScroll) }, methods: { - initLabelOptions() { // 获取lables - logOperation.getAllLabels().then(res => { - this.labelOptions = res.data - }) - }, - getValues() { - this.logLabelValue = null - logOperation.getAllValues(this.logLabel).then(res => { - this.labelValueOptions = res.data + initLabelsValues() { + logOperation.labelsValues().then(res => { + this.labelsOptions = res }) }, queryData() { + console.log(this.labelAndValue) // 清空查询数据 this.clearParam() - if (this.logLabel !== '') { // 标签 - queryParam.logLabel = this.logLabel - } - if (this.logLabelValue !== '') { // 标签值 - queryParam.logLabelValue = this.logLabelValue + if (this.labelAndValue.length > 0) { + queryParam.logLabel = this.labelAndValue[0] + queryParam.logLabelValue = this.labelAndValue[1] } if (queryParam.logLabelValue === null) { // 判空 this.$message({ @@ -256,14 +239,8 @@ export default { if (this.timeRange.length !== 0) { // 如果是输入时间范围 queryParam.start = (new Date(this.timeRange[0]).getTime() * 1000000).toString() queryParam.end = (new Date(this.timeRange[1]).getTime() * 1000000).toString() - console.log(queryParam.start) - console.log('-----------------------------') - console.log(queryParam.end) } if (this.timeZoneValue) { - // console.log('时差:', this.timeZoneValue) - // console.log('start时间:', new Date().getTime() - this.timeZoneValue) - // console.log('end时间:', new Date().getTime()) const time = new Date() queryParam.start = ((time.getTime() - this.timeZoneValue) * 1000000).toString() queryParam.end = (time.getTime() * 1000000).toString() @@ -275,10 +252,8 @@ export default { queryParam.limits = this.limits } queryParam.direction = this.direction - console.log('最后参数:', queryParam) var ansi_up = new AnsiUp() logOperation.getLogData(queryParam).then(res => { - console.log('结果', res) this.showEmpty = false if (res.data.result.length === 1) { this.logs = res.data.result[0].values @@ -324,7 +299,6 @@ export default { const scrollHeight = document.documentElement.scrollHeight// 内容高度 const bottomest = Math.ceil(scrollTop + clientHeight) if (bottomest >= scrollHeight) { - console.log(1) // 加载新数据 queryParam.limits = this.scrollStep queryParam.direction = this.direction @@ -339,7 +313,6 @@ export default { if (zone === 0) { zone = 3600 * 1000 * 6 } - console.log('时间差:', zone) if (this.direction === 'backward') { // 设置时间区间 queryParam.start = (this.logs[this.logs.length - 1][0] - zone).toString() queryParam.end = this.logs[this.logs.length - 1][0] @@ -347,7 +320,6 @@ export default { queryParam.start = this.logs[this.logs.length - 1][0] queryParam.end = (parseFloat(this.logs[this.logs.length - 1][0]) + parseFloat(zone.toString())).toString() } - console.log('滚动的参数:', queryParam) var ansi_up = new AnsiUp() logOperation.getLogData(queryParam).then(res => { this.showEmpty = false @@ -464,7 +436,7 @@ export default { diff --git a/nladmin-ui/src/views/monitor/log/errorLog.vue b/nladmin-ui/src/views/monitor/log/errorLog.vue index 33c392a89..ae322c625 100644 --- a/nladmin-ui/src/views/monitor/log/errorLog.vue +++ b/nladmin-ui/src/views/monitor/log/errorLog.vue @@ -33,9 +33,9 @@ - - - + + + @@ -78,7 +78,7 @@ export default { add: false, edit: false, del: false, - download: true + download: false } }, methods: { diff --git a/nladmin-ui/src/views/monitor/log/index.vue b/nladmin-ui/src/views/monitor/log/index.vue index 36da85d65..c06463ee4 100644 --- a/nladmin-ui/src/views/monitor/log/index.vue +++ b/nladmin-ui/src/views/monitor/log/index.vue @@ -33,8 +33,8 @@ - - + +