fix:修复装修审核、合同供应商选择
All checks were successful
Build and Push Docker Image / build (push) Successful in 4m50s

This commit is contained in:
uiujun 2026-04-29 18:04:31 +08:00
parent 9108078cc0
commit aa77a2e5e7
9 changed files with 309 additions and 595 deletions

View File

@ -266,7 +266,7 @@ export default function Index({ title = '新增补充协议' }) {
}, },
required: true, required: true,
fieldProps: { fieldProps: {
placeholder: '请选择签约主体', placeholder: '请选择供应商',
}, },
}), }),
] ]
@ -285,7 +285,45 @@ export default function Index({ title = '新增补充协议' }) {
}, },
required: true, required: true,
fieldProps: { fieldProps: {
placeholder: '请选择签约主体', placeholder: '请选择内部企业',
},
}),
]
: counterparty_type === 'CustomerCompany'
? [
SelectContract.SupplierName({
key: 'counterparty',
title: '',
params: {
counterparty: 'CustomerCompany',
},
colProps: { span: 12 },
formItemProps: {
...rulesHelper.text,
wrapperCol: { span: 24 },
},
required: true,
fieldProps: {
placeholder: '请选择客户单位',
},
}),
]
: counterparty_type === 'Other'
? [
SelectContract.SupplierName({
key: 'counterparty',
title: '',
params: {
counterparty: 'Other',
},
colProps: { span: 12 },
formItemProps: {
...rulesHelper.text,
wrapperCol: { span: 24 },
},
required: true,
fieldProps: {
placeholder: '请选择其他',
}, },
}), }),
] ]

View File

@ -240,7 +240,7 @@ export default function Index({ title = '修改补充协议' }) {
}, },
required: true, required: true,
fieldProps: { fieldProps: {
placeholder: '请选择签约主体', placeholder: '请选择供应商',
}, },
}), }),
] ]
@ -259,7 +259,45 @@ export default function Index({ title = '修改补充协议' }) {
}, },
required: true, required: true,
fieldProps: { fieldProps: {
placeholder: '请选择签约主体', placeholder: '请选择内部企业',
},
}),
]
: counterparty_type === 'CustomerCompany'
? [
SelectContract.SupplierName({
key: 'counterparty',
title: '',
params: {
counterparty: 'CustomerCompany',
},
colProps: { span: 12 },
formItemProps: {
...rulesHelper.text,
wrapperCol: { span: 24 },
},
required: true,
fieldProps: {
placeholder: '请选择客户单位',
},
}),
]
: counterparty_type === 'Other'
? [
SelectContract.SupplierName({
key: 'counterparty',
title: '',
params: {
counterparty: 'Other',
},
colProps: { span: 12 },
formItemProps: {
...rulesHelper.text,
wrapperCol: { span: 24 },
},
required: true,
fieldProps: {
placeholder: '请选择其他',
}, },
}), }),
] ]

View File

