diff --git a/src/components/TableModule/index.jsx b/src/components/TableModule/index.jsx index ea8d988..ce6113c 100644 --- a/src/components/TableModule/index.jsx +++ b/src/components/TableModule/index.jsx @@ -1,4 +1,11 @@ -import React, { useState, useRef, useEffect, useLayoutEffect } from "react"; +import React, { + useState, + useRef, + useEffect, + useLayoutEffect, + useImperativeHandle, + forwardRef, +} from "react"; import { Form, Pagination, @@ -22,8 +29,8 @@ import { useSetState } from "ahooks"; import { ResultFlow, ExportBtn } from "@/components"; import "./index.scss"; const { RangePicker } = DatePicker; - -function TableModule(props) { +//如想在外部调用搜索方法,请通过 , Ref.current.fetche 的方式调用 +const TableModule = forwardRef((props, ref) => { const { pagename = "", columns = [], //表头 @@ -337,6 +344,9 @@ function TableModule(props) { }) .catch((err) => console.error(err)); } + useImperativeHandle(ref, () => ({ + fetch, + })); useEffect(() => { getAllOperator(); @@ -384,12 +394,14 @@ function TableModule(props) {
{rightButtonGroup.map((item) => item)} - + {isExport && ( + + )}
); -} +}); function InputSelectGroup(params) { const { onChange = () => {} } = params; const [timeType, setTimeType] = useState(1); diff --git a/src/pages/OutRoadMgm/OutBusinessRecord/OutParkingRecordInquiry/Detail/RecordList.jsx b/src/pages/OutRoadMgm/OutBusinessRecord/OutParkingRecordInquiry/Detail/RecordList.jsx index f79c67f..9a255ce 100644 --- a/src/pages/OutRoadMgm/OutBusinessRecord/OutParkingRecordInquiry/Detail/RecordList.jsx +++ b/src/pages/OutRoadMgm/OutBusinessRecord/OutParkingRecordInquiry/Detail/RecordList.jsx @@ -26,43 +26,43 @@ function RecordList({ id }) { }, { title: "应收金额", - dataIndex: "ys_money", - key: "ys_money", + dataIndex: "receivable_amount", + key: "receivable_amount", }, { title: "优惠金额", - dataIndex: "yh_money", - key: "yh_money", + dataIndex: "preferential_amount", + key: "preferential_amount", }, { title: "实收金额", - dataIndex: "sf_money", - key: "sf_money", + dataIndex: "actual_amount", + key: "actual_amount", }, { title: "支付类型", - dataIndex: "pay_type_name", - key: "pay_type_name", + dataIndex: "pay_type", + key: "pay_type", }, { title: "支付渠道", - dataIndex: "payment_type_name", - key: "payment_type_name", + dataIndex: "payment_channels", + key: "payment_channels", }, { title: "支付设备", - dataIndex: "payment_device_name", - key: "payment_device_name", + dataIndex: "payment_equipment", + key: "payment_equipment", }, { title: "支付人", - dataIndex: "car_owner_name", - key: "car_owner_name", + dataIndex: "dealer", + key: "dealer", }, { title: "付款车场", - dataIndex: "park_name", - key: "park_name", + dataIndex: "pay_road", + key: "pay_road", }, { title: "第三方流水ID", @@ -72,7 +72,7 @@ function RecordList({ id }) { ]; const [dataSource, setDataSource] = useState([]); function getList() { - ajax.showPayList({ id }).then((res) => { + ajax.getOutParkingReacordPayment({ park_record_id: id }).then((res) => { if (res.status === 20000) { setDataSource(res.data.list); } diff --git a/src/pages/OutRoadMgm/OutBusinessRecord/OutParkingRecordInquiry/Detail/RefundList.jsx b/src/pages/OutRoadMgm/OutBusinessRecord/OutParkingRecordInquiry/Detail/RefundList.jsx index 32c14c2..11c19f1 100644 --- a/src/pages/OutRoadMgm/OutBusinessRecord/OutParkingRecordInquiry/Detail/RefundList.jsx +++ b/src/pages/OutRoadMgm/OutBusinessRecord/OutParkingRecordInquiry/Detail/RefundList.jsx @@ -16,14 +16,14 @@ function RefundList({ id }) { }, { title: "支付渠道", - dataIndex: "payment_type_name", - key: "payment_type_name", + dataIndex: "payment_channels", + key: "payment_channels", }, { title: "支付设备", - dataIndex: "payment_device_name", - key: "payment_device_name", + dataIndex: "payment_channels", + key: "payment_channels", }, { title: "退款原因", @@ -54,7 +54,7 @@ function RefundList({ id }) { ]; const [dataSource, setDataSource] = useState([]); function getList() { - ajax.showRefoundList({ id }).then((res) => { + ajax.getOutParkingReacordRefund({ park_record_id: id }).then((res) => { if (res.status === 20000) { setDataSource(res.data.list); } diff --git a/src/pages/OutRoadMgm/OutBusinessRecord/OutParkingRecordInquiry/Detail/StopList.jsx b/src/pages/OutRoadMgm/OutBusinessRecord/OutParkingRecordInquiry/Detail/StopList.jsx index 6e6b39e..7b08585 100644 --- a/src/pages/OutRoadMgm/OutBusinessRecord/OutParkingRecordInquiry/Detail/StopList.jsx +++ b/src/pages/OutRoadMgm/OutBusinessRecord/OutParkingRecordInquiry/Detail/StopList.jsx @@ -1,43 +1,26 @@ import React, { useState, useEffect } from "react"; import ajax from "@/services"; import { message, Descriptions, Image } from "antd"; -function StopList({ id }) { +function StopList({ id, record }) { //获取停车记录 - const [recordData, setRecordData] = useState({}); + const [recordData, setRecordData] = useState(record); - function getRecord() { - ajax.showStopList({ id }).then((res) => { - if (res.status === 20000) { - setRecordData(res.data.list[0]); - } else { - message.error(res.message); - } - }); - } - - useEffect(() => { - getRecord(); - }, []); return (
- {recordData.park_name} - - - {recordData.area_name} + {recordData.road} + {recordData.region} - {recordData.shop_name} + {recordData.operator} - {recordData.road_type_name} + {recordData.road_type} - - {recordData.plate_num} - + {recordData.plate} {recordData.phone} @@ -48,16 +31,16 @@ function StopList({ id }) { {recordData.out_time} - {recordData.parking_time} + {recordData.parking_duration} - {recordData.ys_money} + {recordData.receivable_amount} - {recordData.yh_money} + {recordData.preferential_amount} - {recordData.sf_money} + {recordData.actual_amount} @@ -68,6 +51,14 @@ function StopList({ id }) { + + + + + + + +
); } diff --git a/src/pages/OutRoadMgm/OutBusinessRecord/OutParkingRecordInquiry/Detail/index.jsx b/src/pages/OutRoadMgm/OutBusinessRecord/OutParkingRecordInquiry/Detail/index.jsx index 33d1b80..5e64209 100644 --- a/src/pages/OutRoadMgm/OutBusinessRecord/OutParkingRecordInquiry/Detail/index.jsx +++ b/src/pages/OutRoadMgm/OutBusinessRecord/OutParkingRecordInquiry/Detail/index.jsx @@ -6,13 +6,19 @@ import RecordList from "./RecordList"; import RefundList from "./RefundList"; import "./index.scss"; function Detail(props) { - const { visible = false, close = () => {}, onOk = () => {}, id } = props; + const { + visible = false, + close = () => {}, + onOk = () => {}, + id, + record = {}, + } = props; //tabs数据 const tabsItems = [ { label: "停车记录", key: "1", - children: , + children: , }, { label: "支付记录", diff --git a/src/pages/OutRoadMgm/OutBusinessRecord/OutParkingRecordInquiry/loadable.jsx b/src/pages/OutRoadMgm/OutBusinessRecord/OutParkingRecordInquiry/loadable.jsx index 500e209..f8221a7 100644 --- a/src/pages/OutRoadMgm/OutBusinessRecord/OutParkingRecordInquiry/loadable.jsx +++ b/src/pages/OutRoadMgm/OutBusinessRecord/OutParkingRecordInquiry/loadable.jsx @@ -13,61 +13,62 @@ function OutParkingRecordInquiry() { title: "序号", dataIndex: "id", key: "id", + render: (text, record, index) => index + 1, }, { title: "区域", - dataIndex: "area", - key: "area", + dataIndex: "region", + key: "region", }, { title: "商户名称", - dataIndex: "merchantName", - key: "merchantName", + dataIndex: "operator", + key: "operator", }, { title: "停车场名称", - dataIndex: "parkingLotName", - key: "parkingLotName", + dataIndex: "road", + key: "road", }, { title: "车场类型", - dataIndex: "parkingLotType", - key: "parkingLotType", + dataIndex: "road_type", + key: "road_type", }, { title: "车牌号", - dataIndex: "licensePlate", - key: "licensePlate", + dataIndex: "plate", + key: "plate", }, { title: "泊位号", - dataIndex: "berthNumber", - key: "berthNumber", + dataIndex: "berth_id", + key: "berth_id", }, { title: "入场时间", - dataIndex: "entryTime", - key: "entryTime", + dataIndex: "in_time", + key: "in_time", }, { title: "离场时间", - dataIndex: "exitTime", - key: "exitTime", + dataIndex: "out_time", + key: "out_time", }, { title: "停车时长", - dataIndex: "parkingDuration", - key: "parkingDuration", + dataIndex: "parking_duration", + key: "parking_duration", }, { title: "应收金额", - dataIndex: "receivableAmount", - key: "receivableAmount", + dataIndex: "receivable_amount", + key: "receivable_amount", }, { title: "实收金额", - dataIndex: "actualAmount", - key: "actualAmount", + dataIndex: "actual_amount", + key: "actual_amount", }, { title: "操作", @@ -78,10 +79,12 @@ function OutParkingRecordInquiry() { onClick={() => { setDetailModal({ ...detailModal, + record, visible: true, id: record.id, }); }} + type="primary" > 操作 @@ -144,6 +147,7 @@ function OutParkingRecordInquiry() { const [detailModal, setDetailModal] = useState({ id: "", visible: false, + record: {}, close: () => setDetailModal({ ...detailModal, visible: false }), onOk: () => { detailModal.close(); @@ -151,7 +155,7 @@ function OutParkingRecordInquiry() { }); function fetch(params) { - ajax.getRecordList(params).then((res) => { + ajax.getOutParkingRecordList(params).then((res) => { if (res.status === 20000) { setTableData(res.data.list); setTotal(res.data.total); @@ -169,13 +173,14 @@ function OutParkingRecordInquiry() { pagename="" search={fetch} initFormData={initFormData} - exportUrl="" + isExport={false} //是否显示导出按钮 /> ); diff --git a/src/pages/OutRoadMgm/OutBusinessRecord/OutPayOrders/loadable.jsx b/src/pages/OutRoadMgm/OutBusinessRecord/OutPayOrders/loadable.jsx index c859ec3..3dae334 100644 --- a/src/pages/OutRoadMgm/OutBusinessRecord/OutPayOrders/loadable.jsx +++ b/src/pages/OutRoadMgm/OutBusinessRecord/OutPayOrders/loadable.jsx @@ -1,15 +1,150 @@ import React, { useState, useRef, useEffect } from "react"; -// import { message, Pagination, Table, Space, Modal, } from "antd"; +import { message, Pagination, Table, Space, Modal, Button } 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 ajax from "@/services"; +import { TableModule } from "@/components"; +import "./index.scss"; function OutPayOrders() { - return
OutPayOrders
+ const columns = [ + { + title: "订单ID", + dataIndex: "order_id", + key: "order_id", + }, + { + title: "停车场", + dataIndex: "road", + key: "road", + }, + { + title: "车牌号", + dataIndex: "plate", + key: "plate", + }, + { + title: "入场时间", + dataIndex: "in_time", + key: "in_time", + }, + { + title: "出场时间", + dataIndex: "out_time", + key: "out_time", + }, + { + title: "停车时长", + dataIndex: "parking_duration", + key: "parking_duration", + }, + { + title: "应收金额", + dataIndex: "receivable_amount", + key: "receivable_amount", + }, + { + title: "实收金额", + dataIndex: "actual_amount", + key: "actual_amount", + }, + { + title: "支付渠道", + dataIndex: "payment_channels", + key: "payment_channels", + }, + { + title: "支付设备", + dataIndex: "payment_equipment", + key: "payment_equipment", + }, + { + title: "操作人", + dataIndex: "dealer", + key: "dealer", + }, + { + title: "支付时间", + dataIndex: "pay_time", + key: "pay_time", + }, + { + title: "第三方流水ID", + dataIndex: "third_party_flow_id", + key: "third_party_flow_id", + }, + ]; + const formSearch = [ + { + name: "road", + type: "Input", + label: "停车场名称", + placeholder: "请选择停车场名称", + }, + { + name: "plate", + type: "Input", + label: "车牌号", + placeholder: "请输入车牌号", + }, + { + name: "payment_channels", + type: "Select", + label: "支付渠道", + placeholder: "请选择支付渠道", + }, + { + name: "payment_equipment", + type: "Select", + label: "支付设备", + placeholder: "请选择支付设备", + }, + { + name: "time", + type: "RangePicker", + label: "时间段", + }, + ]; + //搜索参数初始化 + const initFormData = {}; + + //搜索的结果 + const [tableData, setTableData] = useState([]); + //搜索的总结果数 + const [total, setTotal] = useState(0); + const [detailModal, setDetailModal] = useState({ + id: "", + visible: false, + record: {}, + close: () => setDetailModal({ ...detailModal, visible: false }), + onOk: () => { + detailModal.close(); + }, + }); + + function fetch(params) { + ajax.getOutPayOrdersList(params).then((res) => { + if (res.status === 20000) { + setTableData(res.data.list); + setTotal(res.data.total); + } + }); + } + + return ( + <> + + + ); } -export default OutPayOrders; \ No newline at end of file +export default OutPayOrders; diff --git a/src/pages/OutRoadMgm/OutSegmentMgm/ChargeRulesMgm/AddModal.jsx b/src/pages/OutRoadMgm/OutSegmentMgm/ChargeRulesMgm/AddModal.jsx new file mode 100644 index 0000000..54896fa --- /dev/null +++ b/src/pages/OutRoadMgm/OutSegmentMgm/ChargeRulesMgm/AddModal.jsx @@ -0,0 +1,293 @@ +import React, { useEffect, useState } from "react"; +import { + Modal, + Form, + Input, + Select, + Button, + Row, + Col, + Divider, + Checkbox, + Radio, + message, +} from "antd"; +import ajax from "@/services"; +import EffectiveDate from "./EffectiveDate"; +function AddModal(props) { + const [form] = Form.useForm(); + const { + record = {}, + visible = false, + close = () => {}, + status = "add", + research = () => {}, + } = props; + const isEdit = status === "edit"; + + const [effectiveDateList, setEffectiveDateList] = useState(() => { + if (status === "add") { + return [ + { + key: + Math.floor(Math.random() * 1000).toString() + + Date.now().toString().substring(0, 6), + }, + ]; + } else { + return record.property.map((item) => { + item.key = + Math.floor(Math.random() * 1000).toString() + + Date.now().toString().substring(0, 6); + item.status = "disable"; + return item; + }); + } + }); + + function addEctiveDate() { + const randomNum = Math.floor(Math.random() * 1000); + const item = { + key: randomNum.toString() + Date.now().toString().substring(0, 6), + }; + console.log(effectiveDateList); + setEffectiveDateList([...effectiveDateList, item]); + } + + function removeEffectiveDate(key) { + const _effectiveDateList = effectiveDateList + .map((item) => item.key !== key && item) + .filter((item) => item.key !== undefined); + setEffectiveDateList(_effectiveDateList); + } + //提交成功后函数 + function submitSuccess() { + research(); + close(); + } + //提交接口 + function fetch(params) { + if (status === "add") { + ajax.addChargeRule(params).then((res) => { + if (res.status === 20000) { + message.success("添加成功"); + submitSuccess(); + } else { + message.error(res.message); + } + }); + } else { + ajax.editChargeRule(params).then((res) => { + if (res.status === 20000) { + message.success("编辑成功"); + submitSuccess(); + } else { + message.error(res.message); + } + }); + } + } + //提交按钮 + function submit() { + form + .validateFields() + .then((res) => { + const params = { + ...res, + property: effectiveDateList, + }; + fetch(params); + }) + .catch((err) => console.error(err)); + } + return ( + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + prev.typeF !== cur.typeF} + noStyle + > + {({ getFieldValue, setFieldsValue }) => { + const type = getFieldValue("typeF"); + if (type === 0) { + setFieldsValue({ evFreeTime: "", evFreeTimeAble: [] }); + } + return ( + <> + + + + + + + + + + + + ); + }} + + +
+
+ +
+ + {effectiveDateList.map((item, index) => { + return ( + { + const _effectiveDateList = effectiveDateList.map((item) => { + if (item.key === key) { + item = { ...item, ...value }; + } + return item; + }); + setEffectiveDateList(_effectiveDateList); + }} + /> + ); + })} +
+
+ ); +} + +export default AddModal; diff --git a/src/pages/OutRoadMgm/OutSegmentMgm/ChargeRulesMgm/Detail.jsx b/src/pages/OutRoadMgm/OutSegmentMgm/ChargeRulesMgm/Detail.jsx new file mode 100644 index 0000000..e04ce3c --- /dev/null +++ b/src/pages/OutRoadMgm/OutSegmentMgm/ChargeRulesMgm/Detail.jsx @@ -0,0 +1,182 @@ +import React, { useState, useEffect } from "react"; +import { + Modal, + Form, + Input, + Select, + Button, + Row, + Col, + Divider, + Checkbox, + Descriptions, + Radio, +} from "antd"; +import EffectiveDate from "./EffectiveDate"; +import ajax from "@/services"; +function Detail(props) { + const { record, visible = false, close = () => {} } = props; + const [form] = Form.useForm(); + const [effectiveDateList, setEffectiveDateList] = useState(record.property); + useEffect(() => { + setEffectiveDateList(record.property); + console.log(record.property); + }, []); + return ( + +
+ + + {record.feeName} + + + {record.feeCode} + + + {record.description} + + + {record.operationName} + + + {record.createdTime} + + + {record.limit24hour} + + + {record.freeTime} +
+ + 免费分钟数纳入计费时间 + +
+
+ + + + + {record.evFreeTime} +
+ + 免费分钟数纳入计费时间 + +
+
+
+ + {effectiveDateList && + effectiveDateList.map((item, index) => { + console.log(item); + return ; + })} +
+
+ ); +} + +function EffectiveDetail(props) { + const { record } = props; + console.log(123); + return ( + <> + + + {record.effective_date} + + + + + + {record.time_part_arr.map((item, index) => { + return ; + })} + + ); +} + +function TimePartDetail(props) { + const { record, index } = props; + function partName(type) { + switch (type) { + case 1: + return "基础时段"; + case 2: + return "周期计费"; + case 3: + return "按次计费"; + } + } + return ( + <> + + + {`${record.time_part[0]}-${record.time_part[1]}`} + + {(record.interval === 1 || record.interval === 2) && ( + + {record.time_max_money} + + )} + + {partName(record.interval)} + + {record.interval === 1 && ( + <> + +
{`前:${record.time_before} 分钟,${record.time_before_money}元/${record.time_before_minute}分钟`}
+
+ +
{`满:${record.time_before} 分钟后,${record.time_after_money}元/${record.time_after_minute}分钟`}
+
+ + )} + {record.interval === 2 && ( + +
{`${record.time_money}元/${record.time_minute}分钟`}
+
+ )} + {record.interval === 3 && ( + +
{`${record.money_per_time}元/次`}
+
+ )} +
+ + + ); +} + +export default Detail; diff --git a/src/pages/OutRoadMgm/OutSegmentMgm/ChargeRulesMgm/EffectiveDate.jsx b/src/pages/OutRoadMgm/OutSegmentMgm/ChargeRulesMgm/EffectiveDate.jsx new file mode 100644 index 0000000..8d0e9b3 --- /dev/null +++ b/src/pages/OutRoadMgm/OutSegmentMgm/ChargeRulesMgm/EffectiveDate.jsx @@ -0,0 +1,193 @@ +import React, { useEffect, useState } from "react"; +import { + Form, + Input, + Button, + Select, + DatePicker, + Checkbox, + Row, + Col, + Divider, + message, +} from "antd"; +import TimePart from "./TimePart"; +import moment from "moment"; +function EffectiveDate(props) { + const { + remove = () => {}, + itemKey, + onChange = () => {}, + index, + disable = false, + record = {}, + } = props; + const [form] = Form.useForm(); + const [timePartList, setTimePartList] = useState(() => { + if (!disable) { + return [ + { + key: + Math.floor(Math.random() * 1000).toString() + + Date.now().toString().substring(0, 6), + }, + ]; + } else { + return record.time_part_arr.map((item) => { + item.status = "disable"; + item.key = + Math.floor(Math.random() * 1000).toString() + + Date.now().toString().substring(0, 6); + return item; + }); + } + }); + const addTimePart = () => { + const randomNum = Math.floor(Math.random() * 1000); + const item = { + key: randomNum.toString() + Date.now().toString().substring(0, 6), + }; + setTimePartList([...timePartList, item]); + }; + const removeTimePart = (key) => { + const _timePartList = timePartList + .map((item) => item.key !== key && item) + .filter((item) => item.key !== undefined); + setTimePartList(_timePartList); + }; + + //判断时间是否是一天时间 + function isOneDay(time) { + let total = 0; + for (let i = 0; i < timePartList.length; i++) { + if (timePartList[i].time_part) { + total += Math.abs( + moment(timePartList[i].time_part[1], "HH:mm:ss").diff( + moment(timePartList[i].time_part[0], "HH:mm:ss"), + "minutes" + ) + ); + } + } + total += 1; + console.log(total); + if (total === 1440) { + return true; + } + return false; + } + function submit() { + form + .validateFields() + .then((values) => { + if (isOneDay(values)) { + message.success("时段检验通过"); + } else { + message.error("时段检验未通过"); + } + }) + .catch((err) => { + console.error(err); + }); + } + + return ( +
+
+ + + + + + + + {index !== 1 && ( + + )} + + + + + +
+ {!disable && ( + <> + + + + )} + + {timePartList.map((item, index) => { + console.log(item); + return ( + { + const _timePartList = timePartList.map((item) => { + if (item.key === value.key) { + if (value.time_part) { + value.time_part = value.time_part.map((item) => { + item = item.format("HH:mm:ss"); + return item; + }); + } + return value; + } else { + return item; + } + }); + const obj = { + ...form.getFieldsValue(), + time_part_arr: _timePartList, + }; + if (obj.effective_date !== void 0) { + obj.effective_date = obj.effective_date.format("YYYY-MM-DD"); + } + onChange(obj, itemKey); + setTimePartList(_timePartList); + }} + /> + ); + })} +
+ ); +} + +export default EffectiveDate; diff --git a/src/pages/OutRoadMgm/OutSegmentMgm/ChargeRulesMgm/TimePart.jsx b/src/pages/OutRoadMgm/OutSegmentMgm/ChargeRulesMgm/TimePart.jsx new file mode 100644 index 0000000..8c8ab3a --- /dev/null +++ b/src/pages/OutRoadMgm/OutSegmentMgm/ChargeRulesMgm/TimePart.jsx @@ -0,0 +1,178 @@ +import React, { useEffect, useState } from "react"; +import { + Form, + Input, + Button, + Select, + DatePicker, + TimePicker, + Row, + Col, + Divider, +} from "antd"; +import moment from "moment"; +function TimePart(props) { + const [form] = Form.useForm(); + const { + index, + remove, + itemKey, + onChange = () => {}, + record, + disable = false, + } = props; + console.log(disable); + const valueChange = (value, all) => { + all.key = itemKey; + onChange(all); + }; + + + return ( +
+
+ + + + + + + + {index === 1 ? null : ( + + )} + + + + + + + + + + + + + + + + + + + + + + + + + + ); + case 2: + return ( + + + + + + + + + ); + case 3: + return ( + + + + ); + } + }} + + + prev.interval !== next.interval} + > + {({ getFieldValue }) => { + return ( + (getFieldValue("interval") === 1 || + getFieldValue("interval") === 2) && ( + + + + + + ) + ); + }} + + +
+ +
+ ); +} + +export default TimePart; diff --git a/src/pages/OutRoadMgm/OutSegmentMgm/ChargeRulesMgm/index.scss b/src/pages/OutRoadMgm/OutSegmentMgm/ChargeRulesMgm/index.scss index 1838f71..f19a16f 100644 --- a/src/pages/OutRoadMgm/OutSegmentMgm/ChargeRulesMgm/index.scss +++ b/src/pages/OutRoadMgm/OutSegmentMgm/ChargeRulesMgm/index.scss @@ -1,5 +1,82 @@ @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-modal-content { + .charge-rule-bottom-button { + display: flex; + justify-content: center; + margin-top: 20px; + button { + margin: 0 10px; + } + } + textarea, + input { + background: var(--color-search-list-item-bg); + } + .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); + } +} diff --git a/src/pages/OutRoadMgm/OutSegmentMgm/ChargeRulesMgm/loadable.jsx b/src/pages/OutRoadMgm/OutSegmentMgm/ChargeRulesMgm/loadable.jsx index 1c18f1c..d947efa 100644 --- a/src/pages/OutRoadMgm/OutSegmentMgm/ChargeRulesMgm/loadable.jsx +++ b/src/pages/OutRoadMgm/OutSegmentMgm/ChargeRulesMgm/loadable.jsx @@ -1,37 +1,47 @@ import React, { useState, useRef, useEffect } from "react"; -import { message, Pagination, Table, Space, Modal, Button } from "antd"; +import { + message, + Pagination, + Table, + Space, + Modal, + Button, + 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 { TableModule } from "@/components"; +import AddModal from "./AddModal"; +import Detail from "./Detail"; import "./index.scss"; function ChargeRulesMgm() { const columns = [ { title: "商户名称", - dataIndex: "merchantName", - key: "merchantName", + dataIndex: "operationName", + key: "operationName", }, { title: "规则名称", - dataIndex: "ruleName", - key: "ruleName", + dataIndex: "feeName", + key: "feeName", }, { title: "规则编码", - dataIndex: "ruleCode", - key: "ruleCode", + dataIndex: "feeName", + key: "feeName", }, { title: "创建人", - dataIndex: "creator", - key: "creator", + dataIndex: "creatorName", + key: "creatorName", }, { title: "更新时间", - dataIndex: "updateTime", - key: "updateTime", + dataIndex: "createdTime", + key: "createdTime", }, { title: "描述", @@ -42,7 +52,56 @@ function ChargeRulesMgm() { title: "操作", dataIndex: "operation", key: "operation", - render: () => Edit, + render: (_, record) => { + return ( + + + + + + } + > + + + ); + }, }, ]; const formSearch = [ @@ -74,32 +133,106 @@ function ChargeRulesMgm() { road_type: 0, plate: "", }; + //子ref + const childRef = useRef(null); //搜索的结果 const [tableData, setTableData] = useState([]); //搜索的总结果数 const [total, setTotal] = useState(0); + //添加和编辑的modal + const [addModal, setAddModal] = useState({ + visible: false, + close: () => setAddModal({ ...addModal, visible: false }), + record: {}, + status: "add", + }); + //查看的modal + const [detailModal, setDetailModal] = useState({ + visible: false, + close: () => setDetailModal({ ...detailModal, visible: false }), + record: {}, + }); + function addItem() { + return ( + + ); + } function fetch(params) { - ajax.getParkingArrearsList(params).then((res) => { + ajax.getChargeRuleList(params).then((res) => { if (res.status === 20000) { setTableData(res.data.list); setTotal(res.data.total); } }); } + //删除计费规则 + function delChargeRule(id) { + ajax.delChargeRule({ id }).then((res) => { + if (res.status === 20000) { + message.success("删除成功"); + research(); + } + }); + } + //research + function research() { + childRef.current.fetch(); + } + const getRuleDetail = (id) => { + ajax.getChargeRuleInfo({ id }).then((res) => { + if (res.status === 20000) { + setDetailModal({ ...detailModal, visible: true, record: res.data }); + console.log(res.data); + } + }); + }; + //TODO 调用到子组件的搜索 return ( - + <> + + {addModal.visible && ( + + )} + {detailModal.visible && ( + + )} + ); } diff --git a/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/ConfigParking/BillingRules.jsx b/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/ConfigParking/BillingRules.jsx index 568f557..bbfd014 100644 --- a/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/ConfigParking/BillingRules.jsx +++ b/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/ConfigParking/BillingRules.jsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import React, { useEffect, useState } from "react"; import { Input, Form, @@ -9,49 +9,52 @@ import { Modal, Select, Popover, + message, } from "antd"; -function BillingRules() { +import ajax from "@/services"; +function BillingRules(props) { + const { id } = props; + const [form] = Form.useForm(); + const [editform] = Form.useForm(); + const carTypeList = [ + { label: "小型车", value: 1 }, + { label: "大型车", value: 2 }, + ]; const columns = [ { title: "规则名称", - dataIndex: "ruleName", - key: "ruleName", + dataIndex: "rule_name", + key: "rule_name", align: "center", }, { title: "规则编码", - dataIndex: "ruleCode", - key: "ruleCode", + dataIndex: "rule_code", + key: "rule_code", align: "center", }, { title: "车辆类型", - dataIndex: "vehicleType", - key: "vehicleType", + dataIndex: "vehicle_type", + key: "vehicle_type", align: "center", }, { title: "车辆组", - dataIndex: "vehicleGroup", - key: "vehicleGroup", - align: "center", - }, - { - title: "同步状态", - dataIndex: "syncStatus", - key: "syncStatus", + dataIndex: "group_ids", + key: "group_ids", align: "center", }, { title: "描述", - dataIndex: "description", - key: "description", + dataIndex: "group_ids", + key: "group_ids", align: "center", }, { title: "更新时间", - dataIndex: "updateTime", - key: "updateTime", + dataIndex: "update_time", + key: "update_time", align: "center", }, { @@ -59,14 +62,36 @@ function BillingRules() { dataIndex: "action", key: "action", align: "center", - render: () => { + render: (_, record) => { return ( -

编辑

-

删除

+ + } > @@ -78,23 +103,136 @@ function BillingRules() { ]; const [modalData, setModalData] = useState({ visible: false, + status: "add", + }); + //计费规则下拉列表 + const [chargeRuleList, setChargeRuleList] = useState([]); + //列表数据 + const [tableData, setTableData] = useState([]); + //临时车辆组 + const [tempGroup, setTempGroup] = useState([]); + //总数据 + const [total, setTotal] = useState(0); + //页码数据 + const [pageData, setPageData] = useState({ + pn: 1, + page_size: 10, + }); + //删除弹窗 + const [delModal, setDelModal] = useState({ + visible: false, + id: "", }); const addRule = () => { setModalData({ ...modalData, visible: true }); }; + + //搜索方法 + const search = () => { + const params = form.getFieldsValue(); + ajax + .getRoadBillRuleList({ road_id: id, ...pageData, ...params }) + .then((res) => { + if (res.status === 20000) { + setTableData(res.data.list); + setTotal(res.data.total); + } + }); + }; + + //获取计费规则下拉列表 + const getChargeRuleList = () => { + ajax.getRoadBillRule().then((res) => { + if (res.status === 20000) { + setChargeRuleList(res.data); + } + }); + }; + //获取临时车辆组 + const getTempGroup = () => { + ajax.getRoadTemporaryGroup({ road_id: id }).then((res) => { + if (res.status === 20000) { + setTempGroup(res.data); + } + }); + }; + + //添加计费规则接口 + const addRoadBillRule = (params) => { + ajax.addRoadBillRule(params).then((res) => { + if (res.status === 20000) { + message.success("添加成功"); + successSubmit(); + } else { + message.error(res.message); + } + }); + }; + + //编辑计费规则接口 + const editRoadBullRule = (params) => { + ajax.editRoadBullRule(params).then((res) => { + if (res.status === 20000) { + message.success("编辑成功"); + successSubmit(); + } else { + message.error(res.message); + } + }); + }; + + //提交接口 + const submit = () => { + editform + .validateFields() + .then((values) => { + if (modalData.status === "add") { + addRoadBillRule({ ...values, road_id: id, ...pageData }); + } else if (modalData.status === "edit") { + editRoadBullRule({ ...values, road_id: id, ...pageData }); + } + }) + .catch((err) => console.error(err)); + }; + + //添加成功接口 + const successSubmit = () => { + setModalData({ ...modalData, visible: false }); + editform.resetFields(); + setPageData({ pn: 1, page_size: 10 }); + }; + + //删除接口 + const delRoadBillRule = (id) => { + ajax.delRoadBillRule({ id }).then((res) => { + if (res.status === 20000) { + message.success("删除成功"); + setDelModal({ ...delModal, visible: false }); + setPageData({ pn: 1, page_size: 10 }); + } + }); + }; + + useEffect(() => { + getChargeRuleList(); + getTempGroup(); + }, []); + useEffect(() => { + search(); + }, [pageData]); return (
-
+ - - - - @@ -109,25 +247,67 @@ function BillingRules() {
-
+ { + setPageData({ ...pageData, pn: page, page_size: pageSize }); + }, + onShowSizeChange: (current, size) => { + setPageData({ ...pageData, pn: current, page_size: size }); + }, + }} + >
setModalData({ ...modalData, visible: false })} + onCancel={() => { + setModalData({ ...modalData, visible: false }); + editform.resetFields(); + }} + onOk={submit} > -
- - - - - -
+ {/* 删除弹窗 */} + { + setDelModal({ ...delModal, visible: false }); + }} + onOk={() => delRoadBillRule(delModal.id)} + > + 确定要删除这条数据吗? +
); } diff --git a/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/ConfigParking/TollCollectorManagement.jsx b/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/ConfigParking/TollCollectorManagement.jsx index d943095..0bc7499 100644 --- a/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/ConfigParking/TollCollectorManagement.jsx +++ b/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/ConfigParking/TollCollectorManagement.jsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import React, { useState, useEffect } from "react"; import { Input, Form, @@ -9,8 +9,10 @@ import { Modal, Select, Popover, + Transfer, } from "antd"; -function TollCollectorManagement() { +import ajax from "@/services"; +function TollCollectorManagement({ id: road_id }) { const columns = [ { title: "收费员姓名", @@ -20,14 +22,14 @@ function TollCollectorManagement() { }, { title: "收费员编号", - dataIndex: "id", - key: "id", + dataIndex: "user_code", + key: "user_code", align: "center", }, { title: "收费员账号", - dataIndex: "account", - key: "account", + dataIndex: "user_account", + key: "user_account", align: "center", }, { @@ -41,14 +43,21 @@ function TollCollectorManagement() { dataIndex: "action", key: "action", align: "center", - render: () => { + render: (_, record) => { return ( -

编辑

-

删除

+ } > @@ -58,36 +67,116 @@ function TollCollectorManagement() { }, }, ]; + const [form] = Form.useForm(); const [modalData, setModalData] = useState({ visible: false, }); + const [pageData, setPageData] = useState({ + pn: 1, + page_size: 10, + }); + + const [transferSouceData, setTransferSouceData] = useState([]); + const [selectedKeys, setSelectedKeys] = useState([]); + const [targetKeys, setTargetKeys] = useState([]); + const [collectorList, setCollectorList] = useState([]); + const [total, setTotal] = useState(0); const addCollector = () => { setModalData({ ...modalData, visible: true }); }; + //获取收费员列表接口 + const getOutSegmentUserList = () => { + const params = { + ...form.getFieldsValue(), + road_id, + ...pageData, + }; + ajax.getOutSegmentUserList(params).then((res) => { + if (res.status === 20000) { + setCollectorList(res.data.list); + setTotal(res.data.total); + } + }); + }; + + //穿梭框 + const transferChange = (nextTargetKeys) => { + setTargetKeys(nextTargetKeys); + }; + const onSelectChange = (sourceSelectedKeys, targetSelectedKeys) => { + setSelectedKeys([...sourceSelectedKeys, ...targetSelectedKeys]); + }; + //获取穿梭框数据 + const getTransferData = () => { + ajax.getOperatorMbUser({ road_id }).then((res) => { + if (res.status === 20000) { + const allData = [...res.data.selected, ...res.data.unselected].map( + (item) => { + item.key = item.value; + return item; + } + ); + const selected = res.data.selected.map((item) => item.value); + setTargetKeys(selected); + setTransferSouceData(allData); + } + }); + }; + + //添加收费员接口 + const addOutSegmentUser = () => { + ajax.addRoadUser({ road_id, user_ids: targetKeys }).then((res) => { + if (res.status === 20000) { + setModalData({ ...modalData, visible: false }); + getOutSegmentUserList(); + } + }); + }; + //删除收费员接口 + const deleteOutSegmentUser = (id) => { + ajax.deleteRoadUser({ id }).then((res) => { + if (res.status === 20000) { + setModalData({ ...modalData, visible: false }); + getOutSegmentUserList(); + } + }); + }; + //查询接口 + const search = () => { + setPageData({ ...pageData, pn: 1 }); + }; + useEffect(() => { + getTransferData(); + }, []); + useEffect(() => { + getOutSegmentUserList(); + }, [pageData]); return (
-
+ - + - + - + - - - - - + item.label} + />
); diff --git a/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/ConfigParking/index.jsx b/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/ConfigParking/index.jsx index e473144..98dca93 100644 --- a/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/ConfigParking/index.jsx +++ b/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/ConfigParking/index.jsx @@ -60,7 +60,7 @@ function ConfigParking(props) { { label: "收费员管理", key: "9", - children: , + children: , }, { label: "欠费立场", diff --git a/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/QRModal.jsx b/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/QRModal.jsx new file mode 100644 index 0000000..62f84c9 --- /dev/null +++ b/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/QRModal.jsx @@ -0,0 +1,207 @@ +import React, { useEffect, useState } from "react"; +import { Button, Modal, Table, Descriptions, message } from "antd"; +import ajax from "@/services"; +import copy from "copy-to-clipboard"; +function QRModal(props) { + const { + visible = false, + close = () => {}, + itemData = {}, + id: road_id, + } = props; + console.log(road_id); + const columns_12 = [ + { + title: "停车场", + dataIndex: "road_name", + key: "road_name", + }, + { + title: "通道名称", + dataIndex: "channel_name", + key: "channel_name", + }, + { + title: "链接地址", + dataIndex: "link", + key: "link", + }, + { + title: "操作", + dataIndex: "action", + key: "action", + render: (_, record) => { + return ( +
+ + +
+ ); + }, + }, + ]; + const columns_3 = [ + { + title: "停车场", + dataIndex: "road_name", + key: "road_name", + }, + { + title: "链接地址", + dataIndex: "link", + key: "link", + }, + { + title: "操作", + dataIndex: "action", + key: "action", + align: "center", + width: 200, + render: (_, record) => { + return ( +
+ + +
+ ); + }, + }, + ]; + const [qrcode1, setQrcode1] = useState([]); + const [qrcode2, setQrcode2] = useState([]); + const [qrcode3, setQrcode3] = useState([]); + function getData() { + ajax.getRoadQRcodeInfo({ road_id }).then((res) => { + if (res.status === 20000) { + setQrcode1(res.data.qrcode_1); + setQrcode2(res.data.qrcode_2); + setQrcode3(res.data.qrcode_3); + } + }); + } + //复制 + const getLink = (record) => { + if (copy(record.link)) { + message.success("复制成功"); + } else message.error("复制失败,请手动复制"); + }; + //获取二维码图片 + const getPicById = (id) => { + ajax.getRoadQRcodePic({ id }).then((res) => { + if (res.status === 20000) { + const name = res.data.url + .split("/") + [res.data.url.split("/").length - 1].split("?")[0]; + downloadImage(res.data.url, name); + } + }); + }; + //批量获取二维码 + const getNmae = (url) => { + if (!url) return false; + else if (url === "") return false; + return url.split("/")[url.split("/").length - 1].split("?")[0]; + }; + const getPicByIds = (road_id) => { + ajax.getRoadQRcodePicBatch({ road_id }).then((res) => { + if (res.status === 20000) { + const { url1, url2, url3 } = res.data; + const name1 = getNmae(url1); + const name2 = getNmae(url2); + const name3 = getNmae(url3); + if (name1) { + downloadImage(url1, name1); + } + if (name2) { + downloadImage(url2, name2); + } + if (name3) { + downloadImage(url3, name3); + } + } + }); + }; + //下载图片 + const downloadImage = (url, filename) => { + fetch(url) + .then((response) => response.blob()) + .then((blob) => { + const url = URL.createObjectURL(blob); + const a = document.createElement("a"); + a.href = url; + a.download = filename; + a.click(); + }) + .catch((err) => console.log(err)); + }; + useEffect(() => { + getData(); + }, []); + return ( + +
+

{itemData.road_name}

+
+ +
+
+
+ + + + + + + +
+ + + + + +
+ + + + + ); +} + +export default QRModal; diff --git a/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/index.scss b/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/index.scss index ad84de6..50bbfaf 100644 --- a/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/index.scss +++ b/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/index.scss @@ -33,6 +33,18 @@ $color-primary: var(--color-primary); color: var(--color-search-list-item-value); } } +.QR-header { + display: flex; + justify-content: space-between; +} +.buttons { + display: flex; + justify-content: space-between; + align-items: center; + button { + margin-left: 10px; + } +} // .ant-tabs-tabpane-hidden { // display: none; diff --git a/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/loadable.jsx b/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/loadable.jsx index aa28462..f988dc0 100644 --- a/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/loadable.jsx +++ b/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/loadable.jsx @@ -29,12 +29,14 @@ import Detail from "./Detail"; import AddParking from "./AddParking"; import "./index.scss"; import ConfigParking from "./ConfigParking"; +import QRModal from "./QRModal"; // import errorImg from "@/assets/images/layout/error.png" // import { useLocation } from "react-router-dom"; function OutSegment() { const [searchForm] = Form.useForm(); const [commentForm] = Form.useForm(); + const [berthForm] = Form.useForm(); const inputParams = { maxLength: 50, showCount: true, @@ -145,12 +147,22 @@ function OutSegment() {
{ - setBerthNumModal({ ...berthNumModal, visible: true }); + setBerthNumModal({ + ...berthNumModal, + visible: true, + id: record.id, + }); }} > 修改剩余泊位 @@ -218,6 +230,13 @@ function OutSegment() { const [berthNumModal, setBerthNumModal] = useState({ visible: false, close: () => setBerthNumModal({ ...berthNumModal, visible: false }), + id: "", + }); + //二维码 + const [qrModal, setQrModal] = useState({ + visible: false, + close: () => setQrModal({ ...qrModal, visible: false }), + record: {}, }); const [operationName, setOperationName] = useState([]); @@ -291,7 +310,17 @@ function OutSegment() { } }); }; - + //编辑剩余泊位 + const editBerthNumber = (id, berth_number) => { + ajax.editBerthNumber({ id, berth_number }).then((res) => { + if (res.status === 20000) { + message.success(res.message); + } else { + message.error(res.message); + } + setBerthNumModal({ ...berthNumModal, visible: false }); + }); + }; //评价批量配置 const configAppraise = () => { let values = commentForm.getFieldsValue(); @@ -478,6 +507,12 @@ function OutSegment() { itemData={configModal.record} bodyStyle="modal-style" /> + { + editBerthNumber( + berthNumModal.id, + berthForm.getFieldValue("berth_number") + ); + }} > -
- + + diff --git a/src/services/OutRoadMgm/ChargeRulesMgm.js b/src/services/OutRoadMgm/ChargeRulesMgm.js new file mode 100644 index 0000000..6c6e215 --- /dev/null +++ b/src/services/OutRoadMgm/ChargeRulesMgm.js @@ -0,0 +1,48 @@ +import ajax from "@/config/ajax"; +///api/orp/bill/get_rule_list 计费规则列表查询展示 +const getChargeRuleList = (params) => { + return ajax({ + url: "/api/orp/bill/get_rule_list", + type: "post", + data: params, + }); +}; +///api/orp/bill/del_rule 删除计费规则 +const delChargeRule = (params) => { + return ajax({ + url: "/api/orp/bill/del_rule", + type: "get", + data: params, + }); +}; +///api/orp/bill/get_rule_info 获取详情 +const getChargeRuleInfo = (params) => { + return ajax({ + url: "/api/orp/bill/get_rule_info", + type: "get", + data: params, + }); +}; +///api/orp/bill/add_rule 新增计费规则 +const addChargeRule = (params) => { + return ajax({ + url: "/api/orp/bill/add_rule", + type: "post", + data: params, + }); +}; +///api/orp/bill/edit_rule 编辑计费规则 +const editChargeRule = (params) => { + return ajax({ + url: "/api/orp/bill/edit_rule", + type: "post", + data: params, + }); +}; +export default { + getChargeRuleList, + delChargeRule, + getChargeRuleInfo, + addChargeRule, + editChargeRule, +}; diff --git a/src/services/OutRoadMgm/OutParkingRecordInquiry.js b/src/services/OutRoadMgm/OutParkingRecordInquiry.js index d685e3d..fef3d38 100644 --- a/src/services/OutRoadMgm/OutParkingRecordInquiry.js +++ b/src/services/OutRoadMgm/OutParkingRecordInquiry.js @@ -1,6 +1,6 @@ import ajax from "@/config/ajax"; ///api/orp/business/get_record_list 停车记录查询/欠费订单-列表 -const getRecordList = (params) => { +const getOutParkingRecordList = (params) => { return ajax({ url: "/api/orp/business/get_record_list ", type: "post", @@ -8,4 +8,25 @@ const getRecordList = (params) => { }); }; -export default { getRecordList }; +///api/orp/business/get_record_payment 停车记录查询-支付列表 +const getOutParkingReacordPayment = (params) => { + return ajax({ + url: "/api/orp/business/get_record_payment", + type: "get", + data: params, + }); +}; + +///api/orp/business/get_record_refund 停车记录查询-退款列表 +const getOutParkingReacordRefund = (params) => { + return ajax({ + url: "/api/orp/business/get_record_refund", + type: "get", + data: params, + }); +}; +export default { + getOutParkingRecordList, + getOutParkingReacordPayment, + getOutParkingReacordRefund, +}; diff --git a/src/services/OutRoadMgm/OutPayOrders.js b/src/services/OutRoadMgm/OutPayOrders.js new file mode 100644 index 0000000..f5c1363 --- /dev/null +++ b/src/services/OutRoadMgm/OutPayOrders.js @@ -0,0 +1,12 @@ +import ajax from "@/config/ajax"; +// /api/orp/business/get_payment_list 支付订单-列表 +const getOutPayOrdersList = (params) => { + return ajax({ + url: "/api/orp/business/get_payment_list", + type: "post", + data: params, + }); +}; +export default { + getOutPayOrdersList, +}; diff --git a/src/services/OutRoadMgm/OutSegment.js b/src/services/OutRoadMgm/OutSegment.js index 528c4fb..3e74cd6 100644 --- a/src/services/OutRoadMgm/OutSegment.js +++ b/src/services/OutRoadMgm/OutSegment.js @@ -266,6 +266,123 @@ const delLED = (params) => { data: params, }); }; + +///api/orp/road/user_list 路段配置页面收费员列表 +const getOutSegmentUserList = (params) => { + return ajax({ + url: "/api/orp/road/user_list", + type: "post", + data: params, + }); +}; + +///api/orp/road/get_operator_mb_user 获取路段对应商户的MB收费员 左右侧筛选 +const getOperatorMbUser = (params) => { + return ajax({ + url: "/api/orp/road/get_operator_mb_user", + type: "post", + data: params, + }); +}; +///api/orp/road/add_user 添加路段收费员 +const addRoadUser = (params) => { + return ajax({ + url: "/api/orp/road/add_user", + type: "post", + data: params, + }); +}; +///api/orp/road/del_road_user 删除路段收费员 +const deleteRoadUser = (params) => { + return ajax({ + url: "/api/orp/road/del_road_user", + type: "post", + data: params, + }); +}; +///api/orp/road/get_road_qrcode_info 路段二维码相关数据 +const getRoadQRcodeInfo = (params) => { + return ajax({ + url: "/api/orp/road/get_road_qrcode_info", + type: "post", + data: params, + }); +}; +///api/orp/road/get_road_qrcode_info_1694677215313 获取路段二维码图片 +const getRoadQRcodePic = (params) => { + return ajax({ + url: "/api/orp/road/get_road_qrcode_info_1694677215313", + type: "post", + data: params, + }); +}; +///api/orp/road/batch_get_qrcode 批量获取路段二维码图片 +const getRoadQRcodePicBatch = (params) => { + return ajax({ + url: "/api/orp/road/batch_get_qrcode", + type: "post", + data: params, + }); +}; +///api/orp/road/edit_berth_number 编辑剩余泊位 +const editBerthNumber = (params) => { + return ajax({ + url: "/api/orp/road/edit_berth_number", + type: "post", + data: params, + }); +}; +///api/orp/bill/get_road_bill_rule 获取路段对应计费规则下拉 +const getRoadBillRule = (params) => { + return ajax({ + url: "/api/orp/bill/get_road_bill_rule", + type: "post", + data: params, + }); +}; +///api/orp/road/raod_bill_rule_list 路段对应计费规则列表 +const getRoadBillRuleList = (params) => { + return ajax({ + url: "/api/orp/road/raod_bill_rule_list", + type: "post", + data: params, + }); +}; +///api/orp/road/get_road_temporary_group 获取路段临时车辆组 +const getRoadTemporaryGroup = (params) => { + return ajax({ + url: "/api/orp/road/get_road_temporary_group", + type: "post", + data: params, + }); +}; + +///api/orp/road/add_road_bill_rule 添加路段对应计费规则 +const addRoadBillRule = (params) => { + return ajax({ + url: "/api/orp/road/add_road_bill_rule", + type: "post", + data: params, + }); +}; + +//api/orp/road/edit_road_bill_rule 编辑路段对应计费规则 +const editRoadBullRule = (params) => { + return ajax({ + url: "/api/orp/road/edit_road_bill_rule", + type: "post", + data: params, + }); +}; + +///api/orp/road/del_road_bill_rule 删除路段对应计费规则 +const delRoadBillRule = (params) => { + return ajax({ + url: "/api/orp/road/del_road_bill_rule", + type: "post", + data: params, + }); +}; export default { getOrpRoadList, getOrpRoadInfo, @@ -299,4 +416,18 @@ export default { editLED, addLED, delLED, + getOutSegmentUserList, + getOperatorMbUser, + addRoadUser, + deleteRoadUser, + getRoadQRcodeInfo, + getRoadQRcodePicBatch, + getRoadQRcodePic, + editBerthNumber, + getRoadBillRule, + getRoadBillRuleList, + getRoadTemporaryGroup, + addRoadBillRule, + editRoadBullRule, + delRoadBillRule, }; diff --git a/src/services/OutRoadMgm/index.js b/src/services/OutRoadMgm/index.js index 7c1397d..b988cb0 100644 --- a/src/services/OutRoadMgm/index.js +++ b/src/services/OutRoadMgm/index.js @@ -4,11 +4,15 @@ import OutParkingRecordInquiry from "./OutParkingRecordInquiry"; import OutNVRMgm from "./OutNVRMgm"; import LiftUpPoleRecord from "./LiftUpPoleRecord"; import ZombieCarCleanRecord from "./ZombieCarCleanRecord"; +import OutPayOrders from "./OutPayOrders"; +import ChargeRulesMgm from "./ChargeRulesMgm"; export default { ...OutSegment, ...ZombieCarMgm, ...OutParkingRecordInquiry, ...OutNVRMgm, ...LiftUpPoleRecord, - ...ZombieCarCleanRecord + ...ZombieCarCleanRecord, + ...OutPayOrders, + ...ChargeRulesMgm, };