Files
dukang/apps/mini-user
jacy 14b867a3a5
CI / verify (pull_request) Has been cancelled
fix(auth): show user agreement before login actions
Quick login required agreement without a checkbox; move the consent row above CTAs across partner/shop/user/mini login pages so it stays visible on short screens.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 10:20:32 +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 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 本地默认 http://localhost:3000NODE_ENV=production 默认 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 → localhost:3000),并开启 Mock

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

# 终端 2
pnpm dev:mini-user          # H5 预览 :5177
# 或
pnpm --filter @dukang/mini-user dev:weapp

连远程 API

$env:VITE_API_TARGET="https://dkapi.runxian.top"; pnpm --filter @dukang/mini-user dev

并在 dkapi.runxian.top 所在服务器配置 WX_MINI_APP_ID=wxda31c8e8e85051e7 及对应 AppSecret。

页面结构(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 可后续加深