From c88fe3ea9fd8bd1ea556b4769a1a0cd6c9b5661d Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 05 三月 2025 11:38:01 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 admin/src/views/system/traceLog.vue |  103 +++++++++++++++++++++++++++++++--------------------
 1 files changed, 62 insertions(+), 41 deletions(-)

diff --git a/admin/src/views/system/traceLog.vue b/admin/src/views/system/traceLog.vue
index c555d1c..8724eb1 100644
--- a/admin/src/views/system/traceLog.vue
+++ b/admin/src/views/system/traceLog.vue
@@ -13,20 +13,20 @@
       </el-form-item>
       <el-form-item label="鐘舵��" prop="status">
         <el-select v-model="searchForm.status" clearable @change="search">
-          <el-option value="-1" label="鏈鐞�"/>
-          <el-option value="0" label="澶辫触"/>
-          <el-option value="1" label="鎴愬姛"/>
+          <el-option value="-1" label="鏈鐞�" />
+          <el-option value="0" label="澶辫触" />
+          <el-option value="1" label="鎴愬姛" />
         </el-select>
       </el-form-item>
       <el-form-item label="寮傚父绛夌骇" prop="exceptionLevel">
         <el-select v-model="searchForm.exceptionLevel" clearable @change="search">
-          <el-option value="10" label="楂�"/>
-          <el-option value="5" label="涓�"/>
-          <el-option value="0" label="浣�"/>
+          <el-option value="10" label="楂�" />
+          <el-option value="5" label="涓�" />
+          <el-option value="0" label="浣�" />
         </el-select>
       </el-form-item>
       <el-form-item label="鎿嶄綔鏃堕棿鑼冨洿">
-        <el-date-picker
+        <!-- <el-date-picker
           v-model="searchDateRange"
           type="datetimerange"
           range-separator="鑷�"
@@ -34,7 +34,11 @@
           start-placeholder="寮�濮嬫椂闂�"
           end-placeholder="缁撴潫鏃堕棿"
           @change="handleSearchTimeChange"
-        ></el-date-picker>
+        ></el-date-picker> -->
+        <el-date-picker type="datetime" v-model="searchForm.startTime" value-format="yyyy-MM-dd HH:mm:ss"
+          placeholder="璇烽�夋嫨寮�濮嬫椂闂�" @change="changeRadio" />
+        <el-date-picker type="datetime" v-model="searchForm.endTime" value-format="yyyy-MM-dd HH:mm:ss"
+          placeholder="璇烽�夋嫨缁撴潫鏃堕棿" @change="changeRadio" />
       </el-form-item>
       <section>
         <el-button type="primary" @click="search">鎼滅储</el-button>
@@ -49,46 +53,45 @@
     </div>
     <!-- 琛ㄦ牸鍜屽垎椤� -->
     <template v-slot:table-wrap>
-      <el-table
-        v-loading="isWorking.search"
-        :data="tableData.list"
-        stripe
-        :default-sort="{prop: 'operaTime', order: 'descending'}"
-        :row-class-name="tableRowClassName"
-        @sort-change="handleSortChange"
-      >
+      <el-table v-loading="isWorking.search" :data="tableData.list" stripe
+        :default-sort="{ prop: 'operaTime', order: 'descending' }" :row-class-name="tableRowClassName"
+        @sort-change="handleSortChange">
         <el-table-column prop="operaModule" label="涓氬姟妯″潡" min-width="100px"></el-table-column>
         <el-table-column prop="operaRemark" label="鎿嶄綔璇存槑" min-width="100px"></el-table-column>
         <el-table-column prop="requestMethod" label="璇锋眰鏂瑰紡" min-width="80px"></el-table-column>
         <el-table-column prop="requestUri" label="璇锋眰鍦板潃" min-width="200px"></el-table-column>
         <el-table-column prop="status" label="鐘舵��" min-width="80px">
           <template slot-scope="{row}">
-            {{row.status | statusText}}
+            {{ row.status | statusText }}
           </template>
         </el-table-column>
         <el-table-column prop="requestParams" label="璇锋眰鍙傛暟" min-width="80px">
           <template slot-scope="{row}">
-            <ColumnDetail v-if="row.requestParams != null" :content="row.requestParams" :limit="0"/>
+            <ColumnDetail v-if="row.requestParams != null" :content="row.requestParams" :limit="0" />
           </template>
         </el-table-column>
         <el-table-column prop="requestResult" label="璇锋眰缁撴灉" min-width="80px">
           <template slot-scope="{row}">
-            <ColumnDetail v-if="row.requestResult != null" :content="row.requestResult"/>
+            <ColumnDetail v-if="row.requestResult != null" :content="row.requestResult" />
           </template>
         </el-table-column>
-        <el-table-column prop="exceptionLevel" label="寮傚父绛夌骇" sortable="custom" sort-by="EXCEPTION_LEVEL" min-width="100px">
+        <el-table-column prop="exceptionLevel" label="寮傚父绛夌骇" sortable="custom" sort-by="EXCEPTION_LEVEL"
+          min-width="100px">
           <template slot-scope="{row}">
-            {{row.exceptionLevel | exceptionLevelText}}
+            {{ row.exceptionLevel | exceptionLevelText }}
           </template>
         </el-table-column>
         <el-table-column prop="exceptionStack" label="寮傚父淇℃伅" min-width="170px">
           <template slot-scope="{row}">
-            <ColumnDetail v-if="row.exceptionStack != null" :content="row.exceptionStack" :button-type="getExceptionButtonType(row.exceptionLevel)"/>
+            <ColumnDetail v-if="row.exceptionStack != null" :content="row.exceptionStack"
+              :button-type="getExceptionButtonType(row.exceptionLevel)" />
           </template>
         </el-table-column>
