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}`) })