Commit Graph

96 Commits

Author SHA1 Message Date
098fc01623 feat(store-orders): 增强订单页支持搜索及重构Tab
- 将订单列表底部时间显示格式由只含日期改为显示至分钟的完整时间
- 门店订单页新增搜索功能,支持订单号、手机号、昵称等多字段模糊匹配
- 实现单个搜索框叠加于当前Tab内,切Tab及搜索提交自动刷新订单列表
- 调整ScrollView高度以适配搜索栏新增布局
- 优化订单Tab结构,由“全部/已完成/已关闭”改为“待处理/已完成/已关闭”
- 待处理Tab合并待付款、待发货、待核销、待收货多状态订单
- 去除原“全部”Tab,默认激活改为“待处理”Tab
- 新订单角标由“全部”Tab迁移到“待处理”Tab显示
- 搜索无结果时显示“未找到与‘xxx’相关的订单”提示
- 确保后端筛选与前端Tab状态映射一致,提升用户体验
2026-07-17 02:00:24 +08:00
37bd61ea85 feat(order): 显示订单下单时间到时分
- 修改订单列表中 OrderCard 组件底部日期显示格式
- 由原先只显示年月日改为显示到时分(YYYY-MM-DD HH:mm)
- 兼容 ISO 格式时间字符串中的 T 分隔符与空格分隔符
- 提升订单时间显示的精确度和用户体验
2026-07-17 01:39:51 +08:00
48f8c4a343 fix(store): 修复门店订单管理页操作按钮与标签筛选问题
- 调整已关闭标签参数,移除待发货状态,避免混入错误订单
- 修改金额按钮仅在未付款状态下显示,确认收款后隐藏
- 确认完成按钮改为仅在已付款状态下显示,避免过早显示
- 优化订单操作按钮显示逻辑,确保按钮状态与订单支付状态一致
2026-07-17 01:26:31 +08:00
1077b16f58 fix(user): 修复地址和购物车相关的多个问题
- 解决鸿蒙手机首次打开地图选择不显示 POI 列表,先获取当前位置传入地图
- 修正收货地址编辑接口路径,改为无 id 的 PUT /shop/shop-user-address
- 防御性合并旧地址数据,避免 null 字段覆盖初始值
- 新用户注册和登录后同步更新 UserContext 状态,确保页面刷新购物车数据
- 各页面 useDidShow 内增加从 storage 同步用户状态,解决状态不同步问题
- 优化地图选择初始化逻辑,提升用户体验
- 保证购物车、商品详情和首页登录状态及时同步更新
2026-07-17 01:07:54 +08:00
22fed3b163 feat(store): 新增线下付款确认收款功能并改为关闭订单
- 新增接口 confirmOfflinePayment 支持门店确认线下付款收款
- 修改订单操作类型,增加“确认收款”按钮供线下付款未付款订单使用
- 确认收款弹窗新增备注输入框和支付凭证上传(必填,单张)
- 调整提交逻辑,确认收款操作调用新接口,并校验凭证上传
- 订单列表页“删除订单”改为“关闭订单”,调用更新接口逻辑关闭订单
- 修改订单详情页金额明细渲染逻辑,修复0时错误显示问题
2026-07-17 00:38:57 +08:00
46298c011f fix(login): 恢复手机号快捷登录功能,避免带旧Token导致失败
- 将 login.tsx 和 register.tsx 中登录请求从封装的 request 工具改回 Taro.request
- 取消登录请求中自动注入 Authorization 头,避免携带过期/旧 token 导致认证失败
- 调整登录接口响应数据解析,适配 Taro.request 的数据结构
- fetchUserInfo 改回使用 Taro.request,手动携带 Authorization 头部
- 添加全局 getPhoneNumber 调用冷却机制,防止频繁调用导致微信报错
- 登录页新增手机授权冷却
2026-07-16 17:01:17 +08:00
ce1e2bd4dd refactor(privacy): 调整隐私授权触发逻辑,登录页取消主动预检
- 移除登录页和注册页 `useDidShow` 中主动调用 `ensurePrivacyAuthorized()` 预检的逻辑
- 登录页不再主动弹出隐私协议弹窗,由微信在用户点击手机号登录按钮时强制触发授权
- 门店订单管理页面调用 `chooseProofImage` 前新增 `ensurePrivacyAuthorized()` 预检,确保上传凭证时授权
- 修改隐私弹窗文案为更通用描述,避免误导用户以为是相册授权
- 保留全局 `onNeedPrivacyAuthorization` 通过 `PrivacyModal` 处理,适配微信基础库强制机制
- 统一门店商品管理上传使用已内置预检的 `uploadFile()` 接口调用流程
2026-07-16 01:40:16 +08:00
1b72ae37a5 feat(privacy): 修复微信隐私协议授权流程
- 新增全局隐私协议授权管理器 privacyManager,统一管理弹窗显示和授权结果
- 用 PrivacyModal 组件替代原先 Taro.showModal 实现,使用 open-type="agreePrivacyAuthorization" 的 Button 触发微信认可的隐私授权
- 在 app.tsx 中注册 onNeedPrivacyAuthorization 回调,通过 privacyManager.show 弹出隐私弹窗
- 登录和注册页面 useDidShow 钩子调用 ensurePrivacyAuthorized 函数预检隐私授权状态,避免授权失败
- 修复登录/注册接口调用,统一使用 request.post + SERVER_API_URL,修正错误接口地址及导入问题
- 新增隐私弹窗样式和逻辑,实现用户同意或拒绝后的正确流程处理
- 解决微信基础库 3.16.1+ 强制隐私协议授权导致敏感 API 调用失败问题
2026-07-16 01:11:54 +08:00
af90bd7a55 refactor(pay): 优化登录及获取 openid 逻辑
- 替换 getOpenId 为 getWxOpenId,调整参数和返回值处理
- 修正 openid 变量赋值及异常判断逻辑
- loginByOpenId 调用改为更健壮的空值判断
- 捕获 loginByOpenId 异常,优化异常处理及用户引导
- 保证登录异常不阻断支付流程,并提示用户先注册/登录
2026-07-16 00:45:01 +08:00
549e8258b6 fix(user): 修复订单入口tab错位并统一购物车角标样式
- 将订单快捷入口和我的订单tab索引改为tabIndex,修正页面跳转参数使用`?tab=`传递
- 修复因状态值与tab索引不匹配导致的订单状态页错位问题
- 更新`user.tsx`和`index.tsx`中相关订单tab配置,确保键名和逻辑一致
- 购物车入口数量角标由手写样式改为Badge组件,去除白色边框样式
- 购物车角标与用户订单图标角标样式保持一致,使用绝对定位调整位置
- `navigateTo`跳转及未登录重定向均支持传递正确的tab索引参数
2026-07-15 23:51:37 +08:00
fbaa5c32bc fix(tabBar): 修正“订单”页改为非tabBar页面的导航链接
- 将原来 switchTab 跳转“订单”页改为 navigateTo,以适配非 tabBar 页面
- 统一更新多个文件中关于订单页的跳转方式共计 6 处
- 更新 tabBar 配置,从包含“订单”页改为实际的四个 tabBar 页面
- 修正 isTabBarUrl 相关判断,去除不存在或非 tabBar 路径
- 调整多个 tabBar 判断列表,保证逻辑一致性与正确性
- 修改购物车页图片压缩宽度加入限制,优化资源加载
- 更新订单列表页注释,去除“tabBar 页”描述
- 备注遗留问题,部分积分页跳转仍用错误方式,待进一步修复
2026-07-15 23:42:27 +08:00
c12bba66eb feat(common): 抽取通用 Badge 和 ArrowRight 组件并统一替换内联角标
- 新增 Badge 组件,替代项目内多处重复数字角标代码,支持 count、max、颜色、尺寸等配置
- 新增 ArrowRight 组件,替代项目内多处 '>' 文本箭头,采用 CSS 绘制,支持颜色和尺寸配置
- user、index 和 store页面相关角标已改用 Badge 组件,简化代码和统一样式
- user 页面箭头符号替换为 ArrowRight 组件,提升图标一致性和样式可控性
- app.config.ts 调整 tabbar 配置,将“订单”页替换为“购物车”页
2026-07-15 23:29:20 +08:00
909e0fd43f fix(user): 优化我的订单角标样式和0值显示
- 角标位置从 top-0 right-2 调整为 -top-1 -right-1,使小红点更贴近右上角边缘
- 角标尺寸改为 min-w-[16px] h-4 并固定字体大小,保证单数字圆形,多数字椭圆形
- 0 的判断改用 Number(item.count) > 0,防止后端字符串形式的 "0" 被误判显示
- 0 数量时角标不再渲染,避免显示多余的“0”数字
2026-07-15 23:02:15 +08:00
ad616943c8 fix(user): 修复「我的」页订单数量统计显示为 0 的问题
- 修正 UserOrderStats 接口字段与后端 DTO 完全对齐
- getUserOrderStats() 读取后端真实字段,数值使用 Number(x) 兜底
- 「我的订单」快捷入口 count 和 status 与 OrderListStatus 枚举对齐
- localStorage 缓存 key 升级至 v3,避免旧缓存干扰冷启动渲染
- 保证所有跳转订单列表的入口传递正确 status 参数,防止跳转错误的 tab
2026-07-15 22:52:08 +08:00
501e79eed7 fix(index): 修复首页轮播图显示与高度自适应问题
- 解决首页轮播图仅显示第一张图片的问题,支持广告位多图展开显示
- 通过 flatMap 展开广告位所有图片为独立轮播项,兼容单图老数据
- 轮播图点击跳转逻辑按广告位路径保持不变
- 获取轮播容器实际宽度,计算轮播高度自适应,替代固定 160px 高度
- 根据后台广告位宽高比计算轮播图展示高度,无效数据时回退到默认高度
- 轮播容器新增类名便于 DOM 选择和尺寸测量
- 轮播图及占位区高度均采用动态计算结果,适配不同设备屏幕宽度
2026-07-15 22:30:02 +08:00
b47ea6bd90 feat(passport): 重构短信登录页并提供手机号授权降级入口
- 修复购物车数据库缺失 spec_info 字段问题,新增迁移脚本
- 登录页处理手机号授权失败,按错误类型弹窗引导用户改用短信登录
- 登录页新增长期显示的「使用短信验证码登录」入口,提升用户降级体验
- 注册页同步改造,去除微信小程序环境下短信按钮隐藏问题
- 短信登录页整体 UI 重构,弃用 NutUI 组件,采用原生组件实现
- 短信登录页新增渐变背景、浮动光圈、圆形 logo、卡片输入区设计
- 实现手机号输入、验证码发送、倒计时及登录校验逻辑全覆盖
- 短信登录页新增返回微信快捷登录链接,避免用户被困登录流程
- 新增配套样式文件,实现多重动效及分阶段入场动画
- 保证类型检查和编译无误,增加设计稿 HTML 预览文件
2026-07-15 18:55:12 +08:00
fad7c5f58e fix(cart): 修复购物车同一商品重复显示问题
- 后端新增 ShopCartService.addToCart 方法,按 user_id+goods_id+sku_id 判重合并数量
- 修改 ShopCartController.save 调用为 addToCart,避免重复插入购物车记录
- sku_id 为 null 或 0 时,判重逻辑支持 null-safe 匹配
- 提供历史数据清理脚本 sql/shop_cart_merge_duplicates.sql 合并重复购物车数据
- 更新文档记录购物车合并逻辑及相关接口说明
- 编译通过,后端服务需重启生效
2026-07-15 17:07:42 +08:00
b45a5722eb feat(order-logistics): 改造订单详情物流查看功能
- 后端 ShopOrderServiceImpl.getByIdRel 填充发货单 shopOrderDelivery 信息
- 前端新增 ShopOrderDelivery 类型,ShopOrder 接口添加 shopOrderDelivery 字段
- 物流页支持仅传 orderId 即可加载订单及发货单,无需必须传 expressNo 和 expressCompany
- 物流轨迹查询条件调整,失败时展示发货单信息,不阻塞页面
- 新增发货信息卡展示发货人、联系方式、地址、物流单号、发货时间及发货方式
- 新增收货信息卡,展示订单收货人名称、电话、地址
- 订单列表“待付款”Tab修复状态显示为“待付款”,兼容线下付款订单逻辑
- 组件OrderCard中去除isOffline判断,修正订单状态文案一致性
- 物流详情页复制功能优化,支持复制正确的物流单号
- 优化快递状态提示、时间格式化显示及页面空状态处理
- 电话联系客服按钮事件名称修正和调用逻辑优化
2026-07-15 16:38:24 +08:00
af645c058e fix(shop): 修复首页VIP价格显示及后端价格字段问题
- 首页index.tsx中接入useVipStatus,修复热销推荐价格未显示dealerPrice的问题
- 新增getHotDisplayPrice函数,VIP时显示dealerPrice及划线原价,并添加VIP金色角标
- 后端OrderCreateRequest.OrderGoodsItem增加price字段及校验,解决后端DTO缺失price字段问题
- 重构OrderBusinessService中价格校验逻辑,确保正确优先级及SKU库存校验
- 确认价格字段约定,前端传dealerPrice给后端下单
- Maven编译通过,后端需重启服务生效
2026-07-15 14:50:06 +08:00
ca6ba52993 feat(user): 修改帮助中心联系客服入口为直连微信客服
- 替换原跳转页面逻辑,使用微信 Button 组件直接调起微信客服
- 设置 Button 关键属性 openType、sessionFrom、showMessageCard、sendMessageTitle 和 onContact 回调
- 重置 Button 样式保持原视觉,调整高度、内边距和圆角
- 从 @tarojs/components 中引入 Button 组件
- 提醒微信客服 Button 在开发者工具无效,需真机预览测试
2026-07-15 14:27:15 +08:00
6dbe128ddd feat(admin): 新增后台管理端商品浏览记录页面和删除接口
- 新增后端 ShopGoodsBrowseController 的 /admin/{id} 删除接口,支持管理端删除
- 原删除接口 /{id} 继续限定当前用户权限
- 新增前端管理端页面及相关类型和接口文件,实现浏览记录的列表展示和搜索功能
- 管理后台菜单通过 sys_menu 表动态配置,新增商品浏览记录菜单项
- 前端请求后端返回数据结构规范调整,使用 res.data.code 和 res.data.data
- 后端编译通过,前端类型校验无错误
- 需后端重新部署并配置后台菜单实现功能

