Browse Source

fix():路外系统bug修改

tags/PMS_Frontend_v1.0.6-develop
xingjx 1 year ago
parent
commit
ac9fcfc0f7
  1. 2
      src/components/form/FormDateRange/index.jsx
  2. 2
      src/pages/DataAnalysisPrediction/ParkingBusinessAly/NightParkStat/loadable.jsx
  3. 24
      src/pages/DataAnalysisPrediction/ParkingBusinessAly/ParkingAlyDuration/loadable.jsx
  4. 88
      src/pages/OutRoadMgm/OutBusinessRecord/OutPayOrders/loadable.jsx
  5. 95
      src/pages/OutRoadMgm/OutExceptionMgm/ZombieCarCleanRecord/loadable.jsx
  6. 72
      src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/ConfigParking/CarMgm/CarGroupMgm.jsx
  7. 47
      src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/ConfigParking/CarMgm/CarManagement.jsx
  8. 2
      src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/ConfigParking/CarMgm/index.jsx
  9. 2
      src/services/DataAnalysisPrediction/ParkingBusinessAly/index.js
  10. 19
      src/services/OutRoadMgm/OutSegment.js
  11. 3
      src/services/search.js

2
src/components/form/FormDateRange/index.jsx

@ -46,7 +46,7 @@ export default function FormDateRange(props) {
useEffect(() => {
if (JSON.stringify(value) != JSON.dateRange) {
console.log(value, 'range value')
if(typeof value == 'string' && value.includes(',')){
if(typeof value == 'string' && value?.includes(',')){
setDateRange([value.split(',')[0], value.split(',')[1]]);
}else{
setDateRange(value);

2
src/pages/DataAnalysisPrediction/ParkingBusinessAly/NightParkStat/loadable.jsx

@ -180,7 +180,7 @@ function NightParkStat() {
};
});
setRevenueData(lineChartOption(areaNames, xAxisData, "", seriesData));
setRevenueData(lineChartOption(areaNames, xAxisData, "停车时长(小时)", seriesData));
};
//
const TimeChange = () => {

24
src/pages/DataAnalysisPrediction/ParkingBusinessAly/ParkingAlyDuration/loadable.jsx

@ -34,6 +34,10 @@ function ParkingAlyDuration() {
pn: 1,
page_size: 10
});
const [pageCarInfo, setPageCarInfo] = useState({
pn: 1,
page_size: 10
});
//
const [formData, setFormData] = useState({
...defaultData,
@ -214,7 +218,25 @@ function ParkingAlyDuration() {
//getListData({})
},
}
const paginationCarProps = {
className: "pagination-common",
showQuickJumper: true,
showSizeChanger: true,
current: pageCarInfo.pn,
//total: resultData?.totalRecords,
pageSize: pageCarInfo.page_size,
pageSizeOptions: Array.from(
new Set([...[15], ...(dictionary?.pageSizeOptions || [])])
),
onChange: (current, size) => {
setPageCarInfo({
...pageInfo,
...{ pn: current, page_size: size }
});
setIsAjax(!isAjax)
//getListData({})
},
}
// useEffect(() => {
// getData()
// }, [pageInfo])

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

@ -141,93 +141,7 @@ function OutPayOrders() {
<>
<TableModule
columns={columns}
tableData={[
{
"order_id": "1698798150674334",
"road_id": null,
"berth_id": null,
"plate": null,
"admission_time": "2023-10-30 08:38:09",
"charging_time": "2023-10-30 08:56:25",
"parking_duration": "19696天9小时9分钟",
"receivable_amount": null,
"paid_in_money": "2.00",
"preferential_amount": null,
"payment_channels": null,
"payment_equipment": null,
"dealer_id": null,
"dealer": null,
"pay_road_id": null,
"pay_road": null,
"third_party_flow_id": null,
"pay_time": "2023-11-01 08:22:30",
"park_record_id": "1781138759907352059",
"pay_person": null,
"pay_person_id": "1808424652081635535",
"car_id": 1974275254507835000,
"payment_type": 1,
"out_trade_no": null,
"pay_status": 2,
"plate_type_id": 0,
"initiate_payment_time": null,
"create_time": "2023-11-01 08:22:30",
"update_time": "0000-00-00 00:00:00",
"refund_status": 0,
"is_delete": 0,
"prepay_id": null,
"payment_method": null,
"road_discount": "0.00",
"is_parking": 0,
"pay_channel_id": null,
"plate_type": null,
"in_time": null,
"out_time": null,
"actual_amount": null,
"road": null
},
{
"order_id": "1698804273659582",
"road_id": null,
"berth_id": null,
"plate": null,
"admission_time": "2023-10-28 13:04:28",
"charging_time": "2023-10-31 11:56:59",
"parking_duration": "19696天9小时9分钟",
"receivable_amount": null,
"paid_in_money": "38.00",
"preferential_amount": null,
"payment_channels": "微信",
"payment_equipment": "微信小程序",
"dealer_id": 1807107891635555600,
"dealer": null,
"pay_road_id": null,
"pay_road": null,
"third_party_flow_id": "4200002050202311011865032770",
"pay_time": "2023-11-01 10:04:40",
"park_record_id": "1780974369784877499",
"pay_person": null,
"pay_person_id": "1807107891635555564",
"car_id": 1974345032456966000,
"payment_type": 1,
"out_trade_no": "1698804270833839",
"pay_status": 2,
"plate_type_id": 0,
"initiate_payment_time": "2023-11-01 10:04:33",
"create_time": "2023-11-01 10:04:33",
"update_time": "2023-11-01 10:04:40",
"refund_status": 0,
"is_delete": 0,
"prepay_id": "wx01100431110898328836a2a14b70ae0000",
"payment_method": null,
"road_discount": "0.00",
"is_parking": 0,
"pay_channel_id": null,
"plate_type": null,
"in_time": null,
"out_time": null,
"actual_amount": null,
"road": null
},]}
tableData={tableData || []}
formSearch={formSearch}
total={total}
pagename="停车支付订单"

95
src/pages/OutRoadMgm/OutExceptionMgm/ZombieCarCleanRecord/loadable.jsx

@ -1,6 +1,6 @@
import React, { useState, useRef, useEffect } from "react";
import { ResultFlowResult } from "@/components"
import { Button, Table, message, Pagination, Input, Modal, Image, DatePicker, Space, Tabs } from 'antd'
import { Button, Table, message, Pagination, Input, Modal, Image, DatePicker, Space, Tabs, Form, Radio } from 'antd'
import {
pageSizeOptions
} from '@/config/character.config.js'
@ -30,6 +30,16 @@ function ZombieCarCleanRecord(props) {
page_size: Number(pageSizeOptions[0]), //
}
const [formData, setFormData] = useState(parameter)
//tip
const [exportModal, setExportModal] = useState({
visible: false,
filename:
'pagename' +
(new Date().getMonth() + 1).toString().padStart(2, "0") +
new Date().getDate(),
});
const [expType, setExpType] = useState(0)
const [expForm] = Form.useForm();
const [lastFormData, setLastFormData] = useState(formData)
const lastFormDataRef = useRef(formData)
const [imgVisible, setImgVisible] = useState(false)
@ -37,24 +47,24 @@ function ZombieCarCleanRecord(props) {
const [sessionTabList, setSessionTabList] = useSessionStorageState('zombieCarCleanRecord', {
value: {
}
})
useEffect(() => {
})
useEffect(() => {
if (sessionTabList && Object.values(sessionTabList).length > 0) {
setFormData({
...formData, ...sessionTabList
})
getData({
...formData,...sessionTabList
})
setFormData({
...formData, ...sessionTabList
})
getData({
...formData, ...sessionTabList
})
} else {
getData()
getData()
}
}, [])
useEffect(() => {
}, [])
useEffect(() => {
setSessionTabList({
...formData
...formData
})
}, [formData])
}, [formData])
//
const handleCarAppealId = (v) => {
setFormData({ ...formData, parkName: v.target.value })
@ -340,7 +350,7 @@ function ZombieCarCleanRecord(props) {
setFormData(Object.assign({}, formData, { pn: pn, page_size: length }))
setLastFormData(Object.assign({}, lastFormData, { pn: pn }))
lastFormDataRef.current = Object.assign({}, lastFormData, { pn: pn })
getData(Object.assign({}, formData, { pn: pn, page_size: length }))
getData(Object.assign({}, formData, { pn: pn, page_size: length }))
}
}
//
@ -428,6 +438,16 @@ function ZombieCarCleanRecord(props) {
// useEffect(() => {
// getData()
// }, [])
function handleOk() {
let data = {
...formData,
export_type:expType==1?'all':null
}
ajax.zombieExport(data).then(res => {
window.open(res.data?.url||res.data?.export_url)
})
setExportModal({ ...exportModal, visible: false })
}
return <>
<div className="paid-ZombieCarCleanRecord">
<div className="paid-search">
@ -486,7 +506,7 @@ function ZombieCarCleanRecord(props) {
<Button type="primary" className="yisa-btn" icon={<DeleteOutlined />} onClick={() => { getResetData() }}>
清空
</Button>
<Button type="primary" className="yisa-btn" onClick={() => { salesData() }}>
<Button type="primary" className="yisa-btn" onClick={() => { setExportModal({ ...exportModal, visible: true }) }}>
导出
</Button>
<Button type="primary" className="yisa-btn" disabled={true} onClick={() => { sameBtn() }}>
@ -642,17 +662,17 @@ function ZombieCarCleanRecord(props) {
}
{getTab === '3' ?
<ResultFlowResult ajaxLoad={ajaxLoading} resultData={getRefundList ? getRefundList : []}>
<Table
bordered
// className='yisa-table'
dataSource={getRefundList}
columns={
handleRefund()
}
pagination={false}
loading={ajaxLoading}
/>
<ResultFlowResult ajaxLoad={ajaxLoading} resultData={getRefundList ? getRefundList : []}>
<Table
bordered
// className='yisa-table'
dataSource={getRefundList}
columns={
handleRefund()
}
pagination={false}
loading={ajaxLoading}
/>
</ResultFlowResult>
: ''
}
@ -673,6 +693,27 @@ function ZombieCarCleanRecord(props) {
<button className="rejectBtn" onClick={rejectCancel}>取消</button>
</div>
</Modal>
<Modal
open={exportModal.visible}
onCancel={() => setExportModal({ ...exportModal, visible: false })}
title="导出"
onOk={handleOk}
>
{/* <Form form={expForm}>
<Form.Item
label="文件名"
name="filename"
//initialValue={pageName == 'arrearsCar' ? '' + moment().format('YYYYMMDDHHmmss') : exportModal.filename}
rules={[{ required: true }]}
>
<Input defaultValue={exportModal.filename} />
</Form.Item>
</Form> */}
<Radio.Group onChange={(e) => { setExpType(e.target.value)}} value={expType}>
<Radio value={0}>导出当前页</Radio>
<Radio value={1}>导出全部</Radio>
</Radio.Group>
</Modal>
</>
}

72
src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/ConfigParking/CarMgm/CarGroupMgm.jsx

@ -60,6 +60,7 @@ function CarGroupMgm({ id }) {
setEditModal({
visible: true,
data: record,
add: 0,
});
editForm.setFieldsValue({
name: record.name,
@ -80,6 +81,7 @@ function CarGroupMgm({ id }) {
const [editModal, setEditModal] = useState({
visible: false,
data: {},
add: 0
});
const [pageData, setPageData] = useState({
pn: 1,
@ -124,6 +126,53 @@ function CarGroupMgm({ id }) {
});
}, []);
const toCarGroup = (type) => {
let data = editForm.getFieldsValue()
type == 1 ?
ajax
.getAddCarGroup(data)
.then((res) => {
if (res.status === 20000) {
message.success(res.message)
setEditModal({
visible: false,
data: {},
add: 0,
});
setPageData({
pn: 1,
page_size: 15,
});
} else {
message.error(res.message);
}
})
.catch((err) => {
console.log(err);
})
:
ajax
.getEditCarGroup(data)
.then((res) => {
if (res.status === 20000) {
message.success(res.message)
setEditModal({
visible: false,
data: {},
add: 0,
});
setPageData({
pn: 1,
page_size: 15,
});
} else {
message.error(res.message);
}
})
.catch((err) => {
console.log(err);
});
}
useEffect(() => {
getVehicleGroup();
}, [pageData]);
@ -135,8 +184,8 @@ function CarGroupMgm({ id }) {
labelCol={{ span: 6 }}
form={searchForm}
initialValues={{
group_id: 0,
vehicle_type: 0,
group_id: '0',
vehicle_type: '0',
}}
>
<Row>
@ -193,6 +242,7 @@ function CarGroupMgm({ id }) {
setEditModal({
visible: true,
data: {},
add: 1,
});
editForm.resetFields();
}}
@ -223,21 +273,29 @@ function CarGroupMgm({ id }) {
</main>
{/* 编辑和新增弹窗 */}
<Modal
title="编辑车辆组"
title={editModal.add ? "添加车辆组" : "编辑车辆组"}
open={editModal.visible}
onCancel={() => setEditModal({ visible: false })}
onCancel={() => setEditModal({ visible: false, add: 0 })}
onOk={() => { toCarGroup(editModal.add) }}
width={1000}
>
<Form colon={false} labelCol={{ span: 6 }} form={editForm}>
<Row>
<Col span="4_8" style={{ width: "30%" }}>
<Form.Item label="车辆组名称" name="name">
<Input max />
<Input maxLength={15} showCount={true} />
</Form.Item>
</Col>
<Col span="4_8" style={{ width: "30%" }}>
<Form.Item label="车辆类型" name="vehicle_type">
<Select />
<Select
options={[
{ label: "免费车", value: 1 },
{ label: "临时车", value: 2 },
{ label: "军警车", value: 3 },
{ label: "月租车", value: 4, disabled: true },
]}
/>
</Form.Item>
</Col>
<Col span="4_8" style={{ width: "30%" }}>
@ -252,7 +310,7 @@ function CarGroupMgm({ id }) {
</Col>
<Col style={{ width: "30%" }}>
<Form.Item label="备注" name="note">
<TextArea />
<TextArea maxLength={20} showCount={true} />
</Form.Item>
</Col>
</Row>

47
src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/ConfigParking/CarMgm/CarManagement.jsx

@ -16,9 +16,10 @@ import {
} from "antd";
const { TextArea } = Input;
const { RangePicker } = DatePicker;
function CarManagement({ id: road_id }) {
function CarManagement({ id }) {
const [form] = Form.useForm();
const [editForm] = Form.useForm();
const [carGroup, setCarGroup] = useState([]);
const columns = [
{
title: "序号",
@ -68,6 +69,7 @@ function CarManagement({ id: road_id }) {
dataIndex: "effective_status",
key: "effective_status",
align: "center",
},
{
title: "状态",
@ -135,7 +137,7 @@ function CarManagement({ id: road_id }) {
</>
}
>
<Button type="primary">编辑</Button>
<Button type="primary">操作</Button>
</Popover>
);
},
@ -208,6 +210,21 @@ function CarManagement({ id: road_id }) {
useEffect(() => {
submit();
}, [pageData]);
useEffect(() => {
ajax
.getAllCarGroup({ road_id: id })
.then((res) => {
if (res.status === 20000) {
setCarGroup(res.data);
} else {
message.error(res.message);
}
})
.catch((err) => {
console.log(err);
});
}, []);
return (
<div style={{ margin: "20px 0 0" }}>
<header>
@ -216,11 +233,16 @@ function CarManagement({ id: road_id }) {
colon={false}
labelCol={{ span: 6 }}
onFinish={submit}
initialValues={{
group_id: '0',
effective_status: '0',
status:'0'
}}
>
<Row>
<Col span="4_8" style={{ width: "30%" }}>
<Form.Item label="车辆组" name="group_id">
<Select />
<Select options={carGroup} />
</Form.Item>
</Col>
<Col span="4_8" style={{ width: "30%" }}>
@ -240,12 +262,25 @@ function CarManagement({ id: road_id }) {
</Col>
<Col span="4_8" style={{ width: "30%" }}>
<Form.Item label="生效状态" name="effective_status">
<Select />
<Select
options={[
{ label: "全部", value: '0' },
{ label: "未生效", value: '1' },
{ label: "生效中", value: '2 ' },
{ label: "已过期", value: '3' },
]}
/>
</Form.Item>
</Col>
<Col span="4_8" style={{ width: "30%" }}>
<Form.Item label="状态" name="status">
<Select />
<Select
options={[
{ label: "全部", value: '0' },
{ label: "启用", value: '1' },
{ label: "禁用", value: '2' },
]}
/>
</Form.Item>
</Col>
<Col span="4_8" style={{ width: "30%" }}>
@ -266,7 +301,7 @@ function CarManagement({ id: road_id }) {
>
添加
</Button>
<Button type="primary">批量导入</Button>
<Button type="primary" onClick={()=>{}}>批量导入</Button>
</div>
</Form.Item>
</Col>

2
src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/ConfigParking/CarMgm/index.jsx

@ -17,7 +17,7 @@ function CarMgm(props) {
{
label: "车辆管理",
key: "2",
children: <CarManagement />,
children: <CarManagement id={id} group_id={1}/>,
},
{
label: "错峰车辆管理",

2
src/services/DataAnalysisPrediction/ParkingBusinessAly/index.js

@ -90,7 +90,7 @@ const getParkingAlyDurationParkingExp = (params) => {
//停车业务分析-停车时长分析-平均停车时长排行榜导出
const getParkingAlyDurationExp = (params) => {
return ajax({
url: "/get_parking_duration_export",
url: "/api/ana/dataanalysis/get_parking_duration_export",
type: "post",
data: params,
});

19
src/services/OutRoadMgm/OutSegment.js

@ -93,7 +93,22 @@ const getAllCarGroup = (params) => {
data: params,
});
};
/// 添加路段车辆组
const getAddCarGroup = (params) => {
return ajax({
url: "/api/orp/road/add_vehicle_group",
type: "post",
data: params,
});
};
/// 编辑路段车辆组
const getEditCarGroup = (params) => {
return ajax({
url: "/api/orp/road/edit_vehicle_group",
type: "post",
data: params,
});
};
///api/orp/road/get_road_vehicle_group 获取路段车辆组列表
const getRoadVehicleGroup = (params) => {
@ -428,6 +443,8 @@ export default {
getRoadServiceParameters,
getRoadAllChild,
getAllCarGroup,
getAddCarGroup,
getEditCarGroup,
getRoadVehicleGroup,
getVehicleList,
addVehicle,

3
src/services/search.js

@ -351,7 +351,8 @@ const monitorDel = (params) => {
// 获取或有运营商
const getOperator = (params) => {
return ajax({
url: "/api/bpm/operator/get_all_operator",
//url: "/api/bpm/operator/get_all_operator",
url: "/api/bpm/operator/get_on_job_operator",
type: "get",
data: params,
});

Loading…
Cancel
Save