完成计划城市读取和分配导游界面

release
Jimmy Liow 2 years ago
parent be9efb8e60
commit 09444a114e

@ -12,12 +12,14 @@ class Reservation {
fetchReservationList(current, referenceNo, fromDate, thruDate) { fetchReservationList(current, referenceNo, fromDate, thruDate) {
this.reservationPage.current = current; this.reservationPage.current = current;
// 设置为 0后端会重新计算总数当跳转第 X 页时可用原来的总数。
const totalNum = current == 1 ? 0 : this.reservationPage.total;
const fetchUrl = prepareUrl(HT_HOST + '/service-cusservice/GetPlanSearchList') const fetchUrl = prepareUrl(HT_HOST + '/service-cusservice/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('TotalNum', 0) .append('TotalNum', totalNum)
.append('PageSize', this.reservationPage.size) .append('PageSize', this.reservationPage.size)
.append('PageIndex', this.reservationPage.current) .append('PageIndex', this.reservationPage.current)
.build(); .build();

@ -2,7 +2,7 @@ import { NavLink } from "react-router-dom";
import { useState } from 'react'; import { 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, DatePicker, Radio, Modal, App } from 'antd'; import { Row, Col, Space, Button, Table, Input, Typography, DatePicker, Radio, Modal, App, Select } from 'antd';
import { useStore } from '@/stores/StoreContext.js'; import { useStore } from '@/stores/StoreContext.js';
const { Title } = Typography; const { Title } = Typography;
@ -13,7 +13,7 @@ function Newest() {
title: 'Reference number', title: 'Reference number',
dataIndex: 'referenceNumber', dataIndex: 'referenceNumber',
key: 'Reference number', key: 'Reference number',
render: (text, record) => <NavLink to={`/reservation/${record.id}`}>{text}</NavLink>, render: (text, record) => <NavLink to={`/reservation/${record.referenceId}`}>{text}</NavLink>,
}, },
{ {
title: 'Arrival date', title: 'Arrival date',
@ -59,6 +59,42 @@ function Newest() {
); );
} }
} }
function cityGuideRender(text, city) {
return (
<Select
showSearch
style={{
width: 280,
}}
placeholder="Select a guide"
optionFilterProp="children"
onChange={(value) => {
console.log(`selected ${value}`);
}}
onSearch={(value) => {
console.log('search:', value);
}}
filterOption={(input, option) =>
(option?.label ?? '').toLowerCase().includes(input.toLowerCase())
}
options={[
{
value: 'jack',
label: 'Jack',
},
{
value: 'lucy',
label: 'Lucy',
},
{
value: 'tom',
label: 'Tom',
},
]}
/>
);
}
const { reservationStore } = useStore(); const { reservationStore } = useStore();
const { reservationList, reservationPage, cityList } = reservationStore; const { reservationList, reservationPage, cityList } = reservationStore;
const [isModalOpen, setIsModalOpen] = useState(false); const [isModalOpen, setIsModalOpen] = useState(false);
@ -68,8 +104,7 @@ function Newest() {
const { notification } = App.useApp(); const { notification } = App.useApp();
const showModal = (reservation) => { const showModal = (reservation) => {
console.info(reservation); setIsModalOpen(true);
reservationStore.fetchCityList(reservation.referenceId) reservationStore.fetchCityList(reservation.referenceId)
.catch(ex => { .catch(ex => {
notification.error({ notification.error({
@ -82,7 +117,6 @@ function Newest() {
.finally(() => { .finally(() => {
setDataLoading(false); setDataLoading(false);
}); });
setIsModalOpen(true);
}; };
const handleOk = () => { const handleOk = () => {
setIsModalOpen(false); setIsModalOpen(false);
@ -128,61 +162,14 @@ function Newest() {
{ {
title: 'Tour Guide', title: 'Tour Guide',
dataIndex: 'tourGuide', dataIndex: 'tourGuide',
key: 'tourGuide' key: 'tourGuide',
render: cityGuideRender,
} }
]} ]}
dataSource={toJS(cityList)} dataSource={toJS(cityList)}
/> />
</Col> </Col>
</Row> </Row>
<Row gutter={{ md: 24 }}>
<Col span={24}>
<Title level={5}>Guide</Title>
</Col>
</Row>
<Row gutter={{ md: 24 }}>
<Col span={16}>
<Input placeholder="Guide" />
</Col>
<Col span={8}>
<Button type='primary' onClick={() => {}}>Search</Button>
</Col>
</Row>
<Row gutter={{ md: 24 }}>
<Col span={24}>
<Radio.Group options={[
{
label: 'Jim',
value: '1',
},
{
label: 'Giffigan',
value: '2',
},
{
label: 'Herry',
value: '3',
},
{
label: 'Giffigan',
value: '4',
},
{
label: 'Herry',
value: '5',
},
{
label: 'Giffigan',
value: '6',
},
{
label: 'Herry',
value: '7',
},
]} />
</Col>
</Row>
</Space> </Space>
</Modal> </Modal>
<Space direction="vertical" style={{ width: '100%' }}> <Space direction="vertical" style={{ width: '100%' }}>

Loading…
Cancel
Save