From fd035a3e1b9448d14b5566c35a52c7a000549915 Mon Sep 17 00:00:00 2001 From: Kriac <1651151664@qq.com> Date: Wed, 20 May 2026 18:05:52 +0800 Subject: [PATCH 1/2] fix(search): support v-model syntax sugar --- packages/uniapp-components/search/search.vue | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/uniapp-components/search/search.vue b/packages/uniapp-components/search/search.vue index 4a01abf2c..557ddb763 100644 --- a/packages/uniapp-components/search/search.vue +++ b/packages/uniapp-components/search/search.vue @@ -200,7 +200,10 @@ export default { this.showClearIcon = value || String(clearTrigger) === 'always'; }, - + emitChange(data) { + this.$emit('update:value', data.value); + this.$emit('change', data); + }, onInput(e) { let { value } = e.detail; // this.rawValue = value; @@ -216,7 +219,7 @@ export default { nextTick().then(() => { this.dataValue = value; - this.$emit('change', { + this.emitChange({ value, trigger: 'input-change', }); @@ -241,7 +244,7 @@ export default { this.dataValue = ''; this.isSearching = false; this.$emit('clear', { value: '' }); - this.$emit('change', { + this.emitChange({ value: '', trigger: 'clear', }); @@ -261,8 +264,7 @@ export default { const item = this.resultList[index]; this.dataValue = item; this.isSelected = true; - - this.$emit('change', { + this.emitChange({ value: item, trigger: 'option-click', }); From 78bd2a5e178edda80d347a67ce9f92f144bca065 Mon Sep 17 00:00:00 2001 From: Kriac <1651151664@qq.com> Date: Wed, 20 May 2026 18:55:14 +0800 Subject: [PATCH 2/2] fix(search): emit clear event after change --- packages/uniapp-components/search/search.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/uniapp-components/search/search.vue b/packages/uniapp-components/search/search.vue index 557ddb763..e280a7696 100644 --- a/packages/uniapp-components/search/search.vue +++ b/packages/uniapp-components/search/search.vue @@ -243,11 +243,11 @@ export default { handleClear() { this.dataValue = ''; this.isSearching = false; - this.$emit('clear', { value: '' }); this.emitChange({ value: '', trigger: 'clear', }); + this.$emit('clear', { value: '' }); }, onConfirm(e) {