|
|
@ -1,7 +1,7 @@ |
|
|
|
import React, { useState, useRef, useEffect } from "react" |
|
|
|
import { Select, Input, Button, Table, message, Pagination, DatePicker, Cascader, Tooltip } from "antd" |
|
|
|
import { QuestionCircleFilled } from '@ant-design/icons' |
|
|
|
import { ResultFlowResult } from '@/components' |
|
|
|
import { ResultFlowResult, ExportBtnNew } from '@/components' |
|
|
|
import { dictionary } from "@/config/common" |
|
|
|
import ReactEcharts from "echarts-for-react" |
|
|
|
import { lineChartOption, stackBarChartOption } from "@/config/character.config" |
|
|
@ -21,8 +21,8 @@ function CityIncomeStat(props) { |
|
|
|
park_type: 0, |
|
|
|
date_type: "day", |
|
|
|
park_bussiness_type: 0, |
|
|
|
start_time: moment().startOf("day").format('YYYY-MM-DD HH:mm:ss'), |
|
|
|
end_time: moment().format('YYYY-MM-DD HH:mm:ss') |
|
|
|
start_time: moment().startOf("day").format('YYYY-MM-DD'), |
|
|
|
end_time: moment().format('YYYY-MM-DD') |
|
|
|
} |
|
|
|
const [formData, setFormData] = useState({ |
|
|
|
...defaultFormData |
|
|
@ -144,7 +144,7 @@ function CityIncomeStat(props) { |
|
|
|
const TimeChange = () => { |
|
|
|
let e = formData.date_type; |
|
|
|
let str = "day"; |
|
|
|
let mat = "YYYY-MM-DD HH:mm:ss"; |
|
|
|
let mat = "YYYY-MM-DD"; |
|
|
|
if (e == "year") { |
|
|
|
str = "year"; |
|
|
|
mat = "YYYY"; |
|
|
@ -171,8 +171,8 @@ function CityIncomeStat(props) { |
|
|
|
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 HH:mm:ss"); |
|
|
|
end = moment().endOf("day").format("YYYY-MM-DD HH:mm:ss"); |
|
|
|
start = moment().startOf("day").format("YYYY-MM-DD"); |
|
|
|
end = moment().endOf("day").format("YYYY-MM-DD"); |
|
|
|
} |
|
|
|
setFormData({ |
|
|
|
...formData, |
|
|
@ -182,6 +182,28 @@ function CityIncomeStat(props) { |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
function cascaderChange(value, options) { |
|
|
|
let last = options[options.length - 1]; |
|
|
|
let res = []; |
|
|
|
if (last.children) { |
|
|
|
addChild(last, res); |
|
|
|
} |
|
|
|
res.push(last.id); |
|
|
|
setFormData({ |
|
|
|
...formData, |
|
|
|
region: [...res] |
|
|
|
}) |
|
|
|
} |
|
|
|
const addChild = (child, res) => { |
|
|
|
if (child.children) { |
|
|
|
child.children.forEach((item) => { |
|
|
|
addChild(item, res); |
|
|
|
}) |
|
|
|
} else { |
|
|
|
res.push(child.id); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
const handleReset = () => { |
|
|
|
setFormData({ |
|
|
|
...defaultFormData |
|
|
@ -189,6 +211,17 @@ function CityIncomeStat(props) { |
|
|
|
} |
|
|
|
|
|
|
|
const handleSearch = () => { |
|
|
|
let days = moment(formData.end_time).diff(moment(formData.start_time), 'days') |
|
|
|
if (formData.date_type == 'day' && days > 31) { |
|
|
|
message.error('日统计查询,请勿超过1个月,请重新选择时间范围') |
|
|
|
return |
|
|
|
} else if (formData.date_type == 'week' && days > 105) { |
|
|
|
message.error('周统计查询,请勿超过15周,请重新选择时间范围') |
|
|
|
return |
|
|
|
} else if (formData.date_type == 'month' && days > 180) { |
|
|
|
message.error('月统计查询,请勿超过6个月,请重新选择时间范围') |
|
|
|
return |
|
|
|
} |
|
|
|
ajaxGetListData() |
|
|
|
} |
|
|
|
|
|
|
@ -218,10 +251,11 @@ function CityIncomeStat(props) { |
|
|
|
value: "id", |
|
|
|
children: "children", |
|
|
|
}} |
|
|
|
value={formData.region} |
|
|
|
onChange={(v, option) => { |
|
|
|
setFormData({ ...formData, region: v ? v : null }); |
|
|
|
}} |
|
|
|
// value={formData.region} |
|
|
|
// onChange={(v, option) => { |
|
|
|
// setFormData({ ...formData, region: v ? v : null }); |
|
|
|
// }} |
|
|
|
onChange={cascaderChange} |
|
|
|
/> |
|
|
|
</div> |
|
|
|
<div className="yisa-search"> |
|
|
@ -387,6 +421,18 @@ function CityIncomeStat(props) { |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div className="parking-container-right"> |
|
|
|
<div className="export-container"> |
|
|
|
<ExportBtnNew |
|
|
|
children={<Button className="export-btn" size='medium' type="primary">导出</Button>} |
|
|
|
modalType="noImg" |
|
|
|
totalRecords={resultData.totalRecords} |
|
|
|
exportUrl="/api/ana/arrearage/city_revenue" |
|
|
|
postdata={{ |
|
|
|
formData: {...formData, ...{is_excel: 1}} |
|
|
|
}} |
|
|
|
imgno={false} |
|
|
|
/> |
|
|
|
</div> |
|
|
|
<div className="parking-item"> |
|
|
|
<div className="parking-item-title"> |
|
|
|
订单收入对比 |
|
|
|