From 6a0327bbf5f01287c6c2659795091bad10ac21bd Mon Sep 17 00:00:00 2001 From: han2015 <1019850453@qq.com> Date: Mon, 16 Jun 2025 09:26:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=84=E7=90=86=E6=96=87=E4=BB=B6=E5=88=86?= =?UTF-8?q?=E4=BA=AB=E7=BB=84=E4=BB=B6table=E9=80=89=E4=B8=AD=E9=94=99?= =?UTF-8?q?=E4=B9=B1=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/doc/sharePermission.vue | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/views/doc/sharePermission.vue b/src/views/doc/sharePermission.vue index 418aa3b..dbdb2b7 100644 --- a/src/views/doc/sharePermission.vue +++ b/src/views/doc/sharePermission.vue @@ -25,19 +25,23 @@ const tableMembersRef=ref() //table组件的引用,为了实现 function onNodeClick(data:shareOrgInfo){ + members.value=[]//这里在切换时应该清理现有数据,容易造成tableRef选中事件失效 getArchivesListPage({adminorg:data.id, page:1,pagesize:13}).then(resp=>{ if(resp.data.count >200){ ElMessageBox.alert("人数超过200,请按部门分配权限") return } members.value=resp.data.list + //设置默认选中的人员 - members.value.forEach(row => { - if (permited.has('p0'+row.keystr)) { - // 确保 row-key 正确并且数据一致,手动选中行, 还要设置:reserve-selection="true"!!! - tableMembersRef.value!.toggleRowSelection(row) - } - }) + setTimeout(() => { + members.value.forEach(row => { + if (permited.has('p0'+row.keystr)) { + // 确保 row-key 正确并且数据一致,手动选中行, 还要设置:reserve-selection="true"!!! + tableMembersRef.value.toggleRowSelection(row,true) + } + }) + }, 500) }) } @@ -80,12 +84,12 @@ function onManualSelect(select:[],row:memberInfo){ function onSelectionAll(news:memberInfo[]){ if(news.length>0){ - news.forEach((item)=>{ + members.value.forEach((item)=>{ permited.add('p0'+item.keystr) permitedInfos.add(`${item.name}-${item.maindeparmentname}-${item.positionname}`) }) }else{ - news.forEach((item)=>{ + members.value.forEach((item)=>{ permited.delete('p0'+item.keystr) permitedInfos.delete(`${item.name}-${item.maindeparmentname}-${item.positionname}`) })