|
|
@@ -55,6 +55,8 @@ const useDeviceStatusStore = defineStore('deviceStatus', () => {
|
|
|
let isListenerInitialized = false;
|
|
|
let isRunStatusListening = false;
|
|
|
let runStatusPollTimer: ReturnType<typeof setInterval> | null = null;
|
|
|
+ // 清空日志后递增,丢弃还在路上的历史日志响应
|
|
|
+ let logsRequestId = 0;
|
|
|
|
|
|
function applyRunStatus(result: any): boolean {
|
|
|
const dataState = result?.data?.data_state;
|
|
|
@@ -142,14 +144,29 @@ const useDeviceStatusStore = defineStore('deviceStatus', () => {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
+ // 清空当前消息列表,并清掉主进程里缓存的历史日志
|
|
|
+ function clearLogs() {
|
|
|
+ logsRequestId += 1;
|
|
|
+ logs.value = [];
|
|
|
+ unreadCount.value = 0;
|
|
|
+ errorUnreadCount.value = 0;
|
|
|
+ if (!clientStore.isClient) return;
|
|
|
+ clientStore.ipc.send(icpList.mcu.clearErrorLogs);
|
|
|
+ }
|
|
|
+
|
|
|
// 获取日志列表
|
|
|
async function fetchLogs() {
|
|
|
if (!clientStore.isClient) return [];
|
|
|
|
|
|
+ const requestId = logsRequestId;
|
|
|
return new Promise((resolve) => {
|
|
|
clientStore.ipc.removeAllListeners(icpList.mcu.getErrorLogs);
|
|
|
clientStore.ipc.send(icpList.mcu.getErrorLogs);
|
|
|
clientStore.ipc.once(icpList.mcu.getErrorLogs, (event, result) => {
|
|
|
+ if (requestId !== logsRequestId) {
|
|
|
+ resolve(result);
|
|
|
+ return;
|
|
|
+ }
|
|
|
if (Array.isArray(result)) {
|
|
|
logs.value = result;
|
|
|
}
|
|
|
@@ -242,6 +259,7 @@ const useDeviceStatusStore = defineStore('deviceStatus', () => {
|
|
|
statusLoading,
|
|
|
initListener,
|
|
|
fetchLogs,
|
|
|
+ clearLogs,
|
|
|
fetchRunStatus,
|
|
|
resetRunStatus,
|
|
|
startRunStatusListen,
|