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

64 lines
1.5 KiB
JavaScript

/**
* 日志状态管理
*/
export default {
namespaced: true,
state: {
logs: [],
maxLogs: 1000
},
mutations: {
ADD_LOG(state, logEntry) {
state.logs.push(logEntry);
if (state.logs.length > state.maxLogs) {
state.logs.shift();
}
},
CLEAR_LOGS(state) {
state.logs = [];
}
},
actions: {
addLog({ commit }, { level, message }) {
const timestamp = new Date().toLocaleString();
const logEntry = {
time: timestamp,
level: level.toUpperCase(),
message: message
};
commit('ADD_LOG', logEntry);
},
clearLogs({ commit }) {
commit('CLEAR_LOGS');
commit('ADD_LOG', {
time: new Date().toLocaleString(),
level: 'INFO',
message: '日志已清空'
});
},
exportLogs({ state, commit }) {
const logText = state.logs.map(log =>
`[${log.time}] [${log.level}] ${log.message}`
).join('\n');
const blob = new Blob([logText], { type: 'text/plain' });
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = `logs_${new Date().toISOString().replace(/[:.]/g, '-')}.txt`;
a.click();
URL.revokeObjectURL(url);
commit('ADD_LOG', {
time: new Date().toLocaleString(),
level: 'INFO',
message: '日志已导出'
});
}
},
getters: {
logEntries: state => state.logs
}
};