diff --git a/jero-web/src/components/jero/JCategorySelect.vue b/jero-web/src/components/jero/JCategorySelect.vue index b1eeee02..782f4220 100644 --- a/jero-web/src/components/jero/JCategorySelect.vue +++ b/jero-web/src/components/jero/JCategorySelect.vue @@ -159,7 +159,7 @@ /* * 使用$listeners向上暴露事件---和$emit一起使用出现的问题:change事件会执行两遍 * 解决办法:改变选中时提交的事件名*/ - this.$emit('changeValue', value, obj) + this.$emit('select-change', value, obj) }, asyncLoadTreeData (treeNode) { return new Promise((resolve) => { @@ -211,7 +211,7 @@ /* * 使用$listeners向上暴露事件---和$emit一起使用出现的问题:change事件会执行两遍 * 解决办法:改变选中时提交的事件名*/ - this.$emit('changeValue', ''); + this.$emit('select-change', ''); this.treeValue = '' } else if (Array.isArray(value)) { let labels = [] diff --git a/jero-web/src/components/jero/JTreeDict.vue b/jero-web/src/components/jero/JTreeDict.vue index 385009b2..a6c64314 100644 --- a/jero-web/src/components/jero/JTreeDict.vue +++ b/jero-web/src/components/jero/JTreeDict.vue @@ -10,6 +10,7 @@ :value="treeValue" :treeData="treeData" @change="onChange" + @search="onSearch" v-bind="_attrs" v-on="$listeners"> @@ -30,6 +31,10 @@ } }, props:{ + value:{ + // type: String, + required: false + }, placeholder:{ type: String, default: '请选择', @@ -182,8 +187,19 @@ } }, onChange(value){ + if(!value){ + /* + * 使用$listeners向上暴露事件---和$emit一起使用出现的问题:change事件会执行两遍 + * 解决办法:改变选中时提交的事件名*/ + this.$emit('select-change', ''); + }else{ + this.$emit('select-change', value.value); + } this.treeValue = value }, + onSearch(value){ + console.log(value) + }, getCurrTreeData(){ return this.treeData } diff --git a/jero-web/src/components/jero/JTreeSelect.vue b/jero-web/src/components/jero/JTreeSelect.vue index 9ed507df..6cd6e72e 100644 --- a/jero-web/src/components/jero/JTreeSelect.vue +++ b/jero-web/src/components/jero/JTreeSelect.vue @@ -53,10 +53,10 @@ required:false, default:true }, - // value:{ - // type: String, - // required: false - // }, + value:{ + // type: String, + required: false + }, placeholder:{ type: String, default: '请选择', @@ -262,12 +262,18 @@ }, onChange(value){ if(!value){ + /* + * 使用$listeners向上暴露事件---和$emit一起使用出现的问题:change事件会执行两遍 + * 解决办法:改变选中时提交的事件名*/ + this.$emit('select-change', ''); this.treeValue = null } else if (value instanceof Array) { //多选 + this.$emit('select-change', value.join(',').toString()) //修改第一次选中时,选中为空的情况 this.treeValue = value } else { //单选 + this.$emit('select-change', value) this.treeValue = value } }, diff --git a/jero-web/src/views/demo/SelectDemo.vue b/jero-web/src/views/demo/SelectDemo.vue index 205771db..585e38f3 100644 --- a/jero-web/src/views/demo/SelectDemo.vue +++ b/jero-web/src/views/demo/SelectDemo.vue @@ -235,7 +235,7 @@ - + 选中的值(v-model):{{ formData.treeDict }} @@ -277,7 +277,7 @@ - + 选中的值(v-model):{{ formData.selectCategory }}