diff --git a/api/app/lib/controllers/report/index.js b/api/app/lib/controllers/report/index.js index ae26cf8f..bbaf89c6 100644 --- a/api/app/lib/controllers/report/index.js +++ b/api/app/lib/controllers/report/index.js @@ -1,15 +1,15 @@ 'use strict'; const { QueryTypes } = require('sequelize'); -async function reportList (ctx) { +async function reportList(ctx) { try { const models = ctx.fs.dc.models; - const { limit, page, startTime, endTime, keyword, userId, reportType } = ctx.query + const { limit, page, startTime, endTime, keyword, userId, reportType, isTop } = ctx.query let findOption = { where: { }, - attributes: ['id', 'road', 'time', 'projectType', 'roadSectionStart', 'roadSectionEnd', 'reportType', 'content', 'longitude','latitude'], + attributes: ['id', 'road', 'time', 'projectType', 'roadSectionStart', 'roadSectionEnd', 'reportType', 'content', 'longitude', 'latitude'], include: [{ model: models.User, attributes: ['name'] @@ -39,7 +39,15 @@ async function reportList (ctx) { if (reportType) { findOption.where.reportType = reportType } - const reportRes = await models.Report.findAll(findOption) + let reportRes = null; + + if (isTop) { + const sqlStr = 'select * from (SELECT R.*, "row_number"() OVER(PARTITION BY R.user_id ORDER BY R."time" DESC) AS NEWINDEX FROM report AS R ) AS NR WHERE NEWINDEX = 1' + const sequelize = ctx.fs.dc.orm; + reportRes = await sequelize.query(sqlStr, { type: QueryTypes.SELECT }); + } else { + reportRes = await models.Report.findAll(findOption) + } ctx.status = 200; ctx.body = reportRes @@ -52,7 +60,7 @@ async function reportList (ctx) { } } -async function reportPosition (ctx) { +async function reportPosition(ctx) { try { const models = ctx.fs.dc.models; const { startTime, endTime, userId, reportType } = ctx.query @@ -102,7 +110,7 @@ async function reportPosition (ctx) { } } -async function reportDetail (ctx) { +async function reportDetail(ctx) { try { const models = ctx.fs.dc.models; const { reportId } = ctx.params @@ -124,7 +132,7 @@ async function reportDetail (ctx) { } } -async function createReport (ctx) { +async function createReport(ctx) { try { const { userId } = ctx.fs.api const models = ctx.fs.dc.models; @@ -146,7 +154,7 @@ async function createReport (ctx) { } } -async function deleteReport (ctx) { +async function deleteReport(ctx) { try { const models = ctx.fs.dc.models; const { reportId } = ctx.params; diff --git a/web/client/assets/color.less b/web/client/assets/color.less index 0d45e9f2..3a14a30f 100644 --- a/web/client/assets/color.less +++ b/web/client/assets/color.less @@ -174,7 +174,7 @@ button::-moz-focus-inner, [type='submit']::-moz-focus-inner {border-style: none;} fieldset {border: 0;} legend {color: inherit;} -mark {background-color: color(~`colorPalette("@{modal-footer-border-color-split}", 1)`);} +mark {background-color: #feffe6;} ::selection {color: #fff;background: @primary-color;} .anticon {color: inherit;} .ant-fade-enter, .ant-fade-appear {animation-fill-mode: both;} @@ -1149,18 +1149,10 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte .ant-mentions-dropdown-menu-item-active {background-color: @item-hover-bg;} .ant-menu-item-danger.ant-menu-item {color: #ff4d4f;} .ant-menu-item-danger.ant-menu-item:hover, .ant-menu-item-danger.ant-menu-item-active {color: #ff4d4f;} -<<<<<<< Updated upstream - -.ant-menu-item-danger.ant-menu-item:active {background: color(~`colorPalette("@{modal-header-border-color-split}", 1)`);} +.ant-menu-item-danger.ant-menu-item:active {background: color(~`colorPalette("@{slider-rail-background-color}", 1)`);} .ant-menu-item-danger.ant-menu-item-selected {color: #ff4d4f;} .ant-menu-item-danger.ant-menu-item-selected > a, .ant-menu-item-danger.ant-menu-item-selected > a:hover {color: #ff4d4f;} -.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected {background-color: color(~`colorPalette("@{modal-header-border-color-split}", 1)`);} -======= -.ant-menu-item-danger.ant-menu-item:active {background: color(~`colorPalette("@{segmented-label-hover-color}", 1)`);} -.ant-menu-item-danger.ant-menu-item-selected {color: #ff4d4f;} -.ant-menu-item-danger.ant-menu-item-selected > a, .ant-menu-item-danger.ant-menu-item-selected > a:hover {color: #ff4d4f;} -.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected {background-color: color(~`colorPalette("@{segmented-label-hover-color}", 1)`);} ->>>>>>> Stashed changes +.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected {background-color: color(~`colorPalette("@{slider-rail-background-color}", 1)`);} .ant-menu-inline .ant-menu-item-danger.ant-menu-item::after {border-right-color: #ff4d4f;} .ant-menu-dark .ant-menu-item-danger.ant-menu-item, .ant-menu-dark .ant-menu-item-danger.ant-menu-item:hover, .ant-menu-dark .ant-menu-item-danger.ant-menu-item > a {color: #ff4d4f;} .ant-menu-dark.ant-menu-dark:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected {color: #fff;background-color: #ff4d4f;} @@ -1730,64 +1722,31 @@ tr.ant-table-expanded-row:hover > td {background: @table-expanded-row-bg;} .ant-tag-checkable:active, .ant-tag-checkable-checked {color: #fff;} .ant-tag-checkable-checked {background-color: @primary-color;} .ant-tag-checkable:active {background-color: color(~`colorPalette("@{primary-color}", 7)`);} -<<<<<<< Updated upstream - -.ant-tag-pink {color: #c41d7f;background: color(~`colorPalette("@{component-background}", 1)`);border-color: #ffadd2;} - -======= ->>>>>>> Stashed changes -.ant-tag-pink {color: #c41d7f;background: #fff0f6;border-color: #ffadd2;} - +.ant-tag-pink {color: #c41d7f;background: color(~`colorPalette("@{table-expand-icon-bg}", 1)`);border-color: #ffadd2;} .ant-tag-pink-inverse {color: #fff;background: #eb2f96;border-color: #eb2f96;} -.ant-tag-magenta {color: #c41d7f;background: color(~`colorPalette("@{component-background}", 1)`);border-color: #ffadd2;} +.ant-tag-magenta {color: #c41d7f;background: color(~`colorPalette("@{table-expand-icon-bg}", 1)`);border-color: #ffadd2;} .ant-tag-magenta-inverse {color: #fff;background: #eb2f96;border-color: #eb2f96;} -<<<<<<< Updated upstream -.ant-tag-red {color: #cf1322;background: #fff1f0;border-color: #ffa39e;} - -.ant-tag-pink {color: #c41d7f;background: color(~`colorPalette("@{success-color-deprecated-bg}", 1)`);border-color: #ffadd2;} -.ant-tag-pink-inverse {color: #fff;background: #eb2f96;border-color: #eb2f96;} -.ant-tag-magenta {color: #c41d7f;background: color(~`colorPalette("@{success-color-deprecated-bg}", 1)`);border-color: #ffadd2;} -.ant-tag-magenta-inverse {color: #fff;background: #eb2f96;border-color: #eb2f96;} -.ant-tag-red {color: #cf1322;background: color(~`colorPalette("@{modal-header-border-color-split}", 1)`);border-color: #ffa39e;} - -======= -.ant-tag-red {color: #cf1322;background: color(~`colorPalette("@{segmented-label-hover-color}", 1)`);border-color: #ffa39e;} ->>>>>>> Stashed changes +.ant-tag-red {color: #cf1322;background: color(~`colorPalette("@{slider-rail-background-color}", 1)`);border-color: #ffa39e;} .ant-tag-red-inverse {color: #fff;background: #f5222d;border-color: #f5222d;} .ant-tag-volcano {color: #d4380d;background: #fff2e8;border-color: #ffbb96;} .ant-tag-volcano-inverse {color: #fff;background: #fa541c;border-color: #fa541c;} -.ant-tag-orange {color: #d46b08;background: color(~`colorPalette("@{alert-warning-border-color}", 1)`);border-color: #ffd591;} +.ant-tag-orange {color: #d46b08;background: #fff7e6;border-color: #ffd591;} .ant-tag-orange-inverse {color: #fff;background: #fa8c16;border-color: #fa8c16;} -.ant-tag-yellow {color: #d4b106;background: color(~`colorPalette("@{modal-footer-border-color-split}", 1)`);border-color: #fffb8f;} +.ant-tag-yellow {color: #d4b106;background: #feffe6;border-color: #fffb8f;} .ant-tag-yellow-inverse {color: #fff;background: #fadb14;border-color: #fadb14;} .ant-tag-gold {color: #d48806;background: #fffbe6;border-color: #ffe58f;} .ant-tag-gold-inverse {color: #fff;background: #faad14;border-color: #faad14;} .ant-tag-cyan {color: #08979c;background: #e6fffb;border-color: #87e8de;} .ant-tag-cyan-inverse {color: #fff;background: #13c2c2;border-color: #13c2c2;} -.ant-tag-lime {color: #7cb305;background: color(~`colorPalette("@{text-color-secondary}", 1)`);border-color: #eaff8f;} +.ant-tag-lime {color: #7cb305;background: #fcffe6;border-color: #eaff8f;} .ant-tag-lime-inverse {color: #fff;background: #a0d911;border-color: #a0d911;} .ant-tag-green {color: #389e0d;background: #f6ffed;border-color: #b7eb8f;} .ant-tag-green-inverse {color: #fff;background: #52c41a;border-color: #52c41a;} -<<<<<<< Updated upstream - -.ant-tag-blue {color: #096dd9;background: #e6f7ff;border-color: #91d5ff;} -.ant-tag-blue-inverse {color: #fff;background: #1890ff;border-color: #1890ff;} -.ant-tag-geekblue {color: #1d39c4;background: color(~`colorPalette("@{btn-primary-bg}", 1)`);border-color: #adc6ff;} - - -.ant-tag-blue {color: #096dd9;background: #e6f7ff;border-color: color(~`colorPalette("@{alert-info-border-color}", 5)`);} -.ant-tag-blue-inverse {color: #fff;background: #1890ff;border-color: #1890ff;} -.ant-tag-geekblue {color: #1d39c4;background: color(~`colorPalette("@{tree-bg}", 1)`);border-color: #adc6ff;} - -.ant-tag-geekblue-inverse {color: #fff;background: #2f54eb;border-color: #2f54eb;} -.ant-tag-purple {color: #531dab;background: #f9f0ff;border-color: #d3adf7;} -======= .ant-tag-blue {color: #096dd9;background: #e6f7ff;border-color: #91d5ff;} .ant-tag-blue-inverse {color: #fff;background: #1890ff;border-color: #1890ff;} -.ant-tag-geekblue {color: #1d39c4;background: color(~`colorPalette("@{dropdown-menu-submenu-disabled-bg}", 3)`);border-color: #adc6ff;} +.ant-tag-geekblue {color: #1d39c4;background: color(~`colorPalette("@{cascader-menu-bg}", 1)`);border-color: #adc6ff;} .ant-tag-geekblue-inverse {color: #fff;background: #2f54eb;border-color: #2f54eb;} -.ant-tag-purple {color: #531dab;background: color(~`colorPalette("@{alert-error-bg-color}", 1)`);border-color: #d3adf7;} ->>>>>>> Stashed changes +.ant-tag-purple {color: #531dab;background: color(~`colorPalette("@{disabled-color-dark}", 4)`);border-color: #d3adf7;} .ant-tag-purple-inverse {color: #fff;background: #722ed1;border-color: #722ed1;} .ant-tag-success {color: #52c41a;background: @success-color-deprecated-bg;border-color: @success-color-deprecated-border;} .ant-tag-processing {color: @primary-color;background: @info-color-deprecated-bg;border-color: @info-color-deprecated-border;} @@ -2025,15 +1984,7 @@ a.ant-typography.ant-typography-disabled:hover, .ant-typography a.ant-typography .ant-upload-list-picture .ant-upload-list-item-error, .ant-upload-list-picture-card .ant-upload-list-item-error {border-color: #ff4d4f;} .ant-upload-list-picture .ant-upload-list-item:hover .ant-upload-list-item-info, .ant-upload-list-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info {background: transparent;} .ant-upload-list-picture .ant-upload-list-item-uploading, .ant-upload-list-picture-card .ant-upload-list-item-uploading {border-style: dashed;} -<<<<<<< Updated upstream - -.ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#e6f7ff'], .ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#e6f7ff'] {fill: @error-color-deprecated-bg;} - -.ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#e6f7ff'], .ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#e6f7ff'] {fill: @error-color-deprecated-bg;} - -======= .ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#e6f7ff'], .ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#e6f7ff'] {fill: @error-color-deprecated-bg;} ->>>>>>> Stashed changes .ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#1890ff'], .ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill='#1890ff'] {fill: #ff4d4f;} .ant-upload-list-picture-card .ant-upload-list-item-info::before {background-color: rgba(0, 0, 0, 0.5);} .ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye, .ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download, .ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete {color: rgba(255, 255, 255, 0.85);} diff --git a/web/client/assets/images/leadership/weizhis.png b/web/client/assets/images/leadership/weizhis.png new file mode 100644 index 00000000..2a3eaf75 Binary files /dev/null and b/web/client/assets/images/leadership/weizhis.png differ diff --git a/web/client/assets/images/leadership/youofanye.png b/web/client/assets/images/leadership/youofanye.png new file mode 100644 index 00000000..e2f5177b Binary files /dev/null and b/web/client/assets/images/leadership/youofanye.png differ diff --git a/web/client/assets/images/leadership/zuofanye.png b/web/client/assets/images/leadership/zuofanye.png new file mode 100644 index 00000000..8c082084 Binary files /dev/null and b/web/client/assets/images/leadership/zuofanye.png differ diff --git a/web/client/src/sections/fillion/actions/infor.js b/web/client/src/sections/fillion/actions/infor.js index f9275335..bced63ba 100644 --- a/web/client/src/sections/fillion/actions/infor.js +++ b/web/client/src/sections/fillion/actions/infor.js @@ -21,7 +21,7 @@ export function getDepMessage() { // msg: { error: '获取填报信息失败' }, // reducer: { name: 'reportstatistic' } // }); - + // } export function getOperaTional(query) { return dispatch => basicAction({ @@ -34,6 +34,17 @@ export function getOperaTional(query) { // reducer: { name: 'reportstatistic' } }); } +export function putOperaTional(query) { + return dispatch => basicAction({ + type: 'put', + dispatch: dispatch, + data: query, + actionType: 'PUT_OPERA_TIONAL', + url: ApiTable.putOperaTional, + msg: { error: '获取车辆信息失败' }, + // reducer: { name: 'reportstatistic' } + }); +} export function getSpecificVehicle(query) { return dispatch => basicAction({ type: 'get', @@ -45,6 +56,28 @@ export function getSpecificVehicle(query) { // reducer: { name: 'reportstatistic' } }); } +export function putSpecificVehicle(query) { + return dispatch => basicAction({ + type: 'put', + dispatch: dispatch, + data: query, + actionType: 'put_SPECIFIC_VEHICLE', + url: ApiTable.putSpecificVehicle, + msg: { error: '编辑车辆信息失败' }, + // reducer: { name: 'reportstatistic' } + }); +} +export function putHouseholds(query) { + return dispatch => basicAction({ + type: 'put', + dispatch: dispatch, + data: query, + actionType: 'put_HOUSEHOLDS', + url: ApiTable.putHouseholds, + msg: { error: '编辑业户信息失败' }, + // reducer: { name: 'reportstatistic' } + }); +} export function getHouseholds(query) { return dispatch => basicAction({ type: 'get', @@ -121,4 +154,173 @@ export function putProject(query) { msg: { error: '编辑工程信息失败' }, // reducer: { name: 'reportstatistic' } }); +} +export function getHighways(query) { + return dispatch => basicAction({ + type: 'get', + dispatch: dispatch, + query: query, + actionType: 'GET_HIGHWAYS', + url: ApiTable.getHighways, + msg: { error: '获取路政信息失败' }, + // reducer: { name: 'reportstatistic' } + }); +} +export function putHighways(query) { + return dispatch => basicAction({ + type: 'put', + dispatch: dispatch, + data: query, + actionType: 'GET_HIGHWAYS', + url: ApiTable.putHighways, + msg: { error: '编辑路政信息失败' }, + // reducer: { name: 'reportstatistic' } + }); +} +export function getCircuit(query) { + return dispatch => basicAction({ + type: 'get', + dispatch: dispatch, + query: query, + actionType: 'GET_CIRCUIT', + url: ApiTable.getCircuit, + msg: { error: '获取线路信息失败' }, + // reducer: { name: 'reportstatistic' } + }); +} +export function putCircuit(query) { + return dispatch => basicAction({ + type: 'put', + dispatch: dispatch, + data: query, + actionType: 'PUT_CIRCUIT', + url: ApiTable.putCircuit, + msg: { error: '编辑线路信息失败' }, + // reducer: { name: 'reportstatistic' } + }); +} +export function getVehicle(query) { + return dispatch => basicAction({ + type: 'get', + dispatch: dispatch, + query: query, + actionType: 'GET_VEHICLE', + url: ApiTable.getVehicle, + msg: { error: '获取车辆信息失败' }, + // reducer: { name: 'reportstatistic' } + }); +} +export function putVehicle(query) { + return dispatch => basicAction({ + type: 'put', + dispatch: dispatch, + data: query, + actionType: 'PUT_VEHICLE', + url: ApiTable.putVehicle, + msg: { error: '编辑车辆信息失败' }, + // reducer: { name: 'reportstatistic' } + }); +} +export function delRoadway(query) { + return dispatch => basicAction({ + type: 'del', + dispatch: dispatch, + actionType: 'DEL_ROADWAY', + url: ApiTable.delRoadway.replace("{roadId}", query?.roadId), + msg: { error: '删除车辆信息失败' }, + // reducer: { name: 'reportstatistic' } + }); +} +export function delProject(query) { + return dispatch => basicAction({ + type: 'del', + dispatch: dispatch, + actionType: 'DEL_PROJECT', + url: ApiTable.delProject.replace("{projectId}", query?.projectId), + msg: { error: '删除工程信息失败' }, + // reducer: { name: 'reportstatistic' } + }); +} +export function delBridge(query) { + return dispatch => basicAction({ + type: 'del', + dispatch: dispatch, + actionType: 'DEL_BRIDGE', + url: ApiTable.delBridge.replace("{bridgeId}", query?.bridgeId), + msg: { error: '删除桥梁信息失败' }, + // reducer: { name: 'reportstatistic' } + }); +} +export function delSpecificVehicle(query) { + return dispatch => basicAction({ + type: 'del', + dispatch: dispatch, + actionType: 'DEL_SPECIFICVENICLE', + url: ApiTable.delSpecificVehicle.replace("{vehicleId}", query?.vehicleId), + msg: { error: '删除车辆信息失败' }, + // reducer: { name: 'reportstatistic' } + }); +} +export function delHouseholds(query) { + return dispatch => basicAction({ + type: 'del', + dispatch: dispatch, + actionType: 'DEL_HOUSEHOLDS', + url: ApiTable.delHouseholds.replace("{businessId}", query?.businessId), + msg: { error: '删除业户信息失败' }, + // reducer: { name: 'reportstatistic' } + }); +} +export function delCircuit(query) { + return dispatch => basicAction({ + type: 'del', + dispatch: dispatch, + actionType: 'DEL_CIRCUIT', + url: ApiTable.delCircuit.replace("{lineId}", query?.lineId), + msg: { error: '删除运营线路信息失败' }, + // reducer: { name: 'reportstatistic' } + }); +} +export function delVehicle(query) { + return dispatch => basicAction({ + type: 'del', + dispatch: dispatch, + actionType: 'DEL_VEHICLE', + url: ApiTable.delVehicle.replace("{carId}", query?.carId), + 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/bridgeTable.js b/web/client/src/sections/fillion/components/bridgeTable.js index cd794928..a1c3eded 100644 --- a/web/client/src/sections/fillion/components/bridgeTable.js +++ b/web/client/src/sections/fillion/components/bridgeTable.js @@ -1,10 +1,10 @@ -import React, { useEffect, useState } from 'react'; +import React, { useEffect, useState, useRef } from 'react'; import { connect } from 'react-redux'; import { Spin, Button, Popconfirm, Badge } from 'antd'; import ProTable from '@ant-design/pro-table'; import './protable.less' import moment from 'moment'; -import { getBridge, getProject } from "../actions/infor" +import { getBridge, getProject,delBridge,delProject } from "../actions/infor" import UserModal from './infor/details'; import ProjectModal from './project/project'; @@ -14,7 +14,7 @@ const BrideTable = (props) => { // 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 [sitename, setSitename] = useState()//场所名称 const [counts, setCounts] = useState()//shuju const [modalVisible, setModalVisible] = useState(false); const [modalVisibleyilan, setModalVisibleyilan] = useState(false); @@ -22,6 +22,11 @@ const BrideTable = (props) => { const [typecard, setTypecard] = useState(); const [activeKey, setActiveKey] = useState('tab1'); const [recortd, setRecortd] = useState() + const [whichofits, setWhichofits] = useState('qiaoliang') + const [delet, setDelet] = useState() + + const ref = useRef() + useEffect(() => { ref.current.reload() }, [modalVisible, modalVisibleyilan,whichofits,delet]) const columns = { tab1: [ { @@ -30,12 +35,9 @@ const BrideTable = (props) => { 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) => { @@ -45,17 +47,19 @@ const BrideTable = (props) => { }, { title: '桥梁名称', - search: false, dataIndex: 'containers', - fixed: 'left', width: 120, render: (dom, record) => { return record.bridgeName }, fieldProps: { + onChange: (value, cs) => { + setSitename(value.currentTarget.value) + }, + placeholder: '请输入桥梁名称进行搜索', getPopupContainer: (triggerNode) => triggerNode.parentNode, - } + }, }, { title: '中心桩号', @@ -1489,7 +1493,16 @@ const BrideTable = (props) => { setTypecard('111') setRecortd(record) }} - >编辑 + >编辑 } }, @@ -1532,9 +1545,9 @@ const BrideTable = (props) => { options: 1, backgroundColor: "#ffffff", fieldProps: { - // onChange: (value, cs) => { - // setSitename(value.currentTarget.value) - // }, + onChange: (value, cs) => { + setSitename(value.currentTarget.value) + }, placeholder: '请输入项目名称进行搜索', getPopupContainer: (triggerNode) => triggerNode.parentNode, }, @@ -1670,7 +1683,16 @@ const BrideTable = (props) => { setTypecard('111') setRecortd(record) }} - >编辑 + >编辑 } }, @@ -1706,27 +1728,6 @@ const BrideTable = (props) => { }, ] } - const requestBridge = () => { - const query = { - } - setRowSelected([]); - dispatch(getBridge(query)).then((res) => { - setCounts(res?.payload?.data) - console.log(res) - }); - - } - //工程数据 - const requestProject = () => { - const query = { - type: '桥梁' - } - setRowSelected([]); - dispatch(getProject(query)).then((res) => { - setCounts(res?.payload?.data) - }) - - } //打开弹窗 const openModal = (type, record) => { setModalVisible(true); @@ -1766,7 +1767,7 @@ const BrideTable = (props) => {
{ { key: 'tab1', label: { - requestBridge() + setWhichofits('qiaoliang') }}>桥梁{activeKey === 'tab1'}, }, { key: 'tab2', label: { - requestProject() + setWhichofits('gongcheng') }}>工程一览{activeKey === 'tab2'}, }, @@ -1796,12 +1797,7 @@ const BrideTable = (props) => { style={{ width: "100% ", overflow: "auto", height: '760px' }} rowKey='id' onReset={(v) => { - // const { id } = depMessage[0] - // console.log(id) - // setRegionId(id) - // setPlaceType(-1) - // setDay([moment('2022-03-01').format('YYYY-MM-DD'), moment().format('YYYY-MM-DD')]) - // setSitename('') + setSitename('') }} rowSelection={{ selectedRowKeys: rowSelected, @@ -1813,16 +1809,33 @@ const BrideTable = (props) => { dataSource={counts || []} request={async (params) => { - const query = { - - } - setRowSelected([]); - const res = await dispatch(getBridge(query)); - setCounts(res.payload.data) - return { - ...res, - total: res.payload.data ? res.payload.data.count : 0 + if(whichofits=='qiaoliang'){ + const query = { + bridgeName:sitename + } + setRowSelected([]); + const res = await dispatch(getBridge(query)); + // console.log(res) + + setCounts(res.payload.data) + return { + ...res, + total: res.payload.data ? res.payload.data.count : 0 + } + }if(whichofits=='gongcheng'){ + const query = { + type: 'bridge', + // type:sitename + } + setRowSelected([]); + const res = await dispatch(getProject(query)); + setCounts(res.payload.data) + return { + ...res, + total: res.payload.data ? res.payload.data.count : 0 + } } + }} search={{ defaultCollapsed: false, diff --git a/web/client/src/sections/fillion/components/gis/patrolGis.js b/web/client/src/sections/fillion/components/gis/patrolGis.js index 7222c84e..2d15fbc5 100644 --- a/web/client/src/sections/fillion/components/gis/patrolGis.js +++ b/web/client/src/sections/fillion/components/gis/patrolGis.js @@ -5,13 +5,15 @@ import { useState } from 'react'; import { DatePicker } from 'antd'; import Bounds from './bounds'; import moment from 'moment'; +import { getReportList } from '../../actions/patrol' const { RangePicker } = DatePicker; function PatrolGis(props) { const { reportList, userId, dispatch } = props; const [mapComplete, setMapComplete] = useState(false); const [mapObj, setMapObj] = useState(); const [dateRange, setDateRange] = useState(); - + let markers = []; + let PATH = []; useEffect(() => { if (AMap) loadMap(); return () => { @@ -24,8 +26,23 @@ function PatrolGis(props) { }, [true]) useEffect(() => { + if (mapObj) { + mapObj.remove(markers); + mapObj.remove(PATH); + } + let query = { userId, reportType: 'patrol' } if (userId) { - + if ((dateRange && dateRange instanceof Array)) { + query.startTime = moment(dateRange[0]).startOf('day').format('YYYY-MM-DD HH:mm:ss') + query.endTime = moment(dateRange[1]).endOf('day').format('YYYY-MM-DD HH:mm:ss') + } else { + query.startTime = moment().add(-6, 'day').startOf('day').format('YYYY-MM-DD HH:mm:ss') + query.endTime = moment().endOf('day').format('YYYY-MM-DD HH:mm:ss') + } + dispatch(getReportList(query)); + } else { + query.isTop = true; + dispatch(getReportList(query)); } }, [userId, dateRange]) @@ -33,9 +50,10 @@ function PatrolGis(props) { if (reportList && mapObj) { mapObj.clearMap(); renderMarkers(); - renderPath(); + if (userId) + renderPath(); } - }, [reportList, mapObj]) + }, [reportList, mapObj, userId]) const loadMap = () => { const map = new AMap.Map("amapId", { @@ -86,11 +104,12 @@ function PatrolGis(props) { position: new AMap.LngLat(longitude, latitude), icon: icon, offset: new AMap.Pixel(-12, -12), - extData: { - name: user.name || '', - } + // extData: { + // name: user.name || '', + // } }); // marker.setTitle(s.name); + markers.push(marker); map.add(marker); }) } @@ -111,6 +130,7 @@ function PatrolGis(props) { if (longitude && latitude) path.push([item.longitude, item.latitude]) }); + PATH = path; var polyline1 = new AMap.Polyline({ map: map, path: path, // 设置线覆盖物路径 @@ -122,9 +142,13 @@ function PatrolGis(props) { } return ( -
+
- { setDateRange(dateString) }} /> +
+ { setDateRange(dateString) }} + /> +
{mapObj ? : ''}
) diff --git a/web/client/src/sections/fillion/components/highways/highwaysdata.js b/web/client/src/sections/fillion/components/highways/highwaysdata.js new file mode 100644 index 00000000..1aab30c7 --- /dev/null +++ b/web/client/src/sections/fillion/components/highways/highwaysdata.js @@ -0,0 +1,106 @@ +import React, { useEffect, useState } from 'react'; +import { connect } from 'react-redux'; +import { Form, Spin, Table } from 'antd'; +import { ModalForm, ProForm, ProFormText,ProFormSelect } from '@ant-design/pro-form'; +import { putOperaTional,putHighways } from "../../actions/infor" + +const HightModal = (props) => { + const { visible, onVisibleChange, typecard, rewkeys, recortd, dispatch, setRecortd } = props + const [success,setSuccess]=useState() + + useEffect(() => { + return () => { + setRecortd() + } + }, [setRecortd]) + // console.log(recortd) + return ( + + {/* { + newlysay ? */} + { + if (rewkeys === 'passenger') { + + console.log(values) + const query = { ...values, id:recortd?.id } + dispatch(putOperaTional(query)).then((res) => { + setSuccess(res.success) + }) + return true + + } + if (rewkeys === 'highways') { + + console.log(values) + const query = { ...values, id:recortd?.id } + dispatch(putHighways(query)).then((res) => { + setSuccess(res.success) + }) + return true + + } + + }} + initialValues={recortd} + > + {typecard == '111' ? + + + + + + : + + } + + + {/* : '' + } */} + + + ) +} +function mapStateToProps(state) { + const { depMessage } = state; + const pakData = (dep) => { + return dep.map((d) => { + return { + title: d.name, + value: d.id, + children: pakData(d.subordinate) + } + }) + } + let depData = pakData(depMessage.data || []) + return { + loading: depMessage.isRequesting, + depData, + }; +} +export default connect(mapStateToProps)(HightModal); \ No newline at end of file diff --git a/web/client/src/sections/fillion/components/highwaysTable.js b/web/client/src/sections/fillion/components/highwaysTable.js index af48d670..ce783267 100644 --- a/web/client/src/sections/fillion/components/highwaysTable.js +++ b/web/client/src/sections/fillion/components/highwaysTable.js @@ -1,27 +1,27 @@ -import React, { useEffect, useState } from 'react'; +import React, { useEffect, useState,useRef } from 'react'; import { connect } from 'react-redux'; import { Spin, Button, Popconfirm, Badge } from 'antd'; import ProTable from '@ant-design/pro-table'; import './protable.less' -import moment from 'moment'; -import { getReportStatistic } from "../actions/infor" -import UserModal from './infor/details'; +import { getHighways } from "../actions/infor" +import HightModal from './highways/highwaysdata'; + const HigwaysTable = (props) => { - const { dispatch, user, depData, depMessage, depLoading } = props + const { dispatch, user, } = 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); + const [modalVisibleyilan, setModalVisibleyilan] = useState(false); const [modalRecord, setModalRecord] = useState(); const [typecard, setTypecard] = useState(); + const [recortd, setRecortd] = useState() + const [sitename, setSitename] = useState()//桥梁名称 + const ref = useRef() + useEffect(() => { ref.current.reload() }, [ modalVisibleyilan]) //打开弹窗 -const openModal = (type, record) => { - setModalVisible(true); +const hightModal = (type, record) => { + setModalVisibleyilan(true); // setModalType(type); if (type == 'edit') { setModalRecord(record); @@ -61,6 +61,9 @@ const exports = (ids, counts) => { placeholder: '请输入类型进行搜索', getPopupContainer: (triggerNode) => triggerNode.parentNode, }, + render: (dom, record) => { + return record.name + }, }, { title: '数量', @@ -70,7 +73,7 @@ const exports = (ids, counts) => { fixed: 'left', width: 120, render: (dom, record) => { - return record.address + return record.count }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -86,8 +89,9 @@ const exports = (ids, counts) => { render: (dom, record) => { return
@@ -99,18 +103,14 @@ const exports = (ids, counts) => {
{ finishedProductTable = c; }} style={{ width: "100% ", overflow: "auto", height: '760px' }} rowKey='id' onReset={(v) => { - const { id } = depMessage[0] - console.log(id) - setRegionId(id) - setPlaceType(-1) - setDay([moment('2022-03-01').format('YYYY-MM-DD'), moment().format('YYYY-MM-DD')]) - setSitename('') + setSitename('') }} rowSelection={{ selectedRowKeys: rowSelected, @@ -120,46 +120,30 @@ const exports = (ids, counts) => { }} columns={columns} - dataSource={(counts || {}).rows || []} + dataSource={counts || []} 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 + name:sitename } setRowSelected([]); - const res = await dispatch(getReportStatistic(query)); + const res = await dispatch(getHighways(query)); setCounts(res.payload.data) return { ...res, total: res.payload.data ? res.payload.data.count : 0 } }} - search={{ - defaultCollapsed: false, - optionRender: (searchConfig, formProps, dom) => [ - ...dom.reverse(), - // { props.exports(rowSelected, counts) }}> - // - // - ], - }} - >
- + rewkeys={'highways'} + recortd={recortd} + setRecortd={setRecortd} + /> : ''}
) } diff --git a/web/client/src/sections/fillion/components/infor/details.js b/web/client/src/sections/fillion/components/infor/details.js index fa79c9f5..8f1e99f7 100644 --- a/web/client/src/sections/fillion/components/infor/details.js +++ b/web/client/src/sections/fillion/components/infor/details.js @@ -1,21 +1,23 @@ import React, { useEffect, useState } from 'react'; import { connect } from 'react-redux'; import { Form, Spin, Table } from 'antd'; -import { DrawerForm, ProForm, ProFormText } from '@ant-design/pro-form'; -import { putRoadway } from "../../actions/infor" +import { DrawerForm, ProForm, ProFormText, ProFormSelect } from '@ant-design/pro-form'; +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, date, 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()//处理 const [recordsay, setRecordsay] = useState()//必填数据 - const [success, setSuccess] = useState() //状态 + // const [success, setSuccess] = useState() //状态 + // const [establishment, setEstablishment] = useState() //业户类型 + console.log(recortd) useEffect(() => { const array = [] if (rewkeys === 'transportation') { - const xindata=[...data] + const xindata = [...data] setNewlys(xindata?.splice(0, 2)) setNewlysay(xindata) } if (rewkeys === 'bridge') { @@ -24,7 +26,51 @@ const UserModal = (props) => { }); setNewlys(array?.splice(0, 2)) setNewlysay(array) - console.log(array) + // console.log(array) + } + if (rewkeys === 'weihuo') { + _.forIn(data, function (value, key) { + array.push({ name: value, type: key }) + }); + setNewlys(array?.splice(0, 2)) + setNewlysay(array) + // console.log(array) + } + if (rewkeys === 'chuzu') { + _.forIn(data, function (value, key) { + array.push({ name: value, type: key }) + }); + array?.splice(1, 1) + setNewlys(array?.splice(0, 2)) + setNewlysay(array) + } + if (rewkeys === 'yehu') { + _.forIn(data, function (value, key) { + array.push({ name: value, type: key }) + }); + setNewlys(array?.splice(0, 2)) + + setNewlysay(array) + // console.log(array) + }if (rewkeys === 'xianlu') { + _.forIn(data, function (value, key) { + array.push({ name: value, type: key }) + }); + setNewlys(array?.splice(0, 2)) + setNewlysay(array) + }if (rewkeys === 'cheliang') { + _.forIn(data, function (value, key) { + array.push({ name: value, type: key }) + }); + 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(() => { @@ -43,12 +89,55 @@ const UserModal = (props) => { setRecordsay(arr.splice(1, 2)) setRecords(arr) } + if (rewkeys === 'weihuo') { + _.forIn(recortd, function (value, key) { + arr.push({ value: value, type: key }) + }); + setRecordsay(arr.splice(1, 2)) + setRecords(arr) + } + if (rewkeys === 'chuzu') { + _.forIn(recortd, function (value, key) { + arr.push({ value: value, type: key }) + }); + setRecordsay(arr.splice(1, 2)) + setRecords(arr) + } if (rewkeys === 'yehu') { + _.forIn(recortd, function (value, key) { + arr.push({ value: value, type: key }) + }); + setRecordsay(arr.splice(1, 2)) + // setEstablishment(arr.splice(-1, 1)) + setRecords(arr) + } + if (rewkeys === 'xianlu') { + _.forIn(recortd, function (value, key) { + arr.push({ value: value, type: key }) + }); + setRecordsay(arr.splice(1, 2)) + // setEstablishment(arr.splice(-1, 1)) + setRecords(arr) + }if (rewkeys === 'cheliang') { + _.forIn(recortd, function (value, key) { + arr.push({ value: value, type: key }) + }); + 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(() => { return () => { setRecortd() } - }, []) + }, [setRecortd]) // console.log(recortd) return ( @@ -59,38 +148,122 @@ const UserModal = (props) => { visible={visible} onVisibleChange={onVisibleChange} onFinish={(values) => { - if (rewkeys === 'transportation') { - if (typecard == '111') { - console.log(values) - const query = { ...values, level: sitename, roadId: records?.[0]?.value || '' } - dispatch(putRoadway(query)).then((res) => { - setSuccess(res.success) - }) - return success - } else { - const query = { ...values, level: sitename } - dispatch(putRoadway(query)).then((res) => { - setSuccess(res.success) - }) - return success + console.log(values) + if (Object.values(values).length > 0) { + if (rewkeys === 'transportation') { + if (typecard == '111') { + const query = { ...values, level: sitename, roadId: records?.[0]?.value || '' } + dispatch(putRoadway(query)).then((res) => { + setSuccess(res.success) + }) + return true + } else { + const query = { ...values, level: sitename } + dispatch(putRoadway(query)).then((res) => { + setSuccess(res.success) + }) + return true + } + } + if (rewkeys === 'bridge') { + if (typecard == '111') { + console.log(values) + const query = { ...values, roadId: records?.[0]?.value || '' } + dispatch(putBridge(query)).then((res) => { + setSuccess(res.success) + }) + return true + } else { + const query = { ...values } + dispatch(putBridge(query)).then((res) => { + setSuccess(res.success) + }) + return true + } + } + if (rewkeys === 'weihuo' || rewkeys === 'chuzu') { + if (typecard == '111') { + console.log(values) + const query = { ...values, vehicleId: records?.[0]?.value || '', type: rewkeys === 'chuzu' ? '出租车' : '危货' } + dispatch(putSpecificVehicle(query)).then((res) => { + setSuccess(res.success) + }) + return true + } else { + const query = { ...values, type: rewkeys } + dispatch(putSpecificVehicle(query)).then((res) => { + setSuccess(res.success) + }) + return true + } + } + if (rewkeys === 'yehu') { + if (typecard == '111') { + console.log(values) + const query = { ...values, businessId: records?.[0]?.value, type: rewkeys == 'chuzu' ? '出租车' : '危货' } + dispatch(putHouseholds(query)).then((res) => { + setSuccess(res.success) + }) + return true + } else { + const query = { ...values, type: rewkeys === 'chuzu' ? '出租车' : '危货' } + dispatch(putHouseholds(query)).then((res) => { + setSuccess(res.success) + }) + return true + } + }if (rewkeys === 'xianlu') { + if (typecard == '111') { + console.log(values) + const query = { ...values, lineId:records?.[0]?.value || '' } + dispatch(putCircuit(query)).then((res) => { + setSuccess(res.success) + }) + return true + } else { + const query = { ...values } + dispatch(putCircuit(query)).then((res) => { + setSuccess(res.success) + }) + return true + } } - } - if (rewkeys === 'bridge') { - if (typecard == '111') { - console.log(values) - const query = { ...values, roadId: records?.[0]?.value || '' } - dispatch(putBridge(query)).then((res) => { - setSuccess(res.success) - }) - return success - } else { - const query = { ...values } - dispatch(putBridge(query)).then((res) => { - setSuccess(res.success) - }) - return success + if (rewkeys === 'cheliang') { + if (typecard == '111') { + console.log(values) + const query = { ...values, carId:records?.[0]?.value || '' } + dispatch(putVehicle(query)).then((res) => { + setSuccess(res.success) + }) + return true + } else { + const query = { ...values } + dispatch(putVehicle(query)).then((res) => { + setSuccess(res.success) + }) + 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 } + }} initialValues={recortd} > @@ -104,7 +277,7 @@ const UserModal = (props) => { tooltip="最长为 24 位" placeholder="请输入名称" value={recordsay?.[0]?.value} - rules={[{ required: true, message: "必填" }]} + // rules={[{ required: true, message: "必填" }]} /> { tooltip="最长为 24 位" placeholder="请输入名称" value={recordsay?.[1]?.value} - rules={[{ required: true, message: "必填" }]} + // rules={[{ required: true, message: "必填" }]} /> - + {rewkeys === 'yehu' ? + : null + } {newlysay?.map((item, index) => { return { label={newlys?.[0]?.name} tooltip="最长为 24 位" placeholder="请输入名称" - // value={recordssy?.[0]?.value} - rules={[{ required: true, message: "必填" }]} + // value={recordssy?.[0]?.value} + // rules={[{ required: true, message: "必填" }]} /> + {rewkeys === 'yehu' ? + : null + } {newlysay?.map((item, index) => { return { 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 653ae268..cc827d2a 100644 --- a/web/client/src/sections/fillion/components/operationalTable.js +++ b/web/client/src/sections/fillion/components/operationalTable.js @@ -1,45 +1,29 @@ -import React, { useEffect, useState } from 'react'; +import React, { useEffect, useState,useRef } from 'react'; import { connect } from 'react-redux'; import { Spin, Button, Popconfirm, Badge } from 'antd'; import ProTable from '@ant-design/pro-table'; import './protable.less' -import moment from 'moment'; -import { getOperaTional, getSpecificVehicle, getHouseholds } from "../actions/infor" +import { getOperaTional, getSpecificVehicle, getHouseholds,delSpecificVehicle,delHouseholds } from "../actions/infor" import UserModal from './infor/details'; +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 [sitename, setSitename] = useState()//场所名称 const [counts, setCounts] = useState()//shuju const [modalVisible, setModalVisible] = useState(false); + const [modalVisibleyilan, setModalVisibleyilan] = useState(false); const [modalRecord, setModalRecord] = useState(); const [typecard, setTypecard] = useState(); const [activeKey, setActiveKey] = useState('tab1'); - //客运请求 - const requestoperational = () => { - const query = '' - setRowSelected([]); - const res = dispatch(getOperaTional(query)); - setCounts(res.payload.data) - } - //危货出租车请求 - const requestspecificvehicle = (name) => { - const query = name - setRowSelected([]); - const res = dispatch(getSpecificVehicle(query)); - setCounts(res.payload.data) - } - // - const requesthouseholds = () => { - const query = '' - setRowSelected([]); - const res = dispatch(getHouseholds(query)); - setCounts(res.payload.data) - } + const [recortd, setRecortd] = useState() + const [rewkeys, setRewkeys] = useState('keyun') + const [delet, setDelet] = useState() + + const ref = useRef() + useEffect(() => { ref.current.reload() }, [modalVisible, modalVisibleyilan,rewkeys,activeKey,delet]) //打开弹窗 const openModal = (type, record) => { setModalVisible(true); @@ -50,6 +34,16 @@ const OperaTionalTable = (props) => { setModalRecord(null); } } + //打开弹窗 + const hightModal = (type, record) => { + setModalVisibleyilan(true); + // setModalType(type); + if (type == 'edit') { + setModalRecord(record); + } else { + setModalRecord(null); + } + } //批量导出 const exports = (ids, counts) => { // console.log(user); @@ -78,12 +72,13 @@ const OperaTionalTable = (props) => { search: false, fieldProps: { - onChange: (value, cs) => { - setSitename(value.currentTarget.value) - }, + placeholder: '请输入道路名称进行搜索', getPopupContainer: (triggerNode) => triggerNode.parentNode, }, + render: (dom, record) => { + return record.name + }, }, { title: '数量', @@ -93,7 +88,7 @@ const OperaTionalTable = (props) => { fixed: 'left', width: 120, render: (dom, record) => { - return record.address + return record.count }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -109,9 +104,9 @@ const OperaTionalTable = (props) => { render: (dom, record) => { return
@@ -130,10 +125,13 @@ const OperaTionalTable = (props) => { onChange: (value, cs) => { setSitename(value.currentTarget.value) }, - placeholder: '请输入业户名称进行搜索', + placeholder: '请输入业户称进行搜索', getPopupContainer: (triggerNode) => triggerNode.parentNode, }, - }, + render: (dom, record) => { + return record.nameOfBusinessOwner + }, + }, { title: '车籍地', search: false, @@ -142,7 +140,7 @@ const OperaTionalTable = (props) => { fixed: 'left', width: 120, render: (dom, record) => { - return record.address + return record.vehicleRegistry }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -156,7 +154,7 @@ const OperaTionalTable = (props) => { // align: 'right', width: 120, render: (dom, record) => { - return record.address + return record.licensePlateNumber }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -172,7 +170,7 @@ const OperaTionalTable = (props) => { width: 120, render: (dom, record) => { - return record.address + return record.fuelType }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -200,7 +198,7 @@ const OperaTionalTable = (props) => { width: 120, render: (dom, record) => { - return record.address + return record.economicNature }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -214,7 +212,7 @@ const OperaTionalTable = (props) => { width: 120, render: (dom, record) => { - return record.address + return record.approvedPassengerCapacity }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -228,7 +226,7 @@ const OperaTionalTable = (props) => { width: 120, render: (dom, record) => { - return record.address + return record.approvedLoadMass }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -242,7 +240,7 @@ const OperaTionalTable = (props) => { width: 120, render: (dom, record) => { - return record.address + return record.numberOfVehicleAxles }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -257,7 +255,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.vehicleBrand }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -272,7 +270,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.natureOfBusiness }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -287,7 +285,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.vehicleOperationStatus }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -302,7 +300,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.busTypeAndClass }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -317,7 +315,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.annualReviewResults }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -332,7 +330,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.dateOfThisAnnualReview }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -347,13 +345,13 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.dateOfNextAnnualReview }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, } }, { - title: '注册等级日期', + title: '注册登记日期', search: false, dataIndex: 'time9', valueType: 'dateRange', @@ -362,7 +360,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.dateOfRegistration }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -377,7 +375,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.sourceOfTransportationCapacity }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -392,7 +390,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.fromTheExpiryDate }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -407,7 +405,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.expiryDate }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -422,7 +420,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.engineDisplacement }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -437,7 +435,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.engineNumber }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -452,7 +450,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.vehicleEnginePower }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -467,7 +465,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.businessLicenseNo }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -482,7 +480,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.licensePlateColor }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -497,7 +495,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.totalVehicleMass }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -512,7 +510,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.totalQuasiTractionMassOfVehicle }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -527,7 +525,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.roadTransportCertificateNo }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -542,7 +540,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.vehicleHeight }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -557,7 +555,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.vehicleConductor }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -572,7 +570,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.vehicleWidth }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -587,7 +585,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.vehicleType }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -602,7 +600,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.vehicleTypeWithDrivingLicense }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -617,7 +615,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.vehicleWheelbase }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -632,7 +630,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.ratingDate }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -647,7 +645,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.technicalEvaluationGrade }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -662,7 +660,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.nextRatingDate }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -677,7 +675,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.creationDate }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -696,7 +694,16 @@ const OperaTionalTable = (props) => { openModal('edit', record) setTypecard('111') }} - >编辑
+ >编辑 } }, @@ -744,11 +751,13 @@ const OperaTionalTable = (props) => { onChange: (value, cs) => { setSitename(value.currentTarget.value) }, - placeholder: '请输入业户名称进行搜索', + placeholder: '请输入业户称进行搜索', getPopupContainer: (triggerNode) => triggerNode.parentNode, }, - }, - { + render: (dom, record) => { + return record.nameOfBusinessOwner + }, + }, { title: '品名', search: false, dataIndex: 'containers', @@ -756,7 +765,7 @@ const OperaTionalTable = (props) => { fixed: 'left', width: 120, render: (dom, record) => { - return record.address + return record.productName }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -765,12 +774,12 @@ const OperaTionalTable = (props) => { { title: '车籍地', search: false, - dataIndex: 'time2', - valueType: 'dateRange', - // align: 'right', + dataIndex: 'containers', + + fixed: 'left', width: 120, render: (dom, record) => { - return record.address + return record.vehicleRegistry }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -779,28 +788,28 @@ const OperaTionalTable = (props) => { { title: '车牌号', search: false, - dataIndex: 'time3', + dataIndex: 'time2', valueType: 'dateRange', - - - + // align: 'right', width: 120, render: (dom, record) => { - return record.address + return record.licensePlateNumber }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, } - }, { + }, + { title: '燃料类型', search: false, - dataIndex: 'time4', + dataIndex: 'time3', valueType: 'dateRange', + width: 120, render: (dom, record) => { - return record.address + return record.fuelType }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -808,7 +817,7 @@ const OperaTionalTable = (props) => { }, { title: '住址', search: false, - dataIndex: 'time5', + dataIndex: 'time4', valueType: 'dateRange', @@ -822,13 +831,13 @@ const OperaTionalTable = (props) => { }, { title: '经济性质', search: false, - dataIndex: 'time6', + dataIndex: 'time5', valueType: 'dateRange', width: 120, render: (dom, record) => { - return record.address + return record.economicNature }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -836,13 +845,13 @@ const OperaTionalTable = (props) => { }, { title: '核定载客位数', search: false, - dataIndex: 'time7', + dataIndex: 'time6', valueType: 'dateRange', width: 120, render: (dom, record) => { - return record.address + return record.approvedPassengerCapacity }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -850,13 +859,13 @@ const OperaTionalTable = (props) => { }, { title: '核定载质量', search: false, - dataIndex: 'time8', + dataIndex: 'time7', valueType: 'dateRange', width: 120, render: (dom, record) => { - return record.address + return record.approvedLoadMass }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -864,14 +873,13 @@ const OperaTionalTable = (props) => { }, { title: '车辆车轴数', search: false, - dataIndex: 'time9', + dataIndex: 'time8', valueType: 'dateRange', - width: 140, - + width: 120, render: (dom, record) => { - return record.address + return record.numberOfVehicleAxles }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -886,7 +894,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.vehicleBrand }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -901,7 +909,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.natureOfBusiness }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -916,7 +924,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.vehicleOperationStatus }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -931,7 +939,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.busTypeAndClass }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -946,7 +954,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.annualReviewResults }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -961,7 +969,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.dateOfThisAnnualReview }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -976,7 +984,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.dateOfNextAnnualReview }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -991,7 +999,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.dateOfRegistration }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -1006,7 +1014,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.sourceOfTransportationCapacity }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -1021,7 +1029,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.fromTheExpiryDate }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -1036,7 +1044,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.expiryDate }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -1051,7 +1059,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.engineDisplacement }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -1066,7 +1074,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.engineNumber }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -1081,7 +1089,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.vehicleEnginePower }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -1096,7 +1104,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.businessLicenseNo }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -1111,7 +1119,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.licensePlateColor }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -1126,7 +1134,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.totalVehicleMass }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -1141,7 +1149,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.totalQuasiTractionMassOfVehicle }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -1156,7 +1164,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.roadTransportCertificateNo }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -1171,7 +1179,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.vehicleHeight }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -1186,7 +1194,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.vehicleConductor }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -1201,7 +1209,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.vehicleWidth }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -1216,7 +1224,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.vehicleType }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -1231,7 +1239,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.vehicleTypeWithDrivingLicense }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -1246,7 +1254,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.vehicleWheelbase }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -1261,7 +1269,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.ratingDate }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -1276,7 +1284,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.technicalEvaluationGrade }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -1291,7 +1299,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.nextRatingDate }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -1306,7 +1314,7 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.creationDate }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -1325,7 +1333,17 @@ const OperaTionalTable = (props) => { openModal('edit', record) setTypecard('111') }} - >编辑 + >编辑 + } }, { @@ -1362,7 +1380,7 @@ const OperaTionalTable = (props) => { }, ], tab4: [ { - title: '路线名称', + title: '业户名称', dataIndex: 'placeName', fixed: 'left', width: 120, @@ -1372,40 +1390,43 @@ const OperaTionalTable = (props) => { onChange: (value, cs) => { setSitename(value.currentTarget.value) }, - placeholder: '请输入道路名称进行搜索', + placeholder: '请输入业户称进行搜索', getPopupContainer: (triggerNode) => triggerNode.parentNode, }, + render: (dom, record) => { + return record.nameOfBusinessOwner + }, }, { - title: '路线代码', + title: '品名', search: false, dataIndex: 'containers', fixed: 'left', width: 120, render: (dom, record) => { - return record.address + return record.productName }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, } }, { - title: '路段序号', + title: '信用社会代码', search: false, dataIndex: 'time2', valueType: 'dateRange', // align: 'right', width: 120, render: (dom, record) => { - return record.address + return record.creditSocialCode }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, } }, { - title: '乡镇编码', + title: '行政区划', search: false, dataIndex: 'time3', valueType: 'dateRange', @@ -1414,13 +1435,13 @@ const OperaTionalTable = (props) => { width: 120, render: (dom, record) => { - return record.address + return record.administrativeDivision }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, } }, { - title: '起点地名', + title: '经济性质', search: false, dataIndex: 'time4', valueType: 'dateRange', @@ -1428,13 +1449,13 @@ const OperaTionalTable = (props) => { width: 120, render: (dom, record) => { - return record.address + return record.economicNature }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, } }, { - title: '起点桩号', + title: '地址', search: false, dataIndex: 'time5', valueType: 'dateRange', @@ -1448,7 +1469,7 @@ const OperaTionalTable = (props) => { getPopupContainer: (triggerNode) => triggerNode.parentNode, } }, { - title: '起点分界点类别', + title: '联系电话', search: false, dataIndex: 'time6', valueType: 'dateRange', @@ -1456,13 +1477,13 @@ const OperaTionalTable = (props) => { width: 120, render: (dom, record) => { - return record.address + return record.contactNumber }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, } }, { - title: '止点地名', + title: '电子邮箱', search: false, dataIndex: 'time7', valueType: 'dateRange', @@ -1470,13 +1491,13 @@ const OperaTionalTable = (props) => { width: 120, render: (dom, record) => { - return record.address + return record.email }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, } }, { - title: '止点分界点类别', + title: '法定代表人', search: false, dataIndex: 'time8', valueType: 'dateRange', @@ -1484,13 +1505,13 @@ const OperaTionalTable = (props) => { width: 120, render: (dom, record) => { - return record.address + return record.legalRepresentative }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, } }, { - title: '止点桩号', + title: '法人证件类型', search: false, dataIndex: 'time9', valueType: 'dateRange', @@ -1499,13 +1520,13 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.typeOfLegalPersonCertificate }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, } }, { - title: '路段类型', + title: '运输性质', search: false, dataIndex: 'time9', valueType: 'dateRange', @@ -1514,13 +1535,13 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.natureOfTransportation }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, } }, { - title: '路网调整前路线编码', + title: '法人证件号码', search: false, dataIndex: 'time9', valueType: 'dateRange', @@ -1529,13 +1550,13 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.legalPersonCertificateNumber }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, } }, { - title: '原路段序号', + title: '法定代表人电话', search: false, dataIndex: 'time9', valueType: 'dateRange', @@ -1544,13 +1565,13 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.telephoneNumberOfLegalRepresentative }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, } }, { - title: '原路段起点桩号', + title: '经营业户负责人姓名', search: false, dataIndex: 'time9', valueType: 'dateRange', @@ -1559,13 +1580,13 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.nameOfThePersonInChargeOfTheBusiness }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, } }, { - title: '原路段止点桩号', + title: '经营业户负责人电话号码', search: false, dataIndex: 'time9', valueType: 'dateRange', @@ -1574,13 +1595,13 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.telephoneNumberOfThePersonInChargeOfTheBusiness }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, } }, { - title: '路线等级', + title: '经办人', search: false, dataIndex: 'time9', valueType: 'dateRange', @@ -1589,13 +1610,13 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.handledBy }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, } }, { - title: '路段性质', + title: '经办人电话', search: false, dataIndex: 'time9', valueType: 'dateRange', @@ -1604,28 +1625,28 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.phoneNumberOfHandler }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, } }, { - title: '建成时间', + title: '经营范围', search: false, dataIndex: 'time9', valueType: 'dateRange', - width: 140, + width: 440, render: (dom, record) => { - return record.address + return record.natureOfBusiness }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, } }, { - title: '改建时间', + title: '经营状态', search: false, dataIndex: 'time9', valueType: 'dateRange', @@ -1634,13 +1655,13 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.businessStatus }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, } }, { - title: '建设性质', + title: '经营许可证号', search: false, dataIndex: 'time9', valueType: 'dateRange', @@ -1649,13 +1670,13 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.businessLicenseNo }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, } }, { - title: '最近一次修复养护年度', + title: '有效期起', search: false, dataIndex: 'time9', valueType: 'dateRange', @@ -1664,13 +1685,13 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.fromTheExpiryDate }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, } }, { - title: 'GBM及文明样板路', + title: '有效期止', search: false, dataIndex: 'time9', valueType: 'dateRange', @@ -1679,13 +1700,13 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.expiryDate }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, } }, { - title: '地貌', + title: '发证机构', search: false, dataIndex: 'time9', valueType: 'dateRange', @@ -1694,13 +1715,13 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.issuingAuthority }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, } }, { - title: '收费性质', + title: '核发日期', search: false, dataIndex: 'time9', valueType: 'dateRange', @@ -1709,13 +1730,13 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.dateOfIssuance }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, } }, { - title: '所属收费站', + title: '证照类别', search: false, dataIndex: 'time9', valueType: 'dateRange', @@ -1724,13 +1745,13 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.licenseCategory }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, } }, { - title: '涵洞数量', + title: '证照发放类型', search: false, dataIndex: 'time9', valueType: 'dateRange', @@ -1739,13 +1760,13 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.licenseIssuanceType }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, } }, { - title: '技术等级', + title: '共有车辆数', search: false, dataIndex: 'time9', valueType: 'dateRange', @@ -1754,13 +1775,13 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.numberOfSharedVehicles }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, } }, { - title: '路面类型', + title: '创建日期', search: false, dataIndex: 'time9', valueType: 'dateRange', @@ -1769,764 +1790,69 @@ const OperaTionalTable = (props) => { width: 140, render: (dom, record) => { - return record.address + return record.creationDate }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, } - }, { - title: '面层厚度(厘米)', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - + }, + { + title: '操作', + dataIndex: 'creatTime', + valueType: 'dateTimeRange', + hideInSearch: true, + width: 120, + fixed: 'right', render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '路面宽度', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, + return
- render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, } - }, { - title: '路基宽度', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - + }, + { + key: "direction", + hideInTable: true, + dataIndex: "direction", + order: 6, + renderFormItem: (item, { type, defaultRender, ...rest }, form, record) => { + return ( +
+ +
- width: 140, - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '是否晴雨通车', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '车道特征', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '设计时速', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '是否城管路段', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '管养单位', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '路政管理单位', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '列养情况', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '列养资金来源', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '养护时间', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '可绿化里程', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '已绿化里程', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '重复道路路段类型', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '重复路段序号', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '重复路段路线编码', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '计划资金类别', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '计划年度', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '计划文号', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '计划项目唯一编码', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '计划项目路线编码', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '计划项目名称', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '计划项目类型', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '完工情况', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '完工年度', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '计划资金类别', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '计划年度', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '计划文号', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '计划项目唯一编码', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '计划项目名称', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '完工情况', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '完工年度', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '桩号范围', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '填报单位', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '变更原因', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '变更时间', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '是否按干线公路管理接养', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '备注', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '上年路线编码', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '上年路线名称', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '上年起点桩号', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '上年止点桩号', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '图形里程', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '桩号里程', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '所在区县', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, { - title: '所在地市', - search: false, - dataIndex: 'time9', - valueType: 'dateRange', - - - width: 140, - - render: (dom, record) => { - return record.address - }, - fieldProps: { - getPopupContainer: (triggerNode) => triggerNode.parentNode, - } - }, - { - title: '操作', - dataIndex: 'creatTime', - valueType: 'dateTimeRange', - hideInSearch: true, - width: 120, - fixed: 'right', - render: (dom, record) => { - return
- - } - }, - { - key: "direction", - hideInTable: true, - dataIndex: "direction", - order: 6, - renderFormItem: (item, { type, defaultRender, ...rest }, form, record) => { - return ( -
- -
- - - ); + ); }, }, ] @@ -2535,6 +1861,7 @@ const OperaTionalTable = (props) => {
{ items: [ { key: 'tab1', - label: requestoperational()}>客运{activeKey === 'tab1'}, + label: { + setRewkeys('keyun') + }}>客运{activeKey === 'tab1'}, }, { key: 'tab2', - label: { requestspecificvehicle('出租车') }}>出租车{activeKey === 'tab2'}, + label: { { + setRewkeys('chuzu') + } }}>出租车{activeKey === 'tab2'}, }, { key: 'tab3', - label: { requestspecificvehicle('危货') }}>危险货运{activeKey === 'tab3'}, + label: { { + setRewkeys('weihuo') + } }}>危险货运{activeKey === 'tab3'}, }, { key: 'tab4', - label: { requesthouseholds() }}>业户{activeKey === 'tab4'}, + label: { + setRewkeys('yehu') + }}>业户{activeKey === 'tab4'}, }, ], @@ -2575,24 +1910,61 @@ const OperaTionalTable = (props) => { setRowSelected(selectedRowKeys); }, }} + onReset={(v) => { + setSitename('') + }} columns={columns[activeKey]} - dataSource={(counts || {}).rows || []} + dataSource={counts || []} request={async (params, sort, filter) => { - const query = '' + if(rewkeys=='keyun'){ + const query = {} setRowSelected([]); const res = await dispatch(getOperaTional(query)); - console.log(res) setCounts(res.payload.data) return { ...res, total: res.payload.data ? res.payload.data.count : 0 - } + }} + if(rewkeys=='chuzu'){ + const query = { + type:'出租车', + nameOfBusinessOwner:sitename + } + setRowSelected([]); + const res = await dispatch(getSpecificVehicle(query)); + setCounts(res.payload.data) + return { + ...res, + total: res.payload.data ? res.payload.data.count : 0 + }} + if(rewkeys=='weihuo'){ + const query = { + type:'危货', + nameOfBusinessOwner:sitename + } + setRowSelected([]); + const res = await dispatch(getSpecificVehicle(query)); + setCounts(res.payload.data) + return { + ...res, + total: res.payload.data ? res.payload.data.count : 0 + }} + if(rewkeys=='yehu'){ + const query = { + nameOfBusinessOwner:sitename + } + setRowSelected([]); + const res = await dispatch(getHouseholds(query)); + setCounts(res.payload.data) + return { + ...res, + total: res.payload.data ? res.payload.data.count : 0 + }} }} search={{ defaultCollapsed: false, optionRender: (searchConfig, formProps, dom) => [ - console.log(dom), ...dom.reverse(), ['tab2','tab3','tab4'].includes(activeKey) ? { props.exports(rowSelected, counts) }}>
- + rewkeys={rewkeys} + data={rewkeys==='yehu'?data:date} + recortd={recortd} + // sitename={sitename} + setRecortd={setRecortd} + /> : ''} + {modalVisibleyilan ? : ''}
) } +const date={ + "nameOfBusinessOwner": "业户名称", + "productName": "品名", + "vehicleRegistry": "车籍地", + "licensePlateNumber": "车牌号", + "fuelType": "燃料类型", + "address": "住址", + "economicNature": "经济性质", + "approvedPassengerCapacity": "核定载客位数", + "approvedLoadMass": "核定载质量", + "numberOfVehicleAxles": "车辆车轴数", + "vehicleBrand": "车辆厂牌", + "natureOfBusiness": "经营范围", + "vehicleOperationStatus": "车辆营运状态", + "busTypeAndClass": "客车类型与等级", + "annualReviewResults": "年审结果", + "dateOfThisAnnualReview": "本次年审日期", + "dateOfNextAnnualReview": "下次年审日期", + "dateOfRegistration": "注册登记日期", + "sourceOfTransportationCapacity": "运力来源", + "fromTheExpiryDate": "有效期起", + "expiryDate": "有效期止", + "engineDisplacement": "发动机排量", + "engineNumber": "发动机号", + "vehicleEnginePower": "车辆发动机功率", + "businessLicenseNo": "经营许可证号", + "licensePlateColor": "车牌颜色", + "totalVehicleMass": "车辆总质量", + "totalQuasiTractionMassOfVehicle": "车辆准牵引总质量", + "roadTransportCertificateNo": "道路运输证号", + "vehicleHeight": "车辆车高", + "vehicleConductor": "车辆车长", + "vehicleWidth": "车辆车宽", + "vehicleType": "车辆类型", + "vehicleTypeWithDrivingLicense": "行驶证车辆类型", + "vehicleWheelbase": "车辆轴距", + "ratingDate": "等级评定日期", + "technicalEvaluationGrade": "技术评定等级", + "nextRatingDate": "下次等级评定日期", + "creationDate": "创建日期" +} +const data={ + "nameOfBusinessOwner": "业户名称", + "productName": "品名", + "creditSocialCode": "信用社会代码", + "administrativeDivision": "行政区划", + "economicNature": "经济性质", + "address": "地址", + "contactNumber": "联系电话", + "email": "电子邮箱", + "legalRepresentative": "法定代表人", + "typeOfLegalPersonCertificate": "法人证件类型", + "natureOfTransportation": "运输性质", + "legalPersonCertificateNumber": "法人证件号码", + "telephoneNumberOfLegalRepresentative": "法定代表人电话", + "nameOfThePersonInChargeOfTheBusiness": "经营业户负责人姓名", + "telephoneNumberOfThePersonInChargeOfTheBusiness": "经营业户负责人电话号码", + "handledBy": "经办人", + "phoneNumberOfHandler": "经办人电话", + "natureOfBusiness": "经营范围", + "businessStatus": "经营状态", + "businessLicenseNo": "经营许可证号", + "fromTheExpiryDate": "有效期起", + "expiryDate": "有效期止", + "issuingAuthority": "发证机构", + "dateOfIssuance": "核发日期", + "licenseCategory": "证照类别", + "licenseIssuanceType": "证照发放类型", + "numberOfSharedVehicles": "共有车辆数", + "creationDate": "创建日期", + 'type':'类型' +} function mapStateToProps(state) { const { auth, depMessage } = state; const pakData = (dep) => { diff --git a/web/client/src/sections/fillion/components/patrolTable.js b/web/client/src/sections/fillion/components/patrolTable.js index 049170ed..6a5d8caa 100644 --- a/web/client/src/sections/fillion/components/patrolTable.js +++ b/web/client/src/sections/fillion/components/patrolTable.js @@ -126,7 +126,7 @@ const DetailList = (props) => { dataIndex: 'userName', align: 'center', render: (text, record) => { - return record.user.name + return record?.user?.name || '' } }, { title: '上报时间', @@ -254,6 +254,7 @@ const PatrolTable = (props) => { const [record, setRecord] = useState(); const [dateRange, setDateRange] = useState(); const [detailVisible, setDetailVisible] = useState(false) + const [activeTabKey1, setActiveTabKey1] = useState('tab1'); const { RangePicker } = DatePicker; @@ -265,15 +266,27 @@ const PatrolTable = (props) => { useEffect(() => { if (record) { - let query = { userId: record.id, reportType: 'patrol' } - if ((dateRange && dateRange instanceof Array)) { - query.startTime = moment(dateRange[0]).startOf('day').format('YYYY-MM-DD HH:mm:ss') - query.endTime = moment(dateRange[1]).endOf('day').format('YYYY-MM-DD HH:mm:ss') - } - dispatch(getReportList(query)); + queryData(); } }, [record, dateRange]) + const queryData = () => { + let query = { userId: record.id, reportType: 'patrol' } + if ((dateRange && dateRange instanceof Array)) { + query.startTime = moment(dateRange[0]).startOf('day').format('YYYY-MM-DD HH:mm:ss') + query.endTime = moment(dateRange[1]).endOf('day').format('YYYY-MM-DD HH:mm:ss') + } + dispatch(getReportList(query)); + } + + useEffect(() => { + if (activeTabKey1 && activeTabKey1 == 'tab2') { + setRecord(null); + } else if (activeTabKey1 && activeTabKey1 == 'tab1') { + setRecord(userList[0]); + } + }, [activeTabKey1]) + const handelRefresh = () => { let query = { userId: record.id, reportType: 'patrol' } dispatch(getReportList(query)); @@ -301,16 +314,28 @@ const PatrolTable = (props) => { ], - tab2: + tab2: }; - const [activeTabKey1, setActiveTabKey1] = useState('tab1'); const onTab1Change = (key) => { setActiveTabKey1(key); }; + + const handleChangeRecord = (newRecord) => { + let target = null; + if (!record || newRecord.id != record.id) { + target = newRecord; + } + setRecord(target); + } + return (
- setRecord(record)} record={record} userList={userList} loading={userLoading} /> + handleChangeRecord(record)} + record={record} + userList={userList} + loading={userLoading} /> { label={newlys?.[0]?.name} tooltip="最长为 24 位" placeholder="请输入名称" - value={recordsay?.[0]?.value} + // value={recordsay?.[0]?.value} rules={[{ required: true, message: "必填" }]} /> { label={newlys?.[1]?.name} tooltip="最长为 24 位" placeholder="请输入名称" - value={recordsay?.[1]?.value} + // value={recordsay?.[1]?.value} rules={[{ required: true, message: "必填" }]} /> { 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 [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 [activeKey, setActiveKey] = useState('tab1'); const [modalVisible, setModalVisible] = useState(false); const [modalRecord, setModalRecord] = useState(); const [typecard, setTypecard] = useState(); + const [recortd, setRecortd] = useState() + const [rewkeys, setRewkeys] = useState('xianlu') + const [delet, setDelet] = useState() - - //打开弹窗 - const openModal = (type, record) => { + const ref = useRef() + useEffect(() => { ref.current.reload() }, [modalVisible,delet,rewkeys]) +//xianlu请求 +const requestxianlu = (name) => { + const query = name + setRowSelected([]); + dispatch(getCircuit(query)).then((res)=>{ + setCounts(res.payload.data) + }) +} +//cheliang请求 +const requestcheliang = (name) => { + const query = '' + setRowSelected([]); + dispatch(getVehicle(query)).then((res)=>{ + setCounts(res.payload.data) + }) +} + //打开弹窗 + const openModal = (type, record) => { setModalVisible(true); // setModalType(type); if (type == 'edit') { @@ -51,13 +71,13 @@ const PublicTable = (props) => { tab1: [ { title: '公司', - search: false, + search: false, dataIndex: 'containers', fixed: 'left', width: 120, render: (dom, record) => { - return record.address + return record.company }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -77,6 +97,9 @@ const PublicTable = (props) => { placeholder: '请输入所属车队', getPopupContainer: (triggerNode) => triggerNode.parentNode, }, + render: (dom, record) => { + return record.fleet + }, }, { title: '车队长', @@ -86,7 +109,7 @@ const PublicTable = (props) => { // align: 'right', width: 120, render: (dom, record) => { - return record.address + return record.carCaptain }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -97,12 +120,12 @@ const PublicTable = (props) => { search: false, dataIndex: 'time3', valueType: 'dateRange', - initialValue: day, + width: 120, render: (dom, record) => { - return record.address + return record.assistantCarCaptain }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -112,11 +135,11 @@ const PublicTable = (props) => { search: false, dataIndex: 'time4', valueType: 'dateRange', - initialValue: day, + width: 120, render: (dom, record) => { - return record.address + return record.officeLocation }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -126,11 +149,11 @@ const PublicTable = (props) => { search: false, dataIndex: 'time5', valueType: 'dateRange', - initialValue: day, + width: 120, render: (dom, record) => { - return record.address + return record.lineName }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -140,16 +163,240 @@ const PublicTable = (props) => { search: false, dataIndex: 'time6', valueType: 'dateRange', - initialValue: day, + + + width: 120, + render: (dom, record) => { + return record.lineType + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '线路划分', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + + + width: 120, + render: (dom, record) => { + return record.lineDivision + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: 'GPS编号', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + + + width: 120, + render: (dom, record) => { + return record.gPSNumber + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '起点终点', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + + + width: 120, + render: (dom, record) => { + return record.startingPointEndPoint + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '车辆数', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + + + width: 120, + render: (dom, record) => { + return record.numberOfVehicles + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '全程公里数', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + + + width: 120, + render: (dom, record) => { + return record.totalKilometers + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '票价', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + + + width: 120, + render: (dom, record) => { + return record.ticketPrice + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '开通时间', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + + + width: 120, + render: (dom, record) => { + return record.openingTime + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '运行时间', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + + + width: 120, + render: (dom, record) => { + return record.runningTime + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '开班时间夏令', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + + + width: 120, + render: (dom, record) => { + return record.openingTimeSummer + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '收班时间夏令', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + + + width: 120, + render: (dom, record) => { + return record.shiftClosingTimeSummer + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '开班时间冬令', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + + + width: 120, + render: (dom, record) => { + return record.openingTimeWinter + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '收班时间冬令', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + + + width: 120, + render: (dom, record) => { + return record.shiftClosingTimeWinter + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '沿途站点上行', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + + + width: 420, + render: (dom, record) => { + return record.uplinkOfStationsAlongTheWay + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '沿途站点下行', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + + + width: 420, + render: (dom, record) => { + return record.downlinkOfStationsAlongTheWay + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '所属区域', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + + + width: 120, + render: (dom, record) => { + return record.area + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '备注', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, render: (dom, record) => { - return record.address + return record.remarks }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, } - }, + }, { title: '操作', dataIndex: 'creatTime', @@ -159,11 +406,21 @@ const PublicTable = (props) => { fixed: 'right', render: (dom, record) => { return
+ >删除
} }, @@ -179,7 +436,7 @@ const PublicTable = (props) => { style={{ width: "100px" }} onClick={() => { openModal('edit', record) - setTypecard('') + setTypecard('') }} > 新增 @@ -202,13 +459,13 @@ const PublicTable = (props) => { ], tab2: [ { title: '所属公司', - search: false, + search: false, dataIndex: 'containers', fixed: 'left', width: 120, render: (dom, record) => { - return record.address + return record.company }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -221,9 +478,9 @@ const PublicTable = (props) => { width: 120, options: 1, backgroundColor: "#ffffff", - // render: (dom, record) => { - // return record.address - // }, + render: (dom, record) => { + return record.fleet + }, fieldProps: { onChange: (value, cs) => { setSitename(value.currentTarget.value) @@ -240,7 +497,7 @@ const PublicTable = (props) => { // align: 'right', width: 120, render: (dom, record) => { - return record.address + return record.line }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -251,12 +508,12 @@ const PublicTable = (props) => { search: false, dataIndex: 'time3', valueType: 'dateRange', - initialValue: day, + width: 120, render: (dom, record) => { - return record.address + return record.vehicleNumber }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -266,11 +523,11 @@ const PublicTable = (props) => { search: false, dataIndex: 'time4', valueType: 'dateRange', - initialValue: day, + width: 120, render: (dom, record) => { - return record.address + return record.vehicleLicensePlateNumber }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -280,11 +537,11 @@ const PublicTable = (props) => { search: false, dataIndex: 'time5', valueType: 'dateRange', - initialValue: day, + width: 120, render: (dom, record) => { - return record.address + return record.operationCategory }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, @@ -294,86 +551,639 @@ const PublicTable = (props) => { search: false, dataIndex: 'time6', valueType: 'dateRange', - initialValue: day, - width: 120, render: (dom, record) => { - return record.address + return record.serviceLife }, fieldProps: { getPopupContainer: (triggerNode) => triggerNode.parentNode, } - }, - { - title: '操作', - dataIndex: 'creatTime', - valueType: 'dateTimeRange', - hideInSearch: true, + }, { + title: '发动机型号', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', width: 120, - fixed: 'right', render: (dom, record) => { - return
- - } - }, - { - key: "direction", - hideInTable: true, - dataIndex: "direction", - order: 6, - renderFormItem: (item, { type, defaultRender, ...rest }, form, record) => { - return ( -
- -
- - - ); + return record.engineModel }, - }, - ] + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '车辆型号', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.vehicleModel + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '车辆类别', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.vehicleCategory + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '车辆状态', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.vehicleStatus + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '入户日期', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.dateOfEntry + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '购进日期', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.purchaseDate + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '能耗类型', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.energyConsumptionType + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '标台数', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.numberOfStandardUnits + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '维保单位', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.maintenanceUnit + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '车辆类型', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.vehicleType + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '厂牌型号', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.brandAndModel + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '生产厂家', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.manufacturer + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '行驶证编号', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.drivingLicenseNo + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '发动机编号', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.engineNumber + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '主能耗', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.mainEnergyConsumption + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '副能耗', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.secondaryEnergyConsumption + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '排放标准', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.emissionStandard + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '启用日期', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.startDate + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '最近一次调动日期', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.lastTransferDate + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '车长', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.conductor + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '车宽', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.vehicleWidth + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '车高', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.carHeight + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '核定载客数', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.approvedPassengerCapacity + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '车辆识别号', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.vehicleIdentificationNumber + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '变速箱品牌', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.gearboxBrand + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '人工洗车费', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.manualCarWashingFee + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '劳务费', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.laborCost + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '整备质量', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.curbWeight + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '总质量', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.totalMass + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '空调温度', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.airConditioningTemperature + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '是否空调车', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.airConditionedCarOrNot + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '开空调温度', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.turnOnTheAirConditioningTemperature + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '功率', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.power + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '变速器', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.transmission + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '座位数', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.seatingCapacity + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '空调品牌', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.airConditioningBrand + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '座椅类型', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.seatType + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '轮胎规格', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.tireSpecifications + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '道路运输证号', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.roadTransportCertificateNo + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '停放点', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.parkingPoint + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '洗车类型', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.carWashingType + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '免维护轮端', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.maintenanceFreeWheelEnd + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '首保日期', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.firstGuaranteeDate + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '整修日期', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.dateOfRenovation + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, { + title: '机动车所有人', + search: false, + dataIndex: 'time6', + valueType: 'dateRange', + width: 120, + render: (dom, record) => { + return record.motorVehicleOwner + }, + fieldProps: { + getPopupContainer: (triggerNode) => triggerNode.parentNode, + } + }, + { + title: '操作', + dataIndex: 'creatTime', + valueType: 'dateTimeRange', + hideInSearch: true, + width: 120, + fixed: 'right', + render: (dom, record) => { + return
+ + } + }, + { + key: "direction", + hideInTable: true, + dataIndex: "direction", + order: 6, + renderFormItem: (item, { type, defaultRender, ...rest }, form, record) => { + return ( +
+ +
+ + + ); + }, + }, + ] } return (
setActiveKey(key), items: [ { key: 'tab1', - tab: '运营线路', + label: { { + setRewkeys('xianlu') + } }}>运营线路{activeKey === 'tab1'}, + }, { key: 'tab2', - tab: '车辆信息', + label: { { + setRewkeys('cheliang') + } }}>车辆信息{activeKey === 'tab2'}, + } ], }, @@ -384,11 +1194,11 @@ const PublicTable = (props) => { style={{ width: "100% ", overflow: "auto", height: '760px' }} rowKey='id' onReset={(v) => { - const { id } = depMessage[0] - console.log(id) - setRegionId(id) - setPlaceType(-1) - setDay([moment('2022-03-01').format('YYYY-MM-DD'), moment().format('YYYY-MM-DD')]) + // const { id } = depMessage[0] + // console.log(id) + // setRegionId(id) + // setPlaceType(-1) + // setDay([moment('2022-03-01').format('YYYY-MM-DD'), moment().format('YYYY-MM-DD')]) setSitename('') }} rowSelection={{ @@ -399,24 +1209,33 @@ const PublicTable = (props) => { }} columns={columns[activeKey]} - dataSource={(counts || {}).rows || []} + dataSource={counts || []} 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 + if(rewkeys=='xianlu'){ + const query = { + fleet:sitename } setRowSelected([]); - const res = await dispatch(getReportStatistic(query)); + const res = await dispatch(getCircuit(query)); setCounts(res.payload.data) return { ...res, total: res.payload.data ? res.payload.data.count : 0 } + } + if(rewkeys=='cheliang'){ + const query = { + fleet:sitename + } + setRowSelected([]); + const res = await dispatch(getVehicle(query)); + setCounts(res.payload.data) + return { + ...res, + total: res.payload.data ? res.payload.data.count : 0 + } + } + }} search={{ defaultCollapsed: false, @@ -433,15 +1252,98 @@ const PublicTable = (props) => { >
- + rewkeys={rewkeys} + data={rewkeys==='xianlu'?data:date} + recortd={recortd} + // sitename={sitename} + setRecortd={setRecortd} + /> : ''}
) } +const data = { + "company": "公司", + "fleet": "车队", + "carCaptain": "车队长", + "assistantCarCaptain": "副车队长", + "officeLocation": "办公地点", + "lineName": "线路名称", + "lineType": "线路类型", + "lineDivision": "线路划分", + "gPSNumber": "GPS编号", + "startingPointEndPoint": "起点终点", + "numberOfVehicles": "车辆数", + "totalKilometers": "全程公里数", + "ticketPrice": "票价", + "openingTime": "开通时间", + "runningTime": "运行时间", + "openingTimeSummer": "开班时间夏令", + "shiftClosingTimeSummer": "收班时间夏令", + "openingTimeWinter": "开班时间冬令", + "shiftClosingTimeWinter": "收班时间冬令", + "uplinkOfStationsAlongTheWay": "沿途站点上行", + "downlinkOfStationsAlongTheWay": "沿途站点下行", + "area": "所属区域", + "remarks": "备注" +} +const date={ "company": "所属公司", +"fleet": "所属车队", +"line": "所属线路", +"vehicleNumber": "车辆编号", +"vehicleLicensePlateNumber": "车辆牌照号", +"operationCategory": "运营类别", +"serviceLife": "已使用年限", +"engineModel": "发动机型号", +"vehicleModel": "车辆型号", +"vehicleCategory": "车辆类别", +"vehicleStatus": "车辆状态", +"dateOfEntry": "入户日期", +"purchaseDate": "购进日期", +"energyConsumptionType": "能耗类型", +"numberOfStandardUnits": "标台数", +"maintenanceUnit": "维保单位", +"vehicleType": "车辆类型", +"brandAndModel": "厂牌型号", +"manufacturer": "生产厂家", +"drivingLicenseNo": "行驶证编号", +"engineNumber": "发动机编号", +"mainEnergyConsumption": "主能耗", +"secondaryEnergyConsumption": "副能耗", +"emissionStandard": "排放标准", +"startDate": "启用日期", +"lastTransferDate": "最近一次调动日期", +"conductor": "车长", +"vehicleWidth": "车宽", +"carHeight": "车高", +"approvedPassengerCapacity": "核定载客数", +"vehicleIdentificationNumber": "车辆识别号", +"gearboxBrand": "变速箱品牌", +"manualCarWashingFee": "人工洗车费", +"laborCost": "劳务费", +"curbWeight": "整备质量", +"totalMass": "总质量", +"airConditioningTemperature": "空调温度", +"airConditionedCarOrNot": "是否空调车", +"turnOnTheAirConditioningTemperature": "开空调温度", +"power": "功率", +"transmission": "变速器", +"seatingCapacity": "座位数", +"airConditioningBrand": "空调品牌", +"seatType": "座椅类型", +"tireSpecifications": "轮胎规格", +"roadTransportCertificateNo": "道路运输证号", +"parkingPoint": "停放点", +"carWashingType": "洗车类型", +"maintenanceFreeWheelEnd": "免维护轮端", +"firstGuaranteeDate": "首保日期", +"dateOfRenovation": "整修日期", +"motorVehicleOwner": "机动车所有人" +} function mapStateToProps(state) { const { auth, depMessage } = state; const pakData = (dep) => { diff --git a/web/client/src/sections/fillion/components/transportationTable.js b/web/client/src/sections/fillion/components/transportationTable.js index 3727582d..9cec7f80 100644 --- a/web/client/src/sections/fillion/components/transportationTable.js +++ b/web/client/src/sections/fillion/components/transportationTable.js @@ -4,17 +4,14 @@ import { Spin, Button, Popconfirm, Badge } from 'antd'; import ProTable from '@ant-design/pro-table'; import './protable.less' import moment from 'moment'; -import { getRoadway, getProject, putRoadway } from "../actions/infor" +import { getRoadway, getProject, delRoadway, delProject } from "../actions/infor" import UserModal from './infor/details'; import ProjectModal from './project/project'; const TransporTationTable = (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 [sitename, setSitename] = useState()//桥梁名称 const [counts, setCounts] = useState()//shuju const [modalVisible, setModalVisible] = useState(false); const [modalVisibleyilan, setModalVisibleyilan] = useState(false); @@ -22,29 +19,10 @@ const TransporTationTable = (props) => { const [typecard, setTypecard] = useState(); const [activeKey, setActiveKey] = useState('tab1'); const [recortd, setRecortd] = useState() - // const ref = useRef() - //请求数据 - const requestRoadway = (name) => { - const query = { - level: name - } - setSitename(name) - setRowSelected([]); - dispatch(getRoadway(query)).then((res) => { - setCounts(res.payload.data) - }); - } - // useEffect(()=>{ref.current.reload()},[counts]) - //工程数据 - const requestProject = () => { - const query = { - type: '道路' - } - setRowSelected([]); - dispatch(getProject(query)).then((res) => { - setCounts(res.payload.data) - }) - } + const [whichofits, setWhichofits] = useState('xian') + const [delet, setDelet] = useState() + const ref = useRef() + useEffect(() => { ref.current.reload() }, [modalVisible, modalVisibleyilan, whichofits, delet]) //打开弹窗 const openModal = (type, record) => { setModalVisible(true); @@ -91,9 +69,9 @@ const TransporTationTable = (props) => { options: 1, backgroundColor: "#ffffff", fieldProps: { - // onChange: (value, cs) => { - // setSitename(value.currentTarget.value) - // }, + onChange: (value, cs) => { + setSitename(value.currentTarget.value) + }, placeholder: '请输入道路名称进行搜索', getPopupContainer: (triggerNode) => triggerNode.parentNode, }, @@ -1197,11 +1175,17 @@ const TransporTationTable = (props) => { setRecortd(record) openModal('edit', record) setTypecard('111') - // sessionStorage.setItem('record', JSON.stringify(record)) - // sessionStorage.setItem('newly', JSON.stringify(data)) - }} - >编辑 + >编辑 } }, @@ -1245,9 +1229,9 @@ const TransporTationTable = (props) => { options: 1, backgroundColor: "#ffffff", fieldProps: { - // onChange: (value, cs) => { - // setSitename(value.currentTarget.value) - // }, + onChange: (value, cs) => { + setSitename(value.currentTarget.value) + }, placeholder: '请输入道路名称进行搜索', getPopupContainer: (triggerNode) => triggerNode.parentNode, }, @@ -2353,7 +2337,14 @@ const TransporTationTable = (props) => { setRecortd(record) }} - >编辑 + >编辑 } }, @@ -2398,9 +2389,9 @@ const TransporTationTable = (props) => { options: 1, backgroundColor: "#ffffff", fieldProps: { - // onChange: (value, cs) => { - // setSitename(value.currentTarget.value) - // }, + onChange: (value, cs) => { + setSitename(value.currentTarget.value) + }, placeholder: '请输入道路名称进行搜索', getPopupContainer: (triggerNode) => triggerNode.parentNode, }, @@ -3506,7 +3497,15 @@ const TransporTationTable = (props) => { setRecortd(record) }} - >编辑 + >编辑 } }, @@ -3551,9 +3550,9 @@ const TransporTationTable = (props) => { options: 1, backgroundColor: "#ffffff", fieldProps: { - // onChange: (value, cs) => { - // setSitename(value.currentTarget.value) - // }, + onChange: (value, cs) => { + setSitename(value.currentTarget.value) + }, placeholder: '请输入项目名称进行搜索', getPopupContainer: (triggerNode) => triggerNode.parentNode, }, @@ -3689,7 +3688,16 @@ const TransporTationTable = (props) => { setTypecard('111') setRecortd(record) }} - >编辑 + >编辑 } }, @@ -3729,7 +3737,7 @@ const TransporTationTable = (props) => {
{ items: [ { key: 'tab1', - label: requestRoadway('县')}>县道{activeKey === 'tab1'}, + label: { + setWhichofits('xian') + }}>县道{activeKey === 'tab1'}, }, { key: 'tab2', - label: requestRoadway('乡')}>乡道{activeKey === 'tab2'}, + label: { + setWhichofits('xiang') + }}>乡道{activeKey === 'tab2'}, }, { key: 'tab3', - label: requestRoadway('村')}>村道{activeKey === 'tab3'}, + label: { + setWhichofits('cun') + }}>村道{activeKey === 'tab3'}, }, { key: 'tab4', - label: requestProject()}>工程一览{activeKey === 'tab4'}, + label: { + setWhichofits('gongcheng') + }}>工程一览{activeKey === 'tab4'}, }, ], }, @@ -3760,12 +3776,7 @@ const TransporTationTable = (props) => { style={{ width: "100% ", overflow: "auto", height: '760px' }} rowKey='id' onReset={(v) => { - const { id } = depMessage[0] - // console.log(id) - // setRegionId(id) - // setPlaceType(-1) - // setDay([moment('2022-03-01').format('YYYY-MM-DD'), moment().format('YYYY-MM-DD')]) - // setSitename('') + setSitename('') }} rowSelection={{ selectedRowKeys: rowSelected, @@ -3774,22 +3785,59 @@ const TransporTationTable = (props) => { }, }} columns={columns[activeKey]} - dataSource={counts || []} request={async (params) => { - const query = { - level: '县' + if (whichofits == 'xian') { + const query = { + level: '县', + road: sitename + } + setRowSelected([]); + const res = await dispatch(getRoadway(query)); + // console.log(res) + + setCounts(res.payload.data) + return { + ...res, + total: res.payload.data ? res.payload.data.count : 0 + } + } if (whichofits == 'xiang') { + const query = { + level: '乡', + road: sitename + } + setRowSelected([]); + const res = await dispatch(getRoadway(query)); + setCounts(res.payload.data) + return { + ...res, + total: res.payload.data ? res.payload.data.count : 0 + } + } if (whichofits == 'cun') { + const query = { + level: '村', + road: sitename + } + setRowSelected([]); + const res = await dispatch(getRoadway(query)); + setCounts(res.payload.data) + return { + ...res, + total: res.payload.data ? res.payload.data.count : 0 + } } - setSitename('县') - - setRowSelected([]); - const res = await dispatch(getRoadway(query)); - // console.log(res) - - setCounts(res.payload.data) - return { - ...res, - total: res.payload.data ? res.payload.data.count : 0 + if (whichofits == 'gongcheng') { + const query = { + type: 'road', + // type:sitename + } + setRowSelected([]); + const res = await dispatch(getProject(query)); + setCounts(res.payload.data) + return { + ...res, + total: res.payload.data ? res.payload.data.count : 0 + } } }} search={{ diff --git a/web/client/src/sections/fillion/nav-item.js b/web/client/src/sections/fillion/nav-item.js index 650b5db8..7ff3eedc 100644 --- a/web/client/src/sections/fillion/nav-item.js +++ b/web/client/src/sections/fillion/nav-item.js @@ -20,9 +20,9 @@ export function getNavItem(user, dispatch) { 运政管理 - + {/* 执法管理 - + */} 养护管理 diff --git a/web/client/src/sections/quanju/containers/footer/build/Rightbottom.js b/web/client/src/sections/quanju/containers/footer/build/Rightbottom.js index cfa0348b..17788224 100644 --- a/web/client/src/sections/quanju/containers/footer/build/Rightbottom.js +++ b/web/client/src/sections/quanju/containers/footer/build/Rightbottom.js @@ -54,7 +54,7 @@ function Rightbottom(props) { textStyle: { color: '#fff', }, - formatter: (values) => `${values.seriesName}
${values.marker} ${values.name}${values.value}公里`, + formatter: (values) => `${values.seriesName}
${values.marker} ${values.name}${values.value}条`, }, legend: { orient: "vertical", diff --git a/web/client/src/sections/quanju/containers/footer/build/Rightcenter.js b/web/client/src/sections/quanju/containers/footer/build/Rightcenter.js index c7a497ab..ad0ac359 100644 --- a/web/client/src/sections/quanju/containers/footer/build/Rightcenter.js +++ b/web/client/src/sections/quanju/containers/footer/build/Rightcenter.js @@ -83,7 +83,7 @@ const RNAKS = [FIRST, SECOND, THIRD]
-
在建公路工程数量
+
在建公路工程数量/个

{sundata}

{ const requestbuildingnumber = async ()=>{ const res = await dispatch(getdaolutongji()); let alltype = Object.keys(res.payload.data?.roadType || {}).map((item)=>({name:item,value:Number(keepThreeNum(res.payload.data.roadType[item]))})) - console.log(alltype,'打他啊') + // console.log(alltype,'打他啊') setdata(alltype.filter(item=>item.name==='县'||item.name==="乡"||item.name==='村')) setbuildingnumber(res.payload.data) - console.log(res.payload.data,'哈哈哈') + // console.log(res.payload.data,'哈哈哈') } @@ -118,7 +118,9 @@ const Build = (props) => { - {buildingnumber&&buildingnumber.buildedRoad!==0&&totalgongli!==0?
+
+ + {buildingnumber&&buildingnumber.buildedRoad!==0&&totalgongli!==0?
{/* */} @@ -137,6 +139,7 @@ const Build = (props) => {
{buildingnumber?.buildedRoad || 0}
:} +
{ {safetyData&&sunsafetyData!==0?:}
diff --git a/web/client/src/sections/quanju/containers/footer/build/style.less b/web/client/src/sections/quanju/containers/footer/build/style.less index 40ddc797..7af5871d 100644 --- a/web/client/src/sections/quanju/containers/footer/build/style.less +++ b/web/client/src/sections/quanju/containers/footer/build/style.less @@ -178,7 +178,7 @@ align-items: center; justify-content: center; position: absolute; - left: 16%; + left: 15%; top:38%; h2{ font-size: 1.25rem; @@ -278,7 +278,7 @@ justify-content: center; position: absolute; align-items: center; - left: 19%; + left: 15%; top:38%; h2{ font-size: 1.25rem; diff --git a/web/client/src/sections/quanju/containers/footer/gis/gis.js b/web/client/src/sections/quanju/containers/footer/gis/gis.js index a8f74a9d..46016561 100644 --- a/web/client/src/sections/quanju/containers/footer/gis/gis.js +++ b/web/client/src/sections/quanju/containers/footer/gis/gis.js @@ -21,7 +21,7 @@ const Gis = (props) => { const loadMap = () => { const map = new AMap.Map(MAPID, { resizeEnable: true, - center: [115.912663,28.543149],//地图中心点,初始定位加载显示楼块 + center: [115.912663, 28.543149],//地图中心点,初始定位加载显示楼块 zoom: 15,//地图显示的缩放级别 zooms: [10, 12], pitch: 0, // 地图俯仰角度,有效范围 0 度- 83 度 diff --git a/web/client/src/sections/quanju/containers/footer/guanli/LeftItem.js b/web/client/src/sections/quanju/containers/footer/guanli/LeftItem.js index ea90e7dd..4f24ae2c 100644 --- a/web/client/src/sections/quanju/containers/footer/guanli/LeftItem.js +++ b/web/client/src/sections/quanju/containers/footer/guanli/LeftItem.js @@ -15,7 +15,7 @@ export default function LeftItem({datas}) { textStyle: { color: '#fff', }, - formatter: (values) => ` ${values.name}${datas.processed}个`, + formatter: (values) => `${values.name}${datas.processed}条`, }, title: { text: `${(datas.processed*100/datas.total).toFixed(2)}%`, @@ -78,6 +78,7 @@ export default function LeftItem({datas}) { }, series: [{ type: 'bar', + showBackground: true,//这里只有显示背景才能出现背景灰色的线 data: [{ name: '已处理', value: (datas.processed*100/datas.total).toFixed(2), @@ -97,37 +98,18 @@ export default function LeftItem({datas}) { coordinateSystem: 'polar', roundCap: true, barWidth: 8, - barGap: '-100%', // 两环重叠 - z: 2, - },{ // 灰色环 - type: 'bar', - data: [{ - value: 100, - itemStyle: { - color: '#092B7B ', - shadowColor: 'rgba(0, 0, 0, 0.2)', - shadowBlur: 5, - shadowOffsetY: 2 - } - }], - coordinateSystem: 'polar', - roundCap: true, - barWidth: 8, - barGap: '-100%', // 两环重叠 - z: 1 - }] + }, + ] } - - - chartInstance.setOption(option); }, []) return (
+ {/* */}
{datas.name} -
{datas.total}
+
{datas.total}
diff --git a/web/client/src/sections/quanju/containers/footer/guanli/index.js b/web/client/src/sections/quanju/containers/footer/guanli/index.js index 784b4ff6..631b4f00 100644 --- a/web/client/src/sections/quanju/containers/footer/guanli/index.js +++ b/web/client/src/sections/quanju/containers/footer/guanli/index.js @@ -14,11 +14,16 @@ const Guanli = (props) => { const [rightitemlist,setrightitemlist] = useState() const requestleftDatas = async()=>{ const res = await dispatch(getjiandmanage()) - res.payload.data.sort((a,b)=>{ + res.payload.data?.sort((a,b)=>{ return parseInt(b.total) - parseInt(a.total) }) setleftDatas(res.payload.data) - console.log(res.payload.data,'哈哈哈') + // console.log(res.payload.data,'哈哈哈') + } + const data_string=(str)=> { + str.match('/([^.]*)$/g') + + } const requestRightDatas = async()=>{ const res = await dispatch(getjiandetail()) @@ -28,12 +33,19 @@ const Guanli = (props) => { let d = res.payload.data?.overSpeedList?.filter((item,index)=>{ return escape(item.processingTime).indexOf("%u")<0 }) - // let d2 = d.sort((a,b)=>b.processingTime < a.processingTime ?-1:1) - let d2 = d.sort((a, b) => b.processingTime.localeCompare(a.processingTime)) + + d.map((item,index)=>{ + if(parseInt(item.processingTime.match(/([^.]*)$/)[0])<10){ + return item.processingTime = `${(item.processingTime.match(/^([^.]*)(.[^.]*)/)[0])}.0${parseInt(item.processingTime.match(/([^.]*)$/)[0])}` + } + // console.log(d3,'好评') + console.log(item.processingTime.match(/([^.]*)$/)[0],'kk') + }) + d.sort((a, b) => b.processingTime.localeCompare(a.processingTime)) setrightDatas(res.payload.data) setrightitemlist(d) console.log(d,'对比的数据') - console.log(d2,'完美') + // console.log(d2,'完美') console.log(res.payload.data,'嘿嘿嘿') } useEffect(()=>{ @@ -45,7 +57,7 @@ const Guanli = (props) => { const renderContent = () => { return
{rightitemlist && rightitemlist.length!==0?rightitemlist?.map(({ id, licensePlate, overrunRate,fine,processingTime }, index) => { - if(index<30){ + if(index<120){ return
{licensePlate} {overrunRate}% diff --git a/web/client/src/sections/quanju/containers/footer/guanli/style.less b/web/client/src/sections/quanju/containers/footer/guanli/style.less index 3ddaa180..c406eb6b 100644 --- a/web/client/src/sections/quanju/containers/footer/guanli/style.less +++ b/web/client/src/sections/quanju/containers/footer/guanli/style.less @@ -19,6 +19,7 @@ .guanli-left-item{ box-sizing: border-box; width: 85%; + position: relative; // height: 30%; height: 24vh; margin: 0 auto 3%; diff --git a/web/client/src/sections/quanju/containers/footer/leadership/centerleft/daolu.js b/web/client/src/sections/quanju/containers/footer/leadership/centerleft/daolu.js index 43bbb7ba..8f1b8196 100644 --- a/web/client/src/sections/quanju/containers/footer/leadership/centerleft/daolu.js +++ b/web/client/src/sections/quanju/containers/footer/leadership/centerleft/daolu.js @@ -14,7 +14,10 @@ const Right = (props) => { setList(res.payload.data.reportList.filter((item, index) => { return item.projectType == "road" })) - setNums(res.payload.data.processed) + setNums(res.payload.data.reportCount.filter((item, index) => { + return item.projectType == "road" + })) + console.log(res.payload.data); }) }, []) useEffect(() => { @@ -24,6 +27,7 @@ const Right = (props) => { // const }) }, []) + console.log("1211", nums); const renderBody = () => { return ( @@ -59,13 +63,13 @@ const Right = (props) => {

{roads?.["县"].toFixed(3)}公里县道道路

-
- - {/*
-
*/} +
-
+ {/*
+ +
*/} +

乡村道道路{(roads?.["乡"] + roads?.["村"]).toFixed(3)}公里

@@ -77,7 +81,7 @@ const Right = (props) => { {/*

{title || []}

*/} 养护事件 -

道路{nums || []}

+

道路{nums ? nums[0]?.count : []}

{/* */}
{ const [beijing, setBeijing] = useState() const [list, setList] = useState([]) const [roads, setRoads] = useState() + const [nums, setNums] = useState() useEffect(() => { const daolus = dispatch(getRoadmaintain()).then((res) => { setList(res.payload.data.reportList.filter((item, index) => { return item.projectType == "culvert" })) + setNums(res.payload.data.reportCount.filter((item, index) => { + return item.projectType == "culvert" + })) }) }, []) useEffect(() => { @@ -59,16 +63,16 @@ const Right = (props) => {

{roads?.["县"].toFixed(0)}县涵洞

-
+
{/*
*/} -
+
-

乡村涵洞{(roads?.["乡"] + roads?.["村"]).toFixed(3)}

+

乡村涵洞{(roads?.["乡"] + roads?.["村"]).toFixed(0)}

占比{((roads?.["乡"] + roads?.["村"]) / (roads?.["乡"] + roads?.["村"] + roads?.["县"])).toFixed(4) * 100}%

@@ -77,7 +81,7 @@ const Right = (props) => { {/*

{title || []}

*/} 养护事件 -

道路187

+

涵洞{nums ? nums[0]?.count : []}

{/* */}
{ 业户信息:
-
- -

出租车

+
+ +

出租车

{ @@ -30,9 +31,9 @@ const Toplunbo = (props) => { height: "50%", }}>
-
- -

危险货运

+
+ +

危险货运

{ const [beijing, setBeijing] = useState() const [list, setList] = useState([]) const [roads, setRoads] = useState() + const [nums, setNums] = useState() useEffect(() => { const daolus = dispatch(getRoadmaintain()).then((res) => { setList(res.payload.data.reportList.filter((item, index) => { return item.projectType == "bridge" })) + setNums(res.payload.data.reportCount.filter((item, index) => { + return item.projectType == "bridge" + })) }) }, []) useEffect(() => { @@ -55,16 +59,16 @@ const Right = (props) => {

占比{(roads?.["大桥"] / (roads?.["小桥"] + roads?.["中桥"] + roads?.["大桥"])).toFixed(4) * 100}%

-

{roads?.["大桥"]}大桥

+

{roads?.["大桥"]}大桥

-
+
-
+
-
+

中小桥梁{roads?.["小桥"] + roads?.["中桥"]}

@@ -76,7 +80,7 @@ const Right = (props) => { {/*

{title || []}

*/} 养护事件 -

道路187

+

桥梁{nums ? nums[0]?.count : []}

{/* */}
{ offsetCenter: [0, 46], // x, y,单位px textStyle: { color: "#fff", - fontSize: 14, //表盘上的标题文字大小 + fontSize: "2vh", //表盘上的标题文字大小 fontWeight: 400, fontFamily: "PingFangSC", }, diff --git a/web/client/src/sections/quanju/containers/footer/leadership/left/left-top.js b/web/client/src/sections/quanju/containers/footer/leadership/left/left-top.js index fed0cc13..486548bd 100644 --- a/web/client/src/sections/quanju/containers/footer/leadership/left/left-top.js +++ b/web/client/src/sections/quanju/containers/footer/leadership/left/left-top.js @@ -7,13 +7,17 @@ import request from 'superagent' const Lefttop = () => { const style = { height: "68%" } - useEffect(() => { - // return () => { - request('GET', '/search').then((success, failure) => { - console.log(success); - }); - // }; - }, []) + // useEffect(() => { + // // return () => { + // request.get('https://report.amap.com/ajax/districtRank.do?linksType=1&cityCode=360100') + // // .set({ 'cookie': 'user_unique_id=a185bbc78215de5101823ec9f8455ff7; SESSION=781150e0-bd25-4431-b3ac-267bb49075fd; UM_distinctid=1823ec9ec89ce5-08fca33c64505f-76492e29-1fa400-1823ec9ec8a1447; CNZZDATA1256662931=1445129462-1658907884-https%253A%252F%252Freport.amap.com%252F%7C1658907884' }) + // .end((success, failure) => { + // console.log(success); + // }, err => { + // console.log(err) + // }); + // // }; + // }, []) return ( <> diff --git a/web/client/src/sections/quanju/containers/footer/leadership/right/hudong.js b/web/client/src/sections/quanju/containers/footer/leadership/right/hudong.js index e2b47bb4..0f169f72 100644 --- a/web/client/src/sections/quanju/containers/footer/leadership/right/hudong.js +++ b/web/client/src/sections/quanju/containers/footer/leadership/right/hudong.js @@ -61,20 +61,41 @@ class ReactCarousel extends Component { this.state.imgs.map((value, index) => { return ( -
  • -
    - {value[0]?.name} +
    +
    +
    + + {value[0]?.name} +
    +
    +
    - {value[1]?.name ?
    - {value[1]?.name} + {value[1]?.name ?
    +
    +
    + + {value[1]?.name} +
    +
    : ""} - {value[2]?.name ?
    - {value[2]?.name} + {value[2]?.name ?
    +
    +
    + + {value[2]?.name} +
    +
    : ""} - {value[3]?.name ?
    - {value[3]?.name} + {value[3]?.name ?
    +
    +
    + + {value[3]?.name} +
    +
    : ""} {/*
    {value[1].name}
    {value[2].name}
    @@ -97,8 +118,12 @@ class ReactCarousel extends Component { */}
    - { this.previous(e) }}>左 - { this.next(e) }}>右 + { this.previous(e) }}> + + + { this.next(e) }}> + +
    @@ -119,7 +144,7 @@ class ReactCarousel extends Component { let { timer } = this.state; timer = setInterval(() => { this.next(); - }, 300000); + }, 2000); this.setState({ timer }) diff --git a/web/client/src/sections/quanju/containers/footer/leadership/right/right-bottom.js b/web/client/src/sections/quanju/containers/footer/leadership/right/right-bottom.js index 833f6b23..bb83fb66 100644 --- a/web/client/src/sections/quanju/containers/footer/leadership/right/right-bottom.js +++ b/web/client/src/sections/quanju/containers/footer/leadership/right/right-bottom.js @@ -1,5 +1,6 @@ import React, { useState, useEffect } from 'react' import Module from '../../../public/module' +import { Spin } from 'antd' import Lun from "./lunbo" import "./left.less" import { getZhichaolist } from "../../../../actions/example" @@ -12,7 +13,8 @@ const Rightbottom = (props) => { const [nums, setNums] = useState([]) useEffect(() => { const zhichaolist = dispatch(getZhichaolist()).then((res) => { - setList(res.payload?.data?.overSpeedList) + setList(res.payload?.data?.overSpeedList.filter(item => /.*[\u4e00-\u9fa5_a-zA-Z]+.*$/.test(item.processingTime) == false + )) // console.log(res); setNums(res.payload?.data?.processed) }) @@ -27,10 +29,10 @@ const Rightbottom = (props) => { // console.log(beijing); }}> {beijing == index ? : ""} -
    {item.licensePlate}
    -
    {item.overrunRate ? item.overrunRate : "--"}
    -
    {item.deductPoints ? "-" + item.deductPoints + "分" : ""}{item.deductPoints && item.fine ? "和" : ""}{item.fine ? "-" + item.fine + "元" : ""}{item.deductPoints || item.fine ? "" : "--"}
    -
    {item.processingTime ? item.processingTime : "--"}
    +
    {item.licensePlate}
    +
    {item.overrunRate ? item.overrunRate : "--"}
    +
    {item.deductPoints ? "-" + item.deductPoints + "分" : ""}{item.deductPoints && item.fine ? "和" : ""}{item.fine ? "-" + item.fine + "元" : ""}{item.deductPoints || item.fine ? "" : "--"}
    +
    {item.processingTime ? item.processingTime : "--"}
  • }) @@ -41,6 +43,7 @@ const Rightbottom = (props) => { return ( <> +
    已处理{nums}件 @@ -49,14 +52,16 @@ const Rightbottom = (props) => {

    车牌号

    超限

    处罚

    -

    日期

    +

    处理日期

    + {/* */} + {/* */}
    ) diff --git a/web/client/src/sections/quanju/containers/footer/leadership/right/right-top.js b/web/client/src/sections/quanju/containers/footer/leadership/right/right-top.js index 51a657c3..65a944cc 100644 --- a/web/client/src/sections/quanju/containers/footer/leadership/right/right-top.js +++ b/web/client/src/sections/quanju/containers/footer/leadership/right/right-top.js @@ -1,6 +1,6 @@ import React, { useState, useEffect } from 'react'; import Module from '../../../public/module' -import { Radio, Select } from 'antd'; +import { Radio, Select, Spin } from 'antd'; import Lunbo from "./lunbo" import Huadong from './hudong'; import "./left.less" @@ -72,10 +72,14 @@ const Righttop = () => { } return ( <> + -
    +
    +

    监控总数

    129

    +

    在线率

    88.87%

    +