diff --git a/web/client/src/sections/fillion/actions/infor.js b/web/client/src/sections/fillion/actions/infor.js index 583d9454..bced63ba 100644 --- a/web/client/src/sections/fillion/actions/infor.js +++ b/web/client/src/sections/fillion/actions/infor.js @@ -290,4 +290,37 @@ export function delVehicle(query) { msg: { error: '删除车辆信息失败' }, // reducer: { name: 'reportstatistic' } }); +} + +export function getPurchase(query) { + return dispatch => basicAction({ + type: 'get', + dispatch: dispatch, + query: query, + actionType: 'GET_PURCHASE', + url: ApiTable.getPurchase, + msg: { error: '获取治超信息失败' }, + // reducer: { name: 'reportstatistic' } + }); +} +export function putPurchase(query) { + return dispatch => basicAction({ + type: 'put', + dispatch: dispatch, + data: query, + actionType: 'PUT_PURCHASE', + url: ApiTable.putPurchase, + msg: { error: '获取治超信息失败' }, + // reducer: { name: 'reportstatistic' } + }); +} +export function delPurchase(query) { + return dispatch => basicAction({ + type: 'del', + dispatch: dispatch, + actionType: 'DEL_PURCHASE', + url: ApiTable.delPurchase.replace("{overspeedId}", query?.overspeedId), + msg: { error: '删除车辆信息失败' }, + // reducer: { name: 'reportstatistic' } + }); } \ No newline at end of file diff --git a/web/client/src/sections/fillion/components/infor/details.js b/web/client/src/sections/fillion/components/infor/details.js index cd0baa95..8f1e99f7 100644 --- a/web/client/src/sections/fillion/components/infor/details.js +++ b/web/client/src/sections/fillion/components/infor/details.js @@ -2,11 +2,11 @@ import React, { useEffect, useState } from 'react'; import { connect } from 'react-redux'; import { Form, Spin, Table } from 'antd'; import { DrawerForm, ProForm, ProFormText, ProFormSelect } from '@ant-design/pro-form'; -import { putRoadway, putSpecificVehicle, putHouseholds,putCircuit,putVehicle } from "../../actions/infor" +import { putRoadway, putSpecificVehicle, putHouseholds,putCircuit,putVehicle,putPurchase } from "../../actions/infor" import { putBridge } from "../../actions/infor" const UserModal = (props) => { - const { visible, onVisibleChange, typecard, rewkeys, data, recortd, sitename, dispatch, setRecortd, engineering } = props + const { visible, onVisibleChange, typecard, rewkeys, data, recortd, sitename, dispatch, setRecortd, setMonitor } = props const [newlys, setNewlys] = useState() //必填数据 const [newlysay, setNewlysay] = useState() //处理hou const [records, setRecords] = useState()//处理 @@ -65,6 +65,13 @@ const UserModal = (props) => { setNewlys(array?.splice(0, 2)) setNewlysay(array) } + if (rewkeys === 'zhichao') { + _.forIn(data, function (value, key) { + array.push({ name: value, type: key }) + }); + setNewlys(array?.splice(0, 2)) + setNewlysay(array) + } }, []) useEffect(() => { const arr = [] @@ -117,6 +124,13 @@ const UserModal = (props) => { setRecordsay(arr.splice(1, 2)) // setEstablishment(arr.splice(-1, 1)) setRecords(arr) + }if (rewkeys === 'zhichao') { + _.forIn(recortd, function (value, key) { + arr.push({ value: value, type: key }) + }); + setRecordsay(arr.splice(1, 2)) + // setEstablishment(arr.splice(-1, 1)) + setRecords(arr) } }, [recortd]) useEffect(() => { @@ -230,6 +244,24 @@ const UserModal = (props) => { return true } } + if (rewkeys === 'zhichao') { + if (typecard == '111') { + console.log(values) + const query = { ...values, overspeedId:records?.[0]?.value || '' } + dispatch(putPurchase(query)).then((res) => { + setSuccess(res.success) + setMonitor(res) + }) + return true + } else { + const query = { ...values } + dispatch(putPurchase(query)).then((res) => { + setSuccess(res.success) + setMonitor(res) + }) + return true + } + } } else { return false } }} diff --git a/web/client/src/sections/fillion/components/inforTable.js b/web/client/src/sections/fillion/components/inforTable.js index 5690aae7..d7af023b 100644 --- a/web/client/src/sections/fillion/components/inforTable.js +++ b/web/client/src/sections/fillion/components/inforTable.js @@ -1,21 +1,30 @@ -import React, { useEffect, useState } from 'react'; +import React, { useEffect, useState,useRef } from 'react'; import { connect } from 'react-redux'; import { Spin, Button, Popconfirm, Col, Input,Row } from 'antd'; import ProTable from '@ant-design/pro-table'; import './protable.less' import moment from 'moment'; -import { getReportStatistic } from "../actions/infor" +import { getPurchase,delPurchase } from "../actions/infor" import UserModal from './infor/details'; const InForTable = (props) => { const { dispatch, user, depData, depMessage, depLoading } = props const [rowSelected, setRowSelected] = useState([]) - const [counts, setCounts] = useState()//shuju const [modalVisible, setModalVisible] = useState(false); const [modalRecord, setModalRecord] = useState(); const [typecard, setTypecard] = useState(); - + const [recortd, setRecortd] = useState() + const [monitor, setMonitor] = useState() + const [delet, setDelet] = useState() + const [nameOfInspectionPoint, setNameOfInspectionPoint] = useState()//检测点名称 + const [licensePlate, setLicensePlate] = useState()//车牌号 + const [numberOfAxles, setNumberOfAxles] = useState()//车轴数 + const [overrunRateUpper, setOverrunRateUpper] = useState()//超限率上限 + const [overrunRateFloor, setOverrunRateFloor] = useState()//超限率下限 + const [testTime, setTestTime] = useState()//超限率下限 + const ref = useRef() + useEffect(() => { ref.current.reload() }, [monitor,delet,modalVisible]) //打开弹窗 const openModal = (type, record) => { setModalVisible(true); @@ -45,31 +54,52 @@ const InForTable = (props) => { const columns = [ { - title: '检测点名称', + title: '区/县', dataIndex: 'placeName', fixed: 'left', width: 120, options: 1, + search: false, backgroundColor: "#ffffff", fieldProps: { - onChange: (value, cs) => { - setSitename(value.currentTarget.value) - }, placeholder: '请输入检测点名称进行搜索', getPopupContainer: (triggerNode) => triggerNode.parentNode, }, + render: (dom, record) => { + return record.districtcounty + }, }, { - title: '车牌号', + title: '检测点名称', // search: false, dataIndex: 'containers1', fixed: 'left', width: 120, render: (dom, record) => { - return record.address + return record.nameOfInspectionPoint + }, + fieldProps: { + onChange: (value, cs) => { + setNameOfInspectionPoint(value.currentTarget.value) + }, + placeholder: '请输入车牌号进行搜索', + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + },{ + title: '车牌号码', + // search: false, + dataIndex: 'containers444', + + fixed: 'left', + width: 120, + render: (dom, record) => { + return record.licensePlate }, fieldProps: { + onChange: (value, cs) => { + setLicensePlate(value.currentTarget.value) + }, placeholder: '请输入车牌号进行搜索', getPopupContainer: (triggerNode) => triggerNode.parentNode, } @@ -80,9 +110,12 @@ const InForTable = (props) => { dataIndex: 'containers2', width: 120, render: (dom, record) => { - return record.address + return record.numberOfAxles }, fieldProps: { + onChange: (value, cs) => { + setNumberOfAxles(value.currentTarget.value) + }, placeholder: '请输入车轴数进行搜索', getPopupContainer: (triggerNode) => triggerNode.parentNode, } @@ -95,20 +128,28 @@ const InForTable = (props) => { // width: 120, render: (dom, record) => { - return record.address + return record.overrunRate + }, + fieldProps: { + placeholder: '请输入超限率进行搜索', + getPopupContainer: (triggerNode) => triggerNode.parentNode, }, - // fieldProps: { - // placeholder: '请输入超限率进行搜索', - // getPopupContainer: (triggerNode) => triggerNode.parentNode, - // }, renderFormItem: (item, { type, defaultRender, formItemProps, fieldProps, ...rest }, form) => { return - + { + setOverrunRateUpper(value.currentTarget.value) + }} + placeholder='输入超限率上限'/> - + { + setOverrunRateFloor(value.currentTarget.value) + }} + placeholder='输入超限率下限'/> @@ -123,7 +164,7 @@ const InForTable = (props) => { width: 120, render: (dom, record) => { - return record.address + return record.overrunWeight }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -137,7 +178,7 @@ const InForTable = (props) => { width: 120, render: (dom, record) => { - return record.address + return record.grossVehicleWeight }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -151,7 +192,7 @@ const InForTable = (props) => { width: 120, render: (dom, record) => { - return record.address + return record.vehicleCargoWeightLimit }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -164,9 +205,12 @@ const InForTable = (props) => { valueType: 'dateTime', width: 120, render: (dom, record) => { - return record.address + return record.testTime }, fieldProps: { + onChange: (value, cs) => { + setTestTime(cs) + }, getPopupContainer: (triggerNode) => triggerNode.parentNode, } }, { @@ -178,7 +222,7 @@ const InForTable = (props) => { width: 120, render: (dom, record) => { - return record.address + return record.nameOfBusinessOwner }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -193,7 +237,7 @@ const InForTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.businessAddress }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -208,7 +252,7 @@ const InForTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.notifier }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -223,7 +267,7 @@ const InForTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.notificationMethod }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -235,10 +279,10 @@ const InForTable = (props) => { valueType: 'dateRange', - width: 140, + width: 240, render: (dom, record) => { - return record.address + return record.notificationResults }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -253,7 +297,7 @@ const InForTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.processingTime }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -268,7 +312,7 @@ const InForTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.deductPoints }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -283,7 +327,23 @@ const InForTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.fine + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, + { + title: '备注', + search: false, + dataIndex: 'containers14', + valueType: 'dateRange', + + + width: 140, + + render: (dom, record) => { + return record.remarks }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -301,9 +361,18 @@ const InForTable = (props) => { onClick={() => { openModal('edit', record) setTypecard('111') - + setRecortd(record) }} - >编辑 + >编辑 } }, @@ -342,6 +411,7 @@ const InForTable = (props) => {
{ finishedProductTable = c; }} @@ -355,20 +425,26 @@ const InForTable = (props) => { }, }} columns={columns} - - dataSource={(counts || {}).rows || []} + dataSource={counts || []} + onReset={(v) => { + setNameOfInspectionPoint('') + setLicensePlate('') + setNumberOfAxles('') + setOverrunRateUpper('') + setOverrunRateFloor('') + setTestTime('') + }} request={async (params) => { const query = { - startDate: day[0], - endDate: day[1], - placeType: placeType, - regionId: regionId, - placeName: sitename, - limit: params.pageSize, - offset: ((params.current ? params.current : 1) - 1) * params.pageSize + nameOfInspectionPoint:nameOfInspectionPoint, + licensePlate:licensePlate, + numberOfAxles:numberOfAxles, + overrunRateUpper:overrunRateUpper, + overrunRateFloor:overrunRateFloor, + testTime:testTime } setRowSelected([]); - const res = await dispatch(getReportStatistic(query)); + const res = await dispatch(getPurchase(query)); setCounts(res.payload.data) return { ...res, @@ -390,15 +466,41 @@ const InForTable = (props) => { >
- + rewkeys={'zhichao'} + data={data} + recortd={recortd} + setMonitor={setMonitor} + // sitename={sitename} + setRecortd={setRecortd} + /> : ''}
) } +const data={ + "districtcounty": "区/县", + "nameOfInspectionPoint": "检测点名称", + "licensePlate": "车牌号码", + "numberOfAxles": "车轴数", + "overrunRate": "超限率", + "overrunWeight": "超限重量", + "grossVehicleWeight": "车货总重", + "vehicleCargoWeightLimit": "车货限重", + "testTime": "检测时间", + "nameOfBusinessOwner": "经营业户名称", + "businessAddress": "经营业户地址", + "notifier": "通知人", + "notificationMethod": "通知方式", + "notificationResults": "通知结果", + "processingTime": "处理时间", + "deductPoints": "扣分", + "fine": "罚款", + "remarks": "备注" +} function mapStateToProps(state) { const { auth, depMessage } = state; const pakData = (dep) => { diff --git a/web/client/src/sections/fillion/components/operationalTable.js b/web/client/src/sections/fillion/components/operationalTable.js index 0bbda6b8..cc827d2a 100644 --- a/web/client/src/sections/fillion/components/operationalTable.js +++ b/web/client/src/sections/fillion/components/operationalTable.js @@ -11,9 +11,6 @@ import HightModal from './highways/highwaysdata'; const OperaTionalTable = (props) => { const { dispatch, user, depData, depMessage, depLoading } = props const [rowSelected, setRowSelected] = useState([]) - // const [regionId, setRegionId] = useState()//区域id - // const [placeType, setPlaceType] = useState()//场所 - // const [day, setDay] = useState([moment('2022-03-01').format('YYYY-MM-DD'), moment().format('YYYY-MM-DD')])//日期 const [sitename, setSitename] = useState()//场所名称 const [counts, setCounts] = useState()//shuju const [modalVisible, setModalVisible] = useState(false); diff --git a/web/client/src/utils/webapi.js b/web/client/src/utils/webapi.js index 6a4e3a3e..a4723aba 100644 --- a/web/client/src/utils/webapi.js +++ b/web/client/src/utils/webapi.js @@ -90,6 +90,14 @@ delRoadway:'road/{roadId}', //公交信息 getCircuit:'bus/line',putCircuit:'bus/line',delCircuit:'bus/line/{lineId}', getVehicle:'bus/car',putVehicle:'bus/car',delVehicle:'bus/car/{carId}', + + + + +//治超管理 +getPurchase:'overspeed', +putPurchase:'overspeed', +delPurchase:'overspeed/{overspeedId}', };