index.vue 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <template>
  2. <view class="fui-wrap">
  3. <view class="user-info-bg">
  4. </view>
  5. <view class="ctl-container">
  6. <view class="user-info-content">
  7. <view class="user-info-img">
  8. <u-avatar :src=" userInfo && userInfo.avatarUrl || ''" shape="circle" :size="60"></u-avatar>
  9. </view>
  10. <view class="user-info" @click="$u.throttle(onHeadClick,500)">
  11. <view>
  12. {{ userInfo.usrName || '点击登录' }}
  13. </view>
  14. <view>
  15. {{ userInfo.tel || '' }}
  16. </view>
  17. </view>
  18. </view>
  19. <view class="ctl-panel">
  20. <u-grid
  21. :border="false"
  22. :col="3"
  23. >
  24. <u-grid-item
  25. v-for="(baseListItem,baseListIndex) in baseList"
  26. :key="baseListIndex"
  27. @click="$u.throttle(()=>onItemClick(baseListItem), 500)"
  28. >
  29. <view class="grid-item-icon" :style="[baseListItem.style]">
  30. <image :src="baseListItem.icon"></image>
  31. </view>
  32. <text class="grid-text">{{ baseListItem.title }}</text>
  33. </u-grid-item>
  34. </u-grid>
  35. </view>
  36. </view>
  37. </view>
  38. </template>
  39. <script>
  40. import { fetchViewCfgList } from '@/common/api';
  41. import { COMP_CODE } from '@/common/EnumConst';
  42. import AuthWrap from '@/components/AuthComp/index.vue';
  43. import { authLogin, getImageUrl, getUserInfo } from '@/util';
  44. export default {
  45. components: { AuthWrap },
  46. data() {
  47. return {
  48. userInfo: {},
  49. baseList: [],
  50. src: 'http://pic2.sc.chinaz.com/Files/pic/pic9/202002/hpic2119_s.jpg',
  51. };
  52. },
  53. onLoad() {
  54. },
  55. onShow() {
  56. this.userInfo = getUserInfo();
  57. this.viewCfg();
  58. },
  59. methods: {
  60. onHeadClick() {
  61. if (this.userInfo) {
  62. return;
  63. }
  64. authLogin(() => {
  65. this.userInfo = getUserInfo();
  66. });
  67. },
  68. onItemClick(item) {
  69. if (item.url) {
  70. uni.navigateTo({
  71. url: item.url,
  72. });
  73. }
  74. },
  75. async viewCfg() {
  76. const res = await fetchViewCfgList({
  77. pageNum: 1,
  78. pageSize: 99,
  79. compCode: COMP_CODE.my,
  80. });
  81. if (res.rows.length > 0) {
  82. this.baseList = res.rows.map(item => {
  83. return {
  84. icon: getImageUrl(item.iconUri),
  85. style: JSON.parse(item.style),
  86. title: item.labelTxt,
  87. url: item.url,
  88. };
  89. });
  90. }
  91. },
  92. },
  93. onShareAppMessage() {
  94. return {
  95. title: 'First UI组件库',
  96. };
  97. },
  98. };
  99. </script>
  100. <style lang="scss" src="./index.scss">
  101. </style>