txw/docs/superpowers/specs/2026-04-28-平台文档管理功能设计.md

8.0 KiB
Raw Blame History

平台文档管理功能设计方案

1. 需求概述

1.1 功能目标

  • 运营管理人员通过 txw-yygl-web 管理平台文档(增删改查)
  • 门户网站 txw-mhzc-web 通过 API 获取文档列表和内容,前端渲染 Markdown
  • 支持 Markdown 富文本编辑
  • 文档按分类管理,支持通过 URL 直接跳转至对应文档

1.2 关键需求点

  • 运营管理端:文档 CRUD + 分类管理
  • 门户前端:文档列表 + 文档详情页(支持 URL 直接访问)
  • 数据存储:txw-mhzc MySQL 数据库

2. 系统架构

2.1 整体架构

┌─────────────────────────────────────────────────────────────┐
│                      运营管理端                             │
│  txw-yygl-web  ←→  txw-yygl-service-biz  ←→  txw-mhzc MySQL │
│              (内部调用)              (新建 document 库)    │
└─────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│                      门户前端                                │
│  txw-mhzc-web  ←→  txw-gateway聚合层  ←→  同一 API      │
└─────────────────────────────────────────────────────────────┘

2.2 技术选型

  • 后端框架Spring Boot复用现有 txw-yygl-service-biz
  • 前端框架Vue 2 + TDesign复用现有技术栈
  • Markdown 编辑器:mavon-editor轻量、Vue 2 兼容)
  • Markdown 渲染:marked + highlight.js
  • 数据库MySQLtxw-mhzc 库)

3. 数据库设计

3.1 文档分类表document_category

字段 类型 约束 说明
id bigint PK, AUTO_INCREMENT 主键
name varchar(100) NOT NULL 分类名称
sort int DEFAULT 0 排序号,越小越靠前
status tinyint DEFAULT 1 状态0-禁用1-启用
create_time datetime DEFAULT CURRENT_TIMESTAMP 创建时间
update_time datetime ON UPDATE CURRENT_TIMESTAMP 更新时间

3.2 文档表document

字段 类型 约束 说明
id bigint PK, AUTO_INCREMENT 主键
category_id bigint NOT NULL, FK 所属分类ID
title varchar(200) NOT NULL 文档标题
content text NOT NULL Markdown 正文内容
status tinyint DEFAULT 0 状态0-草稿1-已发布
sort int DEFAULT 0 排序号,越小越靠前
create_time datetime DEFAULT CURRENT_TIMESTAMP 创建时间
update_time datetime ON UPDATE CURRENT_TIMESTAMP 更新时间

4. API 设计

4.1 文档分类接口

接口 方法 路径 说明
分类列表 GET /document/category/list 获取所有启用的分类
新增分类 POST /document/category 新增文档分类
编辑分类 PUT /document/category/{id} 编辑分类信息
删除分类 DELETE /document/category/{id} 删除分类(需检查无关联文档)

4.2 文档接口

接口 方法 路径 说明
文档列表 GET /document/list 获取文档列表(支持分类筛选、状态筛选)
文档详情 GET /document/{id} 获取文档详情Markdown 内容)
新增文档 POST /document 新增文档
编辑文档 PUT /document/{id} 编辑文档
删除文档 DELETE /document/{id} 删除文档

4.3 响应数据结构

文档列表项(不含正文)

{
  "id": 1,
  "categoryId": 1,
  "categoryName": "使用指南",
  "title": "如何注册账号",
  "status": 1,
  "sort": 1,
  "createTime": "2026-04-28 10:00:00",
  "updateTime": "2026-04-28 10:00:00"
}

文档详情(含正文)

{
  "id": 1,
  "categoryId": 1,
  "categoryName": "使用指南",
  "title": "如何注册账号",
  "content": "# 注册流程\n\n1. 点击注册按钮\n2. 填写企业信息\n...",
  "status": 1,
  "sort": 1,
  "createTime": "2026-04-28 10:00:00",
  "updateTime": "2026-04-28 10:00:00"
}

5. 前端页面设计

5.1 运营管理端txw-yygl-web

路由:/document/*

页面 路由 功能
文档列表 /document/list 分类筛选、状态筛选、搜索、新建按钮
新增/编辑文档 /document/edit/:id? Markdown 编辑器、表单提交
分类管理 /document/category 分类列表、增删改

组件说明

  • DocumentList.vue - 文档列表页
  • DocumentEdit.vue - 文档编辑页(含 mavon-editor
  • CategoryManage.vue - 分类管理页

5.2 门户前端txw-mhzc-web

路由:/help/*/document/*

页面 路由 功能
文档中心首页 /help 分类展示 + 文档列表
文档详情页 /help/:id Markdown 渲染展示

组件说明

  • DocumentCenter.vue - 文档中心首页
  • DocumentDetail.vue - 文档详情页(含 marked 渲染)

6. 核心功能流程

6.1 文档创建/编辑流程

运营用户 → 文档列表页 → 新建/编辑 → Markdown编辑器填写内容 → 保存 → 更新数据库

6.2 文档查看流程

普通用户 → 文档中心首页 → 选择分类 → 查看文档列表 → 点击文档 → URL变为 /help/:id → 渲染Markdown正文

6.3 URL 直接访问流程

用户访问 /help/123 → 前端路由解析id → 调用API获取文档详情 → 渲染Markdown正文

7. 技术实现要点

7.1 后端实现

  • txw-yygl-service-biz 中新建 DocumentControllerDocumentServiceDocumentMapper
  • 新建 DocumentCategoryControllerDocumentCategoryServiceDocumentCategoryMapper
  • 使用 MyBatis-Plus 简化 CRUD 操作
  • 事务管理:新建/编辑文档在同一事务中执行

7.2 前端 Markdown 编辑器

  • 编辑端:使用 mavon-editor(支持预览切换、语法高亮)
  • 渲染端:使用 marked + highlight.js

7.3 路由配置

  • yygl-web新增文档管理路由
  • mhzc-web新增文档中心路由支持 /help/:id 格式

8. 目录结构

8.1 后端txw-yygl-service-biz

src/main/java/com/css/txw/yygl/
├── controller/
│   ├── DocumentController.java
│   └── DocumentCategoryController.java
├── service/
│   ├── DocumentService.java
│   ├── DocumentServiceImpl.java
│   ├── DocumentCategoryService.java
│   └── DocumentCategoryServiceImpl.java
├── mapper/
│   ├── DocumentMapper.java
│   └── DocumentCategoryMapper.java
├── entity/
│   ├── Document.java
│   └── DocumentCategory.java
└── vo/
    ├── DocumentListVO.java
    └── DocumentDetailVO.java

8.2 前端txw-yygl-web

src/pages/document/
├── list/
│   └── index.vue        # 文档列表页
├── edit/
│   └── index.vue        # 新增/编辑页
└── category/
    └── index.vue        # 分类管理页

8.3 前端txw-mhzc-web

src/pages/help/
├── index.vue            # 文档中心首页
└── detail/
    └── index.vue        # 文档详情页

9. 测试要点

9.1 后端测试

  • 分类 CRUD增删改查、状态切换
  • 文档 CRUD增删改查、分类关联、状态管理
  • 异常场景:删除有关联文档的分类、查询不存在的文档

9.2 前端测试

  • Markdown 编辑器:编辑、预览切换
  • 文档列表:分类筛选、状态筛选、分页
  • 文档详情Markdown 渲染、URL 直接访问