From b4e128c22784518630ea3a404d2d8822a989de63 Mon Sep 17 00:00:00 2001 From: zwt13703 Date: Wed, 1 Jul 2026 20:34:24 +0800 Subject: [PATCH] feat: add template edit shell layout --- .../AI文档模板系统-像素级任务清单-20260701.md | 12 +- docs/tasks/task_detail_2026_07_01.md | 13 ++ .../components/TemplateEdit/ConfigPanel.vue | 89 ++++++++++++++ .../src/components/TemplateEdit/LeftMenu.vue | 116 ++++++++++++++++++ .../components/TemplateEdit/StructureTree.vue | 108 ++++++++++++++++ .../components/TemplateEdit/TopToolbar.vue | 104 ++++++++++++++++ .../components/TemplateEdit/WordPreview.vue | 93 ++++++++++++++ frontend/src/router/index.ts | 6 + frontend/src/views/TemplateEdit.vue | 44 +++++++ 9 files changed, 579 insertions(+), 6 deletions(-) create mode 100644 frontend/src/components/TemplateEdit/ConfigPanel.vue create mode 100644 frontend/src/components/TemplateEdit/LeftMenu.vue create mode 100644 frontend/src/components/TemplateEdit/StructureTree.vue create mode 100644 frontend/src/components/TemplateEdit/TopToolbar.vue create mode 100644 frontend/src/components/TemplateEdit/WordPreview.vue create mode 100644 frontend/src/views/TemplateEdit.vue diff --git a/docs/AI文档模板系统-像素级任务清单-20260701.md b/docs/AI文档模板系统-像素级任务清单-20260701.md index a52fa9d..419df4a 100644 --- a/docs/AI文档模板系统-像素级任务清单-20260701.md +++ b/docs/AI文档模板系统-像素级任务清单-20260701.md @@ -50,12 +50,12 @@ | 032 | 实现 `GET /api/data-sources` 返回预设列表 | 后端 | 0.25d | ✅ 已完成 | | 033 | 实现 `POST /api/data-sources` 新增数据源 | 后端 | 0.25d | ✅ 已完成 | | | **四栏布局** | | | | -| 034 | 实现四栏 CSS Grid 布局 | 前端 | 0.5d | ⏳ 未完成 | -| 035 | 实现左侧菜单 shell 组件 | 前端 | 0.25d | ⏳ 未完成 | -| 036 | 实现顶部工具栏 shell 组件 | 前端 | 0.25d | ⏳ 未完成 | -| 037 | 实现配置面板 shell 组件 | 前端 | 0.25d | ⏳ 未完成 | -| 038 | 实现预览区 shell 组件(A4 纸效果) | 前端 | 0.25d | ⏳ 未完成 | -| 039 | 实现结构树 shell 组件 | 前端 | 0.25d | ⏳ 未完成 | +| 034 | 实现四栏 CSS Grid 布局 | 前端 | 0.5d | ✅ 已完成 | +| 035 | 实现左侧菜单 shell 组件 | 前端 | 0.25d | ✅ 已完成 | +| 036 | 实现顶部工具栏 shell 组件 | 前端 | 0.25d | ✅ 已完成 | +| 037 | 实现配置面板 shell 组件 | 前端 | 0.25d | ✅ 已完成 | +| 038 | 实现预览区 shell 组件(A4 纸效果) | 前端 | 0.25d | ✅ 已完成 | +| 039 | 实现结构树 shell 组件 | 前端 | 0.25d | ✅ 已完成 | | | **左侧菜单** | | | | | 040 | 菜单数据模型(JSON)+ 子菜单配置 | 前端 | 0.25d | ⏳ 未完成 | | 041 | 菜单展开/收起交互 + 箭头旋转动画 | 前端 | 0.25d | ⏳ 未完成 | diff --git a/docs/tasks/task_detail_2026_07_01.md b/docs/tasks/task_detail_2026_07_01.md index d1fe526..57e4ad8 100644 --- a/docs/tasks/task_detail_2026_07_01.md +++ b/docs/tasks/task_detail_2026_07_01.md @@ -59,3 +59,16 @@ 5. 新增 `POST /api/data-sources` 支持新增内存数据源并校验 code 唯一。 6. 执行语法检查和 FastAPI 路由注册检查。 - **执行结果**: 完成任务 030-033,模板详情、区域配置保存和数据源接口已可调用。 + +## 会话 ID: 20260701-template-edit-shell +- [2026-07-01 20:34:14] +- **执行原因**: 按任务清单继续完成前端四栏布局和基础 shell 组件 034-039。 +- **执行过程**: + 1. 新增 `TemplateEdit.vue`,使用 CSS Grid 搭建左侧菜单、顶部工具栏、配置面板、预览区、结构树布局。 + 2. 新增 `LeftMenu.vue`,实现左侧菜单 shell。 + 3. 新增 `TopToolbar.vue`,实现面包屑、模板元信息和操作按钮区域 shell。 + 4. 新增 `ConfigPanel.vue`,实现区域配置面板 shell。 + 5. 新增 `WordPreview.vue`,实现 A4 纸张预览 shell。 + 6. 新增 `StructureTree.vue`,实现结构树 shell。 + 7. 增加 `/templates/:id/edit` 路由,并执行前端构建和浏览器 DOM 检查。 +- **执行结果**: 完成任务 034-039,编辑页基础四栏工作台已可访问。 diff --git a/frontend/src/components/TemplateEdit/ConfigPanel.vue b/frontend/src/components/TemplateEdit/ConfigPanel.vue new file mode 100644 index 0000000..4b941b8 --- /dev/null +++ b/frontend/src/components/TemplateEdit/ConfigPanel.vue @@ -0,0 +1,89 @@ + + + diff --git a/frontend/src/components/TemplateEdit/LeftMenu.vue b/frontend/src/components/TemplateEdit/LeftMenu.vue new file mode 100644 index 0000000..3088570 --- /dev/null +++ b/frontend/src/components/TemplateEdit/LeftMenu.vue @@ -0,0 +1,116 @@ + + + + + diff --git a/frontend/src/components/TemplateEdit/StructureTree.vue b/frontend/src/components/TemplateEdit/StructureTree.vue new file mode 100644 index 0000000..d1a8148 --- /dev/null +++ b/frontend/src/components/TemplateEdit/StructureTree.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/frontend/src/components/TemplateEdit/TopToolbar.vue b/frontend/src/components/TemplateEdit/TopToolbar.vue new file mode 100644 index 0000000..9b79fe9 --- /dev/null +++ b/frontend/src/components/TemplateEdit/TopToolbar.vue @@ -0,0 +1,104 @@ + + + + + diff --git a/frontend/src/components/TemplateEdit/WordPreview.vue b/frontend/src/components/TemplateEdit/WordPreview.vue new file mode 100644 index 0000000..06eafe1 --- /dev/null +++ b/frontend/src/components/TemplateEdit/WordPreview.vue @@ -0,0 +1,93 @@ + + + diff --git a/frontend/src/router/index.ts b/frontend/src/router/index.ts index 8301ee0..ae08fa0 100644 --- a/frontend/src/router/index.ts +++ b/frontend/src/router/index.ts @@ -1,6 +1,7 @@ import { createRouter, createWebHistory } from "vue-router"; import TemplateCenter from "@/views/TemplateCenter.vue"; +import TemplateEdit from "@/views/TemplateEdit.vue"; const router = createRouter({ history: createWebHistory(), @@ -10,6 +11,11 @@ const router = createRouter({ name: "template-center", component: TemplateCenter, }, + { + path: "/templates/:id/edit", + name: "template-edit", + component: TemplateEdit, + }, ], }); diff --git a/frontend/src/views/TemplateEdit.vue b/frontend/src/views/TemplateEdit.vue new file mode 100644 index 0000000..508ed8d --- /dev/null +++ b/frontend/src/views/TemplateEdit.vue @@ -0,0 +1,44 @@ + + + + +