userInfo.vue 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314
  1. <template>
  2. <view class="page">
  3. <!-- 公共组件-每个页面必须引入 -->
  4. <public-module></public-module>
  5. <view class="basicInfo">
  6. <view class="user-set-userinfo-list d-flex a-center j-sb" @tap="popupShow = true">
  7. <view>头像</view>
  8. <view class="dis a-c">
  9. <image src="/static/image/my/avatar1.png" mode="" style="width: 32px;height: 32px;"></image>
  10. <u-icon name="arrow-right" color="#C7C6CA" size="28"></u-icon>
  11. </view>
  12. </view>
  13. <view class="user-set-userinfo-list d-flex a-center j-sb">
  14. <view>姓名</view>
  15. <text class="d-flex a-center ">{{sysUser.name}}</text>
  16. </view>
  17. <view class="user-set-userinfo-list d-flex a-center j-sb">
  18. <view>会员号</view>
  19. <text class="d-flex a-center ">{{sysUser.id}}</text>
  20. </view>
  21. <view class="user-set-userinfo-list d-flex a-center j-sb">
  22. <view>性别</view>
  23. <text class="d-flex a-center ">{{sysUser.sex}}</text>
  24. </view>
  25. <view class="user-set-userinfo-list d-flex a-center j-sb">
  26. <view>职级</view>
  27. <text class="d-flex a-center ">{{sysUser.jobCode}}</text>
  28. </view>
  29. <view class="user-set-userinfo-list d-flex a-center j-sb">
  30. <view>电话</view>
  31. <text class="d-flex a-center ">{{sysUser.mobile}}</text>
  32. </view>
  33. <view class="user-set-userinfo-list d-flex a-center j-sb">
  34. <view>身份证号</view>
  35. <text class="d-flex a-center ">{{esmUserInternal.identity}}</text>
  36. </view>
  37. <view class="user-set-userinfo-list d-flex a-center j-sb">
  38. <view>出生日期</view>
  39. <text class="d-flex a-center ">{{esmUserInternal.birthday}}</text>
  40. </view>
  41. <view class="user-set-userinfo-list d-flex a-center j-sb">
  42. <view>居住地址</view>
  43. <text class="d-flex a-center ">{{esmUserInternal.addressnow}}</text>
  44. </view>
  45. <view class="user-set-userinfo-list d-flex a-center j-sb">
  46. <view>注册时间</view>
  47. <text class="d-flex a-center ">{{sysUser.createTime}}</text>
  48. </view>
  49. </view>
  50. <view class="videoInfo">
  51. <view class="user-set-userinfo-list d-flex a-center j-sb">
  52. <view>影像</view>
  53. <text class="d-flex a-center main-text-color" @tap="toAddImageData">查看</text>
  54. </view>
  55. </view>
  56. <view class="businessInfo" v-if="this.userInfo.sysUser.status=='1'">
  57. <view class="user-set-userinfo-list dis j-s a-c">
  58. <view style="width: 100px;">推荐人</view>
  59. <text>
  60. {{this.userInfo.sysUser.referrerId}}({{this.userInfo.sysUser.referrerName}})
  61. </text>
  62. </view>
  63. <view class="user-set-userinfo-list d-flex a-center j-sb">
  64. <view>所属机构</view>
  65. <text class="d-flex a-center ">{{this.userInfo.sysUser.deptName}}</text>
  66. </view>
  67. <view class="user-set-userinfo-list d-flex a-center j-sb">
  68. <view>所属团队</view>
  69. <text class="d-flex a-center ">{{this.userInfo.sysUser.roleName}}</text>
  70. </view>
  71. </view>
  72. <!-- 头像预览Start -->
  73. <z-popup v-model="popupShow" :hideOnBlur="false" type="center" width="600upx" radius="12upx">
  74. <view class="popup_title">
  75. <text @click="popupShow = false">取消</text>
  76. <view>头像预览</view>
  77. <text @click="changeAvatar">更换</text>
  78. </view>
  79. <view class="popup_content">
  80. <view class="body d-flex a-center j-center">
  81. <image :src="avatar" mode="aspectFill" @longtap="saveAvatar"></image>
  82. </view>
  83. </view>
  84. </z-popup>
  85. </view>
  86. </template>
  87. <script>
  88. import zPopup from '@/components/common/z-popup.vue'
  89. import store from '@/store';
  90. import {
  91. mapState
  92. } from "vuex"
  93. export default {
  94. components: {
  95. zPopup,
  96. },
  97. data() {
  98. return {
  99. popupShow: false, //头像是否展示
  100. sysUser: {},
  101. esmUserInternal: {},
  102. esmUserAgent: {},
  103. // 推荐人信息
  104. showRecommend: false,
  105. recommenderId: "",
  106. recommenderName: "",
  107. recommenderComname: "",
  108. recommenderTeam: "",
  109. avatar: "",
  110. }
  111. },
  112. onShow() {
  113. if (this.userInfo.sysUser.headSculpture) {
  114. this.avatar = this.$base.baseUrl + this.userInfo.sysUser.headSculpture;
  115. } else {
  116. this.avatar = "/static/image/my/avatar1.png"
  117. }
  118. },
  119. async onLoad() {
  120. var sysUser = {};
  121. Object.assign(this.sysUser, this.userInfo.sysUser);
  122. // // 查询推荐人信息
  123. // if (!!this.userCheckInfo.esmUserAgent.recommenderid) {
  124. // let res = await this.$http.get('/user/findById?id=' + this.userCheckInfo.esmUserAgent.recommenderid);
  125. // if ((res.code == '200') && (res.data != null)) {
  126. // this.showRecommend = true;
  127. // this.recommenderId = res.data.id;
  128. // this.recommenderName = res.data.name;
  129. // this.recommenderComname = res.data.comname;
  130. // this.recommenderTeam = res.data.deptname;
  131. // }
  132. // }
  133. },
  134. computed: {
  135. ...mapState(['userInfo', 'userCheckInfo']),
  136. },
  137. methods: {
  138. //保存头像
  139. saveAvatar() {
  140. var that = this;
  141. uni.saveImageToPhotosAlbum({ //保存图片
  142. filePath: that.avatar,
  143. success: (res) => {
  144. uni.showToast({
  145. title: '保存成功',
  146. })
  147. }
  148. })
  149. },
  150. //修改头像
  151. async changeAvatar() {
  152. let [err, chooseImageRes] = await uni.chooseImage({
  153. count: 1,
  154. sizeType: ['compressed']
  155. });
  156. if (!chooseImageRes) return;
  157. const isLt2M = chooseImageRes.tempFiles[0].size / 1024 / 1024 < 2;
  158. if (!isLt2M) {
  159. return uni.showToast({
  160. title: '上传图片大小不能超过 2MB!',
  161. icon: "none"
  162. });
  163. }
  164. uni.uploadFile({
  165. url: this.$base.baseUrl + '/ins/taskImage/uploadFile',
  166. filePath: chooseImageRes.tempFilePaths[0],
  167. name: "multipartFile",
  168. formData: {
  169. 'type': 'avatar',
  170. },
  171. header: {
  172. Authorization: store.state.token,
  173. },
  174. success: async (imgRes) => {
  175. let data = JSON.parse(imgRes.data);
  176. let res = await this.$http.post('/user/modifyingTheAvatar', {
  177. imagesId: data.data.id
  178. });
  179. if (res.code == '200') {
  180. this.popupShow = false;
  181. let userInfoRes = await this.$http.get('/user/loginUser', {
  182. header: {
  183. Authorization: store.state.token,
  184. }
  185. });
  186. this.avatar = this.$base.baseUrl + userInfoRes.data.headSculpture;
  187. store.commit('setUserModules', {
  188. title: 'userInfo',
  189. data: {
  190. sysUser: {
  191. ...userInfoRes.data
  192. }
  193. }
  194. })
  195. }
  196. }
  197. });
  198. },
  199. //影像信息
  200. toAddImageData() {
  201. this.navigate({
  202. url: "/pages/user/userInfoImage"
  203. }, "navigateTo", true);
  204. }
  205. }
  206. }
  207. </script>
  208. <style scoped>
  209. /* 头像预览Start */
  210. .popup_box {
  211. width: 100%;
  212. }
  213. .popup_title {
  214. display: flex;
  215. justify-content: space-between;
  216. height: 88upx;
  217. line-height: 88upx;
  218. border-bottom: 2upx solid #ebebeb;
  219. padding: 0 20upx;
  220. background-color: #FFF;
  221. }
  222. .popup_title view {
  223. font-size: 32upx;
  224. display: flex;
  225. align-items: center;
  226. }
  227. .popup_title text {
  228. width: 80upx;
  229. flex-shrink: 0;
  230. text-align: center;
  231. }
  232. .popup_title text {
  233. font-size: 28upx;
  234. color: #999;
  235. }
  236. .popup_title text:last-child {
  237. color: $themeColor;
  238. }
  239. .popup_content {
  240. padding: 40rpx 30rpx;
  241. background-color: #FFFFFF;
  242. text-align: center;
  243. }
  244. .popup_content .body image {
  245. width: 300upx;
  246. height: 300upx;
  247. }
  248. /* 头像预览End */
  249. .page {
  250. width: 100%;
  251. height: 100vh;
  252. padding: 16px;
  253. background: #F8FAFE;
  254. }
  255. .basicInfo,
  256. .videoInfo,
  257. .businessInfo {
  258. width: 100%;
  259. height: auto;
  260. background: #FFFFFF;
  261. box-shadow: 0px 4px 10px 0px #DAE3F4;
  262. border-radius: 6px;
  263. margin-bottom: 10px;
  264. }
  265. .infoTitle {
  266. padding: 20upx;
  267. font-weight: bold;
  268. background-color: #F3F3F3;
  269. }
  270. .user-set-userinfo-list {
  271. background: #FFF;
  272. padding: 15upx 30upx;
  273. border-bottom: 1upx solid #F4F4F4;
  274. text {
  275. font-size: 14px;
  276. color: rgba(51, 51, 51, 0.8);
  277. }
  278. image {
  279. width: 32px;
  280. height: 32px;
  281. margin-right: 10px;
  282. border-radius: 50%;
  283. }
  284. }
  285. .user-set-userinfo-list:first-child {
  286. border-radius: 6px 6px 0 0;
  287. }
  288. .user-set-userinfo-list:last-child {
  289. border: none;
  290. border-radius: 0 0 6px 6px;
  291. }
  292. </style>