From 39b5a50e036dfa526d7566642b928d7b2073b2aa Mon Sep 17 00:00:00 2001 From: xingjx Date: Sun, 17 Dec 2023 20:51:06 +0800 Subject: [PATCH] =?UTF-8?q?fix():bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ParkingBusinessAly/NightParkStat/loadable.jsx | 10 +- .../ParkingAlyPeriod/loadable.jsx | 158 ++++++++++++++++++++- .../TemporaryParkStat/loadable.jsx | 4 +- .../ParkingBusinessAly/echarts.config.js | 2 +- .../OperationCenter/CarMgm/CarInfo/loadable.jsx | 1 + .../OutSegmentMgm/OutSegment/AddParking.jsx | 2 +- .../ConfigParking/BusinessParameterConfig.jsx | 2 +- .../OutSegment/ConfigParking/MSPages.jsx | 2 +- .../OutSegmentMgm/OutSegment/loadable.jsx | 39 ++++- src/services/OutRoadMgm/OutSegment.js | 19 ++- 10 files changed, 223 insertions(+), 16 deletions(-) diff --git a/src/pages/DataAnalysisPrediction/ParkingBusinessAly/NightParkStat/loadable.jsx b/src/pages/DataAnalysisPrediction/ParkingBusinessAly/NightParkStat/loadable.jsx index 08a66a2..5d9d042 100644 --- a/src/pages/DataAnalysisPrediction/ParkingBusinessAly/NightParkStat/loadable.jsx +++ b/src/pages/DataAnalysisPrediction/ParkingBusinessAly/NightParkStat/loadable.jsx @@ -27,7 +27,7 @@ function NightParkStat() { end_time: moment().endOf("day").format("YYYY-MM-DD"), car_parking_type: '3', operator_id: '0', - area_id:'0', + area_id: '0', date_type: '1', }; // 分页数据 @@ -170,6 +170,12 @@ function NightParkStat() { color: 'white',//字体颜色 fontSize: 10//字体大小 }, + normal: { + color: areaName == "日间停车时长" ? "#3a9ae5" : areaName == "夜间停车时长" ? "#ed91d6" : '#d7dc1b', //改变折线点的颜色 + lineStyle: { + color: areaName == "日间停车时长" ? "#3a9ae5" : areaName == "夜间停车时长" ? "#ed91d6" : '#d7dc1b',//改变折线颜色 + } + } }, data: newsave }; @@ -196,7 +202,7 @@ function NightParkStat() { ` } } - setRevenueData({...lineChartOption(areaNames, xAxisData, "停车时长(小时)", seriesData),...tooltip}); + setRevenueData({ ...lineChartOption(areaNames, xAxisData, "停车时长(小时)", seriesData), ...tooltip }); }; //时间状态切换 const TimeChange = () => { diff --git a/src/pages/DataAnalysisPrediction/ParkingBusinessAly/ParkingAlyPeriod/loadable.jsx b/src/pages/DataAnalysisPrediction/ParkingBusinessAly/ParkingAlyPeriod/loadable.jsx index 467d365..8d598ab 100644 --- a/src/pages/DataAnalysisPrediction/ParkingBusinessAly/ParkingAlyPeriod/loadable.jsx +++ b/src/pages/DataAnalysisPrediction/ParkingBusinessAly/ParkingAlyPeriod/loadable.jsx @@ -22,7 +22,7 @@ function ParkingAlyPeriod() { start_time: moment().subtract('days').startOf('day').format("YYYY-MM-DD"), end_time: moment().endOf("day").format("YYYY-MM-DD"), operator_id: '0', - area_id:'0', + area_id: '0', car_parking_type: '3', date_type: '1', paytype: '0' @@ -241,8 +241,152 @@ function ParkingAlyPeriod() { setParkData(lineChartOption(areaNames, xAxisData, "饱和度", seriesData, areaNames)); }; + const randerColor = () => { + let arr = []; + this.alarmTypeLine.forEach(item => { + random(arr) + }) + return arr; + } + + const random = (arr) => { + let color = 'rgb(' + [ + Math.round(Math.random() * 255), + Math.round(Math.random() * 255), + Math.round(Math.random() * 255) + ].join(',') + ')'; + if (!arr.some(i => i == color)) { + arr.push(color) + } else { + this.random(arr) + } + } + const color = ['#5470c6','#91cc75','#fac858','#ee6666','#73c0de','#fc8452','#3ba272','#9a60b4','#ee7ccc'] + console.log(Math.round(Math.random()*10)) //停车饱和趋势分析分析 折线图 hour 时间对比 const getParkOptionHour = (data) => { + data = [ + { + "date": "2023-11-20", + "hour": "00:00", + "occupancy_rate": "0.02%" + }, + { + "date": "2023-11-22", + "hour": "01:00", + "occupancy_rate": "0%" + }, + { + "date": "2023-11-22", + "hour": "02:00", + "occupancy_rate": "0%" + }, + { + "date": "2023-11-22", + "hour": "03:00", + "occupancy_rate": "0%" + }, + { + "date": "2023-11-22", + "hour": "04:00", + "occupancy_rate": "0%" + }, + { + "date": "2023-11-22", + "hour": "05:00", + "occupancy_rate": "0%" + }, + { + "date": "2023-11-22", + "hour": "06:00", + "occupancy_rate": "0%" + }, + { + "date": "2023-11-22", + "hour": "07:00", + "occupancy_rate": "0%" + }, + { + "date": "2023-11-29", + "hour": "08:00", + "occupancy_rate": "0.07%" + }, + { + "date": "2023-11-22", + "hour": "09:00", + "occupancy_rate": "0.26%" + }, + { + "date": "2023-11-24", + "hour": "10:00", + "occupancy_rate": "0.18%" + }, + { + "date": "2023-11-22", + "hour": "11:00", + "occupancy_rate": "0.11%" + }, + { + "date": "2023-11-23", + "hour": "12:00", + "occupancy_rate": "0.06%" + }, + { + "date": "2023-11-22", + "hour": "13:00", + "occupancy_rate": "0.08%" + }, + { + "date": "2023-11-21", + "hour": "14:00", + "occupancy_rate": "0.35%" + }, + { + "date": "2023-11-29", + "hour": "15:00", + "occupancy_rate": "0.26%" + }, + { + "date": "2023-11-20", + "hour": "16:00", + "occupancy_rate": "0.32%" + }, + { + "date": "2023-11-22", + "hour": "17:00", + "occupancy_rate": "0.22%" + }, + { + "date": "2023-11-22", + "hour": "18:00", + "occupancy_rate": "0.14%" + }, + { + "date": "2023-11-21", + "hour": "19:00", + "occupancy_rate": "0.01%" + }, + { + "date": "2023-11-22", + "hour": "20:00", + "occupancy_rate": "0%" + }, + { + "date": "2023-11-22", + "hour": "21:00", + "occupancy_rate": "0.05%" + }, + { + "date": "2023-11-21", + "hour": "22:00", + "occupancy_rate": "0.02%" + }, + { + "date": "2023-11-22", + "hour": "23:00", + "occupancy_rate": "0.01%" + } + ] console.log(data) if (!data || data.length <= 0) { setHourData({}) @@ -255,6 +399,7 @@ function ParkingAlyPeriod() { ); // 构建数据对象 let seriesData = areaNames.map((areaName, index) => { + let color2 = color[Math.round(Math.random()*10)] // 获取数据 let areaData = data[0].date ? data.filter((item) => item.date === areaName) : data // 构建数据对象 @@ -268,6 +413,13 @@ function ParkingAlyPeriod() { color: 'white',//字体颜色 fontSize: 10//字体大小 }, + normal: { + color: color2, //改变折线点的颜色 + lineStyle:{ + color:color2, + } + //改变折线颜色 + } }, data: dates.map((item) => { for (var { hour, occupancy_rate } of areaData) { @@ -670,7 +822,7 @@ function ParkingAlyPeriod() { :
暂无数据
) @@ -680,7 +832,7 @@ function ParkingAlyPeriod() { :
暂无数据
diff --git a/src/pages/DataAnalysisPrediction/ParkingBusinessAly/TemporaryParkStat/loadable.jsx b/src/pages/DataAnalysisPrediction/ParkingBusinessAly/TemporaryParkStat/loadable.jsx index 73a4ab8..655fc69 100644 --- a/src/pages/DataAnalysisPrediction/ParkingBusinessAly/TemporaryParkStat/loadable.jsx +++ b/src/pages/DataAnalysisPrediction/ParkingBusinessAly/TemporaryParkStat/loadable.jsx @@ -186,7 +186,7 @@ function TemporaryParkStat() { formatter: (params) => { return `
${params[0].axisValue}
- 总停车次数:${params[0].data.value + params[1].data.value}次
+ 总停车次数:${parseFloat(params[0].data.value) + parseFloat(params[1].data.value)}次
临时停车次数:${params[0].data.value}次,占比${params[0].data.num}
长时停车次数:${params[1].data.value}次,占比${params[0].data.num}
` @@ -555,7 +555,7 @@ function TemporaryParkStat() {
暂无数据
} -
总停车次数:{totalNum + '次' || '--'}
+
总停车次数:{totalNum ? totalNum + '次' : '--'}
临时停车趋势分析
diff --git a/src/pages/DataAnalysisPrediction/ParkingBusinessAly/echarts.config.js b/src/pages/DataAnalysisPrediction/ParkingBusinessAly/echarts.config.js index 97db570..d58fcc9 100644 --- a/src/pages/DataAnalysisPrediction/ParkingBusinessAly/echarts.config.js +++ b/src/pages/DataAnalysisPrediction/ParkingBusinessAly/echarts.config.js @@ -72,7 +72,7 @@ const lineChartOption = (areaNames, xAxisData, yAxisName, seriesData, reName, to color: ["#3AA9FF", "#F997DF"], series: seriesData, grid: { - x: 50, + x: 80, y: 55, x2: 70, y2: 20, diff --git a/src/pages/OperationCenter/CarMgm/CarInfo/loadable.jsx b/src/pages/OperationCenter/CarMgm/CarInfo/loadable.jsx index 162d203..cae7845 100644 --- a/src/pages/OperationCenter/CarMgm/CarInfo/loadable.jsx +++ b/src/pages/OperationCenter/CarMgm/CarInfo/loadable.jsx @@ -1116,6 +1116,7 @@ function CarInfo() { total={total} search={search} limitCon={limitCon} + exportUrl={'/api/ope/car/export'} // mandatory={'plate'} // mandatory_name={'车牌号'} isQuickMenu={[{ text: '昨日', value: 1 }, diff --git a/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/AddParking.jsx b/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/AddParking.jsx index 0eba531..a5222ae 100644 --- a/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/AddParking.jsx +++ b/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/AddParking.jsx @@ -204,7 +204,7 @@ function AddParking(props) { if (res.status === 20000) { message.success("添加成功"); close(); - location.reload(); + //location.reload(); } else { message.error(res.message); } diff --git a/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/ConfigParking/BusinessParameterConfig.jsx b/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/ConfigParking/BusinessParameterConfig.jsx index b5af692..c144350 100644 --- a/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/ConfigParking/BusinessParameterConfig.jsx +++ b/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/ConfigParking/BusinessParameterConfig.jsx @@ -13,7 +13,7 @@ function BusinessParameterConfig(props) { const params = form.getFieldsValue(); params.road_id = id; - ajax.getRoadServiceParameters(params).then((res) => { + ajax.getRoadServiceEdit(params).then((res) => { if (res.status === 20000) { message.success(res.message); diff --git a/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/ConfigParking/MSPages.jsx b/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/ConfigParking/MSPages.jsx index e500245..c87c5ab 100644 --- a/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/ConfigParking/MSPages.jsx +++ b/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/ConfigParking/MSPages.jsx @@ -64,7 +64,7 @@ function MSPages(props) { ajax .addRoadMs({ ...res, - road_id: props.id, + road_id: props.itemData.id, }) .then((res) => { if (res.status === 20000) { diff --git a/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/loadable.jsx b/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/loadable.jsx index fcf1df8..a6489a9 100644 --- a/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/loadable.jsx +++ b/src/pages/OutRoadMgm/OutSegmentMgm/OutSegment/loadable.jsx @@ -70,7 +70,7 @@ function OutSegment() { dataIndex: "road_name", key: "road_name", align: "center", - render: (text, record, index) =>
{text}
+ render: (text, record, index) =>
{text}
}, { title: "车场类型", @@ -229,6 +229,7 @@ function OutSegment() { record: {}, close: () => { setCheckModal({ ...checkModal, visible: false }); + search(); }, }); //配置弹窗 @@ -236,6 +237,7 @@ function OutSegment() { visible: false, close: () => { setConfigModal({ ...configModal, visible: false }); + search(); }, record: {}, }); @@ -244,6 +246,7 @@ function OutSegment() { visible: false, close: () => { setEditModal({ ...editModal, visible: false }); + search(); }, record: {}, status: "add", @@ -356,14 +359,42 @@ function OutSegment() { setSessionTabList({ ...sessionTabList, ...formData }) } }, [formData]) + // 导出 + const handleExport = () => { + if (tableData.length > 0) { + let values = searchForm.getFieldsValue(); + let end = values.area?.length > 0 ? values.area.slice(-1) : null; + let params = { + ...values, + area_id: values.area?.length > 0 ? end : areaId, + }; + ajax.getOrpRoadExp({ + ...pageData, + ...params, + }).then( + (res) => { + if (res) { + window.open(res.data.export_url) + } else { + message.error(res?.message); + } + }, + (err) => { + console.log(err); + } + ); + } else { + message.error("暂无数据"); + } + }; // 获取列表信息 const getList = (pageData) => { setLoading(true); let values = searchForm.getFieldsValue(); - let end = values.area?.length>0?values.area.slice(-1):null; + let end = values.area?.length > 0 ? values.area.slice(-1) : null; let params = { ...values, - area_id: values.area?.length>0?end:areaId, + area_id: values.area?.length > 0 ? end : areaId, }; ajax .getOrpRoadList({ @@ -543,7 +574,7 @@ function OutSegment() { > 评价批量配置 - +
{ data: params, }); }; - +//导出 +const getOrpRoadExp = (params) => { + return ajax({ + url: "/api/orp/road/road_list_export", + type: "post", + data: params, + }); +}; ///api/orp/road/road_info 获取路段详情 const getOrpRoadInfo = (params) => { return ajax({ @@ -84,6 +91,14 @@ const getRoadServiceParameters = (params) => { data: params, }); }; +///api/orp/road/get_road_service_parameters 保存路段业务参数配置 +const getRoadServiceEdit = (params) => { + return ajax({ + url: "/api/orp/road/edit_road_service_parameters", + type: "post", + data: params, + }); +}; ///api/orp/road/get_road_all_child 获取路段及其子级下拉筛选 const getRoadAllChild = (params) => { return ajax({ @@ -441,6 +456,7 @@ const editOutSegmentRoad = (params) => { }; export default { getOrpRoadList, + getOrpRoadExp, getOrpRoadInfo, getCommentSetting, commentSetting, @@ -450,6 +466,7 @@ export default { editRoadMs, addRoadMs, getRoadServiceParameters, + getRoadServiceEdit, getRoadAllChild, getAllCarGroup, getAddCarGroup,