Commit ae77e323 authored by tyyin lan's avatar tyyin lan

chore: 多语言切换配置

parent e9dff59d
<script setup lang="ts">
import { useSystemLanguageStore } from '@/store/modules/system-language'
import { ref } from 'vue'
import { useI18n } from 'vue-i18n'
// import { useI18n } from 'vue-i18n'
import { Up, Translate, Down } from '@icon-park/vue-next'
import { useRouter } from 'vue-router'
interface Props {
arrowDirection: 'top' | 'bottom'
......@@ -12,7 +13,8 @@ interface Props {
const { arrowDirection = 'bottom', btnBgColor = '#f4f5f5' } = defineProps<Props>()
const systemLanguageStore = useSystemLanguageStore()
const { locale } = useI18n()
// const { locale } = useI18n()
const router = useRouter()
const isShowLanguagePopover = ref(false)
......@@ -27,7 +29,8 @@ function handleLanguageOptionsUpdateShow(value: boolean) {
function handleLanguageOptionSelect(key: I18n.LangType) {
systemLanguageStore.updateCurrentLanguageInfo(key)
locale.value = key
router.go(0)
// locale.value = key
isShowLanguagePopover.value = false
}
......
export function languageKeyTransform(key: string) {
let language = 'zh-CN'
switch (key) {
case 'zh-HK':
language = 'zh-tw'
break
case 'zh-CN':
language = 'zh-cn'
break
case 'en':
language = 'en'
break
}
return language
}
......@@ -4,6 +4,8 @@ import { useUserStore } from '@/store/modules/user'
import { useRouter } from 'vue-router'
import { router } from '@/router'
import { debounce } from 'lodash-es'
import { useSystemLanguageStore } from '@/store/modules/system-language'
import { languageKeyTransform } from './language-key-transform'
interface PagingInfoParams {
pageNo: number
......@@ -57,6 +59,8 @@ service.interceptors.request.use(
if (token) config.headers['X-Request-Token'] = token
config.headers['x-lang'] = languageKeyTransform(useSystemLanguageStore().currentLanguageInfo.key)
return config
},
(error) => {
......
/**
* @description 创建层级关系
* @param tree 树
* @param pathList 每一项的id组成的数组
* @returns 创建层级关系后的树
*/
export const buildHierarchyTree = (tree: any[], pathList = []): any => {
if (!Array.isArray(tree)) {
console.warn('tree must be an array')
return []
}
if (!tree || tree.length === 0) return []
for (const [key, node] of tree.entries()) {
node.id = key
node.parentId = pathList.length ? pathList[pathList.length - 1] : null
node.pathList = [...pathList, node.id]
const hasChildren = node.children && node.children.length > 0
if (hasChildren) {
buildHierarchyTree(node.children, node.pathList)
}
}
return tree
}
import { BASE_URLS } from '@/config/base-url'
import { useSystemLanguageStore } from '@/store/modules/system-language'
import { useUserStore } from '@/store/modules/user'
import { languageKeyTransform } from '@/utils/language-key-transform'
import { fetchEventSource } from '@microsoft/fetch-event-source'
interface Options {
......@@ -21,6 +23,7 @@ export default function fetchEventStreamSource(
) {
const ENV = import.meta.env.VITE_APP_ENV
const userStore = useUserStore()
const systemLanguageStore = useSystemLanguageStore()
const controller = new AbortController()
......@@ -29,6 +32,7 @@ export default function fetchEventStreamSource(
headers: {
'Content-Type': 'application/json',
'x-request-token': userStore.token,
'x-lang': languageKeyTransform(systemLanguageStore.currentLanguageInfo.key),
},
body: JSON.stringify(payload),
signal: controller?.signal,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment