9.7 还原重评,多轮招募
This commit is contained in:
@ -1,11 +1,10 @@
|
||||
import { echoDateTimeFormatter, saveDateTimeFormatter } from '@/utils/DateUtils';
|
||||
import ExtendUpload from '@/utils/ExtendUpload';
|
||||
import { getProMethod } from '@/utils/session';
|
||||
import { Button, DatePicker, Form, Input, message, Modal, Radio, Spin } from 'antd';
|
||||
import { DatePicker, Form, Input, message, Modal, Radio, Spin } from 'antd';
|
||||
import React, { useEffect, useState } from 'react';
|
||||
import moment from 'moment';
|
||||
import { isEmpty } from '@/utils/CommonUtils';
|
||||
import BidEvalAppointment from '@/components/ElecBidEvaluation/BidEvalAppointment';
|
||||
interface AddEvaluationItemsProps {
|
||||
title?: string;
|
||||
modalVisible?: boolean;
|
||||
@ -47,12 +46,6 @@ const AddEvaluationItems: React.FC<AddEvaluationItemsProps> = (props) => {
|
||||
const [sectionType, setSectionType] = useState<any>('评审');
|
||||
//loading
|
||||
const [saveLoading, setSaveLoading] = useState<boolean>(false);
|
||||
//电子评标室-评标室预约选择 2022.8.26 zhoujianlong
|
||||
const [selectEvalVisible, setSelectEvalVisible] = useState<boolean>(false);
|
||||
//电子评标室-评标室预约选择不可选状态控制 true-不可填写 false-可填写 2022.8.26 zhoujianlong
|
||||
const [selectEvalDisabled, setSelectEvalDisabled] = useState<boolean>(true);
|
||||
//电子评标室-评标室预约选择-数据 2022.8.26 zhoujianlong
|
||||
const [selectEvalData, setSelectEvalData] = useState<any>();
|
||||
useEffect(() => {
|
||||
//名称确定
|
||||
if (MethodDict == 'procurement_mode_1' || MethodDict == 'procurement_mode_2') {
|
||||
@ -108,144 +101,99 @@ const AddEvaluationItems: React.FC<AddEvaluationItemsProps> = (props) => {
|
||||
form.submit();
|
||||
};
|
||||
|
||||
//评标室预约回调
|
||||
const returnEvalData = (value: any) => {
|
||||
console.log('value', value)
|
||||
setSelectEvalVisible(false);
|
||||
setSelectEvalDisabled(false);
|
||||
setSelectEvalData(value);
|
||||
form.setFieldsValue({
|
||||
evaluationStartTime: value.reserveStartDate,
|
||||
evaluationEndTime: value.reserveEndDate,
|
||||
evaluationPlace: value.areaAddress,
|
||||
reserveBy: value.reserveBy,
|
||||
reserveContactNumber: value.reserveContactNumber,
|
||||
})
|
||||
}
|
||||
|
||||
//评标室预约-选择评标室
|
||||
const selectEvalClick = () => {
|
||||
setSelectEvalVisible(true);
|
||||
}
|
||||
|
||||
return (
|
||||
<>
|
||||
<Modal
|
||||
destroyOnClose
|
||||
title={title}
|
||||
visible={modalVisible}
|
||||
onOk={() => onSubmit()}
|
||||
onCancel={() => {
|
||||
// setFileListData([]);
|
||||
onCancel();
|
||||
}}
|
||||
width={'60%'}
|
||||
style={{ maxHeight: modalHeight }}
|
||||
bodyStyle={{ maxHeight: modalHeight - 107, overflowY: 'auto' }}
|
||||
centered
|
||||
okText="保存"
|
||||
cancelText="返回"
|
||||
confirmLoading={saveLoading}
|
||||
>
|
||||
<Spin spinning={saveLoading} delay={300}>
|
||||
<Form
|
||||
{...layout}
|
||||
name="basic"
|
||||
form={form}
|
||||
initialValues={{ remember: true }}
|
||||
validateMessages={validateMessages}
|
||||
onFinish={onFinish}
|
||||
preserve={false}
|
||||
<Modal
|
||||
destroyOnClose
|
||||
title={title}
|
||||
visible={modalVisible}
|
||||
onOk={() => onSubmit()}
|
||||
onCancel={() => {
|
||||
// setFileListData([]);
|
||||
onCancel();
|
||||
}}
|
||||
width={'60%'}
|
||||
style={{ maxHeight: modalHeight }}
|
||||
bodyStyle={{ maxHeight: modalHeight - 107, overflowY: 'auto' }}
|
||||
centered
|
||||
okText="保存"
|
||||
cancelText="返回"
|
||||
confirmLoading={saveLoading}
|
||||
>
|
||||
<Spin spinning={saveLoading} delay={300}>
|
||||
<Form
|
||||
{...layout}
|
||||
name="basic"
|
||||
form={form}
|
||||
initialValues={{ remember: true }}
|
||||
validateMessages={validateMessages}
|
||||
onFinish={onFinish}
|
||||
preserve={false}
|
||||
>
|
||||
<Form.Item label={`${sectionName}名称`} name="bidSectName">
|
||||
<Input bordered={false} readOnly />
|
||||
</Form.Item>
|
||||
<Form.Item label={`重新${sectionType}原因`} name="reason" rules={[{ required: true }, { max: 500, message: "最大不能超过500字" }]}>
|
||||
<TextArea rows={4} maxLength={1000} placeholder={`请填写重新${sectionType}原因`} />
|
||||
</Form.Item>
|
||||
<Form.Item
|
||||
label={`预计重新${sectionType}开始时间`}
|
||||
name="evaluationStartTime"
|
||||
rules={[{ required: true }]}
|
||||
>
|
||||
<Form.Item label={`${sectionName}名称`} name="bidSectName">
|
||||
<Input bordered={false} readOnly />
|
||||
</Form.Item>
|
||||
<Form.Item label={`重新${sectionType}原因`} name="reason" rules={[{ required: true }, { max: 500, message: "最大不能超过500字" }]}>
|
||||
<TextArea rows={4} maxLength={1000} placeholder={`请填写重新${sectionType}原因`} />
|
||||
</Form.Item>
|
||||
<Form.Item label={`重新${sectionType}地点`} style={{ marginBottom: 0 }} required>
|
||||
<Form.Item
|
||||
name="evaluationPlace"
|
||||
rules={[{ required: true }, { max: 100, message: "最大不能超过100字" }]}
|
||||
style={{ display: 'inline-block', width: 'calc(60% - 8px)' }}
|
||||
>
|
||||
<Input placeholder={`请填写重新${sectionType}地点`} maxLength={200} />
|
||||
</Form.Item>
|
||||
<Form.Item
|
||||
style={{ display: 'inline-block', width: 'calc(40% - 8px)', margin: '0 8px' }}
|
||||
>
|
||||
<Button type='primary' onClick={() => selectEvalClick()}>选择评标室</Button>
|
||||
</Form.Item>
|
||||
</Form.Item>
|
||||
<Form.Item
|
||||
label={`预计重新${sectionType}开始时间`}
|
||||
name="evaluationStartTime"
|
||||
rules={[{ required: true }]}
|
||||
>
|
||||
<DatePicker
|
||||
placeholder="请填写开始时间"
|
||||
disabledDate={(current) => current && current < moment().startOf('day')}
|
||||
format={'yyyy-MM-DD HH:mm'}
|
||||
style={{ width: '100%' }}
|
||||
showNow={false}
|
||||
showTime={{ defaultValue: moment().startOf('minute') }}
|
||||
/>
|
||||
</Form.Item>
|
||||
<Form.Item
|
||||
label={`预计重新${sectionType}结束时间`}
|
||||
name="evaluationEndTime"
|
||||
rules={[{ required: true }]}
|
||||
>
|
||||
<DatePicker
|
||||
placeholder="请填写结束时间"
|
||||
format={'yyyy-MM-DD HH:mm'}
|
||||
style={{ width: '100%' }}
|
||||
showNow={false}
|
||||
showTime={{ defaultValue: moment().startOf('minute') }}
|
||||
/>
|
||||
</Form.Item>
|
||||
<Form.Item
|
||||
name="reserveBy"
|
||||
label="预约人"
|
||||
rules={[{ required: !selectEvalDisabled, message: `请录入预约人` }, { max: 100, message: '内容超长' }]}
|
||||
>
|
||||
<Input disabled={selectEvalDisabled} />
|
||||
</Form.Item>
|
||||
<Form.Item
|
||||
name="reserveContactNumber"
|
||||
label="预约人联系方式"
|
||||
rules={[{ required: !selectEvalDisabled, message: `请录入预约人联系方式` }, { max: 100, message: '内容超长' }]}
|
||||
>
|
||||
<Input type="number" disabled={selectEvalDisabled} />
|
||||
</Form.Item>
|
||||
<Form.Item
|
||||
label={`${sectionType}专家是否与上次一致`}
|
||||
name="isAgreement"
|
||||
rules={[{ required: true }]}
|
||||
>
|
||||
<Radio.Group options={options} />
|
||||
</Form.Item>
|
||||
<Form.Item
|
||||
label="说明文件"
|
||||
name="uploadFileId"
|
||||
rules={[{ required: true, message: '请上传说明文件' }]}
|
||||
extra="最多上传一个文件,每个最大30MB"
|
||||
>
|
||||
<ExtendUpload bid={uploadId} maxCount={1} maxSize={30}>
|
||||
</ExtendUpload>
|
||||
</Form.Item>
|
||||
<Form.Item label="id" name="id" hidden>
|
||||
<Input />
|
||||
</Form.Item>
|
||||
<Form.Item label="sectionId" name="sectionId" hidden>
|
||||
<Input />
|
||||
</Form.Item>
|
||||
</Form>
|
||||
</Spin>
|
||||
</Modal>
|
||||
{/**电子评标室-评标室预约选择 */}
|
||||
<BidEvalAppointment modalVisible={selectEvalVisible} onCancel={() => setSelectEvalVisible(false)} onSubmit={(value: any) => returnEvalData(value)} values={selectEvalData} />
|
||||
</>
|
||||
<DatePicker
|
||||
placeholder="请填写开始时间"
|
||||
disabledDate={(current) => current && current < moment().startOf('day')}
|
||||
format={'yyyy-MM-DD HH:mm'}
|
||||
style={{ width: '100%' }}
|
||||
showNow={false}
|
||||
showTime={{ defaultValue: moment().startOf('minute') }}
|
||||
/>
|
||||
</Form.Item>
|
||||
<Form.Item
|
||||
label={`预计重新${sectionType}结束时间`}
|
||||
name="evaluationEndTime"
|
||||
rules={[{ required: true }]}
|
||||
>
|
||||
<DatePicker
|
||||
placeholder="请填写结束时间"
|
||||
format={'yyyy-MM-DD HH:mm'}
|
||||
style={{ width: '100%' }}
|
||||
showNow={false}
|
||||
showTime={{ defaultValue: moment().startOf('minute') }}
|
||||
/>
|
||||
</Form.Item>
|
||||
<Form.Item
|
||||
label={`重新${sectionType}地点`}
|
||||
name="evaluationPlace"
|
||||
rules={[{ required: true }, { max: 100, message: "最大不能超过100字" }]}
|
||||
>
|
||||
<Input placeholder={`请填写重新${sectionType}地点`} maxLength={200} />
|
||||
</Form.Item>
|
||||
<Form.Item
|
||||
label={`${sectionType}专家是否与上次一致`}
|
||||
name="isAgreement"
|
||||
rules={[{ required: true }]}
|
||||
>
|
||||
<Radio.Group options={options} />
|
||||
</Form.Item>
|
||||
<Form.Item
|
||||
label="说明文件"
|
||||
name="uploadFileId"
|
||||
rules={[{ required: true, message: '请上传说明文件' }]}
|
||||
extra="最多上传一个文件,每个最大30MB"
|
||||
>
|
||||
<ExtendUpload bid={uploadId} maxCount={1} maxSize={30}>
|
||||
</ExtendUpload>
|
||||
</Form.Item>
|
||||
<Form.Item label="id" name="id" hidden>
|
||||
<Input />
|
||||
</Form.Item>
|
||||
<Form.Item label="sectionId" name="sectionId" hidden>
|
||||
<Input />
|
||||
</Form.Item>
|
||||
</Form>
|
||||
</Spin>
|
||||
</Modal>
|
||||
);
|
||||
};
|
||||
export default AddEvaluationItems;
|
||||
|
@ -12,6 +12,10 @@ import { UploadOutlined } from '@ant-design/icons';
|
||||
import { btnAuthority } from '@/utils/authority';
|
||||
import RiskPrevention from '@/utils/RiskPrevention';
|
||||
import { history } from 'umi';
|
||||
import { downloadFile } from '@/utils/DownloadUtils';
|
||||
import ExpertPhotoUpload from '@/components/ElecBidEvaluation/ExpertPhotoUpload';
|
||||
import { getUserPhoto } from '@/pages/Tender/ProjectManager/JudgingPanel/List/service';
|
||||
import BidEvalAppointment from '@/components/ElecBidEvaluation/BidEvalAppointment';
|
||||
|
||||
const JudgingPanel: React.FC<{}> = () => {
|
||||
const modalHeight = window.innerHeight * 96 / 100;
|
||||
@ -40,6 +44,11 @@ const JudgingPanel: React.FC<{}> = () => {
|
||||
const [manNum, manNumSet] = useState<number>(5);//人数
|
||||
const [riskVisible, setRiskVisible] = useState<boolean>(false);//风控弹窗 2021.9.7 zhoujianlong
|
||||
const [riskData, setRiskData] = useState<any[]>([]);//风控数据 2021.9.7 zhoujianlong
|
||||
const [selectEvalVisible, setSelectEvalVisible] = useState<boolean>(false);//电子评标室-评标室预约选择 2022.8.26 zhoujianlong
|
||||
const [selectEvalDisabled, setSelectEvalDisabled] = useState<boolean>(true);//电子评标室-评标室预约选择不可选状态控制 true-不可填写 false-可填写 2022.8.26 zhoujianlong
|
||||
const [selectEvalData, setSelectEvalData] = useState<any>();//电子评标室-评标室预约选择-数据 2022.8.26 zhoujianlong
|
||||
// const [userPhotoId, setUserPhotoId] = useState<string>("");//电子评标室-录入外部专家-相片id 2022.8.29 zhoujianlong
|
||||
const [appoType, setAppoType] = useState<string>("0");//电子评标室-预约框状态 2022.8.29 zhoujianlong
|
||||
function getShouName() {
|
||||
const method = getDefId();
|
||||
let num = 3;
|
||||
@ -137,6 +146,11 @@ const JudgingPanel: React.FC<{}> = () => {
|
||||
memberCountSet(memberCount + 1);
|
||||
setMemberVis(true);
|
||||
}}>成员管理</Button>
|
||||
{record.elecEvalRoomReserve && (record.elecEvalRoomReserve.status == -1 || record.elecEvalRoomReserve.status == 0) && <Button type='text' onClick={() => {
|
||||
setSelectEvalData(record.elecEvalRoomReserve)
|
||||
setAppoType("1");
|
||||
setSelectEvalVisible(true);
|
||||
}}>修改预约</Button>}
|
||||
</>
|
||||
);
|
||||
} else {
|
||||
@ -244,14 +258,19 @@ const JudgingPanel: React.FC<{}> = () => {
|
||||
}
|
||||
|
||||
useEffect(() => {//给表单赋值
|
||||
if (updateData?.reserveStatus == 1) {
|
||||
setSelectEvalDisabled(false);
|
||||
}
|
||||
form.setFieldsValue({
|
||||
juryType: updateData != undefined ? updateData.juryType : null,
|
||||
representativeNumber: updateData != undefined ? updateData.representativeNumber : null,
|
||||
expertNumber: updateData != undefined ? updateData.expertNumber : null,
|
||||
startTime: updateData != undefined ? moment(updateData.startTime, 'yyyy-MM-DD HH:mm:ss') : null,
|
||||
endTime: updateData != undefined ? moment(updateData.endTime, 'yyyy-MM-DD HH:mm:ss') : null,
|
||||
startTime: updateData != undefined ? updateData.reserveStatus == 1 ? moment(updateData.elecEvalRoomReserve.reserveStartDate, 'yyyy-MM-DD HH:mm:ss') : moment(updateData.startTime, 'yyyy-MM-DD HH:mm:ss') : null,
|
||||
endTime: updateData != undefined ? updateData.reserveStatus == 1 ? moment(updateData.elecEvalRoomReserve.reserveEndDate, 'yyyy-MM-DD HH:mm:ss') : moment(updateData.endTime, 'yyyy-MM-DD HH:mm:ss') : null,
|
||||
evalLocation: updateData != undefined ? updateData.evalLocation : null,
|
||||
description: updateData != undefined ? updateData.description : null,
|
||||
reserveBy: updateData?.reserveStatus == 1 ? updateData.elecEvalRoomReserve.reserveBy : null,
|
||||
reserveContactNumber: updateData?.reserveStatus == 1 ? updateData.elecEvalRoomReserve.reserveContactNumber : null,
|
||||
})
|
||||
}, [updateData]);
|
||||
|
||||
@ -359,12 +378,20 @@ const JudgingPanel: React.FC<{}> = () => {
|
||||
if (verify) {
|
||||
verify = checkMan(count, parseInt(formVals.expertNumber));
|
||||
}
|
||||
const st = formVals.startTime.format('yyyy-MM-DD HH:mm:ss');
|
||||
const et = formVals.endTime.format('yyyy-MM-DD HH:mm:ss');
|
||||
const st = moment(formVals.startTime).format('yyyy-MM-DD HH:mm:ss');
|
||||
const et = moment(formVals.endTime).format('yyyy-MM-DD HH:mm:ss');
|
||||
if (st > et || st == et) {//校验时间
|
||||
verify = false;
|
||||
message.error("预计开始时间应早于预计结束时间")
|
||||
}
|
||||
if (selectEvalData?.reserveStatus == "1") {//预约了评标室
|
||||
const selectStartTime = moment(selectEvalData.reserveStartDate).format('yyyy-MM-DD HH:mm:ss');
|
||||
const selectEndTime = moment(selectEvalData.reserveEndDate).format('yyyy-MM-DD HH:mm:ss');
|
||||
if (selectStartTime != st || selectEndTime != et) {
|
||||
verify = false;
|
||||
message.error("预约时间需与选择评标室中的预约时间相等");
|
||||
}
|
||||
}
|
||||
if (verify) {
|
||||
activeKeySet('2');
|
||||
}
|
||||
@ -634,8 +661,29 @@ const JudgingPanel: React.FC<{}> = () => {
|
||||
>
|
||||
<Input style={{ width: "90%" }} disabled={disabled} />
|
||||
</FormItem></Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col span={12}>
|
||||
<Form.Item label="评审地点" style={{ marginBottom: 0 }} required>
|
||||
<FormItem
|
||||
name="evalLocation"
|
||||
rules={[...rule('评审地点'), { type: 'string', message: '请输入正确内容' }, { max: 100, message: '内容超长' }]}
|
||||
style={{ display: 'inline-block', width: 'calc(60% - 8px)' }}
|
||||
>
|
||||
<Input style={{ width: "100%" }} disabled={disabled || !selectEvalDisabled} />
|
||||
</FormItem>
|
||||
<Form.Item
|
||||
style={{ display: 'inline-block', width: 'calc(40% - 8px)', margin: '0 8px' }}
|
||||
>
|
||||
<Button type='primary' onClick={() => selectEvalClick()} disabled={disabled}>选择评标室</Button>
|
||||
</Form.Item>
|
||||
</Form.Item>
|
||||
</Col>
|
||||
<Col span={12}><FormItem
|
||||
name="description"
|
||||
label="申请要求"
|
||||
rules={[{ type: 'string', message: '请输入正确内容' }, { max: 100, message: '内容超长' }]}
|
||||
>
|
||||
<Input style={{ width: "90%" }} disabled={disabled} />
|
||||
</FormItem></Col>
|
||||
<Col span={12}><FormItem
|
||||
name="startTime"
|
||||
label="预计评审开始时间"
|
||||
@ -647,6 +695,7 @@ const JudgingPanel: React.FC<{}> = () => {
|
||||
showTime={{ defaultValue: moment('00:00:00', 'HH:mm:ss') }}
|
||||
disabled={disabled}
|
||||
showNow={false}
|
||||
style={{ width: "90%" }}
|
||||
/>
|
||||
</FormItem></Col>
|
||||
<Col span={12}><FormItem
|
||||
@ -660,22 +709,22 @@ const JudgingPanel: React.FC<{}> = () => {
|
||||
showTime={{ defaultValue: moment('00:00:00', 'HH:mm:ss') }}
|
||||
disabled={disabled}
|
||||
showNow={false}
|
||||
style={{ width: "90%" }}
|
||||
/>
|
||||
</FormItem></Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col span={12}><FormItem
|
||||
name="evalLocation"
|
||||
label="评审地点"
|
||||
rules={rule('评审地点')}
|
||||
name="reserveBy"
|
||||
label="预约人"
|
||||
rules={[{ required: !selectEvalDisabled, message: `请录入预约人` }, { max: 100, message: '内容超长' }]}
|
||||
>
|
||||
<Input style={{ width: "90%" }} disabled={disabled} />
|
||||
<Input style={{ width: "90%" }} disabled={disabled || selectEvalDisabled} />
|
||||
</FormItem></Col>
|
||||
<Col span={12}><FormItem
|
||||
name="description"
|
||||
label="申请要求"
|
||||
name="reserveContactNumber"
|
||||
label="预约人联系方式"
|
||||
rules={[{ required: !selectEvalDisabled, message: `请录入预约人联系方式` }, { max: 100, message: '内容超长' }]}
|
||||
>
|
||||
<Input style={{ width: "90%" }} disabled={disabled} />
|
||||
<Input type="number" style={{ width: "90%" }} disabled={disabled || selectEvalDisabled} />
|
||||
</FormItem></Col>
|
||||
</Row>
|
||||
</Form>
|
||||
@ -754,7 +803,7 @@ const JudgingPanel: React.FC<{}> = () => {
|
||||
// const formValsCq = formCq.getFieldsValue();
|
||||
formVals.startTime != undefined ? formVals.startTime = formVals.startTime.format('yyyy-MM-DD HH:mm:ss') : null;
|
||||
formVals.endTime != undefined ? formVals.endTime = formVals.endTime.format('yyyy-MM-DD HH:mm:ss') : null;
|
||||
let params = { ...formVals, projectId: proId, juryCategoryVOList: cqData, roomId: roomId, juryRoomList: juryRoomList, };
|
||||
let params = { ...formVals, projectId: proId, juryCategoryVOList: cqData, roomId: roomId, juryRoomList: juryRoomList, reserveStatus: 0 };
|
||||
if (updateData != undefined) {
|
||||
params['id'] = updateData.id;
|
||||
}
|
||||
@ -766,6 +815,16 @@ const JudgingPanel: React.FC<{}> = () => {
|
||||
pass = false;
|
||||
message.error(`抽取数量不等于设置的专家数量(${count})`);
|
||||
}
|
||||
if (selectEvalData?.reserveStatus == "1") {//预约了评标室
|
||||
params.reserveStatus = 1;
|
||||
const evalRoomReserveVO = {
|
||||
...selectEvalData,
|
||||
reserveStartDate: params.startTime,
|
||||
reserveEndDate: params.endTime,
|
||||
reserveSectionList: juryRoomList.map((item: any) => ({ sectionId: item.sectionId, assessRoomId: item.roomId })),
|
||||
}
|
||||
params["evalRoomReserveVO"] = evalRoomReserveVO;
|
||||
}
|
||||
if (pass) {
|
||||
const success = await saveG(params);
|
||||
if (success) {
|
||||
@ -827,6 +886,16 @@ const JudgingPanel: React.FC<{}> = () => {
|
||||
{ title: '工作单位', dataIndex: 'workunit', },
|
||||
{ title: '通知状态', dataIndex: 'status', },
|
||||
{ title: '通知结果备注', dataIndex: 'remark', },
|
||||
{
|
||||
title: '照片',
|
||||
dataIndex: 'faceId',
|
||||
render: (_, record) => {
|
||||
if (record.faceId) {
|
||||
return <a onClick={() => downloadFile({ uid: record.faceId })}>{record.name}</a>
|
||||
};
|
||||
return '-';
|
||||
}
|
||||
},
|
||||
{
|
||||
title: '操作', dataIndex: 'option', width: 180,
|
||||
valueType: 'option',
|
||||
@ -1148,7 +1217,7 @@ const JudgingPanel: React.FC<{}> = () => {
|
||||
onClose={() => {
|
||||
setAdd(false);
|
||||
changeBtnSet(true);
|
||||
formMem.resetFields();
|
||||
// formMem.resetFields();
|
||||
}}
|
||||
visible={add}
|
||||
getContainer={false}
|
||||
@ -1215,6 +1284,19 @@ const JudgingPanel: React.FC<{}> = () => {
|
||||
>
|
||||
<Input style={{ width: "60%" }} />
|
||||
</FormItem></Col></Row>
|
||||
<Form.Item label="照片" style={{ marginBottom: 0 }}>
|
||||
<Form.Item
|
||||
name="faceId"
|
||||
style={{ display: 'inline-block', width: '60%' }}
|
||||
>
|
||||
<ExpertPhotoUpload maxSize={60} />
|
||||
</Form.Item>
|
||||
<Form.Item
|
||||
style={{ display: 'inline-block', width: '40%', position: "relative", right: '24%' }}
|
||||
>
|
||||
<Button type='primary' onClick={() => getExpertPhoto()}>获取照片</Button>
|
||||
</Form.Item>
|
||||
</Form.Item>
|
||||
{/* <Row><Col span={24}><FormItem
|
||||
name="type"
|
||||
label="通知方式"
|
||||
@ -1536,6 +1618,41 @@ const JudgingPanel: React.FC<{}> = () => {
|
||||
memberCountSet(memberCount + 1);
|
||||
}
|
||||
|
||||
//评标室预约回调
|
||||
const returnEvalData = (value: any) => {
|
||||
setSelectEvalVisible(false);
|
||||
setSelectEvalDisabled(false);
|
||||
setSelectEvalData(value);
|
||||
form.setFieldsValue({
|
||||
startTime: value.reserveStartDate,
|
||||
endTime: value.reserveEndDate,
|
||||
evalLocation: value.areaAddress,
|
||||
reserveBy: value.reserveBy,
|
||||
reserveContactNumber: value.reserveContactNumber,
|
||||
})
|
||||
}
|
||||
//评标室预约-选择评标室
|
||||
const selectEvalClick = () => {
|
||||
setAppoType("0");
|
||||
setSelectEvalVisible(true);
|
||||
}
|
||||
//录入外部专家-获取照片
|
||||
const getExpertPhoto = () => {
|
||||
formMem.validateFields(["certificate"]).then(value => {
|
||||
getUserPhoto(value.certificate).then(res => {//获取照片
|
||||
if (res?.code == 200) {
|
||||
const data = res?.data;
|
||||
if (data) {
|
||||
formMem.setFieldsValue({ faceId: data });
|
||||
message.info("获取专家照片成功");
|
||||
} else {
|
||||
message.info("当前专家无照片,请上传");
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
return (
|
||||
<div className='bgCWhite' style={{ padding: '24px' }}>
|
||||
<Spin spinning={spin}>
|
||||
@ -1546,6 +1663,7 @@ const JudgingPanel: React.FC<{}> = () => {
|
||||
setModalVis(true);
|
||||
// form.resetFields();
|
||||
reset();
|
||||
setSelectEvalData(null);
|
||||
disabledSet(false); readOnlySet(false);
|
||||
}}>创建评审小组</Button>
|
||||
<Button style={{ marginLeft: '10px' }} onClick={() => { history.push(getRoomReturnURL()) }}>返回</Button>
|
||||
@ -1607,6 +1725,8 @@ const JudgingPanel: React.FC<{}> = () => {
|
||||
}}
|
||||
data={riskData}
|
||||
/>}
|
||||
{/**电子评标室-评标室预约选择 */}
|
||||
<BidEvalAppointment modalVisible={selectEvalVisible} onCancel={() => setSelectEvalVisible(false)} onSubmit={(value: any) => returnEvalData(value)} values={selectEvalData} type={appoType} reload={() => actionRef.current?.reload()} />
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
Reference in New Issue
Block a user