Browse Source

Merge branch 'dev' of https://gitea.anxinyun.cn/gao.zhiyuan/Highways4Good into dev

release_0.0.4
巴林闲侠 2 years ago
parent
commit
ddfe115716
  1. 1
      web/client/index.ejs
  2. 53
      web/client/src/sections/fillion/components/bridgeTable.js
  3. 2
      web/client/src/sections/fillion/components/highways/highwaysdata.js
  4. 31
      web/client/src/sections/fillion/components/infor/details.js
  5. 27
      web/client/src/sections/fillion/components/inforTable.js
  6. 172
      web/client/src/sections/fillion/components/operationalTable.js
  7. 36
      web/client/src/sections/fillion/components/project/project.js
  8. 243
      web/client/src/sections/fillion/components/publicTable.js
  9. 89
      web/client/src/sections/fillion/components/transportationTable.js
  10. 20
      web/client/src/sections/organization/components/userModal.js
  11. 1
      web/client/src/sections/organization/containers/user.js
  12. 15
      web/client/src/sections/quanju/containers/footer/conserve/index.js
  13. 2
      web/client/src/sections/quanju/containers/footer/conserve/left/left-bottom.js
  14. 2
      web/client/src/sections/quanju/containers/footer/conserve/right/right-bottom.js
  15. 83
      web/client/src/sections/quanju/containers/footer/operation/left.js

1
web/client/index.ejs

@ -15,6 +15,7 @@
}
</script>
<script src="https://webapi.amap.com/maps?v=2.0&key=00f9a29dedcdbd8befec3dfe0cef5003&plugin=AMap.Adaptor,AMap.Scale,AMap.ToolBar,AMap.DistrictSearch,AMap.Geocoder,AMap.CustomLayer,Map3D,ElasticMarker"></script>
<script src="https://webapi.amap.com/loca?v=2.0.0&key=00f9a29dedcdbd8befec3dfe0cef5003"></script>
</head>
<body style="background: transparent">

53
web/client/src/sections/fillion/components/bridgeTable.js

