This commit is contained in:
张成
2025-12-22 16:26:59 +08:00
parent aa2d03ee30
commit e17d5610f5
54 changed files with 11735 additions and 3 deletions

81
app/store/modules/task.js Normal file
View File

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