Browse Source

Merge branch 'develop' of http://120.27.195.166:3000/chenglb/PMS_Frontend_v1.0.0 into develop

tags/PMS_V1.0.0_Alpha5
zhugy 1 year ago
parent
commit
fcce6ea210
  1. 12
      src/assets/css/base.scss
  2. 34
      src/config/ajax.js
  3. 4
      src/pages/FinancialMgm/FinancialReport/BookReport/loadable.jsx
  4. 26
      src/pages/FinancialMgm/FinancialReport/OperationReport/loadable.jsx
  5. 27
      src/pages/FinancialMgm/FinancialReport/ParkingIncomeReport/loadable.jsx
  6. 25
      src/pages/FinancialMgm/FinancialReport/PaySummaryReport/loadable.jsx
  7. 1
      src/pages/FinancialMgm/OrderInquiry/ParkingOrderInquiry/index.jsx
  8. 25
      src/pages/FinancialMgm/PayRecordTotal/loadable.jsx
  9. 35
      src/pages/FinancialMgm/SettleBill/PayRepeat/loadable.jsx
  10. 12
      src/pages/InRoadMgm/EquipmentOpe/faultReport/loadable.jsx
  11. 6
      src/pages/InRoadMgm/RecordInquiry/ArrearsEtcInquiries/index.jsx
  12. 5
      src/pages/InRoadMgm/RecordInquiry/ArrearsEtcInquiries/index.scss
  13. 181
      src/pages/InRoadMgm/RecordInquiry/ArrearsEtcInquiries/loadable.jsx
  14. 2
      src/pages/InRoadMgm/RecordInquiry/index.jsx
  15. 45
      src/pages/Nav/index.jsx
  16. 37
      src/pages/Nav/index.scss
  17. 28
      src/pages/OperationCenter/CustomerServieMgm/CallbackSuggestion/loadable.jsx
  18. 5
      src/pages/OperationCenter/CustomerServieMgm/ComplainManage/index.scss
  19. 26
      src/pages/OperationCenter/CustomerServieMgm/ComplainManage/loadable.jsx
  20. 30
      src/pages/OperationCenter/OperationSales/CouponMgm/WriteOffDetail/loadable.jsx
  21. 33
      src/pages/OperationCenter/OperationSales/CouponMgm/WriteOffStat/loadable.jsx
  22. 25
      src/pages/OperationCenter/OtherBusiness/ParkingCard/ParkingCardOrder/loadable.jsx
  23. 28
      src/pages/OperationCenter/OtherBusiness/Staggered/StaggeredOrder/loadable.jsx
  24. 28
      src/pages/OperationCenter/OtherBusiness/Staggered/StaggeredStat/loadable.jsx
  25. 1
      src/pages/OutRoadMgm/OutBusinessRecord/OutParkingArrearsOrders/loadable.jsx
  26. 1
      src/pages/OutRoadMgm/OutBusinessRecord/OutPayOrders/loadable.jsx
  27. 4
      src/pages/OutRoadMgm/OutSegmentMgm/ChargeRulesMgm/AddModal.jsx
  28. 2
      src/pages/OutRoadMgm/OutSegmentMgm/ChargeRulesMgm/Detail.jsx
  29. 1
      src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/index.scss
  30. 24
      src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/loadable.jsx
  31. 1
      src/router/index.jsx
  32. 6
      src/router/router.config.js
  33. 2
      src/services/OperationCenter/OperationSales/index.js
  34. 1
      src/services/OutRoadMgm/OutSegment.js
  35. 18
      src/services/recordInquiry.js

12
src/assets/css/base.scss

@ -758,3 +758,15 @@ color:var(--color-text) !important;
margin-top: 0 !important;
}
}
.yisa-custom-scrollbar{
&::-webkit-scrollbar{
width: 10px;
background-color: #3e4557;
cursor: pointer;
}
&::-webkit-scrollbar-thumb{
background-color: #9da2ab;
border-radius: 5px;
}
}

34
src/config/ajax.js

