From 730135f4f1f64b8bfe4875a28ab9bef307db3d48 Mon Sep 17 00:00:00 2001 From: LIUCHAO <50739490+Tsong-LC@users.noreply.github.com> Date: Thu, 13 Oct 2022 11:05:33 +0800 Subject: [PATCH] fix(components): [cascader] placeholder disappear when resetForm (#10036) --- .../cascader/__tests__/cascader.test.tsx | 30 ++++++++++++++++++- packages/components/cascader/src/index.vue | 2 +- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/packages/components/cascader/__tests__/cascader.test.tsx b/packages/components/cascader/__tests__/cascader.test.tsx index f77903640f..71c8eb7a3c 100644 --- a/packages/components/cascader/__tests__/cascader.test.tsx +++ b/packages/components/cascader/__tests__/cascader.test.tsx @@ -1,4 +1,4 @@ -import { nextTick, ref } from 'vue' +import { nextTick, reactive, ref } from 'vue' import { mount } from '@vue/test-utils' import { afterEach, describe, expect, it, test, vi } from 'vitest' import { EVENT_CODE } from '@element-plus/constants' @@ -6,6 +6,7 @@ import triggerEvent from '@element-plus/test-utils/trigger-event' import { ArrowDown, Check, CircleClose } from '@element-plus/icons-vue' import { POPPER_CONTAINER_SELECTOR } from '@element-plus/hooks' import { hasClass } from '@element-plus/utils' +import ElForm, { ElFormItem } from '@element-plus/components/form' import Cascader from '../src/index.vue' import type { VNode } from 'vue' @@ -398,4 +399,31 @@ describe('Cascader.vue', () => { ).toBe('') }) }) + + test('placeholder disappear when resetForm', async () => { + const model = reactive({ + name: new Array(), + }) + + const wrapper = _mount(() => ( + + + + + + )) + + model.name = ['zhejiang', 'hangzhou'] + await nextTick() + expect(wrapper.find('input').element.placeholder).toBe('') + + wrapper.findComponent(ElForm).vm.$.exposed!.resetFields() + await nextTick() + expect(wrapper.find('input').element.placeholder).toBe(AXIOM) + }) }) diff --git a/packages/components/cascader/src/index.vue b/packages/components/cascader/src/index.vue index 4bfd7e5993..ec2b69c4fa 100644 --- a/packages/components/cascader/src/index.vue +++ b/packages/components/cascader/src/index.vue @@ -727,7 +727,7 @@ export default defineComponent({ nextTick(() => updateStyle()) }) - watch(presentText, (val) => (inputValue.value = val), { immediate: true }) + watch(presentText, syncPresentTextValue, { immediate: true }) onMounted(() => { const inputEl = input.value?.$el