personalData.vue 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <template>
  2. <!-- 个人资料 -->
  3. <view class="personal-data">
  4. <c-cell height="60" title="头像">
  5. <template #value>
  6. <u-avatar :src="userInfo.avatar" :text="text"></u-avatar>
  7. </template>
  8. </c-cell>
  9. <c-cell height="60" title="性别" :value="sex"> </c-cell>
  10. <c-cell height="60" title="年龄" :value="userInfo.age"></c-cell>
  11. <c-cell height="60" title="手机号码" :value="newTel"></c-cell>
  12. <c-cell
  13. height="60"
  14. title="科室"
  15. :value="userInfo.company"
  16. ></c-cell>
  17. <c-cell height="60" title="职位" :value="userInfo.post"></c-cell>
  18. </view>
  19. </template>
  20. <script>
  21. import { mapGetters } from 'vuex';
  22. export default {
  23. name: 'personalData',
  24. data() {
  25. return {
  26. sexKey: {
  27. 0: '男',
  28. 1: '女',
  29. 2: '未知',
  30. },
  31. };
  32. },
  33. computed: {
  34. ...mapGetters(['userInfo']),
  35. sex() {
  36. const { sex: gender } = this.userInfo;
  37. return this.sexKey[gender];
  38. },
  39. newTel() {
  40. const { phonenumber } = this.userInfo;
  41. return this.$c.middleTel(phonenumber, true);
  42. },
  43. text() {
  44. const { avatar, userName = '' } = this.userInfo;
  45. return avatar ? undefined : userName.charAt(0);
  46. },
  47. },
  48. };
  49. </script>
  50. <style scoped lang="scss">
  51. .personal-data {
  52. padding: $pg-pd;
  53. }
  54. </style>