Merge pull request 'fix : 修复公司/人员选择框bug' (#726) from dd into master
Reviewed-on: http://git.feashow.cn/clay/mosr-web/pulls/726
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<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="candidate" v-loading="loading">
|
||||
<el-input v-model="filterText"
|
||||
@@ -17,8 +17,8 @@
|
||||
<el-tree :data="dataList" ref="tree" :props="defaultProps" empty-text="" node-key="value"
|
||||
:show-checkbox="showCheckbox" highlight-current default-expand-all
|
||||
:default-checked-keys="defaultChecked" :disabled="disabled"
|
||||
:check-strictly="!checkStrictly" @node-click="(node,check)=>handle(node,check)"
|
||||
@check-change="handleChange" :filter-node-method="filterNode">
|
||||
:check-strictly="!checkStrictly" @node-click="(node,check)=>handleNodeClick(node,check)"
|
||||
@check-change="handleCheckClick" :filter-node-method="filterNode">
|
||||
<template #default="{ node, data }">
|
||||
<div class="tree-node">
|
||||
<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"/>
|
||||
<div v-for="(selectItem, selectIndex) in selectList" :key="selectIndex" class="org-item">
|
||||
{{ 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/>
|
||||
</el-icon>
|
||||
</div>
|
||||
@@ -47,7 +47,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>
|
||||
@@ -105,6 +105,8 @@ const defaultProps = {
|
||||
children: "children",
|
||||
disabled: "disabled",
|
||||
};
|
||||
|
||||
const isRemoveSingleSelected = ref(false);
|
||||
const emit = defineEmits(['update:modelValue'])
|
||||
const _value = computed({
|
||||
get() {
|
||||
@@ -175,7 +177,7 @@ const updateTreeCheck = (list, flag) => {
|
||||
}
|
||||
})
|
||||
}
|
||||
const handleChange = (data, checked) => {
|
||||
const handleCheckClick = (data, checked) => {
|
||||
if (data.value == -1) {
|
||||
if(checked){
|
||||
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 (props.multiple) {
|
||||
//不添加重复的数据到右边
|
||||
@@ -238,7 +240,7 @@ const handle = (node, check) => {
|
||||
}
|
||||
// _value.value = selectList.value
|
||||
};
|
||||
const noSelected = (selectItem) => {
|
||||
const removeSingleSelected = (selectItem) => {
|
||||
//左侧无选择框时,右侧显示×
|
||||
for (let i = 0; i < selectList.value.length; i++) {
|
||||
if (selectList.value[i].value === selectItem.value) {
|
||||
@@ -253,6 +255,7 @@ const noSelected = (selectItem) => {
|
||||
tree.value.setCheckedKeys([]);
|
||||
}
|
||||
}
|
||||
isRemoveSingleSelected.value = true
|
||||
};
|
||||
const clearSelected = () => {
|
||||
//清空
|
||||
@@ -261,18 +264,33 @@ const clearSelected = () => {
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(() => {
|
||||
isRemoveSingleSelected.value = true
|
||||
if (!props.showCheckbox) {
|
||||
selectList.value = [];
|
||||
} 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 = () => {
|
||||
//确定按钮
|
||||
emit("ok", selectList.value);
|
||||
dataList.value = []
|
||||
visible.value = false;
|
||||
localStorage.setItem('originallySelectedList', JSON.stringify(selectList.value))
|
||||
};
|
||||
defineExpose({
|
||||
show
|
||||
|
||||
@@ -120,7 +120,7 @@
|
||||
<el-button color="#DED0B2" v-else @click="handleResubmit(demandForm)">重新提交</el-button>
|
||||
<el-button @click="handleBack">返回</el-button>
|
||||
</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"/>
|
||||
<file-preview ref="filePreviewRef" v-if="filePreviewShow" :fileName="filePreviewParam.fileName"
|
||||
:fileUrl="filePreviewParam.fileUrl"
|
||||
@@ -283,8 +283,17 @@ const getName = (list) => {
|
||||
const showCompany = () => {
|
||||
companyRef.value.show()
|
||||
}
|
||||
|
||||
const selected = (select) => {
|
||||
const cancelSelectedCompany=(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 = []
|
||||
for (let val of select) {
|
||||
formData.value.companyIds.push(val.value)
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<baseTitle title="项目实施-上传附件" ></baseTitle>
|
||||
<el-form :model="formData" ref="tagForm" label-width="auto">
|
||||
<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-option
|
||||
v-for="item in tagsOption"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<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"
|
||||
:destroy-on-close="true">
|
||||
:title="title" :visible.sync="visible" v-model="visible" append-to-body :close-on-click-modal="false"
|
||||
>
|
||||
<div class="picker">
|
||||
<div class="candidate" v-loading="loading">
|
||||
<el-input v-model="filterText" @change="getList"
|
||||
|
||||
Reference in New Issue
Block a user