Bläddra i källkod

Merge branch 'dev'

linwenxiang 4 år sedan
förälder
incheckning
74a4be2f81
45 ändrade filer med 1174 tillägg och 243 borttagningar
  1. 14 0
      Dockerfile
  2. 5 3
      package.json
  3. 26 0
      scripts/.drone.yml
  4. 55 0
      scripts/k8s/default.conf
  5. 65 0
      scripts/k8s/deploy.yml
  6. 3 0
      scripts/k8s/prerun.sh
  7. 5 5
      src/App.vue
  8. 2 2
      src/api/file.js
  9. 2 2
      src/api/syscategory.js
  10. 46 0
      src/api/syschinaareadata.js
  11. 6 5
      src/api/syscontent.js
  12. 3 4
      src/api/system/config.js
  13. 3 3
      src/api/system/dept.js
  14. 3 3
      src/api/system/dict/data.js
  15. 6 5
      src/api/system/dict/type.js
  16. 3 3
      src/api/system/menu.js
  17. 3 3
      src/api/system/post.js
  18. 7 11
      src/api/system/role.js
  19. 1 1
      src/api/system/sysuser.js
  20. 46 0
      src/api/wf_classify.js
  21. 13 13
      src/components/FileChoose/index.vue
  22. 63 72
      src/components/FileManage/Left.vue
  23. 5 6
      src/components/FileManage/Right.vue
  24. 1 1
      src/store/modules/system.js
  25. 3 3
      src/styles/index.scss
  26. 1 0
      src/utils/request.js
  27. 6 6
      src/views/config/index.vue
  28. 2 2
      src/views/dept/index.vue
  29. 2 2
      src/views/dict/data.vue
  30. 9 9
      src/views/dict/index.vue
  31. 2 2
      src/views/login/index.vue
  32. 10 4
      src/views/loginlog/index.vue
  33. 1 1
      src/views/menu/index.vue
  34. 7 8
      src/views/operlog/index.vue
  35. 1 1
      src/views/post/index.vue
  36. 4 4
      src/views/profile/index.vue
  37. 9 9
      src/views/role/index.vue
  38. 8 8
      src/views/syscategory/index.vue
  39. 352 0
      src/views/syschinaareadata/index.vue
  40. 1 1
      src/views/syscontent/create.vue
  41. 1 1
      src/views/syscontent/edit.vue
  42. 3 2
      src/views/syscontent/index.vue
  43. 23 17
      src/views/system/settings.vue
  44. 37 21
      src/views/sysuser/index.vue
  45. 306 0
      src/views/wf_classify/index.vue

+ 14 - 0
Dockerfile

@@ -0,0 +1,14 @@
+FROM registry.cn-shanghai.aliyuncs.com/lwmeng/node:lts-alpine as build-stage
+WORKDIR /app
+COPY package*.json ./
+RUN npm install -g cnpm --registry=https://registry.npm.taobao.org
+RUN cnpm install
+COPY . .
+RUN npm run build:prod
+
+# production stage
+FROM registry.cn-shanghai.aliyuncs.com/lwmeng/nginx
+COPY --from=build-stage /app/dist /usr/share/nginx/html
+
+EXPOSE 80
+CMD ["nginx", "-g", "daemon off;"]

+ 5 - 3
package.json

