diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index c6c30227..eb14f9e6 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1,6 +1,8 @@
lockfileVersion: 5.4
specifiers:
+ '@amap/amap-jsapi-loader': ^1.0.1
+ '@amap/amap-jsapi-types': ^0.0.8
'@commitlint/cli': ^17.0.2
'@commitlint/config-conventional': ^17.0.2
'@types/color': ^3.0.3
@@ -65,6 +67,8 @@ specifiers:
vuedraggable: ^4.1.0
dependencies:
+ '@amap/amap-jsapi-loader': 1.0.1
+ '@amap/amap-jsapi-types': 0.0.8
'@types/color': 3.0.3
'@types/crypto-js': 4.1.1
'@types/keymaster': 1.6.30
@@ -132,6 +136,14 @@ devDependencies:
packages:
+ /@amap/amap-jsapi-loader/1.0.1:
+ resolution: {integrity: sha512-nPyLKt7Ow/ThHLkSvn2etQlUzqxmTVgK7bIgwdBRTg2HK5668oN7xVxkaiRe3YZEzGzfV2XgH5Jmu2T73ljejw==}
+ dev: false
+
+ /@amap/amap-jsapi-types/0.0.8:
+ resolution: {integrity: sha512-q0FyZDIJcXjsMLGc3oS9rjfJsErOvt9rcp6AgzY4k14vo7bBhdq4eKwoSdVp/pYjR/rfaKBns5v10ycZOFwf/A==}
+ dev: false
+
/@ampproject/remapping/2.2.0:
resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==}
engines: {node: '>=6.0.0'}
diff --git a/src/App.vue b/src/App.vue
index 1865e459..2fa191d8 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -1,9 +1,9 @@
@@ -14,11 +14,10 @@
diff --git a/src/hooks/index.ts b/src/hooks/index.ts
index bc9825fb..5ecfe3dd 100644
--- a/src/hooks/index.ts
+++ b/src/hooks/index.ts
@@ -2,4 +2,5 @@ export * from '@/hooks/useTheme.hook'
export * from '@/hooks/usePreviewScale.hook'
export * from '@/hooks/useCode.hook'
export * from '@/hooks/useChartDataFetch.hook'
-export * from '@/hooks/useLifeHandler.hook'
\ No newline at end of file
+export * from '@/hooks/useLifeHandler.hook'
+export * from '@/hooks/useLang.hook'
\ No newline at end of file
diff --git a/src/hooks/useLang.hook.ts b/src/hooks/useLang.hook.ts
new file mode 100644
index 00000000..f165ce6d
--- /dev/null
+++ b/src/hooks/useLang.hook.ts
@@ -0,0 +1,24 @@
+import { computed } from 'vue'
+import { LangEnum } from '@/enums/styleEnum'
+import { useLangStore } from '@/store/modules/langStore/langStore'
+import { zhCN, enUS, dateEnUS, dateZhCN } from 'naive-ui'
+
+type LangStoreType = typeof useLangStore
+
+// 语言切换
+export const useLang = () => {
+ const lang = useLangStore()
+
+ const locale = computed(() => {
+ return lang.getLang === LangEnum.ZH ? zhCN : enUS
+ })
+
+ const dateLocale = computed(() => {
+ return lang.getLang === LangEnum.ZH ? dateZhCN : dateEnUS
+ })
+
+ return {
+ locale,
+ dateLocale
+ }
+}
diff --git a/src/store/index.ts b/src/store/index.ts
index efaf6c97..4e303ea9 100644
--- a/src/store/index.ts
+++ b/src/store/index.ts
@@ -1,10 +1,10 @@
import type { App } from 'vue';
import { createPinia } from 'pinia';
-const store = createPinia();
+const pinia = createPinia();
export function setupStore(app: App) {
- app.use(store);
+ app.use(pinia);
}
-export { store };
+export { pinia };
diff --git a/src/store/modules/langStore/langStore.ts b/src/store/modules/langStore/langStore.ts
index 9eb7bdeb..d1795e6c 100644
--- a/src/store/modules/langStore/langStore.ts
+++ b/src/store/modules/langStore/langStore.ts
@@ -6,10 +6,8 @@ import i18n from '@/i18n/index'
import { setLocalStorage, getLocalStorage, reloadRoutePage } from '@/utils'
import { StorageEnum } from '@/enums/storageEnum'
import { useSettingStore } from '@/store/modules/settingStore/settingStore'
-const settingStore = useSettingStore()
const { GO_LANG_STORE } = StorageEnum
-
const storageLang: LangStateType = getLocalStorage(GO_LANG_STORE)
// 语言
@@ -17,7 +15,7 @@ export const useLangStore = defineStore({
id: 'useLangStore',
state: (): LangStateType =>
storageLang || {
- lang,
+ lang
},
getters: {
getLang(): LangEnum {
@@ -26,6 +24,8 @@ export const useLangStore = defineStore({
},
actions: {
changeLang(lang: LangEnum): void {
+ const settingStore = useSettingStore()
+
if (this.lang === lang) return
this.lang = lang
i18n.global.locale = lang