officialWebsite/src/App.vue

70 lines
1.4 KiB
Vue
Raw Normal View History

2025-02-19 03:52:29 +00:00
<script setup>
2025-02-19 11:04:19 +00:00
import { ref } from "vue";
2025-02-21 03:27:50 +00:00
2025-02-19 11:04:19 +00:00
import { useI18n } from "vue-i18n";
import { NConfigProvider, NDropdown } from "naive-ui";
const { locale } = useI18n();
const primaryColor = ref("#2B69A1");
2025-02-19 03:52:29 +00:00
const themeOverrides = ref({
common: {
primaryColorPressed: primaryColor,
2025-02-19 11:04:19 +00:00
primaryHover: primaryColor,
2025-02-19 03:52:29 +00:00
primaryDefault: primaryColor,
primaryActive: primaryColor,
primarySuppl: primaryColor,
primaryColor: primaryColor,
2025-02-19 11:04:19 +00:00
primaryColorHover: primaryColor,
},
});
2025-02-19 03:52:29 +00:00
const languageOptions = [
{
2025-02-19 11:04:19 +00:00
label: "简体中文",
key: "zh",
2025-02-19 03:52:29 +00:00
},
{
2025-02-19 11:04:19 +00:00
label: "繁體中文",
key: "zh-TW",
2025-02-19 03:52:29 +00:00
},
{
2025-02-19 11:04:19 +00:00
label: "English",
key: "en",
2025-02-19 03:52:29 +00:00
},
{
2025-02-19 11:04:19 +00:00
label: "日本語",
key: "ja",
},
];
2025-02-19 03:52:29 +00:00
const handleLanguageChange = (key) => {
2025-02-19 11:04:19 +00:00
locale.value = key;
localStorage.setItem("language", key);
};
2025-02-19 03:52:29 +00:00
</script>
<template>
<n-config-provider :theme-overrides="themeOverrides">
<!-- <n-dropdown
trigger="hover"
:options="languageOptions"
@select="handleLanguageChange"
class="lang-switch"
>
<div class="lang-text">
{{ languageOptions.find(opt => opt.key === locale)?.label }}
</div>
</n-dropdown> -->
<router-view />
</n-config-provider>
</template>
<style>
.lang-text {
padding: 5px 10px;
border-radius: 4px;
background: #fff;
2025-02-19 11:04:19 +00:00
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
2025-02-19 03:52:29 +00:00
cursor: pointer;
}
</style>