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({
-
-
-
+
+
+
-
-
+
+
{{ item.spuName }}
{{ property.propertyName }}: {{ property.valueName }}
-
+
- 原价:{{ fenToYuan(item.price || 0) }} 元 / 数量:{{
- item.count || 0
+ 原价:{{ fenToYuan(item.price) }} 元 / 数量:{{
+ item.count
}}个
-
-