增加分页查询功能

release
Jimmy Liow 2 years ago
parent 8dbdeb3fe6
commit 94a18d0f14

@ -10,17 +10,16 @@ class Reservation {
this.root = root; this.root = root;
} }
fetchReservationList(referenceNo, fromDate, thruDate) { fetchReservationList(current, referenceNo, fromDate, thruDate) {
this.reservationPage.current = current;
const fetchUrl = prepareUrl(HT_HOST + '/service-tourdesign/GetPlanSearchList') const fetchUrl = prepareUrl(HT_HOST + '/service-tourdesign/GetPlanSearchList')
.append('VEI_SN', this.root.authStore.login.travelAgencyId) .append('VEI_SN', this.root.authStore.login.travelAgencyId)
.append('GroupNo', referenceNo) .append('GroupNo', referenceNo)
.append('DateStart', fromDate) .append('DateStart', fromDate)
.append('DateEnd', thruDate) .append('DateEnd', thruDate)
.append('ReTotal', 0) .append('PageNum', this.reservationPage.size)
.append('PageSize', 0) .append('PageIndex', this.reservationPage.current)
.append('PageNum', 0) .build();
.append('PageIndex', 1)
.build();
return fetchJSON(fetchUrl) return fetchJSON(fetchUrl)
.then(json => { .then(json => {
@ -38,6 +37,7 @@ class Reservation {
guide: data.Guide, guide: data.Guide,
} }
}); });
this.reservationPage.total = json.Result[0].RsTotal;
} else { } else {
throw new Error(json.errmsg + ': ' + json.errcode); throw new Error(json.errmsg + ': ' + json.errcode);
} }
@ -57,7 +57,7 @@ class Reservation {
if (json.errcode == 0) { if (json.errcode == 0) {
this.itineraryList = json.VendorTour.map((data, index) => { this.itineraryList = json.VendorTour.map((data, index) => {
return { return {
key: data.GRD_GRI_SN, key: data.GRD_SN,
day: data.GRD_OrderDate, day: data.GRD_OrderDate,
placeTransport: data.GRD_Traffic, placeTransport: data.GRD_Traffic,
todayActivities: data.GRD_LandscapeWL, todayActivities: data.GRD_LandscapeWL,
@ -89,6 +89,12 @@ class Reservation {
referenceNumber: '', customerNames: '', pax: '' referenceNumber: '', customerNames: '', pax: ''
} }
reservationPage = {
current: 1,
size: 10,
total: 0
}
itineraryList = [ itineraryList = [
]; ];

@ -2,9 +2,8 @@ import { useParams, useNavigate } from "react-router-dom";
import { useEffect } from 'react'; import { useEffect } from 'react';
import { observer } from "mobx-react"; import { observer } from "mobx-react";
import { toJS } from "mobx"; import { toJS } from "mobx";
import moment from "moment";
import { Row, Col, Space, Button, Table, Input, Typography, List, App } from 'antd'; import { Row, Col, Space, Button, Table, Input, Typography, List, 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;
@ -82,9 +81,7 @@ function Detail() {
<Row> <Row>
<Col span={24}> <Col span={24}>
<Table <Table
pagination={{ pagination={false}
hideOnSinglePage: true
}}
dataSource={toJS(itineraryList)} columns={itineraryListColumns} dataSource={toJS(itineraryList)} columns={itineraryListColumns}
/> />
</Col> </Col>

@ -1,51 +1,13 @@
import { useParams, useNavigate } from "react-router-dom";
import { useEffect } from 'react';
import { observer } from "mobx-react"; import { observer } from "mobx-react";
import { toJS } from "mobx";
import moment from "moment";
import { Row, Col, Space, Table, Typography, List, Watermark } from 'antd'; import { Row, Col, Space, Table, Typography, List, Watermark } from 'antd';
import { useStore } from '../../stores/StoreContext.js'; import { useStore } from '@/stores/StoreContext.js';
const { Title } = Typography; const { Title } = Typography;
const itineraryListColumns = [
{
title: 'Day',
dataIndex: 'day',
key: 'day',
},
{
title: 'Place & Transport',
dataIndex: 'placeTransport',
key: 'placeTransport',
},
{
title: 'Todays Activities',
dataIndex: 'todayActivities',
key: 'todayActivities',
},
{
title: 'Accommodation',
dataIndex: 'accommodation',
key: 'accommodation',
},
{
title: 'Meals',
dataIndex: 'meals',
key: 'meals',
},
];
function NameCard() { function NameCard() {
const navigate = useNavigate();
const { reservationId } = useParams();
const { reservationStore } = useStore(); const { reservationStore } = useStore();
const { meetAndGreet } = reservationStore; const { meetAndGreet } = reservationStore;
useEffect(() => {
console.info('Detail.useEffect: ' + reservationId);
}, [reservationId]);
return ( return (
<Watermark content={['Global Highlights', 'Discovery Your Way!']}> <Watermark content={['Global Highlights', 'Discovery Your Way!']}>
<Space direction="vertical" style={{ width: '100%' }}> <Space direction="vertical" style={{ width: '100%' }}>

@ -60,7 +60,7 @@ function Newest() {
} }
} }
const { reservationStore } = useStore(); const { reservationStore } = useStore();
const { reservationList } = reservationStore; const { reservationList, reservationPage } = reservationStore;
const [isModalOpen, setIsModalOpen] = useState(false); const [isModalOpen, setIsModalOpen] = useState(false);
const [selectedDateRange, onDateRangeChange] = useState([]); const [selectedDateRange, onDateRangeChange] = useState([]);
const [referenceNo, onNumberChange] = useState(''); const [referenceNo, onNumberChange] = useState('');
@ -77,9 +77,9 @@ function Newest() {
setIsModalOpen(false); setIsModalOpen(false);
}; };
const onSearchClick = () => { const onSearchClick = (current) => {
setTableLoading(true); setTableLoading(true);
reservationStore.fetchReservationList(referenceNo, selectedDateRange[0], selectedDateRange[1]) reservationStore.fetchReservationList(current, referenceNo, selectedDateRange[0], selectedDateRange[1])
.catch(ex => { .catch(ex => {
notification.error({ notification.error({
message: `Notification`, message: `Notification`,
@ -196,7 +196,7 @@ function Newest() {
</Space> </Space>
</Col> </Col>
<Col span={14}> <Col span={14}>
<Button type='primary' onClick={() => onSearchClick()}>Search</Button> <Button type='primary' onClick={() => onSearchClick(1)}>Search</Button>
</Col> </Col>
</Row> </Row>
<Row> <Row>
@ -207,10 +207,12 @@ function Newest() {
loading={tableLoading} loading={tableLoading}
pagination={{ pagination={{
position: ['bottomCenter'], position: ['bottomCenter'],
current: 1, current: reservationPage.current,
pageSize: 10, pageSize: reservationPage.size,
total: 200 total: reservationPage.total,
simple: true
}} }}
onChange={(pagination, filters, sorter, extra) => {onSearchClick(pagination.current);}}
columns={reservationListColumns} dataSource={toJS(reservationList)} columns={reservationListColumns} dataSource={toJS(reservationList)}
/> />
</Col> </Col>

Loading…
Cancel
Save