@ -7,6 +7,10 @@ import qs from 'qs'
axios.defaults.baseURL = baseApi
axios.defaults.timeout = 5 * 60 * 1000
axios.defaults.headers.common['Authorization'] = getToken()
window.queryRecord = {} // 临时方案, 对于查询比较慢的接口, 先统一在这里处理, todo, 后期每个接口再加loading,
const longtimeInterfaces = [ // 对于一些查询比较慢的接口, 先定义一个数组,
"/api/orp/road/road_list"
]
// axios.defaults.headers.common['Authorization'] = `Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2OTk2MzAwNzUsInN1YiI6Inlpc2Ffand0IiwibmJmIjoxNjk5NjI2NDc1LCJhdWQiOiJ5aXNhX3VzZXIiLCJpYXQiOjE2OTk2MjY0NzUsImp0aSI6IjlhYzg3MzcxNGUyYWUyNjQyOWNlMTFjMDliZjZiMTFiIiwiaXNzIjoieWlzYV9pc3MiLCJzdGF0dXMiOjEsImRhdGEiOnsidXNlcl91aWQiOjE4MTkwOTEwNDA1MzQ2MTU5NjksImlkX2NhcmQiOm51bGwsInJvbGVfaWQiOjE3NjcyMTAwNDQ0NDE2MTQ0NzksIm5hbWUiOiLotoXnuqfnrqHnkIblkZgiLCJkZXBhcnRtZW50X25hbWUiOiLopb_mtbflsrjlhaznlKjkuovkuJrpm4blm6IiLCJ1c2VyX25hbWUiOiJ4dXF1biIsInRlbCI6IjE4OTc2MzMwMzIwIiwiYXV0aCI6IjE1MiwxNTMsMTU0LDE1NSwxNTYsMTU3LDE1OCwxNTksMTYwLDE2MSwxNjIsMTYzLDE2NCwxNjUsMTY2LDE2NywxNjgsMTY5LDE3MCwxNzEsMTcyLDE3MywxNzQsMTc1LDE3NiwxNzcsMTc4LDE3OSwxODAsMTgxLDE4MiwxODMsMTUyLDEyMSwxMzQsMTM1LDEzOSwxNDMsMTQ5LDEzNiwxMzcsMTM4LDE0MCwxNDEsMTQyLDE0NCwxNDUsMTUwLDE1MSwxMjAsMTIyLDEyMywxMjQsMTI1LDExMiwxMTMsMTE0LDExNSwxNDYsMTQ3LDE0OCw4OCw4OSw5MCw5MSwxMDMsMTE4LDEyNiwxMzAsOTcsMTE2LDExNyw5Miw5Myw5NCw5NSw5NiwxMDQsMTA1LDExOSwxMjcsMTI4LDEyOSwxMzEsMTMyLDEzMyw5OCw5OSwxMDAsMTAxLDEwMiwxMDYsMTA3LDEwOCwxMDksMTEwLDExMSwxLDIsMyw2LDcsOCw5LDEwLDQsMTMsMTQsMTUsMTYsMTcsMTgsMTksMjAsMTEsMTIsMjEsMjIsMjcsMjgsMzMsMzYsMzcsMzgsMzksNDAsNDEsNDIsNDMsNDQsNDUsNDYsNDksNTAsNTEsNTIsNTMsNSw1Nyw1OCw1NCw1NSw1Niw3MSw3Miw1OSw2MCw2MSw2Miw2OSw3MCw3Myw3NCw3NSw3Niw3Nyw2NSw2Niw2Nyw2OCw2Myw2NCwyMywyNCwyNSwyNiwzNCwzNSwyOSwzMCwzMSwzMiw0Nyw0OCw3OCw3OSw4MCw4MSw4Miw4Myw4NCw4NSw4Niw4NyIsInBpZCI6MCwiaWRfbmFtZSI6IuiuuOe-pCJ9fQ.mYH-k_uKUDxysOiytBSRzOj4hWjKSxkTBVEpy4FnLe8`
/**
* @description 请求全局拦截
@ -37,6 +41,27 @@ function ajax(ajaxData = {}) {
if (ajaxData.transFormData) {
ajaxData.data = { ...ajaxData.data, transFormData: true }
}
// 新增逻辑
if(ajaxData.data?.guard){
if( window.queryRecord[ajaxData.url]?.ing ){
message.destroy()
if(ajaxData.data.pn && ajaxData.data.pn != window.queryRecord[ajaxData.url].pn){ // 约定pn 作为分页器 页码的唯一变量名
message.error('建议不要快速切换')
}else{
message.error('请勿重复操作')
// 返回一个promise防止语法错误
return new Promise((resolve, reject)=>{
new Error(1)
})
}
}else{
if(ajaxData.data.pn){
window.queryRecord[ajaxData.url] = {ing: true, pn: ajaxData.data.pn}
}else{
window.queryRecord[ajaxData.url] = {ing: true}
}
}
}
return new Promise((resolve, reject) => {
if (!utils.isObject(ajaxData)) {
return reject(new Error('ajax请求配置错误'))
@ -44,7 +69,6 @@ function ajax(ajaxData = {}) {
let method = ajaxData.type || 'GET'
method = method.toLowerCase()
let url = ajaxData.mock && isDevelopment ? `/mock` + ajaxData.url : ajaxData.url
// let data = method === 'get' ? { params: ajaxData.data } : ajaxData.data
let data =
method === "get" || method === 'delete'
@ -53,17 +77,23 @@ function ajax(ajaxData = {}) {
axios[method](url, data)
.then(res => {
if(res?.config?.data && JSON.parse(res.config.data)?.guard){
window.queryRecord[res.config.url].ing = false
}
if (res.data.status === 30009 || res.data.status === 40006 || res.data.status === 40005 ) {
removeToken()
window.location.replace(sysConfig.logout_url)
// window.location.replace("/#/login")
message.error(res.data.message)
reject(res)
} else {
} else {
resolve(res.data)
}
})
.catch(err => {
if(err?.config?.data && JSON.parse(err.config.data)?.guard){
window.queryRecord[err.config.url].ing = false
}
let response = err.response
if (response) {
switch (response.status) {

4
src/pages/FinancialMgm/FinancialReport/BookReport/loadable.jsx

@ -740,14 +740,14 @@ function BookReport() {
<p>
共查询到<span> {Data?.total || 0}</span>条数据
</p>
<span
{/* <span
className={"sear_ser"}
onClick={() => {
// Data?.total && setFormDatas({ ...FormData });
}}
>
导出
</span>
</span> */}
</div>
<ResultFlow
hasLoad={true}

26
src/pages/FinancialMgm/FinancialReport/OperationReport/loadable.jsx

