Browse Source

对接日志管理删除接口

ljh 2 years ago
parent
commit
bbc095cfed

+ 9 - 5
chuanyi-admin/src/api/system/log.js

@@ -1,10 +1,6 @@
 import request from '@/utils/request'
 
-/**
- * 查询日志列表
- * @param query
- * @returns {AxiosPromise}
- */
+// 查询日志列表
 export function getLogList(query) {
   return request({
     url: '/log/getLogPage',
@@ -12,3 +8,11 @@ export function getLogList(query) {
     params: query
   })
 }
+
+// 删除六个月之前的日志记录
+export function delLogList() {
+  return request({
+    url: '/log/deleteByDate',
+    method: 'get'
+  })
+}

+ 28 - 0
chuanyi-admin/src/api/system/menu.js

@@ -0,0 +1,28 @@
+import request from '@/utils/request'
+
+// 查询菜单列表
+export function getMenuList(query) {
+  return request({
+    url: '/menu/getMenuListByPage',
+    method: 'get',
+    params: query
+  })
+}
+
+// 新增菜单列表
+export function addtMenuList(query) {
+  return request({
+    url: '/menu/addMenu',
+    method: 'post',
+    data: query
+  })
+}
+
+// 通过id查找菜单详情
+export function detailtMenuList(id) {
+  return request({
+    url: '/menu/getMenuById',
+    method: 'get',
+    params: id
+  })
+}

+ 36 - 34
chuanyi-admin/src/views/system/log/index.vue

@@ -47,39 +47,25 @@
         <!-- 操作按钮 -->
         <el-row>
           <el-col :span="1.5">
-            <el-button type="danger" plain icon="el-icon-delete" size="mini">清空
+            <el-button type="danger" plain icon="el-icon-delete" size="mini" @click="handelClear">清空
             </el-button>
           </el-col>
         </el-row>
         <!-- 表格数据信息 -->
-        <el-table v-loading="loading" :data="logList" @selection-change="handleSelectionChange">
-          <el-table-column type="selection" width="50" align="center" />
+        <el-table v-loading="loading" :data="logList">
+          <el-table-column type="index" width="50" align="center" />
           <el-table-column key="serverName" label="服务名称" align="center" prop="serverName" />
-          <el-table-column
-            key="modelName"
-            label="模块名称"
-            align="center"
-            prop="modelName"
-            :show-overflow-tooltip="true"
-          />
-          <el-table-column
-            key="content"
-            label="操作内容"
-            align="center"
-            prop="content"
-            :show-overflow-tooltip="true"
-          />
-          <el-table-column
-            key="userId"
-            label="操作人员"
-            align="center"
-            prop="userId"
-            :show-overflow-tooltip="true"
-          />
+          <el-table-column key="modelName" label="模块名称" align="center" prop="modelName" :show-overflow-tooltip="true" />
+          <el-table-column key="content" label="操作内容" align="center" prop="content" :show-overflow-tooltip="true" />
+          <el-table-column key="userId" label="操作人员" align="center" prop="userId" :show-overflow-tooltip="true" />
           <el-table-column key="methodName" label="方法名称" align="center" prop="methodName" />
           <el-table-column key="ipAddress" label="操作地址" align="center" prop="ipAddress" />
-          <el-table-column key="" label="操作地点" align="center" prop="" />
-          <el-table-column key="operationStatus" label="操作状态" align="center" prop="operationStatus" />
+          <el-table-column v-if="false" key="" label="操作地点" align="center" prop="" />
+          <el-table-column key="operationStatus" label="操作状态" align="center" prop="operationStatus">
+            <template slot-scope="scope">
+              {{ scope.row.operationStatus === 1 ? '正常' : scope.row.operationStatus }}
+            </template>
+          </el-table-column>
           <el-table-column key="createTime" label="操作日期" align="center" prop="createTime" />
         </el-table>
         <!-- 分页信息 -->
@@ -98,7 +84,7 @@
 </template>
 
 <script>
-import { getLogList } from '@/api/system/log'
+import { getLogList, delLogList } from '@/api/system/log'
 
 export default {
   name: 'Index',
@@ -116,9 +102,7 @@ export default {
       // 总条数
       total: 0,
       // 日志表格数据
-      logList: null,
-      // 多选id集合
-      ids: null
+      logList: null
     }
   },
   created() {
@@ -136,10 +120,6 @@ export default {
       this.$refs['queryForm'].resetFields()
       this.handleQuery()
     },
-    /** 多选框选中数据 */
-    handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.userId)
-    },
     /** 查询日志列表 */
     getLogList() {
       getLogList(this.queryParams).then(response => {
@@ -148,6 +128,28 @@ export default {
         this.total = data.count
         this.loading = false
       })
+    },
+    /** 清空按钮 */
+    handelClear() {
+      this.$confirm('是否清空6个月之前的日志记录?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        delLogList().then(res => {
+          if (res.code === 200) {
+            this.$message({
+              type: 'success',
+              message: '删除成功!'
+            })
+          }
+        })
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '已取消删除'
+        })
+      })
     }
   }
 }

