|
|
@ -11,7 +11,7 @@ import { usingStorage } from "@/hooks/usingStorage";
|
|
|
|
const AirticketPlan = props => {
|
|
|
|
const AirticketPlan = props => {
|
|
|
|
const { coli_sn, gri_sn } = useParams();
|
|
|
|
const { coli_sn, gri_sn } = useParams();
|
|
|
|
const { travelAgencyId, loginToken } = usingStorage();
|
|
|
|
const { travelAgencyId, loginToken } = usingStorage();
|
|
|
|
const [getPlanDetail, planDetail, getGuestList, guestList, loading, postFlightDetail, getFlightCostList] = airTicketStore(state => [
|
|
|
|
const [getPlanDetail, planDetail, getGuestList, guestList, loading, postFlightDetail, getFlightCostList, postFlightCost] = airTicketStore(state => [
|
|
|
|
state.getPlanDetail,
|
|
|
|
state.getPlanDetail,
|
|
|
|
state.planDetail,
|
|
|
|
state.planDetail,
|
|
|
|
state.getGuestList,
|
|
|
|
state.getGuestList,
|
|
|
@ -19,8 +19,9 @@ const AirticketPlan = props => {
|
|
|
|
state.loading,
|
|
|
|
state.loading,
|
|
|
|
state.postFlightDetail,
|
|
|
|
state.postFlightDetail,
|
|
|
|
state.getFlightCostList,
|
|
|
|
state.getFlightCostList,
|
|
|
|
|
|
|
|
state.postFlightCost,
|
|
|
|
]);
|
|
|
|
]);
|
|
|
|
const reservationUrl = `https://p9axztuwd7x8a7.mycht.cn/Service_BaseInfoWeb/FlightPlanDocx?GRI_SN=${coli_sn}&VEI_SN=${travelAgencyId}`;
|
|
|
|
const reservationUrl = `https://p9axztuwd7x8a7.mycht.cn/Service_BaseInfoWeb/FlightPlanDocx?GRI_SN=${gri_sn}&VEI_SN=${travelAgencyId}`;
|
|
|
|
const reservationPreviewUrl = OFFICEWEBVIEWERURL + encodeURIComponent(reservationUrl);
|
|
|
|
const reservationPreviewUrl = OFFICEWEBVIEWERURL + encodeURIComponent(reservationUrl);
|
|
|
|
const [form] = Form.useForm();
|
|
|
|
const [form] = Form.useForm();
|
|
|
|
const { notification } = App.useApp();
|
|
|
|
const { notification } = App.useApp();
|
|
|
@ -115,7 +116,7 @@ const AirticketPlan = props => {
|
|
|
|
dataIndex: "CostType",
|
|
|
|
dataIndex: "CostType",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
title: "金额",
|
|
|
|
title: "手续费/费用",
|
|
|
|
key: "Cost",
|
|
|
|
key: "Cost",
|
|
|
|
dataIndex: "Cost",
|
|
|
|
dataIndex: "Cost",
|
|
|
|
},
|
|
|
|
},
|
|
|
@ -123,41 +124,42 @@ const AirticketPlan = props => {
|
|
|
|
title: "PNR",
|
|
|
|
title: "PNR",
|
|
|
|
key: "PNR",
|
|
|
|
key: "PNR",
|
|
|
|
dataIndex: "PNR",
|
|
|
|
dataIndex: "PNR",
|
|
|
|
|
|
|
|
render: (text, record) => (record.CostType == "出票" ? text : "-"),
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
title: "FlightCost",
|
|
|
|
title: "票号",
|
|
|
|
key: "FlightCost",
|
|
|
|
key: "FlightCost",
|
|
|
|
dataIndex: "FlightCost",
|
|
|
|
dataIndex: "FlightCost",
|
|
|
|
|
|
|
|
render: (text, record) => (record.CostType == "出票" ? text : "-"),
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
title: "Discount",
|
|
|
|
title: "机票类型",
|
|
|
|
key: "Discount",
|
|
|
|
key: "FlightType",
|
|
|
|
dataIndex: "Discount",
|
|
|
|
dataIndex: "FlightType",
|
|
|
|
},
|
|
|
|
render: (text, record) => (record.CostType == "出票" ? text : "-"),
|
|
|
|
{
|
|
|
|
|
|
|
|
title: "ServiceFee",
|
|
|
|
|
|
|
|
key: "ServiceFee",
|
|
|
|
|
|
|
|
dataIndex: "ServiceFee",
|
|
|
|
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
title: "DateTime",
|
|
|
|
title: "机票价格",
|
|
|
|
key: "DateTime",
|
|
|
|
key: "FlightCost",
|
|
|
|
dataIndex: "DateTime",
|
|
|
|
dataIndex: "FlightCost",
|
|
|
|
|
|
|
|
render: (text, record) => (record.CostType == "出票" ? text : "-"),
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
title: "FlightType",
|
|
|
|
title: "折扣",
|
|
|
|
key: "FlightType",
|
|
|
|
key: "Discount",
|
|
|
|
dataIndex: "FlightType",
|
|
|
|
dataIndex: "Discount",
|
|
|
|
|
|
|
|
render: (text, record) => (record.CostType == "出票" ? text : "-"),
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
title: "Memo",
|
|
|
|
title: "备注",
|
|
|
|
key: "Memo",
|
|
|
|
key: "Memo",
|
|
|
|
dataIndex: "Memo",
|
|
|
|
dataIndex: "Memo",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
title: "编辑",
|
|
|
|
title: "编辑",
|
|
|
|
key: "CLF_SN",
|
|
|
|
key: "CLF_SN",
|
|
|
|
dataIndex: "CLF_SN", //GRI_SN VEI_SN
|
|
|
|
dataIndex: "CLF_SN",
|
|
|
|
|
|
|
|
render: (text, record) => <a onClick={() => showModal(record)}>编辑</a>,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
];
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
|
@ -168,6 +170,7 @@ const AirticketPlan = props => {
|
|
|
|
<Row>
|
|
|
|
<Row>
|
|
|
|
<Col md={4} lg={4} xxl={4}></Col>
|
|
|
|
<Col md={4} lg={4} xxl={4}></Col>
|
|
|
|
<Col md={16} lg={16} xxl={16}>
|
|
|
|
<Col md={16} lg={16} xxl={16}>
|
|
|
|
|
|
|
|
<Divider orientation="left">航班信息</Divider>
|
|
|
|
<Form
|
|
|
|
<Form
|
|
|
|
name={"ticket_form_" + airInfo.id}
|
|
|
|
name={"ticket_form_" + airInfo.id}
|
|
|
|
labelCol={{
|
|
|
|
labelCol={{
|
|
|
@ -225,7 +228,7 @@ const AirticketPlan = props => {
|
|
|
|
</Form.Item>
|
|
|
|
</Form.Item>
|
|
|
|
<Form.Item label="出发">
|
|
|
|
<Form.Item label="出发">
|
|
|
|
<Space>
|
|
|
|
<Space>
|
|
|
|
<Form.Item name="FromAirport" noStyle>
|
|
|
|
<Form.Item name="FromAirportCode" noStyle>
|
|
|
|
<Input placeholder="机场" />
|
|
|
|
<Input placeholder="机场" />
|
|
|
|
</Form.Item>
|
|
|
|
</Form.Item>
|
|
|
|
<Form.Item name="FromTerminal" noStyle>
|
|
|
|
<Form.Item name="FromTerminal" noStyle>
|
|
|
@ -238,7 +241,7 @@ const AirticketPlan = props => {
|
|
|
|
</Form.Item>
|
|
|
|
</Form.Item>
|
|
|
|
<Form.Item label="抵达">
|
|
|
|
<Form.Item label="抵达">
|
|
|
|
<Space>
|
|
|
|
<Space>
|
|
|
|
<Form.Item name="ToAirport" noStyle>
|
|
|
|
<Form.Item name="ToAirportCode" noStyle>
|
|
|
|
<Input placeholder="机场" />
|
|
|
|
<Input placeholder="机场" />
|
|
|
|
</Form.Item>
|
|
|
|
</Form.Item>
|
|
|
|
<Form.Item name="ToTerminal" noStyle>
|
|
|
|
<Form.Item name="ToTerminal" noStyle>
|
|
|
@ -273,7 +276,9 @@ const AirticketPlan = props => {
|
|
|
|
<Button type="primary" htmlType="submit">
|
|
|
|
<Button type="primary" htmlType="submit">
|
|
|
|
保存机票信息
|
|
|
|
保存机票信息
|
|
|
|
</Button>
|
|
|
|
</Button>
|
|
|
|
<Button type="dashed">添加出票信息和费用</Button>
|
|
|
|
<Button type="dashed" onClick={() => showModal(airInfo)}>
|
|
|
|
|
|
|
|
添加出票信息或费用
|
|
|
|
|
|
|
|
</Button>
|
|
|
|
</Space>
|
|
|
|
</Space>
|
|
|
|
</Form.Item>
|
|
|
|
</Form.Item>
|
|
|
|
</Form>
|
|
|
|
</Form>
|
|
|
@ -304,10 +309,12 @@ const AirticketPlan = props => {
|
|
|
|
|
|
|
|
|
|
|
|
// 机票信息编辑表单 begin
|
|
|
|
// 机票信息编辑表单 begin
|
|
|
|
const [isModalOpen, setIsModalOpen] = useState(false);
|
|
|
|
const [isModalOpen, setIsModalOpen] = useState(false);
|
|
|
|
|
|
|
|
const [isTicketType, setisTicketType] = useState(true);
|
|
|
|
const [ticket_form] = Form.useForm();
|
|
|
|
const [ticket_form] = Form.useForm();
|
|
|
|
|
|
|
|
|
|
|
|
const showModal = ticket => {
|
|
|
|
const showModal = ticket => {
|
|
|
|
setIsModalOpen(true);
|
|
|
|
setIsModalOpen(true);
|
|
|
|
|
|
|
|
ticket.CostType == "出票" ? setisTicketType(true) : setisTicketType(false);//如果是出票类型,显示票号、折扣等选项
|
|
|
|
ticket_form.setFieldsValue(ticket);
|
|
|
|
ticket_form.setFieldsValue(ticket);
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
@ -317,6 +324,26 @@ const AirticketPlan = props => {
|
|
|
|
.then(values => {
|
|
|
|
.then(values => {
|
|
|
|
// 在这里处理表单提交逻辑,例如发送数据到服务器
|
|
|
|
// 在这里处理表单提交逻辑,例如发送数据到服务器
|
|
|
|
console.log("Received values of form: ", values);
|
|
|
|
console.log("Received values of form: ", values);
|
|
|
|
|
|
|
|
postFlightCost(values)
|
|
|
|
|
|
|
|
.then(() => {
|
|
|
|
|
|
|
|
notification.success({
|
|
|
|
|
|
|
|
message: `成功`,
|
|
|
|
|
|
|
|
description: "保存成功!",
|
|
|
|
|
|
|
|
placement: "top",
|
|
|
|
|
|
|
|
duration: 4,
|
|
|
|
|
|
|
|
icon: <LikeTwoTone />,
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
getPlanDetail(travelAgencyId, gri_sn);
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
.catch(() => {
|
|
|
|
|
|
|
|
notification.error({
|
|
|
|
|
|
|
|
message: `错误`,
|
|
|
|
|
|
|
|
description: "保存失败",
|
|
|
|
|
|
|
|
placement: "top",
|
|
|
|
|
|
|
|
duration: 4,
|
|
|
|
|
|
|
|
icon: <FrownTwoTone />,
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
});
|
|
|
|
ticket_form.resetFields();
|
|
|
|
ticket_form.resetFields();
|
|
|
|
setIsModalOpen(false);
|
|
|
|
setIsModalOpen(false);
|
|
|
|
})
|
|
|
|
})
|
|
|
@ -331,7 +358,11 @@ const AirticketPlan = props => {
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
const onChangeType = value => {
|
|
|
|
const onChangeType = value => {
|
|
|
|
console.log(value);
|
|
|
|
if (value == "出票") {
|
|
|
|
|
|
|
|
setisTicketType(true);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
setisTicketType(false);
|
|
|
|
|
|
|
|
}
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
const TicketModal = () => {
|
|
|
|
const TicketModal = () => {
|
|
|
@ -343,97 +374,129 @@ const AirticketPlan = props => {
|
|
|
|
labelCol={{
|
|
|
|
labelCol={{
|
|
|
|
span: 5,
|
|
|
|
span: 5,
|
|
|
|
}}>
|
|
|
|
}}>
|
|
|
|
<Form.Item label="费用类型" name="MEI_Name2222">
|
|
|
|
<Form.Item label="费用类型" name="CostType">
|
|
|
|
<Select
|
|
|
|
<Select
|
|
|
|
defaultValue="jack"
|
|
|
|
|
|
|
|
style={{
|
|
|
|
style={{
|
|
|
|
width: 160,
|
|
|
|
width: 160,
|
|
|
|
}}
|
|
|
|
}}
|
|
|
|
onChange={onChangeType}
|
|
|
|
onChange={onChangeType}
|
|
|
|
options={[
|
|
|
|
options={[
|
|
|
|
{
|
|
|
|
{
|
|
|
|
value: "jack",
|
|
|
|
value: "出票",
|
|
|
|
label: "出票",
|
|
|
|
label: "出票",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
value: "lucy",
|
|
|
|
value: "改签",
|
|
|
|
label: "改签",
|
|
|
|
label: "改签",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
value: "Yiminghe",
|
|
|
|
value: "退票",
|
|
|
|
label: "退票",
|
|
|
|
label: "退票",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
value: "Yimingh2e",
|
|
|
|
value: "其它",
|
|
|
|
label: "其它",
|
|
|
|
label: "其它",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
]}
|
|
|
|
]}
|
|
|
|
/>
|
|
|
|
/>
|
|
|
|
</Form.Item>
|
|
|
|
</Form.Item>
|
|
|
|
<Form.Item label="机票类型" name="MEI_Name2222">
|
|
|
|
<Form.Item label="手续费/费用" name="ServiceFee" rules={[{ required: true }]}>
|
|
|
|
<Select
|
|
|
|
<Input
|
|
|
|
|
|
|
|
prefix="¥"
|
|
|
|
style={{
|
|
|
|
style={{
|
|
|
|
width: 160,
|
|
|
|
width: 160,
|
|
|
|
}}
|
|
|
|
}}
|
|
|
|
onChange={() => console.log("dsads")}
|
|
|
|
|
|
|
|
options={[
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
value: "jack",
|
|
|
|
|
|
|
|
label: "成人",
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
value: "lucy",
|
|
|
|
|
|
|
|
label: "儿童",
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
value: "Yiminghe",
|
|
|
|
|
|
|
|
label: "婴儿",
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
]}
|
|
|
|
|
|
|
|
/>
|
|
|
|
/>
|
|
|
|
</Form.Item>
|
|
|
|
</Form.Item>
|
|
|
|
|
|
|
|
{isTicketType && (
|
|
|
|
|
|
|
|
<>
|
|
|
|
|
|
|
|
<Form.Item label="PNR" name="PNR">
|
|
|
|
|
|
|
|
<Input />
|
|
|
|
|
|
|
|
</Form.Item>
|
|
|
|
|
|
|
|
<Form.Item label="票号" name="Cost">
|
|
|
|
|
|
|
|
<Input />
|
|
|
|
|
|
|
|
</Form.Item>
|
|
|
|
|
|
|
|
<Form.Item label="机票类型" name="FlightType">
|
|
|
|
|
|
|
|
<Select
|
|
|
|
|
|
|
|
style={{
|
|
|
|
|
|
|
|
width: 160,
|
|
|
|
|
|
|
|
}}
|
|
|
|
|
|
|
|
options={[
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
value: "成人",
|
|
|
|
|
|
|
|
label: "成人",
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
value: "儿童",
|
|
|
|
|
|
|
|
label: "儿童",
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
value: "婴儿",
|
|
|
|
|
|
|
|
label: "婴儿",
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
]}
|
|
|
|
|
|
|
|
/>
|
|
|
|
|
|
|
|
</Form.Item>
|
|
|
|
|
|
|
|
|
|
|
|
<Form.Item label="票号">
|
|
|
|
<Form.Item label="机票价格" name="FlightCost">
|
|
|
|
<Input />
|
|
|
|
<Input
|
|
|
|
</Form.Item>
|
|
|
|
placeholder="含基建和税"
|
|
|
|
<Form.Item label="机票价格">
|
|
|
|
prefix="¥"
|
|
|
|
<Input placeholder="含基建和税" prefix="¥" />
|
|
|
|
style={{
|
|
|
|
</Form.Item>
|
|
|
|
width: 160,
|
|
|
|
<Form.Item label="折扣" name="MEI_Name33">
|
|
|
|
}}
|
|
|
|
<Input />
|
|
|
|
/>
|
|
|
|
</Form.Item>
|
|
|
|
</Form.Item>
|
|
|
|
|
|
|
|
<Form.Item label="折扣" name="Discount">
|
|
|
|
|
|
|
|
<Input
|
|
|
|
|
|
|
|
style={{
|
|
|
|
|
|
|
|
width: 160,
|
|
|
|
|
|
|
|
}}
|
|
|
|
|
|
|
|
/>
|
|
|
|
|
|
|
|
</Form.Item>
|
|
|
|
|
|
|
|
|
|
|
|
<Form.Item label="PNR">
|
|
|
|
<Form.Item label="选择客人" name="MEI_Name66">
|
|
|
|
<Input />
|
|
|
|
<Select
|
|
|
|
|
|
|
|
style={{
|
|
|
|
|
|
|
|
width: 160,
|
|
|
|
|
|
|
|
}}
|
|
|
|
|
|
|
|
onChange={() => console.log("dsads")}
|
|
|
|
|
|
|
|
options={[
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
value: "",
|
|
|
|
|
|
|
|
label: "",
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
value: "jack",
|
|
|
|
|
|
|
|
label: "成人",
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
value: "lucy",
|
|
|
|
|
|
|
|
label: "儿童",
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
value: "Yiminghe",
|
|
|
|
|
|
|
|
label: "婴儿",
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
]}
|
|
|
|
|
|
|
|
/>
|
|
|
|
|
|
|
|
</Form.Item>
|
|
|
|
|
|
|
|
</>
|
|
|
|
|
|
|
|
)}
|
|
|
|
|
|
|
|
<Form.Item label="备注" name="Memo">
|
|
|
|
|
|
|
|
<Input.TextArea rows={4} />
|
|
|
|
</Form.Item>
|
|
|
|
</Form.Item>
|
|
|
|
<Form.Item label="手续费/费用" name="MEI_Name66" rules={[{ required: true }]}>
|
|
|
|
<Form.Item name="CLF_SN" hidden>
|
|
|
|
<Input prefix="¥" />
|
|
|
|
<input />{" "}
|
|
|
|
</Form.Item>
|
|
|
|
</Form.Item>
|
|
|
|
|
|
|
|
<Form.Item name="GRI_SN" hidden>
|
|
|
|
<Form.Item label="选择客人" name="MEI_Name66">
|
|
|
|
<input />
|
|
|
|
<Select
|
|
|
|
|
|
|
|
style={{
|
|
|
|
|
|
|
|
width: 160,
|
|
|
|
|
|
|
|
}}
|
|
|
|
|
|
|
|
onChange={() => console.log("dsads")}
|
|
|
|
|
|
|
|
options={[
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
value: "jack",
|
|
|
|
|
|
|
|
label: "成人",
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
value: "lucy",
|
|
|
|
|
|
|
|
label: "儿童",
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
value: "Yiminghe",
|
|
|
|
|
|
|
|
label: "婴儿",
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
]}
|
|
|
|
|
|
|
|
/>
|
|
|
|
|
|
|
|
</Form.Item>
|
|
|
|
</Form.Item>
|
|
|
|
<Form.Item label="备注">
|
|
|
|
<Form.Item name="VEI_SN" hidden>
|
|
|
|
<Input.TextArea rows={4} />
|
|
|
|
<input />
|
|
|
|
|
|
|
|
</Form.Item>
|
|
|
|
|
|
|
|
<Form.Item name="CLC_SN" hidden>
|
|
|
|
|
|
|
|
<input />
|
|
|
|
</Form.Item>
|
|
|
|
</Form.Item>
|
|
|
|
</Form>
|
|
|
|
</Form>
|
|
|
|
</Modal>
|
|
|
|
</Modal>
|
|
|
@ -452,7 +515,7 @@ const AirticketPlan = props => {
|
|
|
|
<Space direction="vertical" style={{ width: "100%" }}>
|
|
|
|
<Space direction="vertical" style={{ width: "100%" }}>
|
|
|
|
<Row>
|
|
|
|
<Row>
|
|
|
|
<Col md={24} lg={24} xxl={24} style={{ height: "100%" }}>
|
|
|
|
<Col md={24} lg={24} xxl={24} style={{ height: "100%" }}>
|
|
|
|
{/* <iframe id="msdoc-iframe-reservation" title="msdoc-iframe-reservation" src={reservationPreviewUrl} frameBorder="0" style={{ width: "100%", height: "600px" }}></iframe> */}
|
|
|
|
<iframe id="msdoc-iframe-reservation" title="msdoc-iframe-reservation" src={reservationPreviewUrl} style={{ width: "100%", height: "600px" }}></iframe>
|
|
|
|
<Button type="link" target="_blank" href={reservationUrl}>
|
|
|
|
<Button type="link" target="_blank" href={reservationUrl}>
|
|
|
|
下载
|
|
|
|
下载
|
|
|
|
</Button>
|
|
|
|
</Button>
|
|
|
|