From 9b2fe7f3ac4072efb0f251769ba2efa08895b7c9 Mon Sep 17 00:00:00 2001 From: xingyu Date: Thu, 27 Apr 2023 11:22:46 +0800 Subject: [PATCH] fix: menu tree check --- src/views/system/role/RoleMenuModal.vue | 7 ++++--- src/views/system/tenantPackage/TenantPackageModal.vue | 11 ++++++----- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/views/system/role/RoleMenuModal.vue b/src/views/system/role/RoleMenuModal.vue index 7aa4c1e..a4d0c3f 100644 --- a/src/views/system/role/RoleMenuModal.vue +++ b/src/views/system/role/RoleMenuModal.vue @@ -6,6 +6,7 @@ v-model:value="model[field]" :treeData="treeData" :fieldNames="{ title: 'name', key: 'id' }" + :checkStrictly="true" checkable toolbar @check="menuCheck" @@ -65,7 +66,7 @@ async function handleSubmit() { setModalProps({ confirmLoading: true }) await assignRoleMenu({ roleId: values.id, - menuIds: menuKeys.value.concat(menuHalfKeys.value) + menuIds: [...menuKeys.value, ...menuHalfKeys.value] }) closeModal() emit('success') @@ -81,7 +82,7 @@ function menuReset() { } function menuCheck(checkedKeys, e) { - menuKeys.value = checkedKeys.checked as number[] - menuHalfKeys.value = e.halfCheckedKeys as number[] + menuKeys.value = (checkedKeys.checked || []) as number[] + menuHalfKeys.value = (e.halfCheckedKeys || []) as number[] } diff --git a/src/views/system/tenantPackage/TenantPackageModal.vue b/src/views/system/tenantPackage/TenantPackageModal.vue index 69ce145..cd11e6b 100644 --- a/src/views/system/tenantPackage/TenantPackageModal.vue +++ b/src/views/system/tenantPackage/TenantPackageModal.vue @@ -6,6 +6,7 @@ v-model:value="model[field]" :treeData="treeData" :fieldNames="{ title: 'name', key: 'id' }" + :checkStrictly="true" checkable toolbar @check="menuCheck" @@ -32,8 +33,8 @@ const { createMessage } = useMessage() const emit = defineEmits(['success', 'register']) const isUpdate = ref(true) const treeData = ref([]) -const menuKeys = ref<(string | number)[]>([]) -const menuHalfKeys = ref<(string | number)[]>([]) +const menuKeys = ref([]) +const menuHalfKeys = ref([]) const [registerForm, { setFieldsValue, resetFields, validate }] = useForm({ labelWidth: 120, @@ -63,7 +64,7 @@ const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data async function handleSubmit() { try { const values = await validate() - values.menuIds = menuKeys.value.concat(menuHalfKeys.value) + values.menuIds = [...menuKeys.value, ...menuHalfKeys.value] setModalProps({ confirmLoading: true }) if (unref(isUpdate)) { await updateTenantPackage(values) @@ -84,7 +85,7 @@ function menuReset() { } function menuCheck(checkedKeys, e) { - menuKeys.value = checkedKeys as (string | number)[] - menuHalfKeys.value = e.halfCheckedKeys as (string | number)[] + menuKeys.value = (checkedKeys.checked || []) as number[] + menuHalfKeys.value = (e.halfCheckedKeys || []) as number[] }