@@ -102,7 +116,9 @@ const dialogStyle = computed(() => {
-
+
+
+
diff --git a/src/views/system/user/DeptTree.vue b/src/views/system/user/DeptTree.vue
index ab8ba06f..71ed6cd5 100644
--- a/src/views/system/user/DeptTree.vue
+++ b/src/views/system/user/DeptTree.vue
@@ -46,8 +46,24 @@ const filterNode = (name: string, data: Tree) => {
}
/** 处理部门被点击 */
-const handleNodeClick = async (row: { [key: string]: any }) => {
- emits('node-click', row)
+let currentNode: any = {}
+const handleNodeClick = async (row: { [key: string]: any }, treeNode: any) => {
+ // 判断选中状态
+ if (currentNode && currentNode.name === row.name) {
+ treeNode.checked = !treeNode.checked
+ } else {
+ treeNode.checked = true
+ }
+ if (treeNode.checked) {
+ // 选中
+ currentNode = row
+ emits('node-click', row)
+ } else {
+ // 取消选中
+ treeRef.value!.setCurrentKey(undefined)
+ emits('node-click', undefined)
+ currentNode = null
+ }
}
const emits = defineEmits(['node-click'])
diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue
index ce7ed186..cf3a8028 100644
--- a/src/views/system/user/index.vue
+++ b/src/views/system/user/index.vue
@@ -255,9 +255,14 @@ const resetQuery = () => {
}
/** 处理部门被点击 */
-const handleDeptNodeClick = async (row) => {
- queryParams.deptId = row.id
- await getList()
+const handleDeptNodeClick = async (row: any) => {
+ if (row === undefined) {
+ queryParams.deptId = undefined
+ await getList()
+ } else {
+ queryParams.deptId = row.id
+ await getList()
+ }
}
/** 添加/修改操作 */