|
|
@ -23,43 +23,15 @@ import errorImg from '@/assets/images/error-img-new.png' |
|
|
|
import { QuestionCircleOutlined } from '@ant-design/icons'; |
|
|
|
import { TableModule } from "@/components"; |
|
|
|
import "./index.scss"; |
|
|
|
import { |
|
|
|
payRecordColumns, |
|
|
|
refundRecordColumns, |
|
|
|
operatorRecordColumns, |
|
|
|
} from "./dataSource"; |
|
|
|
|
|
|
|
// import errorImg from "@/assets/images/layout/error.png" |
|
|
|
// import { useLocation } from "react-router-dom"; |
|
|
|
const { TextArea } = Input; |
|
|
|
|
|
|
|
let array = []; |
|
|
|
|
|
|
|
function BillingRule() { |
|
|
|
const roadContent = ( |
|
|
|
<div> |
|
|
|
<p>出场时间-入场时间的计算金额</p> |
|
|
|
</div> |
|
|
|
) |
|
|
|
const receivableContent = ( |
|
|
|
<div> |
|
|
|
<p>订单金额-折扣金额</p> |
|
|
|
</div> |
|
|
|
) |
|
|
|
const discountContent = ( |
|
|
|
<div> |
|
|
|
<p>折扣金额=停车卡抵扣+路段折扣</p> |
|
|
|
</div> |
|
|
|
) |
|
|
|
const preferentialContent = ( |
|
|
|
<div> |
|
|
|
<p>优惠券支付金额</p> |
|
|
|
</div> |
|
|
|
) |
|
|
|
const refundContent = ( |
|
|
|
<div> |
|
|
|
<p>退款总计=退实付+退优惠</p> |
|
|
|
</div> |
|
|
|
) |
|
|
|
function PileMonitor() { |
|
|
|
|
|
|
|
const columns = [ |
|
|
|
{ |
|
|
|
title: "序号", |
|
|
@ -139,88 +111,8 @@ function BillingRule() { |
|
|
|
width: 100, |
|
|
|
align: "center", |
|
|
|
}, |
|
|
|
{ |
|
|
|
title: <Popover content={roadContent} > |
|
|
|
订单金额 |
|
|
|
<QuestionCircleOutlined /> |
|
|
|
</Popover>, |
|
|
|
dataIndex: "order_amount", |
|
|
|
key: "order_amount", |
|
|
|
width: 100, |
|
|
|
align: "center", |
|
|
|
// filterDropdown: true, |
|
|
|
// filterIcon: |
|
|
|
// <Popover content={roadContent} > |
|
|
|
// <QuestionCircleOutlined /> |
|
|
|
// </Popover> |
|
|
|
}, |
|
|
|
{ |
|
|
|
title: <Popover content={receivableContent} > |
|
|
|
应收金额 |
|
|
|
<QuestionCircleOutlined /> |
|
|
|
</Popover>, |
|
|
|
dataIndex: "receivable_amount", |
|
|
|
key: "receivable_amount", |
|
|
|
width: 100, |
|
|
|
align: "center", |
|
|
|
// filterDropdown: true, |
|
|
|
// filterIcon: |
|
|
|
// <Popover content={receivableContent} > |
|
|
|
// <QuestionCircleOutlined /> |
|
|
|
// </Popover> |
|
|
|
}, |
|
|
|
{ |
|
|
|
title: <Popover content={discountContent} > |
|
|
|
折扣金额 |
|
|
|
<QuestionCircleOutlined /> |
|
|
|
</Popover>, |
|
|
|
dataIndex: "discount_amount", |
|
|
|
key: "discount_amount", |
|
|
|
width: 100, |
|
|
|
align: "center", |
|
|
|
// filterDropdown: true, |
|
|
|
// filterIcon: |
|
|
|
// <Popover content={discountContent} > |
|
|
|
// <QuestionCircleOutlined /> |
|
|
|
// </Popover> |
|
|
|
}, |
|
|
|
{ |
|
|
|
title: <Popover content={preferentialContent} > |
|
|
|
优惠金额 |
|
|
|
<QuestionCircleOutlined /> |
|
|
|
</Popover>, |
|
|
|
dataIndex: "preferential_amount", |
|
|
|
key: "preferential_amount", |
|
|
|
width: 100, |
|
|
|
align: "center", |
|
|
|
// filterDropdown: true, |
|
|
|
// filterIcon: |
|
|
|
// <Popover content={preferentialContent} > |
|
|
|
// <QuestionCircleOutlined /> |
|
|
|
// </Popover> |
|
|
|
}, |
|
|
|
{ |
|
|
|
title: "实付金额", |
|
|
|
dataIndex: "actual_amount", |
|
|
|
key: "actual_amount", |
|
|
|
width: 100, |
|
|
|
align: "center", |
|
|
|
}, |
|
|
|
{ |
|
|
|
title: <Popover content={refundContent} > |
|
|
|
退款总计 |
|
|
|
<QuestionCircleOutlined /> |
|
|
|
</Popover>, |
|
|
|
dataIndex: "refund_total", |
|
|
|
key: "refund_total", |
|
|
|
width: 100, |
|
|
|
align: "center", |
|
|
|
// filterDropdown: true, |
|
|
|
// filterIcon: |
|
|
|
// <Popover content={refundContent} > |
|
|
|
// <QuestionCircleOutlined /> |
|
|
|
// </Popover> |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
{ |
|
|
|
title: "停车记录ID", |
|
|
|
dataIndex: "park_id", |
|
|
@ -759,368 +651,8 @@ function BillingRule() { |
|
|
|
search={search} |
|
|
|
exportUrl="/api/bpm/record/get_record_export" |
|
|
|
/> |
|
|
|
<Modal |
|
|
|
open={detailVisible} |
|
|
|
width={1500} |
|
|
|
className="totalModal" |
|
|
|
onCancel={() => { |
|
|
|
setDetailVisible(false); |
|
|
|
setTabKey("1"); |
|
|
|
}} |
|
|
|
destroyOnClose |
|
|
|
> |
|
|
|
<Tabs activeKey={tabKey} onChange={changeKey}> |
|
|
|
<Tabs.TabPane tab="停车记录信息" key="1"> |
|
|
|
{renderParkRecord(parkingRecordDetail)} |
|
|
|
</Tabs.TabPane> |
|
|
|
<Tabs.TabPane tab="支付记录" key="2"> |
|
|
|
{renderModalTable(payRecordColumns, payRecord)} |
|
|
|
</Tabs.TabPane> |
|
|
|
<Tabs.TabPane tab="退款订单" key="3"> |
|
|
|
{renderModalTable(refundRecordColumns, refundRecord)} |
|
|
|
</Tabs.TabPane> |
|
|
|
<Tabs.TabPane tab="操作记录" key="4"> |
|
|
|
{renderModalTable(operatorRecordColumns, operationRecord)} |
|
|
|
</Tabs.TabPane> |
|
|
|
<Tabs.TabPane tab="历史处理" key="5"> |
|
|
|
{renderModalTable(historyProgressColumns, historyProgressRecord)} |
|
|
|
</Tabs.TabPane> |
|
|
|
</Tabs> |
|
|
|
<Modal |
|
|
|
title="异常订单处理记录审核" |
|
|
|
visible={historyVisible} |
|
|
|
onCancel={() => { |
|
|
|
setHistoryVisible(false); |
|
|
|
}} |
|
|
|
className="hanleHistoyModal" |
|
|
|
footer={null} |
|
|
|
width={1000} |
|
|
|
> |
|
|
|
<Table |
|
|
|
columns={h_columns} |
|
|
|
dataSource={[ |
|
|
|
{ |
|
|
|
park_id: historyDataDetail.park_id, |
|
|
|
plate: historyDataDetail.plate, |
|
|
|
park_name: historyDataDetail?.road, |
|
|
|
in_time: historyDataDetail.in_time, |
|
|
|
admission_time: historyDataDetail?.out_time, |
|
|
|
}, |
|
|
|
]} |
|
|
|
pagination={false} |
|
|
|
// className="yisa-table" |
|
|
|
/> |
|
|
|
<Descriptions title="车场详情"> |
|
|
|
<Descriptions.Item label="停车场名称"> |
|
|
|
{historyDataDetail?.road} |
|
|
|
</Descriptions.Item> |
|
|
|
<Descriptions.Item label="区域"> |
|
|
|
{historyDataDetail.region} |
|
|
|
</Descriptions.Item> |
|
|
|
<Descriptions.Item label="商户名称"> |
|
|
|
{historyDataDetail.operator} |
|
|
|
</Descriptions.Item> |
|
|
|
<Descriptions.Item label="泊位号"> |
|
|
|
{historyDataDetail.berth_id} |
|
|
|
</Descriptions.Item> |
|
|
|
<Descriptions.Item label="车场类型"> |
|
|
|
{historyDataDetail.road_type} |
|
|
|
</Descriptions.Item> |
|
|
|
</Descriptions> |
|
|
|
<Descriptions title="车辆详情"> |
|
|
|
<Descriptions.Item label="车牌号"> |
|
|
|
{historyDataDetail.plate} |
|
|
|
</Descriptions.Item> |
|
|
|
<Descriptions.Item label="停车时长"> |
|
|
|
{historyDataDetail.admission_time} |
|
|
|
</Descriptions.Item> |
|
|
|
<Descriptions.Item label="入场时间"> |
|
|
|
{historyDataDetail.in_time} |
|
|
|
</Descriptions.Item> |
|
|
|
<Descriptions.Item label="出场时间"> |
|
|
|
{historyDataDetail.out_time} |
|
|
|
</Descriptions.Item> |
|
|
|
<Descriptions.Item label="入场记录来源"> |
|
|
|
{historyDataDetail.in_source} |
|
|
|
</Descriptions.Item> |
|
|
|
<Descriptions.Item label="出场记录来源"> |
|
|
|
{historyDataDetail.out_source} |
|
|
|
</Descriptions.Item> |
|
|
|
<Descriptions.Item label="出入场图像"> |
|
|
|
<a |
|
|
|
onClick={() => { |
|
|
|
setPlatePhotoModal(true); |
|
|
|
}} |
|
|
|
> |
|
|
|
查看 |
|
|
|
</a> |
|
|
|
</Descriptions.Item> |
|
|
|
</Descriptions> |
|
|
|
<Descriptions title="订单详情"> |
|
|
|
<Descriptions.Item label="订单金额"> |
|
|
|
{historyDataDetail.order_amount} |
|
|
|
</Descriptions.Item> |
|
|
|
<Descriptions.Item label="优惠总计"> |
|
|
|
{historyDataDetail.preferential_total} |
|
|
|
</Descriptions.Item> |
|
|
|
<Descriptions.Item label="实付总计"> |
|
|
|
{historyDataDetail.actual_amount} |
|
|
|
</Descriptions.Item> |
|
|
|
<Descriptions.Item label="欠费总计"> |
|
|
|
{historyDataDetail.arrears_mount} |
|
|
|
</Descriptions.Item> |
|
|
|
</Descriptions> |
|
|
|
<Descriptions |
|
|
|
title="流程查看" |
|
|
|
extra={ |
|
|
|
isShowAll ? ( |
|
|
|
<a |
|
|
|
onClick={() => { |
|
|
|
setIsShowAll(false); |
|
|
|
}} |
|
|
|
> |
|
|
|
返回 |
|
|
|
</a> |
|
|
|
) : ( |
|
|
|
<a |
|
|
|
onClick={() => { |
|
|
|
setIsShowAll(true); |
|
|
|
}} |
|
|
|
> |
|
|
|
查看全部 |
|
|
|
</a> |
|
|
|
) |
|
|
|
} |
|
|
|
> |
|
|
|
<Descriptions.Item> |
|
|
|
<Steps |
|
|
|
size="small" |
|
|
|
current={2} |
|
|
|
items={[ |
|
|
|
{ |
|
|
|
title: "发起处理", |
|
|
|
}, |
|
|
|
{ |
|
|
|
title: "申诉审核", |
|
|
|
}, |
|
|
|
]} |
|
|
|
/> |
|
|
|
</Descriptions.Item> |
|
|
|
</Descriptions> |
|
|
|
{isShowAll ? ( |
|
|
|
<Descriptions title="流程记录"> |
|
|
|
<Descriptions.Item> |
|
|
|
<div className="ltc-box-title"> |
|
|
|
<div className="ltc-icon"></div>流程记录 |
|
|
|
</div> |
|
|
|
<div style={{ width: "450px" }}> |
|
|
|
<Timeline mode={"left"}> |
|
|
|
<Timeline.Item |
|
|
|
label={getHistoryData.examine_time?.split(" ")[0]} |
|
|
|
> |
|
|
|
<div> |
|
|
|
<div>申诉处理审核: 已完成</div> |
|
|
|
<div |
|
|
|
style={{ |
|
|
|
display: "flex", |
|
|
|
width: "450px", |
|
|
|
justifyContent: "space-between", |
|
|
|
}} |
|
|
|
> |
|
|
|
<div>{getHistoryData.examine_time}</div> |
|
|
|
<div>来源:平台</div> |
|
|
|
<div>操作人:{getHistoryData.dealer}</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</Timeline.Item> |
|
|
|
<Timeline.Item |
|
|
|
label={getHistoryData.deal_time?.split(" ")[0]} |
|
|
|
> |
|
|
|
<div> |
|
|
|
<div>申诉处理提审</div> |
|
|
|
<div |
|
|
|
style={{ |
|
|
|
display: "flex", |
|
|
|
width: "450px", |
|
|
|
justifyContent: "space-between", |
|
|
|
}} |
|
|
|
> |
|
|
|
<div> |
|
|
|
<div>操作项</div> |
|
|
|
<div> |
|
|
|
{getHistoryData?.change_content == 1 |
|
|
|
? "调整出场时间" |
|
|
|
: getHistoryData?.change_content == 2 |
|
|
|
? "变更车牌号" |
|
|
|
: getHistoryData?.change_content == 3 |
|
|
|
? "更改订单金额" |
|
|
|
: getHistoryData?.change_content == 4 |
|
|
|
? "免费该订单" |
|
|
|
: "作废该订单"} |
|
|
|
</div> |
|
|
|
<div>{getHistoryData.deal_time}</div> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<div>初始值</div> |
|
|
|
<div>{getHistoryData.initial_value || "--"}</div> |
|
|
|
<div>来源:平台</div> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<div>变更值</div> |
|
|
|
<div>{getHistoryData.update_value || "--"}</div> |
|
|
|
<div>{getHistoryData.dealer}</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</Timeline.Item> |
|
|
|
</Timeline> |
|
|
|
</div> |
|
|
|
</Descriptions.Item> |
|
|
|
</Descriptions> |
|
|
|
) : ( |
|
|
|
<Descriptions title="异常订单处理"> |
|
|
|
<Descriptions.Item span={3}> |
|
|
|
<Descriptions title="处理理由"> |
|
|
|
<Descriptions.Item> |
|
|
|
<TextArea disabled value={getHistoryData?.deal_reason} /> |
|
|
|
</Descriptions.Item> |
|
|
|
</Descriptions> |
|
|
|
</Descriptions.Item> |
|
|
|
<Descriptions.Item> |
|
|
|
<Descriptions title="处理方式"> |
|
|
|
<Descriptions.Item label="更改项"> |
|
|
|
<div style={{ width: "200px" }}> |
|
|
|
<Input |
|
|
|
disabled |
|
|
|
value={ |
|
|
|
getHistoryData?.change_content == 1 |
|
|
|
? "调整出场时间" |
|
|
|
: getHistoryData?.change_content == 2 |
|
|
|
? "变更车牌号" |
|
|
|
: getHistoryData?.change_content == 3 |
|
|
|
? "更改订单金额" |
|
|
|
: getHistoryData?.change_content == 4 |
|
|
|
? "免费该订单" |
|
|
|
: "作废该订单" |
|
|
|
} |
|
|
|
></Input> |
|
|
|
</div> |
|
|
|
</Descriptions.Item> |
|
|
|
{getHistoryData.change_content == 1 ? ( |
|
|
|
<> |
|
|
|
<Descriptions.Item label="调整基于"> |
|
|
|
<div style={{ width: "240px" }}> |
|
|
|
<Select |
|
|
|
disabled |
|
|
|
style={{ |
|
|
|
width: 140, |
|
|
|
}} |
|
|
|
defaultValue={ |
|
|
|
getHistoryData?.update_value.indexOf(" ") > -1 |
|
|
|
? "1" |
|
|
|
: "2" |
|
|
|
} |
|
|
|
options={[ |
|
|
|
{ |
|
|
|
value: "1", |
|
|
|
label: "具体时间日期", |
|
|
|
}, |
|
|
|
{ |
|
|
|
value: "2", |
|
|
|
label: "记录入场时间", |
|
|
|
}, |
|
|
|
]} |
|
|
|
/> |
|
|
|
</div> |
|
|
|
</Descriptions.Item> |
|
|
|
<Descriptions.Item label="时间"> |
|
|
|
<div style={{ width: "240px" }}> |
|
|
|
<Input |
|
|
|
disabled |
|
|
|
placeholder={getHistoryData.update_value} |
|
|
|
></Input> |
|
|
|
</div> |
|
|
|
</Descriptions.Item> |
|
|
|
</> |
|
|
|
) : getHistoryData.change_content == 2 ? ( |
|
|
|
<Descriptions.Item label="车牌号"> |
|
|
|
<div style={{ width: "40px", display: "inline-block" }}> |
|
|
|
<Input |
|
|
|
disabled |
|
|
|
placeholder={getHistoryData.plate_type} |
|
|
|
></Input> |
|
|
|
</div> |
|
|
|
<div style={{ width: "150px", display: "inline-block" }}> |
|
|
|
<Input |
|
|
|
disabled |
|
|
|
placeholder={getHistoryData.update_value} |
|
|
|
></Input> |
|
|
|
</div> |
|
|
|
</Descriptions.Item> |
|
|
|
) : getHistoryData.change_content == 3 ? ( |
|
|
|
<> |
|
|
|
<Descriptions.Item label="增/减"> |
|
|
|
<div style={{ width: "200px" }}> |
|
|
|
<Select |
|
|
|
disabled |
|
|
|
defaultValue={ |
|
|
|
getHistoryData.update_value > 0 ? "1" : "2" |
|
|
|
} |
|
|
|
options={[ |
|
|
|
{ |
|
|
|
value: "1", |
|
|
|
label: "增", |
|
|
|
}, |
|
|
|
{ |
|
|
|
value: "2", |
|
|
|
label: "减", |
|
|
|
}, |
|
|
|
]} |
|
|
|
/> |
|
|
|
</div> |
|
|
|
</Descriptions.Item> |
|
|
|
<Descriptions.Item label="金额"> |
|
|
|
<div style={{ width: "200px" }}> |
|
|
|
<Input |
|
|
|
disabled |
|
|
|
placeholder={Math.abs( |
|
|
|
getHistoryData.update_value |
|
|
|
)} |
|
|
|
></Input> |
|
|
|
</div> |
|
|
|
</Descriptions.Item> |
|
|
|
</> |
|
|
|
) : null} |
|
|
|
</Descriptions> |
|
|
|
</Descriptions.Item> |
|
|
|
</Descriptions> |
|
|
|
)} |
|
|
|
<Modal |
|
|
|
visible={platePhototModal} |
|
|
|
onCancel={() => { |
|
|
|
setPlatePhotoModal(false); |
|
|
|
}} |
|
|
|
footer={false} |
|
|
|
className="modal-img" |
|
|
|
> |
|
|
|
<div> |
|
|
|
<div className="eae-modal-title"> |
|
|
|
<div className="ltc-icon"></div>入场图片 |
|
|
|
</div> |
|
|
|
<div className="eae-modal-item"> |
|
|
|
<div>车辆照片</div> |
|
|
|
<Image src={historyDataDetail.in_veh_pic} onError={handleImgError}/> |
|
|
|
</div> |
|
|
|
<div className="eae-modal-item"> |
|
|
|
<div>车牌照片</div> |
|
|
|
<Image src={historyDataDetail.in_plate_pic} onError={handleImgError}/> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</Modal> |
|
|
|
</Modal> |
|
|
|
</Modal> |
|
|
|
</> |
|
|
|
); |
|
|
|
} |
|
|
|
|
|
|
|
export default BillingRule; |
|
|
|
export default PileMonitor; |