# 小程序全页面硬编码汇总与处置方案 > 生成时间: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`