diff --git a/api/app/lib/controllers/data/road.js b/api/app/lib/controllers/data/road.js
index 5021be60..794cbe52 100644
--- a/api/app/lib/controllers/data/road.js
+++ b/api/app/lib/controllers/data/road.js
@@ -39,7 +39,10 @@ async function get (ctx) {
let findOption = {
where: {},
- order: [['id', 'DESC']]
+ order: [['id', 'DESC']],
+ }
+ if (level == '村') {
+ findOption.include = [{ model: models.Village, }]
}
if (alterId) {
findOption.where.id = { $notIn: alterId }
@@ -173,8 +176,27 @@ async function del (ctx) {
}
}
+async function getVillageList (ctx) {
+ try {
+ const models = ctx.fs.dc.models;
+ const { } = ctx.query;
+
+ const res = await models.Village.findAll()
+
+ ctx.status = 200;
+ ctx.body = res
+ } catch (error) {
+ ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`);
+ ctx.status = 400;
+ ctx.body = {
+ message: typeof error == 'string' ? error : undefined
+ }
+ }
+}
+
module.exports = {
importIn,
getRoadSection,
get, edit, del,
+ getVillageList,
};
\ No newline at end of file
diff --git a/api/app/lib/index.js b/api/app/lib/index.js
index b564d4e7..da9856ce 100644
--- a/api/app/lib/index.js
+++ b/api/app/lib/index.js
@@ -95,6 +95,8 @@ module.exports.models = function (dc) { // dc = { orm: Sequelize对象, ORM: Seq
VillageDistance.belongsTo(Village, { foreignKey: 'calcVillage', targetKey: 'id' });
Village.hasMany(VillageDistance, { foreignKey: 'calcVillage', sourceKey: 'id' });
+ Road.belongsTo(Village, { foreignKey: 'villageId', targetKey: 'id' });
+
Report.belongsTo(Road, { foreignKey: 'roadId', targetKey: 'id', as: 'road_' });
Road.hasMany(Report, { foreignKey: 'roadId', sourceKey: 'id', as: 'road_' });
};
diff --git a/api/app/lib/routes/data/index.js b/api/app/lib/routes/data/index.js
index 522b1cc8..462475ae 100644
--- a/api/app/lib/routes/data/index.js
+++ b/api/app/lib/routes/data/index.js
@@ -111,6 +111,9 @@ module.exports = function (app, router, opts) {
app.fs.api.logAttr['DEL/road/:roadId'] = { content: '删除道路数据', visible: false };
router.del('/road/:roadId', road.del);
+
+ app.fs.api.logAttr['GET/village/list'] = { content: '获取村庄数据', visible: true };
+ router.get('/village/list', road.getVillageList);
// 道路 END
// 桥梁
diff --git a/web/client/src/sections/fillion/actions/infor.js b/web/client/src/sections/fillion/actions/infor.js
index 32df6029..1db4fe52 100644
--- a/web/client/src/sections/fillion/actions/infor.js
+++ b/web/client/src/sections/fillion/actions/infor.js
@@ -111,6 +111,19 @@ export function putRoadway (query) {
msg: { option: query?.roadId ? '编辑' : '新增' + '道路信息' },
});
}
+
+export function getVillageList(query={}) { // fId, limit, offset, searchTxt
+ return dispatch => basicAction({
+ type: 'get',
+ dispatch: dispatch,
+ actionType: 'GET_VILLAGE_LIST',
+ url: ApiTable.getVillageList,
+ query,
+ msg: { error: '获取村庄数据失败' },
+ reducer: { name: 'villageList' }
+ });
+}
+
export function getBridge (query) {
return dispatch => basicAction({
type: 'get',
@@ -433,4 +446,5 @@ export function getxiuyangas (query) {
msg: { error: '获取信息失败' },
reducer: { name: 'xiuyang' }
});
-}
\ No newline at end of file
+}
+
diff --git a/web/client/src/sections/fillion/components/infor/details.js b/web/client/src/sections/fillion/components/infor/details.js
index 096d0b60..361c3f85 100644
--- a/web/client/src/sections/fillion/components/infor/details.js
+++ b/web/client/src/sections/fillion/components/infor/details.js
@@ -2,382 +2,405 @@ import React, { useEffect, useState } from 'react';
import { connect } from 'react-redux';
import { Form, Spin, Table } from 'antd';
import { DrawerForm, ProForm, ProFormText, ProFormSelect } from '@ant-design/pro-form';
-import { putRoadway, putSpecificVehicle, putHouseholds,putCircuit,putVehicle,putPurchase } from "../../actions/infor"
+import { putRoadway, putSpecificVehicle, putHouseholds, putCircuit, putVehicle, putPurchase } from "../../actions/infor"
import { putBridge } from "../../actions/infor"
-import _ from 'lodash'
+import _ from 'lodash'
const UserModal = (props) => {
- const { visible, onVisibleChange, typecard, rewkeys, data, recortd, sitename,setDelet, dispatch, setRecortd, engineering,whichofits } = props
- const [newlys, setNewlys] = useState() //必填数据
- const [newlysay, setNewlysay] = useState() //处理hou
- const [records, setRecords] = useState()//处理
- const [recordsay, setRecordsay] = useState()//必填数据
- // const [success, setSuccess] = useState() //状态
- // const [establishment, setEstablishment] = useState() //业户类型
- // console.log(recortd)
- useEffect(() => {
- const array = []
- if (rewkeys === 'transportation') {
- const xindata = [...data]
- setNewlys(xindata?.splice(0, 2))
- setNewlysay(xindata)
- } if (rewkeys === 'bridge') {
- _.forIn(data, function (value, key) {
- array.push({ name: value, type: key })
- });
- setNewlys(array?.splice(0, 2))
- setNewlysay(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))
+ const { visible, onVisibleChange, typecard, rewkeys, data, recortd, sitename, setDelet, dispatch, setRecortd, engineering, whichofits, villageList } = props
+ const [newlys, setNewlys] = useState() //必填数据
+ const [newlysay, setNewlysay] = useState() //处理hou
+ const [records, setRecords] = useState()//处理
+ const [recordsay, setRecordsay] = useState()//必填数据
+ // const [success, setSuccess] = useState() //状态
+ // const [establishment, setEstablishment] = useState() //业户类型
+
+ useEffect(() => {
+ const array = []
+ if (rewkeys === 'transportation') {
+ const xindata = [...data]
+ setNewlys(xindata?.splice(0, 2))
+ setNewlysay(xindata)
+ } if (rewkeys === 'bridge') {
+ _.forIn(data, function (value, key) {
+ array.push({ name: value, type: key })
+ });
+ setNewlys(array?.splice(0, 2))
+ setNewlysay(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(() => {
- const arr = []
- if (rewkeys === 'transportation') {
- _.forIn(recortd, function (value, key) {
- arr.push({ value: value, type: key })
- });
- setRecordsay(arr.splice(1, 2))
- setRecords(arr)
- }
- if (rewkeys === 'bridge') {
- _.forIn(recortd, function (value, key) {
- arr.push({ value: value, type: key })
- });
- 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)
- }
- }, [recortd])
- useEffect(() => {
- return () => {
- setRecortd()
- }
- }, [setRecortd])
- // console.log(recortd)
- return (
-
- {/* {
+ 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(() => {
+ const arr = []
+ if (rewkeys === 'transportation') {
+ _.forIn(recortd, function (value, key) {
+ arr.push({ value: value, type: key })
+ });
+ setRecordsay(arr.splice(1, 2))
+ setRecords(arr)
+ }
+ if (rewkeys === 'bridge') {
+ _.forIn(recortd, function (value, key) {
+ arr.push({ value: value, type: key })
+ });
+ 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)
+ }
+ }, [recortd])
+ useEffect(() => {
+ return () => {
+ setRecortd()
+ }
+ }, [setRecortd])
+ // console.log(recortd)
+ return (
+
+ {/* {
newlysay ? */}
- {
- if (Object.values(values).length > 0) {
- if (rewkeys === 'transportation') {
- if (typecard == 'compile') {
- setDelet(values)
- const query = { ...values, level: whichofits, roadId: records?.[0]?.value || '' }
- dispatch(putRoadway(query)).then((res) => {
+ {
+ if (Object.values(values).length > 0) {
+ if (rewkeys === 'transportation') {
+ if (typecard == 'compile') {
+ setDelet(values)
+ const query = { ...values, level: whichofits, roadId: records?.[0]?.value || '' }
+ dispatch(putRoadway(query)).then((res) => {
- })
- return true
- } else {
- setDelet(values)
- const query = { ...values, level: whichofits }
- dispatch(putRoadway(query)).then((res) => {
-
-
- })
- return true
- }
- }
- if (rewkeys === 'bridge') {
- if (typecard == 'compile') {
- setDelet(values)
- const query = { ...values, roadId: records?.[0]?.value || '' }
- dispatch(putBridge(query)).then((res) => {
-
- })
- return true
- } else {
- setDelet(values)
- const query = { ...values }
- dispatch(putBridge(query)).then((res) => {
-
- })
- return true
- }
- }
- if (rewkeys === 'weihuo' || rewkeys === 'chuzu') {
- if (typecard == 'compile') {
- setDelet(values)
- const query = { ...values, vehicleId: records?.[0]?.value || '', type: rewkeys == 'chuzu' ? '出租车' : '危货' }
- dispatch(putSpecificVehicle(query)).then((res) => {
-
- })
- return true
- } else {
- setDelet(values)
- const query = { ...values, type: rewkeys == 'chuzu' ? '出租车' : '危货' }
- dispatch(putSpecificVehicle(query)).then((res) => {
-
- })
- return true
- }
- }
- if (rewkeys === 'yehu') {
- if (typecard == 'compile') {
- setDelet(values)
- const query = { ...values, businessId: records?.[0]?.value, type: rewkeys == 'chuzu' ? '出租车' : '危货' }
- dispatch(putHouseholds(query)).then((res) => {
-
- })
- return true
- } else {
- setDelet(values)
- const query = { ...values, type: rewkeys === 'chuzu' ? '出租车' : '危货' }
- dispatch(putHouseholds(query)).then((res) => {
-
- })
- return true
- }
- } if (rewkeys === 'xianlu') {
- if (typecard == 'compile') {
- setDelet(values)
- const query = { ...values, lineId: records?.[0]?.value || '' }
- dispatch(putCircuit(query)).then((res) => {
-
- })
- return true
- } else {
- setDelet(values)
- const query = { ...values }
- dispatch(putCircuit(query)).then((res) => {
-
- })
- return true
- }
- }
- if (rewkeys === 'cheliang') {
- if (typecard == 'compile') {
- setDelet(values)
- const query = { ...values, carId: records?.[0]?.value || '' }
- dispatch(putVehicle(query)).then((res) => {
-
- })
- return true
- } else {
- setDelet(values)
- const query = { ...values }
- dispatch(putVehicle(query)).then((res) => {
-
- })
- return true
- }
- }
- if (rewkeys == 'zhichao') {
+ })
+ return true
+ } else {
+ setDelet(values)
+ const query = { ...values, level: whichofits }
+ dispatch(putRoadway(query)).then((res) => {
- if (typecard == 'compile') {
- console.log(typecard)
- setDelet(values)
- const query = { ...values, overspeedId: records?.[0]?.value || '' }
- dispatch(putPurchase(query)).then((res) => {
- console.log(res)
- })
- return true
- } else {
- setDelet(values)
- const query = { ...values }
- dispatch(putPurchase(query)).then((res) => {
- console.log(res)
-
- })
- return true
- }
- }
- } else { return false }
+ })
+ return true
+ }
+ }
+ if (rewkeys === 'bridge') {
+ if (typecard == 'compile') {
+ setDelet(values)
+ const query = { ...values, roadId: records?.[0]?.value || '' }
+ dispatch(putBridge(query)).then((res) => {
- }}
- initialValues={recortd}
- >
- {typecard == 'compile' ?
-
-
- {rewkeys === 'yehu' ?
- : null
- }
- {newlysay?.map((item, index) => {
- return
- })}
+ })
+ return true
+ } else {
+ setDelet(values)
+ const query = { ...values }
+ dispatch(putBridge(query)).then((res) => {
+
+ })
+ return true
+ }
+ }
+ if (rewkeys === 'weihuo' || rewkeys === 'chuzu') {
+ if (typecard == 'compile') {
+ setDelet(values)
+ const query = { ...values, vehicleId: records?.[0]?.value || '', type: rewkeys == 'chuzu' ? '出租车' : '危货' }
+ dispatch(putSpecificVehicle(query)).then((res) => {
+
+ })
+ return true
+ } else {
+ setDelet(values)
+ const query = { ...values, type: rewkeys == 'chuzu' ? '出租车' : '危货' }
+ dispatch(putSpecificVehicle(query)).then((res) => {
+
+ })
+ return true
+ }
+ }
+ if (rewkeys === 'yehu') {
+ if (typecard == 'compile') {
+ setDelet(values)
+ const query = { ...values, businessId: records?.[0]?.value, type: rewkeys == 'chuzu' ? '出租车' : '危货' }
+ dispatch(putHouseholds(query)).then((res) => {
+
+ })
+ return true
+ } else {
+ setDelet(values)
+ const query = { ...values, type: rewkeys === 'chuzu' ? '出租车' : '危货' }
+ dispatch(putHouseholds(query)).then((res) => {
+
+ })
+ return true
+ }
+ } if (rewkeys === 'xianlu') {
+ if (typecard == 'compile') {
+ setDelet(values)
+ const query = { ...values, lineId: records?.[0]?.value || '' }
+ dispatch(putCircuit(query)).then((res) => {
+
+ })
+ return true
+ } else {
+ setDelet(values)
+ const query = { ...values }
+ dispatch(putCircuit(query)).then((res) => {
+
+ })
+ return true
+ }
+ }
+ if (rewkeys === 'cheliang') {
+ if (typecard == 'compile') {
+ setDelet(values)
+ const query = { ...values, carId: records?.[0]?.value || '' }
+ dispatch(putVehicle(query)).then((res) => {
+
+ })
+ return true
+ } else {
+ setDelet(values)
+ const query = { ...values }
+ dispatch(putVehicle(query)).then((res) => {
+
+ })
+ return true
+ }
+ }
+ if (rewkeys == 'zhichao') {
-
- :
- {
+ console.log(res)
+ })
+ return true
+ } else {
+ setDelet(values)
+ const query = { ...values }
+ dispatch(putPurchase(query)).then((res) => {
+ console.log(res)
+
+ })
+ return true
+ }
+ }
+ } else { return false }
+
+ }}
+ initialValues={recortd}
+ >
+ {typecard == 'compile' ?
+
+ {rewkeys == 'transportation' && whichofits == '村' ?
+ : null
+ }
+
+ {rewkeys === 'yehu' ?
+ : null
+ }
+ {newlysay?.map((item, index) => {
+ return
+ })}
+
+
+ :
+ {rewkeys == 'transportation' && whichofits == '村' ?
+
- {rewkeys === 'yehu' ?
- : null
- }
- {newlysay?.map((item, index) => {
- return : null
+ }
+
+ {rewkeys === 'yehu' ?
+ : null
+ }
+
+ {newlysay?.map((item, index) => {
+ return
- })}
- }
+ />
+ })}
+ }
-
- {/* : ''
+
+ {/* : ''
} */}
-
- )
+
+ )
}
-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,
- };
+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)(UserModal);
\ No newline at end of file
diff --git a/web/client/src/sections/fillion/components/transportationTable.js b/web/client/src/sections/fillion/components/transportationTable.js
index 6fabd4b7..3e2c0399 100644
--- a/web/client/src/sections/fillion/components/transportationTable.js
+++ b/web/client/src/sections/fillion/components/transportationTable.js
@@ -4,1241 +4,2408 @@ import { Spin, Button, Popconfirm } from 'antd';
import ProTable from '@ant-design/pro-table';
import './protable.less'
import moment from 'moment';
-import { getRoadway, getProject, delRoadway, delProject } from "../actions/infor"
+import { getRoadway, getProject, delRoadway, delProject, getVillageList } 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 [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 [recortd, setRecortd] = useState()
- const [whichofits, setWhichofits] = useState('县')
- const [delet, setDelet] = useState()
- const [differentiate, setDifferentiate] = useState('road')
- const [grade, setGrade] = useState('县')
- const [departmentInfo, setDepartment] = useState('')
- const [roadData, setRoadData] = useState([])//道路数据
- const [editAble, setEditAble] = useState(user?.username !== 'SuperAdmin' && user?.userResources?.filter(i => i.resourceId === 'ROADMANAGE')[0].isshow === "true" ? true : '')
- const ref = useRef()
- useEffect(() => { ref.current.reload() }, [whichofits, delet])
- //打开弹窗
- const openModal = (type, record) => {
- setModalVisible(true);
- // setModalType(type);
- if (type == 'edit') {
- setModalRecord(record);
- } else {
- setModalRecord(null);
- }
- }
- useEffect(() => {
- const { departmentId } = user
- const departmentInfo = depMessage.find((item) => {
- return item.id === departmentId
- })
- setDepartment(departmentInfo)
- }, [user, depMessage])
- //console.log('sad', departmentInfo)
- // useEffect(() => {
- // console.log('11111', depMessage)
- // }, [depMessage])
- const yilanModal = (type, record) => {
- setModalVisibleyilan(true);
- // setModalType(type);
- if (type == 'edit') {
- setModalRecord(record);
- } else {
- setModalRecord(null);
- }
- }
- //删除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)
- })
- }
- useEffect(async () => {
- console.log('whichofits', whichofits)
- let query = {}
- if (whichofits === '县') {
- query.level = '县'
- } else if (whichofits === '乡') {
- query.level = '乡'
- } else if (whichofits === '村') {
- query.level = '村'
- }
- const res = await dispatch(getRoadway(query))
- const uniqueArray = [...new Set(res.payload.data?.map(item => item.routeName))];
- setRoadData(uniqueArray)
- }, [whichofits])
- const columns = {
- tab1: [
- {
- title: '路线名称',
- dataIndex: 'placeName',
- fixed: 'left',
- width: 120,
- options: 1,
- backgroundColor: "#ffffff",
- fieldProps: {
- onChange: (value, cs) => {
- setSitename(value.currentTarget.value)
- },
- placeholder: '请输入道路名称进行搜索',
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- },
- render: (dom, record) => {
- // console.log('record',record)
- return record.routeName
- },
- },
- {
- title: '路线代码',
- search: false,
- dataIndex: 'containers',
-
- fixed: 'left',
- width: 120,
- render: (dom, record) => {
- return record.routeCode
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- },
- {
- title: '路段序号',
- search: false,
- dataIndex: 'time2',
- valueType: 'dateRange',
- // align: 'right',
- width: 120,
- render: (dom, record) => {
- return record.sectionNo
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- },
- {
- title: '乡镇编码',
- search: false,
- dataIndex: 'time3',
- valueType: 'dateRange',
- width: 120,
- render: (dom, record) => {
- return record.townshipCode
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '起点地名',
- search: false,
- dataIndex: 'time4',
- valueType: 'dateRange',
- width: 120,
- render: (dom, record) => {
- return record.startingPlaceName
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '起点桩号',
- search: false,
- dataIndex: 'time5',
- valueType: 'dateRange',
- width: 120,
- render: (dom, record) => {
- return record.startStation
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '起点分界点类别',
- search: false,
- dataIndex: 'time6',
- valueType: 'dateRange',
- width: 120,
- render: (dom, record) => {
- return record.categoryOfStartingPointAndDividingPoint
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '止点地名',
- search: false,
- dataIndex: 'time7',
- valueType: 'dateRange',
- width: 120,
- render: (dom, record) => {
- return record.stopPlaceName
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '止点分界点类别',
- search: false,
- dataIndex: 'time8',
- valueType: 'dateRange',
- width: 120,
- render: (dom, record) => {
- return record.categoryOfDeadCenterAndDividingPoint
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '止点桩号',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
- width: 140,
- render: (dom, record) => {
- return record.stopStation
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '路段类型',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
- width: 140,
- render: (dom, record) => {
- return record.sectionType
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '路网调整前路线编码',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
- width: 140,
- render: (dom, record) => {
- return record.routeCodeBeforeRoadNetworkAdjustment
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '原路段序号',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.serialNumberOfOriginalSection
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '原路段起点桩号',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.startingStakeNumberOfTheOriginalRoadSection
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '原路段止点桩号',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.endingPointStakeNoOfTheOriginalRoadSection
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '路线等级',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.routeLevel
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '路段性质',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.natureOfRoadSection
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '建成时间',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.completionTime
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '改建时间',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.reconstructionTime
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '建设性质',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.natureOfConstruction
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '最近一次修复养护年度',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.lastRepairAndMaintenanceYear
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: 'GBM及文明样板路',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.gBMAndCivilizedModelRoad
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '地貌',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.landforms
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '收费性质',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.natureOfCharges
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '所属收费站',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.tollStation
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '涵洞数量',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.numberOfCulverts
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '技术等级',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.technicalLevel
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '路面类型',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.pavementType
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '面层厚度(厘米)',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.surfaceThickness
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '路面宽度',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.pavementWidth
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '路基宽度',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.subgradeWidth
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '是否晴雨通车',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.whetherItIsOpenToTrafficInSunnyOrRainyDays
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '车道特征',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.laneCharacteristics
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '设计时速',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.designSpeedPerHour
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '是否城管路段',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.urbanManagementSectionOrNot
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '管养单位',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.managementAndMaintenanceUnit
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '路政管理单位',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.roadAdministrationUnit
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '列养情况',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.alimentation
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '列养资金来源',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.sourceOfListedMaintenanceFunds
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '养护时间',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.curingTime
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '可绿化里程',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.greeningMileage
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '已绿化里程',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.greeningMileaged
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '重复道路路段类型',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.typeOfRepeatedRoadSection
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '重复路段序号',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.serialNumberOfRepeatedSection
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '重复路段路线编码',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.repeatedSectionRouteCode
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '计划资金类别',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.plannedFundCategory
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '计划年度',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.plannedYear
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '计划文号',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.planDocumentNo
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '计划项目唯一编码',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.planItemUniqueCode
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '计划项目路线编码',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.plannedProjectRouteCode
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '计划项目名称',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.planProjectName
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '计划项目类型',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.plannedProjectType
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '完工情况',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.completionStatus
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '完工年度',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.yearOfCompletion
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '计划资金类别',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.plannedFundCategoryOne
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '计划年度',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.plannedYearOne
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '计划文号',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.planDocumentNoOne
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '计划项目唯一编码',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.planItemUniqueCodeOne
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '计划项目名称',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.planProjectNameOne
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '完工情况',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.completionStatusOne
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '完工年度',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.yearOfCompletionOne
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '桩号范围',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.stationRange
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '填报单位',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.reportingUnit
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '变更原因',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.reasonForChange
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '变更时间',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.changeTime
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '是否按干线公路管理接养',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.whetherMaintenanceManagedHighway
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '备注',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.remarks
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '上年路线编码',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.routeCodeOfLastYear
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '上年路线名称',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.routeNameOfLastYear
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '上年起点桩号',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.startingStationOfLastYear
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '上年止点桩号',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.lastYearsEndingPointStakeNumber
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '图形里程',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.graphicMileage
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '桩号里程',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.chainageMileage
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '所在区县',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.districtcounty
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- }, {
- title: '所在地市',
- search: false,
- dataIndex: 'time9',
- valueType: 'dateRange',
-
-
- width: 140,
-
- render: (dom, record) => {
- return record.locationCity
- },
- fieldProps: {
- getPopupContainer: (triggerNode) => triggerNode.parentNode,
- }
- },
- {
- title: '操作',
- dataIndex: 'creatTime',
- valueType: 'dateTimeRange',
- hideInSearch: true,
- width: 160,
- fixed: 'right',
- render: (dom, record) => {
- // node = renderRemoveUser('移除');
- return
-
{ deldata(record.id) }}
- disabled={editAble}
- >
-
-
- }
- },
- {
- key: "direction",
- hideInTable: true,
- dataIndex: "direction",
- order: 6,
- renderFormItem: (item, { type, defaultRender, ...rest }, form, record) => {
- return (
-
- {/*
}
name="percentValue"
rules={[
{ required: true, message: '请选择抽取比例' },
@@ -235,7 +238,7 @@ const MaintenanceSpotCheck = (props) => {
// },
]}
>
-
+