+ 261 - 0
chuanyi-admin/src/views/system/menu/index.vue

@@ -0,0 +1,261 @@
+<template>
+  <div class="sy-content">
+    <el-row>
+      <el-col :span="4">
+        <el-tree :data="data" :props="defaultProps" />
+      </el-col>
+      <el-col :span="20">
+        <!-- 表单查询 -->
+        <el-form ref="queryForm" :model="queryParams" :inline="true" size="small">
+          <el-form-item label="菜单名称" prop="menuName">
+            <el-input v-model="queryParams.menuName" placeholder="请输入菜单名称" clear />
+          </el-form-item>
+          <el-form-item>
+            <el-button type="primary" icon="el-icon-search" size="mini" @click="handelSearch">搜索</el-button>
+            <el-button icon="el-icon-refresh" size="mini" @click="handelReset">重置</el-button>
+          </el-form-item>
+        </el-form>
+
+        <el-button size="mini" icon="el-icon-plus" type="primary" plain @click="handelAdd">新增</el-button>
+
+        <!-- 表格数据信息 -->
+        <el-table v-loading="loading" :data="menuList" @selection-change="handleSelectionChange">
+          <el-table-column type="selection" width="50" align="center" />
+          <el-table-column key="menuName" label="菜单名称" align="center" prop="menuName" />
+          <el-table-column key="menuIcon" label="菜单图标" align="center" prop="menuIcon" />
+          <el-table-column key="menuUrl" label="路由地址" align="center" prop="menuUrl" />
+          <el-table-column key="sortNum" label="排序号" align="center" prop="sortNum" />
+          <el-table-column key="createTime" label="创建时间" align="center" prop="createTime" width="160" />
+          <el-table-column key="updateTime" label="更新时间" align="center" prop="updateTime" width="160" />
+          <el-table-column label="操作" align="center" width="250" class-name="small-padding fixed-width">
+            <template slot-scope="scope">
+              <el-button size="mini" type="text" icon="el-icon-edit" @click="handelEdit(scope.row)">修改
+              </el-button>
+              <el-button size="mini" type="text" icon="el-icon-delete">删除
+              </el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+
+        <!-- 分页信息 -->
+        <pagination
+          v-show="total > 0"
+          :total="total"
+          :page.sync="queryParams.page"
+          :limit.sync="queryParams.limit"
+          align="right"
+          @pagination="getMenuList"
+        />
+      </el-col>
+    </el-row>
+
+    <el-dialog :title="title" :visible.sync="dialogVisible" width="35%">
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="上级菜单" prop="parentId">
+              <el-select v-model="form.parentId" clearable placeholder="请选择" style="width:100%">
+                <el-option
+                  v-for="item in options"
+                  :key="item.parentId"
+                  :label="item.label"
+                  :value="item.parentId"
+                />
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="菜单图标" prop="menuIcon">
+              <el-input v-model="form.menuIcon" placeholder="请输入图标名称" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="菜单名称" prop="menuName">
+              <el-input v-model="form.menuName" placeholder="请输入菜单名称" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="显示排序" prop="sortNum">
+              <el-input-number
+                v-model="form.sortNum"
+                placeholder="0"
+                controls-position="right"
+                :min="1"
+                :max="10"
+              />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="路由地址" prop="menuUrl">
+              <el-input v-model="form.menuUrl" placeholder="请输入路由地址" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="handelSubmit('form')">确 定</el-button>
+        <el-button @click="handelCancel('form')">取 消</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { getMenuList, addtMenuList, detailtMenuList } from '@/api/system/menu.js'
+export default {
+  data() {
+    return {
+      data: [{
+        label: '一级 1',
+        children: [{
+          label: '二级 1-1',
+          children: [{
+            label: '三级 1-1-1'
+          }]
+        }]
+      }, {
+        label: '一级 2',
+        children: [{
+          label: '二级 2-1',
+          children: [{
+            label: '三级 2-1-1'
+          }]
+        }, {
+          label: '二级 2-2',
+          children: [{
+            label: '三级 2-2-1'
+          }]
+        }]
+      }, {
+        label: '一级 3',
+        children: [{
+          label: '二级 3-1',
+          children: [{
+            label: '三级 3-1-1'
+          }]
+        }, {
+          label: '二级 3-2',
+          children: [{
+            label: '三级 3-2-1'
+          }]
+        }]
+      }],
+      defaultProps: {
+        children: 'children',
+        label: 'label'
+      },
+      // 遮罩层
+      loading: true,
+      // 查询参数
+      queryParams: {
+        page: 1,
+        limit: 10
+      },
+      // 总条数
+      total: 0,
+      // 表格数据
+      menuList: [],
+      // 弹出框
+      dialogVisible: false,
+      // 弹出框标题
+      title: '',
+      // 弹出框表单
+      form: {},
+      // 菜单类别
+      options: [
+        { label: '主类目', parentId: 1 }
+      ],
+      // 表单验证
+      rules: {
+        menuName: [
+          { required: true, message: '菜单名称不能为空', trigger: 'blur' }
+        ],
+        sortNum: [
+          { required: true, message: '显示排序不能为空', trigger: 'change' }
+        ],
+        menuUrl: [
+          { required: true, message: '路由地址不能为空', trigger: 'blur' }
+        ]
+      }
+    }
+  },
+  created() {
+    this.getMenuList()
+  },
+  methods: {
+    /** 获取表格数据 */
+    getMenuList() {
+      getMenuList(this.queryParams).then(response => {
+        const data = response.data
+        this.menuList = data.menuList
+        this.total = data.count
+        this.loading = false
+      })
+    },
+    /** 表格多选事件 */
+    handleSelectionChange() {
+      console.log(1)
+    },
+    /** 搜索 */
+    handelSearch() {
+      this.queryParams.page = 1
+      this.getMenuList()
+    },
+    /** 重置按钮操作 */
+    handelReset() {
+      this.$refs['queryForm'].resetFields()
+      this.handelSearch()
+    },
+    /** 新增按钮 */
+    handelAdd() {
+      this.reset()
+      this.dialogVisible = true
+      this.title = '添加菜单'
+    },
+    /** 修改按钮 */
+    handelEdit(row) {
+      console.log(row)
+      detailtMenuList(row.id).then(res => {
+        console.log(res)
+      })
+      this.dialogVisible = true
+      this.title = '修改菜单'
+    },
+    /** 表单提交 */
+    handelSubmit(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          console.log(this.form)
+          if (this.title === '添加菜单') {
+            addtMenuList(this.form).then(res => {
+              console.log(res)
+            })
+            // this.dialogVisible = false
+          }
+        }
+      })
+    },
+    /** 表单取消 */
+    handelCancel() {
+      this.dialogVisible = false
+      this.reset()
+    },
+    /** 表单重置 */
+    reset() {
+      if (this.$refs['form']) {
+        this.$refs['form'].resetFields()
+      }
+    }
+  }
+}
+</script>
+
+<style lang="scss" rel="stylesheet/scss" scoped>
+
+</style>