Merge branch 'dev' of gitee.com:yudaocode/yudao-ui-admin-vben into dev-spu

Signed-off-by: puhui999 <puhui999@163.com>
This commit is contained in:
puhui999
2025-10-21 08:53:26 +00:00
committed by Gitee
254 changed files with 4984 additions and 2092 deletions

View File

@@ -23,7 +23,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '商品',
component: 'ApiSelect',
componentProps: {
api: () => getSpuSimpleList(),
api: getSpuSimpleList,
labelField: 'name',
valueField: 'id',
placeholder: '请选择商品',

View File

@@ -50,7 +50,7 @@ export function useInfoFormSchema(): VbenFormSchema[] {
label: '商品品牌',
component: 'ApiSelect',
componentProps: {
api: () => getSimpleBrandList(),
api: getSimpleBrandList,
labelField: 'name',
valueField: 'id',
allowClear: true,
@@ -232,7 +232,7 @@ export function useDeliveryFormSchema(): VbenFormSchema[] {
label: '运费模板',
component: 'ApiSelect',
componentProps: {
api: () => getSimpleTemplateList(),
api: getSimpleTemplateList,
labelField: 'name',
valueField: 'id',
},

View File

@@ -38,7 +38,7 @@ export function useFormSchema(): VbenFormSchema[] {
label: '文章分类',
component: 'ApiSelect',
componentProps: {
api: () => getSimpleArticleCategoryList(),
api: getSimpleArticleCategoryList,
labelField: 'name',
valueField: 'id',
placeholder: '请选择文章分类',
@@ -144,7 +144,7 @@ export function useGridFormSchema(): VbenFormSchema[] {
label: '文章分类',
component: 'ApiSelect',
componentProps: {
api: () => getSimpleArticleCategoryList(),
api: getSimpleArticleCategoryList,
labelField: 'name',
valueField: 'id',
placeholder: '请选择文章分类',

View File

@@ -1,4 +1,3 @@
import type { MallAfterSaleApi } from '#/api/mall/trade/afterSale';
import type { DescriptionItemSchema } from '#/components/description';
import { h } from 'vue';
@@ -20,19 +19,19 @@ export function useOrderInfoSchema(): DescriptionItemSchema[] {
{
field: 'order.deliveryType',
label: '配送方式',
content: (data: MallAfterSaleApi.AfterSale) =>
render: (val) =>
h(DictTag, {
type: DICT_TYPE.TRADE_DELIVERY_TYPE,
value: data?.order?.deliveryType,
value: val,
}),
},
{
field: 'order.type',
label: '订单类型',
content: (data: MallAfterSaleApi.AfterSale) =>
render: (val) =>
h(DictTag, {
type: DICT_TYPE.TRADE_ORDER_TYPE,
value: data?.order?.type,
value: val,
}),
},
{
@@ -46,10 +45,10 @@ export function useOrderInfoSchema(): DescriptionItemSchema[] {
{
field: 'order.terminal',
label: '订单来源',
content: (data: MallAfterSaleApi.AfterSale) =>
render: (val) =>
h(DictTag, {
type: DICT_TYPE.TERMINAL,
value: data?.order?.terminal,
value: val,
}),
},
{
@@ -67,10 +66,10 @@ export function useOrderInfoSchema(): DescriptionItemSchema[] {
{
field: 'order.payChannelCode',
label: '付款方式',
content: (data: MallAfterSaleApi.AfterSale) =>
render: (val) =>
h(DictTag, {
type: DICT_TYPE.PAY_CHANNEL_CODE,
value: data?.order?.payChannelCode,
value: val,
}),
},
{
@@ -90,32 +89,30 @@ export function useAfterSaleInfoSchema(): DescriptionItemSchema[] {
{
field: 'auditTime',
label: '申请时间',
content: (data: MallAfterSaleApi.AfterSale) =>
formatDate(data?.auditTime) as string,
render: (val) => formatDate(val) as string,
},
{
field: 'type',
label: '售后类型',
content: (data: MallAfterSaleApi.AfterSale) =>
render: (val) =>
h(DictTag, {
type: DICT_TYPE.TRADE_AFTER_SALE_TYPE,
value: data?.type,
value: val,
}),
},
{
field: 'way',
label: '售后方式',
content: (data: MallAfterSaleApi.AfterSale) =>
render: (val) =>
h(DictTag, {
type: DICT_TYPE.TRADE_AFTER_SALE_WAY,
value: data?.way,
value: val,
}),
},
{
field: 'refundPrice',
label: '退款金额',
content: (data: MallAfterSaleApi.AfterSale) =>
fenToYuan(data?.refundPrice ?? 0),
render: (val) => fenToYuan(val ?? 0),
},
{
field: 'applyReason',
@@ -128,8 +125,8 @@ export function useAfterSaleInfoSchema(): DescriptionItemSchema[] {
{
field: 'applyPicUrls',
label: '凭证图片',
content: (data) => {
const images = data?.applyPicUrls || [];
render: (val) => {
const images = val || [];
return h(
'div',
{ class: 'flex gap-10px' },
@@ -153,16 +150,16 @@ export function useRefundStatusSchema(): DescriptionItemSchema[] {
{
field: 'status',
label: '退款状态',
content: (data) =>
render: (val) =>
h(DictTag, {
type: DICT_TYPE.TRADE_AFTER_SALE_STATUS,
value: data?.status,
value: val,
}),
},
{
field: 'reminder',
label: '提醒',
content: () =>
render: () =>
h('div', { class: 'text-red-500 mb-10px' }, [
h('div', '如果未发货,请点击同意退款给买家。'),
h('div', '如果实际已发货,请主动与买家联系。'),

View File

@@ -49,29 +49,23 @@ const afterSale = ref<MallAfterSaleApi.AfterSale>({
});
const [OrderDescriptions] = useDescription({
componentProps: {
title: '订单信息',
bordered: false,
column: 3,
},
title: '订单信息',
bordered: false,
column: 3,
schema: useOrderInfoSchema(),
});
const [AfterSaleDescriptions] = useDescription({
componentProps: {
title: '售后信息',
bordered: false,
column: 3,
},
title: '售后信息',
bordered: false,
column: 3,
schema: useAfterSaleInfoSchema(),
});
const [RefundStatusDescriptions] = useDescription({
componentProps: {
title: '退款状态',
bordered: false,
column: 1,
},
title: '退款状态',
bordered: false,
column: 1,
schema: useRefundStatusSchema(),
});

View File

@@ -65,7 +65,7 @@ export function useFormSchema(): VbenFormSchema[] {
component: 'ApiTreeSelect',
rules: 'required',
componentProps: {
api: () => getAreaTree(),
api: getAreaTree,
fieldNames: { label: 'name', value: 'id', children: 'children' },
placeholder: '请选择省市区',
},
@@ -146,7 +146,7 @@ export function useBindFormSchema(): VbenFormSchema[] {
label: '门店店员',
rules: 'required',
componentProps: {
api: () => getSimpleUserList(),
api: getSimpleUserList,
labelField: 'nickname',
valueField: 'id',
mode: 'tags',

View File

@@ -74,7 +74,7 @@ export function useGridFormSchema(): VbenFormSchema[] {
label: '快递公司',
component: 'ApiSelect',
componentProps: {
api: () => getSimpleDeliveryExpressList(),
api: getSimpleDeliveryExpressList,
labelField: 'name',
valueField: 'id',
placeholder: '请选择快递公司',
@@ -90,7 +90,7 @@ export function useGridFormSchema(): VbenFormSchema[] {
label: '自提门店',
component: 'ApiSelect',
componentProps: {
api: () => getSimpleDeliveryPickUpStoreList(),
api: getSimpleDeliveryPickUpStoreList,
labelField: 'name',
valueField: 'id',
placeholder: '请选择自提门店',
@@ -369,7 +369,7 @@ export function useAddressFormSchema(): VbenFormSchema[] {
label: '所在地',
component: 'ApiTreeSelect',
componentProps: {
api: () => getAreaTree(),
api: getAreaTree,
labelField: 'name',
valueField: 'id',
childrenField: 'children',
@@ -422,7 +422,7 @@ export function useDeliveryFormSchema(): VbenFormSchema[] {
label: '物流公司',
component: 'ApiSelect',
componentProps: {
api: () => getSimpleDeliveryExpressList(),
api: getSimpleDeliveryExpressList,
labelField: 'name',
valueField: 'id',
placeholder: '请选择物流公司',

View File

@@ -1,5 +1,4 @@
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';
@@ -23,19 +22,19 @@ export function useOrderInfoSchema(): DescriptionItemSchema[] {
{
field: 'type',
label: '订单类型',
content: (data: MallOrderApi.Order) =>
render: (val) =>
h(DictTag, {
type: DICT_TYPE.TRADE_ORDER_TYPE,
value: data?.type,
value: val,
}),
},
{
field: 'terminal',
label: '订单来源',
content: (data: MallOrderApi.Order) =>
render: (val) =>
h(DictTag, {
type: DICT_TYPE.TERMINAL,
value: data?.terminal,
value: val,
}),
},
{
@@ -53,10 +52,10 @@ export function useOrderInfoSchema(): DescriptionItemSchema[] {
{
field: 'payChannelCode',
label: '付款方式',
content: (data: MallOrderApi.Order) =>
render: (val) =>
h(DictTag, {
type: DICT_TYPE.PAY_CHANNEL_CODE,
value: data?.payChannelCode,
value: val,
}),
},
{
@@ -72,16 +71,16 @@ export function useOrderStatusSchema(): DescriptionItemSchema[] {
{
field: 'status',
label: '订单状态',
content: (data: MallOrderApi.Order) =>
render: (val) =>
h(DictTag, {
type: DICT_TYPE.TRADE_ORDER_STATUS,
value: data?.status,
value: val,
}),
},
{
field: 'reminder',
label: '提醒',
content: () =>
render: () =>
h('div', { class: 'space-y-1' }, [
h('div', '买家付款成功后,货款将直接进入您的商户号(微信、支付宝)'),
h('div', '请及时关注你发出的包裹状态,确保可以配送至买家手中'),
@@ -100,66 +99,46 @@ export function useOrderPriceSchema(): DescriptionItemSchema[] {
{
field: 'totalPrice',
label: '商品总额',
content: (data: MallOrderApi.Order) =>
`${fenToYuan(data?.totalPrice ?? 0)}`,
render: (val) => `${fenToYuan(val ?? 0)}`,
},
{
field: 'deliveryPrice',
label: '运费金额',
content: (data: MallOrderApi.Order) =>
`${fenToYuan(data?.deliveryPrice ?? 0)}`,
render: (val) => `${fenToYuan(val ?? 0)}`,
},
{
field: 'adjustPrice',
label: '订单调价',
content: (data: MallOrderApi.Order) =>
`${fenToYuan(data?.adjustPrice ?? 0)}`,
render: (val) => `${fenToYuan(val ?? 0)}`,
},
{
field: 'couponPrice',
label: '优惠劵优惠',
content: (data: MallOrderApi.Order) =>
h(
'span',
{ class: 'text-red-500' },
`${fenToYuan(data?.couponPrice ?? 0)}`,
),
render: (val) =>
h('span', { class: 'text-red-500' }, `${fenToYuan(val ?? 0)}`),
},
{
field: 'vipPrice',
label: 'VIP 优惠',
content: (data: MallOrderApi.Order) =>
h(
'span',
{ class: 'text-red-500' },
`${fenToYuan(data?.vipPrice ?? 0)}`,
),
render: (val) =>
h('span', { class: 'text-red-500' }, `${fenToYuan(val ?? 0)}`),
},
{
field: 'discountPrice',
label: '活动优惠',
content: (data: MallOrderApi.Order) =>
h(
'span',
{ class: 'text-red-500' },
`${fenToYuan(data?.discountPrice ?? 0)}`,
),
render: (val) =>
h('span', { class: 'text-red-500' }, `${fenToYuan(val ?? 0)}`),
},
{
field: 'pointPrice',
label: '积分抵扣',
content: (data: MallOrderApi.Order) =>
h(
'span',
{ class: 'text-red-500' },
`${fenToYuan(data?.pointPrice ?? 0)}`,
),
render: (val) =>
h('span', { class: 'text-red-500' }, `${fenToYuan(val ?? 0)}`),
},
{
field: 'payPrice',
label: '应付金额',
content: (data: MallOrderApi.Order) =>
`${fenToYuan(data?.payPrice ?? 0)}`,
render: (val) => `${fenToYuan(val ?? 0)}`,
},
];
}
@@ -170,10 +149,10 @@ export function useDeliveryInfoSchema(): DescriptionItemSchema[] {
{
field: 'deliveryType',
label: '配送方式',
content: (data: MallOrderApi.Order) =>
render: (val) =>
h(DictTag, {
type: DICT_TYPE.TRADE_DELIVERY_TYPE,
value: data?.deliveryType,
value: val,
}),
},
{
@@ -187,14 +166,12 @@ export function useDeliveryInfoSchema(): DescriptionItemSchema[] {
{
field: 'receiverAddress',
label: '收货地址',
content: (data: MallOrderApi.Order) =>
`${data?.receiverAreaName} ${data?.receiverDetailAddress}`.trim(),
render: (val, data) => `${data?.receiverAreaName} ${val}`.trim(),
},
{
field: 'deliveryTime',
label: '发货时间',
content: (data: MallOrderApi.Order) =>
formatDateTime(data?.deliveryTime) as string,
render: (val) => formatDateTime(val) as string,
},
];
}

View File

@@ -57,38 +57,30 @@ const expressTrackList = ref<any[]>([]);
const pickUpStore = ref<MallDeliveryPickUpStoreApi.PickUpStore | undefined>();
const [OrderInfoDescriptions] = useDescription({
componentProps: {
title: '订单信息',
bordered: false,
column: 3,
},
title: '订单信息',
bordered: false,
column: 3,
schema: useOrderInfoSchema(),
});
const [OrderStatusDescriptions] = useDescription({
componentProps: {
title: '订单状态',
bordered: false,
column: 1,
},
title: '订单状态',
bordered: false,
column: 1,
schema: useOrderStatusSchema(),
});
const [OrderPriceDescriptions] = useDescription({
componentProps: {
title: '费用信息',
bordered: false,
column: 4,
},
title: '费用信息',
bordered: false,
column: 4,
schema: useOrderPriceSchema(),
});
const [DeliveryInfoDescriptions] = useDescription({
componentProps: {
title: '收货信息',
bordered: false,
column: 3,
},
title: '收货信息',
bordered: false,
column: 3,
schema: useDeliveryInfoSchema(),
});