diff --git a/src/components/UserSelect/index.vue b/src/components/UserSelect/index.vue index e78bcb5..4dfc5a4 100644 --- a/src/components/UserSelect/index.vue +++ b/src/components/UserSelect/index.vue @@ -61,7 +61,7 @@ :data="userList" :loading="loading" :row-config="{ keyField: 'userId', isHover: true }" - :checkbox-config="{ reserve: true, trigger: 'row', highlight: true, checkRowKeys: defaultSelectUserIds, showHeader: prop.multiple }" + :checkbox-config="{ reserve: true, trigger: 'row', highlight: true, showHeader: prop.multiple }" @checkbox-all="handleCheckboxAll" @checkbox-change="handleCheckboxChange" > @@ -207,7 +207,7 @@ const getList = async () => { const pageList = async () => { await getList(); const users = userList.value.filter((item) => { - return defaultSelectUserIds.value.includes(item.userId); + return selectUserList.value.some((user) => user.userId === item.userId); }); await tableRef.value.setCheckboxRow(users, true); }; @@ -275,18 +275,33 @@ const initSelectUser = async () => { if (defaultSelectUserIds.value.length > 0) { const { data } = await api.optionSelect(defaultSelectUserIds.value); selectUserList.value = data; + await nextTick(() => { + const users = userList.value.filter((item) => { + return defaultSelectUserIds.value.includes(String(item.userId)); + }); + tableRef.value.setCheckboxRow(users, true); + }); } }; const close = () => { userDialog.closeDialog(); - tableRef.value.clearCheckboxReserve(); - tableRef.value.clearCheckboxRow(); - resetQuery(); - selectUserList.value = []; }; +watch( + () => userDialog.visible.value, + (newValue: boolean) => { + if (newValue) { + initSelectUser(); + } else { + tableRef.value.clearCheckboxReserve(); + tableRef.value.clearCheckboxRow(); + resetQuery(); + selectUserList.value = []; + } + } +); + onMounted(() => { - initSelectUser(); getTreeSelect(); // 初始化部门数据 getList(); // 初始化列表数据 });