docs(V0.2): 界面设计同步 2026-10-23 调整 (含日历+打卡合并草案) + 设计文档 §11
Docker Build and Push / build-image (push) Successful in 4m14s
Docker Build and Push / build-image (push) Successful in 4m14s
界面设计.html - 新增 2.12「V0.2.1 界面调整」章节: 头部统一 / 日历·打卡合并 / 模板分类 / 宏观 tab 溢出 - 已实现部分 (①③④) 与待确认草案 (②) 分别标注 - 2.9 宏观截图同步新 tab 顺序与右侧透支提示; 2.3 / 2.7 清单补「模板」分段 - 全部原型头部改用 23px 紧凑头部, 「我」页去掉头部条 设计文档.md - 新增 §11 界面调整: 变更清单、头部统一对照表、模板接口与排序口径、宏观 tab 顺序与溢出实现、 待确认的日历+打卡合并方案 (含确认后需改动的文件与样式段)
This commit is contained in:
@@ -442,3 +442,75 @@ compareVersion('0.2','0.2.0') // → 0 (缺位补 0)
|
||||
### 10.5 界面设计同步
|
||||
|
||||
`界面设计.html` 已同步:底部 Tab 改为 4 项且「打卡」高亮在首位、打卡页去掉特效开关按钮、新增「我的 · OTA 开发版本开关」屏、宏观新增「报警 / 新闻」子 Tab 与合并后的 6 Tab 导航。
|
||||
|
||||
---
|
||||
|
||||
## 11. 界面调整(2026-10-23)
|
||||
|
||||
### 11.1 变更清单
|
||||
|
||||
| # | 范围 | 变更 | 状态 |
|
||||
| --- | --- | --- | --- |
|
||||
| 1 | 页面头部 | 打卡 NavBar 高度减半(45 → 23px)、标题改主色 12px;宏观 / 监控补标题;「我」页整条去掉 | **已实现** |
|
||||
| 2 | 打卡页 | 日历与打卡合并为一个视图(上日历、下打卡,按天/周/月分组、去掉年分组、卡片紧凑化) | **待确认**(设计稿已出,见《界面设计.html》2.12 ②节) |
|
||||
| 3 | 清单页 | 新增「模板」分类(与进行中 / 已归档并列),独立 CRUD + 字母序;新建清单去掉场景、模板改右侧滑出选择 | **已实现** |
|
||||
| 4 | 宏观页 | 报警 / 新闻移到最左并默认选中新闻;tab 条增加右侧溢出提示 | **已实现** |
|
||||
|
||||
### 11.2 页面头部统一
|
||||
|
||||
新增组件 `src/components/PageHeader.jsx`(高度 23px、标题 12px/600 主色、字距 1px、背景取页面底色 `#f5f5f5`),只被 **打卡 / 宏观 / 监控** 三页引用:
|
||||
|
||||
| 页 | 变更前 | 变更后 |
|
||||
| --- | --- | --- |
|
||||
| 打卡 | `NavBar` 45px,标题 17px 深色 | `PageHeader` 23px,标题主色 |
|
||||
| 宏观 | `NavBar` 45px,空白 | `PageHeader` + 标题「宏观」 |
|
||||
| 监控 | `NavBar` 45px,空白 | `PageHeader` + 标题「监控」 |
|
||||
| 我 | `NavBar` 45px 空白条 | **移除**,`me-profile` 直接贴顶 |
|
||||
|
||||
> 「我」页不引用该组件,因此调整打卡/宏观/监控的头部不会波及「我」;反之亦然。三个页面之间也各自持有独立实例,互不影响。
|
||||
|
||||
### 11.3 清单模板分类
|
||||
|
||||
**接口**(`server/routes/checklists.js`):
|
||||
|
||||
| 方法 | 路径 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| GET | `/api/checklists/templates` | 列表,**服务端按名称字母顺序排序**(原为 `builtin desc, id asc`) |
|
||||
| GET | `/api/checklists/templates/:id` | 详情(新增) |
|
||||
| POST | `/api/checklists/templates` | 新建(名称 ≤20 字,≥1 条检查项) |
|
||||
| PUT | `/api/checklists/templates/:id` | 改名称 / 检查项(新增;`builtin=true` 拒绝,404) |
|
||||
| DELETE | `/api/checklists/templates/:id` | 删自建模板(`builtin=true` 拒绝) |
|
||||
|
||||
排序口径:`Intl.Collator('zh-Hans-CN', { numeric: true, sensitivity: 'base' })` —— 中文按拼音、数字按数值。前端 `ListView` 拿到列表后再排一次,保证与后端一致(网络返回顺序不可控时也不乱)。
|
||||
|
||||
**前端**(`src/pages/checkin/ListView.jsx`):
|
||||
|
||||
- 分段由 2 项扩为 3 项:`active`(进行中)/ `archived`(已归档)/ `template`(模板);右上角按钮随分段切换为「+ 新建」/「+ 新建模板」。
|
||||
- 模板卡片:名称 + 「预置」标记 + 项数;最多展示 4 条检查项摘要,超出折叠为 `+n`;操作「由此新建 / 编辑 / 删除」,预置模板只保留「由此新建」。
|
||||
- 新建 / 编辑模板共用底部弹层:名称 + 检查项逐条编辑(≤40 字,可删可加)。
|
||||
- **新建清单表单**:仅「名称」+「模板」两项 —— **场景选择器已移除**(`scene` 改为沿用所选模板自带的场景,无模板则为空;数据库字段保留,历史数据照常展示)。
|
||||
- **模板选择**:点击模板行从**右侧滑出** `78vw` 面板(antd-mobile `Popup position="right"`),首项固定「不使用模板」,其后为字母序模板列表(预置带标记 + 项数),选中项主色高亮。
|
||||
|
||||
### 11.4 宏观 tab 顺序与溢出提示
|
||||
|
||||
- Tab 顺序改为 **报警 → 新闻 → 油价 → 经济数据 → 策略研究 → 经济文章**,默认选中 **新闻**;`/macro` 由路由直接 `Navigate` 到 `/macro/news`(`App.jsx`),`activeFromPath` 兜底同样返回 `news`。
|
||||
- `SwipeTabs` 增加溢出提示层:测量 `.adm-tabs-tab-list` 的 `scrollLeft + clientWidth < scrollWidth`,为真时在顶部右侧渲染 `.tab-more-hint`(白色渐变 + 主色圆底箭头「›」,1.5s 轻微摆动动画,点击向右翻页 60% 视宽),滚到末尾自动消失。
|
||||
- 切换 tab 时把激活项平滑滚到可视区中央,避免选中项藏在屏幕外。
|
||||
- 为什么不用框架自带的:antd-mobile Tabs 自带 `.adm-tabs-header-mask-right` 只有 30px 纯渐变、无箭头、无交互,用户难以判断"右侧还有内容",故叠加此提示层。
|
||||
|
||||
### 11.5 待确认项:日历与打卡合并
|
||||
|
||||
方案已写入《界面设计.html》2.12 ②节(含主视图、未来日期计划态、卡片「⋯」操作面板三屏)。要点:
|
||||
|
||||
| 项 | 方案 |
|
||||
| --- | --- |
|
||||
| 结构 | SwipeTabs 由 3 个减为 2 个:`日历(含打卡)` / `清单` |
|
||||
| 日历 | 月历 + 月份切换 + 回到今天;**去掉「昨天/今天/明天」分段**;日期格 38 → 31px |
|
||||
| 打卡 | 沿用现有卡片样式,紧凑化:内边距 12→8px、环形 58→42px(环宽 6→5)、间距 10→7px |
|
||||
| 操作 | 撤销 / 编辑 / 归档收进「⋯」底部面板(原为卡片底部三个文字链接) |
|
||||
| 分组 | **每天 → 每周 → 每月**,组标题左侧主色竖条;**去掉「每年」分组** |
|
||||
| 联动 | 点日期即切换当日数据;未来日期只读,按钮灰显「计划」 |
|
||||
|
||||
确认后再落地:`CheckinPage` 收敛为 2 个 tab、`CalendarView` 与 `HabitView` 合成新视图组件、`HabitView` 的循环/编辑逻辑抽出复用、样式新增 `.mv-*` 段。
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user