feat: 添加语言管理功能,更新系统设置页面,优化用户体验
This commit is contained in:
58
src/views/system-settings/language.vue
Normal file
58
src/views/system-settings/language.vue
Normal file
@@ -0,0 +1,58 @@
|
||||
<script lang="ts" setup>
|
||||
import { useIonRouter } from "@ionic/vue";
|
||||
|
||||
const { t } = useI18n();
|
||||
const router = useIonRouter();
|
||||
const { languages, locale, setLanguage } = useLanguage();
|
||||
|
||||
function handleLanguageChange(event: CustomEvent) {
|
||||
const langCode = event.detail.value;
|
||||
setLanguage(langCode);
|
||||
|
||||
// 返回上一页
|
||||
setTimeout(() => {
|
||||
router.back();
|
||||
}, 300);
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<ion-page>
|
||||
<ion-header>
|
||||
<ion-toolbar class="ui-toolbar">
|
||||
<ion-back-button slot="start" />
|
||||
<ion-title>{{ t("settings.languageTitle") }}</ion-title>
|
||||
</ion-toolbar>
|
||||
</ion-header>
|
||||
<ion-content :fullscreen="true" class="ion-padding">
|
||||
<ion-list lines="full">
|
||||
<ion-radio-group :value="locale" @ion-change="handleLanguageChange">
|
||||
<ion-item v-for="lang in languages" :key="lang.code">
|
||||
<ion-radio :value="lang.code">
|
||||
<div class="language-item">
|
||||
<div class="font-semibold">
|
||||
{{ lang.nativeName }}
|
||||
</div>
|
||||
<div class="text-xs text-gray-500">
|
||||
{{ lang.name }}
|
||||
</div>
|
||||
</div>
|
||||
</ion-radio>
|
||||
</ion-item>
|
||||
</ion-radio-group>
|
||||
</ion-list>
|
||||
</ion-content>
|
||||
</ion-page>
|
||||
</template>
|
||||
|
||||
<style lang='css' scoped></style>
|
||||
"css" scoped>
|
||||
@reference "tailwindcss";
|
||||
|
||||
.language-item {
|
||||
@apply py-1;
|
||||
}
|
||||
|
||||
ion-radio {
|
||||
width: 100%;
|
||||
}
|
||||
Reference in New Issue
Block a user