feat: refine profile and home UI with dynamic fortune rules
This commit is contained in:
1 parent
869376979c
commit
4608dbd5cf
59 files changed
+3424
-1347
No files matched your search
@@ -0,0 +1,51 @@
|
||||
# 我的生肖
|
||||
|
||||
按用户确认,以春节(农历正月初一)换生肖,使用公历生日经 `lunar-typescript` 转为农历,读取 `getYearShengXiao()`。不使用公历年份模12,也不使用以立春为界的八字年柱。
|
||||
|
||||
`src/utils/zodiac.ts` 只接收生日,返回十二生肖名称或空值。缺失或无效生日不默认展示兔子。支持1900至2100年,和当前元素报告的生日范围一致。
|
||||
|
||||
“我的生肖”入口与弹窗共用同一个 `zodiac` 结果及 `ZodiacMascot` 组件。十二张图标为本地256×256透明PNG,矢量源保存在 `scripts/render-zodiac-icons.cjs`。通过 `sharp` 可重新生成,运行时无需依赖 `sharp`。
|
||||
|
||||
页面返回时通过现有 `GET /api/user/profile` 获取最新生日,生日变化后重新计算生肖。保存生日沿用 `PUT /api/user/profile`,不新增生肖接口。图标、弹窗标题和“属X”名称随结果一起变化;隐藏生日开关不影响计算。
|
||||
|
||||
## 验收
|
||||
|
||||
1. 在开发者工具使用测试账号,进入“我的”,点击“我的生肖”,入口及弹窗应显示同一种动物,弹窗有对应“属X”名称。
|
||||
2. 修改测试账号生日为2024-02-09并保存,返回应显示兔;改为2024-02-10并保存,返回应显示龙。
|
||||
3. 2024-02-05在立春之后但春节之前,仍应为兔;避免把“我的元素”的节气年柱与日常生肖混用。
|
||||
4. 对缺失或非法生日,入口显示“待完善”,弹窗提示完善生日并提供编辑入口。
|
||||
5. 点击遮罩或“知道了”关闭弹窗,进入资料编辑与生肖按钮保持独立。
|
||||
|
||||
自动验证:`npm run test:zodiac`,覆盖春节前后、十二生肖周期、非法生日、资料改变和图标资产完整性。H5和微信小程序均需构建通过。
|
||||
|
||||
## 动态生肖周运:合冲简化规则 v1
|
||||
|
||||
用户已确认采用纯前端合冲关系计算,并要求公开权重与判断依据。输入为保存后的生日和北京时间当前日期。生日先按春节换年得到生肖,再对应子丑寅卯辰巳午未申酉戌亥的出生年支。按北京时间本周一至周日,用历法库计算七天日支;不是按公历日期模12伪造日支。
|
||||
|
||||
每天按以下互斥关系计一次分:
|
||||
|
||||
| 关系 | 分数 | 对应关系 |
|
||||
| --- | --- | --- |
|
||||
| 六合 | +2 | 子丑、寅亥、卯戌、辰酉、巳申、午未 |
|
||||
| 三合同组 | +1 | 申子辰、亥卯未、寅午戌、巳酉丑,同组且不同支 |
|
||||
| 六冲 | −2 | 子午、丑未、寅申、卯酉、辰戌、巳亥 |
|
||||
| 相害 | −1 | 子未、丑午、寅巳、卯辰、申亥、酉戌 |
|
||||
| 平常 | 0 | 其余关系,包括相同地支 |
|
||||
|
||||
六合与六冲表复用历法库 `LunarUtil.HE_ZHI_6` / `LunarUtil.CHONG`。三合同组只是出生年支与日支两支间的助力关系,不声称完整三合成局。不纳入刑、破或八字整体。权重与以下阈值是本产品的简化娱乐参考规则,不是统一命理标准。
|
||||
|
||||
七天分数求和:≥2为“顺势”,≤−2为“谨慎”,−1至1为“平稳”。正分日列为助力日,负分日列为留意日。摘要由本周实际天数、周状态及其对应建议组成;同一生肖同周稳定,不随机。不同生肖/周次可能同为“平稳”,不保证每次切换都换一个状态。
|
||||
|
||||
弹窗展示周一/周日的完整公历日期、状态、摘要、助力/留意日期,可展开权重、周总分与七天日支/关系/分数。明确标注“仅作传统文化娱乐参考”。普通建议限于沟通、协调、确认安排,不生成健康或投资预测。
|
||||
|
||||
页面显示、弹窗打开时检查北京时间日期;弹窗保持打开时在北京时间零点刷新,跨周后重新计算。没有后端报告接口,没有持久化周运结果。无效生日不给出周运;无效设备日期显示日期检查提示。
|
||||
|
||||
### 周运验收
|
||||
|
||||
1. “我的”→“我的生肖”,确认显示本周周一至周日区间、生肖、动态摘要和日期。
|
||||
2. 展开“判断依据”,逐日分数合计应等于周总分;总分对应状态应与上述阈值一致。
|
||||
3. 修改生日跨生肖,检查图标、名称、七天关系和摘要一起更新;同生肖的不同生日在同周允许结果相同。
|
||||
4. 按北京时间周日/周一检查周区间,跨年周应保留完整年份。不要用UTC日期替代北京时间日期。
|
||||
5. 小屏下滚动查看详细依据,“知道了”按钮始终可用;遮罩仍可关闭弹窗。
|
||||
|
||||
测试:`npm run test:zodiac-weekly`,覆盖所有地支关系及对称性、北京时间零点、同周稳定、跨年/跨周、十二生肖结果差异、分数复算、非法输入。
|
||||
Reference in new issue
Block a user