From 937aac5b018d954a93347eb0cd4aefad8de65208 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Thu, 20 Nov 2025 10:50:17 +0800 Subject: [PATCH 01/10] =?UTF-8?q?feat=EF=BC=9A=E3=80=90antd/ele=E3=80=91?= =?UTF-8?q?=E3=80=90mall/trade=E3=80=91=E4=BC=98=E5=8C=96=20api=20?= =?UTF-8?q?=E7=9A=84=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/api/mall/trade/afterSale/index.ts | 110 ++---- .../mall/trade/brokerage/withdraw/index.ts | 11 +- .../api/mall/trade/delivery/express/index.ts | 30 +- .../trade/delivery/expressTemplate/index.ts | 76 ++-- .../mall/trade/delivery/pickUpStore/index.ts | 59 ++-- .../src/api/mall/trade/order/index.ts | 326 +++++++----------- .../trade/afterSale/modules/disagree-form.vue | 2 +- .../trade/delivery/expressTemplate/index.vue | 8 +- .../modules/charge-item-form.vue | 2 +- .../delivery/expressTemplate/modules/form.vue | 26 +- .../modules/free-item-form.vue | 2 +- .../mall/trade/delivery/pickUpOrder/data.ts | 2 +- .../mall/trade/delivery/pickUpOrder/index.vue | 2 +- .../mall/trade/delivery/pickUpStore/index.vue | 10 +- .../pickUpStore/modules/bind-form.vue | 2 +- .../delivery/pickUpStore/modules/form.vue | 6 +- .../src/views/mall/trade/order/data.ts | 2 +- .../views/mall/trade/order/detail/index.vue | 8 +- .../mall/trade/order/modules/address-form.vue | 2 +- .../trade/order/modules/delivery-form.vue | 2 +- .../mall/trade/order/modules/remark-form.vue | 5 +- .../src/api/mall/trade/afterSale/index.ts | 110 ++---- .../mall/trade/brokerage/withdraw/index.ts | 11 +- .../api/mall/trade/delivery/express/index.ts | 30 +- .../trade/delivery/expressTemplate/index.ts | 76 ++-- .../mall/trade/delivery/pickUpStore/index.ts | 59 ++-- .../web-ele/src/api/mall/trade/order/index.ts | 326 +++++++----------- .../trade/afterSale/modules/disagree-form.vue | 2 +- .../trade/delivery/expressTemplate/index.vue | 8 +- .../modules/charge-item-form.vue | 2 +- .../delivery/expressTemplate/modules/form.vue | 26 +- .../modules/free-item-form.vue | 2 +- .../mall/trade/delivery/pickUpStore/index.vue | 10 +- .../pickUpStore/modules/bind-form.vue | 2 +- .../delivery/pickUpStore/modules/form.vue | 18 +- .../src/views/mall/trade/order/data.ts | 2 +- .../views/mall/trade/order/detail/index.vue | 8 +- .../mall/trade/order/modules/address-form.vue | 2 +- .../trade/order/modules/delivery-form.vue | 2 +- .../mall/trade/order/modules/remark-form.vue | 5 +- 40 files changed, 518 insertions(+), 876 deletions(-) diff --git a/apps/web-antd/src/api/mall/trade/afterSale/index.ts b/apps/web-antd/src/api/mall/trade/afterSale/index.ts index 74c684857..97bafedaf 100644 --- a/apps/web-antd/src/api/mall/trade/afterSale/index.ts +++ b/apps/web-antd/src/api/mall/trade/afterSale/index.ts @@ -5,85 +5,49 @@ import type { MallOrderApi } from '#/api/mall/trade/order'; import { requestClient } from '#/api/request'; export namespace MallAfterSaleApi { - /** 商品属性 */ - export interface ProductProperty { - /** 属性的编号 */ - propertyId?: null | number; - /** 属性的名称 */ - propertyName?: string; - /** 属性值的编号 */ - valueId?: null | number; - /** 属性值的名称 */ - valueName?: string; - } - /** 交易售后 */ export interface AfterSale { - /** 售后编号,主键自增 */ - id?: null | number; - /** 售后单号 */ - no?: string; - /** 退款状态 */ - status?: null | number; - /** 售后方式 */ - way?: null | number; - /** 售后类型 */ - type?: null | number; - /** 用户编号 */ - userId?: null | number; - /** 申请原因 */ - applyReason?: string; - /** 补充描述 */ - applyDescription?: string; - /** 补充凭证图片 */ - applyPicUrls?: string[]; - /** 交易订单编号 */ - orderId?: null | number; - /** 订单流水号 */ - orderNo?: string; - /** 交易订单项编号 */ - orderItemId?: null | number; - /** 商品 SPU 编号 */ - spuId?: null | number; - /** 商品 SPU 名称 */ - spuName?: string; - /** 商品 SKU 编号 */ - skuId?: null | number; - /** 属性数组 */ - properties?: ProductProperty[]; - /** 商品图片 */ - picUrl?: string; - /** 退货商品数量 */ - count?: null | number; - /** 审批时间 */ - auditTime?: Date; - /** 审批人 */ - auditUserId?: null | number; - /** 审批备注 */ - auditReason?: string; - /** 退款金额,单位:分 */ - refundPrice?: null | number; - /** 支付退款编号 */ - payRefundId?: null | number; - /** 退款时间 */ - refundTime?: Date; - /** 退货物流公司编号 */ - logisticsId?: null | number; - /** 退货物流单号 */ - logisticsNo?: string; - /** 退货时间 */ - deliveryTime?: Date; - /** 收货时间 */ - receiveTime?: Date; - /** 收货备注 */ - receiveReason?: string; + id?: number; // 售后编号 + no?: string; // 售后单号 + status?: number; // 退款状态 + way?: number; // 售后方式 + type?: number; // 售后类型 + userId?: number; // 用户编号 + applyReason?: string; // 申请原因 + applyDescription?: string; // 补充描述 + applyPicUrls?: string[]; // 补充凭证图片 + orderId?: number; // 交易订单编号 + orderNo?: string; // 订单流水号 + orderItemId?: number; // 交易订单项编号 + spuId?: number; // 商品 SPU 编号 + spuName?: string; // 商品 SPU 名称 + skuId?: number; // 商品 SKU 编号 + properties?: { + propertyId?: number; // 属性的编号 + propertyName?: string; // 属性的名称 + valueId?: number; // 属性值的编号 + valueName?: string; // 属性值的名称 + }[]; // 属性数组 + picUrl?: string; // 商品图片 + count?: number; // 退货商品数量 + auditTime?: Date; // 审批时间 + auditUserId?: number; // 审批人 + auditReason?: string; // 审批备注 + refundPrice?: number; // 退款金额,单位:分 + payRefundId?: number; // 支付退款编号 + refundTime?: Date; // 退款时间 + logisticsId?: number; // 退货物流公司编号 + logisticsNo?: string; // 退货物流单号 + deliveryTime?: Date; // 退货时间 + receiveTime?: Date; // 收货时间 + receiveReason?: string; // 收货备注 order?: MallOrderApi.Order; // 关联订单 orderItem?: MallOrderApi.OrderItem; // 关联订单项 logs?: any[]; // 关联售后日志 } /** 拒绝售后请求 */ - export interface DisagreeRequest { + export interface AfterSaleDisagreeReqVO { /** 售后编号 */ id: number; /** 拒绝原因 */ @@ -112,7 +76,9 @@ export function agreeAfterSale(id: number) { } /** 拒绝售后 */ -export function disagreeAfterSale(data: MallAfterSaleApi.DisagreeRequest) { +export function disagreeAfterSale( + data: MallAfterSaleApi.AfterSaleDisagreeReqVO, +) { return requestClient.put('/trade/after-sale/disagree', data); } diff --git a/apps/web-antd/src/api/mall/trade/brokerage/withdraw/index.ts b/apps/web-antd/src/api/mall/trade/brokerage/withdraw/index.ts index 12af60518..0cf604bca 100644 --- a/apps/web-antd/src/api/mall/trade/brokerage/withdraw/index.ts +++ b/apps/web-antd/src/api/mall/trade/brokerage/withdraw/index.ts @@ -27,7 +27,7 @@ export namespace MallBrokerageWithdrawApi { } /** 驳回申请请求 */ - export interface RejectRequest { + export interface BrokerageWithdrawRejectReqVO { id: number; // 编号 auditReason: string; // 驳回原因 } @@ -40,13 +40,6 @@ export function getBrokerageWithdrawPage(params: PageParam) { >('/trade/brokerage-withdraw/page', { params }); } -/** 查询佣金提现详情 */ -export function getBrokerageWithdraw(id: number) { - return requestClient.get( - `/trade/brokerage-withdraw/get?id=${id}`, - ); -} - /** 佣金提现 - 通过申请 */ export function approveBrokerageWithdraw(id: number) { return requestClient.put(`/trade/brokerage-withdraw/approve?id=${id}`); @@ -54,7 +47,7 @@ export function approveBrokerageWithdraw(id: number) { /** 审核佣金提现 - 驳回申请 */ export function rejectBrokerageWithdraw( - data: MallBrokerageWithdrawApi.RejectRequest, + data: MallBrokerageWithdrawApi.BrokerageWithdrawRejectReqVO, ) { return requestClient.put('/trade/brokerage-withdraw/reject', data); } diff --git a/apps/web-antd/src/api/mall/trade/delivery/express/index.ts b/apps/web-antd/src/api/mall/trade/delivery/express/index.ts index 071dd2f16..af3911c1e 100644 --- a/apps/web-antd/src/api/mall/trade/delivery/express/index.ts +++ b/apps/web-antd/src/api/mall/trade/delivery/express/index.ts @@ -5,28 +5,12 @@ import { requestClient } from '#/api/request'; export namespace MallDeliveryExpressApi { /** 快递公司 */ export interface DeliveryExpress { - /** 编号 */ - id: number; - /** 快递公司编码 */ - code: string; - /** 快递公司名称 */ - name: string; - /** 快递公司 logo */ - logo: string; - /** 排序 */ - sort: number; - /** 状态 */ - status: number; - } - - /** 快递公司精简信息 */ - export interface SimpleDeliveryExpress { - /** 编号 */ - id: number; - /** 快递公司编码 */ - code: string; - /** 快递公司名称 */ - name: string; + id: number; // 编号 + code: string; // 快递公司编码 + name: string; // 快递公司名称 + logo: string; // 快递公司 logo + sort: number; // 排序 + status: number; // 状态 } } @@ -47,7 +31,7 @@ export function getDeliveryExpress(id: number) { /** 获得快递公司精简信息列表 */ export function getSimpleDeliveryExpressList() { - return requestClient.get( + return requestClient.get( '/trade/delivery/express/list-all-simple', ); } diff --git a/apps/web-antd/src/api/mall/trade/delivery/expressTemplate/index.ts b/apps/web-antd/src/api/mall/trade/delivery/expressTemplate/index.ts index be6a38a6d..92c7ad0e1 100644 --- a/apps/web-antd/src/api/mall/trade/delivery/expressTemplate/index.ts +++ b/apps/web-antd/src/api/mall/trade/delivery/expressTemplate/index.ts @@ -3,86 +3,64 @@ import type { PageParam, PageResult } from '@vben/request'; import { requestClient } from '#/api/request'; export namespace MallDeliveryExpressTemplateApi { + /** 快递运费模板 */ + export interface DeliveryExpressTemplate { + id: number; // 编号 + name: string; // 模板名称 + chargeMode: number; // 计费方式 + sort: number; // 排序 + charges: DeliveryExpressTemplateCharge[]; // 计费区域列表 + frees: DeliveryExpressTemplateFree[]; // 包邮区域列表 + } + /** 运费模板计费 */ - export interface TemplateCharge { - /** 区域编号列表 */ - areaIds: number[]; - /** 首件数量 */ - startCount: number; - /** 首件价格,单位:分 */ - startPrice: number; - /** 续件数量 */ - extraCount: number; - /** 续件价格,单位:分 */ - extraPrice: number; + export interface DeliveryExpressTemplateCharge { + areaIds: number[]; // 区域编号列表 + startCount: number; // 首件数量 + startPrice: number; // 首件价格,单位:分 + extraCount: number; // 续件数量 + extraPrice: number; // 续件价格,单位:分 } /** 运费模板包邮 */ - export interface TemplateFree { - /** 区域编号列表 */ - areaIds: number[]; - /** 包邮件数 */ - freeCount: number; - /** 包邮金额,单位:分 */ - freePrice: number; - } - - /** 快递运费模板 */ - export interface ExpressTemplate { - /** 编号 */ - id: number; - /** 模板名称 */ - name: string; - /** 计费方式 */ - chargeMode: number; - /** 排序 */ - sort: number; - /** 计费区域列表 */ - charges: TemplateCharge[]; - /** 包邮区域列表 */ - frees: TemplateFree[]; - } - - /** 运费模板精简信息 */ - export interface SimpleTemplate { - /** 编号 */ - id: number; - /** 模板名称 */ - name: string; + export interface DeliveryExpressTemplateFree { + areaIds: number[]; // 区域编号列表 + freeCount: number; // 包邮件数 + freePrice: number; // 包邮金额,单位:分 } } /** 查询快递运费模板列表 */ export function getDeliveryExpressTemplatePage(params: PageParam) { return requestClient.get< - PageResult + PageResult >('/trade/delivery/express-template/page', { params }); } /** 查询快递运费模板详情 */ export function getDeliveryExpressTemplate(id: number) { - return requestClient.get( + return requestClient.get( `/trade/delivery/express-template/get?id=${id}`, ); } /** 查询快递运费模板详情 */ export function getSimpleTemplateList() { - return requestClient.get( - '/trade/delivery/express-template/list-all-simple', - ); + return requestClient.get< + MallDeliveryExpressTemplateApi.DeliveryExpressTemplate[] + >('/trade/delivery/express-template/list-all-simple'); } /** 新增快递运费模板 */ export function createDeliveryExpressTemplate( - data: MallDeliveryExpressTemplateApi.ExpressTemplate, + data: MallDeliveryExpressTemplateApi.DeliveryExpressTemplate, ) { return requestClient.post('/trade/delivery/express-template/create', data); } /** 修改快递运费模板 */ export function updateDeliveryExpressTemplate( - data: MallDeliveryExpressTemplateApi.ExpressTemplate, + data: MallDeliveryExpressTemplateApi.DeliveryExpressTemplate, ) { return requestClient.put('/trade/delivery/express-template/update', data); } diff --git a/apps/web-antd/src/api/mall/trade/delivery/pickUpStore/index.ts b/apps/web-antd/src/api/mall/trade/delivery/pickUpStore/index.ts index 321df41fb..6844f0039 100644 --- a/apps/web-antd/src/api/mall/trade/delivery/pickUpStore/index.ts +++ b/apps/web-antd/src/api/mall/trade/delivery/pickUpStore/index.ts @@ -4,35 +4,21 @@ import { requestClient } from '#/api/request'; export namespace MallDeliveryPickUpStoreApi { /** 自提门店 */ - export interface PickUpStore { - /** 编号 */ - id: number; - /** 门店名称 */ - name: string; - /** 门店简介 */ - introduction: string; - /** 联系电话 */ - phone: string; - /** 区域编号 */ - areaId: number; - /** 详细地址 */ - detailAddress: string; - /** 门店 logo */ - logo: string; - /** 营业开始时间 */ - openingTime: string; - /** 营业结束时间 */ - closingTime: string; - /** 纬度 */ - latitude: number; - /** 经度 */ - longitude: number; - /** 状态 */ - status: number; - /** 营业时间 用于fieldMappingTime */ - rangeTime: any[]; - /** 绑定用户编号组数 */ - verifyUserIds?: number[]; + export interface DeliveryPickUpStore { + id: number; // 编号 + name: string; // 门店名称 + introduction: string; // 门店简介 + phone: string; // 联系电话 + areaId: number; // 区域编号 + detailAddress: string; // 详细地址 + logo: string; // 门店 logo + openingTime: string; // 营业开始时间 + closingTime: string; // 营业结束时间 + latitude: number; // 纬度 + longitude: number; // 经度 + status: number; // 状态 + rangeTime: any[]; // 营业时间,用于 fieldMappingTime + verifyUserIds?: number[]; // 绑定用户编号组数 verifyUsers?: any[]; } @@ -46,36 +32,35 @@ export namespace MallDeliveryPickUpStoreApi { /** 查询自提门店列表 */ export function getDeliveryPickUpStorePage(params: PageParam) { - return requestClient.get>( - '/trade/delivery/pick-up-store/page', - { params }, - ); + return requestClient.get< + PageResult + >('/trade/delivery/pick-up-store/page', { params }); } /** 查询自提门店详情 */ export function getDeliveryPickUpStore(id: number) { - return requestClient.get( + return requestClient.get( `/trade/delivery/pick-up-store/get?id=${id}`, ); } /** 查询自提门店精简列表 */ export function getSimpleDeliveryPickUpStoreList() { - return requestClient.get( + return requestClient.get( '/trade/delivery/pick-up-store/simple-list', ); } /** 新增自提门店 */ export function createDeliveryPickUpStore( - data: MallDeliveryPickUpStoreApi.PickUpStore, + data: MallDeliveryPickUpStoreApi.DeliveryPickUpStore, ) { return requestClient.post('/trade/delivery/pick-up-store/create', data); } /** 修改自提门店 */ export function updateDeliveryPickUpStore( - data: MallDeliveryPickUpStoreApi.PickUpStore, + data: MallDeliveryPickUpStoreApi.DeliveryPickUpStore, ) { return requestClient.put('/trade/delivery/pick-up-store/update', data); } diff --git a/apps/web-antd/src/api/mall/trade/order/index.ts b/apps/web-antd/src/api/mall/trade/order/index.ts index c2410f9cf..cea0d4672 100644 --- a/apps/web-antd/src/api/mall/trade/order/index.ts +++ b/apps/web-antd/src/api/mall/trade/order/index.ts @@ -3,231 +3,136 @@ import type { PageParam, PageResult } from '@vben/request'; import { requestClient } from '#/api/request'; export namespace MallOrderApi { - /** 商品属性 */ - export interface ProductProperty { - /** 属性的编号 */ - propertyId?: number; - /** 属性的名称 */ - propertyName?: string; - /** 属性值的编号 */ - valueId?: number; - /** 属性值的名称 */ - valueName?: string; + /** 订单信息 */ + export interface Order { + id?: number; // 订单编号 + no?: string; // 订单流水号 + createTime?: Date; // 下单时间 + type?: number; // 订单类型 + terminal?: number; // 订单来源 + userId?: number; // 用户编号 + userIp?: string; // 用户 IP + userRemark?: string; // 用户备注 + status?: number; // 订单状态 + productCount?: number; // 购买的商品数量 + finishTime?: Date; // 订单完成时间 + cancelTime?: Date; // 订单取消时间 + cancelType?: number; // 取消类型 + remark?: string; // 商家备注 + payOrderId?: number; // 支付订单编号 + payStatus?: boolean; // 是否已支付 + payTime?: Date; // 付款时间 + payChannelCode?: string; // 支付渠道 + totalPrice?: number; // 商品原价(总) + discountPrice?: number; // 订单优惠(总) + deliveryPrice?: number; // 运费金额 + adjustPrice?: number; // 订单调价(总) + payPrice?: number; // 应付金额(总) + deliveryType?: number; // 发货方式 + pickUpStoreId?: number; // 自提门店编号 + pickUpVerifyCode?: string; // 自提核销码 + deliveryTemplateId?: number; // 配送模板编号 + logisticsId?: number; // 发货物流公司编号 + logisticsNo?: string; // 发货物流单号 + deliveryTime?: Date; // 发货时间 + receiveTime?: Date; // 收货时间 + receiverName?: string; // 收件人名称 + receiverMobile?: string; // 收件人手机 + receiverPostCode?: number; // 收件人邮编 + receiverAreaId?: number; // 收件人地区编号 + receiverAreaName?: string; // 收件人地区名字 + receiverDetailAddress?: string; // 收件人详细地址 + afterSaleStatus?: number; // 售后状态 + refundPrice?: number; // 退款金额 + couponId?: number; // 优惠劵编号 + couponPrice?: number; // 优惠劵减免金额 + pointPrice?: number; // 积分抵扣的金额 + vipPrice?: number; // VIP 减免金额 + items?: OrderItem[]; // 订单项列表 + user?: { + // 下单用户信息 + avatar?: string; // 用户头像 + id?: number; // 用户编号 + nickname?: string; // 用户昵称 + }; + brokerageUser?: { + // 推广用户信息 + avatar?: string; // 用户头像 + id?: number; // 用户编号 + nickname?: string; // 用户昵称 + }; // 推广用户信息 + logs?: OrderLog[]; // 订单操作日志 } /** 订单项 */ export interface OrderItem { - /** 编号 */ - id?: number; - /** 用户编号 */ - userId?: number; - /** 订单编号 */ - orderId?: number; - /** 商品 SPU 编号 */ - spuId?: number; - /** 商品 SPU 名称 */ - spuName?: string; - /** 商品 SKU 编号 */ - skuId?: number; - /** 商品图片 */ - picUrl?: string; - /** 购买数量 */ - count?: number; - /** 商品原价(总) */ - originalPrice?: number; - /** 商品原价(单) */ - originalUnitPrice?: number; - /** 商品优惠(总) */ - discountPrice?: number; - /** 商品实付金额(总) */ - payPrice?: number; - /** 子订单分摊金额(总) */ - orderPartPrice?: number; - /** 分摊后子订单实付金额(总) */ - orderDividePrice?: number; - /** 售后状态 */ - afterSaleStatus?: number; - /** 属性数组 */ - properties?: ProductProperty[]; + id?: number; // 编号 + userId?: number; // 用户编号 + orderId?: number; // 订单编号 + spuId?: number; // 商品 SPU 编号 + spuName?: string; // 商品 SPU 名称 + skuId?: number; // 商品 SKU 编号 + picUrl?: string; // 商品图片 + count?: number; // 购买数量 + originalPrice?: number; // 商品原价(总) + originalUnitPrice?: number; // 商品原价(单) + discountPrice?: number; // 商品优惠(总) + payPrice?: number; // 商品实付金额(总) + orderPartPrice?: number; // 子订单分摊金额(总) + orderDividePrice?: number; // 分摊后子订单实付金额(总) + afterSaleStatus?: number; // 售后状态 + properties?: { + propertyId?: number; // 属性的编号 + propertyName?: string; // 属性的名称 + valueId?: number; // 属性值的编号 + valueName?: string; // 属性值的名称 + }[]; // 属性数组 price?: number; } /** 订单日志 */ export interface OrderLog { - /** 日志内容 */ - content?: string; - /** 创建时间 */ - createTime?: Date; - /** 用户类型 */ - userType?: number; - /** 用户编号 */ - userId?: number; + content?: string; // 日志内容 + createTime?: Date; // 创建时间 + userType?: number; // 用户类型 + userId?: number; // 用户编号 } - /** 订单 */ - export interface Order { - /** 订单编号 */ - id?: number; - /** 订单流水号 */ - no?: string; - /** 下单时间 */ - createTime?: Date; - /** 订单类型 */ - type?: number; - /** 订单来源 */ - terminal?: number; - /** 用户编号 */ - userId?: number; - /** 用户 IP */ - userIp?: string; - /** 用户备注 */ - userRemark?: string; - /** 订单状态 */ - status?: number; - /** 购买的商品数量 */ - productCount?: number; - /** 订单完成时间 */ - finishTime?: Date; - /** 订单取消时间 */ - cancelTime?: Date; - /** 取消类型 */ - cancelType?: number; - /** 商家备注 */ - remark?: string; - /** 支付订单编号 */ - payOrderId?: number; - /** 是否已支付 */ - payStatus?: boolean; - /** 付款时间 */ - payTime?: Date; - /** 支付渠道 */ - payChannelCode?: string; - /** 商品原价(总) */ - totalPrice?: number; - /** 订单优惠(总) */ - discountPrice?: number; - /** 运费金额 */ - deliveryPrice?: number; - /** 订单调价(总) */ - adjustPrice?: number; - /** 应付金额(总) */ - payPrice?: number; - /** 发货方式 */ - deliveryType?: number; - /** 自提门店编号 */ - pickUpStoreId?: number; - /** 自提核销码 */ - pickUpVerifyCode?: string; - /** 配送模板编号 */ - deliveryTemplateId?: number; - /** 发货物流公司编号 */ - logisticsId?: number; - /** 发货物流单号 */ - logisticsNo?: string; - /** 发货时间 */ - deliveryTime?: Date; - /** 收货时间 */ - receiveTime?: Date; - /** 收件人名称 */ - receiverName?: string; - /** 收件人手机 */ - receiverMobile?: string; - /** 收件人邮编 */ - receiverPostCode?: number; - /** 收件人地区编号 */ - receiverAreaId?: number; - /** 收件人地区名字 */ - receiverAreaName?: string; - /** 收件人详细地址 */ - receiverDetailAddress?: string; - /** 售后状态 */ - afterSaleStatus?: number; - /** 退款金额 */ - refundPrice?: number; - /** 优惠劵编号 */ - couponId?: number; - /** 优惠劵减免金额 */ - couponPrice?: number; - /** 积分抵扣的金额 */ - pointPrice?: number; - /** VIP 减免金额 */ - vipPrice?: number; - /** 订单项列表 */ - items?: OrderItem[]; - /** 下单用户信息 */ - user?: { - /** 用户头像 */ - avatar?: string; - /** 用户编号 */ - id?: number; - /** 用户昵称 */ - nickname?: string; - }; - /** 推广用户信息 */ - brokerageUser?: { - /** 用户头像 */ - avatar?: string; - /** 用户编号 */ - id?: number; - /** 用户昵称 */ - nickname?: string; - }; - /** 订单操作日志 */ - logs?: OrderLog[]; - } - - /** 交易订单统计 */ - export interface OrderSummary { - /** 订单数量 */ - orderCount: number; - /** 订单金额 */ - orderPayPrice: number; - /** 退款单数 */ - afterSaleCount: number; - /** 退款金额 */ - afterSalePrice: number; + /** 交易订单统计响应 */ + export interface OrderSummaryRespVO { + orderCount: number; // 订单数量 + orderPayPrice: number; // 订单金额 + afterSaleCount: number; // 退款单数 + afterSalePrice: number; // 退款金额 } /** 订单发货请求 */ - export interface DeliveryRequest { - /** 订单编号 */ - id?: number; - /** 发货方式 */ - expressType: string; - /** 物流公司编号 */ - logisticsId: number; - /** 物流编号 */ - logisticsNo: string; + export interface OrderUpdateDeliveryReqVO { + id?: number; // 订单编号 + expressType: string; // 发货方式 + logisticsId: number; // 物流公司编号 + logisticsNo: string; // 物流编号 } /** 订单备注请求 */ - export interface RemarkRequest { - /** 订单编号 */ - id: number; - /** 备注 */ - remark: string; + export interface OrderUpdateRemarkReqVO { + id: number; // 订单编号 + remark: string; // 备注 } /** 订单调价请求 */ - export interface PriceRequest { - /** 订单编号 */ - id: number; - /** 调整金额,单位:分 */ - adjustPrice: number; + export interface OrderUpdatePriceReqVO { + id: number; // 订单编号 + adjustPrice: number; // 调整金额,单位:分 } /** 订单地址请求 */ - export interface AddressRequest { - /** 订单编号 */ - id: number; - /** 收件人名称 */ - receiverName: string; - /** 收件人手机 */ - receiverMobile: string; - /** 收件人地区编号 */ - receiverAreaId: number; - /** 收件人详细地址 */ - receiverDetailAddress: string; + export interface OrderUpdateAddressReqVO { + id: number; // 订单编号 + receiverName: string; // 收件人名称 + receiverMobile: string; // 收件人手机 + receiverAreaId: number; // 收件人地区编号 + receiverDetailAddress: string; // 收件人详细地址 } } @@ -243,9 +148,12 @@ export function getOrderPage(params: PageParam) { /** 查询交易订单统计 */ export function getOrderSummary(params: any) { - return requestClient.get('/trade/order/summary', { - params, - }); + return requestClient.get( + '/trade/order/summary', + { + params, + }, + ); } /** 查询交易订单详情 */ @@ -261,22 +169,22 @@ export function getExpressTrackList(id: number) { } /** 订单发货 */ -export function deliveryOrder(data: MallOrderApi.DeliveryRequest) { +export function deliveryOrder(data: MallOrderApi.OrderUpdateDeliveryReqVO) { return requestClient.put('/trade/order/delivery', data); } /** 订单备注 */ -export function updateOrderRemark(data: MallOrderApi.RemarkRequest) { +export function updateOrderRemark(data: MallOrderApi.OrderUpdateRemarkReqVO) { return requestClient.put('/trade/order/update-remark', data); } /** 订单调价 */ -export function updateOrderPrice(data: MallOrderApi.PriceRequest) { +export function updateOrderPrice(data: MallOrderApi.OrderUpdatePriceReqVO) { return requestClient.put('/trade/order/update-price', data); } /** 修改订单地址 */ -export function updateOrderAddress(data: MallOrderApi.AddressRequest) { +export function updateOrderAddress(data: MallOrderApi.OrderUpdateAddressReqVO) { return requestClient.put('/trade/order/update-address', data); } diff --git a/apps/web-antd/src/views/mall/trade/afterSale/modules/disagree-form.vue b/apps/web-antd/src/views/mall/trade/afterSale/modules/disagree-form.vue index 434d31ec4..6fe9282ad 100644 --- a/apps/web-antd/src/views/mall/trade/afterSale/modules/disagree-form.vue +++ b/apps/web-antd/src/views/mall/trade/afterSale/modules/disagree-form.vue @@ -39,7 +39,7 @@ const [Modal, modalApi] = useVbenModal({ // 提交表单 try { const data = - (await formApi.getValues()) as MallAfterSaleApi.DisagreeRequest; + (await formApi.getValues()) as MallAfterSaleApi.AfterSaleDisagreeReqVO; await disagreeAfterSale(data); // 关闭并提示 await modalApi.close(); diff --git a/apps/web-antd/src/views/mall/trade/delivery/expressTemplate/index.vue b/apps/web-antd/src/views/mall/trade/delivery/expressTemplate/index.vue index 0c6a96fb6..1a9400233 100644 --- a/apps/web-antd/src/views/mall/trade/delivery/expressTemplate/index.vue +++ b/apps/web-antd/src/views/mall/trade/delivery/expressTemplate/index.vue @@ -32,13 +32,15 @@ function handleCreate() { } /** 编辑快递模板 */ -function handleEdit(row: MallDeliveryExpressTemplateApi.ExpressTemplate) { +function handleEdit( + row: MallDeliveryExpressTemplateApi.DeliveryExpressTemplate, +) { formModalApi.setData(row).open(); } /** 删除快递模板 */ async function handleDelete( - row: MallDeliveryExpressTemplateApi.ExpressTemplate, + row: MallDeliveryExpressTemplateApi.DeliveryExpressTemplate, ) { const hideLoading = message.loading({ content: $t('ui.actionMessage.deleting', [row.name]), @@ -80,7 +82,7 @@ const [Grid, gridApi] = useVbenVxeGrid({ refresh: true, search: true, }, - } as VxeTableGridOptions, + } as VxeTableGridOptions, }); diff --git a/apps/web-antd/src/views/mall/trade/delivery/expressTemplate/modules/charge-item-form.vue b/apps/web-antd/src/views/mall/trade/delivery/expressTemplate/modules/charge-item-form.vue index 2f8f65e50..77427ca89 100644 --- a/apps/web-antd/src/views/mall/trade/delivery/expressTemplate/modules/charge-item-form.vue +++ b/apps/web-antd/src/views/mall/trade/delivery/expressTemplate/modules/charge-item-form.vue @@ -11,7 +11,7 @@ import { TableAction, useVbenVxeGrid } from '#/adapter/vxe-table'; import { CHARGE_MODE_TITLE_MAP, useChargesColumns } from '../data'; interface Props { - items?: MallDeliveryExpressTemplateApi.TemplateCharge[]; + items?: MallDeliveryExpressTemplateApi.DeliveryExpressTemplateCharge[]; chargeMode?: number; areaTree?: SystemAreaApi.Area[]; } diff --git a/apps/web-antd/src/views/mall/trade/delivery/expressTemplate/modules/form.vue b/apps/web-antd/src/views/mall/trade/delivery/expressTemplate/modules/form.vue index fd4048208..13a9d2435 100644 --- a/apps/web-antd/src/views/mall/trade/delivery/expressTemplate/modules/form.vue +++ b/apps/web-antd/src/views/mall/trade/delivery/expressTemplate/modules/form.vue @@ -23,7 +23,7 @@ import ChargeItemForm from './charge-item-form.vue'; import FreeItemForm from './free-item-form.vue'; const emit = defineEmits(['success']); -const formData = ref(); +const formData = ref(); const chargeItemFormRef = ref>(); const freeItemFormRef = ref>(); const areaTree = ref([]); @@ -55,10 +55,10 @@ const [Form, formApi] = useVbenForm({ /** 更新运费设置 */ const handleUpdateCharges = async ( - charges: MallDeliveryExpressTemplateApi.TemplateCharge[], + charges: MallDeliveryExpressTemplateApi.DeliveryExpressTemplateCharge[], ) => { formData.value = - await formApi.getValues(); + await formApi.getValues(); formData.value.charges = charges; await formApi.setValues({ charges, @@ -67,10 +67,10 @@ const handleUpdateCharges = async ( /** 更新包邮设置 */ const handleUpdateFrees = async ( - frees: MallDeliveryExpressTemplateApi.TemplateFree[], + frees: MallDeliveryExpressTemplateApi.DeliveryExpressTemplateFree[], ) => { formData.value = - await formApi.getValues(); + await formApi.getValues(); formData.value.frees = frees; await formApi.setValues({ frees, @@ -102,17 +102,19 @@ const [Modal, modalApi] = useVbenModal({ // 提交表单 const data = cloneDeep( await formApi.getValues(), - ) as MallDeliveryExpressTemplateApi.ExpressTemplate; + ) as MallDeliveryExpressTemplateApi.DeliveryExpressTemplate; try { // 转换金额单位 data.charges?.forEach( - (item: MallDeliveryExpressTemplateApi.TemplateCharge) => { + ( + item: MallDeliveryExpressTemplateApi.DeliveryExpressTemplateCharge, + ) => { item.startPrice = yuanToFen(item.startPrice); item.extraPrice = yuanToFen(item.extraPrice); }, ); data.frees?.forEach( - (item: MallDeliveryExpressTemplateApi.TemplateFree) => { + (item: MallDeliveryExpressTemplateApi.DeliveryExpressTemplateFree) => { item.freePrice = yuanToFen(item.freePrice); }, ); @@ -134,7 +136,7 @@ const [Modal, modalApi] = useVbenModal({ } // 加载数据 const data = - modalApi.getData(); + modalApi.getData(); if (!data || !data.id) { return; } @@ -143,13 +145,15 @@ const [Modal, modalApi] = useVbenModal({ formData.value = await getDeliveryExpressTemplate(data.id); // 转换金额单位 formData.value.charges?.forEach( - (item: MallDeliveryExpressTemplateApi.TemplateCharge) => { + ( + item: MallDeliveryExpressTemplateApi.DeliveryExpressTemplateCharge, + ) => { item.startPrice = Number.parseFloat(fenToYuan(item.startPrice)); item.extraPrice = Number.parseFloat(fenToYuan(item.extraPrice)); }, ); formData.value.frees?.forEach( - (item: MallDeliveryExpressTemplateApi.TemplateFree) => { + (item: MallDeliveryExpressTemplateApi.DeliveryExpressTemplateFree) => { item.freePrice = Number.parseFloat(fenToYuan(item.freePrice)); }, ); diff --git a/apps/web-antd/src/views/mall/trade/delivery/expressTemplate/modules/free-item-form.vue b/apps/web-antd/src/views/mall/trade/delivery/expressTemplate/modules/free-item-form.vue index d75cced20..1c8531add 100644 --- a/apps/web-antd/src/views/mall/trade/delivery/expressTemplate/modules/free-item-form.vue +++ b/apps/web-antd/src/views/mall/trade/delivery/expressTemplate/modules/free-item-form.vue @@ -11,7 +11,7 @@ import { TableAction, useVbenVxeGrid } from '#/adapter/vxe-table'; import { FREE_MODE_TITLE_MAP, useFreesColumns } from '../data'; interface Props { - items?: MallDeliveryExpressTemplateApi.TemplateFree[]; + items?: MallDeliveryExpressTemplateApi.DeliveryExpressTemplateFree[]; chargeMode?: number; areaTree?: SystemAreaApi.Area[]; } diff --git a/apps/web-antd/src/views/mall/trade/delivery/pickUpOrder/data.ts b/apps/web-antd/src/views/mall/trade/delivery/pickUpOrder/data.ts index 47fde647b..19c9ac5f1 100644 --- a/apps/web-antd/src/views/mall/trade/delivery/pickUpOrder/data.ts +++ b/apps/web-antd/src/views/mall/trade/delivery/pickUpOrder/data.ts @@ -12,7 +12,7 @@ import { getRangePickerDefaultProps } from '#/utils'; /** 关联数据 */ const userStore = useUserStore(); -const pickUpStoreList = ref([]); +const pickUpStoreList = ref([]); getSimpleDeliveryPickUpStoreList().then((res) => { pickUpStoreList.value = res; // 移除自己无法核销的门店 diff --git a/apps/web-antd/src/views/mall/trade/delivery/pickUpOrder/index.vue b/apps/web-antd/src/views/mall/trade/delivery/pickUpOrder/index.vue index ff67f58c3..050065c10 100644 --- a/apps/web-antd/src/views/mall/trade/delivery/pickUpOrder/index.vue +++ b/apps/web-antd/src/views/mall/trade/delivery/pickUpOrder/index.vue @@ -20,7 +20,7 @@ import { import { useGridColumns, useGridFormSchema } from './data'; -const summary = ref(); +const summary = ref(); /** 刷新表格 */ function handleRefresh() { diff --git a/apps/web-antd/src/views/mall/trade/delivery/pickUpStore/index.vue b/apps/web-antd/src/views/mall/trade/delivery/pickUpStore/index.vue index 6274262f2..b2fa35a5f 100644 --- a/apps/web-antd/src/views/mall/trade/delivery/pickUpStore/index.vue +++ b/apps/web-antd/src/views/mall/trade/delivery/pickUpStore/index.vue @@ -38,17 +38,19 @@ function handleCreate() { } /** 编辑门店 */ -function handleEdit(row: MallDeliveryPickUpStoreApi.PickUpStore) { +function handleEdit(row: MallDeliveryPickUpStoreApi.DeliveryPickUpStore) { formModalApi.setData(row).open(); } /** 绑定店员 */ -function handleBind(row: MallDeliveryPickUpStoreApi.PickUpStore) { +function handleBind(row: MallDeliveryPickUpStoreApi.DeliveryPickUpStore) { bindFormModalApi.setData(row).open(); } /** 删除门店 */ -async function handleDelete(row: MallDeliveryPickUpStoreApi.PickUpStore) { +async function handleDelete( + row: MallDeliveryPickUpStoreApi.DeliveryPickUpStore, +) { const hideLoading = message.loading({ content: $t('ui.actionMessage.deleting', [row.name]), duration: 0, @@ -89,7 +91,7 @@ const [Grid, gridApi] = useVbenVxeGrid({ refresh: true, search: true, }, - } as VxeTableGridOptions, + } as VxeTableGridOptions, }); diff --git a/apps/web-antd/src/views/mall/trade/delivery/pickUpStore/modules/bind-form.vue b/apps/web-antd/src/views/mall/trade/delivery/pickUpStore/modules/bind-form.vue index 379b0561a..7886e341d 100644 --- a/apps/web-antd/src/views/mall/trade/delivery/pickUpStore/modules/bind-form.vue +++ b/apps/web-antd/src/views/mall/trade/delivery/pickUpStore/modules/bind-form.vue @@ -17,7 +17,7 @@ import { $t } from '#/locales'; import { useBindFormSchema } from '../data'; const emit = defineEmits(['success']); -const formData = ref(); +const formData = ref(); const [Form, formApi] = useVbenForm({ commonConfig: { diff --git a/apps/web-antd/src/views/mall/trade/delivery/pickUpStore/modules/form.vue b/apps/web-antd/src/views/mall/trade/delivery/pickUpStore/modules/form.vue index 79d7ea8b3..767fbc73e 100644 --- a/apps/web-antd/src/views/mall/trade/delivery/pickUpStore/modules/form.vue +++ b/apps/web-antd/src/views/mall/trade/delivery/pickUpStore/modules/form.vue @@ -20,7 +20,7 @@ import { $t } from '#/locales'; import { useFormSchema } from '../data'; const emit = defineEmits(['success']); -const formData = ref(); +const formData = ref(); const getTitle = computed(() => { return formData.value?.id ? $t('ui.actionTitle.edit', ['门店']) @@ -94,7 +94,7 @@ const [Modal, modalApi] = useVbenModal({ modalApi.lock(); // 提交表单 const data = - (await formApi.getValues()) as MallDeliveryPickUpStoreApi.PickUpStore; + (await formApi.getValues()) as MallDeliveryPickUpStoreApi.DeliveryPickUpStore; try { await (formData.value?.id ? updateDeliveryPickUpStore(data) @@ -113,7 +113,7 @@ const [Modal, modalApi] = useVbenModal({ return; } // 加载数据 - const data = modalApi.getData(); + const data = modalApi.getData(); if (!data || !data.id) { // 初始化地图 await initTencentLbsMap(); diff --git a/apps/web-antd/src/views/mall/trade/order/data.ts b/apps/web-antd/src/views/mall/trade/order/data.ts index 775e76a51..4eb98df87 100644 --- a/apps/web-antd/src/views/mall/trade/order/data.ts +++ b/apps/web-antd/src/views/mall/trade/order/data.ts @@ -12,7 +12,7 @@ import { getAreaTree } from '#/api/system/area'; import { getRangePickerDefaultProps } from '#/utils'; /** 关联数据 */ -let pickUpStoreList: MallDeliveryPickUpStoreApi.PickUpStore[] = []; +let pickUpStoreList: MallDeliveryPickUpStoreApi.DeliveryPickUpStore[] = []; getSimpleDeliveryPickUpStoreList().then((data) => { pickUpStoreList = data; }); diff --git a/apps/web-antd/src/views/mall/trade/order/detail/index.vue b/apps/web-antd/src/views/mall/trade/order/detail/index.vue index 0e7e4bfb5..4fdd3d2bb 100644 --- a/apps/web-antd/src/views/mall/trade/order/detail/index.vue +++ b/apps/web-antd/src/views/mall/trade/order/detail/index.vue @@ -54,11 +54,11 @@ const orderId = ref(0); const order = ref({ logs: [], }); -const deliveryExpressList = ref( - [], -); +const deliveryExpressList = ref([]); const expressTrackList = ref([]); -const pickUpStore = ref(); +const pickUpStore = ref< + MallDeliveryPickUpStoreApi.DeliveryPickUpStore | undefined +>(); const [OrderInfoDescriptions] = useDescription({ title: '订单信息', diff --git a/apps/web-antd/src/views/mall/trade/order/modules/address-form.vue b/apps/web-antd/src/views/mall/trade/order/modules/address-form.vue index 23a31489f..478fc42ad 100644 --- a/apps/web-antd/src/views/mall/trade/order/modules/address-form.vue +++ b/apps/web-antd/src/views/mall/trade/order/modules/address-form.vue @@ -40,7 +40,7 @@ const [Modal, modalApi] = useVbenModal({ // 提交表单 const data = await formApi.getValues(); try { - await updateOrderAddress(data as MallOrderApi.AddressRequest); + await updateOrderAddress(data as MallOrderApi.OrderUpdateAddressReqVO); // 关闭并提示 await modalApi.close(); emit('success'); diff --git a/apps/web-antd/src/views/mall/trade/order/modules/delivery-form.vue b/apps/web-antd/src/views/mall/trade/order/modules/delivery-form.vue index 727856c03..a3bf33d96 100644 --- a/apps/web-antd/src/views/mall/trade/order/modules/delivery-form.vue +++ b/apps/web-antd/src/views/mall/trade/order/modules/delivery-form.vue @@ -50,7 +50,7 @@ const [Modal, modalApi] = useVbenModal({ data.logisticsNo = ''; } try { - await deliveryOrder(data as MallOrderApi.DeliveryRequest); + await deliveryOrder(data as MallOrderApi.OrderUpdateDeliveryReqVO); // 关闭并提示 await modalApi.close(); emit('success'); diff --git a/apps/web-antd/src/views/mall/trade/order/modules/remark-form.vue b/apps/web-antd/src/views/mall/trade/order/modules/remark-form.vue index c8cd87619..61b5e6fb5 100644 --- a/apps/web-antd/src/views/mall/trade/order/modules/remark-form.vue +++ b/apps/web-antd/src/views/mall/trade/order/modules/remark-form.vue @@ -15,7 +15,7 @@ import { useRemarkFormSchema } from '../data'; const emit = defineEmits(['success']); -const formData = ref(); +const formData = ref(); const [Form, formApi] = useVbenForm({ commonConfig: { @@ -38,7 +38,8 @@ const [Modal, modalApi] = useVbenModal({ } modalApi.lock(); // 提交表单 - const data = (await formApi.getValues()) as MallOrderApi.RemarkRequest; + const data = + (await formApi.getValues()) as MallOrderApi.OrderUpdateRemarkReqVO; try { await updateOrderRemark(data); // 关闭并提示 diff --git a/apps/web-ele/src/api/mall/trade/afterSale/index.ts b/apps/web-ele/src/api/mall/trade/afterSale/index.ts index 74c684857..97bafedaf 100644 --- a/apps/web-ele/src/api/mall/trade/afterSale/index.ts +++ b/apps/web-ele/src/api/mall/trade/afterSale/index.ts @@ -5,85 +5,49 @@ import type { MallOrderApi } from '#/api/mall/trade/order'; import { requestClient } from '#/api/request'; export namespace MallAfterSaleApi { - /** 商品属性 */ - export interface ProductProperty { - /** 属性的编号 */ - propertyId?: null | number; - /** 属性的名称 */ - propertyName?: string; - /** 属性值的编号 */ - valueId?: null | number; - /** 属性值的名称 */ - valueName?: string; - } - /** 交易售后 */ export interface AfterSale { - /** 售后编号,主键自增 */ - id?: null | number; - /** 售后单号 */ - no?: string; - /** 退款状态 */ - status?: null | number; - /** 售后方式 */ - way?: null | number; - /** 售后类型 */ - type?: null | number; - /** 用户编号 */ - userId?: null | number; - /** 申请原因 */ - applyReason?: string; - /** 补充描述 */ - applyDescription?: string; - /** 补充凭证图片 */ - applyPicUrls?: string[]; - /** 交易订单编号 */ - orderId?: null | number; - /** 订单流水号 */ - orderNo?: string; - /** 交易订单项编号 */ - orderItemId?: null | number; - /** 商品 SPU 编号 */ - spuId?: null | number; - /** 商品 SPU 名称 */ - spuName?: string; - /** 商品 SKU 编号 */ - skuId?: null | number; - /** 属性数组 */ - properties?: ProductProperty[]; - /** 商品图片 */ - picUrl?: string; - /** 退货商品数量 */ - count?: null | number; - /** 审批时间 */ - auditTime?: Date; - /** 审批人 */ - auditUserId?: null | number; - /** 审批备注 */ - auditReason?: string; - /** 退款金额,单位:分 */ - refundPrice?: null | number; - /** 支付退款编号 */ - payRefundId?: null | number; - /** 退款时间 */ - refundTime?: Date; - /** 退货物流公司编号 */ - logisticsId?: null | number; - /** 退货物流单号 */ - logisticsNo?: string; - /** 退货时间 */ - deliveryTime?: Date; - /** 收货时间 */ - receiveTime?: Date; - /** 收货备注 */ - receiveReason?: string; + id?: number; // 售后编号 + no?: string; // 售后单号 + status?: number; // 退款状态 + way?: number; // 售后方式 + type?: number; // 售后类型 + userId?: number; // 用户编号 + applyReason?: string; // 申请原因 + applyDescription?: string; // 补充描述 + applyPicUrls?: string[]; // 补充凭证图片 + orderId?: number; // 交易订单编号 + orderNo?: string; // 订单流水号 + orderItemId?: number; // 交易订单项编号 + spuId?: number; // 商品 SPU 编号 + spuName?: string; // 商品 SPU 名称 + skuId?: number; // 商品 SKU 编号 + properties?: { + propertyId?: number; // 属性的编号 + propertyName?: string; // 属性的名称 + valueId?: number; // 属性值的编号 + valueName?: string; // 属性值的名称 + }[]; // 属性数组 + picUrl?: string; // 商品图片 + count?: number; // 退货商品数量 + auditTime?: Date; // 审批时间 + auditUserId?: number; // 审批人 + auditReason?: string; // 审批备注 + refundPrice?: number; // 退款金额,单位:分 + payRefundId?: number; // 支付退款编号 + refundTime?: Date; // 退款时间 + logisticsId?: number; // 退货物流公司编号 + logisticsNo?: string; // 退货物流单号 + deliveryTime?: Date; // 退货时间 + receiveTime?: Date; // 收货时间 + receiveReason?: string; // 收货备注 order?: MallOrderApi.Order; // 关联订单 orderItem?: MallOrderApi.OrderItem; // 关联订单项 logs?: any[]; // 关联售后日志 } /** 拒绝售后请求 */ - export interface DisagreeRequest { + export interface AfterSaleDisagreeReqVO { /** 售后编号 */ id: number; /** 拒绝原因 */ @@ -112,7 +76,9 @@ export function agreeAfterSale(id: number) { } /** 拒绝售后 */ -export function disagreeAfterSale(data: MallAfterSaleApi.DisagreeRequest) { +export function disagreeAfterSale( + data: MallAfterSaleApi.AfterSaleDisagreeReqVO, +) { return requestClient.put('/trade/after-sale/disagree', data); } diff --git a/apps/web-ele/src/api/mall/trade/brokerage/withdraw/index.ts b/apps/web-ele/src/api/mall/trade/brokerage/withdraw/index.ts index 12af60518..0cf604bca 100644 --- a/apps/web-ele/src/api/mall/trade/brokerage/withdraw/index.ts +++ b/apps/web-ele/src/api/mall/trade/brokerage/withdraw/index.ts @@ -27,7 +27,7 @@ export namespace MallBrokerageWithdrawApi { } /** 驳回申请请求 */ - export interface RejectRequest { + export interface BrokerageWithdrawRejectReqVO { id: number; // 编号 auditReason: string; // 驳回原因 } @@ -40,13 +40,6 @@ export function getBrokerageWithdrawPage(params: PageParam) { >('/trade/brokerage-withdraw/page', { params }); } -/** 查询佣金提现详情 */ -export function getBrokerageWithdraw(id: number) { - return requestClient.get( - `/trade/brokerage-withdraw/get?id=${id}`, - ); -} - /** 佣金提现 - 通过申请 */ export function approveBrokerageWithdraw(id: number) { return requestClient.put(`/trade/brokerage-withdraw/approve?id=${id}`); @@ -54,7 +47,7 @@ export function approveBrokerageWithdraw(id: number) { /** 审核佣金提现 - 驳回申请 */ export function rejectBrokerageWithdraw( - data: MallBrokerageWithdrawApi.RejectRequest, + data: MallBrokerageWithdrawApi.BrokerageWithdrawRejectReqVO, ) { return requestClient.put('/trade/brokerage-withdraw/reject', data); } diff --git a/apps/web-ele/src/api/mall/trade/delivery/express/index.ts b/apps/web-ele/src/api/mall/trade/delivery/express/index.ts index 071dd2f16..af3911c1e 100644 --- a/apps/web-ele/src/api/mall/trade/delivery/express/index.ts +++ b/apps/web-ele/src/api/mall/trade/delivery/express/index.ts @@ -5,28 +5,12 @@ import { requestClient } from '#/api/request'; export namespace MallDeliveryExpressApi { /** 快递公司 */ export interface DeliveryExpress { - /** 编号 */ - id: number; - /** 快递公司编码 */ - code: string; - /** 快递公司名称 */ - name: string; - /** 快递公司 logo */ - logo: string; - /** 排序 */ - sort: number; - /** 状态 */ - status: number; - } - - /** 快递公司精简信息 */ - export interface SimpleDeliveryExpress { - /** 编号 */ - id: number; - /** 快递公司编码 */ - code: string; - /** 快递公司名称 */ - name: string; + id: number; // 编号 + code: string; // 快递公司编码 + name: string; // 快递公司名称 + logo: string; // 快递公司 logo + sort: number; // 排序 + status: number; // 状态 } } @@ -47,7 +31,7 @@ export function getDeliveryExpress(id: number) { /** 获得快递公司精简信息列表 */ export function getSimpleDeliveryExpressList() { - return requestClient.get( + return requestClient.get( '/trade/delivery/express/list-all-simple', ); } diff --git a/apps/web-ele/src/api/mall/trade/delivery/expressTemplate/index.ts b/apps/web-ele/src/api/mall/trade/delivery/expressTemplate/index.ts index be6a38a6d..92c7ad0e1 100644 --- a/apps/web-ele/src/api/mall/trade/delivery/expressTemplate/index.ts +++ b/apps/web-ele/src/api/mall/trade/delivery/expressTemplate/index.ts @@ -3,86 +3,64 @@ import type { PageParam, PageResult } from '@vben/request'; import { requestClient } from '#/api/request'; export namespace MallDeliveryExpressTemplateApi { + /** 快递运费模板 */ + export interface DeliveryExpressTemplate { + id: number; // 编号 + name: string; // 模板名称 + chargeMode: number; // 计费方式 + sort: number; // 排序 + charges: DeliveryExpressTemplateCharge[]; // 计费区域列表 + frees: DeliveryExpressTemplateFree[]; // 包邮区域列表 + } + /** 运费模板计费 */ - export interface TemplateCharge { - /** 区域编号列表 */ - areaIds: number[]; - /** 首件数量 */ - startCount: number; - /** 首件价格,单位:分 */ - startPrice: number; - /** 续件数量 */ - extraCount: number; - /** 续件价格,单位:分 */ - extraPrice: number; + export interface DeliveryExpressTemplateCharge { + areaIds: number[]; // 区域编号列表 + startCount: number; // 首件数量 + startPrice: number; // 首件价格,单位:分 + extraCount: number; // 续件数量 + extraPrice: number; // 续件价格,单位:分 } /** 运费模板包邮 */ - export interface TemplateFree { - /** 区域编号列表 */ - areaIds: number[]; - /** 包邮件数 */ - freeCount: number; - /** 包邮金额,单位:分 */ - freePrice: number; - } - - /** 快递运费模板 */ - export interface ExpressTemplate { - /** 编号 */ - id: number; - /** 模板名称 */ - name: string; - /** 计费方式 */ - chargeMode: number; - /** 排序 */ - sort: number; - /** 计费区域列表 */ - charges: TemplateCharge[]; - /** 包邮区域列表 */ - frees: TemplateFree[]; - } - - /** 运费模板精简信息 */ - export interface SimpleTemplate { - /** 编号 */ - id: number; - /** 模板名称 */ - name: string; + export interface DeliveryExpressTemplateFree { + areaIds: number[]; // 区域编号列表 + freeCount: number; // 包邮件数 + freePrice: number; // 包邮金额,单位:分 } } /** 查询快递运费模板列表 */ export function getDeliveryExpressTemplatePage(params: PageParam) { return requestClient.get< - PageResult + PageResult >('/trade/delivery/express-template/page', { params }); } /** 查询快递运费模板详情 */ export function getDeliveryExpressTemplate(id: number) { - return requestClient.get( + return requestClient.get( `/trade/delivery/express-template/get?id=${id}`, ); } /** 查询快递运费模板详情 */ export function getSimpleTemplateList() { - return requestClient.get( - '/trade/delivery/express-template/list-all-simple', - ); + return requestClient.get< + MallDeliveryExpressTemplateApi.DeliveryExpressTemplate[] + >('/trade/delivery/express-template/list-all-simple'); } /** 新增快递运费模板 */ export function createDeliveryExpressTemplate( - data: MallDeliveryExpressTemplateApi.ExpressTemplate, + data: MallDeliveryExpressTemplateApi.DeliveryExpressTemplate, ) { return requestClient.post('/trade/delivery/express-template/create', data); } /** 修改快递运费模板 */ export function updateDeliveryExpressTemplate( - data: MallDeliveryExpressTemplateApi.ExpressTemplate, + data: MallDeliveryExpressTemplateApi.DeliveryExpressTemplate, ) { return requestClient.put('/trade/delivery/express-template/update', data); } diff --git a/apps/web-ele/src/api/mall/trade/delivery/pickUpStore/index.ts b/apps/web-ele/src/api/mall/trade/delivery/pickUpStore/index.ts index 321df41fb..6844f0039 100644 --- a/apps/web-ele/src/api/mall/trade/delivery/pickUpStore/index.ts +++ b/apps/web-ele/src/api/mall/trade/delivery/pickUpStore/index.ts @@ -4,35 +4,21 @@ import { requestClient } from '#/api/request'; export namespace MallDeliveryPickUpStoreApi { /** 自提门店 */ - export interface PickUpStore { - /** 编号 */ - id: number; - /** 门店名称 */ - name: string; - /** 门店简介 */ - introduction: string; - /** 联系电话 */ - phone: string; - /** 区域编号 */ - areaId: number; - /** 详细地址 */ - detailAddress: string; - /** 门店 logo */ - logo: string; - /** 营业开始时间 */ - openingTime: string; - /** 营业结束时间 */ - closingTime: string; - /** 纬度 */ - latitude: number; - /** 经度 */ - longitude: number; - /** 状态 */ - status: number; - /** 营业时间 用于fieldMappingTime */ - rangeTime: any[]; - /** 绑定用户编号组数 */ - verifyUserIds?: number[]; + export interface DeliveryPickUpStore { + id: number; // 编号 + name: string; // 门店名称 + introduction: string; // 门店简介 + phone: string; // 联系电话 + areaId: number; // 区域编号 + detailAddress: string; // 详细地址 + logo: string; // 门店 logo + openingTime: string; // 营业开始时间 + closingTime: string; // 营业结束时间 + latitude: number; // 纬度 + longitude: number; // 经度 + status: number; // 状态 + rangeTime: any[]; // 营业时间,用于 fieldMappingTime + verifyUserIds?: number[]; // 绑定用户编号组数 verifyUsers?: any[]; } @@ -46,36 +32,35 @@ export namespace MallDeliveryPickUpStoreApi { /** 查询自提门店列表 */ export function getDeliveryPickUpStorePage(params: PageParam) { - return requestClient.get>( - '/trade/delivery/pick-up-store/page', - { params }, - ); + return requestClient.get< + PageResult + >('/trade/delivery/pick-up-store/page', { params }); } /** 查询自提门店详情 */ export function getDeliveryPickUpStore(id: number) { - return requestClient.get( + return requestClient.get( `/trade/delivery/pick-up-store/get?id=${id}`, ); } /** 查询自提门店精简列表 */ export function getSimpleDeliveryPickUpStoreList() { - return requestClient.get( + return requestClient.get( '/trade/delivery/pick-up-store/simple-list', ); } /** 新增自提门店 */ export function createDeliveryPickUpStore( - data: MallDeliveryPickUpStoreApi.PickUpStore, + data: MallDeliveryPickUpStoreApi.DeliveryPickUpStore, ) { return requestClient.post('/trade/delivery/pick-up-store/create', data); } /** 修改自提门店 */ export function updateDeliveryPickUpStore( - data: MallDeliveryPickUpStoreApi.PickUpStore, + data: MallDeliveryPickUpStoreApi.DeliveryPickUpStore, ) { return requestClient.put('/trade/delivery/pick-up-store/update', data); } diff --git a/apps/web-ele/src/api/mall/trade/order/index.ts b/apps/web-ele/src/api/mall/trade/order/index.ts index c2410f9cf..cea0d4672 100644 --- a/apps/web-ele/src/api/mall/trade/order/index.ts +++ b/apps/web-ele/src/api/mall/trade/order/index.ts @@ -3,231 +3,136 @@ import type { PageParam, PageResult } from '@vben/request'; import { requestClient } from '#/api/request'; export namespace MallOrderApi { - /** 商品属性 */ - export interface ProductProperty { - /** 属性的编号 */ - propertyId?: number; - /** 属性的名称 */ - propertyName?: string; - /** 属性值的编号 */ - valueId?: number; - /** 属性值的名称 */ - valueName?: string; + /** 订单信息 */ + export interface Order { + id?: number; // 订单编号 + no?: string; // 订单流水号 + createTime?: Date; // 下单时间 + type?: number; // 订单类型 + terminal?: number; // 订单来源 + userId?: number; // 用户编号 + userIp?: string; // 用户 IP + userRemark?: string; // 用户备注 + status?: number; // 订单状态 + productCount?: number; // 购买的商品数量 + finishTime?: Date; // 订单完成时间 + cancelTime?: Date; // 订单取消时间 + cancelType?: number; // 取消类型 + remark?: string; // 商家备注 + payOrderId?: number; // 支付订单编号 + payStatus?: boolean; // 是否已支付 + payTime?: Date; // 付款时间 + payChannelCode?: string; // 支付渠道 + totalPrice?: number; // 商品原价(总) + discountPrice?: number; // 订单优惠(总) + deliveryPrice?: number; // 运费金额 + adjustPrice?: number; // 订单调价(总) + payPrice?: number; // 应付金额(总) + deliveryType?: number; // 发货方式 + pickUpStoreId?: number; // 自提门店编号 + pickUpVerifyCode?: string; // 自提核销码 + deliveryTemplateId?: number; // 配送模板编号 + logisticsId?: number; // 发货物流公司编号 + logisticsNo?: string; // 发货物流单号 + deliveryTime?: Date; // 发货时间 + receiveTime?: Date; // 收货时间 + receiverName?: string; // 收件人名称 + receiverMobile?: string; // 收件人手机 + receiverPostCode?: number; // 收件人邮编 + receiverAreaId?: number; // 收件人地区编号 + receiverAreaName?: string; // 收件人地区名字 + receiverDetailAddress?: string; // 收件人详细地址 + afterSaleStatus?: number; // 售后状态 + refundPrice?: number; // 退款金额 + couponId?: number; // 优惠劵编号 + couponPrice?: number; // 优惠劵减免金额 + pointPrice?: number; // 积分抵扣的金额 + vipPrice?: number; // VIP 减免金额 + items?: OrderItem[]; // 订单项列表 + user?: { + // 下单用户信息 + avatar?: string; // 用户头像 + id?: number; // 用户编号 + nickname?: string; // 用户昵称 + }; + brokerageUser?: { + // 推广用户信息 + avatar?: string; // 用户头像 + id?: number; // 用户编号 + nickname?: string; // 用户昵称 + }; // 推广用户信息 + logs?: OrderLog[]; // 订单操作日志 } /** 订单项 */ export interface OrderItem { - /** 编号 */ - id?: number; - /** 用户编号 */ - userId?: number; - /** 订单编号 */ - orderId?: number; - /** 商品 SPU 编号 */ - spuId?: number; - /** 商品 SPU 名称 */ - spuName?: string; - /** 商品 SKU 编号 */ - skuId?: number; - /** 商品图片 */ - picUrl?: string; - /** 购买数量 */ - count?: number; - /** 商品原价(总) */ - originalPrice?: number; - /** 商品原价(单) */ - originalUnitPrice?: number; - /** 商品优惠(总) */ - discountPrice?: number; - /** 商品实付金额(总) */ - payPrice?: number; - /** 子订单分摊金额(总) */ - orderPartPrice?: number; - /** 分摊后子订单实付金额(总) */ - orderDividePrice?: number; - /** 售后状态 */ - afterSaleStatus?: number; - /** 属性数组 */ - properties?: ProductProperty[]; + id?: number; // 编号 + userId?: number; // 用户编号 + orderId?: number; // 订单编号 + spuId?: number; // 商品 SPU 编号 + spuName?: string; // 商品 SPU 名称 + skuId?: number; // 商品 SKU 编号 + picUrl?: string; // 商品图片 + count?: number; // 购买数量 + originalPrice?: number; // 商品原价(总) + originalUnitPrice?: number; // 商品原价(单) + discountPrice?: number; // 商品优惠(总) + payPrice?: number; // 商品实付金额(总) + orderPartPrice?: number; // 子订单分摊金额(总) + orderDividePrice?: number; // 分摊后子订单实付金额(总) + afterSaleStatus?: number; // 售后状态 + properties?: { + propertyId?: number; // 属性的编号 + propertyName?: string; // 属性的名称 + valueId?: number; // 属性值的编号 + valueName?: string; // 属性值的名称 + }[]; // 属性数组 price?: number; } /** 订单日志 */ export interface OrderLog { - /** 日志内容 */ - content?: string; - /** 创建时间 */ - createTime?: Date; - /** 用户类型 */ - userType?: number; - /** 用户编号 */ - userId?: number; + content?: string; // 日志内容 + createTime?: Date; // 创建时间 + userType?: number; // 用户类型 + userId?: number; // 用户编号 } - /** 订单 */ - export interface Order { - /** 订单编号 */ - id?: number; - /** 订单流水号 */ - no?: string; - /** 下单时间 */ - createTime?: Date; - /** 订单类型 */ - type?: number; - /** 订单来源 */ - terminal?: number; - /** 用户编号 */ - userId?: number; - /** 用户 IP */ - userIp?: string; - /** 用户备注 */ - userRemark?: string; - /** 订单状态 */ - status?: number; - /** 购买的商品数量 */ - productCount?: number; - /** 订单完成时间 */ - finishTime?: Date; - /** 订单取消时间 */ - cancelTime?: Date; - /** 取消类型 */ - cancelType?: number; - /** 商家备注 */ - remark?: string; - /** 支付订单编号 */ - payOrderId?: number; - /** 是否已支付 */ - payStatus?: boolean; - /** 付款时间 */ - payTime?: Date; - /** 支付渠道 */ - payChannelCode?: string; - /** 商品原价(总) */ - totalPrice?: number; - /** 订单优惠(总) */ - discountPrice?: number; - /** 运费金额 */ - deliveryPrice?: number; - /** 订单调价(总) */ - adjustPrice?: number; - /** 应付金额(总) */ - payPrice?: number; - /** 发货方式 */ - deliveryType?: number; - /** 自提门店编号 */ - pickUpStoreId?: number; - /** 自提核销码 */ - pickUpVerifyCode?: string; - /** 配送模板编号 */ - deliveryTemplateId?: number; - /** 发货物流公司编号 */ - logisticsId?: number; - /** 发货物流单号 */ - logisticsNo?: string; - /** 发货时间 */ - deliveryTime?: Date; - /** 收货时间 */ - receiveTime?: Date; - /** 收件人名称 */ - receiverName?: string; - /** 收件人手机 */ - receiverMobile?: string; - /** 收件人邮编 */ - receiverPostCode?: number; - /** 收件人地区编号 */ - receiverAreaId?: number; - /** 收件人地区名字 */ - receiverAreaName?: string; - /** 收件人详细地址 */ - receiverDetailAddress?: string; - /** 售后状态 */ - afterSaleStatus?: number; - /** 退款金额 */ - refundPrice?: number; - /** 优惠劵编号 */ - couponId?: number; - /** 优惠劵减免金额 */ - couponPrice?: number; - /** 积分抵扣的金额 */ - pointPrice?: number; - /** VIP 减免金额 */ - vipPrice?: number; - /** 订单项列表 */ - items?: OrderItem[]; - /** 下单用户信息 */ - user?: { - /** 用户头像 */ - avatar?: string; - /** 用户编号 */ - id?: number; - /** 用户昵称 */ - nickname?: string; - }; - /** 推广用户信息 */ - brokerageUser?: { - /** 用户头像 */ - avatar?: string; - /** 用户编号 */ - id?: number; - /** 用户昵称 */ - nickname?: string; - }; - /** 订单操作日志 */ - logs?: OrderLog[]; - } - - /** 交易订单统计 */ - export interface OrderSummary { - /** 订单数量 */ - orderCount: number; - /** 订单金额 */ - orderPayPrice: number; - /** 退款单数 */ - afterSaleCount: number; - /** 退款金额 */ - afterSalePrice: number; + /** 交易订单统计响应 */ + export interface OrderSummaryRespVO { + orderCount: number; // 订单数量 + orderPayPrice: number; // 订单金额 + afterSaleCount: number; // 退款单数 + afterSalePrice: number; // 退款金额 } /** 订单发货请求 */ - export interface DeliveryRequest { - /** 订单编号 */ - id?: number; - /** 发货方式 */ - expressType: string; - /** 物流公司编号 */ - logisticsId: number; - /** 物流编号 */ - logisticsNo: string; + export interface OrderUpdateDeliveryReqVO { + id?: number; // 订单编号 + expressType: string; // 发货方式 + logisticsId: number; // 物流公司编号 + logisticsNo: string; // 物流编号 } /** 订单备注请求 */ - export interface RemarkRequest { - /** 订单编号 */ - id: number; - /** 备注 */ - remark: string; + export interface OrderUpdateRemarkReqVO { + id: number; // 订单编号 + remark: string; // 备注 } /** 订单调价请求 */ - export interface PriceRequest { - /** 订单编号 */ - id: number; - /** 调整金额,单位:分 */ - adjustPrice: number; + export interface OrderUpdatePriceReqVO { + id: number; // 订单编号 + adjustPrice: number; // 调整金额,单位:分 } /** 订单地址请求 */ - export interface AddressRequest { - /** 订单编号 */ - id: number; - /** 收件人名称 */ - receiverName: string; - /** 收件人手机 */ - receiverMobile: string; - /** 收件人地区编号 */ - receiverAreaId: number; - /** 收件人详细地址 */ - receiverDetailAddress: string; + export interface OrderUpdateAddressReqVO { + id: number; // 订单编号 + receiverName: string; // 收件人名称 + receiverMobile: string; // 收件人手机 + receiverAreaId: number; // 收件人地区编号 + receiverDetailAddress: string; // 收件人详细地址 } } @@ -243,9 +148,12 @@ export function getOrderPage(params: PageParam) { /** 查询交易订单统计 */ export function getOrderSummary(params: any) { - return requestClient.get('/trade/order/summary', { - params, - }); + return requestClient.get( + '/trade/order/summary', + { + params, + }, + ); } /** 查询交易订单详情 */ @@ -261,22 +169,22 @@ export function getExpressTrackList(id: number) { } /** 订单发货 */ -export function deliveryOrder(data: MallOrderApi.DeliveryRequest) { +export function deliveryOrder(data: MallOrderApi.OrderUpdateDeliveryReqVO) { return requestClient.put('/trade/order/delivery', data); } /** 订单备注 */ -export function updateOrderRemark(data: MallOrderApi.RemarkRequest) { +export function updateOrderRemark(data: MallOrderApi.OrderUpdateRemarkReqVO) { return requestClient.put('/trade/order/update-remark', data); } /** 订单调价 */ -export function updateOrderPrice(data: MallOrderApi.PriceRequest) { +export function updateOrderPrice(data: MallOrderApi.OrderUpdatePriceReqVO) { return requestClient.put('/trade/order/update-price', data); } /** 修改订单地址 */ -export function updateOrderAddress(data: MallOrderApi.AddressRequest) { +export function updateOrderAddress(data: MallOrderApi.OrderUpdateAddressReqVO) { return requestClient.put('/trade/order/update-address', data); } diff --git a/apps/web-ele/src/views/mall/trade/afterSale/modules/disagree-form.vue b/apps/web-ele/src/views/mall/trade/afterSale/modules/disagree-form.vue index 8675c0553..c9d1adf23 100644 --- a/apps/web-ele/src/views/mall/trade/afterSale/modules/disagree-form.vue +++ b/apps/web-ele/src/views/mall/trade/afterSale/modules/disagree-form.vue @@ -39,7 +39,7 @@ const [Modal, modalApi] = useVbenModal({ // 提交表单 try { const data = - (await formApi.getValues()) as MallAfterSaleApi.DisagreeRequest; + (await formApi.getValues()) as MallAfterSaleApi.AfterSaleDisagreeReqVO; await disagreeAfterSale(data); // 关闭并提示 await modalApi.close(); diff --git a/apps/web-ele/src/views/mall/trade/delivery/expressTemplate/index.vue b/apps/web-ele/src/views/mall/trade/delivery/expressTemplate/index.vue index b9c1cc0b5..fef323572 100644 --- a/apps/web-ele/src/views/mall/trade/delivery/expressTemplate/index.vue +++ b/apps/web-ele/src/views/mall/trade/delivery/expressTemplate/index.vue @@ -32,13 +32,15 @@ function handleCreate() { } /** 编辑快递模板 */ -function handleEdit(row: MallDeliveryExpressTemplateApi.ExpressTemplate) { +function handleEdit( + row: MallDeliveryExpressTemplateApi.DeliveryExpressTemplate, +) { formModalApi.setData(row).open(); } /** 删除快递模板 */ async function handleDelete( - row: MallDeliveryExpressTemplateApi.ExpressTemplate, + row: MallDeliveryExpressTemplateApi.DeliveryExpressTemplate, ) { const loadingInstance = ElLoading.service({ text: $t('ui.actionMessage.deleting', [row.name]), @@ -79,7 +81,7 @@ const [Grid, gridApi] = useVbenVxeGrid({ refresh: true, search: true, }, - } as VxeTableGridOptions, + } as VxeTableGridOptions, }); diff --git a/apps/web-ele/src/views/mall/trade/delivery/expressTemplate/modules/charge-item-form.vue b/apps/web-ele/src/views/mall/trade/delivery/expressTemplate/modules/charge-item-form.vue index 1d3c2f09a..9025baac3 100644 --- a/apps/web-ele/src/views/mall/trade/delivery/expressTemplate/modules/charge-item-form.vue +++ b/apps/web-ele/src/views/mall/trade/delivery/expressTemplate/modules/charge-item-form.vue @@ -11,7 +11,7 @@ import { TableAction, useVbenVxeGrid } from '#/adapter/vxe-table'; import { CHARGE_MODE_TITLE_MAP, useChargesColumns } from '../data'; interface Props { - items?: MallDeliveryExpressTemplateApi.TemplateCharge[]; + items?: MallDeliveryExpressTemplateApi.DeliveryExpressTemplateCharge[]; chargeMode?: number; areaTree?: SystemAreaApi.Area[]; } diff --git a/apps/web-ele/src/views/mall/trade/delivery/expressTemplate/modules/form.vue b/apps/web-ele/src/views/mall/trade/delivery/expressTemplate/modules/form.vue index cc331ad21..25b8c238d 100644 --- a/apps/web-ele/src/views/mall/trade/delivery/expressTemplate/modules/form.vue +++ b/apps/web-ele/src/views/mall/trade/delivery/expressTemplate/modules/form.vue @@ -23,7 +23,7 @@ import ChargeItemForm from './charge-item-form.vue'; import FreeItemForm from './free-item-form.vue'; const emit = defineEmits(['success']); -const formData = ref(); +const formData = ref(); const chargeItemFormRef = ref>(); const freeItemFormRef = ref>(); const areaTree = ref([]); @@ -55,10 +55,10 @@ const [Form, formApi] = useVbenForm({ /** 更新运费设置 */ const handleUpdateCharges = async ( - charges: MallDeliveryExpressTemplateApi.TemplateCharge[], + charges: MallDeliveryExpressTemplateApi.DeliveryExpressTemplateCharge[], ) => { formData.value = - await formApi.getValues(); + await formApi.getValues(); formData.value.charges = charges; await formApi.setValues({ charges, @@ -67,10 +67,10 @@ const handleUpdateCharges = async ( /** 更新包邮设置 */ const handleUpdateFrees = async ( - frees: MallDeliveryExpressTemplateApi.TemplateFree[], + frees: MallDeliveryExpressTemplateApi.DeliveryExpressTemplateFree[], ) => { formData.value = - await formApi.getValues(); + await formApi.getValues(); formData.value.frees = frees; await formApi.setValues({ frees, @@ -102,17 +102,19 @@ const [Modal, modalApi] = useVbenModal({ // 提交表单 const data = cloneDeep( await formApi.getValues(), - ) as MallDeliveryExpressTemplateApi.ExpressTemplate; + ) as MallDeliveryExpressTemplateApi.DeliveryExpressTemplate; try { // 转换金额单位 data.charges?.forEach( - (item: MallDeliveryExpressTemplateApi.TemplateCharge) => { + ( + item: MallDeliveryExpressTemplateApi.DeliveryExpressTemplateCharge, + ) => { item.startPrice = yuanToFen(item.startPrice); item.extraPrice = yuanToFen(item.extraPrice); }, ); data.frees?.forEach( - (item: MallDeliveryExpressTemplateApi.TemplateFree) => { + (item: MallDeliveryExpressTemplateApi.DeliveryExpressTemplateFree) => { item.freePrice = yuanToFen(item.freePrice); }, ); @@ -134,7 +136,7 @@ const [Modal, modalApi] = useVbenModal({ } // 加载数据 const data = - modalApi.getData(); + modalApi.getData(); if (!data || !data.id) { return; } @@ -143,13 +145,15 @@ const [Modal, modalApi] = useVbenModal({ formData.value = await getDeliveryExpressTemplate(data.id); // 转换金额单位 formData.value.charges?.forEach( - (item: MallDeliveryExpressTemplateApi.TemplateCharge) => { + ( + item: MallDeliveryExpressTemplateApi.DeliveryExpressTemplateCharge, + ) => { item.startPrice = Number.parseFloat(fenToYuan(item.startPrice)); item.extraPrice = Number.parseFloat(fenToYuan(item.extraPrice)); }, ); formData.value.frees?.forEach( - (item: MallDeliveryExpressTemplateApi.TemplateFree) => { + (item: MallDeliveryExpressTemplateApi.DeliveryExpressTemplateFree) => { item.freePrice = Number.parseFloat(fenToYuan(item.freePrice)); }, ); diff --git a/apps/web-ele/src/views/mall/trade/delivery/expressTemplate/modules/free-item-form.vue b/apps/web-ele/src/views/mall/trade/delivery/expressTemplate/modules/free-item-form.vue index 64518ead3..bbdfacf8b 100644 --- a/apps/web-ele/src/views/mall/trade/delivery/expressTemplate/modules/free-item-form.vue +++ b/apps/web-ele/src/views/mall/trade/delivery/expressTemplate/modules/free-item-form.vue @@ -11,7 +11,7 @@ import { TableAction, useVbenVxeGrid } from '#/adapter/vxe-table'; import { FREE_MODE_TITLE_MAP, useFreesColumns } from '../data'; interface Props { - items?: MallDeliveryExpressTemplateApi.TemplateFree[]; + items?: MallDeliveryExpressTemplateApi.DeliveryExpressTemplateFree[]; chargeMode?: number; areaTree?: SystemAreaApi.Area[]; } diff --git a/apps/web-ele/src/views/mall/trade/delivery/pickUpStore/index.vue b/apps/web-ele/src/views/mall/trade/delivery/pickUpStore/index.vue index a36a448ac..8f470c089 100644 --- a/apps/web-ele/src/views/mall/trade/delivery/pickUpStore/index.vue +++ b/apps/web-ele/src/views/mall/trade/delivery/pickUpStore/index.vue @@ -38,17 +38,19 @@ function handleCreate() { } /** 编辑门店 */ -function handleEdit(row: MallDeliveryPickUpStoreApi.PickUpStore) { +function handleEdit(row: MallDeliveryPickUpStoreApi.DeliveryPickUpStore) { formModalApi.setData(row).open(); } /** 绑定店员 */ -function handleBind(row: MallDeliveryPickUpStoreApi.PickUpStore) { +function handleBind(row: MallDeliveryPickUpStoreApi.DeliveryPickUpStore) { bindFormModalApi.setData(row).open(); } /** 删除门店 */ -async function handleDelete(row: MallDeliveryPickUpStoreApi.PickUpStore) { +async function handleDelete( + row: MallDeliveryPickUpStoreApi.DeliveryPickUpStore, +) { const loadingInstance = ElLoading.service({ text: $t('ui.actionMessage.deleting', [row.name]), }); @@ -88,7 +90,7 @@ const [Grid, gridApi] = useVbenVxeGrid({ refresh: true, search: true, }, - } as VxeTableGridOptions, + } as VxeTableGridOptions, }); diff --git a/apps/web-ele/src/views/mall/trade/delivery/pickUpStore/modules/bind-form.vue b/apps/web-ele/src/views/mall/trade/delivery/pickUpStore/modules/bind-form.vue index 8358ecfde..5d747f3b5 100644 --- a/apps/web-ele/src/views/mall/trade/delivery/pickUpStore/modules/bind-form.vue +++ b/apps/web-ele/src/views/mall/trade/delivery/pickUpStore/modules/bind-form.vue @@ -17,7 +17,7 @@ import { $t } from '#/locales'; import { useBindFormSchema } from '../data'; const emit = defineEmits(['success']); -const formData = ref(); +const formData = ref(); const [Form, formApi] = useVbenForm({ commonConfig: { diff --git a/apps/web-ele/src/views/mall/trade/delivery/pickUpStore/modules/form.vue b/apps/web-ele/src/views/mall/trade/delivery/pickUpStore/modules/form.vue index 7ab388c69..0ca3656d5 100644 --- a/apps/web-ele/src/views/mall/trade/delivery/pickUpStore/modules/form.vue +++ b/apps/web-ele/src/views/mall/trade/delivery/pickUpStore/modules/form.vue @@ -6,7 +6,7 @@ import { computed, ref } from 'vue'; import { useVbenModal } from '@vben/common-ui'; import dayjs from 'dayjs'; -import { ElButton, ElMessage } from 'element-plus'; +import { ElButton, ElDialog, ElMessage } from 'element-plus'; import { useVbenForm } from '#/adapter/form'; import { getTradeConfig } from '#/api/mall/trade/config'; @@ -20,7 +20,7 @@ import { $t } from '#/locales'; import { useFormSchema } from '../data'; const emit = defineEmits(['success']); -const formData = ref(); +const formData = ref(); const getTitle = computed(() => { return formData.value?.id ? $t('ui.actionTitle.edit', ['门店']) @@ -94,7 +94,7 @@ const [Modal, modalApi] = useVbenModal({ modalApi.lock(); // 提交表单 const data = - (await formApi.getValues()) as MallDeliveryPickUpStoreApi.PickUpStore; + (await formApi.getValues()) as MallDeliveryPickUpStoreApi.DeliveryPickUpStore; try { await (formData.value?.id ? updateDeliveryPickUpStore(data) @@ -113,7 +113,8 @@ const [Modal, modalApi] = useVbenModal({ return; } // 加载数据 - const data = modalApi.getData(); + const data = + modalApi.getData(); if (!data || !data.id) { // 初始化地图 await initTencentLbsMap(); @@ -146,16 +147,11 @@ const [Modal, modalApi] = useVbenModal({ - + - + diff --git a/apps/web-ele/src/views/mall/trade/order/data.ts b/apps/web-ele/src/views/mall/trade/order/data.ts index de16a0752..0d4e92364 100644 --- a/apps/web-ele/src/views/mall/trade/order/data.ts +++ b/apps/web-ele/src/views/mall/trade/order/data.ts @@ -12,7 +12,7 @@ import { getAreaTree } from '#/api/system/area'; import { getRangePickerDefaultProps } from '#/utils'; /** 关联数据 */ -let pickUpStoreList: MallDeliveryPickUpStoreApi.PickUpStore[] = []; +let pickUpStoreList: MallDeliveryPickUpStoreApi.DeliveryPickUpStore[] = []; getSimpleDeliveryPickUpStoreList().then((data) => { pickUpStoreList = data; }); diff --git a/apps/web-ele/src/views/mall/trade/order/detail/index.vue b/apps/web-ele/src/views/mall/trade/order/detail/index.vue index bb4629305..4a84bd8ed 100644 --- a/apps/web-ele/src/views/mall/trade/order/detail/index.vue +++ b/apps/web-ele/src/views/mall/trade/order/detail/index.vue @@ -51,11 +51,11 @@ const orderId = ref(0); const order = ref({ logs: [], }); -const deliveryExpressList = ref( - [], -); +const deliveryExpressList = ref([]); const expressTrackList = ref([]); -const pickUpStore = ref(); +const pickUpStore = ref< + MallDeliveryPickUpStoreApi.DeliveryPickUpStore | undefined +>(); const [OrderInfoDescriptions] = useDescription({ title: '订单信息', diff --git a/apps/web-ele/src/views/mall/trade/order/modules/address-form.vue b/apps/web-ele/src/views/mall/trade/order/modules/address-form.vue index b72299a37..18712c94d 100644 --- a/apps/web-ele/src/views/mall/trade/order/modules/address-form.vue +++ b/apps/web-ele/src/views/mall/trade/order/modules/address-form.vue @@ -40,7 +40,7 @@ const [Modal, modalApi] = useVbenModal({ // 提交表单 const data = await formApi.getValues(); try { - await updateOrderAddress(data as MallOrderApi.AddressRequest); + await updateOrderAddress(data as MallOrderApi.OrderUpdateAddressReqVO); // 关闭并提示 await modalApi.close(); emit('success'); diff --git a/apps/web-ele/src/views/mall/trade/order/modules/delivery-form.vue b/apps/web-ele/src/views/mall/trade/order/modules/delivery-form.vue index a284d6287..1e95cc849 100644 --- a/apps/web-ele/src/views/mall/trade/order/modules/delivery-form.vue +++ b/apps/web-ele/src/views/mall/trade/order/modules/delivery-form.vue @@ -50,7 +50,7 @@ const [Modal, modalApi] = useVbenModal({ data.logisticsNo = ''; } try { - await deliveryOrder(data as MallOrderApi.DeliveryRequest); + await deliveryOrder(data as MallOrderApi.OrderUpdateDeliveryReqVO); // 关闭并提示 await modalApi.close(); emit('success'); diff --git a/apps/web-ele/src/views/mall/trade/order/modules/remark-form.vue b/apps/web-ele/src/views/mall/trade/order/modules/remark-form.vue index fe8dc0611..7fb5d296a 100644 --- a/apps/web-ele/src/views/mall/trade/order/modules/remark-form.vue +++ b/apps/web-ele/src/views/mall/trade/order/modules/remark-form.vue @@ -15,7 +15,7 @@ import { useRemarkFormSchema } from '../data'; const emit = defineEmits(['success']); -const formData = ref(); +const formData = ref(); const [Form, formApi] = useVbenForm({ commonConfig: { @@ -38,7 +38,8 @@ const [Modal, modalApi] = useVbenModal({ } modalApi.lock(); // 提交表单 - const data = (await formApi.getValues()) as MallOrderApi.RemarkRequest; + const data = + (await formApi.getValues()) as MallOrderApi.OrderUpdateRemarkReqVO; try { await updateOrderRemark(data); // 关闭并提示 From f278ebaf79658830e39178cefa82f443299ab7de Mon Sep 17 00:00:00 2001 From: YunaiV Date: Thu, 20 Nov 2025 11:00:24 +0800 Subject: [PATCH 02/10] =?UTF-8?q?feat=EF=BC=9A=E3=80=90antd/ele=E3=80=91?= =?UTF-8?q?=E3=80=90mall/stat=E3=80=91=E4=BC=98=E5=8C=96=20api=20=E7=9A=84?= =?UTF-8?q?=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/api/mall/statistics/member.ts | 42 +++++++-------- .../src/api/mall/statistics/product.ts | 53 +++++++------------ .../views/mall/statistics/member/index.vue | 2 +- .../statistics/member/modules/area-card.vue | 8 +-- .../member/modules/area-chart-options.ts | 2 +- .../statistics/member/modules/sex-card.vue | 2 +- .../product/modules/summary-card.vue | 2 +- .../web-ele/src/api/mall/statistics/member.ts | 42 +++++++-------- .../src/api/mall/statistics/product.ts | 53 +++++++------------ .../views/mall/statistics/member/index.vue | 2 +- .../statistics/member/modules/area-card.vue | 8 +-- .../member/modules/area-chart-options.ts | 2 +- .../statistics/member/modules/sex-card.vue | 2 +- .../product/modules/summary-card.vue | 2 +- 14 files changed, 96 insertions(+), 126 deletions(-) diff --git a/apps/web-antd/src/api/mall/statistics/member.ts b/apps/web-antd/src/api/mall/statistics/member.ts index 71423b131..e6bf9ffa7 100644 --- a/apps/web-antd/src/api/mall/statistics/member.ts +++ b/apps/web-antd/src/api/mall/statistics/member.ts @@ -12,24 +12,24 @@ export namespace MallMemberStatisticsApi { times: Date[] | Dayjs[]; // 时间范围 } + /** 会员分析 Response */ + export interface AnalyseRespVO { + visitUserCount: number; // 访问用户数 + orderUserCount: number; // 下单用户数 + payUserCount: number; // 支付用户数 + atv: number; // 平均客单价 + comparison: DataComparisonRespVO; // 对照数据 + } + /** 会员分析对照数据 Response */ - export interface AnalyseComparison { + export interface AnalyseDataRespVO { registerUserCount: number; // 注册用户数 visitUserCount: number; // 访问用户数 rechargeUserCount: number; // 充值用户数 } - /** 会员分析 Response */ - export interface Analyse { - visitUserCount: number; // 访问用户数 - orderUserCount: number; // 下单用户数 - payUserCount: number; // 支付用户数 - atv: number; // 平均客单价 - comparison: DataComparisonRespVO; // 对照数据 - } - /** 会员地区统计 Response */ - export interface AreaStatistics { + export interface AreaStatisticsRespVO { areaId: number; // 地区ID areaName: string; // 地区名称 userCount: number; // 用户数 @@ -39,13 +39,13 @@ export namespace MallMemberStatisticsApi { } /** 会员性别统计 Response */ - export interface SexStatistics { + export interface SexStatisticsRespVO { sex: number; // 性别 userCount: number; // 用户数 } /** 会员统计 Response */ - export interface Summary { + export interface SummaryRespVO { userCount: number; // 用户数 rechargeUserCount: number; // 充值用户数 rechargePrice: number; // 充值金额 @@ -53,7 +53,7 @@ export namespace MallMemberStatisticsApi { } /** 会员终端统计 Response */ - export interface TerminalStatistics { + export interface TerminalStatisticsRespVO { terminal: number; // 终端 userCount: number; // 用户数 } @@ -65,7 +65,7 @@ export namespace MallMemberStatisticsApi { } /** 会员注册数量 Response */ - export interface RegisterCount { + export interface RegisterCountRespVO { date: string; // 日期 count: number; // 数量 } @@ -73,7 +73,7 @@ export namespace MallMemberStatisticsApi { /** 查询会员统计 */ export function getMemberSummary() { - return requestClient.get( + return requestClient.get( '/statistics/member/summary', ); } @@ -82,7 +82,7 @@ export function getMemberSummary() { export function getMemberAnalyse( params: MallMemberStatisticsApi.MemberAnalyseReqVO, ) { - return requestClient.get( + return requestClient.get( '/statistics/member/analyse', { params: { @@ -97,21 +97,21 @@ export function getMemberAnalyse( /** 按照省份,查询会员统计列表 */ export function getMemberAreaStatisticsList() { - return requestClient.get( + return requestClient.get( '/statistics/member/area-statistics-list', ); } /** 按照性别,查询会员统计列表 */ export function getMemberSexStatisticsList() { - return requestClient.get( + return requestClient.get( '/statistics/member/sex-statistics-list', ); } /** 按照终端,查询会员统计列表 */ export function getMemberTerminalStatisticsList() { - return requestClient.get( + return requestClient.get( '/statistics/member/terminal-statistics-list', ); } @@ -125,7 +125,7 @@ export function getUserCountComparison() { /** 获得会员注册数量列表 */ export function getMemberRegisterCountList(beginTime: Date, endTime: Date) { - return requestClient.get( + return requestClient.get( '/statistics/member/register-count-list', { params: { diff --git a/apps/web-antd/src/api/mall/statistics/product.ts b/apps/web-antd/src/api/mall/statistics/product.ts index 2e83f945a..a3746cc2b 100644 --- a/apps/web-antd/src/api/mall/statistics/product.ts +++ b/apps/web-antd/src/api/mall/statistics/product.ts @@ -6,50 +6,35 @@ import { requestClient } from '#/api/request'; export namespace MallProductStatisticsApi { /** 商品统计数据 */ - export interface ProductStatistics { - /** 编号 */ - id: number; - /** 统计日期 */ - day: string; - /** 商品 SPU 编号 */ - spuId: number; - /** 商品 SPU 名称 */ - spuName: string; - /** 商品 SPU 图片 */ - spuPicUrl: string; - /** 浏览次数 */ - browseCount: number; - /** 浏览人数 */ - browseUserCount: number; - /** 收藏次数 */ - favoriteCount: number; - /** 加购次数 */ - cartCount: number; - /** 下单次数 */ - orderCount: number; - /** 支付次数 */ - orderPayCount: number; - /** 支付金额 */ - orderPayPrice: number; - /** 售后次数 */ - afterSaleCount: number; - /** 退款金额 */ - afterSaleRefundPrice: number; - /** 浏览转化率 */ - browseConvertPercent: number; + export interface ProductStatisticsRespVO { + id: number; // 编号 + day: string; // 统计日期 + spuId: number; // 商品 SPU 编号 + spuName: string; // 商品 SPU 名称 + spuPicUrl: string; // 商品 SPU 图片 + browseCount: number; // 浏览次数 + browseUserCount: number; // 浏览人数 + favoriteCount: number; // 收藏次数 + cartCount: number; // 加购次数 + orderCount: number; // 下单次数 + orderPayCount: number; // 支付次数 + orderPayPrice: number; // 支付金额 + afterSaleCount: number; // 售后次数 + afterSaleRefundPrice: number; // 退款金额 + browseConvertPercent: number; // 浏览转化率 } } /** 获得商品统计分析 */ export function getProductStatisticsAnalyse(params: any) { return requestClient.get< - DataComparisonRespVO + DataComparisonRespVO >('/statistics/product/analyse', { params }); } /** 获得商品状况明细 */ export function getProductStatisticsList(params: any) { - return requestClient.get( + return requestClient.get( '/statistics/product/list', { params }, ); @@ -63,6 +48,6 @@ export function exportProductStatisticsExcel(params: any) { /** 获得商品排行榜分页 */ export function getProductStatisticsRankPage(params: PageParam) { return requestClient.get< - PageResult + PageResult >('/statistics/product/rank-page', { params }); } diff --git a/apps/web-antd/src/views/mall/statistics/member/index.vue b/apps/web-antd/src/views/mall/statistics/member/index.vue index 8ccd67237..9524f9bb1 100644 --- a/apps/web-antd/src/views/mall/statistics/member/index.vue +++ b/apps/web-antd/src/views/mall/statistics/member/index.vue @@ -19,7 +19,7 @@ import MemberTerminalCard from './modules/terminal-card.vue'; defineOptions({ name: 'MemberStatistics' }); const loading = ref(true); // 加载中 -const summary = ref(); // 会员统计数据 +const summary = ref(); // 会员统计数据 /** 查询会员统计 */ async function loadMemberSummary() { diff --git a/apps/web-antd/src/views/mall/statistics/member/modules/area-card.vue b/apps/web-antd/src/views/mall/statistics/member/modules/area-card.vue index dc7c67e1a..e9284a436 100644 --- a/apps/web-antd/src/views/mall/statistics/member/modules/area-card.vue +++ b/apps/web-antd/src/views/mall/statistics/member/modules/area-card.vue @@ -18,9 +18,9 @@ import { getAreaChartOptions, getAreaTableColumns } from './area-chart-options'; defineOptions({ name: 'MemberAreaCard' }); const loading = ref(true); -const areaStatisticsList = shallowRef( - [], -); +const areaStatisticsList = shallowRef< + MallMemberStatisticsApi.AreaStatisticsRespVO[] +>([]); const chartRef = ref(); const { renderEcharts } = useEcharts(chartRef); @@ -49,7 +49,7 @@ async function loadMemberAreaStatisticsList() { try { const list = await getMemberAreaStatisticsList(); areaStatisticsList.value = list.map( - (item: MallMemberStatisticsApi.AreaStatistics) => ({ + (item: MallMemberStatisticsApi.AreaStatisticsRespVO) => ({ ...item, areaName: areaReplace(item.areaName), }), diff --git a/apps/web-antd/src/views/mall/statistics/member/modules/area-chart-options.ts b/apps/web-antd/src/views/mall/statistics/member/modules/area-chart-options.ts index b2d0c6a66..b09f492f0 100644 --- a/apps/web-antd/src/views/mall/statistics/member/modules/area-chart-options.ts +++ b/apps/web-antd/src/views/mall/statistics/member/modules/area-chart-options.ts @@ -5,7 +5,7 @@ import { fenToYuan } from '@vben/utils'; /** 会员地域分布图表配置 */ export function getAreaChartOptions( - data: MallMemberStatisticsApi.AreaStatistics[], + data: MallMemberStatisticsApi.AreaStatisticsRespVO[], ): any { if (!data || data.length === 0) { return { diff --git a/apps/web-antd/src/views/mall/statistics/member/modules/sex-card.vue b/apps/web-antd/src/views/mall/statistics/member/modules/sex-card.vue index 567ecc424..b765475ab 100644 --- a/apps/web-antd/src/views/mall/statistics/member/modules/sex-card.vue +++ b/apps/web-antd/src/views/mall/statistics/member/modules/sex-card.vue @@ -31,7 +31,7 @@ async function loadMemberSexStatisticsList() { dictDataList.push({ label: '未知', value: null } as any); const chartData = dictDataList.map((dictData: any) => { const userCount = list.find( - (item: MallMemberStatisticsApi.SexStatistics) => + (item: MallMemberStatisticsApi.SexStatisticsRespVO) => item.sex === dictData.value, )?.userCount; return { diff --git a/apps/web-antd/src/views/mall/statistics/product/modules/summary-card.vue b/apps/web-antd/src/views/mall/statistics/product/modules/summary-card.vue index 9f2fde400..b38b4517a 100644 --- a/apps/web-antd/src/views/mall/statistics/product/modules/summary-card.vue +++ b/apps/web-antd/src/views/mall/statistics/product/modules/summary-card.vue @@ -37,7 +37,7 @@ defineOptions({ name: 'ProductSummaryCard' }); const trendLoading = ref(true); // 商品状态加载中 const exportLoading = ref(false); // 导出的加载中 const trendSummary = - ref>(); // 商品状况统计数据 + ref>(); // 商品状况统计数据 const searchTimes = ref([]); const chartRef = ref(); diff --git a/apps/web-ele/src/api/mall/statistics/member.ts b/apps/web-ele/src/api/mall/statistics/member.ts index 71423b131..e6bf9ffa7 100644 --- a/apps/web-ele/src/api/mall/statistics/member.ts +++ b/apps/web-ele/src/api/mall/statistics/member.ts @@ -12,24 +12,24 @@ export namespace MallMemberStatisticsApi { times: Date[] | Dayjs[]; // 时间范围 } + /** 会员分析 Response */ + export interface AnalyseRespVO { + visitUserCount: number; // 访问用户数 + orderUserCount: number; // 下单用户数 + payUserCount: number; // 支付用户数 + atv: number; // 平均客单价 + comparison: DataComparisonRespVO; // 对照数据 + } + /** 会员分析对照数据 Response */ - export interface AnalyseComparison { + export interface AnalyseDataRespVO { registerUserCount: number; // 注册用户数 visitUserCount: number; // 访问用户数 rechargeUserCount: number; // 充值用户数 } - /** 会员分析 Response */ - export interface Analyse { - visitUserCount: number; // 访问用户数 - orderUserCount: number; // 下单用户数 - payUserCount: number; // 支付用户数 - atv: number; // 平均客单价 - comparison: DataComparisonRespVO; // 对照数据 - } - /** 会员地区统计 Response */ - export interface AreaStatistics { + export interface AreaStatisticsRespVO { areaId: number; // 地区ID areaName: string; // 地区名称 userCount: number; // 用户数 @@ -39,13 +39,13 @@ export namespace MallMemberStatisticsApi { } /** 会员性别统计 Response */ - export interface SexStatistics { + export interface SexStatisticsRespVO { sex: number; // 性别 userCount: number; // 用户数 } /** 会员统计 Response */ - export interface Summary { + export interface SummaryRespVO { userCount: number; // 用户数 rechargeUserCount: number; // 充值用户数 rechargePrice: number; // 充值金额 @@ -53,7 +53,7 @@ export namespace MallMemberStatisticsApi { } /** 会员终端统计 Response */ - export interface TerminalStatistics { + export interface TerminalStatisticsRespVO { terminal: number; // 终端 userCount: number; // 用户数 } @@ -65,7 +65,7 @@ export namespace MallMemberStatisticsApi { } /** 会员注册数量 Response */ - export interface RegisterCount { + export interface RegisterCountRespVO { date: string; // 日期 count: number; // 数量 } @@ -73,7 +73,7 @@ export namespace MallMemberStatisticsApi { /** 查询会员统计 */ export function getMemberSummary() { - return requestClient.get( + return requestClient.get( '/statistics/member/summary', ); } @@ -82,7 +82,7 @@ export function getMemberSummary() { export function getMemberAnalyse( params: MallMemberStatisticsApi.MemberAnalyseReqVO, ) { - return requestClient.get( + return requestClient.get( '/statistics/member/analyse', { params: { @@ -97,21 +97,21 @@ export function getMemberAnalyse( /** 按照省份,查询会员统计列表 */ export function getMemberAreaStatisticsList() { - return requestClient.get( + return requestClient.get( '/statistics/member/area-statistics-list', ); } /** 按照性别,查询会员统计列表 */ export function getMemberSexStatisticsList() { - return requestClient.get( + return requestClient.get( '/statistics/member/sex-statistics-list', ); } /** 按照终端,查询会员统计列表 */ export function getMemberTerminalStatisticsList() { - return requestClient.get( + return requestClient.get( '/statistics/member/terminal-statistics-list', ); } @@ -125,7 +125,7 @@ export function getUserCountComparison() { /** 获得会员注册数量列表 */ export function getMemberRegisterCountList(beginTime: Date, endTime: Date) { - return requestClient.get( + return requestClient.get( '/statistics/member/register-count-list', { params: { diff --git a/apps/web-ele/src/api/mall/statistics/product.ts b/apps/web-ele/src/api/mall/statistics/product.ts index 2e83f945a..a3746cc2b 100644 --- a/apps/web-ele/src/api/mall/statistics/product.ts +++ b/apps/web-ele/src/api/mall/statistics/product.ts @@ -6,50 +6,35 @@ import { requestClient } from '#/api/request'; export namespace MallProductStatisticsApi { /** 商品统计数据 */ - export interface ProductStatistics { - /** 编号 */ - id: number; - /** 统计日期 */ - day: string; - /** 商品 SPU 编号 */ - spuId: number; - /** 商品 SPU 名称 */ - spuName: string; - /** 商品 SPU 图片 */ - spuPicUrl: string; - /** 浏览次数 */ - browseCount: number; - /** 浏览人数 */ - browseUserCount: number; - /** 收藏次数 */ - favoriteCount: number; - /** 加购次数 */ - cartCount: number; - /** 下单次数 */ - orderCount: number; - /** 支付次数 */ - orderPayCount: number; - /** 支付金额 */ - orderPayPrice: number; - /** 售后次数 */ - afterSaleCount: number; - /** 退款金额 */ - afterSaleRefundPrice: number; - /** 浏览转化率 */ - browseConvertPercent: number; + export interface ProductStatisticsRespVO { + id: number; // 编号 + day: string; // 统计日期 + spuId: number; // 商品 SPU 编号 + spuName: string; // 商品 SPU 名称 + spuPicUrl: string; // 商品 SPU 图片 + browseCount: number; // 浏览次数 + browseUserCount: number; // 浏览人数 + favoriteCount: number; // 收藏次数 + cartCount: number; // 加购次数 + orderCount: number; // 下单次数 + orderPayCount: number; // 支付次数 + orderPayPrice: number; // 支付金额 + afterSaleCount: number; // 售后次数 + afterSaleRefundPrice: number; // 退款金额 + browseConvertPercent: number; // 浏览转化率 } } /** 获得商品统计分析 */ export function getProductStatisticsAnalyse(params: any) { return requestClient.get< - DataComparisonRespVO + DataComparisonRespVO >('/statistics/product/analyse', { params }); } /** 获得商品状况明细 */ export function getProductStatisticsList(params: any) { - return requestClient.get( + return requestClient.get( '/statistics/product/list', { params }, ); @@ -63,6 +48,6 @@ export function exportProductStatisticsExcel(params: any) { /** 获得商品排行榜分页 */ export function getProductStatisticsRankPage(params: PageParam) { return requestClient.get< - PageResult + PageResult >('/statistics/product/rank-page', { params }); } diff --git a/apps/web-ele/src/views/mall/statistics/member/index.vue b/apps/web-ele/src/views/mall/statistics/member/index.vue index 5a1a9221a..1e3f9ddbe 100644 --- a/apps/web-ele/src/views/mall/statistics/member/index.vue +++ b/apps/web-ele/src/views/mall/statistics/member/index.vue @@ -19,7 +19,7 @@ import MemberTerminalCard from './modules/terminal-card.vue'; defineOptions({ name: 'MemberStatistics' }); const loading = ref(true); // 加载中 -const summary = ref(); // 会员统计数据 +const summary = ref(); // 会员统计数据 /** 查询会员统计 */ async function loadMemberSummary() { diff --git a/apps/web-ele/src/views/mall/statistics/member/modules/area-card.vue b/apps/web-ele/src/views/mall/statistics/member/modules/area-card.vue index 9e2c820ed..7c713851a 100644 --- a/apps/web-ele/src/views/mall/statistics/member/modules/area-card.vue +++ b/apps/web-ele/src/views/mall/statistics/member/modules/area-card.vue @@ -18,9 +18,9 @@ import { getAreaChartOptions, getAreaTableColumns } from './area-chart-options'; defineOptions({ name: 'MemberAreaCard' }); const loading = ref(true); -const areaStatisticsList = shallowRef( - [], -); +const areaStatisticsList = shallowRef< + MallMemberStatisticsApi.AreaStatisticsRespVO[] +>([]); const chartRef = ref(); const { renderEcharts } = useEcharts(chartRef); @@ -49,7 +49,7 @@ async function loadMemberAreaStatisticsList() { try { const list = await getMemberAreaStatisticsList(); areaStatisticsList.value = list.map( - (item: MallMemberStatisticsApi.AreaStatistics) => ({ + (item: MallMemberStatisticsApi.AreaStatisticsRespVO) => ({ ...item, areaName: areaReplace(item.areaName), }), diff --git a/apps/web-ele/src/views/mall/statistics/member/modules/area-chart-options.ts b/apps/web-ele/src/views/mall/statistics/member/modules/area-chart-options.ts index b2d0c6a66..b09f492f0 100644 --- a/apps/web-ele/src/views/mall/statistics/member/modules/area-chart-options.ts +++ b/apps/web-ele/src/views/mall/statistics/member/modules/area-chart-options.ts @@ -5,7 +5,7 @@ import { fenToYuan } from '@vben/utils'; /** 会员地域分布图表配置 */ export function getAreaChartOptions( - data: MallMemberStatisticsApi.AreaStatistics[], + data: MallMemberStatisticsApi.AreaStatisticsRespVO[], ): any { if (!data || data.length === 0) { return { diff --git a/apps/web-ele/src/views/mall/statistics/member/modules/sex-card.vue b/apps/web-ele/src/views/mall/statistics/member/modules/sex-card.vue index a41d8b469..b646619c6 100644 --- a/apps/web-ele/src/views/mall/statistics/member/modules/sex-card.vue +++ b/apps/web-ele/src/views/mall/statistics/member/modules/sex-card.vue @@ -31,7 +31,7 @@ async function loadMemberSexStatisticsList() { dictDataList.push({ label: '未知', value: null } as any); const chartData = dictDataList.map((dictData: any) => { const userCount = list.find( - (item: MallMemberStatisticsApi.SexStatistics) => + (item: MallMemberStatisticsApi.SexStatisticsRespVO) => item.sex === dictData.value, )?.userCount; return { diff --git a/apps/web-ele/src/views/mall/statistics/product/modules/summary-card.vue b/apps/web-ele/src/views/mall/statistics/product/modules/summary-card.vue index 156aace69..5d6b9bffe 100644 --- a/apps/web-ele/src/views/mall/statistics/product/modules/summary-card.vue +++ b/apps/web-ele/src/views/mall/statistics/product/modules/summary-card.vue @@ -37,7 +37,7 @@ defineOptions({ name: 'ProductSummaryCard' }); const trendLoading = ref(true); // 商品状态加载中 const exportLoading = ref(false); // 导出的加载中 const trendSummary = - ref>(); // 商品状况统计数据 + ref>(); // 商品状况统计数据 const searchTimes = ref([]); const chartRef = ref(); From cf581f3bb3d3cc38ac5c9f7559ddd4b10c4f119c Mon Sep 17 00:00:00 2001 From: YunaiV Date: Thu, 20 Nov 2025 11:05:51 +0800 Subject: [PATCH 03/10] =?UTF-8?q?feat=EF=BC=9A=E3=80=90antd/ele=E3=80=91?= =?UTF-8?q?=E3=80=90mall/stat=E3=80=91=E4=BC=98=E5=8C=96=20api=20=E7=9A=84?= =?UTF-8?q?=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web-antd/src/api/mall/statistics/trade.ts | 68 ++++++--------- .../src/views/mall/statistics/trade/index.vue | 2 +- .../statistics/trade/modules/trend-card.vue | 2 +- .../trade/modules/trend-chart-options.ts | 2 +- apps/web-ele/src/api/mall/statistics/trade.ts | 82 +++++++------------ .../src/views/mall/statistics/trade/index.vue | 2 +- .../statistics/trade/modules/trend-card.vue | 2 +- .../trade/modules/trend-chart-options.ts | 2 +- 8 files changed, 63 insertions(+), 99 deletions(-) diff --git a/apps/web-antd/src/api/mall/statistics/trade.ts b/apps/web-antd/src/api/mall/statistics/trade.ts index 17b20e709..05dc7f3ef 100644 --- a/apps/web-antd/src/api/mall/statistics/trade.ts +++ b/apps/web-antd/src/api/mall/statistics/trade.ts @@ -1,25 +1,25 @@ import type { DataComparisonRespVO } from './common'; -import { formatDate, formatDateTime } from '@vben/utils'; +import { formatDateTime } from '@vben/utils'; import { requestClient } from '#/api/request'; export namespace MallTradeStatisticsApi { + /** 交易状况 Request */ + export interface TradeTrendReqVO { + times: [Date, Date]; + } + /** 交易统计 Response */ - export interface TradeSummary { + export interface TradeSummaryRespVO { yesterdayOrderCount: number; monthOrderCount: number; yesterdayPayPrice: number; monthPayPrice: number; } - /** 交易状况 Request */ - export interface TradeTrendReq { - times: [Date, Date]; - } - /** 交易状况统计 Response */ - export interface TradeTrendSummary { + export interface TradeTrendSummaryRespVO { time: string; turnoverPrice: number; orderPayPrice: number; @@ -31,60 +31,46 @@ export namespace MallTradeStatisticsApi { } /** 交易订单数量 Response */ - export interface TradeOrderCount { - /** 待发货 */ - undelivered?: number; - /** 待核销 */ - pickUp?: number; - /** 退款中 */ - afterSaleApply?: number; - /** 提现待审核 */ - auditingWithdraw?: number; + export interface TradeOrderCountRespVO { + undelivered?: number; // 待发货 + pickUp?: number; // 待核销 + afterSaleApply?: number; // 退款中 + auditingWithdraw?: number; // 提现待审核 } /** 交易订单统计 Response */ export interface TradeOrderSummaryRespVO { - /** 支付订单商品数 */ - orderPayCount?: number; - /** 总支付金额,单位:分 */ - orderPayPrice?: number; + orderPayCount?: number; // 支付订单商品数 + orderPayPrice?: number; // 总支付金额,单位:分 } /** 订单量趋势统计 Response */ - export interface TradeOrderTrend { - /** 日期 */ - date: string; - /** 订单数量 */ - orderPayCount: number; - /** 订单支付金额 */ - orderPayPrice: number; + export interface TradeOrderTrendRespVO { + date: string; // 日期 + orderPayCount: number; // 订单数量 + orderPayPrice: number; // 订单支付金额 } } -/** 时间参数需要格式化, 确保接口能识别 */ -const formatDateParam = (params: MallTradeStatisticsApi.TradeTrendReq) => { - return { - times: [formatDate(params.times[0]), formatDate(params.times[1])], - } as MallTradeStatisticsApi.TradeTrendReq; -}; - /** 查询交易统计 */ export function getTradeStatisticsSummary() { return requestClient.get< - DataComparisonRespVO + DataComparisonRespVO >('/statistics/trade/summary'); } /** 获得交易状况统计 */ -export function getTradeStatisticsAnalyse(params: any) { +export function getTradeStatisticsAnalyse( + params: MallTradeStatisticsApi.TradeTrendReqVO, +) { return requestClient.get< - DataComparisonRespVO + DataComparisonRespVO >('/statistics/trade/analyse', { params }); } /** 获得交易状况明细 */ export function getTradeStatisticsList(params: any) { - return requestClient.get( + return requestClient.get( '/statistics/trade/list', { params }, ); @@ -97,7 +83,7 @@ export function exportTradeStatisticsExcel(params: any) { /** 获得交易订单数量 */ export function getOrderCount() { - return requestClient.get( + return requestClient.get( '/statistics/trade/order-count', ); } @@ -116,7 +102,7 @@ export function getOrderCountTrendComparison( endTime: Date, ) { return requestClient.get< - DataComparisonRespVO[] + DataComparisonRespVO[] >('/statistics/trade/order-count-trend', { params: { type, diff --git a/apps/web-antd/src/views/mall/statistics/trade/index.vue b/apps/web-antd/src/views/mall/statistics/trade/index.vue index 6e87786f9..09fb18be0 100644 --- a/apps/web-antd/src/views/mall/statistics/trade/index.vue +++ b/apps/web-antd/src/views/mall/statistics/trade/index.vue @@ -18,7 +18,7 @@ defineOptions({ name: 'TradeStatistics' }); const loading = ref(true); // 加载中 const summary = - ref>(); // 交易统计数据 + ref>(); // 交易统计数据 /** 计算环比百分比 */ function calculateRelativeRate(value?: number, reference?: number): string { diff --git a/apps/web-antd/src/views/mall/statistics/trade/modules/trend-card.vue b/apps/web-antd/src/views/mall/statistics/trade/modules/trend-card.vue index 1dd4fc24b..3d300dfca 100644 --- a/apps/web-antd/src/views/mall/statistics/trade/modules/trend-card.vue +++ b/apps/web-antd/src/views/mall/statistics/trade/modules/trend-card.vue @@ -37,7 +37,7 @@ defineOptions({ name: 'TradeTrendCard' }); const trendLoading = ref(true); // 交易状态加载中 const exportLoading = ref(false); // 导出的加载中 const trendSummary = - ref>(); // 交易状况统计数据 + ref>(); // 交易状况统计数据 const searchTimes = ref([]); const chartRef = ref(); diff --git a/apps/web-antd/src/views/mall/statistics/trade/modules/trend-chart-options.ts b/apps/web-antd/src/views/mall/statistics/trade/modules/trend-chart-options.ts index 5c85460fb..899a6a32a 100644 --- a/apps/web-antd/src/views/mall/statistics/trade/modules/trend-chart-options.ts +++ b/apps/web-antd/src/views/mall/statistics/trade/modules/trend-chart-options.ts @@ -4,7 +4,7 @@ import { fenToYuan } from '@vben/utils'; /** 交易趋势折线图配置 */ export function getTradeTrendChartOptions( - data: MallTradeStatisticsApi.TradeTrendSummary[], + data: MallTradeStatisticsApi.TradeTrendSummaryRespVO[], ): any { // 处理数据:将分转换为元 const processedData = data.map((item) => ({ diff --git a/apps/web-ele/src/api/mall/statistics/trade.ts b/apps/web-ele/src/api/mall/statistics/trade.ts index 3f8d1cb82..05dc7f3ef 100644 --- a/apps/web-ele/src/api/mall/statistics/trade.ts +++ b/apps/web-ele/src/api/mall/statistics/trade.ts @@ -1,25 +1,25 @@ import type { DataComparisonRespVO } from './common'; -import { formatDate, formatDateTime } from '@vben/utils'; +import { formatDateTime } from '@vben/utils'; import { requestClient } from '#/api/request'; export namespace MallTradeStatisticsApi { + /** 交易状况 Request */ + export interface TradeTrendReqVO { + times: [Date, Date]; + } + /** 交易统计 Response */ - export interface TradeSummary { + export interface TradeSummaryRespVO { yesterdayOrderCount: number; monthOrderCount: number; yesterdayPayPrice: number; monthPayPrice: number; } - /** 交易状况 Request */ - export interface TradeTrendReq { - times: [Date, Date]; - } - /** 交易状况统计 Response */ - export interface TradeTrendSummary { + export interface TradeTrendSummaryRespVO { time: string; turnoverPrice: number; orderPayPrice: number; @@ -31,81 +31,59 @@ export namespace MallTradeStatisticsApi { } /** 交易订单数量 Response */ - export interface TradeOrderCount { - /** 待发货 */ - undelivered?: number; - /** 待核销 */ - pickUp?: number; - /** 退款中 */ - afterSaleApply?: number; - /** 提现待审核 */ - auditingWithdraw?: number; + export interface TradeOrderCountRespVO { + undelivered?: number; // 待发货 + pickUp?: number; // 待核销 + afterSaleApply?: number; // 退款中 + auditingWithdraw?: number; // 提现待审核 } /** 交易订单统计 Response */ export interface TradeOrderSummaryRespVO { - /** 支付订单商品数 */ - orderPayCount?: number; - /** 总支付金额,单位:分 */ - orderPayPrice?: number; + orderPayCount?: number; // 支付订单商品数 + orderPayPrice?: number; // 总支付金额,单位:分 } /** 订单量趋势统计 Response */ - export interface TradeOrderTrend { - /** 日期 */ - date: string; - /** 订单数量 */ - orderPayCount: number; - /** 订单支付金额 */ - orderPayPrice: number; + export interface TradeOrderTrendRespVO { + date: string; // 日期 + orderPayCount: number; // 订单数量 + orderPayPrice: number; // 订单支付金额 } } -/** 时间参数需要格式化, 确保接口能识别 */ -const formatDateParam = (params: MallTradeStatisticsApi.TradeTrendReq) => { - return { - times: [formatDate(params.times[0]), formatDate(params.times[1])], - } as MallTradeStatisticsApi.TradeTrendReq; -}; - /** 查询交易统计 */ export function getTradeStatisticsSummary() { return requestClient.get< - DataComparisonRespVO + DataComparisonRespVO >('/statistics/trade/summary'); } /** 获得交易状况统计 */ export function getTradeStatisticsAnalyse( - params: MallTradeStatisticsApi.TradeTrendReq, + params: MallTradeStatisticsApi.TradeTrendReqVO, ) { return requestClient.get< - DataComparisonRespVO - >('/statistics/trade/analyse', { params: formatDateParam(params) }); + DataComparisonRespVO + >('/statistics/trade/analyse', { params }); } /** 获得交易状况明细 */ -export function getTradeStatisticsList( - params: MallTradeStatisticsApi.TradeTrendReq, -) { - return requestClient.get( +export function getTradeStatisticsList(params: any) { + return requestClient.get( '/statistics/trade/list', - { params: formatDateParam(params) }, + { params }, ); } /** 导出交易状况明细 */ -export function exportTradeStatisticsExcel( - params: MallTradeStatisticsApi.TradeTrendReq, -) { - return requestClient.download('/statistics/trade/export-excel', { - params: formatDateParam(params), - }); +export function exportTradeStatisticsExcel(params: any) { + return requestClient.download('/statistics/trade/export-excel', { params }); } /** 获得交易订单数量 */ export function getOrderCount() { - return requestClient.get( + return requestClient.get( '/statistics/trade/order-count', ); } @@ -124,7 +102,7 @@ export function getOrderCountTrendComparison( endTime: Date, ) { return requestClient.get< - DataComparisonRespVO[] + DataComparisonRespVO[] >('/statistics/trade/order-count-trend', { params: { type, diff --git a/apps/web-ele/src/views/mall/statistics/trade/index.vue b/apps/web-ele/src/views/mall/statistics/trade/index.vue index 334c95b95..0207bde48 100644 --- a/apps/web-ele/src/views/mall/statistics/trade/index.vue +++ b/apps/web-ele/src/views/mall/statistics/trade/index.vue @@ -18,7 +18,7 @@ defineOptions({ name: 'TradeStatistics' }); const loading = ref(true); // 加载中 const summary = - ref>(); // 交易统计数据 + ref>(); // 交易统计数据 /** 计算环比百分比 */ function calculateRelativeRate(value?: number, reference?: number): string { diff --git a/apps/web-ele/src/views/mall/statistics/trade/modules/trend-card.vue b/apps/web-ele/src/views/mall/statistics/trade/modules/trend-card.vue index 9aa2d279a..8dd3f2759 100644 --- a/apps/web-ele/src/views/mall/statistics/trade/modules/trend-card.vue +++ b/apps/web-ele/src/views/mall/statistics/trade/modules/trend-card.vue @@ -37,7 +37,7 @@ defineOptions({ name: 'TradeTrendCard' }); const trendLoading = ref(true); // 交易状态加载中 const exportLoading = ref(false); // 导出的加载中 const trendSummary = - ref>(); // 交易状况统计数据 + ref>(); // 交易状况统计数据 const searchTimes = ref([]); const chartRef = ref(); diff --git a/apps/web-ele/src/views/mall/statistics/trade/modules/trend-chart-options.ts b/apps/web-ele/src/views/mall/statistics/trade/modules/trend-chart-options.ts index 5c85460fb..899a6a32a 100644 --- a/apps/web-ele/src/views/mall/statistics/trade/modules/trend-chart-options.ts +++ b/apps/web-ele/src/views/mall/statistics/trade/modules/trend-chart-options.ts @@ -4,7 +4,7 @@ import { fenToYuan } from '@vben/utils'; /** 交易趋势折线图配置 */ export function getTradeTrendChartOptions( - data: MallTradeStatisticsApi.TradeTrendSummary[], + data: MallTradeStatisticsApi.TradeTrendSummaryRespVO[], ): any { // 处理数据:将分转换为元 const processedData = data.map((item) => ({ From f425b821b3741aec05207b38957cb23bfb3b2c74 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Thu, 20 Nov 2025 11:56:12 +0800 Subject: [PATCH 04/10] =?UTF-8?q?feat=EF=BC=9A=E3=80=90ele=E3=80=91?= =?UTF-8?q?=E3=80=90infra=E3=80=91=E4=BC=98=E5=8C=96=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/infra/file/modules/form.vue | 1 - apps/web-ele/src/views/infra/file/data.ts | 2 +- .../src/views/infra/file/modules/form.vue | 87 +++++++++++++++---- 3 files changed, 73 insertions(+), 17 deletions(-) diff --git a/apps/web-antd/src/views/infra/file/modules/form.vue b/apps/web-antd/src/views/infra/file/modules/form.vue index 4b653571a..bab6f0b6a 100644 --- a/apps/web-antd/src/views/infra/file/modules/form.vue +++ b/apps/web-antd/src/views/infra/file/modules/form.vue @@ -60,7 +60,6 @@ function beforeUpload(file: FileType) {