-        <el-table-column prop="operaSpendTime" label="璇锋眰鑰楁椂(ms)" sortable="custom" sort-by="OPERA_SPEND_TIME" min-width="120px"></el-table-column>
+        <el-table-column prop="operaSpendTime" label="璇锋眰鑰楁椂(ms)" sortable="custom" sort-by="OPERA_SPEND_TIME"
+          min-width="120px"></el-table-column>
         <el-table-column prop="userRealname" label="鎿嶄綔浜�" min-width="100px"></el-table-column>
-        <el-table-column prop="operaTime" label="鎿嶄綔鏃堕棿" sortable="custom" sort-by="OPERA_TIME" min-width="140px"></el-table-column>
+        <el-table-column prop="operaTime" label="鎿嶄綔鏃堕棿" sortable="custom" sort-by="OPERA_TIME"
+          min-width="140px"></el-table-column>
         <el-table-column prop="platform" label="鎿嶄綔骞冲彴" min-width="100px"></el-table-column>
         <el-table-column prop="systemVersion" label="绯荤粺鐗堟湰" min-width="80px"></el-table-column>
         <el-table-column prop="serverIp" label="澶勭悊鏈嶅姟鍣↖P" min-width="100px"></el-table-column>
@@ -96,11 +99,8 @@
         <el-table-column prop="clientInfo" label="鐢ㄦ埛瀹㈡埛绔�" min-width="200px"></el-table-column>
         <el-table-column prop="osInfo" label="鐢ㄦ埛鎿嶄綔绯荤粺" min-width="100px"></el-table-column>
       </el-table>
-      <pagination
-        @size-change="handleSizeChange"
-        @current-change="handlePageChange"
-        :pagination="tableData.pagination"
-      ></pagination>
+      <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
+      </pagination>
     </template>
   </TableLayout>
 </template>
@@ -115,7 +115,7 @@
   name: 'SystemTraceLog',
   extends: BaseTable,
   components: { ColumnDetail, TableLayout, Pagination },
-  data () {
+  data() {
     return {
       // 鎼滅储鏃堕棿鍙嶈儍
       searchDateRange: [],
@@ -133,7 +133,7 @@
   },
   filters: {
     // 鐘舵��
-    statusText (value) {
+    statusText(value) {
       if (value === 1) {
         return '鎴愬姛'
       }
@@ -143,7 +143,7 @@
       return '鏈鐞�'
     },
     // 寮傚父绛夌骇
-    exceptionLevelText (value) {
+    exceptionLevelText(value) {
       if (value == null) {
         return ''
       }
@@ -161,15 +161,29 @@
   },
   methods: {
     // 鎼滅储妗嗛噸缃�
-    reset () {
-      this.$refs.searchForm.resetFields()
-      this.searchDateRange = []
-      this.searchForm.startTime = null
-      this.searchForm.endTime = null
+    reset() {
+      this.searchForm = {
+        userRealname: '',
+        operaModule: '',
+        requestUri: '',
+        status: null,
+        exceptionLevel: null,
+        startTime: null,
+        endTime: null
+      }
+      this.search()
+    },
+    changeRadio() {
+
+      if (this.searchForm.startTime && this.searchForm.endTime && new Date(this.searchForm.startTime).getTime() > new Date(this.searchForm.endTime).getTime()) {
+        this.$message.error('寮�濮嬫椂闂翠笉鑳藉ぇ浜庣粨鏉熸椂闂�')
+        this.searchForm.startTime = ''
+        return
+      }
       this.search()
     },
     // 鏍囪琛宑lass
-    tableRowClassName ({ row }) {
+    tableRowClassName({ row }) {
       if (row.exceptionLevel === 5 || row.status === -1) {
         return 'warning-log'
       } else if (row.exceptionLevel === 10) {
@@ -178,7 +192,7 @@
       return ''
     },
     // 鑾峰彇寮傚父鏌ョ湅鎸夐挳绫诲瀷
-    getExceptionButtonType (level) {
+    getExceptionButtonType(level) {
       if (level === 5) {
         return 'warning'
       }
@@ -188,7 +202,7 @@
       return null
     },
     // 鏃堕棿鎼滅储鑼冨洿鍙樺寲
-    handleSearchTimeChange (value) {
+    handleSearchTimeChange(value) {
       this.searchForm.startTime = null
       this.searchForm.endTime = null
       if (value != null) {
@@ -198,7 +212,7 @@
       this.search()
     }
   },
-  created () {
+  created() {
     this.config({
       api: '/system/traceLog',
       sorts: [{
@@ -215,10 +229,12 @@
 // 鐘舵�佹爮
 .status-bar {
   padding: 0 16px;
+
   [class^=status-] {
     font-size: 13px;
     margin-right: 12px;
     line-height: 40px;
+
     &::before {
       position: relative;
       top: 2px;
@@ -231,22 +247,27 @@
       margin-right: 6px;
     }
   }
+
   .status-warn::before {
     background-color: oldlace;
     border-color: orange;
   }
+
   .status-danger::before {
     background-color: #fdf0f0;
     border-color: indianred;
   }
 }
+
 /deep/ .table-content {
   margin-top: 0;
 }
+
 // 璀﹀憡绾ф棩蹇�
 /deep/ .warning-log td {
   background-color: oldlace !important;
 }
+
 // 鍗遍櫓绾ф棩蹇�
 /deep/ .danger-log td {
   background-color: #fdf0f0 !important;

--
Gitblit v1.9.3