import Authorization from '@/components/Authorization' import DatePicker from '@/components/DatePicker' import { contractReturnStore, tenderStore } from '@/store/mobx' import { iModalCommonProps } from '@/types/contract' import consts from '@/utils/consts' import { dayjsFormat, handleAutoCode } from '@/utils/util' import { Button, Form, Input, Modal, Select, Tree } from 'antd' import locale from 'antd/es/date-picker/locale/zh_CN' import dayjs from 'dayjs' import React, { ChangeEvent, useEffect, useState } from 'react' import { apiGetReturnWay } from '../Tabs/Receivable/api' import styles from './index.module.scss' const ContractModal: React.FC = ({ modalObj: { type, visible, confirmLoading, contractType }, onConfirm, onCancel, reload, row }) => { const { Option } = Select const [ form ] = Form.useForm() const [ options, setOptions ] = useState([]) const modalObj = { create: { title: '新建合同', cancelText: '取消', okText: '确认添加' }, update: { title: '编辑合同', cancelText: '取消', okText: '确认' }, close: { title: '关闭合同', cancelText: '取消', okText: '确认关闭' }, del: { title: '删除合同', cancelText: '取消', okText: '确认删除' }, unlock: { title: '解锁合同', cancelText: '取消', okText: '确认解锁' }, return: { title: '添加回款', cancelText: '关闭', okText: '确认' } } useEffect(() => { if (visible) { form.setFieldsValue({ treeId: row.id, bidsectionId: row.bidsectionId }) if (type === 'update') { const { content = '', name = '', price = '', partyA = '', partyB = '', partyASigner = '', partyBSigner = '', signerTime = '', remarks = '' } = contractReturnStore.contract form.setFieldsValue({ content, name, price, partyA, partyB, partyASigner, partyBSigner, signerTime: signerTime ? dayjs(signerTime) : '', remarks }) } else if (type === 'return') { apiGetReturnWay().then(({ code = -1, data = [] }) => { if (code === consts.RET_CODE.SUCCESS) { const options = data.map((item: string) => ( )) setOptions(options) } }) form.setFieldsValue({ contractsId: contractReturnStore.contract.id }) } else { form.setFieldsValue({ id: contractReturnStore.contract.id }) } } }, [ visible ]) const autoCode = async () => { const ruleArr = await handleAutoCode(tenderStore.tender.bidsectionId, contractType === 'income' ? 'contractReturnRule' : 'contractPaidRule') form.setFieldsValue({ code: ruleArr.join('-') }) } // 处理添加回款的金额不应该超出最大值 const handleReturnPrice = (e: ChangeEvent) => { const maxPrice = parseFloat(contractReturnStore.contract.price) - parseFloat(contractReturnStore.contract.returned) if (parseFloat(e.target.value) > maxPrice) { form.setFieldsValue({ price: maxPrice }) } } return ( {type === 'update' ? ( ) : null} }>
{/* */} {type === 'create' ? ( <> autoCode()}> 自动编号 } /> {/* */} 元} /> ) : ( '' )} {type === 'update' ? ( <> ) : ( '' )} {type === 'close' ? ( <> 关闭后,合同将锁定,无法进行编辑、上传文件等操作。 ) : ( '' )} {type === 'unlock' ? ( <> 解锁后,合同将锁定,无法进行编辑、上传文件等操作。 ) : ( '' )} {type === 'del' ? ( <>

删除后,数据无法恢复,请谨慎操作。

请在下方文本框输入文本「确认删除本合同」,以此确认删除操作。

({ validator(rule, value) { if (!value || value !== '确认删除本合同') { return Promise.reject('请按照提示信息进行删除操作!') } return Promise.resolve() } }) ]}> ) : ( '' )} {type === 'return' ? ( <> ) : ( '' )}
) } export default ContractModal