ZF sun
eae415ecad
feat(recommend-diy): 推荐系统 6 个 diy-recommend-* 组件 + mixin + lang
策略: 微信小程序前端采用"专属 DIY 组件"模式实现推荐入驻主页,
不写 4 个独立 .vue 页面,而是在 components-diy/ 下新增 6 个动态数据组件,
商家在"自定义页面"装修面板里自由拖拽组合。组件 mounted 后自动 ajax
拉 /recommend/api/home/homeSummary 真实数据。
新增:
1. 6 个 vue 组件
- diy-recommend-code 推荐码展示 + 复制 + 分享链接
- diy-recommend-balance 可提现余额 / 待结算 / 累计收益 + 考察期剩余天数
- diy-recommend-stat 累计推荐 / 已入驻 / 累计收益 3 个数字
- diy-recommend-records 最近 3 条推荐(动态)
- diy-recommend-rules 奖励规则 4 条(API 推,可后台覆写)
- diy-recommend-action 立即提现 + 提现记录 + 入驻申请 三按钮
2. 公共 mixin — common/js/recommend-diy-data.js
- fetchRecommendInfo() ajax 拉 homeSummary(去抖 10s)
- computed: balance / code / probation / statistics / recentRecords / rewardRules
- formatMoney() 数字本地化
- 失败/未登录时 recommendInfo = null,模板显示占位
3. pages.json
- easycom 加规则 "diy-recommend-*" → components-diy/diy-recommend-$1.vue
- 已有 autoscan=true 自动发现;新增条目保证 builds 稳定
4. 语言包
- lang/zh-cn/components-diy/diy-recommend.js
- lang/en-us/components-diy/diy-recommend.js
5. 验证脚本
- scripts/verify_diy_recommend.js — 6 文件三段式校验
技术细节:
- 所有 vue 文件模板里 data-component-name 与 easycom 名字强一致
- 6 组件之间互不依赖,可任意组合到任意 Diy 页面
- API 数据通过 mixin 共享,组件不重复拉取
- 占位/loading/error 三态完整
- 大部分样式沿用项目既有 home-grown SCSS 写法,不引入新依赖
- bundle 体积增量 < 30KB
i18n-check.js 通过:
zh-cn: 224 files / 2678 keys
en-us: 224 files / 2678 keys
diff: 0 ✅
未做(后续可选):
- 4 个真正 .vue 页面(此 PR 不要,改用 DIY)
- getMyQrcode 真实二维码生成
- 提现账户管理 UI
2026-07-20 11:16:20 +08:00
..
2026-06-29 15:29:24 +08:00
2026-06-26 09:09:46 +08:00
2026-07-03 11:23:05 +08:00
2026-07-13 10:22:45 +08:00
2026-06-26 17:32:35 +08:00
2026-06-26 17:32:35 +08:00
2026-07-18 16:18:35 +08:00
2025-10-30 18:23:35 +08:00
2025-10-27 15:55:29 +08:00
2026-07-01 16:50:01 +08:00
2026-07-07 14:56:13 +08:00
2026-05-25 14:19:52 +08:00
2026-07-18 11:58:09 +08:00
2025-10-27 15:55:29 +08:00
2026-07-18 10:55:39 +08:00
2026-06-30 15:29:45 +08:00
2026-07-20 08:44:15 +08:00
2026-05-08 16:09:19 +08:00
2026-07-18 16:18:35 +08:00
2026-07-13 15:45:15 +08:00
2026-04-24 15:46:42 +08:00
2026-06-30 14:04:52 +08:00
2026-07-02 16:33:22 +08:00
2026-07-15 16:24:35 +08:00
2026-06-26 13:49:26 +08:00
2026-06-11 14:55:32 +08:00
2026-07-15 09:05:50 +08:00
2026-06-26 17:32:35 +08:00
2025-10-27 15:55:29 +08:00
2026-06-26 17:32:35 +08:00
2026-07-11 18:28:36 +08:00
2026-07-15 17:55:27 +08:00
2026-07-20 11:16:20 +08:00
2025-10-27 17:43:43 +08:00
2026-06-26 13:49:26 +08:00
2026-05-08 16:09:19 +08:00
2026-07-15 15:12:59 +08:00
2025-10-27 15:55:29 +08:00
2026-07-07 11:15:07 +08:00
2026-07-07 14:56:13 +08:00
2026-06-26 13:49:26 +08:00
2026-07-18 18:19:38 +08:00
2026-07-16 11:47:29 +08:00
2026-07-18 08:34:43 +08:00
2025-10-27 15:55:29 +08:00
2026-05-08 16:09:19 +08:00
2026-06-26 13:49:26 +08:00