更新版本库
This commit is contained in:
@ -1,14 +1,16 @@
|
||||
import React, { useEffect, useRef, useState } from 'react';
|
||||
import '@/utils/lq.style.less';
|
||||
import { Button, Input, Form, Upload, Modal, DatePicker, Collapse, Radio, Checkbox, message, Space } from 'antd';
|
||||
import { Button, Input, Form, Upload, Modal, DatePicker, Collapse, Radio, Checkbox, message, Space, Spin } from 'antd';
|
||||
import { UploadOutlined } from '@ant-design/icons';
|
||||
import ProTable from '@ant-design/pro-table';
|
||||
import { queryingPagingData } from '@/utils/PageUtils';
|
||||
import { addClarify, clarifyReply, deleteClarify, getSectionList, releaseClarify, updateClarify } from '../service';
|
||||
import { addClarify, clarifyReply, deleteClarify, getClarifyAnnoList, getSections, releaseClarify, submitClarify, updateClarify } from '../service';
|
||||
import { isEmpty, isNotEmpty } from '@/utils/CommonUtils';
|
||||
import { saveMessage } from '@/utils/MessageUtils';
|
||||
import { dateTimeFormatter, echoDateTimeFormatter, saveDateTimeFormatter } from '@/utils/DateUtils';
|
||||
import { downloadAttachmentPath } from '@/utils/DownloadUtils';
|
||||
import { commonMessage, saveMessage } from '@/utils/MessageUtils';
|
||||
import { datePickerDisabledDate, datePickerDisabledTime, dateTimeFormatter, echoDateTimeFormatter, getMaxDate, judgmentIntervalDay, judgmentOfTwoTimePeriods, saveDateTimeFormatter, showTimeDefaultValue } from '@/utils/DateUtils';
|
||||
import { downloadAttachmentPath, downloadAttachmentPathOId } from '@/utils/DownloadUtils';
|
||||
import { getSessionProjectData } from '@/utils/session';
|
||||
import InquiryBox from '@/utils/InquiryBox';
|
||||
const { Panel } = Collapse;
|
||||
|
||||
const layoutForm = {
|
||||
@ -27,16 +29,24 @@ const status = {
|
||||
* 回执状态
|
||||
*/
|
||||
const returnReceiptStatus = {
|
||||
0:{text:'未回执'},
|
||||
1:{text:'已回执'}
|
||||
0: { text: '未回执' },
|
||||
1: { text: '已回执' }
|
||||
}
|
||||
|
||||
function getSectionCheckbox(data: any) {
|
||||
let value = [];
|
||||
let flag = true;
|
||||
for (const item of data) {
|
||||
value.push(<Checkbox key={item.id} value={item.id} >
|
||||
{item.bidSectName}
|
||||
</Checkbox>)
|
||||
if (flag) {
|
||||
value.push(<Checkbox style={{ marginLeft: '8px' }} key={item.id} value={item.id} >
|
||||
{item.bidSectName}
|
||||
</Checkbox>)
|
||||
flag = false;
|
||||
} else {
|
||||
value.push(<Checkbox key={item.id} value={item.id} >
|
||||
{item.bidSectName}
|
||||
</Checkbox>)
|
||||
}
|
||||
}
|
||||
return value;
|
||||
}
|
||||
@ -56,8 +66,10 @@ function sectionNameFormat(id: string, sectionList: any) {
|
||||
}
|
||||
|
||||
const ClarifyTheList: React.FC<{}> = () => {
|
||||
const projectId = '1111111';
|
||||
|
||||
//项目id
|
||||
const projectId = getSessionProjectData().id;
|
||||
//采购方式
|
||||
const bidMethodDict = getSessionProjectData().bidMethodDict;
|
||||
const [visible, setVisible] = useState<boolean>(false);
|
||||
//谈判开始时间
|
||||
const [negotiationStartTimeFlag, setNegotiationStartTimeFlag] = useState<boolean>(false);
|
||||
@ -84,61 +96,26 @@ const ClarifyTheList: React.FC<{}> = () => {
|
||||
//澄清回执信息
|
||||
const [visibleModalReceipt, setVisibleModalReceipt] = useState<boolean>(false);
|
||||
const [supplierData, setSupplierData] = useState<any>();
|
||||
const [columns, setCoumns] = useState<any[]>([
|
||||
{
|
||||
title: '序号',
|
||||
valueType: 'index'
|
||||
},
|
||||
{
|
||||
title: '澄清标题',
|
||||
dataIndex: 'clarifyTitle',
|
||||
},
|
||||
{
|
||||
title: '关联标段',
|
||||
dataIndex: 'packageId'
|
||||
},
|
||||
{
|
||||
title: '澄清文件',
|
||||
dataIndex: 'clarifyTheFile',
|
||||
},
|
||||
{
|
||||
title: '状态',
|
||||
dataIndex: 'clarifyStatus',
|
||||
valueEnum: status
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
width: 251,
|
||||
render: (_: any, record: any) => {
|
||||
return (
|
||||
<Space size="middle">
|
||||
|
||||
{record.clarifyStatus === '5' ? (
|
||||
<>
|
||||
<a key="examine" onClick={() => examine(record)}>查看</a>
|
||||
<a key="viewReceipt" onClick={() => viewReceipt(record)}>查看回执</a>
|
||||
</>
|
||||
) :
|
||||
(<>
|
||||
<a key="examine" onClick={() => examine(record)}>查看</a>
|
||||
<a key="edit" onClick={() => edit(record)}>编辑</a>
|
||||
<a key="del" onClick={() => del(record.id)}>删除</a>
|
||||
<a key="release" onClick={() => release(record.id)}>发布</a>
|
||||
<a key="viewReceipt" onClick={() => viewReceipt(record)}>查看回执</a>
|
||||
|
||||
</>
|
||||
)
|
||||
}
|
||||
</Space>
|
||||
)
|
||||
}
|
||||
},
|
||||
]);
|
||||
//查看回执遮罩
|
||||
const [supplierLoading, setSupplierLoading] = useState<boolean>(false);
|
||||
//上传文件列表
|
||||
const [fileListData, setFileListData] = useState<any[]>([]);
|
||||
//查看文件
|
||||
const [viewFile, setViewFile] = useState<any>();
|
||||
//上传文件数量限制
|
||||
let fileNumber = 1;
|
||||
const [columns, setCoumns] = useState<any[]>([]);
|
||||
//保存按钮加载
|
||||
const [buttonLoading, setButtonLoading] = useState<boolean>(false);
|
||||
const [receiptInformationForm] = Form.useForm();
|
||||
//提交确认框
|
||||
const [visiblesubmit, setVisiblesubmit] = useState<boolean>(false);
|
||||
//提交数据
|
||||
const [submitData, setSubmitData] = useState<{}>({});
|
||||
//澄清信息
|
||||
const [clarifyData, setClarifyData] = useState<any>();
|
||||
useEffect(() => {
|
||||
getSectionList({ projectId: projectId }).then(res => {
|
||||
getSections(projectId).then(res => {
|
||||
setSectionList(res.data);
|
||||
setSectionListCheckbox(getSectionCheckbox(res.data));
|
||||
setCoumns([
|
||||
@ -159,7 +136,15 @@ const ClarifyTheList: React.FC<{}> = () => {
|
||||
},
|
||||
{
|
||||
title: '澄清文件',
|
||||
dataIndex: 'clarifyTheFile',
|
||||
dataIndex: 'attName',
|
||||
render: (_: string, record: any) => {
|
||||
if (_ === '-') {
|
||||
return _;
|
||||
}
|
||||
return (
|
||||
<a href={`${downloadAttachmentPath}${record.attDatasetId}`}>{_}</a>
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
title: '状态',
|
||||
@ -168,24 +153,27 @@ const ClarifyTheList: React.FC<{}> = () => {
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
width: 251,
|
||||
width: 201,
|
||||
render: (_: any, record: any) => {
|
||||
return (
|
||||
<Space size="middle">
|
||||
{record.clarifyStatus === '5' ? (
|
||||
{String(record.clarifyStatus) === '5' ? (
|
||||
<>
|
||||
<a key="examine" onClick={() => examine(record)}>查看</a>
|
||||
<a key="viewReceipt" onClick={() => viewReceipt(record)}>查看回执</a>
|
||||
</>
|
||||
) :
|
||||
(<>
|
||||
<a key="examine" onClick={() => examine(record)}>查看</a>
|
||||
<a key="edit" onClick={() => edit(record)}>编辑</a>
|
||||
<a key="del" onClick={() => del(record.id)}>删除</a>
|
||||
<a key="release" onClick={() => release(record.id)}>发布</a>
|
||||
<a key="viewReceipt" onClick={() => viewReceipt(record)}>查看回执</a>
|
||||
</>
|
||||
)
|
||||
) : String(record.clarifyStatus) === '1' ?
|
||||
(<>
|
||||
<a key="edit" onClick={() => edit(record)}>编辑</a>
|
||||
<a key="del" onClick={() => del(record.id)}>删除</a>
|
||||
<a key="release" onClick={() => submitMethod(record)}>提交</a>
|
||||
</>
|
||||
) : (
|
||||
<>
|
||||
<a key="examine" onClick={() => examine(record)}>查看</a>
|
||||
<a key="release" onClick={() => release(record.id)}>发布</a>
|
||||
</>
|
||||
)
|
||||
}
|
||||
</Space>
|
||||
)
|
||||
@ -198,7 +186,7 @@ const ClarifyTheList: React.FC<{}> = () => {
|
||||
|
||||
|
||||
//查看回执表头
|
||||
const supplierColumns:any[] = [
|
||||
const supplierColumns: any[] = [
|
||||
{
|
||||
title: '序号',
|
||||
valueType: 'index'
|
||||
@ -225,16 +213,29 @@ const ClarifyTheList: React.FC<{}> = () => {
|
||||
const [attDatasetId, setAttDatasetId] = useState<string>();
|
||||
const [attDatasetName, setAttDatasetName] = useState<string>();
|
||||
|
||||
const submitMethod = (data: any) => {
|
||||
setVisiblesubmit(true)
|
||||
setSubmitData(data);
|
||||
}
|
||||
|
||||
const submitDataBasedOnId = (data: any) => {
|
||||
setVisiblesubmit(false)
|
||||
submitClarify(data).then(res => {
|
||||
commonMessage(res);
|
||||
actionRef.current.reload();
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 供应商回执
|
||||
* @param record
|
||||
*/
|
||||
const supplierReviewReceipt = (record:any) => {
|
||||
console.log(record);
|
||||
const supplierReviewReceipt = (record: any) => {
|
||||
setVisibleModalReceipt(true);
|
||||
receiptInformationForm.setFieldsValue(record);
|
||||
setAttDatasetId(record.attDatasetId);
|
||||
setAttDatasetName('aaa');
|
||||
setAttDatasetName(record.attName);
|
||||
}
|
||||
/**
|
||||
* 查看澄清回执信息
|
||||
@ -245,12 +246,12 @@ const ClarifyTheList: React.FC<{}> = () => {
|
||||
return (
|
||||
<>
|
||||
<Form form={receiptInformationForm}>
|
||||
<Form.Item label="供应商名称" name="">
|
||||
<Input bordered={false} readOnly/>
|
||||
<Form.Item label="供应商名称" name="tendererOrgName">
|
||||
<Input bordered={false} readOnly />
|
||||
</Form.Item>
|
||||
|
||||
<Form.Item label="回执时间" name="clarifyCheckTime">
|
||||
<Input bordered={false} readOnly/>
|
||||
<Form.Item label="回执时间" name="createDate">
|
||||
<Input bordered={false} readOnly />
|
||||
</Form.Item>
|
||||
|
||||
<Form.Item label="回执附件">
|
||||
@ -258,7 +259,7 @@ const ClarifyTheList: React.FC<{}> = () => {
|
||||
</Form.Item>
|
||||
|
||||
<Form.Item label="回执内容" name="clarifyRespComment">
|
||||
<Input.TextArea bordered={false} readOnly/>
|
||||
<Input.TextArea bordered={false} readOnly />
|
||||
</Form.Item>
|
||||
|
||||
</Form>
|
||||
@ -267,7 +268,7 @@ const ClarifyTheList: React.FC<{}> = () => {
|
||||
}
|
||||
return (
|
||||
<>
|
||||
<Modal
|
||||
<Modal
|
||||
visible={visibleModalReceipt}
|
||||
title="澄清回执信息"
|
||||
onCancel={onCancel}
|
||||
@ -286,10 +287,11 @@ const ClarifyTheList: React.FC<{}> = () => {
|
||||
* 查看回执
|
||||
* @param data
|
||||
*/
|
||||
const viewReceipt = (data:any) => {
|
||||
const viewReceipt = (data: any) => {
|
||||
setVisibleReceipt(true);
|
||||
setSupplierLoading(true);
|
||||
clarifyReply(data.id).then(res => {
|
||||
console.log(res);
|
||||
setSupplierLoading(false);
|
||||
setSupplierData(res.data);
|
||||
})
|
||||
}
|
||||
@ -299,14 +301,28 @@ const ClarifyTheList: React.FC<{}> = () => {
|
||||
* @param data 数据
|
||||
*/
|
||||
const edit = (data: any) => {
|
||||
setClarifyData(data);
|
||||
setBidOpeningTimeFlag(data.modOpeningTime === '1');
|
||||
setNegotiationStartTimeFlag(data.modNegotiationStartTime === '1');
|
||||
data.tenderOpeningTime = echoDateTimeFormatter(data.tenderOpeningTime);
|
||||
data.negotiationStartTime = echoDateTimeFormatter(data.negotiationStartTime);
|
||||
data.replyEndTime = echoDateTimeFormatter(data.replyEndTime);
|
||||
setFileListData(setFile(data));
|
||||
setVisible(true);
|
||||
form.setFieldsValue(data);
|
||||
}
|
||||
|
||||
const setFile = (data: any) => {
|
||||
if (isNotEmpty(data.attDatasetId) && isNotEmpty(data.attName)) {
|
||||
return [{
|
||||
oid: data.attDatasetId,
|
||||
name: data.attName,
|
||||
url: `${downloadAttachmentPath}${data.attDatasetId}`
|
||||
}];
|
||||
}
|
||||
return [];
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除
|
||||
* @param data
|
||||
@ -333,6 +349,8 @@ const ClarifyTheList: React.FC<{}> = () => {
|
||||
setNegotiationStartTimeFlag(data.modNegotiationStartTime === '1');
|
||||
data.tenderOpeningTime = echoDateTimeFormatter(data.tenderOpeningTime);
|
||||
data.negotiationStartTime = echoDateTimeFormatter(data.negotiationStartTime);
|
||||
data.replyEndTime = echoDateTimeFormatter(data.replyEndTime);
|
||||
setViewFile(isEmpty(data.attDatasetId) ? '无' : <a href={`${downloadAttachmentPathOId}${data.attDatasetId}`}>{data.attName}</a>);
|
||||
setVisible(true);
|
||||
setWhetherReadonly(true);
|
||||
form.setFieldsValue(data);
|
||||
@ -368,9 +386,59 @@ const ClarifyTheList: React.FC<{}> = () => {
|
||||
}
|
||||
|
||||
const save = () => {
|
||||
let tenderOpeningTime = form.getFieldValue('tenderOpeningTime');
|
||||
if (isNotEmpty(tenderOpeningTime)) {
|
||||
if (verification()) {
|
||||
return;
|
||||
}
|
||||
let packageIds = isNotEmpty(form.getFieldValue('packageId')) ? String(form.getFieldValue('packageId')).split(',') : [];
|
||||
if (isNotEmpty(packageIds) && isNotEmpty(tenderOpeningTime) && packageIds.length !== 0) {
|
||||
//获取公告信息 判断公告时间与开始时间是否大于20日
|
||||
getClarifyAnnoList(packageIds).then(res => {
|
||||
if (res.code === 200) {
|
||||
let annoStartTimes = res.data.map((item: any) => item.annoStartTime);
|
||||
let annoStartTime = getMaxDate(annoStartTimes);
|
||||
if (judgmentIntervalDay(annoStartTime, tenderOpeningTime) < 20) {
|
||||
Modal.confirm({
|
||||
title: `您的公告发布时间为${annoStartTime},与您的开标时间${saveDateTimeFormatter(tenderOpeningTime)} 不足20日,请确认`,
|
||||
onOk() {
|
||||
form.submit();
|
||||
},
|
||||
onCancel() {
|
||||
return;
|
||||
},
|
||||
centered: true
|
||||
})
|
||||
} else {
|
||||
form.submit();
|
||||
}
|
||||
}
|
||||
})
|
||||
return;
|
||||
}
|
||||
}
|
||||
form.submit();
|
||||
}
|
||||
|
||||
const verification = () => {
|
||||
if(isEmpty(form.getFieldValue('id'))){
|
||||
return false;
|
||||
}
|
||||
//开标时间
|
||||
let tenderOpeningTime = form.getFieldValue('tenderOpeningTime');
|
||||
tenderOpeningTime = saveDateTimeFormatter(tenderOpeningTime);
|
||||
if ((isNotEmpty(clarifyData.tenderOpeningTime) && isNotEmpty(tenderOpeningTime)) && judgmentOfTwoTimePeriods(clarifyData.tenderOpeningTime, tenderOpeningTime)) {
|
||||
message.info("当前开标时间需大于原开标时间!");
|
||||
return true;
|
||||
}
|
||||
//投标截止时间
|
||||
let replyEndTime = saveDateTimeFormatter(form.getFieldValue('replyEndTime'));
|
||||
if ((isNotEmpty(clarifyData.replyEndTime) && isNotEmpty(replyEndTime)) && judgmentOfTwoTimePeriods(clarifyData.replyEndTime, replyEndTime)) {
|
||||
message.info("当前投标截止时间需大于原投标截止时间!");
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 澄清保存
|
||||
@ -378,10 +446,16 @@ const ClarifyTheList: React.FC<{}> = () => {
|
||||
*/
|
||||
const onFinish = (data: any) => {
|
||||
setButtonLoading(true);
|
||||
data.tenderOpeningTime = saveDateTimeFormatter(data.tenderOpeningTime);
|
||||
data.negotiationStartTime = saveDateTimeFormatter(data.negotiationStartTime);
|
||||
let packageId = typeof data.packageId === 'string' ? (data.packageId).split(',') : data.packageId;
|
||||
data.packageId = packageId.join(',');
|
||||
//获取附件
|
||||
let file = fileListData[0];
|
||||
data.attDatasetId = file.oid;
|
||||
data.attName = file.name;
|
||||
data.projectId = projectId;
|
||||
data.tenderOpeningTime = saveDateTimeFormatter(data.tenderOpeningTime);
|
||||
data.negotiationStartTime = saveDateTimeFormatter(data.negotiationStartTime);
|
||||
data.replyEndTime = saveDateTimeFormatter(data.replyEndTime);
|
||||
if (isEmpty(data.id)) {
|
||||
addClarify(data).then(res => {
|
||||
if (saveMessage(res)) {
|
||||
@ -399,7 +473,6 @@ const ClarifyTheList: React.FC<{}> = () => {
|
||||
setButtonLoading(false);
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
const onFinishFailed = (data: any) => {
|
||||
@ -411,6 +484,7 @@ const ClarifyTheList: React.FC<{}> = () => {
|
||||
setBidOpeningTimeFlag(false);
|
||||
setNegotiationStartTimeFlag(false);
|
||||
setVisible(true);
|
||||
setFileListData([]);
|
||||
form.resetFields();
|
||||
}
|
||||
|
||||
@ -422,6 +496,58 @@ const ClarifyTheList: React.FC<{}> = () => {
|
||||
setBidOpeningTimeFlag(data.target.value === '1');
|
||||
}
|
||||
|
||||
|
||||
//上传文件数量控制
|
||||
const handleChange = (info: any) => {
|
||||
if (whetherToUpload()) {
|
||||
return;
|
||||
}
|
||||
let fileList = [...info.fileList];
|
||||
fileList = fileList.map((file) => {
|
||||
if (file.response) {
|
||||
file.url = `${downloadAttachmentPathOId}${file.response.oid}`;
|
||||
file.oid = file.response.oid;
|
||||
}
|
||||
return file;
|
||||
});
|
||||
setFileListData(fileList);
|
||||
};
|
||||
|
||||
const whetherToUpload = () => {
|
||||
if (fileNumber === -1) {
|
||||
return false;
|
||||
}
|
||||
return fileListData.length >= fileNumber;
|
||||
}
|
||||
|
||||
//上传文件大小控制
|
||||
const beforeUpload = (file: any) => {
|
||||
if (whetherToUpload()) {
|
||||
message.info(`最多只能上传 ${fileNumber} 个文件`);
|
||||
return false;
|
||||
}
|
||||
let flag = file.size > 52428800;
|
||||
if (flag) {
|
||||
message.info("上传文件大于50M,请重新上传");
|
||||
}
|
||||
return !flag;
|
||||
}
|
||||
|
||||
const onRemove = (e: any) => {
|
||||
let data = fileListData;
|
||||
let index = data.findIndex((item: any) => item.url === e.url);
|
||||
data.splice(index, 1)
|
||||
setFileListData([...data]);
|
||||
form.resetFields(['attDatasetId']);
|
||||
}
|
||||
|
||||
const uploadProps = {
|
||||
action: '/api/core-service-ebtp-updownload/v1/attachment/upload',
|
||||
onChange: handleChange,
|
||||
onRemove: onRemove,
|
||||
beforeUpload: beforeUpload,
|
||||
};
|
||||
|
||||
/**
|
||||
* 澄清
|
||||
*/
|
||||
@ -476,16 +602,19 @@ const ClarifyTheList: React.FC<{}> = () => {
|
||||
</Radio.Group>
|
||||
</Form.Item>
|
||||
|
||||
<Form.Item
|
||||
label="是否修改谈判开始时间"
|
||||
name="modNegotiationStartTime"
|
||||
rules={[{ required: true }]}
|
||||
>
|
||||
<Radio.Group onChange={negotiationStartTimeRadio} disabled={whetherReadonly}>
|
||||
<Radio value="0">否</Radio>
|
||||
<Radio value="1">是</Radio>
|
||||
</Radio.Group>
|
||||
</Form.Item>
|
||||
{
|
||||
bidMethodDict !== 'procurement_mode_1' &&
|
||||
<Form.Item
|
||||
label="是否修改谈判开始时间"
|
||||
name="modNegotiationStartTime"
|
||||
rules={[{ required: true }]}
|
||||
>
|
||||
<Radio.Group onChange={negotiationStartTimeRadio} disabled={whetherReadonly}>
|
||||
<Radio value="0">否</Radio>
|
||||
<Radio value="1">是</Radio>
|
||||
</Radio.Group>
|
||||
</Form.Item>
|
||||
}
|
||||
|
||||
{
|
||||
bidOpeningTimeFlag && (
|
||||
@ -494,9 +623,15 @@ const ClarifyTheList: React.FC<{}> = () => {
|
||||
name="tenderOpeningTime"
|
||||
rules={[{ required: true }]}
|
||||
>
|
||||
<DatePicker showTime format={dateTimeFormatter} disabled={whetherReadonly} />
|
||||
<DatePicker
|
||||
disabledDate={datePickerDisabledDate}
|
||||
disabledTime={datePickerDisabledTime}
|
||||
showTime={{ defaultValue: showTimeDefaultValue() }}
|
||||
format={dateTimeFormatter}
|
||||
disabled={whetherReadonly}
|
||||
/>
|
||||
</Form.Item>
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
{
|
||||
@ -506,11 +641,31 @@ const ClarifyTheList: React.FC<{}> = () => {
|
||||
name="negotiationStartTime"
|
||||
rules={[{ required: true }]}
|
||||
>
|
||||
<DatePicker showTime format={dateTimeFormatter} disabled={whetherReadonly} />
|
||||
<DatePicker
|
||||
disabledDate={datePickerDisabledDate}
|
||||
disabledTime={datePickerDisabledTime}
|
||||
showTime={{ defaultValue: showTimeDefaultValue() }}
|
||||
format={dateTimeFormatter}
|
||||
disabled={whetherReadonly}
|
||||
/>
|
||||
</Form.Item>
|
||||
)
|
||||
}
|
||||
|
||||
<Form.Item
|
||||
label="投标截止时间"
|
||||
name="replyEndTime"
|
||||
rules={[{ required: true }]}
|
||||
>
|
||||
<DatePicker
|
||||
disabledDate={datePickerDisabledDate}
|
||||
disabledTime={datePickerDisabledTime}
|
||||
showTime={{ defaultValue: showTimeDefaultValue() }}
|
||||
format={dateTimeFormatter}
|
||||
disabled={whetherReadonly}
|
||||
/>
|
||||
</Form.Item>
|
||||
|
||||
<Form.Item
|
||||
label="澄清标题"
|
||||
name="clarifyTitle"
|
||||
@ -530,11 +685,19 @@ const ClarifyTheList: React.FC<{}> = () => {
|
||||
<Form.Item
|
||||
label="澄清文件附件"
|
||||
name="attDatasetId"
|
||||
// rules={[{ required: true }]}
|
||||
rules={[{
|
||||
required: true,
|
||||
message: '请上传澄清文件!'
|
||||
}]}
|
||||
>
|
||||
<Upload name="logo" action="/upload.do" listType="picture" disabled={whetherReadonly} >
|
||||
<Button icon={<UploadOutlined />}>上传文件</Button>
|
||||
</Upload>
|
||||
{
|
||||
whetherReadonly ? viewFile :
|
||||
(
|
||||
<Upload {...uploadProps} fileList={fileListData}>
|
||||
<Button disabled={whetherReadonly}><UploadOutlined />上传附件</Button>
|
||||
</Upload>
|
||||
)
|
||||
}
|
||||
</Form.Item>
|
||||
|
||||
</Panel>
|
||||
@ -547,6 +710,11 @@ const ClarifyTheList: React.FC<{}> = () => {
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
const createForm = () => {
|
||||
return (
|
||||
<>
|
||||
@ -561,7 +729,7 @@ const ClarifyTheList: React.FC<{}> = () => {
|
||||
<Button key="back" onClick={handleCancel}>
|
||||
取消
|
||||
</Button>,
|
||||
<Button key="submit" type="primary" loading={buttonLoading} onClick={save}>
|
||||
<Button key="submit" type="primary" loading={buttonLoading} onClick={() => save()}>
|
||||
保存
|
||||
</Button>,
|
||||
]}
|
||||
@ -572,19 +740,21 @@ const ClarifyTheList: React.FC<{}> = () => {
|
||||
<Modal visible={visibleReceipt}
|
||||
style={{ top: 20 }}
|
||||
title="查看回执"
|
||||
onCancel={() => {setVisibleReceipt(false);setSupplierData([])}}
|
||||
onCancel={() => { setVisibleReceipt(false); setSupplierData([]) }}
|
||||
maskClosable={false}
|
||||
destroyOnClose={true}
|
||||
footer={null}
|
||||
centered
|
||||
>
|
||||
<ProTable
|
||||
columns={supplierColumns}
|
||||
dataSource={supplierData}
|
||||
search={false}
|
||||
options={false}
|
||||
rowKey="id"
|
||||
/>
|
||||
<Spin spinning={supplierLoading}>
|
||||
<ProTable
|
||||
columns={supplierColumns}
|
||||
dataSource={supplierData}
|
||||
search={false}
|
||||
options={false}
|
||||
rowKey="id"
|
||||
/>
|
||||
</Spin>
|
||||
{modalReceipt()}
|
||||
</Modal>
|
||||
<Modal // 删除
|
||||
@ -606,6 +776,13 @@ const ClarifyTheList: React.FC<{}> = () => {
|
||||
>
|
||||
确定要发布吗?
|
||||
</Modal>
|
||||
<InquiryBox
|
||||
visible={visiblesubmit}
|
||||
setVisible={setVisiblesubmit}
|
||||
message={'确定要提交吗?'}
|
||||
onOk={(data) => submitDataBasedOnId(data)}
|
||||
data={submitData}
|
||||
/>
|
||||
</>
|
||||
)
|
||||
}
|
||||
@ -616,6 +793,7 @@ const ClarifyTheList: React.FC<{}> = () => {
|
||||
<ProTable
|
||||
rowKey="id"
|
||||
actionRef={actionRef}
|
||||
params={{ projectId: projectId }}
|
||||
columns={columns}
|
||||
request={params => queryingPagingData('/api/biz-service-ebtp-tender/v1/clarifydissent/get_clarify_list', 'post', params)}
|
||||
search={false}
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* @Author: liqiang
|
||||
* @Date: 2020-11-30 10:37:26
|
||||
* @LastEditTime: 2020-12-21 10:33:30
|
||||
* @LastEditTime: 2021-01-13 14:43:50
|
||||
* @LastEditors: Please set LastEditors
|
||||
* @Description:
|
||||
* @FilePath: \ebtp-cloud-frontend\src\pages\ClarificationAndResponse\ClarifyTheList\service.ts
|
||||
@ -27,6 +27,16 @@ export async function updateClarify(data: any) {
|
||||
data: data
|
||||
});
|
||||
}
|
||||
/**
|
||||
* 提交方法
|
||||
* @param data
|
||||
*/
|
||||
export async function submitClarify(data: any) {
|
||||
return request('/api/biz-service-ebtp-tender/v1/clarifydissent/submit_clarify', {
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
}
|
||||
/**
|
||||
* 根据id查询数据
|
||||
* @param id
|
||||
@ -81,6 +91,25 @@ export function getSectionList(data: any) {
|
||||
* 查看回执
|
||||
* @param data
|
||||
*/
|
||||
export async function clarifyReply(id:any){
|
||||
export async function clarifyReply(id: any) {
|
||||
return request('/api/biz-service-ebtp-tender/v1/clarifydissent/clarify/reply/' + id);
|
||||
}
|
||||
/**
|
||||
* 查询标段
|
||||
* @param projectId
|
||||
*/
|
||||
export function getSections(projectId: any) {
|
||||
return request('/api/biz-service-ebtp-tender/v1/clarifydissent/packages/' + projectId, {
|
||||
method: 'put'
|
||||
});
|
||||
}
|
||||
/**
|
||||
* 根据标段id查询公告
|
||||
* @param data
|
||||
*/
|
||||
export function getClarifyAnnoList(data: any) {
|
||||
return request('/api/biz-service-ebtp-bid/v1/anno/clarifyAnnoList', {
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@ -58,4 +58,15 @@ export async function changeMember(params?: any) {
|
||||
...params
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//提交申请
|
||||
export async function applyFor(params?: any) {
|
||||
return request(`/api/biz-service-ebtp-rsms/v1/jury/extract/apply/${params.id}`,{
|
||||
method:'POST',
|
||||
});
|
||||
}
|
||||
//查是否开启评标
|
||||
export async function roomStatus(id?: any) {
|
||||
return request(`/api/biz-service-ebtp-rsms/v1/jury/check/roomStatus/${id}`);
|
||||
}
|
Reference in New Issue
Block a user