Browse Source

Merge branch 'develop' of http://120.27.195.166:3000/chenglb/PMS_Frontend_v1.0.0 into develop

tags/PMS_V1.0.0_Alpha5
陈宇航 1 year ago
parent
commit
e675abf8ec
  1. BIN
      src/assets/images/error-img-new.png
  2. BIN
      src/components/SelectGaodeLngLat/blue-point.png
  3. 49
      src/components/SelectGaodeLngLat/index.jsx
  4. 2
      src/pages/DataAnalysisPrediction/ParkingBusinessAly/CarTypeAly/loadable.jsx
  5. 4
      src/pages/FinancialMgm/OrderInquiry/OrderChangeInquiry/index.jsx
  6. 9
      src/pages/InRoadMgm/BusinessMgm/AbnormalParking/ExceptionParkReport/loadable.jsx
  7. 8
      src/pages/InRoadMgm/BusinessMgm/SpecialRecord/loadable.jsx
  8. 1
      src/pages/InRoadMgm/EquipmentMgm/MonitorEquipment/loadable.jsx
  9. 16
      src/pages/InRoadMgm/PersonMgm/Performance/CollectorWorkStat/loadable.jsx
  10. 35
      src/pages/InRoadMgm/PersonMgm/Performance/InspectorWorkStat/loadable.jsx
  11. 2
      src/pages/InRoadMgm/PersonMgm/Performance/SalesStat/index.scss
  12. 2
      src/pages/InRoadMgm/PersonMgm/Performance/SalesStat/loadable.jsx
  13. 16
      src/pages/InRoadMgm/RecordInquiry/DisabledCarParkRecordTotal/loadable.jsx
  14. 18
      src/pages/InRoadMgm/RecordInquiry/ParkRecordTotal/loadable.jsx
  15. 3
      src/pages/InRoadMgm/Stuff/ModelConf/loadable.jsx
  16. 158
      src/pages/OperationCenter/ArrearsRecover/ArrearsTask/loadable.jsx
  17. 18
      src/pages/OperationCenter/CarMgm/CarAuth/loadable.jsx
  18. 21
      src/pages/OperationCenter/CarMgm/CarInfo/loadable.jsx
  19. 4
      src/pages/OperationCenter/CustomerServieMgm/ComplaintMgm/loadable.jsx
  20. 1
      src/pages/OperationCenter/CustomerServieMgm/ErrorCorrection/loadable.jsx
  21. 10
      src/pages/OperationCenter/GeoSignalIgnore/GeoSignalIgnoreAudit/loadable.jsx
  22. 10
      src/pages/OperationCenter/GeoSignalIgnore/GeoSignalIgnoreInquiry/loadable.jsx
  23. 4
      src/pages/OperationCenter/OperationSales/CouponMgm/CouponDistribute/loadable.jsx
  24. 4
      src/pages/OperationCenter/OperationSales/CouponMgm/WriteOffStat/loadable.jsx
  25. 4
      src/pages/OperationCenter/OtherBusiness/ParkingCard/ParkingCardMgm/loadable.jsx
  26. 4
      src/pages/OperationCenter/OtherBusiness/ParkingCard/ParkingCardOrder/loadable.jsx
  27. 34
      src/pages/OperationCenter/OtherBusiness/Staggered/StaggeredMgm/loadable.jsx
  28. 1
      src/pages/OperationCenter/OtherBusiness/Staggered/StaggeredStat/loadable.jsx
  29. 14
      src/pages/OperationCenter/UserMgm/UserAuth/loadable.jsx
  30. 26
      src/pages/OperationCenter/UserMgm/UserInfo/loadable.jsx
  31. 12
      src/pages/OperationCenter/UserMgm/UserTag/loadable.jsx
  32. 16
      src/pages/OutRoadMgm/OutBusinessRecord/OutParkingRecordInquiry/Detail/StopList.jsx
  33. 20
      src/pages/OutRoadMgm/OutExceptionMgm/LiftUpPoleRecord/loadable.jsx
  34. 17
      src/pages/OutRoadMgm/OutExceptionMgm/ZombieCarCleanRecord/loadable.jsx
  35. 8
      src/pages/OutRoadMgm/OutSegmentMgm/ChargeRulesMgm/EffectiveDate.jsx
  36. 2
      src/pages/OutRoadMgm/OutSegmentMgm/ChargeRulesMgm/TimePart.jsx
  37. 17
      src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/AddParking.jsx
  38. 20
      src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/ConfigParking/BillingRules.jsx
  39. 8
      src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/ConfigParking/CarMgm/BlacklistManagement.jsx
  40. 17
      src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/ConfigParking/CarMgm/WhitelistManagement.jsx
  41. 2
      src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/ConfigParking/LEDConfiguration.jsx
  42. 11
      src/pages/OutRoadMgm/OutSegmentMgm/ZombieCarMgm/Detail/StopList.jsx
  43. 37
      src/pages/SystemMgm/RoleMgm/loadable.jsx

BIN
src/assets/images/error-img-new.png

After

Width: 384  |  Height: 216  |  Size: 4.2 KiB

BIN
src/components/SelectGaodeLngLat/blue-point.png

After

Width: 48  |  Height: 54  |  Size: 2.3 KiB

49
src/components/SelectGaodeLngLat/index.jsx

