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 fb6cad496..d94b89777 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 @@ -345,7 +345,7 @@ onMounted(async () => {
diff --git a/apps/web-ele/src/views/mall/trade/order/detail/data.ts b/apps/web-ele/src/views/mall/trade/order/detail/data.ts index 6d3acf0a0..74dfbcfda 100644 --- a/apps/web-ele/src/views/mall/trade/order/detail/data.ts +++ b/apps/web-ele/src/views/mall/trade/order/detail/data.ts @@ -1,5 +1,6 @@ import type { VxeTableGridOptions } from '#/adapter/vxe-table'; import type { MallOrderApi } from '#/api/mall/trade/order'; +import type { DescriptionItemSchema } from '#/components/description'; import { h } from 'vue'; @@ -9,7 +10,7 @@ import { fenToYuan, formatDateTime } from '@vben/utils'; import { DictTag } from '#/components/dict-tag'; /** 订单基础信息 schema */ -export function useOrderInfoSchema() { +export function useOrderInfoSchema(): DescriptionItemSchema[] { return [ { field: 'no', @@ -22,7 +23,7 @@ export function useOrderInfoSchema() { { field: 'type', label: '订单类型', - render: (data: MallOrderApi.Order) => + content: (data: MallOrderApi.Order) => h(DictTag, { type: DICT_TYPE.TRADE_ORDER_TYPE, value: data?.type, @@ -31,7 +32,7 @@ export function useOrderInfoSchema() { { field: 'terminal', label: '订单来源', - render: (data: MallOrderApi.Order) => + content: (data: MallOrderApi.Order) => h(DictTag, { type: DICT_TYPE.TERMINAL, value: data?.terminal, @@ -52,7 +53,7 @@ export function useOrderInfoSchema() { { field: 'payChannelCode', label: '付款方式', - render: (data: MallOrderApi.Order) => + content: (data: MallOrderApi.Order) => h(DictTag, { type: DICT_TYPE.PAY_CHANNEL_CODE, value: data?.payChannelCode, @@ -66,12 +67,12 @@ export function useOrderInfoSchema() { } /** 订单状态信息 schema */ -export function useOrderStatusSchema() { +export function useOrderStatusSchema(): DescriptionItemSchema[] { return [ { field: 'status', label: '订单状态', - render: (data: MallOrderApi.Order) => + content: (data: MallOrderApi.Order) => h(DictTag, { type: DICT_TYPE.TRADE_ORDER_STATUS, value: data?.status, @@ -80,7 +81,7 @@ export function useOrderStatusSchema() { { field: 'reminder', label: '提醒', - render: () => + content: () => h('div', { class: 'space-y-1' }, [ h('div', '买家付款成功后,货款将直接进入您的商户号(微信、支付宝)'), h('div', '请及时关注你发出的包裹状态,确保可以配送至买家手中'), @@ -94,30 +95,30 @@ export function useOrderStatusSchema() { } /** 订单金额信息 schema */ -export function useOrderPriceSchema() { +export function useOrderPriceSchema(): DescriptionItemSchema[] { return [ { field: 'totalPrice', label: '商品总额', - render: (data: MallOrderApi.Order) => + content: (data: MallOrderApi.Order) => `${fenToYuan(data?.totalPrice ?? 0)} 元`, }, { field: 'deliveryPrice', label: '运费金额', - render: (data: MallOrderApi.Order) => + content: (data: MallOrderApi.Order) => `${fenToYuan(data?.deliveryPrice ?? 0)} 元`, }, { field: 'adjustPrice', label: '订单调价', - render: (data: MallOrderApi.Order) => + content: (data: MallOrderApi.Order) => `${fenToYuan(data?.adjustPrice ?? 0)} 元`, }, { field: 'couponPrice', label: '优惠劵优惠', - render: (data: MallOrderApi.Order) => + content: (data: MallOrderApi.Order) => h( 'span', { class: 'text-red-500' }, @@ -127,7 +128,7 @@ export function useOrderPriceSchema() { { field: 'vipPrice', label: 'VIP 优惠', - render: (data: MallOrderApi.Order) => + content: (data: MallOrderApi.Order) => h( 'span', { class: 'text-red-500' }, @@ -137,7 +138,7 @@ export function useOrderPriceSchema() { { field: 'discountPrice', label: '活动优惠', - render: (data: MallOrderApi.Order) => + content: (data: MallOrderApi.Order) => h( 'span', { class: 'text-red-500' }, @@ -147,7 +148,7 @@ export function useOrderPriceSchema() { { field: 'pointPrice', label: '积分抵扣', - render: (data: MallOrderApi.Order) => + content: (data: MallOrderApi.Order) => h( 'span', { class: 'text-red-500' }, @@ -157,19 +158,19 @@ export function useOrderPriceSchema() { { field: 'payPrice', label: '应付金额', - render: (data: MallOrderApi.Order) => + content: (data: MallOrderApi.Order) => `${fenToYuan(data?.payPrice ?? 0)} 元`, }, ]; } /** 收货信息 schema */ -export function useDeliveryInfoSchema() { +export function useDeliveryInfoSchema(): DescriptionItemSchema[] { return [ { field: 'deliveryType', label: '配送方式', - render: (data: MallOrderApi.Order) => + content: (data: MallOrderApi.Order) => h(DictTag, { type: DICT_TYPE.TRADE_DELIVERY_TYPE, value: data?.deliveryType, @@ -186,14 +187,14 @@ export function useDeliveryInfoSchema() { { field: 'receiverAddress', label: '收货地址', - render: (data: MallOrderApi.Order) => + content: (data: MallOrderApi.Order) => `${data?.receiverAreaName} ${data?.receiverDetailAddress}`.trim(), }, { field: 'deliveryTime', label: '发货时间', - render: (data: MallOrderApi.Order) => - formatDateTime(data?.deliveryTime || '') as string, + content: (data: MallOrderApi.Order) => + formatDateTime(data?.deliveryTime) as string, }, ]; } @@ -274,4 +275,4 @@ export function useOperateLogColumns(): VxeTableGridOptions['columns'] { minWidth: 200, }, ]; -} \ No newline at end of file +} 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 9efb70aef..0cf63f387 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 @@ -14,14 +14,14 @@ import { TradeOrderStatusEnum, } from '@vben/constants'; import { useTabs } from '@vben/hooks'; -import { fenToYuan, formatDateTime } from '@vben/utils'; -import { ElCard, ElMessage, ElTag } from 'element-plus'; +import { ElCard, ElLoading, ElMessage, ElTag } from 'element-plus'; import { useVbenVxeGrid } from '#/adapter/vxe-table'; import * as DeliveryExpressApi from '#/api/mall/trade/delivery/express'; import * as DeliveryPickUpStoreApi from '#/api/mall/trade/delivery/pickUpStore'; import * as TradeOrderApi from '#/api/mall/trade/order'; +import { useDescription } from '#/components/description'; import { DictTag } from '#/components/dict-tag'; import { TableAction } from '#/components/table-action'; @@ -30,8 +30,12 @@ import DeliveryForm from '../modules/delivery-form.vue'; import PriceForm from '../modules/price-form.vue'; import RemarkForm from '../modules/remark-form.vue'; import { + useDeliveryInfoSchema, useExpressTrackColumns, useOperateLogColumns, + useOrderInfoSchema, + useOrderPriceSchema, + useOrderStatusSchema, useProductColumns, } from './data'; @@ -52,6 +56,42 @@ const deliveryExpressList = ref( const expressTrackList = ref([]); const pickUpStore = ref(); +const [OrderInfoDescriptions] = useDescription({ + componentProps: { + title: '订单信息', + border: false, + column: 3, + }, + schema: useOrderInfoSchema(), +}); + +const [OrderStatusDescriptions] = useDescription({ + componentProps: { + title: '订单状态', + border: false, + column: 1, + }, + schema: useOrderStatusSchema(), +}); + +const [OrderPriceDescriptions] = useDescription({ + componentProps: { + title: '费用信息', + border: false, + column: 4, + }, + schema: useOrderPriceSchema(), +}); + +const [DeliveryInfoDescriptions] = useDescription({ + componentProps: { + title: '收货信息', + border: false, + column: 3, + }, + schema: useDeliveryInfoSchema(), +}); + const [ProductGrid, productGridApi] = useVbenVxeGrid({ gridOptions: { cellConfig: { @@ -180,10 +220,8 @@ const handleUpdatePrice = () => { /** 核销 */ const handlePickUp = async () => { await confirm('确认核销订单吗?'); - const loadingInstance = ElMessage({ - message: '正在处理中...', - duration: 0, - type: 'info', + const loadingInstance = ElLoading.service({ + text: '正在处理中...', }); try { await TradeOrderApi.pickUpOrder(order.value.id!); @@ -265,75 +303,12 @@ onMounted(async () => { - -
-
- 订单号: - {{ order.no }} -
-
- 买家: - {{ order.user?.nickname }} -
-
- 订单类型: - -
-
- 订单来源: - -
-
- 买家留言: - {{ order.userRemark }} -
-
- 商家备注: - {{ order.remark }} -
-
- 支付单号: - {{ order.payOrderId }} -
-
- 付款方式: - -
-
- 推广用户: - {{ order.brokerageUser?.nickname }} -
-
+
- - -
-
- 订单状态: - -
-
- 提醒: -
-
买家付款成功后,货款将直接进入您的商户号(微信、支付宝)
-
请及时关注你发出的包裹状态,确保可以配送至买家手中
-
- 如果买家表示没收到货或货物有问题,请及时联系买家处理,友好协商 -
-
-
-
+
-
@@ -342,8 +317,8 @@ onMounted(async () => { {{ row.spuName }}
{{ property.propertyName }}: {{ property.valueName }} @@ -353,91 +328,23 @@ onMounted(async () => {
- - -
-
- 商品总额: - {{ fenToYuan(order.totalPrice ?? 0) }} 元 -
-
- 运费金额: - {{ fenToYuan(order.deliveryPrice ?? 0) }} 元 -
-
- 订单调价: - {{ fenToYuan(order.adjustPrice ?? 0) }} 元 -
-
- 优惠劵优惠: - {{ fenToYuan(order.couponPrice ?? 0) }} 元 -
-
- VIP 优惠: - {{ fenToYuan(order.vipPrice ?? 0) }} 元 -
-
- 活动优惠: - {{ fenToYuan(order.discountPrice ?? 0) }} 元 -
-
- 积分抵扣: - {{ fenToYuan(order.pointPrice ?? 0) }} 元 -
-
- 应付金额: - {{ fenToYuan(order.payPrice ?? 0) }} 元 -
-
+
- - -
-
- 配送方式: - -
-
- 收货人: - {{ order.receiverName }} -
-
- 联系电话: - {{ order.receiverMobile }} -
-
- 收货地址: - {{ order.receiverAreaName }} - {{ order.receiverDetailAddress }} -
-
- 发货时间: - {{ formatDateTime(order.deliveryTime || '') }} -
-
+
-
-
diff --git a/apps/web-ele/src/views/mall/trade/order/index.vue b/apps/web-ele/src/views/mall/trade/order/index.vue index 60b3923d7..ac9a14238 100644 --- a/apps/web-ele/src/views/mall/trade/order/index.vue +++ b/apps/web-ele/src/views/mall/trade/order/index.vue @@ -108,27 +108,33 @@ const [Grid, gridApi] = useVbenVxeGrid({ - -