|
@ -87,6 +87,47 @@ function TemporaryParkStat() { |
|
|
// useEffect(() => { |
|
|
// useEffect(() => { |
|
|
// getData(); |
|
|
// getData(); |
|
|
// }, [isAjax]); |
|
|
// }, [isAjax]); |
|
|
|
|
|
//时间状态切换 |
|
|
|
|
|
const TimeChange = () => { |
|
|
|
|
|
let e = formData.date_type; |
|
|
|
|
|
let str = "day"; |
|
|
|
|
|
let mat = "YYYY-MM-DD"; |
|
|
|
|
|
if (e == 4) { |
|
|
|
|
|
str = "year"; |
|
|
|
|
|
mat = "YYYY"; |
|
|
|
|
|
} else if (e == 3) { |
|
|
|
|
|
str = "month"; |
|
|
|
|
|
mat = "YYYY-MM"; |
|
|
|
|
|
} else if (e == 2) { |
|
|
|
|
|
str = "week"; |
|
|
|
|
|
mat = "YYYY-MM-DD"; |
|
|
|
|
|
} |
|
|
|
|
|
return { str, mat }; |
|
|
|
|
|
}; |
|
|
|
|
|
//切换时间变化 |
|
|
|
|
|
const SetTimeNow = (e) => { |
|
|
|
|
|
let start = ""; |
|
|
|
|
|
let end = ""; |
|
|
|
|
|
if (e == 4) { |
|
|
|
|
|
start = moment().format("YYYY"); |
|
|
|
|
|
end = moment().format("YYYY"); |
|
|
|
|
|
} else if (e == 3) { |
|
|
|
|
|
start = moment().format("YYYY-MM"); |
|
|
|
|
|
end = moment().format("YYYY-MM"); |
|
|
|
|
|
} else if (e == 2) { |
|
|
|
|
|
start = moment().day(1).format("YYYY-MM-DD"); |
|
|
|
|
|
end = moment().day(7).format("YYYY-MM-DD"); |
|
|
|
|
|
} else { |
|
|
|
|
|
start = moment().startOf("day").format("YYYY-MM-DD"); |
|
|
|
|
|
end = moment().endOf("day").format("YYYY-MM-DD"); |
|
|
|
|
|
} |
|
|
|
|
|
setFormData({ |
|
|
|
|
|
...formData, |
|
|
|
|
|
date_type: e, |
|
|
|
|
|
start_time: start, |
|
|
|
|
|
end_time: end, |
|
|
|
|
|
}); |
|
|
|
|
|
}; |
|
|
//临时停车次数趋势 |
|
|
//临时停车次数趋势 |
|
|
const getRevenueOption = (data) => { |
|
|
const getRevenueOption = (data) => { |
|
|
// 获取所有地区名称 |
|
|
// 获取所有地区名称 |
|
@ -232,7 +273,7 @@ function TemporaryParkStat() { |
|
|
}); |
|
|
}); |
|
|
console.log(data); |
|
|
console.log(data); |
|
|
const areaNames = [...new Set(data.map((item) => item.area_name))]; |
|
|
const areaNames = [...new Set(data.map((item) => item.area_name))]; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
setRingData({ |
|
|
setRingData({ |
|
|
title: { |
|
|
title: { |
|
|
text: "", |
|
|
text: "", |
|
@ -245,9 +286,10 @@ function TemporaryParkStat() { |
|
|
}, |
|
|
}, |
|
|
legend: { |
|
|
legend: { |
|
|
type: "scroll", |
|
|
type: "scroll", |
|
|
right: "5%", |
|
|
|
|
|
|
|
|
//right: "5%", |
|
|
|
|
|
left: '42.5%', |
|
|
//data: areaNames, |
|
|
//data: areaNames, |
|
|
data: ["常时停车", "临时停车"], |
|
|
|
|
|
|
|
|
data: ["长时停车", "临时停车"], |
|
|
itemWidth: 18, |
|
|
itemWidth: 18, |
|
|
itemHeight: 12, |
|
|
itemHeight: 12, |
|
|
textStyle: { |
|
|
textStyle: { |
|
@ -256,7 +298,7 @@ function TemporaryParkStat() { |
|
|
}, |
|
|
}, |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
color: ["#4DC3FF", "#FFD767"], |
|
|
|
|
|
|
|
|
color: ["#3AA9FF", "#F997DF"], |
|
|
//series: seriesData, |
|
|
//series: seriesData, |
|
|
series: [ |
|
|
series: [ |
|
|
{ |
|
|
{ |
|
@ -279,7 +321,7 @@ function TemporaryParkStat() { |
|
|
show: false |
|
|
show: false |
|
|
}, |
|
|
}, |
|
|
data: [ |
|
|
data: [ |
|
|
{ value: 1048, name: '常时停车' }, |
|
|
|
|
|
|
|
|
{ value: 1048, name: '长时停车' }, |
|
|
{ value: 735, name: '临时停车' }, |
|
|
{ value: 735, name: '临时停车' }, |
|
|
] |
|
|
] |
|
|
} |
|
|
} |
|
@ -465,50 +507,109 @@ function TemporaryParkStat() { |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div className="yisa-search"> |
|
|
<div className="yisa-search"> |
|
|
<label>日期搜索</label> |
|
|
|
|
|
<Select |
|
|
|
|
|
className="form-con" |
|
|
|
|
|
placeholder="请选择" |
|
|
|
|
|
options={[ |
|
|
|
|
|
{ |
|
|
|
|
|
label: '日', |
|
|
|
|
|
value: '0', |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
label: '周', |
|
|
|
|
|
value: '1', |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
label: '月', |
|
|
|
|
|
value: '2', |
|
|
|
|
|
}, |
|
|
|
|
|
]} |
|
|
|
|
|
value={formData.pay_merchant_id} |
|
|
|
|
|
onChange={(v) => |
|
|
|
|
|
setFormData({ ...formData, pay_merchant_id: v }) |
|
|
|
|
|
} |
|
|
|
|
|
/> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div className="yisa-search"> |
|
|
|
|
|
<label>时间选择</label> |
|
|
|
|
|
|
|
|
<label>日期 |
|
|
|
|
|
<div className="daf"> |
|
|
|
|
|
<Select |
|
|
|
|
|
value={formData.date_type} |
|
|
|
|
|
// style={{ |
|
|
|
|
|
// width: "100%", |
|
|
|
|
|
// }} |
|
|
|
|
|
placeholder="请选择" |
|
|
|
|
|
options={[ |
|
|
|
|
|
{ |
|
|
|
|
|
value: "1", |
|
|
|
|
|
label: "日", |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
value: "2", |
|
|
|
|
|
label: "周", |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
value: "3", |
|
|
|
|
|
label: "月", |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
value: "4", |
|
|
|
|
|
label: "年", |
|
|
|
|
|
}, |
|
|
|
|
|
]} |
|
|
|
|
|
onChange={(e) => SetTimeNow(e)} |
|
|
|
|
|
/> |
|
|
|
|
|
</div> |
|
|
|
|
|
</label> |
|
|
<DatePicker |
|
|
<DatePicker |
|
|
className="form-con" |
|
|
|
|
|
showTime |
|
|
|
|
|
|
|
|
style={{ width: "100%" }} |
|
|
|
|
|
// showTime |
|
|
|
|
|
format={TimeChange().mat} |
|
|
|
|
|
picker={TimeChange().str} |
|
|
allowClear={false} |
|
|
allowClear={false} |
|
|
value={formData.confirm_start_time ? moment(formData.confirm_start_time) : undefined} |
|
|
|
|
|
onChange={(date, dateString) => setFormData({ ...formData, confirm_start_time: dateString })} |
|
|
|
|
|
disabledDate={(current) => current > moment(formData.confirm_end_time)} |
|
|
|
|
|
|
|
|
value={formData.start_time ? moment(formData.start_time) : null} |
|
|
|
|
|
onChange={(date, dateString) => { |
|
|
|
|
|
if (TimeChange().str == "week") { |
|
|
|
|
|
setFormData({ |
|
|
|
|
|
...formData, |
|
|
|
|
|
start_time: date |
|
|
|
|
|
? moment(date).day(1).format("YYYY-MM-DD") |
|
|
|
|
|
: null, |
|
|
|
|
|
}); |
|
|
|
|
|
} else if (TimeChange().str == "day") { |
|
|
|
|
|
if (date > moment(formData.end_time)) { |
|
|
|
|
|
setFormData({ |
|
|
|
|
|
...formData, |
|
|
|
|
|
end_time: dateString, |
|
|
|
|
|
start_time: formData.end_time, |
|
|
|
|
|
}); |
|
|
|
|
|
} else { |
|
|
|
|
|
setFormData({ |
|
|
|
|
|
...formData, |
|
|
|
|
|
start_time: dateString, |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
} else { |
|
|
|
|
|
setFormData({ ...formData, start_time: dateString }); |
|
|
|
|
|
} |
|
|
|
|
|
}} |
|
|
|
|
|
disabledDate={(current) => current > moment(formData.end_time)} |
|
|
/> |
|
|
/> |
|
|
|
|
|
|
|
|
</div> |
|
|
</div> |
|
|
<div className="yisa-search"> |
|
|
<div className="yisa-search"> |
|
|
<label>至</label> |
|
|
<label>至</label> |
|
|
<DatePicker |
|
|
<DatePicker |
|
|
className="form-con" |
|
|
|
|
|
showTime |
|
|
|
|
|
|
|
|
style={{ width: "100%" }} |
|
|
|
|
|
// showTime |
|
|
|
|
|
format={TimeChange().mat} |
|
|
|
|
|
picker={TimeChange().str} |
|
|
allowClear={false} |
|
|
allowClear={false} |
|
|
value={formData.confirm_end_time ? moment(formData.confirm_end_time) : undefined} |
|
|
|
|
|
onChange={(date, dateString) => setFormData({ ...formData, confirm_end_time: dateString })} |
|
|
|
|
|
disabledDate={(current) => current < moment(formData.confirm_start_time)} |
|
|
|
|
|
|
|
|
value={formData.end_time ? moment(formData.end_time) : null} |
|
|
|
|
|
onChange={(date, dateString) => { |
|
|
|
|
|
if (TimeChange().str == "week") { |
|
|
|
|
|
setFormData({ |
|
|
|
|
|
...formData, |
|
|
|
|
|
end_time: date |
|
|
|
|
|
? moment(date).day(7).format("YYYY-MM-DD") |
|
|
|
|
|
: null, |
|
|
|
|
|
}); |
|
|
|
|
|
} else if (TimeChange().str == "day") { |
|
|
|
|
|
if (date < moment(formData.start_time)) { |
|
|
|
|
|
setFormData({ |
|
|
|
|
|
...formData, |
|
|
|
|
|
start_time: dateString, |
|
|
|
|
|
end_time: formData.start_time, |
|
|
|
|
|
}); |
|
|
|
|
|
} else { |
|
|
|
|
|
setFormData({ |
|
|
|
|
|
...formData, |
|
|
|
|
|
end_time: dateString, |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
} else { |
|
|
|
|
|
setFormData({ ...formData, end_time: dateString }); |
|
|
|
|
|
} |
|
|
|
|
|
}} |
|
|
|
|
|
disabledDate={(current) => |
|
|
|
|
|
current < moment(formData.start_time) |
|
|
|
|
|
} |
|
|
/> |
|
|
/> |
|
|
</div> |
|
|
</div> |
|
|
<div className="form-btn"> |
|
|
<div className="form-btn"> |
|
@ -530,7 +631,7 @@ function TemporaryParkStat() { |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<div className="paid-result soll-result"> |
|
|
<div className="paid-result soll-result"> |
|
|
<div className="result"> |
|
|
|
|
|
|
|
|
<div className="result"> |
|
|
<div className="result-box"> |
|
|
<div className="result-box"> |
|
|
<div className="result-box-title">临时停车次数占比</div> |
|
|
<div className="result-box-title">临时停车次数占比</div> |
|
|
<Tooltip |
|
|
<Tooltip |
|
@ -543,7 +644,7 @@ function TemporaryParkStat() { |
|
|
option={ringData} |
|
|
option={ringData} |
|
|
style={{ height: "300px", width: "100%", overflow: "hidden" }} |
|
|
style={{ height: "300px", width: "100%", overflow: "hidden" }} |
|
|
/> |
|
|
/> |
|
|
<div>总停车次数:</div> |
|
|
|
|
|
|
|
|
<div className="lstc-text">总停车次数:</div> |
|
|
</div> |
|
|
</div> |
|
|
<div className="result-box"> |
|
|
<div className="result-box"> |
|
|
<div className="result-box-title">临时停车趋势分析</div> |
|
|
<div className="result-box-title">临时停车趋势分析</div> |
|
|