From d4a3da33a1cc113550864cdce1807b0734b1055e Mon Sep 17 00:00:00 2001 From: gimmyhehe <975402925@qq.com> Date: Mon, 21 Oct 2024 19:20:21 +0800 Subject: [PATCH 1/3] fix(autocomplete): [autocomplete] fix form validate error when select suggestion option (#2296) --- packages/renderless/package.json | 2 +- packages/renderless/src/autocomplete/index.ts | 13 ++++++---- packages/renderless/src/autocomplete/vue.ts | 3 +-- packages/vue/src/autocomplete/package.json | 24 +++++++++---------- packages/vue/src/autocomplete/src/pc.vue | 2 +- 5 files changed, 24 insertions(+), 20 deletions(-) diff --git a/packages/renderless/package.json b/packages/renderless/package.json index e922636ff9..49cf2ec079 100644 --- a/packages/renderless/package.json +++ b/packages/renderless/package.json @@ -1,6 +1,6 @@ { "name": "@opentiny/vue-renderless", - "version": "3.18.4", + "version": "3.18.5", "private": true, "description": "An enterprise-class UI component library, support both Vue.js 2 and Vue.js 3, as well as PC and mobile.", "author": "OpenTiny Team", diff --git a/packages/renderless/src/autocomplete/index.ts b/packages/renderless/src/autocomplete/index.ts index 9c2c9f5506..30dbbd76ba 100644 --- a/packages/renderless/src/autocomplete/index.ts +++ b/packages/renderless/src/autocomplete/index.ts @@ -109,9 +109,9 @@ export const handleFocus = export const handleBlur = ({ emit, state, dispatch, props }: Pick) => - (event) => { + () => { state.suggestionDisabled = true - emit('blur', event) + emit('blur') if (state.validateEvent) { dispatch(FORM_ITEM, FORM_EVENT.blur, [props.modelValue]) } @@ -165,7 +165,8 @@ export const select = emit, nextTick, props, - state + state, + dispatch }: { emit: IAutoCompleteRenderlessParamUtils['emit'] nextTick: IAutoCompleteRenderlessParamUtils['nextTick'] @@ -173,9 +174,13 @@ export const select = state: IAutoCompleteState }) => (item) => { - emit('update:modelValue', item[props.valueKey]) + const value = item[props.valueKey] + emit('update:modelValue', value) emit('select', item) + if (state.validateEvent) { + dispatch(FORM_ITEM, FORM_EVENT.change, [value]) + } nextTick(() => { state.activated = false state.suggestions = [] diff --git a/packages/renderless/src/autocomplete/vue.ts b/packages/renderless/src/autocomplete/vue.ts index b11debfe56..6048dcf2e6 100644 --- a/packages/renderless/src/autocomplete/vue.ts +++ b/packages/renderless/src/autocomplete/vue.ts @@ -39,7 +39,6 @@ import type { export const api = [ 'state', - 'select', 'suggestionState', 'getInput', 'handleChange', @@ -125,7 +124,7 @@ const initApi = ({ mounted: mounted({ vm, state, suggestionState }), highlight: highlight({ constants, vm, state }), handleClear: handleClear({ emit, state }), - select: select({ emit, nextTick, props, state }), + select: select({ emit, nextTick, props, state, dispatch }), watchVisible: watchVisible({ suggestionState, vm }), handleChange: handleChange({ api, emit, state, props, dispatch }), handleFocus: handleFocus({ api, emit, props, state }), diff --git a/packages/vue/src/autocomplete/package.json b/packages/vue/src/autocomplete/package.json index 5b74e1bf83..8d986a9cf2 100644 --- a/packages/vue/src/autocomplete/package.json +++ b/packages/vue/src/autocomplete/package.json @@ -1,26 +1,26 @@ { "name": "@opentiny/vue-autocomplete", - "version": "3.18.0", + "type": "module", + "version": "3.18.1", "description": "", + "license": "MIT", + "sideEffects": false, "main": "lib/index.js", "module": "index.ts", - "sideEffects": false, - "type": "module", - "devDependencies": { - "@opentiny-internal/vue-test-utils": "workspace:*", - "vitest": "^0.31.0" - }, "scripts": { "build": "pnpm -w build:ui $npm_package_name", "//postversion": "pnpm build" }, "dependencies": { - "@opentiny/vue-renderless": "workspace:~", + "@opentiny/vue-common": "workspace:~", + "@opentiny/vue-icon": "workspace:~", "@opentiny/vue-input": "workspace:~", + "@opentiny/vue-renderless": "workspace:~", "@opentiny/vue-scrollbar": "workspace:~", - "@opentiny/vue-icon": "workspace:~", - "@opentiny/vue-common": "workspace:~", "@opentiny/vue-theme": "workspace:~" }, - "license": "MIT" -} \ No newline at end of file + "devDependencies": { + "@opentiny-internal/vue-test-utils": "workspace:*", + "vitest": "^0.31.0" + } +} diff --git a/packages/vue/src/autocomplete/src/pc.vue b/packages/vue/src/autocomplete/src/pc.vue index d55af27c20..d1997b3dc6 100644 --- a/packages/vue/src/autocomplete/src/pc.vue +++ b/packages/vue/src/autocomplete/src/pc.vue @@ -24,10 +24,10 @@ ref="input" v-bind="f($props, $attrs)" front-clear-icon + v-clickoutside="handleBlur" @update:modelValue="handleChange" :validate-event="false" @focus="handleFocus" - @blur="handleBlur" @clear="handleClear" @keydown.up.prevent="highlight(state.highlightedIndex - 1)" @keydown.down.prevent="highlight(state.highlightedIndex + 1)" From 39fc8122c41ed638feb56068c909e5d67f67a359 Mon Sep 17 00:00:00 2001 From: Kagol Date: Wed, 23 Oct 2024 11:57:24 +0800 Subject: [PATCH 2/3] fix: update @opentiny/fluent-editor version and export defaultToolbar --- packages/vue/src/fluent-editor/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/vue/src/fluent-editor/package.json b/packages/vue/src/fluent-editor/package.json index a443a23443..34223b5320 100644 --- a/packages/vue/src/fluent-editor/package.json +++ b/packages/vue/src/fluent-editor/package.json @@ -1,6 +1,6 @@ { "name": "@opentiny/vue-fluent-editor", - "version": "3.18.0", + "version": "3.18.3", "description": "", "license": "MIT", "sideEffects": false, @@ -11,7 +11,7 @@ "//postversion": "pnpm build" }, "dependencies": { - "@opentiny/fluent-editor": "~3.19.0", + "@opentiny/fluent-editor": "~3.20.0", "@opentiny/vue-common": "workspace:~", "@opentiny/vue-icon": "workspace:~", "@opentiny/vue-image-viewer": "workspace:~", From 5c5f57092e13ae6f8e96b602f30f23f590a1387d Mon Sep 17 00:00:00 2001 From: Kagol Date: Wed, 23 Oct 2024 14:16:26 +0800 Subject: [PATCH 3/3] chore(renderless): release v3.18.6 --- packages/renderless/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/renderless/package.json b/packages/renderless/package.json index 49cf2ec079..c3dab49738 100644 --- a/packages/renderless/package.json +++ b/packages/renderless/package.json @@ -1,6 +1,6 @@ { "name": "@opentiny/vue-renderless", - "version": "3.18.5", + "version": "3.18.6", "private": true, "description": "An enterprise-class UI component library, support both Vue.js 2 and Vue.js 3, as well as PC and mobile.", "author": "OpenTiny Team",