mirror of
https://gitee.com/orangeform/orange-admin.git
synced 2026-01-17 10:36:31 +08:00
63 lines
1.5 KiB
TypeScript
63 lines
1.5 KiB
TypeScript
import { defineStore } from 'pinia';
|
|
import { ANY_OBJECT } from '@/types/generic';
|
|
import { FlowOperationController } from '@/api/flow';
|
|
|
|
// 催办消息轮询间隔
|
|
const MESSAGE_TIMER_INTERVAL = 1000 * 60 * 5;
|
|
|
|
export default defineStore('message', {
|
|
state: () => {
|
|
return {
|
|
messageTimer: undefined as number | undefined,
|
|
messageCount: {} as ANY_OBJECT,
|
|
};
|
|
},
|
|
actions: {
|
|
setMessageTimer(timer: number) {
|
|
this.messageTimer = timer;
|
|
},
|
|
setMessageCount(data: ANY_OBJECT) {
|
|
//console.log('setMessageCount >>>', data);
|
|
if (data) {
|
|
data.totalCount = data.copyMessageCount + data.remindingMessageCount;
|
|
}
|
|
this.messageCount = data;
|
|
},
|
|
// 获得消息列表数据
|
|
loadMessage() {
|
|
FlowOperationController.getMessageCount(
|
|
{},
|
|
{
|
|
showMask: false,
|
|
showError: false,
|
|
},
|
|
)
|
|
.then(res => {
|
|
this.setMessageCount(res.data);
|
|
})
|
|
.catch(e => {
|
|
console.error(e);
|
|
});
|
|
},
|
|
startMessage() {
|
|
if (this.messageTimer) {
|
|
clearInterval(this.messageTimer);
|
|
}
|
|
|
|
this.messageTimer = setInterval(() => {
|
|
this.loadMessage();
|
|
}, MESSAGE_TIMER_INTERVAL);
|
|
this.loadMessage();
|
|
},
|
|
stopMessage() {
|
|
if (this.messageTimer) {
|
|
clearInterval(this.messageTimer);
|
|
}
|
|
this.messageTimer = undefined;
|
|
},
|
|
reloadMessage() {
|
|
this.loadMessage();
|
|
},
|
|
},
|
|
});
|