增加确认变更

release
Jimmy Liow 2 years ago
parent 5b5698e644
commit e6f11c7113

@ -75,6 +75,16 @@ class Reservation {
customerNames: json.JJPInfo[0].CustomerName, referenceNumber: json.JJPInfo[0].GroupName, pax: json.JJPInfo[0].Str_PersonNum customerNames: json.JJPInfo[0].CustomerName, referenceNumber: json.JJPInfo[0].GroupName, pax: json.JJPInfo[0].Str_PersonNum
}; };
this.customerNames = json.CusAndRequest[0].GCI_CustomerList; this.customerNames = json.CusAndRequest[0].GCI_CustomerList;
this.confirmationList = json.PlanChange.map((data, index) => {
return {
key: data.PCI_SN,
PCI_Changetext: data.PCI_Changetext,
PCI_SendDate: data.PCI_SendDate,
ConfirmPerson: data.ConfirmPerson,
PCI_ConfirmText: data.PCI_ConfirmText,
PCI_ConfirmDate: data.PCI_ConfirmDate
}
});
} else { } else {
throw new Error(json.errmsg + ': ' + json.errcode); throw new Error(json.errmsg + ': ' + json.errcode);
} }
@ -109,22 +119,6 @@ class Reservation {
}); });
} }
setupCityGuide(cityId, guideId) {
let formData = new FormData();
formData.append('GRI_SN', this.selectedReservation.reservationId);
formData.append('VEI_SN', this.root.authStore.login.travelAgencyId);
formData.append('TGI_SN', guideId);
formData.append('CII_SN', cityId);
formData.append('GetDate', this.selectedReservation.reservationDate);
formData.append('LMI_SN', this.root.authStore.login.userId);
const postUrl = HT_HOST + '/service-cusservice/PTAddGuide';
return postForm(postUrl, formData)
.then(json => {
console.info(json);
});
}
fetchGuideList() { fetchGuideList() {
const fetchUrl = prepareUrl(HT_HOST + '/service-cusservice/PTGetGuideList') const fetchUrl = prepareUrl(HT_HOST + '/service-cusservice/PTGetGuideList')
.append('VEI_SN', 628)//this.root.authStore.login.travelAgencyId) .append('VEI_SN', 628)//this.root.authStore.login.travelAgencyId)
@ -148,14 +142,44 @@ class Reservation {
}); });
} }
editReservation(reservation) { setupCityGuide(cityId, guideId) {
this.selectedReservation = reservation; let formData = new FormData();
formData.append('GRI_SN', this.selectedReservation.reservationId);
formData.append('VEI_SN', this.root.authStore.login.travelAgencyId);
formData.append('TGI_SN', guideId);
formData.append('CII_SN', cityId);
formData.append('GetDate', this.selectedReservation.reservationDate);
formData.append('LMI_SN', this.root.authStore.login.userId);
const postUrl = HT_HOST + '/service-cusservice/PTAddGuide';
return postForm(postUrl, formData)
.then(json => {
console.info(json);
});
}
submitConfirmation(confirmText) {
let formData = new FormData();
formData.append('PCI_SN', this.selectedConfirmation.key);
formData.append('OPSN', this.root.authStore.login.userId);
formData.append('ConfirmText', confirmText);
const postUrl = HT_HOST + '/service-cusservice/PTConfirmPlanChange';
return postForm(postUrl, formData)
.then(json => {
console.info(json);
});
}
editConfirmation(confirmation) {
this.selectedConfirmation = confirmation;
} }
guideList = []; guideList = [];
cityList = []; cityList = [];
selectedReservation = null; selectedReservation = null;
selectedConfirmation = null;
reservationList = []; reservationList = [];
@ -176,6 +200,9 @@ class Reservation {
itineraryList = [ itineraryList = [
]; ];
confirmationList = [
];
customerNames = ''; customerNames = '';
} }

