Bläddra i källkod

:art: Improving structure / format of the code.

lishangbu 6 år sedan
förälder
incheckning
381786736e

+ 1 - 1
src/api/daemon/sysjoblog.js

@@ -2,7 +2,7 @@ import request from '@/router/axios'
 
 export function fetchList(query) {
   return request({
-    url: '/job/sysjoblog/page',
+    url: '/job/sys-job-log/page',
     method: 'get',
     params: query
   })

+ 13 - 13
src/api/daemon/sysjob.js

@@ -2,7 +2,7 @@ import request from '@/router/axios'
 
 export function fetchList(query) {
   return request({
-    url: '/job/sysjob/page',
+    url: '/job/sys-job/page',
     method: 'get',
     params: query
   })
@@ -10,7 +10,7 @@ export function fetchList(query) {
 
 export function getJobLogList(query) {
   return request({
-    url: '/job/sysjob/getJobLog',
+    url: '/job/sys-job/job-log',
     method: 'get',
     params: query
   })
@@ -18,42 +18,42 @@ export function getJobLogList(query) {
 
 export function shutdownJobsRa() {
   return request({
-    url: '/job/sysjob/shutdownJobs',
+    url: '/job/sys-job/shutdown-jobs',
     method: 'post'
   })
 }
 
 export function startJobsRa() {
   return request({
-    url: '/job/sysjob/startJobs',
+    url: '/job/sys-job/start-jobs',
     method: 'post'
   })
 }
 
 export function refreshJobsRa() {
   return request({
-    url: '/job/sysjob/refreshJobs',
+    url: '/job/sys-job/refresh-jobs',
     method: 'post'
   })
 }
 
 export function startJobRa(jobId) {
   return request({
-    url: '/job/sysjob/startJob/' + jobId,
+    url: '/job/sys-job/start-job/' + jobId,
     method: 'get'
   })
 }
 
 export function shutDownJobRa(jobId) {
   return request({
-    url: '/job/sysjob/shutdownJob/' + jobId,
+    url: '/job/sys-job/shutdown-job/' + jobId,
     method: 'get'
   })
 }
 
 export function addObj(obj) {
   return request({
-    url: '/job/sysjob',
+    url: '/job/sys-job',
     method: 'post',
     data: obj
   })
@@ -61,21 +61,21 @@ export function addObj(obj) {
 
 export function getObj(id) {
   return request({
-    url: '/job/sysjob/' + id,
+    url: '/job/sys-job/' + id,
     method: 'get'
   })
 }
 
 export function delObj(id) {
   return request({
-    url: '/job/sysjob/' + id,
+    url: '/job/sys-job/' + id,
     method: 'delete'
   })
 }
 
 export function putObj(obj) {
   return request({
-    url: '/job/sysjob',
+    url: '/job/sys-job',
     method: 'put',
     data: obj
   })
@@ -83,14 +83,14 @@ export function putObj(obj) {
 
 export function isValidCron(obj) {
   return request({
-    url: "/job/sysjob/isValidCron?cronExpression=" + obj,
+    url: "/job/sys-job/is-valid-cron?cronExpression=" + obj,
     method: 'post',
   })
 }
 
 export function isValidTaskName(jobName, jobGroup) {
   return request({
-    url: "/job/sysjob/isValidTaskName?jobName=" + jobName + "&jobGroup=" + jobGroup,
+    url: "/job/sys-job/is-valid-task-name?jobName=" + jobName + "&jobGroup=" + jobGroup,
     method: 'post',
   })
 }

+ 12 - 25
src/const/crud/daemon/sysjoblog.js

@@ -15,22 +15,22 @@ export const tableOption = {
     {
       label: 'id',
       prop: 'jobLogId',
-      hide: true,
+      hide: true
     },
     {
       label: '任务id',
       prop: 'jobId',
-      hide: true,
+      hide: true
     },
     {
       label: '任务名称',
       prop: 'jobName',
-      search: true,
+      search: true
     },
     {
       label: '任务组名',
       prop: 'jobGroup',
-      search: true,
+      search: true
     },
     {
       label: '组内顺序',
@@ -40,18 +40,14 @@ export const tableOption = {
     {
       label: '类型',
       prop: 'jobType',
-      type:
-        'select',
-      dicUrl:
-        '/admin/dict/type/job_type',
-      dicMethod:
-        'get',
-      width: 100,
+      type: 'select',
+      dicUrl: '/admin/dict/type/job_type',
+      width: 100
     },
     {
       label: '执行文件',
       prop: 'className',
-      overHidden: true,
+      overHidden: true
     },
     {
       label: '执行方法',
@@ -63,24 +59,20 @@ export const tableOption = {
       label: '执行参数值',
       prop: 'methodParamsValue',
       width: 100,
-      overHidden: true,
+      overHidden: true
     },
     {
       label: 'cron表达式',
       prop: 'cronExpression',
       width: 100,
-      overHidden: true,
+      overHidden: true
     },
     {
       label: '状态',
       prop: 'jobLogStatus',
       search: true,
-      type:
-        'select',
-      dicUrl:
-        '/admin/dict/type/job_execute_status',
-      dicMethod:
-        'get',
+      type: 'select',
+      dicUrl: '/admin/dict/type/job_execute_status',
       slot: true
     },
     {
@@ -104,11 +96,6 @@ export const tableOption = {
       format: 'yyyy-MM-dd HH:mm:ss',
       valueFormat: 'yyyy-MM-dd HH:mm:ss',
       width: 160,
-    },
-    {
-      label: '租户',
-      prop: 'tenantId',
-      hide: true
     }
   ]
 };

+ 102 - 224
src/const/crud/daemon/sysjob.js

@@ -1,15 +1,5 @@
-import {isValidCron} from '@/api/daemon/sysjob'
+import {isValidCron} from '@/api/daemon/sys-job'
 
-var validateCron = (rule, value, callback) => {
-  isValidCron(value).then(response => {
-    let result = response.data.data;
-    if (result != 0) {
-      callback(new Error('cron表达式错误'))
-    } else {
-      callback();
-    }
-  })
-}
 export const tableOption = {
     border: true,
     card: true,
@@ -56,10 +46,8 @@ export const tableOption = {
       },
       {
         label: '任务组名',
-        prop:
-          'jobGroup',
-        search:
-          true,
+        prop: 'jobGroup',
+        search: true,
         rules:
           [{
             required: true,
@@ -73,171 +61,100 @@ export const tableOption = {
         prop: 'jobStatus',
         type: 'select',
         dicUrl: '/admin/dict/type/job_status',
-        dicMethod: 'get',
         addVisdiplay: false,
-        search:
-          true,
-        slot:
-          true
-      }
-      ,
+        search: true,
+        slot: true
+      },
       {
         label: '执行状态',
         prop: 'jobExecuteStatus',
         type: 'select',
         dicUrl: '/admin/dict/type/job_execute_status',
-        dicMethod: 'get',
         addVisdiplay: false,
         search: true,
         slot: true
-      }
-      ,
+      },
       {
         label: '创建者',
-        prop:
-          'createBy',
-        hide:
-          true,
-        addVisdiplay:
-          false,
-        editVisdiplay:
-          false
-      }
-      ,
+        prop: 'createBy',
+        hide: true,
+        addVisdiplay: false,
+        editVisdiplay: false
+      },
       {
         label: '创建时间',
-        prop:
-          'createTime',
-        type:
-          'datetime',
-        hide:
-          true,
-        format:
-          'yyyy-MM-dd HH:mm:ss',
-        valueFormat:
-          'yyyy-MM-dd HH:mm:ss',
-        width:
-          120,
-        addVisdiplay:
-          false,
-        editVisdiplay:
-          false
-      }
-      ,
+        prop: 'createTime',
+        type: 'datetime',
+        hide: true,
+        format: 'yyyy-MM-dd HH:mm:ss',
+        valueFormat: 'yyyy-MM-dd HH:mm:ss',
+        width: 120,
+        addVisdiplay: false,
+        editVisdiplay: false
+      },
       {
         label: '更新者',
-        prop:
-          'updateBy',
-        hide:
-          true,
-        addVisdiplay:
-          false,
-        editVisdiplay:
-          false
-      }
-      ,
+        prop: 'updateBy',
+        hide: true,
+        addVisdiplay: false,
+        editVisdiplay: false
+      },
       {
         label: '更新时间',
-        prop:
-          'updateTime',
-        type:
-          'datetime',
-        hide:
-          true,
-        format:
-          'yyyy-MM-dd HH:mm:ss',
-        valueFormat:
-          'yyyy-MM-dd HH:mm:ss',
-        width:
-          160,
-        addVisdiplay:
-          false,
-        editVisdiplay:
-          false
-      }
-      ,
+        prop: 'updateTime',
+        type: 'datetime',
+        hide: true,
+        format: 'yyyy-MM-dd HH:mm:ss',
+        valueFormat: 'yyyy-MM-dd HH:mm:ss',
+        width: 160,
+        addVisdiplay: false,
+        editVisdiplay: false
+      },
       {
         label: '首次执行时间',
-        prop:
-          'starttime',
-        type:
-          'datetime',
-        format:
-          'yyyy-MM-dd HH:mm:ss',
-        valueFormat:
-          'yyyy-MM-dd HH:mm:ss',
-        width:
-          160,
-        addVisdiplay:
-          false,
-        editDisabled:
-          true
-      }
-      ,
-      {
+        prop: 'startTime',
+        type: 'datetime',
+        format: 'yyyy-MM-dd HH:mm:ss',
+        valueFormat: 'yyyy-MM-dd HH:mm:ss',
+        width: 160,
+        addVisdiplay: false,
+        editDisabled: true
+      }, {
         label: '上次执行时间',
-        prop:
-          'previoustime',
-        type:
-          'datetime',
-        format:
-          'yyyy-MM-dd HH:mm:ss',
-        valueFormat:
-          'yyyy-MM-dd HH:mm:ss',
-        width:
-          160,
-        addVisdiplay:
-          false,
-        editDisabled:
-          true
-      }
-      ,
-      {
+        prop: 'previousTime',
+        type: 'datetime',
+        format: 'yyyy-MM-dd HH:mm:ss',
+        valueFormat: 'yyyy-MM-dd HH:mm:ss',
+        width: 160,
+        addVisdiplay: false,
+        editDisabled: true
+      }, {
         label: '下次执行时间',
-        prop:
-          'nexttime',
-        type:
-          'datetime',
-        format:
-          'yyyy-MM-dd HH:mm:ss',
-        valueFormat:
-          'yyyy-MM-dd HH:mm:ss',
-        width:
-          160,
-        addVisdiplay:
-          false,
-        editDisabled:
-          true
-      }
-      ,
+        prop: 'nextTime',
+        type: 'datetime',
+        format: 'yyyy-MM-dd HH:mm:ss',
+        valueFormat: 'yyyy-MM-dd HH:mm:ss',
+        width: 160,
+        addVisdiplay: false,
+        editDisabled: true
+      },
       {
         label: '组内顺序',
-        prop:
-          'jobOrder',
+        prop: 'jobOrder',
         hide: true,
         addDisplay: false,
         editDisplay: false,
-        rules: [{
-          validator: (rule, value, callback) => {
-            if (value > 9) {
-              callback(new Error('请输入1-9数字'));
-            }
-            callback();
-
-          }, trigger: 'blur'
-        }],
-      }
-      ,
+        type: 'silder',
+        step: 1,
+        min:1,
+        max: 9,
+        showStops: true
+      },
       {
         label: '类型',
-        prop:
-          'jobType',
-        type:
-          'select',
-        dicUrl:
-          '/admin/dict/type/job_type',
-        dicMethod:
-          'get',
+        prop: 'jobType',
+        type: 'select',
+        dicUrl: '/admin/dict/type/job_type',
         width: 100,
         rules:
           [{
@@ -245,44 +162,29 @@ export const tableOption = {
             message: '请输入任务类型',
             trigger: 'blur'
           }]
-      }
-      ,
+      },
       {
         label: '执行路径',
-        prop:
-          'executePath',
-        overHidden:
-          true,
-      }
-      ,
+        prop: 'executePath',
+        overHidden: true,
+      },
       {
         label: '执行文件',
-        prop:
-          'className',
-        overHidden:
-          true
-      }
-      ,
+        prop: 'className',
+        overHidden: true
+      },
       {
         label: '执行方法',
-        prop:
-          'methodName',
-        overHidden:
-          true,
-        width:
-          120
-      }
-      ,
+        prop: 'methodName',
+        overHidden: true,
+        width: 120
+      },
       {
         label: '执行参数值',
-        prop:
-          'methodParamsValue',
-        width:
-          100,
-        overHidden:
-          true,
-      }
-      ,
+        prop: 'methodParamsValue',
+        width: 100,
+        overHidden: true
+      },
       {
         label: 'cron表达式',
         prop:'cronExpression',
@@ -294,50 +196,34 @@ export const tableOption = {
             max: 200,
             message: '请输入cron表达式',
             trigger: 'blur'
-          }, {validator: validateCron, trigger: 'blur'}]
-      }
-      ,
+          }]
+      },
       {
         label: '错失执行策略',
-        prop:
-          'misfirePolicy',
-        type:
-          'select',
-        dicUrl:
-          '/admin/dict/type/misfire_policy',
-        dicMethod:
-          'get',
-        width:
-          120,
+        prop: 'misfirePolicy',
+        type: 'select',
+        dicUrl: '/admin/dict/type/misfire_policy',
+        width: 120,
         rules:
           [{
             required: true,
             message: '请输入任务错失执行策略',
             trigger: 'blur'
           }]
-      }
-      ,
+      },
       {
         label: '租户',
-        prop:
-          'tenantId',
+        prop: 'tenantId',
         hide: true,
-        addVisdiplay:
-          false,
-        editVisdiplay:
-          false
-      }
-      ,
+        addVisdiplay: false,
+        editVisdiplay: false
+      },
       {
         label: '备注信息',
-        prop:
-          'remark',
-        type:
-          'textarea',
-        span:
-          20,
-        overHidden:
-          true,
+        prop: 'remark',
+        type: 'textarea',
+        span: 20,
+        overHidden: true,
         rules:
           [{
             max: 500,
@@ -346,8 +232,7 @@ export const tableOption = {
           }]
       }
     ]
