手持机代码初始化
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
<template>
|
||||
<view class="language-switcher">
|
||||
<picker :value="currentIndex" :range="languages" range-key="label" @change="handleLanguageChange">
|
||||
<view class="picker-box">
|
||||
<text>{{ $t('settings.language') }}</text>
|
||||
<text class="current-language">{{ languages[currentIndex].label }}</text>
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
languages: [
|
||||
{ code: 'zh-CN', label: '简体中文' },
|
||||
{ code: 'en-US', label: 'English' }
|
||||
],
|
||||
currentIndex: 0
|
||||
}
|
||||
},
|
||||
created() {
|
||||
// 初始化当前语言索引
|
||||
const currentLang = uni.getStorageSync('language') || 'zh-CN'
|
||||
const index = this.languages.findIndex(lang => lang.code === currentLang)
|
||||
this.currentIndex = index !== -1 ? index : 0
|
||||
},
|
||||
methods: {
|
||||
handleLanguageChange(e) {
|
||||
const index = e.detail.value
|
||||
const selectedLang = this.languages[index].code
|
||||
|
||||
// 保存语言设置
|
||||
uni.setStorageSync('language', selectedLang)
|
||||
|
||||
// 切换语言
|
||||
this.$i18n.locale = selectedLang
|
||||
this.currentIndex = index
|
||||
|
||||
// 提示用户
|
||||
uni.showToast({
|
||||
title: this.$t('common.save') + '成功',
|
||||
icon: 'success'
|
||||
})
|
||||
|
||||
// 刷新页面
|
||||
setTimeout(() => {
|
||||
const pages = getCurrentPages()
|
||||
const currentPage = pages[pages.length - 1]
|
||||
uni.reLaunch({
|
||||
url: '/' + currentPage.route
|
||||
})
|
||||
}, 1500)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.language-switcher {
|
||||
padding: 20rpx;
|
||||
}
|
||||
.picker-box {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding: 20rpx;
|
||||
background-color: #fff;
|
||||
border-radius: 8rpx;
|
||||
}
|
||||
.current-language {
|
||||
color: #409eff;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user