fix : 修复人员取消功能

This commit is contained in:
2024-08-17 00:13:17 +08:00
parent 26ed532684
commit 7637608226
6 changed files with 115 additions and 66 deletions

View File

@@ -15,7 +15,7 @@
<div class="tree">
<el-tree :data="dataList" ref="tree" :props="defaultProps" empty-text="" node-key="value"
:default-expanded-keys="expandedKeys" lazy :load="loadNode" accordion
@node-click="handleClick">
@node-click="handleClickTreeNode">
<template #default="{ node, data }">
<div class="tree-node">
<div v-if="data.type === 0" style="display: flex;align-items: center;padding: 3px 0">
@@ -54,7 +54,7 @@
<UserFilled/>
</el-icon>
{{ selectItem.name }}-{{ selectItem.companyName }}
<el-icon @click="noSelected(selectItem)" size="20" style="margin-left: 10px;cursor: pointer;">
<el-icon @click="removeSingleSelected(selectItem)" size="20" style="margin-left: 10px;cursor: pointer;">
<CircleClose/>
</el-icon>
</div>
@@ -62,7 +62,7 @@
</div>
</div>
<div class="footer">
<el-button size="mini" @click="visible = false"> </el-button>
<el-button size="mini" @click="cancelUserPicker"> </el-button>
<el-button size="mini" color="#DED0B2" @click="selectConfirm"> </el-button>
</div>
</el-dialog>
@@ -113,6 +113,8 @@ const title = ref("请选择");
const selectList = ref([]);
const filterText = ref("");
const dataList = ref([]);
const isRemoveSingleSelected = ref(false);
const originallySelectedList = ref([]);
const tree = ref([]);
const isSearch = ref(false);
const expandedKeys = ref([]);
@@ -171,7 +173,7 @@ async function loadNode(node, resolve) {
if (data.id) {
params = {
chooseId: data.id,
isResearch: props.isResearch
isResearch: props.isResearch
}
} else {
params = {
@@ -190,7 +192,7 @@ async function loadNode(node, resolve) {
}
const handleClick = (item, data) => {
const handleClickTreeNode = (item, data) => {
selectItem = item;
if (isSearch.value && item.type !== 0) {
filterText.value = ""
@@ -224,24 +226,25 @@ const handleClick = (item, data) => {
selectList.value = [item];
}
}
localStorage.setItem('originallySelectedList', JSON.stringify(selectList.value))
};
const noSelected = (selectItem) => {
const removeSingleSelected = (selectItem) => {
//右侧的x
for (let i = 0; i < selectList.value.length; i++) {
if(selectItem.value){
for (let i = 0; i < selectList.value?.length; i++) {
if (selectItem.value) {
if (selectList.value[i].value === selectItem.value) {
selectList.value.splice(i, 1);
break;
}
}else{
} else {
if (selectList.value[i].id === selectItem.id) {
selectList.value.splice(i, 1);
break;
}
}
}
isRemoveSingleSelected.value = true
selectItem.selected = false;
};
const clearSelected = () => {
@@ -251,9 +254,23 @@ const clearSelected = () => {
cancelButtonText: "取消",
type: "warning"
}).then(() => {
isRemoveSingleSelected.value = true
selectList.value = [];
emit("cancelOrClear", selectList.value);
});
};
const cancelUserPicker = () => {
if (isRemoveSingleSelected.value&&localStorage.getItem('originallySelectedList')) {
selectList.value = JSON.parse(localStorage.getItem('originallySelectedList'))
}else{
selectList.value=[]
}
emit("cancelOrClear", selectList.value);
visible.value = false;
nextTick(()=>{
isRemoveSingleSelected.value=false
})
}
const selectConfirm = () => {
//确定按钮
if (props.checkMatrix) {