「记一条」面板里正文是个 textarea,排版、表格、贴图都没有——创建时反而比 详情页更寒酸。现在新建面板直接用详情同款 Vditor 编辑器,创建与修改一个模样。 - `RichTextEditor` 的 `itemId` 改为可选:新建时还没有条目 id,正文照写, 只是上传按钮不摆出来;真去贴图会提示「先保存这条内容,再回来贴图」。 - `KnowledgeComposer` 的正文换用 `RichTextEditor`(minHeight 320),页脚提示 按有没有条目 id 给不同文案。 - 安卓:新建对话框不再放纯文本正文框,保存后直接进 `RichTextEditorScreen` 写正文(排版、表格、贴图都在那儿),写完回到列表并展开详情。 - e2e 增加一条断言:新建面板里的正文就是富文本编辑器(aria-label=正文 的 contenteditable),正文按真实键盘输入后 Markdown 正常落库。 验证:`tsc --noEmit` 通过、`vite build` 通过、`knowledge-notebook.mjs` 11 项 全绿(新增「新建面板的正文是富文本编辑器」)。安卓端本机仍是 JDK 25 + Gradle 8.7/AGP 8.7.3 不兼容,本次未编译验证。
This commit is contained in:
@@ -82,9 +82,22 @@ try {
|
||||
await page.getByLabel("类型").selectOption("howto");
|
||||
await page.getByLabel("分类", { exact: true }).selectOption({ label: "研发 / 部署" });
|
||||
await page.getByLabel("标签").fill("发布 事故");
|
||||
await page
|
||||
.getByLabel("正文")
|
||||
.fill("## 步骤\n1. 停掉灰度流量\n2. 回滚镜像到上一个 tag\n3. 验证关键接口");
|
||||
// 正文是富文本编辑器(Vditor),不是 textarea:先等它挂载,再用真实键盘输入
|
||||
const composerBody = page.locator('.vditor-ir [contenteditable="true"]').last();
|
||||
await composerBody.waitFor({ timeout: 20_000 });
|
||||
await composerBody.click();
|
||||
await page.keyboard.type("## 步骤", { delay: 10 });
|
||||
await page.keyboard.press("Enter");
|
||||
await page.keyboard.type("1. 停掉灰度流量", { delay: 10 });
|
||||
await page.keyboard.press("Enter");
|
||||
await page.keyboard.type("回滚镜像到上一个 tag", { delay: 10 });
|
||||
await page.keyboard.press("Enter");
|
||||
await page.keyboard.type("验证关键接口", { delay: 10 });
|
||||
check(
|
||||
"新建面板的正文是富文本编辑器",
|
||||
(await composerBody.getAttribute("aria-label")) === "正文",
|
||||
);
|
||||
await page.screenshot({ path: "e2e/artifacts/knowledge-composer-editor.png" });
|
||||
await page.getByRole("button", { name: "保存并继续写", exact: true }).click();
|
||||
|
||||
// 保存后直接打开详情:标题、分类路径、标签都在
|
||||
|
||||
Reference in New Issue
Block a user