@ -2,13 +2,15 @@ import { useParams, useNavigate } from "react-router-dom";
import { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';
import { observer } from "mobx-react"; import { observer } from "mobx-react";
import { toJS } from "mobx"; import { toJS } from "mobx";
import { Row, Col, Space, Button, Table, Input, Typography, List, App } from 'antd'; import { Row, Col, Space, Button, Table, Input, Typography, Modal, App } from 'antd';
import { useStore } from '@/stores/StoreContext.js'; import { useStore } from '@/stores/StoreContext.js';
const { Title } = Typography; const { Title } = Typography;
const { TextArea } = Input; const { TextArea } = Input;
const itineraryListColumns = [ function Detail() {
const itineraryListColumns = [
{ {
title: 'Day', title: 'Day',
dataIndex: 'day', dataIndex: 'day',
@ -34,15 +36,69 @@ const itineraryListColumns = [
dataIndex: 'meals', dataIndex: 'meals',
key: 'meals', key: 'meals',
}, },
]; ];
const confirmationListColumns = [
{
title: 'PCI_Changetext',
dataIndex: 'PCI_Changetext',
},
{
title: 'PCI_SendDate',
dataIndex: 'PCI_SendDate',
},
{
title: 'ConfirmPerson',
dataIndex: 'ConfirmPerson',
},
{
title: 'PCI_ConfirmText',
dataIndex: 'PCI_ConfirmText',
},
{
title: 'PCI_ConfirmDate',
dataIndex: 'PCI_ConfirmDate',
},
{
title: 'Action',
render: confirmRender
},
];
function confirmRender(text, confirm) {
return (
<Button type="link" onClick={() => showConfirmModal(confirm)}>Confirm</Button>
);
}
function Detail() {
const navigate = useNavigate(); const navigate = useNavigate();
const [isModalOpen, setIsModalOpen] = useState(false);
const [confirmLoading, setConfirmLoading] = useState(false);
const [confirmText, setConfirmText] = useState('');
const { notification } = App.useApp(); const { notification } = App.useApp();
const { reservationId } = useParams(); const { reservationId } = useParams();
const { reservationStore } = useStore(); const { reservationStore } = useStore();
const [dataLoading, setDataLoading] = useState(false); const [dataLoading, setDataLoading] = useState(false);
const { itineraryList, customerNames, customerList, reservationDetail } = reservationStore; const { itineraryList, customerNames, confirmationList, reservationDetail } = reservationStore;
const showConfirmModal = (confirm) => {
setIsModalOpen(true);
setConfirmText(confirm.PCI_ConfirmText);
reservationStore.editConfirmation(confirm);
console.info(confirm);
};
const handleOk = () => {
setConfirmLoading(true);
reservationStore.submitConfirmation(confirmText)
.finally(() => {
setIsModalOpen(false);
setConfirmLoading(false);
});
};
const handleCancel = () => {
setIsModalOpen(false);
};
useEffect(() => { useEffect(() => {
setDataLoading(true); setDataLoading(true);
@ -61,6 +117,22 @@ function Detail() {
}, [reservationId]); }, [reservationId]);
return ( return (
<>
<Modal
centered
confirmLoading={confirmLoading}
open={isModalOpen} onOk={handleOk} onCancel={handleCancel}
>
<Title level={4}>Confirm</Title>
<TextArea
value={confirmText}
onChange={(e) => setConfirmText(e.target.value)}
autoSize={{
minRows: 3,
maxRows: 5,
}}
/>
</Modal>
<Space direction="vertical" style={{ width: '100%' }}> <Space direction="vertical" style={{ width: '100%' }}>
<Row gutter={{ md: 24 }}> <Row gutter={{ md: 24 }}>
<Col span={20}> <Col span={20}>
@ -100,21 +172,17 @@ function Detail() {
<Row> <Row>
<Col span={24}><Space direction="vertical" style={{ width: '100%' }}> <Col span={24}><Space direction="vertical" style={{ width: '100%' }}>
<Title level={5}>Confirmation</Title> <Title level={5}>Confirmation</Title>
<TextArea rows={4} <Table
autoSize={{ bordered
minRows: 2, loading={dataLoading}
maxRows: 6, pagination={false}
}} dataSource={toJS(confirmationList)} columns={confirmationListColumns}
value="------变更内容 (2023-04-17):------ />
客人火车变更
4月27日 D2952(1249-1549)(一等)北站
4月30日 D1761(1646-2006)(一等)西站
======收到后请速确认并回执谢谢! 变更日期2023-04-16" maxLength={6} />
<Button type="primary" onClick={() => console.info('submit')}>Submit</Button>
</Space> </Space>
</Col> </Col>
</Row> </Row>
</Space> </Space>
</>
); );
} }

@ -119,9 +119,11 @@ function Newest() {
}; };
const handleOk = () => { const handleOk = () => {
setIsModalOpen(false); setIsModalOpen(false);
setDataLoading(false);
}; };
const handleCancel = () => { const handleCancel = () => {
setIsModalOpen(false); setIsModalOpen(false);
setDataLoading(false);
}; };
const onSearchClick = (current=1) => { const onSearchClick = (current=1) => {

Loading…
Cancel
Save