diff --git a/CHANGELOG.md b/CHANGELOG.md index c36b1a42..cb359556 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ **BUG FIX** - 菜单管理 路由地址的必填项不生效 +- withDefaultPlaceholder中placeholder 在keepalive & 语言切换 & tab切换 显示不变的问题 **REFACTOR** diff --git a/apps/web-antd/src/adapter/component/index.ts b/apps/web-antd/src/adapter/component/index.ts index 61956b3f..2b3c1522 100644 --- a/apps/web-antd/src/adapter/component/index.ts +++ b/apps/web-antd/src/adapter/component/index.ts @@ -9,6 +9,7 @@ import type { BaseFormComponentType } from '@vben/common-ui'; import type { Recordable } from '@vben/types'; import { + computed, defineAsyncComponent, defineComponent, getCurrentInstance, @@ -93,10 +94,13 @@ const withDefaultPlaceholder = ( name: component.name, inheritAttrs: false, setup: (props: any, { attrs, expose, slots }) => { - const placeholder = - props?.placeholder || - attrs?.placeholder || - $t(`ui.placeholder.${type}`); + // 改为placeholder 解决在keepalive & 语言切换 & tab切换 显示不变的问题 + const computedPlaceholder = computed( + () => + props?.placeholder || + attrs?.placeholder || + $t(`ui.placeholder.${type}`), + ); // 透传组件暴露的方法 const innerRef = ref(); @@ -115,7 +119,7 @@ const withDefaultPlaceholder = ( component, { ...componentProps, - placeholder, + placeholder: computedPlaceholder.value, ...props, ...attrs, ref: innerRef,