# 2026-05-28 记录

## 关爱模式（Care Mode）开发日志

### 已完成

#### 基础设施
- [x] `stores/careMode.js` — Pinia store，state 含 enabled，action 含 toggle/enable/disable/restore，持久化到 uni.setStorageSync
- [x] JS 注入 CSS 变量方案：store `_syncRootClass()` 对 `document.documentElement.style.setProperty()` 逐条注入 px 值，绕过 uni-app H5 编译 rpx 问题
- [x] `restore()` 在 `App.vue onLaunch` 调用，加载持久化状态并同步 DOM
- [x] `uni.scss` 重构：`:root` 为基础变量，`:root.care-mode` 为 1.5x 覆盖；去掉了 `page` 选择器防止继承链断裂
- [x] 常量 `NORMAL_VARS` / `CARE_VARS` 定义在模块顶层，含完整 CSS 变量集（font-size, spacing, color, btn-min-height, input-height, border-radius 等）
- [x] 辅助函数 `getRpxRatio()` (screenWidth / 750) 和 `buildPxVars()` 动态转 px
- [x] `uni.scss` 中所有 H5 CSS 变量值用 px（非 rpx），因浏览器不认 rpx 作为 CSS 变量值
- [x] 调试用全局函数 `__toggleCareMode()` 挂载到 window，可在 console 直接调用
- [x] `stores/index.js` 中 export careMode
- [x] 登录按钮使用 computed `buttonStyle`（因 `u-button` `custom-style` 不支持 CSS 变量）

#### 登录页 (`pages/login/login.vue`)
- [x] 所有硬编码样式 -> `var(--xxx)` 替换（~11 处）
- [x] 登录按钮 width 使用 `buttonWidth: '80%'`（不变），font-size/input-height 通过 CSS 变量控制

#### 首页 (`pages/index/index.vue`)
- [x] 53 处 `var(--)` 替换
- [x] `showMoreActions()` 使用 ActionSheet：两选项「开启/关闭关爱模式」「退出登录」
- [x] 文字描述全部 1.5x 显示

#### 入库出库选器改造（4 个文件）
- [x] `pages/inbound/production.vue` — 68 处 CSS 变量，生产入库（无价格逻辑）
- [x] `pages/inbound/purchase.vue` — 90 处 CSS 变量，采购入库（含价格/金额/供应商选器）
- [x] `pages/outbound/material.vue` — 68 处 CSS 变量，领料出库（无价格逻辑）
- [x] `pages/outbound/sales.vue` — 93 处 CSS 变量，销售出库（含价格/金额/客户选器）

### 技术决策
- **CSS class → JS 注入转换**：因 `:root.care-mode` 在 uni-app H5 编译后 `page` 元素阻断了继承链，改用 JS 对 `document.documentElement.style.setProperty()` 直接注入
- **删除 `uni.scss` 的 `page` 选择器**：`page` 作为中间元素接收 CSS 变量但不会传递给子元素，导致页面 `var(--)` 都落在 fallback
- **1.5x 缩放系数**：用户指定的比值；`CARE_VARS = NORMAL_VARS × 1.5`
- **`u-button` custom-style 不支持 CSS 变量**：改用 computed 返回样式对象

### 待办
- [ ] 7 个已回滚页面需要重新 CSS 变量改造（首页和 4 个选器已重做完成，仍需检查 stocktake, inventory 等）
- [ ] 检查 `/pages/inbound/history`, `/pages/inventory/inventory`, `/pages/inventory/stock`, `/pages/supplier/index`, `/pages/supplier/supplierDetail`, `/pages/outbound/history`, `/pages/inventory/warehouse` 是否需要 Care Mode 支持
- [ ] 添加其他页面的 manual toggle 入口（actionSheet）
- [ ] 小程序 `<page-meta>` 支持（未来事项）

### 当前焦点
用户已确认登录页 OK，首页改造完成，4 个入库出库选器改造完成。等待用户反馈看 H5 效果，再决定下一步。
#### 入库出库历史记录（2 个文件）
- [x] `pages/inbound/history.vue` — 67 处 CSS 变量，含搜索、卡片列表、撤销按钮、空状态
- [x] `pages/outbound/history.vue` — 66 处 CSS 变量，含客户/价格/金额展示

#### 库存与安全库存（2 个文件）
- [x] `pages/inventory/index.vue` — 42 处 CSS 变量，含搜索、分类筛选、库存卡片、低库存 tag
- [x] `pages/inventory/safe-stock.vue` — 30 处 CSS 变量，含信息卡片、表单输入、保存/删除按钮

#### 库存盘点（2 个文件）
- [x] `pages/stocktake/index.vue` — 75 处 CSS 变量，含搜索、分类筛选、盘点卡片、实盘输入、底部操作栏
- [x] `pages/stocktake/history.vue` — 60 处 CSS 变量，含时间筛选 tabs、历史卡片、空状态

### 未检查页面（待确认是否需要 Care Mode 支持）
- `/pages/inventory/stock` (不存在)
- `/pages/inventory/warehouse` (不存在)
- `/pages/supplier/index`
- `/pages/supplier/supplierDetail`