@ -6,7 +6,9 @@ import "leaflet/dist/leaflet.css";
import "leaflet.chinatmsproviders";
import ajax from "@/services";
import "./index.scss";
import { compileString } from "sass";
import Rerm from "./blue-point.png";
import { constant } from "lodash";
let timer = null;
function SelectGaodeLngLat(props) {
const {
@ -17,6 +19,7 @@ function SelectGaodeLngLat(props) {
onChange = () => { },
} = props;
const [lnglat, setLnglat] = useState([]);
const [marker, setMarker] = useState([]);
const [address, setAddress] = useState("");
const [searchLnglatValue, setSearchLnglatValue] = useState([]);
const [getLngLabel, setGetLngLabel] = useState([])
@ -59,12 +62,13 @@ function SelectGaodeLngLat(props) {
let add = getLngLabel.filter((ele) => ele.value == data)[0] || [];
console.log(add);
// setSearchLnglatValue([ add.lng,add.lat])
setMarker([add.lng, add.lat])
setLnglat([add.lng, add.lat]);
getLntLat([add.lng, add.lat]);
};
function getLocationMessage() {
function getLocationMessage(v) {
// const lat_lng = lnglat.reverse().join(",");
const lat_lng = lnglat.join(",");
const lat_lng = v ? v.join(",") : lnglat.join(",");
ajax.getLocationNameByLngLat({ lat_lng }).then((res) => {
if (res.status === 20000) {
setAddress(res.data.address);
@ -76,7 +80,9 @@ function SelectGaodeLngLat(props) {
useEffect(() => {
onChange(address);
}, [address]);
useEffect(() => {
getLocationMessage(lnglat)
}, [lnglat]);
return (
<div className="SelectLnglat">
<Button
@ -103,7 +109,9 @@ function SelectGaodeLngLat(props) {
setLnglat={setLnglat}
getLntLat={getLntLat}
searchLnglatValue={searchLnglatValue}
/>
markerPoint={marker}
>
</ModalMap>
</div>
<div className="bottom-input">
@ -142,6 +150,7 @@ function ModalMap(props) {
setLnglat = () => { },
getLntLat = () => { },
searchLnglatValue = [],
markerPoint = []
} = props;
const mapConfig = {
center: sysConfig.map.center,
@ -154,6 +163,7 @@ function ModalMap(props) {
mapTileType: sysConfig.map.mapTileType,
};
const [map, setMap] = useState(null);
const [Marker, setMarker] = useState(null);
const mapRef = useRef(null);
const initMap = () => {
// console.log(mapConfig);
@ -192,9 +202,34 @@ function ModalMap(props) {
// onClick(info)
setLnglat([e.lnglat.lng.toFixed(4), e.lnglat.lat.toFixed(4)]);
getLntLat([e.lnglat.lng.toFixed(4), e.lnglat.lat.toFixed(4)]);
//addMarker([e.lnglat.lng.toFixed(4), e.lnglat.lat.toFixed(4)])
})
mapRef.current = map
};
useEffect(() => {
if (map) {
addMarker(markerPoint); //
}
}, [markerPoint]);
const markerContent = `<div class="custom-content-marker">
<img src='${Rerm}' />
</div>`;
const addMarker = (data) => {
if (data.length == 0) return
if (Marker) {
map.remove(Marker);
}
let marker = new AMap.Marker({
position: new AMap.LngLat(parseFloat(data[0]), parseFloat(data[1])),
content: markerContent,
offset: new AMap.Pixel(-24, -45),
});
map.add(marker);
setMarker(marker);
setTimeout(() => {
map.setCenter(new AMap.LngLat(parseFloat(data[0]), parseFloat(data[1])));
}, 800);
};
function clearMarkers(map) {
map.eachLayer(function (layer) {
if (layer instanceof L.Marker) {
@ -211,10 +246,10 @@ function ModalMap(props) {
};
}, []);
useEffect(() => {
setTimeout(()=>{
setTimeout(() => {
if (searchLnglatValue.length === 0) return;
mapRef.current.setView(searchLnglatValue, 13);
},800)
}, 800)
}, [searchLnglatValue]);
return (

2
src/pages/DataAnalysisPrediction/ParkingBusinessAly/CarTypeAly/loadable.jsx

@ -77,6 +77,7 @@ function CarTypeAly() {
}
}, [isAjax])
useEffect(() => {
console.log(formData)
if (show.length > 0 || show == 1) {
setSessionTabList({
...formData,
@ -85,6 +86,7 @@ function CarTypeAly() {
} else {
setSessionTabList({
...formData,
//show: show.length > 0 ? show : []
})
}
}, [formData, show])

4
src/pages/FinancialMgm/OrderInquiry/OrderChangeInquiry/index.jsx

@ -294,7 +294,7 @@ function EditOrderInquiry(props) {
align: "center",
width: 160,
render: (text, data) => {
console.log(text);
//console.log(text);
if (data.arrearsAmount_new) {
return <div>
<span style={{ "text-decoration": "line-through" }}>{data.arrearsAmount}</span>
@ -888,7 +888,7 @@ function EditOrderInquiry(props) {
<div className="form-btn">
<Button
className="reset"
onClick={() => { setFormData(defaultData); setPageInfo({ pn: 1, page: 15 }); getData({ ...defaultData }, { pn: 1, page: 15 }); }}
onClick={() => { setFormData(defaultData); setPageInfo({ pn: 1, page_size: 15 }); getData({ ...defaultData }, { pn: 1, page_size: 15 }); }}
>
重置
</Button>

9
src/pages/InRoadMgm/BusinessMgm/AbnormalParking/ExceptionParkReport/loadable.jsx

@ -6,6 +6,7 @@ import {
} from '@/config/character.config.js'
import "./index.scss";
import { SearchOutlined } from '@ant-design/icons';
import errorImg from '@/assets/images/error-img-new.png'
import ajax from '@/services'
import moment from "moment";
import utils from '@/config/utils'
@ -63,6 +64,12 @@ function ExceptionParkReport(props) {
}
return result;
}
const handleImgError = (e) => {
let evn = e || event
let img = evn.srcElement ? evn.srcElement : evn.target
img.src = errorImg
}
//
const deployListColumns = [
{
@ -490,7 +497,7 @@ function ExceptionParkReport(props) {
getDetailPic.map((item, index) => {
return (
<div className="pic">
<Image src={item} height={{height:300}}/>
<Image src={item} height={{height:300}} onError={handleImgError}/>
</div>
)
})

8
src/pages/InRoadMgm/BusinessMgm/SpecialRecord/loadable.jsx

@ -8,6 +8,7 @@ import "./index.scss";
import { SearchOutlined, DeleteOutlined, PlusOutlined, CloseCircleFilled } from '@ant-design/icons';
import ajax from '@/services'
import { useSessionStorageState } from "ahooks"
import errorImg from '@/assets/images/error-img-new.png'
import { dictionary, utils } from "@/config/common";
const { TabPane } = Tabs;
const { TextArea } = Input;
@ -173,6 +174,13 @@ function CollectorWorkStat(props) {
key: 'review_comments',
}
]
const handleImgError = (e) => {
let evn = e || event
let img = evn.srcElement ? evn.srcElement : evn.target
img.src = errorImg
}
//
const deployListColumns = [
{

1
src/pages/InRoadMgm/EquipmentMgm/MonitorEquipment/loadable.jsx

@ -280,6 +280,7 @@ function Fence(props) {
const handleAdd = () => {
setEditStatus(false)
form.resetFields()
setBerthData([])
setBerthSelectData([])
setEditModalVisible(true)
}

16
src/pages/InRoadMgm/PersonMgm/Performance/CollectorWorkStat/loadable.jsx

@ -27,7 +27,9 @@ function CollectorWorkStat(props) {
job_status: '0',//
start_time: moment().subtract(30, 'days').startOf('day').format('YYYY-MM-DD') ,
end_time: moment().format('YYYY-MM-DD'),
pn:1,
page_size: Number(pageSizeOptions[0]), //
type: typeTime
}
let dataTime={
start_time: moment().subtract(30, 'days').startOf('day').format('YYYY-MM') ,
@ -146,22 +148,22 @@ function CollectorWorkStat(props) {
getData({...data, pn: 1})
}
const setType = (v) => {
setTypeTime(v)
if (v === 'day') {
setFormData(parameter)
setFormData({
...parameter,
type: v
})
} else {
setFormData({
...parameter,
...dataTime
...dataTime,
type: v
})
}
}
useEffect(()=>{
console.log(formData);
},[formData])
console.log(typeTime);
const [getOperationName, setGetOperationName] = useState([])
const operationName = () => {
ajax.getAllOperator().then(res => {

35
src/pages/InRoadMgm/PersonMgm/Performance/InspectorWorkStat/loadable.jsx

@ -24,13 +24,14 @@ function InspectorWorkStat(props) {
name: '',//
operator_id: '0',//
job_status: '0',//
start_time: moment().subtract(30, 'days').startOf('day').format('YYYY-MM-DD') ,
start_time: moment().subtract(30, 'days').startOf('day').format('YYYY-MM-DD'),
end_time: moment().format('YYYY-MM-DD'),
pn: 1,
page_size: Number(pageSizeOptions[0]), //
type: typeTime
}
let dataTime={
start_time: moment().subtract(30, 'days').startOf('day').format('YYYY-MM') ,
let dataTime = {
start_time: moment().subtract(30, 'days').startOf('day').format('YYYY-MM'),
end_time: moment().format('YYYY-MM'),
}
const [formData, setFormData] = useState(parameter)
@ -120,8 +121,8 @@ function InspectorWorkStat(props) {
if (lastFormData.page_size === length) {
setFormData(Object.assign({}, formData, { pn: pn, page_size: length }))
setLastFormData(Object.assign({}, lastFormData, { pn: pn, page_size: length }))
lastFormDataRef.current = Object.assign({}, lastFormData, { pn: pn, page_size: length})
getData(Object.assign({}, formData, { pn: pn , page_size: length}))
lastFormDataRef.current = Object.assign({}, lastFormData, { pn: pn, page_size: length })
getData(Object.assign({}, formData, { pn: pn, page_size: length }))
}
}
//
@ -133,18 +134,22 @@ function InspectorWorkStat(props) {
}
//
const getSearchData = (data = formData) => {
setFormData(Object.assign({}, formData, { pn: 1}))
setFormData(Object.assign({}, formData, { pn: 1 }))
setLastFormData(Object.assign({}, lastFormData, { pn: 1 }))
getData({...data, pn: 1})
getData({ ...data, pn: 1 })
}
const setType = (v) => {
setTypeTime(v)
if (v === 'day') {
setFormData(parameter)
setFormData({
...parameter,
type: v
})
} else {
setFormData({
...parameter,
...dataTime
...dataTime,
type: v
})
}
}
@ -220,8 +225,8 @@ function InspectorWorkStat(props) {
end_time: dateString[1],
type: typeTime
})
}}
value={[moment(formData.start_time), moment(formData.end_time)]}
}}
value={[moment(formData.start_time), moment(formData.end_time)]}
/> :
<RangePicker picker="month" onChange={(value, dateString) => {
// let first =dateString[0].substr(0,7);
@ -237,14 +242,14 @@ function InspectorWorkStat(props) {
end_time: dateString[1],
type: typeTime
})
}}
value={[moment(formData.start_time), moment(formData.end_time)]}
}}
value={[moment(formData.start_time), moment(formData.end_time)]}
/>
}
</Space>
<div className="btnBox">
<Button type="primary" className="yisa-btn colorBtn" onClick={() => { getSearchData() }}>
查询
<Button type="primary" className="yisa-btn colorBtn" onClick={() => { getSearchData() }}>
查询
</Button>
</div>
</div>

2
src/pages/InRoadMgm/PersonMgm/Performance/SalesStat/index.scss

@ -135,7 +135,7 @@ $color-primary : var(--color-primary);
}
}
.revenue{
.revenueModal{
.tab-title{
text-align: center;
font-size: 18px;

2
src/pages/InRoadMgm/PersonMgm/Performance/SalesStat/loadable.jsx

@ -399,7 +399,7 @@ function SalesStat(props) {
visible={revenueVisible}
onCancel={revenueModal}
footer={null}
className="revenue"
className="revenueModal"
>
<div className="tab-title">{getTabTitle.date}营收情况</div>
<div className="tab-index">

16
src/pages/InRoadMgm/RecordInquiry/DisabledCarParkRecordTotal/loadable.jsx

@ -19,6 +19,7 @@ import ajax from '@/config/ajax.js'
import { dictionary, utils } from "@/config/common";
// import moment from 'moment'
// import { useSessionStorageState, useUpdateEffect, useSize, useUpdate } from 'ahooks';
import errorImg from '@/assets/images/error-img-new.png'
import { TableModule } from "@/components";
import "./index.scss";
import {
@ -527,6 +528,13 @@ function DisabledCarParkRecordTotal() {
function changeKey(key) {
setTabKey(key);
}
const handleImgError = (e) => {
let evn = e || event
let img = evn.srcElement ? evn.srcElement : evn.target
img.src = errorImg
}
function searchOperation(e) {
ajax({ //
url: "/api/bpm/record/get_payment_record",
@ -675,8 +683,8 @@ function DisabledCarParkRecordTotal() {
<Descriptions.Item label="出场收费员">{params.out_person}</Descriptions.Item>
</Descriptions>
<Descriptions title="入场照片">
<Descriptions.Item label="车辆照片"><img width={300} height={200} src={params.in_veh_pic} onClick={() => { setBigPic(params.in_veh_pic); setBigpicVisible(true) }} /></Descriptions.Item>
<Descriptions.Item label="车牌照片"><img width={300} height={200} src={params.in_plate_pic} onClick={() => { setBigPic(params.in_plate_pic); setBigpicVisible(true) }} /></Descriptions.Item>
<Descriptions.Item label="车辆照片"><img width={300} height={200} src={params.in_veh_pic} onError={handleImgError} onClick={() => { setBigPic(params.in_veh_pic); setBigpicVisible(true) }} /></Descriptions.Item>
<Descriptions.Item label="车牌照片"><img width={300} height={200} src={params.in_plate_pic} onError={handleImgError} onClick={() => { setBigPic(params.in_plate_pic); setBigpicVisible(true) }} /></Descriptions.Item>
</Descriptions>
</div>
);
@ -743,7 +751,7 @@ function DisabledCarParkRecordTotal() {
}}
>
<div>
<img src={cjPic} width={750} />
<img src={cjPic} width={750} onError={handleImgError} />
</div>
</Modal>
<Modal
@ -1004,7 +1012,7 @@ function DisabledCarParkRecordTotal() {
>
<div>
<div className="eae-modal-item">
<img src={bigPic} width={1550} height={700} />
<img src={bigPic} width={1550} height={700} onError={handleImgError} />
</div>
</div>
</Modal>

18
src/pages/InRoadMgm/RecordInquiry/ParkRecordTotal/loadable.jsx

@ -19,6 +19,7 @@ import { dictionary, utils } from "@/config/common";
// import moment from 'moment'
// import { useSessionStorageState, useUpdateEffect, useSize, useUpdate } from 'ahooks';
import ajax from "@/services";
import errorImg from '@/assets/images/error-img-new.png'
import { QuestionCircleOutlined } from '@ant-design/icons';
import { TableModule } from "@/components";
import "./index.scss";
@ -580,6 +581,13 @@ function ParkRecordTotal() {
setHistoryDataDetail(record)
setRecordIndex(index);
}
const handleImgError = (e) => {
let evn = e || event
let img = evn.srcElement ? evn.srcElement : evn.target
img.src = errorImg
}
function changeKey(key) {
setTabKey(key);
switch (key) {
@ -650,17 +658,17 @@ function ParkRecordTotal() {
<Descriptions title="入场照片">
<Descriptions.Item label="车辆照片">
<div className="ltc-item ltc-item-img ">
<Image src={item.in_veh_pic || require("../../../../../src/assets/images/error-img.png")} />
<Image src={item.in_veh_pic || require("../../../../../src/assets/images/error-img-new.png")} onError={handleImgError}/>
</div>
</Descriptions.Item>
<Descriptions.Item label="车牌照片">
<div className="ltc-item ltc-item-img ">
<Image src={item.in_plate_pic || require("../../../../../src/assets/images/error-img.png")} />
<Image src={item.in_plate_pic || require("../../../../../src/assets/images/error-img-new.png")} onError={handleImgError}/>
</div>
</Descriptions.Item>
<Descriptions.Item label=" 残疾人证件">
<div className="ltc-item ltc-item-img ">
<Image src={item.cj_pic || require("../../../../../src/assets/images/error-img.png")} />
<Image src={item.cj_pic || require("../../../../../src/assets/images/error-img-new.png")} onError={handleImgError}/>
</div>
</Descriptions.Item>
</Descriptions>
@ -1101,11 +1109,11 @@ function ParkRecordTotal() {
</div>
<div className="eae-modal-item">
<div>车辆照片</div>
<Image src={historyDataDetail.in_veh_pic} />
<Image src={historyDataDetail.in_veh_pic} onError={handleImgError}/>
</div>
<div className="eae-modal-item">
<div>车牌照片</div>
<Image src={historyDataDetail.in_plate_pic} />
<Image src={historyDataDetail.in_plate_pic} onError={handleImgError}/>
</div>
</div>
</Modal>

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

@ -224,7 +224,8 @@ function ModelConf(props) {
//
const getSearchData = (data = formData) => {
setFormData({
...parameter
...formData,
pn: 1
})
getData(Object.assign({}, formData, { pn: 1 }))
}

158
src/pages/OperationCenter/ArrearsRecover/ArrearsTask/loadable.jsx

@ -68,17 +68,14 @@ function arrearsTask(props) {
let result = [...deployListColumns];
return result;
}
//
const handleDetailColumns = (tab) => {
let result = [...deployDetailColumns];
return result;
}
//
const getResetData = () => {
setFormData({
...parameter
})
getData({...parameter,pn: 1} )
getData({ ...parameter, pn: 1 })
}
//
const deployListColumns = [
@ -158,6 +155,16 @@ function arrearsTask(props) {
</div>
},
}]
const handleDetailColumns = () => {
let result = [...deployDetailColumns];
return result;
}
const handleColumns2 = () => {
let result = [...columns2];
return result;
}
const [getDetailList, setGetDetailList] = useState({})
const [getDetail, setGetDetail] = useState([])
const [getDetailData, seteGetDetailData] = useState({
@ -202,10 +209,13 @@ function arrearsTask(props) {
})
}
const [getStatus, setGetStatus] = useState(0)
const [getRecordList, setGetRecordList] = useState({})
console.log(getRecordList);
//
const checkDetail = (record) => {
console.log(record);
amountDetail(record)
setGetRecordList(record)
if (record.audit_status == 0) {
setGetStatus(1)
setDetailVisible(true)
@ -270,9 +280,72 @@ function arrearsTask(props) {
title: '欠费金额',
dataIndex: 'arrears_mount',
key: 'arrears_mount',
}]
},
{
title: '缴费时间',
dataIndex: 'pay_time',
key: 'pay_time',
},
{
title: '追缴金额',
dataIndex: 'recovery_mount',
key: 'recovery_mount',
}
]
//
const columns2 = [
{
title: "序号",
render: (text, record, index) => index + 1,
},
{
title: '订单ID',
dataIndex: 'park_id',
render: (text, record, index) => (
<div style={{ width: "150px", wordBreak: "break-all" }}>{record.park_id}</div>
)
},
{
title: '车牌号',
render: (text, record, index) => (
<div style={{ width: "100px", wordBreak: "break-all" }}>{record.plate}</div>
)
},
{
title: '欠费路段',
render: (text, record, index) => (
<div style={{ width: "100px", wordBreak: "break-all" }}>{record.road_name}</div>
)
},
{
title: '入场时间',
dataIndex: 'in_time',
render: (text, record, index) => (
<div style={{ width: "200px", wordBreak: "break-all" }}>{record.in_time}</div>
)
},
{
title: '出场时间',
dataIndex: 'out_time',
render: (text, record, index) => (
<div style={{ width: "200px", wordBreak: "break-all" }}>{record.out_time}</div>
)
},
{
title: '停车时长',
dataIndex: 'parking_duration',
render: (text, record, index) => (
<div style={{ width: "150px", wordBreak: "break-all" }}>{record.parking_duration}</div>
)
},
{
title: '欠费金额',
dataIndex: 'arrears_mount',
key: 'arrears_mount',
}
]
//
const getData = (data = formData) => {
setAjaxLoading(true)
@ -316,7 +389,7 @@ function arrearsTask(props) {
let data = {
id: getRecord,
audit_status: type,
remark:[]
remark: []
}
ajax.getDeployTask(data).then(res => {
if (res.status === 20000) {
@ -564,13 +637,13 @@ function arrearsTask(props) {
</div>
<div className="timePicker ">
<div className="btnBox">
<Button type="primary" className="yisa-btn colorReset" onClick={() => { getResetData() }}>
<Button type="primary" className="yisa-btn colorReset" onClick={() => { getResetData() }}>
重置
</Button>
<Button type="primary" className="yisa-btn colorBtn" onClick={() => { getSearchData() }}>
查询
查询
</Button>
</div>
</div>
<div className="timePicker ">
@ -618,15 +691,29 @@ function arrearsTask(props) {
title='审核详情'
>
<ResultFlowResult ajaxLoad={ajaxLoading} resultData={getDetail.data ? getDetail.data : []}>
<Table
bordered
dataSource={getDetail.data}
columns={
handleDetailColumns()
}
pagination={false}
loading={ajaxLoading}
/>
{
getRecordList.audit_status === 1 ?
<Table
bordered
dataSource={getDetail.data}
columns={
handleDetailColumns()
}
pagination={false}
loading={ajaxLoading}
/> :
<Table
bordered
dataSource={getDetail.data}
columns={
handleColumns2()
}
pagination={false}
loading={ajaxLoading}
/>
}
<Pagination
className="pagination-common"
showTotal={() => `${getDetail.total_records}`}
@ -671,15 +758,28 @@ function arrearsTask(props) {
title='欠费详情'
>
<ResultFlowResult ajaxLoad={ajaxLoading} resultData={getDetail.data ? getDetail.data : []}>
<Table
bordered
dataSource={getDetail.data}
columns={
handleDetailColumns()
}
pagination={false}
loading={ajaxLoading}
/>
{
getRecordList.audit_status === 1 ?
<Table
bordered
dataSource={getDetail.data}
columns={
handleDetailColumns()
}
pagination={false}
loading={ajaxLoading}
/> :
<Table
bordered
dataSource={getDetail.data}
columns={
handleColumns2()
}
pagination={false}
loading={ajaxLoading}
/>
}
<Pagination
className="pagination-common"
showTotal={() => `${getDetail.total_records}`}

18
src/pages/OperationCenter/CarMgm/CarAuth/loadable.jsx

@ -12,6 +12,7 @@ import {
Select,
} from "antd";
const { TextArea } = Input;
import errorImg from '@/assets/images/error-img-new.png'
import ajax from '@/config/ajax.js'
import { TableModule, ResultFlow, QuickMenu } from "@/components";
import { dictionary, utils } from "@/config/common";
@ -169,6 +170,13 @@ function CarAuth() {
const handleOpinion = (v) => {
setToText(v.target.value)
}
const handleImgError = (e) => {
let evn = e || event
let img = evn.srcElement ? evn.srcElement : evn.target
img.src = errorImg
}
useEffect(() => {
search()
}, [formData, pageData]);
@ -233,11 +241,11 @@ function CarAuth() {
</div>
<div className="ltc-content">
<div className="ltc-item ltc-item-img">
<img src={resultData[indexby].vehicle_travel_license_img1 || require("../../../../../src/assets/images/error-img.png")} onClick={() => { setBigPic(resultData[indexby].vehicle_travel_license_img1); setBigpicVisible(true) }} />
<img src={resultData[indexby].vehicle_travel_license_img1} onError={handleImgError} onClick={() => { setBigPic(resultData[indexby].vehicle_travel_license_img1); setBigpicVisible(true) }} />
{/* <img src={'https://ts1.cn.mm.bing.net/th/id/R-C.31df3a5a2d8462228734f95d459883e2?rik=7EE6TeWDk%2f%2bctQ&riu=http%3a%2f%2fwww.quazero.com%2fuploads%2fallimg%2f140303%2f1-140303214331.jpg&ehk=SpI7mz%2byLqOkT8BL79jcd3iCtQYNFlBHQzbtF1p0vuQ%3d&risl=&pid=ImgRaw&r=0'} onClick={() => { setBigPic(resultData[indexby].vehicle_travel_license_img1); setBigpicVisible(true) }} /> */}
</div>
<div className="ltc-item ltc-item-img">
<img src={resultData[indexby].vehicle_travel_license_img2 || require("../../../../../src/assets/images/error-img.png")} onClick={() => { setBigPic(resultData[indexby].vehicle_travel_license_img2); setBigpicVisible(true) }} />
<img src={resultData[indexby].vehicle_travel_license_img2} onError={handleImgError} onClick={() => { setBigPic(resultData[indexby].vehicle_travel_license_img2); setBigpicVisible(true) }} />
{/* <img src={'https://ts1.cn.mm.bing.net/th/id/R-C.31df3a5a2d8462228734f95d459883e2?rik=7EE6TeWDk%2f%2bctQ&riu=http%3a%2f%2fwww.quazero.com%2fuploads%2fallimg%2f140303%2f1-140303214331.jpg&ehk=SpI7mz%2byLqOkT8BL79jcd3iCtQYNFlBHQzbtF1p0vuQ%3d&risl=&pid=ImgRaw&r=0'} onClick={() => { setBigPic(resultData[indexby].vehicle_travel_license_img2); setBigpicVisible(true) }} /> */}
</div>
</div>
@ -253,10 +261,10 @@ function CarAuth() {
</div>
<div className="ltc-content">
<div className="ltc-item ltc-item-img">
<img src={resultData[indexby].driving_licence_img1 || require("../../../../../src/assets/images/error-img.png")} onClick={() => { setBigPic(resultData[indexby].driving_licence_img1); setBigpicVisible(true) }} />
<img src={resultData[indexby].driving_licence_img1} onError={handleImgError} onClick={() => { setBigPic(resultData[indexby].driving_licence_img1); setBigpicVisible(true) }} />
</div>
<div className="ltc-item ltc-item-img">
<img src={resultData[indexby].driving_licence_img2 || require("../../../../../src/assets/images/error-img.png")} onClick={() => { setBigPic(resultData[indexby].driving_licence_img2); setBigpicVisible(true) }} />
<img src={resultData[indexby].driving_licence_img2} onError={handleImgError} onClick={() => { setBigPic(resultData[indexby].driving_licence_img2); setBigpicVisible(true) }} />
</div>
</div>
<div className="ltc-content">
@ -378,7 +386,7 @@ function CarAuth() {
>
<div>
<div className="eae-modal-item">
<img src={bigPic} width={1420} />
<img src={bigPic} width={1420} onError={handleImgError}/>
</div>
</div>
</Modal>

21
src/pages/OperationCenter/CarMgm/CarInfo/loadable.jsx

@ -14,6 +14,7 @@ import {
} from "antd";
const { TextArea } = Input;
import moment from "moment";
import errorImg from '@/assets/images/error-img-new.png'
import ajax from '@/config/ajax.js'
import { TableModule, QuickMenu } from "@/components";
import {
@ -791,10 +792,10 @@ function CarInfo() {
<div className="ltc-box-title"><div className="text">入场照片</div><div className="line"></div></div>
<div className="ltc-content">
<div className="ltc-item ltc-item-img ">
<img src={params.in_veh_pic || require("../../../../../src/assets/images/error-img.png")} onClick={() => { setBigPic(params.in_veh_pic); setBigpicVisible(true) }} />
<img src={params.in_veh_pic} onError={handleImgError} onClick={() => { setBigPic(params.in_veh_pic); setBigpicVisible(true) }} />
</div>
<div className="ltc-item ltc-item-img ">
<img src={params.in_plate_pic || require("../../../../../src/assets/images/error-img.png")} onClick={() => { setBigPic(params.in_plate_pic); setBigpicVisible(true) }} />
<img src={params.in_plate_pic} onError={handleImgError} onClick={() => { setBigPic(params.in_plate_pic); setBigpicVisible(true) }} />
</div>
</div>
</div>
@ -806,7 +807,7 @@ function CarInfo() {
<div style={{ padding: '18px' }}>
<div className="base-ltc">
<div className="ltc-img">
<img src={baseData.car_img || require("../../../../../src/assets/images/error-img.png")} width={600} />
<img src={baseData.car_img || require("../../../../../src/assets/images/error-img.png")} onError={handleImgError} width={600} />
</div>
<div className="ltc-box">
<div className="ltc-box-title"><div className="ltc-icon"></div>车辆归属信息</div>
@ -925,6 +926,14 @@ function CarInfo() {
/>
);
}
const handleImgError = (e) => {
let evn = e || event
let img = evn.srcElement ? evn.srcElement : evn.target
img.src = errorImg
}
//退
const tkddModal = <div className="ltc-box">
<div className="ltc-box-title"><div className="text">退款订单:{ycddData?.refund_id}</div><div className="line"></div></div>
@ -1256,7 +1265,7 @@ function CarInfo() {
>
<div>
<div className="eae-modal-item">
<img src={bigPic} width={1550} />
<img src={bigPic} width={1550} onError={handleImgError}/>
</div>
</div>
</Modal>
@ -1292,11 +1301,11 @@ function CarInfo() {
<div className="eae-modal-title"><div className="ltc-icon"></div>入场图片</div>
<div className="eae-modal-item">
<div>车辆照片</div>
<img src={ycddData.in_veh_pic} width={750} />
<img src={ycddData.in_veh_pic} width={750} onError={handleImgError}/>
</div>
<div className="eae-modal-item">
<div>车牌照片</div>
<img src={ycddData.in_plate_pic} width={750} />
<img src={ycddData.in_plate_pic} width={750} onError={handleImgError}/>
</div>
</div>
</Modal>

4
src/pages/OperationCenter/CustomerServieMgm/ComplaintMgm/loadable.jsx

@ -246,7 +246,9 @@ function ComplaintMgm(props) {
}
//
const getSearchData = (data = formData) => {
getData(data)
setFormData({...formData, pn: 1})
setLastFormData({...formData, pn: 1})
getData({...data, pn: 1})
}
//
const getResetData = () => {

1
src/pages/OperationCenter/CustomerServieMgm/ErrorCorrection/loadable.jsx

@ -164,6 +164,7 @@ function ErrorCorrection(props) {
const getSearchData = (data = formData) => {
// getData(data)
setFormData({ ...formData, pn: 1 })
setLastFormData({...formData, pn: 1})
getData(Object.assign({}, formData, { pn: 1 }))
}
//

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

@ -6,6 +6,7 @@ import {
} from '@/config/character.config.js'
import "./index.scss";
import { SearchOutlined, DeleteOutlined } from '@ant-design/icons';
import errorImg from '@/assets/images/error-img-new.png'
import ajax from '@/services'
const { TextArea } = Input;
function GeoSignalIgnoreAudit(props) {
@ -217,6 +218,13 @@ function GeoSignalIgnoreAudit(props) {
setRejectVisible(false)
}
}
const handleImgError = (e) => {
let evn = e || event
let img = evn.srcElement ? evn.srcElement : evn.target
img.src = errorImg
}
const reBtn = () => {
let data = {
id: getRejectId,
@ -449,7 +457,7 @@ function GeoSignalIgnoreAudit(props) {
title='查看图片'
>
<div>
<Image src={getImg} />
<Image src={getImg} onError={handleImgError}/>
</div>
<div className="btn"><button className="passBtn" onClick={cancelImg}>取消</button></div>
</Modal>

10
src/pages/OperationCenter/GeoSignalIgnore/GeoSignalIgnoreInquiry/loadable.jsx

@ -6,6 +6,7 @@ import {
} from '@/config/character.config.js'
import "./index.scss";
import { SearchOutlined, DeleteOutlined } from '@ant-design/icons';
import errorImg from '@/assets/images/error-img-new.png'
import ajax from '@/services'
const { TextArea } = Input;
function GeoSignalIgnoreInquiry(props) {
@ -79,6 +80,13 @@ function GeoSignalIgnoreInquiry(props) {
}
return result;
}
const handleImgError = (e) => {
let evn = e || event
let img = evn.srcElement ? evn.srcElement : evn.target
img.src = errorImg
}
//
const deployListColumns = [
{
@ -371,7 +379,7 @@ function GeoSignalIgnoreInquiry(props) {
title='查看图片'
>
<div>
<img src={getImg} />
<img src={getImg} onError={handleImgError}/>
</div>
<div className="btn"><button className="passBtn" onClick={cancelImg}>取消</button></div>
</Modal>

4
src/pages/OperationCenter/OperationSales/CouponMgm/CouponDistribute/loadable.jsx

@ -144,7 +144,9 @@ function CouponDistribute(props) {
}
//
const getSearchData = (data = formData) => {
getData(data)
setFormData(Object.assign({}, formData, { pn: 1}))
setLastFormData(Object.assign({}, lastFormData, { pn: 1 }))
getData({...formData, pn: 1})
}
//
const getResetData = () => {

4
src/pages/OperationCenter/OperationSales/CouponMgm/WriteOffStat/loadable.jsx

@ -128,7 +128,9 @@ function WriteOffStat(props) {
}
//
const getSearchData = (data = formData) => {
getData(data)
setFormData({...formData, pn: 1})
setLastFormData({...formData, pn: 1})
getData({...formData, pn: 1})
}
//
const getResetData = () => {

4
src/pages/OperationCenter/OtherBusiness/ParkingCard/ParkingCardMgm/loadable.jsx

@ -376,7 +376,9 @@ function ParkingCardMgm(props) {
message.error("输入不能包含特殊字符,请重新输入")
return
}
getData({...data,pn:1,page_size:15})
setFormData({...formData, pn: 1})
setLastFormData({...formData, pn: 1})
getData({...data,pn:1})
}
const [getOperationName, setGetOperationName] = useState([])
const operatorid = () => {

4
src/pages/OperationCenter/OtherBusiness/ParkingCard/ParkingCardOrder/loadable.jsx

@ -218,7 +218,9 @@ function ParkingCardOrder() {
message.error("输入不能包含特殊字符,请重新输入")
return
}
getData({...data,pn:1,page_size:15})
setFormData({...formData, pn: 1})
setLastFormData({...formData, pn: 1})
getData({...data,pn:1})
}
//

34
src/pages/OperationCenter/OtherBusiness/Staggered/StaggeredMgm/loadable.jsx

@ -358,9 +358,18 @@ function StaggeredMgm(props) {
}
//
const handleChangeTime = (time, timeString, index) => {
let times = getSaleMsg[index]
times.start_time = timeString[0]
times.end_time = timeString[1]
let arr = [...getSaleMsg]
arr.forEach((value, key) => {
if (key == index) {
value.start_time = timeString[0]
value.end_time = timeString[1]
}
})
console.log(arr);
setGetSaleMsg([...arr])
// let times = getSaleMsg[index]
// times.start_time = timeString[0]
// times.end_time = timeString[1]
}
useEffect(() => {
@ -431,7 +440,7 @@ function StaggeredMgm(props) {
message.error('请选择星期配置')
return
}
infoArr[result].week = infoArr[result].week.join(',')
infoArr[result].week = infoArr[result]?.week?.join(',')
}
let data = {
...getCarMsg,
@ -490,12 +499,17 @@ function StaggeredMgm(props) {
message.error('请选择星期配置')
return
}
infoArr[result].week = infoArr[result].week.join(',')
console.log(infoArr[result].week);
let str = Array.isArray(infoArr[result].week) ? infoArr[result]?.week?.join(',') : infoArr[result]?.week
infoArr[result].week = str
console.log(infoArr[result]);
}
ajax.getEditStaggered(data).then(res => {
if (res.status === 20000) {
message.success(res.message)
setEditVisible(false)
getData(formData)
} else {
message.error(res.message)
}
@ -718,7 +732,7 @@ function StaggeredMgm(props) {
<label>错峰日期</label>
<RangePicker
disabled={true}
defaultValue={[moment(item.start_date), moment(item.end_date)]}
value={[moment(item.start_date), moment(item.end_date)]}
style={{ width: 250, marginLeft: 20 }}
onChange={(date, dateString) => handleChangeDate(index, date, dateString,)}
/>
@ -728,7 +742,7 @@ function StaggeredMgm(props) {
<label>错峰时间</label>
<TimePicker.RangePicker
disabled={true}
defaultValue={[moment(item.start_time, 'HH:mm:ss'), moment(item.end_time, 'HH:mm:ss')]}
value={[moment(item.start_time, 'HH:mm:ss'), moment(item.end_time, 'HH:mm:ss')]}
style={{ width: 250, marginLeft: 20 }}
format="HH:mm:ss"
onChange={(time, timeString) => handleChangeTime(time, timeString, index)}
@ -902,8 +916,10 @@ function StaggeredMgm(props) {
<div className="yisa-search">
<div className="redLogo">*</div>
<label>错峰时间</label>
{console.log("渲染")}
{console.log(getSaleMsg)}
<TimePicker.RangePicker
defaultValue={[moment(item.start_time, 'HH:mm:ss'), moment(item.end_time, 'HH:mm:ss')]}
value={[moment(item.start_time, 'HH:mm:ss'), moment(item.end_time, 'HH:mm:ss')]}
style={{ width: 250, marginLeft: 20 }}
format="HH:mm:ss"
allowClear={false}
@ -1092,7 +1108,7 @@ function StaggeredMgm(props) {
<TimePicker.RangePicker
disabled={item.disabled}
allowClear={false}
defaultValue={[moment(item.start_time, 'HH:mm:ss'), moment(item.end_time, 'HH:mm:ss')]}
value={[moment(item.start_time, 'HH:mm:ss'), moment(item.end_time, 'HH:mm:ss')]}
style={{ width: 250, marginLeft: 20 }}
format="HH:mm:ss"
onChange={(time, timeString) => handleChangeTime(

1
src/pages/OperationCenter/OtherBusiness/Staggered/StaggeredStat/loadable.jsx

@ -146,6 +146,7 @@ function StaggeredStat(props) {
//
const getSearchData = (data = formData) => {
setFormData({ ...formData, pn: 1 })
setLastFormData({...formData, pn: 1})
getData(Object.assign({}, formData, { pn: 1 }))
}
const [sessionTabList, setSessionTabList] = useSessionStorageState('StaggeredStat', {

14
src/pages/OperationCenter/UserMgm/UserAuth/loadable.jsx

@ -15,6 +15,7 @@ const { TextArea } = Input;
import ajax from '@/config/ajax.js'
import { TableModule, ResultFlow, QuickMenu } from "@/components";
import { dictionary, utils } from "@/config/common";
import errorImg from '@/assets/images/error-img-new.png'
import "./index.scss";
function UserAuth() {
const columns = [
@ -157,6 +158,13 @@ function UserAuth() {
}
})
}
const handleImgError = (e) => {
let evn = e || event
let img = evn.srcElement ? evn.srcElement : evn.target
img.src = errorImg
}
useEffect(() => {
search()
}, [formData, pageData]);
@ -208,10 +216,10 @@ function UserAuth() {
</div>
<div className="ltc-content">
<div className="ltc-item ltc-item-img">
<img src={resultData[indexby].authImg1 || require("../../../../../src/assets/images/error-img.png")} onClick={() => { resultData[indexby]?.authImg1 ? setBigPic(resultData[indexby].authImg1) : null; setBigpicVisible(true) }} />
<img src={resultData[indexby].authImg1} onError={handleImgError} onClick={() => { resultData[indexby]?.authImg1 ? setBigPic(resultData[indexby].authImg1) : null; setBigpicVisible(true) }} />
</div>
<div className="ltc-item ltc-item-img">
<img src={resultData[indexby].authImg2 || require("../../../../../src/assets/images/error-img.png")} onClick={() => { resultData[indexby]?.authImg2 ? setBigPic(resultData[indexby].authImg2) : null; setBigpicVisible(true) }} />
<img src={resultData[indexby].authImg2} onError={handleImgError} onClick={() => { resultData[indexby]?.authImg2 ? setBigPic(resultData[indexby].authImg2) : null; setBigpicVisible(true) }} />
</div>
</div>
</div>
@ -294,7 +302,7 @@ function UserAuth() {
>
<div>
<div className="eae-modal-item">
<img src={bigPic} width={1420} />
<img src={bigPic} width={1420} onError={handleImgError}/>
</div>
</div>
</Modal>

26
src/pages/OperationCenter/UserMgm/UserInfo/loadable.jsx

@ -18,6 +18,7 @@ import moment from "moment";
import ajax from '@/config/ajax.js'
import { TableModule } from "@/components";
import { dictionary } from "@/config/common.js";
import errorImg from '@/assets/images/error-img-new.png'
import "./index.scss";
function UserInfo() {
const [carId, setCarId] = useState()
@ -941,6 +942,13 @@ function UserInfo() {
}
})
}
const handleImgError = (e) => {
let evn = e || event
let img = evn.srcElement ? evn.srcElement : evn.target
img.src = errorImg
}
//
function renderParkRecord(params) {
return (
@ -1024,10 +1032,10 @@ function UserInfo() {
</Descriptions> */}
<div className="ltc-content">
<div className="ltc-item ltc-item-img ">
<img src={params.in_veh_pic || require("../../../../../src/assets/images/error-img.png")} onClick={() => { setBigPic(params.in_veh_pic); setBigpicVisible(true) }} />
<img src={params.in_veh_pic} onError={handleImgError} onClick={() => { setBigPic(params.in_veh_pic); setBigpicVisible(true) }} />
</div>
<div className="ltc-item ltc-item-img ">
<img src={params.in_plate_pic || require("../../../../../src/assets/images/error-img.png")} onClick={() => { setBigPic(params.in_plate_pic); setBigpicVisible(true) }} />
<img src={params.in_plate_pic} onError={handleImgError} onClick={() => { setBigPic(params.in_plate_pic); setBigpicVisible(true) }} />
</div>
</div>
</div>
@ -1135,10 +1143,10 @@ function UserInfo() {
</div>
<div className="ltc-content">
<div className="ltc-item ltc-item-img ">
<img src={baseData.authImg1 || require("../../../../../src/assets/images/error-img.png")} onClick={() => { setBigPic(baseData.authImg1); setBigpicVisible(true) }} />
<img src={baseData.authImg1 || require("../../../../../src/assets/images/error-img-new.png")} onClick={() => { setBigPic(baseData.authImg1); setBigpicVisible(true) }} />
</div>
<div className="ltc-item ltc-item-img ">
<img src={baseData.authImg2 || require("../../../../../src/assets/images/error-img.png")} onClick={() => { setBigPic(baseData.authImg2); setBigpicVisible(true) }} />
<img src={baseData.authImg2 || require("../../../../../src/assets/images/error-img-new.png")} onClick={() => { setBigPic(baseData.authImg2); setBigpicVisible(true) }} />
</div>
</div>
</div>
@ -1473,7 +1481,7 @@ function UserInfo() {
>
<div>
<div className="eae-modal-item">
<img src={bigPic || require("../../../../../src/assets/images/error-img.png")} width={1500} />
<img src={bigPic} onError={handleImgError} width={1500} />
</div>
</div>
</Modal>
@ -1509,11 +1517,11 @@ function UserInfo() {
<div className="eae-modal-title"><div className="ltc-icon"></div>入场图片</div>
<div className="eae-modal-item">
<div>车辆照片</div>
<img src={ycddData.in_veh_pic || require("../../../../../src/assets/images/error-img.png")} width={750} />
<img src={ycddData.in_veh_pic} onError={handleImgError} width={750} />
</div>
<div className="eae-modal-item">
<div>车牌照片</div>
<img src={ycddData.in_plate_pic || require("../../../../../src/assets/images/error-img.png")} width={750} />
<img src={ycddData.in_plate_pic} onError={handleImgError} width={750} />
</div>
</div>
</Modal>
@ -1838,11 +1846,11 @@ function UserInfo() {
</div>
<div className="eae-modal-item">
<div>车辆照片</div>
<img src={historyDataDetail.in_veh_pic} width={750} />
<img src={historyDataDetail.in_veh_pic} width={750} onError={handleImgError} />
</div>
<div className="eae-modal-item">
<div>车牌照片</div>
<img src={historyDataDetail.in_plate_pic} width={750} />
<img src={historyDataDetail.in_plate_pic} width={750} onError={handleImgError} />
</div>
</div>
</Modal>

12
src/pages/OperationCenter/UserMgm/UserTag/loadable.jsx

@ -13,6 +13,7 @@ import {
Popover
} from "antd";
import moment from "moment";
import errorImg from '@/assets/images/error-img-new.png'
import ajax from '@/services'
import { TableModule, ResultFlow } from "@/components";
import { dictionary } from "@/config/common.js";
@ -263,6 +264,13 @@ function UserTag() {
}
})
}
const handleImgError = (e) => {
let evn = e || event
let img = evn.srcElement ? evn.srcElement : evn.target
img.src = errorImg
}
//
const tkddModal = <div className="ltc-box">
<div className="ltc-content">
@ -293,10 +301,10 @@ function UserTag() {
</div>
<div className="ltc-content">
<div className="ltc-item ltc-item-img">
<img src={detailData[indexTo]?.authImg1 || require("../../../../../src/assets/images/error-img.png")} onClick={() => { setBigPic(resultData[indexby].vehicle_travel_license_img1); setBigpicVisible(true) }} />
<img src={detailData[indexTo]?.authImg1} onError={handleImgError} onClick={() => { setBigPic(resultData[indexby].vehicle_travel_license_img1); setBigpicVisible(true) }} />
</div>
<div className="ltc-item ltc-item-img">
<img src={detailData[indexTo]?.authImg2 || require("../../../../../src/assets/images/error-img.png")} onClick={() => { setBigPic(resultData[indexby].vehicle_travel_license_img2); setBigpicVisible(true) }} />
<img src={detailData[indexTo]?.authImg2} onError={handleImgError} onClick={() => { setBigPic(resultData[indexby].vehicle_travel_license_img2); setBigpicVisible(true) }} />
</div>
</div>
</div>

16
src/pages/OutRoadMgm/OutBusinessRecord/OutParkingRecordInquiry/Detail/StopList.jsx

@ -1,10 +1,16 @@
import React, { useState, useEffect } from "react";
import ajax from "@/services";
import { message, Descriptions, Image } from "antd";
import errorImg from '@/assets/images/error-img-new.png'
function StopList({ id, record }) {
//
const [recordData, setRecordData] = useState(record);
const handleImgError = (e) => {
let evn = e || event
let img = evn.srcElement ? evn.srcElement : evn.target
img.src = errorImg
}
return (
<div className="stop-message">
<Descriptions title="停车场信息">
@ -45,18 +51,18 @@ function StopList({ id, record }) {
</Descriptions>
<Descriptions title="入场照片">
<Descriptions.Item label="入场车辆照片">
<Image src={recordData.in_veh_pic} />
<Image src={recordData.in_veh_pic} onError={handleImgError}/>
</Descriptions.Item>
<Descriptions.Item label="入场车牌照片">
<Image src={recordData.in_plate_pic} />
<Image src={recordData.in_plate_pic} onError={handleImgError}/>
</Descriptions.Item>
</Descriptions>
<Descriptions title="出场照片">
<Descriptions.Item label="出场车辆照片">
<Image src={recordData.out_veh_pic} />
<Image src={recordData.out_veh_pic} onError={handleImgError}/>
</Descriptions.Item>
<Descriptions.Item label="出场车牌照片">
<Image src={recordData.out_plate_pic} />
<Image src={recordData.out_plate_pic} onError={handleImgError}/>
</Descriptions.Item>
</Descriptions>
</div>

20
src/pages/OutRoadMgm/OutExceptionMgm/LiftUpPoleRecord/loadable.jsx

@ -6,6 +6,7 @@ import {
} from '@/config/character.config.js'
import "./index.scss";
import { SearchOutlined, DeleteOutlined } from '@ant-design/icons';
import errorImg from '@/assets/images/error-img-new.png'
import ajax from '@/services'
import moment from 'moment'
import { useSessionStorageState } from "ahooks";
@ -76,6 +77,13 @@ function LiftUpPoleRecord(props) {
res.push(child.id);
}
};
const handleImgError = (e) => {
let evn = e || event
let img = evn.srcElement ? evn.srcElement : evn.target
img.src = errorImg
}
//
const handleColumns = (tab) => {
let result = [...deployListColumns];
@ -185,7 +193,9 @@ function LiftUpPoleRecord(props) {
}
//
const getSearchData = (data = formData) => {
getData(data)
setFormData({...formData, pn: 1})
setLastFormData({...formData, pn: 1})
getData({...data, pn: 1})
}
//
const salesData = () => {
@ -341,18 +351,18 @@ function LiftUpPoleRecord(props) {
<div className="id-msg">
<div className="car-msg">
<div className="plate">
身份证正面<Image src={getImg.iDCardImgFront} />
身份证正面<Image src={getImg.iDCardImgFront} onError={handleImgError}/>
</div>
<div className="plate">
身份证反面<Image src={getImg.iDCardImgOpposite} />
身份证反面<Image src={getImg.iDCardImgOpposite} onError={handleImgError}/>
</div>
</div>
<div className="car-msg">
<div className="plate">
行驶证正面<Image src={getImg.carCardImgFront} />
行驶证正面<Image src={getImg.carCardImgFront} onError={handleImgError}/>
</div>
<div className="plate">
行驶证反面<Image src={getImg.carCardImgOpposite} />
行驶证反面<Image src={getImg.carCardImgOpposite} onError={handleImgError}/>
</div>
</div>
</div>

17
src/pages/OutRoadMgm/OutExceptionMgm/ZombieCarCleanRecord/loadable.jsx

@ -6,6 +6,7 @@ import {
} from '@/config/character.config.js'
import "./index.scss";
import { SearchOutlined, DeleteOutlined } from '@ant-design/icons';
import errorImg from '@/assets/images/error-img-new.png'
import ajax from '@/services'
import moment from 'moment'
import { useSessionStorageState } from "ahooks";
@ -362,7 +363,9 @@ function ZombieCarCleanRecord(props) {
}
//
const getSearchData = (data = formData) => {
getData(data)
setFormData({...formData, pn: 1})
setLastFormData({...formData, pn: 1})
getData({...data, pn: 1})
}
//
const getResetData = () => {
@ -435,6 +438,14 @@ function ZombieCarCleanRecord(props) {
})
}
}
const handleImgError = (e) => {
let evn = e || event
let img = evn.srcElement ? evn.srcElement : evn.target
img.src = errorImg
}
// useEffect(() => {
// getData()
// }, [])
@ -645,11 +656,11 @@ function ZombieCarCleanRecord(props) {
</div>
<div className="parkMessage">
<div className="plate">
车辆照片<Image src={getImg.carImg} />
车辆照片<Image src={getImg.carImg} onError={handleImgError}/>
</div>
<div className="car-msg">
<div className="plate">
车牌照片<Image src={getImg.plateImg} />
车牌照片<Image src={getImg.plateImg} onError={handleImgError}/>
</div>
</div>
</div>

8
src/pages/OutRoadMgm/OutSegmentMgm/ChargeRulesMgm/EffectiveDate.jsx

@ -76,6 +76,7 @@ function EffectiveDate(props) {
"minutes"
)
);
total += 1;
} else {
total += Math.abs(
moment(timePartList[i].end, "HH:mm:ss").diff(
@ -83,11 +84,16 @@ function EffectiveDate(props) {
"minutes"
)
);
console.log(Math.abs(
moment(timePartList[i].end, "HH:mm:ss").diff(
moment(timePartList[i].start, "HH:mm:ss"),
"minutes"
)
))
}
arr.push(timePartList[i].end)
arr.push(timePartList[i].start)
}
total += 1;
if (total === 1440) {
if ([...new Set(arr)].length != timePartList.length) {
message.error('时段范围不能重叠!')

2
src/pages/OutRoadMgm/OutSegmentMgm/ChargeRulesMgm/TimePart.jsx

@ -192,7 +192,7 @@ function TimePart(props) {
<Form.Item label={`时段${index}`} name="time_part" rules={[{ required: true, message: '请选择时间段!' }]}>
<TimePicker.RangePicker style={{ width: "50%" }} order={false} secondStep={60} />
</Form.Item>
<div style={{marginBottom:'10px',color:'#858585'}}>*时段结束时间00:00:00相当于23:59:59</div>
<div style={{ marginBottom: '10px', color: '#858585' }}>*时段结束时间设置00:00:00相当于23:59:59</div>
</Col>
<Col span={8}>
{index === 1 ? null : (

17
src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/AddParking.jsx

@ -273,7 +273,20 @@ function AddParking(props) {
})
.catch((err) => console.error(err));
}
const valueChange = (value, all) => {
if (value.road_type) {
form.setFieldsValue({
pid: '',
area_id: '',
operator_id: '',
address: '',
is_business: '',
cooperate_type: '',
access_type:'',
})
setLngLat([])
}
};
useEffect(() => {
getAreaList();
operationName();
@ -295,6 +308,7 @@ function AddParking(props) {
form={form}
labelCol={{ span: 8 }}
colon={false}
onValuesChange={valueChange}
initialValues={
status === "edit"
? {
@ -348,7 +362,6 @@ function AddParking(props) {
>
{({ getFieldValue }) => {
const type = getFieldValue("road_type");
console.log(type);
if (type !== 0 && type !== 1) {
return (
<Col span="4_8" style={{ width: "33%" }}>

20
src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/ConfigParking/BillingRules.jsx

@ -72,7 +72,7 @@ function BillingRules(props) {
<div>
<a
onClick={() => {
setModalData({ ...modalData, visible: true });
setModalData({ ...modalData, visible: true, stutus: 'edit' });
console.log(record.group_ids);
editform.setFieldsValue({
rule_id: record.rule_id,
@ -125,7 +125,7 @@ function BillingRules(props) {
id: "",
});
const addRule = () => {
setModalData({ ...modalData, visible: true });
setModalData({ ...modalData, visible: true, status: 'add' });
};
//
@ -150,8 +150,8 @@ function BillingRules(props) {
});
};
//
const getTempGroup = () => {
ajax.getRoadTemporaryGroup({ road_id: id }).then((res) => {
const getTempGroup = (type) => {
ajax.getRoadTemporaryGroup({ road_id: id, vehicle_type: type }).then((res) => {
if (res.status === 20000) {
setTempGroup(res.data);
}
@ -216,8 +216,14 @@ function BillingRules(props) {
useEffect(() => {
getChargeRuleList();
getTempGroup();
}, []);
const valueChange = (value, all) => {
console.log(value, all)
if (value.vehicle_type) {
getTempGroup(value.vehicle_type);
editform.setFieldsValue({ group_ids: '' })
}
};
useEffect(() => {
search();
}, [pageData]);
@ -266,7 +272,7 @@ function BillingRules(props) {
></Table>
</main>
<Modal
title="添加计费规则"
title={modalData.status === "edit" ? "编辑计费规则" : "添加计费规则"}
open={modalData.visible}
onCancel={() => {
setModalData({ ...modalData, visible: false });
@ -274,7 +280,7 @@ function BillingRules(props) {
}}
onOk={submit}
>
<Form labelCol={{ span: 6 }} form={editform}>
<Form labelCol={{ span: 6 }} form={editform} onValuesChange={valueChange}>
<Form.Item
label="车辆类型"
name="vehicle_type"

8
src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/ConfigParking/CarMgm/BlacklistManagement.jsx

@ -73,8 +73,8 @@ function BlacklistManagement({ id }) {
},
{
title: "状态",
dataIndex: "status",
key: "status",
dataIndex: "status_name",
key: "status_name",
align: "center",
},
{
@ -387,7 +387,7 @@ function BlacklistManagement({ id }) {
rules={[{ required: true }]}
name="plate_color"
>
<Select disabled={editModal.status === "edit"} options={sysConfig.plateColor} />
<Select disabled={editModal.status === "edit"} options={sysConfig.plateColor.slice(1)} />
</Form.Item>
</Col>
<Col span={12}>
@ -398,7 +398,7 @@ function BlacklistManagement({ id }) {
>
<Select
options={[
{ label: "全部", value: '0' },
// { label: "", value: '0' },
{ label: "启用", value: '1' },
{ label: "禁用", value: '2' },
]}

17
src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/ConfigParking/CarMgm/WhitelistManagement.jsx

@ -72,8 +72,8 @@ function WhitelistManagement({ id }) {
},
{
title: "状态",
dataIndex: "status",
key: "status",
dataIndex: "status_name",
key: "status_name",
align: "center",
},
{
@ -206,9 +206,14 @@ function WhitelistManagement({ id }) {
editForm
.validateFields()
.then((res) => {
if(new Date(res.effective_date[0]).getTime() < new Date().getTime()){
message.error('生效日期必须为当前时间以后的时间')
return
}
if (editModal.status === "add") {
ajax.addWhiteList({
...res,
road_id: id,
effective_begin_date: moment(res.effective_date[0]).format("YY-MM-DD HH:mm:ss"),
effective_end_date: moment(res.effective_date[1]).format("YY-MM-DD HH:mm:ss")
}).then((res) => {
@ -225,7 +230,7 @@ function WhitelistManagement({ id }) {
res.id = currentId;
ajax.editWhiteVehicle({
...res,
road_id: id,
id: id,
effective_begin_date: moment(res.effective_date[0]).format("YY-MM-DD HH:mm:ss"),
effective_end_date: moment(res.effective_date[1]).format("YY-MM-DD HH:mm:ss")
}).then((res) => {
@ -326,7 +331,7 @@ function WhitelistManagement({ id }) {
/>
</main>
<Modal
title="添加白名单"
title={editModal.status == "add" ? "添加白名单" : "编辑白名单"}
open={editModal.visible}
onCancel={() => {
setEditModal({ visible: false });
@ -352,7 +357,7 @@ function WhitelistManagement({ id }) {
rules={[{ required: true }]}
name="plate_color"
>
<Select disabled={editModal.status === "edit"} options={sysConfig.plateColor} />
<Select disabled={editModal.status === "edit"} options={sysConfig.plateColor.slice(1)} />
</Form.Item>
</Col>
<Col span={12}>
@ -363,7 +368,7 @@ function WhitelistManagement({ id }) {
>
<Select
options={[
{ label: "全部", value: '0' },
// { label: "", value: '0' },
{ label: "启用", value: '1' },
{ label: "禁用", value: '2' },
]}

2
src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/ConfigParking/LEDConfiguration.jsx

@ -242,7 +242,7 @@ function LEDConfiguration({ id }) {
rules={[{ required: true }]}
name="business_type"
>
<Select options={(modalData.status === "add"?modalBusinessList:businessList)|| []} disabled={modalData.status === "edit"} />
<Select getPopupContainer={(e) => e.parentNode} options={(modalData.status === "add"?modalBusinessList:businessList)|| []} disabled={modalData.status === "edit"} />
</Form.Item>
<Form.Item
label="LED显示文案"

11
src/pages/OutRoadMgm/OutSegmentMgm/ZombieCarMgm/Detail/StopList.jsx

@ -1,6 +1,7 @@
import React, { useState, useEffect } from "react";
import ajax from "@/services";
import { message, Descriptions, Image } from "antd";
import errorImg from '@/assets/images/error-img-new.png'
function StopList({ id }) {
//
const [recordData, setRecordData] = useState({});
@ -15,6 +16,12 @@ function StopList({ id }) {
});
}
const handleImgError = (e) => {
let evn = e || event
let img = evn.srcElement ? evn.srcElement : evn.target
img.src = errorImg
}
useEffect(() => {
getRecord();
}, []);
@ -62,10 +69,10 @@ function StopList({ id }) {
</Descriptions>
<Descriptions title="入场照片">
<Descriptions.Item label="入场车辆照片">
<Image src={recordData.in_veh_pic} />
<Image src={recordData.in_veh_pic} onError={handleImgError}/>
</Descriptions.Item>
<Descriptions.Item label="入场车牌照片">
<Image src={recordData.in_plate_pic} />
<Image src={recordData.in_plate_pic} onError={handleImgError}/>
</Descriptions.Item>
</Descriptions>
</div>

37
src/pages/SystemMgm/RoleMgm/loadable.jsx

@ -135,7 +135,7 @@ function RoleMgm(props) {
console.log(arr);
setGetCheckVlue(true)
// getCheckValue
setGetImg({ ...getImg, auth: string })
setGetAdminId({ ...getAdminId, auth: string })
} else {
setCheckedKeys([])
}
@ -277,13 +277,13 @@ function RoleMgm(props) {
}
}]
//
const [getImg, setGetImg] = useState({
const [getAdminId, setGetAdminId] = useState({
remark: '',
name: '',
depart_id: '',
auth: ''
})
const [getAdminId, setGetAdminId] = useState({})
const [getAuthId, setGetAuthId] = useState({})
const [getDepart, setGetDepart] = useState([])
//
@ -309,7 +309,7 @@ function RoleMgm(props) {
let num = strArr.map(Number)
setCheckedKeys(num)
let newArr = record.depart_arr.split(',')
// setGetImg(Object.assign({}, getImg, {
// setGetAdminId(Object.assign({}, getAdminId, {
// name: record.name,
// remark: record.remark,
// depart_id: newArr
@ -319,7 +319,7 @@ function RoleMgm(props) {
}
}
console.log(getImg);
console.log(getAdminId);
//
const [getPlateColor, setGetPlateColor] = useState([])
const plateColor = () => {
@ -455,20 +455,20 @@ function RoleMgm(props) {
const placeEditBtn = () => {
let arr = checkedKeys
let str = arr.toString()
let arrStr = getImg.depart_id
let arrStr = getAdminId.depart_id
let lastElement = arrStr[arrStr.length - 1];
let data = {
...getImg,
...getAdminId,
auth: str,
id: getAdminId.id,
depart_id: lastElement,
depart_arr: arrStr.toString()
}
if (getImg.name == "") {
if (getAdminId.name == "") {
message.error('角色名称不能为空')
return
} else if (getImg.depart_id == "") {
} else if (getAdminId.depart_id == "") {
message.error('请选择所属部门')
return
}
@ -479,7 +479,7 @@ function RoleMgm(props) {
getData(formData)
setGetGovernment(0)
setGetAuthId({})
setGetImg({
setGetAdminId({
remark: '',
name: '',
depart_id: '',
@ -727,8 +727,8 @@ function RoleMgm(props) {
value={getAdminId.name}
style={{ width: 260, marginLeft: 50 }}
onChange={(v) => {
setGetImg(
Object.assign({}, getImg, { name: v.target.value })
setGetAdminId(
Object.assign({}, getAdminId, { name: v.target.value })
);
}}
/>
@ -740,8 +740,8 @@ function RoleMgm(props) {
value={getAdminId.remark}
style={{ width: 260, marginLeft: 78 }}
onChange={(v) => {
setGetImg(
Object.assign({}, getImg, { remark: v.target.value })
setGetAdminId(
Object.assign({}, getAdminId, { remark: v.target.value })
);
}}
/>
@ -756,13 +756,14 @@ function RoleMgm(props) {
options={getPlateColor}
changeOnSelect
onChange={(v) => {
setGetImg(
Object.assign({}, getImg, { depart_id: v })
setGetAdminId(
Object.assign({}, getAdminId, { depart_id: v })
);
setGetAuthId({})
let arrStr = v
let lastElement = arrStr[arrStr.length - 1];
setGetGovernment(lastElement)
setGetDepart(v)
}}
fieldNames={{
label: 'name',
@ -779,8 +780,8 @@ function RoleMgm(props) {
style={{ width: 260, marginLeft: 14 }}
defaultSelectedKeys={checkedKeys}
onCheck={(checkedKeysValue, info) => {
setGetImg(
Object.assign({}, getImg, { auth: checkedKeysValue })
setGetAdminId(
Object.assign({}, getAdminId, { auth: checkedKeysValue })
);
setCheckedKeys(checkedKeysValue)
}}

Loading…
Cancel
Save