Files
orange-admin/OrangeFormsOpen-VUE3/src/store/message.ts

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();
},
},
});