import { MyBetaModalFormProps, MyButtons, MyFormItems, MyModalFormProps, renderTextHelper, rulesHelper, } from '@/common'; import { Apis } from '@/gen/Apis'; import { ContractsContractNatureEnum, ContractsSettlementModeEnum, ContractTemplatesIncomeExpenseTypeEnum, HouseRegistersStatusEnum, RefundsTypeEnum, } from '@/gen/Enums'; import BIllInfo from '@/pages/bills/house_bills/modals/BIllInfo'; import { BetaSchemaForm, ProCard, ProDescriptions, } from '@ant-design/pro-components'; import { useNavigate } from '@umijs/max'; import { Form, message, Space, Steps } from 'antd'; export default function Update(props: MyBetaModalFormProps) { const [form] = Form.useForm(); const navigate = useNavigate(); // 监听status字段变化,动态设置默认审批意见 const handleStatusChange = (changedValues: any) => { if (changedValues.status) { if (changedValues.status === HouseRegistersStatusEnum.Approved.value) { form.setFieldsValue({ opinion: '同意' }); } else if ( changedValues.status === HouseRegistersStatusEnum.Rejected.value ) { form.setFieldsValue({ opinion: '不同意' }); } } }; return ( {...MyModalFormProps.props} title={props.title} trigger={} wrapperCol={{ span: 24 }} width="600px" key={new Date().getTime()} form={form} onOpenChange={() => { if (props?.item?.id) { Apis.Approval.ApprovalInstances.Show({ id: props.item?.approval_instances_id, }).then((res) => { form.setFieldsValue({ info_display: res?.data, }); }); } }} initialValues={{ // 默认选择通过,审批意见为同意 status: HouseRegistersStatusEnum.Approved.value, opinion: '同意', }} onValuesChange={handleStatusChange} onFinish={async (values: any) => Apis.Approval.ApprovalInstances.Approve({ record_id: props.item?.id ?? 0, ...values, }) .then(() => { props.reload?.(); message.success(props.title + '成功'); return true; }) .catch(() => false) } columns={[ { // title: '登记信息', dataIndex: 'info_display', valueType: 'text', renderFormItem: (_, config) => (
{/* 退款详情 */} {config?.value?.type === 'Refund' && ( {config?.value?.title || '-'} {config?.value?.model?.refund_amount || '-'} 元 {config?.value?.model?.payer_name || '-'}| {config?.value?.model?.payer_bank || '-'}| {config?.value?.model?.payer_account || '-'} {config?.value?.model?.payee_name || '-'} {config?.value?.model?.payee_bank || '-'} {config?.value?.model?.payee_account || '-'} {props?.item?.created_at || '-'} )} {/* 合同详情 */} {config?.value?.type === 'Contract' && ( {config?.value?.model?.name || '-'} {config?.value?.model?.code || '-'} { navigate( `/contract/contracts/show/${config?.value?.model?.id}`, ); }} /> {config?.value?.model?.contract_type_name || '-'} {config?.value?.model?.total_amount || '-'} {config?.value?.model?.deposit_amount || '无'} {config?.value?.model?.sign_subject || '-'} {config?.value?.model?.sign_department || '-'} {config?.value?.model?.project_name || '-'} {config?.value?.model?.contract_liaison || '-'} {config?.value?.model?.start_time?.substring(0, 10)}至 {config?.value?.model?.end_time?.substring(0, 10)} {props?.item?.created_at || '-'} {config?.value?.model?.attachments.map((item: any) => { const handleDownload = async ( e: React.MouseEvent, ) => { e.preventDefault(); try { const response = await fetch(item.url); const blob = await response.blob(); const url = window.URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = item.name; document.body.appendChild(a); a.click(); window.URL.revokeObjectURL(url); document.body.removeChild(a); } catch (error) { console.error('下载失败:', error); // 如果下载失败,则在新窗口打开 window.open(item.url, '_blank'); } }; return ( ); })} )} item?.node_type === 'Approver' ? { title: `${ item.company_employee?.name || '-' }-${item?.company_employee?.phone}`, description: `${ item.status === 'Approved' ? `通过 - ${item.opinion || '-'} - ${ item.created_at || '-' }` : '待审核' }`, } : '', )} />
), colProps: { span: 24 }, }, { valueType: 'group', // title: '审核操作', columns: [ MyFormItems.EnumRadio({ key: 'status', title: '审核操作', colProps: { span: 24 }, valueEnum: () => { let obj: any = JSON.parse( JSON.stringify(HouseRegistersStatusEnum), ); delete obj.Pending; return obj; }, required: true, }), { valueType: 'dependency', name: ['status'], columns: ({ status }) => { return status === 'Rejected' ? [ { title: '审批意见', dataIndex: 'opinion', valueType: 'textarea', formItemProps: { ...rulesHelper.text }, colProps: { span: 24 }, }, ] : [ { title: '审批意见', dataIndex: 'opinion', valueType: 'textarea', formItemProps: { ...rulesHelper.text }, colProps: { span: 24 }, }, ]; }, }, ], }, ]} /> ); }