Browse Source

角色管理添加审计流程管理

maxiaoxiao 1 month ago
parent
commit
98d3f387b4
2 changed files with 112 additions and 2 deletions
  1. 53 0
      src/api/rsmonitoring/dataEntry.js
  2. 59 2
      src/views/system/role/index.vue

+ 53 - 0
src/api/rsmonitoring/dataEntry.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询录入列表
+export function listDkdb(query) {
+  return request({
+    url: '/rsmonitoring/dkgeomdb/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询录入详细
+export function getDkdb(id) {
+  return request({
+    url: '/rsmonitoring/dkgeomdb/' + id,
+    method: 'get'
+  })
+}
+
+export function adddb(data) {
+  return request({
+    url: '/rsmonitoring/dkgeomdb',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改录入
+export function updateDkdb(data) {
+  return request({
+    url: '/rsmonitoring/dkgeomdb',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除录入
+export function delDkdb(id) {
+  return request({
+    url: '/rsmonitoring/dkgeomdb/' + id,
+    method: 'delete'
+  })
+}
+
+// 审计流程
+export function getAuditflowTree() {
+  return request({
+    url: '/rsmonitoring/auditflow/type/tree',
+    method: 'get'
+  })
+}
+
+

+ 59 - 2
src/views/system/role/index.vue

@@ -183,6 +183,21 @@
                   :props="{ label: 'label', children: 'children' }"
                ></el-tree>
             </el-form-item>
+            <el-form-item label="审核流程">
+               <el-checkbox v-model="flowExpand" @change="handleCheckedTreeExpand($event, 'flow')">展开/折叠</el-checkbox>
+               <el-checkbox v-model="flowNodeAll" @change="handleCheckedTreeNodeAll($event, 'flow')">全选/全不选</el-checkbox>
+               <el-checkbox v-model="form.flowCheckStrictly" @change="handleCheckedTreeConnect($event, 'flow')">父子联动</el-checkbox>
+               <el-tree
+                  class="tree-border"
+                  :data="flowOptions"
+                  show-checkbox
+                  ref="flowRef"
+                  node-key="stepCode"
+                  :check-strictly="!form.flowCheckStrictly"
+                  empty-text="加载中,请稍候"
+                  :props="{ label: 'stepValue', children: 'children' }"
+               ></el-tree>
+            </el-form-item>
             <el-form-item label="备注">
                <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
             </el-form-item>
@@ -244,7 +259,7 @@
 <script setup name="Role">
 import { addRole, changeRoleStatus, dataScope, delRole, getRole, listRole, updateRole, deptTreeSelect } from "@/api/system/role";
 import { roleMenuTreeselect, treeselect as menuTreeselect } from "@/api/system/menu";
-
+import { getAuditflowTree } from "@/api/rsmonitoring/dataEntry";
 const router = useRouter();
 const { proxy } = getCurrentInstance();
 const { sys_normal_disable } = proxy.useDict("sys_normal_disable");
@@ -268,7 +283,10 @@ const deptOptions = ref([]);
 const openDataScope = ref(false);
 const menuRef = ref(null);
 const deptRef = ref(null);
-
+const flowRef = ref(null);
+const flowExpand = ref(false);
+const flowNodeAll = ref(false);
+const flowOptions = ref([]);
 /** 数据范围选项*/
 const dataScopeOptions = ref([
   { value: "1", label: "全部数据权限" },
@@ -381,6 +399,12 @@ function getMenuTreeselect() {
     menuOptions.value = response.data;
   });
 }
+function getAuditTreeselect() {
+  getAuditflowTree().then(response => {
+    flowOptions.value = response.data;
+  });
+}
+
 
 /** 所有部门节点数据 */
 function getDeptAllCheckedKeys() {
@@ -397,10 +421,15 @@ function reset() {
   if (menuRef.value != undefined) {
     menuRef.value.setCheckedKeys([]);
   }
+  if (flowRef.value != undefined) {
+    flowRef.value.setCheckedKeys([]);
+  }
   menuExpand.value = false;
   menuNodeAll.value = false;
   deptExpand.value = true;
   deptNodeAll.value = false;
+  flowExpand.value = false;
+  flowNodeAll.value = false;
   form.value = {
     roleId: undefined,
     roleName: undefined,
@@ -409,8 +438,10 @@ function reset() {
     status: "0",
     menuIds: [],
     deptIds: [],
+    auditFlowIds: [],
     menuCheckStrictly: true,
     deptCheckStrictly: true,
+    flowCheckStrictly: true,
     remark: undefined
   };
   proxy.resetForm("roleRef");
@@ -420,6 +451,7 @@ function reset() {
 function handleAdd() {
   reset();
   getMenuTreeselect();
+  getAuditTreeselect();
   open.value = true;
   title.value = "添加角色";
 }
@@ -427,6 +459,7 @@ function handleAdd() {
 /** 修改角色 */
 function handleUpdate(row) {
   reset();
+  getAuditTreeselect()
   const roleId = row.roleId || ids.value;
   const roleMenu = getRoleMenuTreeselect(roleId);
   getRole(roleId).then(response => {
@@ -441,6 +474,11 @@ function handleUpdate(row) {
             menuRef.value.setChecked(v, true, false);
           });
         });
+        res.auditflowKeys.forEach((v) => {
+          nextTick(() => {
+            flowRef.value.setChecked(v, true, false);
+          });
+        });
       });
     });
   });
@@ -475,6 +513,11 @@ function handleCheckedTreeExpand(value, type) {
     for (let i = 0; i < treeList.length; i++) {
       deptRef.value.store.nodesMap[treeList[i].id].expanded = value;
     }
+  } else if (type == "flow") {
+    let treeList = flowOptions.value;
+    for (let i = 0; i < treeList.length; i++) {
+      flowRef.value.store.nodesMap[treeList[i].id].expanded = value;
+    }
   }
 }
 
@@ -484,6 +527,8 @@ function handleCheckedTreeNodeAll(value, type) {
     menuRef.value.setCheckedNodes(value ? menuOptions.value : []);
   } else if (type == "dept") {
     deptRef.value.setCheckedNodes(value ? deptOptions.value : []);
+  } else if (type == "flow") {
+    deptRef.value.setCheckedNodes(value ? flowOptions.value : []);
   }
 }
 
@@ -493,6 +538,8 @@ function handleCheckedTreeConnect(value, type) {
     form.value.menuCheckStrictly = value ? true : false;
   } else if (type == "dept") {
     form.value.deptCheckStrictly = value ? true : false;
+  } else if (type == "flow") {
+    form.value.flowCheckStrictly = value ? true : false;
   }
 }
 
@@ -505,6 +552,14 @@ function getMenuAllCheckedKeys() {
   checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys);
   return checkedKeys;
 }
+function getflowAllCheckedKeys() {
+  // 目前被选中的菜单节点
+  let checkedKeys = flowRef.value.getCheckedKeys();
+  // 半选中的菜单节点
+  let halfCheckedKeys = flowRef.value.getHalfCheckedKeys();
+  checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys);
+  return checkedKeys;
+}
 
 /** 提交按钮 */
 function submitForm() {
@@ -512,6 +567,7 @@ function submitForm() {
     if (valid) {
       if (form.value.roleId != undefined) {
         form.value.menuIds = getMenuAllCheckedKeys();
+        form.value.auditFlowIds = getflowAllCheckedKeys();
         updateRole(form.value).then(response => {
           proxy.$modal.msgSuccess("修改成功");
           open.value = false;
@@ -519,6 +575,7 @@ function submitForm() {
         });
       } else {
         form.value.menuIds = getMenuAllCheckedKeys();
+        form.value.auditFlowIds = getflowAllCheckedKeys();
         addRole(form.value).then(response => {
           proxy.$modal.msgSuccess("新增成功");
           open.value = false;