143 lines
5.1 KiB
TypeScript
143 lines
5.1 KiB
TypeScript
import {
|
||
MyBetaModalFormProps,
|
||
MyColumns,
|
||
MyProTableProps,
|
||
renderTextHelper,
|
||
} from '@/common';
|
||
import { MyModal } from '@/components/MyModal';
|
||
import { Apis } from '@/gen/Apis';
|
||
import {
|
||
HouseBillsTypeEnum,
|
||
HouseOrdersAuditStatusEnum,
|
||
HouseOrdersPaymentMethodEnum,
|
||
} from '@/gen/Enums';
|
||
import { ProCard, ProDescriptions, ProTable } from '@ant-design/pro-components';
|
||
import { Space, Spin } from 'antd';
|
||
import { useState } from 'react';
|
||
|
||
export default function OrderShow(props: MyBetaModalFormProps) {
|
||
const [orderData, setOrderData] = useState<any>({});
|
||
const [loading, setLoading] = useState(false);
|
||
|
||
const getOrderId = () => {
|
||
if (!props.item) return undefined;
|
||
if (typeof props.item === 'number' || typeof props.item === 'string') {
|
||
return Number(props.item);
|
||
}
|
||
return Number(props.item.id || props.item.order_id);
|
||
};
|
||
|
||
const fetchOrderData = () => {
|
||
const id = getOrderId();
|
||
if (!id) return;
|
||
setLoading(true);
|
||
Apis.HouseOrder.HouseOrders.Show({ id })
|
||
.then((res) => {
|
||
setOrderData(res?.data || {});
|
||
})
|
||
.finally(() => {
|
||
setLoading(false);
|
||
});
|
||
};
|
||
|
||
return (
|
||
<MyModal
|
||
title={props.title || '查看'}
|
||
modal={{ title: props.title || '查看' }}
|
||
width={800}
|
||
onOpen={() => fetchOrderData()}
|
||
node={
|
||
<Spin spinning={loading}>
|
||
<Space direction="vertical" style={{ width: '100%' }}>
|
||
<ProCard size="small">
|
||
<ProDescriptions bordered size="small" column={2}>
|
||
<ProDescriptions.Item label="房屋名称" span={2}>
|
||
<Space>
|
||
{orderData?.house_order_items?.[0]?.asset_house
|
||
?.full_name || '-'}
|
||
<renderTextHelper.Tag
|
||
Enums={HouseOrdersAuditStatusEnum}
|
||
value={orderData?.audit_status}
|
||
/>
|
||
</Space>
|
||
</ProDescriptions.Item>
|
||
<ProDescriptions.Item label="收款账号" span={2}>
|
||
{orderData?.receipt_account?.company_name || '-'} ;
|
||
{orderData?.receipt_account?.company_bank || '-'} ;
|
||
{orderData?.receipt_account?.company_account || '-'}
|
||
</ProDescriptions.Item>
|
||
<ProDescriptions.Item label="关联流水" span={2}>
|
||
{orderData?.accept_serial_number || '-'}
|
||
</ProDescriptions.Item>
|
||
<ProDescriptions.Item label="收款方式">
|
||
{Object.values(HouseOrdersPaymentMethodEnum).find(
|
||
(item) => item.value === orderData?.payment_method,
|
||
)?.text || '-'}
|
||
</ProDescriptions.Item>
|
||
<ProDescriptions.Item label="收款日期">
|
||
{orderData?.paid_time || '-'}
|
||
</ProDescriptions.Item>
|
||
|
||
<ProDescriptions.Item label="收款金额">
|
||
{orderData?.actual_paid_amount || '-'}
|
||
</ProDescriptions.Item>
|
||
<ProDescriptions.Item label="录入人">
|
||
{orderData?.creator || '-'}-{orderData?.creator_phone || '-'}
|
||
</ProDescriptions.Item>
|
||
<ProDescriptions.Item label="录入时间">
|
||
{orderData?.created_at || '-'}
|
||
</ProDescriptions.Item>
|
||
<ProDescriptions.Item label="审核状态" span={2}>
|
||
<renderTextHelper.Tag
|
||
Enums={HouseOrdersAuditStatusEnum}
|
||
value={orderData?.audit_status}
|
||
/>
|
||
</ProDescriptions.Item>
|
||
<ProDescriptions.Item label="驳回原因" span={2}>
|
||
{orderData?.reason || '-'}
|
||
</ProDescriptions.Item>
|
||
</ProDescriptions>
|
||
</ProCard>
|
||
<ProCard size="small">
|
||
<ProTable
|
||
{...MyProTableProps.props}
|
||
search={false}
|
||
toolBarRender={false}
|
||
pagination={false}
|
||
dataSource={orderData?.house_order_items}
|
||
rowKey={(record, index) => record?.id || index}
|
||
size="small"
|
||
columns={[
|
||
{
|
||
title: '关联账单',
|
||
render: (_, record) => {
|
||
return `${record.house_bill.year}-${String(
|
||
record.house_bill.month,
|
||
).padStart(2, '0')}`;
|
||
},
|
||
},
|
||
MyColumns.EnumTag({
|
||
title: '类型',
|
||
dataIndex: ['house_bill', 'type'],
|
||
valueEnum: HouseBillsTypeEnum,
|
||
}),
|
||
{
|
||
title: '未收金额',
|
||
dataIndex: 'amount',
|
||
search: false,
|
||
},
|
||
{
|
||
title: '本次收取金额',
|
||
dataIndex: 'paid_amount',
|
||
search: false,
|
||
},
|
||
]}
|
||
/>
|
||
</ProCard>
|
||
</Space>
|
||
</Spin>
|
||
}
|
||
/>
|
||
);
|
||
}
|