/*
* @Author: liqiang
* @Date: 2021-03-04 17:19:02
* @LastEditTime: 2021-04-01 14:05:08
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \ebtp-cloud-frontend\src\utils\IParticipateIn.tsx
*/
import { participationSave, participationSaveOther } from '@/pages/Tender/supplier/LookingForBusinessOpportunities/service';
import ProTable from '@ant-design/pro-table';
import { Button, Card, Checkbox, Form, Input, message, Modal } from 'antd';
import React, { useEffect, useState } from 'react';
import { useHistory } from 'umi';
import { getBidMethodDictTypeCode, getProTypeCodeByBidMethodDict, isNotEmpty } from './CommonUtils';
import { queryingPagingData } from './PageUtils';
interface IParticipateInItem {
projectData: any,
visible: boolean,
setVisible: (value: boolean) => void
}
/**
* 获取标段名称
* @param bidMethodDict
*/
function getBsName(bidMethodDict: string) {
if (bidMethodDict.indexOf("procurement_mode_4") !== -1) {
return '包件';
}
if (bidMethodDict.indexOf("procurement_mode_3") !== -1 || bidMethodDict.indexOf("procurement_mode_5") !== -1) {
return '采购包';
}
return '标段';
}
function getSectionCheckbox(data: any) {
let value = [];
let flag = true;
for (const item of data) {
if (flag) {
value.push(
{item.bsName}
)
flag = false;
} else {
value.push(
{item.bsName}
)
}
}
return value;
}
const modalHeight = innerHeight * 96 / 100;
/**
* 我要参与
* @param props
*/
const IParticipateIn: React.FC = (props) => {
const { projectData, visible, setVisible } = props;
const [form] = Form.useForm();
//保存遮罩
const [spinningLoading, setSpinningLoading] = useState(false);
//常用联系人模态框
const [contactsVisible, setContactsVisible] = useState(false);
//标段名称
const [bsName, setBsName] = useState('');
//标段多选
const [sectionCheckbox, setSectionCheckbox] = useState();
//采购方式
const [bidMethodDict, setBidMethodDict] = useState('');
const history = useHistory();
//联系人数据
const [contactsItem, setContactsItem] = useState(null);
useEffect(() => {
if (isNotEmpty(projectData)) {
setBsName(getBsName(projectData.bidMethodDict));
setBidMethodDict(projectData.bidMethodDict);
//标段信息
let sectionVOList = projectData.sectionVOList;
if (sectionVOList.length === 0) {
// 当前项目报名截止!
message.warning('当前项目报名截止!');
return;
}
setSectionCheckbox(getSectionCheckbox(sectionVOList));
form.resetFields();
setContactsItem(null);
let examinationMethodDict = "";
if (bidMethodDict.indexOf("procurement_mode_4") > -1) {
examinationMethodDict = projectData?.examinationMethodDict.replace("recruitment_method_", "")
}
form.setFieldsValue({
recruitType: examinationMethodDict,
projectId: projectData.id,
roomType: projectData.roomType
})
}
}, [projectData]);
/**
* 表单提交
* @param value
*/
const formOnFinish = (value: any) => {
setSpinningLoading(true);
// value.bizSupplierContact = contactsItem === null ? {
// contactName: value.contactName,
// contactTelephone: value.contactTelephone,
// contactEmail: value.contactEmail,
// contactAddress: value.contactAddress,
// fixedLine: value.fixedLine,
// contactFax: value.contactFax
// } : contactsItem;
value.bizSupplierContact = form.getFieldsValue();
delete value['id'];
/*招募方式 调用特殊接口 2021 02 08 dqh*/
if (bidMethodDict.indexOf("procurement_mode_4") > -1) {
participationSaveOther(value).then(res => {
if (res.data) {
message.success('操作成功!', 2, () => {
history.push(`${getBidMethodDictTypeCode(bidMethodDict)}/Involved`);
setSpinningLoading(false);
});
} else {
setSpinningLoading(false);
message.error('操作失败!');
}
})
} else {
participationSave(value).then(res => {
if (res.data) {
message.success('操作成功!', 2, () => {
history.push(`${getBidMethodDictTypeCode(bidMethodDict)}/Involved`);
setSpinningLoading(false);
});
} else {
setSpinningLoading(false);
message.error('操作失败!');
}
})
}
}
/**
* 常用联系人
*/
const contacts = () => {
const onCancel = () => setContactsVisible(false);
const select = (data: any) => {
form.setFieldsValue(data);
setContactsItem(data);
setContactsVisible(false);
}
const columns: any[] = [
{
title: '序号',
valueType: 'index',
width: '7%'
},
{
title: '姓名',
dataIndex: 'contactName',
width: '15%'
},
{
title: 'id',
dataIndex: 'id',
hideInTable: true,
},
{
title: '手机号码',
dataIndex: 'contactTelephone',
search: false,
width: '15%'
},
{
title: '地址',
dataIndex: 'contactAddress',
search: false,
width: '25%'
},
{
title: '电子邮箱',
dataIndex: 'contactEmail',
search: false,
width: '13%'
},
{
title: '操作',
valueType: 'option',
width: '5%',
render: (_: any, record: any) => [
select(record)}>选择
]
},
]
return (
<>
queryingPagingData('/api/biz-service-ebtp-tender/v1/bizsuppliercontact/getSupplierContactByParam', 'post', params)}
/>
>
)
}
const createForm = () => {
return (
setContactsVisible(true)}>常用联系人)} />
平台短信提醒功能仅支持联通号段,其他运营商号段暂不支持}
>
{sectionCheckbox}
)
}
/**
* 我要参与
*/
const modalBox = () => {
const OnOk = (): void => form.submit();
const onCancel = (): void => setVisible(false);
return (
<>
取消
,
,
]}
>
{createForm()}
{contacts()}
>
)
}
return modalBox();
}
export default IParticipateIn;