|
@@ -4,10 +4,15 @@
|
|
|
<s-header :name="sys ? sys.title : $t('public.sysName')" :noback="true"></s-header>
|
|
|
<div class="loginLogoBox l-re">
|
|
|
<div class="loginLogo"></div>
|
|
|
- <div class="l-ab pointer languageCon" @click="languageClk">
|
|
|
- <div class="c-text-b">
|
|
|
+ <div class="l-ab pointer languageCon">
|
|
|
+ <!-- <div class="c-text-b">
|
|
|
{{ compLang }}
|
|
|
- </div>
|
|
|
+ </div> -->
|
|
|
+ <van-popover :offset="[0, 8]" theme="dark" v-model:show="showPopover" :actions="actions" @select="onSelect">
|
|
|
+ <template #reference>
|
|
|
+ <van-button style="height: auto; color: #4d6add;" type="primary">{{ currentLan }}</van-button>
|
|
|
+ </template>
|
|
|
+ </van-popover>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="loginTitleBox l-flex-center">
|
|
@@ -64,40 +69,43 @@ import { Locale } from "vant";
|
|
|
import enUS from "vant/es/locale/lang/en-US";
|
|
|
// 引入简体中文语言包
|
|
|
import zhCN from "vant/es/locale/lang/zh-CN";
|
|
|
+// 引入日文语言包
|
|
|
+import jaJP from 'vant/es/locale/lang/ja-JP';
|
|
|
|
|
|
export default {
|
|
|
setup() {
|
|
|
let languageName = ref(getLocal("curLang"));
|
|
|
const { locale, t } = useI18n();
|
|
|
// 语言点击
|
|
|
- const languageClk = () => {
|
|
|
- if (languageName.value === "zh") {
|
|
|
- locale.value = "en";
|
|
|
- languageName.value = "en";
|
|
|
- setLocal("curLang", "en");
|
|
|
- // 切换vant语言包
|
|
|
- Locale.use("en-US", enUS);
|
|
|
- } else {
|
|
|
- locale.value = "zh";
|
|
|
- languageName.value = "zh";
|
|
|
- setLocal("curLang", "zh");
|
|
|
- // 切换vant语言包
|
|
|
- Locale.use("zh-CN", zhCN);
|
|
|
- }
|
|
|
- };
|
|
|
- const compLang = computed(() => {
|
|
|
- if (languageName.value === "en") {
|
|
|
- return "中文";
|
|
|
- } else {
|
|
|
- return "English";
|
|
|
- }
|
|
|
- });
|
|
|
+ // const languageClk = () => {
|
|
|
+ // if (languageName.value === "zh") {
|
|
|
+ // locale.value = "en";
|
|
|
+ // languageName.value = "en";
|
|
|
+ // setLocal("curLang", "en");
|
|
|
+ // // 切换vant语言包
|
|
|
+ // Locale.use("en-US", enUS);
|
|
|
+ // } else {
|
|
|
+ // locale.value = "zh";
|
|
|
+ // languageName.value = "zh";
|
|
|
+ // setLocal("curLang", "zh");
|
|
|
+ // // 切换vant语言包
|
|
|
+ // Locale.use("zh-CN", zhCN);
|
|
|
+ // }
|
|
|
+ // };
|
|
|
+ // const compLang = computed(() => {
|
|
|
+ // if (languageName.value === "en") {
|
|
|
+ // return "中文";
|
|
|
+ // } else {
|
|
|
+ // return "English";
|
|
|
+ // }
|
|
|
+ // });
|
|
|
const checked = ref(false); // 是否记住密码状态
|
|
|
const userName = ref("");
|
|
|
const userPwd = ref("");
|
|
|
const router = useRouter();
|
|
|
const route = useRoute();
|
|
|
const sys = ref(null);
|
|
|
+ const currentLan = ref(''); // 当前语言
|
|
|
// 页面初始化
|
|
|
onMounted(() => {
|
|
|
// 加载样式
|
|
@@ -119,6 +127,13 @@ export default {
|
|
|
userName.value = savedUsername;
|
|
|
userPwd.value = savedPassword;
|
|
|
}
|
|
|
+ if (languageName.value === "zh") {
|
|
|
+ currentLan.value = "中文";
|
|
|
+ } else if (languageName.value === "ja") {
|
|
|
+ currentLan.value = "日本語";
|
|
|
+ } else {
|
|
|
+ currentLan.value = "English";
|
|
|
+ }
|
|
|
});
|
|
|
const getSysFun = async () => {
|
|
|
const { data } = await getSys({
|
|
@@ -130,6 +145,39 @@ export default {
|
|
|
sys.value = data.data;
|
|
|
}
|
|
|
};
|
|
|
+
|
|
|
+ const showPopover = ref(false);
|
|
|
+
|
|
|
+ // 通过 actions 属性来定义菜单选项
|
|
|
+ const actions = [
|
|
|
+ { text: '中文' },
|
|
|
+ { text: 'English' },
|
|
|
+ { text: '日本語' },
|
|
|
+ ];
|
|
|
+ // 切换语言
|
|
|
+ const onSelect = (action) => {
|
|
|
+ // showToast(action.text);
|
|
|
+ currentLan.value = action.text;
|
|
|
+ if (action.text === "中文") {
|
|
|
+ locale.value = "zh";
|
|
|
+ languageName.value = "zh";
|
|
|
+ setLocal("curLang", "zh");
|
|
|
+ // 切换vant语言包
|
|
|
+ Locale.use("zh-CN", zhCN);
|
|
|
+ } else if (action.text === "English") {
|
|
|
+ locale.value = "en";
|
|
|
+ languageName.value = "en";
|
|
|
+ setLocal("curLang", "en");
|
|
|
+ // 切换vant语言包
|
|
|
+ Locale.use("en-US", enUS);
|
|
|
+ } else if (action.text === "日本語") {
|
|
|
+ locale.value = "ja";
|
|
|
+ languageName.value = "ja";
|
|
|
+ setLocal("curLang", "ja");
|
|
|
+ // 切换vant语言包
|
|
|
+ Locale.use("ja-JP", jaJP);
|
|
|
+ }
|
|
|
+ }
|
|
|
// 登录
|
|
|
const onSubmit = async (values) => {
|
|
|
const { data } = await login({
|
|
@@ -214,12 +262,16 @@ export default {
|
|
|
registerClick,
|
|
|
forgetPassword,
|
|
|
sys,
|
|
|
- compLang,
|
|
|
- languageClk,
|
|
|
+ // compLang,
|
|
|
+ // languageClk,
|
|
|
isInWeChat,
|
|
|
state,
|
|
|
wxLoginHandler,
|
|
|
getOpenid,
|
|
|
+ actions,
|
|
|
+ onSelect,
|
|
|
+ showPopover,
|
|
|
+ currentLan,
|
|
|
};
|
|
|
},
|
|
|
components: {
|