fix(privacy): 简化微信隐私协议弹窗逻辑

- 当用户已在登录页勾选同意隐私协议时,不再弹出授权确认窗口
- 在 wxAny.onNeedPrivacyAuthorization 中直接 resolve 同意,提升用户体验
2026-07-15 13:32:24 +08:00
3f1931e420 feat(address): 修复默认地址唯一性并新增用户浏览记录功能
- 后端新增 clearDefault 方法,保存默认地址前清除其他默认状态,避免多默认地址
- 前端地址编辑页保存成功后若为默认,调用 setDefaultAddress 触发后端清理逻辑
- useAddress hook 加入 ensureSingleDefault,前端保证地址数据中只有一个默认地址
- 新增 shop_goods_browse 表及相关实体、Mapper、服务和控制器,实现用户商品浏览记录功能
- 商品详情页接入浏览记录上报,支持登录用户浏览记录服务端同步
- 浏览历史页支持登录用户服务端分页查询,未登录用户使用本地存储兜底
- 浏览历史页支持浏览记录单条删除、清空、上拉加载和下拉刷新功能
- 调整用户中心入口,恢复浏览历史菜单项显示
- 文档和内存文件更新,包括数据库建表 SQL、接口定义和项目编译说明
2026-07-15 12:52:25 +08:00
3955e64844 fix(address-edit): 修复地址编辑页粘贴文本智能识别问题
- 优化姓名匹配优先查找标签“收件人”等后面的名字,提升识别准确率
- 清理详细地址中标签文本,去除“收件人”“手机号码”“所在地区”“详细地址”等冗余字段
- 保留街道及详细地址完整信息,避免误删有效内容
- 类型定义中新增 country,调整 isDefault 类型为 boolean,增加 address 字段
- 使用 Python 测试验证解析效果,确保姓名、电话、省市区和详细地址准确提取
- 通过类型检查无误,提升代码健壮性和维护便利性
2026-07-15 11:10:29 +08:00
81324cbb82 fix(index): 修复首页铃铛权限漏洞和非门店用户新订单提醒
- 针对铃铛红点和计数,改为仅门店角色可见
- 新订单提醒回调增加角色校验,非门店不弹Toast和震动
- 订单管理页增加访问控制,非门店自动跳回防止越权访问
- 保留消息点击事件中对角色的原有区分逻辑
- 弹窗宽度调整及登录同步逻辑未变动
2026-07-15 03:24:53 +08:00
ad3c209fe5 feat(order): 优化订单备注结构及线下付款状态显示
- 门店订单修改金额时,修改原因从追加 comments 改为保存 merchantRemarks 字段
- ShopOrder 和 OrderCreateRequest 接口新增 buyerRemarks 和 merchantRemarks 字段,实现订单备注字段分离
- 结算页由 comments 注入变更为 buyerRemarks,门店订单列表新增买家备注展示块
- 修复线下付款订单状态显示:统一线下付款(payType=9)与货到付款(payType=8)的待发货状态显示
- 取消按钮逻辑优化,已付款订单不显示取消按钮,文案由"关闭订单"改为"取消订单"
- 订单列表和详情页弹窗标题及提示文案更新,确保状态描述准确,提升用户体验
2026-07-15 03:07:35 +08:00
e47a0d3d3e feat(shop): 优化VIP价格支持及线下付款兼容
- 结算页新增线下付款异常友好提示,避免支付配置中appid缺失错误
- 后端修复支付类型判断,防止线下付款仍试图创建微信支付订单
- 结算页默认支付方式调整为线下付款,货到付款选项注释
- 新增门店订单“修改金额”功能,支持弹窗输入新金额和修改原因
- 订单修改支持追加操作记录,接口复用updateShopOrder,无需新接口
- 重构多处页面和组件,使用响应式useVipStatus替代同步isVipMember缓存
- 新增OrderGoodsItem.price字段,下单时传VIP dealerPrice确保价格准确
- 购物车、商品详情、分类页、SkuSelector、商品卡片等支持动态VIP价格展示
- 修改购物车上下文calcPrice函数,响应VIP状态变更自动更新价格显示
- 提升前端VIP状态管理一致性,防止过期缓存导致VIP特权价格显示异常
- 验证构建通过,后端服务重启后生效线下付款修复和订单修改功能
2026-07-15 02:45:19 +08:00
747a2a1d3a feat(auth): 优化隐藏登录弹窗点击逻辑和样式
- 将点击步数提示从第4次调整到第6次触发,增强用户体验
- 弹窗宽度由320px调整为340px,更加合理显示内容
- 弹窗布局对齐sms-login.tsx,验证码输入和按钮布局调整,修复小程序Button显示问题
- 登录按钮样式改用className设置宽度和圆角,取消block和shape属性
- 点击版权信息累计11次弹出登录弹窗,未达次数显示剩余步数提示
- 登录成功后同步React登录态,保持状态一致
2026-07-15 01:45:45 +08:00
38a7b4320d refactor(user): 优化开发者登录弹窗及点击交互逻辑
- 移除点击步数提示和震动反馈,改为静默计数,点击11次后弹出登录弹窗
- 将弹窗宽度从300px调整为320px,增加内边距提升视觉效果
- 登录按钮由block属性改为style设置宽度100%,确保按钮样式一致
- 优化弹窗标题和关闭按钮样式,提高界面层次感
- 调整手机号输入框和布局间距,提升整体排版协调性
2026-07-15 01:40:36 +08:00
19ca568d60 feat(user): 添加关于页隐藏开发者登录功能
- 在底部版权信息连续点击11次时弹出开发者登录弹窗
- 登录方式采用手机号加短信验证码,复用现有登录API
- 点击计数器使用useRef实现,3秒无操作自动重置
- 第4次及以后点击显示剩余步数提示,前3次触发轻震动反馈
- 登录成功后同步React登录态,关闭弹窗并重置表单
- 弹窗中使用NutUI组件,实现验证码发送和倒计时功能
2026-07-15 01:25:04 +08:00
1e4549095a fix(shop): 调整结算页默认支付方式为线下付款
- 注释掉了货到付款(id=8)支付方式选项
- 将默认支付方式由货到付款改为线下付款(id=9)
- 更新支付方式相关状态默认值为线下付款
- 确保支付方式选项列表仅保留线下付款项
2026-07-15 00:50:24 +08:00
6dafbf47c9 fix(privacy): 修复微信隐私协议chooseImage报错问题
- 调整requiredPrivateInfos字段,仅保留位置类API白名单
- 在uploadFile中添加ensurePrivacyAuthorized预检逻辑,避免权限缺失导致失败
- 在app.tsx的useLaunch生命周期中注册Taro.onNeedPrivacyAuthorization回调,实现自定义协议弹窗交互
- 提示需在小程序管理后台配置“开发者收集你的相册/摄像头”声明,避免首次调用弹窗
- 警告requiredPrivateInfos不可添加非位置类API,防止app.json解析失败
- 说明直接调用Taro.chooseImage的页面需单独添加预检措施
2026-07-14 23:46:29 +08:00
a353bc9ea8 fix(privacy): 修复微信隐私协议导致的chooseImage错误
- 在 app.config.ts 的requiredPrivateInfos中添加chooseImage和chooseMedia权限声明
- 在上传文件接口uploadFile中调用ensurePrivacyAuthorized函数,预先检查用户隐私授权
- 在 app.tsx 的 useLaunch 钩子中注册 onNeedPrivacyAuthorization 回调,自定义弹窗提示用户协议
- ensurePrivacyAuthorized兼容旧版本微信基础库,未提供隐私授权函数时默认放行
- 更新文档说明隐私协议错误码errno:112的原因及修复方案
- 提醒绕过uploadFile调用chooseImage的页面需单独添加隐私授权预检机制
2026-07-14 23:26:49 +08:00
c870e75b3b feat(auth): 实现禁用用户拦截机制防止禁用用户访问
- 新增工具函数 isUserDisabled 判断用户是否被禁用
- 新增 blockDisabledUser 函数拦截禁用用户,清除登录态弹窗提示并跳转登录页
- UserContext 启动时异步校验用户状态,禁用则拦截并退出
- UserContext 的 refreshUser、syncFromStorage、loginUser 接口均增加禁用检查
- 登录相关 API 登录前校验用户状态,禁用时拒绝登录
- 登录页面保存登录态前校验,禁用用户弹窗提示阻断登录流程
- 用户状态定义:status 0 为正常,1 为禁用
- 新增用户管理页支持查询和管理用户状态
- 文档中补充用户状态与禁用机制说明及拦截层级介绍
2026-07-14 23:11:29 +08:00
dc123d79a2 fix(about): 更新公司简介及相关显示内容
- 将公司名称由“玉林市玉州区鑫龙家电经营部”更新为“鑫龙商贸电器”
- 修改头部品牌显示文字对应新公司名称
- 更新公司简介内容,体现新的品牌及业务范围
- 更改底部版权信息,匹配新公司名称
2026-07-14 23:02:12 +08:00
4c059522a2 feat(store): 新增门店中心用户管理页面
- 创建用户管理新页面,支持分页查询用户列表
- 实现昵称/手机号搜索及全部/正常/已禁用Tab筛选
- 增加用户详情弹窗展示详细信息
- 添加禁用/启用用户功能及确认弹窗
- 路由注册新增用户管理路径
- 门店中心首页添加用户管理入口卡片,蓝色主题带👥图标
- 头像支持图片压缩展示,支持无头像显示默认图标
- 优化用户状态显示,颜色区分正常与已禁用状态
- 详情弹窗覆盖手机号、真实姓名、性别、会员等级、余额、积分、邮箱等信息
- 支持列表和详情弹窗中用户状态同步更新
2026-07-14 23:00:09 +08:00
711e588cfe feat(store): 新增门店商品管理及订单图片修复
- 门店商品页新增商品新增功能,包括名称、分类、图片、价格、库存等信息录入
- 支持新增商品轮播图上传、删除及表单校验
- 获取当前登录店员门店ID并绑定新增商品,实现门店商品的创建
- 门店订单页修复商品图片字段,调整字段名为模型匹配的image、spec和totalNum
- 订单页商品图片添加压缩处理,优化图片展示尺寸与加载速度
2026-07-14 22:50:12 +08:00
8d6c0fda69 feat(order): 在待发货订单列表增加关闭订单功能
- 在 OrderCard 组件中新增 onCloseOrder 可选回调属性
- 待发货且未取消的订单显示“关闭订单”按钮
- 点击按钮阻止事件冒泡,避免触发卡片跳转
- 列表页实现 handleCloseOrder,弹窗确认后调用 updateShopOrder
- 关闭订单后显示成功提示并刷新当前列表数据
- 复用订单详情页取消订单的状态更新逻辑,保持一致性
2026-07-14 22:30:04 +08:00
f878ea146e feat(order): 在待发货订单列表增加关闭订单功能
- 在 OrderCard 组件中新增 onCloseOrder 可选回调属性
- 待发货且未取消的订单显示“关闭订单”按钮
- 点击按钮阻止事件冒泡,避免触发卡片跳转
- 列表页实现 handleCloseOrder,弹窗确认后调用 updateShopOrder
- 关闭订单后显示成功提示并刷新当前列表数据
- 复用订单详情页取消订单的状态更新逻辑,保持一致性
2026-07-14 22:25:33 +08:00
dfbcbcf615 feat(payment): 新增线下付款方式及相关订单状态支持
- 支付页面新增线下付款选项,支持微信转账付款方式
- 订单流程新增线下付款待确认(offline_pending)阶段
- 订单详情与订单卡片显示线下付款状态及提示信息
- 支付接口和模型增加线下付款支付方式(payType=9)支持
- 订单列表页区分线下付款待确认与待收款状态
- 地址编辑页修复智能识别按钮无法点击问题,调整布局避免被Textarea遮挡
2026-07-14 22:15:31 +08:00
44b3cb10be refactor(shop): 简化商品详情页客服功能
- 用户反馈客服功能复杂,改为使用微信原生 open-type="contact" 按钮
- 删除 handleContactService 函数及页面跳转逻辑
- 替换客服图标组件为 Button,使用 openType="contact" 触发联系客服
- 保留客服页面但不再从商品详情页跳转
- 提示 open-type="contact" 需真机预览测试,开发者工具无反应
2026-07-14 21:03:26 +08:00
1bab629c83 fix(navBar): 修复导航栏白屏问题及删除无用客服页代码
- NavBar 组件中移除 useNavigate 钩子,改用 Taro.navigateBack 解决 Taro 4.1.11 不支持 useNavigate 导致白屏的问题
- 删除未注册且重复引用的客服页面源码及配置文件,避免热更新和编译冲突
- 全局搜索确认无其他 useNavigate 和 useReachBottom 引用
- 通过 TypeScript 检查确保修改文件无错误
2026-07-14 20:58:49 +08:00
889a0f983e fix(customer-service): 修复在线客服功能使其可用
- 在微信客服按钮补全必要属性 sessionFrom、onContact、showMessageCard 和 sendMessageTitle
- 将按钮样式由 Tailwind 类改为内联样式,避免 border-0 干扰原生按钮渲染
- 添加真机预览测试提示,解决开发者工具无法使用问题
- `ShopChatMessage` 和相关接口新增 conversationId 字段支持消息会话关联
- 消息发送时补全 conversationId 和发送人 ID,保证消息关联准确
- 将会话列表中引用的不存在字段 lastMessage 替换为 content
- 移除无用的 useReachBottom,改用 ScrollView 的 onScrollToLower 事件加载历史消息
- 删除未使用的 scrollToBottom ref
- 增加条件守卫避免非历史展开时加载更多消息
2026-07-14 20:49:28 +08:00
b60e5c976a fix(order): 修复订单列表页下单后不自动刷新的问题
- 新增 Taro.useDidShow 钩子处理 tabBar 页面显示时的刷新
- 使用 isFirstShow 跳过首次显示,防止重复加载
- 切换 tab 时重置所有 tab 的 initialized 状态
- 下单后立即刷新当前 tab 订单列表,确保显示最新数据
- 解决 switchTab 不重新挂载导致订单数据不刷新的根因
2026-07-14 19:15:27 +08:00
f92e399d72 fix(shop): 修复商品详情页孤立“0”渲染问题
- 修正赚取积分、重量和销量条件渲染,避免数字0被渲染成文本节点
- 赚取积分判断改为仅判断数值是否大于0,防止0泄漏
- 重量同样改为判断数值大于0避免显示无效数据
- 销量为0时隐藏销量信息,符合用户需求
- 调整加购按钮尺寸,使其视觉更协调
2026-07-14 03:05:14 +08:00
b7bdefba96 fix(shop): 修复商品详情页孤立“0”渲染问题
- 修正赚取积分、重量和销量条件渲染,避免数字0被渲染成文本节点
- 赚取积分判断改为仅判断数值是否大于0,防止0泄漏
- 重量同样改为判断数值大于0避免显示无效数据
- 销量为0时隐藏销量信息,符合用户需求
- 调整加购按钮尺寸,使其视觉更协调
2026-07-14 03:01:54 +08:00
f159505ce2 feat(shop): 使用白色购物车图标替换文本图标
- 引入了 base64 格式的白色购物车 SVG 图标常量
- 将购物车按钮内的文本符号替换为可自适应大小的 Image 组件
- 保持图标外观和布局一致,增强视觉统一性
- 提升图标加载性能,适配绿色浮动按钮主题
2026-07-14 02:50:48 +08:00
a37f7a5d4d feat(shop): 添加商城列表页浮动购物车按钮
- 在 shop 页面右下角添加固定定位的绿色圆形购物车按钮
- 按钮右上角显示购物车商品数量角标,超过 99 显示为 99+
- 点击按钮跳转到购物车页面,非 tabBar 页面
- 使用 useCartContext 的 totalCount 实时更新商品数量显示
- 注释掉用户页面 “我的钱包” 入口,暂时隐藏该功能
2026-07-14 02:48:25 +08:00
70af5426e8 feat(shop): 添加商城列表页浮动购物车按钮
- 在 shop 页面右下角添加固定定位的绿色圆形购物车按钮
- 按钮右上角显示购物车商品数量角标,超过 99 显示为 99+
- 点击按钮跳转到购物车页面,非 tabBar 页面
- 使用 useCartContext 的 totalCount 实时更新商品数量显示
- 注释掉用户页面 “我的钱包” 入口,暂时隐藏该功能
2026-07-14 02:31:49 +08:00
b8d2325ff9 fix(shop): 购物车页面进入不刷新问题
- 购物车页面添加 useDidShow 钩子,页面显示时自动刷新购物车数据
- 商品列表页和分类页改用 CartContext 的 addItem 方法添加商品
- 移除直接调用 addToCart API,避免购物车状态不同步
- 解决从商品列表页或分类页加入购物车后进入购物车页面商品不显示的问题
2026-07-14 02:25:12 +08:00
7a14272fe8 fix(order): 修复订单列表页登录后仍看到别人订单问题
- 使用 userIdRef 避免闭包过期,确保加载订单时 userId 正确
- loadOrders 函数开头增加硬拦截,没有 userId 则不加载订单
- useEffect 中添加 user?.userId 判断,等待有效 userId 再加载
- useEffect 依赖数组加入 user?.userId,userId 变化时重新加载订单

feat(index): 首页铃铛接入新订单轮询与提示

- 登录后获取店员身份,使用 isClerkRef 避免闭包问题
- 通过 useNewOrderDetector 每30秒轮询门店订单,仅店员有效
- 新订单时触发震动和提示,铃铛数字角标动态显示新订单数
- 铃铛点击区分店员和普通用户,店员跳门店订单页并清除未读
- 页面展示时刷新店员身份,确保身份状态及时更新
2026-07-14 02:05:26 +08:00