profile.vue 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. <template>
  2. <view class="page">
  3. <view class="form">
  4. <u-form :model="form" ref="uForm">
  5. <u-form-item label-width="150" label="修改头像" prop="nickname" @click.native="pageTo('/pages/user/setting/avatar')">
  6. <u-icon name="arrow-right" style="float: right;" size="24" label="请选择" labelPos="left"></u-icon>
  7. </u-form-item>
  8. <!-- <u-form-item label-width="150" label="昵称" prop="nickname" required>
  9. <u-input placeholder="请输入昵称" v-model="form.nickname" inputAlign="right" type="text"></u-input>
  10. </u-form-item> -->
  11. <!-- <u-form-item label-width="150" label="身份" prop="groupTypeName" required>
  12. <u-input type="select" inputAlign="right" :select-open="groupTypeSelectShow" v-model="form.groupTypeName" placeholder="请选择身份" @click="groupTypeSelectShow = true"></u-input>
  13. </u-form-item> -->
  14. <u-form-item label-width="150" label="密码" prop="password">
  15. <u-input placeholder="非必填,填了就会重置密码" v-model="form.password" inputAlign="right" type="text"></u-input>
  16. </u-form-item>
  17. </u-form>
  18. <u-gap height="60"></u-gap>
  19. <u-button type="primary" @click="submitHandle">提交</u-button>
  20. <u-gap></u-gap>
  21. </view>
  22. <!-- utoast -->
  23. <u-toast ref="uToast" />
  24. <u-select mode="single-column" :list="groupTypeSelectList" v-model="groupTypeSelectShow" @confirm="groupTypeSelectConfirm"></u-select>
  25. </view>
  26. </template>
  27. <script>
  28. var that;
  29. export default {
  30. data() {
  31. return {
  32. groupTypeSelectShow: false,
  33. groupTypeSelectList: [],
  34. maskShow: false,
  35. form: {
  36. nickname: null,
  37. password: null,
  38. },
  39. rules: {
  40. nickname: [
  41. {
  42. required: true,
  43. message: '昵称不得为空',
  44. trigger: ['change', 'blur']
  45. },
  46. ],
  47. // groupTypeName: [
  48. // {
  49. // required: true,
  50. // message: '身份不得为空',
  51. // trigger: ['change', 'blur']
  52. // },
  53. // ],
  54. },
  55. }
  56. },
  57. onLoad(params) {
  58. const userInfo2 = uni.getStorageSync('MD_userInfo2')
  59. this.form.nickname = userInfo2.nickname
  60. this.form.group_type = userInfo2.group_type
  61. const dictObj = uni.getStorageSync('MD_dict')
  62. let list = dictObj.group_type || []
  63. let groupTypeSelectList = []
  64. list.forEach(item => {
  65. if (item.val == userInfo2.group_type) {
  66. this.form.groupTypeName = item.key
  67. }
  68. groupTypeSelectList.push({
  69. value: item.val,
  70. label: item.key,
  71. })
  72. })
  73. this.groupTypeSelectList = [...groupTypeSelectList]
  74. },
  75. // 必须要在onReady生命周期,因为onLoad生命周期组件可能尚未创建完毕
  76. onReady() {
  77. this.$refs.uForm.setRules(this.rules);
  78. },
  79. methods: {
  80. groupTypeSelectConfirm(e) {
  81. e.map((val, index) => {
  82. this.form.group_type = val.value;
  83. this.form.groupTypeName = val.label;
  84. });
  85. },
  86. pageTo(path) {
  87. // console.log(path)
  88. if (path === 'dev') {
  89. uni.$msg('开发中~')
  90. return
  91. }
  92. uni.navigateTo({
  93. url: path
  94. })
  95. },
  96. submitHandle() {
  97. this.$refs.uForm.validate(valid => {
  98. if (valid) {
  99. let params = {
  100. nickname: this.form.nickname,
  101. // group_type: this.form.group_type
  102. }
  103. if (this.form.password) {
  104. params.password = this.form.password
  105. }
  106. uni.api.base.apiuseredit(params).then(res => {
  107. uni.$msgConfirm('编辑成功', () => {
  108. uni.reLaunch({
  109. url: '/pages/user/setting/setting'
  110. })
  111. }, () => {
  112. uni.reLaunch({
  113. url: '/pages/user/setting/setting'
  114. })
  115. })
  116. })
  117. }
  118. })
  119. }
  120. }
  121. };
  122. </script>
  123. <style lang="scss">
  124. .page {
  125. background-color: #ffffff;
  126. }
  127. .form {
  128. border-radius: 10rpx;
  129. padding: 0 40rpx;
  130. }
  131. .popup-body {
  132. .tips-title {
  133. font-size: $u-p;
  134. margin-bottom: 20rpx;
  135. }
  136. .tips-content {
  137. font-size: $u-p2;
  138. color: $u-tips-color;
  139. margin-bottom: 60rpx;
  140. }
  141. }
  142. .id_card {
  143. color: #606266;
  144. width: 100%;
  145. height: 350rpx;
  146. display: flex;
  147. flex-direction: column;
  148. align-items: center;
  149. justify-content: center;
  150. background-color: #f4f5f6;
  151. font-size: $u-p2;
  152. border-radius: 10rpx;
  153. image {
  154. border-radius: 10rpx;
  155. }
  156. }
  157. .footer {
  158. position: relative;
  159. text-align: center;
  160. font-size: $u-p2;
  161. left: 0;
  162. bottom: 20rpx;
  163. .agreement {
  164. color: $u-theme-color;
  165. }
  166. }
  167. .slot-content {
  168. font-size: 28rpx;
  169. color: $u-content-color;
  170. padding: 20rpx;
  171. }
  172. .warp {
  173. display: flex;
  174. flex-direction: column;
  175. align-items: center;
  176. justify-content: center;
  177. height: 100%;
  178. }
  179. .rect {
  180. width: 400rpx;
  181. height: 400rpx;
  182. background-color: #fff;
  183. }
  184. </style>