From 7d9e298dcce28f07e6d17abdfe7916d4c522b451 Mon Sep 17 00:00:00 2001 From: KC <48410934+orangelckc@users.noreply.github.com> Date: Mon, 20 Mar 2023 13:49:33 +0100 Subject: [PATCH] fix: filter role list problem (#34) --- src/components/Input/components/RoleList.vue | 9 ++-- src/components/Input/index.vue | 8 +--- src/stores/role.ts | 48 ++++++++++---------- 3 files changed, 30 insertions(+), 35 deletions(-) diff --git a/src/components/Input/components/RoleList.vue b/src/components/Input/components/RoleList.vue index 519d509..d9f1b78 100644 --- a/src/components/Input/components/RoleList.vue +++ b/src/components/Input/components/RoleList.vue @@ -11,13 +11,12 @@ import type { RolePayload } from '@/types' const roleStore = useRoleStore() const { getRoleList, updateRole, deleteRole, addRole } = roleStore -const { currentRole, roleList, filterRoleList, popoverVisible } = +const { currentRole, roleList, filterRoleList, popoverVisible, isEdit } = storeToRefs(roleStore) const { sessionDataList } = storeToRefs(useSessionStore()) const isAdd = ref(false) -const isEdit = computed(() => roleList.value.some((item) => item.isEdit)) const renderList = computed(() => filterRoleList.value.length && !isAdd.value @@ -25,6 +24,8 @@ const renderList = computed(() => : roleList.value ) +watch(renderList, () => handleVisible(!!renderList.value.length)) + const handleVisible = (value: boolean) => { if (sessionDataList.value.length || isAdd.value || isEdit.value) return @@ -33,12 +34,11 @@ const handleVisible = (value: boolean) => { const handleAdd = () => { isAdd.value = true + filterRoleList.value = [] roleList.value = [{ name: '', description: '', isEdit: true }] } const handleClick = () => { - getRoleList() - if (sessionDataList.value.length) { Message.info({ content: '每个会话只能选择一个对话角色' }) @@ -108,7 +108,6 @@ const handleClose = () => { -