# PRD 需求文档：服务管理模块

## 基本信息

| 项目 | 内容 |
|------|------|
| 文档类型 | PRD 需求文档 |
| 所属模块 | 服务管理（service-manage） |
| 创建日期 | 2026-07-22 |
| 负责人 | czj |
| 优先级 | P1 |
| 状态 | 开发中 |
| 关联分支 | troubleshoot-ai-assistant |

## 背景与目标

### 背景
当前项目已实现"服务监测"模块（service-monitor），用于监测服务器/服务状态并输出报告。现需要开发配套的"服务管理"模块（service-manage），提供服务授权管理、服务升级管理、服务信息查看等功能。

### 目标
1. 参考 `https://192.168.5.44` 统一管理平台的模块设计，实现静态页面
2. 与现有"服务监测"模块完全隔离，互不影响
3. 仅管理员可访问，确保安全性

### 非目标
- 本次仅开发静态页面，不实现后端业务逻辑
- 不涉及与外部系统的集成（如授权文件生成、服务重启等）

## 需求详情

### 1. 服务授权页面（Service Authorization）

**页面路径**: `/service-manage/authorization`

**功能描述**: 服务授权申请流程，分4个步骤卡片展示

#### 步骤 1: 申请服务授权
- 卡片标题："1. 申请服务授权"
- 操作按钮：
  - "下载激活文件" 按钮
  - "上传授权文件" 按钮（文件上传控件）

#### 步骤 2: 填写项目信息
- 卡片标题："2. 填写项目信息"
- 表单字段（带必填标记 *）：
  - 项目销售（文本输入框）
  - 部署人员（文本输入框）
  - 下单时间（日期时间选择器）
  - 服务器密码（密码输入框）
  - 项目概述（多行文本框）
- 操作按钮："保存" 按钮

#### 步骤 3: 填写并提交部署视图
- 卡片标题："3. 填写并提交部署视图"
- 操作按钮："下载部署视图" 按钮

#### 步骤 4: 填写并提交自检文档
- 卡片标题："4. 填写并提交自检文档"
- 操作按钮："下载自检文档" 按钮

**验收标准**:
- [ ] 页面正确显示4个步骤卡片
- [ ] 表单字段布局合理，标签清晰
- [ ] 按钮样式与平台整体风格一致
- [ ] 响应式布局适配移动端

---

### 2. 服务升级页面（Service Upgrade）

**页面路径**: `/service-manage/upgrade`

**功能描述**: 服务重启/回滚管理，Tab 切换 + 服务列表表格

#### 顶部标签页
- Tab 1: "服务重启"（默认选中）
- Tab 2: "服务回滚"

#### 顶部操作栏
- "下载配置" 按钮
- "备份数据库文件" 按钮
- "上传更新服务" 按钮（文件上传）
- "重启已选服务" 按钮（批量操作，默认禁用）
- "下载日志" 按钮（批量操作，默认禁用）

#### 服务列表表格
| 列名 | 说明 |
|------|------|
| ☐ | 全选复选框 |
| 服务名称 | 如"运维系统"、"预定系统2.0" |
| 服务类型 | 如"PYTHON"、"JAVA" |
| 升级路径 | 服务部署路径 |
| 重启脚本路径 | 启动脚本路径 |
| 操作 | "重启"按钮、"下载日志"按钮 |

**验收标准**:
- [ ] Tab 切换功能正常
- [ ] 表格正确渲染，列宽合理
- [ ] 复选框可选择/取消
- [ ] 批量操作按钮根据选择状态启用/禁用
- [ ] 响应式布局适配移动端

---

### 3. 服务信息页面（Service Info）

**页面路径**: `/service-manage/info`

**功能描述**: 服务监控信息概览

#### 筛选区域
- 监控类型下拉选择框（默认值："system"）

#### 信息卡片区域
- CPU 使用率（进度条/数值展示）
- 内存使用率（进度条/数值展示）
- 硬盘使用率（进度条/数值展示）

