Account.vue 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  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">
  7. <el-form-item :label="$t('shop.country')">
  8. <el-input v-model="countryName" size="medium" prefix-icon="el-icon-user-solid" readonly />
  9. </el-form-item>
  10. <el-form-item :label="$t('shop.memberCode')">
  11. <el-input v-model="user.name" size="medium" prefix-icon="el-icon-user-solid" readonly />
  12. </el-form-item>
  13. <el-form-item :label="$t('shop.memberName')">
  14. <el-input v-model="user.realName" size="medium" prefix-icon="el-icon-user" readonly />
  15. </el-form-item>
  16. <el-form-item :label="$t('shop.phoneNumber')">
  17. <el-input v-model.trim="user.mobile" size="medium" prefix-icon="el-icon-phone-outline" readonly />
  18. </el-form-item>
  19. <el-form-item :label="$t('user.email')">
  20. <el-input v-model.trim="user.email" size="medium" prefix-icon="el-icon-s-comment" />
  21. </el-form-item>
  22. <el-form-item>
  23. <el-button type="primary" size="small" @click="submit">{{ $t('common.save') }}</el-button>
  24. </el-form-item>
  25. </el-form>
  26. </el-card>
  27. </template>
  28. <script>
  29. import { updateInfo } from '@/api/user'
  30. import usersInfo from '@/utils/usersInfo'
  31. export default {
  32. props: {
  33. user: {
  34. type: Object,
  35. default: () => {
  36. return {
  37. name: '',
  38. email: '',
  39. mobile: '',
  40. realName: ''
  41. }
  42. }
  43. }
  44. },
  45. data() {
  46. return {
  47. loading: false,
  48. countryName:''
  49. }
  50. },
  51. mounted() {
  52. this.getCountries()
  53. },
  54. watch:{
  55. countriesList: {
  56. handler(newValue, old) {
  57. if (newValue) {
  58. this.getCountryId()
  59. }
  60. },
  61. },
  62. },
  63. computed:{
  64. countriesList() {
  65. return this.$store.getters.getCountriesList
  66. },
  67. },
  68. methods: {
  69. submit() {
  70. const data = {
  71. bankNo: '1',
  72. bankAddress: '1',
  73. email: this.user.email,
  74. mobile: this.user.mobile,
  75. nation: '',
  76. openBank: '',
  77. realName: this.user.realName
  78. }
  79. this.loading = true
  80. updateInfo(data).then(() => {
  81. setTimeout(() => {
  82. this.loading = false
  83. }, 1.5 * 1000)
  84. this.$message({
  85. message: 'User information has been updated successfully.',
  86. type: 'success',
  87. duration: 5 * 1000
  88. })
  89. // 覆盖localStorage
  90. usersInfo.userEmail(this.user.email)
  91. // 页面重载
  92. location.reload()
  93. }).catch((err) => {
  94. this.$message({
  95. message: err,
  96. type: 'error',
  97. duration: 5 * 1000
  98. })
  99. this.loading = false
  100. })
  101. },
  102. //国家列表
  103. getCountries() {
  104. this.$store.dispatch('settings/getCountries')
  105. },
  106. getCountryId(){
  107. let countryId = JSON.parse(window.localStorage.getItem('baseData')).COUNTRY_ID
  108. let country = this.countriesList.find(item => item.ID === countryId)
  109. console.log(country)
  110. this.countryName = country.NAME
  111. }
  112. }
  113. }
  114. </script>