Files

263 lines
8.8 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🧭 工时统计系统 Web UI 设计建议(供实现参考)
## 一、总体设计思路
目标:
构建一个简洁、专业、响应式的企业级工时统计系统前端界面,满足以下目标:
* 清晰展示工时记录、统计趋势与项目分布;
* 操作流程自然,减少学习成本;
* 支持桌面端优先设计Desktop-first后续可拓展移动端适配。
整体风格参考 **IBM Carbon Design System****Material 3** 规范。
---
## 二、界面架构结构
**顶层结构Layout Skeleton**
```
┌───────────────────────────────────────────────────────┐
│ 顶部导航栏Header / Navbar
├───────────────────────────────────────────────────────┤
│ 主内容区Main Content
│ ├─ 侧边导航栏(可选) │
│ └─ 内容容器(根据页面不同加载不同模块) │
├───────────────────────────────────────────────────────┤
│ 页脚Footer
└───────────────────────────────────────────────────────┘
```
---
## 三、导航栏设计Header
**内容结构**
```
[Logo 工时统计系统] 首页 | 工时记录 | 添加记录 | 报表 | 设置 [用户头像 ⬇]
```
**功能要求:**
* Logo + 系统标题在左侧。
* 中间为导航菜单,使用高亮(底部边框或字体加粗)指示当前页面。
* 右上角为用户区域,下拉菜单包含:个人信息、登出。
* 固定顶部sticky header
**样式建议:**
* 背景:#0F62FEIBM 蓝)或白底 + 蓝色字体
* 字体颜色:白色(深色模式)或深灰(亮色模式)
* 高度64px
* 阴影:`box-shadow: 0 2px 4px rgba(0,0,0,0.1)`
---
## 四、主要页面设计
### 1⃣ 首页Dashboard
**布局结构:**
```
┌──────────────────────────────────────────────────┐
│ 工时总览Summary Cards
│ [本周工时] [本月工时] [平均每日工时] │
├──────────────────────────────────────────────────┤
│ 项目统计Project Distribution
│ 条形图或环形图展示各项目工时占比 │
├──────────────────────────────────────────────────┤
│ 本月趋势Trend Chart
│ 折线图X轴=日期 / Y轴=工时 │
└──────────────────────────────────────────────────┘
```
**交互说明:**
* 图表悬浮时显示 Tooltip项目名 + 工时数)。
* 点击项目可跳转至“工时记录”并自动筛选该项目。
**组件建议:**
* 使用 ECharts 或 Chart.js 实现可视化。
* 三列信息卡使用相同宽度与阴影,居中排列。
---
### 2⃣ 工时记录页Timesheet List
**布局结构:**
```
筛选栏
┌─────────────────────────────┐
│ 日期范围 | 员工 | 项目 | 状态 | [查询] [重置] │
└─────────────────────────────┘
工时表格
┌────────────────────────────────────────────────────┐
│ 日期 | 员工 | 项目 | 工时 | 状态 | 备注 | 操作 │
├────────────────────────────────────────────────────┤
│ ... 数据 ... │
└────────────────────────────────────────────────────┘
操作区
[ 添加记录 ] [ 编辑选中 ] [ 删除选中 ] [ 导出 Excel ]
```
**交互说明:**
* 表格支持分页、排序、筛选。
* 点击行可展开详细信息。
* “导出 Excel”按钮执行文件下载。
---
### 3⃣ 添加工时记录页Form
**布局:**
```
员工姓名: [___________] 日期: [YYYY-MM-DD]
项目选择: [___________ ▼] 工时(小时): [____]
备注: [__________________________________________]
[ 保存记录 ] [ 重置表单 ] [ 返回列表 ]
```
**交互逻辑:**
* 保存前表单验证:必填项(姓名、日期、项目、工时);
* 保存成功后提示 “保存成功” Toast
* 重置按钮清空输入;
* 返回列表跳转至工时记录页。
---
### 4⃣ 报表页Reports
**布局建议:左右分栏结构**
```
┌──────────────┬──────────────────────────┐
│ 月度趋势图 │ 项目占比环形图 │
│ 折线图 │ 饼/环形图 │
│ 周1~周4数据 │ 各项目百分比 │
└──────────────┴──────────────────────────┘
[ 导出 PDF ] [ 返回首页 ]
```
**说明:**
* 图表均带 Hover Tooltip
* 支持导出 PNG / PDF 报表。
---
### 5⃣ 设置页Settings
**模块划分:**
1. 个人信息(可编辑姓名、邮箱、部门)
2. 系统偏好(主题、语言、时间格式)
**UI 布局:**
```
┌────────────────────────────────┐
│ 个人信息 │
│ 姓名: [张三] 邮箱: [zhang@ibm.com] │
│ 部门: [开发部] 角色: [管理员] │
└────────────────────────────────┘
┌────────────────────────────────┐
│ 系统设置 │
│ 语言: [中文 ▼] │
│ 主题: [亮色 ☐ 暗色 ☑] │
│ 时间显示: [24小时制 ☑] │
└────────────────────────────────┘
[ 保存设置 ]
```
---
## 五、页脚Footer
**内容:**
```
© 2025 工时统计系统 | Powered by IBM Engineering
```
固定在底部,字体较小、灰色,左右居中。
---
## 六、视觉规范Visual Guideline
| 元素类型 | 建议样式 |
| ---- | ----------------------------------- |
| 主色调 | IBM 蓝 #0F62FE |
| 辅助色 | 灰色背景 #F4F4F4 |
| 字体 | IBM Plex Sans, 14px, 400 weight |
| 卡片 | 白底 + 阴影 `0 1px 3px rgba(0,0,0,0.1)` |
| 按钮 | 圆角 6px主按钮蓝底白字次按钮灰底黑字 |
| 表格 | 条纹行、悬浮高亮行、分页控件底部对齐 |
| 表单控件 | 输入框圆角 4px聚焦高亮边框蓝色 |
| 动效 | Hover、点击反馈 100ms ease-in-out |
---
## 七、响应式设计
* **≥1280px桌面端**:三列卡片布局,图表并列显示。
* **768px1279px平板端**:卡片两列布局,图表堆叠。
* **≤767px手机端**:所有模块垂直排列,表格滚动横向显示。
---
## 八、交互与反馈
| 事件 | 响应 |
| ---- | ------------ |
| 保存成功 | Toast 弹窗提示 |
| 删除操作 | 二次确认对话框 |
| 表单错误 | 红色提示文本 |
| 导出操作 | 文件下载 |
| 数据加载 | Skeleton 骨架屏 |
---
## 九、技术栈建议(可选)
前端建议:
* 框架React + Vite 或 Next.js
* UI 库IBM Carbon Components / MUI
* 图表ECharts / Chart.js
* 状态管理Zustand 或 Redux Toolkit
* 样式Tailwind / SCSS
---
## 十、补充说明
为方便后续扩展,建议在 UI 层使用组件化设计:
* `<TimesheetTable />`
* `<WorktimeForm />`
* `<DashboardCards />`
* `<ReportCharts />`
* `<SettingsPanel />`
所有交互(保存、查询、导出)应以统一的消息提示组件反馈。
---