diff --git a/src/components/dict/JSearchSelectTag.vue b/src/components/dict/JSearchSelectTag.vue index 28695f5..803b722 100644 --- a/src/components/dict/JSearchSelectTag.vue +++ b/src/components/dict/JSearchSelectTag.vue @@ -14,6 +14,7 @@ @change="handleAsyncChange" allowClear :notFoundContent="loading ? undefined : null" + :mode="mode" > {{ d.text }} @@ -31,7 +32,8 @@ :filterOption="filterOption" v-model="selectedValue" allowClear - :notFoundContent="loading ? undefined : null"> + :notFoundContent="loading ? undefined : null" + :mode="mode"> {{ d.text }} @@ -74,6 +76,10 @@ type:Function, default: null }, + mode:{ + type: String, + default: '', + }, }, data(){ this.loadData = debounce(this.loadData, 800);//消抖 @@ -135,16 +141,47 @@ //update-end-author:taoyan date:20220112 for: 方法initSelectValue 根据下拉框实际值查询下拉框的显示的文本 因后台接口只处理3个参数,所以将过滤条件去掉 getAction(`/sys/dict/loadDictItem/${itemDictStr}`,{key:this.value}).then(res=>{ if(res.success){ - let obj = { - key:this.value, - label:res.result + //update-begin---author:wangshuai ---date:20221115 for:[issues/4213]JSearchSelectTag改造支持多选------------ + //判断是否多选 + if(this.mode === 'multiple'){ + if(res.result && res.result.length>0){ + let itemArray = []; + let valueArray = this.value.split(",") + for (let i = 0; i < res.result.length; i++) { + itemArray.push({ + key:valueArray[i], + label:res.result[i] + }) + } + this.selectedAsyncValue = itemArray + }else{ + this.selectedAsyncValue = [] + this.selectedValue = [] + } + }else{ + let obj = { + key:this.value, + label:res.result + } + this.selectedAsyncValue = {...obj} } - this.selectedAsyncValue = {...obj} + //update-end---author:wangshuai ---date:20221115 for:[issues/4213]JSearchSelectTag改造支持多选-------------- } }) } }else{ - this.selectedValue = this.value.toString() + //update-begin---author:wangshuai ---date:20221115 for:[issues/4213]JSearchSelectTag改造支持多选------------ + //判断是否为多选 + if(this.mode==='multiple'){ + if(this.value){ + this.selectedValue = this.value.split(","); + }else{ + this.selectedValue = [] + } + }else{ + this.selectedValue = this.value.toString() + } + //update-end---author:wangshuai ---date:20221115 for:[issues/4213]JSearchSelectTag改造支持多选------------ } }, loadData(value){ @@ -228,7 +265,17 @@ //update-begin-author:scott date:20201222 for:【搜索】搜索查询组件,删除条件,默认下拉还是上次的缓存数据,不好 JT-191 if(selectedObj){ this.selectedAsyncValue = selectedObj - this.selectedValue = selectedObj.key + //update-begin---author:wangshuai ---date:20221115 for:[issues/4213]JSearchSelectTag改造支持多选------------ + if(this.mode ==='multiple'){ + let keyArray = [] + for (let i = 0; i < selectedObj.length; i++) { + keyArray.push(selectedObj[i].key) + } + this.selectedValue = keyArray + }else{ + this.selectedValue = selectedObj.key + } + //update-end---author:wangshuai ---date:20221115 for:[issues/4213]JSearchSelectTag改造支持多选------------ }else{ this.selectedAsyncValue = null this.selectedValue = null @@ -239,7 +286,13 @@ //update-end-author:scott date:20201222 for:【搜索】搜索查询组件,删除条件,默认下拉还是上次的缓存数据,不好 JT-191 }, callback(){ - this.$emit('change', this.selectedValue); + //update-begin---author:wangshuai ---date:20221115 for:[issues/4213]JSearchSelectTag改造支持多选------------ + if(this.mode === 'multiple'){ + this.$emit('change', this.selectedValue.join(",")); + }else{ + this.$emit('change', this.selectedValue); + } + //update-end---author:wangshuai ---date:20221115 for:[issues/4213]JSearchSelectTag改造支持多选------------ }, setCurrentDictOptions(dictOptions){ this.options = dictOptions diff --git a/src/views/jeecg/SelectDemo.vue b/src/views/jeecg/SelectDemo.vue index 61ac611..29a2cf7 100644 --- a/src/views/jeecg/SelectDemo.vue +++ b/src/views/jeecg/SelectDemo.vue @@ -56,6 +56,16 @@ 选中值:{{ formData.searchValue}} + + + + + + + + + 选中值:{{ formData.searchMultipleValue}} + @@ -72,6 +82,22 @@ 选中值:{{ formData.asyncSelectValue}} + + + + + + + + + 选中值:{{ formData.asyncMultipleValue}} +