import { postKingdeeRepCustomerDetail, postKingdeeRepCustomerSave, } from '@/services'; import { getTeacherCustomFieldNumber } from '@/utils/kingdee'; import { CloseCircleOutlined } from '@ant-design/icons'; import { ModalForm, ProFormGroup, ProFormList, ProFormText, } from '@ant-design/pro-components'; import { Form, message } from 'antd'; // import { cloneDeep } from 'lodash'; export default ({ setVisible, data, onClose }) => { const [form] = Form.useForm(); /** * 回显客户信息 * @param id */ async function queryAndShowCustomer(id: any) { //查询客户信息 let res = await postKingdeeRepCustomerDetail({ data: { id: id, }, }); if (res) { form.setFieldValue('name', res.name); form.setFieldValue('id', res.id); form.setFieldValue('contact_persons', res.bomentity); let customFiledNumber = await getTeacherCustomFieldNumber(); form.setFieldValue('teacherName', res.custom_field[customFiledNumber]); } } if (data) { //修改 if (data.id) { queryAndShowCustomer(data.id); } else { //新增 form.setFieldValue('name', data.name); form.setFieldValue('contact_persons', [{}]); } } return ( <> <ModalForm width={900} open title="客户信息" form={form} autoFocusFirstInput modalProps={{ okText: '保存', cancelText: '取消', destroyOnClose: true, onCancel: () => { setVisible(false); }, }} onFinish={async (values) => { //查询客户自定义字段,课题组 let custom_field_umber = await getTeacherCustomFieldNumber(); if (custom_field_umber) { let customFieldObj = {}; customFieldObj[custom_field_umber] = values.teacherName; values.custom_field = customFieldObj; } let customSaveRes = await postKingdeeRepCustomerSave({ data: values, }); if (customSaveRes) { let id_number_map = customSaveRes.id_number_map; let ids = customSaveRes.ids; if (id_number_map && ids) { message.success('保存成功'); let id = ids[0]; onClose(id); } } }} onOpenChange={setVisible} > <ProFormText key="key" name="id" label="id" placeholder="id" hidden /> <ProFormGroup key="group"> <ProFormText name="name" width="md" label={ <> <span>客户名称</span> <span className="pl-2 text-xs text-gray-400"> 请按照[单位]-[姓名][手机号]命名,例如:清华大学-张三12345678919 </span> </> } initialValue={data} placeholder="请输入客户名称" rules={[ { required: true, pattern: new RegExp('^.+-.+$'), message: '格式错误,若无单位可写:“无-姓名手机号”,例如:无-张三12345678919', }, { required: true, message: '客户名称必填' }, ]} /> <ProFormText name="teacherName" width="md" label="课题组老师" placeholder="请输入课题组老师" rules={[ { required: true, message: '课题组老师必填,若没有请填“无”' }, ]} /> </ProFormGroup> <ProFormList creatorButtonProps={{ disabled: false }} name="contact_persons" label="联系人信息" actionGuard={{ beforeRemoveRow: async () => { return new Promise((resolve) => { let contactPersons = form.getFieldValue('contact_persons'); if (contactPersons.length === 1) { message.error('至少要有一个联系人'); resolve(false); return; } resolve(true); }); }, beforeAddRow: (defaultValue) => { defaultValue.id = undefined; //复制的时候要把id去掉 return defaultValue; }, }} deleteIconProps={{ Icon: CloseCircleOutlined, tooltipText: '不需要这行了', }} > <ProFormGroup key="group"> {[ <ProFormText key="key" name="id" label="id" placeholder="id" hidden />, <ProFormText key="key" name="contact_person" label="收货人姓名" placeholder="联系人姓名" rules={[{ required: true, message: '收货人姓名必填' }]} />, <ProFormText key="key" name="mobile" label="联系方式" placeholder="联系方式" rules={[{ required: true, message: '联系方式必填' }]} />, <ProFormText key="key" name="contact_address" label="收货地址" width="md" placeholder="请输入收货地址" rules={[{ required: true, message: '收货地址必填' }]} />, ]} </ProFormGroup> </ProFormList> </ModalForm> </> ); };