@ -4,7 +4,7 @@ import { Spin, Button, Popconfirm, Badge } from 'antd';
import ProTable from '@ant-design/pro-table';
import './protable.less'
import moment from 'moment';
import { getBridge, getProject,delBridge,delProject } from "../actions/infor"
import { getBridge, getProject, delBridge, delProject } from "../actions/infor"
import UserModal from './infor/details';
import ProjectModal from './project/project';
@ -26,7 +26,23 @@ const BrideTable = (props) => {
const [delet, setDelet] = useState()
const ref = useRef()
useEffect(() => { ref.current.reload() }, [whichofits,delet])
useEffect(() => { ref.current.reload() }, [whichofits, delet])
const deldata = (id) => { // 桥梁
const query = {
bridgeId: id
}
dispatch(delBridge(query)).then((res) => {
setDelet(res)
})
}
const deldatas = (id) => { // 工程
const query = {
projectId: id
}
dispatch(delProject(query)).then((res) => {
setDelet(res)
})
}
const columns = {
tab1: [
{
@ -1493,16 +1509,10 @@ const BrideTable = (props) => {
setTypecard('111')
setRecortd(record)
}}
>编辑</Button><Button type="link"
onClick={() => {
const query = {
bridgeId: record.id
}
dispatch(delBridge(query)).then((res) => {
setDelet(res)
})
}}
>删除</Button></div>
>编辑</Button>
<Popconfirm title='是否确认删除' onConfirm={() => { deldata(record.id) }}>
<Button type="link">删除</Button>
</Popconfirm></div>
}
},
@ -1683,16 +1693,9 @@ const BrideTable = (props) => {
setTypecard('111')
setRecortd(record)
}}
>编辑</Button><Button type="link"
onClick={() => {
const query = {
projectId: record.id
}
dispatch(delProject(query)).then((res) => {
setDelet(res)
})
}}
>删除</Button></div>
>编辑</Button><Popconfirm title='' onConfirm={() => { deldatas(record.id) }}>
<Button type="link">删除</Button>
</Popconfirm></div>
}
},
@ -1809,9 +1812,9 @@ const BrideTable = (props) => {
dataSource={counts || []}
request={async (params) => {
if(whichofits=='qiaoliang'){
if (whichofits == 'qiaoliang') {
const query = {
bridgeName:sitename
bridgeName: sitename
}
setRowSelected([]);
const res = await dispatch(getBridge(query));
@ -1822,7 +1825,7 @@ const BrideTable = (props) => {
...res,
total: res.payload.data ? res.payload.data.count : 0
}
}if(whichofits=='gongcheng'){
} if (whichofits == 'gongcheng') {
const query = {
type: 'bridge',
// type:sitename

2
web/client/src/sections/fillion/components/highways/highwaysdata.js

@ -3,7 +3,7 @@ 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"
import { _ } from 'lodash'
import _ from 'lodash'
const HightModal = (props) => {
const { visible, onVisibleChange, typecard, rewkeys, recortd, dispatch, setRecortd,setDelet } = props

31
web/client/src/sections/fillion/components/infor/details.js

@ -155,7 +155,6 @@ const UserModal = (props) => {
setDelet(values)
const query = { ...values, level: whichofits, roadId: records?.[0]?.value || '' }
dispatch(putRoadway(query)).then((res) => {
setSuccess(res.success)
})
return true
@ -163,7 +162,7 @@ const UserModal = (props) => {
setDelet(values)
const query = { ...values, level: whichofits }
dispatch(putRoadway(query)).then((res) => {
setSuccess(res.success)
})
return true
@ -174,14 +173,14 @@ const UserModal = (props) => {
setDelet(values)
const query = { ...values, roadId: records?.[0]?.value || '' }
dispatch(putBridge(query)).then((res) => {
setSuccess(res.success)
})
return true
} else {
setDelet(values)
const query = { ...values }
dispatch(putBridge(query)).then((res) => {
setSuccess(res.success)
})
return true
}
@ -189,16 +188,16 @@ const UserModal = (props) => {
if (rewkeys === 'weihuo' || rewkeys === 'chuzu') {
if (typecard == '111') {
setDelet(values)
const query = { ...values, vehicleId: records?.[0]?.value || '', type: rewkeys === 'chuzu' ? '出租车' : '危货' }
const query = { ...values, vehicleId: records?.[0]?.value || '', type: rewkeys == 'chuzu' ? '出租车' : '危货' }
dispatch(putSpecificVehicle(query)).then((res) => {
setSuccess(res.success)
})
return true
} else {
setDelet(values)
const query = { ...values, type: rewkeys }
const query = { ...values, type: rewkeys == 'chuzu' ? '出租车' : '危货' }
dispatch(putSpecificVehicle(query)).then((res) => {
setSuccess(res.success)
})
return true
}
@ -208,14 +207,14 @@ const UserModal = (props) => {
setDelet(values)
const query = { ...values, businessId: records?.[0]?.value, type: rewkeys == 'chuzu' ? '出租车' : '危货' }
dispatch(putHouseholds(query)).then((res) => {
setSuccess(res.success)
})
return true
} else {
setDelet(values)
const query = { ...values, type: rewkeys === 'chuzu' ? '出租车' : '危货' }
dispatch(putHouseholds(query)).then((res) => {
setSuccess(res.success)
})
return true
}
@ -224,14 +223,14 @@ const UserModal = (props) => {
setDelet(values)
const query = { ...values, lineId: records?.[0]?.value || '' }
dispatch(putCircuit(query)).then((res) => {
setSuccess(res.success)
})
return true
} else {
setDelet(values)
const query = { ...values }
dispatch(putCircuit(query)).then((res) => {
setSuccess(res.success)
})
return true
}
@ -241,14 +240,14 @@ const UserModal = (props) => {
setDelet(values)
const query = { ...values, carId: records?.[0]?.value || '' }
dispatch(putVehicle(query)).then((res) => {
setSuccess(res.success)
})
return true
} else {
setDelet(values)
const query = { ...values }
dispatch(putVehicle(query)).then((res) => {
setSuccess(res.success)
})
return true
}
@ -258,7 +257,7 @@ const UserModal = (props) => {
setDelet(values)
const query = { ...values, overspeedId: records?.[0]?.value || '' }
dispatch(putPurchase(query)).then((res) => {
setSuccess(res.success)
setMonitor(res)
})
return true
@ -266,7 +265,7 @@ const UserModal = (props) => {
setDelet(values)
const query = { ...values }
dispatch(putPurchase(query)).then((res) => {
setSuccess(res.success)
setMonitor(res)
})
return true

27
web/client/src/sections/fillion/components/inforTable.js

@ -51,6 +51,14 @@ const InForTable = (props) => {
`attachments?src=files/${resTextIs}&filename=${encodeURIComponent(resTextIs)}&token=${user.token}`)
})
}
const deldata = (id) => { // 治超删除
const query = {
overspeedId: id
}
dispatch(delPurchase(query)).then((res) => {
setDelet(res)
})
}
const columns =
[
{
@ -364,16 +372,11 @@ const InForTable = (props) => {
setTypecard('111')
setRecortd(record)
}}
>编辑</Button><Button type="link"
onClick={() => {
const query = {
overspeedId: record.id
}
dispatch(delPurchase(query)).then((res) => {
setDelet(res)
})
}}
>删除</Button></div>
>编辑</Button>
<Popconfirm title='是否确认删除' onConfirm={() => { deldata(record.id) }}>
<Button type="link">删除</Button>
</Popconfirm></div>
}
},
@ -438,8 +441,8 @@ const InForTable = (props) => {
request={async (params) => {
console.log(params)
const query = {
limit:params.pageSize,
page:params.current-1,
limit: params.pageSize,
page: params.current - 1,
nameOfInspectionPoint: nameOfInspectionPoint,
licensePlate: licensePlate,
numberOfAxles: numberOfAxles,

172
web/client/src/sections/fillion/components/operationalTable.js

@ -1,9 +1,9 @@
import React, { useEffect, useState,useRef } 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 { getOperaTional, getSpecificVehicle, getHouseholds,delSpecificVehicle,delHouseholds } from "../actions/infor"
import { getOperaTional, getSpecificVehicle, getHouseholds, delSpecificVehicle, delHouseholds } from "../actions/infor"
import UserModal from './infor/details';
import HightModal from './highways/highwaysdata';
@ -24,7 +24,7 @@ const OperaTionalTable = (props) => {
const [delet, setDelet] = useState()
const ref = useRef()
useEffect(() => { ref.current.reload() }, [rewkeys,activeKey,delet])
useEffect(() => { ref.current.reload() }, [rewkeys, activeKey, delet])
//打开弹窗
const openModal = (type, record) => {
setModalVisible(true);
@ -35,6 +35,23 @@ const OperaTionalTable = (props) => {
setModalRecord(null);
}
}
const deldata = (id) => { // 出租危货
const query = {
vehicleId: id
}
dispatch(delSpecificVehicle(query)).then((res) => {
setDelet(res)
})
}
const deldatas = (id) => { // 业户
const query = {
businessId: id
}
dispatch(delHouseholds(query)).then((res) => {
setDelet(res)
})
}
//打开弹窗
const hightModal = (type, record) => {
setModalVisibleyilan(true);
@ -696,16 +713,9 @@ const OperaTionalTable = (props) => {
setTypecard('111')
setRecortd(record)
}}
>编辑</Button><Button type="link"
onClick={() => {
const query = {
vehicleId: record.id
}
dispatch(delSpecificVehicle(query)).then((res) => {
setDelet(res)
})
}}
>删除</Button></div>
>编辑</Button> <Popconfirm title='' onConfirm={() => { deldata(record.id) }}>
<Button type="link">删除</Button>
</Popconfirm></div>
}
},
@ -759,7 +769,7 @@ const OperaTionalTable = (props) => {
render: (dom, record) => {
return record.nameOfBusinessOwner
},
}, {
}, {
title: '品名',
search: false,
dataIndex: 'containers',
@ -1336,16 +1346,9 @@ const OperaTionalTable = (props) => {
setTypecard('111')
setRecortd(record)
}}
>编辑</Button><Button type="link"
onClick={() => {
const query = {
vehicleId: record.id
}
dispatch(delSpecificVehicle(query)).then((res) => {
setDelet(res)
})
}}
>删除</Button></div>
>编辑</Button> <Popconfirm title='' onConfirm={() => { deldata(record.id) }}>
<Button type="link">删除</Button>
</Popconfirm></div>
}
},
@ -1813,16 +1816,9 @@ const OperaTionalTable = (props) => {
setTypecard('111')
setRecortd(record)
}}
>编辑</Button><Button type="link"
onClick={() => {
const query = {
businessId: record.id
}
dispatch(delHouseholds(query)).then((res) => {
setDelet(res)
})
}}
>删除</Button></div>
>编辑</Button><Popconfirm title='' onConfirm={() => { deldatas(record.id) }}>
<Button type="link">删除</Button>
</Popconfirm></div>
}
},
@ -1881,16 +1877,20 @@ const OperaTionalTable = (props) => {
},
{
key: 'tab2',
label: <span onClick={() => { {
setRewkeys('chuzu')
} }}>出租车{activeKey === 'tab2'}</span>,
label: <span onClick={() => {
{
setRewkeys('chuzu')
}
}}>出租车{activeKey === 'tab2'}</span>,
},
{
key: 'tab3',
label: <span onClick={() => { {
setRewkeys('weihuo')
} }}>危险货运{activeKey === 'tab3'}</span>,
label: <span onClick={() => {
{
setRewkeys('weihuo')
}
}}>危险货运{activeKey === 'tab3'}</span>,
}, {
key: 'tab4',
@ -1918,58 +1918,62 @@ const OperaTionalTable = (props) => {
}}
columns={columns[activeKey]}
dataSource={counts || []}
dataSource={counts || []}
request={async (params, sort, filter) => {
if(rewkeys=='keyun'){
if (rewkeys == 'keyun') {
const query = {}
setRowSelected([]);
const res = await dispatch(getOperaTional(query));
setCounts(res.payload.data)
return {
...res,
total: res.payload.data ? res.payload.data.count : 0
}}
if(rewkeys=='chuzu'){
setRowSelected([]);
const res = await dispatch(getOperaTional(query));
setCounts(res.payload.data)
return {
...res,
total: res.payload.data ? res.payload.data.count : 0
}
}
if (rewkeys == 'chuzu') {
const query = {
type:'出租车',
nameOfBusinessOwner:sitename
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'){
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
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'){
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
nameOfBusinessOwner: sitename
}
setRowSelected([]);
const res = await dispatch(getHouseholds(query));
setCounts(res.payload.data)
return {
...res,
total: res.payload.data ? res.payload.data.count : 0
}}
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) => [
...dom.reverse(),
['tab2','tab3','tab4'].includes(activeKey) ? <Popconfirm title="确认导出?" onConfirm={() => { props.exports(rowSelected, counts) }}>
['tab2', 'tab3', 'tab4'].includes(activeKey) ? <Popconfirm title="确认导出?" onConfirm={() => { props.exports(rowSelected, counts) }}>
<Button
>
导出
@ -1981,13 +1985,13 @@ const OperaTionalTable = (props) => {
>
</ProTable></div>
{modalVisible ? <UserModal
{modalVisible ? <UserModal
visible={modalVisible}
onVisibleChange={setModalVisible}
modalRecord={modalRecord}
typecard={typecard}
rewkeys={rewkeys}
data={rewkeys==='yehu'?data:date}
data={rewkeys === 'yehu' ? data : date}
recortd={recortd}
// sitename={sitename}
setDelet={setDelet}
@ -2006,7 +2010,7 @@ const OperaTionalTable = (props) => {
</Spin >
)
}
const date={
const date = {
"nameOfBusinessOwner": "业户名称",
"productName": "品名",
"vehicleRegistry": "车籍地",
@ -2047,7 +2051,7 @@ const date={
"nextRatingDate": "下次等级评定日期",
"creationDate": "创建日期"
}
const data={
const data = {
"nameOfBusinessOwner": "业户名称",
"productName": "品名",
"creditSocialCode": "信用社会代码",
@ -2076,7 +2080,7 @@ const data={
"licenseIssuanceType": "证照发放类型",
"numberOfSharedVehicles": "共有车辆数",
"creationDate": "创建日期",
'type':'类型'
'type': '类型'
}
function mapStateToProps(state) {
const { auth, depMessage } = state;

36
web/client/src/sections/fillion/components/project/project.js

@ -3,7 +3,7 @@ import { connect } from 'react-redux';
import { Form, Spin, Table } from 'antd';
import { DrawerForm, ProForm, ProFormText,ProFormSelect } from '@ant-design/pro-form';
import { putProject } from "../../actions/infor"
import { _ } from 'lodash'
import _ from 'lodash'
const data = {
"entryName": "项目名称",
@ -23,7 +23,6 @@ const ProjectModal = (props) => {
const [records, setRecords] = useState()//处理
const [recordsay, setRecordsay] = useState()//必填数据
const [success, setSuccess] = useState() //状态
const [flage, setFlage] = useState() //xiangmujinzhan
useEffect(() => {
const array = []
if (rewkeys === 'road') {
@ -78,40 +77,39 @@ const ProjectModal = (props) => {
visible={visible}
onVisibleChange={onVisibleChange}
onFinish={(values) => {
console.log(values)
if (rewkeys === 'road') {
if (typecard == '111') {
setDelet(values)
setDelet(values)
const query = { ...values, type:rewkeys }
const query = { ...values, type:rewkeys,projectId:records?.[0]?.value || '' }
dispatch(putProject(query)).then((res) => {
setSuccess(res.success)
})
return success
return true
} else {
setDelet(values)
const query = { ...values, type:rewkeys }
dispatch(putProject(query)).then((res) => {
setSuccess(res.success)
})
return success
return true
}
}
if (rewkeys === 'bridge') {
if (typecard == '111') {
setDelet(values)
const query = { ...values, type:rewkeys }
const query = { ...values, type:rewkeys,projectId:records?.[0]?.value || '' }
dispatch(putProject(query)).then((res) => {
setSuccess(res.success)
})
return success
return true
} else {
setDelet(values)
const query = { ...values, type:rewkeys }
dispatch(putProject(query)).then((res) => {
setSuccess(res.success)
})
return success
return true
}
}
}}
@ -127,7 +125,7 @@ const ProjectModal = (props) => {
placeholder="请输入名称"
// value={recordsay?.[0]?.value}
rules={[{ required: true, message: "必填" }]}
// rules={[{ required: true, message: "必填" }]}
/><ProFormText
name={newlys?.[1]?.type}
width="md"
@ -135,7 +133,7 @@ const ProjectModal = (props) => {
placeholder="请输入名称"
// value={recordsay?.[1]?.value}
rules={[{ required: true, message: "必填" }]}
// rules={[{ required: true, message: "必填" }]}
/>
<ProFormSelect
options={[
@ -150,6 +148,7 @@ const ProjectModal = (props) => {
width="xs"
name='done'
label='是否已完成'
rules={[{ required: true, message: "必填" }]}
/>
{newlysay?.map((item, index) => {
return <ProFormText width="md"
@ -167,7 +166,7 @@ const ProjectModal = (props) => {
placeholder="请输入名称"
// value={recordssy?.[0]?.value}
rules={[{ required: true, message: "必填" }]}
// rules={[{ required: true, message: "必填" }]}
/><ProFormText
name={newlys?.[1]?.type}
width="md"
@ -175,7 +174,7 @@ const ProjectModal = (props) => {
placeholder="请输入名称"
// value={recordssy?.[1]?.value}
rules={[{ required: true, message: "必填" }]}
// rules={[{ required: true, message: "必填" }]}
/>
<ProFormSelect
options={[
@ -190,6 +189,7 @@ const ProjectModal = (props) => {
width="xs"
name='done'
label='是否已完成'
rules={[{ required: true, message: "必填" }]}
/>
{newlysay?.map((item, index) => {
return <ProFormText width="md"

243
web/client/src/sections/fillion/components/publicTable.js

@ -4,7 +4,7 @@ import { Spin, Button, Popconfirm, Badge } from 'antd';
import ProTable from '@ant-design/pro-table';
import './protable.less'
import moment from 'moment';
import { getCircuit,getVehicle,delCircuit,delVehicle } from "../actions/infor"
import { getCircuit, getVehicle, delCircuit, delVehicle } from "../actions/infor"
import UserModal from './infor/details';
const PublicTable = (props) => {
@ -24,23 +24,23 @@ const PublicTable = (props) => {
const [delet, setDelet] = useState()
const ref = useRef()
useEffect(() => { ref.current.reload() }, [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)
})
}
useEffect(() => { ref.current.reload() }, [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);
@ -67,6 +67,22 @@ const requestcheliang = (name) => {
`attachments?src=files/${resTextIs}&filename=${encodeURIComponent(resTextIs)}&token=${user.token}`)
})
}
const deldata = (id) => { // 线路
const query = {
lineId: id
}
dispatch(delCircuit(query)).then((res) => {
setDelet(res)
})
}
const deldatas = (id) => { // 车辆
const query = {
carId: id
}
dispatch(delVehicle(query)).then((res) => {
setDelet(res)
})
}
const columns = {
tab1: [
{
@ -411,16 +427,9 @@ const requestcheliang = (name) => {
setTypecard('111')
setRecortd(record)
}}
>编辑</Button><Button type="link"
onClick={() => {
const query = {
lineId: record.id
}
dispatch(delCircuit(query)).then((res) => {
setDelet(res)
})
}}
>删除</Button></div>
>编辑</Button><Popconfirm title='' onConfirm={() => { deldata(record.id) }}>
<Button type="link">删除</Button>
</Popconfirm></div>
}
},
@ -1113,16 +1122,9 @@ const requestcheliang = (name) => {
setTypecard('111')
setRecortd(record)
}}
>编辑</Button><Button type="link"
onClick={() => {
const query = {
carId: record.id
}
dispatch(delVehicle(query)).then((res) => {
setDelet(res)
})
}}
>删除</Button></div>
>编辑</Button><Popconfirm title='' onConfirm={() => { deldatas(record.id) }}>
<Button type="link">删除</Button>
</Popconfirm></div>
}
},
@ -1173,16 +1175,20 @@ const requestcheliang = (name) => {
items: [
{
key: 'tab1',
label: <span onClick={() => { {
setRewkeys('xianlu')
} }}>运营线路{activeKey === 'tab1'}</span>,
label: <span onClick={() => {
{
setRewkeys('xianlu')
}
}}>运营线路{activeKey === 'tab1'}</span>,
},
{
key: 'tab2',
label: <span onClick={() => { {
setRewkeys('cheliang')
} }}>车辆信息{activeKey === 'tab2'}</span>,
label: <span onClick={() => {
{
setRewkeys('cheliang')
}
}}>车辆信息{activeKey === 'tab2'}</span>,
}
],
@ -1211,29 +1217,29 @@ const requestcheliang = (name) => {
dataSource={counts || []}
request={async (params) => {
if(rewkeys=='xianlu'){
if (rewkeys == 'xianlu') {
const query = {
fleet:sitename
}
setRowSelected([]);
const res = await dispatch(getCircuit(query));
setCounts(res.payload.data)
return {
...res,
total: res.payload.data ? res.payload.data.count : 0
}
fleet: sitename
}
setRowSelected([]);
const res = await dispatch(getCircuit(query));
setCounts(res.payload.data)
return {
...res,
total: res.payload.data ? res.payload.data.count : 0
}
}
if(rewkeys=='cheliang'){
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
}
fleet: sitename
}
setRowSelected([]);
const res = await dispatch(getVehicle(query));
setCounts(res.payload.data)
return {
...res,
total: res.payload.data ? res.payload.data.count : 0
}
}
}}
@ -1252,13 +1258,13 @@ const requestcheliang = (name) => {
>
</ProTable></div>
{modalVisible ? <UserModal
{modalVisible ? <UserModal
visible={modalVisible}
onVisibleChange={setModalVisible}
modalRecord={modalRecord}
typecard={typecard}
rewkeys={rewkeys}
data={rewkeys==='xianlu'?data:date}
data={rewkeys === 'xianlu' ? data : date}
recortd={recortd}
// sitename={sitename}
setDelet={setDelet}
@ -1292,58 +1298,59 @@ const data = {
"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": "机动车所有人"
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;

89
web/client/src/sections/fillion/components/transportationTable.js

@ -1,6 +1,6 @@
import React, { useEffect, useState, useRef } from 'react';
import { connect } from 'react-redux';
import { Spin, Button, Popconfirm, Badge } from 'antd';
import { Spin, Button, Popconfirm } from 'antd';
import ProTable from '@ant-design/pro-table';
import './protable.less'
import moment from 'moment';
@ -22,7 +22,7 @@ const TransporTationTable = (props) => {
const [whichofits, setWhichofits] = useState('县')
const [delet, setDelet] = useState()
const ref = useRef()
useEffect(() => { ref.current.reload() }, [ whichofits, delet])
useEffect(() => { ref.current.reload() }, [whichofits, delet])
//打开弹窗
const openModal = (type, record) => {
setModalVisible(true);
@ -42,7 +42,24 @@ const TransporTationTable = (props) => {
setModalRecord(null);
}
}
// console.log(counts)
//删除daolu
const deldata = (id) => {
const query = {
roadId: id
}
dispatch(delRoadway(query)).then((res) => {
setDelet(res)
})
}
//删除工程
const deldatas = (id) => {
const query = {
projectId: id
}
dispatch(delProject(query)).then((res) => {
setDelet(res)
})
}
//批量导出
const exports = (ids, counts) => {
// console.log(user);
@ -1170,22 +1187,20 @@ const TransporTationTable = (props) => {
width: 120,
fixed: 'right',
render: (dom, record) => {
// node = renderRemoveUser('移除');
return <div><Button type="link"
onClick={() => {
setRecortd(record)
openModal('edit', record)
setTypecard('111')
}}
>编辑</Button><Button type="link"
onClick={() => {
const query = {
roadId: record.id
}
dispatch(delRoadway(query)).then((res) => {
setDelet(res)
})
}}
>删除</Button></div>
>编辑</Button>
<Popconfirm title='是否确认删除' onConfirm={() => { deldata(record.id) }}><Button type="link"
// onClick={() => {
// }}
>删除</Button></Popconfirm>
</div>
}
},
@ -2337,14 +2352,11 @@ const TransporTationTable = (props) => {
setRecortd(record)
}}
>编辑</Button><Button type="link" onClick={() => {
const query = {
roadId: record.id
}
dispatch(delRoadway(query)).then((res) => {
setDelet(res)
})
}}>删除</Button></div>
>编辑</Button>
<Popconfirm title='是否确认删除' onConfirm={() => { deldata(record.id) }}>
<Button type="link">删除</Button>
</Popconfirm>
</div>
}
},
@ -3497,15 +3509,10 @@ const TransporTationTable = (props) => {
setRecortd(record)
}}
>编辑</Button><Button type="link" onClick={() => {
const query = {
roadId: record.id
}
dispatch(delRoadway(query)).then((res) => {
setDelet(res)
})
}}
>删除</Button></div>
>编辑</Button>
<Popconfirm title='是否确认删除' onConfirm={() => { deldata(record.id) }}>
<Button type="link">删除</Button>
</Popconfirm></div>
}
},
@ -3688,16 +3695,11 @@ const TransporTationTable = (props) => {
setTypecard('111')
setRecortd(record)
}}
>编辑</Button><Button type="link"
onClick={() => {
const query = {
projectId: record.id
}
dispatch(delProject(query)).then((res) => {
setDelet(res)
})
}}
>删除</Button></div>
>编辑</Button>
<Popconfirm title='是否确认删除' onConfirm={() => { deldatas(record.id) }}>
<Button type="link">删除</Button>
</Popconfirm>
</div>
}
},
@ -3747,19 +3749,19 @@ const TransporTationTable = (props) => {
{
key: 'tab1',
label: <span onClick={() => {
setWhichofits('xian')
setWhichofits('')
}}>县道{activeKey === 'tab1'}</span>,
},
{
key: 'tab2',
label: <span onClick={() => {
setWhichofits('xiang')
setWhichofits('')
}}>乡道{activeKey === 'tab2'}</span>,
},
{
key: 'tab3',
label: <span onClick={() => {
setWhichofits('cun')
setWhichofits('')
}}>村道{activeKey === 'tab3'}</span>,
}, {
key: 'tab4',
@ -3875,6 +3877,7 @@ const TransporTationTable = (props) => {
rewkeys={'road'}
recortd={recortd}
setRecortd={setRecortd}
setDelet={setDelet}
/> : ''}
</Spin >
)

20
web/client/src/sections/organization/components/userModal.js

@ -1,22 +1,25 @@
import React from 'react';
import { connect } from 'react-redux';
import { Spin, Card, Modal, TreeSelect, message } from 'antd';
import { Spin } from 'antd';
import ProForm, { ProFormText, ModalForm, ProFormSwitch, ProFormTreeSelect } from '@ant-design/pro-form';
const UserModal = (props) => {
const { visible, modalType, depData, onVisibleChange, onConfirm, editData } = props
const reg_tel = /^1([358][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$/;
const onFinish = (values) => {
if (onConfirm) {
onConfirm(values);
}
}
const mobile = (value) => {
if (reg_tel.test(value)) {
return
const checkName = (rule, value, callback) => {
if (value && value.replace(/[^\u4E00-\u9FA5]/g).includes('undefined')) {
callback(new Error('请输入中文!'));
} else {
callback()
}
return message('请输入姓名')
}
return (
<Spin spinning={false}>
<ModalForm
@ -45,7 +48,10 @@ const UserModal = (props) => {
label="姓名"
required
placeholder="请输入姓名"
rules={[{ required: true, message: '请输入姓名' },{ max: 5, message: '请输入5个字以内的名称' }]}
rules={[{ required: true, message: '请输入姓名' },
{ max: 5, message: '请输入5个字以内的名称' },
{ validator: checkName }
]}
/>
< ProFormText
name={['contract', 'phone']}

1
web/client/src/sections/organization/containers/user.js

@ -374,7 +374,6 @@ const UserManage = (props) => {
function mapStateToProps(state) {
const { depMessage, depUser, global } = state;
console.log('depMessage:', depMessage);
// console.log(state);
return {
clientHeight: global.clientHeight,

15
web/client/src/sections/quanju/containers/footer/conserve/index.js

@ -19,25 +19,24 @@ const Conserve = (props) => {
setLoading(false)
setRoadData(res.payload.data || {})
})
dispatch(getHighways()).then(res =>{
dispatch(getHighways()).then(res => {
setHighwaysData(res.payload.data || [])
})
dispatch(getRoadMaintenances()).then(res =>{
dispatch(getRoadMaintenances()).then(res => {
setRoadMaintenances(res.payload.data || [])
})
}, [])
return (
<div style={{ width: '100%', height: '100%', }}>
<div style={{ display: 'flex', width: '100%', height: '100%', justifyContent: 'space-between' }}>
<Left roadData={roadData} loading={loading} />
<Right highwaysData={highwaysData} roadMaintenances={roadMaintenances}/>
<div style={{ width: '100%', height: '100%', }}>
<div style={{ display: 'flex', width: '100%', height: '100%', justifyContent: 'space-between' }}>
<Left roadData={roadData} loading={loading} />
<Right highwaysData={highwaysData} roadMaintenances={roadMaintenances} />
</div>
</div>
</div>
)
}
function mapStateToProps(state) {
// const { auth } = state;
return {

2
web/client/src/sections/quanju/containers/footer/conserve/left/left-bottom.js

@ -37,7 +37,7 @@ const LeftBottom = (props) => {
total={totalData?.toFixed(3) || 0}
colorList={colorList}
textLeft={'20%'}
numLeft={'16%'}
numLeft={'14.5%'}
underColorList={underColorList}
/>
</Module>

2
web/client/src/sections/quanju/containers/footer/conserve/right/right-bottom.js

@ -62,7 +62,7 @@ const RightBottom = (props) => {
height='100%'
text='养护总数'
textLeft={'21%'}
numLeft={'23%'}
numLeft={'22%'}
total={totalData || 0}
colorList={colorList}
underColorList={underColorList}

83
web/client/src/sections/quanju/containers/footer/operation/left.js

@ -6,6 +6,7 @@ import { getBusTierList } from '../../../actions/example'
import './style.less'
const Left = (props) => {
const [treeData, setTreeData] = useState([])
const [treeDataList, setTreeDataList] = useState([])
@ -39,9 +40,10 @@ const Left = (props) => {
};
const loop = (treeData) =>
treeData.map((item) => {
const index = item.title.indexOf(searchValue);
const beforeStr = item.title.substr(0, index);
const afterStr = item.title.substr(index + searchValue.length);
// console.log(item,'===> item -----');
const index = item.title != null && item.title.indexOf(searchValue);
const beforeStr = item.title != null && item.title.substr(0, index);
const afterStr = item.title != null && item.title.substr(index + searchValue.length);
const title =
index > -1 ? (
<span>
@ -75,47 +77,52 @@ const Left = (props) => {
let busTierList = []
let busTierOpen = []
let dataList = []
let busTierNewList = []
if (busTier && busTier.data && busTier.data.length > 0) {
busTierNewList.push(busTier && busTier.data && busTier.data[0])
}
if (busTierNewList.length > 0) {
busTierNewList.forEach((e, index) => {
if (index == 0) {
busTierOpen.push(e.name)
}
busTierList.push({
key: e.name,
title: e.name,
children: e.child.map(s => {
return {
key: s.name,
title: s.name,
children: s.child.map(i => {
return {
key: i.name,
title: i.name,
children: i.child.map(x => {
return {
key: x.name,
title: x.name,
}
})
}
})
}
busTier && busTier.data && busTier.data.forEach((e, index) => {
if (index == 0) {
busTierOpen.push(e.name)
}
busTierList.push({
key: e.name,
title: e.name,
children: e.child.map(s => {
return {
key: s.name,
title: s.name,
children: s.child.map(i => {
return {
key: i.vehicleLicensePlateNumber,
title: i.vehicleLicensePlateNumber,
}
})
}
})
})
})
})
busTier && busTier.data && busTier.data.forEach(e => {
dataList.push({
key: e.name,
title: e.name,
})
e.child.forEach(i => {
dataList.push({
key: i.name,
title: i.name,
})
i.child.forEach(s => {
dataList.push({
key: s.vehicleLicensePlateNumber,
title: s.vehicleLicensePlateNumber,
busTierNewList.forEach(e => {
e.child.forEach(i => {
i.child.forEach(s => {
s.child.forEach(x => {
dataList.push({
key: x.name,
title: x.name
})
})
})
})
})
})
}
setTreeData(busTierList)
setExpandedKeys(busTierOpen)
setTreeDataList(dataList)

Loading…
Cancel
Save