**验收标准**:
- [ ] 下拉选择框功能正常
- [ ] 信息卡片布局清晰
- [ ] 进度条/数值展示直观

---

## 页面布局设计

### 通用布局
- 继承 `base.html` 模板
- 顶部导航栏：显示当前模块路径（如"系统管理 / 服务授权"）
- 左侧菜单栏：
  - 服务授权（链接到 `/service-manage/authorization`）
  - 服务升级（链接到 `/service-manage/upgrade`）
  - 服务信息（链接到 `/service-manage/info`）

### 顶部 Tab 导航
- 三个一级菜单作为 Tab：
  - 服务授权
  - 服务升级
  - 服务信息
- 点击 Tab 切换到对应页面

---

## 技术方案

### 模块隔离方案
参考 `service_monitor` 的隔离模式：

```
skill/code/web/
├── service_manage/              # 新增：服务管理模块（自包含子包）
│   ├── __init__.py              # 仅暴露 Blueprint
│   ├── routes.py                # 路由层：页面路由
│   └── templates/               # 模板（可选，或复用主 templates/）
└── templates/service_manage/    # 模板目录
    ├── base.html                # 基础模板
    ├── authorization.html       # 服务授权页
    ├── upgrade.html             # 服务升级页
    └── info.html                # 服务信息页
```

### Blueprint 注册
- Blueprint 名称: `service-manage`
- URL 前缀: `/service-manage`
- 权限控制: `@page_login_required` + 管理员权限检查

### 模板继承
- 创建 `templates/service_manage/base.html` 作为模块基础模板
- 子模板继承 base.html，填充 `{% block content %}`

---

## 影响范围

| 文件 | 变更类型 | 说明 |
|------|----------|------|
| `skill/code/web/service_manage/__init__.py` | 新增 | Blueprint 定义 |
| `skill/code/web/service_manage/routes.py` | 新增 | 页面路由 |
| `skill/code/web/templates/service_manage/base.html` | 新增 | 基础模板 |
| `skill/code/web/templates/service_manage/authorization.html` | 新增 | 服务授权页 |
| `skill/code/web/templates/service_manage/upgrade.html` | 新增 | 服务升级页 |
| `skill/code/web/templates/service_manage/info.html` | 新增 | 服务信息页 |
| `skill/code/web/server.py` | 修改 | 注册新 Blueprint |
| `skill/code/web/utils/modules.py` | 修改 | 更新模块元数据 |

---

## 非功能需求

| 项目 | 要求 |
|------|------|
| 性能 | 静态页面加载时间 < 500ms |
| 兼容性 | 支持 Chrome、Edge、Firefox 最新版本 |
| 响应式 | 适配桌面（>1200px）、平板（768-1200px）、移动端（<768px） |
| 可访问性 | 符合 WCAG 2.1 AA 标准 |

---

## 时间估算

| 任务 | 预计时间 |
|------|----------|
| 创建模块目录结构和 Blueprint | 0.5h |
| 开发基础模板 (base.html) | 1h |
| 开发服务授权页面 | 2h |
| 开发服务升级页面 | 2h |
| 开发服务信息页面 | 1h |
| 注册 Blueprint 和模块元数据更新 | 0.5h |
| 响应式适配和样式调整 | 1h |
| **总计** | **7h** |

---

## 验收清单

- [ ] 三个页面均可正常访问
- [ ] 页面布局与参考平台一致
- [ ] Tab 切换功能正常
- [ ] 表单和按钮样式统一
- [ ] 响应式布局正常
- [ ] 与 service-monitor 模块完全隔离，无交叉影响
- [ ] 仅管理员可访问

---

## 附录

### 参考链接
- 参考平台: `https://192.168.5.44/#/backend/backstage`
- 账号: superadmin / Ubains@1357

### 相关文档
- [[PRD_需求文档_服务监测模块]]
- [[PRD_计划执行_平台化改造与模块切换]]