diff --git a/resources/assets/js/pages/manage.vue b/resources/assets/js/pages/manage.vue
index be40c593b..122de443b 100644
--- a/resources/assets/js/pages/manage.vue
+++ b/resources/assets/js/pages/manage.vue
@@ -253,7 +253,7 @@
v-model="workReportShow"
placement="right"
:size="1200">
-
+
@@ -373,7 +373,6 @@ export default {
notificationManage: null,
reportTabs: "my",
- reportUnreadNumber: 0,
operateStyles: {},
operateVisible: false,
@@ -394,7 +393,7 @@ export default {
activated() {
this.$store.dispatch("getUserInfo").catch(_ => {})
this.$store.dispatch("getTaskPriority").catch(_ => {})
- this.getReportUnread(0);
+ this.$store.dispatch("getReportUnread", 0)
},
beforeDestroy() {
@@ -432,6 +431,8 @@ export default {
'cacheTaskBrowse',
'dialogIns',
+
+ 'reportUnreadNumber',
]),
...mapGetters(['dashboardTask']),
@@ -617,12 +618,12 @@ export default {
wsOpenNum(num) {
if (num <= 1) return
- this.$store.dispatch("getBasicData", 600).then(this.getReportUnread)
+ this.$store.dispatch("getBasicData", 600)
},
workReportShow(show) {
if (show) {
- this.getReportUnread(0);
+ this.$store.dispatch("getReportUnread", 0)
}
},
@@ -660,7 +661,7 @@ export default {
switch (type) {
case 'report':
if (action == 'unreadUpdate') {
- this.getReportUnread()
+ this.$store.dispatch("getReportUnread", 1000)
}
break;
}
@@ -960,21 +961,6 @@ export default {
}
},
- getReportUnread(timeout) {
- this.reportUnreadTimeout && clearTimeout(this.reportUnreadTimeout)
- this.reportUnreadTimeout = setTimeout(() => {
- if (this.userId === 0) {
- this.reportUnreadNumber = 0;
- } else {
- this.$store.dispatch("call", {
- url: 'report/unread',
- }).then(({data}) => {
- this.reportUnreadNumber = data.total || 0;
- }).catch(() => {});
- }
- }, typeof timeout === "number" ? timeout : 1000)
- },
-
handleLongpress(event, el) {
const projectId = $A.getAttr(el, 'data-id')
const projectItem = this.projectLists.find(item => item.id == projectId)
diff --git a/resources/assets/js/pages/manage/components/DialogWrapper.vue b/resources/assets/js/pages/manage/components/DialogWrapper.vue
index 5693033bc..1f5636971 100644
--- a/resources/assets/js/pages/manage/components/DialogWrapper.vue
+++ b/resources/assets/js/pages/manage/components/DialogWrapper.vue
@@ -1074,7 +1074,7 @@ export default {
getMsgs(data) {
return new Promise((resolve, reject) => {
- setTimeout(_ => this.msgLoadIng++, 2000)
+ setTimeout(_ => this.msgLoadIng++, 1200)
this.$store.dispatch("getDialogMsgs", data)
.then(resolve)
.catch(reject)
diff --git a/resources/assets/js/pages/manage/components/Report.vue b/resources/assets/js/pages/manage/components/Report.vue
index 76127a575..d12c9b0a5 100644
--- a/resources/assets/js/pages/manage/components/Report.vue
+++ b/resources/assets/js/pages/manage/components/Report.vue
@@ -31,6 +31,7 @@ import ReportMy from "./ReportMy"
import ReportReceive from "./ReportReceive"
import ReportDetail from "./ReportDetail"
import DrawerOverlay from "../../../components/DrawerOverlay";
+import {mapState} from "vuex";
export default {
name: "Report",
@@ -40,10 +41,6 @@ export default {
},
props: {
- reportUnreadNumber: {
- type: Number,
- default: 0
- },
reportType: {
default: "my"
}
@@ -71,6 +68,12 @@ export default {
}
},
+ computed: {
+ ...mapState([
+ 'reportUnreadNumber'
+ ])
+ },
+
methods: {
tabRebder(num) {
return h => {
diff --git a/resources/assets/js/store/actions.js b/resources/assets/js/store/actions.js
index 1e3f8bb00..6a4c7c6c4 100644
--- a/resources/assets/js/store/actions.js
+++ b/resources/assets/js/store/actions.js
@@ -342,22 +342,18 @@ export default {
* @param state
* @param dispatch
* @param timeout
- * @returns {Promise}
*/
getBasicData({state, dispatch}, timeout) {
if (typeof timeout === "number") {
- return new Promise(resolve => {
- window.__getBasicData && clearTimeout(window.__getBasicData)
- if (timeout > -1) {
- window.__getBasicData = setTimeout(() => {
- dispatch("getBasicData", null)
- resolve()
- }, timeout)
- }
- });
+ window.__getBasicData && clearTimeout(window.__getBasicData)
+ if (timeout > -1) {
+ window.__getBasicData = setTimeout(dispatch("getBasicData", null), timeout)
+ }
+ return
}
dispatch("getProjects").catch(() => {});
dispatch("getDialogs").catch(() => {});
+ dispatch("getReportUnread", 1000);
dispatch("getTaskForDashboard");
//
const allIds = Object.values(state.userAvatar).map(({userid}) => userid);
@@ -366,6 +362,27 @@ export default {
})
},
+ /**
+ * 获取未读工作报告数量
+ * @param state
+ * @param dispatch
+ * @param timeout
+ */
+ getReportUnread({state, dispatch}, timeout) {
+ window.__getReportUnread && clearTimeout(window.__getReportUnread)
+ window.__getReportUnread = setTimeout(() => {
+ if (state.userId === 0) {
+ state.reportUnreadNumber = 0;
+ } else {
+ dispatch("call", {
+ url: 'report/unread',
+ }).then(({data}) => {
+ state.reportUnreadNumber = data.total || 0;
+ }).catch(_ => {});
+ }
+ }, typeof timeout === "number" ? timeout : 1000)
+ },
+
/**
* 获取/更新会员信息
* @param dispatch
diff --git a/resources/assets/js/store/state.js b/resources/assets/js/store/state.js
index 61b800500..8a6e660b9 100644
--- a/resources/assets/js/store/state.js
+++ b/resources/assets/js/store/state.js
@@ -150,4 +150,7 @@ export default {
// 预览图片
previewImageIndex: 0,
previewImageList: [],
+
+ // 工作报告未读数量
+ reportUnreadNumber: 0,
};