ソースを参照

fix: 弹出国际化配置

bill 2 年 前
コミット
6ed1fa5d7c
4 ファイル変更20 行追加4 行削除
  1. 3 3
      src/App.vue
  2. 1 0
      src/components.d.ts
  3. 9 0
      src/components/locale-env/index.vue
  4. 7 1
      src/helper/index.ts

+ 3 - 3
src/App.vue

@@ -1,15 +1,15 @@
 <template>
-  <a-config-provider :locale="zhCN">
+  <LocaleEnv>
     <RouterView v-slot="{ Component }">
       <KeepAlive>
         <component :is="Component" />
       </KeepAlive>
     </RouterView>
-  </a-config-provider>
+  </LocaleEnv>
 </template>
 
 <script setup lang="ts">
-import zhCN from 'ant-design-vue/es/locale/zh_CN'
+import LocaleEnv from '@/components/locale-env/index.vue'
 import dayjs from 'dayjs'
 import 'dayjs/locale/zh-cn'
 dayjs.locale('zh-cn')

+ 1 - 0
src/components.d.ts

@@ -40,6 +40,7 @@ declare module '@vue/runtime-core' {
     DownOutlined: typeof import('@ant-design/icons-vue')['DownOutlined']
     EasyText: typeof import('./components/easyText/index.vue')['default']
     Loading: typeof import('./components/loading/index.vue')['default']
+    LocaleEnv: typeof import('./components/locale-env/index.vue')['default']
     RouterLink: typeof import('vue-router')['RouterLink']
     RouterView: typeof import('vue-router')['RouterView']
     Simples: typeof import('./components/simples/index.vue')['default']

+ 9 - 0
src/components/locale-env/index.vue

@@ -0,0 +1,9 @@
+<template>
+  <a-config-provider :locale="zhCN">
+    <slot></slot>
+  </a-config-provider>
+</template>
+
+<script setup lang="ts">
+import zhCN from 'ant-design-vue/es/locale/zh_CN'
+</script>

+ 7 - 1
src/helper/index.ts

@@ -1,11 +1,17 @@
 import { app } from '@/main'
 import { genMount } from './mount'
+import LocaleEnv from '@/components/locale-env/index.vue'
+import { h } from 'vue'
 
 export const mount = genMount(app)
 
 export const renderCompoent = <P>(comp: ComponentConstructor<P>, props: P) => {
   const element = document.createElement('div')
-  const { destroy } = mount(comp, { props, element })
+  const { destroy } = mount(LocaleEnv, {
+    element,
+    children: { default: () => h(comp as any, props as any) }
+  })
+  // const { destroy } = mount(comp, { props, element })
   return () => {
     destroy()
     if (document.body.contains(element)) {