Files
dukang/apps/mini-user
jacy 5c55d3c385
CI / verify (pull_request) Has been cancelled
fix(mini-user): persist bind-phone session and stop login bounce
Phone bind discarded the new JWT after account merge, so the next page 401'd back to login. Also harden 401 race, location deny cache, unpaid repay CTA, and finishLoginNavigate.
2026-07-15 21:10:42 +08:00
..
2026-07-12 14:45:57 +08:00
2026-07-12 14:45:57 +08:00
2026-07-14 15:16:41 +08:00
2026-07-12 14:45:57 +08:00
2026-07-12 15:30:58 +08:00
2026-07-12 14:45:57 +08:00

@dukang/mini-user

杜康好客 C 端微信小程序(Taro 4 + React)。UI 对齐 apps/h5-user

启动

# H5 预览(联调 API
pnpm --filter @dukang/mini-user dev
# → http://localhost:5177

# 微信小程序
pnpm --filter @dukang/mini-user dev:weapp
# 用微信开发者工具打开 apps/mini-userminiprogramRoot = dist/

API 地址

环节 文件 说明
编译注入 config/index.tsdefineConstants.TARO_APP_API_ORIGIN 默认 https://dkapi.runxian.top;可用环境变量 VITE_API_TARGET 覆盖
运行时拼装 src/lib/api.tsresolveApiBase() {origin}/api/v1

微信登录 invalid code

wx.login 的 code 只能由与小程序 appid 匹配的后端 jscode2session 兑换。

当前值
小程序 appid project.config.jsonwxda31c8e8e85051e7
后端须配置 WX_MINI_APP_ID / WX_MINI_APP_SECRET(与上表一致)

本地联调(不接真实微信)API 指到本机且开启 Mock

# 终端 1
pnpm dev:api   # server/.env 保持 MOCK_WECHAT=true

# 终端 2
$env:VITE_API_TARGET="http://localhost:3000"; pnpm dev:mini-user:weapp

连远程 API:在 dkapi.runxian.top 所在服务器配置 WX_MINI_APP_ID=wxda31c8e8e85051e7 及对应 AppSecret,并部署含 code2Session 小程序凭证逻辑的后端。

页面结构(18 页)

Tab:首页 / 门店 / 好客权益 / 我的

栈页:商品详情、门店详情、确认订单、收银台、订单列表/详情、地址列表/编辑、客服、权益明细、核销/核销码/成功、登录

布局约定

  • 统一 PageShelltab / scroll / sub / plain)注入刘海屏 CSS 变量
  • Tab 顶栏:TabMainHeader;详情滚动顶栏:PageNavBar;子页:SubPageHeader
  • 样式:src/styles/*.css 按业务域拆分,入口 app.css

约定

  • X-Client-App: USER_MINI
  • 底栏原生 tabBar + PNGweapp);H5 内嵌 UserTabBar
  • 交易/核销页面以 UI 壳为主,部分 API 可后续加深