@ -597,15 +597,22 @@ export default function Index({ title = '新增合同' }) {
buttonStyle: 'solid', buttonStyle: 'solid',
}, },
}), }),
MyFormItems.EnumRadio({ MyFormItems.EnumSelect({
key: 'counterparty_type', key: 'counterparty_type',
title: '', title: '',
valueEnum: CompanySuppliersCounterpartyEnum, valueEnum: CompanySuppliersCounterpartyEnum,
colProps: { span: 7 }, colProps: { span: 5 },
formItemProps: { formItemProps: {
...rulesHelper.text, ...rulesHelper.text,
wrapperCol: { span: 24 }, wrapperCol: { span: 24 },
}, },
// fieldProps: {
// buttonStyle: 'solid',
// onChange: () => {
// // 切换计量单位时清空计费模式
// form.setFieldValue('counterparty', undefined);
// },
// },
}), }),
{ {
valueType: 'dependency', valueType: 'dependency',
@ -619,7 +626,7 @@ export default function Index({ title = '新增合同' }) {
params: { params: {
counterparty: 'Supplier', counterparty: 'Supplier',
}, },
colProps: { span: 10 }, colProps: { span: 12 },
formItemProps: { formItemProps: {
...rulesHelper.text, ...rulesHelper.text,
wrapperCol: { span: 24 }, wrapperCol: { span: 24 },
@ -638,14 +645,52 @@ export default function Index({ title = '新增合同' }) {
params: { params: {
counterparty: 'InternalCompany', counterparty: 'InternalCompany',
}, },
colProps: { span: 10 }, colProps: { span: 12 },
formItemProps: { formItemProps: {
...rulesHelper.text, ...rulesHelper.text,
wrapperCol: { span: 24 }, wrapperCol: { span: 24 },
}, },
required: true, required: true,
fieldProps: { fieldProps: {
placeholder: '请选择内部公司', placeholder: '请选择内部企业',
},
}),
]
: counterparty_type === 'CustomerCompany'
? [
SelectContract.SupplierName({
key: 'counterparty',
title: '',
params: {
counterparty: 'CustomerCompany',
},
colProps: { span: 12 },
formItemProps: {
...rulesHelper.text,
wrapperCol: { span: 24 },
},
required: true,
fieldProps: {
placeholder: '请选择客户单位',
},
}),
]
: counterparty_type === 'Other'
? [
SelectContract.SupplierName({
key: 'counterparty',
title: '',
params: {
counterparty: 'Other',
},
colProps: { span: 12 },
formItemProps: {
...rulesHelper.text,
wrapperCol: { span: 24 },
},
required: true,
fieldProps: {
placeholder: '请选择其他',
}, },
}), }),
] ]
@ -656,7 +701,7 @@ export default function Index({ title = '新增合同' }) {
params: { params: {
counterparty: 'InternalCompany', counterparty: 'InternalCompany',
}, },
colProps: { span: 10 }, colProps: { span: 12 },
formItemProps: { formItemProps: {
...rulesHelper.text, ...rulesHelper.text,
wrapperCol: { span: 24 }, wrapperCol: { span: 24 },
@ -833,12 +878,12 @@ export default function Index({ title = '新增合同' }) {
fieldProps: { fieldProps: {
options: contractData?.peoples options: contractData?.peoples
?.filter((item: any) => { ?.filter((item: any) => {
// 当收入类型为Income时只显示内部公司 // 当收入类型为Income时只显示内部企业
if (contractData?.income_expense_type === 'Income') { if (contractData?.income_expense_type === 'Income') {
return item?.counterparty_type === 'InternalCompany'; return item?.counterparty_type === 'InternalCompany';
} }
// 其他情况显示所有 // 支出时显示外部单位
return item?.counterparty_type === 'Supplier'; return item?.counterparty_type !== 'InternalCompany';
}) })
.map((item: any) => ({ .map((item: any) => ({
label: item?.counterparty, label: item?.counterparty,
@ -855,12 +900,12 @@ export default function Index({ title = '新增合同' }) {
fieldProps: { fieldProps: {
options: contractData?.peoples options: contractData?.peoples
?.filter((item: any) => { ?.filter((item: any) => {
// 当收入类型为Income时只显示内部公司 // 当支出类型为Expense时只显示内部企业
if (contractData?.income_expense_type === 'Expense') { if (contractData?.income_expense_type === 'Expense') {
return item?.counterparty_type === 'InternalCompany'; return item?.counterparty_type === 'InternalCompany';
} }
// 其他情况显示所有 // 收入时显示外部单位
return item?.counterparty_type === 'Supplier'; return item?.counterparty_type !== 'InternalCompany';
}) })
.map((item: any) => ({ .map((item: any) => ({
label: item?.counterparty, label: item?.counterparty,

View File

@ -35,7 +35,7 @@ export default function Index({ title = '编辑合同' }) {
const [submitModalVisible, setSubmitModalVisible] = useState<boolean>(false); const [submitModalVisible, setSubmitModalVisible] = useState<boolean>(false);
const [currentStep, setCurrentStep] = useState<number>(0); const [currentStep, setCurrentStep] = useState<number>(0);
const [contractData, setContractData] = useState<any>({}); const [contractData, setContractData] = useState<any>({});
// const [billsData, setBillsData] = useState<any[]>([]); const [billsData, setBillsData] = useState<any[]>([]);
const loadShow = () => { const loadShow = () => {
Apis.Contract.Contracts.Show({ id: Number(id) }).then((res) => { Apis.Contract.Contracts.Show({ id: Number(id) }).then((res) => {
@ -44,8 +44,8 @@ export default function Index({ title = '编辑合同' }) {
setContractData(contractData); setContractData(contractData);
setSelectedRow(res?.data?.resource); setSelectedRow(res?.data?.resource);
// 提取账单数据 // 提取账单数据
// const bills = contractData?.contract_bills || []; const bills = contractData?.contract_bills || [];
// setBillsData(bills); setBillsData(bills);
form2.setFieldsValue({ form2.setFieldsValue({
...contractData, ...contractData,
payee: res?.data?.contract_bills?.[0]?.payee, payee: res?.data?.contract_bills?.[0]?.payee,
@ -76,9 +76,9 @@ export default function Index({ title = '编辑合同' }) {
}, [id]); }, [id]);
const onSave = (formData: any, subType: number = 1) => { const onSave = (formData: any, subType: number = 1) => {
// formData?.peoples?.forEach((res: any) => { formData?.peoples?.forEach((res: any) => {
// res.company_suppliers_id = res?.counterparty?.split('')?.[0]; res.company_suppliers_id = res?.counterparty?.split('')?.[0];
// }); });
const contractDataToSave = { const contractDataToSave = {
...formData, ...formData,
is_deposit: is_deposit:
@ -336,10 +336,10 @@ export default function Index({ title = '编辑合同' }) {
onClick={() => { onClick={() => {
// 先保存合同,然后显示提审弹窗 // 先保存合同,然后显示提审弹窗
const values = form.getFieldsValue(); const values = form.getFieldsValue();
// values?.peoples?.forEach((res: any) => { values?.peoples?.forEach((res: any) => {
// res.company_suppliers_id = res.company_suppliers_id =
// res?.counterparty?.split('')?.[0]; res?.counterparty?.split('')?.[0];
// }); });
form?.validateFields().then(() => { form?.validateFields().then(() => {
Apis.Contract.Contracts.Update({ Apis.Contract.Contracts.Update({
...values, ...values,
@ -662,11 +662,11 @@ export default function Index({ title = '编辑合同' }) {
buttonStyle: 'solid', buttonStyle: 'solid',
}, },
}), }),
MyFormItems.EnumRadio({ MyFormItems.EnumSelect({
key: 'counterparty_type', key: 'counterparty_type',
title: '', title: '',
valueEnum: CompanySuppliersCounterpartyEnum, valueEnum: CompanySuppliersCounterpartyEnum,
colProps: { span: 7 }, colProps: { span: 6 },
formItemProps: { formItemProps: {
...rulesHelper.text, ...rulesHelper.text,
wrapperCol: { span: 24 }, wrapperCol: { span: 24 },
@ -691,7 +691,7 @@ export default function Index({ title = '编辑合同' }) {
params: { params: {
counterparty: 'Supplier', counterparty: 'Supplier',
}, },
colProps: { span: 10 }, colProps: { span: 12 },
formItemProps: { formItemProps: {
...rulesHelper.text, ...rulesHelper.text,
wrapperCol: { span: 24 }, wrapperCol: { span: 24 },
@ -710,14 +710,52 @@ export default function Index({ title = '编辑合同' }) {
params: { params: {
counterparty: 'InternalCompany', counterparty: 'InternalCompany',
}, },
colProps: { span: 10 }, colProps: { span: 12 },
formItemProps: { formItemProps: {
...rulesHelper.text, ...rulesHelper.text,
wrapperCol: { span: 24 }, wrapperCol: { span: 24 },
}, },
required: true, required: true,
fieldProps: { fieldProps: {
placeholder: '请选择内部公司', placeholder: '请选择内部企业',
},
}),
]
: counterparty_type === 'CustomerCompany'
? [
SelectContract.SupplierName({
key: 'counterparty',
title: '',
params: {
counterparty: 'CustomerCompany',
},
colProps: { span: 12 },
formItemProps: {
...rulesHelper.text,
wrapperCol: { span: 24 },
},
required: true,
fieldProps: {
placeholder: '请选择客户单位',
},
}),
]
: counterparty_type === 'Other'
? [
SelectContract.SupplierName({
key: 'counterparty',
title: '',
params: {
counterparty: 'Other',
},
colProps: { span: 12 },
formItemProps: {
...rulesHelper.text,
wrapperCol: { span: 24 },
},
required: true,
fieldProps: {
placeholder: '请选择其他',
}, },
}), }),
] ]
@ -728,7 +766,7 @@ export default function Index({ title = '编辑合同' }) {
params: { params: {
counterparty: 'InternalCompany', counterparty: 'InternalCompany',
}, },
colProps: { span: 10 }, colProps: { span: 12 },
formItemProps: { formItemProps: {
...rulesHelper.text, ...rulesHelper.text,
wrapperCol: { span: 24 }, wrapperCol: { span: 24 },
@ -904,12 +942,12 @@ export default function Index({ title = '编辑合同' }) {
fieldProps: { fieldProps: {
options: contractData?.peoples options: contractData?.peoples
?.filter((item: any) => { ?.filter((item: any) => {
// 当收入类型为Income时只显示内部公司 // 当收入类型为Income时只显示内部企业
if (contractData?.income_expense_type === 'Income') { if (contractData?.income_expense_type === 'Income') {
return item?.counterparty_type === 'InternalCompany'; return item?.counterparty_type === 'InternalCompany';
} }
// 其他情况显示所有 // 支出时显示外部单位
return item?.counterparty_type === 'Supplier'; return item?.counterparty_type !== 'InternalCompany';
}) })
.map((item: any) => ({ .map((item: any) => ({
label: item?.counterparty, label: item?.counterparty,
@ -926,12 +964,12 @@ export default function Index({ title = '编辑合同' }) {
fieldProps: { fieldProps: {
options: contractData?.peoples options: contractData?.peoples
?.filter((item: any) => { ?.filter((item: any) => {
// 当收入类型为Income时只显示内部公司 // 当支出类型为Expense时只显示内部企业
if (contractData?.income_expense_type === 'Expense') { if (contractData?.income_expense_type === 'Expense') {
return item?.counterparty_type === 'InternalCompany'; return item?.counterparty_type === 'InternalCompany';
} }
// 其他情况显示所有 // 收入时显示外部单位
return item?.counterparty_type === 'Supplier'; return item?.counterparty_type !== 'InternalCompany';
}) })
.map((item: any) => ({ .map((item: any) => ({
label: item?.counterparty, label: item?.counterparty,

View File

@ -2,12 +2,10 @@ import { MyButtons, MyColumns, MyProTableProps } from '@/common';
import { Apis } from '@/gen/Apis'; import { Apis } from '@/gen/Apis';
import { RenovationAppliesStatusEnum } from '@/gen/Enums'; import { RenovationAppliesStatusEnum } from '@/gen/Enums';
import { ProTable } from '@ant-design/pro-components'; import { ProTable } from '@ant-design/pro-components';
import { useNavigate } from '@umijs/max';
import { Space } from 'antd'; import { Space } from 'antd';
import Review from '../modals/Review';
export default function Index() { export default function Index() {
const navigate = useNavigate();
return ( return (
<ProTable<Record<any, any>> <ProTable<Record<any, any>>
{...MyProTableProps.props} {...MyProTableProps.props}
@ -74,16 +72,12 @@ export default function Index() {
}, },
MyColumns.CreatedAt(), MyColumns.CreatedAt(),
MyColumns.Option({ MyColumns.Option({
render: (_, item: any, index) => ( render: (_, item: any, index, action) => (
<Space key={index}> <Space key={index}>
<MyButtons.Default <Review
key="Update" key="Review"
size="small" item={item}
type="primary" reload={action?.reload}
onClick={() => {
navigate(`/quality/renovation/pages/review?id=${item.id}`);
}}
title="查看并审核"
/> />
</Space> </Space>
), ),

View File

@ -178,6 +178,44 @@ export default function Info(props: MyBetaModalFormProps) {
</> </>
)} )}
{props?.item?.major_construction?.length > 0 && (
<ProCard bordered title="重大施工项目" style={{ marginTop: 16 }}>
{props.item.major_construction.map(
(item: any, index: number, arr: any[]) => (
<div
key={index}
style={{
marginBottom:
index < arr.length - 1 ? 16 : 0,
}}
>
<div
style={{ fontWeight: 'bold', marginBottom: 8 }}
>
{index + 1}{item.name || '-'}
</div>
<ProDescriptions column={3}>
<ProDescriptions.Item label="施工图纸">
{item.draw ? '已上传' : '-'}
</ProDescriptions.Item>
<ProDescriptions.Item label="执业证件">
{item.certificate ? '已上传' : '-'}
</ProDescriptions.Item>
</ProDescriptions>
{index < arr.length - 1 && (
<div
style={{
borderBottom: '1px solid #f0f0f0',
margin: '16px 0',
}}
/>
)}
</div>
),
)}
</ProCard>
)}
<ProCard bordered title="其他附件" style={{ marginTop: 16 }}> <ProCard bordered title="其他附件" style={{ marginTop: 16 }}>
<ProDescriptions column={3}> <ProDescriptions column={3}>
<ProDescriptions.Item label="施工图"> <ProDescriptions.Item label="施工图">

View File

@ -8,7 +8,6 @@ import {
import { Selects } from '@/components/Select'; import { Selects } from '@/components/Select';
import { Apis } from '@/gen/Apis'; import { Apis } from '@/gen/Apis';
import { BetaSchemaForm } from '@ant-design/pro-components'; import { BetaSchemaForm } from '@ant-design/pro-components';
import { useNavigate } from '@umijs/max';
import { Form, message } from 'antd'; import { Form, message } from 'antd';
const DormigoryBedAuditFlowsAuditStatusEnum = { const DormigoryBedAuditFlowsAuditStatusEnum = {
@ -17,7 +16,6 @@ const DormigoryBedAuditFlowsAuditStatusEnum = {
}; };
export default function Update(props: MyBetaModalFormProps) { export default function Update(props: MyBetaModalFormProps) {
const [form] = Form.useForm(); const [form] = Form.useForm();
const navigate = useNavigate();
return ( return (
<BetaSchemaForm<ApiTypes.Renovation.RenovationApplies.Audit> <BetaSchemaForm<ApiTypes.Renovation.RenovationApplies.Audit>
{...MyModalFormProps.props} {...MyModalFormProps.props}
@ -39,7 +37,7 @@ export default function Update(props: MyBetaModalFormProps) {
}) })
.then(() => { .then(() => {
message.success('审核成功'); message.success('审核成功');
navigate(-1); props.reload?.();
return true; return true;
}) })
.catch(() => false) .catch(() => false)
@ -55,8 +53,8 @@ export default function Update(props: MyBetaModalFormProps) {
{ {
valueType: 'dependency', valueType: 'dependency',
name: ['status'], name: ['status'],
columns: ({ audit_status }) => { columns: ({ status }) => {
return audit_status === 'Rejected' return status === 'Rejected'
? [ ? [
{ {
title: '驳回理由', title: '驳回理由',
@ -92,10 +90,14 @@ export default function Update(props: MyBetaModalFormProps) {
min: 1, min: 1,
}, },
}, },
Selects?.ProjectReceiptAccountsSelect({ Selects?.ProjectAccounts({
key: 'receipt_accounts_id', key: 'receipt_accounts_id',
title: '选择收款账户', title: '选择收款账户',
colProps: { span: 12 }, colProps: { span: 12 },
params: {
asset_projects_id:
props.item?.asset_projects_id,
},
formItemProps: { ...rulesHelper.number }, formItemProps: { ...rulesHelper.number },
fieldProps: { fieldProps: {
showSearch: true, showSearch: true,

View File

@ -0,0 +1,60 @@
import { MyBetaModalFormProps, MyButtons } from '@/common';
import { Apis } from '@/gen/Apis';
import { Modal } from 'antd';
import { useEffect, useState } from 'react';
import MyInfo from '../components/info';
import AuditReview from './AuditReview';
export default function Review(props: MyBetaModalFormProps) {
const [open, setOpen] = useState(false);
const [data, setData] = useState<any>({});
const [loading, setLoading] = useState(false);
useEffect(() => {
if (open && props.item?.id) {
setLoading(true);
Apis.Renovation.RenovationApplies.Show({ id: Number(props.item.id) })
.then((res) => {
setData(res?.data || {});
})
.finally(() => {
setLoading(false);
});
}
}, [open, props.item?.id]);
const handleAuditSuccess = () => {
props.reload?.();
setOpen(false);
};
return (
<>
<MyButtons.Default
type="primary"
size="small"
title="审核"
onClick={() => setOpen(true)}
/>
<Modal
title="装修申请审核"
open={open}
onCancel={() => setOpen(false)}
width={1000}
footer={
<div style={{ display: 'flex', justifyContent: 'flex-end', gap: 8 }}>
<MyButtons.Default
size="middle"
title="关闭"
onClick={() => setOpen(false)}
/>
<AuditReview item={data} reload={handleAuditSuccess} title="审核" />
</div>
}
destroyOnClose
>
<MyInfo item={{ ...data, loading }} />
</Modal>
</>
);
}

View File

@ -1,539 +0,0 @@
import {
MyFormItems,
MyModalFormProps,
MyPageContainer,
rulesHelper,
} from '@/common';
import { Apis } from '@/gen/Apis';
import {
HouseOccupantsCardTypeEnum,
RenovationAppliesProcessTypeEnum,
RenovationAppliesRenovationContentEnum,
RenovationAppliesTypeEnum,
} from '@/gen/Enums';
import { BetaSchemaForm, ProCard } from '@ant-design/pro-components';
import { useNavigate, useSearchParams } from '@umijs/max';
import { Form, Space } from 'antd';
import { useEffect, useState } from 'react';
import Review from '../modals/AuditReview';
export default function Index({ title = '装修申请审核' }) {
const [form] = Form.useForm();
const navigate = useNavigate();
const [searchParams] = useSearchParams();
const id = searchParams.get('id') ?? 0;
const [data, setShow] = useState<any>({});
const [getSelectHouse, setSelectHouse] = useState<any>({});
const loadShow = () => {
Apis.Renovation.RenovationApplies.Show({ id: Number(id) }).then((res) => {
setShow(res?.data);
setSelectHouse(res?.data?.asset_house);
form.setFieldsValue(res?.data); // 编辑赋值
});
};
useEffect(() => {
loadShow();
}, [id]);
return (
<MyPageContainer
title={
<Space
style={{ cursor: 'pointer' }}
onClick={() => {
navigate(-1);
}}
>
{/* <LeftCircleOutlined size={34} /> */}
{title}
</Space>
}
enableTabs={false}
tabKey="renovation_applies-review"
tabLabel={title}
>
<ProCard>
<div style={{ width: 900, minHeight: '83vh', margin: '0 auto' }}>
<BetaSchemaForm<ApiTypes.Renovation.RenovationApplies.Update>
{...MyModalFormProps.props}
title={title}
// 基础表单
layoutType="Form"
labelCol={{ span: 24 }}
wrapperCol={{ span: 24 }}
labelAlign="left"
width="900px"
form={form}
submitter={{
render: () => {
return [<Review item={data} key="review" />];
},
}}
columns={[
{
colProps: { span: 24 },
key: 'asset_houses_id',
formItemProps: { ...rulesHelper.text },
renderFormItem: () => {
return (
<ProCard bordered title="房屋信息">
<div>{getSelectHouse?.full_name}</div>
</ProCard>
);
},
},
MyFormItems.EnumRadio({
key: 'type',
title: '装修类型',
valueEnum: RenovationAppliesTypeEnum,
colProps: { span: 6 },
formItemProps: { ...rulesHelper.text },
}),
MyFormItems.EnumRadio({
key: 'process_type',
title: '办理类型',
valueEnum: RenovationAppliesProcessTypeEnum,
colProps: { span: 6 },
formItemProps: { ...rulesHelper.text },
}),
{
title: '是否有保证金',
colProps: { span: 6 },
key: 'is_deposit',
valueType: 'switch',
},
{
valueType: 'dependency',
name: ['is_deposit'],
columns: ({ is_deposit }) => {
return is_deposit
? [
{
title: '保证金金额',
colProps: { span: 6 },
key: 'deposit_amount',
valueType: 'digit',
formItemProps: { ...rulesHelper.number },
fieldProps: {
style: {
width: '100%',
},
},
},
]
: [];
},
},
{
valueType: 'divider',
fieldProps: {
orientation: 'left',
children: '业主信息',
},
},
{
title: '业主姓名',
key: 'owner_name',
colProps: { span: 6 },
formItemProps: { ...rulesHelper.text },
},
{
title: '业主手机',
key: 'owner_phone',
colProps: { span: 6 },
fieldProps: {
maxLength: 11,
},
formItemProps: { ...rulesHelper.phone },
},
MyFormItems.EnumSelect({
key: 'card_type',
title: '证件类型',
valueEnum: HouseOccupantsCardTypeEnum,
colProps: { span: 6 },
formItemProps: { ...rulesHelper.text },
}),
{
title: '证件号码',
key: 'owner_id_card',
colProps: { span: 6 },
formItemProps: { ...rulesHelper.text },
fieldProps: {
maxLength: 18,
},
},
MyFormItems.UploadImages({
key: 'id_card_front',
title: '证件正面',
max: 1,
colProps: { span: 6 },
formItemProps: { ...rulesHelper.array },
}),
MyFormItems.UploadImages({
key: 'id_card_back',
title: '证件反面',
max: 1,
colProps: { span: 6 },
formItemProps: { ...rulesHelper.array },
}),
MyFormItems.UploadImages({
key: 'property_certificate',
title: '房产证明',
max: 1,
colProps: { span: 8 },
formItemProps: { ...rulesHelper.array },
}),
{
valueType: 'dependency',
name: ['process_type'],
columns: ({ process_type }) => {
return process_type === 'AgentProcess'
? [
{
valueType: 'divider',
fieldProps: {
orientation: 'left',
children: '代理人信息',
},
},
{
title: '代理人名称',
key: 'agent_name',
colProps: { span: 6 },
formItemProps: { ...rulesHelper.text },
},
{
title: '代理人手机',
key: 'agent_phone',
colProps: { span: 6 },
fieldProps: {
maxLength: 11,
},
formItemProps: { ...rulesHelper.phone },
},
MyFormItems.EnumSelect({
key: 'agent_card_type',
title: '证件类型',
valueEnum: HouseOccupantsCardTypeEnum,
colProps: { span: 6 },
formItemProps: { ...rulesHelper.text },
}),
{
title: '证件号码',
key: 'agent_id_card',
colProps: { span: 6 },
formItemProps: { ...rulesHelper.text },
fieldProps: {
maxLength: 18,
},
},
MyFormItems.UploadImages({
key: 'agent_id_card_front',
title: '证件正面',
max: 1,
colProps: { span: 6 },
}),
MyFormItems.UploadImages({
key: 'agent_id_card_back',
title: '证件反面',
max: 1,
colProps: { span: 6 },
}),
MyFormItems.UploadImages({
key: 'power_attorney',
title: '代理人授权书',
max: 1,
colProps: { span: 6 },
}),
]
: [];
},
},
{
valueType: 'dependency',
name: ['type'],
columns: ({ type }) => {
return type === 'RenovationCompany'
? [
{
valueType: 'divider',
fieldProps: {
orientation: 'left',
children: '装修公司信息',
},
},
{
title: '公司名称',
key: 'company_name',
colProps: { span: 6 },
formItemProps: { ...rulesHelper.text },
},
{
title: '营业执照号',
key: 'company_business_license_num',
colProps: { span: 6 },
formItemProps: { ...rulesHelper.text },
fieldProps: {
maxLength: 18,
},
},
{
title: '公司负责人手机',
key: 'company_principal_phone',
formItemProps: { ...rulesHelper.text },
colProps: { span: 6 },
},
{
title: '负责人手机号',
key: 'company_principal_phone',
formItemProps: { ...rulesHelper.phone },
colProps: { span: 6 },
},
{
valueType: 'dependency',
name: ['type'],
columns: ({ type }) => {
return type === 'RenovationCompany'
? [
MyFormItems.UploadImages({
key: 'company_business_license',
title: '装修公司营业执照',
max: 1,
colProps: { span: 6 },
formItemProps: { ...rulesHelper.array },
}),
MyFormItems.UploadImages({
key: 'company_asset_certificate',
title: '装修公司资质证明',
max: 1,
colProps: { span: 6 },
formItemProps: { ...rulesHelper.array },
}),
MyFormItems.UploadImages({
key: 'company_power_attorney',
title: '装修公司装修授权书',
max: 1,
colProps: { span: 6 },
formItemProps: { ...rulesHelper.array },
}),
]
: [];
},
},
]
: [];
},
},
{
valueType: 'divider',
fieldProps: {
orientation: 'left',
children: '施工信息',
},
},
{
valueType: 'dependency',
name: ['type'],
columns: ({ type }) => {
return type === 'RenovationCompany'
? [
{
title: '施工负责人名称',
key: 'construction_principal_name',
colProps: { span: 6 },
formItemProps: { ...rulesHelper.text },
},
{
title: '施工负责人手机',
key: 'construction_principal_phone',
colProps: { span: 6 },
formItemProps: { ...rulesHelper.phone },
},
MyFormItems.EnumSelect({
key: 'construction_principal_card_type',
title: '证件类型',
valueEnum: HouseOccupantsCardTypeEnum,
colProps: { span: 6 },
formItemProps: { ...rulesHelper.text },
}),
{
title: '施工负责人证件号',
key: 'construction_principal_id_card',
colProps: { span: 6 },
formItemProps: { ...rulesHelper.text },
fieldProps: {
maxLength: 18,
},
},
MyFormItems.UploadImages({
key: 'construction_principal_id_card_front',
title: '施工负责人身份证正面',
max: 1,
colProps: { span: 6 },
}),
MyFormItems.UploadImages({
key: 'construction_principal_id_card_back',
title: '施工负责人身份证反面',
max: 1,
colProps: { span: 6 },
}),
]
: [];
},
},
{
valueType: 'group',
columns: [
{
title: '施工开始时间',
valueType: 'date',
key: 'construction_start_date',
formItemProps: { ...rulesHelper.text },
colProps: { span: 6 },
fieldProps: {
format: 'YYYY-MM-DD',
onChange: (value: string, dateString: string) => {
form.setFieldValue(
'construction_start_date',
dateString,
);
console.log('construction_start_date', value);
},
style: {
width: '100%',
},
},
},
{
title: '施工结束时间',
valueType: 'date',
key: 'construction_end_date',
formItemProps: { ...rulesHelper.text },
colProps: { span: 6 },
fieldProps: {
format: 'YYYY-MM-DD',
onChange: (value: string, dateString: string) => {
form.setFieldValue('construction_end_date', dateString);
console.log('construction_end_date', value);
},
style: {
width: '100%',
},
},
},
MyFormItems.EnumRadio({
key: 'renovation_content',
title: '装修内容',
valueEnum: RenovationAppliesRenovationContentEnum,
colProps: { span: 12 },
formItemProps: { ...rulesHelper.text },
}),
],
},
{
valueType: 'divider',
fieldProps: {
orientation: 'left',
children: '其他附件',
},
},
MyFormItems.UploadImages({
key: 'construction_draw',
title: '施工图',
uploadType: 'file',
max: 1,
colProps: { span: 6 },
}),
MyFormItems.UploadImages({
key: 'construction_commitment_letter',
title: '施工承诺书',
uploadType: 'file',
max: 1,
colProps: { span: 6 },
}),
MyFormItems.UploadImages({
key: 'other_attachments',
title: '其他补充附件',
max: 100,
uploadType: 'file',
colProps: { span: 6 },
}),
{
valueType: 'divider',
fieldProps: {
orientation: 'left',
children: '重大施工项目',
},
},
{
valueType: 'formList',
dataIndex: 'major_construction',
// title: '重大施工项目',
fieldProps: {
copyIconProps: false,
// deleteIconProps: false,
},
formItemProps: {
...rulesHelper.array,
wrapperCol: { span: 24 },
},
initialValue: [
{
sign_party: null,
counterparty_type: null,
counterparty: null,
},
{
sign_party: null,
counterparty_type: null,
counterparty: null,
},
],
columns: [
{
valueType: 'group',
title: '',
colProps: { span: 24 },
columns: [
{
title: '重大施工内容',
key: 'name',
colProps: { span: 12 },
// formItemProps: { ...rulesHelper.text },
},
MyFormItems.UploadImages({
key: 'draw',
title: '施工图纸',
uploadType: 'file',
max: 1,
colProps: { span: 6 },
}),
MyFormItems.UploadImages({
key: 'certificate',
title: '执业证件',
uploadType: 'file',
max: 1,
colProps: { span: 6 },
}),
],
},
],
},
{
title: '备注',
key: 'renovation_remark',
valueType: 'textarea',
colProps: { span: 24 },
},
]}
/>
</div>
</ProCard>
</MyPageContainer>
);
}