Просмотр исходного кода

bug-1264 小铃铛消息数量显示异常

cfort 2 лет назад
Родитель
Сommit
7aecc6d27c

+ 4 - 1
src/layout/header-aside/components/header-message/index.vue

@@ -167,7 +167,10 @@ export default {
             Watermark.set(`${customerInfo}试用版本`, `试用日期截止至${limitDate}`)
         }
         this.loadData()
-        Bus.$on('getMessageCount', (count) => {
+        Bus.$on('getMessageCount', count => {
+            if (count === null) {
+                return
+            }
             this.messageCount = count
         })
     },

+ 13 - 4
src/views/platform/message/inner/receive.vue

@@ -62,7 +62,7 @@
             :visible="dialogFormVisible"
             :table-id="tableId"
             :table-name="tableName"
-            @callback="search"
+            @callback="handleRead"
             @close="visible => closeDetail(visible)"
         />
         <!-- 回复 -->
@@ -222,9 +222,7 @@ export default {
                 data.dataResult.forEach((item, i) => {
                     item.isRead = item.receiverTime ? '1' : '0'
                 })
-                const { pageResult = {}} = data
                 ActionUtils.handleListData(this, data)
-                Bus.$emit('getMessageCount', pageResult.totalCount ? pageResult.totalCount : 0)
                 this.loading = false
             }).catch(() => {
                 this.loading = false
@@ -250,6 +248,13 @@ export default {
         search () {
             this.loadData()
         },
+        handleRead () {
+            getMyMsgList(this.getFormatParams(0)).then(response => {
+                const { data } = response || {}
+                const { pageResult = {}} = data
+                Bus.$emit('getMessageCount', pageResult.totalCount ? pageResult.totalCount : 0)
+            })
+        },
         handleLinkClick (data, columns) {
             this.handleEdit(data.id, true)
             this.tableId = data.tableId
@@ -332,8 +337,12 @@ export default {
         /**
          * 获取格式化参数
          */
-        getFormatParams () {
+        getFormatParams (type) {
             const params = this.$refs['crud'] ? this.$refs['crud'].getSearcFormData() : {}
+            if (type === 0) {
+                // 固定获取未读数据
+                return ActionUtils.formatParams({ 'Q^isRead^SN': 0 }, this.pagination, this.sorts)
+            }
             if (params.hasOwnProperty('Q^isRead^SN')) {
                 params['Q^isRead^SN'] = parseInt(params['Q^isRead^SN'])
             }

+ 4 - 0
src/views/system/dashboard/components/util.js

@@ -200,6 +200,10 @@ export function buildComponent (name, column, preview, vm) {
                                 const deptIds = this.deptList.map(i => i.positionId)
                                 this.data = data.filter(i => deptIds.includes(i.depId))
                             }
+                            // 更新小铃铛消息数量
+                            if (param.alias === 'unreadMessage') {
+                                Bus.$emit('getMessageCount', this.totalCount)
+                            }
                             this.variables = res.variables
                             this.loading = false
                         }).catch((e) => {