diff --git a/src/pages/InRoadMgm/PersonMgm/PersonInfo/loadable.jsx b/src/pages/InRoadMgm/PersonMgm/PersonInfo/loadable.jsx
index d8fc86d..d3feaaa 100644
--- a/src/pages/InRoadMgm/PersonMgm/PersonInfo/loadable.jsx
+++ b/src/pages/InRoadMgm/PersonMgm/PersonInfo/loadable.jsx
@@ -238,7 +238,11 @@ function PersonInfo() {
const getAssets = (id, editFlag) => {
if (id) {
- ajax.getAssets({ id: id }).then(res => {
+ let temp_params = {id: id}
+ if(showEdit || editFlag){
+ temp_params.user_id = currentPersonId
+ }
+ ajax.getUserGoods(temp_params).then(res => {
if (res.status == 20000) {
if (showEdit || editFlag) {
let temparr = [];
diff --git a/src/pages/Nav/index.scss b/src/pages/Nav/index.scss
index 4f20e57..0e82520 100644
--- a/src/pages/Nav/index.scss
+++ b/src/pages/Nav/index.scss
@@ -16,7 +16,7 @@
align-items: center;
}
.nav-contanier{
- width: 1600px;
+ width: 1510px;
height: 710px;
display: flex;
flex-direction: row;
diff --git a/src/pages/NewEnergy/ChargeBusinessMgm/index.jsx b/src/pages/NewEnergy/ChargeBusinessMgm/index.jsx
new file mode 100644
index 0000000..e69de29
diff --git a/src/pages/NewEnergy/ChargeDeviceMgm/index.jsx b/src/pages/NewEnergy/ChargeDeviceMgm/index.jsx
new file mode 100644
index 0000000..e69de29
diff --git a/src/pages/NewEnergy/ChargeStationMgm/index.jsx b/src/pages/NewEnergy/ChargeStationMgm/index.jsx
new file mode 100644
index 0000000..e69de29
diff --git a/src/pages/NewEnergy/ChargingMgm/BillingRule/loadable.jsx b/src/pages/NewEnergy/ChargingMgm/BillingRule/loadable.jsx
index cecb221..4ef6d7b 100644
--- a/src/pages/NewEnergy/ChargingMgm/BillingRule/loadable.jsx
+++ b/src/pages/NewEnergy/ChargingMgm/BillingRule/loadable.jsx
@@ -15,245 +15,58 @@ import {
Timeline,
Popover
} from "antd";
-import { dictionary, utils } from "@/config/common";
-// import moment from 'moment'
-// import { useSessionStorageState, useUpdateEffect, useSize, useUpdate } from 'ahooks';
+import { dictionary } from "@/config/common";
import ajax from "@/services";
-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 = [];
+const { TextArea } = Input;
function BillingRule() {
- const roadContent = (
-
- )
- const receivableContent = (
-
- )
- const discountContent = (
-
- )
- const preferentialContent = (
-
- )
- const refundContent = (
-
- )
+ // 详情弹窗
+ const [detailVisible, setDetailVisible] = useState(false);
+ // 列表数据
+ const [tableData, setTableData] = useState([]);
+ // 数据总数
+ const [total, setTotal] = useState(0);
+ // 详情数据
+ const [detailData, setDetailData] = useState({});
+ // 初始搜索条件
+ const initFormData = {
+ operator: "0",
+ rule_name: "",
+ };
+
const columns = [
{
- title: "序号",
- dataIndex: "index",
- key: "index",
- align: "center",
- fixed: "left",
- render: (text, record, index) => index + 1,
- width: 100,
- },
-
- {
- title: "路段名称",
- dataIndex: "road",
+ title: "运营商名称",
+ dataIndex: "operator",
+ key: "operator",
align: "center",
- render: (text, record, index) => (
- {record.road}
- )
},
{
- title: "车牌号",
+ title: "规则名称",
dataIndex: "plate",
+ key: "plate",
align: "center",
- render: (text, record, index) => (
- {record.plate}
- )
},
{
- title: "车牌颜色",
+ title: "规则编码",
dataIndex: "plate_color",
key: "plate_color",
- width: 100,
align: "center",
},
{
- title: "泊位号",
+ title: "创建人",
dataIndex: "berth_id",
key: "berth_id",
width: 100,
align: "center",
},
{
- title: "入场时间",
+ title: "创建时间",
dataIndex: "in_time",
- align: "center",
- render: (text, record, index) => (
- {record.in_time}
- )
- },
- {
- title: "离场时间",
- dataIndex: "out_time",
- align: "center",
- render: (text, record, index) => (
- {record.out_time}
- )
- },
- {
- title: "停车时长",
- dataIndex: "admission_time",
- key: "admission_time",
- width: 100,
- align: "center",
- },
- {
- title: "入场收费员",
- dataIndex: "in_person",
- key: "in_person",
- width: 100,
- align: "center",
-
- },
- {
- title: "出场收费员",
- dataIndex: "out_person",
- key: "out_person",
- width: 100,
- align: "center",
- },
- {
- title:
- 订单金额
-
- ,
- dataIndex: "order_amount",
- key: "order_amount",
- width: 100,
- align: "center",
- // filterDropdown: true,
- // filterIcon:
- //
- //
- //
- },
- {
- title:
- 应收金额
-
- ,
- dataIndex: "receivable_amount",
- key: "receivable_amount",
- width: 100,
- align: "center",
- // filterDropdown: true,
- // filterIcon:
- //
- //
- //
- },
- {
- title:
- 折扣金额
-
- ,
- dataIndex: "discount_amount",
- key: "discount_amount",
- width: 100,
- align: "center",
- // filterDropdown: true,
- // filterIcon:
- //
- //
- //
- },
- {
- title:
- 优惠金额
-
- ,
- dataIndex: "preferential_amount",
- key: "preferential_amount",
- width: 100,
- align: "center",
- // filterDropdown: true,
- // filterIcon:
- //
- //
- //
- },
- {
- title: "实付金额",
- dataIndex: "actual_amount",
- key: "actual_amount",
- width: 100,
- align: "center",
- },
- {
- title:
- 退款总计
-
- ,
- dataIndex: "refund_total",
- key: "refund_total",
- width: 100,
- align: "center",
- // filterDropdown: true,
- // filterIcon:
- //
- //
- //
- },
- {
- title: "停车记录ID",
- dataIndex: "park_id",
- align: "center",
- render: (text, record, index) => (
-
- ),
- },
- {
- title: "区域",
- dataIndex: "region",
- align: "center",
- render: (text, record, index) => (
- {record.region}
- )
- },
- {
- title: "商户名称",
- dataIndex: "operator",
- align: "center",
- render: (text, record, index) => (
- {record.operator}
- )
- },
- {
- title: "路段类型",
- dataIndex: "road_type",
- key: "road_type",
- width: 100,
+ key: "in_time",
align: "center",
},
{
@@ -264,7 +77,6 @@ function BillingRule() {
fixed: "right",
width: 100,
render: (text, record, index) => {
- setDataDetail(record)
return (
<>
+ }
columns={columns}
tableData={tableData}
formSearch={formSearch}
pagename="停车记录查询"
- mandatory={['plate','berth_id']}
- mandatory_name={['车牌号或泊位号']}
- pageName={'parkRecordTotal'}
+ pageName={'billingRule'}
initFormData={initFormData}
total={total}
search={search}
@@ -765,359 +161,10 @@ function BillingRule() {
className="totalModal"
onCancel={() => {
setDetailVisible(false);
- setTabKey("1");
}}
destroyOnClose
>
-
-
- {renderParkRecord(parkingRecordDetail)}
-
-
- {renderModalTable(payRecordColumns, payRecord)}
-
-
- {renderModalTable(refundRecordColumns, refundRecord)}
-
-
- {renderModalTable(operatorRecordColumns, operationRecord)}
-
-
- {renderModalTable(historyProgressColumns, historyProgressRecord)}
-
-
- {
- setHistoryVisible(false);
- }}
- className="hanleHistoyModal"
- footer={null}
- width={1000}
- >
-
-
-
- {historyDataDetail?.road}
-
-
- {historyDataDetail.region}
-
-
- {historyDataDetail.operator}
-
-
- {historyDataDetail.berth_id}
-
-
- {historyDataDetail.road_type}
-
-
-
-
- {historyDataDetail.plate}
-
-
- {historyDataDetail.admission_time}
-
-
- {historyDataDetail.in_time}
-
-
- {historyDataDetail.out_time}
-
-
- {historyDataDetail.in_source}
-
-
- {historyDataDetail.out_source}
-
-
- {
- setPlatePhotoModal(true);
- }}
- >
- 查看
-
-
-
-
-
- {historyDataDetail.order_amount}
-
-
- {historyDataDetail.preferential_total}
-
-
- {historyDataDetail.actual_amount}
-
-
- {historyDataDetail.arrears_mount}
-
-
- {
- setIsShowAll(false);
- }}
- >
- 返回
-
- ) : (
- {
- setIsShowAll(true);
- }}
- >
- 查看全部
-
- )
- }
- >
-
-
-
-
- {isShowAll ? (
-
-
-
-
-
-
-
-
申诉处理审核: 已完成
-
-
{getHistoryData.examine_time}
-
来源:平台
-
操作人:{getHistoryData.dealer}
-
-
-
-
-
-
申诉处理提审
-
-
-
操作项
-
- {getHistoryData?.change_content == 1
- ? "调整出场时间"
- : getHistoryData?.change_content == 2
- ? "变更车牌号"
- : getHistoryData?.change_content == 3
- ? "更改订单金额"
- : getHistoryData?.change_content == 4
- ? "免费该订单"
- : "作废该订单"}
-
-
{getHistoryData.deal_time}
-
-
-
初始值
-
{getHistoryData.initial_value || "--"}
-
来源:平台
-
-
-
变更值
-
{getHistoryData.update_value || "--"}
-
{getHistoryData.dealer}
-
-
-
-
-
-
-
-
- ) : (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {getHistoryData.change_content == 1 ? (
- <>
-
-
-
-
-
-
-
-
-
- >
- ) : getHistoryData.change_content == 2 ? (
-
-
-
-
-
-
-
-
- ) : getHistoryData.change_content == 3 ? (
- <>
-
-
-
-
-
-
-
-
-
- >
- ) : null}
-
-
-
- )}
- {
- setPlatePhotoModal(false);
- }}
- footer={false}
- className="modal-img"
- >
-
-
-
+
>
);
diff --git a/src/pages/NewEnergy/ChargingMgm/OrderRuleMgm/loadable.jsx b/src/pages/NewEnergy/ChargingMgm/OrderRuleMgm/loadable.jsx
index dceeb12..cf801d2 100644
--- a/src/pages/NewEnergy/ChargingMgm/OrderRuleMgm/loadable.jsx
+++ b/src/pages/NewEnergy/ChargingMgm/OrderRuleMgm/loadable.jsx
@@ -15,245 +15,58 @@ import {
Timeline,
Popover
} from "antd";
-import { dictionary, utils } from "@/config/common";
-// import moment from 'moment'
-// import { useSessionStorageState, useUpdateEffect, useSize, useUpdate } from 'ahooks';
+import { dictionary } from "@/config/common";
import ajax from "@/services";
-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 = [];
+const { TextArea } = Input;
function OrderRuleMgm() {
- const roadContent = (
-
- )
- const receivableContent = (
-
- )
- const discountContent = (
-
- )
- const preferentialContent = (
-
- )
- const refundContent = (
-
- )
+ // 详情弹窗
+ const [detailVisible, setDetailVisible] = useState(false);
+ // 列表数据
+ const [tableData, setTableData] = useState([]);
+ // 数据总数
+ const [total, setTotal] = useState(0);
+ // 详情数据
+ const [detailData, setDetailData] = useState({});
+ // 初始搜索条件
+ const initFormData = {
+ operator: "0",
+ rule_name: "",
+ };
+
const columns = [
{
- title: "序号",
- dataIndex: "index",
- key: "index",
- align: "center",
- fixed: "left",
- render: (text, record, index) => index + 1,
- width: 100,
- },
-
- {
- title: "路段名称",
- dataIndex: "road",
+ title: "运营商名称",
+ dataIndex: "operator",
+ key: "operator",
align: "center",
- render: (text, record, index) => (
- {record.road}
- )
},
{
- title: "车牌号",
+ title: "规则名称",
dataIndex: "plate",
+ key: "plate",
align: "center",
- render: (text, record, index) => (
- {record.plate}
- )
},
{
- title: "车牌颜色",
+ title: "规则编码",
dataIndex: "plate_color",
key: "plate_color",
- width: 100,
align: "center",
},
{
- title: "泊位号",
+ title: "创建人",
dataIndex: "berth_id",
key: "berth_id",
width: 100,
align: "center",
},
{
- title: "入场时间",
+ title: "创建时间",
dataIndex: "in_time",
- align: "center",
- render: (text, record, index) => (
- {record.in_time}
- )
- },
- {
- title: "离场时间",
- dataIndex: "out_time",
- align: "center",
- render: (text, record, index) => (
- {record.out_time}
- )
- },
- {
- title: "停车时长",
- dataIndex: "admission_time",
- key: "admission_time",
- width: 100,
- align: "center",
- },
- {
- title: "入场收费员",
- dataIndex: "in_person",
- key: "in_person",
- width: 100,
- align: "center",
-
- },
- {
- title: "出场收费员",
- dataIndex: "out_person",
- key: "out_person",
- width: 100,
- align: "center",
- },
- {
- title:
- 订单金额
-
- ,
- dataIndex: "order_amount",
- key: "order_amount",
- width: 100,
- align: "center",
- // filterDropdown: true,
- // filterIcon:
- //
- //
- //
- },
- {
- title:
- 应收金额
-
- ,
- dataIndex: "receivable_amount",
- key: "receivable_amount",
- width: 100,
- align: "center",
- // filterDropdown: true,
- // filterIcon:
- //
- //
- //
- },
- {
- title:
- 折扣金额
-
- ,
- dataIndex: "discount_amount",
- key: "discount_amount",
- width: 100,
- align: "center",
- // filterDropdown: true,
- // filterIcon:
- //
- //
- //
- },
- {
- title:
- 优惠金额
-
- ,
- dataIndex: "preferential_amount",
- key: "preferential_amount",
- width: 100,
- align: "center",
- // filterDropdown: true,
- // filterIcon:
- //
- //
- //
- },
- {
- title: "实付金额",
- dataIndex: "actual_amount",
- key: "actual_amount",
- width: 100,
- align: "center",
- },
- {
- title:
- 退款总计
-
- ,
- dataIndex: "refund_total",
- key: "refund_total",
- width: 100,
- align: "center",
- // filterDropdown: true,
- // filterIcon:
- //
- //
- //
- },
- {
- title: "停车记录ID",
- dataIndex: "park_id",
- align: "center",
- render: (text, record, index) => (
-
- ),
- },
- {
- title: "区域",
- dataIndex: "region",
- align: "center",
- render: (text, record, index) => (
- {record.region}
- )
- },
- {
- title: "商户名称",
- dataIndex: "operator",
- align: "center",
- render: (text, record, index) => (
- {record.operator}
- )
- },
- {
- title: "路段类型",
- dataIndex: "road_type",
- key: "road_type",
- width: 100,
+ key: "in_time",
align: "center",
},
{
@@ -264,7 +77,6 @@ function OrderRuleMgm() {
fixed: "right",
width: 100,
render: (text, record, index) => {
- setDataDetail(record)
return (
<>
openModal(index, record)}>
@@ -279,11 +91,6 @@ function OrderRuleMgm() {
const formSearch = [
{
- name: "region",
- type: "TreeSelect",
- label: "区域",
- },
- {
name: "operator",
type: "Select",
label: "商户名称",
@@ -291,99 +98,9 @@ function OrderRuleMgm() {
placeholder: "请选择商户名称",
},
{
- name: "road",
- type: "SearchSelect",
- label: "路段名称",
- placeholder: "请输入路段名称",
- },
- {
- name: "road_type",
- type: "Select",
- label: "路段类型",
- defaultValue: 0,
- options: sysConfig.roadType,
- },
- {
- name: "phone",
+ name: "rule_name",
type: "Input",
- label: "手机号",
- placeholder: "请输入手机号",
- },
- {
- name: "plate",
- type: "Input",
- label: "车牌号",
- placeholder: "请输入车牌号",
- },
- {
- name: "berth_id",
- type: "Input",
- label: "泊位号",
- placeholder: "请输入泊位号",
- },
- {
- name: "type",
- type: "Select",
- label: "出入场类型",
- defaultValue: 1,
- options: [
- {
- label: "入场",
- value: 1,
- },
- {
- label: "出场",
- value: 2,
- },
- ],
- },
- {
- name: "park_id",
- type: "Input",
- label: "停车记录ID",
- placeholder: "请输入停车记录ID",
- },
- {
- name: "plate_color",
- type: "Select",
- label: "车牌颜色",
- placeholder: "请输入车牌颜色",
- options: sysConfig.plateColor,
- },
- {
- name: "order_type",
- type: "Select",
- label: "订单类型",
- defaultValue: 0,
- options: [
- {
- label: "全部",
- value: 0,
- },
- {
- label: "进行中",
- value: 1,
- },
- {
- label: "待支付",
- value: 2,
- },
- {
- label: "已支付",
- value: 3,
- }
- ],
- },
- {
- name: "in_person",
- type: "Input",
- label: "入场收费员",
- placeholder: "请输入入场收费员",
- },
- {
- name: "out_person",
- type: "Input",
- label: "出场收费员",
+ label: "规则名称",
placeholder: "请输入出场收费员",
},
{
@@ -392,368 +109,47 @@ function OrderRuleMgm() {
label: "时间段",
},
];
- const initFormData = {
- region: ["0"],
- operator: "0",
- road: "0",
- road_type: 0,
- phone: "",
- plate: "",
- berth_id: "",
- type: 1,
- park_id: "",
- order_type: 0,
- plate_color: -1,
- in_person: "",
- out_person: "",
- };
- //历史处理的表头
- const historyProgressColumns = [
- {
- title: "序号",
- dataIndex: "id",
- key: "id",
- align: "center",
- render: (text, record, index) => index + 1,
- },
- {
- title: "状态",
- dataIndex: "status",
- key: "status",
- align: "center",
- },
- {
- title: "处理记录ID",
- dataIndex: "deal_record_id",
- key: "deal_record_id",
- align: "center",
- },
- {
- title: "处理时间",
- dataIndex: "deal_time",
- key: "deal_time",
- align: "center",
- },
- {
- title: "处理人",
- dataIndex: "dealer",
- key: "dealer",
- align: "center",
- },
- {
- title: "业务订单类型",
- dataIndex: "business_type",
- key: "business_type",
- align: "center",
- },
- {
- title: "更改项",
- dataIndex: "change_content",
- key: "change_content",
- align: "center",
- render: (text) => {
- return text == 1
- ? "调整出场时间"
- : text == 2
- ? "变更车牌号"
- : text == 3
- ? "更改订单金额"
- : text == 4
- ? "免费该订单"
- : "作废该订单"
- }
- },
- {
- title: "更改初始值",
- dataIndex: "initial_value",
- key: "initial_value",
- align: "center",
- },
- {
- title: "更改更新值",
- dataIndex: "update_value",
- key: "update_value",
- align: "center",
- },
- {
- title: "操作",
- dataIndex: "operation",
- key: "operation",
- align: "center",
- fixed: "right",
- render: (_, record) => {
- return (
- {
- checkHistoryDetail(record);
- }}
- >
- 操作
-
- );
- },
- },
- ];
-
- const h_columns = [
- {
- title: "停车订单ID",
- dataIndex: "park_id",
- key: "park_id",
- width: 200,
- align: "center",
- render: (text) => (
- <>
- {
- navigator.clipboard.writeText(`${text}`).then(() => {
- message.success("已复制到剪切板");
- });
- }}
- >
- {text}
-
- >
- ),
- },
- {
- title: "车牌号",
- dataIndex: "plate",
- key: "plate",
- align: "center",
- },
- {
- title: "停车场名称",
- dataIndex: "park_name",
- key: "park_name",
- align: "center",
- width: 200,
- },
- {
- title: "入场时间",
- dataIndex: "in_time",
- key: "in_time",
- align: "center",
- },
- {
- title: "计费时间",
- dataIndex: "admission_time",
- key: "admission_time",
- align: "center",
- },
- ];
-
-
- const [detailVisible, setDetailVisible] = useState(false);
- const [tableData, setTableData] = useState([]);
- const [total, setTotal] = useState(0);
- const [tabKey, setTabKey] = useState("1");
- // 车场id
- const [parkId, setParkId] = useState("");
- //支付记录数据
- const [payRecord, setPayRecord] = useState([]);
- //退款订单数据
- const [refundRecord, setRefundRecord] = useState([]);
- //操作记录数据
- const [operationRecord, setOperatorRecord] = useState([]);
- //历史处理数据
- const [historyProgressRecord, setHistoryProgressRecord] = useState([]);
- //停车记录信息数据
- const [parkingRecordDetail, setParkingRecordDetail] = useState({});
- //当前的所选择的停车信息索引
- const [recordIndex, setRecordIndex] = useState(-1);
- //当前所选择的订单ID
- const [currentRecordID, setCurrentRecordID] = useState("");
- //历史记录详情Modal
- const [historyVisible, setHistoryVisible] = useState(false);
- //历史记录详情的弹窗查看全部
- const [isShowAll, setIsShowAll] = useState(false);
- //历史记录车辆图片弹窗
- const [platePhototModal, setPlatePhotoModal] = useState(false);
- //历史记录详情数据
- const [historyDataDetail, setHistoryDataDetail] = useState({});
- const [DataDetail, setDataDetail] = useState({});
- function openModal(index, record) {
+ // 打开弹窗
+ const openModal = (index, record) => {
+ setDetailData(record)
setDetailVisible(true);
- setParkingRecordDetail(record);
- setHistoryDataDetail(record)
- setRecordIndex(index);
- }
-
- const handleImgError = (e) => {
- let evn = e || event
- let img = evn.srcElement ? evn.srcElement : evn.target
- img.src = errorImg
- }
-
- function changeKey(key) {
- setTabKey(key);
- switch (key) {
- case "2":
- getPaymentRecord(currentRecordID);
- break;
- case "3":
- getRefundRecord(currentRecordID);
- break;
- case "4":
- getOperateRecord(currentRecordID);
- break;
- case "5":
- getHistoryRecord(currentRecordID);
- break;
- default:
- break;
- }
- }
- function renderParkRecord(item) {
- return (
- item && (
-
-
- {item.road}
- {item.berth_id}
- {item.region}
- {item.operator}
- {item.road_type}
-
-
- {item.plate}
- {item.phone}
- {item.in_time}
- {item.out_time}
- {item.admission_time}
- {item.order_amount}
- {item.parking_card_discount}
-
- {item.road_discount}
-
-
- {item.receivable_amount}
-
- {item.coupon }
-
- {item.preferential_amount}
-
-
- {item.actual_amount}
-
-
- {item.refund_discount}
-
-
- {item.actual_refund}
-
-
- {item.refund_total}
-
-
- {item.in_person}
-
-
- {item.out_person}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- )
- );
- }
- //查看历史详情
- const [getHistoryData,setGetHistoryData]=useState({})
- function checkHistoryDetail(record) {
- setGetHistoryData(record);
- setHistoryVisible(true);
- }
- function renderModalTable(columns, dataSource) {
- return (
-
- );
- }
- //获取订单的支付记录
- function getPaymentRecord(park_id) {
- ajax.getPaymentRecord({ park_record_id: park_id }).then((res) => {
- if (res.status === 20000) {
- setPayRecord(res.data.list);
- }
- });
- }
- //获取退款订单的接口
- function getRefundRecord(park_id) {
- ajax.getRefundRecord({ park_id }).then((res) => {
- if (res.status === 20000) {
- setRefundRecord(res.data.list);
- }
- });
- }
- //获取操作处理的接口
- function getOperateRecord(park_id) {
- ajax.getOperateRecord({ park_record_id: park_id }).then((res) => {
- if (res.status === 20000) {
- setOperatorRecord(res.data.list);
- }
- });
- }
- //获取历史处理记录的接口
- function getHistoryRecord(park_id) {
- ajax.getHistoryRecord({ park_record_id: park_id }).then((res) => {
- if (res.status === 20000) {
- // res.data.list.map(res=>{
- setHistoryProgressRecord(res.data.list);
- // })
- }
- });
}
- //获取函数
- function search(params) {
- utils.tableScrollTop("parent-table-scroll")
+ // 检索
+ const search = (params) => {
ajax.getParkingList(params).then((res) => {
if (res.status === 20000) {
setTableData(res.data.list);
setTotal(res.data.total);
- }else{
+ } else {
message.error(res.message)
}
});
}
- useEffect(() => {
- // setParkingRecordDetail(tableData[recordIndex]);
- setCurrentRecordID(tableData[recordIndex]?.park_id || "");
- }, [recordIndex]);
+
+ const handelAdd = () => {
+ setDetailVisible(true)
+ }
return (
<>
+ 新增
+
+ }
columns={columns}
tableData={tableData}
formSearch={formSearch}
pagename="停车记录查询"
- mandatory={['plate','berth_id']}
- mandatory_name={['车牌号或泊位号']}
- pageName={'parkRecordTotal'}
+ pageName={'orderRuleMgm'}
initFormData={initFormData}
total={total}
search={search}
@@ -765,359 +161,10 @@ function OrderRuleMgm() {
className="totalModal"
onCancel={() => {
setDetailVisible(false);
- setTabKey("1");
}}
destroyOnClose
>
-
-
- {renderParkRecord(parkingRecordDetail)}
-
-
- {renderModalTable(payRecordColumns, payRecord)}
-
-
- {renderModalTable(refundRecordColumns, refundRecord)}
-
-
- {renderModalTable(operatorRecordColumns, operationRecord)}
-
-
- {renderModalTable(historyProgressColumns, historyProgressRecord)}
-
-
- {
- setHistoryVisible(false);
- }}
- className="hanleHistoyModal"
- footer={null}
- width={1000}
- >
-
-
-
- {historyDataDetail?.road}
-
-
- {historyDataDetail.region}
-
-
- {historyDataDetail.operator}
-
-
- {historyDataDetail.berth_id}
-
-
- {historyDataDetail.road_type}
-
-
-
-
- {historyDataDetail.plate}
-
-
- {historyDataDetail.admission_time}
-
-
- {historyDataDetail.in_time}
-
-
- {historyDataDetail.out_time}
-
-
- {historyDataDetail.in_source}
-
-
- {historyDataDetail.out_source}
-
-
- {
- setPlatePhotoModal(true);
- }}
- >
- 查看
-
-
-
-
-
- {historyDataDetail.order_amount}
-
-
- {historyDataDetail.preferential_total}
-
-
- {historyDataDetail.actual_amount}
-
-
- {historyDataDetail.arrears_mount}
-
-
- {
- setIsShowAll(false);
- }}
- >
- 返回
-
- ) : (
- {
- setIsShowAll(true);
- }}
- >
- 查看全部
-
- )
- }
- >
-
-
-
-
- {isShowAll ? (
-
-
-
-
-
-
-
-
申诉处理审核: 已完成
-
-
{getHistoryData.examine_time}
-
来源:平台
-
操作人:{getHistoryData.dealer}
-
-
-
-
-
-
申诉处理提审
-
-
-
操作项
-
- {getHistoryData?.change_content == 1
- ? "调整出场时间"
- : getHistoryData?.change_content == 2
- ? "变更车牌号"
- : getHistoryData?.change_content == 3
- ? "更改订单金额"
- : getHistoryData?.change_content == 4
- ? "免费该订单"
- : "作废该订单"}
-
-
{getHistoryData.deal_time}
-
-
-
初始值
-
{getHistoryData.initial_value || "--"}
-
来源:平台
-
-
-
变更值
-
{getHistoryData.update_value || "--"}
-
{getHistoryData.dealer}
-
-
-
-
-
-
-
-
- ) : (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {getHistoryData.change_content == 1 ? (
- <>
-
-
-
-
-
-
-
-
-
- >
- ) : getHistoryData.change_content == 2 ? (
-
-
-
-
-
-
-
-
- ) : getHistoryData.change_content == 3 ? (
- <>
-
-
-
-
-
-
-
-
-
- >
- ) : null}
-
-
-
- )}
- {
- setPlatePhotoModal(false);
- }}
- footer={false}
- className="modal-img"
- >
-
-
-
+
>
);
diff --git a/src/pages/NewEnergy/ChargingMgm/BillingRule/dataSource.js b/src/pages/NewEnergy/RealtimeMonitor/ChargerMonitor/dataSource.js
similarity index 100%
rename from src/pages/NewEnergy/ChargingMgm/BillingRule/dataSource.js
rename to src/pages/NewEnergy/RealtimeMonitor/ChargerMonitor/dataSource.js
diff --git a/src/pages/NewEnergy/RealtimeMonitor/ChargerMonitor/index.jsx b/src/pages/NewEnergy/RealtimeMonitor/ChargerMonitor/index.jsx
new file mode 100644
index 0000000..e9321ff
--- /dev/null
+++ b/src/pages/NewEnergy/RealtimeMonitor/ChargerMonitor/index.jsx
@@ -0,0 +1,6 @@
+import React from "react"
+import loadable from "@loadable/component"
+import { LoadingImg } from "@/components"
+
+const ChargerMonitor = loadable(() => import("./loadable"))
+export default (pros) => } />
\ No newline at end of file
diff --git a/src/pages/NewEnergy/RealtimeMonitor/ChargerMonitor/index.scss b/src/pages/NewEnergy/RealtimeMonitor/ChargerMonitor/index.scss
new file mode 100644
index 0000000..9a8202a
--- /dev/null
+++ b/src/pages/NewEnergy/RealtimeMonitor/ChargerMonitor/index.scss
@@ -0,0 +1,238 @@
+@import "@/assets/css/mixin.scss";
+$color-container-bg: var(--color-container-bg);
+$color-user-list-bg: var(--color-user-list-bg);
+$color-text: var(--color-text);
+$color-primary: var(--color-primary);
+
+.ant-tabs {
+ margin-bottom: 16px;
+
+ .ant-tabs-nav {
+ margin-bottom: 0 !important;
+
+ &::before {
+ border-bottom: 1px solid var(--color-card-line) !important;
+ }
+ }
+
+ .ant-tabs-nav-wrap {
+ width: 100%;
+ box-sizing: content-box;
+
+ .ant-tabs-nav-list {
+ width: 340px;
+
+ .ant-tabs-ink-bar {
+ height: 3px;
+ background-color: #00ccff;
+ }
+
+ .ant-tabs-tab {
+ flex: 1;
+ width: 100%;
+ display: flex;
+ justify-content: center;
+ padding-bottom: 10px;
+ text-align: center;
+ cursor: pointer;
+ font-size: 14px !important;
+ font-family: MicrosoftYaHei;
+ text-align: center;
+ letter-spacing: 0.7px;
+ }
+
+ .ant-tabs-tab-active {
+ div {
+ color: #00ccff;
+ }
+ }
+ }
+ }
+}
+
+.ant-input::-webkit-input-placeholder {
+ color: var(--color-placeholder);
+}
+
+.ant-input::-moz-placeholder {
+ color: var(--color-placeholder);
+}
+.right-list .ant-btn-primary {
+ width: 68px;
+ height: 30px;
+ background: linear-gradient(180deg, #3aa9ff, #59b7ff);
+ border-radius: 4px;
+}
+.ant-input:-ms-input-placeholder {
+ color: var(--color-placeholder);
+}
+.right-list .cc-result-flow .table-wrap .yisa-table .ant-table-thead th {
+ background-color: #616b83 !important;
+}
+.right-list .cc-result-flow .table-wrap .yisa-table .ant-table-tbody td {
+ background-color: #3e4557 !important;
+}
+.right-list .cc-result-flow .table-wrap .yisa-table .ant-table-tbody tr:nth-child(even) td {
+ background-color: #3e4557 !important;
+}
+.ant-input::placeholder {
+ color: var(--color-placeholder);
+}
+
+.ant-select-selection-placeholder {
+ color: var(--color-placeholder);
+}
+
+.ant-select-disabled.ant-select-single:not(.ant-select-customize-input) .ant-select-selector {
+ background: var(--color-input-disabled-bg);
+ color: var(--color-placeholder);
+}
+
+.ant-select-disabled .ant-select-arrow {
+ color: var(--color-placeholder);
+}
+
+.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector {
+ background-color: var(--color-input-disabled-bg);
+ color: var(--color-input-disabled-color);
+ cursor: not-allowed;
+}
+
+.ant-select-multiple {
+ .ant-select-selector {
+ .ant-select-selection-item {
+ background-color: var(--color-bg-body);
+ border-color: var(--color-border);
+
+ .ant-select-selection-item-remove {
+ color: var(--color-text);
+ }
+ }
+ }
+}
+
+.ant-select-arrow {
+ color: var(--color-text);
+}
+
+.ant-select-clear {
+ border-radius: 50%;
+}
+
+.ant-select-dropdown-menu {
+ background-color: var(--color-input-bg);
+
+ .ant-select-dropdown-menu-item {
+ color: var(--color-text);
+
+ &.ant-select-dropdown-menu-item-active {
+ color: #fff;
+ // background-color: var(--radio-button-bg-checked);
+ }
+
+ &.ant-select-dropdown-menu-item-selected {
+ color: #fff;
+ // background-color: var(--radio-button-bg-checked);
+ }
+
+ &:hover {
+ color: #fff;
+ // background-color: var(--radio-button-bg-checked);
+ }
+ }
+}
+
+.ant-select-selector {
+ background-color: var(--color-search-list-item-bg) !important;
+ box-shadow: none !important;
+ border-radius: 4px;
+ color: var(--color-search-list-item-value);
+ border-color: var(--color-search-list-item-bd) !important;
+}
+
+.ant-select-selection {
+ background-color: var(--color-input-bg);
+ box-shadow: none;
+ color: var(--color-text);
+ // border-color:var(--checkable-tag-border);
+}
+
+.ant-form-horizontal .ant-form-item-label {
+ label {
+ display: inline-block;
+ word-wrap: break-word;
+ white-space: normal;
+ }
+}
+
+.ant-picker {
+ width: 100%;
+ background-color: var(--color-search-list-item-bg);
+ border-color: var(--color-border);
+}
+
+// .yisa-table {
+// width: 100%;
+
+// .ant-table-thead {
+// th {
+// background: var(--color-table-header-bg) !important;
+// }
+// }
+
+// .ant-table-tbody {
+// td {
+// background: var(--color-table-body-bg) !important;
+// border-bottom-color: var(--color-table-border-bottom-color);
+// }
+
+// tr:nth-child(even) {
+// td {
+// background: var(--color-table-body-bg-nth-child-even) !important;
+// }
+// }
+
+// tr:nth-child(odd) {
+// td {
+// background: var(--color-table-body-bg-nth-child-even) !important;
+// }
+// }
+// }
+// }
+.totalModal{
+ .ant-modal-footer{
+ display: none;
+ }
+ position: absolute;
+ top: 40px;
+ right: 174px;
+}
+.ltc-item-img {
+ width: 390px;
+ height: 300px;
+ border: 1px solid;
+ background: #6565656b;
+ margin-right: 20px !important;
+ img {
+ height: 295px;
+ width: 387px;
+ // object-fit: contain;
+ }
+}
+.hanleHistoyModal{
+ max-height: 700px;
+ overflow: auto;
+}
+.hanleHistoyModal::-webkit-scrollbar {
+ width: 5px;
+}
+.hanleHistoyModal::-webkit-scrollbar-thumb {
+ background-color: #9da2ab;
+ border-radius: 10px;
+}
+.modal-img{
+ img{
+ width: 200px;
+ height: 200px;
+ }
+}
\ No newline at end of file
diff --git a/src/pages/NewEnergy/RealtimeMonitor/ChargerMonitor/loadable.jsx b/src/pages/NewEnergy/RealtimeMonitor/ChargerMonitor/loadable.jsx
new file mode 100644
index 0000000..f960e2f
--- /dev/null
+++ b/src/pages/NewEnergy/RealtimeMonitor/ChargerMonitor/loadable.jsx
@@ -0,0 +1,1126 @@
+import React, { useState, useRef, useEffect } from "react";
+import {
+ message,
+ Pagination,
+ Table,
+ Space,
+ Modal,
+ Button,
+ Tabs,
+ Descriptions,
+ Input,
+ Steps,
+ Select,
+ Image,
+ Timeline,
+ Popover
+} from "antd";
+import { dictionary, utils } from "@/config/common";
+// import moment from 'moment'
+// import { useSessionStorageState, useUpdateEffect, useSize, useUpdate } from 'ahooks';
+import ajax from "@/services";
+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 ChargerMonitor() {
+ const roadContent = (
+
+ )
+ const receivableContent = (
+
+ )
+ const discountContent = (
+
+ )
+ const preferentialContent = (
+
+ )
+ const refundContent = (
+
+ )
+ const columns = [
+ {
+ title: "序号",
+ dataIndex: "index",
+ key: "index",
+ align: "center",
+ fixed: "left",
+ render: (text, record, index) => index + 1,
+ width: 100,
+ },
+
+ {
+ title: "路段名称",
+ dataIndex: "road",
+ align: "center",
+ render: (text, record, index) => (
+ {record.road}
+ )
+ },
+ {
+ title: "车牌号",
+ dataIndex: "plate",
+ align: "center",
+ render: (text, record, index) => (
+ {record.plate}
+ )
+ },
+ {
+ title: "车牌颜色",
+ dataIndex: "plate_color",
+ key: "plate_color",
+ width: 100,
+ align: "center",
+ },
+ {
+ title: "泊位号",
+ dataIndex: "berth_id",
+ key: "berth_id",
+ width: 100,
+ align: "center",
+ },
+ {
+ title: "入场时间",
+ dataIndex: "in_time",
+ align: "center",
+ render: (text, record, index) => (
+ {record.in_time}
+ )
+ },
+ {
+ title: "离场时间",
+ dataIndex: "out_time",
+ align: "center",
+ render: (text, record, index) => (
+ {record.out_time}
+ )
+ },
+ {
+ title: "停车时长",
+ dataIndex: "admission_time",
+ key: "admission_time",
+ width: 100,
+ align: "center",
+ },
+ {
+ title: "入场收费员",
+ dataIndex: "in_person",
+ key: "in_person",
+ width: 100,
+ align: "center",
+
+ },
+ {
+ title: "出场收费员",
+ dataIndex: "out_person",
+ key: "out_person",
+ width: 100,
+ align: "center",
+ },
+ {
+ title:
+ 订单金额
+
+ ,
+ dataIndex: "order_amount",
+ key: "order_amount",
+ width: 100,
+ align: "center",
+ // filterDropdown: true,
+ // filterIcon:
+ //
+ //
+ //
+ },
+ {
+ title:
+ 应收金额
+
+ ,
+ dataIndex: "receivable_amount",
+ key: "receivable_amount",
+ width: 100,
+ align: "center",
+ // filterDropdown: true,
+ // filterIcon:
+ //
+ //
+ //
+ },
+ {
+ title:
+ 折扣金额
+
+ ,
+ dataIndex: "discount_amount",
+ key: "discount_amount",
+ width: 100,
+ align: "center",
+ // filterDropdown: true,
+ // filterIcon:
+ //
+ //
+ //
+ },
+ {
+ title:
+ 优惠金额
+
+ ,
+ dataIndex: "preferential_amount",
+ key: "preferential_amount",
+ width: 100,
+ align: "center",
+ // filterDropdown: true,
+ // filterIcon:
+ //
+ //
+ //
+ },
+ {
+ title: "实付金额",
+ dataIndex: "actual_amount",
+ key: "actual_amount",
+ width: 100,
+ align: "center",
+ },
+ {
+ title:
+ 退款总计
+
+ ,
+ dataIndex: "refund_total",
+ key: "refund_total",
+ width: 100,
+ align: "center",
+ // filterDropdown: true,
+ // filterIcon:
+ //
+ //
+ //
+ },
+ {
+ title: "停车记录ID",
+ dataIndex: "park_id",
+ align: "center",
+ render: (text, record, index) => (
+
+ ),
+ },
+ {
+ title: "区域",
+ dataIndex: "region",
+ align: "center",
+ render: (text, record, index) => (
+ {record.region}
+ )
+ },
+ {
+ title: "商户名称",
+ dataIndex: "operator",
+ align: "center",
+ render: (text, record, index) => (
+ {record.operator}
+ )
+ },
+ {
+ title: "路段类型",
+ dataIndex: "road_type",
+ key: "road_type",
+ width: 100,
+ align: "center",
+ },
+ {
+ title: "操作",
+ dataIndex: "operation",
+ key: "operation",
+ align: "center",
+ fixed: "right",
+ width: 100,
+ render: (text, record, index) => {
+ setDataDetail(record)
+ return (
+ <>
+ openModal(index, record)}>
+ 详情
+
+ >
+ )
+
+ },
+ },
+ ];
+
+ const formSearch = [
+ {
+ name: "region",
+ type: "TreeSelect",
+ label: "区域",
+ },
+ {
+ name: "operator",
+ type: "Select",
+ label: "商户名称",
+ defaultValue: "0",
+ placeholder: "请选择商户名称",
+ },
+ {
+ name: "road",
+ type: "SearchSelect",
+ label: "路段名称",
+ placeholder: "请输入路段名称",
+ },
+ {
+ name: "road_type",
+ type: "Select",
+ label: "路段类型",
+ defaultValue: 0,
+ options: sysConfig.roadType,
+ },
+ {
+ name: "phone",
+ type: "Input",
+ label: "手机号",
+ placeholder: "请输入手机号",
+ },
+ {
+ name: "plate",
+ type: "Input",
+ label: "车牌号",
+ placeholder: "请输入车牌号",
+ },
+ {
+ name: "berth_id",
+ type: "Input",
+ label: "泊位号",
+ placeholder: "请输入泊位号",
+ },
+ {
+ name: "type",
+ type: "Select",
+ label: "出入场类型",
+ defaultValue: 1,
+ options: [
+ {
+ label: "入场",
+ value: 1,
+ },
+ {
+ label: "出场",
+ value: 2,
+ },
+ ],
+ },
+ {
+ name: "park_id",
+ type: "Input",
+ label: "停车记录ID",
+ placeholder: "请输入停车记录ID",
+ },
+ {
+ name: "plate_color",
+ type: "Select",
+ label: "车牌颜色",
+ placeholder: "请输入车牌颜色",
+ options: sysConfig.plateColor,
+ },
+ {
+ name: "order_type",
+ type: "Select",
+ label: "订单类型",
+ defaultValue: 0,
+ options: [
+ {
+ label: "全部",
+ value: 0,
+ },
+ {
+ label: "进行中",
+ value: 1,
+ },
+ {
+ label: "待支付",
+ value: 2,
+ },
+ {
+ label: "已支付",
+ value: 3,
+ }
+ ],
+ },
+ {
+ name: "in_person",
+ type: "Input",
+ label: "入场收费员",
+ placeholder: "请输入入场收费员",
+ },
+ {
+ name: "out_person",
+ type: "Input",
+ label: "出场收费员",
+ placeholder: "请输入出场收费员",
+ },
+ {
+ name: "timePeriod",
+ type: "RangePicker",
+ label: "时间段",
+ },
+ ];
+ const initFormData = {
+ region: ["0"],
+ operator: "0",
+ road: "0",
+ road_type: 0,
+ phone: "",
+ plate: "",
+ berth_id: "",
+ type: 1,
+ park_id: "",
+ order_type: 0,
+ plate_color: -1,
+ in_person: "",
+ out_person: "",
+ };
+ //历史处理的表头
+ const historyProgressColumns = [
+ {
+ title: "序号",
+ dataIndex: "id",
+ key: "id",
+ align: "center",
+ render: (text, record, index) => index + 1,
+ },
+ {
+ title: "状态",
+ dataIndex: "status",
+ key: "status",
+ align: "center",
+ },
+ {
+ title: "处理记录ID",
+ dataIndex: "deal_record_id",
+ key: "deal_record_id",
+ align: "center",
+ },
+ {
+ title: "处理时间",
+ dataIndex: "deal_time",
+ key: "deal_time",
+ align: "center",
+ },
+ {
+ title: "处理人",
+ dataIndex: "dealer",
+ key: "dealer",
+ align: "center",
+ },
+ {
+ title: "业务订单类型",
+ dataIndex: "business_type",
+ key: "business_type",
+ align: "center",
+ },
+ {
+ title: "更改项",
+ dataIndex: "change_content",
+ key: "change_content",
+ align: "center",
+ render: (text) => {
+ return text == 1
+ ? "调整出场时间"
+ : text == 2
+ ? "变更车牌号"
+ : text == 3
+ ? "更改订单金额"
+ : text == 4
+ ? "免费该订单"
+ : "作废该订单"
+ }
+ },
+ {
+ title: "更改初始值",
+ dataIndex: "initial_value",
+ key: "initial_value",
+ align: "center",
+ },
+ {
+ title: "更改更新值",
+ dataIndex: "update_value",
+ key: "update_value",
+ align: "center",
+ },
+ {
+ title: "操作",
+ dataIndex: "operation",
+ key: "operation",
+ align: "center",
+ fixed: "right",
+ render: (_, record) => {
+ return (
+ {
+ checkHistoryDetail(record);
+ }}
+ >
+ 操作
+
+ );
+ },
+ },
+ ];
+
+
+ const h_columns = [
+ {
+ title: "停车订单ID",
+ dataIndex: "park_id",
+ key: "park_id",
+ width: 200,
+ align: "center",
+ render: (text) => (
+ <>
+ {
+ navigator.clipboard.writeText(`${text}`).then(() => {
+ message.success("已复制到剪切板");
+ });
+ }}
+ >
+ {text}
+
+ >
+ ),
+ },
+ {
+ title: "车牌号",
+ dataIndex: "plate",
+ key: "plate",
+ align: "center",
+ },
+ {
+ title: "停车场名称",
+ dataIndex: "park_name",
+ key: "park_name",
+ align: "center",
+ width: 200,
+ },
+ {
+ title: "入场时间",
+ dataIndex: "in_time",
+ key: "in_time",
+ align: "center",
+ },
+ {
+ title: "计费时间",
+ dataIndex: "admission_time",
+ key: "admission_time",
+ align: "center",
+ },
+ ];
+
+
+ const [detailVisible, setDetailVisible] = useState(false);
+ const [tableData, setTableData] = useState([]);
+ const [total, setTotal] = useState(0);
+ const [tabKey, setTabKey] = useState("1");
+ // 车场id
+ const [parkId, setParkId] = useState("");
+ //支付记录数据
+ const [payRecord, setPayRecord] = useState([]);
+ //退款订单数据
+ const [refundRecord, setRefundRecord] = useState([]);
+ //操作记录数据
+ const [operationRecord, setOperatorRecord] = useState([]);
+ //历史处理数据
+ const [historyProgressRecord, setHistoryProgressRecord] = useState([]);
+ //停车记录信息数据
+ const [parkingRecordDetail, setParkingRecordDetail] = useState({});
+ //当前的所选择的停车信息索引
+ const [recordIndex, setRecordIndex] = useState(-1);
+ //当前所选择的订单ID
+ const [currentRecordID, setCurrentRecordID] = useState("");
+ //历史记录详情Modal
+ const [historyVisible, setHistoryVisible] = useState(false);
+ //历史记录详情的弹窗查看全部
+ const [isShowAll, setIsShowAll] = useState(false);
+ //历史记录车辆图片弹窗
+ const [platePhototModal, setPlatePhotoModal] = useState(false);
+ //历史记录详情数据
+ const [historyDataDetail, setHistoryDataDetail] = useState({});
+ const [DataDetail, setDataDetail] = useState({});
+ function openModal(index, record) {
+ setDetailVisible(true);
+ setParkingRecordDetail(record);
+ setHistoryDataDetail(record)
+ setRecordIndex(index);
+ }
+
+ const handleImgError = (e) => {
+ let evn = e || event
+ let img = evn.srcElement ? evn.srcElement : evn.target
+ img.src = errorImg
+ }
+
+ function changeKey(key) {
+ setTabKey(key);
+ switch (key) {
+ case "2":
+ getPaymentRecord(currentRecordID);
+ break;
+ case "3":
+ getRefundRecord(currentRecordID);
+ break;
+ case "4":
+ getOperateRecord(currentRecordID);
+ break;
+ case "5":
+ getHistoryRecord(currentRecordID);
+ break;
+ default:
+ break;
+ }
+ }
+ function renderParkRecord(item) {
+ return (
+ item && (
+
+
+ {item.road}
+ {item.berth_id}
+ {item.region}
+ {item.operator}
+ {item.road_type}
+
+
+ {item.plate}
+ {item.phone}
+ {item.in_time}
+ {item.out_time}
+ {item.admission_time}
+ {item.order_amount}
+ {item.parking_card_discount}
+
+ {item.road_discount}
+
+
+ {item.receivable_amount}
+
+ {item.coupon }
+
+ {item.preferential_amount}
+
+
+ {item.actual_amount}
+
+
+ {item.refund_discount}
+
+
+ {item.actual_refund}
+
+
+ {item.refund_total}
+
+
+ {item.in_person}
+
+
+ {item.out_person}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+ );
+ }
+ //查看历史详情
+ const [getHistoryData,setGetHistoryData]=useState({})
+ function checkHistoryDetail(record) {
+ setGetHistoryData(record);
+ setHistoryVisible(true);
+ }
+ function renderModalTable(columns, dataSource) {
+ return (
+
+ );
+ }
+ //获取订单的支付记录
+ function getPaymentRecord(park_id) {
+ ajax.getPaymentRecord({ park_record_id: park_id }).then((res) => {
+ if (res.status === 20000) {
+ setPayRecord(res.data.list);
+ }
+ });
+ }
+ //获取退款订单的接口
+ function getRefundRecord(park_id) {
+ ajax.getRefundRecord({ park_id }).then((res) => {
+ if (res.status === 20000) {
+ setRefundRecord(res.data.list);
+ }
+ });
+ }
+ //获取操作处理的接口
+ function getOperateRecord(park_id) {
+ ajax.getOperateRecord({ park_record_id: park_id }).then((res) => {
+ if (res.status === 20000) {
+ setOperatorRecord(res.data.list);
+ }
+ });
+ }
+ //获取历史处理记录的接口
+ function getHistoryRecord(park_id) {
+ ajax.getHistoryRecord({ park_record_id: park_id }).then((res) => {
+ if (res.status === 20000) {
+ // res.data.list.map(res=>{
+ setHistoryProgressRecord(res.data.list);
+ // })
+ }
+ });
+ }
+
+ //获取函数
+ function search(params) {
+ utils.tableScrollTop("parent-table-scroll")
+ ajax.getParkingList(params).then((res) => {
+ if (res.status === 20000) {
+ setTableData(res.data.list);
+ setTotal(res.data.total);
+ }else{
+ message.error(res.message)
+ }
+ });
+ }
+ useEffect(() => {
+ // setParkingRecordDetail(tableData[recordIndex]);
+ setCurrentRecordID(tableData[recordIndex]?.park_id || "");
+ }, [recordIndex]);
+
+ return (
+ <>
+
+ {
+ setDetailVisible(false);
+ setTabKey("1");
+ }}
+ destroyOnClose
+ >
+
+
+ {renderParkRecord(parkingRecordDetail)}
+
+
+ {renderModalTable(payRecordColumns, payRecord)}
+
+
+ {renderModalTable(refundRecordColumns, refundRecord)}
+
+
+ {renderModalTable(operatorRecordColumns, operationRecord)}
+
+
+ {renderModalTable(historyProgressColumns, historyProgressRecord)}
+
+
+ {
+ setHistoryVisible(false);
+ }}
+ className="hanleHistoyModal"
+ footer={null}
+ width={1000}
+ >
+
+
+
+ {historyDataDetail?.road}
+
+
+ {historyDataDetail.region}
+
+
+ {historyDataDetail.operator}
+
+
+ {historyDataDetail.berth_id}
+
+
+ {historyDataDetail.road_type}
+
+
+
+
+ {historyDataDetail.plate}
+
+
+ {historyDataDetail.admission_time}
+
+
+ {historyDataDetail.in_time}
+
+
+ {historyDataDetail.out_time}
+
+
+ {historyDataDetail.in_source}
+
+
+ {historyDataDetail.out_source}
+
+
+ {
+ setPlatePhotoModal(true);
+ }}
+ >
+ 查看
+
+
+
+
+
+ {historyDataDetail.order_amount}
+
+
+ {historyDataDetail.preferential_total}
+
+
+ {historyDataDetail.actual_amount}
+
+
+ {historyDataDetail.arrears_mount}
+
+
+ {
+ setIsShowAll(false);
+ }}
+ >
+ 返回
+
+ ) : (
+ {
+ setIsShowAll(true);
+ }}
+ >
+ 查看全部
+
+ )
+ }
+ >
+
+
+
+
+ {isShowAll ? (
+
+
+
+
+
+
+
+
申诉处理审核: 已完成
+
+
{getHistoryData.examine_time}
+
来源:平台
+
操作人:{getHistoryData.dealer}
+
+
+
+
+
+
申诉处理提审
+
+
+
操作项
+
+ {getHistoryData?.change_content == 1
+ ? "调整出场时间"
+ : getHistoryData?.change_content == 2
+ ? "变更车牌号"
+ : getHistoryData?.change_content == 3
+ ? "更改订单金额"
+ : getHistoryData?.change_content == 4
+ ? "免费该订单"
+ : "作废该订单"}
+
+
{getHistoryData.deal_time}
+
+
+
初始值
+
{getHistoryData.initial_value || "--"}
+
来源:平台
+
+
+
变更值
+
{getHistoryData.update_value || "--"}
+
{getHistoryData.dealer}
+
+
+
+
+
+
+
+
+ ) : (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {getHistoryData.change_content == 1 ? (
+ <>
+
+
+
+
+
+
+
+
+
+ >
+ ) : getHistoryData.change_content == 2 ? (
+
+
+
+
+
+
+
+
+ ) : getHistoryData.change_content == 3 ? (
+ <>
+
+
+
+
+
+
+
+
+
+ >
+ ) : null}
+
+
+
+ )}
+ {
+ setPlatePhotoModal(false);
+ }}
+ footer={false}
+ className="modal-img"
+ >
+
+
+
+
+ >
+ );
+}
+
+export default ChargerMonitor;
diff --git a/src/pages/NewEnergy/ChargingMgm/OrderRuleMgm/dataSource.js b/src/pages/NewEnergy/RealtimeMonitor/LockMonitor/dataSource.js
similarity index 100%
rename from src/pages/NewEnergy/ChargingMgm/OrderRuleMgm/dataSource.js
rename to src/pages/NewEnergy/RealtimeMonitor/LockMonitor/dataSource.js
diff --git a/src/pages/NewEnergy/RealtimeMonitor/LockMonitor/index.jsx b/src/pages/NewEnergy/RealtimeMonitor/LockMonitor/index.jsx
new file mode 100644
index 0000000..d6150c1
--- /dev/null
+++ b/src/pages/NewEnergy/RealtimeMonitor/LockMonitor/index.jsx
@@ -0,0 +1,6 @@
+import React from "react"
+import loadable from "@loadable/component"
+import { LoadingImg } from "@/components"
+
+const PileMonitor = loadable(() => import("./loadable"))
+export default (pros) => } />
\ No newline at end of file
diff --git a/src/pages/NewEnergy/RealtimeMonitor/LockMonitor/index.scss b/src/pages/NewEnergy/RealtimeMonitor/LockMonitor/index.scss
new file mode 100644
index 0000000..9a8202a
--- /dev/null
+++ b/src/pages/NewEnergy/RealtimeMonitor/LockMonitor/index.scss
@@ -0,0 +1,238 @@
+@import "@/assets/css/mixin.scss";
+$color-container-bg: var(--color-container-bg);
+$color-user-list-bg: var(--color-user-list-bg);
+$color-text: var(--color-text);
+$color-primary: var(--color-primary);
+
+.ant-tabs {
+ margin-bottom: 16px;
+
+ .ant-tabs-nav {
+ margin-bottom: 0 !important;
+
+ &::before {
+ border-bottom: 1px solid var(--color-card-line) !important;
+ }
+ }
+
+ .ant-tabs-nav-wrap {
+ width: 100%;
+ box-sizing: content-box;
+
+ .ant-tabs-nav-list {
+ width: 340px;
+
+ .ant-tabs-ink-bar {
+ height: 3px;
+ background-color: #00ccff;
+ }
+
+ .ant-tabs-tab {
+ flex: 1;
+ width: 100%;
+ display: flex;
+ justify-content: center;
+ padding-bottom: 10px;
+ text-align: center;
+ cursor: pointer;
+ font-size: 14px !important;
+ font-family: MicrosoftYaHei;
+ text-align: center;
+ letter-spacing: 0.7px;
+ }
+
+ .ant-tabs-tab-active {
+ div {
+ color: #00ccff;
+ }
+ }
+ }
+ }
+}
+
+.ant-input::-webkit-input-placeholder {
+ color: var(--color-placeholder);
+}
+
+.ant-input::-moz-placeholder {
+ color: var(--color-placeholder);
+}
+.right-list .ant-btn-primary {
+ width: 68px;
+ height: 30px;
+ background: linear-gradient(180deg, #3aa9ff, #59b7ff);
+ border-radius: 4px;
+}
+.ant-input:-ms-input-placeholder {
+ color: var(--color-placeholder);
+}
+.right-list .cc-result-flow .table-wrap .yisa-table .ant-table-thead th {
+ background-color: #616b83 !important;
+}
+.right-list .cc-result-flow .table-wrap .yisa-table .ant-table-tbody td {
+ background-color: #3e4557 !important;
+}
+.right-list .cc-result-flow .table-wrap .yisa-table .ant-table-tbody tr:nth-child(even) td {
+ background-color: #3e4557 !important;
+}
+.ant-input::placeholder {
+ color: var(--color-placeholder);
+}
+
+.ant-select-selection-placeholder {
+ color: var(--color-placeholder);
+}
+
+.ant-select-disabled.ant-select-single:not(.ant-select-customize-input) .ant-select-selector {
+ background: var(--color-input-disabled-bg);
+ color: var(--color-placeholder);
+}
+
+.ant-select-disabled .ant-select-arrow {
+ color: var(--color-placeholder);
+}
+
+.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector {
+ background-color: var(--color-input-disabled-bg);
+ color: var(--color-input-disabled-color);
+ cursor: not-allowed;
+}
+
+.ant-select-multiple {
+ .ant-select-selector {
+ .ant-select-selection-item {
+ background-color: var(--color-bg-body);
+ border-color: var(--color-border);
+
+ .ant-select-selection-item-remove {
+ color: var(--color-text);
+ }
+ }
+ }
+}
+
+.ant-select-arrow {
+ color: var(--color-text);
+}
+
+.ant-select-clear {
+ border-radius: 50%;
+}
+
+.ant-select-dropdown-menu {
+ background-color: var(--color-input-bg);
+
+ .ant-select-dropdown-menu-item {
+ color: var(--color-text);
+
+ &.ant-select-dropdown-menu-item-active {
+ color: #fff;
+ // background-color: var(--radio-button-bg-checked);
+ }
+
+ &.ant-select-dropdown-menu-item-selected {
+ color: #fff;
+ // background-color: var(--radio-button-bg-checked);
+ }
+
+ &:hover {
+ color: #fff;
+ // background-color: var(--radio-button-bg-checked);
+ }
+ }
+}
+
+.ant-select-selector {
+ background-color: var(--color-search-list-item-bg) !important;
+ box-shadow: none !important;
+ border-radius: 4px;
+ color: var(--color-search-list-item-value);
+ border-color: var(--color-search-list-item-bd) !important;
+}
+
+.ant-select-selection {
+ background-color: var(--color-input-bg);
+ box-shadow: none;
+ color: var(--color-text);
+ // border-color:var(--checkable-tag-border);
+}
+
+.ant-form-horizontal .ant-form-item-label {
+ label {
+ display: inline-block;
+ word-wrap: break-word;
+ white-space: normal;
+ }
+}
+
+.ant-picker {
+ width: 100%;
+ background-color: var(--color-search-list-item-bg);
+ border-color: var(--color-border);
+}
+
+// .yisa-table {
+// width: 100%;
+
+// .ant-table-thead {
+// th {
+// background: var(--color-table-header-bg) !important;
+// }
+// }
+
+// .ant-table-tbody {
+// td {
+// background: var(--color-table-body-bg) !important;
+// border-bottom-color: var(--color-table-border-bottom-color);
+// }
+
+// tr:nth-child(even) {
+// td {
+// background: var(--color-table-body-bg-nth-child-even) !important;
+// }
+// }
+
+// tr:nth-child(odd) {
+// td {
+// background: var(--color-table-body-bg-nth-child-even) !important;
+// }
+// }
+// }
+// }
+.totalModal{
+ .ant-modal-footer{
+ display: none;
+ }
+ position: absolute;
+ top: 40px;
+ right: 174px;
+}
+.ltc-item-img {
+ width: 390px;
+ height: 300px;
+ border: 1px solid;
+ background: #6565656b;
+ margin-right: 20px !important;
+ img {
+ height: 295px;
+ width: 387px;
+ // object-fit: contain;
+ }
+}
+.hanleHistoyModal{
+ max-height: 700px;
+ overflow: auto;
+}
+.hanleHistoyModal::-webkit-scrollbar {
+ width: 5px;
+}
+.hanleHistoyModal::-webkit-scrollbar-thumb {
+ background-color: #9da2ab;
+ border-radius: 10px;
+}
+.modal-img{
+ img{
+ width: 200px;
+ height: 200px;
+ }
+}
\ No newline at end of file
diff --git a/src/pages/NewEnergy/RealtimeMonitor/LockMonitor/loadable.jsx b/src/pages/NewEnergy/RealtimeMonitor/LockMonitor/loadable.jsx
new file mode 100644
index 0000000..fe1f87b
--- /dev/null
+++ b/src/pages/NewEnergy/RealtimeMonitor/LockMonitor/loadable.jsx
@@ -0,0 +1,177 @@
+import React, { useState, useRef, useEffect } from "react";
+import {
+ message,
+ Pagination,
+ Table,
+ Space,
+ Modal,
+ Button,
+ Tabs,
+ Descriptions,
+ Input,
+ Steps,
+ Select,
+ Image,
+ Timeline,
+ Popover
+} from "antd";
+import { dictionary, utils } from "@/config/common";
+// import moment from 'moment'
+// import { useSessionStorageState, useUpdateEffect, useSize, useUpdate } from 'ahooks';
+import ajax from "@/services";
+import errorImg from '@/assets/images/error-img-new.png'
+import { QuestionCircleOutlined } from '@ant-design/icons';
+import { TableModule } from "@/components";
+import "./index.scss";
+
+// import errorImg from "@/assets/images/layout/error.png"
+// import { useLocation } from "react-router-dom";
+const { TextArea } = Input;
+
+let array = [];
+
+function PileMonitor() {
+
+
+
+ const formSearch = [
+ {
+ name: "device_name",
+ type: "Input",
+ label: "设备名称",
+ placeholder:"请输入"
+ },
+ {
+ name: "device_num",
+ type: "Input",
+ label: "设备编码",
+ placeholder:"请输入"
+ },
+ {
+ name: "device_state",
+ type: "Select",
+ label: "设备状态",
+ defaultValue: 0,
+ options: sysConfig.energyDeviceType,
+ },
+ {
+ name: "lock_state",
+ type: "Select",
+ label: "车位锁状态",
+ defaultValue: 0,
+ options: sysConfig.energyLockState,
+ },
+
+ ];
+ const initFormData = {
+ device_name:"",
+ device_num:""
+ };
+ //历史处理的表头
+ const columns = [
+ {
+ title: "序号",
+ dataIndex: "id",
+ key: "id",
+ align: "center",
+ render: (text, record, index) => index + 1,
+ },
+ {
+ title: "设备名称",
+ dataIndex: "device_name",
+ key: "device_name",
+ align: "center",
+ },
+ {
+ title: "设备编码",
+ dataIndex: "device_num",
+ key: "device_num",
+ align: "center",
+ },
+ {
+ title: "设备类型",
+ dataIndex: "device_type",
+ key: "device_type",
+ align: "center",
+ },
+ {
+ title: "设备供应商",
+ dataIndex: "device_vendor",
+ key: "device_vendor",
+ align: "center",
+ },
+ {
+ title: "对接平台",
+ dataIndex: "platform",
+ key: "platform",
+ align: "center",
+ },
+ {
+ title: "车位锁状态",
+ dataIndex: "lock_state_name",
+ key: "lock_state_name",
+ align: "center",
+ },
+ {
+ title: "设备状态",
+ dataIndex: "device_state_name",
+ key: "device_state_name",
+ align: "center",
+ },
+ {
+ title: "操作",
+ dataIndex: "operation",
+ key: "operation",
+ align: "center",
+ fixed: "right",
+ render: (_, record) => {
+ return (
+
+ 操作
+
+ );
+ },
+ },
+ ];
+
+
+
+
+ const [tableData, setTableData] = useState([]);
+ const [total, setTotal] = useState(0);
+ //获取函数
+ function search(params) {
+ utils.tableScrollTop("parent-table-scroll")
+ ajax.getPileMonitor(params).then((res) => {
+ if (res.status === 20000) {
+ setTableData(res.data.list);
+ setTotal(res.data.total);
+ }else{
+ message.error(res.message)
+ }
+ });
+ }
+
+ return (
+ <>
+
+ >
+ );
+}
+
+export default PileMonitor;
diff --git a/src/pages/NewEnergy/RealtimeMonitor/PileMonitor/dataSource.js b/src/pages/NewEnergy/RealtimeMonitor/PileMonitor/dataSource.js
new file mode 100644
index 0000000..99b73a3
--- /dev/null
+++ b/src/pages/NewEnergy/RealtimeMonitor/PileMonitor/dataSource.js
@@ -0,0 +1,183 @@
+//用来存储表头的js文件
+import React from "react";
+import { Button } from "antd";
+//支付记录的表头
+export const payRecordColumns = [
+ {
+ title: "序号",
+ dataIndex: "id",
+ key: "id",
+ align: "center",
+ render: (text, record, index) => index + 1,
+ },
+ {
+ title: "订单ID",
+ dataIndex: "order_id",
+ key: "order_id",
+ align: "center",
+ },
+ {
+ title: "入场时间",
+ dataIndex: "admission_time",
+ key: "admission_time",
+ align: "center",
+ },
+ {
+ title: "计费时间",
+ dataIndex: "charging_time",
+ key: "charging_time",
+ align: "center",
+ },
+ {
+ title: "支付时间",
+ dataIndex: "pay_time",
+ key: "pay_time",
+ align: "center",
+ },
+ {
+ title: "应收金额",
+ dataIndex: "receivable_amount",
+ key: "receivable_amount",
+ align: "center",
+ },
+ {
+ title: "优惠金额",
+ dataIndex: "discount_amount",
+ key: "discount_amount",
+ align: "center",
+ },
+ {
+ title: "实付金额",
+ dataIndex: "paid_in_money",
+ key: "paid_in_money",
+ align: "center",
+ },
+ {
+ title: "支付类型",
+ dataIndex: "pay_type_name",
+ key: "pay_type_name",
+ align: "center",
+ },
+ {
+ title: "支付渠道",
+ dataIndex: "payment_channels",
+ key: "payment_channels",
+ align: "center",
+ },
+ {
+ title: "支付设备",
+ dataIndex: "payment_equipment",
+ key: "payment_equipment",
+ align: "center",
+ },
+ {
+ title: "支付人",
+ dataIndex: "pay_person",
+ key: "pay_person",
+ align: "center",
+ },
+ {
+ title: "付款路段",
+ dataIndex: "pay_road",
+ key: "pay_road",
+ align: "center",
+ },
+ {
+ title: "第三方流水ID",
+ dataIndex: "third_party_flow_id",
+ key: "third_party_flow_id",
+ align: "center",
+ },
+];
+//退款订单的表头
+export const refundRecordColumns = [
+ {
+ title: "序号",
+ dataIndex: "id",
+ key: "id",
+ align: "center",
+ render: (text, record, index) => index + 1,
+ },
+ {
+ title: "退款方式",
+ dataIndex: "refund_type",
+ key: "refund_type",
+ align: "center",
+ },
+ {
+ title: "支付渠道",
+ dataIndex: "pay_road",
+ key: "pay_road",
+ align: "center",
+ },
+ {
+ title: "支付设备",
+ dataIndex: "paymentDevice",
+ key: "paymentDevice",
+ align: "center",
+ },
+ {
+ title: "退款原因",
+ dataIndex: "reason",
+ key: "reason",
+ align: "center",
+ },
+ {
+ title: "退款金额",
+ dataIndex: "refund_amount",
+ key: "refund_amount",
+ align: "center",
+ },
+ {
+ title: "申请人",
+ dataIndex: "application_person",
+ key: "application_person",
+ align: "center",
+ },
+ {
+ title: "申请时间",
+ dataIndex: "application_time",
+ key: "application_time",
+ align: "center",
+ },
+ {
+ title: "退款时间",
+ dataIndex: "refund_time",
+ key: "refund_time",
+ align: "center",
+ },
+];
+//操作记录
+export const operatorRecordColumns = [
+ {
+ title: "序号",
+ dataIndex: "id",
+ key: "id",
+ align: "center",
+ render: (text, record, index) => index + 1,
+ },
+ {
+ title: "操作类型",
+ dataIndex: "type",
+ key: "type",
+ align: "center",
+ },
+ {
+ title: "操作来源",
+ dataIndex: "source",
+ key: "source",
+ align: "center",
+ },
+ {
+ title: "操作人/设备",
+ dataIndex: "object",
+ key: "object",
+ align: "center",
+ },
+ {
+ title: "操作时间",
+ dataIndex: "time",
+ key: "time",
+ align: "center",
+ },
+];
diff --git a/src/pages/NewEnergy/RealtimeMonitor/PileMonitor/index.jsx b/src/pages/NewEnergy/RealtimeMonitor/PileMonitor/index.jsx
new file mode 100644
index 0000000..d6150c1
--- /dev/null
+++ b/src/pages/NewEnergy/RealtimeMonitor/PileMonitor/index.jsx
@@ -0,0 +1,6 @@
+import React from "react"
+import loadable from "@loadable/component"
+import { LoadingImg } from "@/components"
+
+const PileMonitor = loadable(() => import("./loadable"))
+export default (pros) => } />
\ No newline at end of file
diff --git a/src/pages/NewEnergy/RealtimeMonitor/PileMonitor/index.scss b/src/pages/NewEnergy/RealtimeMonitor/PileMonitor/index.scss
new file mode 100644
index 0000000..9a8202a
--- /dev/null
+++ b/src/pages/NewEnergy/RealtimeMonitor/PileMonitor/index.scss
@@ -0,0 +1,238 @@
+@import "@/assets/css/mixin.scss";
+$color-container-bg: var(--color-container-bg);
+$color-user-list-bg: var(--color-user-list-bg);
+$color-text: var(--color-text);
+$color-primary: var(--color-primary);
+
+.ant-tabs {
+ margin-bottom: 16px;
+
+ .ant-tabs-nav {
+ margin-bottom: 0 !important;
+
+ &::before {
+ border-bottom: 1px solid var(--color-card-line) !important;
+ }
+ }
+
+ .ant-tabs-nav-wrap {
+ width: 100%;
+ box-sizing: content-box;
+
+ .ant-tabs-nav-list {
+ width: 340px;
+
+ .ant-tabs-ink-bar {
+ height: 3px;
+ background-color: #00ccff;
+ }
+
+ .ant-tabs-tab {
+ flex: 1;
+ width: 100%;
+ display: flex;
+ justify-content: center;
+ padding-bottom: 10px;
+ text-align: center;
+ cursor: pointer;
+ font-size: 14px !important;
+ font-family: MicrosoftYaHei;
+ text-align: center;
+ letter-spacing: 0.7px;
+ }
+
+ .ant-tabs-tab-active {
+ div {
+ color: #00ccff;
+ }
+ }
+ }
+ }
+}
+
+.ant-input::-webkit-input-placeholder {
+ color: var(--color-placeholder);
+}
+
+.ant-input::-moz-placeholder {
+ color: var(--color-placeholder);
+}
+.right-list .ant-btn-primary {
+ width: 68px;
+ height: 30px;
+ background: linear-gradient(180deg, #3aa9ff, #59b7ff);
+ border-radius: 4px;
+}
+.ant-input:-ms-input-placeholder {
+ color: var(--color-placeholder);
+}
+.right-list .cc-result-flow .table-wrap .yisa-table .ant-table-thead th {
+ background-color: #616b83 !important;
+}
+.right-list .cc-result-flow .table-wrap .yisa-table .ant-table-tbody td {
+ background-color: #3e4557 !important;
+}
+.right-list .cc-result-flow .table-wrap .yisa-table .ant-table-tbody tr:nth-child(even) td {
+ background-color: #3e4557 !important;
+}
+.ant-input::placeholder {
+ color: var(--color-placeholder);
+}
+
+.ant-select-selection-placeholder {
+ color: var(--color-placeholder);
+}
+
+.ant-select-disabled.ant-select-single:not(.ant-select-customize-input) .ant-select-selector {
+ background: var(--color-input-disabled-bg);
+ color: var(--color-placeholder);
+}
+
+.ant-select-disabled .ant-select-arrow {
+ color: var(--color-placeholder);
+}
+
+.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector {
+ background-color: var(--color-input-disabled-bg);
+ color: var(--color-input-disabled-color);
+ cursor: not-allowed;
+}
+
+.ant-select-multiple {
+ .ant-select-selector {
+ .ant-select-selection-item {
+ background-color: var(--color-bg-body);
+ border-color: var(--color-border);
+
+ .ant-select-selection-item-remove {
+ color: var(--color-text);
+ }
+ }
+ }
+}
+
+.ant-select-arrow {
+ color: var(--color-text);
+}
+
+.ant-select-clear {
+ border-radius: 50%;
+}
+
+.ant-select-dropdown-menu {
+ background-color: var(--color-input-bg);
+
+ .ant-select-dropdown-menu-item {
+ color: var(--color-text);
+
+ &.ant-select-dropdown-menu-item-active {
+ color: #fff;
+ // background-color: var(--radio-button-bg-checked);
+ }
+
+ &.ant-select-dropdown-menu-item-selected {
+ color: #fff;
+ // background-color: var(--radio-button-bg-checked);
+ }
+
+ &:hover {
+ color: #fff;
+ // background-color: var(--radio-button-bg-checked);
+ }
+ }
+}
+
+.ant-select-selector {
+ background-color: var(--color-search-list-item-bg) !important;
+ box-shadow: none !important;
+ border-radius: 4px;
+ color: var(--color-search-list-item-value);
+ border-color: var(--color-search-list-item-bd) !important;
+}
+
+.ant-select-selection {
+ background-color: var(--color-input-bg);
+ box-shadow: none;
+ color: var(--color-text);
+ // border-color:var(--checkable-tag-border);
+}
+
+.ant-form-horizontal .ant-form-item-label {
+ label {
+ display: inline-block;
+ word-wrap: break-word;
+ white-space: normal;
+ }
+}
+
+.ant-picker {
+ width: 100%;
+ background-color: var(--color-search-list-item-bg);
+ border-color: var(--color-border);
+}
+
+// .yisa-table {
+// width: 100%;
+
+// .ant-table-thead {
+// th {
+// background: var(--color-table-header-bg) !important;
+// }
+// }
+
+// .ant-table-tbody {
+// td {
+// background: var(--color-table-body-bg) !important;
+// border-bottom-color: var(--color-table-border-bottom-color);
+// }
+
+// tr:nth-child(even) {
+// td {
+// background: var(--color-table-body-bg-nth-child-even) !important;
+// }
+// }
+
+// tr:nth-child(odd) {
+// td {
+// background: var(--color-table-body-bg-nth-child-even) !important;
+// }
+// }
+// }
+// }
+.totalModal{
+ .ant-modal-footer{
+ display: none;
+ }
+ position: absolute;
+ top: 40px;
+ right: 174px;
+}
+.ltc-item-img {
+ width: 390px;
+ height: 300px;
+ border: 1px solid;
+ background: #6565656b;
+ margin-right: 20px !important;
+ img {
+ height: 295px;
+ width: 387px;
+ // object-fit: contain;
+ }
+}
+.hanleHistoyModal{
+ max-height: 700px;
+ overflow: auto;
+}
+.hanleHistoyModal::-webkit-scrollbar {
+ width: 5px;
+}
+.hanleHistoyModal::-webkit-scrollbar-thumb {
+ background-color: #9da2ab;
+ border-radius: 10px;
+}
+.modal-img{
+ img{
+ width: 200px;
+ height: 200px;
+ }
+}
\ No newline at end of file
diff --git a/src/pages/NewEnergy/RealtimeMonitor/PileMonitor/loadable.jsx b/src/pages/NewEnergy/RealtimeMonitor/PileMonitor/loadable.jsx
new file mode 100644
index 0000000..fe1f87b
--- /dev/null
+++ b/src/pages/NewEnergy/RealtimeMonitor/PileMonitor/loadable.jsx
@@ -0,0 +1,177 @@
+import React, { useState, useRef, useEffect } from "react";
+import {
+ message,
+ Pagination,
+ Table,
+ Space,
+ Modal,
+ Button,
+ Tabs,
+ Descriptions,
+ Input,
+ Steps,
+ Select,
+ Image,
+ Timeline,
+ Popover
+} from "antd";
+import { dictionary, utils } from "@/config/common";
+// import moment from 'moment'
+// import { useSessionStorageState, useUpdateEffect, useSize, useUpdate } from 'ahooks';
+import ajax from "@/services";
+import errorImg from '@/assets/images/error-img-new.png'
+import { QuestionCircleOutlined } from '@ant-design/icons';
+import { TableModule } from "@/components";
+import "./index.scss";
+
+// import errorImg from "@/assets/images/layout/error.png"
+// import { useLocation } from "react-router-dom";
+const { TextArea } = Input;
+
+let array = [];
+
+function PileMonitor() {
+
+
+
+ const formSearch = [
+ {
+ name: "device_name",
+ type: "Input",
+ label: "设备名称",
+ placeholder:"请输入"
+ },
+ {
+ name: "device_num",
+ type: "Input",
+ label: "设备编码",
+ placeholder:"请输入"
+ },
+ {
+ name: "device_state",
+ type: "Select",
+ label: "设备状态",
+ defaultValue: 0,
+ options: sysConfig.energyDeviceType,
+ },
+ {
+ name: "lock_state",
+ type: "Select",
+ label: "车位锁状态",
+ defaultValue: 0,
+ options: sysConfig.energyLockState,
+ },
+
+ ];
+ const initFormData = {
+ device_name:"",
+ device_num:""
+ };
+ //历史处理的表头
+ const columns = [
+ {
+ title: "序号",
+ dataIndex: "id",
+ key: "id",
+ align: "center",
+ render: (text, record, index) => index + 1,
+ },
+ {
+ title: "设备名称",
+ dataIndex: "device_name",
+ key: "device_name",
+ align: "center",
+ },
+ {
+ title: "设备编码",
+ dataIndex: "device_num",
+ key: "device_num",
+ align: "center",
+ },
+ {
+ title: "设备类型",
+ dataIndex: "device_type",
+ key: "device_type",
+ align: "center",
+ },
+ {
+ title: "设备供应商",
+ dataIndex: "device_vendor",
+ key: "device_vendor",
+ align: "center",
+ },
+ {
+ title: "对接平台",
+ dataIndex: "platform",
+ key: "platform",
+ align: "center",
+ },
+ {
+ title: "车位锁状态",
+ dataIndex: "lock_state_name",
+ key: "lock_state_name",
+ align: "center",
+ },
+ {
+ title: "设备状态",
+ dataIndex: "device_state_name",
+ key: "device_state_name",
+ align: "center",
+ },
+ {
+ title: "操作",
+ dataIndex: "operation",
+ key: "operation",
+ align: "center",
+ fixed: "right",
+ render: (_, record) => {
+ return (
+
+ 操作
+
+ );
+ },
+ },
+ ];
+
+
+
+
+ const [tableData, setTableData] = useState([]);
+ const [total, setTotal] = useState(0);
+ //获取函数
+ function search(params) {
+ utils.tableScrollTop("parent-table-scroll")
+ ajax.getPileMonitor(params).then((res) => {
+ if (res.status === 20000) {
+ setTableData(res.data.list);
+ setTotal(res.data.total);
+ }else{
+ message.error(res.message)
+ }
+ });
+ }
+
+ return (
+ <>
+
+ >
+ );
+}
+
+export default PileMonitor;
diff --git a/src/pages/NewEnergy/RealtimeMonitor/index.jsx b/src/pages/NewEnergy/RealtimeMonitor/index.jsx
new file mode 100644
index 0000000..c3128c0
--- /dev/null
+++ b/src/pages/NewEnergy/RealtimeMonitor/index.jsx
@@ -0,0 +1,10 @@
+import ChargerMonitor from "./ChargerMonitor"
+import LockMonitor from "./LockMonitor"
+import PileMonitor from "./PileMonitor"
+
+
+export default {
+ ChargerMonitor,
+ LockMonitor,
+ PileMonitor
+}
\ No newline at end of file
diff --git a/src/pages/NewEnergy/RecordsInquiry/Appointment/index.jsx b/src/pages/NewEnergy/RecordsInquiry/Appointment/index.jsx
new file mode 100644
index 0000000..d1dc1c2
--- /dev/null
+++ b/src/pages/NewEnergy/RecordsInquiry/Appointment/index.jsx
@@ -0,0 +1,6 @@
+import React from "react"
+import loadable from "@loadable/component"
+import { LoadingImg } from "@/components"
+
+const Appointment = loadable(() => import("./loadable"))
+export default (pros) => } />
\ No newline at end of file
diff --git a/src/pages/NewEnergy/RecordsInquiry/Appointment/index.scss b/src/pages/NewEnergy/RecordsInquiry/Appointment/index.scss
new file mode 100644
index 0000000..9a8202a
--- /dev/null
+++ b/src/pages/NewEnergy/RecordsInquiry/Appointment/index.scss
@@ -0,0 +1,238 @@
+@import "@/assets/css/mixin.scss";
+$color-container-bg: var(--color-container-bg);
+$color-user-list-bg: var(--color-user-list-bg);
+$color-text: var(--color-text);
+$color-primary: var(--color-primary);
+
+.ant-tabs {
+ margin-bottom: 16px;
+
+ .ant-tabs-nav {
+ margin-bottom: 0 !important;
+
+ &::before {
+ border-bottom: 1px solid var(--color-card-line) !important;
+ }
+ }
+
+ .ant-tabs-nav-wrap {
+ width: 100%;
+ box-sizing: content-box;
+
+ .ant-tabs-nav-list {
+ width: 340px;
+
+ .ant-tabs-ink-bar {
+ height: 3px;
+ background-color: #00ccff;
+ }
+
+ .ant-tabs-tab {
+ flex: 1;
+ width: 100%;
+ display: flex;
+ justify-content: center;
+ padding-bottom: 10px;
+ text-align: center;
+ cursor: pointer;
+ font-size: 14px !important;
+ font-family: MicrosoftYaHei;
+ text-align: center;
+ letter-spacing: 0.7px;
+ }
+
+ .ant-tabs-tab-active {
+ div {
+ color: #00ccff;
+ }
+ }
+ }
+ }
+}
+
+.ant-input::-webkit-input-placeholder {
+ color: var(--color-placeholder);
+}
+
+.ant-input::-moz-placeholder {
+ color: var(--color-placeholder);
+}
+.right-list .ant-btn-primary {
+ width: 68px;
+ height: 30px;
+ background: linear-gradient(180deg, #3aa9ff, #59b7ff);
+ border-radius: 4px;
+}
+.ant-input:-ms-input-placeholder {
+ color: var(--color-placeholder);
+}
+.right-list .cc-result-flow .table-wrap .yisa-table .ant-table-thead th {
+ background-color: #616b83 !important;
+}
+.right-list .cc-result-flow .table-wrap .yisa-table .ant-table-tbody td {
+ background-color: #3e4557 !important;
+}
+.right-list .cc-result-flow .table-wrap .yisa-table .ant-table-tbody tr:nth-child(even) td {
+ background-color: #3e4557 !important;
+}
+.ant-input::placeholder {
+ color: var(--color-placeholder);
+}
+
+.ant-select-selection-placeholder {
+ color: var(--color-placeholder);
+}
+
+.ant-select-disabled.ant-select-single:not(.ant-select-customize-input) .ant-select-selector {
+ background: var(--color-input-disabled-bg);
+ color: var(--color-placeholder);
+}
+
+.ant-select-disabled .ant-select-arrow {
+ color: var(--color-placeholder);
+}
+
+.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector {
+ background-color: var(--color-input-disabled-bg);
+ color: var(--color-input-disabled-color);
+ cursor: not-allowed;
+}
+
+.ant-select-multiple {
+ .ant-select-selector {
+ .ant-select-selection-item {
+ background-color: var(--color-bg-body);
+ border-color: var(--color-border);
+
+ .ant-select-selection-item-remove {
+ color: var(--color-text);
+ }
+ }
+ }
+}
+
+.ant-select-arrow {
+ color: var(--color-text);
+}
+
+.ant-select-clear {
+ border-radius: 50%;
+}
+
+.ant-select-dropdown-menu {
+ background-color: var(--color-input-bg);
+
+ .ant-select-dropdown-menu-item {
+ color: var(--color-text);
+
+ &.ant-select-dropdown-menu-item-active {
+ color: #fff;
+ // background-color: var(--radio-button-bg-checked);
+ }
+
+ &.ant-select-dropdown-menu-item-selected {
+ color: #fff;
+ // background-color: var(--radio-button-bg-checked);
+ }
+
+ &:hover {
+ color: #fff;
+ // background-color: var(--radio-button-bg-checked);
+ }
+ }
+}
+
+.ant-select-selector {
+ background-color: var(--color-search-list-item-bg) !important;
+ box-shadow: none !important;
+ border-radius: 4px;
+ color: var(--color-search-list-item-value);
+ border-color: var(--color-search-list-item-bd) !important;
+}
+
+.ant-select-selection {
+ background-color: var(--color-input-bg);
+ box-shadow: none;
+ color: var(--color-text);
+ // border-color:var(--checkable-tag-border);
+}
+
+.ant-form-horizontal .ant-form-item-label {
+ label {
+ display: inline-block;
+ word-wrap: break-word;
+ white-space: normal;
+ }
+}
+
+.ant-picker {
+ width: 100%;
+ background-color: var(--color-search-list-item-bg);
+ border-color: var(--color-border);
+}
+
+// .yisa-table {
+// width: 100%;
+
+// .ant-table-thead {
+// th {
+// background: var(--color-table-header-bg) !important;
+// }
+// }
+
+// .ant-table-tbody {
+// td {
+// background: var(--color-table-body-bg) !important;
+// border-bottom-color: var(--color-table-border-bottom-color);
+// }
+
+// tr:nth-child(even) {
+// td {
+// background: var(--color-table-body-bg-nth-child-even) !important;
+// }
+// }
+
+// tr:nth-child(odd) {
+// td {
+// background: var(--color-table-body-bg-nth-child-even) !important;
+// }
+// }
+// }
+// }
+.totalModal{
+ .ant-modal-footer{
+ display: none;
+ }
+ position: absolute;
+ top: 40px;
+ right: 174px;
+}
+.ltc-item-img {
+ width: 390px;
+ height: 300px;
+ border: 1px solid;
+ background: #6565656b;
+ margin-right: 20px !important;
+ img {
+ height: 295px;
+ width: 387px;
+ // object-fit: contain;
+ }
+}
+.hanleHistoyModal{
+ max-height: 700px;
+ overflow: auto;
+}
+.hanleHistoyModal::-webkit-scrollbar {
+ width: 5px;
+}
+.hanleHistoyModal::-webkit-scrollbar-thumb {
+ background-color: #9da2ab;
+ border-radius: 10px;
+}
+.modal-img{
+ img{
+ width: 200px;
+ height: 200px;
+ }
+}
\ No newline at end of file
diff --git a/src/pages/NewEnergy/RecordsInquiry/Appointment/loadable.jsx b/src/pages/NewEnergy/RecordsInquiry/Appointment/loadable.jsx
new file mode 100644
index 0000000..febe305
--- /dev/null
+++ b/src/pages/NewEnergy/RecordsInquiry/Appointment/loadable.jsx
@@ -0,0 +1,231 @@
+import React, { useState, useRef, useEffect } from "react";
+import {
+ message,
+ Pagination,
+ Table,
+ Space,
+ Modal,
+ Button,
+ Tabs,
+ Descriptions,
+ Input,
+ Steps,
+ Select,
+ Image,
+ Timeline,
+ Popover
+} from "antd";
+import { dictionary } from "@/config/common";
+import ajax from "@/services";
+import { TableModule } from "@/components";
+import "./index.scss";
+
+const { TextArea } = Input;
+
+function Appointment() {
+ // 详情弹窗
+ const [detailVisible, setDetailVisible] = useState(false);
+ // 列表数据
+ const [tableData, setTableData] = useState([]);
+ // 数据总数
+ const [total, setTotal] = useState(0);
+ // 详情数据
+ const [detailData, setDetailData] = useState({});
+ // 初始搜索条件
+ const initFormData = {
+ operator: "0",
+ rule_name: "",
+ };
+
+ const columns = [
+ {
+ title: "用户手机号",
+ dataIndex: "operator",
+ key: "operator",
+ align: "center",
+ },
+ {
+ title: "车牌号",
+ dataIndex: "plate",
+ key: "plate",
+ align: "center",
+ },
+ {
+ title: "充电站",
+ dataIndex: "plate_color",
+ key: "plate_color",
+ align: "center",
+ },
+ {
+ title: "商户名称",
+ dataIndex: "berth_id",
+ key: "berth_id",
+ align: "center",
+ },
+ {
+ title: "降预约开始时间",
+ dataIndex: "in_time",
+ key: "in_time",
+ align: "center",
+ },
+ {
+ title: "预约截至时间",
+ dataIndex: "in_time",
+ key: "in_time",
+ align: "center",
+ },
+ {
+ title: "缴纳预约费用金额",
+ dataIndex: "in_time",
+ key: "in_time",
+ align: "center",
+ },
+ {
+ title: "缴费时间",
+ dataIndex: "in_time",
+ key: "in_time",
+ align: "center",
+ },
+ {
+ title: "订单状态",
+ dataIndex: "in_time",
+ key: "in_time",
+ align: "center",
+ },
+ {
+ title: "订单完结时间",
+ dataIndex: "in_time",
+ key: "in_time",
+ align: "center",
+ },
+ {
+ title: "预约费用退款金额",
+ dataIndex: "in_time",
+ key: "in_time",
+ align: "center",
+ },
+ {
+ title: "顶动感实收金额",
+ dataIndex: "in_time",
+ key: "in_time",
+ align: "center",
+ },
+ {
+ title: "操作",
+ dataIndex: "operation",
+ key: "operation",
+ align: "center",
+ fixed: "right",
+ width: 100,
+ render: (text, record, index) => {
+ return (
+ <>
+ openModal(index, record)}>
+ 详情
+
+ >
+ )
+
+ },
+ },
+ ];
+
+ const formSearch = [
+ {
+ name: "phone",
+ type: "Input",
+ label: "用户手机号",
+ placeholder: "请输入用户手机号",
+ },
+ {
+ name: "plate",
+ type: "Input",
+ label: "车牌号",
+ placeholder: "请输入车牌号",
+ },
+ {
+ name: "charging",
+ type: "Input",
+ label: "充电站",
+ placeholder: "请输入充电站",
+ },
+ {
+ name: "operator",
+ type: "Select",
+ label: "商户名称",
+ defaultValue: "0",
+ placeholder: "请选择商户名称",
+ },
+ {
+ name: "timeStart",
+ type: "DateRangePicker",
+ label: "预约开始时间",
+ },
+ {
+ name: "timeEnd",
+ type: "DateRangePicker",
+ label: "订单完结时间",
+ },
+ ];
+
+ // 打开弹窗
+ const openModal = (index, record) => {
+ setDetailData(record)
+ setDetailVisible(true);
+ }
+
+ // 检索
+ const search = (params) => {
+ ajax.getParkingList(params).then((res) => {
+ if (res.status === 20000) {
+ setTableData(res.data.list);
+ setTotal(res.data.total);
+ } else {
+ message.error(res.message)
+ }
+ });
+ }
+
+ const handelAdd = () => {
+ setDetailVisible(true)
+ }
+
+ return (
+ <>
+
+ 新增
+
+ }
+ columns={columns}
+ tableData={tableData}
+ formSearch={formSearch}
+ pagename="预约订单"
+ pageName={'Appointment'}
+ initFormData={initFormData}
+ total={total}
+ search={search}
+ exportUrl="/api/bpm/record/get_record_export"
+ />
+ {
+ setDetailVisible(false);
+ }}
+ destroyOnClose
+ >
+
+
+ >
+ );
+}
+
+export default Appointment;
diff --git a/src/pages/NewEnergy/RecordsInquiry/Charge/index.jsx b/src/pages/NewEnergy/RecordsInquiry/Charge/index.jsx
new file mode 100644
index 0000000..fe31772
--- /dev/null
+++ b/src/pages/NewEnergy/RecordsInquiry/Charge/index.jsx
@@ -0,0 +1,6 @@
+import React from "react"
+import loadable from "@loadable/component"
+import { LoadingImg } from "@/components"
+
+const Charge = loadable(() => import("./loadable"))
+export default (pros) => } />
\ No newline at end of file
diff --git a/src/pages/NewEnergy/RecordsInquiry/Charge/index.scss b/src/pages/NewEnergy/RecordsInquiry/Charge/index.scss
new file mode 100644
index 0000000..9a8202a
--- /dev/null
+++ b/src/pages/NewEnergy/RecordsInquiry/Charge/index.scss
@@ -0,0 +1,238 @@
+@import "@/assets/css/mixin.scss";
+$color-container-bg: var(--color-container-bg);
+$color-user-list-bg: var(--color-user-list-bg);
+$color-text: var(--color-text);
+$color-primary: var(--color-primary);
+
+.ant-tabs {
+ margin-bottom: 16px;
+
+ .ant-tabs-nav {
+ margin-bottom: 0 !important;
+
+ &::before {
+ border-bottom: 1px solid var(--color-card-line) !important;
+ }
+ }
+
+ .ant-tabs-nav-wrap {
+ width: 100%;
+ box-sizing: content-box;
+
+ .ant-tabs-nav-list {
+ width: 340px;
+
+ .ant-tabs-ink-bar {
+ height: 3px;
+ background-color: #00ccff;
+ }
+
+ .ant-tabs-tab {
+ flex: 1;
+ width: 100%;
+ display: flex;
+ justify-content: center;
+ padding-bottom: 10px;
+ text-align: center;
+ cursor: pointer;
+ font-size: 14px !important;
+ font-family: MicrosoftYaHei;
+ text-align: center;
+ letter-spacing: 0.7px;
+ }
+
+ .ant-tabs-tab-active {
+ div {
+ color: #00ccff;
+ }
+ }
+ }
+ }
+}
+
+.ant-input::-webkit-input-placeholder {
+ color: var(--color-placeholder);
+}
+
+.ant-input::-moz-placeholder {
+ color: var(--color-placeholder);
+}
+.right-list .ant-btn-primary {
+ width: 68px;
+ height: 30px;
+ background: linear-gradient(180deg, #3aa9ff, #59b7ff);
+ border-radius: 4px;
+}
+.ant-input:-ms-input-placeholder {
+ color: var(--color-placeholder);
+}
+.right-list .cc-result-flow .table-wrap .yisa-table .ant-table-thead th {
+ background-color: #616b83 !important;
+}
+.right-list .cc-result-flow .table-wrap .yisa-table .ant-table-tbody td {
+ background-color: #3e4557 !important;
+}
+.right-list .cc-result-flow .table-wrap .yisa-table .ant-table-tbody tr:nth-child(even) td {
+ background-color: #3e4557 !important;
+}
+.ant-input::placeholder {
+ color: var(--color-placeholder);
+}
+
+.ant-select-selection-placeholder {
+ color: var(--color-placeholder);
+}
+
+.ant-select-disabled.ant-select-single:not(.ant-select-customize-input) .ant-select-selector {
+ background: var(--color-input-disabled-bg);
+ color: var(--color-placeholder);
+}
+
+.ant-select-disabled .ant-select-arrow {
+ color: var(--color-placeholder);
+}
+
+.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector {
+ background-color: var(--color-input-disabled-bg);
+ color: var(--color-input-disabled-color);
+ cursor: not-allowed;
+}
+
+.ant-select-multiple {
+ .ant-select-selector {
+ .ant-select-selection-item {
+ background-color: var(--color-bg-body);
+ border-color: var(--color-border);
+
+ .ant-select-selection-item-remove {
+ color: var(--color-text);
+ }
+ }
+ }
+}
+
+.ant-select-arrow {
+ color: var(--color-text);
+}
+
+.ant-select-clear {
+ border-radius: 50%;
+}
+
+.ant-select-dropdown-menu {
+ background-color: var(--color-input-bg);
+
+ .ant-select-dropdown-menu-item {
+ color: var(--color-text);
+
+ &.ant-select-dropdown-menu-item-active {
+ color: #fff;
+ // background-color: var(--radio-button-bg-checked);
+ }
+
+ &.ant-select-dropdown-menu-item-selected {
+ color: #fff;
+ // background-color: var(--radio-button-bg-checked);
+ }
+
+ &:hover {
+ color: #fff;
+ // background-color: var(--radio-button-bg-checked);
+ }
+ }
+}
+
+.ant-select-selector {
+ background-color: var(--color-search-list-item-bg) !important;
+ box-shadow: none !important;
+ border-radius: 4px;
+ color: var(--color-search-list-item-value);
+ border-color: var(--color-search-list-item-bd) !important;
+}
+
+.ant-select-selection {
+ background-color: var(--color-input-bg);
+ box-shadow: none;
+ color: var(--color-text);
+ // border-color:var(--checkable-tag-border);
+}
+
+.ant-form-horizontal .ant-form-item-label {
+ label {
+ display: inline-block;
+ word-wrap: break-word;
+ white-space: normal;
+ }
+}
+
+.ant-picker {
+ width: 100%;
+ background-color: var(--color-search-list-item-bg);
+ border-color: var(--color-border);
+}
+
+// .yisa-table {
+// width: 100%;
+
+// .ant-table-thead {
+// th {
+// background: var(--color-table-header-bg) !important;
+// }
+// }
+
+// .ant-table-tbody {
+// td {
+// background: var(--color-table-body-bg) !important;
+// border-bottom-color: var(--color-table-border-bottom-color);
+// }
+
+// tr:nth-child(even) {
+// td {
+// background: var(--color-table-body-bg-nth-child-even) !important;
+// }
+// }
+
+// tr:nth-child(odd) {
+// td {
+// background: var(--color-table-body-bg-nth-child-even) !important;
+// }
+// }
+// }
+// }
+.totalModal{
+ .ant-modal-footer{
+ display: none;
+ }
+ position: absolute;
+ top: 40px;
+ right: 174px;
+}
+.ltc-item-img {
+ width: 390px;
+ height: 300px;
+ border: 1px solid;
+ background: #6565656b;
+ margin-right: 20px !important;
+ img {
+ height: 295px;
+ width: 387px;
+ // object-fit: contain;
+ }
+}
+.hanleHistoyModal{
+ max-height: 700px;
+ overflow: auto;
+}
+.hanleHistoyModal::-webkit-scrollbar {
+ width: 5px;
+}
+.hanleHistoyModal::-webkit-scrollbar-thumb {
+ background-color: #9da2ab;
+ border-radius: 10px;
+}
+.modal-img{
+ img{
+ width: 200px;
+ height: 200px;
+ }
+}
\ No newline at end of file
diff --git a/src/pages/NewEnergy/RecordsInquiry/Charge/loadable.jsx b/src/pages/NewEnergy/RecordsInquiry/Charge/loadable.jsx
new file mode 100644
index 0000000..50650f2
--- /dev/null
+++ b/src/pages/NewEnergy/RecordsInquiry/Charge/loadable.jsx
@@ -0,0 +1,231 @@
+import React, { useState, useRef, useEffect } from "react";
+import {
+ message,
+ Pagination,
+ Table,
+ Space,
+ Modal,
+ Button,
+ Tabs,
+ Descriptions,
+ Input,
+ Steps,
+ Select,
+ Image,
+ Timeline,
+ Popover
+} from "antd";
+import { dictionary } from "@/config/common";
+import ajax from "@/services";
+import { TableModule } from "@/components";
+import "./index.scss";
+
+const { TextArea } = Input;
+
+function Charge() {
+ // 详情弹窗
+ const [detailVisible, setDetailVisible] = useState(false);
+ // 列表数据
+ const [tableData, setTableData] = useState([]);
+ // 数据总数
+ const [total, setTotal] = useState(0);
+ // 详情数据
+ const [detailData, setDetailData] = useState({});
+ // 初始搜索条件
+ const initFormData = {
+ operator: "0",
+ rule_name: "",
+ };
+
+ const columns = [
+ {
+ title: "用户手机号",
+ dataIndex: "operator",
+ key: "operator",
+ align: "center",
+ },
+ {
+ title: "车牌号",
+ dataIndex: "plate",
+ key: "plate",
+ align: "center",
+ },
+ {
+ title: "充电站",
+ dataIndex: "plate_color",
+ key: "plate_color",
+ align: "center",
+ },
+ {
+ title: "商户名称",
+ dataIndex: "berth_id",
+ key: "berth_id",
+ align: "center",
+ },
+ {
+ title: "降预约开始时间",
+ dataIndex: "in_time",
+ key: "in_time",
+ align: "center",
+ },
+ {
+ title: "预约截至时间",
+ dataIndex: "in_time",
+ key: "in_time",
+ align: "center",
+ },
+ {
+ title: "缴纳预约费用金额",
+ dataIndex: "in_time",
+ key: "in_time",
+ align: "center",
+ },
+ {
+ title: "缴费时间",
+ dataIndex: "in_time",
+ key: "in_time",
+ align: "center",
+ },
+ {
+ title: "订单状态",
+ dataIndex: "in_time",
+ key: "in_time",
+ align: "center",
+ },
+ {
+ title: "订单完结时间",
+ dataIndex: "in_time",
+ key: "in_time",
+ align: "center",
+ },
+ {
+ title: "预约费用退款金额",
+ dataIndex: "in_time",
+ key: "in_time",
+ align: "center",
+ },
+ {
+ title: "顶动感实收金额",
+ dataIndex: "in_time",
+ key: "in_time",
+ align: "center",
+ },
+ {
+ title: "操作",
+ dataIndex: "operation",
+ key: "operation",
+ align: "center",
+ fixed: "right",
+ width: 100,
+ render: (text, record, index) => {
+ return (
+ <>
+ openModal(index, record)}>
+ 详情
+
+ >
+ )
+
+ },
+ },
+ ];
+
+ const formSearch = [
+ {
+ name: "phone",
+ type: "Input",
+ label: "用户手机号",
+ placeholder: "请输入用户手机号",
+ },
+ {
+ name: "plate",
+ type: "Input",
+ label: "车牌号",
+ placeholder: "请输入车牌号",
+ },
+ {
+ name: "charging",
+ type: "Input",
+ label: "充电站",
+ placeholder: "请输入充电站",
+ },
+ {
+ name: "operator",
+ type: "Select",
+ label: "商户名称",
+ defaultValue: "0",
+ placeholder: "请选择商户名称",
+ },
+ {
+ name: "timeStart",
+ type: "DateRangePicker",
+ label: "预约开始时间",
+ },
+ {
+ name: "timeEnd",
+ type: "DateRangePicker",
+ label: "订单完结时间",
+ },
+ ];
+
+ // 打开弹窗
+ const openModal = (index, record) => {
+ setDetailData(record)
+ setDetailVisible(true);
+ }
+
+ // 检索
+ const search = (params) => {
+ ajax.getParkingList(params).then((res) => {
+ if (res.status === 20000) {
+ setTableData(res.data.list);
+ setTotal(res.data.total);
+ } else {
+ message.error(res.message)
+ }
+ });
+ }
+
+ const handelAdd = () => {
+ setDetailVisible(true)
+ }
+
+ return (
+ <>
+
+ 新增
+
+ }
+ columns={columns}
+ tableData={tableData}
+ formSearch={formSearch}
+ pagename="预约订单"
+ pageName={'Appointment'}
+ initFormData={initFormData}
+ total={total}
+ search={search}
+ exportUrl="/api/bpm/record/get_record_export"
+ />
+ {
+ setDetailVisible(false);
+ }}
+ destroyOnClose
+ >
+
+
+ >
+ );
+}
+
+export default Charge;
diff --git a/src/pages/NewEnergy/RecordsInquiry/Unlocking/index.jsx b/src/pages/NewEnergy/RecordsInquiry/Unlocking/index.jsx
new file mode 100644
index 0000000..72ebfc5
--- /dev/null
+++ b/src/pages/NewEnergy/RecordsInquiry/Unlocking/index.jsx
@@ -0,0 +1,6 @@
+import React from "react"
+import loadable from "@loadable/component"
+import { LoadingImg } from "@/components"
+
+const UnlockingRecord = loadable(() => import("./loadable"))
+export default (pros) => } />
\ No newline at end of file
diff --git a/src/pages/NewEnergy/RecordsInquiry/Unlocking/index.scss b/src/pages/NewEnergy/RecordsInquiry/Unlocking/index.scss
new file mode 100644
index 0000000..9a8202a
--- /dev/null
+++ b/src/pages/NewEnergy/RecordsInquiry/Unlocking/index.scss
@@ -0,0 +1,238 @@
+@import "@/assets/css/mixin.scss";
+$color-container-bg: var(--color-container-bg);
+$color-user-list-bg: var(--color-user-list-bg);
+$color-text: var(--color-text);
+$color-primary: var(--color-primary);
+
+.ant-tabs {
+ margin-bottom: 16px;
+
+ .ant-tabs-nav {
+ margin-bottom: 0 !important;
+
+ &::before {
+ border-bottom: 1px solid var(--color-card-line) !important;
+ }
+ }
+
+ .ant-tabs-nav-wrap {
+ width: 100%;
+ box-sizing: content-box;
+
+ .ant-tabs-nav-list {
+ width: 340px;
+
+ .ant-tabs-ink-bar {
+ height: 3px;
+ background-color: #00ccff;
+ }
+
+ .ant-tabs-tab {
+ flex: 1;
+ width: 100%;
+ display: flex;
+ justify-content: center;
+ padding-bottom: 10px;
+ text-align: center;
+ cursor: pointer;
+ font-size: 14px !important;
+ font-family: MicrosoftYaHei;
+ text-align: center;
+ letter-spacing: 0.7px;
+ }
+
+ .ant-tabs-tab-active {
+ div {
+ color: #00ccff;
+ }
+ }
+ }
+ }
+}
+
+.ant-input::-webkit-input-placeholder {
+ color: var(--color-placeholder);
+}
+
+.ant-input::-moz-placeholder {
+ color: var(--color-placeholder);
+}
+.right-list .ant-btn-primary {
+ width: 68px;
+ height: 30px;
+ background: linear-gradient(180deg, #3aa9ff, #59b7ff);
+ border-radius: 4px;
+}
+.ant-input:-ms-input-placeholder {
+ color: var(--color-placeholder);
+}
+.right-list .cc-result-flow .table-wrap .yisa-table .ant-table-thead th {
+ background-color: #616b83 !important;
+}
+.right-list .cc-result-flow .table-wrap .yisa-table .ant-table-tbody td {
+ background-color: #3e4557 !important;
+}
+.right-list .cc-result-flow .table-wrap .yisa-table .ant-table-tbody tr:nth-child(even) td {
+ background-color: #3e4557 !important;
+}
+.ant-input::placeholder {
+ color: var(--color-placeholder);
+}
+
+.ant-select-selection-placeholder {
+ color: var(--color-placeholder);
+}
+
+.ant-select-disabled.ant-select-single:not(.ant-select-customize-input) .ant-select-selector {
+ background: var(--color-input-disabled-bg);
+ color: var(--color-placeholder);
+}
+
+.ant-select-disabled .ant-select-arrow {
+ color: var(--color-placeholder);
+}
+
+.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector {
+ background-color: var(--color-input-disabled-bg);
+ color: var(--color-input-disabled-color);
+ cursor: not-allowed;
+}
+
+.ant-select-multiple {
+ .ant-select-selector {
+ .ant-select-selection-item {
+ background-color: var(--color-bg-body);
+ border-color: var(--color-border);
+
+ .ant-select-selection-item-remove {
+ color: var(--color-text);
+ }
+ }
+ }
+}
+
+.ant-select-arrow {
+ color: var(--color-text);
+}
+
+.ant-select-clear {
+ border-radius: 50%;
+}
+
+.ant-select-dropdown-menu {
+ background-color: var(--color-input-bg);
+
+ .ant-select-dropdown-menu-item {
+ color: var(--color-text);
+
+ &.ant-select-dropdown-menu-item-active {
+ color: #fff;
+ // background-color: var(--radio-button-bg-checked);
+ }
+
+ &.ant-select-dropdown-menu-item-selected {
+ color: #fff;
+ // background-color: var(--radio-button-bg-checked);
+ }
+
+ &:hover {
+ color: #fff;
+ // background-color: var(--radio-button-bg-checked);
+ }
+ }
+}
+
+.ant-select-selector {
+ background-color: var(--color-search-list-item-bg) !important;
+ box-shadow: none !important;
+ border-radius: 4px;
+ color: var(--color-search-list-item-value);
+ border-color: var(--color-search-list-item-bd) !important;
+}
+
+.ant-select-selection {
+ background-color: var(--color-input-bg);
+ box-shadow: none;
+ color: var(--color-text);
+ // border-color:var(--checkable-tag-border);
+}
+
+.ant-form-horizontal .ant-form-item-label {
+ label {
+ display: inline-block;
+ word-wrap: break-word;
+ white-space: normal;
+ }
+}
+
+.ant-picker {
+ width: 100%;
+ background-color: var(--color-search-list-item-bg);
+ border-color: var(--color-border);
+}
+
+// .yisa-table {
+// width: 100%;
+
+// .ant-table-thead {
+// th {
+// background: var(--color-table-header-bg) !important;
+// }
+// }
+
+// .ant-table-tbody {
+// td {
+// background: var(--color-table-body-bg) !important;
+// border-bottom-color: var(--color-table-border-bottom-color);
+// }
+
+// tr:nth-child(even) {
+// td {
+// background: var(--color-table-body-bg-nth-child-even) !important;
+// }
+// }
+
+// tr:nth-child(odd) {
+// td {
+// background: var(--color-table-body-bg-nth-child-even) !important;
+// }
+// }
+// }
+// }
+.totalModal{
+ .ant-modal-footer{
+ display: none;
+ }
+ position: absolute;
+ top: 40px;
+ right: 174px;
+}
+.ltc-item-img {
+ width: 390px;
+ height: 300px;
+ border: 1px solid;
+ background: #6565656b;
+ margin-right: 20px !important;
+ img {
+ height: 295px;
+ width: 387px;
+ // object-fit: contain;
+ }
+}
+.hanleHistoyModal{
+ max-height: 700px;
+ overflow: auto;
+}
+.hanleHistoyModal::-webkit-scrollbar {
+ width: 5px;
+}
+.hanleHistoyModal::-webkit-scrollbar-thumb {
+ background-color: #9da2ab;
+ border-radius: 10px;
+}
+.modal-img{
+ img{
+ width: 200px;
+ height: 200px;
+ }
+}
\ No newline at end of file
diff --git a/src/pages/NewEnergy/RecordsInquiry/Unlocking/loadable.jsx b/src/pages/NewEnergy/RecordsInquiry/Unlocking/loadable.jsx
new file mode 100644
index 0000000..55710d7
--- /dev/null
+++ b/src/pages/NewEnergy/RecordsInquiry/Unlocking/loadable.jsx
@@ -0,0 +1,181 @@
+import React, { useState, useRef, useEffect } from "react";
+import {
+ message,
+ Pagination,
+ Table,
+ Space,
+ Modal,
+ Button,
+ Tabs,
+ Descriptions,
+ Input,
+ Steps,
+ Select,
+ Image,
+ Timeline,
+ Popover
+} from "antd";
+import { dictionary } from "@/config/common";
+import ajax from "@/services";
+import { TableModule } from "@/components";
+import "./index.scss";
+
+const { TextArea } = Input;
+
+function UnlockingRecord() {
+ // 详情弹窗
+ const [detailVisible, setDetailVisible] = useState(false);
+ // 列表数据
+ const [tableData, setTableData] = useState([]);
+ // 数据总数
+ const [total, setTotal] = useState(0);
+ // 详情数据
+ const [detailData, setDetailData] = useState({});
+ // 初始搜索条件
+ const initFormData = {
+ operator: "0",
+ rule_name: "",
+ };
+
+ const formSearch = [
+ {
+ name: "tel_number",
+ type: "Input",
+ label: "手机号",
+ placeholder: "请输入手机号",
+ },
+ {
+ name: "tel_number",
+ type: "Input",
+ label: "充电站",
+ placeholder: "请输入充电站",
+ },
+ {
+ name: "tel_number",
+ type: "Input",
+ label: "地锁名称",
+ placeholder: "请输入地锁名称",
+ },
+
+ {
+ name: "timePeriod",
+ type: "RangePicker",
+ label: "开锁时间范围",
+ },
+ ]; // 搜搜栏
+
+ const columns = [
+ {
+ title: "运营商名称",
+ dataIndex: "operator",
+ key: "operator",
+ align: "center",
+ },
+ {
+ title: "规则名称",
+ dataIndex: "plate",
+ key: "plate",
+ align: "center",
+ },
+ {
+ title: "规则编码",
+ dataIndex: "plate_color",
+ key: "plate_color",
+ align: "center",
+ },
+ {
+ title: "创建人",
+ dataIndex: "berth_id",
+ key: "berth_id",
+ width: 100,
+ align: "center",
+ },
+ {
+ title: "创建时间",
+ dataIndex: "in_time",
+ key: "in_time",
+ align: "center",
+ },
+ {
+ title: "操作",
+ dataIndex: "operation",
+ key: "operation",
+ align: "center",
+ fixed: "right",
+ width: 100,
+ render: (text, record, index) => {
+ return (
+ <>
+ openModal(index, record)}>
+ 详情
+
+ >
+ )
+
+ },
+ },
+ ]; // 表头
+
+
+
+ // 打开弹窗
+ const openModal = (index, record) => {
+ setDetailData(record)
+ setDetailVisible(true);
+ }
+
+ // 检索
+ const search = (params) => {
+ ajax.getParkingList(params).then((res) => {
+ if (res.status === 20000) {
+ setTableData(res.data.list);
+ setTotal(res.data.total);
+ } else {
+ message.error(res.message)
+ }
+ });
+ }
+
+ const handelAdd = () => {
+ setDetailVisible(true)
+ }
+
+ return (
+ <>
+
+ 新增
+
+ }
+ columns={columns}
+ tableData={tableData}
+ formSearch={formSearch}
+ pagename="停车记录查询"
+ pageName={'AppointmentRecord'}
+ initFormData={initFormData}
+ total={total}
+ search={search}
+ exportUrl="/api/bpm/record/get_record_export"
+ />
+ {
+ setDetailVisible(false);
+ }}
+ destroyOnClose
+ >
+
+
+ >
+ );
+}
+
+export default UnlockingRecord;
diff --git a/src/pages/NewEnergy/RecordsInquiry/Violation/index.jsx b/src/pages/NewEnergy/RecordsInquiry/Violation/index.jsx
new file mode 100644
index 0000000..729bec2
--- /dev/null
+++ b/src/pages/NewEnergy/RecordsInquiry/Violation/index.jsx
@@ -0,0 +1,6 @@
+import React from "react"
+import loadable from "@loadable/component"
+import { LoadingImg } from "@/components"
+
+const Violation = loadable(() => import("./loadable"))
+export default (pros) => } />
\ No newline at end of file
diff --git a/src/pages/NewEnergy/RecordsInquiry/Violation/index.scss b/src/pages/NewEnergy/RecordsInquiry/Violation/index.scss
new file mode 100644
index 0000000..9a8202a
--- /dev/null
+++ b/src/pages/NewEnergy/RecordsInquiry/Violation/index.scss
@@ -0,0 +1,238 @@
+@import "@/assets/css/mixin.scss";
+$color-container-bg: var(--color-container-bg);
+$color-user-list-bg: var(--color-user-list-bg);
+$color-text: var(--color-text);
+$color-primary: var(--color-primary);
+
+.ant-tabs {
+ margin-bottom: 16px;
+
+ .ant-tabs-nav {
+ margin-bottom: 0 !important;
+
+ &::before {
+ border-bottom: 1px solid var(--color-card-line) !important;
+ }
+ }
+
+ .ant-tabs-nav-wrap {
+ width: 100%;
+ box-sizing: content-box;
+
+ .ant-tabs-nav-list {
+ width: 340px;
+
+ .ant-tabs-ink-bar {
+ height: 3px;
+ background-color: #00ccff;
+ }
+
+ .ant-tabs-tab {
+ flex: 1;
+ width: 100%;
+ display: flex;
+ justify-content: center;
+ padding-bottom: 10px;
+ text-align: center;
+ cursor: pointer;
+ font-size: 14px !important;
+ font-family: MicrosoftYaHei;
+ text-align: center;
+ letter-spacing: 0.7px;
+ }
+
+ .ant-tabs-tab-active {
+ div {
+ color: #00ccff;
+ }
+ }
+ }
+ }
+}
+
+.ant-input::-webkit-input-placeholder {
+ color: var(--color-placeholder);
+}
+
+.ant-input::-moz-placeholder {
+ color: var(--color-placeholder);
+}
+.right-list .ant-btn-primary {
+ width: 68px;
+ height: 30px;
+ background: linear-gradient(180deg, #3aa9ff, #59b7ff);
+ border-radius: 4px;
+}
+.ant-input:-ms-input-placeholder {
+ color: var(--color-placeholder);
+}
+.right-list .cc-result-flow .table-wrap .yisa-table .ant-table-thead th {
+ background-color: #616b83 !important;
+}
+.right-list .cc-result-flow .table-wrap .yisa-table .ant-table-tbody td {
+ background-color: #3e4557 !important;
+}
+.right-list .cc-result-flow .table-wrap .yisa-table .ant-table-tbody tr:nth-child(even) td {
+ background-color: #3e4557 !important;
+}
+.ant-input::placeholder {
+ color: var(--color-placeholder);
+}
+
+.ant-select-selection-placeholder {
+ color: var(--color-placeholder);
+}
+
+.ant-select-disabled.ant-select-single:not(.ant-select-customize-input) .ant-select-selector {
+ background: var(--color-input-disabled-bg);
+ color: var(--color-placeholder);
+}
+
+.ant-select-disabled .ant-select-arrow {
+ color: var(--color-placeholder);
+}
+
+.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector {
+ background-color: var(--color-input-disabled-bg);
+ color: var(--color-input-disabled-color);
+ cursor: not-allowed;
+}
+
+.ant-select-multiple {
+ .ant-select-selector {
+ .ant-select-selection-item {
+ background-color: var(--color-bg-body);
+ border-color: var(--color-border);
+
+ .ant-select-selection-item-remove {
+ color: var(--color-text);
+ }
+ }
+ }
+}
+
+.ant-select-arrow {
+ color: var(--color-text);
+}
+
+.ant-select-clear {
+ border-radius: 50%;
+}
+
+.ant-select-dropdown-menu {
+ background-color: var(--color-input-bg);
+
+ .ant-select-dropdown-menu-item {
+ color: var(--color-text);
+
+ &.ant-select-dropdown-menu-item-active {
+ color: #fff;
+ // background-color: var(--radio-button-bg-checked);
+ }
+
+ &.ant-select-dropdown-menu-item-selected {
+ color: #fff;
+ // background-color: var(--radio-button-bg-checked);
+ }
+
+ &:hover {
+ color: #fff;
+ // background-color: var(--radio-button-bg-checked);
+ }
+ }
+}
+
+.ant-select-selector {
+ background-color: var(--color-search-list-item-bg) !important;
+ box-shadow: none !important;
+ border-radius: 4px;
+ color: var(--color-search-list-item-value);
+ border-color: var(--color-search-list-item-bd) !important;
+}
+
+.ant-select-selection {
+ background-color: var(--color-input-bg);
+ box-shadow: none;
+ color: var(--color-text);
+ // border-color:var(--checkable-tag-border);
+}
+
+.ant-form-horizontal .ant-form-item-label {
+ label {
+ display: inline-block;
+ word-wrap: break-word;
+ white-space: normal;
+ }
+}
+
+.ant-picker {
+ width: 100%;
+ background-color: var(--color-search-list-item-bg);
+ border-color: var(--color-border);
+}
+
+// .yisa-table {
+// width: 100%;
+
+// .ant-table-thead {
+// th {
+// background: var(--color-table-header-bg) !important;
+// }
+// }
+
+// .ant-table-tbody {
+// td {
+// background: var(--color-table-body-bg) !important;
+// border-bottom-color: var(--color-table-border-bottom-color);
+// }
+
+// tr:nth-child(even) {
+// td {
+// background: var(--color-table-body-bg-nth-child-even) !important;
+// }
+// }
+
+// tr:nth-child(odd) {
+// td {
+// background: var(--color-table-body-bg-nth-child-even) !important;
+// }
+// }
+// }
+// }
+.totalModal{
+ .ant-modal-footer{
+ display: none;
+ }
+ position: absolute;
+ top: 40px;
+ right: 174px;
+}
+.ltc-item-img {
+ width: 390px;
+ height: 300px;
+ border: 1px solid;
+ background: #6565656b;
+ margin-right: 20px !important;
+ img {
+ height: 295px;
+ width: 387px;
+ // object-fit: contain;
+ }
+}
+.hanleHistoyModal{
+ max-height: 700px;
+ overflow: auto;
+}
+.hanleHistoyModal::-webkit-scrollbar {
+ width: 5px;
+}
+.hanleHistoyModal::-webkit-scrollbar-thumb {
+ background-color: #9da2ab;
+ border-radius: 10px;
+}
+.modal-img{
+ img{
+ width: 200px;
+ height: 200px;
+ }
+}
\ No newline at end of file
diff --git a/src/pages/NewEnergy/RecordsInquiry/Violation/loadable.jsx b/src/pages/NewEnergy/RecordsInquiry/Violation/loadable.jsx
new file mode 100644
index 0000000..1e7a33b
--- /dev/null
+++ b/src/pages/NewEnergy/RecordsInquiry/Violation/loadable.jsx
@@ -0,0 +1,231 @@
+import React, { useState, useRef, useEffect } from "react";
+import {
+ message,
+ Pagination,
+ Table,
+ Space,
+ Modal,
+ Button,
+ Tabs,
+ Descriptions,
+ Input,
+ Steps,
+ Select,
+ Image,
+ Timeline,
+ Popover
+} from "antd";
+import { dictionary } from "@/config/common";
+import ajax from "@/services";
+import { TableModule } from "@/components";
+import "./index.scss";
+
+const { TextArea } = Input;
+
+function Violation() {
+ // 详情弹窗
+ const [detailVisible, setDetailVisible] = useState(false);
+ // 列表数据
+ const [tableData, setTableData] = useState([]);
+ // 数据总数
+ const [total, setTotal] = useState(0);
+ // 详情数据
+ const [detailData, setDetailData] = useState({});
+ // 初始搜索条件
+ const initFormData = {
+ operator: "0",
+ rule_name: "",
+ };
+
+ const columns = [
+ {
+ title: "用户手机号",
+ dataIndex: "operator",
+ key: "operator",
+ align: "center",
+ },
+ {
+ title: "车牌号",
+ dataIndex: "plate",
+ key: "plate",
+ align: "center",
+ },
+ {
+ title: "充电站",
+ dataIndex: "plate_color",
+ key: "plate_color",
+ align: "center",
+ },
+ {
+ title: "商户名称",
+ dataIndex: "berth_id",
+ key: "berth_id",
+ align: "center",
+ },
+ {
+ title: "降预约开始时间",
+ dataIndex: "in_time",
+ key: "in_time",
+ align: "center",
+ },
+ {
+ title: "预约截至时间",
+ dataIndex: "in_time",
+ key: "in_time",
+ align: "center",
+ },
+ {
+ title: "缴纳预约费用金额",
+ dataIndex: "in_time",
+ key: "in_time",
+ align: "center",
+ },
+ {
+ title: "缴费时间",
+ dataIndex: "in_time",
+ key: "in_time",
+ align: "center",
+ },
+ {
+ title: "订单状态",
+ dataIndex: "in_time",
+ key: "in_time",
+ align: "center",
+ },
+ {
+ title: "订单完结时间",
+ dataIndex: "in_time",
+ key: "in_time",
+ align: "center",
+ },
+ {
+ title: "预约费用退款金额",
+ dataIndex: "in_time",
+ key: "in_time",
+ align: "center",
+ },
+ {
+ title: "顶动感实收金额",
+ dataIndex: "in_time",
+ key: "in_time",
+ align: "center",
+ },
+ {
+ title: "操作",
+ dataIndex: "operation",
+ key: "operation",
+ align: "center",
+ fixed: "right",
+ width: 100,
+ render: (text, record, index) => {
+ return (
+ <>
+ openModal(index, record)}>
+ 详情
+
+ >
+ )
+
+ },
+ },
+ ];
+
+ const formSearch = [
+ {
+ name: "phone",
+ type: "Input",
+ label: "用户手机号",
+ placeholder: "请输入用户手机号",
+ },
+ {
+ name: "plate",
+ type: "Input",
+ label: "车牌号",
+ placeholder: "请输入车牌号",
+ },
+ {
+ name: "charging",
+ type: "Input",
+ label: "充电站",
+ placeholder: "请输入充电站",
+ },
+ {
+ name: "operator",
+ type: "Select",
+ label: "商户名称",
+ defaultValue: "0",
+ placeholder: "请选择商户名称",
+ },
+ {
+ name: "timeStart",
+ type: "DateRangePicker",
+ label: "预约开始时间",
+ },
+ {
+ name: "timeEnd",
+ type: "DateRangePicker",
+ label: "订单完结时间",
+ },
+ ];
+
+ // 打开弹窗
+ const openModal = (index, record) => {
+ setDetailData(record)
+ setDetailVisible(true);
+ }
+
+ // 检索
+ const search = (params) => {
+ ajax.getParkingList(params).then((res) => {
+ if (res.status === 20000) {
+ setTableData(res.data.list);
+ setTotal(res.data.total);
+ } else {
+ message.error(res.message)
+ }
+ });
+ }
+
+ const handelAdd = () => {
+ setDetailVisible(true)
+ }
+
+ return (
+ <>
+
+ 新增
+
+ }
+ columns={columns}
+ tableData={tableData}
+ formSearch={formSearch}
+ pagename="预约订单"
+ pageName={'Appointment'}
+ initFormData={initFormData}
+ total={total}
+ search={search}
+ exportUrl="/api/bpm/record/get_record_export"
+ />
+ {
+ setDetailVisible(false);
+ }}
+ destroyOnClose
+ >
+
+
+ >
+ );
+}
+
+export default Violation;
diff --git a/src/pages/NewEnergy/RecordsInquiry/index.jsx b/src/pages/NewEnergy/RecordsInquiry/index.jsx
new file mode 100644
index 0000000..cefbc71
--- /dev/null
+++ b/src/pages/NewEnergy/RecordsInquiry/index.jsx
@@ -0,0 +1,13 @@
+import Appointment from './Appointment'
+import Charge from './Charge'
+import Violation from './Violation'
+import Unlocking from './Unlocking'
+
+
+
+export default {
+ Appointment,
+ Charge,
+ Violation,
+ Unlocking
+}
\ No newline at end of file
diff --git a/src/pages/NewEnergy/index.jsx b/src/pages/NewEnergy/index.jsx
index 3bdfb64..7d43cfc 100644
--- a/src/pages/NewEnergy/index.jsx
+++ b/src/pages/NewEnergy/index.jsx
@@ -1,7 +1,11 @@
import ChargingMgm from './ChargingMgm'
import NewEnergyOverview from './NewEnergyOverview'
+import RecordsInquiry from './RecordsInquiry'
+import RealtimeMonitor from './RealtimeMonitor'
export default {
NewEnergyOverview,
- ...ChargingMgm
+ ...RealtimeMonitor,
+ ...ChargingMgm,
+ ...RecordsInquiry,
}
\ No newline at end of file
diff --git a/src/pages/OutRoadMgm/OutDeviceMgm/OutMonitorMgm/loadable.jsx b/src/pages/OutRoadMgm/OutDeviceMgm/OutMonitorMgm/loadable.jsx
index 05add03..02a1f15 100644
--- a/src/pages/OutRoadMgm/OutDeviceMgm/OutMonitorMgm/loadable.jsx
+++ b/src/pages/OutRoadMgm/OutDeviceMgm/OutMonitorMgm/loadable.jsx
@@ -139,7 +139,7 @@ function OutMonitorMgm(props) {
setDefaultParams({ ...postData, ...pageInfo });
// console.log(postData);
setTabLoading(true);
- ajax.getMonitorList({ ...postData, ...v, ...pageInfo , data_source:2}).then( // data_source用于区分路内和路外的请求
+ ajax.getOutMonitorList({ ...postData, ...v, ...pageInfo , data_source:2}).then( // data_source用于区分路内和路外的请求
(res) => {
if (parseInt(res?.status) === 20000) {
setResultData(res?.data || {});
@@ -403,7 +403,7 @@ function OutMonitorMgm(props) {
message.error("请选择泊位");
return;
}
- ajax[values?.id ? "monitorEdit" : "monitorAdd"]({
+ ajax[values?.id ? "monitorOutEdit" : "monitorOutAdd"]({
...values,
berth_ids: rowData?.berth_ids,
}).then(
@@ -436,7 +436,7 @@ function OutMonitorMgm(props) {
// 下载模板
const downloadTemplate = (e) => {
// 获取模板地址
- ajax.monitorAdd().then(
+ ajax.monitorOutAdd().then(
(res) => {
if (res.status === 20000 && res?.data) {
window.location.href = res?.data;
@@ -515,7 +515,7 @@ function OutMonitorMgm(props) {
message.error("请上传文件");
return;
}
- ajax.monitorAdd({ files: fileList }).then(
+ ajax.monitorOutAdd({ files: fileList }).then(
(res) => {
if (res?.status == 20000) {
message.success(res?.message);
diff --git a/src/pages/OutRoadMgm/OutExceptionMgm/PlateChangeMgm/index.jsx b/src/pages/OutRoadMgm/OutExceptionMgm/PlateChangeMgm/index.jsx
index 7722223..7577824 100644
--- a/src/pages/OutRoadMgm/OutExceptionMgm/PlateChangeMgm/index.jsx
+++ b/src/pages/OutRoadMgm/OutExceptionMgm/PlateChangeMgm/index.jsx
@@ -13,111 +13,137 @@ import {
Timeline
} from "antd";
import moment from "moment";
-import ajax from '@/services'
+import ajax from "@/services";
import { TableModule } from "@/components";
-import { dictionary } from "@/config/common.js";
import "./index.scss";
//plateChangeMgm
function PlateChangeMgm() {
const [resultData, setResultData] = useState([])
+ const [detailData, setDetailData] = useState({})
+ const [visible, setVisible] = useState(false)
const [total, setTotal] = useState(0);
- const [searchSelectList, setSearchSelectList] = useState([]); //搜索下拉数据
const columns = [
{
- title: "停车场名称",
+ title: "序号",
+ dataIndex: "index",
+ key: "index",
+ align: "center",
+ fixed: "right",
+ render: (text, record, index) => index + 1,
+ },
+ {
+ title: "车场名称",
dataIndex: "road_name",
key: "road_name",
align: "center",
fixed: "right",
},
{
- title: "泊位总数",
- dataIndex: "total_berths",
- key: "total_berths",
+ title: "修正前车牌",
+ dataIndex: "plate_old",
+ key: "plate_old",
align: "center",
fixed: "right",
},
{
- title: "停车记录数(次)",
- dataIndex: "record_count",
- key: "record_count",
+ title: "修正后车牌",
+ dataIndex: "plate_new",
+ key: "plate_new",
align: "center",
fixed: "right",
},
{
- title: "订单应收金额(元)",
- dataIndex: "receivable_amount",
- key: "receivable_amount",
+ title: "修正时间",
+ dataIndex: "create_time",
+ key: "create_time",
align: "center",
fixed: "right",
},
{
- title: "日均泊位周转次数(次)",
- dataIndex: "average_turn_times",
- key: "average_turn_times",
+ title: "修正类型",
+ dataIndex: "correct_type_name",
+ key: "correct_type_name",
align: "center",
fixed: "right",
},
{
- title: "平均泊位利用率",
- dataIndex: "average_use_rate",
- key: "average_use_rate",
+ title: "操作人",
+ dataIndex: "operatename",
+ key: "operatename",
align: "center",
fixed: "right",
},
{
- title: "平均停车时长",
- dataIndex: "average_park_time",
- key: "average_park_time",
+ title: "操作",
+ dataIndex: "operation",
+ key: "operation",
align: "center",
fixed: "right",
+ render: (_, record) => {
+ return (
+ {
+ getDetailData(record.id)
+ }}
+ >
+ 详情
+
+ );
+ },
},
];
//检索条件
const formSearch = [
{
- name: "operator_id",
- type: "Select",
- label: "修正类型",
- options: [],
+ name: "road_name",
+ type: "Input",
+ label: "车场名称",
+ placeholder: "请输入车场名称",
},
{
- name: "car_parking_type",
+ name: "plate",
+ type: "Input",
+ label: "车牌号",
+ placeholder: "请输入车牌号",
+ },
+ {
+ name: "correct_type",
type: "Select",
- label: "车场类型",
+ label: "修正类型",
+ defaultValue: "0",
options: [
{
label: '全部',
- value: '3',
+ value: '0',
},
{
- label: '路内车场',
+ label: '入场修正',
value: '1',
},
{
- label: '路外车场',
+ label: '场中修正',
value: '2',
},
+ {
+ label: '出场修改',
+ value: '3',
+ },
],
},
{
- name: "road_name",
- type: "Input",
- label: "停车场",
- placeholder: "请输入停车场名称",
- },
- {
name: "timePeriod",
type: "RangePicker",
label: "时间段",
+ defaultTitle: ["修正时间", "至"],
defaultValue: [moment().startOf("day"), moment()],
},
];
//列表数据
function search(e) {
- ajax.getParkingAlyReportList(e).then((res) => {
+ ajax.getPlateChangeList(e).then((res) => {
let { status, data, total } = res
if (status == 20000) {
if (data.list) {
@@ -134,22 +160,51 @@ function PlateChangeMgm() {
})
}
- // 获取下拉数据
- const getSelectList = () => {
- ajax.getOperator().then((e) => {
- setSearchSelectList([
- ...searchSelectList,
- ...e.data
- ])
+ //详情数据
+ function getDetailData(e) {
+ ajax.getPlateChangeDetail(e).then((res) => {
+ let { status, data, total } = res
+ if (status == 20000) {
+ if (data.list) {
+ setVisible(true)
+ setDetailData(data.list[0])
+ } else {
+ setDetailData(data)
+ }
+ } else {
+ setResultData([])
+ message.error(res.message)
+ }
})
- };
+ }
- useEffect(() => {
- getSelectList();
- }, []);
+ //停车卡订单详情
+ const tkddModal =
+
+
+
+
车场名称
{detailData?.road_name || "--"}
+
+
+
修正前车牌
{detailData.plate_old || "--"}
+
+
+
修正后车牌
{detailData.plate_new || "--"}
+
+
+
操作人
{detailData.operatename || "--"}
+
+
+
操作类型
{detailData.correct_type_name || "--"}
+
+
+
修正时间
{detailData.create_time || "--"}
+
+
+
return (
- <>
+
- >
+
{
+ setVisible(false);
+ }}
+ footer={[<>
+ {
+ setVisible(false);
+ }}>
+ 关闭窗口
+ >]}
+ >
+ {tkddModal}
+
+
);
}
diff --git a/src/pages/OutRoadMgm/OutExceptionMgm/PlateChangeMgm/index.scss b/src/pages/OutRoadMgm/OutExceptionMgm/PlateChangeMgm/index.scss
index 14723e7..ac88986 100644
--- a/src/pages/OutRoadMgm/OutExceptionMgm/PlateChangeMgm/index.scss
+++ b/src/pages/OutRoadMgm/OutExceptionMgm/PlateChangeMgm/index.scss
@@ -233,8 +233,10 @@ $color-primary : var(--color-primary);
background: #3e4557;
}
}
+
.result-title {
display: inline-block;
+
p {
display: inline;
margin: 0 5px;
@@ -242,6 +244,7 @@ $color-primary : var(--color-primary);
font-size: 18px;
}
}
+
.export-btn {
display: inline-block;
text-align: center;
@@ -255,9 +258,11 @@ $color-primary : var(--color-primary);
margin-bottom: 10px;
cursor: pointer;
}
+
.root_gfkk {
float: right;
}
+
.row-head {
height: 32px;
display: flex;
@@ -320,6 +325,151 @@ $color-primary : var(--color-primary);
}
+.ltc-box {
+ width: 100%;
+
+ .ltc-box-title {
+ font-size: 18px;
+ font-weight: bolder;
+ width: 100%;
+ white-space: nowrap;
+ overflow: hidden;
+
+ .text {
+ display: inline-block;
+ }
+
+ .line {
+ display: inline-block;
+ border: 1px dotted #607092;
+ width: inherit;
+ margin-bottom: 6px;
+ }
+
+ .ltc-icon {
+ width: 5px;
+ background: #0080db;
+ height: 19px;
+ display: inline-block;
+ margin-right: 10px;
+ }
+
+ .ltc-btn {
+ display: inline-block;
+ border: 1px solid;
+ border-radius: 5px;
+ margin: 0 10px;
+ width: 60px;
+ height: 35px;
+ line-height: 35px;
+ text-align: center;
+ background: #409eff;
+ color: #fff;
+ font-weight: 100;
+ cursor: pointer;
+ }
+
+ .ltc-cancel {
+ background: #fff;
+ color: #000;
+ }
+ }
+
+ .ltc-box-line {
+ border: 1px solid #e7e7e7;
+ margin: 8px 0;
+ }
+
+ .ltc-box-in {
+ margin-left: 20px;
+
+ .ant-descriptions {
+ margin-left: 20px;
+ }
+ }
+
+ .ltc-title {
+ margin: auto;
+ width: 50%;
+ text-align: center;
+ font-size: 18px;
+ font-weight: 600;
+ }
+
+ .ltc-content {
+ margin: auto;
+ padding: 20px;
+
+ .ltc-item {
+ font-size: 14px;
+ margin: 6px 12px 6px 0;
+ display: inline-flex;
+
+ //width: 470px;
+ .new-item {
+ display: inline-block;
+ width: 120px;
+ height: 32px;
+ line-height: 32px;
+ background: rgba(150, 161, 192, 0.24);
+ text-align: center;
+ }
+
+ .new-value {
+ display: inline-block;
+ width: 320px;
+ height: 32px;
+ line-height: 32px;
+ text-align: center;
+ background: #3E4557;
+ box-shadow: 0px 3px 8px 0px rgba(0, 0, 0, 0.12);
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+
+ .ltc-item-input {
+ display: inline-block;
+ width: 200px;
+ }
+
+ div {
+ width: 150px;
+ }
+ }
+ }
+
+ .ltc-liuc {
+ display: flex;
+ margin-left: 200px;
+
+ .ltc-item {
+ display: flex;
+
+ .ltc-item-name {
+ margin: 6px 10px 0 10px;
+ color: #3f94df;
+ }
+ }
+
+ .ltc-work {
+ text-align: center;
+
+ .ltc-tips {
+ border: 3px solid #000;
+ text-align: center;
+ line-height: 27px;
+ height: 35px;
+ width: 35px;
+ border-radius: 28px;
+ margin: auto;
+ }
+ }
+
+ }
+}
+
+
.modal-pay-configuration {
.submitBtn {
@@ -363,27 +513,28 @@ $color-primary : var(--color-primary);
}
.edit-order-inquiry {
+
/*定义滚动条高宽及背景
高宽分别对应横竖滚动条的尺寸*/
- ::-webkit-scrollbar {
- width: 6px;
- height: 16px;
- background-color: #5c5c5c;
-}
+ ::-webkit-scrollbar {
+ width: 6px;
+ height: 16px;
+ background-color: #5c5c5c;
+ }
-/*定义滚动条轨道
+ /*定义滚动条轨道
内阴影+圆角*/
-::-webkit-scrollbar-track {
- -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
- border-radius: 10px;
- background-color: #9da2ab;
-}
+ ::-webkit-scrollbar-track {
+ -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
+ border-radius: 10px;
+ background-color: #9da2ab;
+ }
-/*定义滑块
+ /*定义滑块
内阴影+圆角*/
-::-webkit-scrollbar-thumb {
- border-radius: 10px;
- -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, .3);
- background-color: #3b97ff;
-}
+ ::-webkit-scrollbar-thumb {
+ border-radius: 10px;
+ -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, .3);
+ background-color: #3b97ff;
+ }
}
\ No newline at end of file
diff --git a/src/pages/OutRoadMgm/OutExceptionMgm/SpecialReleaseMgm/index.jsx b/src/pages/OutRoadMgm/OutExceptionMgm/SpecialReleaseMgm/index.jsx
index 8ba89d3..fca0de6 100644
--- a/src/pages/OutRoadMgm/OutExceptionMgm/SpecialReleaseMgm/index.jsx
+++ b/src/pages/OutRoadMgm/OutExceptionMgm/SpecialReleaseMgm/index.jsx
@@ -20,104 +20,128 @@ import "./index.scss";
//specialReleaseMgm
function SpecialReleaseMgm() {
const [resultData, setResultData] = useState([])
+ const [detailData, setDetailData] = useState({})
+ const [visible, setVisible] = useState(false)
const [total, setTotal] = useState(0);
- const [searchSelectList, setSearchSelectList] = useState([]); //搜索下拉数据
const columns = [
{
- title: "停车场名称",
+ title: "序号",
+ dataIndex: "index",
+ key: "index",
+ align: "center",
+ fixed: "right",
+ render: (text, record, index) => index + 1,
+ },
+ {
+ title: "车场名称",
dataIndex: "road_name",
key: "road_name",
align: "center",
fixed: "right",
},
{
- title: "泊位总数",
- dataIndex: "total_berths",
- key: "total_berths",
+ title: "车牌号",
+ dataIndex: "plate",
+ key: "plate_old",
+ align: "center",
+ fixed: "right",
+ },
+ {
+ title: "入场时间",
+ dataIndex: "plate",
+ key: "plate_new",
+ align: "center",
+ fixed: "right",
+ },
+ {
+ title: "出场时间",
+ dataIndex: "cr",
+ key: "cr",
+ align: "center",
+ fixed: "right",
+ },
+ {
+ title: "应收金额",
+ dataIndex: "co",
+ key: "co",
align: "center",
fixed: "right",
},
{
- title: "停车记录数(次)",
- dataIndex: "record_count",
- key: "record_count",
+ title: "通道名称",
+ dataIndex: "op",
+ key: "oe",
align: "center",
fixed: "right",
},
{
- title: "订单应收金额(元)",
- dataIndex: "receivable_amount",
- key: "receivable_amount",
+ title: "开闸时间",
+ dataIndex: "o",
+ key: "o",
align: "center",
fixed: "right",
},
{
- title: "日均泊位周转次数(次)",
- dataIndex: "average_turn_times",
- key: "average_turn_times",
+ title: "开闸原因",
+ dataIndex: "",
+ key: "o",
align: "center",
fixed: "right",
},
{
- title: "平均泊位利用率",
- dataIndex: "average_use_rate",
- key: "average_use_rate",
+ title: "操作人",
+ dataIndex: "o",
+ key: "o",
align: "center",
fixed: "right",
},
{
- title: "平均停车时长",
- dataIndex: "average_park_time",
- key: "average_park_time",
+ title: "操作",
+ dataIndex: "operation",
+ key: "operation",
align: "center",
fixed: "right",
+ render: (_, record) => {
+ return (
+ {
+ getDetailData(record.id)
+ }}
+ >
+ 详情
+
+ );
+ },
},
];
//检索条件
const formSearch = [
{
- name: "operator_id",
- type: "Select",
- label: "修正类型",
- options: [],
- },
- {
- name: "car_parking_type",
- type: "Select",
- label: "车场类型",
- options: [
- {
- label: '全部',
- value: '3',
- },
- {
- label: '路内车场',
- value: '1',
- },
- {
- label: '路外车场',
- value: '2',
- },
- ],
+ name: "road_name",
+ type: "Input",
+ label: "车场名称",
+ placeholder: "请输入车场名称",
},
{
- name: "road_name",
+ name: "c",
type: "Input",
- label: "停车场",
- placeholder: "请输入停车场名称",
+ label: "操作人",
+ placeholder: "请输入操作人",
},
{
name: "timePeriod",
type: "RangePicker",
label: "时间段",
+ defaultTitle: ["开闸时间", "至"],
defaultValue: [moment().startOf("day"), moment()],
},
];
//列表数据
function search(e) {
- ajax.getParkingAlyReportList(e).then((res) => {
+ ajax.getPlateChangeList(e).then((res) => {
let { status, data, total } = res
if (status == 20000) {
if (data.list) {
@@ -134,22 +158,51 @@ function SpecialReleaseMgm() {
})
}
- // 获取下拉数据
- const getSelectList = () => {
- ajax.getOperator().then((e) => {
- setSearchSelectList([
- ...searchSelectList,
- ...e.data
- ])
+ //详情数据
+ function getDetailData(e) {
+ ajax.getPlateChangeDetail(e).then((res) => {
+ let { status, data, total } = res
+ if (status == 20000) {
+ if (data.list) {
+ setVisible(true)
+ setDetailData(data.list[0])
+ } else {
+ setDetailData(data)
+ }
+ } else {
+ setResultData([])
+ message.error(res.message)
+ }
})
- };
+ }
- useEffect(() => {
- getSelectList();
- }, []);
+ //停车卡订单详情
+ const tkddModal =
+
+
+
+
车场名称
{detailData?.road_name || "--"}
+
+
+
修正前车牌
{detailData.plate_old || "--"}
+
+
+
修正后车牌
{detailData.plate_new || "--"}
+
+
+
操作人
{detailData.operatename || "--"}
+
+
+
操作类型
{detailData.correct_type_name || "--"}
+
+
+
修正时间
{detailData.create_time || "--"}
+
+
+
return (
- <>
+
- >
+
{
+ setVisible(false);
+ }}
+ footer={[<>
+ {
+ setVisible(false);
+ }}>
+ 关闭窗口
+ >]}
+ >
+ {tkddModal}
+
+
);
}
diff --git a/src/pages/OutRoadMgm/OutExceptionMgm/ZombieCarCleanRecord/loadable.jsx b/src/pages/OutRoadMgm/OutExceptionMgm/ZombieCarCleanRecord/loadable.jsx
index f777a27..51e2f2b 100644
--- a/src/pages/OutRoadMgm/OutExceptionMgm/ZombieCarCleanRecord/loadable.jsx
+++ b/src/pages/OutRoadMgm/OutExceptionMgm/ZombieCarCleanRecord/loadable.jsx
@@ -143,8 +143,8 @@ function ZombieCarCleanRecord(props) {
//列表
const deployListColumns = [
{
- title: '序号id',
- dataIndex: 'id',
+ title: '序号',
+ dataIndex: 'info_id',
render: (text, record, index) => {text}
},
{
diff --git a/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/AddParking.jsx b/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/AddParking.jsx
index 3af541a..31789e9 100644
--- a/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/AddParking.jsx
+++ b/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/AddParking.jsx
@@ -588,7 +588,7 @@ function AddParking(props) {