diff --git a/src/config.js b/src/config.js index 58e13a2..331cf28 100644 --- a/src/config.js +++ b/src/config.js @@ -6,6 +6,7 @@ export const HT_HOST = import.meta.env.PROD ? "https://p9axztuwd7x8a7.mycht.cn" export const DATE_FORMAT = "YYYY-MM-DD"; export const DATE_FORMAT_MONTH = "YYYY-MM"; export const SMALL_DATETIME_FORMAT = "YYYY-MM-DD 23:59"; +export const OFFICEWEBVIEWERURL = "https://view.officeapps.live.com/op/embed.aspx?wdPrint=1&wdHideGridlines=0&wdHideComments=1&wdEmbedCode=0&src="; const __BUILD_VERSION__ = `__BUILD_VERSION__`.replace(/"/g, '') export const BUILD_VERSION = import.meta.env.PROD ? __BUILD_VERSION__ : import.meta.env.MODE; diff --git a/src/main.jsx b/src/main.jsx index ff392ac..dd3e4f6 100644 --- a/src/main.jsx +++ b/src/main.jsx @@ -30,6 +30,7 @@ import InvoiceDetail from "@/views/invoice/Detail"; import InvoicePaid from "@/views/invoice/Paid"; import InvoicePaidDetail from "@/views/invoice/PaidDetail"; import Airticket from "@/views/airticket/Index"; +import AirticketPlan from "@/views/airticket/Plan"; import './i18n'; @@ -65,6 +66,7 @@ const router = createBrowserRouter([ { path: "invoice/paid",element:}, { path: "invoice/paid/detail/:flid",element:}, { path: "airticket",element:}, + { path: "airticket/plan/:coli_sn",element:}, ] }, { diff --git a/src/stores/Airticket.js b/src/stores/Airticket.js index 1ddc720..d342b83 100644 --- a/src/stores/Airticket.js +++ b/src/stores/Airticket.js @@ -9,7 +9,7 @@ const airTicketStore = create((set, get) => ({ setLoading: loading => set({ loading }), setPlanList: planList => set({ planList }), - async getPlanList(vei_sn, GRI_Name, PNR, TimeStart, TimeEnd) { + async getPlanList(vei_sn, GRI_Name, TimeStart, TimeEnd) { const { setLoading, setPlanList } = get(); setLoading(true); const searchParams = { @@ -17,7 +17,6 @@ const airTicketStore = create((set, get) => ({ FlightDate1: TimeStart, FlightDate2: TimeEnd, GRI_Name: GRI_Name, - PNR: PNR, }; const { errcode, result } = await fetchJSON(`${HT_HOST}/Service_BaseInfoWeb/GetFlightPlan`, searchParams); diff --git a/src/views/airticket/Index.jsx b/src/views/airticket/Index.jsx index 479975c..41f6f2c 100644 --- a/src/views/airticket/Index.jsx +++ b/src/views/airticket/Index.jsx @@ -1,7 +1,7 @@ import { useState, useEffect } from "react"; import { Grid, Divider, Layout, Spin, Input, Col, Row, Space, List, Table } from "antd"; import { PhoneOutlined, CustomerServiceOutlined, AudioOutlined } from "@ant-design/icons"; -import { useParams, useHref, useNavigate } from "react-router-dom"; +import { useParams, useHref, useNavigate, NavLink } from "react-router-dom"; import { isEmpty } from "@/utils/commons"; import dayjs from "dayjs"; import SearchForm from "@/components/SearchForm"; @@ -29,6 +29,11 @@ const planListColumns = [ title: "出发日期", key: "StartDate", dataIndex: "StartDate", + sorter: (a, b) => { + const dateA = new Date(a.StartDate); + const dateB = new Date(b.StartDate); + return dateB.getTime() - dateA.getTime(); + }, }, { title: "出发城市", @@ -49,16 +54,27 @@ const planListColumns = [ title: "起飞时间", key: "FlightTimeStart", dataIndex: "FlightTimeStart", + render: text => { + const hours = text.substring(0, 2); + const minutes = text.substring(2); + return `${hours}:${minutes}`; + }, }, { title: "落地时间", key: "FlightTimeEnd", dataIndex: "FlightTimeEnd", + render: text => { + const hours = text.substring(0, 2); + const minutes = text.substring(2); + return `${hours}:${minutes}`; + }, }, { - title: "PNR 暂时用FlightInfo", + title: "操作", key: "FlightInfo", dataIndex: "FlightInfo", + render: (text, record) => {"编辑"}, }, ]; @@ -83,14 +99,14 @@ const Airticket = props => { dates: [dayjs().startOf("M"), dayjs().endOf("M")], }} fieldsConfig={{ - shows: ["referenceNo", "PNR", "dates"], + shows: ["referenceNo", "dates"], fieldProps: { referenceNo: { label: "搜索计划" }, dates: { label: "出发日期" }, }, }} onSubmit={(err, formVal, filedsVal) => { - getPlanList(travelAgencyId, formVal.referenceNo, formVal.PNR, formVal.startdate, formVal.endtime); + getPlanList(travelAgencyId, formVal.referenceNo, formVal.startdate, formVal.endtime); }} /> diff --git a/src/views/airticket/Plan.jsx b/src/views/airticket/Plan.jsx new file mode 100644 index 0000000..4cd4bf0 --- /dev/null +++ b/src/views/airticket/Plan.jsx @@ -0,0 +1,42 @@ +import { useState, useEffect } from "react"; +import { Grid, Divider, Layout, Spin, Input, Col, Row, Space, List, Table, Button } from "antd"; +import { PhoneOutlined, CustomerServiceOutlined, AudioOutlined } from "@ant-design/icons"; +import { useParams, useHref, useNavigate, NavLink } from "react-router-dom"; +import { isEmpty } from "@/utils/commons"; +import dayjs from "dayjs"; +import { HT_HOST, OFFICEWEBVIEWERURL } from "@/config"; + +import airTicketStore from "@/stores/Airticket"; +import useAuthStore from "@/stores/Auth"; + +const AirticketPlan = props => { + const href = useHref(); + const navigate = useNavigate(); + const { coli_sn } = useParams(); + const [travelAgencyId, loginToken] = useAuthStore( + state => state.loginUser.travelAgencyId, + state => state.loginUser.loginToken + ); + const [getPlanList, planList, loading] = airTicketStore(state => [state.getPlanList, state.planList, state.loading]); + const [loginUser] = useAuthStore(state => [state.loginUser]); + + const reservationUrl = `https://p9axztuwd7x8a7.mycht.cn/service-fileServer/DownloadPlanDoc?GRI_SN=${coli_sn}&VEI_SN=${travelAgencyId}&token=${loginToken}&FileType=1`; + + const reservationPreviewUrl = OFFICEWEBVIEWERURL + encodeURIComponent(reservationUrl); + + useEffect(() => {}, []); + + return ( + + + + + + + + + ); +}; +export default AirticketPlan;