配置全面迁移数据库:PromptConfig、TaskConfig动态调度、敏感词/清洗规则/趋势映射/平台标签/痛点模板全部可编辑
- 新增 PromptConfig 模型 + API,支持提示词在线编辑(16条默认) - 调度器动态读取 TaskConfig.schedule,admin 可调执行时间 - 新增 KeywordDomainMap、SensitiveWord、ContentCleanRule、TrendFieldMapping 表 - DOMAINS、TREND_DOMAIN_MAP、PLATFORM_TAGS、china_pains、RSS关键词、priority_weights 全部迁移到 DB - tasks.html 重构:卡片网格+配置/产出/历史/提示词四个Tab,折叠显示 - 清理冗余代码:DEFAULT_PROMPTS死代码、collector.py unreachable代码、compliance_checker bug - strip_thinking_html 改用 DB 规则优先
This commit is contained in:
@@ -132,7 +132,7 @@
|
||||
<template #footer>
|
||||
<div style="display:flex; justify-content:flex-end; gap:8px; width:100%;">
|
||||
<el-button @click="previewVisible = false">关闭</el-button>
|
||||
<el-button v-if="previewArticleData && previewArticleData.html_content" type="primary" @click="copyPreviewHtml">复制 HTML</el-button>
|
||||
<el-button v-if="previewArticleData && previewArticleData.html_content" type="primary" @click="copyPreviewHtml">复制正文</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
@@ -215,12 +215,18 @@ const ArticlesApp = {
|
||||
});
|
||||
},
|
||||
copyPreviewHtml() {
|
||||
if (!this.previewArticleData || !this.previewArticleData.html_content) {
|
||||
this.$message.warning('暂无 HTML 内容可复制');
|
||||
return;
|
||||
}
|
||||
navigator.clipboard.writeText(this.previewArticleData.html_content)
|
||||
.then(() => this.$message.success('HTML 已复制'))
|
||||
const html = this.previewArticleData?.html_content;
|
||||
if (!html) { this.$message.warning('暂无内容可复制'); return; }
|
||||
const parser = new DOMParser();
|
||||
const doc = parser.parseFromString(html, 'text/html');
|
||||
const titleEl = doc.querySelector('h1');
|
||||
const title = titleEl ? titleEl.textContent.trim() : (this.previewArticleData.topic_title || '');
|
||||
const body = doc.body;
|
||||
if (body) body.querySelectorAll('script, style, svg, img, nav, footer, .interaction').forEach(el => el.remove());
|
||||
const contentEls = body ? Array.from(body.querySelectorAll('p, h1, h2, h3, h4, li')) : [];
|
||||
const text = contentEls.map(el => el.textContent.trim()).filter(t => t && t.length > 1).join('\n\n');
|
||||
navigator.clipboard.writeText(`标题:${title}\n\n内容:\n${text}`)
|
||||
.then(() => this.$message.success('已复制到剪贴板'))
|
||||
.catch(() => this.$message.error('复制失败'));
|
||||
},
|
||||
async deleteArticle(article) {
|
||||
|
||||
Reference in New Issue
Block a user