/** * 设备工作状态和任务统计管理 */ 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 || '加载任务统计失败' }; } } } };