|
@@ -1,6 +1,6 @@
|
1
|
1
|
<template>
|
2
|
2
|
<div class="body-wrapper">
|
3
|
|
- <el-form class="form-wrapper" :inline="true" :model="formInline1">
|
|
3
|
+ <el-form class="form-wrapper" :inline="true" :rules="formRules" ref="formInline1" :model="formInline1">
|
4
|
4
|
<el-form-item label="行政区">
|
5
|
5
|
<el-select clearable v-model="formInline1.regionCode" placeholder="请选择" popper-class="cur-select">
|
6
|
6
|
<el-option v-for="item in districtOptions" :key="item.label" :label="item.label" :value="item.value"></el-option>
|
|
@@ -14,16 +14,25 @@
|
14
|
14
|
<el-option v-for="item in carOptions" :key="item.parkId" :label="item.carParkName" :value="item.parkId"></el-option>
|
15
|
15
|
</el-select>
|
16
|
16
|
</el-form-item>
|
17
|
|
- <el-form-item label="查询日期">
|
|
17
|
+ <el-form-item label="开始时间" prop="begin">
|
18
|
18
|
<el-date-picker
|
19
|
|
- clearable
|
20
|
|
- v-model="formInline1.time"
|
21
|
|
- type="daterange"
|
22
|
|
- range-separator="至"
|
23
|
|
- start-placeholder="开始日期"
|
24
|
|
- value-format="yyyy-MM-dd"
|
25
|
|
- end-placeholder="结束日期">
|
26
|
|
- </el-date-picker>
|
|
19
|
+ v-model="formInline1.begin"
|
|
20
|
+ type="datetime"
|
|
21
|
+ placeholder="选择开始时间"
|
|
22
|
+ @change="validateTimeRange"
|
|
23
|
+ :picker-options="endPickerOptions"
|
|
24
|
+ value-format="yyyy-MM-dd HH:mm:ss"
|
|
25
|
+ ></el-date-picker>
|
|
26
|
+ </el-form-item>
|
|
27
|
+ <el-form-item label="结束时间" prop="end">
|
|
28
|
+ <el-date-picker
|
|
29
|
+ v-model="formInline1.end"
|
|
30
|
+ type="datetime"
|
|
31
|
+ placeholder="选择结束时间"
|
|
32
|
+ @change="validateTimeRange"
|
|
33
|
+ :picker-options="endPickerOptions"
|
|
34
|
+ value-format="yyyy-MM-dd HH:mm:ss"
|
|
35
|
+ ></el-date-picker>
|
27
|
36
|
</el-form-item>
|
28
|
37
|
<el-form-item>
|
29
|
38
|
<el-button type="primary" @click="queryAll">查询</el-button>
|
|
@@ -136,6 +145,7 @@ import piechart from "@/components/pieChart";
|
136
|
145
|
import linechart from "@/components/lineChart";
|
137
|
146
|
import barchart from "@/components/barChart";
|
138
|
147
|
import vtable from "@/components/vtableNew";
|
|
148
|
+import { Message } from 'element-ui';
|
139
|
149
|
import api from "@/api/article_liao";
|
140
|
150
|
import options from '@/util/options'
|
141
|
151
|
|
|
@@ -149,11 +159,19 @@ export default {
|
149
|
159
|
},
|
150
|
160
|
data() {
|
151
|
161
|
return {
|
|
162
|
+ formRules: {
|
|
163
|
+ begin: [{ required: false, message: '请选择开始时间', trigger: 'blur' }],
|
|
164
|
+ end: [
|
|
165
|
+ { required: false, message: '请选择结束时间', trigger: 'blur' },
|
|
166
|
+ { validator: this.validateEndTime, trigger: 'blur' }
|
|
167
|
+ ]
|
|
168
|
+ },
|
152
|
169
|
districtOptions: options.districtOptions,
|
153
|
170
|
carOptions: [],
|
154
|
171
|
formInline1: {
|
155
|
172
|
parkId: '',
|
156
|
|
- time: [],
|
|
173
|
+ begin: '',
|
|
174
|
+ end: '',
|
157
|
175
|
regionCode: '',
|
158
|
176
|
streetName: ''
|
159
|
177
|
},
|
|
@@ -173,30 +191,62 @@ export default {
|
173
|
191
|
},
|
174
|
192
|
watch: {
|
175
|
193
|
|
|
194
|
+ },
|
|
195
|
+ computed: {
|
|
196
|
+ endPickerOptions() {
|
|
197
|
+ return {
|
|
198
|
+ disabledDate(time) {
|
|
199
|
+ // 禁止选择当前时间之后的日期和时间
|
|
200
|
+ return time.getTime() > Date.now();
|
|
201
|
+ }
|
|
202
|
+ };
|
|
203
|
+ }
|
176
|
204
|
},
|
177
|
205
|
methods: {
|
|
206
|
+ validateEndTime(rule, value, callback) {
|
|
207
|
+ if (this.formInline1.begin && this.formInline1.end) {
|
|
208
|
+ const startTimestamp = new Date(this.formInline1.begin).getTime();
|
|
209
|
+ const endTimestamp = new Date(value).getTime();
|
|
210
|
+ if (startTimestamp > endTimestamp) {
|
|
211
|
+ callback(new Error('结束时间不能早于开始时间'));
|
|
212
|
+ } else {
|
|
213
|
+ callback();
|
|
214
|
+ }
|
|
215
|
+ } else {
|
|
216
|
+ callback();
|
|
217
|
+ }
|
|
218
|
+ },
|
|
219
|
+ validateTimeRange() {
|
|
220
|
+ // 触发结束时间的验证
|
|
221
|
+ this.$refs['formInline1'].validateField('end');
|
|
222
|
+ },
|
178
|
223
|
getParkDic() {
|
179
|
224
|
api.parkDic().then(res => {
|
180
|
225
|
this.carOptions = res.data || [];
|
181
|
226
|
})
|
182
|
227
|
},
|
183
|
228
|
queryAll() {
|
184
|
|
- let params = {...this.formInline1}
|
185
|
|
- if (
|
186
|
|
- this.formInline1.time && this.formInline1.time.length === 2 &&
|
187
|
|
- this.formInline1.time[1] !== ""
|
188
|
|
- ) {
|
189
|
|
- this.formInline1.time[0] = this.formInline1.time[0].substring(0, 10) + " 00:00:00";
|
190
|
|
- this.formInline1.time[1] = this.formInline1.time[1].substring(0, 10) + " 23:59:59";
|
191
|
|
- params.begin= this.formInline1.time[0]
|
192
|
|
- params.end = this.formInline1.time[1]
|
|
229
|
+ if (this.formInline1.begin || this.formInline1.end) {
|
|
230
|
+ this.$refs['formInline1'].validate((valid) => {
|
|
231
|
+ if (valid) {
|
|
232
|
+ let params = {...this.formInline1}
|
|
233
|
+ this.dashBerthRoadStat1(params)
|
|
234
|
+ this.dashBerthRoadStat2(params)
|
|
235
|
+ this.dashBerthRoadStat3(params)
|
|
236
|
+ this.dashBerthRoadStat4(params)
|
|
237
|
+ this.dashBerthRoadStat5(params)
|
|
238
|
+ } else {
|
|
239
|
+ Message.error('结束时间不能早于开始时间!')
|
|
240
|
+ }
|
|
241
|
+ });
|
|
242
|
+ } else {
|
|
243
|
+ let params = {...this.formInline1}
|
|
244
|
+ this.dashBerthRoadStat1(params)
|
|
245
|
+ this.dashBerthRoadStat2(params)
|
|
246
|
+ this.dashBerthRoadStat3(params)
|
|
247
|
+ this.dashBerthRoadStat4(params)
|
|
248
|
+ this.dashBerthRoadStat5(params)
|
193
|
249
|
}
|
194
|
|
- delete params.time
|
195
|
|
- this.dashBerthRoadStat1(params)
|
196
|
|
- this.dashBerthRoadStat2(params)
|
197
|
|
- this.dashBerthRoadStat3(params)
|
198
|
|
- this.dashBerthRoadStat4(params)
|
199
|
|
- this.dashBerthRoadStat5(params)
|
200
|
250
|
},
|
201
|
251
|
lineTooltipFormat1(params) {
|
202
|
252
|
const data = params[0].data;
|