Account.vue 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <template>
  2. <el-card style="margin: 2px 1px;">
  3. <div slot="header" class="clearfix">
  4. <span>{{ $t('profile.personalInformation') }}</span>
  5. </div>
  6. <el-form v-loading="loading" wi>
  7. <el-form-item :label="$t('shop.memberCode')">
  8. <el-input v-model="user.name" size="medium" prefix-icon="el-icon-user-solid" readonly />
  9. </el-form-item>
  10. <el-form-item :label="$t('shop.memberName')">
  11. <el-input v-model="user.realName" size="medium" prefix-icon="el-icon-user" readonly />
  12. </el-form-item>
  13. <el-form-item :label="$t('shop.phoneNumber')">
  14. <el-input v-model.trim="user.mobile" size="medium" prefix-icon="el-icon-phone-outline" readonly />
  15. </el-form-item>
  16. <el-form-item :label="$t('user.email')">
  17. <el-input v-model.trim="user.email" size="medium" prefix-icon="el-icon-s-comment" />
  18. </el-form-item>
  19. <el-form-item>
  20. <el-button type="primary" size="small" @click="submit">{{ $t('common.save') }}</el-button>
  21. </el-form-item>
  22. </el-form>
  23. </el-card>
  24. </template>
  25. <script>
  26. import { updateInfo } from '@/api/user'
  27. import usersInfo from '@/utils/usersInfo'
  28. export default {
  29. props: {
  30. user: {
  31. type: Object,
  32. default: () => {
  33. return {
  34. name: '',
  35. email: '',
  36. mobile: '',
  37. realName: ''
  38. }
  39. }
  40. }
  41. },
  42. data() {
  43. return {
  44. loading: false
  45. }
  46. },
  47. methods: {
  48. submit() {
  49. const data = {
  50. bankNo: '1',
  51. bankAddress: '1',
  52. email: this.user.email,
  53. mobile: this.user.mobile,
  54. nation: '',
  55. openBank: '',
  56. realName: this.user.realName
  57. }
  58. this.loading = true
  59. updateInfo(data).then(() => {
  60. setTimeout(() => {
  61. this.loading = false
  62. }, 1.5 * 1000)
  63. this.$message({
  64. message: 'User information has been updated successfully.',
  65. type: 'success',
  66. duration: 5 * 1000
  67. })
  68. // 覆盖localStorage
  69. usersInfo.userEmail(this.user.email)
  70. // 页面重载
  71. location.reload()
  72. }).catch((err) => {
  73. this.$message({
  74. message: err,
  75. type: 'error',
  76. duration: 5 * 1000
  77. })
  78. this.loading = false
  79. })
  80. }
  81. }
  82. }
  83. </script>