Files
guilixu-admin/.workbuddy/memory/2026-07-15.md
赵忠林 a59d428e78 feat(shopOrder): 新增确认线下收款上传支付凭证功能
- 重构确认线下收款为独立组件 OfflinePaymentModal.vue
- 新增支付凭证字段 paymentVoucher,支持图片上传与预览
- 上传限制为 jpg/png 格式,单张图片最大 10MB
- API confirmOfflinePayment 新增 paymentVoucher 参数
- 页面移除原 Modal.confirm 逻辑,改为调用新组件弹窗
- 修复 buyerRemarks 和 merchantRemarks 类型错误
- 后端 shop_order 表待新增 payment_voucher 字段和接口支持
- 同步更新相关接口模型与视图交互逻辑

feat(shopGoodsBrowse): 新增用户商品浏览记录管理功能

- 新增 ShopGoodsBrowse 接口模型及分页查询、删除接口
- 前端新增浏览记录管理页面,实现列表展示和删除
- 支持基于用户ID、商品ID、浏览来源和日期范围搜索
- 列表显示商品图片、名称、价格、浏览次数及时间等信息
- 添加图片预览和操作确认弹窗,保障操作体验和安全
2026-07-15 13:30:14 +08:00

4.9 KiB
Raw Blame History

2026-07-15

修复 shopOrder 页面默认待发货tab数据不正确

  • 根因:activeKey 默认为 'undelivered',但 datasource 函数只设了 where.type = 0,没有设 statusFilterstatusFilter 只在用户点击 tab 触发 onTabs 时才设置。所以页面初次加载时查的是全部订单而非待发货订单。
  • 修复:提取 getStatusFilterByTab(key) 公共映射函数,在 datasource 中当 where.statusFilter 未设置时从 activeKey 自动推导。onTabs 也简化为复用同一函数。
  • 文件:src/views/shop/shopOrder/index.vue

Dashboard 订单总数点击跳转支持指定 tab

  • Dashboard 中"订单总数"/"总营业额"跳转链接改为 /shop/shopOrder?tab=all"待发货订单"改为 ?tab=undelivered"退款申请"改为 ?tab=refunded
  • shopOrder 页面读取 route.query.tab 初始化 activeKey,无效值回退到 'undelivered'
  • 文件:src/views/shop/dashboard/index.vuesrc/views/shop/shopOrder/index.vue

Dashboard 待处理事项新增"待付款订单"

  • 在待发货订单上方新增"待付款订单"统计项,使用 statusFilter=0 查询,点击跳转 /shop/shopOrder?tab=unpaid
  • shopOrder 页面取消注释"待付款"tabvalidTabs 加入 unpaid
  • 新增 dot-gold 样式。
  • 文件:src/views/shop/dashboard/index.vuesrc/views/shop/shopOrder/index.vue

Dashboard 引入 useTenantStore创建时间读租户信息

  • 引入 useTenantStoreloadData 中调用 tenantStore.fetchTenantInfo() 替代直接调用 getTenantInfo() API。
  • 基本信息"创建时间"改为读取 tenantStore.company?.createTime
  • 运行天数也改为从 tenantStore.company?.createTime 计算,移除独立的 tenantCreateTime ref。
  • 文件:src/views/shop/dashboard/index.vue
  • 通过 getShopSettingCategoryValues('basic') 获取商城设置,读取 shopLogo 字段。
  • 使用 getCompressedImageUrl(shopLogo, { width: 200, quality: 90 }) 压缩图片。
  • 在 welcome-banner 左侧用 a-avatar (64px, square) 展示,无 Logo 时不显示。
  • 文件:src/views/shop/dashboard/index.vue

新增 useAppSubscriptionStorewebsopy 应用订阅特殊接口)

  • 新增 src/api/app/appSubscription/model.tsAppSubscription 实体及参数/返回类型,对照后端 com.gxwebsoft.app.entity.AppSubscription
  • 新增 src/api/app/appSubscription/index.ts:封装 AppSubscriptionController 全部 14 个接口。
    • 特殊接口域名 https://websopy-api.websoft.top/api(与项目主 API 域名不同),复用 @/utils/request(共享登录态 token、401 处理),传绝对 URL。
    • 后端无 context-pathbaseURL=https://websopy-api.websoft.top/api,接口路径用 /app/subscription/xxx
    • 后端 BaseController 成功 code=0success(IPage) 转成 PageResult{list,count},与项目 @/api 的 PageResult 结构一致。
  • 新增 src/store/modules/appSubscription.tsuseAppSubscriptionStorePinia Options API 风格,对齐 site.ts/statistics.ts聚合列表/详情/支付状态/订阅管理方法。列表/详情缓存5分钟checkStatus/checkPurchased 实时请求;订阅/支付/管理类操作成功后调 invalidateCache() 失效缓存。

确认线下收款新增上传凭证功能

  • 背景:原"确认线下收款"用 Modal.confirm + createVNode 动态拼一个 input只有备注没有上传凭证。用户需要加凭证上传。
  • 字段决策:新增 paymentVoucher?: string 字段(不复用 comments/merchantRemarks因为凭证是图片URL非文本。顺带修复 buyerRemarks/merchantRemarks 类型 bugundefinedstring?)。
  • 重构为独立组件 src/views/shop/shopOrder/components/OfflinePaymentModal.vue
    • <a-modal> + <a-form> + <a-upload list-type="picture-card"> 单张图片上传。
    • 上传走 uploadOsssrc/api/system/file),存储返回的 path(与项目 UploadCert 组件约定一致),预览用 getUrl(path) 补全。
    • 凭证必填,备注可选;校验 jpg/png、≤10MB支持点击预览大图。
  • API confirmOfflinePayment(id, remarks?, paymentVoucher?) 新增第三参数,通过 query params 传给后端。
  • index.vue:移除原 Modal.confirm/createVNode 逻辑,改为打开新组件(v-model:visible + :data="current" + @done="reload"),与 DeliveryModal 模式一致。
  • 类型检查:新增 0 错误,顺带消掉原 okType: 'success' 的类型错误antdv4 ButtonType 不含 success新组件去掉了 ok-type
  • 改动文件:src/api/shop/shopOrder/model/index.tssrc/api/shop/shopOrder/index.tssrc/views/shop/shopOrder/components/OfflinePaymentModal.vue(新增)、src/views/shop/shopOrder/index.vue
  • 后端待办:shop_order 表需新增 payment_voucher 字段;confirm-offline-payment 接口需接收并持久化 paymentVoucher 参数。