diff --git a/src/pages/DataAnalysisPrediction/ParkingBusinessAly/NightParkStat/index.scss b/src/pages/DataAnalysisPrediction/ParkingBusinessAly/NightParkStat/index.scss
index 08b2559..2803378 100644
--- a/src/pages/DataAnalysisPrediction/ParkingBusinessAly/NightParkStat/index.scss
+++ b/src/pages/DataAnalysisPrediction/ParkingBusinessAly/NightParkStat/index.scss
@@ -162,6 +162,19 @@ $color-primary : var(--color-primary);
background: #3e4557;
}
}
+ .export-btn {
+ display: inline-block;
+ text-align: center;
+ float: right;
+ width: 68px;
+ height: 34px;
+ line-height: 34px;
+ background: linear-gradient(180deg, #3aa9ff, #59b7ff);
+ border-radius: 4px;
+ margin-right: 15px;
+ margin-top: 10px;
+ cursor: pointer;
+ }
.row-head {
height: 32px;
display: flex;
diff --git a/src/pages/DataAnalysisPrediction/ParkingBusinessAly/NightParkStat/loadable.jsx b/src/pages/DataAnalysisPrediction/ParkingBusinessAly/NightParkStat/loadable.jsx
index 159351d..24a91e6 100644
--- a/src/pages/DataAnalysisPrediction/ParkingBusinessAly/NightParkStat/loadable.jsx
+++ b/src/pages/DataAnalysisPrediction/ParkingBusinessAly/NightParkStat/loadable.jsx
@@ -67,12 +67,13 @@ function NightParkStat() {
},
{
title: '日间',
+ //width: 300,
children: [
{
title: '日间停车时长',
dataIndex: 'daytime_duration',
key: 'daytime_duration',
- //width: 150,
+ width: 250,
//sorter: (a, b) => a.age - b.age,
},
]
@@ -84,16 +85,19 @@ function NightParkStat() {
title: '夜间停车时长',
dataIndex: 'nighttime_duration',
key: 'nighttime_duration',
+ width: 250,
},
{
title: '纯夜间停车次数(次)',
- dataIndex: 'age',
- key: 'age',
+ dataIndex: 'pure_night_count',
+ key: 'pure_night_count',
+ width: 250,
},
{
title: '纯夜间停车时长',
dataIndex: 'pure_night_duration',
key: 'pure_night_duration',
+ width: 250,
},
]
}
@@ -125,37 +129,37 @@ function NightParkStat() {
// }, [isAjax]);
//
const getRevenueOption = (data) => {
- data = [
- {
- "date": "2023-11",
- "daytime_count": "68086",
- "daytime_duration": "267820时16分",
- "nighttime_count": "5875",
- "nighttime_duration": "74803时19分",
- "pure_night_count": "46",
- "pure_night_duration": "1683时40分",
- daytime_hour: "46",
- nighttime_hour: "46",
- pure_night_hour: "46",
- },
- {
- "date": "2023-10",
- "daytime_count": "29660",
- "daytime_duration": "65834时50分",
- "nighttime_count": "9",
- "nighttime_duration": "1030时07分",
- "pure_night_count": "290",
- "pure_night_duration": "148时38分",
- daytime_hour: "46",
- nighttime_hour: "46",
- pure_night_hour: "46",
- }
- ]
+ // data = [
+ // {
+ // "date": "2023-11",
+ // "daytime_count": "68086",
+ // "daytime_duration": "267820时16分",
+ // "nighttime_count": "5875",
+ // "nighttime_duration": "74803时19分",
+ // "pure_night_count": "46",
+ // "pure_night_duration": "1683时40分",
+ // daytime_hour: "46",
+ // nighttime_hour: "46",
+ // pure_night_hour: "46",
+ // },
+ // {
+ // "date": "2023-10",
+ // "daytime_count": "29660",
+ // "daytime_duration": "65834时50分",
+ // "nighttime_count": "9",
+ // "nighttime_duration": "1030时07分",
+ // "pure_night_count": "290",
+ // "pure_night_duration": "148时38分",
+ // daytime_hour: "46",
+ // nighttime_hour: "46",
+ // pure_night_hour: "46",
+ // }
+ // ]
//
data.sort((a, b) => {
return new Date(a.date) - new Date(b.date);
});
- const areaNames = data[0].name ? [...new Set(data.map((item) => item.name))] : ['日间停车时长','夜间停车时长','纯夜间停车时长'];
+ const areaNames = data[0].name ? [...new Set(data.map((item) => item.name))] : ['日间停车时长', '夜间停车时长', '纯夜间停车时长'];
// 获取所有日期
const dates = [...new Set(data.map((item) => item.date))].sort(
(a, b) => a.date - b.date
@@ -163,15 +167,15 @@ function NightParkStat() {
// 构建数据对象
const seriesData = areaNames.map((areaName, index) => {
let newsave = ''
- if(areaName=="日间停车时长") {
- newsave = data.map((item) => {return item.daytime_hour})
+ if (areaName == "日间停车时长") {
+ newsave = data.map((item) => { return item.daytime_hour })
console.log(newsave)
}
- if(areaName=="夜间停车时长") {
- newsave = data.map((item) => {return item.nighttime_hour})
+ if (areaName == "夜间停车时长") {
+ newsave = data.map((item) => { return item.nighttime_hour })
}
- if(areaName=="纯夜间停车时长") {
- newsave =data.map((item) => {return item.pure_night_hour})
+ if (areaName == "纯夜间停车时长") {
+ newsave = data.map((item) => { return item.pure_night_hour })
}
// 获取数据
@@ -585,6 +589,7 @@ function NightParkStat() {
+
导出
日间/夜间停车时长趋势
{
@@ -116,7 +113,8 @@ function ParkUsageAly() {
const TimeChange = () => {
let e = formData.date_type;
let str = "day";
- let mat = "YYYY-MM-DD";
+ //let mat = "YYYY-MM-DD";
+ let mat = "YYYY-MM-DD HH:mm:ss";
if (e == 4) {
str = "year";
mat = "YYYY";
@@ -153,129 +151,66 @@ function ParkUsageAly() {
end_time: end,
});
};
- //
+
+ //泊位利用率变化趋势,折线图
const getRevenueOption = (data) => {
// 获取所有地区名称
data.sort((a, b) => {
- return new Date(a.pay_date) - new Date(b.pay_date);
+ return new Date(a.date) - new Date(b.date);
});
- console.log(data);
- const areaNames = [...new Set(data.map((item) => item.area_name))];
+ const areaNames = data[0].name ? [...new Set(data.map((item) => item.name))] : [''];
// 获取所有日期
- const dates = [...new Set(data.map((item) => item.pay_date))].sort(
- (a, b) => a.pay_date - b.pay_date
+ const dates = [...new Set(data.map((item) => item.date))].sort(
+ (a, b) => a.date - b.date
);
// 构建数据对象
const seriesData = areaNames.map((areaName, index) => {
// 获取该地区的数据
- const areaData = data.filter((item) => item.area_name === areaName);
+ const areaData = data[0].name ? data.filter((item) => item.name === areaName) : data
// 构建该地区的数据对象
return {
- name: areaName,
+ name: areaNames.length > 1 ? areaName : '',
type: "line",
itemStyle: {
- normal: {
- label: {
- show: true, //开启显示
- position: 'top', //在上方显示
- textStyle: { //数值样式
- color: 'white',//字体颜色
- fontSize: 10//字体大小
- }
- },
+ label: {
+ show: true, //开启显示
+ position: 'top', //在上方显示
+ color: 'white',//字体颜色
+ fontSize: 10//字体大小
},
},
data: dates.map((item) => {
- for (const { pay_date, income } of areaData) {
- console.log(pay_date, income);
- if (pay_date === item) return income;
+ for (const { date, berth_utilization } of areaData) {
+ if (date === item) return berth_utilization;
}
return 0;
}),
- yAxisIndex: index == 1 ? 1 : null,
};
});
- console.log(21, areaNames, seriesData)
+ console.log(seriesData)
// 构建X轴数据
const xAxisData = dates.map((date) => {
return {
value: date,
- textStyle: {
- align: "center",
- lineStyle: {
- color: "skyblue", // 设置线的颜色为天蓝色
- shadowBlur: 6,
- },
+ align: "center",
+ lineStyle: {
+ color: "skyblue", // 设置线的颜色为天蓝色
+ shadowBlur: 6,
},
- };
- });
- setRevenueData({
- title: {
- text: "",
- textStyle: {
- color: "#fff",
- },
- },
- tooltip: {
- trigger: "axis",
- },
- xAxis: {
- data: xAxisData,
- type: 'category',
- axisLine: {
- lineStyle: {
- color: "#bbb",
- },
- },
- axisLabel: {
- textStyle: {
- color: "#bbb",
- },
- },
- },
- yAxis: {
- type: "value",
- name: '泊位利用率',
- min: 0,
- // /max: 50,
- interval: 10,
- splitNumber: 6, //设置坐标轴的分割段数
- axisLabel: {
- formatter: "{value}%",
- textStyle: {
- color: "#bbb",
- },
- },
- },
- color: ["#4DC3FF", "#FFD767"],
- //series: seriesData,
- series:
- {
- "name": "西区",
- "type": "line",
- "data": [
- 12,
- 12,
- 24
- ]
- },
- grid: {
- x: 50,
- y: 55,
- x2: 70,
- y2: 20,
- },
+ };
});
+ setRevenueData(lineChartOption(areaNames, xAxisData, "泊位利用率", seriesData));
};
function getParkingIncome() {
ajax
- .getParkingIncome()
+ .getParkUsageAlyLine()
.then((res) => {
if (res.status === 20000) {
console.log(res)
- getRevenueOption(res.data);
+ getRevenueOption(res.data.list);
+ setResultData(res.data)
}
})
.catch((err) => console.error(err));
@@ -295,30 +230,23 @@ function ParkUsageAly() {
);
};
- // 获取列表数据
- const getData = (v) => {
+ // 携带参数处理
+ const getCheck = (v) => {
let postData = { ...formData };
if (!loading) {
postData = { ...holdData };
}
setDefaultParams({ ...postData, ...pageInfo });
+ if (moment(formData.end_time) - moment(formData.start_time) > 1000 * 31 * 24 * 3600) {
+ message.error("时间范围限制为31天!")
+ setLoading(false);
+ setTabLoading(false);
+ return
+ }
setTabLoading(true);
- ajax.getAppList({ ...postData, ...v, ...pageInfo }).then(
- (res) => {
- if (parseInt(res?.status) === 20000) {
- setResultData(res?.data || {});
- } else {
- message.error(res?.message);
- }
- setLoading(false);
- setTabLoading(false);
- },
- (err) => {
- console.log(err);
- setLoading(false);
- setTabLoading(false);
- }
- );
+ let params = { ...postData, ...v, ...pageInfo }
+ //请求接口
+ getParkingIncome(params)
};
// 检索数据
@@ -349,9 +277,7 @@ function ParkUsageAly() {
message.error("暂无数据");
}
};
- useEffect(() => {
- getParkingIncome();
- }, []);
+
//区域下拉框数据
useEffect(() => {
ajax
@@ -384,9 +310,9 @@ function ParkUsageAly() {
value: "id",
children: "children",
}}
- value={formData.region}
+ value={formData.area_id}
onChange={(v, option) => {
- setFormData({ ...formData, region: v ? v : null });
+ setFormData({ ...formData, area_id: v ? v : null });
}}
/>
@@ -396,9 +322,9 @@ function ParkUsageAly() {
className="form-con"
placeholder="请选择"
options={searchSelectList?.flow_type_list || []}
- value={formData.pay_merchant_id}
+ value={formData.operator_id}
onChange={(v) =>
- setFormData({ ...formData, pay_merchant_id: v })
+ setFormData({ ...formData, operator_id: v })
}
/>
@@ -421,9 +347,9 @@ function ParkUsageAly() {
value: '2',
},
]}
- value={formData.pay_merchant_id}
+ value={formData.car_parking_type}
onChange={(v) =>
- setFormData({ ...formData, pay_merchant_id: v })
+ setFormData({ ...formData, car_parking_type: v })
}
/>
@@ -432,9 +358,9 @@ function ParkUsageAly() {
- setFormData({ ...formData, park: e.target.value })
+ setFormData({ ...formData, road_name: e.target.value })
}
/>
@@ -489,10 +415,6 @@ function ParkUsageAly() {
value: "3",
label: "月",
},
- {
- value: "4",
- label: "年",
- },
]}
onChange={(e) => SetTimeNow(e)}
/>
@@ -593,6 +515,7 @@ function ParkUsageAly() {
+
{window.open('')}}>导出
泊位利用率变化趋势
{
+ changeKey();
+ setPageInfo({
+ ...pageInfo,
+ ...{ pn: 1 }
+ });
+ getListData({})
+ }}
items={[
{
label: `序号`,
@@ -713,8 +720,22 @@ function ParkingAlyOverview() {
label:
区域
-
{ message.success('升序'); getListData({ sort: 1 }) }}>▲
-
{ message.success('降序'); getListData({ sort: 2 }) }}>▼
+
{
+ message.success('升序');
+ setPageInfo({
+ ...pageInfo,
+ ...{ pn: 1 }
+ });
+ getListData({ sort: 1 })
+ }}>▲
+
{
+ message.success('降序');
+ setPageInfo({
+ ...pageInfo,
+ ...{ pn: 1 }
+ });
+ getListData({ sort: 2 })
+ }}>▼
,
key: '1',
@@ -735,8 +756,22 @@ function ParkingAlyOverview() {
label:
停车场
-
{ message.success('升序'); getListData({ sort: 1 }) }}>▲
-
{ message.success('降序'); getListData({ sort: 2 }) }}>▼
+
{
+ message.success('升序');
+ setPageInfo({
+ ...pageInfo,
+ ...{ pn: 1 }
+ });
+ getListData({ sort: 1 })
+ }}>▲
+
{
+ message.success('降序');
+ setPageInfo({
+ ...pageInfo,
+ ...{ pn: 1 }
+ });
+ getListData({ sort: 2 })
+ }}>▼
,
key: '2',
diff --git a/src/pages/DataAnalysisPrediction/ParkingBusinessAly/ParkingAlyPeriod/loadable.jsx b/src/pages/DataAnalysisPrediction/ParkingBusinessAly/ParkingAlyPeriod/loadable.jsx
index 25d1ad6..ca403a2 100644
--- a/src/pages/DataAnalysisPrediction/ParkingBusinessAly/ParkingAlyPeriod/loadable.jsx
+++ b/src/pages/DataAnalysisPrediction/ParkingBusinessAly/ParkingAlyPeriod/loadable.jsx
@@ -250,25 +250,7 @@ function ParkingAlyPeriod() {
);
};
- // 获取列表数据
- const getData = (v) => {
- ajax.getAppList({ ...v }).then(
- (res) => {
- if (parseInt(res?.status) === 20000) {
- setResultData(res?.data || {});
- } else {
- message.error(res?.message);
- }
- setLoading(false);
- setTabLoading(false);
- },
- (err) => {
- console.log(err);
- setLoading(false);
- setTabLoading(false);
- }
- );
- };
+
// 携带参数处理
const getCheck = (v) => {
let postData = { ...formData };
@@ -285,7 +267,6 @@ function ParkingAlyPeriod() {
setTabLoading(true);
let params = { ...postData, ...v, ...pageInfo }
//请求接口
- getData(params)
getParkingIncome(params)
getParkingData(params)
};
diff --git a/src/pages/DataAnalysisPrediction/ParkingBusinessAly/TemporaryParkStat/loadable.jsx b/src/pages/DataAnalysisPrediction/ParkingBusinessAly/TemporaryParkStat/loadable.jsx
index 40d7623..3bfb95a 100644
--- a/src/pages/DataAnalysisPrediction/ParkingBusinessAly/TemporaryParkStat/loadable.jsx
+++ b/src/pages/DataAnalysisPrediction/ParkingBusinessAly/TemporaryParkStat/loadable.jsx
@@ -23,7 +23,7 @@ function TemporaryParkStat() {
const [areaList, setAreaList] = useState([]);
// 默认数据
const defaultData = {
- tart_time: moment().subtract('days').startOf('day').format("YYYY-MM-DD HH:mm:ss"),
+ start_time: moment().subtract('days').startOf('day').format("YYYY-MM-DD HH:mm:ss"),
end_time: moment().endOf("day").format("YYYY-MM-DD HH:mm:ss"),
}
// 分页数据
@@ -245,6 +245,7 @@ function TemporaryParkStat() {
return
}
//setTabLoading(true);
+ setLoading(false)
let params = { ...postData, ...v, ...pageInfo }
//请求接口
getParkingIncome(params)
diff --git a/src/services/DataAnalysisPrediction/ParkingBusinessAly/index.js b/src/services/DataAnalysisPrediction/ParkingBusinessAly/index.js
index 679bc3a..499f99a 100644
--- a/src/services/DataAnalysisPrediction/ParkingBusinessAly/index.js
+++ b/src/services/DataAnalysisPrediction/ParkingBusinessAly/index.js
@@ -97,6 +97,14 @@ const getNightParkStatLine = (params) => {
data: params,
});
};
+//停车业务分析-泊位利用分析-泊位利用变化趋势
+const getParkUsageAlyLine = (params) => {
+ return ajax({
+ url: "/api/ana/dataanalysis/show_parking_berth_rate",
+ type: "post",
+ data: params,
+ });
+};
export default {
getParkingAlyOverviewBase,
getParkingAlyOverviewLine,
@@ -114,4 +122,6 @@ export default {
getTemporaryParkStatData,
getNightParkStatLine,
+
+ getParkUsageAlyLine,
}