Browse Source

perf(组件-BasicModal): 优化BasicModal按钮国际化加载,解决加载顺序导致国际化失效的问题

shizhongming 2 years ago
parent
commit
bc51ce8e68
  1. 1
      src/components/Modal/index.ts
  2. 6
      src/components/Modal/src/BasicModal.vue
  3. 19
      src/components/Modal/src/props.ts

1
src/components/Modal/index.ts

@ -6,3 +6,4 @@ export const BasicModal = withInstall(basicModal);
export { useModalContext } from './src/hooks/useModalContext';
export { useModal, useModalInner } from './src/hooks/useModal';
export * from './src/typing';
export { default as BasicModalFooter } from './src/components/ModalFooter.vue';

6
src/components/Modal/src/BasicModal.vue

@ -114,9 +114,15 @@
// Custom title component: get title
const getMergeProps = computed((): Recordable => {
const { cancelText: cancelTextProps } = props;
let cancelText = cancelTextProps;
if (cancelTextProps && isFunction(cancelTextProps)) {
cancelText = cancelTextProps();
}
return {
...props,
...(unref(propsRef) as any),
cancelText,
};
});

19
src/components/Modal/src/props.ts

@ -3,8 +3,6 @@ import type { ModalWrapperProps } from './typing';
import { ButtonProps } from 'ant-design-vue/es/button/buttonTypes';
import { useI18n } from '@/hooks/web/useI18n';
const { t } = useI18n();
export const modalProps = {
open: { type: Boolean },
scrollTop: { type: Boolean, default: true },
@ -13,9 +11,20 @@ export const modalProps = {
// open drag
draggable: { type: Boolean, default: true },
centered: { type: Boolean },
cancelText: { type: String, default: t('common.cancelText') },
okText: { type: String, default: t('common.okText') },
cancelText: {
type: [String, Function],
default: () => {
const { t } = useI18n();
return t('common.cancelText');
},
},
okText: {
type: [String, Function],
default: () => {
const { t } = useI18n();
return t('common.okText');
},
},
closeFunc: Function as PropType<() => Promise<boolean>>,
};

Loading…
Cancel
Save