Files
autoAiWorkSys/app/store/modules/task.js
张成 e17d5610f5 1
2025-12-22 16:26:59 +08:00

82 lines
2.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* 设备工作状态和任务统计管理
*/
export default {
namespaced: true,
state: {
// 设备工作状态
displayText: null, // 服务端格式化好的显示文本
nextExecuteTimeText: null, // 服务端格式化好的下次执行时间文本
currentActivity: null, // 当前活动(任务或指令)
pendingQueue: null, // 待执行队列信息
deviceStatus: null, // 设备状态
// 任务统计
taskStats: {
todayCount: 0,
weekCount: 0,
monthCount: 0,
totalCount: 0,
completedCount: 0,
runningCount: 0,
pendingCount: 0,
failedCount: 0,
completionRate: 0
}
},
mutations: {
SET_DEVICE_WORK_STATUS(state, workStatus) {
state.displayText = workStatus.displayText || null;
state.nextExecuteTimeText = workStatus.pendingQueue?.nextExecuteTimeText || null;
state.currentActivity = workStatus.currentActivity || null;
state.pendingQueue = workStatus.pendingQueue || null;
state.deviceStatus = workStatus.deviceStatus || null;
},
CLEAR_DEVICE_WORK_STATUS(state) {
state.displayText = null;
state.nextExecuteTimeText = null;
state.currentActivity = null;
state.pendingQueue = null;
state.deviceStatus = null;
},
SET_TASK_STATS(state, stats) {
state.taskStats = { ...state.taskStats, ...stats };
}
},
actions: {
updateDeviceWorkStatus({ commit }, workStatus) {
commit('SET_DEVICE_WORK_STATUS', workStatus);
},
clearDeviceWorkStatus({ commit }) {
commit('CLEAR_DEVICE_WORK_STATUS');
},
async loadTaskStats({ commit, rootState }) {
try {
const snCode = rootState.auth.snCode;
if (!snCode) {
console.warn('[Task Store] 没有 snCode无法加载任务统计');
return { success: false, error: '请先登录' };
}
// 调用任务统计接口
const result = await window.electronAPI.invoke('http:get', '/task/statistics', { sn_code: snCode });
// 后端返回格式:{ code: 0, data: {...} }
if (result && result.code === 0 && result.data) {
commit('SET_TASK_STATS', result.data);
return { success: true };
} else {
const errorMsg = result?.message || '加载任务统计失败';
console.error('[Task Store] 加载任务统计失败:', result);
return { success: false, error: errorMsg };
}
} catch (error) {
console.error('[Task Store] 加载任务统计失败:', error);
return { success: false, error: error.message || '加载任务统计失败' };
}
}
}
};