Преглед на файлове

:sparkles: Introducing new features.add daemon execution log

萌萌哒SAKURA酱 преди 6 години
родител
ревизия
723c23b721

+ 1 - 1
src/api/admin/menu.js

@@ -54,7 +54,7 @@ export function delObj(id) {
 
 export function putObj(obj) {
   return request({
-    url: '/admin/menu/',
+    url: '/admin/menu',
     method: 'put',
     data: obj
   })

+ 2 - 2
src/api/admin/role.js

@@ -34,7 +34,7 @@ export function fetchList(query) {
 
 export function deptRoleList() {
   return request({
-    url: '/admin/role/list/',
+    url: '/admin/role/list',
     method: 'get'
   })
 }
@@ -71,7 +71,7 @@ export function delObj(id) {
 
 export function permissionUpd(roleId, menuIds) {
   return request({
-    url: '/admin/role/upd-menu',
+    url: '/admin/role/menu',
     method: 'put',
     params: {
       roleId: roleId,

+ 1 - 1
src/api/admin/user.js

@@ -27,7 +27,7 @@ export function fetchList(query) {
 
 export function addObj(obj) {
     return request({
-        url: '/admin/user/',
+        url: '/admin/user',
         method: 'post',
         data: obj
     })

+ 56 - 0
src/api/daemon/execution-log.js

@@ -0,0 +1,56 @@
+/*
+ *    Copyright (c) 2018-2025, lengleng All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the pig4cloud.com developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: lengleng (wangiegie@gmail.com)
+ */
+
+import request from '@/router/axios'
+
+export function fetchList(query) {
+  return request({
+    url: '/daemon/execution-log/page',
+    method: 'get',
+    params: query
+  })
+}
+
+export function addObj(obj) {
+  return request({
+    url: '/daemon/execution-log',
+    method: 'post',
+    data: obj
+  })
+}
+
+export function getObj(id) {
+  return request({
+    url: '/daemon/execution-log/' + id,
+    method: 'get'
+  })
+}
+
+export function delObj(id) {
+  return request({
+    url: '/daemon/execution-log/' + id,
+    method: 'delete'
+  })
+}
+
+export function putObj(obj) {
+  return request({
+    url: '/daemon/execution-log',
+    method: 'put',
+    data: obj
+  })
+}

+ 75 - 0
src/const/crud/daemon/execution-log.js

@@ -0,0 +1,75 @@
+/*
+ *    Copyright (c) 2018-2025, lengleng All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the pig4cloud.com developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: lengleng (wangiegie@gmail.com)
+ */
+
+export const tableOption = {
+  'border': true,
+  'index': true,
+  'indexLabel': '序号',
+  'stripe': true,
+  'menuAlign': "center",
+  'align': "center",
+  'editBtn': false,
+  'delBtn': false,
+  'addBtn': false,
+  'dic': [],
+  'column': [
+	  {
+      label: 'ID',
+      prop: 'id'
+    },
+	  {
+      label: '任务名称',
+      prop: 'jobName'
+    },
+	  {
+      label: '任务ID',
+      prop: 'taskId'
+    },
+	  {
+      label: '主机名',
+      prop: 'hostname'
+    },
+	  {
+      label: 'IP',
+      prop: 'ip'
+    },
+	  {
+      label: '分片项',
+      prop: 'shardingItem'
+    },
+	  {
+      label: '执行源',
+      prop: 'executionSource'
+    },
+	  {
+      label: '失败原因',
+      prop: 'failureCause'
+    },
+	  {
+      label: '执行结果',
+      prop: 'isSuccess'
+    },
+	  {
+      label: '开始时间',
+      prop: 'startTime'
+    },
+	  {
+      label: '完成时间',
+      prop: 'completeTime'
+    },
+  ]
+}

+ 171 - 0
src/views/daemon/execution-log/index.vue

@@ -0,0 +1,171 @@
+<!--
+  -    Copyright (c) 2018-2025, lengleng All rights reserved.
+  -
+  - Redistribution and use in source and binary forms, with or without
+  - modification, are permitted provided that the following conditions are met:
+  -
+  - Redistributions of source code must retain the above copyright notice,
+  - this list of conditions and the following disclaimer.
+  - Redistributions in binary form must reproduce the above copyright
+  - notice, this list of conditions and the following disclaimer in the
+  - documentation and/or other materials provided with the distribution.
+  - Neither the name of the pig4cloud.com developer nor the names of its
+  - contributors may be used to endorse or promote products derived from
+  - this software without specific prior written permission.
+  - Author: lengleng (wangiegie@gmail.com)
+  -->
+
+<template>
+  <div class="app-container pull-auto">
+    <basic-container>
+      <avue-crud ref="crud"
+                 :page="page"
+                 :data="tableData"
+                 :table-loading="tableLoading"
+                 :option="tableOption"
+                 @on-load="getList"
+                 @refresh-change="refreshChange"
+                 @row-update="handleUpdate"
+                 @row-save="handleSave"
+                 @row-del="rowDel">
+        <template slot="menuLeft">
+          <el-button type="primary"
+                     @click="handleAdd"
+                     size="small"
+                     v-if="permissions.daemon_execution_log_add">新 增</el-button>
+          <br /><br />
+        </template>
+        <template slot-scope="scope"
+                  slot="menu">
+          <el-button type="danger"
+                     v-if="permissions.daemon_execution_log_del"
+                     icon="el-icon-delete"
+                     size="small"
+                     plain
+                     @click="handleDel(scope.row,scope.index)">删除</el-button>
+        </template>
+      </avue-crud>
+    </basic-container>
+  </div>
+</template>
+
+<script>
+  import { fetchList, getObj, addObj, putObj, delObj } from '@/api/daemon/execution-log'
+  import { tableOption } from '@/const/crud/daemon/execution-log'
+  import { mapGetters } from 'vuex'
+  export default {
+    name: 'execution-log',
+    data() {
+      return {
+        tableData: [],
+        page: {
+          total: 0, // 总页数
+          currentPage: 1, // 当前页数
+          pageSize: 20 // 每页显示多少条
+        },
+        tableLoading: false,
+        tableOption: tableOption
+      }
+    },
+    created() {
+    },
+    mounted: function() { },
+    computed: {
+      ...mapGetters(['permissions'])
+    },
+    methods: {
+      getList(page, params) {
+        this.tableLoading = true
+        fetchList(Object.assign({
+          page: page.currentPage,
+          limit: page.pageSize
+        }, params)).then(response => {
+          this.tableData = response.data.records
+          this.page.total = response.data.total
+          this.tableLoading = false
+        })
+      },
+      /**
+       * @title 打开新增窗口
+       * @detail 调用crud的handleadd方法即可
+       *
+       **/
+      handleAdd: function() {
+        this.$refs.crud.rowAdd()
+      },
+      handleEdit(row, index) {
+        this.$refs.crud.rowEdit(row, index)
+      },
+      handleDel(row, index) {
+        this.$refs.crud.rowDel(row, index)
+      },
+      rowDel: function(row, index) {
+        var _this = this
+        this.$confirm('是否确认删除ID为' + row.id, '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        })
+          .then(function() {
+            return delObj(row.id)
+          })
+          .then(data => {
+          _this.tableData.splice(index, 1)
+          _this.$message({
+            showClose: true,
+            message: '删除成功',
+            type: 'success'
+          })
+          this.getList(this.page)
+        })
+      .catch(function(err) { })
+      },
+      /**
+       * @title 数据更新
+       * @param row 为当前的数据
+       * @param index 为当前更新数据的行数
+       * @param done 为表单关闭函数
+       *
+       **/
+      handleUpdate: function(row, index, done) {
+        putObj(row).then(data => {
+          this.tableData.splice(index, 1, Object.assign({}, row))
+          this.$message({
+            showClose: true,
+            message: '修改成功',
+            type: 'success'
+          })
+          done()
+          this.getList(this.page)
+        })
+      },
+      /**
+       * @title 数据添加
+       * @param row 为当前的数据
+       * @param done 为表单关闭函数
+       *
+       **/
+      handleSave: function(row, done) {
+        addObj(row).then(data => {
+          this.tableData.push(Object.assign({}, row))
+          this.$message({
+            showClose: true,
+            message: '添加成功',
+            type: 'success'
+          })
+          done()
+          this.getList(this.page)
+        })
+      },
+      /**
+       * 刷新回调
+       */
+      refreshChange() {
+        this.getList(this.page)
+      }
+    }
+  }
+</script>
+
+<style lang="scss" scoped>
+</style>

+ 1 - 1
src/views/daemon/status-trace-log/index.vue

@@ -32,7 +32,7 @@
         <template slot-scope="scope"
                   slot="menu">
           <el-button type="danger"
-                     v-if="permissions.daemon_statustracelog_del"
+                     v-if="permissions.daemon_status_trace_log_del"
                      icon="el-icon-delete"
                      size="small"
                      plain