From e2d1dacbf929a9c57c21807ef9252900d81674e4 Mon Sep 17 00:00:00 2001 From: xingyu4j Date: Mon, 9 Jun 2025 17:16:22 +0800 Subject: [PATCH] feat: mall pickUpOrder --- .../src/api/mall/trade/order/index.ts | 8 +- .../mall/trade/delivery/pickUpOrder/data.ts | 126 ++++++++++++++++++ .../mall/trade/delivery/pickUpOrder/index.vue | 126 ++++++++++++++---- 3 files changed, 227 insertions(+), 33 deletions(-) create mode 100644 apps/web-antd/src/views/mall/trade/delivery/pickUpOrder/data.ts 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 cde8a71c0..6017fa5f5 100644 --- a/apps/web-antd/src/api/mall/trade/order/index.ts +++ b/apps/web-antd/src/api/mall/trade/order/index.ts @@ -176,13 +176,13 @@ export namespace MallOrderApi { /** 交易订单统计 */ export interface OrderSummary { /** 订单数量 */ - orderCount?: number; + orderCount: number; /** 订单金额 */ - orderPayPrice?: string; + orderPayPrice: number; /** 退款单数 */ - afterSaleCount?: number; + afterSaleCount: number; /** 退款金额 */ - afterSalePrice?: string; + afterSalePrice: number; } /** 订单发货请求 */ 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 new file mode 100644 index 000000000..1c56a70ff --- /dev/null +++ b/apps/web-antd/src/views/mall/trade/delivery/pickUpOrder/data.ts @@ -0,0 +1,126 @@ +import type { VbenFormSchema } from '#/adapter/form'; +import type { VxeGridPropTypes } from '#/adapter/vxe-table'; +import type { MallDeliveryPickUpStoreApi } from '#/api/mall/trade/delivery/pickUpStore'; + +import { ref } from 'vue'; + +import { getSimpleDeliveryPickUpStoreList } from '#/api/mall/trade/delivery/pickUpStore'; +import { + DeliveryTypeEnum, + DICT_TYPE, + getRangePickerDefaultProps, +} from '#/utils'; + +const pickUpStoreList = ref([]); + +getSimpleDeliveryPickUpStoreList().then((res) => { + pickUpStoreList.value = res; +}); + +/** 列表的搜索表单 */ +export function useGridFormSchema(): VbenFormSchema[] { + return [ + { + fieldName: 'createTime', + label: '创建时间', + component: 'RangePicker', + componentProps: { + ...getRangePickerDefaultProps(), + allowClear: true, + }, + }, + { + fieldName: 'pickUpStoreId', + label: '自提门店', + component: 'ApiSelect', + componentProps: { + api: getSimpleDeliveryPickUpStoreList, + fieldNames: { + label: 'name', + value: 'id', + }, + }, + dependencies: { + triggerFields: ['deliveryType'], + show: (values) => values.deliveryType === DeliveryTypeEnum.PICK_UP.type, + }, + }, + ]; +} + +/** 表格列配置 */ +export function useGridColumns(): VxeGridPropTypes.Columns { + return [ + { + field: 'no', + title: '订单号', + fixed: 'left', + minWidth: 180, + }, + { + field: 'user.nickname', + title: '用户信息', + minWidth: 100, + }, + { + field: 'brokerageUser.nickname', + title: '推荐人信息', + minWidth: 100, + }, + { + field: 'spuName', + title: '商品信息', + minWidth: 100, + formatter: ({ row }) => { + if (row.items.length > 1) { + return row.items.map((item: any) => item.spuName).join(','); + } + }, + }, + { + field: 'payPrice', + title: '实付金额(元)', + formatter: 'formatAmount2', + minWidth: 180, + }, + { + field: 'storeStaffName', + title: '核销员', + minWidth: 160, + }, + { + field: 'pickUpStoreId', + title: '核销门店', + minWidth: 160, + formatter: ({ row }) => { + return pickUpStoreList.value.find( + (item) => item.id === row.pickUpStoreId, + )?.name; + }, + }, + { + field: 'payStatus', + title: '支付状态', + cellRender: { + name: 'CellDict', + props: { type: DICT_TYPE.INFRA_BOOLEAN_STRING }, + }, + minWidth: 80, + }, + { + field: 'status', + title: '订单状态', + cellRender: { + name: 'CellDict', + props: { type: DICT_TYPE.TRADE_ORDER_STATUS }, + }, + minWidth: 80, + }, + { + field: 'createTime', + title: '下单时间', + formatter: 'formatDateTime', + minWidth: 160, + }, + ]; +} 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 2e1a8ea51..2f003f25e 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 @@ -1,38 +1,106 @@