feat(news_reports): 事件支持多新闻源 sources + 页面底部访问计数器
- /api/news/events/ 事件行: sources 字段非空时显示多个新闻源, 为空回退 source 单源 (兼容数组/对象/JSON 字符串) - footer 参考 index-2.php 深色样式, 增加 page_counter 访问计数 - 文档: AGENTS.md/CLAUDE.md 更新表数量 16->18 张, 补充 news_report/news_event 说明
This commit is contained in:
+20
-1
@@ -301,6 +301,17 @@ var NewsReports = {
|
||||
'</div>';
|
||||
},
|
||||
|
||||
// 解析事件新闻源: sources 字段(json 数组/对象/字符串), 归一化为字符串数组
|
||||
parseSources: function (s) {
|
||||
if (!s) return null;
|
||||
if (typeof s === 'string') {
|
||||
try { s = JSON.parse(s); } catch (err) { return null; }
|
||||
}
|
||||
if (Array.isArray(s)) return s.filter(function (x) { return x && String(x).trim(); });
|
||||
if (typeof s === 'object') return Object.keys(s).filter(function (k) { return k && String(k).trim(); });
|
||||
return null;
|
||||
},
|
||||
|
||||
renderEventRow: function (e, idx, extraMeta) {
|
||||
var sen = this.SENTIMENT[e.sentiment] || this.SENTIMENT.neutral;
|
||||
var impCls = e.importance >= 5 ? 'imp-5' : (e.importance >= 4 ? 'imp-4' : '');
|
||||
@@ -310,7 +321,15 @@ var NewsReports = {
|
||||
var meta = [];
|
||||
if (extraMeta) meta = meta.concat(extraMeta);
|
||||
if (e.event_type) meta.push('<span class="meta-item"><i class="fa-regular fa-tag mr-1"></i>' + selfEscape(e.event_type) + '</span>');
|
||||
if (e.source) meta.push('<span class="meta-item"><i class="fa-regular fa-newspaper mr-1"></i>' + selfEscape(e.source) + '</span>');
|
||||
// 新闻源: 优先显示 sources(多源, json 数组/对象), 为空则回退 source(单源)
|
||||
var srcs = this.parseSources(e.sources);
|
||||
if (srcs && srcs.length) {
|
||||
for (var i = 0; i < srcs.length; i++) {
|
||||
meta.push('<span class="meta-item"><i class="fa-regular fa-newspaper mr-1"></i>' + selfEscape(srcs[i]) + '</span>');
|
||||
}
|
||||
} else if (e.source) {
|
||||
meta.push('<span class="meta-item"><i class="fa-regular fa-newspaper mr-1"></i>' + selfEscape(e.source) + '</span>');
|
||||
}
|
||||
return '' +
|
||||
'<div class="event-row">' +
|
||||
'<div class="event-left">' +
|
||||
|
||||
Reference in New Issue
Block a user