Appearance
小程序个人记账 — 用户范围与 openid
与仓库 Cursor 规则 .cursor/rules/miniapp-bookkeeping-user-scope.mdc 一致(改代码以规则为准)。开发索引见根目录 AGENTS.md。
产品约束(勿回退)
- 进入小程序(微信):
wx.login→ openid →loginByOpenid换 JWT;不要求手机号/账号密码。 - 首页「常用」记账入口(记一笔、账本管理、周/月/年/自定义统计):不得因未绑定手机/邮箱拦截;不得在无 JWT 时
reLaunch到登录页。 - 数据范围:仅 JWT
sub(用户主键);禁止X-Site-Id、siteId、assertSiteScope参与pages/bookkeeping/**与POST /sys/bookkeeping/*。
实现要点
| 项 | 位置 |
|---|---|
| 会话 | miniapp/src/utils/bookkeeping-session.ts |
| 首页入口 | pages/index/index.vue → ensureBookkeepingSession |
| 请求头 | postApiShouldAttachSiteHeader:/sys/bookkeeping/ 不附站点头 |
| 手机门闸 | credential-gate.ts:isBookkeepingPath 豁免 |
| 401/过期 | 微信端回首页换 openid,非账号登录页 |
页面路径
/pages/bookkeeping/home(mode=record|manage)ledger-select、ledger-settings、ledger-detail、amount-input、entry-formstats、stats-custom- 预算:账本设置页设置;
POST /sys/bookkeeping/budget/* - 周期账:
/pages/bookkeeping/recurring-rules;POST /sys/bookkeeping/recurring/*;首页 onShow 调apply-due - 工资发放同步:站点结算
mark-paid后自动记收入/支出,见 bookkeeping-settlement-paid-sync.md
与其它功能区分
工人记工、入库、Acc 站点业务仍按站点与 RBAC;勿把 useMiniappPageGate / 站点逻辑套在 bookkeeping 上。