初始化火车出票模块
parent
660bec8594
commit
7acc8a91d7
@ -0,0 +1,139 @@
|
|||||||
|
import { useState, useEffect } from "react";
|
||||||
|
import { Grid, Divider, Layout, Spin, Input, Col, Row, Space, List, Table, Button } from "antd";
|
||||||
|
import { PhoneOutlined, CustomerServiceOutlined, AudioOutlined, AuditOutlined } from "@ant-design/icons";
|
||||||
|
import { useParams, useHref, useNavigate, NavLink } from "react-router-dom";
|
||||||
|
import { isEmpty, formatColonTime } from "@/utils/commons";
|
||||||
|
import dayjs from "dayjs";
|
||||||
|
import SearchForm from "@/components/SearchForm";
|
||||||
|
import { DATE_FORMAT } from "@/config";
|
||||||
|
import { TableExportBtn } from "@/components/Data";
|
||||||
|
import trainTicketStore from "@/stores/Trainticket";
|
||||||
|
import { usingStorage } from "@/hooks/usingStorage";
|
||||||
|
|
||||||
|
const planListColumns = [
|
||||||
|
{
|
||||||
|
title: "团名",
|
||||||
|
key: "GRI_No",
|
||||||
|
dataIndex: "GRI_No",
|
||||||
|
// sorter: (a, b) => b.GRI_No - a.GRI_No,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "组团人",
|
||||||
|
key: "WL",
|
||||||
|
dataIndex: "WL",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "人数",
|
||||||
|
dataIndex: "PersonNum",
|
||||||
|
key: "PersonNum",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
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: "出发城市",
|
||||||
|
key: "FromCity",
|
||||||
|
dataIndex: "FromCity",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "抵达城市",
|
||||||
|
key: "ToCity",
|
||||||
|
dataIndex: "ToCity",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "航班",
|
||||||
|
key: "FlightNo",
|
||||||
|
dataIndex: "FlightNo",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "起飞时间",
|
||||||
|
key: "FlightStart",
|
||||||
|
dataIndex: "FlightStart",
|
||||||
|
render: text => formatColonTime(text),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "落地时间",
|
||||||
|
key: "FlightEnd",
|
||||||
|
dataIndex: "FlightEnd",
|
||||||
|
render: text => formatColonTime(text),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "出票处理",
|
||||||
|
key: "TicketIssued",
|
||||||
|
dataIndex: "TicketIssued",
|
||||||
|
render: (text, record) => record.TicketIssuedName,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "计划状态",
|
||||||
|
key: "FlightStatus",
|
||||||
|
dataIndex: "FlightStatus",
|
||||||
|
render: (text, record) => record.FlightStatusName,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "操作",
|
||||||
|
key: "FlightInfo",
|
||||||
|
dataIndex: "FlightInfo",
|
||||||
|
render: (text, record) => <NavLink to={`/airticket/plan/${record.COLI_SN}/${record.GRI_SN}`}>{"编辑"}</NavLink>,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
const Trainticket = props => {
|
||||||
|
const navigate = useNavigate();
|
||||||
|
const { travelAgencyId } = usingStorage();
|
||||||
|
const [getPlanList, planList, loading] = trainTicketStore(state => [state.getPlanList, state.planList, state.loading]);
|
||||||
|
const showTotal = total => `合计 ${total} `;
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
!planList && getPlanList(travelAgencyId, "", dayjs().startOf("M").format(DATE_FORMAT), dayjs().add(3, "M").endOf("M").format(DATE_FORMAT), "-1", "-1");
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Space direction="vertical" style={{ width: "100%" }}>
|
||||||
|
<Row>
|
||||||
|
<Col md={20} lg={20} xxl={20}>
|
||||||
|
<SearchForm
|
||||||
|
initialValue={{
|
||||||
|
dates: [dayjs().startOf("M"), dayjs().add(3, "M").endOf("M")],
|
||||||
|
}}
|
||||||
|
fieldsConfig={{
|
||||||
|
shows: ["referenceNo", "dates", "airticket_state", "plan_state"],
|
||||||
|
fieldProps: {
|
||||||
|
referenceNo: { label: "搜索计划" },
|
||||||
|
dates: { label: "出发日期", col: 8 },
|
||||||
|
},
|
||||||
|
}}
|
||||||
|
onSubmit={(err, formVal, filedsVal) => {
|
||||||
|
getPlanList(travelAgencyId, formVal.referenceNo, formVal.startdate, formVal.endtime, formVal.plan_state, formVal.airticket_state);
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
<Col md={4} lg={4} xxl={4}>
|
||||||
|
<Space>
|
||||||
|
<Button icon={<AuditOutlined />} onClick={() => navigate(`/airticket/invoice`)}>
|
||||||
|
报账
|
||||||
|
</Button>
|
||||||
|
<Button icon={<AuditOutlined />} onClick={() => navigate(`/airticket/invoicepaid`)}>
|
||||||
|
汇款记录
|
||||||
|
</Button>
|
||||||
|
</Space>
|
||||||
|
</Col>
|
||||||
|
</Row>
|
||||||
|
|
||||||
|
<Row gutter={16}>
|
||||||
|
<Col md={24} lg={24} xxl={24}>
|
||||||
|
<Table bordered={true} rowKey="id" columns={planListColumns} dataSource={planList} loading={loading} pagination={{ defaultPageSize: 20, showTotal: showTotal }} />
|
||||||
|
<TableExportBtn btnTxt="导出计划" label={`机票计划`} {...{ columns: planListColumns, dataSource: planList }} />
|
||||||
|
</Col>
|
||||||
|
<Col md={24} lg={24} xxl={24}></Col>
|
||||||
|
</Row>
|
||||||
|
</Space>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
export default Trainticket;
|
@ -0,0 +1,137 @@
|
|||||||
|
import { useState, useEffect } from "react";
|
||||||
|
import { Grid, Divider, Layout, Spin, Input, Col, Row, Space, Checkbox, Table, Button, App } from "antd";
|
||||||
|
import { PhoneOutlined, CustomerServiceOutlined, FrownTwoTone, LikeTwoTone } from "@ant-design/icons";
|
||||||
|
import { useParams, useHref, useNavigate, NavLink } from "react-router-dom";
|
||||||
|
import { isEmpty, formatColonTime, formatDate, isNotEmpty } from "@/utils/commons";
|
||||||
|
import { DATE_FORMAT } from "@/config";
|
||||||
|
import dayjs from "dayjs";
|
||||||
|
import SearchForm from "@/components/SearchForm";
|
||||||
|
import BackBtn from "@/components/BackBtn";
|
||||||
|
import { TableExportBtn } from "@/components/Data";
|
||||||
|
import useInvoiceStore from "@/stores/Invoice";
|
||||||
|
import { fetchInvoicePaidDetail } from "@/stores/Invoice";
|
||||||
|
|
||||||
|
import airTicketStore from "@/stores/Airticket";
|
||||||
|
import { usingStorage } from "@/hooks/usingStorage";
|
||||||
|
|
||||||
|
const InvoicePaid = props => {
|
||||||
|
const navigate = useNavigate();
|
||||||
|
const { notification } = App.useApp();
|
||||||
|
const { travelAgencyId } = usingStorage();
|
||||||
|
const [invoicePaidDetail, setInvoicePaidDetail] = useState([]);
|
||||||
|
const [invoiceNO, setInvoiceNO] = useState([]); //显示账单编号
|
||||||
|
const [loading, invoicePaid, fetchInvoicePaid] = useInvoiceStore(state => [state.loading, state.invoicePaid, state.fetchInvoicePaid]);
|
||||||
|
const showTotal = total => `Total ${total} items`;
|
||||||
|
const showTotal_detail = total => `Total ${total} items`;
|
||||||
|
useEffect(() => {
|
||||||
|
// fetchInvoicePaid(travelAgencyId, "", dayjs().subtract(2, "M").startOf("M").format(DATE_FORMAT), dayjs().endOf("M").format(DATE_FORMAT));
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
const invoicePaidColumns = [
|
||||||
|
{
|
||||||
|
title: "编号",
|
||||||
|
dataIndex: "fl_finaceNo",
|
||||||
|
key: "fl_finaceNo",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "报账日期",
|
||||||
|
key: "fl_adddate",
|
||||||
|
dataIndex: "fl_adddate",
|
||||||
|
render: (text, record) => (isNotEmpty(text) ? formatDate(new Date(text)) : ""),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "团数",
|
||||||
|
key: "fcount",
|
||||||
|
dataIndex: "fcount",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "总额",
|
||||||
|
key: "pSum",
|
||||||
|
dataIndex: "pSum",
|
||||||
|
//render: (text, record) => (isNotEmpty(record.GMD_Currency) ? record.GMD_Currency + " " + text : text),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "查看",
|
||||||
|
key: "pSum",
|
||||||
|
dataIndex: "pSum",
|
||||||
|
render: (text, record) => (
|
||||||
|
<Button
|
||||||
|
type="link"
|
||||||
|
onClick={() => {
|
||||||
|
fetchInvoicePaidDetail(travelAgencyId, record.key).then(res => setInvoicePaidDetail(res));
|
||||||
|
setInvoiceNO(record.fl_finaceNo);
|
||||||
|
}}>
|
||||||
|
查看明细
|
||||||
|
</Button>
|
||||||
|
),
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
const invoicePaidDetailColumns = [
|
||||||
|
{
|
||||||
|
title: "团号",
|
||||||
|
dataIndex: "fl2_GroupName",
|
||||||
|
key: "fl2_GroupName",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "金额",
|
||||||
|
key: "fl2_price",
|
||||||
|
dataIndex: "fl2_price",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "报账日期",
|
||||||
|
key: "fl2_ArriveDate",
|
||||||
|
dataIndex: "fl2_ArriveDate",
|
||||||
|
render: (text, record) => (isNotEmpty(text) ? formatDate(new Date(text)) : ""),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "顾问",
|
||||||
|
dataIndex: "fl2_wl",
|
||||||
|
key: "fl2_wl",
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Space direction="vertical" style={{ width: "100%" }}>
|
||||||
|
<Row>
|
||||||
|
<Col md={20} lg={20} xxl={20}>
|
||||||
|
<SearchForm
|
||||||
|
initialValue={{
|
||||||
|
dates: [dayjs().subtract(2, "M").startOf("M"), dayjs().endOf("M")],
|
||||||
|
}}
|
||||||
|
fieldsConfig={{
|
||||||
|
shows: ["dates"],
|
||||||
|
fieldProps: {
|
||||||
|
dates: { col: 10, label: "报账日期" },
|
||||||
|
},
|
||||||
|
}}
|
||||||
|
onSubmit={(err, formVal) => {
|
||||||
|
fetchInvoicePaid(travelAgencyId, "", formVal.startdate, formVal.enddate);
|
||||||
|
setInvoicePaidDetail([]);
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
<Col md={4} lg={4} xxl={4}>
|
||||||
|
<BackBtn to={"/airticket"} />
|
||||||
|
</Col>
|
||||||
|
</Row>
|
||||||
|
|
||||||
|
<Row>
|
||||||
|
<Col md={24} lg={16} xxl={16}>
|
||||||
|
<Divider orientation="left">汇款列表</Divider>
|
||||||
|
<Table bordered columns={invoicePaidColumns} dataSource={invoicePaid} loading={loading} pagination={{ defaultPageSize: 20, showTotal: showTotal }} />
|
||||||
|
</Col>
|
||||||
|
<Col md={24} lg={4} xxl={4}></Col>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Col md={24} lg={20} xxl={20}>
|
||||||
|
<Divider orientation="left">账单明细 {invoiceNO}</Divider>
|
||||||
|
<Table bordered columns={invoicePaidDetailColumns} dataSource={invoicePaidDetail} pagination={{ defaultPageSize: 100, showTotal: showTotal_detail }} />
|
||||||
|
<TableExportBtn btnTxt="导出账单明细" label={`机票账单`} {...{ columns: invoicePaidDetailColumns, dataSource: invoicePaidDetail }} />
|
||||||
|
</Col>
|
||||||
|
<Col md={24} lg={4} xxl={4}></Col>
|
||||||
|
</Row>
|
||||||
|
</Space>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
export default InvoicePaid;
|
Loading…
Reference in New Issue