mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 02:08:43 +08:00 
			
		
		
		
	菜单&数据权限新增(展开/折叠 全选/全不选 父子联动)
This commit is contained in:
		| @@ -92,6 +92,14 @@ | ||||
| 	padding: 10px 20px !important; | ||||
| } | ||||
|  | ||||
| /* tree border */ | ||||
| .tree-border { | ||||
|     margin-top: 5px; | ||||
|     border: 1px solid #e5e6e7; | ||||
|     background: #FFFFFF none; | ||||
|     border-radius:4px; | ||||
| } | ||||
|  | ||||
| .pagination-container .el-pagination { | ||||
| 	right: 0; | ||||
| 	position: absolute; | ||||
|   | ||||
| @@ -175,11 +175,16 @@ | ||||
|           </el-radio-group> | ||||
|         </el-form-item> | ||||
|         <el-form-item label="菜单权限"> | ||||
|           <el-checkbox v-model="menuExpand" @change="handleCheckedTreeExpand($event, 'menu')">展开/折叠</el-checkbox> | ||||
|           <el-checkbox v-model="menuNodeAll" @change="handleCheckedTreeNodeAll($event, 'menu')">全选/全不选</el-checkbox> | ||||
|           <el-checkbox v-model="form.menuCheckStrictly" @change="handleCheckedTreeConnect($event, 'menu')">父子联动</el-checkbox> | ||||
|           <el-tree | ||||
|             class="tree-border" | ||||
|             :data="menuOptions" | ||||
|             show-checkbox | ||||
|             ref="menu" | ||||
|             node-key="id" | ||||
|             :check-strictly="!form.menuCheckStrictly" | ||||
|             empty-text="加载中,请稍后" | ||||
|             :props="defaultProps" | ||||
|           ></el-tree> | ||||
| @@ -214,12 +219,17 @@ | ||||
|           </el-select> | ||||
|         </el-form-item> | ||||
|         <el-form-item label="数据权限" v-show="form.dataScope == 2"> | ||||
|           <el-checkbox v-model="deptExpand" @change="handleCheckedTreeExpand($event, 'dept')">展开/折叠</el-checkbox> | ||||
|           <el-checkbox v-model="deptNodeAll" @change="handleCheckedTreeNodeAll($event, 'dept')">全选/全不选</el-checkbox> | ||||
|           <el-checkbox v-model="form.deptCheckStrictly" @change="handleCheckedTreeConnect($event, 'dept')">父子联动</el-checkbox> | ||||
|           <el-tree | ||||
|             class="tree-border" | ||||
|             :data="deptOptions" | ||||
|             show-checkbox | ||||
|             default-expand-all | ||||
|             ref="dept" | ||||
|             node-key="id" | ||||
|             :check-strictly="!form.deptCheckStrictly" | ||||
|             empty-text="加载中,请稍后" | ||||
|             :props="defaultProps" | ||||
|           ></el-tree> | ||||
| @@ -262,6 +272,10 @@ export default { | ||||
|       open: false, | ||||
|       // 是否显示弹出层(数据权限) | ||||
|       openDataScope: false, | ||||
|       menuExpand: false, | ||||
|       menuNodeAll: false, | ||||
|       deptExpand: true, | ||||
|       deptNodeAll: false, | ||||
|       // 日期范围 | ||||
|       dateRange: [], | ||||
|       // 状态数据字典 | ||||
| @@ -413,6 +427,10 @@ export default { | ||||
|       if (this.$refs.menu != undefined) { | ||||
|         this.$refs.menu.setCheckedKeys([]); | ||||
|       } | ||||
|       this.menuExpand = false, | ||||
|       this.menuNodeAll = false, | ||||
|       this.deptExpand = true, | ||||
|       this.deptNodeAll = false, | ||||
|       this.form = { | ||||
|         roleId: undefined, | ||||
|         roleName: undefined, | ||||
| @@ -421,6 +439,7 @@ export default { | ||||
|         status: "0", | ||||
|         menuIds: [], | ||||
|         deptIds: [], | ||||
|         menuCheckStrictly: true, | ||||
|         remark: undefined | ||||
|       }; | ||||
|       this.resetForm("form"); | ||||
| @@ -442,6 +461,36 @@ export default { | ||||
|       this.single = selection.length!=1 | ||||
|       this.multiple = !selection.length | ||||
|     }, | ||||
|     // 树权限(展开/折叠) | ||||
|     handleCheckedTreeExpand(value, type) { | ||||
|       if (type == 'menu') { | ||||
|         let treeList = this.menuOptions; | ||||
|         for (let i = 0; i < treeList.length; i++) { | ||||
|           this.$refs.menu.store.nodesMap[treeList[i].id].expanded = value; | ||||
|         } | ||||
|       } else if (type == 'dept') { | ||||
|         let treeList = this.deptOptions; | ||||
|         for (let i = 0; i < treeList.length; i++) { | ||||
|           this.$refs.dept.store.nodesMap[treeList[i].id].expanded = value; | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     // 树权限(全选/全不选) | ||||
|     handleCheckedTreeNodeAll(value, type) { | ||||
|       if (type == 'menu') { | ||||
|         this.$refs.menu.setCheckedNodes(value ? this.menuOptions: []); | ||||
|       } else if (type == 'dept') { | ||||
|         this.$refs.dept.setCheckedNodes(value ? this.deptOptions: []); | ||||
|       } | ||||
|     }, | ||||
|     // 树权限(父子联动) | ||||
|     handleCheckedTreeConnect(value, type) { | ||||
|       if (type == 'menu') { | ||||
|         this.form.menuCheckStrictly = value ? true: false; | ||||
|       } else if (type == 'dept') { | ||||
|         this.form.deptCheckStrictly = value ? true: false; | ||||
|       } | ||||
|     }, | ||||
|     /** 新增按钮操作 */ | ||||
|     handleAdd() { | ||||
|       this.reset(); | ||||
|   | ||||
| @@ -93,7 +93,7 @@ | ||||
|           </el-col> | ||||
|           <el-col :span="12"> | ||||
|             <el-form-item label="归属部门" prop="deptId"> | ||||
|               <treeselect v-model="form.deptId" :options="deptOptions" :disable-branch-nodes="true" :show-count="true" placeholder="请选择归属部门" /> | ||||
|               <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" /> | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
|         </el-row> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 RuoYi
					RuoYi