功能(文档与桌面):完善文件预览下载与客户端构建基线
Client Quality Gates / Shared client and Web (push) Has been cancelled
Client Quality Gates / macOS Desktop (push) Has been cancelled

- 保存文档版本原始文件名,规范下载响应并持久化上传目录\n- 增加 PDF.js 预览、桌面保存打开流程及统一错误反馈\n- 统一 Node.js 22.13 构建基线并收紧临时文件权限门禁\n- 补充迁移、单元测试、发布检查与运维文档
This commit is contained in:
Cheng Zhou
2026-07-13 18:40:48 +08:00
parent ab59476d10
commit 44db5db838
40 changed files with 1817 additions and 87 deletions
+14 -1
View File
@@ -519,6 +519,18 @@ describe("desktop layout shell", () => {
expect(documentDetail).not.toContain("openFile, pickFiles, saveFile");
});
it("keeps attachment upload mode flat and responsive across web and desktop", () => {
const attachments = readAttachmentListSource();
expect(attachments).not.toContain('class="attachment-list-panel unified-shell"');
expect(attachments).toContain("'unified-shell': displayMode === 'table'");
expect(attachments).toContain("'attachment-list-panel--upload': displayMode === 'upload'");
expect(attachments).toContain("'upload-grid--single': uploadGroups.length === 1");
expect(attachments).toContain(".upload-grid--single {");
expect(attachments).toContain('class="pending-file-info"');
expect(attachments).toContain('class="pending-file-meta"');
});
it("surfaces persistent desktop activity feedback without local task persistence", () => {
const desktopLayout = readDesktopLayoutSource();
const activityCenter = readDesktopActivityCenterSource();
@@ -595,7 +607,8 @@ describe("desktop layout shell", () => {
expect(styles).toContain("backdrop-filter: blur(12px) saturate(135%);");
expect(styles).toContain("body.is-desktop-runtime .el-overlay-dialog");
expect(styles).toContain("body.is-desktop-runtime .el-overlay-message-box");
expect(styles).toContain("body.is-desktop-runtime .el-dialog,");
expect(styles).toContain("body.is-desktop-runtime :where(.el-dialog),");
expect(styles).toContain("body.is-desktop-runtime :where(.el-dialog__body) {");
expect(styles).toContain("body.is-desktop-runtime .el-message-box");
expect(styles).toContain("border-radius: 12px;");
expect(styles).toContain("body.is-desktop-runtime .el-dialog__header");