diff --git a/platform/frontend/topics.html b/platform/frontend/topics.html
index 74a5bc9..08531c4 100644
--- a/platform/frontend/topics.html
+++ b/platform/frontend/topics.html
@@ -65,8 +65,9 @@
-
-
+
+
+
@@ -333,7 +334,7 @@ const TopicsApp = {
currentPage: 1, pageSize: 10,
sortField: 'created_at', sortOrder: 'ascending',
showSearch: false,
- searchForm: { id: '', title: '', field: '', createdStart: null, createdEnd: null, generatedStart: null, generatedEnd: null, reviewedStart: null, reviewedEnd: null, publishedStart: null, publishedEnd: null },
+ searchForm: { id: '', title: '', field: '', series: '', createdStart: null, createdEnd: null, generatedStart: null, generatedEnd: null, reviewedStart: null, reviewedEnd: null, publishedStart: null, publishedEnd: null },
createDialogVisible: false, createStep: 1, analyzing: false, saving: false,
fieldOptions: [],
createForm: { raw_input: '', reference_links: '', field_id: null },
@@ -341,9 +342,14 @@ const TopicsApp = {
}
},
computed: {
+ seriesOptions() {
+ const s = new Set();
+ for (const t of this.topics) { if (t.series) s.add(t.series); }
+ return [...s].sort();
+ },
searchActive() {
const f = this.searchForm;
- return !!(f.id || f.title || f.field || f.createdStart || f.createdEnd || f.generatedStart || f.generatedEnd || f.reviewedStart || f.reviewedEnd || f.publishedStart || f.publishedEnd);
+ return !!(f.id || f.title || f.field || f.series || f.createdStart || f.createdEnd || f.generatedStart || f.generatedEnd || f.reviewedStart || f.reviewedEnd || f.publishedStart || f.publishedEnd);
},
filteredTopics() {
let list;
@@ -356,11 +362,12 @@ const TopicsApp = {
}
// 搜索过滤
const sf = this.searchForm;
- if (sf.id || sf.title || sf.field || sf.createdStart || sf.createdEnd || sf.generatedStart || sf.generatedEnd || sf.reviewedStart || sf.reviewedEnd || sf.publishedStart || sf.publishedEnd) {
+ if (sf.id || sf.title || sf.field || sf.series || sf.createdStart || sf.createdEnd || sf.generatedStart || sf.generatedEnd || sf.reviewedStart || sf.reviewedEnd || sf.publishedStart || sf.publishedEnd) {
list = list.filter(t => {
if (sf.id && !t.id.toLowerCase().includes(sf.id.toLowerCase())) return false;
if (sf.title && !t.title.toLowerCase().includes(sf.title.toLowerCase())) return false;
if (sf.field && !(t.field || '').toLowerCase().includes(sf.field.toLowerCase())) return false;
+ if (sf.series && (t.series || '') !== sf.series) return false;
const inRange = (val, start, end) => {
if (!val) return !start && !end;
const d = val.slice(0, 10);