You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

92 lines
2.5 KiB

6 months ago
  1. <template>
  2. <el-dialog
  3. title="修改用户默认语言"
  4. :visible.sync="visible"
  5. width="300px"
  6. :append-to-body="true">
  7. <el-form :model="dataForm" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="80px">
  8. <el-form-item label="账号">
  9. <span>{{ userName }}</span>
  10. </el-form-item>
  11. <el-form-item label="当前语言" prop="newPassword">
  12. <span>{{language}}</span>
  13. </el-form-item>
  14. <el-form-item label="新语言" prop="newLanguage">
  15. <el-select filterable v-model="dataForm.languageDefault" clearable>
  16. <el-option :label="item.languageName" :value="item.languageCode" v-for="(item,index) in languageList "
  17. :key="index"></el-option>
  18. </el-select>
  19. </el-form-item>
  20. </el-form>
  21. <span slot="footer" class="dialog-footer">
  22. <el-button @click="visible = false">取消</el-button>
  23. <el-button type="primary" @click="dataFormSubmit()">确定</el-button>
  24. </span>
  25. </el-dialog>
  26. </template>
  27. <script>
  28. import {updateUserLanguage} from '@/api/user.js'
  29. // import PubSub from 'pubsub-js'
  30. import {
  31. searchSysLanguage
  32. } from "@/api/sysLanguage.js"
  33. export default {
  34. data() {
  35. return {
  36. visible: false,
  37. dataForm: {
  38. languageDefault: ''
  39. },
  40. language: localStorage.getItem('locale'),
  41. languageList: []
  42. }
  43. },
  44. computed: {
  45. userName: {
  46. get() {
  47. return this.$store.state.user.name
  48. }
  49. },
  50. mainTabs: {
  51. get() {
  52. return this.$store.state.common.mainTabs
  53. },
  54. set(val) {
  55. this.$store.commit('common/updateMainTabs', val)
  56. }
  57. }
  58. },
  59. methods: {
  60. // 获取多语言列表
  61. getLanguageList() {
  62. searchSysLanguage({ languageCode: this.$i18n.locale}).then(({data}) => {
  63. this.languageList = data.rows
  64. })
  65. },
  66. // 初始化
  67. init() {
  68. this.visible = true
  69. this.$nextTick(() => {
  70. this.$refs['dataForm'].resetFields()
  71. })
  72. },
  73. // 修改用户默认语言
  74. dataFormSubmit() {
  75. updateUserLanguage(this.dataForm).then(({data}) => {
  76. if (data.code == 0) {
  77. language: localStorage.setItem('locale',this.dataForm.languageDefault)
  78. this.$router.go(0);
  79. // PubSub.publish('search',this.dataForm.languageDefault )
  80. // this.$router.replace({name: 'login'})
  81. }
  82. })
  83. }
  84. } ,created() {
  85. this.getLanguageList()
  86. },
  87. }
  88. </script>