- 删除 NutUI Address 相关导入、状态及地区数据转换逻辑 - 新增派生 regionValue 用于绑定微信原生 Picker 的 value - 将 handleRegionChange 调整为处理微信 Picker 的事件 - 将所在地选择 UI 修改为微信原生 Picker 包裹的视图结构 - 地图定位失败使用弹窗提示,引导用户手动选择或重试 - 移除手动打开地区选择器的函数及 NutUI 组件 - 保留 RegionData 用于文本智能识别解析 - 编译通过,提升在无地图或无权限环境下的地区选择稳定性
2.7 KiB
2.7 KiB
项目长期记忆
项目概述
- 项目名:xinlong-shop-taro(Taro 微信小程序商城)
- 技术栈:Taro + React + TypeScript + Tailwind CSS
- 后端 API 前缀:
/shop/、/api/ - 门店店员身份判断:通过
getMyClerk()API (/shop/shop-store-user/my) 返回值判断 - VIP/分销商申请记录表:
ShopDealerApply,状态码 10待审核/20通过/30驳回
VIP 会员机制
- 用户在
vip-upgrade页面提交门店名称和地址申请 - 门店店员在
vip-review页面审核(通过/驳回) - VIP 会员特权:商品显示
dealerPrice价格,下单使用该价格结算 - VIP 状态判断:
isVipMember()从 localStorage 缓存读取,checkAndCacheVipStatus(userId)异步更新
商品价格字段约定
product.price- 到手价(主价格)product.salePrice- 市场价(划掉的)product.dealerPrice- VIP 会员专享价product.memberStorePrice- 会员价
关键文件位置
- VIP 工具:
src/utils/vip.ts - VIP Hook:
src/hooks/useVipStatus.ts - VIP 审核页:
src/pages/user/vip-review/index.tsx - VIP 升级页:
src/pages/user/vip-upgrade/index.tsx - 门店中心:
src/pages/store/center/index.tsx
订阅消息
- 模板 ID:
sh1K9iK7vZjebUNFu6OsMsnsJxm4whThWGrhN7I4zVg(交易提醒) - 字段:订单号(
character_string1)、商品名称(thing4)、联系人(thing10)、联系电话(phone_number7)、送货地址(thing8) - 场景说明:下单提醒
- 新订单检测 Hook:
src/hooks/useNewOrderDetector.ts(30秒轮询,页面隐藏暂停)
分享 / 朋友圈能力(2026-07-13 接入)
- 统一封装:
src/hooks/useShare.ts(useShare({title, path?, query?, imageUrl?}),内部一次注册useShareAppMessage+useShareTimeline,并自动在 path/query 追加inviter=${当前用户id}做裂变归因;isTimelineSinglePage()判断朋友圈单页模式 scene===1154) - 海报组件:
src/components/SharePoster/index.tsx(Canvas 2D 绘制封面+标题+价格+小程序码,返回临时图路径作 imageUrl) - 小程序码接口:
src/api/share.tsgenerateShareCode(page, inviterId)复用generateMiniProgramCode(scene 用uid_${inviterId},page 透传但后端需读取转发才生效) - 裂变约定:分享链接 query 用
inviter,与src/utils/invite.ts的parseInviteParams读取字段一致 - 已接入页面:商品详情、积分商品、拼团、秒杀、活动、赛事(带 canvas 海报);邀请下级、分销推广、升级VIP、分享赚佣金(仅 enableShare + useShare,无海报)
- 注意:tabBar 4 页(首页/分类/订单/我的)不支持朋友圈分享;朋友圈分享必须真机测试(开发者工具无预览)