index.vue 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  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 noticeService from "@/api/flowable/NoticeService"
  45. import addressbook from '@/pages/addressbook/addressbook.vue'
  46. import person from '@/pages/user/person/person.vue'
  47. import message from '@/pages/message/message.vue'
  48. import workbench from '@/pages/workbench/workbench.vue'
  49. import apps from '@/pages/apps/apps.vue'
  50. export default {
  51. components:{
  52. person,
  53. message,
  54. workbench,
  55. apps,
  56. addressbook
  57. },
  58. data() {
  59. return {
  60. PageCur: 'workbench',
  61. messageCount: 0 // 初始化消息数量为 0
  62. }
  63. },
  64. methods: {
  65. NavChange: function(e) {
  66. this.PageCur = e.currentTarget.dataset.cur
  67. },
  68. fetchMessageCount() {
  69. notifyService.list({
  70. current: 0,
  71. size: -1,
  72. isSelf: true,
  73. orders: [{ column: "a.create_time", asc: false }],
  74. }).then((data)=>{
  75. console.log('data', data.records.length)
  76. this.messageCount = data.records.length; // 更新消息数量
  77. }).catch((error) => {
  78. console.error('获取消息数量失败:', error);
  79. });
  80. }
  81. },
  82. created() {
  83. // 在组件被创建后立即调用 fetchMessageCount 方法
  84. this.fetchMessageCount();
  85. }
  86. }
  87. </script>
  88. <style>
  89. .cu-tag.badge {
  90. right: 4px;
  91. }
  92. </style>