Browse Source

fix():修复路内bug

tags/PMS_Frontend_v1.0.6-develop
guoxin 1 year ago
parent
commit
e7eda5a567
  1. 1
      package.json
  2. 184
      src/components/Map/Apimap/index.jsx
  3. 1
      src/components/MapComponets/Marker/index.jsx
  4. 4
      src/components/SelectLngLat/index.jsx
  5. 12
      src/pages/InRoadMgm/PersonMgm/Attendance/Fence/index.scss
  6. 197
      src/pages/InRoadMgm/PersonMgm/Attendance/Fence/loadable.jsx
  7. 12
      src/pages/InRoadMgm/PersonMgm/Attendance/ScheduleMgm/index.scss
  8. 94
      src/pages/InRoadMgm/PersonMgm/Attendance/ScheduleMgm/loadable.jsx
  9. 2
      src/pages/InRoadMgm/PersonMgm/Attendance/WorkerAttendance/loadable.jsx
  10. 1
      src/pages/InRoadMgm/PersonMgm/MesNotification/loadable.jsx
  11. 12
      src/pages/InRoadMgm/PersonMgm/PersonInfo/index.scss
  12. 33
      src/pages/InRoadMgm/PersonMgm/PersonInfo/loadable.jsx
  13. 2
      src/pages/InRoadMgm/RoadMgm/AddRoad/loadable.jsx
  14. 113
      src/pages/InRoadMgm/RoadMgm/ConfigRoad/loadable.jsx
  15. 30
      src/pages/InRoadMgm/RoadMgm/ParkList/loadable.jsx
  16. 9
      src/pages/InRoadMgm/Stuff/CategroyConf/loadable.jsx
  17. 9
      src/pages/InRoadMgm/Stuff/ModelConf/loadable.jsx
  18. 7
      src/pages/InRoadMgm/Stuff/StuffMgm/index.scss
  19. 86
      src/pages/InRoadMgm/Stuff/StuffMgm/loadable.jsx
  20. 34
      src/pages/InRoadMgm/Stuff/StuffStat/loadable.jsx
  21. 14
      src/pages/OperationCenter/GeoSignalIgnore/GeoSignalIgnoreAudit/index.scss
  22. 65
      src/pages/OperationCenter/GeoSignalIgnore/GeoSignalIgnoreAudit/loadable.jsx
  23. 2
      src/pages/SystemMgm/OrgnizationMgm/loadable.jsx

1
package.json

