2.8 KiB
Why
The mall top bar's "Mobile" (手机端) entry is a dead link to / and no mobile client exists at all: the entire mobile journey — browse, buy, track orders, after-sale, coupons, wallet — is missing. tigshop's uniapp client cannot be adopted because its wx.* mini-program capabilities have no portable equivalent, so only its information architecture is worth migrating, rebuilt as a first-party web client.
What Changes
- Add
apps/mobile, a standalone Nuxt3 H5 app served on port 3003 that reuses@vmall/sharedcontracts andtheme.css. No backend capability changes: every surface consumes existing APIs through the shared client; any API gap is recorded as a dependency, not implemented here. - Ship the migrated information architecture: home content floors, category browse, search, product detail, cart, checkout, order list/detail, after-sale entry (reusing the
aftersaleAPI fromadd-aftersale-refunds), coupon center, wallet (reusing thewalletAPI fromadd-wallet-settlement), "My" center, sign-in and register. - Wrap the app in a custom bottom tab bar (Home / Category / Cart / My) with safe-area adaptation and mobile interaction conventions (pull-to-refresh, sign-in redirect that returns to the origin).
- Keep the session contract identical to the mall: same
vmall.token/vmall.userstorage, Bearer header, andme()validation semantics. - Point the mall top-bar "Mobile" entry at the H5 app instead of the dead
/link.
Capabilities
New Capabilities
frontend-mobile: Standalone Nuxt3 H5 storefront — page inventory and navigation structure, pure consumption of@vmall/shared(no app-local API wrapper), mobile shell/interaction conventions (tab bar, safe area, pull-to-refresh), and a token contract identical to the mall's.
Modified Capabilities
None. Backend capabilities are reused as-is (after-sale and wallet surfaces consume aftersale and wallet from add-aftersale-refunds and add-wallet-settlement), and frontend-mall behavior changes only in the single top-bar link target.
Non-goals
Mini-program and native APP builds, WeChat login/payment/sharing/subscription messages, IM customer service, PWA offline mode, push notifications, and a responsive retrofit of apps/mall are all excluded. Mobile-optimizing admin or shop-admin is excluded. Dedicated address-book management, reviews/ratings, and any new backend endpoint are excluded.
Impact
Adds one new pnpm workspace app (apps/mobile, Nuxt3, port 3003) consuming @vmall/shared and theme.css, plus a one-line link fix in the mall top bar. Deliberately no migrations, no Rust modules, and no shared-contract changes; after-sale and wallet pages depend on add-aftersale-refunds and add-wallet-settlement being archived and degrade to localized "Coming soon" placeholders until then.