Просмотр исходного кода

日志解析SQL组件优化,新增接口引入

cfort 11 месяцев назад
Родитель
Сommit
f8de90bdae
2 измененных файлов с 79 добавлено и 48 удалено
  1. 51 39
      src/api/platform/system/news.js
  2. 28 9
      src/views/component/system/logToSql.vue

+ 51 - 39
src/api/platform/system/news.js

@@ -4,69 +4,81 @@ import { SYSTEM_URL, FORM_URL } from '@/api/baseUrl'
  * 查询列表数据
  * @param {*} params
  */
-export function queryPageList(params) {
-  return request({
-    url: SYSTEM_URL() + '/system/news/query',
-    method: 'post',
-    data: params
-  })
+export function queryPageList (params) {
+    return request({
+        url: SYSTEM_URL() + '/system/news/query',
+        method: 'post',
+        data: params
+    })
 }
 /**
  * 删除数据
  * @param {*} params
  */
-export function remove(params) {
-  return request({
-    url: SYSTEM_URL() + '/system/news/remove',
-    method: 'post',
-    isLoading: true,
-    params: params
-  })
+export function remove (params) {
+    return request({
+        url: SYSTEM_URL() + '/system/news/remove',
+        method: 'post',
+        isLoading: true,
+        params: params
+    })
 }
 /**
  * 保存数据
  * @param {*} params
  */
-export function save(params) {
-  return request({
-    url: SYSTEM_URL() + '/system/news/save',
-    method: 'post',
-    isLoading: true,
-    data: params
-  })
+export function save (params) {
+    return request({
+        url: SYSTEM_URL() + '/system/news/save',
+        method: 'post',
+        isLoading: true,
+        data: params
+    })
 }
 
 /**
  * 获取数据
  * @param {*} params
  */
-export function get(params) {
-  return request({
-    url: SYSTEM_URL() + '/system/news/get',
-    method: 'get',
-    params
-  })
+export function get (params) {
+    return request({
+        url: SYSTEM_URL() + '/system/news/get',
+        method: 'get',
+        params
+    })
 }
 
 /**
  * 推送管理评审通知
  * @param {*} params
  */
-export function manage(params) {
-  return request({
-    url: FORM_URL() + '/audit/notice/manage',
-    method: 'post',
-    data: params
-  })
+export function manage (params) {
+    return request({
+        url: FORM_URL() + '/audit/notice/manage',
+        method: 'post',
+        data: params
+    })
 }
- /**
+/**
  * 推送内审实施计划通知
  * @param {*} params
  */
-export function internal(params) {
-  return request({
-    url: FORM_URL() + '/audit/notice/internal',
-    method: 'post',
-    data: params
-  })
+export function internal (params) {
+    return request({
+        url: FORM_URL() + '/audit/notice/internal',
+        method: 'post',
+        data: params
+    })
+}
+
+/**
+ * 日志数据解析SQL语句
+ * @param {*} params
+ */
+export function dataToSql (params) {
+    return request({
+        url: FORM_URL() + '/audit/notice/log/dataToSql',
+        method: 'get',
+        params
+    })
 }

+ 28 - 9
src/views/component/system/logToSql.vue

@@ -18,6 +18,7 @@
                     <div class="value">
                         <el-input
                             v-model="result"
+                            v-loading="loading"
                             type="textarea"
                             :autosize="{ minRows: 10, maxRows: 24}"
                             placeholder=""
@@ -52,22 +53,41 @@ export default {
         return {
             title: 'JSON解析结果',
             dialogVisible: true,
+            loading: false,
             result: '',
             toolbars: [
-                { key: 'copy', icon: 'ibps-icon-copy', label: '复制', type: 'primary', hidden: () => !this.result },
+                { key: 'copy', icon: 'ibps-icon-copy', label: '复制', type: 'primary', hidden: () => !this.result || this.loading },
                 { key: 'cancel', icon: 'el-icon-close', label: '关闭', type: 'danger' }
             ]
         }
     },
-    computed: {
-
-    },
-    async mounted () {
-        const { logId } = this.params
-        const { data: { sql = '' } = {}} = await dataToSql({ logId })
-        this.result = sql
+    watch: {
+        visible: {
+            handler (newVal) {
+                console.log(newVal)
+                this.dialogVisible = newVal
+                if (newVal) {
+                    this.loadData()
+                }
+            },
+            immediate: true
+        }
     },
     methods: {
+        async loadData () {
+            try {
+                this.loading = true
+                const { logId } = this.params
+                const response = await dataToSql({ logId })
+                this.result = response?.data?.sql || ''
+            } catch (error) {
+                console.error('数据解析失败:', error)
+                this.$message.error('数据解析失败')
+                this.result = '数据解析失败,请重试'
+            } finally {
+                this.loading = false
+            }
+        },
         handleActionEvent ({ key }) {
             switch (key) {
                 case 'copy':
@@ -105,7 +125,6 @@ export default {
             }
         },
         closeDialog () {
-            // this.$emit('close', false)
             this.dialogVisible = false
         }
     }