// 订单汇总统计 import { ConnectState } from "@/models/connect"; import { useEffect, useRef, useState } from "react"; import { connect, CurrentUser } from "umi"; import { handeGetGetOnlineOrderSummary, handeGetSaleBillWholeList } from "../service"; import { Button, Col, FormInstance, Row, Tooltip } from "antd"; import ProForm, { ProFormDateRangePicker } from "@ant-design/pro-form"; import ProTable, { ActionType } from "@ant-design/pro-table"; import moment from 'moment' import './SummaryOfReservation.less' import addIcon from '@/assets/detail/addIcon.png' import reduceIcon from '@/assets/detail/reduceIcon.png' import { handleSetlogSave } from "@/utils/format"; import OrderDetailModal from "../BookingMealOrder/components/orderDetailModal"; import PageTitleBox from "@/components/PageTitleBox"; const SummaryOfReservation: React.FC<{ currentUser: CurrentUser | undefined }> = (props) => { const { currentUser } = props const actionRef = useRef(); const formRef = useRef(); // 搜索参数 const [searchParams, setSearchParams] = useState({ StartDate: moment().startOf('M').format('YYYY-MM-DD'), EndDate: moment().format('YYYY-MM-DD') }) // 当前顶部的选择到了第几个 const [selectTab, setSelectTab] = useState(1) // 顶部内容的对象值 const [topData, setTopData] = useState() const [modalVisible, handleModalVisible] = useState(); const [currentRow, setCurrentRow] = useState(); // 算的列表合计 const [tableSumDetail, setTableSumDetail] = useState() // 选择的tab const [selectPageTab, setSelectPageTab] = useState(1) const columns: any = [ { dataIndex: 'searchText', title: '查询内容', hideInTable: true, }, { title: '查询时间', dataIndex: 'search_date', valueType: 'dateRange', hideInTable: true, hideInDescriptions: true, search: { transform: (value) => { return { ORDER_DATE_Start: value[0], ORDER_DATE_End: value[1], }; }, }, initialValue: [moment().add(-1, 'M').format('YYYY-MM-DD'), moment().format('YYYY-MM-DD')], }, { dataIndex: "index", title: "序号", align: 'center', hideInSearch: true, valueType: "index", width: 120, ellipsis: true, }, { dataIndex: 'SALEBILL_CODE', title: '订单编号', align: 'center', hideInSearch: true, width: 250, ellipsis: true, render: (_, record) => { return record?.SALEBILL_CODE ? record?.SALEBILL_CODE === '合计' ? '合计' : { setCurrentRow(record); handleModalVisible(true) handleSetlogSave(`查看编号为【${record?.SALEBILL_CODE}】的订单`) }}>{record?.SALEBILL_CODE} : "-" } }, { dataIndex: 'SHOPNAME', title: '门店名称', align: 'center', hideInSearch: true, width: 150, ellipsis: true, }, { dataIndex: 'ORDER_PERSON', title: '下单人员', align: 'center', hideInSearch: true, width: 250, ellipsis: true, }, { dataIndex: 'TOTAL_COUNT', title: '销售数量', align: 'center', hideInSearch: true, width: 250, ellipsis: true, }, { dataIndex: 'ORDER_AMOUNT', title: '订单金额', align: 'center', hideInSearch: true, width: 120, ellipsis: true, }, { dataIndex: 'COUPON_AMOUNT', title: '优惠金额', align: 'center', hideInSearch: true, width: 120, ellipsis: true, }, { dataIndex: 'PAY_AMOUNT', title: '实付金额', align: 'center', hideInSearch: true, width: 120, ellipsis: true, }, { title: "获得积分", dataIndex: "MEMBERSHIP_POINT", width: 120, hideInSearch: true, ellipsis: true, align: "center", }, { title: "获得成长值", dataIndex: "MEMBERGROWTH_VALUE", width: 120, hideInSearch: true, ellipsis: true, align: "center", }, { dataIndex: 'ORDER_DATE', title: '订单时间', align: 'center', hideInSearch: true, width: 170, ellipsis: true, render: (_, record) => { return record?.SALEBILL_CODE === '合计' ? '' : record?.ORDER_DATE ? moment(record?.ORDER_DATE).format('YYYY-MM-DD HH:mm:ss') : '' } }, { dataIndex: 'SALEBILL_STATE', title: '订单状态', align: 'center', width: 120, ellipsis: true, valueType: 'select', valueEnum: { "0": "全部", "1005": "订单待支付", "1010": "订单待制作", "2000": "订单待取餐", "3000": "订单已完成", "8000": "退款申请中", "8900": "订单已退款", "9000": "订单已关闭", "9999": "订单已撤销", }, initialValue: "0" } ] // 获取顶部的数据 const handleGetTopData = async (StartDate?: string, EndDate?: string) => { const req: any = { CalcType: 1, OwnerUnitId: currentUser?.OwnerUnitId, StartDate: StartDate || searchParams?.StartDate || "", EndDate: EndDate || searchParams?.EndDate || "", SalebillType: selectPageTab === 1 ? "6000" : "3000,3001,3002", MerchantId: "" } const data = await handeGetGetOnlineOrderSummary(req) console.log('datadatadatadata', data); if (data && data.length > 0) { let obj: any = data[0] setTopData(obj) } else { setTopData(null) } } // 改变顶部的选择 const handleChangeTab = (value: number) => { setSelectTab(value) actionRef.current?.reload() } // 关闭悬浮框 const handleCloseModal = () => { handleModalVisible(false) setCurrentRow(undefined); } useEffect(() => { handleGetTopData() }, []) useEffect(() => { // 每当 selectPageTab 改变时执行 handleGetTopData() actionRef.current?.reload() }, [selectPageTab]) return (
{ setSelectPageTab(1) }}>预约点餐订单汇总
{ setSelectPageTab(2) }}>商城订单汇总
{ console.log('values', values); let [StartDate, EndDate] = ['', ''] if (values.searchTime && values.searchTime.length > 0) { [StartDate, EndDate] = values.searchTime } handleGetTopData(StartDate, EndDate) setSearchParams({ StartDate: StartDate, EndDate: EndDate }) actionRef.current?.reload() }} >
{ handleChangeTab(1) }}>
实际销售金额(扣除退款)
{topData && topData?.TotalActualAmount ? topData?.TotalActualAmount.summaryData : "-"}
环比增长
{ topData && topData?.TotalActualAmount && topData?.TotalActualAmount.QOQData && topData?.TotalActualAmount.summaryData ? 0 ? addIcon : reduceIcon} /> : "" } { topData && topData?.TotalActualAmount && topData?.TotalActualAmount.QOQData && topData?.TotalActualAmount.summaryData ? {(((topData?.TotalActualAmount.summaryData - topData?.TotalActualAmount.QOQData) / topData?.TotalActualAmount.QOQData) * 100).toFixed(2) + '%'} : "-" }
{ handleChangeTab(2) }}>
成交销售金额
{topData && topData?.TotalSuccAmount ? topData?.TotalSuccAmount.summaryData : "-"}
环比增长
{ topData && topData?.TotalSuccAmount && topData?.TotalSuccAmount.QOQData && topData?.TotalSuccAmount.summaryData ? 0 ? addIcon : reduceIcon} /> : "" } { topData && topData?.TotalSuccAmount && topData?.TotalSuccAmount.QOQData && topData?.TotalSuccAmount.summaryData ? // {topData && topData?.TotalSuccAmount ? topData?.TotalSuccAmount.QOQData : "-"} {(((topData?.TotalSuccAmount.summaryData - topData?.TotalSuccAmount.QOQData) / topData?.TotalSuccAmount.QOQData) * 100).toFixed(2) + '%'} : "-" }
{ handleChangeTab(3) }}>
成交订单笔数
{topData && topData?.TotalSuccTicket ? topData?.TotalSuccTicket.summaryData : "-"}
环比增长
{ topData && topData?.TotalSuccTicket && topData?.TotalSuccTicket.QOQData && topData?.TotalSuccTicket.summaryData ? 0 ? addIcon : reduceIcon} /> : "" } { topData && topData?.TotalSuccTicket && topData?.TotalSuccTicket.QOQData && topData?.TotalSuccTicket.summaryData ? // {topData && topData?.TotalSuccTicket ? topData?.TotalSuccTicket.QOQData : "-"} {(((topData?.TotalSuccTicket.summaryData - topData?.TotalSuccTicket.QOQData) / topData?.TotalSuccTicket.QOQData) * 100).toFixed(2) + '%'} : "-" }
{ handleChangeTab(4) }}>
成交销售数量
{topData && topData?.TotalCount ? topData?.TotalCount.summaryData : "-"}
环比增长
{ topData && topData?.TotalCount && topData?.TotalCount.QOQData && topData?.TotalCount.summaryData ? 0 ? addIcon : reduceIcon} /> : "" } { topData && topData?.TotalCount && topData?.TotalCount.QOQData && topData?.TotalCount.summaryData ? // {topData && topData?.TotalCount ? topData?.TotalCount.QOQData : "-"} {(((topData?.TotalCount.summaryData - topData?.TotalCount.QOQData) / topData?.TotalCount.QOQData) * 100).toFixed(2) + '%'} : "-" }
{ handleChangeTab(5) }}>
交易失败笔数
{topData && topData?.TotalFailureTicket ? topData?.TotalFailureTicket.summaryData : "-"}
环比增长
{ topData && topData?.TotalFailureTicket && topData?.TotalFailureTicket.QOQData && topData?.TotalFailureTicket.summaryData ? 0 ? addIcon : reduceIcon} /> : "" } { topData && topData?.TotalFailureTicket && topData?.TotalFailureTicket.QOQData && topData?.TotalFailureTicket.summaryData ? // {topData && topData?.TotalFailureTicket ? topData?.TotalFailureTicket.QOQData : "-"} {(((topData?.TotalFailureTicket.summaryData - topData?.TotalFailureTicket.QOQData) / topData?.TotalFailureTicket.QOQData) * 100).toFixed(2) + '%'} : "-" }
{ handleChangeTab(6) }}>
退款订单笔数
{topData && topData?.TotalRefundTicket ? topData?.TotalRefundTicket.summaryData : "-"}
环比增长
{ topData && topData?.TotalRefundTicket && topData?.TotalRefundTicket.QOQData && topData?.TotalRefundTicket.summaryData ? 0 ? addIcon : reduceIcon} /> : "" } { topData && topData?.TotalRefundTicket && topData?.TotalRefundTicket.QOQData && topData?.TotalRefundTicket.summaryData ? // {topData && topData?.TotalRefundTicket ? topData?.TotalRefundTicket.QOQData : "-"} {(((topData?.TotalRefundTicket.summaryData - topData?.TotalRefundTicket.QOQData) / topData?.TotalRefundTicket.QOQData) * 100).toFixed(2) + '%'} : "-" }
{ handleChangeTab(7) }}>
退款订单金额
{topData && topData?.TotalRefundAmount ? topData?.TotalRefundAmount.summaryData : "-"}
环比增长
{ topData && topData?.TotalRefundAmount && topData?.TotalRefundAmount.QOQData && topData?.TotalRefundAmount.summaryData ? 0 ? addIcon : reduceIcon} /> : "" } { topData && topData?.TotalRefundAmount && topData?.TotalRefundAmount.QOQData && topData?.TotalRefundAmount.summaryData ? // {topData && topData?.TotalRefundAmount ? topData?.TotalRefundAmount.QOQData : "-"} {(((topData?.TotalRefundAmount.summaryData - topData?.TotalRefundAmount.QOQData) / topData?.TotalRefundAmount.QOQData) * 100).toFixed(2) + '%'} : "-" }
{/*
{ handleChangeTab(8) }}>
用户访问量
{topData && topData?.VisitCount ? topData?.VisitCount.summaryData : "-"}
环比增长
{ topData && topData?.VisitCount && topData?.VisitCount.QOQData && topData?.VisitCount.summaryData ? 0 ? addIcon : reduceIcon} /> : "" } { topData && topData?.VisitCount && topData?.VisitCount.QOQData && topData?.VisitCount.summaryData ? // {topData && topData?.VisitCount ? topData?.VisitCount.QOQData : "-"} {(((topData?.VisitCount.summaryData - topData?.VisitCount.QOQData) / topData?.VisitCount.QOQData) * 100).toFixed(2) + '%'} : "-" }
{ handleChangeTab(9) }}>
用户收藏量
{topData && topData?.CollectionCount ? topData?.CollectionCount.summaryData : "-"}
环比增长
{ topData && topData?.CollectionCount && topData?.CollectionCount.QOQData && topData?.CollectionCount.summaryData ? 0 ? addIcon : reduceIcon} /> : "" } { topData && topData?.CollectionCount && topData?.CollectionCount.QOQData && topData?.CollectionCount.summaryData ? // {topData && topData?.CollectionCount ? topData?.CollectionCount.QOQData : "-"} {(((topData?.CollectionCount.summaryData - topData?.CollectionCount.QOQData) / topData?.CollectionCount.QOQData) * 100).toFixed(2) + '%'} : "-" }
{ handleChangeTab(10) }}>
商品数量
{topData && topData?.CommodityCount ? topData?.CommodityCount.summaryData : "-"}
环比增长
{ topData && topData?.CommodityCount && topData?.CommodityCount.QOQData && topData?.CommodityCount.summaryData ? 0 ? addIcon : reduceIcon} /> : "" } { topData && topData?.CommodityCount && topData?.CommodityCount.QOQData && topData?.CommodityCount.summaryData ? // {topData && topData?.CommodityCount ? topData?.CommodityCount.QOQData : "-"} {(((topData?.CommodityCount.summaryData - topData?.CommodityCount.QOQData) / topData?.CommodityCount.QOQData) * 100).toFixed(2) + '%'} : "-" }
*/}
`${record?.SALEBILL_CODE}-${record?.ORDER_DATE}`} formRef={formRef} bordered actionRef={actionRef} search={false} options={false} request={async (params, sorter) => { const req = { searchParameter: { SALEBILL_TYPES: selectPageTab === 1 ? 6000 : "3000,3001,3002", OWNERUNIT_ID: currentUser?.OwnerUnitId, ORDER_DATE_Start: searchParams?.StartDate || "", ORDER_DATE_End: searchParams?.EndDate || "", SALEBILL_STATES: selectTab == 1 ? '1010,2000,3000,8000' : selectTab == 2 ? '1010,2000,3000,8000,8900' : selectTab == 3 ? '1010,2000,3000,8000,8900' : selectTab == 4 ? '1010,2000,3000,8000,8900' : selectTab == 5 ? '9000,9999' : selectTab == 6 ? '8900' : selectTab == 7 ? '8900' : selectTab == 8 ? '' : selectTab == 9 ? '' : selectTab == 10 ? '' : '', SearchKeyValue: params?.searchText || "" }, PageIndex: 1, PageSize: 999999, SortStr: "ORDER_DATE desc", } const data = await handeGetSaleBillWholeList(req) handleSetlogSave(`点击查询按钮`) console.log('datadatadatadatadata', data); if (data.List && data.List.length > 0) { let PAY_AMOUNTSUM: number = 0 let ORDER_AMOUNTSUM: number = 0 let COUPON_AMOUNTSUM: number = 0 let TOTAL_COUNTSUM: number = 0 data.List.forEach((item: any) => { PAY_AMOUNTSUM += item.PAY_AMOUNT ORDER_AMOUNTSUM += item.ORDER_AMOUNT COUPON_AMOUNTSUM += item.COUPON_AMOUNT TOTAL_COUNTSUM += item.TOTAL_COUNT }) let sumTotal: any = { PAY_AMOUNT: PAY_AMOUNTSUM.toFixed(2), ORDER_AMOUNT: ORDER_AMOUNTSUM.toFixed(2), COUPON_AMOUNT: COUPON_AMOUNTSUM.toFixed(2), TOTAL_COUNT: TOTAL_COUNTSUM.toFixed(0), SALEBILL_CODE: "合计", ORDER_DATE: 1 } let res: any = [{ ...sumTotal, children: data.List }] return { data: res, success: true } // , total: data.TotalCount } return { data: [], success: true } }} pagination={false} columns={columns} expandable={{ defaultExpandedRowKeys: ["合计-1"], // defaultExpandAllRows: true, // 默认展开所有行(包括合计行) // indentSize: 0, // 可选:调整缩进大小 }} />
) } export default connect(({ user }: ConnectState) => ({ currentUser: user.currentUser }))(SummaryOfReservation);