فهرست منبع

reactor:延期甄别审批新增工单详情;

zhangchong 1 سال پیش
والد
کامیت
1e26928026

+ 8 - 8
src/components/ProcessAudit/index.vue

@@ -9,6 +9,7 @@
 			:style="'transform: ' + state.transform + ';'"
 			append-to-body
 			destroy-on-close
+			:show-close="false"
 			:close-on-click-modal="false"
 			:close-on-press-escape="false"
 			@close="close"
@@ -398,13 +399,13 @@
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" v-if="state.processType === '延期审批'">
-						<el-form-item label="省延期" prop="applyDelayProvince">
-							<el-checkbox v-model="state.ruleForm.applyDelayProvince" label="是否省延期" />
+						<el-form-item label="省延期申请" prop="applyDelayProvince">
+							<el-checkbox v-model="state.ruleForm.applyDelayProvince" label="省延期申请" />
 						</el-form-item>
 					</el-col>
-          <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" v-if="state.processType === '甄别审批'">
-            <el-form-item label="省甄别" prop="applyDelayProvince">
-              <el-checkbox v-model="state.ruleForm.applyDelayProvince" label="是否省甄别" />
+          <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" v-if="state.processType === '延期审批'">
+            <el-form-item label="省延期申请" prop="applyDelayProvince">
+              <el-checkbox v-model="state.ruleForm.applyDelayProvince" label="省延期申请" />
             </el-form-item>
           </el-col>
 					<!--  办理流程展示期满时间  -->
@@ -952,11 +953,10 @@ const onSubmit = (formEl: FormInstance | undefined) => {
 						submitObj.nextMainHandler = submitObj.nextHandlers[0].key;
 					}
 				}
-        if(['延期审批'].includes(state.processType)){ // 如果特殊业务需要特殊字段
+        if(['延期审批','甄别审批'].includes(state.processType)){ // 如果特殊业务需要特殊字段
           submitObj.external = {
-            isProvinceDelay: state.orderDetail.isProvinceDelay,
+            isProvinceDelay: submitObj.applyDelayProvince,
           }
-          submitObj.expiredTime = state.orderDetail.expiredTime;
         }
         submitObj.stepExpiredTime = submitObj.expiredTime; //节点过期时间
 				switch (state.processType) {

+ 1 - 0
src/views/business/delay/index.vue

@@ -138,6 +138,7 @@ import { candelayList,delayBaseData} from "/@/api/business/delay";
 // 引入组件
 const OrderDetail = defineAsyncComponent(() => import('/@/views/business/order/components/Order-detail.vue'));  // 工单详情
 const AuditRecord = defineAsyncComponent(() => import('/@/components/AuditRecord/index.vue')); // 审核记录
+
 // 定义变量内容
 const state = reactive(<any>{
 	queryParams: {

+ 2 - 2
src/views/system/menu/index.vue

@@ -5,7 +5,7 @@
         <el-col :xs="24" :sm="12" :md="18" :lg="18" :xl="18">
           <el-form :model="state.queryParams" ref="ruleFormRef" :inline="true" @submit.native.prevent>
             <el-form-item label="关键字" prop="keyword" class="mb0">
-              <el-input v-model="state.queryParams.keyword" placeholder="菜单名称" clearable @keyup.enter="handleQuery" style="width: 250px" />
+              <el-input v-model="state.queryParams.keyword" placeholder="菜单名称/权限编码" clearable @keyup.enter="handleQuery" style="width: 250px" />
             </el-form-item>
             <el-form-item class="mb0">
               <el-button type="primary" @click="handleQuery" :loading="state.loading" v-waves>
@@ -226,7 +226,7 @@ const formatTable = (list: any[], keyword: string) => {
 	if (!list.length || !Array.isArray(list)) return [];
 	let emptyArr: any[] = [];
 	list.map((item) => {
-		if (item.pageName.includes(keyword)) {
+		if (item.pageName.includes(keyword) || item.permissionCode.includes(keyword)) {
 			if (item.children && Array.isArray(item.children) && item.children.length > 0) {
 				item.children = formatTable(item.children, keyword);
 			}

+ 21 - 0
src/views/system/roles/component/Role-permission.vue

@@ -21,6 +21,7 @@
 					></el-switch>
 				</el-col>
 			</el-row>
+      权限码重复的有: <span v-for="item in duplicates" :key="item.permissionCode" class="mr5 mb5">{{item.pageName}} {{item.permissionCode}}</span>
 			<el-tree
 				class="tree-border mt20"
 				:data="state.menuTableData"
@@ -136,12 +137,32 @@ const getCode = (arr: any) => {
 	});
 	return newArr;
 };
+const duplicates = ref<any>([]);
 // 获取所有菜单
 const getMenuListApi = () => {
 	getMenuList().then((res: any) => {
 		state.menuTableData = res?.result ?? [];
+    duplicates.value = findDuplicateNodes(state.menuTableData, 'permissionCode');
 	});
 };
+//  查找重复的节点
+const  findDuplicateNodes = (tree:any, property:any)=> {
+  const hash:any = {};
+  const duplicates = new Set();
+  tree.forEach((node:any) => {
+    const value = node[property];
+    if (hash[value]) {
+      duplicates.add(node);
+    } else {
+      hash[value] = true;
+    }
+    if (node.children) {
+      const childDuplicates = findDuplicateNodes(node.children, property);
+      childDuplicates.forEach(duplicate => duplicates.add(duplicate));
+    }
+  });
+  return duplicates;
+}
 /** 树权限(展开/折叠)*/
 const handleCheckedTreeExpand = (value: boolean) => {
 	for (let i = 0; i < state.menuTableData.length; i++) {