-  }
-;
+  };
 
 export const tableLogOption = {
   border: true,
@@ -385,8 +270,7 @@ export const tableLogOption = {
       prop: 'jobLogStatus',
       type: 'select',
       dicUrl: '/admin/dict/type/job_execute_status',
-      dicMethod: 'get',
-      slot: true,
+      slot: true
     },
     {
       label: '组内顺序',
@@ -398,8 +282,7 @@ export const tableLogOption = {
       prop: 'jobType',
       type: 'select',
       dicUrl: '/admin/dict/type/job_type',
-      dicMethod: 'get',
-      width: 100,
+      width: 100
     },
     {
       label: '执行路径',
@@ -450,11 +333,6 @@ export const tableLogOption = {
       format: 'yyyy-MM-dd HH:mm:ss',
       valueFormat: 'yyyy-MM-dd HH:mm:ss',
       width: 160
-    },
-    {
-      label: '租户',
-      prop: 'tenantId',
-      hide: true
     }
   ]
 };

+ 13 - 5
src/views/daemon/joblog/index.vue

@@ -24,13 +24,21 @@
 </template>
 
 <script>
-  import {fetchList} from '@/api/daemon/sysjoblog'
-  import {tableOption} from '@/const/crud/daemon/sysjoblog'
-  import {remote} from '@/api/admin/dict'
-  import {mapGetters} from 'vuex'
+  import {
+    fetchList
+  } from '@/api/daemon/sys-job-log'
+  import {
+    tableOption
+  } from '@/const/crud/daemon/sys-job-log'
+  import {
+    remote
+  } from '@/api/admin/dict'
+  import {
+    mapGetters
+  } from 'vuex'
 
   export default {
-    name: 'joblog',
+    name: 'job-log',
     data() {
       return {
         queryParams: [],//全局检索条件

+ 23 - 14
src/views/daemon/jobmanage/index.vue

@@ -44,21 +44,21 @@
         </template>
 
         <template slot="menuLeft">
-          <el-button type="primary" @click="handleAdd" size="small" v-if="permissions.job_sysjob_add">
+          <el-button type="primary" @click="handleAdd" size="small" v-if="permissions.job_sys_job_add">
             新建任务
           </el-button>
           <el-tooltip content="暂停全部运行状态的定时任务" placement="top">
-            <el-button type="warning" @click="shutdownJobs" size="small" v-if="permissions.job_sysjob_shutdownJob">
+            <el-button type="warning" @click="shutdownJobs" size="small" v-if="permissions.job_sys_job_shutdown_job">
               暂停全部任务
             </el-button>
           </el-tooltip>
           <el-tooltip content="启动全部暂停状态的定时任务" placement="top">
-            <el-button type="success" @click="startJobs" size="small" v-if="permissions.job_sysjob_startJob">
+            <el-button type="success" @click="startJobs" size="small" v-if="permissions.job_sys_job_start_job">
               启动全部任务
             </el-button>
           </el-tooltip>
           <el-tooltip content="谨慎使用" placement="top">
-            <el-button type="danger" @click="refreshJobs" size="small" v-if="permissions.job_sysjob_refreshJob">重置全部任务
+            <el-button type="danger" @click="refreshJobs" size="small" v-if="permissions.job_sys_job_refresh_job">重置全部任务
             </el-button>
           </el-tooltip>
         </template>
@@ -73,26 +73,26 @@
           <el-button type="text"
                      icon="el-icon-caret-right"
                      size="mini"
-                     v-if="permissions.job_sysjob_startJob"
+                     v-if="permissions.job_sys_job_start_job"
                      plain
                      @click="handleStartJob(scope.row)">启动
           </el-button>
           <el-button type="text"
                      icon="el-icon-error"
                      size="mini"
-                     v-if="permissions.job_sysjob_shutdownJob"
+                     v-if="permissions.job_sys_job_shutdown_job"
                      plain
                      @click="handleShutDownJob(scope.row)">暂停
           </el-button>
           <el-button type="text"
                      icon="el-icon-edit"
                      size="mini"
-                     v-if="permissions.job_sysjob_edit"
+                     v-if="permissions.job_sys_job_edit"
                      plain
                      @click="handleUpdate(scope.row,scope.index)">修改
           </el-button>
           <el-button type="text"
-                     v-if="permissions.job_sysjob_del"
+                     v-if="permissions.job_sys_job_del"
                      icon="el-icon-delete"
                      size="mini"
                      plain
@@ -136,15 +136,24 @@
     shutdownJobsRa,
     startJobRa,
     startJobsRa
-  } from '@/api/daemon/sysjob'
-  import {tableLogOption, tableOption} from '@/const/crud/daemon/sysjob'
-  import {remote} from '@/api/admin/dict'
-  import {mapGetters} from 'vuex'
-  import {cron} from 'vue-cron'
+  } from '@/api/daemon/sys-job'
+  import {
+    tableLogOption,
+    tableOption
+  } from '@/const/crud/daemon/sys-job'
+  import {
+    remote
+  } from '@/api/admin/dict'
+  import {
+    mapGetters
+  } from 'vuex'
+  import {
+    cron
+  } from 'vue-cron'
 
   export default {
     components: {cron},
-    name: 'sysmanage',
+    name: 'sys-manage',
     data() {
       return {
         form: {},

+ 5 - 0
vue.config.js

@@ -1,3 +1,7 @@
+/**
+ * 配置参考:
+ * https://cli.vuejs.org/zh/config/
+ */
 const url = 'http://127.0.0.1:9999'
 module.exports = {
   lintOnSave: true,
@@ -22,6 +26,7 @@ module.exports = {
   // 配置转发代理
   devServer: {
     disableHostCheck: true,
+    port:8080,
     proxy: {
       '/auth': {
         target: url,