diff --git a/src/pages/manuscript/index.vue b/src/pages/manuscript/index.vue
index 05b66cb..95129f9 100644
--- a/src/pages/manuscript/index.vue
+++ b/src/pages/manuscript/index.vue
@@ -10,6 +10,7 @@
公众号推文
通知公告
自由创作示例
+ Mock 文稿
历史记录
进入问答助手
@@ -253,6 +254,41 @@
const DOC_TYPE_VALUES = DOC_TYPE_ITEMS.map((item) => item.value)
const EVENT_TYPE_OPTIONS = ['校园活动', '志愿服务', '会议论坛', '社会实践', '文体活动', '品牌项目']
+ /**
+ * Mock 文稿:本地造一份结果,用来试「编辑正文 / 还原 / 草稿」这些交互,
+ * 不必等 dify 跑几分钟。样例故意带标题层级、加粗、列表、引用和表格,
+ * 是为了让编辑前后的渲染差异看得见。不落库,清空结果即清。
+ */
+ const MOCK_TITLE = '广西医科大学青年志愿者开展“清洁校园”志愿服务活动'
+// 用数组 join 而不是模板字符串:模板字符串的续行会被缩进成 markdown 的代码块,
+// 渲染出来是一堆字面量星号和管道符,反而不像真实排版。
+ const MOCK_MARKDOWN = [
+ '## 一、活动概况',
+ '',
+ '2026年4月8日下午,校团委组织**120余名青年志愿者**在校园主干道及公共区域开展“清洁校园”志愿服务活动。',
+ '',
+ '### 1. 服务内容',
+ '',
+ '- 主干道两侧绿化带清理',
+ '- 教学楼公共区域消杀',
+ '- 共享单车规范摆放',
+ '',
+ '### 2. 参与人员',
+ '',
+ '| 单位 | 人数 | 负责区域 |',
+ '| --- | --- | --- |',
+ '| 校团委 | 12 | 统筹协调 |',
+ '| 青年志愿者协会 | 68 | 主干道 |',
+ '| 各学院团支部 | 40 | 教学楼 |',
+ '',
+ '> 志愿者们用实际行动践行劳动教育,把“奉献、友爱、互助、进步”的志愿精神写进校园。',
+ '',
+ '## 二、下一步计划',
+ '',
+ '1. 每月组织一次集中服务。',
+ '2. 把“清洁校园”纳入团支部考核。'
+ ].join('\n')
+
/**
* 文稿草稿的本地存储 key:存当前这份稿子的正文(编辑过的就存编辑版本)
* 和 AI 原文快照。只存一份 —— 工作台一次只做一份稿子,存多份反而让
@@ -775,6 +811,20 @@
this.form.highlights = '说明报名条件、赛程安排、材料提交截止时间和联系方式,语气正式、条目清晰。'
this.form.number = '600'
},
+ /** 填入 Mock 文稿:等同「生成完成」,把样例记成 AI 原文,编辑功能随即可用 */
+ fillMockResult() {
+ if (this.loading) {
+ this.showToast('正在生成中,请稍后')
+ return
+ }
+ this.clearGenerated()
+ this.generatedTitle = MOCK_TITLE
+ this.generatedContent = MOCK_MARKDOWN
+ this.aiTitle = MOCK_TITLE
+ this.aiMarkdown = MOCK_MARKDOWN
+ this.persistDraft()
+ this.showToast('已填入 Mock 文稿,可直接编辑正文')
+ },
async chooseFiles() {
if (this.uploading) {
return
@@ -1018,6 +1068,13 @@
font-weight: 700;
}
+ /* Mock 是测试入口,用虚线区分,别和真模板按钮混在一起 */
+ .hero-action--mock {
+ background: transparent;
+ border: 1rpx dashed rgba(255, 255, 255, 0.55);
+ color: rgba(255, 255, 255, 0.86);
+ }
+
.panel-card {
margin-top: 24rpx;
padding: 26rpx;