fix:修复装修审核、合同供应商选择
All checks were successful
Build and Push Docker Image / build (push) Successful in 4m50s
All checks were successful
Build and Push Docker Image / build (push) Successful in 4m50s
This commit is contained in:
parent
9108078cc0
commit
aa77a2e5e7
@ -266,7 +266,7 @@ export default function Index({ title = '新增补充协议' }) {
|
||||
},
|
||||
required: true,
|
||||
fieldProps: {
|
||||
placeholder: '请选择签约主体',
|
||||
placeholder: '请选择供应商',
|
||||
},
|
||||
}),
|
||||
]
|
||||
@ -285,7 +285,45 @@ export default function Index({ title = '新增补充协议' }) {
|
||||
},
|
||||
required: true,
|
||||
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: '请选择其他',
|
||||
},
|
||||
}),
|
||||
]
|
||||
|
||||
@ -240,7 +240,7 @@ export default function Index({ title = '修改补充协议' }) {
|
||||
},
|
||||
required: true,
|
||||
fieldProps: {
|
||||
placeholder: '请选择签约主体',
|
||||
placeholder: '请选择供应商',
|
||||
},
|
||||
}),
|
||||
]
|
||||
@ -259,7 +259,45 @@ export default function Index({ title = '修改补充协议' }) {
|
||||
},
|
||||
required: true,
|
||||
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: '请选择其他',
|
||||
},
|
||||
}),
|
||||
]
|
||||
|
||||
@ -597,15 +597,22 @@ export default function Index({ title = '新增合同' }) {
|
||||
buttonStyle: 'solid',
|
||||
},
|
||||
}),
|
||||
MyFormItems.EnumRadio({
|
||||
MyFormItems.EnumSelect({
|
||||
key: 'counterparty_type',
|
||||
title: '',
|
||||
valueEnum: CompanySuppliersCounterpartyEnum,
|
||||
colProps: { span: 7 },
|
||||
colProps: { span: 5 },
|
||||
formItemProps: {
|
||||
...rulesHelper.text,
|
||||
wrapperCol: { span: 24 },
|
||||
},
|
||||
// fieldProps: {
|
||||
// buttonStyle: 'solid',
|
||||
// onChange: () => {
|
||||
// // 切换计量单位时清空计费模式
|
||||
// form.setFieldValue('counterparty', undefined);
|
||||
// },
|
||||
// },
|
||||
}),
|
||||
{
|
||||
valueType: 'dependency',
|
||||
@ -619,7 +626,7 @@ export default function Index({ title = '新增合同' }) {
|
||||
params: {
|
||||
counterparty: 'Supplier',
|
||||
},
|
||||
colProps: { span: 10 },
|
||||
colProps: { span: 12 },
|
||||
formItemProps: {
|
||||
...rulesHelper.text,
|
||||
wrapperCol: { span: 24 },
|
||||
@ -638,14 +645,52 @@ export default function Index({ title = '新增合同' }) {
|
||||
params: {
|
||||
counterparty: 'InternalCompany',
|
||||
},
|
||||
colProps: { span: 10 },
|
||||
colProps: { span: 12 },
|
||||
formItemProps: {
|
||||
...rulesHelper.text,
|
||||
wrapperCol: { span: 24 },
|
||||
},
|
||||
required: true,
|
||||
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: {
|
||||
counterparty: 'InternalCompany',
|
||||
},
|
||||
colProps: { span: 10 },
|
||||
colProps: { span: 12 },
|
||||
formItemProps: {
|
||||
...rulesHelper.text,
|
||||
wrapperCol: { span: 24 },
|
||||
@ -833,12 +878,12 @@ export default function Index({ title = '新增合同' }) {
|
||||
fieldProps: {
|
||||
options: contractData?.peoples
|
||||
?.filter((item: any) => {
|
||||
// 当收入类型为Income时,只显示内部公司
|
||||
// 当收入类型为Income时,只显示内部企业
|
||||
if (contractData?.income_expense_type === 'Income') {
|
||||
return item?.counterparty_type === 'InternalCompany';
|
||||
}
|
||||
// 其他情况显示所有
|
||||
return item?.counterparty_type === 'Supplier';
|
||||
// 支出时显示外部单位
|
||||
return item?.counterparty_type !== 'InternalCompany';
|
||||
})
|
||||
.map((item: any) => ({
|
||||
label: item?.counterparty,
|
||||
@ -855,12 +900,12 @@ export default function Index({ title = '新增合同' }) {
|
||||
fieldProps: {
|
||||
options: contractData?.peoples
|
||||
?.filter((item: any) => {
|
||||
// 当收入类型为Income时,只显示内部公司
|
||||
// 当支出类型为Expense时,只显示内部企业
|
||||
if (contractData?.income_expense_type === 'Expense') {
|
||||
return item?.counterparty_type === 'InternalCompany';
|
||||
}
|
||||
// 其他情况显示所有
|
||||
return item?.counterparty_type === 'Supplier';
|
||||
// 收入时显示外部单位
|
||||
return item?.counterparty_type !== 'InternalCompany';
|
||||
})
|
||||
.map((item: any) => ({
|
||||
label: item?.counterparty,
|
||||
|
||||
@ -35,7 +35,7 @@ export default function Index({ title = '编辑合同' }) {
|
||||
const [submitModalVisible, setSubmitModalVisible] = useState<boolean>(false);
|
||||
const [currentStep, setCurrentStep] = useState<number>(0);
|
||||
const [contractData, setContractData] = useState<any>({});
|
||||
// const [billsData, setBillsData] = useState<any[]>([]);
|
||||
const [billsData, setBillsData] = useState<any[]>([]);
|
||||
|
||||
const loadShow = () => {
|
||||
Apis.Contract.Contracts.Show({ id: Number(id) }).then((res) => {
|
||||
@ -44,8 +44,8 @@ export default function Index({ title = '编辑合同' }) {
|
||||
setContractData(contractData);
|
||||
setSelectedRow(res?.data?.resource);
|
||||
// 提取账单数据
|
||||
// const bills = contractData?.contract_bills || [];
|
||||
// setBillsData(bills);
|
||||
const bills = contractData?.contract_bills || [];
|
||||
setBillsData(bills);
|
||||
form2.setFieldsValue({
|
||||
...contractData,
|
||||
payee: res?.data?.contract_bills?.[0]?.payee,
|
||||
@ -76,9 +76,9 @@ export default function Index({ title = '编辑合同' }) {
|
||||
}, [id]);
|
||||
|
||||
const onSave = (formData: any, subType: number = 1) => {
|
||||
// formData?.peoples?.forEach((res: any) => {
|
||||
// res.company_suppliers_id = res?.counterparty?.split(':')?.[0];
|
||||
// });
|
||||
formData?.peoples?.forEach((res: any) => {
|
||||
res.company_suppliers_id = res?.counterparty?.split(':')?.[0];
|
||||
});
|
||||
const contractDataToSave = {
|
||||
...formData,
|
||||
is_deposit:
|
||||
@ -336,10 +336,10 @@ export default function Index({ title = '编辑合同' }) {
|
||||
onClick={() => {
|
||||
// 先保存合同,然后显示提审弹窗
|
||||
const values = form.getFieldsValue();
|
||||
// values?.peoples?.forEach((res: any) => {
|
||||
// res.company_suppliers_id =
|
||||
// res?.counterparty?.split(':')?.[0];
|
||||
// });
|
||||
values?.peoples?.forEach((res: any) => {
|
||||
res.company_suppliers_id =
|
||||
res?.counterparty?.split(':')?.[0];
|
||||
});
|
||||
form?.validateFields().then(() => {
|
||||
Apis.Contract.Contracts.Update({
|
||||
...values,
|
||||
@ -662,11 +662,11 @@ export default function Index({ title = '编辑合同' }) {
|
||||
buttonStyle: 'solid',
|
||||
},
|
||||
}),
|
||||
MyFormItems.EnumRadio({
|
||||
MyFormItems.EnumSelect({
|
||||
key: 'counterparty_type',
|
||||
title: '',
|
||||
valueEnum: CompanySuppliersCounterpartyEnum,
|
||||
colProps: { span: 7 },
|
||||
colProps: { span: 6 },
|
||||
formItemProps: {
|
||||
...rulesHelper.text,
|
||||
wrapperCol: { span: 24 },
|
||||
@ -691,7 +691,7 @@ export default function Index({ title = '编辑合同' }) {
|
||||
params: {
|
||||
counterparty: 'Supplier',
|
||||
},
|
||||
colProps: { span: 10 },
|
||||
colProps: { span: 12 },
|
||||
formItemProps: {
|
||||
...rulesHelper.text,
|
||||
wrapperCol: { span: 24 },
|
||||
@ -710,14 +710,52 @@ export default function Index({ title = '编辑合同' }) {
|
||||
params: {
|
||||
counterparty: 'InternalCompany',
|
||||
},
|
||||
colProps: { span: 10 },
|
||||
colProps: { span: 12 },
|
||||
formItemProps: {
|
||||
...rulesHelper.text,
|
||||
wrapperCol: { span: 24 },
|
||||
},
|
||||
required: true,
|
||||
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: {
|
||||
counterparty: 'InternalCompany',
|
||||
},
|
||||
colProps: { span: 10 },
|
||||
colProps: { span: 12 },
|
||||
formItemProps: {
|
||||
...rulesHelper.text,
|
||||
wrapperCol: { span: 24 },
|
||||
@ -904,12 +942,12 @@ export default function Index({ title = '编辑合同' }) {
|
||||
fieldProps: {
|
||||
options: contractData?.peoples
|
||||
?.filter((item: any) => {
|
||||
// 当收入类型为Income时,只显示内部公司
|
||||
// 当收入类型为Income时,只显示内部企业
|
||||
if (contractData?.income_expense_type === 'Income') {
|
||||
return item?.counterparty_type === 'InternalCompany';
|
||||
}
|
||||
// 其他情况显示所有
|
||||
return item?.counterparty_type === 'Supplier';
|
||||
// 支出时显示外部单位
|
||||
return item?.counterparty_type !== 'InternalCompany';
|
||||
})
|
||||
.map((item: any) => ({
|
||||
label: item?.counterparty,
|
||||
@ -926,12 +964,12 @@ export default function Index({ title = '编辑合同' }) {
|
||||
fieldProps: {
|
||||
options: contractData?.peoples
|
||||
?.filter((item: any) => {
|
||||
// 当收入类型为Income时,只显示内部公司
|
||||
// 当支出类型为Expense时,只显示内部企业
|
||||
if (contractData?.income_expense_type === 'Expense') {
|
||||
return item?.counterparty_type === 'InternalCompany';
|
||||
}
|
||||
// 其他情况显示所有
|
||||
return item?.counterparty_type === 'Supplier';
|
||||
// 收入时显示外部单位
|
||||
return item?.counterparty_type !== 'InternalCompany';
|
||||
})
|
||||
.map((item: any) => ({
|
||||
label: item?.counterparty,
|
||||
|
||||
@ -2,12 +2,10 @@ import { MyButtons, MyColumns, MyProTableProps } from '@/common';
|
||||
import { Apis } from '@/gen/Apis';
|
||||
import { RenovationAppliesStatusEnum } from '@/gen/Enums';
|
||||
import { ProTable } from '@ant-design/pro-components';
|
||||
import { useNavigate } from '@umijs/max';
|
||||
import { Space } from 'antd';
|
||||
import Review from '../modals/Review';
|
||||
|
||||
export default function Index() {
|
||||
const navigate = useNavigate();
|
||||
|
||||
return (
|
||||
<ProTable<Record<any, any>>
|
||||
{...MyProTableProps.props}
|
||||
@ -74,16 +72,12 @@ export default function Index() {
|
||||
},
|
||||
MyColumns.CreatedAt(),
|
||||
MyColumns.Option({
|
||||
render: (_, item: any, index) => (
|
||||
render: (_, item: any, index, action) => (
|
||||
<Space key={index}>
|
||||
<MyButtons.Default
|
||||
key="Update"
|
||||
size="small"
|
||||
type="primary"
|
||||
onClick={() => {
|
||||
navigate(`/quality/renovation/pages/review?id=${item.id}`);
|
||||
}}
|
||||
title="查看并审核"
|
||||
<Review
|
||||
key="Review"
|
||||
item={item}
|
||||
reload={action?.reload}
|
||||
/>
|
||||
</Space>
|
||||
),
|
||||
|
||||
@ -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 }}>
|
||||
<ProDescriptions column={3}>
|
||||
<ProDescriptions.Item label="施工图">
|
||||
|
||||
@ -8,7 +8,6 @@ import {
|
||||
import { Selects } from '@/components/Select';
|
||||
import { Apis } from '@/gen/Apis';
|
||||
import { BetaSchemaForm } from '@ant-design/pro-components';
|
||||
import { useNavigate } from '@umijs/max';
|
||||
import { Form, message } from 'antd';
|
||||
|
||||
const DormigoryBedAuditFlowsAuditStatusEnum = {
|
||||
@ -17,7 +16,6 @@ const DormigoryBedAuditFlowsAuditStatusEnum = {
|
||||
};
|
||||
export default function Update(props: MyBetaModalFormProps) {
|
||||
const [form] = Form.useForm();
|
||||
const navigate = useNavigate();
|
||||
return (
|
||||
<BetaSchemaForm<ApiTypes.Renovation.RenovationApplies.Audit>
|
||||
{...MyModalFormProps.props}
|
||||
@ -39,7 +37,7 @@ export default function Update(props: MyBetaModalFormProps) {
|
||||
})
|
||||
.then(() => {
|
||||
message.success('审核成功');
|
||||
navigate(-1);
|
||||
props.reload?.();
|
||||
return true;
|
||||
})
|
||||
.catch(() => false)
|
||||
@ -55,8 +53,8 @@ export default function Update(props: MyBetaModalFormProps) {
|
||||
{
|
||||
valueType: 'dependency',
|
||||
name: ['status'],
|
||||
columns: ({ audit_status }) => {
|
||||
return audit_status === 'Rejected'
|
||||
columns: ({ status }) => {
|
||||
return status === 'Rejected'
|
||||
? [
|
||||
{
|
||||
title: '驳回理由',
|
||||
@ -92,10 +90,14 @@ export default function Update(props: MyBetaModalFormProps) {
|
||||
min: 1,
|
||||
},
|
||||
},
|
||||
Selects?.ProjectReceiptAccountsSelect({
|
||||
Selects?.ProjectAccounts({
|
||||
key: 'receipt_accounts_id',
|
||||
title: '选择收款账户',
|
||||
colProps: { span: 12 },
|
||||
params: {
|
||||
asset_projects_id:
|
||||
props.item?.asset_projects_id,
|
||||
},
|
||||
formItemProps: { ...rulesHelper.number },
|
||||
fieldProps: {
|
||||
showSearch: true,
|
||||
|
||||
60
src/pages/quality/renovation/modals/Review.tsx
Normal file
60
src/pages/quality/renovation/modals/Review.tsx
Normal 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>
|
||||
</>
|
||||
);
|
||||
}
|
||||
@ -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>
|
||||
);
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user