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.try_count || "--"} + {timesVisible ? + { setTimesVisible(false) }}>收起 : + { setTimesVisible(true) }}>查看} +
+
+
+
最近尝试时间
{ycddData.latest_try_time || "--"}
+
+
+ + + {timesVisible ? <> +
退款尝试详情
+ : + <> +
支付订单:{ycddData.order_id}
+
+
+
平台商户
{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}
+
+
+
证据图像
{ setEaeVisible(true) }}>查看
+
+
+ } + +
+ + 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",