9.14 修改9.9问题
This commit is contained in:
@ -1,7 +1,7 @@
|
||||
import React, { useEffect, useState } from 'react';
|
||||
import { Button, DatePicker, DatePickerProps, Form, Input, message, Modal, Select, Skeleton, Spin } from 'antd';
|
||||
import moment from 'moment'
|
||||
import { cancelMeeting, getMeetingData, saveMeeting } from './service';
|
||||
import { cancelMeeting, getMeetingData, saveAppointmentEdit, saveMeeting } from './service';
|
||||
import { isNotEmpty } from '@/utils/CommonUtils';
|
||||
import { ExclamationCircleOutlined } from '@ant-design/icons';
|
||||
import { dateTimeFormatter, echoDateTimeFormatter } from '@/utils/DateUtils';
|
||||
@ -36,6 +36,20 @@ export function disabledDate(current: any) {
|
||||
export const disabledDateTime = () => ({
|
||||
disabledHours: () => [...range(0, 7), ...range(19, 24)],
|
||||
});
|
||||
//不可选小时(额外不可选)
|
||||
export const otherDisabledDateTime = (current: any, disabledMap: any) => {
|
||||
let otherHour: any[] = range(0, 24);
|
||||
if (current) {
|
||||
otherHour = [];
|
||||
if (Object.keys(disabledMap).length != 0) {
|
||||
const time = moment(current).format("yyyy-MM-DD");
|
||||
disabledMap[time] && (otherHour = [...disabledMap[time]]);
|
||||
}
|
||||
}
|
||||
return ({
|
||||
disabledHours: () => [...range(0, 7), ...range(19, 24), ...otherHour],
|
||||
})
|
||||
};
|
||||
//时间选择框日期格式化
|
||||
export const dateFormat: DatePickerProps['format'] = value => value?.startOf('hour').format('YYYY-MM-DD HH:mm:ss');
|
||||
/**
|
||||
@ -59,9 +73,10 @@ const MeetingReservation: React.FC<MeetingReservationProps> = (props) => {
|
||||
const [meetType, setMeetType] = useState<string>("meeting");
|
||||
//会议室预约是否可修改 true-不可修改 false-可修改
|
||||
const [isEditMeet, setIsEditMeet] = useState<boolean>(false);
|
||||
//存一份预约数据
|
||||
const [meetingData, setMeetingData] = useState<any>();
|
||||
|
||||
const onFinish = (values: any) => {
|
||||
console.log(values);
|
||||
if (values.reserveStartDate < moment().format(dateTimeFormatter)) {
|
||||
message.info("开始时间不可早于当前时间");
|
||||
return;
|
||||
@ -70,14 +85,25 @@ const MeetingReservation: React.FC<MeetingReservationProps> = (props) => {
|
||||
params.reserveStartDate = moment(params.reserveStartDate).format(dateTimeFormatter);
|
||||
params.reserveEndDate = moment(params.reserveEndDate).format(dateTimeFormatter);
|
||||
setLoading(true);
|
||||
saveMeeting(params).then(res => {
|
||||
if (res?.code == 200) {
|
||||
message.success("保存成功");
|
||||
onSubmit && onSubmit();
|
||||
}
|
||||
}).finally(() => {
|
||||
setLoading(false);
|
||||
})
|
||||
if (meetType == "meeting") {//会议室保存
|
||||
saveMeeting(params).then(res => {
|
||||
if (res?.code == 200) {
|
||||
message.success("保存成功");
|
||||
onSubmit && onSubmit();
|
||||
}
|
||||
}).finally(() => {
|
||||
setLoading(false);
|
||||
})
|
||||
} else {
|
||||
saveAppointmentEdit({ ...meetingData, ...params }).then(res => {//评标室保存
|
||||
if (res?.code == 200) {
|
||||
message.success("保存成功");
|
||||
onSubmit && onSubmit();
|
||||
}
|
||||
}).finally(() => {
|
||||
setLoading(false);
|
||||
})
|
||||
}
|
||||
};
|
||||
|
||||
//获取预约信息
|
||||
@ -87,8 +113,9 @@ const MeetingReservation: React.FC<MeetingReservationProps> = (props) => {
|
||||
if (res?.code == 200) {
|
||||
setSkeleing(false);
|
||||
const data = res?.data;
|
||||
const isEdit: boolean = data.reserveStartDate <= moment().format(dateTimeFormatter);
|
||||
const isEdit: boolean = data.reserveType == "meeting" ? data.reserveStartDate <= moment().format(dateTimeFormatter) : data.status != 0;
|
||||
setIsEditMeet(isEdit);
|
||||
setMeetingData(data);
|
||||
setMeetType(data.reserveType);//变更窗口类型
|
||||
if (data.reserveType == "meeting") {
|
||||
data.reserveStartDate = echoDateTimeFormatter(data.reserveStartDate);
|
||||
@ -117,6 +144,16 @@ const MeetingReservation: React.FC<MeetingReservationProps> = (props) => {
|
||||
onCancel() { },
|
||||
});
|
||||
}
|
||||
|
||||
const editMeeting = () => {
|
||||
if (meetType == "eval") {//评标室预约修改
|
||||
const data = JSON.parse(JSON.stringify(meetingData));//深拷贝
|
||||
data.reserveStartDate = echoDateTimeFormatter(data.reserveStartDate);
|
||||
data.reserveEndDate = echoDateTimeFormatter(data.reserveEndDate);
|
||||
form.setFieldsValue(data);
|
||||
}
|
||||
setModalStatus("1");
|
||||
}
|
||||
useEffect(() => {
|
||||
if (isNotEmpty(meetId)) {
|
||||
getMeetData();
|
||||
@ -135,10 +172,10 @@ const MeetingReservation: React.FC<MeetingReservationProps> = (props) => {
|
||||
<Button key="close" onClick={onCancel}>
|
||||
返回
|
||||
</Button>,
|
||||
<Button key="save" type="primary" onClick={() => form.submit()} hidden={meetType == "eval" || meetType == undefined || modalStatus == "2"}>
|
||||
<Button key="save" type="primary" onClick={() => form.submit()} hidden={meetType == undefined || modalStatus == "2"}>
|
||||
保存
|
||||
</Button>,
|
||||
<Button key="edit" onClick={() => { setModalStatus("1"); }} hidden={meetType == "eval" || meetType == undefined || modalStatus == "1" || modalStatus == "0" || isEditMeet}>
|
||||
<Button key="edit" onClick={() => editMeeting()} hidden={meetType == undefined || modalStatus == "1" || modalStatus == "0" || isEditMeet}>
|
||||
修改预约
|
||||
</Button>,
|
||||
<Button type="primary" key="cancel" hidden={modalStatus == "0"} onClick={() => cancelMeet()}>
|
||||
@ -193,12 +230,25 @@ const MeetingReservation: React.FC<MeetingReservationProps> = (props) => {
|
||||
<Form.Item name="sectionNames" label="标段名称">
|
||||
<TextArea readOnly bordered={false} autoSize />
|
||||
</Form.Item>
|
||||
<Form.Item name="reserveStartDate" label="预计开始时间">
|
||||
<Input readOnly bordered={false} />
|
||||
</Form.Item>
|
||||
<Form.Item name="reserveEndDate" label="预计结束时间">
|
||||
<Input readOnly bordered={false} />
|
||||
</Form.Item>
|
||||
{modalStatus == "2" ? (
|
||||
<>
|
||||
<Form.Item name="reserveStartDate" label="预计开始时间">
|
||||
<Input readOnly bordered={false} />
|
||||
</Form.Item>
|
||||
<Form.Item name="reserveEndDate" label="预计结束时间">
|
||||
<Input readOnly bordered={false} />
|
||||
</Form.Item>
|
||||
</>
|
||||
) : (
|
||||
<>
|
||||
<Form.Item name="reserveStartDate" label="预计开始时间" rules={[{ required: true }]}>
|
||||
<DatePicker showTime={{ defaultValue: moment().hour(7) }} showNow={false} disabledDate={disabledDate} disabledTime={disabledDateTime} showMinute={false} showSecond={false} format={dateFormat} style={{ width: '100%' }} />
|
||||
</Form.Item>
|
||||
<Form.Item name="reserveEndDate" label="预计结束时间" rules={[{ required: true }]}>
|
||||
<DatePicker showTime={{ defaultValue: moment().hour(7) }} showNow={false} disabledDate={disabledDate} disabledTime={disabledDateTime} showMinute={false} showSecond={false} format={dateFormat} style={{ width: '100%' }} />
|
||||
</Form.Item>
|
||||
</>
|
||||
)}
|
||||
<Form.Item name="reserveBy" label="预约人">
|
||||
<Input readOnly bordered={false} />
|
||||
</Form.Item>
|
||||
|
Reference in New Issue
Block a user