feat: batch update - gift card breakdown spec, backend APIs, miniprogram pages, ETL finance recharge, docs & migrations
This commit is contained in:
159
docs/miniprogram-dev/api-audit/_hardcode-summary.md
Normal file
159
docs/miniprogram-dev/api-audit/_hardcode-summary.md
Normal file
@@ -0,0 +1,159 @@
|
||||
# 小程序全页面硬编码汇总与处置方案
|
||||
|
||||
> 生成时间:2026-03-18 | 最后更新:2026-03-18
|
||||
> 覆盖页面:18 个(全部业务页面)
|
||||
|
||||
---
|
||||
|
||||
## 一、分类说明
|
||||
|
||||
| 类别 | 说明 | 行动 |
|
||||
|------|------|------|
|
||||
| ✅ 已修复 | 已完成修改 | — |
|
||||
| 📋 已决策-暂不动 | 用户已确认处置方式,当前不改 | 联调时处理 |
|
||||
| 🔒 保留 | 合理的 UI 文案/默认值/样式常量 | 不动 |
|
||||
|
||||
---
|
||||
|
||||
## 二、✅ 已修复的硬编码
|
||||
|
||||
### 2.1 时间/日期硬编码 → 动态计算 ✅
|
||||
|
||||
| # | 页面 | 字段 | 原值 | 修改结果 |
|
||||
|---|------|------|------|----------|
|
||||
| 1 | customer-service-records | `currentYear` | `2026` | `new Date().getFullYear()` |
|
||||
| 2 | customer-service-records | `currentMonth` | `2` | `new Date().getMonth() + 1` |
|
||||
| 3 | customer-service-records | `maxYearMonth` | `202602` | 动态计算当前年月 |
|
||||
| 4 | customer-service-records | `minYearMonth` | `202601` | 动态计算(当前年月 - 12 个月) |
|
||||
| 5 | performance-records | `currentYear` | `2026` | `new Date().getFullYear()` |
|
||||
| 6 | performance-records | `currentMonth` | `2` | `new Date().getMonth() + 1` |
|
||||
| 7 | performance-records | `monthLabel` | `'2026年2月'` | 动态拼接 |
|
||||
|
||||
### 2.2 用户信息 → 从 globalData.authUser 读取 ✅
|
||||
|
||||
| # | 页面 | 字段 | 原值 | 修改结果 |
|
||||
|---|------|------|------|----------|
|
||||
| 8 | performance-records | `coachName` | `'小燕'` | `onLoad()` 从 `app.globalData.authUser.nickname` 读取 |
|
||||
| 9 | performance-records | `coachLevel` | `'星级'` | `onLoad()` 从 `app.globalData.authUser.coachLevel` 读取 |
|
||||
| 10 | performance-records | `storeName` | `'球会名称店'` | `onLoad()` 从 `app.globalData.authUser.storeName` 读取 |
|
||||
| 11 | my-profile | `mockUserProfile` | `{name:'小燕',...}` | `onShow()` 从 `app.globalData.authUser` 读取,删除 mock import |
|
||||
|
||||
### 2.3 全局 UI 常量抽取 ✅
|
||||
|
||||
| # | 页面 | 原代码 | 修改结果 |
|
||||
|---|------|--------|----------|
|
||||
| 12 | my-profile | `confirmColor: '#e34d59'` | `CONFIRM_DANGER_COLOR`(from `ui-constants.ts`) |
|
||||
| 13 | task-detail | `confirmColor: '#e34d59'` | `CONFIRM_DANGER_COLOR`(from `ui-constants.ts`) |
|
||||
| 14 | notes | `confirmColor: '#e34d59'` | `CONFIRM_DANGER_COLOR`(from `ui-constants.ts`) |
|
||||
|
||||
> 新建 `utils/ui-constants.ts`,`CONFIRM_DANGER_COLOR` 引用 `vi-colors.ts` 的 `GLOBAL_COLORS.error`
|
||||
|
||||
### 2.4 死代码 / 无效路由清理 ✅
|
||||
|
||||
| # | 页面 | 问题 | 修改结果 |
|
||||
|---|------|------|----------|
|
||||
| 15 | customer-detail | 未使用的 `mockCustomerDetail` import | 已删除 |
|
||||
| 16 | apply | 无效路由 `/pages/mvp/mvp` | → `/pages/task-list/task-list` |
|
||||
| 17 | no-permission | 无效路由 `/pages/mvp/mvp` | → `/pages/task-list/task-list` |
|
||||
| 18 | reviewing | 无效路由 `/pages/mvp/mvp` | → `/pages/task-list/task-list` |
|
||||
| 19 | router | 死路由 `'settings': ''` | 已删除 |
|
||||
|
||||
### 2.5 交互优化 ✅
|
||||
|
||||
| # | 页面 | 问题 | 修改结果 |
|
||||
|---|------|------|----------|
|
||||
| 20 | chat-history | `iconGradient` 随机分配 | 改为按对话 ID 哈希固定(`hashIndex()` 函数) |
|
||||
|
||||
### 2.6 类型定义扩展 ✅
|
||||
|
||||
| # | 文件 | 修改 |
|
||||
|---|------|------|
|
||||
| 21 | `typings/index.d.ts` | `authUser` 接口新增 `role?`、`storeName?`、`coachLevel?`、`avatar?` 字段 |
|
||||
|
||||
---
|
||||
|
||||
## 三、📋 已决策-暂不动
|
||||
|
||||
### 3.1 Mock 数据(联调时替换)
|
||||
|
||||
| # | 页面 | 字段 | 用户决策 |
|
||||
|---|------|------|----------|
|
||||
| 1 | customer-service-records | `customerPhone`/`relationIndex` 等 | Mock 数据,联调时从接口取 |
|
||||
| 2 | performance-records | mock 数据不一致(totalCount/totalHours/totalIncome) | 联调时 API 替换,暂不修 |
|
||||
|
||||
### 3.2 筛选选项(全平台共用,暂前端硬编码)
|
||||
|
||||
| # | 页面 | 常量 | 用户决策 |
|
||||
|---|------|------|----------|
|
||||
| 3 | board-coach | `SKILL_OPTIONS` | 后端需配置接口(已记录 REQ-1) |
|
||||
| 4 | board-coach | `SORT_OPTIONS` | 全平台共用,暂保持 |
|
||||
| 5 | board-customer | 维度/项目选项 | 全平台共用,暂保持 |
|
||||
|
||||
### 3.3 其他已决策项
|
||||
|
||||
| # | 页面 | 项目 | 用户决策 |
|
||||
|---|------|------|----------|
|
||||
| 6 | no-permission | 管理员姓名 `厉超` | 保持硬编码(只有一个管理员) |
|
||||
| 7 | login | `dev_test_openid` | 上线前处理(已记录 REQ-3) |
|
||||
|
||||
> 后端接口需求已记录于 `docs/miniprogram-dev/API-requirement.md`(REQ-1 ~ REQ-5)
|
||||
|
||||
---
|
||||
|
||||
## 四、🔒 保留不动的硬编码
|
||||
|
||||
以下硬编码属于合理的 UI 文案、样式常量或默认值,无需修改:
|
||||
|
||||
### 4.1 UI 文案(各页面通用)
|
||||
|
||||
所有页面的以下文案保留不动:
|
||||
- 加载态:`加载中...`
|
||||
- 错误态:`加载失败,请重试` / `重新加载` / `重试`
|
||||
- 空态:`暂无数据` / `暂无备注记录` / `暂无对话记录` / `暂无助教数据` 等
|
||||
- 底部提示:`— 已加载全部记录 —`
|
||||
- 导航栏标题(各页面 `.json` 中的 `navigationBarTitleText`)
|
||||
- 业务术语标签:`定档` / `折前` / `预估` / `召回` / `回访` 等
|
||||
|
||||
### 4.2 `statusBarHeight` 回退值
|
||||
|
||||
所有页面的 `statusBarHeight` 默认值(`20` 或 `44`)作为 `wx.getWindowInfo()` 的兜底值,保留不动。
|
||||
|
||||
### 4.3 `setTimeout` 模拟延迟
|
||||
|
||||
所有页面的 `setTimeout(400~600ms)` 模拟网络延迟,联调时统一替换为真实 API 调用。当前阶段保留不动(改了也没意义,联调时整体重构 `loadData()`)。
|
||||
|
||||
### 4.4 路由路径
|
||||
|
||||
各页面中的 `wx.navigateTo` / `wx.reLaunch` / `wx.switchTab` 路径硬编码,属于小程序标准做法,保留不动。
|
||||
|
||||
### 4.5 样式映射常量
|
||||
|
||||
- `board-coach`: `LEVEL_CLASS` / `SKILL_CLASS` / `SORT_TO_DIM` / `TIME_OPTIONS`
|
||||
- `chat-history`: `ICON_GRADIENTS`(6 组 CSS 渐变色)
|
||||
- 各页面的 `courseTypeClass` / `avatarGradient` 等样式映射
|
||||
|
||||
### 4.6 表单校验规则
|
||||
|
||||
- `apply`: 手机号正则 `!/^\d{11}$/`、球房 ID `maxlength="5"`
|
||||
- `login`: 错误提示文案(`账号已被禁用` / `登录凭证无效` 等)
|
||||
|
||||
### 4.7 Mock 数据本体
|
||||
|
||||
所有 `mockXxx` 数据(包括页面内联和 `mock-data.ts` 中的)在联调前保留不动。联调时统一替换为 API 调用。
|
||||
|
||||
---
|
||||
|
||||
## 五、变更统计
|
||||
|
||||
本轮共修复 21 项硬编码问题,涉及 14 个文件:
|
||||
|
||||
| 类别 | 数量 |
|
||||
|------|------|
|
||||
| 时间/日期动态化 | 7 |
|
||||
| 用户信息 globalData 读取 | 4 |
|
||||
| UI 常量抽取 | 3 |
|
||||
| 死代码/无效路由清理 | 5 |
|
||||
| 交互优化(哈希固定) | 1 |
|
||||
| 类型定义扩展 | 1 |
|
||||
|
||||
涉及文件:`performance-records.ts`、`customer-service-records.ts`、`my-profile.ts`、`task-detail.ts`、`notes.ts`、`chat-history.ts`、`customer-detail.ts`、`apply.ts`、`no-permission.ts`、`reviewing.ts`、`router.ts`、`ui-constants.ts`(新建)、`vi-colors.ts`(已有)、`typings/index.d.ts`
|
||||
Reference in New Issue
Block a user