message.vue 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <template>
  2. <view class="message-index">
  3. <view class="message-item" @click="$navigateTo('/pages/messageList/messageList?type=2')">
  4. <uni-badge class="uni-badge-left-margin" :text="testCount[2]" absolute="rightTop" size="small">
  5. <view class="message-icon">
  6. <uni-icons type="email" size="30" color="#fff"></uni-icons>
  7. </view>
  8. </uni-badge>
  9. <view class="message-content">
  10. <view class="message-title">
  11. 项目邀请通知
  12. </view>
  13. <view class="message-sub-label">
  14. {{!testCount[2] ?'暂无消息通知' : `您有${testCount[2]}条未读消息,请查看~`}}
  15. </view>
  16. </view>
  17. </view>
  18. </view>
  19. </template>
  20. <script>
  21. import {
  22. getMessageTest
  23. } from '@/request/api/message.js'
  24. export default {
  25. data() {
  26. return {
  27. testCount: {}
  28. }
  29. },
  30. onShow() {
  31. this.init();
  32. },
  33. methods: {
  34. init() {
  35. getMessageTest(this.$store.getters.user.userId || 3).then(res => {
  36. if (res.code == 200) {
  37. let obj = {};
  38. for (var i = 0; i < res.data.length; i++) {
  39. obj[res.data[i].messageType] = res.data[i].count;
  40. }
  41. this.testCount = obj;
  42. }
  43. })
  44. }
  45. }
  46. }
  47. </script>
  48. <style lang="scss">
  49. .message-index {
  50. padding-top: 20rpx;
  51. .message-item {
  52. display: flex;
  53. align-items: center;
  54. padding: 20rpx 30rpx;
  55. background: $uni-white;
  56. }
  57. .message-icon {
  58. background: #55bc9c;
  59. display: flex;
  60. align-items: center;
  61. justify-content: center;
  62. width: 100rpx;
  63. height: 100rpx;
  64. border-radius: 20rpx;
  65. }
  66. .message-content {
  67. margin-left: 20rpx;
  68. }
  69. .message-title {
  70. font-size: 32rpx;
  71. font-weight: 500;
  72. }
  73. .message-sub-label {
  74. color: $uni-extra-color;
  75. font-size: 24rpx;
  76. margin-top: 10rpx;
  77. }
  78. }
  79. </style>