154 lines
4.0 KiB
TypeScript
154 lines
4.0 KiB
TypeScript
import type { ProColumns } from '@ant-design/pro-components';
|
||
import { Image, Space, Tag, Typography } from 'antd';
|
||
import type { TradeOrderPageRespVO } from '@/services/trade/order';
|
||
|
||
const { Text, Paragraph } = Typography;
|
||
export const baseOrderColumns: ProColumns<TradeOrderPageRespVO>[] = [
|
||
{
|
||
title: '商品',
|
||
dataIndex: 'items',
|
||
hideInSearch: true,
|
||
width: '100%',
|
||
ellipsis: true,
|
||
render: (_, record) => {
|
||
if (!record.items) {
|
||
return _;
|
||
}
|
||
return record.items.map((item, index) => (
|
||
<div
|
||
style={{ width: '100%', display: 'flex', gap: '8px' }}
|
||
key={`${index}${Math.random()}`}
|
||
>
|
||
<Image src={item.picUrl} width={64} height={64} />
|
||
<div style={{ flex: '1', overflow: 'hidden' }}>
|
||
<Paragraph ellipsis style={{ width: '100%', marginBottom: 0 }}>
|
||
{item.spuName}测试商品名称测试商品名称测试商品名称测试商品名称
|
||
</Paragraph>
|
||
<div>{item.skuName}</div>
|
||
<Space>
|
||
<div>
|
||
<Text type="secondary">数量:</Text>
|
||
<Text>{item.count || 0}</Text>
|
||
</div>
|
||
<div>
|
||
<Text type="secondary">单价:</Text>
|
||
<Text>
|
||
{item.price || 0}/{item.unit || '-'}
|
||
</Text>
|
||
</div>
|
||
<div>
|
||
<Text type="secondary">到手价:</Text>
|
||
<Text>
|
||
{item.handedPrice || 0}/{item.unit || '-'}
|
||
</Text>
|
||
</div>
|
||
</Space>
|
||
</div>
|
||
</div>
|
||
));
|
||
},
|
||
},
|
||
|
||
{
|
||
title: '服务',
|
||
dataIndex: 'serveAddress',
|
||
hideInSearch: true,
|
||
ellipsis: true,
|
||
width: '100%',
|
||
render: (_, record) => (
|
||
<Space direction="vertical" style={{ width: '100%' }}>
|
||
<Paragraph ellipsis style={{ marginBottom: 0 }}>
|
||
<Text type="secondary">预约时间:</Text>
|
||
<Text>{record?.subTime || '-'}</Text>
|
||
<Tag style={{ marginLeft: 10 }}>预约</Tag>
|
||
<Tag color="error" style={{ marginLeft: 10 }}>
|
||
加急
|
||
</Tag>
|
||
</Paragraph>
|
||
<Paragraph ellipsis style={{ marginBottom: 0 }}>
|
||
<Text type="secondary">服务地址:</Text>
|
||
<Text>{record.serveAddress || '-'}</Text>
|
||
</Paragraph>
|
||
<div>
|
||
<Text type="secondary">用户备注:</Text>
|
||
<Text>{record.userRemark || '-'}</Text>
|
||
</div>
|
||
</Space>
|
||
),
|
||
},
|
||
{
|
||
title: '财务',
|
||
dataIndex: 'price',
|
||
hideInSearch: true,
|
||
width: '100%',
|
||
render: (_, record) => (
|
||
<Space direction="vertical">
|
||
<div>
|
||
<Text type="secondary">实付金额:</Text>
|
||
<Text>{record?.payPrice || '-'}</Text>
|
||
</div>
|
||
<div>
|
||
<Text type="secondary">支付方式:</Text>
|
||
<Text>{record.payType || '-'}</Text>
|
||
</div>
|
||
<div>
|
||
<Text type="secondary">财务状态:</Text>
|
||
<Text>{record.financeStatus || '-'}</Text>
|
||
</div>
|
||
</Space>
|
||
),
|
||
},
|
||
{
|
||
title: '卖家名称',
|
||
dataIndex: 'merchantName',
|
||
hideInTable: true,
|
||
},
|
||
{
|
||
title: '买家昵称/手机号',
|
||
dataIndex: 'userSearch',
|
||
hideInTable: true,
|
||
},
|
||
{
|
||
title: '订单类目',
|
||
dataIndex: 'orderCategoryId',
|
||
valueType: 'select',
|
||
hideInTable: true,
|
||
},
|
||
{
|
||
title: '订单来源',
|
||
dataIndex: 'orderTerminal',
|
||
valueType: 'select',
|
||
hideInTable: true,
|
||
},
|
||
{
|
||
title: '财务状态',
|
||
dataIndex: 'financeStatus',
|
||
valueType: 'select',
|
||
hideInTable: true,
|
||
},
|
||
{
|
||
title: '售后状态',
|
||
dataIndex: 'afterSaleStatus',
|
||
valueType: 'select',
|
||
hideInTable: true,
|
||
},
|
||
{
|
||
title: '预约状态',
|
||
dataIndex: 'subType',
|
||
valueType: 'select',
|
||
hideInTable: true,
|
||
},
|
||
{
|
||
title: '创建时间',
|
||
dataIndex: 'createTime',
|
||
valueType: 'dateRange',
|
||
hideInTable: true,
|
||
},
|
||
{
|
||
title: '预约时间',
|
||
dataIndex: 'subTime',
|
||
valueType: 'dateRange',
|
||
hideInTable: true,
|
||
},
|
||
];
|