Merge branch 'main' of http://8.153.108.90:3000/YD/YD_Event.Web
This commit is contained in:
commit
05473e38e3
@ -184,8 +184,9 @@ const formatGroupDate = (item) => {
|
||||
};
|
||||
|
||||
const addProject = () => {
|
||||
timeProjects.value = [];
|
||||
isShowDialog.value = true;
|
||||
// 打开弹窗时,用当前已选项目初始化 timeProjects,以便确定后保留勾选
|
||||
timeProjects.value = [...(localFormData.value.projects ?? [])];
|
||||
};
|
||||
const timeProjects = ref([])
|
||||
const selectionChange = (list) => {
|
||||
@ -218,6 +219,33 @@ const onSubmit = async () => {
|
||||
|
||||
|
||||
const isShowDialog = ref(false);
|
||||
const tableRef = ref(null);
|
||||
// 弹窗打开后,每当 ProTable 加载完新数据,将已选项目回显为勾选状态
|
||||
watch(isShowDialog, (visible) => {
|
||||
if (!visible) return;
|
||||
// 用 watchEffect 追踪 tableData 变化,数据每次刷新后重新回显
|
||||
const stopWatch = watch(
|
||||
() => tableRef.value?.tableData,
|
||||
(tableData) => {
|
||||
if (!tableData?.length) return;
|
||||
nextTick(() => {
|
||||
const elTable = tableRef.value?.element;
|
||||
if (!elTable) return;
|
||||
const alreadySelectedIds = new Set(
|
||||
(localFormData.value.projects ?? []).map((p) => p.projectId ?? p.id)
|
||||
);
|
||||
tableData.forEach((row) => {
|
||||
elTable.toggleRowSelection(row, alreadySelectedIds.has(row.id));
|
||||
});
|
||||
});
|
||||
},
|
||||
{ deep: true, immediate: true }
|
||||
);
|
||||
// 弹窗关闭时停止监听
|
||||
const stopDialog = watch(isShowDialog, (v) => {
|
||||
if (!v) { stopWatch(); stopDialog(); }
|
||||
});
|
||||
});
|
||||
|
||||
const columns = ref([
|
||||
{
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user