8.26
This commit is contained in:
@ -2,10 +2,12 @@
|
||||
.common {
|
||||
padding: 0px 24px;
|
||||
}
|
||||
|
||||
//操作栏颜色
|
||||
.operation {
|
||||
// margin-right: 8px;
|
||||
}
|
||||
|
||||
// .card-title-button .ant-card-head-title {
|
||||
// padding: 10px 0px;
|
||||
// }
|
||||
@ -17,15 +19,18 @@
|
||||
color: #b30000;
|
||||
// margin-right: 8px;
|
||||
}
|
||||
|
||||
.revenue .ant-tabs-content-holder {
|
||||
margin-top: 0px;
|
||||
}
|
||||
.revenue .ant-tabs-top > .ant-tabs-nav,
|
||||
.ant-tabs-bottom > .ant-tabs-nav,
|
||||
.ant-tabs-top > div > .ant-tabs-nav,
|
||||
.ant-tabs-bottom > div > .ant-tabs-nav {
|
||||
|
||||
.revenue .ant-tabs-top>.ant-tabs-nav,
|
||||
.ant-tabs-bottom>.ant-tabs-nav,
|
||||
.ant-tabs-top>div>.ant-tabs-nav,
|
||||
.ant-tabs-bottom>div>.ant-tabs-nav {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
// .ant-pro-card-body {
|
||||
// padding: 0;
|
||||
// }
|
||||
@ -33,17 +38,21 @@
|
||||
.confirm .ant-pro-table .ant-pro-table-search {
|
||||
padding: 16px 0px 0px 0px;
|
||||
}
|
||||
|
||||
.notice .ant-pro-table-list-toolbar-container {
|
||||
padding: 0px 0px 16px;
|
||||
}
|
||||
|
||||
.erf-title-flex {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.erf-title-left {
|
||||
height: 32px;
|
||||
line-height: 32px;
|
||||
}
|
||||
|
||||
.erf-delete {
|
||||
color: #1890ff !important;
|
||||
background: rgba(0, 0, 0, 0) !important;
|
||||
@ -55,6 +64,7 @@
|
||||
font-weight: 600;
|
||||
line-height: 56px;
|
||||
}
|
||||
|
||||
.CM_span {
|
||||
text-indent: 2em;
|
||||
// line-height: 24px;
|
||||
@ -79,10 +89,12 @@
|
||||
float: left;
|
||||
line-height: 44px;
|
||||
}
|
||||
|
||||
//日历组件专用样式
|
||||
.calendar-dashboard .ant-picker-calendar .ant-picker-panel .ant-picker-body {
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
.calendar-dashboard .ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date {
|
||||
margin: 0 0 1px 1px;
|
||||
padding: 0px 8px 0px;
|
||||
@ -93,6 +105,7 @@
|
||||
border-right: 1px solid #f0f0f0;
|
||||
border-radius: 0px
|
||||
}
|
||||
|
||||
.calendar-dashboard .ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-content {
|
||||
position: static;
|
||||
width: auto;
|
||||
@ -102,34 +115,42 @@
|
||||
color: rgba(0, 0, 0, 0.85);
|
||||
line-height: 1.5715;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
.calendar-dashboard .ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected .ant-picker-calendar-date,
|
||||
.calendar-dashboard .ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected:hover .ant-picker-calendar-date,
|
||||
.calendar-dashboard .ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected .ant-picker-calendar-date-today,
|
||||
.calendar-dashboard .ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected:hover .ant-picker-calendar-date-today {
|
||||
background: #fff1f0;
|
||||
}
|
||||
|
||||
.calendar-dashboard .ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-today {
|
||||
border-color: #b30000;
|
||||
}
|
||||
|
||||
.calendar-dashboard .ant-picker-calendar-full .ant-picker-panel .ant-picker-body th {
|
||||
padding: 0 0px 5px 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.calendar-dashboard .ant-picker-calendar-full .ant-picker-panel .ant-picker-body td {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.calendar-dashboard .ant-tag {
|
||||
margin-right: 0px;
|
||||
line-height: 19px;
|
||||
}
|
||||
|
||||
.calendar-dashboard .ant-picker-cell {
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.notice-detail-html p {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.notice-detail-file {
|
||||
font-size: 17px;
|
||||
color: #7c7c7c;
|
||||
@ -138,26 +159,38 @@
|
||||
top: 5px;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.notice-detail-noticefile {
|
||||
margin-top: 20px;
|
||||
|
||||
.ant-spin-nested-loading {
|
||||
display: inline-block;
|
||||
}
|
||||
}
|
||||
|
||||
.baseinf-top {
|
||||
background-color: #ffffff;
|
||||
padding: 20px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.baseinf-bottom-btn {
|
||||
margin-top: 40px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.calibration-panel {
|
||||
.ant-collapse-content-box {
|
||||
padding: 0px 16px;
|
||||
}
|
||||
}
|
||||
|
||||
.question-form .ant-space {
|
||||
min-width: 50%;
|
||||
}
|
||||
|
||||
.table-no-alert {
|
||||
.ant-pro-table-alert {
|
||||
display: none;
|
||||
}
|
||||
}
|
249
src/components/ElecBidEvaluation/BidEvalAppointment.tsx
Normal file
249
src/components/ElecBidEvaluation/BidEvalAppointment.tsx
Normal file
@ -0,0 +1,249 @@
|
||||
import React, { useEffect, useRef, useState } from 'react';
|
||||
import { Col, DatePicker, Form, Input, message, Modal, Row } from 'antd';
|
||||
import ProTable, { ActionType, ProColumns } from '@ant-design/pro-table';
|
||||
import { getBidEvalRoom } from './service';
|
||||
import { dateFormat, disabledDate, disabledDateTime, validateMessages } from './MeetingReservation';
|
||||
import moment from 'moment';
|
||||
import { dateTimeFormatter } from '@/utils/DateUtils';
|
||||
|
||||
interface BidEvalAppointmentProps {
|
||||
modalVisible: boolean;
|
||||
onCancel: () => void;
|
||||
onSubmit: (value: any) => void;
|
||||
values: any;
|
||||
}
|
||||
|
||||
export const proviceEnum = {
|
||||
"0011": "北京",
|
||||
"0012": "天津",
|
||||
"0013": "河北",
|
||||
"0014": "山西",
|
||||
"0015": "内蒙古",
|
||||
"0021": "辽宁",
|
||||
"0022": "吉林",
|
||||
"0023": "黑龙江",
|
||||
"0031": "上海",
|
||||
"0032": "江苏",
|
||||
"0033": "浙江",
|
||||
"0034": "安徽",
|
||||
"0035": "福建",
|
||||
"0036": "江西",
|
||||
"0037": "山东",
|
||||
"0041": "河南",
|
||||
"0042": "湖北",
|
||||
"0043": "湖南",
|
||||
"0044": "广东",
|
||||
"0045": "广西",
|
||||
"0046": "海南",
|
||||
"0050": "重庆",
|
||||
"0051": "四川",
|
||||
"0052": "贵州",
|
||||
"0053": "云南",
|
||||
"0054": "西藏",
|
||||
"0061": "陕西",
|
||||
"0062": "甘肃",
|
||||
"0063": "青海",
|
||||
"0064": "宁夏",
|
||||
"0065": "新疆",
|
||||
"001000": "集团"
|
||||
}
|
||||
|
||||
const modalHeight = window.innerHeight * 96 / 100;
|
||||
|
||||
const BidEvalAppointment: React.FC<BidEvalAppointmentProps> = (props) => {
|
||||
const { modalVisible, onCancel, onSubmit, values } = props;
|
||||
const actionRef = useRef<ActionType>();
|
||||
const [form] = Form.useForm();
|
||||
//当前选择行areaId
|
||||
const [selectedRowKeys, setSelectedRowKeys] = useState<React.Key[]>([]);
|
||||
//当前选择行数据
|
||||
const [selectedRecord, setSelectedRecord] = useState<any>();
|
||||
const columns: ProColumns<any>[] = [
|
||||
{
|
||||
valueType: 'index',
|
||||
width: 48,
|
||||
},
|
||||
{
|
||||
title: '评标室名称',
|
||||
dataIndex: 'areaName',
|
||||
ellipsis: true,
|
||||
},
|
||||
{
|
||||
title: '服务省分',
|
||||
dataIndex: 'provinceDictId',
|
||||
ellipsis: true,
|
||||
valueEnum: proviceEnum,
|
||||
hideInSearch: true,
|
||||
},
|
||||
{
|
||||
title: '详细地址',
|
||||
dataIndex: 'areaAddress',
|
||||
ellipsis: true,
|
||||
hideInSearch: true,
|
||||
},
|
||||
{
|
||||
title: '可容纳人数',
|
||||
dataIndex: 'areaNumber',
|
||||
ellipsis: true,
|
||||
hideInSearch: true,
|
||||
},
|
||||
{
|
||||
title: '联系人',
|
||||
dataIndex: 'contactName',
|
||||
ellipsis: true,
|
||||
hideInSearch: true,
|
||||
}, {
|
||||
title: '联系电话',
|
||||
dataIndex: 'contactTel',
|
||||
ellipsis: true,
|
||||
hideInSearch: true,
|
||||
},
|
||||
];
|
||||
|
||||
const onOk = () => {
|
||||
if (selectedRowKeys.length == 0) {
|
||||
message.info("请选择评标室");
|
||||
return;
|
||||
}
|
||||
form.validateFields().then(value => {
|
||||
if (value.reserveStartDate < moment().format(dateTimeFormatter)) {
|
||||
message.info("开始时间不可早于当前时间");
|
||||
return;
|
||||
}
|
||||
value["areaId"] = selectedRecord.id;
|
||||
value["placeId"] = selectedRecord.placeId;
|
||||
value["evalLocation"] = selectedRecord.areaName;
|
||||
onSubmit(value);
|
||||
})
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
if (values) {
|
||||
if (values?.areaId) {
|
||||
setSelectedRowKeys([values.areaId])
|
||||
setSelectedRecord({
|
||||
...values,
|
||||
id: values.areaId,
|
||||
})
|
||||
}
|
||||
form.setFieldsValue({
|
||||
...values,
|
||||
})
|
||||
}
|
||||
return () => {
|
||||
setSelectedRowKeys([]);
|
||||
setSelectedRecord(void 0);
|
||||
}
|
||||
}, [values])
|
||||
|
||||
return (
|
||||
<Modal
|
||||
destroyOnClose
|
||||
title="选择评标室"
|
||||
visible={modalVisible}
|
||||
maskClosable={false}
|
||||
onCancel={() => onCancel()}
|
||||
onOk={() => onOk()}
|
||||
okText="确认"
|
||||
width={"70%"}
|
||||
style={{ maxHeight: modalHeight }}
|
||||
bodyStyle={{ maxHeight: modalHeight - 107, overflowY: 'auto', }}
|
||||
className="confirm table-no-alert"
|
||||
centered
|
||||
>
|
||||
<ProTable<any>
|
||||
columns={columns}
|
||||
actionRef={actionRef}
|
||||
bordered={false}
|
||||
request={async (params: any) => {
|
||||
return await getBidEvalRoom(params).then(res => {
|
||||
if (res?.code == 200) {
|
||||
return {
|
||||
data: res?.data.records,
|
||||
success: res?.success,
|
||||
total: res?.data.total,
|
||||
}
|
||||
} else {
|
||||
return {
|
||||
data: [],
|
||||
success: false,
|
||||
total: 0,
|
||||
}
|
||||
}
|
||||
})
|
||||
}}
|
||||
rowKey="id"
|
||||
search={{
|
||||
labelWidth: 'auto',
|
||||
}}
|
||||
options={false}
|
||||
pagination={{
|
||||
size: "small",
|
||||
defaultPageSize: 10,
|
||||
showSizeChanger: true,
|
||||
}}
|
||||
rowSelection={{
|
||||
type: "radio",
|
||||
selectedRowKeys,
|
||||
onChange: (selectedRowKeys, selectedRows) => {
|
||||
setSelectedRowKeys(selectedRowKeys);
|
||||
setSelectedRecord(selectedRows[0]);
|
||||
},
|
||||
}}
|
||||
dateFormatter="string"
|
||||
toolBarRender={false}
|
||||
/>
|
||||
<Form
|
||||
name="basic"
|
||||
form={form}
|
||||
labelCol={{ span: 8 }}
|
||||
wrapperCol={{ span: 16 }}
|
||||
preserve={false}
|
||||
validateMessages={validateMessages}
|
||||
>
|
||||
{selectedRowKeys.length > 0 && (
|
||||
<Row>
|
||||
<Col span={12}>
|
||||
<Form.Item
|
||||
label="预计评标开始时间"
|
||||
name="reserveStartDate"
|
||||
rules={[{ required: true, message: '请选择' }]}
|
||||
>
|
||||
<DatePicker showTime={{ defaultValue: moment().hour(7) }} showNow={false} disabledDate={disabledDate} disabledTime={disabledDateTime} showMinute={false} showSecond={false} format={dateFormat} style={{ width: '100%' }} />
|
||||
</Form.Item>
|
||||
</Col>
|
||||
<Col span={12}>
|
||||
<Form.Item
|
||||
label="预计评标结束时间"
|
||||
name="reserveEndDate"
|
||||
rules={[{ required: true, message: '请选择' }]}
|
||||
>
|
||||
<DatePicker showTime={{ defaultValue: moment().hour(7) }} showNow={false} disabledDate={disabledDate} disabledTime={disabledDateTime} showMinute={false} showSecond={false} format={dateFormat} style={{ width: '100%' }} />
|
||||
</Form.Item>
|
||||
</Col>
|
||||
<Col span={12}>
|
||||
<Form.Item
|
||||
label="预约人"
|
||||
name="reserveBy"
|
||||
rules={[{ required: true }]}
|
||||
>
|
||||
<Input maxLength={20} placeholder="预约人姓名" />
|
||||
</Form.Item>
|
||||
</Col>
|
||||
<Col span={12}>
|
||||
<Form.Item
|
||||
label="预约人联系方式"
|
||||
name="reserveContactNumber"
|
||||
rules={[{ required: true }]}
|
||||
>
|
||||
<Input type="number" maxLength={20} placeholder="预约人手机号" />
|
||||
</Form.Item>
|
||||
</Col>
|
||||
</Row>
|
||||
)}
|
||||
</Form>
|
||||
</Modal>
|
||||
);
|
||||
};
|
||||
|
||||
export default BidEvalAppointment;
|
@ -18,16 +18,26 @@ const layout = {
|
||||
labelCol: { span: 7 },
|
||||
wrapperCol: { span: 14 },
|
||||
};
|
||||
const validateMessages = {
|
||||
export const validateMessages = {
|
||||
required: '请填写此项',
|
||||
};
|
||||
const range = (start: number, end: number) => {
|
||||
export const range = (start: number, end: number) => {
|
||||
const result = [];
|
||||
for (let i = start; i < end; i++) {
|
||||
result.push(i);
|
||||
}
|
||||
return result;
|
||||
};
|
||||
//不可选天
|
||||
export function disabledDate(current: any) {
|
||||
return current && current < moment().startOf('day');
|
||||
}
|
||||
//不可选小时
|
||||
export const disabledDateTime = () => ({
|
||||
disabledHours: () => [...range(0, 7), ...range(19, 24)],
|
||||
});
|
||||
//时间选择框日期格式化
|
||||
export const dateFormat: DatePickerProps['format'] = value => value?.startOf('hour').format('YYYY-MM-DD HH:mm:ss');
|
||||
/**
|
||||
* 评标室预约管理-会议室预约弹窗
|
||||
* @param props
|
||||
@ -67,16 +77,7 @@ const MeetingReservation: React.FC<MeetingReservationProps> = (props) => {
|
||||
setLoading(false);
|
||||
})
|
||||
};
|
||||
//不可选天
|
||||
function disabledDate(current: any) {
|
||||
return current && current < moment().startOf('day');
|
||||
}
|
||||
//不可选小时
|
||||
const disabledDateTime = () => ({
|
||||
disabledHours: () => [...range(0, 7), ...range(19, 24)],
|
||||
});
|
||||
//时间选择框日期格式化
|
||||
const dateFormat: DatePickerProps['format'] = value => value?.startOf('hour').format('YYYY-MM-DD HH:mm:ss');
|
||||
|
||||
//获取预约信息
|
||||
const getMeetData = () => {
|
||||
setSkeleing(true);
|
||||
|
@ -26,4 +26,18 @@ export async function cancelMeeting(id: any) {
|
||||
return request('/api/biz-service-ebtp-evaluation/v1/eval/room/reserve/cancel/' + id, {
|
||||
method: 'GET',
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 评标室预约-查询评标室
|
||||
* @params data
|
||||
*/
|
||||
export async function getBidEvalRoom(data: any) {
|
||||
return request('/api/biz-service-ebtp-evaluation/v1/elec/eval/area/page/list', {
|
||||
method: 'POST',
|
||||
data: {
|
||||
...data,
|
||||
pageNo: data.current,
|
||||
},
|
||||
});
|
||||
}
|
@ -11,6 +11,7 @@ import FileDown from '@/utils/Download';
|
||||
import { UploadOutlined } from '@ant-design/icons';
|
||||
import { btnAuthority } from '@/utils/authority';
|
||||
import RiskPrevention from '@/utils/RiskPrevention';
|
||||
import BidEvalAppointment from '@/components/ElecBidEvaluation/BidEvalAppointment';
|
||||
|
||||
const JudgingPanel: React.FC<{}> = () => {
|
||||
const modalHeight = window.innerHeight * 96 / 100;
|
||||
@ -43,6 +44,9 @@ 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
|
||||
function getShouName() {
|
||||
const method = getProMethod();
|
||||
let showNameT: any = { zbr: '', bb: '', pb: '', }//相关标段 标书费 保证金 服务费
|
||||
@ -72,7 +76,7 @@ const JudgingPanel: React.FC<{}> = () => {
|
||||
const hide = message.loading('正在配置');
|
||||
try {
|
||||
const success = await saveGroup({ ...fields }).then((res) => {
|
||||
if(res?.code == 4004 && res?.success == false) { //2021.9.7 zhoujianlong 新增评委会保存增加风控
|
||||
if (res?.code == 4004 && res?.success == false) { //2021.9.7 zhoujianlong 新增评委会保存增加风控
|
||||
const data = res?.data?.result == undefined ? [] : res?.data?.result
|
||||
setRiskData(data)
|
||||
setRiskVisible(true)
|
||||
@ -673,6 +677,20 @@ const JudgingPanel: React.FC<{}> = () => {
|
||||
}}>{display ? '自行输入' : '选择分类'}</Button>
|
||||
</Row>
|
||||
} */}
|
||||
<FormItem
|
||||
name="placeId"
|
||||
label="场所id"
|
||||
hidden
|
||||
>
|
||||
<Input />
|
||||
</FormItem>
|
||||
<FormItem
|
||||
name="areaId"
|
||||
label="区域Id"
|
||||
hidden
|
||||
>
|
||||
<Input />
|
||||
</FormItem>
|
||||
<Row>
|
||||
<Col span={12}><FormItem
|
||||
name="representativeNumber"
|
||||
@ -688,8 +706,29 @@ const JudgingPanel: React.FC<{}> = () => {
|
||||
>
|
||||
<Input style={{ width: "90%" }} disabled={disabled} />
|
||||
</FormItem></Col>
|
||||
</Row>
|
||||
<Row>
|
||||
<Col span={12}>
|
||||
<Form.Item label={`${showName.pb}地点`} style={{ marginBottom: 0 }} required>
|
||||
<FormItem
|
||||
name="evalLocation"
|
||||
rules={[...rule(`${showName.pb}地点`), { 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={`预计${showName.pb}开始时间`}
|
||||
@ -701,6 +740,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
|
||||
@ -714,23 +754,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={`${showName.pb}地点`}
|
||||
rules={[...rule(`${showName.pb}地点`), { type: 'string', message: '请输入正确内容' }, { max: 100, message: '内容超长' }]}
|
||||
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="申请要求"
|
||||
rules={[{ type: 'string', message: '请输入正确内容' }, { max: 100, message: '内容超长' }]}
|
||||
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>
|
||||
<h3 className="first-title">关联{showName.bb}</h3>
|
||||
@ -1657,7 +1696,29 @@ const JudgingPanel: React.FC<{}> = () => {
|
||||
dataSet(dataTem, type);
|
||||
memberCountSet(memberCount + 1);
|
||||
}
|
||||
|
||||
//评标室预约回调
|
||||
const returnEvalData = (value: any) => {
|
||||
setSelectEvalVisible(false);
|
||||
setSelectEvalDisabled(false);
|
||||
form.setFieldsValue({
|
||||
startTime: value.reserveStartDate,
|
||||
endTime: value.reserveEndDate,
|
||||
evalLocation: value.evalLocation,
|
||||
reserveBy: value.reserveBy,
|
||||
reserveContactNumber: value.reserveContactNumber,
|
||||
areaId: value.areaId,
|
||||
placeId: value.placeId,
|
||||
})
|
||||
}
|
||||
//评标室预约-选择评标室
|
||||
const selectEvalClick = () => {
|
||||
const data = form.getFieldsValue();
|
||||
data["reserveStartDate"] = data.startTime;
|
||||
data["reserveEndDate"] = data.endTime;
|
||||
console.log("data", data)
|
||||
setSelectEvalData(data);
|
||||
setSelectEvalVisible(true);
|
||||
}
|
||||
return (
|
||||
<div className='bgCWhite' style={{ padding: '0px 24px 24px' }}>
|
||||
<Spin spinning={spin}>
|
||||
@ -1715,7 +1776,7 @@ const JudgingPanel: React.FC<{}> = () => {
|
||||
{group()}
|
||||
{member()}
|
||||
{/**风控组件 */}
|
||||
{riskVisible && <RiskPrevention
|
||||
{riskVisible && <RiskPrevention
|
||||
modalVisible={riskVisible}
|
||||
onCancel={() => {
|
||||
setRiskVisible(false)
|
||||
@ -1723,6 +1784,8 @@ const JudgingPanel: React.FC<{}> = () => {
|
||||
}}
|
||||
data={riskData}
|
||||
/>}
|
||||
{/**电子评标室-评标室预约选择 */}
|
||||
<BidEvalAppointment modalVisible={selectEvalVisible} onCancel={() => setSelectEvalVisible(false)} onSubmit={(value: any) => returnEvalData(value)} values={selectEvalData} />
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
Reference in New Issue
Block a user