diff --git a/src/pages/FinancialMgm/OrderInquiry/ParkingOrderInquiry/index.jsx b/src/pages/FinancialMgm/OrderInquiry/ParkingOrderInquiry/index.jsx
index 1a40265..567c825 100644
--- a/src/pages/FinancialMgm/OrderInquiry/ParkingOrderInquiry/index.jsx
+++ b/src/pages/FinancialMgm/OrderInquiry/ParkingOrderInquiry/index.jsx
@@ -74,60 +74,7 @@ function ParkingOrderInquiry() {
}
return arr
}
- //基本信息检索条件
- const formSearch = [
- {
- name: "carId",
- type: "Input",
- label: "车牌号",
- placeholder: "请输入车牌号",
- },
- {
- name: "mobile",
- type: "Input",
- label: "会员手机号",
- placeholder: "请输入会员手机号",
- },
- {
- name: "authState",
- type: "Select",
- label: "认证状态",
- options: [
- {
- label: "已认证",
- value: 0,
- },
- {
- label: "未认证",
- value: 1,
- },
-
- ],
- },
- {
- name: "bingState",
- type: "Select",
- label: "绑定状态",
- options: [
- {
- label: "已绑定",
- value: 0,
- },
- {
- label: "未绑定",
- value: 1,
- },
-
- ],
- },
- {
- name: "timePeriod",
- type: "RangePicker",
- label: "时间段",
- defaultValue: [moment().subtract(1, "month"), moment()],
- },
- ];
-
+
//所有检索条件
const ash = [
{//1
diff --git a/src/pages/FinancialMgm/OrderInquiry/ProductOrderInquiry/index.jsx b/src/pages/FinancialMgm/OrderInquiry/ProductOrderInquiry/index.jsx
new file mode 100644
index 0000000..5b8e192
--- /dev/null
+++ b/src/pages/FinancialMgm/OrderInquiry/ProductOrderInquiry/index.jsx
@@ -0,0 +1,770 @@
+import React, { useState, useRef, useEffect } from "react";
+import {
+ message,
+ Pagination,
+ Table,
+ Input,
+ Space,
+ Modal,
+ Button,
+ Select,
+ Tabs,
+ Descriptions,
+ Timeline
+} from "antd";
+import moment from "moment";
+import ajax from '@/config/ajax.js'
+import { TableModule } from "@/components";
+import { dictionary } from "@/config/common.js";
+import "./index.scss";
+function ProductOrderInquiry() {
+ const [carId, setCarId] = useState()
+
+ //构建表头
+ const createCol = (label, name, type) => {
+ label.length == name.length ? null : console.log('参数缺失', label.length, name.length)
+ var arr = []
+ label?.map((item, index) => {
+ let cm = {
+ title: item,
+ dataIndex: name[index],
+ key: name[index],
+ align: "center",
+ }
+ switch (item) {
+ case "序号":
+ cm.render = (text, record, index) => index + 1
+ break
+ case "退款订单ID":
+ case "业务订单ID":
+ case "支付订单ID":
+ cm.render = (text) => (
+ <>
+ {
+ navigator.clipboard.writeText(`${text}`).then(() => { message.success("已复制到剪切板") });
+ }}>{text}
+ >
+ )
+ break
+ default: break
+ }
+ arr.push(cm)
+ })
+ var obj = {
+ title: "操作",
+ dataIndex: "operation",
+ key: "operation",
+ fixed: "right",
+ align: "center",
+ }
+ switch (type) {
+ case 2:
+ obj.render = (text, record) => (<>
+ {
+ setYcddData(record)
+ setDetailVisible(true)
+ }}>
+ 详情
+
+ >)
+ arr.push(obj)
+ break
+ default: break
+ }
+ return arr
+ }
+ //基本信息检索条件
+ const formSearch = [
+ {
+ name: "carId",
+ type: "Input",
+ label: "车牌号",
+ placeholder: "请输入车牌号",
+ },
+ {
+ name: "mobile",
+ type: "Input",
+ label: "会员手机号",
+ placeholder: "请输入会员手机号",
+ },
+ {
+ name: "authState",
+ type: "Select",
+ label: "认证状态",
+ options: [
+ {
+ label: "已认证",
+ value: 0,
+ },
+ {
+ label: "未认证",
+ value: 1,
+ },
+
+ ],
+ },
+ {
+ name: "bingState",
+ type: "Select",
+ label: "绑定状态",
+ options: [
+ {
+ label: "已绑定",
+ value: 0,
+ },
+ {
+ label: "未绑定",
+ value: 1,
+ },
+
+ ],
+ },
+ {
+ name: "timePeriod",
+ type: "RangePicker",
+ label: "时间段",
+ defaultValue: [moment().subtract(1, "month"), moment()],
+ },
+ ];
+
+ //所有检索条件
+ const ash = [
+ {//1
+ name: "region",
+ type: "TreeSelect",
+ label: "区域",
+ },
+ {//2
+ name: "operator",
+ type: "Select",
+ label: "商户名称",
+ options: dictionary.MerchantName,
+ },
+ {//3
+ name: "road",
+ type: "Input",
+ label: "停车场名称",
+ placeholder: "请输入停车场名称",
+ },
+ {//4
+ name: "road_type",
+ type: "Select",
+ label: "车场类型",
+ options: [
+ {
+ label: "全部",
+ value: 0,
+ },
+ {
+ label: "路侧平行",
+ value: 1,
+ },
+ {
+ label: "路侧垂停",
+ value: 2,
+ },
+ {
+ label: "封闭车场",
+ value: 3,
+ },
+ {
+ label: "半封闭车场",
+ value: 4,
+ },
+ ],
+ },
+ {//5
+ name: "phone",
+ type: "Input",
+ label: "手机号",
+ placeholder: "请输入手机号",
+ },
+ {//6
+ name: "type",
+ type: "Select",
+ label: "出入场类型",
+ placeholder: "请选择出入场类型",
+ defaultValue: 1,
+ options: [
+ {
+ label: "入场",
+ value: 1,
+ },
+ {
+ label: "出场",
+ value: 2,
+ },
+ ],
+ },
+
+ {//7
+ name: "b",
+ type: "Input",
+ label: "商品名称",
+ placeholder: "请输入商品名称",
+ },
+ {//8
+ name: "b",
+ type: "Select",
+ label: "购买渠道",
+ placeholder: "请选择购买渠道",
+ options: [
+ {
+ label: "全部",
+ value: 0,
+ },
+ {
+ label: "线上渠道",
+ value: 1,
+ },
+ {
+ label: "后台录入",
+ value: 2,
+ },
+ ],
+ },
+ {//9
+ name: "b",
+ type: "Select",
+ label: "订单状态",
+ placeholder: "请选择订单状态",
+ options: [
+ {
+ label: "全部",
+ value: 0,
+ },
+ {
+ label: "未生效",
+ value: 1,
+ },
+ {
+ label: "生效中",
+ value: 2,
+ },
+ {
+ label: "已失效",
+ value: 3,
+ },
+ ],
+ },
+ {//10
+ name: "payment_channels",
+ type: "Select",
+ label: "支付渠道",
+ placeholder: "请选择支付渠道",
+ options: dictionary.PayChannel,
+ },
+ {//11
+ name: "payment_equipment",
+ type: "Select",
+ label: "支付设备",
+ placeholder: "请选择支付设备",
+ options: dictionary.PayDevice
+ },
+ {//12
+ name: "pay_type",
+ type: "Select",
+ label: "支付方式",
+ placeholder: "请选择支付方式",
+ options: dictionary.PaydMethod,
+ },
+ {//13
+ name: "timePeriod",
+ type: "RangePicker",
+ label: "时间段",
+ defaultValue: [moment().startOf("day"), moment()],
+ },
+ {//14
+ name: "b",
+ type: "Select",
+ label: "退款方式",
+ placeholder: "请选择退款方式",
+ options: dictionary.PaydMethod,
+ },
+ {//15
+ name: "b",
+ type: "Input",
+ label: "渠道流水号",
+ placeholder: "请输入渠道流水号",
+ },
+ {//16
+ name: "timePeriod",
+ type: "RangePicker",
+ label: "时间段",
+ defaultTitle: ['支付时间', '至']
+ // defaultValue: [moment().startOf("day"), moment()],
+ },
+ {//17
+ name: "timePeriod",
+ type: "RangePicker",
+ label: "时间段",
+ defaultTitle: ['订购时间', '至']
+ // defaultValue: [moment().startOf("day"), moment()],
+ },
+ {//18
+ name: "timePeriod",
+ type: "RangePicker",
+ label: "时间段",
+ defaultTitle: ['预约到场时间', '至']
+ // defaultValue: [moment().startOf("day"), moment()],
+ },
+ {//19
+ name: "plate",
+ type: "Input",
+ label: "车牌号",
+ placeholder: "请输入车牌号",
+ },
+ {//20
+ name: "order_id",
+ type: "Input",
+ label: "支付订单ID",
+ placeholder: "请输入支付订单ID",
+ },
+ {//21
+ name: "berth_id",
+ type: "Input",
+ label: "泊位号",
+ placeholder: "请输入泊位号",
+ },
+ {//22
+ name: "t",
+ type: "Select",
+ label: "所属商户",
+ placeholder: "请选择所属商户",
+ options: dictionary.MerchantName,
+ },
+ {//23
+ name: "t",
+ type: "Input",
+ label: "预付订单ID",
+ placeholder: "请输入订单ID",
+ },
+ {//24
+ name: "t",
+ type: "Input",
+ label: "停车记录ID",
+ placeholder: "停车记录ID",
+ },
+ {//25
+ name: "dealer",
+ type: "Input",
+ label: "操作人",
+ placeholder: "请输入操作人",
+ },
+ {//26
+ name: "t",
+ type: "Input",
+ label: "停车订单ID",
+ placeholder: "停车订单ID",
+ },
+ {//27
+ name: "t",
+ type: "Input",
+ label: "欠费区间",
+ placeholder: "",
+ },
+ {//28
+ name: "timePeriod",
+ type: "RangePicker",
+ label: "时间段",
+ defaultTitle: ['订单修改时间', '至']
+ // defaultValue: [moment().startOf("day"), moment()],
+ },
+ {//29
+ name: "b",
+ type: "Select",
+ label: "修改原因",
+ placeholder: "请选择修改原因",
+ options: [
+ {
+ label: "全部",
+ value: 0,
+ },
+ {
+ label: "订单自动找平",
+ value: 1,
+ },
+ {
+ label: "异常订单处理",
+ value: 2,
+ },
+ ],
+ },
+ ];
+ const [resultData, setResultData] = useState([])
+ const [ycddData, setYcddData] = useState([])//异常订单数据
+ const [detailVisible, setDetailVisible] = useState(false);
+ const [timesVisible, setTimesVisible] = useState(false); //退款尝试次数展开
+ const [tkddVisible, setTkddVisible] = useState(false);
+ const [eaeVisible, setEaeVisible] = useState(false);//出入场图片
+ const [bigpicVisible, setBigpicVisible] = useState(false);//大图展示
+ const [bigPic, setBigPic] = useState();
+ const [total, setTotal] = useState(0);
+ const [tabKey, setTabKey] = useState("1");
+ function changeKey(key) {
+ setTabKey(key);
+ }
+
+ //基本信息查询
+ function search(e) {
+ // if (!e.type) {
+ // e.type = 1
+ // }
+ ajax({
+ url: "/api/ope/car/list",
+ type: "post",
+ data: { ...e },
+ }).then((res) => {
+ let { status, data, total } = res
+ if (status == 20000) {
+ setResultData(data)
+ setTotal(total)
+ } else {
+ message.error(res.message)
+ }
+ })
+ }
+
+ //详情其他模块查询
+ function searchOther(e) {
+ var url = ''
+ switch (tabKey) {
+ case "1":
+ url = ""//
+ break
+ case "2":
+ url = ""//
+ break
+ default: break
+ }
+ // if (tabKey == '3' && e && !e?.type) {
+ // e.type = 1
+ // }
+ ajax({
+ url: url,
+ type: "post",
+ data: { ...e, carId: carId },
+ }).then((res) => {
+ let { status, data, total } = res
+ if (status == 20000) {
+ if (data.list) {
+ setResultData(data.list)
+ setTotal(data.total)
+ } else {
+ setResultData(data)
+ setTotal(total)
+ }
+ } else {
+ setResultData([])
+ message.error(res.message)
+ }
+ })
+ }
+ //停车记录信息渲染
+ function renderParkRecord(params) {
+ return (
+
+
+
+
+
停车场名称
{params?.road || "--"}
+
+
+
泊位号
{params.berth_id || "--"}
+
+
+
区域
{params.region || "--"}
+
+
+
商户
{params.operator || "--"}
+
+
+
车场类型
{params.road_type || "--"}
+
+
+
+
+
+
车牌号
{params.plate || "--"}
+
+
+
会员手机号
{params.phone || "--"}
+
+
+
入场时间
{params.in_time || "--"}
+
+
+
出场时间
{params.out_time || "--"}
+
+
+
停车时长
{params.admission_time || "--"}
+
+
+
订单金额
{params.order_amount || "--"}
+
+
+
停车卡折扣
{params.parking_card_discount || "--"}
+
+
+
车场折扣
{params.road_discount || "--"}
+
+
+
应收金额
{params.receivable_amount || "--"}
+
+
+
优惠券
{params.preferential_amount || "--"}
+
+
+
优惠总计
{params.preferential_total || "--"}
+
+
+
实付金额
{params.actual_amount || "--"}
+
+
+
优惠退款
{params.refund_discount || "--"}
+
+
+
实付退款
{params.actual_refund || "--"}
+
+
+
退款总计
{params.refund_total || "--"}
+
+
+
入场收费员
{params.in_person || "--"}
+
+
+
出场收费员
{params.out_person || "--"}
+
+
+
+
+
+

{ setBigPic(params.in_veh_pic); setBigpicVisible(true) }} />
+
+
+

{ setBigPic(params.in_plate_pic); setBigpicVisible(true) }} />
+
+
+
+ );
+ }
+ //其他页面渲染
+ function renderTable(columns, arr, dataSource) {
+ return (
+
+ );
+ }
+ //退款订单详情
+ const tkddModal =
+
退款订单:{ycddData?.refund_id}
+
+
+
生成时间
{ycddData?.refund_time || "--"}
+
+
+
退款状态
{ycddData.refund_state || "--"}
+
+
+
支付渠道
{ycddData.payment_channels || "--"}
+
+
+
退款方式
{ycddData.refund_type || "--"}
+
+
+
应退实付金额
{ycddData.refund_actual_amount || "--"}
+
+
+
已退实付金额
{ycddData.has_refund_actual_amount || "--"}
+
+
+
应退优惠金额
{ycddData.refund_discount_amount || "--"}
+
+
+
已退优惠金额
{ycddData.has_refund_discount_amount || "--"}
+
+
+
+
最近尝试时间
{ycddData.latest_try_time || "--"}
+
+
+
+
+ {timesVisible ? <>
+
+ > :
+ <>
+
+
+
+
平台商户
{ycddData.payment_operator_name}
+
+
+
生成时间
{ycddData.payment_create_time}
+
+
+
支付时间
{ycddData.pay_time}
+
+
+
支付渠道
{ycddData.payment_equipment}
+
+
+
优惠金额
{ycddData.discount_amount}
+
+
+
支付应用
{ycddData.payment_equipment}
+
+
+
实付金额
{ycddData.paid_in_money}
+
+
+
停车订单:{ycddData.park_record_id}
+
+
+
+
平台商户
{ycddData.payment_operator_name}
+
+
+
停车场名称
{ycddData?.road_name}
+
+
+
区域
{ycddData.area_name}
+
+
+
商户名称
{ycddData.park_operator_name}
+
+
+
泊位号
{ycddData.berth_code}
+
+
+
车场类型
{ycddData.road_type}
+
+
+
+
+
+
车牌号
{ycddData.plate_number}
+
+
+
停车时长
{ycddData.parking_duration}
+
+
+
入场时间
{ycddData.in_time}
+
+
+
出场时间
{ycddData.out_time}
+
+
+
入场记录来源
{ycddData.inSource}
+
+
+
出场记录来源
{ycddData.outSource}
+
+
+
+ >}
+
+
+
+ useEffect(() => {
+ searchOther()
+ }, [tabKey])
+
+
+ return (
+ <>
+
+
+ {renderTable(
+ createCol(['车牌号', '车牌颜色', '手机号', '商品名称', '实付金额', '支付渠道', '支付设备', '购买渠道', '支付时间', '订单状态', '渠道流水号'],
+ ['merchantName', '', 'area', '', 'sectionName', '', 'licensePlateNumber', 'entryTime', 'exitTime', '', 'arrearsAmount'], 1),
+ [ash[18], ash[4], ash[6], ash[7], ash[8], ash[9], ash[10], ash[15], ash[14]],
+ resultData
+ )}
+
+
+ {renderTable(
+ createCol(['序号', '停车场名称', '车牌号', '手机号', '订单金额', '支付方式', '渠道流水号', '同步MS状态', '订购时间'],
+ ['index', '', 'area', '', 'sectionName', '', 'licensePlateNumber', 'entryTime', 'exitTime', '', 'arrearsAmount'],2),
+ [ash[2], ash[4], ash[18], ash[11], ash[16], ash[14]],
+ resultData
+ )}
+
+ {/*
+
+ */}
+
+ {
+ setBigpicVisible(false);
+ }}
+ footer={false}
+ >
+
+
+

