Collect mini-user/shop/partner JS errors via POST /common/client-errors, persist logs, and push fatal/error to WeCom.
Co-authored-by: Cursor <cursoragent@cursor.com>
Open weappOrderConfirm in mini-user so users confirm in-app instead of
service notice; verify via get_order before completing. Show operator/remark
on admin order status timeline.
Co-authored-by: Cursor <cursoragent@cursor.com>
Resolve city once then fetch stores once; skip refetch when city unchanged. Show masked phone under nickname when available.
Co-authored-by: Cursor <cursoragent@cursor.com>
City partner storeCount jumps to /stores?partnerId=; normalize empty/null text so usage rule is not saved as literal "null.
Co-authored-by: Cursor <cursoragent@cursor.com>
Partner H5 no longer requires store phone SMS on create; qualification overlay uses height auto with widthFix.
Co-authored-by: Cursor <cursoragent@cursor.com>
Wire WeChat share on home and benefit tabs; serve mine qualification
from OSS; mask phones on admin users and wechat bindings pages.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add benefitUsageRule on store create/edit (HQ + partner) and C-end detail between intro and env gallery.
Co-authored-by: Cursor <cursoragent@cursor.com>
Store create/edit on HQ and partner can pick coords via Tencent locpicker; client-config exposes TENCENT_LBS_KEY; seed empty system settings from env.
Co-authored-by: Cursor <cursoragent@cursor.com>
HQ store detail can set coordinates and open Baidu Map search by name/address; admin update API persists lat/lng.
Co-authored-by: Cursor <cursoragent@cursor.com>
Support 1-2 hour segments and optional avgPrice; show bank settlement on HQ store detail; enforce pickup min 2 bottles; Chinese order statuses; block shop reopen after permanent close.
Co-authored-by: Cursor <cursoragent@cursor.com>
Remove secrets file from the index (keep local). Mine page can choose avatar and nickname via WeChat components.
Co-authored-by: Cursor <cursoragent@cursor.com>
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>
Production builds were baking localhost:3000 after the local-dev default change, causing failed to fetch on product list.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep back buttons and header layout. mini-user only hides titles on H5; partner/shop hide .app-page-title and legal titles; shared PageHeader defaults showTitle=false.
Merge used to drop wxOpenId so OAuth created a new guest without phone every time. Now migrate WeChat identity, recover legacy merged openIds, return accountMerged and force page reload, and only soft-prompt when phone is truly unbound.