fix : 修复公司/人员选择框bug
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-dialog custom-class="custom-dialog" class="border" :border="false" width="1000px" style="height: 676px"
|
<el-dialog custom-class="custom-dialog" class="border" :border="false" width="1000px" style="height: 676px"
|
||||||
:title="title" :show-close="false" :visible.sync="visible" v-model="visible" append-to-body :close-on-click-modal="true" @close="closeDialog">
|
:title="title" :show-close="false" :visible.sync="visible" v-model="visible" append-to-body :close-on-click-modal="false" @close="closeDialog">
|
||||||
<div class="picker">
|
<div class="picker">
|
||||||
<div class="candidate" v-loading="loading">
|
<div class="candidate" v-loading="loading">
|
||||||
<el-input v-model="filterText"
|
<el-input v-model="filterText"
|
||||||
@@ -17,8 +17,8 @@
|
|||||||
<el-tree :data="dataList" ref="tree" :props="defaultProps" empty-text="" node-key="value"
|
<el-tree :data="dataList" ref="tree" :props="defaultProps" empty-text="" node-key="value"
|
||||||
:show-checkbox="showCheckbox" highlight-current default-expand-all
|
:show-checkbox="showCheckbox" highlight-current default-expand-all
|
||||||
:default-checked-keys="defaultChecked" :disabled="disabled"
|
:default-checked-keys="defaultChecked" :disabled="disabled"
|
||||||
:check-strictly="!checkStrictly" @node-click="(node,check)=>handle(node,check)"
|
:check-strictly="!checkStrictly" @node-click="(node,check)=>handleNodeClick(node,check)"
|
||||||
@check-change="handleChange" :filter-node-method="filterNode">
|
@check-change="handleCheckClick" :filter-node-method="filterNode">
|
||||||
<template #default="{ node, data }">
|
<template #default="{ node, data }">
|
||||||
<div class="tree-node">
|
<div class="tree-node">
|
||||||
<div style="display: flex;align-items: center;padding: 3px 0">
|
<div style="display: flex;align-items: center;padding: 3px 0">
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
<el-empty :image-size="100" description="请点击左侧列表选择数据" v-show="selectList.length === 0"/>
|
<el-empty :image-size="100" description="请点击左侧列表选择数据" v-show="selectList.length === 0"/>
|
||||||
<div v-for="(selectItem, selectIndex) in selectList" :key="selectIndex" class="org-item">
|
<div v-for="(selectItem, selectIndex) in selectList" :key="selectIndex" class="org-item">
|
||||||
{{ selectItem.label }}
|
{{ selectItem.label }}
|
||||||
<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/>
|
<CircleClose/>
|
||||||
</el-icon>
|
</el-icon>
|
||||||
</div>
|
</div>
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="footer">
|
<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>
|
<el-button size="mini" color="#DED0B2" @click="selectConfirm">确 定</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
@@ -105,6 +105,8 @@ const defaultProps = {
|
|||||||
children: "children",
|
children: "children",
|
||||||
disabled: "disabled",
|
disabled: "disabled",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const isRemoveSingleSelected = ref(false);
|
||||||
const emit = defineEmits(['update:modelValue'])
|
const emit = defineEmits(['update:modelValue'])
|
||||||
const _value = computed({
|
const _value = computed({
|
||||||
get() {
|
get() {
|
||||||
@@ -175,7 +177,7 @@ const updateTreeCheck = (list, flag) => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
const handleChange = (data, checked) => {
|
const handleCheckClick = (data, checked) => {
|
||||||
if (data.value == -1) {
|
if (data.value == -1) {
|
||||||
if(checked){
|
if(checked){
|
||||||
updateTreeCheck(dataList.value, false)
|
updateTreeCheck(dataList.value, false)
|
||||||
@@ -219,7 +221,7 @@ const handleChange = (data, checked) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const handle = (node, check) => {
|
const handleNodeClick = (node, check) => {
|
||||||
if (check.isLeaf !== false) {
|
if (check.isLeaf !== false) {
|
||||||
if (props.multiple) {
|
if (props.multiple) {
|
||||||
//不添加重复的数据到右边
|
//不添加重复的数据到右边
|
||||||
@@ -238,7 +240,7 @@ const handle = (node, check) => {
|
|||||||
}
|
}
|
||||||
// _value.value = selectList.value
|
// _value.value = selectList.value
|
||||||
};
|
};
|
||||||
const noSelected = (selectItem) => {
|
const removeSingleSelected = (selectItem) => {
|
||||||
//左侧无选择框时,右侧显示×
|
//左侧无选择框时,右侧显示×
|
||||||
for (let i = 0; i < selectList.value.length; i++) {
|
for (let i = 0; i < selectList.value.length; i++) {
|
||||||
if (selectList.value[i].value === selectItem.value) {
|
if (selectList.value[i].value === selectItem.value) {
|
||||||
@@ -253,6 +255,7 @@ const noSelected = (selectItem) => {
|
|||||||
tree.value.setCheckedKeys([]);
|
tree.value.setCheckedKeys([]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
isRemoveSingleSelected.value = true
|
||||||
};
|
};
|
||||||
const clearSelected = () => {
|
const clearSelected = () => {
|
||||||
//清空
|
//清空
|
||||||
@@ -261,18 +264,33 @@ const clearSelected = () => {
|
|||||||
cancelButtonText: "取消",
|
cancelButtonText: "取消",
|
||||||
type: "warning"
|
type: "warning"
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
|
isRemoveSingleSelected.value = true
|
||||||
if (!props.showCheckbox) {
|
if (!props.showCheckbox) {
|
||||||
selectList.value = [];
|
selectList.value = [];
|
||||||
} else {
|
} else {
|
||||||
handleChange("1");
|
handleCheckClick("1");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
const cancelUserPicker = () => {
|
||||||
|
if (isRemoveSingleSelected.value&&localStorage.getItem('originallySelectedList')) {
|
||||||
|
selectList.value = JSON.parse(localStorage.getItem('originallySelectedList'))
|
||||||
|
}else{
|
||||||
|
selectList.value=[]
|
||||||
|
handleCheckClick("1");
|
||||||
|
}
|
||||||
|
emit("cancelOrClear", selectList.value);
|
||||||
|
visible.value = false;
|
||||||
|
nextTick(()=>{
|
||||||
|
isRemoveSingleSelected.value=false
|
||||||
|
})
|
||||||
|
}
|
||||||
const selectConfirm = () => {
|
const selectConfirm = () => {
|
||||||
//确定按钮
|
//确定按钮
|
||||||
emit("ok", selectList.value);
|
emit("ok", selectList.value);
|
||||||
dataList.value = []
|
dataList.value = []
|
||||||
visible.value = false;
|
visible.value = false;
|
||||||
|
localStorage.setItem('originallySelectedList', JSON.stringify(selectList.value))
|
||||||
};
|
};
|
||||||
defineExpose({
|
defineExpose({
|
||||||
show
|
show
|
||||||
|
|||||||
@@ -120,7 +120,7 @@
|
|||||||
<el-button color="#DED0B2" v-else @click="handleResubmit(demandForm)">重新提交</el-button>
|
<el-button color="#DED0B2" v-else @click="handleResubmit(demandForm)">重新提交</el-button>
|
||||||
<el-button @click="handleBack">返回</el-button>
|
<el-button @click="handleBack">返回</el-button>
|
||||||
</div>
|
</div>
|
||||||
<company-picker :multiple="true" ref="companyRef" title="请选择征集公司" @ok="selected"
|
<company-picker :multiple="true" ref="companyRef" title="请选择征集公司" @ok="sureSelectedCompany" @cancelOrClear="cancelSelectedCompany"
|
||||||
v-model:value="selectedCompanyList"/>
|
v-model:value="selectedCompanyList"/>
|
||||||
<file-preview ref="filePreviewRef" v-if="filePreviewShow" :fileName="filePreviewParam.fileName"
|
<file-preview ref="filePreviewRef" v-if="filePreviewShow" :fileName="filePreviewParam.fileName"
|
||||||
:fileUrl="filePreviewParam.fileUrl"
|
:fileUrl="filePreviewParam.fileUrl"
|
||||||
@@ -283,8 +283,17 @@ const getName = (list) => {
|
|||||||
const showCompany = () => {
|
const showCompany = () => {
|
||||||
companyRef.value.show()
|
companyRef.value.show()
|
||||||
}
|
}
|
||||||
|
const cancelSelectedCompany=(select)=>{
|
||||||
const selected = (select) => {
|
console.info("🚀 ~ file:add method:cancelSelectedCompany line:287 -----", select)
|
||||||
|
formData.value.companyIds = []
|
||||||
|
if(select.length>0){
|
||||||
|
for (let val of select) {
|
||||||
|
formData.value.companyIds.push(val.value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
selectedCompanyList.value = select
|
||||||
|
}
|
||||||
|
const sureSelectedCompany = (select) => {
|
||||||
formData.value.companyIds = []
|
formData.value.companyIds = []
|
||||||
for (let val of select) {
|
for (let val of select) {
|
||||||
formData.value.companyIds.push(val.value)
|
formData.value.companyIds.push(val.value)
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<baseTitle title="项目实施-上传附件" ></baseTitle>
|
<baseTitle title="项目实施-上传附件" ></baseTitle>
|
||||||
<el-form :model="formData" ref="tagForm" label-width="auto">
|
<el-form :model="formData" ref="tagForm" label-width="auto">
|
||||||
<el-form-item label="标签名称" prop="tagName" style="margin-left: 15px;">
|
<el-form-item label="标签名称" prop="tagName" style="margin-left: 15px;">
|
||||||
<el-input v-model="formData.tagName" placeholder="请输入标签名称" style="width: 300px" v-if="showInput" clearable/>
|
<el-input v-model="formData.tagName" placeholder="请输入标签名称" style="width: 300px;margin-right: 10px" v-if="showInput" clearable/>
|
||||||
<el-select v-model="formData.tagName" placeholder="请选择标签名称" clearable filterable style="width: 300px;margin-right: 10px" v-else>
|
<el-select v-model="formData.tagName" placeholder="请选择标签名称" clearable filterable style="width: 300px;margin-right: 10px" v-else>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in tagsOption"
|
v-for="item in tagsOption"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-dialog custom-class="custom-dialog" class="border" :border="false" closeFree width="1000px" style="height: 676px"
|
<el-dialog custom-class="custom-dialog" class="border" :border="false" closeFree width="1000px" style="height: 676px"
|
||||||
:title="title" :visible.sync="visible" v-model="visible" append-to-body :close-on-click-modal="true"
|
:title="title" :visible.sync="visible" v-model="visible" append-to-body :close-on-click-modal="false"
|
||||||
:destroy-on-close="true">
|
>
|
||||||
<div class="picker">
|
<div class="picker">
|
||||||
<div class="candidate" v-loading="loading">
|
<div class="candidate" v-loading="loading">
|
||||||
<el-input v-model="filterText" @change="getList"
|
<el-input v-model="filterText" @change="getList"
|
||||||
|
|||||||
Reference in New Issue
Block a user