# 项目管理模块 - 页面原型设计
## 设计概述
本文档定义项目管理模块的页面原型设计,基于若依框架 + Element UI组件库的设计规范。
## 设计规范
### 颜色规范
| 颜色类型 | 颜色值 | 用途 |
|---------|-------|------|
| 主题色 | #409EFF | 主按钮、链接、高亮 |
| 成功色 | #67C23A | 成功状态、已完成项目 |
| 警告色 | #E6A23C | 警告提示 |
| 危险色 | #F56C6C | 危险操作、删除 |
| 信息色 | #909399 | 次要信息、禁用状态 |
| 文字色 | #303133 | 主要文字 |
| 次要文字 | #606266 | 次要文字 |
| 边框色 | #DCDFE6 | 边框、分割线 |
| 背景色 | #F5F7FA | 页面背景 |
### 字体规范
| 类型 | 字体大小 | 字重 | 行高 |
|-----|---------|------|------|
| 页面标题 | 20px | 500 | 28px |
| 卡片标题 | 16px | 500 | 24px |
| 正文 | 14px | 400 | 22px |
| 小字 | 12px | 400 | 20px |
### 间距规范
| 间距类型 | 数值 |
|---------|------|
| 页面边距 | 20px |
| 卡片间距 | 16px |
| 元素间距 | 8px |
| 小间距 | 4px |
---
## 页面1: 项目管理首页
### 页面布局
```
+------------------------------------------------------------------+
| Logo | 纪检初核系统 首页 | 项目工作台 | 系统管理 | 用户▼ |
+------------------------------------------------------------------+
| 项目管理 |
| +------------------------------------------------------------+ |
| | 🔍 项目搜索: [________________] [新建项目] [导入历史项目] | |
| +------------------------------------------------------------+ |
| |
| +------------------------------------------------------------+ |
| | 项目列表 | |
| +------------------------------------------------------------+ |
| | 序号 | 项目名称 | 创建时间 | 状态 | 目标 | 预警 | 操作| |
| |------|--------------|------------|------|------|------|-----| |
| | 1 | 2024年Q1初核 | 2024-01-01 | ⏳进行中| 500 | 15 |[详情]| |
| | 2 | 2023年Q4初核 | 2023-10-01 | ✅已完成| 480 | 23 |[查看]| |
| +------------------------------------------------------------+ |
| |
| +------------------------------------------------------------+ |
| | 快捷入口 | |
| +------------------------------------------------------------+ |
| | [📋 导入历史项目] [📅 创建季度初核] [👤 创建新员工排查] | |
| +------------------------------------------------------------+ |
+------------------------------------------------------------------+
```
### 详细组件说明
#### 1. 顶部导航栏
**位置**: 固定在页面顶部
**组件**:
- 左侧: Logo + 系统名称
- 中间: 主导航菜单
- 右侧: 用户信息下拉菜单
**代码示例**:
```vue
项目管理
项目工作台
系统管理
```
#### 2. 搜索和操作区
**位置**: 导航栏下方,全宽度
**布局**:
```
+------------------------------------------------------------+
| 项目管理 [新建项目] [导入历史项目] |
+------------------------------------------------------------+
| 🔍 [搜索项目名称...................] 高级搜索 ▼ |
+------------------------------------------------------------+
```
**组件规格**:
- 搜索框: 宽度 300px, 高度 32px
- 按钮: 高度 32px, 内边距 12px
- 图标: 14px
**Element UI代码**:
```vue
新建项目
导入历史项目
```
#### 3. 项目列表表格
**位置**: 搜索区下方
**列定义**:
| 列名 | 宽度 | 对齐 | 说明 |
|-----|------|------|------|
| 序号 | 60px | 居中 | 自动编号 |
| 项目名称 | 200px | 左对齐 | 主标题+描述 |
| 创建时间 | 120px | 居中 | YYYY-MM-DD |
| 状态 | 100px | 居中 | 带颜色的标签 |
| 目标人数 | 80px | 居中 | 数字 |
| 预警人数 | 80px | 居中 | 数字+刷新图标 |
| 操作 | 200px | 左对齐 | 按钮组 |
**状态标签样式**:
```vue
{{ row.projectStatus === '0' ? '进行中' : (row.projectStatus === '1' ? '已完成' : '已归档') }}
```
**操作按钮显示规则**:
```vue
进入项目
查看结果
重新分析
归档
查看详情
```
**表格组件代码**:
```vue
{{ scope.row.projectName }}
{{ scope.row.projectDesc }}
{{ getStatusLabel(scope.row.projectStatus) }}
{{ scope.row.warningCount }}
{{ scope.row.warningCount }}
```
#### 4. 快捷入口区
**位置**: 表格下方
**布局**:
```
+------------------------------------------------------------+
| 快捷入口 |
+------------------------------------------------------------+
| ┌──────────┐ ┌──────────┐ ┌──────────┐ |
| │ 📋 导入 │ │ 📅 季度 │ │ 👤 新员工 │ |
| │ 历史项目 │ │ 初核 │ │ 排查 │ |
| └──────────┘ └──────────┘ └──────────┘ |
+------------------------------------------------------------+
```
**卡片样式**:
```css
.quick-entry-card {
width: 100%;
height: 120px;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
border-radius: 8px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
cursor: pointer;
transition: all 0.3s;
}
.quick-entry-card:hover {
transform: translateY(-4px);
box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}
```
---
## 页面2: 新建项目弹窗
### 对话框规格
```
+------------------------------------------------------------------+
| ┌──────────────────────────────────────────────────────────┐ |
| │ 新建项目 │ |
| ├──────────────────────────────────────────────────────────┤ |
| │ 项目名称: [________________________] * │ |
| │ 项目描述: [________________________] │ |
| │ [________________________________] │ |
| │ │ |
| │ 目标人员: [+ 添加人员] │ |
| │ ┌─────────────────────────────────────────┐ │ |
| │ │ ✗ 张三 (3301**********202101) [删除] │ │ |
| │ │ ✗ 李四 (3302**********202102) [删除] │ │ |
| │ └─────────────────────────────────────────┘ │ |
| │ │ |
| │ 时间范围: │ |
| │ 开始日期: [2024-01-01 📅] │ |
| │ 结束日期: [2024-03-31 📅] │ |
| │ │ |
| │ 项目配置: [展开高级设置 ▼] │ |
| │ │ |
| ├──────────────────────────────────────────────────────────┤ |
| │ [取消] [确定] │ |
| └──────────────────────────────────────────────────────────┘ |
+------------------------------------------------------------------+
```
### 表单验证规则
```javascript
rules: {
projectName: [
{ required: true, message: '请输入项目名称', trigger: 'blur' },
{ min: 2, max: 50, message: '长度在 2 到 50 个字符', trigger: 'blur' }
],
startDate: [
{ required: true, message: '请选择开始日期', trigger: 'change' }
],
endDate: [
{ required: true, message: '请选择结束日期', trigger: 'change' },
{
validator: (rule, value, callback) => {
if (value && this.form.startDate && value < this.form.startDate) {
callback(new Error('结束日期不能早于开始日期'));
} else {
callback();
}
},
trigger: 'change'
}
]
}
```
---
## 页面3: 导入历史项目弹窗
### 对话框规格
```
+------------------------------------------------------------------+
| ┌──────────────────────────────────────────────────────────┐ |
| │ 导入历史项目 │ |
| ├──────────────────────────────────────────────────────────┤ |
| │ 搜索: [________________] 📅 时间筛选 ▼ │ |
| │ │ |
| │ 历史项目列表: │ |
| │ ┌─────────────────────────────────────────────┐ │ |
| │ │ ☐ 2024年Q1初核 │ │ |
| │ │ 创建时间: 2024-01-01 人员: 500 [详情] │ │ |
| │ ├─────────────────────────────────────────────┤ │ |
| │ │ ☑ 2023年Q4初核 │ │ |
| │ │ 创建时间: 2023-10-01 人员: 480 [详情] │ │ |
| │ ├─────────────────────────────────────────────┤ │ |
| │ │ ☐ 2023年Q3初核 │ │ |
| │ │ 创建时间: 2023-07-01 人员: 450 [详情] │ │ |
| │ └─────────────────────────────────────────────┘ │ |
| │ │ |
| │ 新项目名称: [2024年Q2初核(复制)] * │ |
| │ 时间范围: │ |
| │ 开始: [2024-04-01] 结束: [2024-06-30] │ |
| │ │ |
| ├──────────────────────────────────────────────────────────┤ |
| │ [取消] [导入] │ |
| └──────────────────────────────────────────────────────────┘ |
+------------------------------------------------------------------+
```
### 项目列表项样式
```vue
创建时间: {{ item.createTime }}
人员: {{ item.targetCount }}
{{ getStatusLabel(item.projectStatus) }}
```
---
## 页面4: 项目归档确认
### 确认对话框
```
+------------------------------------------------------------------+
| ┌──────────────────────────────────────────────────────────┐ |
| │ ⚠️ 归档确认 │ |
| ├──────────────────────────────────────────────────────────┤ |
| │ │ |
| │ 确定要归档项目"2024年Q1初核"吗? │ |
| │ │ |
| │ 归档后将: │ |
| │ ✓ 项目状态变为"已归档" │ |
| │ ✓ 自动生成项目报告PDF │ |
| │ ✓ 移入归档库 │ |
| │ │ |
| │ ☐ 同时删除项目相关数据(不可恢复) │ |
| │ │ |
| │ 归档后可从"归档库"中查看和恢复 │ |
| │ │ |
| ├──────────────────────────────────────────────────────────┤ |
| │ [取消] [确认归档] │ |
| └──────────────────────────────────────────────────────────┘ |
+------------------------------------------------------------------+
```
---
## 交互规范
### 1. 加载状态
- 首次加载显示骨架屏
- 数据刷新显示loading遮罩
- 按钮操作后显示loading状态
### 2. 空状态
```
+------------------------------------------------------------------+
| ┌──────────────────────────────────────────────────────────┐ |
| │ 📂 │ |
| │ │ |
| │ 暂无项目数据 │ |
| │ │ |
| │ [新建项目] [导入历史项目] │ |
| └──────────────────────────────────────────────────────────┘ |
+------------------------------------------------------------------+
```
### 3. 错误提示
- 表单验证错误:红色边框 + 错误文字
- 网络错误:全屏错误提示
- 操作失败:右上角消息提示
### 4. 成功反馈
- 操作成功:右上角成功消息
- 删除成功:列表自动刷新
- 创建成功:跳转到详情页
---
## 响应式设计
### 断点定义
| 设备类型 | 屏幕宽度 | 布局调整 |
|---------|---------|---------|
| 大屏 | ≥1920px | 显示完整表格 |
| 标准 | ≥1200px | 标准布局 |
| 平板 | ≥768px | 隐藏次要列 |
| 手机 | <768px | 卡片式布局 |
### 移动端适配
```css
/* 移动端使用卡片式布局 */
@media (max-width: 768px) {
.project-list-table {
display: none;
}
.project-list-cards {
display: block;
}
}
```
---
## 可访问性
### 键盘导航
- Tab: 在元素间切换焦点
- Enter: 确认/提交
- Esc: 关闭对话框
- Space: 选中/取消选中
### ARIA标签
```html
```
---
## 设计资源
### Figma设计稿
如需查看详细的设计稿,请联系设计团队。
### 墨刀原型
[在线查看原型](演示模式.html)
### 图标库
使用Element UI内置图标,文档:https://element.eleme.io/#/zh-CN/component/icon
---
## 版本信息
- **设计版本**: V1.0
- **设计日期**: 2026-01-27
- **设计师**: 待定
- **基于框架**: Vue 2.6 + Element UI 2.15