setting.vue 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <route lang="json5" type="page">
  2. {
  3. layout: 'default',
  4. style: {
  5. navigationBarTitleText: '%setting.title%',
  6. navigationBarBackgroundColor: '#fff',
  7. },
  8. }
  9. </route>
  10. <script lang="ts" setup>
  11. import { t } from '@/locale'
  12. import i18n from '@/locale/index'
  13. import { useUserStore } from '@/store'
  14. import { toPage } from '@/utils/page'
  15. defineOptions({
  16. name: 'Setting', // 设置
  17. })
  18. const userStore = useUserStore()
  19. const columns = ref([{ label: t('setting.lang.en'), value: 'en' }, { label: t('setting.lang.bn'), value: 'bn' }])
  20. const language = ref(uni.getLocale() === 'bn' ? 'bn' : 'en')
  21. function changeLanguage(data: any) {
  22. console.log(data)
  23. // 下面2句缺一不可!!!
  24. uni.setLocale(data.value)
  25. i18n.global.locale = data.value
  26. }
  27. function logout() {
  28. userStore.removeUserInfo()
  29. toPage({ url: '/pages/login/login', isReLaunch: true })
  30. }
  31. const appInfo = ref<any>({})
  32. function getAppInfo() {
  33. plus.runtime.getProperty(plus.runtime.appid, (wgtinfo) => {
  34. console.log('云打包,安心打包方式获取设备信息:')
  35. console.log(wgtinfo)
  36. appInfo.value = wgtinfo
  37. })
  38. }
  39. onLoad(() => {
  40. getAppInfo()
  41. })
  42. </script>
  43. <template>
  44. <view class="py-20rpx">
  45. <wd-cell-group custom-class="mb-20rpx" border>
  46. <wd-cell :title="$t('setting.changePassword')" custom-title-class="text-32rpx" is-link @click="toPage({ url: '/pages/forgotPassword/forgotPassword' })" />
  47. <wd-picker v-model="language" :columns="columns" use-default-slot @confirm="changeLanguage">
  48. <wd-cell :title="$t('setting.language')" custom-title-class="text-32rpx" custom-value-class="text-#838383! text-32rpx!" :value="columns.find(item => item.value === language)?.label" is-link />
  49. </wd-picker>
  50. <wd-cell :title="$t('setting.policies')" custom-title-class="text-32rpx" is-link />
  51. <wd-cell :title="$t('setting.help')" custom-title-class="text-32rpx" is-link />
  52. <wd-cell :title="$t('setting.feedback')" custom-title-class="text-32rpx" is-link />
  53. </wd-cell-group>
  54. <!-- Logout -->
  55. <view class="mb-20rpx bg-white p-24rpx text-center text-32rpx text-[var(--wot-color-theme)]" @click="logout">
  56. {{ $t('setting.logout') }}
  57. </view>
  58. <view class="text-center text-32rpx text-#909090">
  59. {{ t('setting.version', [appInfo.version]) }}
  60. </view>
  61. </view>
  62. </template>
  63. <style lang="scss" scoped>
  64. //
  65. </style>