index.vue 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <template>
  2. <view>
  3. <addressbook v-if="PageCur=='addressbook'"></addressbook>
  4. <message v-if="PageCur=='message'"></message>
  5. <workbench v-if="PageCur=='workbench'"></workbench>
  6. <apps v-if="PageCur=='apps'"></apps>
  7. <person v-if="PageCur=='my'"></person>
  8. <view class="cu-bar tabbar bg-white shadow foot">
  9. <view class="action" @click="NavChange" data-cur="addressbook">
  10. <view :class="PageCur=='addressbook'?'text-blue':'text-gray'">
  11. <text class="lg" :class="PageCur=='addressbook'?'cuIcon-addressbook':'cuIcon-addressbook'"></text>
  12. <text>通讯录</text>
  13. </view>
  14. </view>
  15. <view class="action" @click="NavChange" data-cur="message">
  16. <view :class="PageCur=='message'?'text-blue':'text-gray'">
  17. <text class="lg" :class="PageCur=='message'?'cuIcon-messagefill':'cuIcon-message'">
  18. <text class='cu-tag badge'> {{messageCount}}</text>
  19. </text>
  20. <text>消息</text>
  21. </view>
  22. </view>
  23. <view class="action text-gray add-action" @click="NavChange" data-cur="workbench">
  24. <button class="cu-btn shadow" :class="PageCur=='workbench'?'cuIcon-homefill bg-blue':'cuIcon-home bg-grey'"></button>
  25. 工作台
  26. </view>
  27. <view class="action" @click="NavChange" data-cur="apps">
  28. <view :class="PageCur=='apps'?'text-blue':'text-gray'">
  29. <text class="lg" :class="PageCur=='apps'?'cuIcon-circlefill':'cuIcon-circle'"></text>
  30. <text>应用</text>
  31. </view>
  32. </view>
  33. <view class="action" @click="NavChange" data-cur="my">
  34. <view :class="PageCur=='my'?'text-blue':'text-gray'">
  35. <text class="lg" :class="PageCur=='my'?'cuIcon-profilefill':'cuIcon-profile'"></text>
  36. <text>我的</text>
  37. </view>
  38. </view>
  39. </view>
  40. </view>
  41. </template>
  42. <script>
  43. import notifyService from "@/api/notify/notifyService";
  44. import addressbook from '@/pages/addressbook/addressbook.vue'
  45. import person from '@/pages/user/person/person.vue'
  46. import message from '@/pages/message/message.vue'
  47. import workbench from '@/pages/workbench/workbench.vue'
  48. import apps from '@/pages/apps/apps.vue'
  49. export default {
  50. components:{
  51. person,
  52. message,
  53. workbench,
  54. apps,
  55. addressbook
  56. },
  57. data() {
  58. return {
  59. PageCur: 'workbench',
  60. messageCount: 0 // 初始化消息数量为 0
  61. }
  62. },
  63. methods: {
  64. NavChange: function(e) {
  65. this.PageCur = e.currentTarget.dataset.cur
  66. },
  67. fetchMessageCount() {
  68. notifyService.list({
  69. current: 0,
  70. size: -1,
  71. isSelf: true,
  72. orders: [{ column: "a.create_time", asc: false }],
  73. }).then((data)=>{
  74. console.log('data', data.records.length)
  75. this.messageCount = data.records.length; // 更新消息数量
  76. }).catch((error) => {
  77. console.error('获取消息数量失败:', error);
  78. });
  79. }
  80. },
  81. created() {
  82. // 在组件被创建后立即调用 fetchMessageCount 方法
  83. this.fetchMessageCount();
  84. }
  85. }
  86. </script>
  87. <style>
  88. .cu-tag.badge {
  89. right: 4px;
  90. }
  91. </style>