|
|
|
@ -1,5 +1,5 @@
|
|
|
|
|
import { useState, useEffect } from "react";
|
|
|
|
|
import { Grid, Divider, Layout, Form, Input, Col, Row, Space, Collapse, Table, Button } from "antd";
|
|
|
|
|
import { Grid, Divider, Layout, Modal, Form, Input, Col, Row, Space, Collapse, Table, Button, Select, InputNumber, Typography } from "antd";
|
|
|
|
|
import { PhoneOutlined, CustomerServiceOutlined, AudioOutlined, ArrowUpOutlined, ArrowDownOutlined } from "@ant-design/icons";
|
|
|
|
|
import { useParams, useHref, useNavigate, NavLink } from "react-router-dom";
|
|
|
|
|
import { isEmpty, formatColonTime } from "@/utils/commons";
|
|
|
|
@ -15,14 +15,96 @@ const AirticketPlan = props => {
|
|
|
|
|
const reservationUrl = `https://p9axztuwd7x8a7.mycht.cn/Service_BaseInfoWeb/FlightPlanDocx?GRI_SN=${coli_sn}&VEI_SN=${travelAgencyId}`;
|
|
|
|
|
const reservationPreviewUrl = OFFICEWEBVIEWERURL + encodeURIComponent(reservationUrl);
|
|
|
|
|
|
|
|
|
|
console.log(reservationPreviewUrl);
|
|
|
|
|
// console.log(reservationPreviewUrl);
|
|
|
|
|
|
|
|
|
|
//乘客列表
|
|
|
|
|
const guestListColumns = [
|
|
|
|
|
{
|
|
|
|
|
title: "姓名",
|
|
|
|
|
key: "MEI_Name",
|
|
|
|
|
dataIndex: "MEI_Name",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "证件类型",
|
|
|
|
|
key: "MEI_PassportType",
|
|
|
|
|
dataIndex: "MEI_PassportType",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "证件号",
|
|
|
|
|
key: "MEI_PassportNo",
|
|
|
|
|
dataIndex: "MEI_PassportNo",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "证件有效期",
|
|
|
|
|
key: "MEI_PassportValidDate",
|
|
|
|
|
dataIndex: "MEI_PassportValidDate",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "性别",
|
|
|
|
|
key: "MEI_Gender",
|
|
|
|
|
dataIndex: "MEI_Gender",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "年龄",
|
|
|
|
|
key: "MEI_age",
|
|
|
|
|
dataIndex: "MEI_age",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "国籍",
|
|
|
|
|
key: "MEI_Country",
|
|
|
|
|
dataIndex: "MEI_Country",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "票号",
|
|
|
|
|
key: "MEI_SN",
|
|
|
|
|
dataIndex: "MEI_SN",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "PNR",
|
|
|
|
|
key: "MEI_SN",
|
|
|
|
|
dataIndex: "MEI_SN",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "机票费用(RMB)含基建和税",
|
|
|
|
|
key: "MEI_SN",
|
|
|
|
|
dataIndex: "MEI_SN",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "折扣",
|
|
|
|
|
key: "MEI_SN",
|
|
|
|
|
dataIndex: "MEI_SN",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "手续费",
|
|
|
|
|
key: "MEI_SN",
|
|
|
|
|
dataIndex: "MEI_SN",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "机票类型(成人/儿童/婴儿)",
|
|
|
|
|
key: "MEI_SN",
|
|
|
|
|
dataIndex: "MEI_SN",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "操作",
|
|
|
|
|
key: "MEI_SN",
|
|
|
|
|
dataIndex: "MEI_SN",
|
|
|
|
|
render: (_, record) => {
|
|
|
|
|
return (
|
|
|
|
|
<span>
|
|
|
|
|
<Typography.Link onClick={() => showModal(record)}>编辑</Typography.Link> | <Typography.Link onClick={() => console.log("del")}>删除</Typography.Link>
|
|
|
|
|
</span>
|
|
|
|
|
);
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
const Airticket_form = props => {
|
|
|
|
|
const aitInfo = props.airInfo;
|
|
|
|
|
return (
|
|
|
|
|
<>
|
|
|
|
|
<Form
|
|
|
|
|
name="basic"
|
|
|
|
|
component={false}
|
|
|
|
|
name={"ticket_form_" + aitInfo.id}
|
|
|
|
|
labelCol={{
|
|
|
|
|
span: 8,
|
|
|
|
|
}}
|
|
|
|
@ -38,18 +120,15 @@ const AirticketPlan = props => {
|
|
|
|
|
// onFinish={onFinish}
|
|
|
|
|
// onFinishFailed={onFinishFailed}
|
|
|
|
|
autoComplete="off">
|
|
|
|
|
<Form.Item label="日期" name="username" rules={[{ required: true }]}>
|
|
|
|
|
<Input value={aitInfo.StartDate} />
|
|
|
|
|
</Form.Item>
|
|
|
|
|
|
|
|
|
|
<Form.Item label="城市" name="password" rules={[{ required: true }]}>
|
|
|
|
|
<Space.Compact>
|
|
|
|
|
<Input placeholder="出发" prefix={<ArrowUpOutlined />} value={aitInfo.FromCity} />
|
|
|
|
|
<Input placeholder="抵达" prefix={<ArrowDownOutlined />} value={aitInfo.ToCity} />
|
|
|
|
|
</Space.Compact>
|
|
|
|
|
</Form.Item>
|
|
|
|
|
<Form.Item label="航班" name="password" rules={[{ required: true }]}>
|
|
|
|
|
<Form.Item label="日期和航班" name="username" rules={[{ required: true }]}>
|
|
|
|
|
<Space.Compact>
|
|
|
|
|
<Input value={aitInfo.StartDate} />
|
|
|
|
|
<Input placeholder="航空公司" />
|
|
|
|
|
<Input placeholder="航班号" value={aitInfo.FlightNo} />
|
|
|
|
|
</Space.Compact>
|
|
|
|
@ -74,18 +153,24 @@ const AirticketPlan = props => {
|
|
|
|
|
<Input placeholder="行李" />
|
|
|
|
|
</Space.Compact>
|
|
|
|
|
</Form.Item>
|
|
|
|
|
{/* <Form.Item
|
|
|
|
|
<Form.Item
|
|
|
|
|
wrapperCol={{
|
|
|
|
|
offset: 8,
|
|
|
|
|
offset: 14,
|
|
|
|
|
span: 16,
|
|
|
|
|
}}>
|
|
|
|
|
<Button type="primary" htmlType="submit">
|
|
|
|
|
Submit
|
|
|
|
|
</Button>
|
|
|
|
|
</Form.Item> */}
|
|
|
|
|
<Space>
|
|
|
|
|
<Button type="primary" htmlType="submit">
|
|
|
|
|
保存机票信息
|
|
|
|
|
</Button>
|
|
|
|
|
<Button type="dashed" htmlType="submit">
|
|
|
|
|
添加出票信息和费用
|
|
|
|
|
</Button>
|
|
|
|
|
</Space>
|
|
|
|
|
</Form.Item>
|
|
|
|
|
|
|
|
|
|
<Divider orientation="left">费用列表</Divider>
|
|
|
|
|
<Table bordered={true} rowKey="id" columns={guestListColumns} dataSource={guestList} loading={loading} pagination={false} />
|
|
|
|
|
</Form>
|
|
|
|
|
<Divider />
|
|
|
|
|
<Table bordered={true} rowKey="id" columns={guestListColumns} dataSource={guestList} loading={loading} pagination={false} />
|
|
|
|
|
</>
|
|
|
|
|
);
|
|
|
|
|
};
|
|
|
|
@ -102,73 +187,146 @@ const AirticketPlan = props => {
|
|
|
|
|
: [];
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const guestListColumns = [
|
|
|
|
|
{
|
|
|
|
|
title: "姓名",
|
|
|
|
|
key: "MEI_Name",
|
|
|
|
|
dataIndex: "MEI_Name",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "证件类型",
|
|
|
|
|
key: "MEI_PassportType",
|
|
|
|
|
dataIndex: "MEI_PassportType",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "证件号",
|
|
|
|
|
key: "MEI_PassportNo",
|
|
|
|
|
dataIndex: "MEI_PassportNo",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "证件有效期",
|
|
|
|
|
key: "MEI_PassportValidDate",
|
|
|
|
|
dataIndex: "MEI_PassportValidDate",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "性别",
|
|
|
|
|
key: "MEI_Gender",
|
|
|
|
|
dataIndex: "MEI_Gender",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "年龄",
|
|
|
|
|
key: "MEI_age",
|
|
|
|
|
dataIndex: "MEI_age",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "国籍",
|
|
|
|
|
key: "MEI_Country",
|
|
|
|
|
dataIndex: "MEI_Country",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "票号",
|
|
|
|
|
key: "MEI_SN",
|
|
|
|
|
dataIndex: "MEI_SN",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "PNR",
|
|
|
|
|
key: "MEI_SN",
|
|
|
|
|
dataIndex: "MEI_SN",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "机票费用(RMB)含基建和税",
|
|
|
|
|
key: "MEI_SN",
|
|
|
|
|
dataIndex: "MEI_SN",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "折扣",
|
|
|
|
|
key: "MEI_SN",
|
|
|
|
|
dataIndex: "MEI_SN",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "手续费",
|
|
|
|
|
key: "MEI_SN",
|
|
|
|
|
dataIndex: "MEI_SN",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: "机票类型(成人/儿童/婴儿)",
|
|
|
|
|
key: "MEI_SN",
|
|
|
|
|
dataIndex: "MEI_SN",
|
|
|
|
|
},
|
|
|
|
|
];
|
|
|
|
|
// 机票信息编辑表单 begin
|
|
|
|
|
const [isModalOpen, setIsModalOpen] = useState(false);
|
|
|
|
|
const [ticket_form] = Form.useForm();
|
|
|
|
|
|
|
|
|
|
const showModal = ticket => {
|
|
|
|
|
setIsModalOpen(true);
|
|
|
|
|
ticket_form.setFieldsValue(ticket);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const handleOk = () => {
|
|
|
|
|
ticket_form
|
|
|
|
|
.validateFields()
|
|
|
|
|
.then(values => {
|
|
|
|
|
// 在这里处理表单提交逻辑,例如发送数据到服务器
|
|
|
|
|
console.log("Received values of form: ", values);
|
|
|
|
|
ticket_form.resetFields();
|
|
|
|
|
setIsModalOpen(false);
|
|
|
|
|
})
|
|
|
|
|
.catch(info => {
|
|
|
|
|
console.log("Validate Failed:", info);
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const handleCancel = () => {
|
|
|
|
|
ticket_form.resetFields();
|
|
|
|
|
setIsModalOpen(false);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const onChangeType = value => {
|
|
|
|
|
console.log(value);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const TicketModal = () => {
|
|
|
|
|
return (
|
|
|
|
|
<>
|
|
|
|
|
<Modal title="Basic Modal" open={isModalOpen} onOk={handleOk} onCancel={handleCancel}>
|
|
|
|
|
<Form
|
|
|
|
|
form={ticket_form}
|
|
|
|
|
labelCol={{
|
|
|
|
|
span: 5,
|
|
|
|
|
}}>
|
|
|
|
|
<Form.Item label="费用类型" name="MEI_Name2222">
|
|
|
|
|
<Select
|
|
|
|
|
defaultValue="jack"
|
|
|
|
|
style={{
|
|
|
|
|
width: 160,
|
|
|
|
|
}}
|
|
|
|
|
onChange={onChangeType}
|
|
|
|
|
options={[
|
|
|
|
|
{
|
|
|
|
|
value: "jack",
|
|
|
|
|
label: "出票",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
value: "lucy",
|
|
|
|
|
label: "改签",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
value: "Yiminghe",
|
|
|
|
|
label: "退票",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
value: "Yimingh2e",
|
|
|
|
|
label: "其它",
|
|
|
|
|
},
|
|
|
|
|
]}
|
|
|
|
|
/>
|
|
|
|
|
</Form.Item>
|
|
|
|
|
<Form.Item label="机票类型" name="MEI_Name2222">
|
|
|
|
|
<Select
|
|
|
|
|
style={{
|
|
|
|
|
width: 160,
|
|
|
|
|
}}
|
|
|
|
|
onChange={() => console.log("dsads")}
|
|
|
|
|
options={[
|
|
|
|
|
{
|
|
|
|
|
value: "jack",
|
|
|
|
|
label: "成人",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
value: "lucy",
|
|
|
|
|
label: "儿童",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
value: "Yiminghe",
|
|
|
|
|
label: "婴儿",
|
|
|
|
|
},
|
|
|
|
|
]}
|
|
|
|
|
/>
|
|
|
|
|
</Form.Item>
|
|
|
|
|
|
|
|
|
|
<Form.Item label="票号">
|
|
|
|
|
<Input />
|
|
|
|
|
</Form.Item>
|
|
|
|
|
<Form.Item label="机票价格">
|
|
|
|
|
<Input placeholder="含基建和税" prefix="¥" />
|
|
|
|
|
</Form.Item>
|
|
|
|
|
<Form.Item label="折扣" name="MEI_Name33">
|
|
|
|
|
<Input />
|
|
|
|
|
</Form.Item>
|
|
|
|
|
|
|
|
|
|
<Form.Item label="PNR">
|
|
|
|
|
<Input />
|
|
|
|
|
</Form.Item>
|
|
|
|
|
<Form.Item label="手续费/费用" name="MEI_Name66" rules={[{ required: true }]}>
|
|
|
|
|
<Input prefix="¥" />
|
|
|
|
|
</Form.Item>
|
|
|
|
|
|
|
|
|
|
<Form.Item label="选择客人" name="MEI_Name66">
|
|
|
|
|
<Select
|
|
|
|
|
style={{
|
|
|
|
|
width: 160,
|
|
|
|
|
}}
|
|
|
|
|
onChange={() => console.log("dsads")}
|
|
|
|
|
options={[
|
|
|
|
|
{
|
|
|
|
|
value: "jack",
|
|
|
|
|
label: "成人",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
value: "lucy",
|
|
|
|
|
label: "儿童",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
value: "Yiminghe",
|
|
|
|
|
label: "婴儿",
|
|
|
|
|
},
|
|
|
|
|
]}
|
|
|
|
|
/>
|
|
|
|
|
</Form.Item>
|
|
|
|
|
<Form.Item label="备注">
|
|
|
|
|
<Input.TextArea rows={4} />
|
|
|
|
|
</Form.Item>
|
|
|
|
|
</Form>
|
|
|
|
|
</Modal>
|
|
|
|
|
</>
|
|
|
|
|
);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// 机票信息编辑表单 end
|
|
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
getPlanDetail(travelAgencyId, coli_sn);
|
|
|
|
@ -190,7 +348,9 @@ const AirticketPlan = props => {
|
|
|
|
|
<Collapse items={detail_items()} />
|
|
|
|
|
</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
<TicketModal />
|
|
|
|
|
</Space>
|
|
|
|
|
);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export default AirticketPlan;
|
|
|
|
|