uiujun 178045f0da
Some checks failed
Build and Push Docker Image / build (push) Has been cancelled
fix: 调账功能新增; 限定antd版本
2026-07-03 16:55:24 +08:00

143 lines
5.1 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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>
}
/>
);
}