Переглянути джерело

登录日志和操作日志增加前后端排序

xusl 2 роки тому
батько
коміт
24dfbe52f5

+ 19 - 1
backend/src/main/java/com/jiayue/ssi/controller/SysLogininforController.java

@@ -37,7 +37,7 @@ public class SysLogininforController {
     @GetMapping(value = "/getAll")
     @PreAuthorize("@ss.hasPermi('auditManager:logininfor:list')")
     public ResponseVO getAll(Integer currentPage, Integer pageSize, String ipaddr, String userName,
-                             String status,String startLoginTime,String endLoginTime) {
+                             String status,String startLoginTime,String endLoginTime,String sortOrder) {
         try {
             if (StringUtils.isNotEmpty(ipaddr)) {
                 if (ipaddr.length() > 128) {
@@ -65,6 +65,24 @@ public class SysLogininforController {
             if (StringUtils.isNotEmpty(endLoginTime)) {
                 wrapper.le("login_time", DateUtils.getDayLastTime(DateUtil.parseDate(endLoginTime)));
             }
+
+            if (StringUtils.isNotEmpty(sortOrder)){
+                String[] orders = sortOrder.split("&");
+                String sortDbField = "";
+                if ("loginTime".equals(orders[0])){
+                    sortDbField = "login_time";
+                } else if ("userName".equals(orders[0])){
+                    sortDbField = "user_name";
+                }
+
+                if ("asc".equals(orders[1])){
+                    wrapper.orderByAsc(sortDbField);
+                }
+                else{
+                    wrapper.orderByDesc(sortDbField);
+                }
+            }
+
             Page<SysLogininfor> result = sysLogininforService.page(new Page<>(currentPage, pageSize), wrapper);
             return ResponseVO.success(result);
         } catch (Exception e) {

+ 20 - 1
backend/src/main/java/com/jiayue/ssi/controller/SysOperlogController.java

@@ -36,7 +36,7 @@ public class SysOperlogController {
     @GetMapping(value = "/getAll")
     @PreAuthorize("@ss.hasPermi('auditManager:operlog:list')")
     public ResponseVO getAll(Integer currentPage, Integer pageSize, String title, String operName,String auditType,
-                             String businessType, String status,String startOperTime, String endOperTime) {
+                             String businessType, String status,String startOperTime, String endOperTime,String sortOrder) {
         try {
             if (StringUtils.isNotEmpty(title)) {
                 if (title.length() > 50) {
@@ -70,6 +70,25 @@ public class SysOperlogController {
             if (StringUtils.isNotEmpty(endOperTime)) {
                 wrapper.le("oper_time", DateUtils.getDayLastTime(DateUtil.parseDate(endOperTime)));
             }
+            if (StringUtils.isNotEmpty(sortOrder)){
+                String[] orders = sortOrder.split("&");
+                String sortDbField = "";
+                if ("operTime".equals(orders[0])){
+                    sortDbField = "oper_time";
+                } else if ("title".equals(orders[0])){
+                    sortDbField = "title";
+                } else if ("operName".equals(orders[0])){
+                    sortDbField = "oper_name";
+                }
+
+                if ("asc".equals(orders[1])){
+                    wrapper.orderByAsc(sortDbField);
+                }
+                else{
+                    wrapper.orderByDesc(sortDbField);
+                }
+            }
+
             Page<SysOperLog> result = sysOperLogService.page(new Page<>(currentPage, pageSize), wrapper);
             return ResponseVO.success(result);
         } catch (Exception e) {

+ 17 - 5
ui/src/views/auditManager/logininfo/index.vue

@@ -91,17 +91,19 @@
         max-height="700"
         :data="list"
         :radio-config="{trigger: 'row'}"
+        @sort-change="sortChangeEvent"
+        :sort-config="{remote:'true'}"
       >
-        <vxe-column type="radio" width="60"/>
+<!--        <vxe-column type="radio" width="60"/>-->
         <vxe-table-column field="infoId" title="访问编号"/>
-        <vxe-table-column field="userName" title="用户账号"/>
+        <vxe-table-column field="userName" title="用户账号" :sortable="true"/>
         <vxe-table-column field="ipaddr" title="登录地址" width="130"/>
         <vxe-table-column field="loginLocation" title="登录地点"/>
         <vxe-table-column field="browser" title="浏览器"/>
         <vxe-table-column field="os" title="操作系统"/>
         <vxe-table-column field="status" title="登录状态" :formatter="statusFormat"/>
         <vxe-table-column field="msg" title="操作信息"/>
-        <vxe-table-column field="loginTime" title="登录日期"/>
+        <vxe-table-column field="loginTime" title="登录日期" :sortable="true"/>
       </vxe-table>
       <vxe-pager
         v-show="showTable"
@@ -158,13 +160,22 @@ export default {
         ipaddr: undefined,
         userName: undefined,
         status: undefined
-      }
+      },
+      sortOrder: 'loginTime&asc',
     };
   },
   created() {
     this.getList();
   },
   methods: {
+    sortChangeEvent({column, property, order}) {
+      if (order == null) {
+        order = 'asc'
+      }
+      this.currentPage = 1
+      this.sortOrder = property+'&'+order
+      this.getList()
+    },
     handlePageChange({currentPage, pageSize}) {
       this.currentPage = currentPage
       this.pageSize = pageSize
@@ -201,7 +212,8 @@ export default {
         userName: this.queryParams.userName,
         status: this.queryParams.status,
         startLoginTime:_startOperTime,
-        endLoginTime:_endOperTime
+        endLoginTime:_endOperTime,
+        sortOrder: this.sortOrder
       }
       this.$axios.get('/sysLogininforController/getAll',
         {params: searchParams}).then((res) => {

+ 17 - 5
ui/src/views/auditManager/operlog/index.vue

@@ -123,17 +123,19 @@
         max-height="700"
         :data="list"
         :radio-config="{trigger: 'row'}"
+        @sort-change="sortChangeEvent"
+        :sort-config="{remote:'true'}"
       >
-        <vxe-column type="radio" width="60"/>
+<!--        <vxe-column type="radio" width="60"/>-->
         <vxe-table-column field="operId" title="日志编号"/>
-        <vxe-table-column field="title" title="系统模块"/>
+        <vxe-table-column field="title" title="系统模块" :sortable="true"/>
         <vxe-table-column field="auditType" title="审计类型" :formatter="auditTypeFormat"/>
         <vxe-table-column field="businessType" title="操作类型" :formatter="operTypeFormat"/>
-        <vxe-table-column field="operName" title="操作人员"/>
+        <vxe-table-column field="operName" title="操作人员" :sortable="true"/>
         <vxe-table-column field="operIp" title="操作地址"/>
         <vxe-table-column field="operLocation" title="操作地点"/>
         <vxe-table-column field="status" title="操作状态" :formatter="statusFormat"/>
-        <vxe-table-column field="operTime" title="操作日期"/>
+        <vxe-table-column field="operTime" title="操作日期" :sortable="true"/>
         <vxe-table-column field="costTime" title="消耗时间(毫秒)"/>
         <vxe-table-column title="操作">
           <template slot-scope="scope">
@@ -253,6 +255,7 @@ export default {
       list: [],
       // 是否显示弹出层
       open: false,
+      sortOrder: 'operTime&asc',
       // 日期范围
       dateRange: [],
       // 默认排序
@@ -273,6 +276,14 @@ export default {
     this.getList();
   },
   methods: {
+    sortChangeEvent({column, property, order}) {
+      if (order == null) {
+        order = 'asc'
+      }
+      this.currentPage = 1
+      this.sortOrder = property+'&'+order
+      this.getList()
+    },
     handlePageChange({currentPage, pageSize}) {
       this.currentPage = currentPage
       this.pageSize = pageSize
@@ -343,7 +354,8 @@ export default {
         auditType: this.queryParams.auditType,
         status: this.queryParams.status,
         startOperTime: _startOperTime,
-        endOperTime: _endOperTime
+        endOperTime: _endOperTime,
+        sortOrder: this.sortOrder
       }
       this.$axios.get('/sysOperlogController/getAll',
         {params: searchParams}).then((res) => {