+
+
+
+ {
+ setTkddVisible(false);
+ }}
+ footer={[
+ ]}
+ >
+ {/* {tkddModal} */}
+ {tabKey == '5' ? tkddModal : tabKey == '6' ? tckModal : tabKey == '7' ? cfkModal : null}
+
+
+ {
+ setEaeVisible(false);
+ }}
+ footer={false}
+ >
+
+
+
+
车辆照片
+

+
+
+
车牌照片
+

+
+
+
+ >
+ );
+}
+
+export default ProductOrderInquiry;
\ No newline at end of file
diff --git a/src/pages/FinancialMgm/OrderInquiry/ProductOrderInquiry/index.scss b/src/pages/FinancialMgm/OrderInquiry/ProductOrderInquiry/index.scss
new file mode 100644
index 0000000..101a262
--- /dev/null
+++ b/src/pages/FinancialMgm/OrderInquiry/ProductOrderInquiry/index.scss
@@ -0,0 +1,322 @@
+@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-tabpane-hidden {
+ display: none;
+}
+.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);
+}
+.ant-input:-ms-input-placeholder {
+ color: var(--color-placeholder);
+}
+.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;
+ }
+ }
+ }
+}
+.base-ltc {
+ display: flex;
+
+}
+.ltc-img {
+ margin-right: 20px;
+}
+.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);
+ }
+ .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;
+ }
+ }
+
+ }
+}
+.distable {
+ .ant-pagination {
+ justify-self: center;
+ }
+}
+.eae-modal {
+ .eae-modal-title {
+ font-size: 18px;
+ font-weight: bolder;
+ .ltc-icon {
+ width: 5px;
+ background: #0080db;
+ height: 19px;
+ display: inline-block;
+ margin-right: 10px;
+ }
+ }
+ .eae-modal-item {
+ display: inline-block;
+ font-size: 16px;
+ }
+}
+.cc-container {
+ overflow: auto;
+}
+.back-btn {
+ position: absolute;
+ right: 50px;
+ border: 1px solid #bdbdbd;
+ border-radius: 5px;
+ width: 60px;
+ height: 35px;
+ line-height: 30px;
+ text-align: center;
+ background: #ffffff;
+ color: #000;
+ cursor: pointer;
+ z-index: 9999;
+}
\ No newline at end of file
diff --git a/src/pages/FinancialMgm/OrderInquiry/index.jsx b/src/pages/FinancialMgm/OrderInquiry/index.jsx
index faffd8a..5e5ecf2 100644
--- a/src/pages/FinancialMgm/OrderInquiry/index.jsx
+++ b/src/pages/FinancialMgm/OrderInquiry/index.jsx
@@ -2,11 +2,13 @@ import loadable from "@loadable/component";
const EditOrderInquiry = loadable(() => import("./OrderChangeInquiry"));
const ParkingOrderInquiry = loadable(() => import("./ParkingOrderInquiry"));
const GoodsOrderInquiry = loadable(() => import("./GoodsOrderInquiry"));
+const ProductOrderInquiry = loadable(() => import("./ProductOrderInquiry"));
const RefundOrderInquiry = loadable(() => import("./ReturnOrderInquiry"));
export default {
EditOrderInquiry,
ParkingOrderInquiry,
GoodsOrderInquiry,
- RefundOrderInquiry
+ RefundOrderInquiry,
+ ProductOrderInquiry,
}
\ No newline at end of file
diff --git a/src/pages/FinancialMgm/PayConf/AppConf/index.jsx b/src/pages/FinancialMgm/PayConf/AppConf/index.jsx
index 1c250db..1a7ef41 100644
--- a/src/pages/FinancialMgm/PayConf/AppConf/index.jsx
+++ b/src/pages/FinancialMgm/PayConf/AppConf/index.jsx
@@ -75,15 +75,35 @@ function AppConfiguration(props) {
};
// 行数据
const [rowData, setRowData] = useState(defRowData);
-
+ const [sessionTabList, setSessionTabList] = useSessionStorageState('appConfiguration', {
+ value: {
+ }
+ })
+ useEffect(() => {
+ if (sessionTabList && Object.values(sessionTabList).length > 0) {
+ setFormData({
+ ...formData, ...sessionTabList
+ })
+ getData({
+ ...sessionTabList
+ })
+ } else {
+ getData()
+ }
+ }, [isAjax])
+ useEffect(() => {
+ setSessionTabList({
+ ...formData
+ })
+ }, [formData])
useEffect(() => {
getSelectList();
}, []);
// 访问接口,获取表格
- useEffect(() => {
- getData();
- }, [isAjax]);
+ // useEffect(() => {
+ // getData();
+ // }, [isAjax]);
// 获取下拉数据
const getSelectList = () => {
@@ -93,7 +113,7 @@ function AppConfiguration(props) {
var typedata = JSON.parse(JSON.stringify(res.data?.app_type_scenario_arr))
setTypeData(typedata || [])
var typedata2 = [...res.data?.app_type_scenario_arr]
- typedata2?.map((item)=>{
+ typedata2?.map((item) => {
item.options = item.payment_scenario_list
})
setAppTypeData(typedata2 || []);
@@ -107,14 +127,14 @@ function AppConfiguration(props) {
};
// 获取列表数据
- const getData = () => {
+ const getData = (v) => {
let postData = { ...formData };
if (!loading) {
postData = { ...holdData };
}
setDefaultParams({ ...postData, ...pageInfo });
setTabLoading(true);
- ajax.getAppList({ ...postData, ...pageInfo }).then(
+ ajax.getAppList({ ...postData, ...pageInfo, ...v }).then(
(res) => {
if (parseInt(res?.status) === 20000) {
setResultData(res?.data || {});
@@ -450,7 +470,7 @@ function AppConfiguration(props) {
{({ getFieldValue }) => {
return (
<>
- {([9, 10, 11].includes(getFieldValue("app_type"))
+ {([12, 13, 11].includes(getFieldValue("app_type"))
? [
{
type: "input",
diff --git a/src/pages/FinancialMgm/PayConf/PayMerchantConf/index.jsx b/src/pages/FinancialMgm/PayConf/PayMerchantConf/index.jsx
index 5dab5ab..03ddc64 100644
--- a/src/pages/FinancialMgm/PayConf/PayMerchantConf/index.jsx
+++ b/src/pages/FinancialMgm/PayConf/PayMerchantConf/index.jsx
@@ -72,7 +72,7 @@ function MerchantConfiguration(props) {
//商户类型
merchant_id: "",
//商户ID
- api_key: "",
+ apiKey: "",
//APIkey
wechat_official_account: null,
//(微信)微信公众号
@@ -80,11 +80,11 @@ function MerchantConfiguration(props) {
//(微信)微信小程序
wechat_app: null,
//(微信)APP (商户类型为普通时,有该选项)
- alipay_partner: "",
+ merchant_id: "",
//(支付宝)
- alipay_private_key: "",
+ privateKey: "",
//(支付宝)
- alipay_ali_public_key: "",
+ publicKey: "",
//(支付宝)
service_window: null,
//(支付宝)服务窗
@@ -109,15 +109,35 @@ function MerchantConfiguration(props) {
};
// 行数据
const [rowData, setRowData] = useState(defRowData);
-
+ const [sessionTabList, setSessionTabList] = useSessionStorageState('merchantConfiguration', {
+ value: {
+ }
+ })
+ useEffect(() => {
+ if (sessionTabList && Object.values(sessionTabList).length > 0) {
+ setFormData({
+ ...formData, ...sessionTabList
+ })
+ getData({
+ ...sessionTabList
+ })
+ } else {
+ getData()
+ }
+ }, [isAjax])
+ useEffect(() => {
+ setSessionTabList({
+ ...formData
+ })
+ }, [formData])
useEffect(() => {
getSelectList();
}, []);
// 访问接口,获取表格
- useEffect(() => {
- getData();
- }, [isAjax]);
+ // useEffect(() => {
+ // getData();
+ // }, [isAjax]);
// 获取下拉数据
const getSelectList = () => {
@@ -136,14 +156,14 @@ function MerchantConfiguration(props) {
};
// 获取列表数据
- const getData = () => {
+ const getData = (v) => {
let postData = { ...formData };
if (!loading) {
postData = { ...holdData };
}
setDefaultParams({ ...postData, ...pageInfo });
setTabLoading(true);
- ajax.getPaymentMerchantList({ ...postData, ...pageInfo }).then(
+ ajax.getPaymentMerchantList({ ...postData, ...pageInfo, ...v }).then(
(res) => {
if (parseInt(res?.status) === 20000) {
setResultData(res?.data || {});
@@ -362,8 +382,8 @@ function MerchantConfiguration(props) {
{
type: "input",
label: "APIkey",
- name: "api_key",
- value: rowData?.api_key,
+ name: "apiKey",
+ value: rowData?.apiKey,
required: actionState !== "view",
},
{
@@ -388,16 +408,16 @@ function MerchantConfiguration(props) {
.concat(
mt === 1
? [
- {
- type: "select",
- label: "APP",
- name: "wechat_app",
- value: rowData?.wechat_app_name,
- options: platformToAppData?.wechat_app || [],
- required: false,
- allowClear: true,
- },
- ]
+ {
+ type: "select",
+ label: "APP",
+ name: "wechat_app",
+ value: rowData?.wechat_app_name,
+ options: platformToAppData?.wechat_app || [],
+ required: false,
+ allowClear: true,
+ },
+ ]
: []
)
.map((item) => (
@@ -442,23 +462,23 @@ function MerchantConfiguration(props) {
},
{
type: "input",
- label: "ALIPAY_PARTNER",
- name: "alipay_partner",
- value: rowData?.alipay_partner,
+ label: "merchant_id",
+ name: "merchant_id",
+ value: rowData?.merchant_id,
required: actionState !== "view",
},
{
type: "input",
- label: "ALIPAY_PRIVATE_KEY",
- name: "alipay_private_key",
- value: rowData?.alipay_private_key,
+ label: "privateKey",
+ name: "privateKey",
+ value: rowData?.privateKey,
required: actionState !== "view",
},
{
type: "input",
- label: "ALIPAY_ALI_PUBLIC_KEY",
- name: "alipay_ali_public_key",
- value: rowData?.alipay_ali_public_key,
+ label: "publicKey",
+ name: "publicKey",
+ value: rowData?.publicKey,
required: actionState !== "view",
},
{
@@ -500,8 +520,8 @@ function MerchantConfiguration(props) {
{
type: "input",
label: "APIkey",
- name: "api_key",
- value: rowData?.api_key,
+ name: "apiKey",
+ value: rowData?.apiKey,
required: actionState !== "view",
},
{
diff --git a/src/pages/FinancialMgm/PayConf/PlatformMerchantConf/index.jsx b/src/pages/FinancialMgm/PayConf/PlatformMerchantConf/index.jsx
index e42cbf0..fb07af5 100644
--- a/src/pages/FinancialMgm/PayConf/PlatformMerchantConf/index.jsx
+++ b/src/pages/FinancialMgm/PayConf/PlatformMerchantConf/index.jsx
@@ -81,15 +81,35 @@ function PlatformConfiguration(props) {
const [targetKeys, setTargetKeys] = useState([]);
// 勾选平台商户
const [selectedKeys, setSelectedKeys] = useState([]);
-
+ const [sessionTabList, setSessionTabList] = useSessionStorageState('platformConfiguration', {
+ value: {
+ }
+ })
+ useEffect(() => {
+ if (sessionTabList && Object.values(sessionTabList).length > 0) {
+ setFormData({
+ ...formData, ...sessionTabList
+ })
+ getData({
+ ...sessionTabList
+ })
+ } else {
+ getData()
+ }
+ }, [isAjax])
+ useEffect(() => {
+ setSessionTabList({
+ ...formData
+ })
+ }, [formData])
useEffect(() => {
getSelectList();
}, []);
// 访问接口,获取表格
- useEffect(() => {
- getData();
- }, [isAjax]);
+ // useEffect(() => {
+ // getData();
+ // }, [isAjax]);
// 获取下拉数据
const getSelectList = () => {
@@ -134,14 +154,14 @@ function PlatformConfiguration(props) {
};
// 获取列表数据
- const getData = () => {
+ const getData = (v) => {
let postData = { ...formData };
if (!loading) {
postData = { ...holdData };
}
setDefaultParams({ ...postData, ...pageInfo });
setTabLoading(true);
- ajax.getPlatformMerchantList({ ...postData, ...pageInfo }).then(
+ ajax.getPlatformMerchantList({ ...postData, ...pageInfo, ...v }).then(
(res) => {
if (parseInt(res?.status) === 20000) {
setResultData(res?.data || {});
@@ -304,8 +324,8 @@ function PlatformConfiguration(props) {
// 添加
const handleAdd = () => {
setActionState("add");
- setRowData({...defRowData, ...scenarioKeyList});
- form.setFieldsValue({...defRowData, ...scenarioKeyList});
+ setRowData({ ...defRowData, ...scenarioKeyList });
+ form.setFieldsValue({ ...defRowData, ...scenarioKeyList });
setSelectedKeys([]);
setTargetKeys([]);
setVisible(true);
@@ -352,12 +372,12 @@ function PlatformConfiguration(props) {
case "type":
obj[key] = val;
obj.payment_merchant_id = null;
- form.setFieldsValue({...defRowData, ...scenarioKeyList});
+ form.setFieldsValue({ ...defRowData, ...scenarioKeyList });
break;
case "payment_merchant_id":
obj[key] = val;
getPaymentScenarioList(val);
- form.setFieldsValue({...defRowData, ...scenarioKeyList});
+ form.setFieldsValue({ ...defRowData, ...scenarioKeyList });
break;
default:
obj[key] = val;
@@ -389,7 +409,7 @@ function PlatformConfiguration(props) {
// 支付商户id=>pmi
const dynamicFormItem = (pmi) => {
- if(pmi) {
+ if (pmi) {
const scenarioArr = appInfoPaymentScenarioList?.map(item => {
return {
type: "checkbox",
@@ -555,7 +575,7 @@ function PlatformConfiguration(props) {
shouldUpdate={(prevValues, currentValues) =>
prevValues.type !== currentValues.type ||
prevValues.payment_merchant_id !==
- currentValues.payment_merchant_id
+ currentValues.payment_merchant_id
}
>
{({ getFieldValue }) => {
diff --git a/src/pages/SystemMgm/SystemLog/index.scss b/src/pages/SystemMgm/SystemLog/index.scss
index 1838f71..101a262 100644
--- a/src/pages/SystemMgm/SystemLog/index.scss
+++ b/src/pages/SystemMgm/SystemLog/index.scss
@@ -1,5 +1,322 @@
@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);
+$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-tabpane-hidden {
+ display: none;
+}
+.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);
+}
+.ant-input:-ms-input-placeholder {
+ color: var(--color-placeholder);
+}
+.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;
+ }
+ }
+ }
+}
+.base-ltc {
+ display: flex;
+
+}
+.ltc-img {
+ margin-right: 20px;
+}
+.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);
+ }
+ .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;
+ }
+ }
+
+ }
+}
+.distable {
+ .ant-pagination {
+ justify-self: center;
+ }
+}
+.eae-modal {
+ .eae-modal-title {
+ font-size: 18px;
+ font-weight: bolder;
+ .ltc-icon {
+ width: 5px;
+ background: #0080db;
+ height: 19px;
+ display: inline-block;
+ margin-right: 10px;
+ }
+ }
+ .eae-modal-item {
+ display: inline-block;
+ font-size: 16px;
+ }
+}
+.cc-container {
+ overflow: auto;
+}
+.back-btn {
+ position: absolute;
+ right: 50px;
+ border: 1px solid #bdbdbd;
+ border-radius: 5px;
+ width: 60px;
+ height: 35px;
+ line-height: 30px;
+ text-align: center;
+ background: #ffffff;
+ color: #000;
+ cursor: pointer;
+ z-index: 9999;
+}
\ No newline at end of file
diff --git a/src/pages/SystemMgm/SystemLog/loadable.jsx b/src/pages/SystemMgm/SystemLog/loadable.jsx
index 3984ae4..d43e100 100644
--- a/src/pages/SystemMgm/SystemLog/loadable.jsx
+++ b/src/pages/SystemMgm/SystemLog/loadable.jsx
@@ -1,15 +1,625 @@
import React, { useState, useRef, useEffect } from "react";
-// import { message, Pagination, Table, Space, Modal, } from "antd";
-// import { dictionary, utils } from "@/config/common";
-// import moment from 'moment'
-// import { useSessionStorageState, useUpdateEffect, useSize, useUpdate } from 'ahooks';
-// import ajax from "@/services"
-// import { FormInput, FormSelect, OptionPanel, ResultPanel, FormSliderPicker, AreaCascader, ImgResize, ImgZoom, } from "@/components"
-// import "./index.scss";
-// import errorImg from "@/assets/images/layout/error.png"
-// import { useLocation } from "react-router-dom";
+import {
+ message,
+ Pagination,
+ Table,
+ Input,
+ Space,
+ Modal,
+ Button,
+ Select,
+ Tabs,
+ Descriptions,
+ Timeline
+} from "antd";
+import moment from "moment";
+import ajax from '@/config/ajax.js'
+import { TableModule } from "@/components";
+import { dictionary } from "@/config/common.js";
+import "./index.scss";
+
function SystemLog() {
- return SystemLog
+ const [carId, setCarId] = useState()
+
+ //构建表头
+ const createCol = (label, name, type) => {
+ label.length == name.length ? null : console.log('参数缺失', label.length, name.length)
+ var arr = []
+ label?.map((item, index) => {
+ let cm = {
+ title: item,
+ dataIndex: name[index],
+ key: name[index],
+ align: "center",
+ }
+ switch (item) {
+ case "序号":
+ cm.render = (text, record, index) => index + 1
+ break
+ case "退款订单ID":
+ case "业务订单ID":
+ case "支付订单ID":
+ cm.render = (text) => (
+ <>
+ {
+ navigator.clipboard.writeText(`${text}`).then(() => { message.success("已复制到剪切板") });
+ }}>{text}
+ >
+ )
+ break
+ default: break
+ }
+ arr.push(cm)
+ })
+ var obj = {
+ title: "操作",
+ dataIndex: "operation",
+ key: "operation",
+ fixed: "right",
+ align: "center",
+ }
+ switch (type) {
+ case 2:
+ obj.render = (text, record) => (<>
+ {
+ setYcddData(record)
+ setDetailVisible(true)
+ }}>
+ 详情
+
+ >)
+ arr.push(obj)
+ break
+ default: break
+ }
+ return arr
+ }
+ //基本信息检索条件
+ const formSearch = [
+ {
+ name: "carId",
+ type: "Input",
+ label: "车牌号",
+ placeholder: "请输入车牌号",
+ },
+ {
+ name: "mobile",
+ type: "Input",
+ label: "会员手机号",
+ placeholder: "请输入会员手机号",
+ },
+ {
+ name: "authState",
+ type: "Select",
+ label: "认证状态",
+ options: [
+ {
+ label: "已认证",
+ value: 0,
+ },
+ {
+ label: "未认证",
+ value: 1,
+ },
+
+ ],
+ },
+ {
+ name: "bingState",
+ type: "Select",
+ label: "绑定状态",
+ options: [
+ {
+ label: "已绑定",
+ value: 0,
+ },
+ {
+ label: "未绑定",
+ value: 1,
+ },
+
+ ],
+ },
+ {
+ name: "timePeriod",
+ type: "RangePicker",
+ label: "时间段",
+ defaultValue: [moment().subtract(1, "month"), moment()],
+ },
+ ];
+
+ //所有检索条件
+ const ash = [
+ {//1
+ name: "region",
+ type: "TreeSelect",
+ label: "区域",
+ },
+ {//2
+ name: "operator",
+ type: "Select",
+ label: "商户名称",
+ options: dictionary.MerchantName,
+ },
+ {//3
+ name: "road",
+ type: "Input",
+ label: "停车场名称",
+ placeholder: "请输入停车场名称",
+ },
+ {//4
+ name: "road_type",
+ type: "Select",
+ label: "车场类型",
+ options: [
+ {
+ label: "全部",
+ value: 0,
+ },
+ {
+ label: "路侧平行",
+ value: 1,
+ },
+ {
+ label: "路侧垂停",
+ value: 2,
+ },
+ {
+ label: "封闭车场",
+ value: 3,
+ },
+ {
+ label: "半封闭车场",
+ value: 4,
+ },
+ ],
+ },
+ {//5
+ name: "phone",
+ type: "Input",
+ label: "手机号",
+ placeholder: "请输入手机号",
+ },
+ {//6
+ name: "type",
+ type: "Select",
+ label: "出入场类型",
+ placeholder: "请选择出入场类型",
+ defaultValue: 1,
+ options: [
+ {
+ label: "入场",
+ value: 1,
+ },
+ {
+ label: "出场",
+ value: 2,
+ },
+ ],
+ },
+
+ {//7
+ name: "b",
+ type: "Input",
+ label: "商品名称",
+ placeholder: "请输入商品名称",
+ },
+ {//8
+ name: "b",
+ type: "Select",
+ label: "购买渠道",
+ placeholder: "请选择购买渠道",
+ options: [
+ {
+ label: "全部",
+ value: 0,
+ },
+ {
+ label: "线上渠道",
+ value: 1,
+ },
+ {
+ label: "后台录入",
+ value: 2,
+ },
+ ],
+ },
+ {//9
+ name: "b",
+ type: "Select",
+ label: "订单状态",
+ placeholder: "请选择订单状态",
+ options: [
+ {
+ label: "全部",
+ value: 0,
+ },
+ {
+ label: "未生效",
+ value: 1,
+ },
+ {
+ label: "生效中",
+ value: 2,
+ },
+ {
+ label: "已失效",
+ value: 3,
+ },
+ ],
+ },
+ {//10
+ name: "payment_channels",
+ type: "Select",
+ label: "支付渠道",
+ placeholder: "请选择支付渠道",
+ options: dictionary.PayChannel,
+ },
+ {//11
+ name: "payment_equipment",
+ type: "Select",
+ label: "支付设备",
+ placeholder: "请选择支付设备",
+ options: dictionary.PayDevice
+ },
+ {//12
+ name: "pay_type",
+ type: "Select",
+ label: "支付方式",
+ placeholder: "请选择支付方式",
+ options: dictionary.PaydMethod,
+ },
+ {//13
+ name: "timePeriod",
+ type: "RangePicker",
+ label: "时间段",
+ defaultValue: [moment().startOf("day"), moment()],
+ },
+ {//14
+ name: "b",
+ type: "Select",
+ label: "退款方式",
+ placeholder: "请选择退款方式",
+ options: dictionary.PaydMethod,
+ },
+ {//15
+ name: "b",
+ type: "Input",
+ label: "渠道流水号",
+ placeholder: "请输入渠道流水号",
+ },
+ {//16
+ name: "timePeriod",
+ type: "RangePicker",
+ label: "时间段",
+ defaultTitle: ['支付时间', '至']
+ // defaultValue: [moment().startOf("day"), moment()],
+ },
+ {//17
+ name: "timePeriod",
+ type: "RangePicker",
+ label: "时间段",
+ defaultTitle: ['订购时间', '至']
+ // defaultValue: [moment().startOf("day"), moment()],
+ },
+ {//18
+ name: "timePeriod",
+ type: "RangePicker",
+ label: "时间段",
+ defaultTitle: ['预约到场时间', '至']
+ // defaultValue: [moment().startOf("day"), moment()],
+ },
+ {//19
+ name: "plate",
+ type: "Input",
+ label: "车牌号",
+ placeholder: "请输入车牌号",
+ },
+ {//20
+ name: "order_id",
+ type: "Input",
+ label: "支付订单ID",
+ placeholder: "请输入支付订单ID",
+ },
+ {//21
+ name: "berth_id",
+ type: "Input",
+ label: "泊位号",
+ placeholder: "请输入泊位号",
+ },
+ {//22
+ name: "t",
+ type: "Select",
+ label: "所属商户",
+ placeholder: "请选择所属商户",
+ options: dictionary.MerchantName,
+ },
+ {//23
+ name: "t",
+ type: "Input",
+ label: "预付订单ID",
+ placeholder: "请输入订单ID",
+ },
+ {//24
+ name: "t",
+ type: "Input",
+ label: "停车记录ID",
+ placeholder: "停车记录ID",
+ },
+ {//25
+ name: "dealer",
+ type: "Input",
+ label: "操作人",
+ placeholder: "请输入操作人",
+ },
+ {//26
+ name: "t",
+ type: "Input",
+ label: "停车订单ID",
+ placeholder: "停车订单ID",
+ },
+ {//27
+ name: "t",
+ type: "Input",
+ label: "欠费区间",
+ placeholder: "",
+ },
+ {//28
+ name: "timePeriod",
+ type: "RangePicker",
+ label: "时间段",
+ defaultTitle: ['订单修改时间', '至']
+ // defaultValue: [moment().startOf("day"), moment()],
+ },
+ {//29
+ name: "b",
+ type: "Select",
+ label: "修改原因",
+ placeholder: "请选择修改原因",
+ options: [
+ {
+ label: "全部",
+ value: 0,
+ },
+ {
+ label: "订单自动找平",
+ value: 1,
+ },
+ {
+ label: "异常订单处理",
+ value: 2,
+ },
+ ],
+ },
+ ];
+ const [resultData, setResultData] = useState([])
+ const [ycddData, setYcddData] = useState([])//异常订单数据
+ const [detailVisible, setDetailVisible] = useState(false);
+ const [timesVisible, setTimesVisible] = useState(false); //退款尝试次数展开
+ const [tkddVisible, setTkddVisible] = useState(false);
+ const [eaeVisible, setEaeVisible] = useState(false);//出入场图片
+ const [bigpicVisible, setBigpicVisible] = useState(false);//大图展示
+ const [bigPic, setBigPic] = useState();
+ const [total, setTotal] = useState(0);
+ const [tabKey, setTabKey] = useState("1");
+ function changeKey(key) {
+ setTabKey(key);
+ }
+
+ //基本信息查询
+ function search(e) {
+ // if (!e.type) {
+ // e.type = 1
+ // }
+ ajax({
+ url: "/api/ope/car/list",
+ type: "post",
+ data: { ...e },
+ }).then((res) => {
+ let { status, data, total } = res
+ if (status == 20000) {
+ setResultData(data)
+ setTotal(total)
+ } else {
+ message.error(res.message)
+ }
+ })
+ }
+
+ //详情其他模块查询
+ function searchOther(e) {
+ var url = ''
+ switch (tabKey) {
+ case "1":
+ url = ""//
+ break
+ case "2":
+ url = ""//
+ break
+ default: break
+ }
+ // if (tabKey == '3' && e && !e?.type) {
+ // e.type = 1
+ // }
+ ajax({
+ url: url,
+ type: "post",
+ data: { ...e, carId: carId },
+ }).then((res) => {
+ let { status, data, total } = res
+ if (status == 20000) {
+ if (data.list) {
+ setResultData(data.list)
+ setTotal(data.total)
+ } else {
+ setResultData(data)
+ setTotal(total)
+ }
+ } else {
+ setResultData([])
+ message.error(res.message)
+ }
+ })
+ }
+ //停车记录信息渲染
+ function renderParkRecord(params) {
+ return (
+
+
+
+
+
停车场名称
{params?.road || "--"}
+
+
+
泊位号
{params.berth_id || "--"}
+
+
+
区域
{params.region || "--"}
+
+
+
商户
{params.operator || "--"}
+
+
+
车场类型
{params.road_type || "--"}
+
+
+
+
+
+
车牌号
{params.plate || "--"}
+
+
+
会员手机号
{params.phone || "--"}
+
+
+
入场时间
{params.in_time || "--"}
+
+
+
出场时间
{params.out_time || "--"}
+
+
+
停车时长
{params.admission_time || "--"}
+
+
+
订单金额
{params.order_amount || "--"}
+
+
+
停车卡折扣
{params.parking_card_discount || "--"}
+
+
+
车场折扣
{params.road_discount || "--"}
+
+
+
应收金额
{params.receivable_amount || "--"}
+
+
+
优惠券
{params.preferential_amount || "--"}
+
+
+
优惠总计
{params.preferential_total || "--"}
+
+
+
实付金额
{params.actual_amount || "--"}
+
+
+
优惠退款
{params.refund_discount || "--"}
+
+
+
实付退款
{params.actual_refund || "--"}
+
+
+
退款总计
{params.refund_total || "--"}
+
+
+
入场收费员
{params.in_person || "--"}
+
+
+
出场收费员
{params.out_person || "--"}
+
+
+
+ );
+ }
+ //其他页面渲染
+ function renderTable(columns, arr, dataSource) {
+ return (
+
+ );
+ }
+ useEffect(() => {
+ searchOther()
+ }, [tabKey])
+
+
+ return (
+ <>
+ {renderTable(
+ createCol(['车牌号', '车牌颜色', '手机号', '商品名称', '实付金额', '支付渠道', '支付设备', '购买渠道', '支付时间', '订单状态', '渠道流水号'],
+ ['merchantName', '', 'area', '', 'sectionName', '', 'licensePlateNumber', 'entryTime', 'exitTime', '', 'arrearsAmount'], 1),
+ [ash[12]],
+ resultData
+ )}
+ {
+ setBigpicVisible(false);
+ }}
+ footer={false}
+ >
+
+
+

+
+
+
+ {
+ setTkddVisible(false);
+ }}
+ footer={[
+ ]}
+ >
+
+ {
+ setEaeVisible(false);
+ }}
+ footer={false}
+ >
+
+
+
+
车辆照片
+

+
+
+
车牌照片
+

+
+
+
+ >
+ );
}
export default SystemLog;
\ No newline at end of file
diff --git a/src/router/router.config.js b/src/router/router.config.js
index 41b97b3..2d28c99 100644
--- a/src/router/router.config.js
+++ b/src/router/router.config.js
@@ -974,6 +974,12 @@ let routes = [
component: pages.ParkingOrderInquiry,
},
{
+ path: "/financialMgm/productOrderInquiry",
+ text: "商品订单查询",
+ name: "productOrderInquiry",
+ component: pages.ProductOrderInquiry,
+ },
+ {
path: "/financialMgm/refundOrderInquiry",
text: "退款订单查询",
name: "refundOrderInquiry",
@@ -1005,6 +1011,12 @@ let routes = [
component: pages.RoleMgm,
},
{
+ path: "/systemMgm/systemLog",
+ text: "系统日志",
+ name: "systemLog",
+ component: pages.SystemLog,
+ },
+ {
path: "/systemMgm/businessConf",
text: "业务配置",
name: "businessConf",