@ -12,6 +12,7 @@ import {
Checkbox,
Form,
DatePicker,
Button
} from "antd";
import { dictionary, utils } from "@/config/common";
import moment from "moment";
@ -24,7 +25,7 @@ import {
} from "@ant-design/icons";
import ajax from "@/services";
// import { useSessionStorageState, useUpdateEffect, useSize, useUpdate } from 'ahooks';
import { ResultFlow } from "@/components";
import { ResultFlow, ExportBtnNew } from "@/components";
import "./index.scss";
import Finddje from "@/assets/images/fin_ddjehz.png";
import Finxgh from "@/assets/images/fin_xghdd.png";
@ -37,6 +38,7 @@ const { RangePicker } = DatePicker;
const { TextArea } = Input;
function OperationReport() {
const [form] = Form.useForm();
const exportRef = useRef(null)
//-
const formdata = {
operator_id: "0", //
@ -593,9 +595,11 @@ function OperationReport() {
document.body.removeChild(link);
};
//
const ReportPaySummaryReport = () => {
const ReportPaySummaryReport = (start, end) => {
ajax.ElectInvoice.getOperationReport({
...FormDatas,
start: start,
end: end,
area: FormDatas?.area?.length
? FormDatas?.area[FormDatas.area.length - 1]
: "",
@ -604,8 +608,10 @@ function OperationReport() {
(res) => {
if (parseInt(res?.status) === 20000) {
Daownload(res?.data?.url);
exportRef.current.handleCancel()
} else {
message.error(res?.message);
exportRef.current.handleError()
}
},
(err) => {
@ -1014,7 +1020,7 @@ function OperationReport() {
<p>
共查询到<span> {Data?.total || 0}</span>条数据
</p>
<span
{/* <span
className={"sear_ser"}
onClick={() => {
Data?.total && ReportPaySummaryReport();
@ -1022,7 +1028,19 @@ function OperationReport() {
}}
>
导出
</span>
</span> */}
<ExportBtnNew
children={<Button className="export-btn" size='medium' type="primary">导出</Button>}
modalType="noImg"
ref={exportRef}
totalRecords={Data?.total}
imgno={false}
postdata={{
formData: FormData
}}
isTableModule={true}
onOk={ReportPaySummaryReport}
/>
</div>
<ResultFlow
hasLoad={true}

27
src/pages/FinancialMgm/FinancialReport/ParkingIncomeReport/loadable.jsx

@ -13,6 +13,7 @@ import {
Form,
Cascader,
DatePicker,
Button
} from "antd";
import { dictionary, utils } from "@/config/common";
import moment from "moment";
@ -25,7 +26,7 @@ import {
} from "@ant-design/icons";
import ajax from "@/services";
// import { useSessionStorageState, useUpdateEffect, useSize, useUpdate } from 'ahooks';
import { ResultFlow } from "@/components";
import { ResultFlow, ExportBtnNew } from "@/components";
import "./index.scss";
import FinSr from "@/assets/images/fin_sr.png";
import Finyh from "@/assets/images/fin_yh.png";
@ -53,6 +54,8 @@ function ParkingIncomeReport() {
page_size: dictionary?.pageSizeOptions1[0],
};
const exportRef = useRef(null)
//
const tabt = [
{
@ -535,9 +538,11 @@ function ParkingIncomeReport() {
document.body.removeChild(link);
};
//
const ReportPaySummaryReport = () => {
const ReportPaySummaryReport = (start, end) => {
ajax.ElectInvoice.getParkingIncomeReport({
...FormDatas,
start: start,
end: end,
area: FormDatas?.area?.length
? FormDatas?.area[FormDatas.area.length - 1]
: "",
@ -546,8 +551,10 @@ function ParkingIncomeReport() {
(res) => {
if (parseInt(res?.status) === 20000) {
Daownload(res?.data?.url);
exportRef.current.handleCancel()
} else {
message.error(res?.message);
exportRef.current.handleError()
}
},
(err) => {
@ -930,7 +937,7 @@ function ParkingIncomeReport() {
<p>
共查询到<span> {Data?.total || 0}</span>条数据
</p>
<span
{/* <span
className={"sear_ser"}
onClick={() => {
Data?.total && ReportPaySummaryReport();
@ -938,7 +945,19 @@ function ParkingIncomeReport() {
}}
>
导出
</span>
</span> */}
<ExportBtnNew
children={<Button className="export-btn" size='medium' type="primary">导出</Button>}
modalType="noImg"
ref={exportRef}
totalRecords={Data?.total}
imgno={false}
postdata={{
formData: FormData
}}
isTableModule={true}
onOk={ReportPaySummaryReport}
/>
</div>
<ResultFlow
hasLoad={true}

25
src/pages/FinancialMgm/FinancialReport/PaySummaryReport/loadable.jsx

@ -22,7 +22,7 @@ import {
} from "@ant-design/icons";
import ajax from "@/services";
// import { useSessionStorageState, useUpdateEffect, useSize, useUpdate } from 'ahooks';
import { ResultFlow } from "@/components";
import { ResultFlow, ExportBtnNew } from "@/components";
import "./index.scss";
import FinSr from "@/assets/images/fin_sr.png";
import Fintchz from "@/assets/images/fin_tchz.png";
@ -171,6 +171,7 @@ function PaySummaryReport() {
},
];
let form_data = sessionStorage.getItem("FormData_PaySummaryReport");
const exportRef = useRef(null)
//
const [FormData, setFormData] = useState(
form_data ? JSON.parse(form_data) : formdata
@ -373,17 +374,21 @@ function PaySummaryReport() {
);
};
//
const ReportPaySummaryReport = () => {
const ReportPaySummaryReport = (start, end) => {
ajax.ElectInvoice.ReportPaySummaryReport({
...FormDatas,
start: start,
end: end,
...DateFormt(FormDatas.type),
type: TimeChange().str,
}).then(
(res) => {
if (parseInt(res?.status) === 20000) {
Daownload(res?.data?.url);
exportRef.current.handleCancel()
} else {
message.error(res?.message);
exportRef.current.handleError()
}
},
(err) => {
@ -687,7 +692,7 @@ function PaySummaryReport() {
<p>
共查询到<span> {Data?.total || 0}</span>条数据
</p>
<span
{/* <span
className={"sear_ser"}
onClick={() => {
Data?.total && ReportPaySummaryReport();
@ -695,7 +700,19 @@ function PaySummaryReport() {
}}
>
导出
</span>
</span> */}
<ExportBtnNew
children={<Button className="export-btn" size='medium' type="primary">导出</Button>}
modalType="noImg"
ref={exportRef}
totalRecords={Data?.total}
imgno={false}
postdata={{
formData: FormData
}}
isTableModule={true}
onOk={ReportPaySummaryReport}
/>
</div>
<ResultFlow
hasLoad={true}

1
src/pages/FinancialMgm/OrderInquiry/ParkingOrderInquiry/index.jsx

@ -780,6 +780,7 @@ function ParkingOrderInquiry(props) {
rowKey={'order_id'}
initFormData={initFormData}
exportUrl={exportUrl}
isExport={true}
limitCon={limit ? limitCon : null}
search={searchOther}
/>

25
src/pages/FinancialMgm/PayRecordTotal/loadable.jsx

@ -1,5 +1,5 @@
import React, { useState, useEffect } from "react";
import { ResultFlowResult } from "@/components";
import React, { useState, useEffect, useRef } from "react";
import { ResultFlowResult, ExportBtnNew } from "@/components";
import { Select, Input, Button, Table, message, Pagination, DatePicker, Tooltip } from "antd";
import { useSessionStorageState } from "ahooks";
import { dictionary } from "@/config/common";
@ -62,6 +62,7 @@ function PayRecordTotal(props) {
value: {
}
})
const exportRef = useRef(null)
useEffect(() => {
if (sessionTabList && Object.values(sessionTabList).length > 0) {
setFormData({
@ -280,7 +281,7 @@ function PayRecordTotal(props) {
};
//
const handleExport = () => {
const handleExport = (start, end) => {
if (resultData.list?.length > 0) {
let { pn, page_size, ...params } = defaultParams;
ajax.getPayRecordTotalListExport(params).then(
@ -289,8 +290,10 @@ function PayRecordTotal(props) {
//window.location.href = res.data?.url
window.open(res.data?.url)
message.success(res?.message);
exportRef.current.handleCancel()
} else {
message.error(res?.message);
exportRef.current.handleError()
}
},
(err) => {
@ -439,9 +442,21 @@ function PayRecordTotal(props) {
<span className="letter">条结果</span>
</span>
<div>
<Button type="primary" onClick={handleExport}>
{/* <Button type="primary" onClick={handleExport}>
导出
</Button>
</Button> */}
<ExportBtnNew
children={<Button className="export-btn" size='medium' type="primary">导出</Button>}
modalType="noImg"
ref={exportRef}
totalRecords={resultData.total}
imgno={false}
postdata={{
formData: formData
}}
isTableModule={true}
onOk={handleExport}
/>
</div>
</div>
<ResultFlowResult

35
src/pages/FinancialMgm/SettleBill/PayRepeat/loadable.jsx

@ -14,7 +14,7 @@ import { dictionary, utils } from "@/config/common";
import moment from "moment";
import ajax from "@/services";
// import { useSessionStorageState, useUpdateEffect, useSize, useUpdate } from 'ahooks';
import { ResultFlow } from "@/components";
import { ResultFlow, ExportBtnNew } from "@/components";
import "./index.scss";
// import errorImg from "@/assets/images/layout/error.png"
// import { useLocation } from "react-router-dom";
@ -32,6 +32,7 @@ function PayRepeat() {
pn: 1,
page_size: dictionary?.pageSizeOptions1[0],
};
const exportRef = useRef(null)
//-退
const formdatb = {
type: 2,
@ -413,15 +414,19 @@ function PayRepeat() {
document.body.removeChild(link);
};
//
const ReportPaySummaryReport = () => {
const ReportPaySummaryReport = (start, end) => {
ajax.ElectInvoice.ReportPayRepeat({
...FormDatas,
start: start,
end: end
}).then(
(res) => {
if (parseInt(res?.status) === 20000) {
Daownload(res?.data?.url);
exportRef.current.handleCancel()
} else {
message.error(res?.message);
exportRef.current.handleError()
}
},
(err) => {
@ -872,14 +877,26 @@ function PayRepeat() {
共查询到<span> {Data?.total || 0}</span>条数据
</p>
{FormData.type == 1 ? (
<span
className="sear_ser"
onClick={() => {
Data?.total && ReportPaySummaryReport();
// <span
// className="sear_ser"
// onClick={() => {
// Data?.total && ReportPaySummaryReport();
// }}
// >
//
// </span>
<ExportBtnNew
children={<Button className="export-btn" size='medium' type="primary">导出</Button>}
modalType="noImg"
ref={exportRef}
totalRecords={Data?.total}
imgno={false}
postdata={{
formData: FormData
}}
>
导出
</span>
isTableModule={true}
onOk={ReportPaySummaryReport}
/>
) : (
""
)}

12
src/pages/InRoadMgm/EquipmentOpe/faultReport/loadable.jsx

@ -109,6 +109,7 @@ function faultReport(props) {
{
title: '序号',
render: (text, record, index) => index + 1,
width: 80,
},
{
title: '商户名称',
@ -126,6 +127,11 @@ function faultReport(props) {
key: 'park_name',
},
{
title: '泊位号',
dataIndex: 'berth_code',
key: 'berth_code',
},
{
title: '设备类型',
dataIndex: 'fault_type_name',
key: 'fault_type_name',
@ -136,9 +142,11 @@ function faultReport(props) {
key: 'name',
},
{
title: '故障原因',
title: '备注',
dataIndex: 'reason',
key: 'reason',
width: 200,
ellipsis: true
},
{
title: '上报时间',
@ -303,7 +311,7 @@ function faultReport(props) {
]}
/>
<div className="btnBox">
<Button type="primary" className="yisa-btn colorReset reset" onClick={() => { getResetData() }}>
<Button className="yisa-btn colorReset reset" onClick={() => { getResetData() }}>
重置
</Button>
<Button type="primary" className="yisa-btn colorBtn submit" onClick={() => { getSearchData() }}>

6
src/pages/InRoadMgm/RecordInquiry/ArrearsEtcInquiries/index.jsx

@ -0,0 +1,6 @@
import React from "react"
import loadable from "@loadable/component"
import { LoadingImg } from "@/components"
const ArrearsEtcInquiriesLoadable = loadable(() => import("./loadable"))
export default (pros) => <ArrearsEtcInquiriesLoadable {...pros} fallback={<LoadingImg />} />

5
src/pages/InRoadMgm/RecordInquiry/ArrearsEtcInquiries/index.scss

@ -0,0 +1,5 @@
@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);

181
src/pages/InRoadMgm/RecordInquiry/ArrearsEtcInquiries/loadable.jsx

@ -0,0 +1,181 @@
import React, { useState, useRef, useEffect } from "react";
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 { TableModule } from "@/components";
// import "./index.scss";
// import errorImg from "@/assets/images/layout/error.png"
// import { useLocation } from "react-router-dom";
let array = [];
function ArrearsEtcInquiries() {
const columns = [
{
title: "序号",
dataIndex: "index",
key: "index",
align: "center",
render: (_, record, index) => {
return index + 1;
},
},
{
title: "车牌号",
dataIndex: "licensePlateNumber",
align: "center",
render: (text, record, index) => (
<div style={{ width: "100px", wordBreak: "break-all" }}>{record.licensePlateNumber}</div>
)
},
{
title: "商户名称",
dataIndex: "merchantName",
align: "center",
render: (text, record, index) => (
<div style={{ width: "100px", wordBreak: "break-all" }}>{record.merchantName}</div>
)
},
{
title: "欠费路段",
dataIndex: "arrearsSection",
align: "center",
render: (text, record, index) => (
<div style={{ width: "100px", wordBreak: "break-all" }}>{record.arrearsSection}</div>
)
},
{
title: "入场时间",
dataIndex: "entryTime",
align: "center",
render: (text, record, index) => (
<div style={{ width: "130px", wordBreak: "break-all" }}>{record.entryTime}</div>
)
},
{
title: "出场时间",
dataIndex: "exitTime",
align: "center",
render: (text, record, index) => (
<div style={{ width: "130px", wordBreak: "break-all" }}>{record.exitTime}</div>
)
},
{
title: "停车时长",
dataIndex: "parkingDuration",
key: "parkingDuration",
align: "center",
},
{
title: "实收金额",
dataIndex: "actualPayment",
key: "actualPayment",
align: "center",
},
{
title: "支付渠道",
dataIndex: "paymentChannel",
key: "paymentChannel",
align: "center",
},
// {
// title: "",
// dataIndex: "tollCollector",
// key: "tollCollector",
// align: "center",
// },
// {
// title: "",
// dataIndex: "tollSection",
// key: "tollSection",
// align: "center",
// },
{
title: "缴费时间",
dataIndex: "paymentTime",
key: "paymentTime",
align: "center",
},
];
const formSearch = [
{
name: "operator",
type: "Select",
label: "商户名称",
placeholder: "请输入商户名称",
},
{
name: "road",
type: "Input",
label: "欠费路段",
placeholder: "请输入欠费路段",
},
// {
// name: "out_person",
// type: "Input",
// label: "",
// placeholder: "",
// },
// {
// name: "tollSection",
// type: "Input",
// label: "",
// placeholder: "",
// },
{
name: "plate",
type: "Input",
label: "车牌号",
placeholder: "请输入车牌号",
},
{
name: "paymentTimePeriod",
type: "RangePicker",
label: "缴费时间段",
},
];
//
const initFormData = {
operator: "0",
road: "",
out_person: "",
tollSection: "",
plate: "",
};
//
const [tableData, setTableData] = useState([]);
//
const [total, setTotal] = useState(0);
//
const fetch = (params) => {
utils.tableScrollTop("parent-table-scroll");
ajax.getArrearsListEtc(params).then((res) => {
if (res.status === 20000) {
setTableData(res.data.list);
setTotal(res.data.total);
}
});
};
return (
<TableModule
columns={columns}
tableData={tableData}
formSearch={formSearch}
total={total}
search={fetch}
initFormData={initFormData}
mandatory={['plate','berth_id']}
mandatory_name={['车牌号或泊位号']}
pagename="欠费追缴查询"
pageName={'arrearsInquiries'}
otherData={{
payment_time: 1,
}}
exportUrl="/api/bpm/record/get_arrears_export"
/>
);
}
export default ArrearsEtcInquiries;

2
src/pages/InRoadMgm/RecordInquiry/index.jsx

@ -1,4 +1,5 @@
import ArrearsInquiries from "./ArrearsInquiries"
import ArrearsEtcInquiries from "./ArrearsEtcInquiries"
import ArrearsRecordTotal from "./ArrearsRecordTotal"
import DisabledCarParkRecordTotal from "./DisabledCarParkRecordTotal"
import EntryExitOptPDA from "./EntryExitOptPDA"
@ -9,6 +10,7 @@ import PreOrderRecord from "./PreOrderRecord"
import UnRecordOrder from "./UnRecordOrder"
export default {
ArrearsInquiries,
ArrearsEtcInquiries,
ArrearsRecordTotal,
DisabledCarParkRecordTotal,
EntryExitOptPDA,

45
src/pages/Nav/index.jsx

@ -67,30 +67,33 @@ export default function Nav() {
return (
<div className="cc-layout nav-layout">
<Header />
<div className="nav-contanier">
{
navData.map((item,index)=>{
return <div
key={index}
className={`item ${activeIndex == index ? 'active' : ""}`}
onMouseOut={()=>{setActiveIndex(-1)}}
onMouseOver={()=>{setActiveIndex(index)}}
onClick={()=>{clickItem(item)}}
>
<div className="out-wrapper">
<div className="icon-wrapper">
<IconPda type={item.icon}></IconPda>
</div>
<div className="line"></div>
</div>
<div className="nav-content">
<div className="nav-contanier">
{
navData.map((item,index)=>{
return <div
key={index}
className={`item ${activeIndex == index ? 'active' : ""}`}
onMouseOut={()=>{setActiveIndex(-1)}}
onMouseOver={()=>{setActiveIndex(index)}}
onClick={()=>{clickItem(item)}}
>
<div className="out-wrapper">
<div className="icon-wrapper">
<IconPda type={item.icon}></IconPda>
</div>
<div className="line"></div>
</div>
<div className="zh-name">{item.text}</div>
<div className="en-name">{item.en_name}</div>
<div className="zh-name">{item.text}</div>
<div className="en-name">{item.en_name}</div>
</div>
})
}
</div>
})
}
</div>
</div>
</div>
)

37
src/pages/Nav/index.scss

@ -1,38 +1,36 @@
@function px2vh($h) {
@return $h * 100vh / 970
}
@function px2vw($w) {
@return $w * 100vw / 1920
}
.nav-layout{
.cc-header{
position: absolute;
}
}
.nav-contanier{
.nav-content{
width: 100%;
height: 100%;
background-image: url('@/assets/images/nav/nav_bg.png');
background-size: 100% 100%;
background-position: center;
padding: 30px;
display: flex;
justify-content: center;
align-items: center;
}
.nav-contanier{
width: 1600px;
height: 710px;
display: flex;
flex-direction: row;
align-items: center;
flex-wrap: wrap;
.item{
// display: flex;
// flex-direction: column;
// align-items: center;
// justify-content: center;
margin: 10px;
cursor: pointer;
background: url("@/assets/images/nav/nav_item.png");
background-size: 100% 100%;
background-position: center;
width: 246px;
height: 680px;
padding-top: 130px;
width: 280px;
height: 330px;
padding-top: 30px;
position: relative;
&:hover{
@ -46,7 +44,9 @@
font-size: 16px;
}
.line{
margin-top: 50px;
margin-top: 30px;
height: 2px;
border-bottom: 2px solid #3e536c !important;
}
&::after{
content: '';
@ -56,7 +56,7 @@
height: 4px;
border-radius: 2px;
position: absolute;
bottom: -20px;
bottom: -10px;
}
}
.out-wrapper{
@ -83,12 +83,13 @@
height: 2px;
width: 120px;
margin: auto ;
margin-top: 10px;
// background-color: red;
border-bottom: 2px solid #3E536C;
}
.zh-name{
text-align: center;
margin-top: 60px;
// margin-top: 10px;
font-size: 18px;
font-weight: 700;
}

28
src/pages/OperationCenter/CustomerServieMgm/CallbackSuggestion/loadable.jsx

@ -1,5 +1,5 @@
import React, { useState, useRef, useEffect } from "react";
import { ResultFlowResult, QuickMenu } from "@/components"
import { ResultFlowResult, QuickMenu, ExportBtnNew } from "@/components"
import { Select, Button, Table, message, Pagination, Input, Modal, Image, DatePicker, Space, Upload } from 'antd'
import {
pageSizeOptions
@ -36,6 +36,7 @@ function CallbackSuggestion(props) {
const [imgVisible, setImgVisible] = useState(false)
const [orderVisible, setOrderVisible] = useState(false)
const [evidenceVisible, setEvidenceVisible] = useState(false)
const exportRef = useRef(null)
//
const handleAdviseType = (value) => {
@ -515,12 +516,17 @@ function CallbackSuggestion(props) {
}
}
const exportData = () => {
const exportData = (start, end) => {
let data = {
...formData
...formData,
start: start,
end: end
}
ajax.exportDataList(data).then(res => {
window.open(res.data.export_url)
exportRef.current.handleCancel()
}).catch(err => {
exportRef.current.handleError()
})
}
const checkPic = () => {
@ -644,9 +650,21 @@ function CallbackSuggestion(props) {
<div className="result">
<div className="result-info-row">
<span className="font">共检索到<em>{resultData.total_records}</em>条结果</span>
<Button type="primary" className="yisa-btn colorBtn" onClick={() => { exportData() }}>
{/* <Button type="primary" className="yisa-btn colorBtn" onClick={() => { exportData() }}>
导出
</Button>
</Button> */}
<ExportBtnNew
children={<Button className="export-btn" size='medium' type="primary">导出</Button>}
modalType="noImg"
ref={exportRef}
totalRecords={resultData.total_records}
imgno={false}
postdata={{
formData: formData
}}
isTableModule={true}
onOk={exportData}
/>
</div>
<ResultFlowResult ajaxLoad={ajaxLoading} resultData={resultData.data ? resultData.data : []}>
<Table

5
src/pages/OperationCenter/CustomerServieMgm/ComplainManage/index.scss

@ -141,6 +141,11 @@ $color-primary: var(--color-primary);
cursor: pointer;
}
.root_gfkk {
display: inline-block;
margin-left: 10px;
}
.paid-result {
width: calc(100% - 375px);
padding-bottom: 15px;

26
src/pages/OperationCenter/CustomerServieMgm/ComplainManage/loadable.jsx

@ -1,5 +1,5 @@
import React, { useState, useRef, useEffect } from "react";
import { ResultFlowResult } from "@/components";
import { ResultFlowResult, ExportBtnNew } from "@/components";
import {
Select,
Input,
@ -124,6 +124,8 @@ function ComplainManage(props) {
specific_content: "", //
};
const exportRef = useRef(null)
//
const [visible1, setVisible1] = useState(false);
// -key
@ -239,13 +241,15 @@ function ComplainManage(props) {
const [rowData, setRowData] = useState({});
//
const exportData = () => {
let data = { ...holdData, ...pageInfo };
const exportData = (start, end) => {
let data = { ...holdData, ...pageInfo, start: start, end: end };
ajax.getComplainExport(data).then((res) => {
if (res?.data?.url) {
window.open(res.data.url);
exportRef.current.handleCancel()
} else {
message.error("导出异常");
exportRef.current.handleError()
}
});
};
@ -1548,14 +1552,26 @@ function ComplainManage(props) {
>
设置
</Button>
<Button
{/* <Button
type="primary"
onClick={() => {
exportData();
}}
>
导出
</Button>
</Button> */}
<ExportBtnNew
children={<Button className="export-btn" size='medium' type="primary">导出</Button>}
modalType="noImg"
ref={exportRef}
totalRecords={resultData.total}
imgno={false}
postdata={{
formData: formData
}}
isTableModule={true}
onOk={exportData}
/>
</div>
</div>
<ResultFlowResult

30
src/pages/OperationCenter/OperationSales/CouponMgm/WriteOffDetail/loadable.jsx

@ -5,7 +5,7 @@ import { dictionary, utils } from "@/config/common";
import { useSetState , useSessionStorageState, useUpdateEffect, useSize, useUpdate } from 'ahooks';
import moment from "moment";
import ajax from '@/services/OperationCenter/OperationSales/index'
import { FormInput, FormSelect, ResultFlow ,FormSliderPicker} from "@/components"
import { FormInput, FormSelect, ResultFlow ,FormSliderPicker, ExportBtnNew} from "@/components"
import "./index.scss";
import searchAjax from '@/services/search'
// import errorImg from "@/assets/images/layout/error.png"
@ -18,6 +18,7 @@ function WriteOffDetail() {
defaultValue:{}
})
const params = useRef()
const exportRef = useRef(null)
const [typeOptions,setTypeOptions] = useState([])
const [operatorAllData, setOperatorAllData] = useState([]) //
const [pageData, setPageData] = useSetState({ //
@ -243,15 +244,24 @@ function WriteOffDetail() {
}
//
const exportData=()=>{
const exportData=(start, end)=>{
let data={
...formData
...formData,
start: start,
end: end
}
ajax.handleOffExport(data).then(res => {
window.open(res.data.url)
exportRef.current.handleCancel()
}).catch(err => {
exportRef.current.handleError()
})
}
const handleExport = (start, end) => {
exportData(start, end)
}
useEffect(()=>{
// getOffList()
getCouponOptions()
@ -357,7 +367,19 @@ function WriteOffDetail() {
<span className="total-number"> {resultData.total} </span>
<span className="letter">条结果</span>
</span>
<Button type="primary" onClick={exportData} >导出</Button>
{/* <Button type="primary" onClick={exportData} >导出</Button> */}
<ExportBtnNew
children={<Button className="export-btn" size='medium' type="primary">导出</Button>}
modalType="noImg"
ref={exportRef}
totalRecords={resultData.total}
imgno={false}
postdata={{
formData: formData
}}
isTableModule={true}
onOk={handleExport}
/>
</div>
<div className="table-wrap">
<Table

33
src/pages/OperationCenter/OperationSales/CouponMgm/WriteOffStat/loadable.jsx

@ -1,5 +1,5 @@
import React, { useState, useRef, useEffect } from "react";
import { FormSliderPicker, ExportBtn, ResultFlowResult } from "@/components"
import { FormSliderPicker, ExportBtn, ResultFlowResult, ExportBtnNew } from "@/components"
import { Select, Input, Button, Table, message, Pagination } from 'antd'
import {
pageSizeOptions
@ -31,6 +31,7 @@ function WriteOffStat(props) {
const [formData, setFormData] = useState(parameter)
const [lastFormData, setLastFormData] = useState(formData)
const lastFormDataRef = useRef(formData)
const exportRef = useRef(null)
const [couponNameOptions, setCouponNameOptions] = useState([])
//
@ -110,6 +111,11 @@ function WriteOffStat(props) {
}
})
}
const handleExport = (start, end) => {
exportData(start, end)
}
//
const changePn = (pn, length) => {
if (lastFormData.size === length) {
@ -141,12 +147,17 @@ function WriteOffStat(props) {
}
//
const exportData=()=>{
const exportData=(start, end)=>{
let data={
...formData
...formData,
start: start,
end: end
}
ajax.handleCountExport(data).then(res => {
window.open(res.data.url)
exportRef.current.handleCancel()
}).catch(err => {
exportRef.current.handleError()
})
}
@ -225,9 +236,21 @@ function WriteOffStat(props) {
<div className="result">
<div className="result-info-row">
<span className="font">共检索到<em>{resultData.total}</em>条结果</span>
<Button type="primary" className="yisa-btn" onClick={() => { exportData() }}>
{/* <Button type="primary" className="yisa-btn" onClick={() => { exportData() }}>
导出
</Button>
</Button> */}
<ExportBtnNew
children={<Button className="export-btn" size='medium' type="primary">导出</Button>}
modalType="noImg"
ref={exportRef}
totalRecords={resultData.total}
imgno={false}
postdata={{
formData: formData
}}
isTableModule={true}
onOk={handleExport}
/>
</div>
<ResultFlowResult ajaxLoad={ajaxLoading} resultData={resultData.list ? resultData.list : []}>

25
src/pages/OperationCenter/OtherBusiness/ParkingCard/ParkingCardOrder/loadable.jsx

@ -3,7 +3,7 @@ import { Select, Input, Popconfirm,Button, Table, message, DatePicker, Paginatio
import {
pageSizeOptions
} from '@/config/character.config.js'
import { ResultFlowResult } from "@/components"
import { ResultFlowResult, ExportBtnNew } from "@/components"
import { SearchOutlined, PlusOutlined,VerticalAlignBottomOutlined } from '@ant-design/icons';
import moment from 'moment'
import { useSetState,} from 'ahooks';
@ -156,6 +156,7 @@ function ParkingCardOrder() {
})
const [lastFormData, setLastFormData] = useState(formData)
const exportRef = useRef(null)
const lastFormDataRef = useRef(formData)
@ -292,17 +293,19 @@ function ParkingCardOrder() {
};
//
const ReportPaySummaryReport = () => {
const ReportPaySummaryReport = (start, end) => {
if(!resultData.total){
message.warning("暂无数据")
return
}
ajax.exportOrder(formData).then(res => {
ajax.exportOrder({...formData, start: start, end: end}).then(res => {
if (parseInt(res?.status) === 20000){
Donwload(res.data?.url)
exportRef.current.handleCancel()
}
else {
message.error(res?.message);
exportRef.current.handleError()
}
}).catch(e =>
console.log(e))
@ -675,14 +678,26 @@ function ParkingCardOrder() {
style={{width:110}}>
添加
</Button>&emsp;
<Button
{/* <Button
type="primary"
className="yisa-btn colorBtn "
onClick={() => { ReportPaySummaryReport()}}
// style={{background:"#fff",color:'#59b7ff',height:'100%'}}
>
导出
</Button>
</Button> */}
<ExportBtnNew
children={<Button className="export-btn" size='medium' type="primary">导出</Button>}
modalType="noImg"
ref={exportRef}
totalRecords={resultData.total}
imgno={false}
postdata={{
formData: formData
}}
isTableModule={true}
onOk={ReportPaySummaryReport}
/>
</div>
</div>
<ResultFlowResult ajaxLoad={ajaxLoading} resultData={resultData.data ? resultData.data : []}>

28
src/pages/OperationCenter/OtherBusiness/Staggered/StaggeredOrder/loadable.jsx

@ -1,5 +1,5 @@
import React, { useState, useRef, useEffect } from "react";
import { ResultFlowResult } from "@/components"
import { ResultFlowResult, ExportBtnNew } from "@/components"
import { Select, Input, Button, Table, message, TreeSelect, Pagination, DatePicker, Cascader, Popover, Modal } from 'antd'
import {
pageSizeOptions
@ -37,6 +37,7 @@ function StaggeredOrder(props) {
const [lastFormData, setLastFormData] = useState(formData)
const lastFormDataRef = useRef(formData)
const [editVisible, setEditVisible] = useState(false)
const exportRef = useRef(null)
//
@ -69,12 +70,17 @@ function StaggeredOrder(props) {
}
//
const exportData = () => {
const exportData = (start, end) => {
let data = {
...formData
...formData,
start: start,
end: end
}
ajax.getExportOrder(data).then(res => {
window.open(res.data.url)
exportRef.current.handleCancel()
}).catch(err => {
exportRef.current.handleError()
})
}
//
@ -355,9 +361,21 @@ function StaggeredOrder(props) {
<div className="result">
<div className="result-info-row">
<span className="font">共检索到<em>{resultData.total_records}</em>条结果</span>
<Button type="primary" className="yisa-btn colorBtn" onClick={() => { exportData() }}>
{/* <Button type="primary" className="yisa-btn colorBtn" onClick={() => { exportData() }}>
导出
</Button>
</Button> */}
<ExportBtnNew
children={<Button className="export-btn" size='medium' type="primary">导出</Button>}
modalType="noImg"
ref={exportRef}
totalRecords={resultData.total_records}
imgno={false}
postdata={{
formData: formData
}}
isTableModule={true}
onOk={exportData}
/>
</div>
<ResultFlowResult ajaxLoad={ajaxLoading} resultData={resultData.data ? resultData.data : []}>
<Table

28
src/pages/OperationCenter/OtherBusiness/Staggered/StaggeredStat/loadable.jsx

@ -1,5 +1,5 @@
import React, { useState, useRef, useEffect } from "react";
import { ResultFlowResult } from "@/components"
import { ResultFlowResult, ExportBtnNew } from "@/components"
import { Select, Input, Button, Table, message, TreeSelect, Pagination, DatePicker, Space } from 'antd'
import {
pageSizeOptions
@ -34,6 +34,7 @@ function StaggeredStat(props) {
const [lastFormData, setLastFormData] = useState(formData)
const lastFormDataRef = useRef(formData)
const exportRef = useRef(null)
//
const handlePartName = (value) => {
@ -50,12 +51,17 @@ function StaggeredStat(props) {
};
//
const exportData = () => {
const exportData = (start, end) => {
let data = {
...formData
...formData,
start: start,
end: end
}
ajax.getStaggeredStatExport(data).then(res => {
window.open(res.data.url)
exportRef.current.handleCancel()
}).catch(err => {
exportRef.current.handleError()
})
}
//
@ -233,9 +239,21 @@ function StaggeredStat(props) {
<div className="result">
<div className="result-info-row">
<span className="font">共检索到<em>{resultData.total_records}</em>条结果</span>
<Button type="primary" className="yisa-btn colorBtn" onClick={() => { exportData() }}>
{/* <Button type="primary" className="yisa-btn colorBtn" onClick={() => { exportData() }}>
导出
</Button>
</Button> */}
<ExportBtnNew
children={<Button className="export-btn" size='medium' type="primary">导出</Button>}
modalType="noImg"
ref={exportRef}
totalRecords={resultData.total_records}
imgno={false}
postdata={{
formData: formData
}}
isTableModule={true}
onOk={exportData}
/>
</div>
<ResultFlowResult ajaxLoad={ajaxLoading} resultData={resultData.data ? resultData.data : []}>
<Table

1
src/pages/OutRoadMgm/OutBusinessRecord/OutParkingArrearsOrders/loadable.jsx

@ -209,6 +209,7 @@ function OutParkingArrearsOrders() {
pageName={"outParkingArrearsOrders"}
initFormData={initFormData}
exportUrl="/api/orp/business/get_parking_arrears_export"
isExport={true}
isQuickMenu={[
{ text: "昨天", value: 1 },
{ text: "近30天", value: 30 },

1
src/pages/OutRoadMgm/OutBusinessRecord/OutPayOrders/loadable.jsx

@ -215,6 +215,7 @@ function OutPayOrders() {
search={fetch}
limitCon={limitCon}
initFormData={initFormData}
isExport={true}
exportUrl="/api/orp/business/get_payment_export"
/>
</>

4
src/pages/OutRoadMgm/OutSegmentMgm/ChargeRulesMgm/AddModal.jsx

@ -192,12 +192,12 @@ function AddModal(props) {
return (
<Modal
open={visible}
width={1200}
width={1250}
onCancel={close}
title={status === "add" ? "添加" : "编辑"}
onOk={submit}
>
<div>
<div className="yisa-custom-scrollbar" style={{height: '600px',overflowY: 'auto',overflowX: 'hidden'}}>
<Form
form={form}
labelCol={{ span: 6 }}

2
src/pages/OutRoadMgm/OutSegmentMgm/ChargeRulesMgm/Detail.jsx

@ -33,7 +33,7 @@ function Detail(props) {
title="详情"
footer={null}
>
<div>
<div className="yisa-custom-scrollbar" style={{height: '600px', overflowY: 'auto', overflowX: 'hidden'}}>
<Descriptions column={2}>
<Descriptions.Item label="规则名称" span={1}>
{record.feeName}

1
src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/index.scss

@ -20,6 +20,7 @@ $color-primary: var(--color-primary);
height: 100%;
.header-button {
display: flex;
button {
margin: 0 3px;
}

24
src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/loadable.jsx

@ -26,7 +26,7 @@ import {
useUpdate,
} from "ahooks";
import ajax from "@/services";
import { TableModule, ResultFlow } from "@/components";
import { TableModule, ResultFlow, ExportBtnNew } from "@/components";
import Detail from "./Detail";
import AddParking from "./AddParking";
import "./index.scss";
@ -216,6 +216,7 @@ function OutSegment() {
pn: 1,
page_size: 15,
});
const exportRef = useRef(null);
const tableRef = useRef(null);
const [appraise, setAppraise] = useState({})
const [loading, setLoading] = useState(false);
@ -394,12 +395,14 @@ function OutSegment() {
}
}, [formData])
//
const handleExport = () => {
const handleExport = (start, end) => {
if (tableData.length > 0) {
let values = searchForm.getFieldsValue();
let end = values.area?.length > 0 ? values.area.slice(-1) : null;
let params = {
...values,
start: start,
end: end,
//area_id: values.area?.length > 0 ? end : areaId,
area_id: sessionTabList?.area,
};
@ -410,12 +413,15 @@ function OutSegment() {
(res) => {
if (res) {
window.open(res.data.export_url)
tableRef.current.handleCancel()
} else {
message.error(res?.message);
tableRef.current.handleError()
}
},
(err) => {
console.log(err);
tableRef.current.handleError()
}
);
} else {
@ -614,7 +620,19 @@ function OutSegment() {
>
评价批量配置
</Button>
<Button type="primary" onClick={handleExport}>导出</Button>
{/* <Button type="primary" onClick={handleExport}>导出</Button> */}
<ExportBtnNew
children={<Button className="export-btn" size='medium' type="primary">导出</Button>}
modalType="noImg"
ref={exportRef}
totalRecords={total}
imgno={false}
postdata={{
formData: formData
}}
isTableModule={true}
onOk={handleExport}
/>
</div>
</div>
<ResultFlow

1
src/router/index.jsx

@ -31,6 +31,7 @@ function RouterMap(props) {
useEffect(() => {
message.destroy()
window.queryRecord = {}
},[location.pathname]);

6
src/router/router.config.js

@ -208,6 +208,12 @@ let routes = [
component: pages.ArrearsInquiries,
},
{
path: "/inRoad/ArrearsEtcInquiries",
text: "ETC追缴查询",
name: "ArrearsEtcInquiries",
component: pages.ArrearsEtcInquiries,
},
{
path: "/inRoad/ArrearsRecordTotal",
text: "停车欠费订单",
name: "arrearsRecordTotal",

2
src/services/OperationCenter/OperationSales/index.js

@ -22,7 +22,7 @@ const handleCouponInsert = (p) => {
return ajax({
url: "/api/ope/coupon/insert",
type: 'post',
data: p
data: {...p, guard: true}
})
}

1
src/services/OutRoadMgm/OutSegment.js

@ -7,6 +7,7 @@ const getOrpRoadList = (params) => {
url: "/api/orp/road/road_list",
type: "post",
data: params,
guard:true
});
};
//导出

18
src/services/recordInquiry.js

@ -1,5 +1,5 @@
import ajax from "../config/ajax";
///api/bpm/record/get_arrears_list
//欠费追缴记录查询
const getArrearsList = (params) => {
return ajax({
url: "/api/bpm/record/get_arrears_list",
@ -7,6 +7,14 @@ const getArrearsList = (params) => {
data: params,
});
};
// etc追缴查询
const getArrearsListEtc = (params) => {
return ajax({
url: "/api/bpm/record/get_arrears_list_etc",
type: "post",
data: params,
});
};
///api/bpm/record/get_parking_arrears_list
const getParkingArrearsList = (params) => {
return ajax({
@ -36,7 +44,7 @@ const getParkingList = (params) => {
return ajax({
url: "/api/bpm/record/get_record_list",
type: "post",
data: params,
data: {...params, guard: true}
});
};
///api/bpm/record/get_prepayment_list
@ -89,12 +97,12 @@ const getHistoryRecord = (params) => {
});
};
// /api/bpm/record/get_record_list 停车记录查询-列表和停车记录信息
// 停车记录查询-列表和停车记录信息
const getRecordList = (params) => {
return ajax({
url: "/api/bpm/record/get_record_list",
type: "post",
data: params,
data: {...params, guard: true}
});
};
@ -107,7 +115,7 @@ const getChangeTemporary = (params) => {
data: params,
});
};
// /api/bpm/record/get_unregistered 未登记记录查询
// 未登记记录查询
const getUnregistered = (params) => {
return ajax({

Loading…
Cancel
Save