From 543c44dcc817902ad4072c4b4f0b7f3536ebddda Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=90=91=E6=96=87=E5=8F=AF?= <1041367524@qq.com>
Date: Sat, 21 May 2022 16:37:31 +0800
Subject: [PATCH] fix: BUG
---
src/store/modules/permission/dept/dept.js | 14 ++++++++++++
src/views/permission/dept/index.vue | 4 ++--
src/views/permission/employee/form.vue | 2 ++
src/views/permission/employee/index.vue | 10 +++++++--
src/views/permission/role/index.vue | 27 ++++++++++++++++-------
5 files changed, 45 insertions(+), 12 deletions(-)
diff --git a/src/store/modules/permission/dept/dept.js b/src/store/modules/permission/dept/dept.js
index dfccae3..a908f60 100644
--- a/src/store/modules/permission/dept/dept.js
+++ b/src/store/modules/permission/dept/dept.js
@@ -51,6 +51,20 @@ const actions = {
}
return res;
},
+ enable: async ({ dispatch }, data) => {
+ try {
+ await ElMessageBox.confirm('确定要禁用该组织吗?', '危险操作');
+ let res = await api.update(data);
+ if (res) {
+ ElMessage.success((data.isEnable ? '启用' : '禁用') + '成功');
+ } else {
+ ElMessage.error((data.isEnable ? '启用' : '禁用') + '失败');
+ }
+ } catch (e) {
+ console.info('取消删除', e);
+ }
+ dispatch('search');
+ },
remove: async ({ dispatch }, idList) => {
if (!idList.length) {
ElMessage.warning('请选择要删除的数据');
diff --git a/src/views/permission/dept/index.vue b/src/views/permission/dept/index.vue
index a60a0a1..40c8c98 100644
--- a/src/views/permission/dept/index.vue
+++ b/src/views/permission/dept/index.vue
@@ -71,7 +71,7 @@
/>
-
+
@@ -404,7 +404,7 @@
formState.formVisible = false;
};
const handleEnabled = (row) => {
- store.dispatch('dept/save', row);
+ store.dispatch('dept/enable', row);
};
const handleSave = async () => {
formState.submitting = true;
diff --git a/src/views/permission/employee/form.vue b/src/views/permission/employee/form.vue
index 776db69..3c59bb0 100644
--- a/src/views/permission/employee/form.vue
+++ b/src/views/permission/employee/form.vue
@@ -133,6 +133,7 @@
/* 数据 */
const handleLoad = async () => {
if (route.params.id) {
+ loading.value = true;
const id = +route.params.id;
if (form.id !== id) {
let res = await store.dispatch('employee/detail', id);
@@ -141,6 +142,7 @@
permissionList.splice(0);
permissionList.push(...(await store.dispatch('employee/permission', id)));
form.roleIds = permissionList.map((item) => item.id);
+ loading.value = false;
}
};
onActivated(handleLoad);
diff --git a/src/views/permission/employee/index.vue b/src/views/permission/employee/index.vue
index 6f91524..77ed870 100644
--- a/src/views/permission/employee/index.vue
+++ b/src/views/permission/employee/index.vue
@@ -45,6 +45,8 @@
-
+
diff --git a/src/views/permission/role/index.vue b/src/views/permission/role/index.vue
index 6d2278a..f680f24 100644
--- a/src/views/permission/role/index.vue
+++ b/src/views/permission/role/index.vue
@@ -53,10 +53,10 @@
/>
-
+
-
+
@@ -92,7 +92,9 @@
/>
- 全选
+
+ 全选
+
{
- unref(refsTree).setCheckedKeys(value ? unref(permissionList).map((item) => item.id) : []);
- });
+ const isIndeterminate = ref(false);
+ watch(
+ [permissionList, () => formState.form.permissionIds],
+ (value) => {
+ checkAll.value = value[0].length && value[0].every((item) => value[1].includes(item.id));
+ isIndeterminate.value = !checkAll.value && value[0].some((item) => value[1].includes(item.id));
+ },
+ { immediate: true, deep: true }
+ );
+ const handleCheckAll = () => {
+ unref(refsTree).setCheckedKeys(unref(checkAll) ? unref(permissionList).map((item) => item.id) : []);
+ };
const handleLoadPermission = async (data) => {
permissionList.value = await store.dispatch('role/loadPermission', data.id);
};
@@ -319,7 +330,7 @@
isEnable: true,
menuIds: [],
permissionIds: [],
- departmentList: [],
+ departmentList: [2],
}
)
);