@@ -1,8 +1,8 @@
 {
   "name": "go-admin",
-  "version": "1.2.2",
+  "version": "1.2.3",
   "description": "A magical vue admin. An out-of-box UI solution for enterprise applications. Newest development stack of vue. Lots of awesome features",
-  "author": "https://github.com/wenjianzhang/go-admin-ui",
+  "author": "https://github.com/wenjianzhang",
   "license": "MIT",
   "scripts": {
     "dev": "vue-cli-service serve",
@@ -29,6 +29,8 @@
   "keywords": [
     "vue",
     "admin",
+    "go-admin",
+    "go-admin-ui",
     "dashboard",
     "element-ui",
     "boilerplate",
@@ -46,7 +48,7 @@
     "@riophae/vue-treeselect": "0.4.0",
     "@tinymce/tinymce-vue": "^3.2.2",
     "awe-dnd": "^0.3.4",
-    "axios": "0.19.2",
+    "axios": "0.21.1",
     "clipboard": "2.0.6",
     "codemirror": "5.56.0",
     "core-js": "^3.6.5",

+ 26 - 0
scripts/.drone.yml

@@ -0,0 +1,26 @@
+kind: pipeline
+type: kubernetes
+name: default
+
+steps:
+  - name: cmd
+    image: alpine
+    commands:
+      - sed -i 's/DRONE_COMMIT/${DRONE_COMMIT}/g' scripts/k8s/deploy.yml
+  - name: docker
+    image: plugins/docker
+    settings:
+      username:
+        from_secret: username
+      password:
+        from_secret: password
+      repo: registry.cn-shanghai.aliyuncs.com/go-admin-team/go-admin-ui
+      tags: v1.2.2
+      registry: registry.cn-shanghai.aliyuncs.com
+  - name: dron8s
+    image: bh90210/dron8s:latest
+    settings:
+      yaml:
+        - ./scripts/k8s/deploy.yml
+      kubeconfig:
+        from_secret: kubeconfig

+ 55 - 0
scripts/k8s/default.conf

@@ -0,0 +1,55 @@
+server {
+  listen       80;
+  listen  [::]:80;
+  server_name  localhost;
+
+  #charset koi8-r;
+  #access_log  /var/log/nginx/host.access.log  main;
+
+  location / {
+      root   /usr/share/nginx/html;
+      index  index.html index.htm;
+  }
+
+  location /api {
+    proxy_pass http://go-admin:8000/api;
+    proxy_http_version 1.1;
+    proxy_set_header Connection “”;
+    proxy_connect_timeout 300s;
+    proxy_send_timeout 900;
+    proxy_read_timeout 900;
+    proxy_buffer_size 32k;
+    proxy_buffers 4 64k;
+    proxy_busy_buffers_size 128k;
+    proxy_redirect off;
+    proxy_hide_header Vary;
+    proxy_set_header Accept-Encoding '';
+    proxy_set_header Referer $http_referer;
+    proxy_set_header Cookie $http_cookie;
+    proxy_set_header Host $host;
+    proxy_set_header X-Real-IP $remote_addr;
+    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+    proxy_set_header X-Forwarded-Proto $scheme;
+  }
+
+  location /login {
+    proxy_pass http://go-admin:8000/login;
+    proxy_http_version 1.1;
+    proxy_set_header Connection “”;
+    proxy_connect_timeout 300s;
+    proxy_send_timeout 900;
+    proxy_read_timeout 900;
+    proxy_buffer_size 32k;
+    proxy_buffers 4 64k;
+    proxy_busy_buffers_size 128k;
+    proxy_redirect off;
+    proxy_hide_header Vary;
+    proxy_set_header Accept-Encoding '';
+    proxy_set_header Referer $http_referer;
+    proxy_set_header Cookie $http_cookie;
+    proxy_set_header Host $host;
+    proxy_set_header X-Real-IP $remote_addr;
+    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+    proxy_set_header X-Forwarded-Proto $scheme;
+  }
+}

+ 65 - 0
scripts/k8s/deploy.yml

@@ -0,0 +1,65 @@
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: go-admin-ui
+  namespace: go-admin
+  labels:
+    app: go-admin-ui
+    service: go-admim-ui
+spec:
+  ports:
+    - port: 80
+      name: http
+      protocol: TCP
+  selector:
+    app: go-admin-ui
+---
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+  name: go-admin-go-admin-ui
+  namespace: go-admin
+  labels:
+    account: go-admin-ui
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: go-admin-ui-v1
+  namespace: go-admin
+  labels:
+    app: go-admin-ui
+    version: v1
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: go-admin-ui
+      version: v1
+  template:
+    metadata:
+      labels:
+        app: go-admin-ui
+        version: v1
+    spec:
+      serviceAccountName: go-admin-go-admin-ui
+      containers:
+        - name: go-admin-ui
+          image: registry.cn-shanghai.aliyuncs.com/go-admin-team/go-admin-ui:v1.2.2
+          #imagePullPolicy: IfNotPresent
+          ports:
+            - containerPort: 80
+          volumeMounts:
+            - name: frontendconf
+              mountPath: /etc/nginx/conf.d/default.conf
+              subPath: default.conf
+              readOnly: true
+          env:
+            - name: COMMIT_TAG
+              value: "DRONE_COMMIT"
+      volumes:
+        - name: frontendconf
+          configMap:
+            name: nginx-frontend
+---

+ 3 - 0
scripts/k8s/prerun.sh

@@ -0,0 +1,3 @@
+#!/bin/bash
+kubectl create ns go-admin
+kubectl create configmap nginx-frontend --from-file=./default.conf -n go-admin

+ 5 - 5
src/App.vue

@@ -20,10 +20,10 @@ var _hmt = _hmt || [];
 </script>
 
 <style lang="scss">
-  .el-dialog__wrapper{
-    display: flex;
-    justify-content: center;
-    align-items: center;
-  }
+  // .el-dialog__wrapper{
+  //   display: flex;
+  //   justify-content: center;
+  //   align-items: center;
+  // }
 </style>
 

+ 2 - 2
src/api/file.js

@@ -14,7 +14,7 @@ export const sysfiledirAcionAdd = data => request({
 })
 
 export const sysfiledirAcionEdit = data => request({
-  url: '/api/v1/sysfiledir/' + data.ID,
+  url: '/api/v1/sysfiledir/' + data.id,
   method: 'PUT',
   data
 })
@@ -42,7 +42,7 @@ export const sysfileinfoAdd = data => request({
 })
 
 export const sysfileinfoEdit = data => request({
-  url: '/api/v1/sysfileinfo/' + data.ID,
+  url: '/api/v1/sysfileinfo/' + data.id,
   method: 'put',
   data
 })

+ 2 - 2
src/api/syscategory.js

@@ -29,7 +29,7 @@ export function addSysCategory(data) {
 // 修改SysCategory
 export function updateSysCategory(data) {
   return request({
-    url: '/api/v1/syscategory/' + data.ID,
+    url: '/api/v1/syscategory/' + data.id,
     method: 'put',
     data: data
   })
@@ -38,7 +38,7 @@ export function updateSysCategory(data) {
 // 删除SysCategory
 export function delSysCategory(data) {
   return request({
-    url: '/api/v1/syscategory/',
+    url: '/api/v1/syscategory',
     method: 'delete',
     data: data
   })

+ 46 - 0
src/api/syschinaareadata.js

@@ -0,0 +1,46 @@
+import request from '@/utils/request'
+
+// 查询SysChinaAreaData列表
+export function listSysChinaAreaData(query) {
+  return request({
+    url: '/api/v1/sys_china_area_data',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询SysChinaAreaData详细
+export function getSysChinaAreaData(id) {
+  return request({
+    url: '/api/v1/sys_china_area_data/' + id,
+    method: 'get'
+  })
+}
+
+// 新增SysChinaAreaData
+export function addSysChinaAreaData(data) {
+  return request({
+    url: '/api/v1/sys_china_area_data',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改SysChinaAreaData
+export function updateSysChinaAreaData(data) {
+  return request({
+    url: '/api/v1/sys_china_area_data/' + data.id,
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除SysChinaAreaData
+export function delSysChinaAreaData(data) {
+  return request({
+    url: '/api/v1/sys_china_area_data',
+    method: 'delete',
+    data: data
+  })
+}
+

+ 6 - 5
src/api/syscontent.js

@@ -3,7 +3,7 @@ import request from '@/utils/request'
 // 查询SysContent列表
 export function listSysContent(query) {
   return request({
-    url: '/api/v1/syscontentList',
+    url: '/api/v1/syscontent',
     method: 'get',
     params: query
   })
@@ -29,17 +29,18 @@ export function addSysContent(data) {
 // 修改SysContent
 export function updateSysContent(data) {
   return request({
-    url: '/api/v1/syscontent',
+    url: '/api/v1/syscontent/' + data.id,
     method: 'put',
     data: data
   })
 }
 
 // 删除SysContent
-export function delSysContent(id) {
+export function delSysContent(data) {
   return request({
-    url: '/api/v1/syscontent/' + id,
-    method: 'delete'
+    url: '/api/v1/syscontent',
+    method: 'delete',
+    data: data
   })
 }
 

+ 3 - 4
src/api/system/config.js

@@ -20,9 +20,8 @@ export function getConfig(configId) {
 // 根据参数键名查询参数值
 export function getConfigKey(configKey) {
   return request({
-    url: '/api/v1/configKey',
-    method: 'post',
-    data: { 'configKey': configKey }
+    url: '/api/v1/configKey/' + configKey,
+    method: 'get'
   })
 }
 
@@ -38,7 +37,7 @@ export function addConfig(data) {
 // 修改参数配置
 export function updateConfig(data) {
   return request({
-    url: '/api/v1/config/' + data.ID,
+    url: '/api/v1/config/' + data.id,
     method: 'put',
     data: data
   })

+ 3 - 3
src/api/system/dept.js

@@ -2,7 +2,7 @@ import request from '@/utils/request'
 
 export function getDeptList(query) {
   return request({
-    url: '/api/v1/deptList',
+    url: '/api/v1/dept',
     method: 'get',
     params: query
   })
@@ -42,9 +42,9 @@ export function addDept(data) {
 }
 
 // 修改部门
-export function updateDept(data) {
+export function updateDept(data, id) {
   return request({
-    url: '/api/v1/dept',
+    url: '/api/v1/dept/' + id,
     method: 'put',
     data: data
   })

+ 3 - 3
src/api/system/dict/data.js

@@ -3,7 +3,7 @@ import request from '@/utils/request'
 // 查询字典数据列表
 export function listData(query) {
   return request({
-    url: '/api/v1/dict/datalist?dictType=' + query.dictType,
+    url: '/api/v1/dict/data?dictType=' + query.dictType,
     method: 'get',
     params: query
   })
@@ -20,7 +20,7 @@ export function getData(dictCode) {
 // 根据字典类型查询字典数据信息
 export function getDicts(dictType) {
   return request({
-    url: '/api/v1/dict/databytype/' + dictType,
+    url: '/api/v1/dict/data-all?dictType=' + dictType,
     method: 'get'
   })
 }
@@ -37,7 +37,7 @@ export function addData(data) {
 // 修改字典数据
 export function updateData(data) {
   return request({
-    url: '/api/v1/dict/data/',
+    url: '/api/v1/dict/data/' + data.dictCode,
     method: 'put',
     data: data
   })

+ 6 - 5
src/api/system/dict/type.js

@@ -3,7 +3,7 @@ import request from '@/utils/request'
 // 查询字典类型列表
 export function listType(query) {
   return request({
-    url: '/api/v1/dict/typelist',
+    url: '/api/v1/dict/type',
     method: 'get',
     params: query
   })
@@ -29,7 +29,7 @@ export function addType(data) {
 // 修改字典类型
 export function updateType(data) {
   return request({
-    url: '/api/v1/dict/type',
+    url: '/api/v1/dict/type/' + data.id,
     method: 'put',
     data: data
   })
@@ -38,8 +38,9 @@ export function updateType(data) {
 // 删除字典类型
 export function delType(dictId) {
   return request({
-    url: '/api/v1/dict/type/' + dictId,
-    method: 'delete'
+    url: '/api/v1/dict/type',
+    method: 'delete',
+    data: dictId
   })
 }
 
@@ -55,7 +56,7 @@ export function exportType(query) {
 // 获取字典选择框列表
 export function optionselect() {
   return request({
-    url: '/api/v1/dict/typeoptionselect',
+    url: '/api/v1/dict/type-option-select',
     method: 'get'
   })
 }

+ 3 - 3
src/api/system/menu.js

@@ -3,7 +3,7 @@ import request from '@/utils/request'
 // 查询菜单列表
 export function listMenu(query) {
   return request({
-    url: '/api/v1/menulist',
+    url: '/api/v1/menu',
     method: 'get',
     params: query
   })
@@ -43,9 +43,9 @@ export function addMenu(data) {
 }
 
 // 修改菜单
-export function updateMenu(data) {
+export function updateMenu(data, id) {
   return request({
-    url: '/api/v1/menu',
+    url: '/api/v1/menu/' + id,
     method: 'put',
     data: data
   })

+ 3 - 3
src/api/system/post.js

@@ -3,7 +3,7 @@ import request from '@/utils/request'
 // 查询岗位列表
 export function listPost(query) {
   return request({
-    url: '/api/v1/postlist',
+    url: '/api/v1/post',
     method: 'get',
     params: query
   })
@@ -27,9 +27,9 @@ export function addPost(data) {
 }
 
 // 修改岗位
-export function updatePost(data) {
+export function updatePost(data, id) {
   return request({
-    url: '/api/v1/post',
+    url: '/api/v1/post/' + id,
     method: 'put',
     data: data
   })

+ 7 - 11
src/api/system/role.js

@@ -3,7 +3,7 @@ import request from '@/utils/request'
 // 查询角色列表
 export function listRole(query) {
   return request({
-    url: '/api/v1/rolelist',
+    url: '/api/v1/role',
     method: 'get',
     params: query
   })
@@ -27,9 +27,9 @@ export function addRole(data) {
 }
 
 // 修改角色
-export function updateRole(data) {
+export function updateRole(data, roleId) {
   return request({
-    url: '/api/v1/role',
+    url: '/api/v1/role/' + roleId,
     method: 'put',
     data: data
   })
@@ -47,21 +47,17 @@ export function dataScope(data) {
 // 角色状态修改
 export function changeRoleStatus(roleId, status) {
   const data = {
-    roleId,
     status
   }
-  return request({
-    url: '/api/v1/role',
-    method: 'put',
-    data: data
-  })
+  return updateRole(data, roleId)
 }
 
 // 删除角色
 export function delRole(roleId) {
   return request({
-    url: '/api/v1/role/' + roleId,
-    method: 'delete'
+    url: '/api/v1/role',
+    method: 'delete',
+    data: roleId
   })
 }
 

+ 1 - 1
src/api/system/sysuser.js

@@ -3,7 +3,7 @@ import request from '@/utils/request'
 // 查询用户列表
 export function listUser(query) {
   return request({
-    url: '/api/v1/sysUserList',
+    url: '/api/v1/sysUser',
     method: 'get',
     params: query
   })

+ 46 - 0
src/api/wf_classify.js

@@ -0,0 +1,46 @@
+import request from '@/utils/request'
+
+// 查询WfProcessClassify列表
+export function listWfProcessClassify(query) {
+  return request({
+    url: '/api/v1/process',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询WfProcessClassify详细
+export function getWfProcessClassify(id) {
+  return request({
+    url: '/api/v1/process/' + id,
+    method: 'get'
+  })
+}
+
+// 新增WfProcessClassify
+export function addWfProcessClassify(data) {
+  return request({
+    url: '/api/v1/process',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改WfProcessClassify
+export function updateWfProcessClassify(data) {
+  return request({
+    url: '/api/v1/process/' + data.id,
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除WfProcessClassify
+export function delWfProcessClassify(data) {
+  return request({
+    url: '/api/v1/process',
+    method: 'delete',
+    data: data
+  })
+}
+

+ 13 - 13
src/components/FileChoose/index.vue

@@ -14,7 +14,7 @@
           v-model="value"
           :options="options"
           clearable
-          :props="{ expandTrigger: 'hover', checkStrictly: true, value: 'ID' }"
+          :props="{ expandTrigger: 'hover', checkStrictly: true, value: 'id' }"
           @change="handleChange"
         />
       </div>
@@ -24,7 +24,7 @@
             <div class="file-footer-inner">
               <div
                 v-for="(item,index) in fileList"
-                :key="item.ID"
+                :key="item.id"
                 class="file-footer-item"
                 :class=" item.open ? 'file-active' : '' "
                 @click="handleChoose(item,index)"
@@ -204,9 +204,9 @@ export default {
         }
       })
     },
-    getFileInfo(ID) {
+    getFileInfo(id) {
       sysfileinfoList({
-        pId: ID,
+        pId: id,
         pageIndex: this.pageNo,
         pageSize: this.pageSize
       }).then(ret => {
@@ -226,25 +226,25 @@ export default {
       this.handleCancel()
     },
     handleChange() {
-      const ID = this.value[this.value.length - 1]
+      const id = this.value[this.value.length - 1]
       this.total = 0
       this.pageNo = 1
       this.fileList.length = 0
-      if (ID) {
-        this.getFileInfo(ID)
+      if (id) {
+        this.getFileInfo(id)
       }
     },
     handlePage(e) {
       this.pageNo = e
       debugger
-      const ID = this.value[this.value.length - 1]
-      if (ID) {
-        this.getFileInfo(ID)
+      const id = this.value[this.value.length - 1]
+      if (id) {
+        this.getFileInfo(id)
       }
     },
     handleChoose(e, index) {
       if (this.multiple) {
-        const fileIndex = this.resultList.findIndex(item => item.ID === e.ID)
+        const fileIndex = this.resultList.findIndex(item => item.id === e.id)
         if (e.open) {
           if (fileIndex < 0) {
             return false
@@ -272,7 +272,7 @@ export default {
         for (let i = 0; i < this.fileList.length; i++) {
           this.fileList[i].open = false
           for (let j = 0; j < this.resultList.length; j++) {
-            if (this.resultList[j].ID === this.fileList[i].ID) {
+            if (this.resultList[j].id === this.fileList[i].id) {
               this.fileList[i].open = true
             }
             continue
@@ -280,7 +280,7 @@ export default {
         }
       } else {
         for (let i = 0; i < this.fileList.length; i++) {
-          if (this.resultList.every(e => e.ID === this.fileList[i].ID)) {
+          if (this.resultList.every(e => e.id === this.fileList[i].id)) {
             this.fileList[i].open = true
           } else {
             this.fileList[i].open = false

+ 63 - 72
src/components/FileManage/Left.vue

@@ -15,13 +15,14 @@
           @node-click="handleNodeClick"
         >
 
+          <!-- /* eslint-disable */ -->
           <span slot-scope="{ node, data }" class="custom-tree-node">
             <span>
               <i
                 v-show="node.childNodes.length > 0"
                 :class="node.expanded ? 'el-icon-folder-opened icon' : 'el-icon-folder icon'"
               />
-              <span v-if="rename.status && rename.node.ID === data.ID">
+              <span v-if="rename.status && rename.node.id === data.id">
                 <input
                   ref="nodeInput"
                   v-focus="rename.status"
@@ -46,44 +47,17 @@
       :style="{ ...rightMenu }"
       class="contextmenu"
     >
-      <div
-        class="contextMenu-item left-contextMenu-item"
-        @click="handleAction(1)"
-        @mouseover="handleTagsOver(0)"
-        @mouseleave="handleTagsLeave(0)"
-      >
-        <i class="el-icon-folder-add" />
-        <span>创建目录</span>
-      </div>
-      <el-divider />
-      <div
-        class="contextMenu-item left-contextMenu-item"
-        @click="handleAction(2)"
-        @mouseover="handleTagsOver(1)"
-        @mouseleave="handleTagsLeave(1)"
-      >
-        <i class="el-icon-upload2" />
-        <span>上传</span>
-      </div>
-      <el-divider />
-      <div
-        class="contextMenu-item left-contextMenu-item"
-        @click="handleAction(3)"
-        @mouseover="handleTagsOver(2)"
-        @mouseleave="handleTagsLeave(2)"
-      >
-        <i class="el-icon-edit" />
-        <span>重命名</span>
-      </div>
-      <el-divider />
-      <div
-        class="contextMenu-item left-contextMenu-item"
-        @click="handleAction(4)"
-        @mouseover="handleTagsOver(3)"
-        @mouseleave="handleTagsLeave(3)"
-      >
-        <i class="el-icon-folder-delete" />
-        <span>删除</span>
+      <div v-for="(item, index) in rightOptions" :key="index">
+        <div
+          class="contextMenu-item left-contextMenu-item"
+          @click="handleAction(index)"
+          @mouseover="handleTagsOver(index)"
+          @mouseleave="handleTagsLeave(index)"
+        >
+          <i :class="item.icon" />
+          <span>{{ item.label }}</span>
+        </div>
+        <el-divider />
       </div>
     </div>
     <upload-dialog
@@ -122,6 +96,52 @@ export default {
   },
   data() {
     return {
+      rightOptions: [
+        {
+          label: '创建目录',
+          icon: 'el-icon-folder-add',
+          f: () => {
+            sysfiledirAcionAdd({
+              label: '新建文件夹',
+              pId: this.rightData.currentData.id
+            }).then(ret => {
+              if (ret.code === 200) {
+                this.$refs.tree.append(ret.data, this.rightData.currentData.id)
+                this.getDirList()
+              }
+            })
+          }
+        },
+        // {
+        //   label: '上传',
+        //   icon: 'el-icon-upload2',
+        //   f: () => {
+        //     this.uploadShow = true
+        //   }
+        // },
+        {
+          label: '重命名',
+          icon: 'el-icon-edit',
+          f: () => {
+            this.rename = {
+              status: true,
+              node: this.rightData.currentData
+            }
+            console.log(this.rename)
+          }
+        },
+        {
+          label: '删除',
+          icon: 'el-icon-folder-delete',
+          f: () => {
+            sysfiledirAcionDel(this.rightData.currentData.id).then(ret => {
+              if (ret.code === 200) {
+                this.$refs.tree.remove(this.rightData.currentNode)
+              }
+            })
+          }
+        }
+      ],
       rename: {
         status: false,
         node: ''
@@ -142,7 +162,7 @@ export default {
   },
   methods: {
     handleNodeClick(e) {
-      const result = this.treeFindPath(this.data, node => node.ID === e.ID)
+      const result = this.treeFindPath(this.data, node => node.id === e.id)
       eventBus.$emit('treeNodeClick', {
         treeNodePath: result,
         currentNode: e
@@ -198,12 +218,12 @@ export default {
       d.label = this.$refs.nodeInput.value
       console.log(d)
       sysfiledirAcionEdit({
-        ID: d.ID,
+        id: d.id,
         label: d.label,
         pId: d.pId
       }).then(ret => {
         if (ret.code === 200) {
-          this.$refs.tree.updateKeyChildren(n.ID, d)
+          this.$refs.tree.updateKeyChildren(n.id, d)
         }
       })
     },
@@ -221,36 +241,7 @@ export default {
       }
     },
     handleAction(e) {
-      switch (e) {
-        case 1:
-          sysfiledirAcionAdd({
-            label: '新建文件夹',
-            pId: this.rightData.currentData.ID
-          }).then(ret => {
-            if (ret.code === 200) {
-              this.$refs.tree.append(ret.data, this.rightData.currentData.ID)
-              this.getDirList()
-            }
-          })
-          break
-        case 2:
-          this.uploadShow = true
-          break
-        case 3:
-          this.rename = {
-            status: true,
-            node: this.rightData.currentData
-          }
-          console.log(this.rename)
-          break
-        case 4:
-          sysfiledirAcionDel(this.rightData.currentData.ID).then(ret => {
-            if (ret.code === 200) {
-              this.$refs.tree.remove(this.rightData.currentNode)
-            }
-          })
-          break
-      }
+      this.rightOptions[e].f()
     }
   }
 }

+ 5 - 6
src/components/FileManage/Right.vue

@@ -7,7 +7,7 @@
             <el-breadcrumb separator-class="el-icon-arrow-right" class="dir">
               <el-breadcrumb-item
                 v-for="item in treePath.treeNodePath"
-                :key="item.ID"
+                :key="item.id"
               >{{ item.label }}</el-breadcrumb-item>
             </el-breadcrumb>
           </el-col>
@@ -339,7 +339,7 @@ export default {
       this.getList()
     },
     getList() {
-      const pId = this.treePath.currentNode.ID
+      const pId = this.treePath.currentNode.id
       if (pId) {
         sysfileinfoList({
           pId,
@@ -374,7 +374,7 @@ export default {
           size: `${item.size}`,
           url: item.path,
           fullUrl: item.full_path,
-          pId: this.treePath.currentNode.ID
+          pId: this.treePath.currentNode.id
         })
       })
       return Promise.all(path)
@@ -395,14 +395,13 @@ export default {
           break
         case 2:
           this.tableData.forEach((item, index) => {
-            debugger
-            if (item.ID === this.rightData.currentData.ID) {
+            if (item.id === this.rightData.currentData.id) {
               this.tableData[index].open = true
             }
           })
           break
         case 3:
-          sysfileinfoDelete(this.rightData.currentData.ID).then(ret => {
+          sysfileinfoDelete(this.rightData.currentData.id).then(ret => {
             if (ret.code === 200) {
               this.getList()
             }

+ 1 - 1
src/store/modules/system.js

@@ -28,7 +28,7 @@ const actions = {
       updateSetting(info).then(response => {
         const { data } = response
         commit('SET_INFO', data)
-        resolve(data)
+        resolve(response)
       }).catch(error => {
         reject(error)
       })

+ 3 - 3
src/styles/index.scss

@@ -13,9 +13,9 @@ body {
   font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif;
 }
 
-label {
-  font-weight: 700;
-}
+// label {
+//   font-weight: 700;
+// }
 
 html {
   height: 100%;

+ 1 - 0
src/utils/request.js

@@ -20,6 +20,7 @@ service.interceptors.request.use(
       // ['X-Token'] is a custom headers key
       // please modify it according to the actual situation
       config.headers['Authorization'] = 'Bearer ' + getToken()
+      config.headers['Content-Type'] = 'application/json'
     }
     return config
   },

+ 6 - 6
src/views/config/index.vue

@@ -82,7 +82,7 @@
 
         <el-table v-loading="loading" :data="configList" @selection-change="handleSelectionChange">
           <el-table-column type="selection" width="55" align="center" />
-          <el-table-column label="参数主键" width="80" align="center" prop="ID" />
+          <el-table-column label="参数主键" width="80" align="center" prop="id" />
           <el-table-column label="参数名称" align="center" prop="configName" :show-overflow-tooltip="true" />
           <el-table-column label="参数键名" align="center" prop="configKey" :show-overflow-tooltip="true" />
           <el-table-column label="参数键值" align="center" prop="configValue" />
@@ -238,7 +238,7 @@ export default {
     // 表单重置
     reset() {
       this.form = {
-        ID: undefined,
+        id: undefined,
         configName: undefined,
         configKey: undefined,
         configValue: undefined,
@@ -267,14 +267,14 @@ export default {
     },
     // 多选框选中数据
     handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.ID)
+      this.ids = selection.map(item => item.id)
       this.single = selection.length !== 1
       this.multiple = !selection.length
     },
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset()
-      const ID = row.ID || this.ids
+      const ID = row.id || this.ids
       getConfig(ID).then(response => {
         this.form = response.data
         this.open = true
@@ -286,7 +286,7 @@ export default {
     submitForm: function() {
       this.$refs['form'].validate(valid => {
         if (valid) {
-          if (this.form.ID !== undefined) {
+          if (this.form.id !== undefined) {
             updateConfig(this.form).then(response => {
               if (response.code === 200) {
                 this.msgSuccess('修改成功')
@@ -312,7 +312,7 @@ export default {
     },
     /** 删除按钮操作 */
     handleDelete(row) {
-      const configIds = row.ID || this.ids
+      const configIds = row.id || this.ids
       this.$confirm('是否确认删除参数编号为"' + configIds + '"的数据项?', '警告', {
         confirmButtonText: '确定',
         cancelButtonText: '取消',

+ 2 - 2
src/views/dept/index.vue

@@ -257,7 +257,7 @@ export default {
     },
     // 字典状态字典翻译
     statusFormat(row) {
-      return this.selectDictLabel(this.statusOptions, row.status)
+      return this.selectDictLabel(this.statusOptions, parseInt(row.status))
     },
     // 取消按钮
     cancel() {
@@ -309,7 +309,7 @@ export default {
       this.$refs['form'].validate(valid => {
         if (valid) {
           if (this.form.deptId !== undefined) {
-            updateDept(this.form).then(response => {
+            updateDept(this.form, this.form.deptId).then(response => {
               if (response.code === 200) {
                 this.msgSuccess('修改成功')
                 this.open = false

+ 2 - 2
src/views/dict/data.vue

@@ -223,7 +223,7 @@ export default {
     },
     /** 查询字典类型列表 */
     getTypeList() {
-      listType().then(response => {
+      listType({ pageSize: 1000 }).then(response => {
         this.typeOptions = response.data.list
       })
     },
@@ -323,7 +323,7 @@ export default {
     },
     /** 删除按钮操作 */
     handleDelete(row) {
-      const dictCodes = row.dictCode || this.ids
+      const dictCodes = (row.dictCode && [row.dictCode]) || this.ids
       this.$confirm('是否确认删除字典编码为"' + dictCodes + '"的数据项?', '警告', {
         confirmButtonText: '确定',
         cancelButtonText: '取消',

+ 9 - 9
src/views/dict/index.vue

@@ -89,11 +89,11 @@
 
         <el-table v-loading="loading" :data="typeList" @selection-change="handleSelectionChange">
           <el-table-column type="selection" width="55" align="center" />
-          <el-table-column label="字典编号" width="80" align="center" prop="dictId" />
+          <el-table-column label="字典编号" width="80" align="center" prop="id" />
           <el-table-column label="字典名称" align="center" prop="dictName" :show-overflow-tooltip="true" />
           <el-table-column label="字典类型" align="center" :show-overflow-tooltip="true">
             <template slot-scope="scope">
-              <router-link :to="{name:'DictData', params: {dictId:scope.row.dictId}}" class="link-type">
+              <router-link :to="{name:'DictData', params: {dictId:scope.row.id}}" class="link-type">
                 <span>{{ scope.row.dictType }}</span>
               </router-link>
             </template>
@@ -233,7 +233,7 @@ export default {
     },
     // 字典状态字典翻译
     statusFormat(row, column) {
-      return this.selectDictLabel(this.statusOptions, row.status)
+      return this.selectDictLabel(this.statusOptions, parseInt(row.status))
     },
     // 取消按钮
     cancel() {
@@ -243,7 +243,7 @@ export default {
     // 表单重置
     reset() {
       this.form = {
-        dictId: undefined,
+        id: undefined,
         dictName: undefined,
         dictType: undefined,
         status: '0',
@@ -271,14 +271,14 @@ export default {
     },
     // 多选框选中数据
     handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.dictId)
+      this.ids = selection.map(item => item.id)
       this.single = selection.length !== 1
       this.multiple = !selection.length
     },
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset()
-      const dictId = row.dictId || this.ids
+      const dictId = row.id || this.ids
       getType(dictId).then(response => {
         this.form = response.data
         this.open = true
@@ -290,7 +290,7 @@ export default {
     submitForm: function() {
       this.$refs['form'].validate(valid => {
         if (valid) {
-          if (this.form.dictId !== undefined) {
+          if (this.form.id !== undefined) {
             updateType(this.form).then(response => {
               if (response.code === 200) {
                 this.msgSuccess('修改成功')
@@ -316,7 +316,7 @@ export default {
     },
     /** 删除按钮操作 */
     handleDelete(row) {
-      const dictIds = row.dictId || this.ids
+      const dictIds = (row.id && [row.id]) || this.ids
       this.$confirm('是否确认删除字典编号为"' + dictIds + '"的数据项?', '警告', {
         confirmButtonText: '确定',
         cancelButtonText: '取消',
@@ -339,7 +339,7 @@ export default {
         this.downloadLoading = true
         import('@/vendor/Export2Excel').then(excel => {
           const tHeader = ['字典编号', '字典名称', '字典类型', '状态', '备注']
-          const filterVal = ['dictId', 'dictName', 'dictType', 'status', 'remark']
+          const filterVal = ['id', 'dictName', 'dictType', 'status', 'remark']
           const list = this.typeList
           const data = formatJson(filterVal, list)
           excel.export_json_to_excel({

+ 2 - 2
src/views/login/index.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="login-container">
     <div id="particles-js">
-      <vue-particles
+      <!-- <vue-particles
         v-if="refreshParticles"
         color="#dedede"
         :particle-opacity="0.7"
@@ -18,7 +18,7 @@
         hover-mode="grab"
         :click-effect="true"
         click-mode="push"
-      />
+      /> -->
     </div>
 
     <div class="login-weaper animated bounceInDown">

+ 10 - 4
src/views/loginlog/index.vue

@@ -63,6 +63,12 @@
             prop="username"
             :show-overflow-tooltip="true"
           />
+          <el-table-column
+            label="类型"
+            align="center"
+            prop="msg"
+            :show-overflow-tooltip="true"
+          />
           <el-table-column
             label="状态"
             align="center"
@@ -259,7 +265,7 @@ export default {
     },
     // 多选框选中数据
     handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.ID)
+      this.ids = selection.map(item => item.id)
       this.single = selection.length !== 1
       this.multiple = !selection.length
     },
@@ -267,7 +273,7 @@ export default {
     handleUpdate(row) {
       this.reset()
       const ID =
-                row.ID || this.ids
+                row.id || this.ids
       getSysLoginlog(ID).then(response => {
         this.form = response.data
         this.open = true
@@ -277,14 +283,14 @@ export default {
     },
     /** 删除按钮操作 */
     handleDelete(row) {
-      var Ids = (row.ID && [row.ID]) || this.ids
+      var Ids = (row.id && [row.id]) || this.ids
 
       this.$confirm('是否确认删除编号为"' + Ids + '"的数据项?', '警告', {
         confirmButtonText: '确定',
         cancelButtonText: '取消',
         type: 'warning'
       }).then(function() {
-        return delSysLoginlog({ 'ids': Ids })
+        return delSysLoginlog(Ids)
       }).then(() => {
         this.getList()
         this.msgSuccess('删除成功')

+ 1 - 1
src/views/menu/index.vue

@@ -353,7 +353,7 @@ export default {
       this.$refs['form'].validate(valid => {
         if (valid) {
           if (this.form.menuId !== undefined) {
-            updateMenu(this.form).then(response => {
+            updateMenu(this.form, this.form.menuId).then(response => {
               if (response.code === 200) {
                 this.msgSuccess('修改成功')
                 this.open = false

+ 7 - 8
src/views/operlog/index.vue

@@ -75,10 +75,9 @@
 
         <el-table v-loading="loading" :data="list" @selection-change="handleSelectionChange">
           <el-table-column type="selection" width="55" align="center" />
-          <el-table-column label="日志编号" width="80" align="center" prop="ID" />
-          <el-table-column label="系统模块" align="center" prop="title" :show-overflow-tooltip="true" />
-          <el-table-column label="操作类型" width="80" align="center" prop="businessType" :formatter="typeFormat" :show-overflow-tooltip="true" />
+          <el-table-column label="日志编号" width="80" align="center" prop="id" />
           <el-table-column label="请求方式" width="80" align="center" prop="requestMethod" :show-overflow-tooltip="true" />
+          <el-table-column label="请求地址" align="center" prop="operUrl" :show-overflow-tooltip="true" />
           <el-table-column label="操作人员" align="center" prop="operName" :show-overflow-tooltip="true" />
           <el-table-column label="主机" align="center" prop="operIp" width="130" :show-overflow-tooltip="true" />
           <el-table-column label="操作地点" align="center" prop="operLocation" :show-overflow-tooltip="true" />
@@ -124,7 +123,7 @@
                 <el-form-item label="请求方式:">{{ form.requestMethod }}</el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="耗时:">{{ form.latencyime }}</el-form-item>
+                <el-form-item label="耗时:">{{ form.latencyTime }}</el-form-item>
               </el-col>
               <el-col :span="24">
                 <el-form-item label="操作方法:">{{ form.method }}</el-form-item>
@@ -137,8 +136,8 @@
               </el-col>
               <el-col :span="12">
                 <el-form-item label="操作状态:">
-                  <div v-if="form.status === 0">正常</div>
-                  <div v-else-if="form.status === 1">失败</div>
+                  <div v-if="form.status === '2'">正常</div>
+                  <div v-else-if="form.status === '1'">失败</div>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
@@ -238,7 +237,7 @@ export default {
     },
     // 多选框选中数据
     handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.operId)
+      this.ids = selection.map(item => item.id)
       this.multiple = !selection.length
     },
     /** 详细按钮操作 */
@@ -248,7 +247,7 @@ export default {
     },
     /** 删除按钮操作 */
     handleDelete(row) {
-      const operIds = row.ID || this.ids
+      const operIds = row.id || this.ids
       this.$confirm('是否确认删除日志编号为"' + operIds + '"的数据项?', '警告', {
         confirmButtonText: '确定',
         cancelButtonText: '取消',

+ 1 - 1
src/views/post/index.vue

@@ -285,7 +285,7 @@ export default {
       this.$refs['form'].validate(valid => {
         if (valid) {
           if (this.form.postId !== undefined) {
-            updatePost(this.form).then(response => {
+            updatePost(this.form, this.form.postId).then(response => {
               if (response.code === 200) {
                 this.msgSuccess('修改成功')
                 this.open = false

+ 4 - 4
src/views/profile/index.vue

@@ -90,9 +90,9 @@ export default {
   methods: {
     getUser() {
       getUserProfile().then(response => {
-        this.user = response.data
-        this.roleIds = response.roleIds
-        this.roleGroup = response.roles
+        this.user = response.data.user
+        this.roleIds = response.data.user.roleIds
+        this.roleGroup = response.data.roles
 
         if (this.roleIds[0]) {
           for (const key in this.roleGroup) {
@@ -103,7 +103,7 @@ export default {
         } else {
           this.roleName = '暂无'
         }
-        this.dept = response.dept
+        this.dept = response.data.user.dept
         this.deptName = this.dept.deptName
       })
     }

+ 9 - 9
src/views/role/index.vue

@@ -108,7 +108,7 @@
             <template slot-scope="scope">
               <el-switch
                 v-model="scope.row.status"
-                active-value="0"
+                active-value="2"
                 inactive-value="1"
                 @change="handleStatusChange(scope.row)"
               />
@@ -350,7 +350,7 @@ export default {
     /** 查询菜单树结构 */
     getMenuTreeselect() {
       menuTreeselect().then(response => {
-        this.menuOptions = response.data
+        this.menuOptions = response.data.menus
       })
     },
     /** 查询部门树结构 */
@@ -384,9 +384,9 @@ export default {
         this.menuOptions = []
       } else {
         roleMenuTreeselect(row.roleId).then(response => {
-          this.menuOptions = response.menus
+          this.menuOptions = response.data.menus
           this.$nextTick(() => {
-            this.$refs.menu.setCheckedKeys(response.checkedKeys)
+            this.$refs.menu.setCheckedKeys(response.data.checkedKeys)
           })
         })
       }
@@ -394,9 +394,9 @@ export default {
     /** 根据角色ID查询部门树结构 */
     getRoleDeptTreeselect(roleId) {
       roleDeptTreeselect(roleId).then(response => {
-        this.deptOptions = response.depts
+        this.deptOptions = response.data.depts
         this.$nextTick(() => {
-          this.$refs.dept.setCheckedKeys(response.checkedKeys)
+          this.$refs.dept.setCheckedKeys(response.data.checkedKeys)
         })
       })
     },
@@ -435,7 +435,7 @@ export default {
         roleName: undefined,
         roleKey: undefined,
         roleSort: 0,
-        status: '0',
+        status: '2',
         menuIds: [],
         deptIds: [],
         remark: undefined
@@ -495,7 +495,7 @@ export default {
         if (valid) {
           if (this.form.roleId !== undefined) {
             this.form.menuIds = this.getMenuAllCheckedKeys()
-            updateRole(this.form).then(response => {
+            updateRole(this.form, this.form.roleId).then(response => {
               if (response.code === 200) {
                 this.msgSuccess('修改成功')
                 this.open = false
@@ -537,7 +537,7 @@ export default {
     },
     /** 删除按钮操作 */
     handleDelete(row) {
-      const roleIds = row.roleId || this.ids
+      const roleIds = (row.roleId && [row.roleId]) || this.ids
       this.$confirm('是否确认删除角色编号为"' + roleIds + '"的数据项?', '警告', {
         confirmButtonText: '确定',
         cancelButtonText: '取消',

+ 8 - 8
src/views/syscategory/index.vue

@@ -94,10 +94,10 @@
           <el-table-column
             label="创建时间"
             align="center"
-            prop="CreatedAt"
+            prop="createdAt"
           >
             <template slot-scope="scope">
-              <span>{{ parseTime(scope.row.CreatedAt) }}</span>
+              <span>{{ parseTime(scope.row.createdAt) }}</span>
             </template>
           </el-table-column>
           <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
@@ -297,14 +297,14 @@ export default {
     },
     // 多选框选中数据
     handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.ID)
+      this.ids = selection.map(item => item.id)
       this.single = selection.length !== 1
       this.multiple = !selection.length
     },
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset()
-      const ID = row.ID || this.ids
+      const ID = row.id || this.ids
       getSysCategory(ID).then(response => {
         this.form = response.data
         this.open = true
@@ -316,7 +316,7 @@ export default {
     submitForm: function() {
       this.$refs['form'].validate(valid => {
         if (valid) {
-          if (this.form.ID !== undefined) {
+          if (this.form.id !== undefined) {
             updateSysCategory(this.form).then(response => {
               if (response.code === 200) {
                 this.msgSuccess('修改成功')
@@ -342,14 +342,14 @@ export default {
     },
     /** 删除按钮操作 */
     handleDelete(row) {
-      var Ids = (row.ID && [row.ID]) || this.ids
+      const ids = (row.id && [row.id]) || this.ids
 
-      this.$confirm('是否确认删除编号为"' + Ids + '"的数据项?', '警告', {
+      this.$confirm('是否确认删除编号为"' + ids + '"的数据项?', '警告', {
         confirmButtonText: '确定',
         cancelButtonText: '取消',
         type: 'warning'
       }).then(function() {
-        return delSysCategory({ 'ids': Ids })
+        return delSysCategory(ids)
       }).then(() => {
         this.getList()
         this.msgSuccess('删除成功')

+ 352 - 0
src/views/syschinaareadata/index.vue

@@ -0,0 +1,352 @@
+
+<template>
+  <BasicLayout>
+    <template #wrapper>
+      <el-card class="box-card">
+        <el-form ref="queryForm" :model="queryParams" :inline="true" label-width="68px">
+          <el-form-item label="上级编码" prop="pId"><el-input
+            v-model="queryParams.pId"
+            placeholder="请输入上级编码"
+            clearable
+            size="small"
+            @keyup.enter.native="handleQuery"
+          />
+          </el-form-item>
+          <el-form-item label="名称" prop="name"><el-input
+            v-model="queryParams.name"
+            placeholder="请输入名称"
+            clearable
+            size="small"
+            @keyup.enter.native="handleQuery"
+          />
+          </el-form-item>
+
+          <el-form-item>
+            <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+            <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+          </el-form-item>
+        </el-form>
+
+        <el-row :gutter="10" class="mb8">
+          <el-col :span="1.5">
+            <el-button
+              v-permisaction="['admin:syschinaareadata:add']"
+              type="primary"
+              icon="el-icon-plus"
+              size="mini"
+              @click="handleAdd"
+            >新增
+            </el-button>
+          </el-col>
+          <el-col :span="1.5">
+            <el-button
+              v-permisaction="['admin:syschinaareadata:edit']"
+              type="success"
+              icon="el-icon-edit"
+              size="mini"
+              :disabled="single"
+              @click="handleUpdate"
+            >修改
+            </el-button>
+          </el-col>
+          <el-col :span="1.5">
+            <el-button
+              v-permisaction="['admin:syschinaareadata:remove']"
+              type="danger"
+              icon="el-icon-delete"
+              size="mini"
+              :disabled="multiple"
+              @click="handleDelete"
+            >删除
+            </el-button>
+          </el-col>
+        </el-row>
+
+        <el-table v-loading="loading" :data="syschinaareadataList" @selection-change="handleSelectionChange">
+          <el-table-column type="selection" width="55" align="center" /><el-table-column
+            label="编码"
+            align="center"
+            prop="id"
+            :show-overflow-tooltip="true"
+          /><el-table-column
+            label="上级编码"
+            align="center"
+            prop="pId"
+            :show-overflow-tooltip="true"
+          /><el-table-column
+            label="名称"
+            align="center"
+            prop="name"
+            :show-overflow-tooltip="true"
+          />
+          <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+            <template slot-scope="scope">
+              <el-button
+                v-permisaction="['admin:syschinaareadata:edit']"
+                size="mini"
+                type="text"
+                icon="el-icon-edit"
+                @click="handleUpdate(scope.row)"
+              >修改
+              </el-button>
+              <el-button
+                v-permisaction="['admin:syschinaareadata:remove']"
+                size="mini"
+                type="text"
+                icon="el-icon-delete"
+                @click="handleDelete(scope.row)"
+              >删除
+              </el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+
+        <pagination
+          v-show="total>0"
+          :total="total"
+          :page.sync="queryParams.pageIndex"
+          :limit.sync="queryParams.pageSize"
+          @pagination="getList"
+        />
+
+        <!-- 添加或修改对话框 -->
+        <el-dialog :title="title" :visible.sync="open" width="500px">
+          <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+
+            <el-form-item label="上级编码" prop="pId">
+              <el-input
+                v-model="form.pId"
+                placeholder="上级编码"
+              />
+            </el-form-item>
+            <el-form-item label="名称" prop="name">
+              <el-input
+                v-model="form.name"
+                placeholder="名称"
+              />
+            </el-form-item>
+            <el-form-item label="" prop="createBy">
+              <el-input
+                v-model="form.createBy"
+                placeholder=""
+              />
+            </el-form-item>
+            <el-form-item label="" prop="updateBy">
+              <el-input
+                v-model="form.updateBy"
+                placeholder=""
+              />
+            </el-form-item>
+            <el-form-item label="" prop="createTime">
+              <el-date-picker
+                v-model="form.createTime"
+                type="datetime"
+                placeholder="选择日期"
+              />
+            </el-form-item>
+            <el-form-item label="" prop="updateTime">
+              <el-date-picker
+                v-model="form.updateTime"
+                type="datetime"
+                placeholder="选择日期"
+              />
+            </el-form-item>
+            <el-form-item label="" prop="deleteTime">
+              <el-date-picker
+                v-model="form.deleteTime"
+                type="datetime"
+                placeholder="选择日期"
+              />
+            </el-form-item>
+          </el-form>
+          <div slot="footer" class="dialog-footer">
+            <el-button type="primary" @click="submitForm">确 定</el-button>
+            <el-button @click="cancel">取 消</el-button>
+          </div>
+        </el-dialog>
+        <FileChoose ref="fileChoose" :dialog-form-visible="fileOpen" @confirm="getImgList" @close="fileClose" />
+      </el-card>
+    </template>
+  </BasicLayout>
+</template>
+
+<script>
+import { addSysChinaAreaData, delSysChinaAreaData, getSysChinaAreaData, listSysChinaAreaData, updateSysChinaAreaData } from '@/api/syschinaareadata'
+import FileChoose from '@/components/FileChoose'
+
+export default {
+  name: 'SysChinaAreaData',
+  components: {
+    FileChoose
+  },
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 总条数
+      total: 0,
+      // 弹出层标题
+      title: '',
+      // 是否显示弹出层
+      open: false,
+      isEdit: false,
+      fileOpen: false,
+      fileIndex: undefined,
+      // 类型数据字典
+      typeOptions: [],
+      syschinaareadataList: [],
+
+      // 关系表类型
+
+      // 查询参数
+      queryParams: {
+        pageIndex: 1,
+        pageSize: 10,
+        pId: undefined,
+        name: undefined
+
+      },
+      // 表单参数
+      form: {
+      },
+      // 表单校验
+      rules: { pId:
+                [
+                  { required: true, message: '上级编码不能为空', trigger: 'blur' }
+                ],
+      name:
+                [
+                  { required: true, message: '名称不能为空', trigger: 'blur' }
+                ]
+      }
+    }
+  },
+  created() {
+    this.getList()
+  },
+  methods: {
+    /** 查询参数列表 */
+    getList() {
+      this.loading = true
+      listSysChinaAreaData(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
+        this.syschinaareadataList = response.data.list
+        this.total = response.data.count
+        this.loading = false
+      }
+      )
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false
+      this.reset()
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+
+        id: undefined,
+        pId: undefined,
+        name: undefined,
+        createTime: undefined,
+        updateTime: undefined,
+        deleteTime: undefined
+      }
+      this.resetForm('form')
+    },
+    getImgList: function() {
+      this.form[this.fileIndex] = this.$refs['fileChoose'].resultList[0].fullUrl
+    },
+    fileClose: function() {
+      this.fileOpen = false
+    },
+    // 关系
+    // 文件
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageIndex = 1
+      this.getList()
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.dateRange = []
+      this.resetForm('queryForm')
+      this.handleQuery()
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset()
+      this.open = true
+      this.title = '添加行政区域'
+      this.isEdit = false
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset()
+      const id =
+                row.id || this.ids
+      getSysChinaAreaData(id).then(response => {
+        this.form = response.data
+        this.open = true
+        this.title = '修改行政区域'
+        this.isEdit = true
+      })
+    },
+    /** 提交按钮 */
+    submitForm: function() {
+      this.$refs['form'].validate(valid => {
+        if (valid) {
+          if (this.form.id !== undefined) {
+            updateSysChinaAreaData(this.form).then(response => {
+              if (response.code === 200) {
+                this.msgSuccess('修改成功')
+                this.open = false
+                this.getList()
+              } else {
+                this.msgError(response.msg)
+              }
+            })
+          } else {
+            addSysChinaAreaData(this.form).then(response => {
+              if (response.code === 200) {
+                this.msgSuccess('新增成功')
+                this.open = false
+                this.getList()
+              } else {
+                this.msgError(response.msg)
+              }
+            })
+          }
+        }
+      })
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      var Ids = (row.id && [row.id]) || this.ids
+
+      this.$confirm('是否确认删除编号为"' + Ids + '"的数据项?', '警告', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(function() {
+        return delSysChinaAreaData({ 'ids': Ids })
+      }).then(() => {
+        this.getList()
+        this.msgSuccess('删除成功')
+      }).catch(function() {
+      })
+    }
+  }
+}
+</script>

+ 1 - 1
src/views/syscontent/create.vue

@@ -118,7 +118,7 @@ export default {
     // 关系
     getSysCategoryItems() {
       this.getItems(listSysCategory, undefined).then(res => {
-        this.cateIdOptions = this.setItems(res, 'ID', 'name')
+        this.cateIdOptions = this.setItems(res, 'id', 'name')
       })
     },
     draftForm() {

+ 1 - 1
src/views/syscontent/edit.vue

@@ -122,7 +122,7 @@ export default {
     // 关系
     getSysCategoryItems() {
       this.getItems(listSysCategory, undefined).then(res => {
-        this.cateIdOptions = this.setItems(res, 'ID', 'name')
+        this.cateIdOptions = this.setItems(res, 'id', 'name')
       })
     },
     draftForm() {

+ 3 - 2
src/views/syscontent/index.vue

@@ -227,7 +227,7 @@ export default {
     // 关系
     getSysCategoryItems() {
       this.getItems(listSysCategory, undefined).then(res => {
-        this.cateIdOptions = this.setItems(res, 'ID', 'name')
+        this.cateIdOptions = this.setItems(res, 'id', 'name')
       })
     },
     /** 搜索按钮操作 */
@@ -258,7 +258,8 @@ export default {
     },
     /** 删除按钮操作 */
     handleDelete(row) {
-      const Ids = row.id || this.ids
+      // const Ids = row.id || this.ids
+      const Ids = (row.id && [row.id]) || this.ids
       this.$confirm('是否确认删除编号为"' + Ids + '"的数据项?', '警告', {
         confirmButtonText: '确定',
         cancelButtonText: '取消',

+ 23 - 17
src/views/system/settings.vue

@@ -8,23 +8,18 @@
           </el-form-item>
           <el-form-item label="系统logo" prop="logo">
             <el-input v-model="ruleForm.logo" type="hidden" style="display: none" />
-            <el-upload
-              class="avatar-uploader"
-              :action="url"
-              :data="{type:'1'}"
-              :show-file-list="false"
-              :on-success="handleAvatarSuccess"
-              :before-upload="beforeAvatarUpload"
-            >
+            <div class="avatar-uploader" @click="fileShowlogo">
               <img v-if="ruleForm.logo" :src="ruleForm.logo" class="avatar">
               <i v-else class="el-icon-plus avatar-uploader-icon" />
-            </el-upload>
+            </div>
+            <!-- <el-button type="primary" @click="fileShowlogo">选择文件</el-button> -->
           </el-form-item>
 
           <el-form-item>
-            <el-button v-permisaction="['system:syssystem:edit']" type="primary" @click="submitForm('ruleForm')">确定</el-button>
+            <el-button v-permisaction="['system:system:edit']" type="primary" @click="submitForm('ruleForm')">确定</el-button>
           </el-form-item>
         </el-form>
+        <FileChoose ref="fileChoose" :dialog-form-visible="fileOpen" @confirm="getImgList" @close="fileClose" />
       </div>
     </Layout>
   </div>
@@ -32,18 +27,24 @@
 
 <script>
 import Layout from '@/components/layout'
+import FileChoose from '@/components/FileChoose'
 
 export default {
   name: 'Setting',
   components: {
-    Layout
+    Layout,
+    FileChoose
   },
   data() {
     return {
+      isEdit: false,
+      fileOpen: false,
+      fileIndex: undefined,
       url: process.env.VUE_APP_BASE_API + '/api/v1/public/uploadFile',
       ruleForm: {
         name: this.$store.state.system.info.name,
-        logo: this.$store.state.system.info.logo
+        logo: this.$store.state.system.info.logo,
+        settings_id: this.$store.state.system.info.settings_id
       },
       rules: {
         name: [
@@ -62,8 +63,9 @@ export default {
         if (valid) {
           this.$store.dispatch('system/updateSetting', this.ruleForm).then(ret => {
             if (ret) {
+              this.msgSuccess(ret.msg)
               const str1 = document.title.split('-')[0]
-              document.title = str1 + ' - ' + ret.name
+              document.title = str1 + ' - ' + ret.data.name
             }
           })
         } else {
@@ -71,11 +73,15 @@ export default {
         }
       })
     },
-    handleAvatarSuccess(e) {
-      this.ruleForm.logo = e.data.full_path
+    fileShowlogo() {
+      this.fileOpen = true
+      this.fileIndex = 'logo'
     },
-    beforeAvatarUpload(e) {
-
+    getImgList() {
+      this.ruleForm[this.fileIndex] = this.$refs['fileChoose'].resultList[0].fullUrl
+    },
+    fileClose() {
+      this.fileOpen = false
     }
   }
 }

+ 37 - 21
src/views/sysuser/index.vue

@@ -119,7 +119,7 @@
                 <template slot-scope="scope">
                   <el-switch
                     v-model="scope.row.status"
-                    active-value="0"
+                    active-value="2"
                     inactive-value="1"
                     @change="handleStatusChange(scope.row)"
                   />
@@ -187,7 +187,6 @@
                 <treeselect
                   v-model="form.deptId"
                   :options="deptOptions"
-                  :normalizer="normalizer"
                   placeholder="请选择归属部门"
                 />
               </el-form-item>
@@ -309,11 +308,13 @@
 </template>
 
 <script>
-import { listUser, getUser, delUser, addUser, updateUser, exportUser, resetUserPwd, changeUserStatus, importTemplate, getUserInit } from '@/api/system/sysuser'
+import { listUser, getUser, delUser, addUser, updateUser, exportUser, resetUserPwd, changeUserStatus, importTemplate } from '@/api/system/sysuser'
 import { getToken } from '@/utils/auth'
 import { treeselect } from '@/api/system/dept'
 import Treeselect from '@riophae/vue-treeselect'
 import '@riophae/vue-treeselect/dist/vue-treeselect.css'
+import { listPost } from '@/api/system/post'
+import { listRole } from '@/api/system/role'
 
 export default {
   name: 'User',
@@ -356,7 +357,7 @@ export default {
       form: {},
       defaultProps: {
         children: 'children',
-        label: 'deptName'
+        label: 'label'
       },
       // 用户导入参数
       upload: {
@@ -458,7 +459,7 @@ export default {
     },
     // 节点单击事件
     handleNodeClick(data) {
-      this.queryParams.deptId = data.deptId
+      this.queryParams.deptId = data.id
       this.getList()
     },
     /** 转换菜单数据结构 */
@@ -467,14 +468,14 @@ export default {
         delete node.children
       }
       return {
-        id: node.deptId,
-        label: node.deptName,
+        id: node.id,
+        label: node.label,
         children: node.children
       }
     },
     // 用户状态修改
     handleStatusChange(row) {
-      const text = row.status === '0' ? '启用' : '停用'
+      const text = row.status === '2' ? '启用' : '停用'
       this.$confirm('确认要"' + text + '""' + row.username + '"用户吗?', '警告', {
         confirmButtonText: '确定',
         cancelButtonText: '取消',
@@ -484,7 +485,7 @@ export default {
       }).then(() => {
         this.msgSuccess(text + '成功')
       }).catch(function() {
-        row.status = row.status === '0' ? '1' : '0'
+        row.status = row.status === '2' ? '1' : '2'
       })
     },
     // 取消按钮
@@ -503,7 +504,7 @@ export default {
         phone: undefined,
         email: undefined,
         sex: undefined,
-        status: '0',
+        status: '2',
         remark: undefined,
         postIds: undefined,
         roleIds: undefined
@@ -531,30 +532,45 @@ export default {
     handleAdd() {
       this.reset()
       this.getTreeselect()
-      getUserInit().then(response => {
-        this.postOptions = response.data.posts
-        this.roleOptions = response.data.roles
-        this.open = true
-        this.title = '添加用户'
-        this.form.password = this.initPassword
+      // getUserInit().then(response => {
+      //   this.postOptions = response.data.posts
+      //   this.roleOptions = response.data.roles
+      //   this.open = true
+      //   this.title = '添加用户'
+      // this.form.password = this.initPassword
+      // })
+      listPost({ pageSize: 1000 }).then(response => {
+        this.postOptions = response.data.list
+      })
+      listRole({ pageSize: 1000 }).then(response => {
+        this.roleOptions = response.data.list
       })
+      this.open = true
+      this.title = '添加用户'
+      this.form.password = this.initPassword
     },
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset()
-      this.getTreeselect()
+      // this.getTreeselect()
 
       const userId = row.userId || this.ids
       getUser(userId).then(response => {
         this.form = response.data
-        this.postOptions = response.posts
-        this.roleOptions = response.roles
-        this.form.postIds = response.postIds[0]
-        this.form.roleIds = response.roleIds[0]
+        // this.postOptions = response.posts
+        // this.roleOptions = response.roles
+        // this.form.postIds = response.postIds[0]
+        // this.form.roleIds = response.roleIds[0]
         this.open = true
         this.title = '修改用户'
         this.form.password = ''
       })
+      listPost({ pageSize: 1000 }).then(response => {
+        this.postOptions = response.data.list
+      })
+      listRole({ pageSize: 1000 }).then(response => {
+        this.roleOptions = response.data.list
+      })
     },
     /** 重置密码按钮操作 */
     handleResetPwd(row) {

+ 306 - 0
src/views/wf_classify/index.vue

@@ -0,0 +1,306 @@
+
+<template>
+    <BasicLayout>
+        <template #wrapper>
+            <el-card class="box-card">
+                <el-form ref="queryForm" :model="queryParams" :inline="true" label-width="68px">
+                    <el-form-item label="名称" prop="name"><el-input v-model="queryParams.name" placeholder="请输入名称" clearable
+                                              size="small" @keyup.enter.native="handleQuery"/>
+                            </el-form-item>
+                        
+                    <el-form-item>
+                        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+                        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+                    </el-form-item>
+                </el-form>
+
+                <el-row :gutter="10" class="mb8">
+                    <el-col :span="1.5">
+                        <el-button
+                                v-permisaction="['admin:wf_classify:add']"
+                                type="primary"
+                                icon="el-icon-plus"
+                                size="mini"
+                                @click="handleAdd"
+                        >新增
+                        </el-button>
+                    </el-col>
+                    <el-col :span="1.5">
+                        <el-button
+                                v-permisaction="['admin:wf_classify:edit']"
+                                type="success"
+                                icon="el-icon-edit"
+                                size="mini"
+                                :disabled="single"
+                                @click="handleUpdate"
+                        >修改
+                        </el-button>
+                    </el-col>
+                    <el-col :span="1.5">
+                        <el-button
+                                v-permisaction="['admin:wf_classify:remove']"
+                                type="danger"
+                                icon="el-icon-delete"
+                                size="mini"
+                                :disabled="multiple"
+                                @click="handleDelete"
+                        >删除
+                        </el-button>
+                    </el-col>
+                </el-row>
+
+                <el-table v-loading="loading" :data="processList" @selection-change="handleSelectionChange">
+                    <el-table-column type="selection" width="55" align="center"/><el-table-column label="编码" align="center" prop="id"
+                                                 :show-overflow-tooltip="true"/><el-table-column label="名称" align="center" prop="name"
+                                                 :show-overflow-tooltip="true"/><el-table-column label="创建时间" align="center" prop="createdAt"
+                                                 :show-overflow-tooltip="true"/>
+                    <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+                        <template slot-scope="scope">
+                            <el-button
+                                    v-permisaction="['admin:wf_classify:edit']"
+                                    size="mini"
+                                    type="text"
+                                    icon="el-icon-edit"
+                                    @click="handleUpdate(scope.row)"
+                            >修改
+                            </el-button>
+                            <el-button
+                                    v-permisaction="['admin:wf_classify:remove']"
+                                    size="mini"
+                                    type="text"
+                                    icon="el-icon-delete"
+                                    @click="handleDelete(scope.row)"
+                            >删除
+                            </el-button>
+                        </template>
+                    </el-table-column>
+                </el-table>
+
+                <pagination
+                        v-show="total>0"
+                        :total="total"
+                        :page.sync="queryParams.pageIndex"
+                        :limit.sync="queryParams.pageSize"
+                        @pagination="getList"
+                />
+
+                <!-- 添加或修改对话框 -->
+                <el-dialog :title="title" :visible.sync="open" width="500px">
+                    <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+                        
+                                    <el-form-item label="名称" prop="name">
+                                        <el-input v-model="form.name" placeholder="名称"
+                                                      />
+                                    </el-form-item>
+                                    <el-form-item label="创建者" prop="createBy">
+                                        <el-input v-model="form.createBy" placeholder="创建者"
+                                                      />
+                                    </el-form-item>
+                                    <el-form-item label="更新者" prop="updateBy">
+                                        <el-input v-model="form.updateBy" placeholder="更新者"
+                                                      />
+                                    </el-form-item>
+                                    <el-form-item label="创建时间" prop="createdAt">
+                                        <el-date-picker
+                                                    v-model="form.createdAt"
+                                                    type="datetime"
+                                                    placeholder="选择日期">
+                                            </el-date-picker>
+                                    </el-form-item>
+                                    <el-form-item label="最后更新时间" prop="updatedAt">
+                                        <el-date-picker
+                                                    v-model="form.updatedAt"
+                                                    type="datetime"
+                                                    placeholder="选择日期">
+                                            </el-date-picker>
+                                    </el-form-item>
+                                    <el-form-item label="删除时间" prop="deletedAt">
+                                        <el-date-picker
+                                                    v-model="form.deletedAt"
+                                                    type="datetime"
+                                                    placeholder="选择日期">
+                                            </el-date-picker>
+                                    </el-form-item>
+                    </el-form>
+                    <div slot="footer" class="dialog-footer">
+                        <el-button type="primary" @click="submitForm">确 定</el-button>
+                        <el-button @click="cancel">取 消</el-button>
+                    </div>
+                </el-dialog>
+                <FileChoose ref="fileChoose" :dialog-form-visible="fileOpen" @confirm="getImgList" @close="fileClose" />
+            </el-card>
+        </template>
+    </BasicLayout>
+</template>
+
+<script>
+    import {addWfProcessClassify, delWfProcessClassify, getWfProcessClassify, listWfProcessClassify, updateWfProcessClassify} from '@/api/wf_classify'
+    import FileChoose from '@/components/FileChoose'
+
+    export default {
+        name: 'WfProcessClassify',
+        components: {
+            FileChoose
+        },
+        data() {
+            return {
+                // 遮罩层
+                loading: true,
+                // 选中数组
+                ids: [],
+                // 非单个禁用
+                single: true,
+                // 非多个禁用
+                multiple: true,
+                // 总条数
+                total: 0,
+                // 弹出层标题
+                title: '',
+                // 是否显示弹出层
+                open: false,
+                isEdit: false,
+                fileOpen: false,
+                fileIndex: undefined,
+                // 类型数据字典
+                typeOptions: [],
+                processList: [],
+                
+                // 关系表类型
+                
+                // 查询参数
+                queryParams: {
+                    pageIndex: 1,
+                    pageSize: 10,
+                    name:undefined,
+                    
+                },
+                // 表单参数
+                form: {
+                },
+                // 表单校验
+                rules: {name:
+                [
+                    {required: true, message: '名称不能为空', trigger: 'blur'}
+                ],
+                }
+        }
+        },
+        created() {
+            this.getList()
+            },
+        methods: {
+            /** 查询参数列表 */
+            getList() {
+                this.loading = true
+                listWfProcessClassify(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
+                        this.processList = response.data.list
+                        this.total = response.data.count
+                        this.loading = false
+                    }
+                )
+            },
+            // 取消按钮
+            cancel() {
+                this.open = false
+                this.reset()
+            },
+            // 表单重置
+            reset() {
+                this.form = {
+                
+                id: undefined,
+                name: undefined,
+            }
+                this.resetForm('form')
+            },
+            getImgList: function() {
+              this.form[this.fileIndex] = this.$refs['fileChoose'].resultList[0].fullUrl
+            },
+            fileClose: function() {
+              this.fileOpen = false
+            },
+            // 关系
+            // 文件
+            /** 搜索按钮操作 */
+            handleQuery() {
+                this.queryParams.pageIndex = 1
+                this.getList()
+            },
+            /** 重置按钮操作 */
+            resetQuery() {
+                this.dateRange = []
+                this.resetForm('queryForm')
+                this.handleQuery()
+            },
+            /** 新增按钮操作 */
+            handleAdd() {
+                this.reset()
+                this.open = true
+                this.title = '添加审批分类'
+                this.isEdit = false
+            },
+            // 多选框选中数据
+            handleSelectionChange(selection) {
+                this.ids = selection.map(item => item.id)
+                this.single = selection.length !== 1
+                this.multiple = !selection.length
+            },
+            /** 修改按钮操作 */
+            handleUpdate(row) {
+                this.reset()
+                const id =
+                row.id || this.ids
+                getWfProcessClassify(id).then(response => {
+                    this.form = response.data
+                    this.open = true
+                    this.title = '修改审批分类'
+                    this.isEdit = true
+                })
+            },
+            /** 提交按钮 */
+            submitForm: function () {
+                this.$refs['form'].validate(valid => {
+                    if (valid) {
+                        if (this.form.id !== undefined) {
+                            updateWfProcessClassify(this.form).then(response => {
+                                if (response.code === 200) {
+                                    this.msgSuccess('修改成功')
+                                    this.open = false
+                                    this.getList()
+                                } else {
+                                    this.msgError(response.msg)
+                                }
+                            })
+                        } else {
+                            addWfProcessClassify(this.form).then(response => {
+                                if (response.code === 200) {
+                                    this.msgSuccess('新增成功')
+                                    this.open = false
+                                    this.getList()
+                                } else {
+                                    this.msgError(response.msg)
+                                }
+                            })
+                        }
+                    }
+                })
+            },
+            /** 删除按钮操作 */
+            handleDelete(row) {
+                var Ids = (row.id && [row.id]) || this.ids
+
+                this.$confirm('是否确认删除编号为"' + Ids + '"的数据项?', '警告', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'warning'
+                }).then(function () {
+                      return delWfProcessClassify( { 'ids': Ids })
+                }).then(() => {
+                    this.getList()
+                    this.msgSuccess('删除成功')
+                }).catch(function () {
+                })
+            }
+        }
+    }
+</script>