- 重构确认线下收款为独立组件 OfflinePaymentModal.vue - 新增支付凭证字段 paymentVoucher,支持图片上传与预览 - 上传限制为 jpg/png 格式,单张图片最大 10MB - API confirmOfflinePayment 新增 paymentVoucher 参数 - 页面移除原 Modal.confirm 逻辑,改为调用新组件弹窗 - 修复 buyerRemarks 和 merchantRemarks 类型错误 - 后端 shop_order 表待新增 payment_voucher 字段和接口支持 - 同步更新相关接口模型与视图交互逻辑 feat(shopGoodsBrowse): 新增用户商品浏览记录管理功能 - 新增 ShopGoodsBrowse 接口模型及分页查询、删除接口 - 前端新增浏览记录管理页面,实现列表展示和删除 - 支持基于用户ID、商品ID、浏览来源和日期范围搜索 - 列表显示商品图片、名称、价格、浏览次数及时间等信息 - 添加图片预览和操作确认弹窗,保障操作体验和安全
4.9 KiB
4.9 KiB
2026-07-15
修复 shopOrder 页面默认待发货tab数据不正确
- 根因:
activeKey默认为'undelivered',但datasource函数只设了where.type = 0,没有设statusFilter。statusFilter只在用户点击 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.vue、src/views/shop/shopOrder/index.vue
Dashboard 待处理事项新增"待付款订单"
- 在待发货订单上方新增"待付款订单"统计项,使用
statusFilter=0查询,点击跳转/shop/shopOrder?tab=unpaid。 - shopOrder 页面取消注释"待付款"tab,
validTabs加入unpaid。 - 新增
dot-gold样式。 - 文件:
src/views/shop/dashboard/index.vue、src/views/shop/shopOrder/index.vue
Dashboard 引入 useTenantStore,创建时间读租户信息
- 引入
useTenantStore,loadData中调用tenantStore.fetchTenantInfo()替代直接调用getTenantInfo()API。 - 基本信息"创建时间"改为读取
tenantStore.company?.createTime。 - 运行天数也改为从
tenantStore.company?.createTime计算,移除独立的tenantCreateTimeref。 - 文件:
src/views/shop/dashboard/index.vue
Dashboard 欢迎横幅新增商城Logo
- 通过
getShopSettingCategoryValues('basic')获取商城设置,读取shopLogo字段。 - 使用
getCompressedImageUrl(shopLogo, { width: 200, quality: 90 })压缩图片。 - 在 welcome-banner 左侧用
a-avatar(64px, square) 展示,无 Logo 时不显示。 - 文件:
src/views/shop/dashboard/index.vue
新增 useAppSubscriptionStore(websopy 应用订阅特殊接口)
- 新增
src/api/app/appSubscription/model.ts:AppSubscription 实体及参数/返回类型,对照后端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-path;baseURL=
https://websopy-api.websoft.top/api,接口路径用/app/subscription/xxx。 - 后端
BaseController成功 code=0;success(IPage)转成PageResult{list,count},与项目@/api的 PageResult 结构一致。
- 特殊接口域名
- 新增
src/store/modules/appSubscription.ts:useAppSubscriptionStore(Pinia Options API 风格,对齐 site.ts/statistics.ts),聚合列表/详情/支付状态/订阅管理方法。列表/详情缓存5分钟;checkStatus/checkPurchased实时请求;订阅/支付/管理类操作成功后调invalidateCache()失效缓存。
确认线下收款新增上传凭证功能
- 背景:原"确认线下收款"用
Modal.confirm+createVNode动态拼一个 input,只有备注,没有上传凭证。用户需要加凭证上传。 - 字段决策:新增
paymentVoucher?: string字段(不复用 comments/merchantRemarks,因为凭证是图片URL非文本)。顺带修复buyerRemarks/merchantRemarks类型 bug(undefined→string?)。 - 重构为独立组件
src/views/shop/shopOrder/components/OfflinePaymentModal.vue:- 用
<a-modal>+<a-form>+<a-upload list-type="picture-card">单张图片上传。 - 上传走
uploadOss(src/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.ts、src/api/shop/shopOrder/index.ts、src/views/shop/shopOrder/components/OfflinePaymentModal.vue(新增)、src/views/shop/shopOrder/index.vue - 后端待办:
shop_order表需新增payment_voucher字段;confirm-offline-payment接口需接收并持久化paymentVoucher参数。