赫艾前端
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.

75 lines
2.0 KiB

4 years ago
  1. <template>
  2. <el-dialog
  3. title="修改用户默认语言"
  4. :visible.sync="visible"
  5. :append-to-body="true">
  6. <el-form :model="dataForm" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="80px">
  7. <el-form-item label="账号">
  8. <span>{{ userName }}</span>
  9. </el-form-item>
  10. <el-form-item label="当前语言" prop="newPassword">
  11. <span>{{language}}</span>
  12. </el-form-item>
  13. <el-form-item label="新语言" prop="newLanguage">
  14. <el-select type="password" v-model="dataForm.languageDefault">
  15. <el-option label="中文" value="cn"></el-option>
  16. <el-option label="英文" value="en"></el-option>
  17. <el-option label="日文" value="jp"></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. export default {
  30. data() {
  31. return {
  32. visible: false,
  33. dataForm: {
  34. languageDefault: ''
  35. },
  36. language: localStorage.getItem('locale')
  37. }
  38. },
  39. computed: {
  40. userName: {
  41. get() {
  42. return this.$store.state.user.name
  43. }
  44. },
  45. mainTabs: {
  46. get() {
  47. return this.$store.state.common.mainTabs
  48. },
  49. set(val) {
  50. this.$store.commit('common/updateMainTabs', val)
  51. }
  52. }
  53. },
  54. methods: {
  55. // 初始化
  56. init() {
  57. this.visible = true
  58. this.$nextTick(() => {
  59. this.$refs['dataForm'].resetFields()
  60. })
  61. },
  62. // 修改用户默认语言
  63. dataFormSubmit() {
  64. updateUserLanguage(this.dataForm).then(({data}) => {
  65. if (data.code == 0) {
  66. this.$router.replace({name: 'login'})
  67. }
  68. })
  69. }
  70. }
  71. }
  72. </script>