初始化火车出票模块
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