@ -60,7 +60,6 @@
"webpack-merge": "^5.8.0" "webpack-merge": "^5.8.0"
}, },
"dependencies": { "dependencies": {
"@amap/amap-jsapi-loader": "^1.0.1",
"@loadable/component": "^5.15.2", "@loadable/component": "^5.15.2",
"ahooks": "^3.7.2", "ahooks": "^3.7.2",
"axios": "^0.26.0", "axios": "^0.26.0",

184
src/components/Map/Apimap/index.jsx

@ -1,95 +1,95 @@
import React, { useState, useEffect, useRef, useLayoutEffect } from "react";import L from "leaflet";
import "leaflet/dist/leaflet.css";
import "leaflet.chinatmsproviders";
import ajax from "@/services";
// import React, { useState, useEffect, useRef, useLayoutEffect } from "react";import L from "leaflet";
// import "leaflet/dist/leaflet.css";
// import "leaflet.chinatmsproviders";
// import ajax from "@/services";
function ModalMap(props) {
const {
setLnglat = () => {},
getLntLat = () => {},
searchLnglatValue = [],
} = props;
const mapConfig = {
center: sysConfig.map.center,
zoom: sysConfig.map.zoom,
zooms: sysConfig.map.zooms,
maxZoom: sysConfig.map.zooms[1],
minZoom: sysConfig.map.zooms[0],
mapTileHost: sysConfig.map.mapTileHost,
zoomOffset: sysConfig.map.zoomOffset,
mapTileType: sysConfig.map.mapTileType,
};
const [map, setMap] = useState(null);
const mapRef = useRef(null);
const initMap = () => {
// console.log(mapConfig);
// const _map = L.map("mapid", {
// scrollWheelZoom: true,
// zoomSnap: 1,
// crs: L.CRS.EPSG3857,
// }).setView([mapConfig.center[0], mapConfig.center[1]], mapConfig.zoom);
// L.tileLayer("{mapTileHost}/v3/tile?z={z}&x={x}&y={y}", {
// maxZoom: mapConfig.zooms[1],
// minZoom: mapConfig.zooms[0],
// zoomOffset: 0,
// mapTileHost: mapConfig.mapTileHost,
// }).addTo(_map);
// _map.on("click", function (e) {
// clearMarkers(_map);
// L.marker(e.latlng).addTo(_map);
// setLnglat([e.latlng.lng.toFixed(4), e.latlng.lat.toFixed(4)]);
// getLntLat([e.latlng.lng.toFixed(4), e.latlng.lat.toFixed(4)]);
// });
// _map.invalidateSize();
// setMap(_map);
// mapRef.current = _map;
let _map = new AMap.Map("mapid", {
resizeEnable: true,
layers: [
new AMap.TileLayer.Satellite(),
new AMap.TileLayer.RoadNet()
]
});
_map.setCenter([mapConfig.center[1], mapConfig.center[0]], mapConfig.zoom);
// function ModalMap(props) {
// const {
// setLnglat = () => {},
// getLntLat = () => {},
// searchLnglatValue = [],
// } = props;
// const mapConfig = {
// center: sysConfig.map.center,
// zoom: sysConfig.map.zoom,
// zooms: sysConfig.map.zooms,
// maxZoom: sysConfig.map.zooms[1],
// minZoom: sysConfig.map.zooms[0],
// mapTileHost: sysConfig.map.mapTileHost,
// zoomOffset: sysConfig.map.zoomOffset,
// mapTileType: sysConfig.map.mapTileType,
// };
// const [map, setMap] = useState(null);
// const mapRef = useRef(null);
// const initMap = () => {
// // console.log(mapConfig);
// // const _map = L.map("mapid", {
// // scrollWheelZoom: true,
// // zoomSnap: 1,
// // crs: L.CRS.EPSG3857,
// // }).setView([mapConfig.center[0], mapConfig.center[1]], mapConfig.zoom);
// // L.tileLayer("{mapTileHost}/v3/tile?z={z}&x={x}&y={y}", {
// // maxZoom: mapConfig.zooms[1],
// // minZoom: mapConfig.zooms[0],
// // zoomOffset: 0,
// // mapTileHost: mapConfig.mapTileHost,
// // }).addTo(_map);
// // _map.on("click", function (e) {
// // clearMarkers(_map);
// // L.marker(e.latlng).addTo(_map);
// // setLnglat([e.latlng.lng.toFixed(4), e.latlng.lat.toFixed(4)]);
// // getLntLat([e.latlng.lng.toFixed(4), e.latlng.lat.toFixed(4)]);
// // });
// // _map.invalidateSize();
// // setMap(_map);
// // mapRef.current = _map;
// let _map = new AMap.Map("mapid", {
// resizeEnable: true,
// layers: [
// new AMap.TileLayer.Satellite(),
// new AMap.TileLayer.RoadNet()
// ]
// });
// _map.setCenter([mapConfig.center[1], mapConfig.center[0]], mapConfig.zoom);
setMap(_map)
_map.on('click', function(e) {
console.log(e)
// onClick(info)
setLnglat([e.lnglat.lng.toFixed(4), e.lnglat.lat.toFixed(4)]);
getLntLat([e.lnglat.lng.toFixed(4), e.lnglat.lat.toFixed(4)]);
})
mapRef.current = map
};
function clearMarkers(map) {
map.eachLayer(function (layer) {
if (layer instanceof L.Marker) {
map.removeLayer(layer);
}
});
}
useEffect(() => {
initMap();
return () => {
if (mapRef.current) {
mapRef.current.remove();
}
};
}, []);
useEffect(() => {
if (searchLnglatValue.length === 0) return;
mapRef.current.setView(searchLnglatValue, 13);
}, [searchLnglatValue]);
// setMap(_map)
// _map.on('click', function(e) {
// console.log(e)
// // onClick(info)
// setLnglat([e.lnglat.lng.toFixed(4), e.lnglat.lat.toFixed(4)]);
// getLntLat([e.lnglat.lng.toFixed(4), e.lnglat.lat.toFixed(4)]);
// })
// mapRef.current = map
// };
// function clearMarkers(map) {
// map.eachLayer(function (layer) {
// if (layer instanceof L.Marker) {
// map.removeLayer(layer);
// }
// });
// }
// useEffect(() => {
// initMap();
// return () => {
// if (mapRef.current) {
// mapRef.current.remove();
// }
// };
// }, []);
// useEffect(() => {
// if (searchLnglatValue.length === 0) return;
// mapRef.current.setView(searchLnglatValue, 13);
// }, [searchLnglatValue]);
return (
<div
id="mapid"
className="map"
style={{
height: "100%",
width: "100%",
}}
></div>
);
}
export default ModalMap;
// return (
// <div
// id="mapid"
// className="map"
// style={{
// height: "100%",
// width: "100%",
// }}
// ></div>
// );
// }
// export default ModalMap;

1
src/components/MapComponets/Marker/index.jsx

@ -185,6 +185,7 @@ function Marker(props, refs) {
useEffect(()=>{ useEffect(()=>{
if(getMapValue){ if(getMapValue){
console.log(getMarker);
let lng = getMarker.lng let lng = getMarker.lng
let lat = getMarker.lat let lat = getMarker.lat
circlesRef.current && map.removeLayer(circlesRef.current) circlesRef.current && map.removeLayer(circlesRef.current)

4
src/components/SelectLngLat/index.jsx

@ -1,7 +1,7 @@
import React, { useState, useEffect, useRef, useLayoutEffect } from "react"; import React, { useState, useEffect, useRef, useLayoutEffect } from "react";
import { Button, Input, Modal, message } from "antd"; import { Button, Input, Modal, message } from "antd";
import { BaseMap } from "../MapComponets"; import { BaseMap } from "../MapComponets";
// import { Apimap } from "../Map";
import { Apimap } from "../Map";
import L from "leaflet"; import L from "leaflet";
import "leaflet/dist/leaflet.css"; import "leaflet/dist/leaflet.css";
import "leaflet.chinatmsproviders"; import "leaflet.chinatmsproviders";
@ -62,7 +62,7 @@ function SelectLngLat(props) {
height: "500px", height: "500px",
}} }}
> >
<BaseMap
<Apimap
// setLnglat={setLnglat} // setLnglat={setLnglat}
// getLntLat={getLntLat} // getLntLat={getLntLat}
// searchLnglatValue={searchLnglatValue} // searchLnglatValue={searchLnglatValue}

12
src/pages/InRoadMgm/PersonMgm/Attendance/Fence/index.scss

@ -148,6 +148,10 @@ $color-primary : var(--color-primary);
} }
.fence{ .fence{
width: 660px !important; width: 660px !important;
.yisa-search{
display: flex;
line-height: 50px;
}
.fenceModal{ .fenceModal{
.selectSearch{ .selectSearch{
@ -179,8 +183,16 @@ $color-primary : var(--color-primary);
.attend{ .attend{
display: flex; display: flex;
.yisaSearch{ .yisaSearch{
display: flex;
margin-left: 20px; margin-left: 20px;
margin-top: 8px; margin-top: 8px;
label{
line-height: 32px;
}
input{
height: 32px;
}
} }
} }
} }

197
src/pages/InRoadMgm/PersonMgm/Attendance/Fence/loadable.jsx

@ -1,6 +1,6 @@
import React, { useState, useRef, useEffect } from "react"; import React, { useState, useRef, useEffect } from "react";
import { ResultFlowResult, BaseMap, Marker } from "@/components" import { ResultFlowResult, BaseMap, Marker } from "@/components"
import { Select, Input, Button, Table, message, Pagination, Cascader, Modal, TreeSelect } from 'antd'
import { Select, Input, Button, Table, message, Pagination, Cascader, Modal, TreeSelect, Transfer } from 'antd'
import { import {
pageSizeOptions pageSizeOptions
} from '@/config/character.config.js' } from '@/config/character.config.js'
@ -13,17 +13,16 @@ function Fence(props) {
// const configData = props.sysConfig["lib-deploy"] || {}; // const configData = props.sysConfig["lib-deploy"] || {};
const [ajaxLoading, setAjaxLoading] = useState(false) const [ajaxLoading, setAjaxLoading] = useState(false)
const [getModalData, setGetModalData] = useState({ const [getModalData, setGetModalData] = useState({
attendDistance: '',
effective: ''
attendDistance: '1',
effective: '1'
}) })
const [getEditModal, setGetEditModal] = useState({ const [getEditModal, setGetEditModal] = useState({
attendDistance: '',
attend: '',
attendmin:'',
attendDistance: '1',
attendmin: '',
attendName: '' attendName: ''
}) })
const [getCanCaDer, setGetCanCaDer] = useState([]) const [getCanCaDer, setGetCanCaDer] = useState([])
const [getStatus, setGetStatus] = useState(0)
const [getMap, setGetMap] = useState(2) const [getMap, setGetMap] = useState(2)
const [getScope, setGetScope] = useState(2) const [getScope, setGetScope] = useState(2)
const [getPark, setGetPark] = useState([]) const [getPark, setGetPark] = useState([])
@ -44,6 +43,7 @@ function Fence(props) {
const [attendanceVisible, setAttendanceVisible] = useState(false) const [attendanceVisible, setAttendanceVisible] = useState(false)
const [placeVisible, setPlaceVisible] = useState(false) const [placeVisible, setPlaceVisible] = useState(false)
const [markers, setMarkers] = useState([]) const [markers, setMarkers] = useState([])
console.log(markers);
// //
const handleLoginName = (v) => { const handleLoginName = (v) => {
setFormData({ ...formData, parkName: v.target.value }) setFormData({ ...formData, parkName: v.target.value })
@ -74,12 +74,32 @@ function Fence(props) {
setFormData({ ...formData, enable: value }) setFormData({ ...formData, enable: value })
} }
// //
const [targetKeys, setTargetKeys] = useState([]);
const [selectedKeys, setSelectedKeys] = useState([]);
// const filterOption = (inputValue, option) => option.description.indexOf(inputValue) > -1;
const handleChange = (newTargetKeys) => {
console.log(newTargetKeys);
if (getScope == '1') {
setValuePark(newTargetKeys);
}
setTargetKeys(newTargetKeys);
};
const onSelectChange = (sourceSelectedKeys, targetSelectedKeys) => {
setSelectedKeys([...sourceSelectedKeys, ...targetSelectedKeys]);
};
const [treeData, setTreeData] = useState([]) const [treeData, setTreeData] = useState([])
const getParkList = () => { const getParkList = () => {
ajax.getParkData().then(res => { ajax.getParkData().then(res => {
if (res.status === 20000) { if (res.status === 20000) {
console.log(res);
setTreeData(res.data)
// const data=res.data.map((item)=>item.value)
const allData = [...res.data].map(
(item) => {
item.key = item.value;
return item;
}
);
// setTargetKeys(data)
setTreeData(allData)
} }
}) })
@ -122,7 +142,7 @@ function Fence(props) {
key: 'attendDistance', key: 'attendDistance',
render: (text, record) => { render: (text, record) => {
return <> return <>
<div >{record.attendDistance=='1'?'无电子围栏':'指定范围'}</div>
<div >{record.attendDistance == '1' ? '无电子围栏' : '指定范围'}</div>
</> </>
} }
}, },
@ -146,7 +166,7 @@ function Fence(props) {
setGetEditModal(Object.assign({}, getEditModal, { setGetEditModal(Object.assign({}, getEditModal, {
attendName: record.attendName, attendName: record.attendName,
attendDistance: record.attendDistance, attendDistance: record.attendDistance,
attendmin:record.attendmin
attendmin: record.attendmin
})) }))
setAttendanceVisible(true) setAttendanceVisible(true)
setMarkers([{ setMarkers([{
@ -184,11 +204,11 @@ function Fence(props) {
console.log(err) console.log(err)
}) })
} }
//
const changePn = (pn, length) => {
//
const changePn = (pn, length) => {
if (formData.page_size === length) { if (formData.page_size === length) {
setFormData(Object.assign({}, formData, { pn: pn, page_size: length}))
setLastFormData(Object.assign({}, lastFormData, { pn: pn , page_size: length}))
setFormData(Object.assign({}, formData, { pn: pn, page_size: length }))
setLastFormData(Object.assign({}, lastFormData, { pn: pn, page_size: length }))
getData(Object.assign({}, formData, { pn: pn, page_size: length })) getData(Object.assign({}, formData, { pn: pn, page_size: length }))
} }
} }
@ -211,8 +231,8 @@ function Fence(props) {
const creatModal = () => { const creatModal = () => {
setCreatVisible(false) setCreatVisible(false)
setGetModalData({ setGetModalData({
attendDistance: '',
effective: ''
attendDistance: '1',
effective: '1'
}) })
} }
const getCascaderList = () => { const getCascaderList = () => {
@ -225,96 +245,96 @@ function Fence(props) {
} }
}) })
} }
//
const [getStatus, setGetStatus] = useState('1')
const handleAttendDistance = (v) => { const handleAttendDistance = (v) => {
setGetModalData({ attendDistance: v })
setGetModalData({ ...getModalData, attendDistance: v })
setGetStatus(v) setGetStatus(v)
} }
const handleDistance = (v) => { const handleDistance = (v) => {
setGetEditModal({ attendDistance: v })
setGetEditModal({ ...getEditModal, attendDistance: v })
setGetMap(v) setGetMap(v)
} }
//
const handleType = (v) => { const handleType = (v) => {
setGetModalData({ attendmin: v.target.value })
setGetModalData({ ...getModalData, attendmin: v.target.value })
} }
const handleMapType = (v) => { const handleMapType = (v) => {
setGetEditModal({ attend: v.target.value })
setGetEditModal({ ...getEditModal, attend: v.target.value })
} }
const [getScopeValue, setGetScopeValue] = useState('1')
const handleScope = (value) => { const handleScope = (value) => {
setGetModalData({ setGetModalData({
...getModalData, ...getModalData,
effective: value effective: value
}) })
if (value == 1) {
setGetScope(2)
}
if (value == 2) {
setGetScope(1)
}
setGetScopeValue(value)
} }
const [value, setValue] = useState([]);
const onChange = (newValue) => {
if (getScope === 1) {
setValue(newValue);
useEffect(() => {
if (getScopeValue == '1') {
setGetScope('2')
} }
};
const tProps = {
treeData,
value,
onChange,
treeCheckable: true,
showCheckedStrategy: SHOW_PARENT,
placeholder: 'Please select',
style: {
width: '170px',
marginLeft: '10px',
marginTop: '10px'
},
};
if (getScopeValue == '2') {
setGetScope('1')
}
}, [getScopeValue])
const [valuePark, setValuePark] = useState([]);
// //
const saveBtn = () => { const saveBtn = () => {
let getValue = value
let result = getValue.join(",")
if (getScope === 2) {
let data = {
...getModalData
}
ajax.saveDtaList(data).then(res => {
if (res.status === 20000) {
setCreatVisible(false)
getData(formData)
setGetModalData({
attendDistance: '',
effective: ''
})
if (getScopeValue === '2' && targetKeys.length === 0) {
message.error('请选择停车场')
}else{
let getValue = valuePark
let result = getValue.join(",")
if (getScope === 2) {
let data = {
...getModalData
} }
})
} else {
let data = {
...getModalData,
scope: result
}
ajax.saveDtaList(data).then(res => {
if (res.status === 20000) {
setCreatVisible(false)
getData(formData)
setGetModalData({
attendDistance: '',
effective: ''
})
ajax.saveDtaList(data).then(res => {
if (res.status === 20000) {
setCreatVisible(false)
getData(formData)
setGetModalData({
attendDistance: '1',
effective: '1',
})
setGetScopeValue(1)
setTargetKeys([])
}
})
} else {
let data = {
...getModalData,
scope: result
} }
})
ajax.saveDtaList(data).then(res => {
if (res.status === 20000) {
setCreatVisible(false)
getData(formData)
setGetModalData({
attendDistance: '1',
effective: '1'
})
setGetScopeValue(1)
setTargetKeys([])
}
})
}
} }
} }
// //
const cancelBtn = () => { const cancelBtn = () => {
setCreatVisible(false) setCreatVisible(false)
setGetModalData({ setGetModalData({
attendDistance: '',
effective: ''
attendDistance: '1',
effective: '1'
}) })
setGetScopeValue(1)
setTargetKeys([])
} }
// //
const attendanceModal = () => { const attendanceModal = () => {
@ -461,12 +481,13 @@ function Fence(props) {
title='批量设置' title='批量设置'
> >
<div className="fenceModal"> <div className="fenceModal">
<div className="yisa-search">
<div className="yisa-logo">
<label>停车场</label> <label>停车场</label>
<label className="selectSearch">以所在停车场为准</label> <label className="selectSearch">以所在停车场为准</label>
</div> </div>
<div className="attend"> <div className="attend">
<div className="yisa-search"> <div className="yisa-search">
<div className="redLogo">*</div>
<label>有效范围</label> <label>有效范围</label>
<Select <Select
style={{ width: 170, marginLeft: 22 }} style={{ width: 170, marginLeft: 22 }}
@ -486,7 +507,8 @@ function Fence(props) {
</div> </div>
{ {
getStatus == '2' ? getStatus == '2' ?
<div className="yisaSearch">
<div className="yisaSearch ">
<div className="redLogo">*</div>
<label>有效范围</label> <label>有效范围</label>
<Input <Input
placeholder="请输入内容" placeholder="请输入内容"
@ -508,6 +530,7 @@ function Fence(props) {
</div> </div>
<div className="yisa-search"> <div className="yisa-search">
<div className="redLogo">*</div>
<label>生效范围</label> <label>生效范围</label>
<Select <Select
style={{ width: 170, marginLeft: 22 }} style={{ width: 170, marginLeft: 22 }}
@ -528,8 +551,19 @@ function Fence(props) {
{ {
getScope == '1' ? getScope == '1' ?
<div className="yisa-search"> <div className="yisa-search">
<div className="redLogo">*</div>
<label>选择停车场</label> <label>选择停车场</label>
<TreeSelect {...tProps} />
<Transfer
dataSource={treeData}
showSearch
titles={["未选择", "已选择"]}
// filterOption={filterOption}
targetKeys={targetKeys}
onChange={handleChange}
selectedKeys={selectedKeys}
onSelectChange={onSelectChange}
render={(item) => item.title}
/>
</div> : '' </div> : ''
} }
@ -577,7 +611,6 @@ function Fence(props) {
value={getEditModal.attendmin} value={getEditModal.attendmin}
style={{ width: 170, marginLeft: 15 }} style={{ width: 170, marginLeft: 15 }}
type="number" type="number"
οninput="if(value>2000)value=2000"
onChange={handleMapType} onChange={handleMapType}
/> />
<label></label> <label></label>

12
src/pages/InRoadMgm/PersonMgm/Attendance/ScheduleMgm/index.scss

@ -149,13 +149,23 @@ $color-primary : var(--color-primary);
} }
.revenue{ .revenue{
.yisa-search{
margin-top: 10px;
display: flex;
label{
line-height: 31px;
}
.redLogo{
line-height: 35px;
}
}
.tab-title{ .tab-title{
text-align: center; text-align: center;
font-size: 18px; font-size: 18px;
font-weight: 400; font-weight: 400;
font-family: Microsoft YaHei, Microsoft YaHei-Regular; font-family: Microsoft YaHei, Microsoft YaHei-Regular;
} }
width: 700px !important;
width: 730px !important;
.tab-index{ .tab-index{
.tab-top{ .tab-top{
display: flex; display: flex;

94
src/pages/InRoadMgm/PersonMgm/Attendance/ScheduleMgm/loadable.jsx

@ -26,7 +26,7 @@ function ScheduleMgm(props) {
const [formData, setFormData] = useState({ const [formData, setFormData] = useState({
scheduleName: '',// scheduleName: '',//
operationName: '',// operationName: '',//
state: '',//
state: 0,//
pn: 1, pn: 1,
page_size: Number(pageSizeOptions[0]), // page_size: Number(pageSizeOptions[0]), //
}) })
@ -148,12 +148,28 @@ function ScheduleMgm(props) {
// //
const cancel = () => { const cancel = () => {
setCreatVisible(false) setCreatVisible(false)
setModalData({
scheduleName: '',//
operationId: '',//
beforeTime: '',//
onTime: null,//
offTime: null,//
afterTime: ''//
})
} }
const DetailCancel = () => { const DetailCancel = () => {
setDetailVisible(false) setDetailVisible(false)
} }
const translateCancel = () => { const translateCancel = () => {
setTranslateVisible(false) setTranslateVisible(false)
setEditModal({
scheduleName: '',//
operationId: '',//
beforeTime: '',//
onTime: null,//
offTime: null,//
afterTime: ''//
})
} }
// //
const addClasses = () => { const addClasses = () => {
@ -190,6 +206,14 @@ function ScheduleMgm(props) {
if (res.status === 20000) { if (res.status === 20000) {
setCreatVisible(false) setCreatVisible(false)
getData(formData) getData(formData)
setModalData({
scheduleName: '',//
operationId: '',//
beforeTime: '',//
onTime: null,//
offTime: null,//
afterTime: ''//
})
} }
}) })
} }
@ -218,6 +242,14 @@ function ScheduleMgm(props) {
if (res.status === 20000) { if (res.status === 20000) {
setTranslateVisible(false) setTranslateVisible(false)
getData(formData) getData(formData)
setEditModal({
scheduleName: '',//
operationId: '',//
beforeTime: '',//
onTime: null,//
offTime: null,//
afterTime: ''//
})
} }
}) })
} }
@ -280,8 +312,8 @@ function ScheduleMgm(props) {
// //
const changePn = (pn, length) => { const changePn = (pn, length) => {
if (formData.page_size === length) { if (formData.page_size === length) {
setFormData(Object.assign({}, formData, { pn: pn, page_size: length}))
setLastFormData(Object.assign({}, lastFormData, { pn: pn , page_size: length}))
setFormData(Object.assign({}, formData, { pn: pn, page_size: length }))
setLastFormData(Object.assign({}, lastFormData, { pn: pn, page_size: length }))
getData(Object.assign({}, formData, { pn: pn, page_size: length })) getData(Object.assign({}, formData, { pn: pn, page_size: length }))
} }
} }
@ -312,7 +344,10 @@ function ScheduleMgm(props) {
const [getOperationName, setGetOperationName] = useState([]) const [getOperationName, setGetOperationName] = useState([])
const operationName = () => { const operationName = () => {
ajax.getAllOperator().then(res => { ajax.getAllOperator().then(res => {
setGetOperationName(res.data)
let arr = res.data
let newArr = arr.slice(1)
console.log(newArr);
setGetOperationName(newArr)
}) })
} }
useEffect(() => { useEffect(() => {
@ -352,14 +387,14 @@ function ScheduleMgm(props) {
value={formData.state} value={formData.state}
options={[ options={[
{ {
value: '0',
value: 0,
label: '全部' label: '全部'
}, },
{ {
value: '1',
value: 1,
label: '有效' label: '有效'
}, { }, {
value: '2',
value: 2,
label: '无效' label: '无效'
} }
]} ]}
@ -417,6 +452,7 @@ function ScheduleMgm(props) {
> >
<div className="selectChance"> <div className="selectChance">
<div className="yisa-search"> <div className="yisa-search">
<div className="redLogo">*</div>
<label>班次名称</label> <label>班次名称</label>
<Input <Input
placeholder="请输入班次名称" placeholder="请输入班次名称"
@ -432,12 +468,13 @@ function ScheduleMgm(props) {
/> />
</div> </div>
<div className="yisa-search"> <div className="yisa-search">
<div className="redLogo">*</div>
<label>所属运营商</label> <label>所属运营商</label>
<Select <Select
style={{ width: 256, marginLeft: 20 }} style={{ width: 256, marginLeft: 20 }}
// allowClear // allowClear
value={modalData.operationId} value={modalData.operationId}
options={operator}
options={getOperationName}
onChange={(v, option) => { onChange={(v, option) => {
setModalData( setModalData(
Object.assign({}, modalData, { operationId: v, operationName: option.label }) Object.assign({}, modalData, { operationId: v, operationName: option.label })
@ -447,9 +484,11 @@ function ScheduleMgm(props) {
/> />
</div> </div>
<div className="yisa-search"> <div className="yisa-search">
<div className="redLogo">*</div>
<label>上班时间前</label> <label>上班时间前</label>
<Input <Input
value={modalData.beforeTime} value={modalData.beforeTime}
type="number"
style={{ width: 256, marginLeft: 17 }} style={{ width: 256, marginLeft: 17 }}
onChange={(v) => { onChange={(v) => {
setModalData( setModalData(
@ -461,19 +500,23 @@ function ScheduleMgm(props) {
<label className="timeChance">分钟可打卡<span>(不能早于上班时间的180分钟)</span></label> <label className="timeChance">分钟可打卡<span>(不能早于上班时间的180分钟)</span></label>
</div> </div>
<div className="yisa-search"> <div className="yisa-search">
<div className="redLogo">*</div>
<label>上班时间</label> <label>上班时间</label>
<TimePicker onChange={goingWork} format={format} style={{ marginLeft: 30 }} /> <TimePicker onChange={goingWork} format={format} style={{ marginLeft: 30 }} />
</div> </div>
<div className="yisa-search"> <div className="yisa-search">
<div className="redLogo">*</div>
<label>下班时间</label> <label>下班时间</label>
<TimePicker onChange={leavingWork} format={format} style={{ marginLeft: 30 }} /> <TimePicker onChange={leavingWork} format={format} style={{ marginLeft: 30 }} />
</div> </div>
<div className="yisa-search"> <div className="yisa-search">
<label>上班时间后</label>
<div className="redLogo">*</div>
<label>下班时间后</label>
<Input <Input
value={modalData.afterTime} value={modalData.afterTime}
style={{ width: 256, marginLeft: 17 }} style={{ width: 256, marginLeft: 17 }}
// allowClear // allowClear
type="number"
onChange={(v) => { onChange={(v) => {
setModalData( setModalData(
Object.assign({}, modalData, { afterTime: v.target.value }) Object.assign({}, modalData, { afterTime: v.target.value })
@ -497,6 +540,7 @@ function ScheduleMgm(props) {
> >
<div className="selectChance"> <div className="selectChance">
<div className="yisa-search"> <div className="yisa-search">
<div className="redLogo">*</div>
<label>班次名称</label> <label>班次名称</label>
<Input <Input
placeholder="请输入班次名称" placeholder="请输入班次名称"
@ -513,12 +557,13 @@ function ScheduleMgm(props) {
/> />
</div> </div>
<div className="yisa-search"> <div className="yisa-search">
<div className="redLogo">*</div>
<label>所属运营商</label> <label>所属运营商</label>
<Select <Select
style={{ width: 256, marginLeft: 20 }} style={{ width: 256, marginLeft: 20 }}
// allowClear // allowClear
value={getDetail.operationName} value={getDetail.operationName}
options={operator}
options={getOperationName}
onChange={(v, option) => { onChange={(v, option) => {
setModalData( setModalData(
Object.assign({}, modalData, { operationId: v, operationName: option.label }) Object.assign({}, modalData, { operationId: v, operationName: option.label })
@ -529,11 +574,13 @@ function ScheduleMgm(props) {
/> />
</div> </div>
<div className="yisa-search"> <div className="yisa-search">
<div className="redLogo">*</div>
<label>上班时间前</label> <label>上班时间前</label>
<Input <Input
value={getDetail.beforeTime} value={getDetail.beforeTime}
style={{ width: 256, marginLeft: 17 }} style={{ width: 256, marginLeft: 17 }}
disabled={true} disabled={true}
type="number"
onChange={(v) => { onChange={(v) => {
setModalData( setModalData(
Object.assign({}, modalData, { beforeTime: v.target.value }) Object.assign({}, modalData, { beforeTime: v.target.value })
@ -544,19 +591,24 @@ function ScheduleMgm(props) {
<label className="timeChance">分钟可打卡<span>(不能早于上班时间的180分钟)</span></label> <label className="timeChance">分钟可打卡<span>(不能早于上班时间的180分钟)</span></label>
</div> </div>
<div className="yisa-search"> <div className="yisa-search">
<div className="redLogo">*</div>
<label>上班时间</label> <label>上班时间</label>
<TimePicker onChange={goingWork} disabled format={format} value={moment(getDetail.onTime, 'HH:mm')} style={{ marginLeft: 30 }} /> <TimePicker onChange={goingWork} disabled format={format} value={moment(getDetail.onTime, 'HH:mm')} style={{ marginLeft: 30 }} />
</div> </div>
<div className="yisa-search"> <div className="yisa-search">
<div className="redLogo">*</div>
<label>下班时间</label> <label>下班时间</label>
<TimePicker onChange={leavingWork} disabled format={format} value={moment(getDetail.offTime, 'HH:mm')} style={{ marginLeft: 30 }} /> <TimePicker onChange={leavingWork} disabled format={format} value={moment(getDetail.offTime, 'HH:mm')} style={{ marginLeft: 30 }} />
</div> </div>
<div className="yisa-search"> <div className="yisa-search">
<label>上班时间后</label>
<div className="redLogo">*</div>
<label>下班时间后</label>
<Input <Input
value={getDetail.afterTime} value={getDetail.afterTime}
style={{ width: 256, marginLeft: 17 }} style={{ width: 256, marginLeft: 17 }}
disabled={true} disabled={true}
type="number"
onChange={(v) => { onChange={(v) => {
setModalData( setModalData(
Object.assign({}, modalData, { afterTime: v.target.value }) Object.assign({}, modalData, { afterTime: v.target.value })
@ -579,6 +631,7 @@ function ScheduleMgm(props) {
> >
<div className="selectChance"> <div className="selectChance">
<div className="yisa-search"> <div className="yisa-search">
<div className="redLogo">*</div>
<label>班次名称</label> <label>班次名称</label>
<Input <Input
placeholder="请输入班次名称" placeholder="请输入班次名称"
@ -592,15 +645,16 @@ function ScheduleMgm(props) {
/> />
</div> </div>
<div className="yisa-search"> <div className="yisa-search">
<div className="redLogo">*</div>
<label>所属运营商</label> <label>所属运营商</label>
<Select <Select
style={{ width: 256, marginLeft: 20 }} style={{ width: 256, marginLeft: 20 }}
// allowClear // allowClear
value={editModal.operationName} value={editModal.operationName}
options={operator}
options={getOperationName}
onChange={(v, option) => { onChange={(v, option) => {
let data=JSON.stringify(option)
if (data != '{}' ) {
let data = JSON.stringify(option)
if (data != '{}') {
setEditModal( setEditModal(
Object.assign({}, editModal, { operationId: v, operationName: option.label }) Object.assign({}, editModal, { operationId: v, operationName: option.label })
); );
@ -614,10 +668,12 @@ function ScheduleMgm(props) {
/> />
</div> </div>
<div className="yisa-search"> <div className="yisa-search">
<div className="redLogo">*</div>
<label>上班时间前</label> <label>上班时间前</label>
<Input <Input
value={editModal.beforeTime} value={editModal.beforeTime}
style={{ width: 256, marginLeft: 17 }} style={{ width: 256, marginLeft: 17 }}
type="number"
onChange={(v) => { onChange={(v) => {
setEditModal( setEditModal(
Object.assign({}, editModal, { beforeTime: v.target.value }) Object.assign({}, editModal, { beforeTime: v.target.value })
@ -628,18 +684,22 @@ function ScheduleMgm(props) {
<label className="timeChance">分钟可打卡<span>(不能早于上班时间的180分钟)</span></label> <label className="timeChance">分钟可打卡<span>(不能早于上班时间的180分钟)</span></label>
</div> </div>
<div className="yisa-search"> <div className="yisa-search">
<div className="redLogo">*</div>
<label>上班时间</label> <label>上班时间</label>
<TimePicker onChange={goingEditWork} format={format} value={moment(editModal.onTime, 'HH:mm')} style={{ marginLeft: 30 ,width:100}} />
<TimePicker onChange={goingEditWork} format={format} value={moment(editModal.onTime, 'HH:mm')} style={{ marginLeft: 30, width: 100 }} />
</div> </div>
<div className="yisa-search"> <div className="yisa-search">
<div className="redLogo">*</div>
<label>下班时间</label> <label>下班时间</label>
<TimePicker onChange={leavingEditWork} format={format} value={moment(editModal.offTime, 'HH:mm')} style={{ marginLeft: 30 ,width:100}} />
<TimePicker onChange={leavingEditWork} format={format} value={moment(editModal.offTime, 'HH:mm')} style={{ marginLeft: 30, width: 100 }} />
</div> </div>
<div className="yisa-search"> <div className="yisa-search">
<label>上班时间后</label>
<div className="redLogo">*</div>
<label>下班时间后</label>
<Input <Input
value={editModal.afterTime} value={editModal.afterTime}
style={{ width: 256, marginLeft: 17 }} style={{ width: 256, marginLeft: 17 }}
type="number"
onChange={(v) => { onChange={(v) => {
setEditModal( setEditModal(
Object.assign({}, editModal, { afterTime: v.target.value }) Object.assign({}, editModal, { afterTime: v.target.value })

2
src/pages/InRoadMgm/PersonMgm/Attendance/WorkerAttendance/loadable.jsx

@ -400,6 +400,7 @@ function WorkerAttendance(props) {
type === 'day' ? type === 'day' ?
<RangePicker <RangePicker
value={[moment(formData.start_time), moment(formData.end_time)]} value={[moment(formData.start_time), moment(formData.end_time)]}
allowClear={false}
onChange={(value, dateString) => { onChange={(value, dateString) => {
setFormData({ setFormData({
...formData, ...formData,
@ -410,6 +411,7 @@ function WorkerAttendance(props) {
}} /> : }} /> :
<RangePicker picker="month" <RangePicker picker="month"
value={[moment(formData.start_time), moment(formData.end_time)]} value={[moment(formData.start_time), moment(formData.end_time)]}
allowClear={false}
onChange={(value, dateString) => { onChange={(value, dateString) => {
setFormData({ setFormData({
...formData, ...formData,

1
src/pages/InRoadMgm/PersonMgm/MesNotification/loadable.jsx

@ -360,6 +360,7 @@ function loadable() {
tableData={resultData} tableData={resultData}
formSearch={formSearch} formSearch={formSearch}
total={total} total={total}
isExport={false}
search={search} search={search}
pageName={'mesNotification'} pageName={'mesNotification'}
//exportUrl={exportUrl} //exportUrl={exportUrl}

12
src/pages/InRoadMgm/PersonMgm/PersonInfo/index.scss

@ -132,6 +132,14 @@
.cc-form-select { .cc-form-select {
margin-bottom: 12px; margin-bottom: 12px;
} }
.yisa-search {
position: relative;
.redLogo {
position: absolute;
left: 50px;
top: 7px;
}
}
} }
.transfer-wrapper { .transfer-wrapper {
display: flex; display: flex;
@ -141,10 +149,10 @@
text-align: right; text-align: right;
margin-right: 10px; margin-right: 10px;
} }
.redLogo{
.redLogo {
position: absolute; position: absolute;
left: 52px; left: 52px;
top:1px
top: 1px;
} }
} }
.btn-wrapper { .btn-wrapper {

33
src/pages/InRoadMgm/PersonMgm/PersonInfo/loadable.jsx

@ -374,7 +374,7 @@ function PersonInfo() {
message.error('请输入员工编号') message.error('请输入员工编号')
} else if (currentPersonInfo.road_ids === '') { } else if (currentPersonInfo.road_ids === '') {
message.error('请选择路段') message.error('请选择路段')
} else if (currentPersonInfo) {
} else if (!showEdit) {
ajax.editUserPersonInfo({ ...currentPersonInfo, id: currentPersonId }).then(res => { ajax.editUserPersonInfo({ ...currentPersonInfo, id: currentPersonId }).then(res => {
if (res.status == 20000) { if (res.status == 20000) {
message.success(res.message) message.success(res.message)
@ -640,14 +640,17 @@ function PersonInfo() {
showClose={true} showClose={true}
onChange={e => { setCurrentPersonInfo({ ...currentPersonInfo, name: e.target.value }) }} onChange={e => { setCurrentPersonInfo({ ...currentPersonInfo, name: e.target.value }) }}
/> />
<FormDatePicker
yisaLabel="出生年份"
onChange={(e) => { setCurrentPersonInfo({ ...currentPersonInfo, birth_year: e.format('YYYY') }) }}
value={currentPersonInfo.birth_year ? moment(currentPersonInfo.birth_year + '') : ''}
picker="year"
/>
<div className="yisa-search">
<div className="redLogo">*</div>
<FormDatePicker
yisaLabel="出生年份"
onChange={(e) => { setCurrentPersonInfo({ ...currentPersonInfo, birth_year: e.format('YYYY') }) }}
value={currentPersonInfo.birth_year ? moment(currentPersonInfo.birth_year + '') : ''}
picker="year"
/>
</div>
<FormInput <FormInput
isRequired={true}
isRequired={true}
yisaLabel="员工编号" yisaLabel="员工编号"
placeholder="输入员工编号" placeholder="输入员工编号"
value={currentPersonInfo.number} value={currentPersonInfo.number}
@ -655,7 +658,7 @@ function PersonInfo() {
onChange={e => { setCurrentPersonInfo({ ...currentPersonInfo, number: e.target.value }) }} onChange={e => { setCurrentPersonInfo({ ...currentPersonInfo, number: e.target.value }) }}
/> />
<FormInput <FormInput
isRequired={true}
isRequired={true}
yisaLabel="手机号" yisaLabel="手机号"
placeholder="输入手机号" placeholder="输入手机号"
value={currentPersonInfo.tel} value={currentPersonInfo.tel}
@ -663,7 +666,7 @@ function PersonInfo() {
onChange={e => { setCurrentPersonInfo({ ...currentPersonInfo, tel: e.target.value }) }} onChange={e => { setCurrentPersonInfo({ ...currentPersonInfo, tel: e.target.value }) }}
/> />
<FormInput <FormInput
isRequired={true}
isRequired={true}
yisaLabel="PDA账号" yisaLabel="PDA账号"
placeholder="输入PDA账号" placeholder="输入PDA账号"
value={currentPersonInfo.pda_number} value={currentPersonInfo.pda_number}
@ -671,7 +674,7 @@ function PersonInfo() {
onChange={e => { setCurrentPersonInfo({ ...currentPersonInfo, pda_number: e.target.value }) }} onChange={e => { setCurrentPersonInfo({ ...currentPersonInfo, pda_number: e.target.value }) }}
/> />
<FormSelect <FormSelect
required={true}
required={true}
yisaLabel="角色" yisaLabel="角色"
yisaData={[ yisaData={[
{ {
@ -690,7 +693,7 @@ function PersonInfo() {
onChange={e => { setCurrentPersonInfo({ ...currentPersonInfo, user_role: e }) }} onChange={e => { setCurrentPersonInfo({ ...currentPersonInfo, user_role: e }) }}
/> />
<FormSelect <FormSelect
required={true}
required={true}
yisaLabel="所属商户" yisaLabel="所属商户"
yisaData={operatorOptions} yisaData={operatorOptions}
defaultValue={currentPersonInfo.operator || null} defaultValue={currentPersonInfo.operator || null}
@ -700,7 +703,7 @@ function PersonInfo() {
onChange={e => { changeEditOperator(e) }} onChange={e => { changeEditOperator(e) }}
/> />
<FormSelect <FormSelect
required={true}
required={true}
yisaLabel="所属部门" yisaLabel="所属部门"
yisaData={departEditOptions} yisaData={departEditOptions}
defaultValue={currentPersonInfo.depart_id || null} defaultValue={currentPersonInfo.depart_id || null}
@ -710,7 +713,7 @@ function PersonInfo() {
onChange={e => { setCurrentPersonInfo({ ...currentPersonInfo, depart_id: e }) }} onChange={e => { setCurrentPersonInfo({ ...currentPersonInfo, depart_id: e }) }}
/> />
<FormSelect <FormSelect
required={true}
// required={true}
yisaLabel="资产名称" yisaLabel="资产名称"
yisaData={assetEditOptions} yisaData={assetEditOptions}
mode="multiple" mode="multiple"
@ -730,7 +733,7 @@ function PersonInfo() {
</div> </div>
<div className="transfer-wrapper"> <div className="transfer-wrapper">
<div className="redLogo">*</div>
<div className="redLogo">*</div>
<div className="tranfer-label">选择路段</div> <div className="tranfer-label">选择路段</div>
<Transfer <Transfer
dataSource={tranferAllData} dataSource={tranferAllData}

2
src/pages/InRoadMgm/RoadMgm/AddRoad/loadable.jsx

@ -19,7 +19,7 @@ import {
import { PlusOutlined } from "@ant-design/icons"; import { PlusOutlined } from "@ant-design/icons";
import { useLocation, useNavigate } from "react-router-dom"; import { useLocation, useNavigate } from "react-router-dom";
import { ImgUpload, TreeSelectGroup, SelectLntLat, SelectGaodeLngLat } from "@/components";
import { ImgUpload, TreeSelectGroup, SelectLntLat} from "@/components";
import moment from "moment"; import moment from "moment";
import "./index.scss"; import "./index.scss";
import ajax from "@/services"; import ajax from "@/services";

113
src/pages/InRoadMgm/RoadMgm/ConfigRoad/loadable.jsx

@ -1778,57 +1778,69 @@ function ConfigRoad() {
setEditBerthModal(false); setEditBerthModal(false);
}} }}
onOk={() => { onOk={() => {
let arr = berthForm.getFieldsValue().etc_status
let str = arr.toString()
const params = {
...berthForm.getFieldsValue(),
lng_lat: lngLat,
road_id: parking_id,
etc_status: Number(str)
};
console.log(params);
function addBerth(params) {
ajax
.addBerth(params)
.then((res) => {
if (res.status === 20000) {
message.success(res.message);
setEditBerthModal(false);
formRef.current.getList();
berthForm.resetFields()
setLngLat([])
}
else {
message.error(res.message)
}
})
.catch((err) => console.error(err));
}
function editBerth(params) {
ajax
.editBerth(params)
.then((res) => {
if (res.status === 20000) {
message.success(res.message);
setEditBerthModal(false);
formRef.current.getList();
berthForm.resetFields()
setLngLat([])
}
else {
message.error(res.message)
}
})
.catch((err) => console.error(err));
}
switch (isEdit) {
case true:
editBerth(params)
break;
case false:
addBerth(params)
break;
if(berthForm.getFieldsValue().berth_code === null){
message.error('请填写泊位号')
}else if (berthForm.getFieldsValue().etc_status === null) {
message.error('请选择ETC是开开启')
}else if (berthForm.getFieldsValue().service_type === null) {
message.error('请选择服务属性')
}else if (berthForm.getFieldsValue().berth_type === null) {
message.error('请选择泊位类型')
}else {
let arr = berthForm.getFieldsValue().etc_status
let str = arr.toString()
const params = {
...berthForm.getFieldsValue(),
lng_lat: lngLat,
road_id: parking_id,
etc_status: Number(str)
};
console.log(params);
function addBerth(params) {
ajax
.addBerth(params)
.then((res) => {
if (res.status === 20000) {
message.success(res.message);
setEditBerthModal(false);
formRef.current.getList();
berthForm.resetFields()
setLngLat([])
}
else {
message.error(res.message)
}
})
.catch((err) => console.error(err));
}
function editBerth(params) {
ajax
.editBerth(params)
.then((res) => {
if (res.status === 20000) {
message.success(res.message);
setEditBerthModal(false);
formRef.current.getList();
berthForm.resetFields()
setLngLat([])
}
else {
message.error(res.message)
}
})
.catch((err) => console.error(err));
}
switch (isEdit) {
case true:
editBerth(params)
break;
case false:
addBerth(params)
break;
}
} }
}} }}
> >
<div <div
@ -1878,6 +1890,7 @@ function ConfigRoad() {
</Form.Item> </Form.Item>
<Form.Item label="ETC是否开启" name="etc_status" required> <Form.Item label="ETC是否开启" name="etc_status" required>
<Radio.Group <Radio.Group
placeholder="请选择ETC是否开启"
options={[ options={[
{ {
label: "否", label: "否",

30
src/pages/InRoadMgm/RoadMgm/ParkList/loadable.jsx

@ -212,17 +212,24 @@ function ParkList() {
setPageData({ pn, page_size }); setPageData({ pn, page_size });
} }
function search() {
const params = { ...searchForm.getFieldsValue(), ...pageData };
function search(params) {
if(params){
setPageData({
pn: 1,
page_size: 15
})
}else{
const params = { ...searchForm.getFieldsValue(), ...pageData };
ajax.getBerthList(params).then((res) => {
if (res.status === 20000) {
setReusltData({
total_records: res.data.total,
data: res.data.list,
});
}
});
ajax.getBerthList(params).then((res) => {
if (res.status === 20000) {
setReusltData({
total_records: res.data.total,
data: res.data.list,
});
}
});
}
} }
// //
@ -284,6 +291,7 @@ function ParkList() {
} }
const reastBtn=()=>{ const reastBtn=()=>{
searchForm.resetFields(); searchForm.resetFields();
search();
} }
useEffect(() => { useEffect(() => {
search(); search();
@ -296,7 +304,7 @@ const reastBtn=()=>{
{renderSearch()} {renderSearch()}
<div className="bottomBox"> <div className="bottomBox">
<Button className="reset" onClick={reastBtn}>清空</Button> <Button className="reset" onClick={reastBtn}>清空</Button>
<Button type="primary" className="submit" onClick={search}>
<Button type="primary" className="submit" onClick={() => search(pageData.pn)}>
查询 查询
</Button> </Button>
</div> </div>

9
src/pages/InRoadMgm/Stuff/CategroyConf/loadable.jsx

@ -17,12 +17,13 @@ function CategroyConf(props) {
export_url: '', export_url: '',
process_url: "" process_url: ""
}) })
const [formData, setFormData] = useState({
const parameter={
brand_id: '',// brand_id: '',//
operatorid: '',// operatorid: '',//
pn: 1, pn: 1,
page_size: Number(pageSizeOptions[0]), // page_size: Number(pageSizeOptions[0]), //
})
}
const [formData, setFormData] = useState(parameter)
const [lastFormData, setLastFormData] = useState(formData) const [lastFormData, setLastFormData] = useState(formData)
const [checkVisible, setCheckVisible] = useState(false) const [checkVisible, setCheckVisible] = useState(false)
const [editVisible, setEditVisible] = useState(false) const [editVisible, setEditVisible] = useState(false)
@ -292,7 +293,9 @@ function CategroyConf(props) {
if (sessionTabList && Object.values(sessionTabList).length > 0) { if (sessionTabList && Object.values(sessionTabList).length > 0) {
setFormData({ setFormData({
brand_id: sessionTabList?.brand_id, brand_id: sessionTabList?.brand_id,
operatorid: sessionTabList?.operatorid
operatorid: sessionTabList?.operatorid,
pn: sessionTabList?.pn,
page_size: sessionTabList?.page_size,
}) })
} }
}, []) }, [])

9
src/pages/InRoadMgm/Stuff/ModelConf/loadable.jsx

@ -17,13 +17,14 @@ function ModelConf(props) {
export_url: '', export_url: '',
process_url: "" process_url: ""
}) })
const [formData, setFormData] = useState({
const parameter={
model_id: '',// model_id: '',//
operator_id: '',// operator_id: '',//
model_name:'', model_name:'',
pn: 1, pn: 1,
page_size: Number(pageSizeOptions[0]), // page_size: Number(pageSizeOptions[0]), //
})
}
const [formData, setFormData] = useState(parameter)
const [lastFormData, setLastFormData] = useState(formData) const [lastFormData, setLastFormData] = useState(formData)
const lastFormDataRef = useRef(formData) const lastFormDataRef = useRef(formData)
const [checkVisible, setCheckVisible] = useState(false) const [checkVisible, setCheckVisible] = useState(false)
@ -316,7 +317,9 @@ function ModelConf(props) {
setFormData({ setFormData({
model_id: sessionTabList?.model_id, model_id: sessionTabList?.model_id,
operator_id: sessionTabList?.operator_id, operator_id: sessionTabList?.operator_id,
model_name: sessionTabList?.model_name
model_name: sessionTabList?.model_name,
pn: sessionTabList?.pn,
page_size: sessionTabList?.page_size,
}) })
} }
}, []) }, [])

7
src/pages/InRoadMgm/Stuff/StuffMgm/index.scss

@ -244,7 +244,8 @@ $color-primary : var(--color-primary);
.add{ .add{
margin-left: 100px; margin-left: 100px;
.yisa-search{ .yisa-search{
margin-top: 20px;
margin-top: 10px;
display: flex;
} }
.submitBtn{ .submitBtn{
margin-left: 54px; margin-left: 54px;
@ -261,10 +262,10 @@ $color-primary : var(--color-primary);
.cancel{ .cancel{
width: 80px; width: 80px;
height: 35px; height: 35px;
background: #fff;
background: #3e4557;
border: none; border: none;
border-radius: 4px; border-radius: 4px;
color: #3e4557;
color: #fff;
cursor: pointer; cursor: pointer;
margin-left: 20px; margin-left: 20px;
} }

86
src/pages/InRoadMgm/Stuff/StuffMgm/loadable.jsx

@ -21,18 +21,19 @@ function StuffMgm(props) {
export_url: '', export_url: '',
process_url: "" process_url: ""
}) })
const [formData, setFormData] = useState({
region_id: '',//
const parameter={
region_id: [],//
code: '',// code: '',//
brand_id: '',// brand_id: '',//
model_id: '',// model_id: '',//
operatorid: '',//
operatorid: '0',//
name: '',// name: '',//
status: '',// status: '',//
uid: '',// uid: '',//
pn: 1, pn: 1,
page_size: Number(pageSizeOptions[0]), // page_size: Number(pageSizeOptions[0]), //
})
}
const [formData, setFormData] = useState(parameter )
const [lastFormData, setLastFormData] = useState(formData) const [lastFormData, setLastFormData] = useState(formData)
const [checkVisible, setCheckVisible] = useState(false) const [checkVisible, setCheckVisible] = useState(false)
const [editVisible, setEditVisible] = useState(false) const [editVisible, setEditVisible] = useState(false)
@ -176,7 +177,7 @@ function StuffMgm(props) {
} }
// //
const [getEditData, setGetEditData] = useState({ const [getEditData, setGetEditData] = useState({
region_id: '',//
region_id: null,//
operatorid: '', operatorid: '',
code: '', code: '',
name: '', name: '',
@ -239,7 +240,7 @@ function StuffMgm(props) {
// //
const getResetData = () => { const getResetData = () => {
setFormData({ setFormData({
...parameter
...parameter,
}) })
getData({ ...parameter }) getData({ ...parameter })
} }
@ -365,7 +366,7 @@ function StuffMgm(props) {
setAddVisible(false) setAddVisible(false)
} }
let param = { let param = {
region_id: '',//
region_id:null,//
operatorid: '', operatorid: '',
code: '', code: '',
name: '', name: '',
@ -413,6 +414,9 @@ function StuffMgm(props) {
} }
if (v == 1) { if (v == 1) {
setGetSelectStatus(true) setGetSelectStatus(true)
setCheckData({
uid:''
})
} }
} }
// //
@ -435,11 +439,23 @@ function StuffMgm(props) {
message.error('请选择物品类型') message.error('请选择物品类型')
} else if (checkData.model_id == '') { } else if (checkData.model_id == '') {
message.error('请选择物品型号') message.error('请选择物品型号')
} else if (checkData.status == '') {
message.error('请输入状态')
} else { } else {
ajax.saveData(data).then((res) => { ajax.saveData(data).then((res) => {
if (res.status === 20000) { if (res.status === 20000) {
setAddVisible(false) setAddVisible(false)
getData(formData) getData(formData)
setCheckData({
region_id: null,//
operatorid: '',
code: '',
name: '',
brand_id: '',
model_id: '',
status: '',
uid: ''
})
} }
}) })
} }
@ -467,7 +483,9 @@ function StuffMgm(props) {
message.error('请选择物品类型') message.error('请选择物品类型')
} else if (getEditData.model_id == '') { } else if (getEditData.model_id == '') {
message.error('请选择物品型号') message.error('请选择物品型号')
} else {
} else if (getEditData.status == '') {
message.error('请输入状态')
}else {
ajax.saveEditData(data).then((res) => { ajax.saveEditData(data).then((res) => {
if (res.status === 20000) { if (res.status === 20000) {
setEditVisible(false) setEditVisible(false)
@ -477,8 +495,30 @@ function StuffMgm(props) {
} }
} }
const placeBtn = () => { const placeBtn = () => {
setAddVisible(false)
setEditVisible(false) setEditVisible(false)
setGetEditData({
region_id: null,//
operatorid: '',
code: '',
name: '',
brand_id: '',
model_id: '',
status: '',
uid: ''
})
}
const addplaceBtn=()=>{
setAddVisible(false)
setCheckData({
region_id: null,//
operatorid: '',
code: '',
name: '',
brand_id: '',
model_id: '',
status: '',
uid: ''
})
} }
useEffect(() => { useEffect(() => {
assetsModelName() assetsModelName()
@ -499,6 +539,8 @@ function StuffMgm(props) {
name: sessionTabList?.name,// name: sessionTabList?.name,//
status: sessionTabList?.status,// status: sessionTabList?.status,//
uid: sessionTabList?.uid,// uid: sessionTabList?.uid,//
pn: sessionTabList?.pn,
page_size: sessionTabList?.page_size,
}) })
} }
}, []) }, [])
@ -686,6 +728,7 @@ function StuffMgm(props) {
> >
<div className="add"> <div className="add">
<div className="yisa-search"> <div className="yisa-search">
<div className="redLogo">*</div>
<label>区域</label> <label>区域</label>
<Cascader options={getCanCaDer} <Cascader options={getCanCaDer}
onChange={onChange} onChange={onChange}
@ -699,6 +742,7 @@ function StuffMgm(props) {
/> />
</div> </div>
<div className="yisa-search"> <div className="yisa-search">
<div className="redLogo">*</div>
<label>商户名称</label> <label>商户名称</label>
<Select <Select
style={{ width: 180, marginLeft: 20 }} style={{ width: 180, marginLeft: 20 }}
@ -708,6 +752,7 @@ function StuffMgm(props) {
/> />
</div> </div>
<div className="yisa-search"> <div className="yisa-search">
<div className="redLogo">*</div>
<label>物品编号</label> <label>物品编号</label>
<Input <Input
placeholder="请输入" placeholder="请输入"
@ -717,6 +762,7 @@ function StuffMgm(props) {
/> />
</div> </div>
<div className="yisa-search"> <div className="yisa-search">
<div className="redLogo">*</div>
<label>物品名称</label> <label>物品名称</label>
<Input <Input
placeholder="请输入" placeholder="请输入"
@ -726,8 +772,10 @@ function StuffMgm(props) {
/> />
</div> </div>
<div className="yisa-search"> <div className="yisa-search">
<div className="redLogo">*</div>
<label>物品类型</label> <label>物品类型</label>
<Select <Select
placeholder="请选择"
value={checkData.brand_id} value={checkData.brand_id}
style={{ width: 180, marginLeft: 20 }} style={{ width: 180, marginLeft: 20 }}
options={getOperationName} options={getOperationName}
@ -735,6 +783,7 @@ function StuffMgm(props) {
/> />
</div> </div>
<div className="yisa-search"> <div className="yisa-search">
<div className="redLogo">*</div>
<label>物品型号</label> <label>物品型号</label>
<Select <Select
placeholder="请选择" placeholder="请选择"
@ -745,6 +794,7 @@ function StuffMgm(props) {
/> />
</div> </div>
<div className="yisa-search"> <div className="yisa-search">
<div className="redLogo">*</div>
<label>状态</label> <label>状态</label>
<Select <Select
style={{ width: 180, marginLeft: 47 }} style={{ width: 180, marginLeft: 47 }}
@ -764,7 +814,7 @@ function StuffMgm(props) {
/> />
</div> </div>
<div className="yisa-search"> <div className="yisa-search">
<label>领用人</label>
<label style={{marginLeft:17}}>领用人</label>
<Select <Select
style={{ width: 180, marginLeft: 33 }} style={{ width: 180, marginLeft: 33 }}
placeholder="请选择" placeholder="请选择"
@ -778,7 +828,7 @@ function StuffMgm(props) {
<button type="primary" className="submit colorBtn" onClick={() => { placeSaveBtn() }}> <button type="primary" className="submit colorBtn" onClick={() => { placeSaveBtn() }}>
提交 提交
</button> </button>
<button type="primary" className="cancel colorReset" onClick={() => { placeBtn() }}>
<button type="primary" className="cancel colorReset" onClick={() => { addplaceBtn() }}>
取消 取消
</button> </button>
</div> </div>
@ -792,6 +842,7 @@ function StuffMgm(props) {
> >
<div className="add"> <div className="add">
<div className="yisa-search"> <div className="yisa-search">
<div className="redLogo">*</div>
<label>区域</label> <label>区域</label>
<Cascader <Cascader
options={getCanCaDer} options={getCanCaDer}
@ -810,10 +861,12 @@ function StuffMgm(props) {
/> />
</div> </div>
<div className="yisa-search"> <div className="yisa-search">
<div className="redLogo">*</div>
<label>商户名称</label> <label>商户名称</label>
<Select <Select
style={{ width: 180, marginLeft: 20 }} style={{ width: 180, marginLeft: 20 }}
value={getEditData.operatorid} value={getEditData.operatorid}
disabled={true}
options={getMerchantDataName} options={getMerchantDataName}
onChange={(value) => { onChange={(value) => {
setGetEditData( setGetEditData(
@ -823,6 +876,7 @@ function StuffMgm(props) {
/> />
</div> </div>
<div className="yisa-search"> <div className="yisa-search">
<div className="redLogo">*</div>
<label>物品编号</label> <label>物品编号</label>
<Input <Input
placeholder="请输入" placeholder="请输入"
@ -836,6 +890,7 @@ function StuffMgm(props) {
/> />
</div> </div>
<div className="yisa-search"> <div className="yisa-search">
<div className="redLogo">*</div>
<label>物品名称</label> <label>物品名称</label>
<Input <Input
placeholder="请输入" placeholder="请输入"
@ -849,6 +904,7 @@ function StuffMgm(props) {
/> />
</div> </div>
<div className="yisa-search"> <div className="yisa-search">
<div className="redLogo">*</div>
<label>物品类型</label> <label>物品类型</label>
<Select <Select
value={getEditData.brand_id} value={getEditData.brand_id}
@ -862,6 +918,7 @@ function StuffMgm(props) {
/> />
</div> </div>
<div className="yisa-search"> <div className="yisa-search">
<div className="redLogo">*</div>
<label>物品型号</label> <label>物品型号</label>
<Select <Select
placeholder="请选择" placeholder="请选择"
@ -876,6 +933,7 @@ function StuffMgm(props) {
/> />
</div> </div>
<div className="yisa-search"> <div className="yisa-search">
<div className="redLogo">*</div>
<label>状态</label> <label>状态</label>
<Select <Select
style={{ width: 180, marginLeft: 47 }} style={{ width: 180, marginLeft: 47 }}
@ -894,12 +952,16 @@ function StuffMgm(props) {
{ {
value: '1', value: '1',
label: '空闲' label: '空闲'
},
{
value: '2',
label: '废弃'
} }
]} ]}
/> />
</div> </div>
<div className="yisa-search"> <div className="yisa-search">
<label>领用人</label>
<label style={{marginLeft:17}}>领用人</label>
<Select <Select
style={{ width: 180, marginLeft: 33 }} style={{ width: 180, marginLeft: 33 }}
placeholder="请选择" placeholder="请选择"

34
src/pages/InRoadMgm/Stuff/StuffStat/loadable.jsx

@ -16,13 +16,14 @@ function StuffStat(props) {
export_url: '', export_url: '',
process_url: "" process_url: ""
}) })
const [formData, setFormData] = useState({
const parameter={
operatorid: '', operatorid: '',
brand_id: '', brand_id: '',
model_id: '', model_id: '',
pn: 1, pn: 1,
page_size: Number(pageSizeOptions[0]), // page_size: Number(pageSizeOptions[0]), //
})
}
const [formData, setFormData] = useState(parameter)
const [lastFormData, setLastFormData] = useState(formData) const [lastFormData, setLastFormData] = useState(formData)
// //
const handleJobStatus = (value) => { const handleJobStatus = (value) => {
@ -49,6 +50,13 @@ function StuffStat(props) {
} }
return result; return result;
} }
//
const getResetData = () => {
setFormData({
...parameter
})
getData({ ...parameter })
}
// //
const deployListColumns = [ const deployListColumns = [
{ {
@ -121,12 +129,12 @@ function StuffStat(props) {
console.log(err) console.log(err)
}) })
} }
//
const changePn = (pn, length) => {
//
const changePn = (pn, length) => {
if (formData.page_size === length) { if (formData.page_size === length) {
setFormData(Object.assign({}, formData, { pn: pn, page_size: length })) setFormData(Object.assign({}, formData, { pn: pn, page_size: length }))
setLastFormData(Object.assign({}, lastFormData, { pn: pn , page_size: length }))
getData(Object.assign({}, formData, { pn: pn, page_size: length }))
setLastFormData(Object.assign({}, lastFormData, { pn: pn, page_size: length }))
getData(Object.assign({}, formData, { pn: pn, page_size: length }))
} }
} }
// //
@ -139,13 +147,7 @@ function StuffStat(props) {
const getSearchData = (data = formData) => { const getSearchData = (data = formData) => {
getData(data) getData(data)
} }
//
const getResetData = () => {
setFormData({
...parameter
})
getData({ ...parameter })
}
const [getOperationName, setGetOperationName] = useState([]) const [getOperationName, setGetOperationName] = useState([])
const operationName = () => { const operationName = () => {
ajax.assetsType().then(res => { ajax.assetsType().then(res => {
@ -182,10 +184,13 @@ function StuffStat(props) {
setFormData({ setFormData({
brand_id: sessionTabList?.brand_id, brand_id: sessionTabList?.brand_id,
model_id: sessionTabList?.model_id, model_id: sessionTabList?.model_id,
operatorid: sessionTabList?.operatorid
operatorid: sessionTabList?.operatorid,
pn: sessionTabList?.pn,
page_size: sessionTabList?.page_size,
}) })
} }
}, []) }, [])
console.log(formData);
useEffect(() => { useEffect(() => {
setSessionTabList({ setSessionTabList({
...formData ...formData
@ -195,7 +200,6 @@ function StuffStat(props) {
getData() getData()
merchantDataName() merchantDataName()
operationName() operationName()
}, []) }, [])
return <> return <>
<div className="paid-StuffStat"> <div className="paid-StuffStat">

14
src/pages/OperationCenter/GeoSignalIgnore/GeoSignalIgnoreAudit/index.scss

@ -204,6 +204,16 @@ $color-primary : var(--color-primary);
cursor: pointer; cursor: pointer;
border-radius: 7px; border-radius: 7px;
} }
.rejectBtn{
width: 79px;
height: 34px;
background: white;
cursor: pointer;
border: none;
color: black;
border-radius: 7px;
margin-left: 10px;
}
} }
} }
.rejectModal{ .rejectModal{
@ -214,6 +224,10 @@ $color-primary : var(--color-primary);
line-height: 31px; line-height: 31px;
} }
} }
.font{
text-align: center;
font-size: 16;
}
.btn{ .btn{
text-align: end; text-align: end;
margin-top: 20px; margin-top: 20px;

65
src/pages/OperationCenter/GeoSignalIgnore/GeoSignalIgnoreAudit/loadable.jsx

@ -28,6 +28,7 @@ function GeoSignalIgnoreAudit(props) {
const [imgVisible, setImgVisible] = useState(false) const [imgVisible, setImgVisible] = useState(false)
const [passVisible, setPassVisible] = useState(false) const [passVisible, setPassVisible] = useState(false)
const [rejectVisible, setRejectVisible] = useState(false) const [rejectVisible, setRejectVisible] = useState(false)
const [reject, setReject] = useState(false)
// //
const handleJobStatus = (value) => { const handleJobStatus = (value) => {
setFormData({ ...formData, auditType: value }) setFormData({ ...formData, auditType: value })
@ -152,19 +153,23 @@ function GeoSignalIgnoreAudit(props) {
setPassVisible(false) setPassVisible(false)
} }
const [getMessage, setGetMessage] = useState({}) const [getMessage, setGetMessage] = useState({})
const [getPassValue, setGetPassValue] = useState({})
const passBtn = (record) => { const passBtn = (record) => {
setGetPassValue(record)
setPassVisible(true)
}
const passModalBtn = () => {
let data = { let data = {
id: record.id
id: getPassValue.id
} }
ajax.getPassData(data).then(res => { ajax.getPassData(data).then(res => {
if (res.status === 20000) { if (res.status === 20000) {
setGetMessage(res.message)
setPassVisible(true)
getData(formData) getData(formData)
setPassVisible(false)
} }
}) })
} }
const passModalBtn = () => {
const passModalCancel = () => {
setPassVisible(false) setPassVisible(false)
} }
// //
@ -172,24 +177,35 @@ function GeoSignalIgnoreAudit(props) {
note: '' note: ''
}) })
const handleNote = (v) => { const handleNote = (v) => {
setGetNote(v.target.value)
setGetNote({ ...getNote, note: v.target.value })
} }
const [getRejectId, setGetRejectId] = useState({}) const [getRejectId, setGetRejectId] = useState({})
const rejectBtn = (record) => { const rejectBtn = (record) => {
setGetRejectId(record.id) setGetRejectId(record.id)
setRejectVisible(true) setRejectVisible(true)
} }
const reModal = () => {
setReject(false)
}
const rejectModalBtn = () => { const rejectModalBtn = () => {
if (getNote.note === '') {
message.error('请输入驳回原因')
} else {
setReject(true)
setRejectVisible(false)
}
}
const reBtn = () => {
let data = { let data = {
id: getRejectId, id: getRejectId,
note: getNote
note: getNote.note
} }
if (getNote === '') { if (getNote === '') {
message.error('请输入驳回原因') message.error('请输入驳回原因')
} else { } else {
ajax.getRejectData(data).then(res => { ajax.getRejectData(data).then(res => {
if (res.status === 20000) { if (res.status === 20000) {
setRejectVisible(false)
setReject(false)
setGetNote({ setGetNote({
note: '' note: ''
}) })
@ -198,12 +214,16 @@ function GeoSignalIgnoreAudit(props) {
}) })
} }
} }
const rejectModal = () => {
const rejectCancel = () => {
setRejectVisible(false) setRejectVisible(false)
} }
const rejectCancel = () => {
const reCancel = () => {
setReject(false)
}
const rejectModal = () => {
setRejectVisible(false) setRejectVisible(false)
} }
// //
const getData = (data = formData) => { const getData = (data = formData) => {
setAjaxLoading(true) setAjaxLoading(true)
@ -235,9 +255,9 @@ function GeoSignalIgnoreAudit(props) {
// //
const changePn = (pn, length) => { const changePn = (pn, length) => {
if (formData.page_size === length) { if (formData.page_size === length) {
setFormData(Object.assign({}, formData, { pn: pn, page_size: length}))
setFormData(Object.assign({}, formData, { pn: pn, page_size: length }))
setLastFormData(Object.assign({}, lastFormData, { pn: pn, page_size: length })) setLastFormData(Object.assign({}, lastFormData, { pn: pn, page_size: length }))
getData(Object.assign({}, formData, { pn: pn , page_size: length}))
getData(Object.assign({}, formData, { pn: pn, page_size: length }))
} }
} }
// //
@ -394,8 +414,11 @@ function GeoSignalIgnoreAudit(props) {
className="passModal" className="passModal"
title='提示' title='提示'
> >
<div className="font">{getMessage}</div>
<div className="btn"><button className="passBtn" onClick={passModalBtn}>确定</button></div>
<div className="font">确定要通过该请求吗</div>
<div className="btn">
<button className="passBtn" onClick={passModalBtn}>确定</button>
<button className="rejectBtn" onClick={passModalCancel}>取消</button>
</div>
</Modal> </Modal>
<Modal <Modal
visible={rejectVisible} visible={rejectVisible}
@ -407,6 +430,7 @@ function GeoSignalIgnoreAudit(props) {
<div className="yisa-search"> <div className="yisa-search">
<label>驳回原因</label> <label>驳回原因</label>
<TextArea <TextArea
value={getNote.note}
placeholder='请输入驳回原因' placeholder='请输入驳回原因'
style={{ width: 400, height: 100, marginLeft: 19 }} style={{ width: 400, height: 100, marginLeft: 19 }}
onChange={handleNote} onChange={handleNote}
@ -417,6 +441,21 @@ function GeoSignalIgnoreAudit(props) {
<button className="rejectBtn" onClick={rejectCancel}>取消</button> <button className="rejectBtn" onClick={rejectCancel}>取消</button>
</div> </div>
</Modal> </Modal>
<Modal
visible={reject}
onCancel={reModal}
footer={null}
className="rejectModal"
title='提示'
>
<div className="font">
确定要驳回该请求吗
</div>
<div className="btn">
<button className="passBtn" onClick={reBtn}>确定</button>
<button className="rejectBtn" onClick={reCancel}>取消</button>
</div>
</Modal>
</> </>
} }

2
src/pages/SystemMgm/OrgnizationMgm/loadable.jsx

@ -463,13 +463,13 @@ function OrgnizationMgm() {
</> </>
} }
return <> return <>
<div className="orgnization-container"> <div className="orgnization-container">
<div className="org-tree-container"> <div className="org-tree-container">
<Tree <Tree
defaultSelectedKeys={defaultTreeActiveKey} defaultSelectedKeys={defaultTreeActiveKey}
treeData={orgTree} treeData={orgTree}
autoExpandParent={true}
titleRender={treeTitleRender} titleRender={treeTitleRender}
onSelect={handleTreeClick} onSelect={handleTreeClick}
fieldNames={{ fieldNames={{

Loading…
Cancel
Save