diff --git a/admin/dashboard/templates/wx_logs.html b/admin/dashboard/templates/wx_logs.html
index d2d87e5..56db50e 100644
--- a/admin/dashboard/templates/wx_logs.html
+++ b/admin/dashboard/templates/wx_logs.html
@@ -43,6 +43,7 @@
logType: 'info',
logLines: 100,
logContent: [],
+ logContentHtml: '', // 新增
currentView: '9' // 设置当前菜单项
}
},
@@ -56,17 +57,39 @@
.then(response => {
if (response.data.success) {
this.logContent = response.data.data.content || [];
+ // 处理为带颜色的HTML
+ this.logContentHtml = this.logContent.map(line => {
+ if (line.includes('ERROR')) {
+ return `${this.escapeHtml(line)}`;
+ } else if (line.includes('WARNING') || line.includes('WARN')) {
+ return `${this.escapeHtml(line)}`;
+ } else if (line.includes('DEBUG')) {
+ return `${this.escapeHtml(line)}`;
+ } else if (line.includes('INFO')) {
+ return `${this.escapeHtml(line)}`;
+ } else {
+ return `${this.escapeHtml(line)}`;
+ }
+ }).join('');
} else {
this.$message.error('加载日志失败');
+ this.logContentHtml = '';
}
})
.catch(error => {
console.error('加载日志出错:', error);
this.$message.error('加载日志出错');
+ this.logContentHtml = '';
})
.finally(() => {
this.loading = false;
});
+ },
+ escapeHtml(text) {
+ // 防止XSS
+ return text.replace(/[<>&"]/g, function(c) {
+ return {'<':'<','>':'>','&':'&','"':'"'}[c];
+ });
}
}
});