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