userdetail.vue 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. <template>
  2. <view>
  3. <scroll-view scroll-y class="page">
  4. <cu-custom bgColor="bg-luohu" :isBack="true">
  5. <block slot="backText">返回</block>
  6. <block slot="content">用户详情</block>
  7. </cu-custom>
  8. <view class="example-body " style="display: flex;justify-content: center; margin-top: 80rpx;">
  9. <u-avatar :src="photo" size="160" @click="getImage">
  10. </u-avatar>
  11. </view>
  12. <uni-card>
  13. <view class="cu-list menu">
  14. <u-form :model="user" ref="uForm" label-width="160">
  15. <u-form-item label="单位名称">
  16. <u-input v-model="user.qq" input-align="right" disabled />
  17. </u-form-item>
  18. <u-form-item label="客户姓名">
  19. <u-input v-model="user.name" input-align="right" />
  20. </u-form-item>
  21. <u-form-item label="手机号">
  22. <u-input v-model="user.mobile" input-align="right" />
  23. </u-form-item>
  24. <u-form-item label="邮箱">
  25. <u-input v-model="user.email" input-align="right" />
  26. </u-form-item>
  27. <u-form-item label="地址">
  28. <u-input v-model="user.address" input-align="right" />
  29. </u-form-item>
  30. </u-form>
  31. <u-button class="u-m-t-40 btn-back-color" type="error" @click="sumbit">提交</u-button>
  32. </view>
  33. </uni-card>
  34. </scroll-view>
  35. </view>
  36. </template>
  37. <script>
  38. import {
  39. ACCESS_TOKEN,
  40. USER_NAME,
  41. USER_INFO
  42. } from "@/common/util/constants"
  43. import api from '@/api/api.js'
  44. import http from '@/common/service/http.js'
  45. export default {
  46. data() {
  47. return {
  48. id: '',
  49. user: {
  50. companyname: '',
  51. number: '',
  52. username: '',
  53. },
  54. photo: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/b7c7f970-517d-11eb-97b7-0dc4655d6e68.jpg'
  55. };
  56. },
  57. onLoad() {
  58. let user = uni.getStorageSync(USER_INFO).employee;
  59. this.id = user.id
  60. this.loadinfo()
  61. },
  62. methods: {
  63. loadinfo() {
  64. let token = uni.getStorageSync(ACCESS_TOKEN)
  65. this.$http.get('ibps/platform/v3/employee/load', {
  66. params: {
  67. employeeId: this.id
  68. }
  69. }).then(res => {
  70. if (res.data.state == '200') {
  71. let result = res.data.data
  72. this.user = result
  73. if (result.photo != '') {
  74. this.photo = http.apiHosp + 'ibps/platform/v3' + this.user.photo +
  75. '&access_token=' +
  76. token + '&tenantId='
  77. }
  78. uni.hideLoading()
  79. }
  80. }).catch(e => {})
  81. },
  82. //手机号码判断
  83. checkPhone(value) {
  84. const reg = /^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])|166|198|199|(147))\d{8}$/
  85. if (!reg.test(value)) {
  86. return false
  87. }
  88. return true
  89. },
  90. sumbit() {
  91. if (this.user.name == '') {
  92. this.$methCommon.getPrompt('请填写姓名')
  93. return
  94. }
  95. if (!this.checkPhone(this.user.mobile)) {
  96. this.$methCommon.getPrompt('请填写正确的手机号码')
  97. return
  98. }
  99. this.$http.post('ibps/platform/v3/employee/update', {
  100. partyEmployeePo: this.user,
  101. user: this.user,
  102. attrValueVoList: [],
  103. positionVoList: [],
  104. roleVoList: [],
  105. userGroupPoList: []
  106. }).then(res => {
  107. if (res.data.state == '200') {
  108. let datas = res.data
  109. this.$methCommon.getPrompt(datas.message)
  110. let info = uni.getStorageSync(USER_INFO);
  111. info.user = this.user
  112. uni.setStorage({
  113. key: 'login_user_info',
  114. data: info
  115. })
  116. } else {
  117. let datas = res.data
  118. this.$methCommon.getPrompt(datas.cause)
  119. }
  120. uni.hideLoading()
  121. }).catch(res => {
  122. let datas = res.data
  123. this.$methCommon.getPrompt(datas.cause)
  124. uni.hideLoading()
  125. })
  126. },
  127. getImage() {
  128. let token = uni.getStorageSync(ACCESS_TOKEN)
  129. uni.chooseImage({
  130. success: (res) => {
  131. const tempFilePaths = res.tempFilePaths;
  132. // this.select(tempFilePaths[0])
  133. uni.uploadFile({
  134. // url: http.apiHosp + 'ibps/platform/v3/file/upload/mobile', //仅为示例,非真实的接口地址
  135. url: http.apiHosp + '/ibps/platform/v3/file/upload', //仅为示例,非真实的接口地址
  136. filePath: tempFilePaths[0],
  137. name: 'file',
  138. formData: {
  139. 'ext': '.jpg'
  140. },
  141. header: {
  142. 'X-Authorization-access_token': token,
  143. 'X-Authorization-systemid': ''
  144. },
  145. success: (res) => {
  146. let data = JSON.parse(res.data)
  147. if (data.state == 200) {
  148. let datas = data.data
  149. this.user.photo = '/file/getImage?attachmentId=' + datas.id
  150. let phto = '/file/getImage?attachmentId=' + datas.id +
  151. '&access_token=' + token + '&tenantId='
  152. this.photo = http.apiHosp + 'ibps/platform/v3' + phto
  153. }
  154. }
  155. });
  156. }
  157. });
  158. },
  159. }
  160. }
  161. </script>
  162. <style>
  163. .page {
  164. height: 100Vh;
  165. width: 100vw;
  166. }
  167. .page.show {
  168. overflow: hidden;
  169. }
  170. .switch-sex::after {
  171. content: "\e716";
  172. }
  173. .switch-sex::before {
  174. content: "\e7a9";
  175. }
  176. .switch-music::after {
  177. content: "\e66a";
  178. }
  179. .switch-music::before {
  180. content: "\e6db";
  181. }
  182. .example-body {
  183. padding: 10px;
  184. padding-top: 0;
  185. }
  186. .custom-image-box {
  187. /* #ifndef APP-NVUE */
  188. display: flex;
  189. /* #endif */
  190. flex-direction: row;
  191. justify-content: space-between;
  192. align-items: center;
  193. }
  194. .text {
  195. font-size: 14px;
  196. color: #333;
  197. }
  198. </style>
  199. <style lang="scss" scoped>
  200. /deep/ .uni-input-input {
  201. color: #8799a3;
  202. }
  203. /deep/ .u-form-item--left__content__label {
  204. color: #8799a3;
  205. }
  206. </style>