Selaa lähdekoodia

添加查询参数

duwendi 1 vuosi sitten
vanhempi
commit
dc1f1eb794

+ 5 - 1
src/api/audit.js

@@ -384,5 +384,9 @@ export default {
384 384
   // 停车分析
385 385
   tcfx(params) {
386 386
     return axios.post('/opt/parking/stat1', params)
387
-  }
387
+  },
388
+  // 停车场码表
389
+  parkDic(params) {
390
+    return axios.get(`/dash/customer/complaint/list`, {params})
391
+  },
388 392
 }

+ 3 - 0
src/assets/css/element_ui.css

@@ -7,6 +7,9 @@
7 7
   /*margin-bottom: 0px;*/
8 8
 }
9 9
 
10
+.el-picker-panel__icon-btn {
11
+  color: #5f6266;
12
+}
10 13
 
11 14
 .el-select-dropdown__item.hover,
12 15
 .el-select-dropdown__item:hover {

+ 132 - 26
src/pages/index/components/business_conditions.vue

@@ -1,6 +1,6 @@
1 1
 <template xmlns:piechart="http://www.w3.org/1999/html">
2 2
   <div class="body-wrapper">
3
-    <div style="display: flex;justify-content: space-around;">
3
+    <div style="display: flex;justify-content: space-around;height: 40px;color: #fff;">
4 4
       <div style="width: 25%;display: flex;">
5 5
         <h4 class="h4font">泊位数量:</h4><h3 class="h4font">{{viewData.totalParkingNumber}}</h3>
6 6
       </div>
@@ -15,8 +15,37 @@
15 15
       </div>
16 16
     </div>
17 17
     <br>
18
+    <el-form class="form-wrapper" :inline="true" :model="formInline" style="margin-bottom: 20px;">
19
+      <el-form-item label="行政区">
20
+        <el-select clearable v-model="formInline.regionCode" placeholder="请选择" popper-class="cur-select">
21
+          <el-option v-for="item in districtOptions"  :key="item.label" :label="item.label" :value="item.value"></el-option>
22
+        </el-select>
23
+      </el-form-item>
24
+      <el-form-item clearable label="具体道路">
25
+        <el-input v-model="formInline.streetName" placeholder="请输入"></el-input>
26
+      </el-form-item>
27
+      <el-form-item label="停车场">
28
+        <el-select clearable v-model="formInline.parkId" placeholder="请选择" popper-class="cur-select">
29
+          <el-option v-for="item in carOptions" :key="item.parkId" :label="item.carParkName" :value="item.parkId"></el-option>
30
+        </el-select>
31
+      </el-form-item>
32
+      <el-form-item label="查询日期">
33
+        <el-date-picker
34
+          clearable
35
+          v-model="formInline.time"
36
+          type="daterange"
37
+          range-separator="至"
38
+          start-placeholder="开始日期"
39
+          value-format="yyyy-MM-dd"
40
+          end-placeholder="结束日期">
41
+        </el-date-picker>
42
+      </el-form-item>
43
+      <el-form-item>
44
+        <el-button type="primary" @click="queryAll">查询</el-button>
45
+      </el-form-item>
46
+    </el-form>
18 47
     <br>
19
-    <div class="charts">
48
+    <div class="charts" style="display: flex">
20 49
       <div style="width: 50%;height: 500px;">
21 50
         <h4 style="color: white">收费趋势</h4>
22 51
         <linechart
@@ -66,7 +95,7 @@
66 95
   import api from "@/api/audit.js";
67 96
   import piechart from "@/components/pieChart";
68 97
   import linechart from "@/components/lineChart";
69
-  import api1 from '@/api/article_liao.js'
98
+  import options from '@/util/options'
70 99
 
71 100
   export default {
72 101
     components: {
@@ -75,6 +104,8 @@
75 104
     },
76 105
     data() {
77 106
       return {
107
+        districtOptions: options.districtOptions,
108
+        carOptions: [],
78 109
         viewData: {
79 110
           outNumber: "0",
80 111
           inNumber: "0",
@@ -110,24 +141,51 @@
110 141
         total: 0,
111 142
         pageSize: 5,
112 143
         pageNum: 1,
144
+        formInline: {
145
+          regionCode: '',
146
+          streetName: '',
147
+          parkId: '',
148
+          time: [],
149
+        }
113 150
       }
114 151
     },
115 152
     mounted() {
116
-      const {pageNum, pageSize} = this
117
-      let that = this
118
-      let params4 = {current: pageNum, size: pageSize}
119
-      let requestList = [api.tccqkView(), api.sfqs(),api.cllx(), api.jyqk(params4)];
120
-      Promise.all(requestList).then(res => {
121
-        that.viewData = res[0].data
122
-        that.linedata = res[1].data || []
123
-        that.modelData = res[2].data || []
124
-        this.tableData = res[3].data.records || []
125
-        this.total = res[3].data.total || 0
126
-      })
153
+      this.getParkDic()
154
+      this.queryAll()
127 155
     },
128 156
     watch: {
129 157
     },
130 158
     methods: {
159
+      getParkDic() {
160
+        api.parkDic().then(res => {
161
+          this.carOptions = res.data || [];
162
+        })
163
+      },
164
+      queryAll() {
165
+        const {pageNum, pageSize} = this
166
+        let that = this
167
+        let params4 = {current: pageNum, size: pageSize}
168
+        let params = {...this.formInline}
169
+        if (
170
+          this.formInline.time && this.formInline.time.length === 2 &&
171
+          this.formInline.time[1] !== ""
172
+        ) {
173
+          this.formInline.time[0] = this.formInline.time[0].substring(0, 10) + " 00:00:00";
174
+          this.formInline.time[1] = this.formInline.time[1].substring(0, 10) + " 23:59:59";
175
+          params.begin= this.formInline.time[0]
176
+          params.end = this.formInline.time[1]
177
+        }
178
+        delete params.time
179
+        let requestList = [api.tccqkView(), api.sfqs(params),api.cllx(params), api.jyqk({...params4, ...params})];
180
+        Promise.all(requestList).then(res => {
181
+          that.viewDaviewDatata = res[0].data
182
+          that.linedata = res[1].data || []
183
+          console.log(res[2].data, '-----饼图----')
184
+          that.modelData = res[2].data || []
185
+          this.tableData = res[3].data.records || []
186
+          this.total = res[3].data.total || 0
187
+        })
188
+      },
131 189
       lineTooltipFormat(params) {
132 190
         return `<div class="line-tooltip">
133 191
         <div style="color: ${params[0].color}">${params[0].seriesName}: ${
@@ -149,6 +207,56 @@
149 207
   }
150 208
 </script>
151 209
 <style  lang="scss" scoped>
210
+.body-wrapper {
211
+  width: 100%;
212
+  height: 100%;
213
+  box-sizing: border-box;
214
+  background: #0c0c0c;
215
+
216
+}
217
+.model-pie-body {
218
+  width: 100%;
219
+  height: 99%;
220
+}
221
+
222
+
223
+.form-wrapper {
224
+  margin-bottom: 20px;
225
+}
226
+/deep/ .el-input__inner {
227
+  background: #2d3744;
228
+  border: none;
229
+  border-radius: 0;
230
+}
231
+/deep/ .el-select {
232
+  height: 40px;
233
+  .el-input__inner {
234
+    height: 40px;
235
+  }
236
+  .el-input__prefix, .el-input__suffix {
237
+    height: 40px;
238
+  }
239
+
240
+  /* 下面设置右侧按钮居中 */
241
+  .el-input__suffix {
242
+    top: 0px;
243
+    display: flex;
244
+    justify-content: center;
245
+    align-items: center;
246
+    flex-wrap: nowrap;
247
+    flex-direction: row;
248
+    align-content: flex-start;
249
+  }
250
+  /* 输入框加上上下边是 32px + 2px =34px */
251
+  .el-input__icon {
252
+    line-height: 0px;
253
+  }
254
+}
255
+/deep/ .form-wrapper .el-button {
256
+  background: linear-gradient(90deg,#0158d9,#3c97e4);
257
+  width: 100px;
258
+  height: 40px;
259
+}
152 260
 .body-wrapper {
153 261
   padding: 20px;
154 262
   background: #0c0c0c;
@@ -160,24 +268,13 @@
160 268
     text-align: right;
161 269
   }
162 270
   .search-card{
163
-    font-size: 24px;
164
-    font-weight: bold;
165
-    color: #3498db;
166 271
     margin-bottom: 20px;
272
+    text-align: center;
167 273
     .input-wrapper{
168 274
       width: 36%;
169 275
     }
170 276
   }
171 277
 }
172
-
173
-.charts{
174
-  width: 100%;
175
-  display: flex;
176
-  justify-content: space-between;
177
-}
178
-.h4font{
179
-  color: #FFFFFF;
180
-}
181 278
 .audit-dialog{
182 279
   .mg-bt{
183 280
     margin-bottom: 24px;
@@ -185,5 +282,14 @@
185 282
   .label{
186 283
     text-align: right;
187 284
   }
285
+  .form-div{
286
+    /deep/ .el-input__inner{
287
+      height: 35px;
288
+      width: 90%;
289
+      border: 1px solid #a6a5a5;
290
+      color: #fff;
291
+      background: #2d3744;
292
+    }
293
+  }
188 294
 }
189 295
 </style>

+ 1 - 1
src/pages/index/components/charge_price.vue

@@ -133,7 +133,7 @@ export default {
133 133
       this.getTableData2()
134 134
     },
135 135
     getModelDataData(){
136
-      api.queryChargePrice_Sfdjfx().then(res=>{
136
+      api.queryChargePrice_Sfdjfx({}).then(res=>{
137 137
         this.modelData=res.data || [];
138 138
       })
139 139
     },

+ 66 - 38
src/pages/index/components/enterprise_service.vue

@@ -1,22 +1,15 @@
1 1
 <template xmlns:piechart="http://www.w3.org/1999/html">
2 2
   <div class="body-wrapper">
3
-    <div style="margin-bottom: 20px" class="search-card">
4
-      <el-form class="form-wrapper" :inline="true" :model="formInline">
5
-        <el-row>
6
-          <el-col :span="8">
7
-            <el-form-item label="停车场名称:">
8
-              <el-input v-model="formInline.carParkName" placeholder="请输入关键字"></el-input>
9
-            </el-form-item>
10
-          </el-col>
11
-          <el-col :span="8">
12
-            <el-form-item>
13
-              <el-button type="primary" @click="onSubmit">查询</el-button>
14
-            </el-form-item>
15
-          </el-col>
16
-        </el-row>
17
-      </el-form>
18
-    </div>
19
-    <br>
3
+    <el-form class="form-wrapper" :inline="true" :model="formInline">
4
+      <el-form-item label="行政区">
5
+        <el-select clearable v-model="formInline.regionCode" placeholder="请选择" popper-class="cur-select">
6
+          <el-option v-for="item in districtOptions"  :key="item.label" :label="item.label" :value="item.value"></el-option>
7
+        </el-select>
8
+      </el-form-item>
9
+      <el-form-item>
10
+        <el-button type="primary" @click="onSubmit">查询</el-button>
11
+      </el-form-item>
12
+    </el-form>
20 13
     <br>
21 14
     <el-table :data="tableData" style="background: #2a2a2a;border-color: #333;">
22 15
       <el-table-column v-for="(item, index) in columns" :key="index" :label="item.label" :prop="item.key">
@@ -35,6 +28,7 @@
35 28
 <script>
36 29
 import api from "@/api/audit.js";
37 30
 import piechart from "@/components/pieChart";
31
+import options from '@/util/options'
38 32
 
39 33
 export default {
40 34
   components: {
@@ -42,8 +36,9 @@ export default {
42 36
   },
43 37
   data() {
44 38
     return {
39
+      districtOptions: options.districtOptions,
45 40
       formInline: {
46
-        carParkName: ''
41
+        regionCode: ''
47 42
       },
48 43
       columns: [
49 44
         {
@@ -90,26 +85,56 @@ export default {
90 85
 }
91 86
 </script>
92 87
 <style  lang="scss" scoped>
93
-
94 88
 .body-wrapper {
95
-  padding: 20px;
89
+  width: 100%;
90
+  height: 100%;
91
+  box-sizing: border-box;
96 92
   background: #0c0c0c;
97
-  .button-block{
98
-    text-align: right;
99
-    margin-bottom: 20px;
93
+
94
+}
95
+.model-pie-body {
96
+  width: 100%;
97
+  height: 99%;
98
+}
99
+
100
+
101
+.form-wrapper {
102
+  margin-bottom: 20px;
103
+}
104
+/deep/ .el-input__inner {
105
+  background: #2d3744;
106
+  border: none;
107
+  border-radius: 0;
108
+}
109
+/deep/ .el-select {
110
+  height: 40px;
111
+  .el-input__inner {
112
+    height: 40px;
100 113
   }
101
-  .table-pagination{
102
-    text-align: right;
114
+  .el-input__prefix, .el-input__suffix {
115
+    height: 40px;
103 116
   }
104
-  /deep/ .el-input__inner {
105
-    background: #2d3744;
106
-    border: none;
107
-    border-radius: 5px;
117
+
118
+  /* 下面设置右侧按钮居中 */
119
+  .el-input__suffix {
120
+    top: 0px;
121
+    display: flex;
122
+    justify-content: center;
123
+    align-items: center;
124
+    flex-wrap: nowrap;
125
+    flex-direction: row;
126
+    align-content: flex-start;
108 127
   }
109
-  /deep/ .form-wrapper .el-button {
110
-    margin-top: 5px;
128
+  /* 输入框加上上下边是 32px + 2px =34px */
129
+  .el-input__icon {
130
+    line-height: 0px;
111 131
   }
112 132
 }
133
+/deep/ .form-wrapper .el-button {
134
+  background: linear-gradient(90deg,#0158d9,#3c97e4);
135
+  width: 100px;
136
+  height: 40px;
137
+}
113 138
 .body-wrapper {
114 139
   padding: 20px;
115 140
   background: #0c0c0c;
@@ -121,18 +146,12 @@ export default {
121 146
     text-align: right;
122 147
   }
123 148
   .search-card{
124
-    font-size: 24px;
125
-    font-weight: bold;
126
-    color: #3498db;
127
-    margin-bottom: 20px;
149
+    //text-align: center;
128 150
     .input-wrapper{
129 151
       width: 36%;
130 152
     }
131 153
   }
132 154
 }
133
-.h4font{
134
-  color: #FFFFFF;
135
-}
136 155
 .audit-dialog{
137 156
   .mg-bt{
138 157
     margin-bottom: 24px;
@@ -140,5 +159,14 @@ export default {
140 159
   .label{
141 160
     text-align: right;
142 161
   }
162
+  .form-div{
163
+    /deep/ .el-input__inner{
164
+      height: 35px;
165
+      width: 90%;
166
+      border: 1px solid #a6a5a5;
167
+      color: #fff;
168
+      background: #2d3744;
169
+    }
170
+  }
143 171
 }
144 172
 </style>

+ 105 - 14
src/pages/index/components/equipment_running.vue

@@ -13,6 +13,25 @@
13 13
       </el-pagination>
14 14
     </div>
15 15
     <br>
16
+    <el-form class="form-wrapper" :inline="true" :model="formInline" style="margin-bottom: 20px;">
17
+      <el-form-item label="行政区">
18
+        <el-select clearable v-model="formInline.regionCode" placeholder="请选择" popper-class="cur-select">
19
+          <el-option v-for="item in districtOptions"  :key="item.label" :label="item.label" :value="item.value"></el-option>
20
+        </el-select>
21
+      </el-form-item>
22
+      <el-form-item clearable label="具体道路">
23
+        <el-input v-model="formInline.streetName" placeholder="请输入"></el-input>
24
+      </el-form-item>
25
+      <el-form-item label="停车场">
26
+        <el-select clearable v-model="formInline.parkId" placeholder="请选择" popper-class="cur-select">
27
+          <el-option v-for="item in carOptions" :key="item.parkId" :label="item.carParkName" :value="item.parkId"></el-option>
28
+        </el-select>
29
+      </el-form-item>
30
+      <el-form-item>
31
+        <el-button type="primary" @click="queryAll">查询</el-button>
32
+      </el-form-item>
33
+    </el-form>
34
+    <br>
16 35
     <div style="width: 100%;display: flex;justify-content: space-between;">
17 36
       <div style="width: 33%;height: 400px;">
18 37
         <h4 style="color: white">摄像头</h4>
@@ -64,6 +83,7 @@
64 83
 <script>
65 84
 import piechart from "@/components/pieChart";
66 85
 import api from "@/api/article_z";
86
+import options from '@/util/options'
67 87
 
68 88
 export default {
69 89
   components: {
@@ -71,6 +91,8 @@ export default {
71 91
   },
72 92
   data() {
73 93
     return {
94
+      districtOptions: options.districtOptions,
95
+      carOptions: [],
74 96
       columns: [
75 97
         {
76 98
           label: '设备名称',
@@ -91,24 +113,36 @@ export default {
91 113
       total: 0,
92 114
       pageSize: 10,
93 115
       pageNum: 1,
116
+      formInline: {
117
+        regionCode: '',
118
+        keyAreas: '',
119
+        streetName: '',
120
+        parkId: '',
121
+      }
94 122
     }
95 123
   },
96 124
   mounted() {
97
-    const {pageNum, pageSize} = this
98
-    let that = this
99
-    let params4 = {current: pageNum, size: pageSize}
100
-    let requestList = [api.queryEquipmentRunning_Sxt(), api.queryEquipmentRunning_Zj(),api.queryEquipmentRunning_Mwxsq(), api.sbyxjcList(params4)];
101
-    Promise.all(requestList).then(res => {
102
-      that.modelData = res[0].data || []
103
-      that.modelData2 = res[1].data || []
104
-      that.modelData3 = res[2].data || []
105
-      this.tableData = res[3].data.records || []
106
-      this.total = res[3].data.total || 0
107
-    })
125
+    this.getParkDic()
126
+    this.getTableData()
127
+    this.queryAll()
108 128
   },
109 129
   watch: {
110 130
   },
111 131
   methods: {
132
+    getParkDic() {
133
+      api.parkDic().then(res => {
134
+        this.carOptions = res.data || [];
135
+      })
136
+    },
137
+    queryAll() {
138
+      let params = {...this.formInline}
139
+      let requestList = [api.queryEquipmentRunning_Sxt(params), api.queryEquipmentRunning_Zj(params),api.queryEquipmentRunning_Mwxsq(params)];
140
+      Promise.all(requestList).then(res => {
141
+        that.modelData = res[0].data || []
142
+        that.modelData2 = res[1].data || []
143
+        that.modelData3 = res[2].data || []
144
+      })
145
+    },
112 146
     handlePageChange() {
113 147
       this.getTableData()
114 148
     },
@@ -123,6 +157,56 @@ export default {
123 157
 }
124 158
 </script>
125 159
 <style  lang="scss" scoped>
160
+.body-wrapper {
161
+  width: 100%;
162
+  height: 100%;
163
+  box-sizing: border-box;
164
+  background: #0c0c0c;
165
+
166
+}
167
+.model-pie-body {
168
+  width: 100%;
169
+  height: 99%;
170
+}
171
+
172
+
173
+.form-wrapper {
174
+  margin-bottom: 20px;
175
+}
176
+/deep/ .el-input__inner {
177
+  background: #2d3744;
178
+  border: none;
179
+  border-radius: 0;
180
+}
181
+/deep/ .el-select {
182
+  height: 40px;
183
+  .el-input__inner {
184
+    height: 40px;
185
+  }
186
+  .el-input__prefix, .el-input__suffix {
187
+    height: 40px;
188
+  }
189
+
190
+  /* 下面设置右侧按钮居中 */
191
+  .el-input__suffix {
192
+    top: 0px;
193
+    display: flex;
194
+    justify-content: center;
195
+    align-items: center;
196
+    flex-wrap: nowrap;
197
+    flex-direction: row;
198
+    align-content: flex-start;
199
+  }
200
+  /* 输入框加上上下边是 32px + 2px =34px */
201
+  .el-input__icon {
202
+    line-height: 0px;
203
+  }
204
+}
205
+/deep/ .form-wrapper .el-button {
206
+  background: linear-gradient(90deg,#0158d9,#3c97e4);
207
+  width: 100px;
208
+  height: 40px;
209
+}
126 210
 .body-wrapper {
127 211
   padding: 20px;
128 212
   background: #0c0c0c;
@@ -134,10 +218,8 @@ export default {
134 218
     text-align: right;
135 219
   }
136 220
   .search-card{
137
-    font-size: 24px;
138
-    font-weight: bold;
139
-    color: #3498db;
140 221
     margin-bottom: 20px;
222
+    text-align: center;
141 223
     .input-wrapper{
142 224
       width: 36%;
143 225
     }
@@ -150,5 +232,14 @@ export default {
150 232
   .label{
151 233
     text-align: right;
152 234
   }
235
+  .form-div{
236
+    /deep/ .el-input__inner{
237
+      height: 35px;
238
+      width: 90%;
239
+      border: 1px solid #a6a5a5;
240
+      color: #fff;
241
+      background: #2d3744;
242
+    }
243
+  }
153 244
 }
154 245
 </style>

+ 8 - 12
src/pages/index/components/other_analyse.vue

@@ -1,9 +1,5 @@
1 1
 <template>
2 2
   <div class="body-wrapper">
3
-    <div class="search-card">
4
-      <h5>其他分析</h5>
5
-    </div>
6
-    <br>
7 3
     <div class="charts">
8 4
       <div style="width: 50%;height: 500px">
9 5
         <h4 style="color: white">区域分析</h4>
@@ -62,8 +58,8 @@
62 58
           :tooltip="tooltipFormat2"
63 59
           :dataset="tcfbfx"
64 60
           :encode="[
65
-            {x: 'mouth', y: 'hc', seriesName: '路外停车'},
66
-            {x: 'mouth', y: 'cs', seriesName: '路内停车'},
61
+            {x: 'mouth', y: 'cs', seriesName: '路外停车'},
62
+            {x: 'mouth', y: 'hs', seriesName: '路内停车'},
67 63
             ]"
68 64
           :labelSize="20"
69 65
           id="tcfbfx"
@@ -85,8 +81,8 @@
85 81
           :tooltip="tooltipFormat3"
86 82
           :dataset="ywfx"
87 83
           :encode="[
88
-            {x: 'mouth', y: 'hs', seriesName: '路外余位'},
89
-            {x: 'mouth', y: 'cs', seriesName: '路内余位'},
84
+            {x: 'mouth', y: 'cs', seriesName: '路外余位'},
85
+            {x: 'mouth', y: 'hs', seriesName: '路内余位'},
90 86
             ]"
91 87
           :labelSize="20"
92 88
           id="ywfx"
@@ -390,10 +386,10 @@ export default {
390 386
       const data = params[0].data;
391 387
       return `<div class="line-tooltip">
392 388
         <div style="color: ${params[0].color}">${params[0].seriesName}: ${
393
-        params[0].data.hs || "--"
389
+        params[0].data.cs || 0
394 390
       }(辆)</div>
395 391
         <div style="color: ${params[1].color}">${params[1].seriesName}: ${
396
-        params[0].data.cs || "--"
392
+        params[0].data.hs || 0
397 393
       }(辆)</div>
398 394
       </div>`;
399 395
     },
@@ -401,10 +397,10 @@ export default {
401 397
       const data = params[0].data;
402 398
       return `<div class="line-tooltip">
403 399
         <div style="color: ${params[0].color}">${params[0].seriesName}: ${
404
-        params[0].data.hs || "--"
400
+        params[0].data.cs || "--"
405 401
       }(辆)</div>
406 402
         <div style="color: ${params[1].color}">${params[1].seriesName}: ${
407
-        params[0].data.cs || "--"
403
+        params[0].data.hs || "--"
408 404
       }(辆)</div>
409 405
       </div>`;
410 406
     },

+ 112 - 55
src/pages/index/components/park_bahavior.vue

@@ -1,10 +1,25 @@
1 1
 <template>
2 2
   <div class="body-wrapper">
3
-    <div class="search-card">
4
-      <h5>泊位基础情况分析</h5>
5
-    </div>
3
+    <el-form class="form-wrapper" :inline="true" :model="formInline" style="margin-bottom: 20px;">
4
+      <el-form-item label="行政区">
5
+        <el-select clearable v-model="formInline.regionCode" placeholder="请选择" popper-class="cur-select">
6
+          <el-option v-for="item in districtOptions"  :key="item.label" :label="item.label" :value="item.value"></el-option>
7
+        </el-select>
8
+      </el-form-item>
9
+      <el-form-item clearable label="具体道路">
10
+        <el-input v-model="formInline.streetName" placeholder="请输入"></el-input>
11
+      </el-form-item>
12
+      <el-form-item label="停车场">
13
+        <el-select clearable v-model="formInline.parkId" placeholder="请选择" popper-class="cur-select">
14
+          <el-option v-for="item in carOptions" :key="item.parkId" :label="item.carParkName" :value="item.parkId"></el-option>
15
+        </el-select>
16
+      </el-form-item>
17
+      <el-form-item>
18
+        <el-button type="primary" @click="queryAll">查询</el-button>
19
+      </el-form-item>
20
+    </el-form>
6 21
     <br>
7
-    <div class="charts">
22
+    <div class="charts" style="display: flex">
8 23
       <div style="width: 50%;height: 500px;">
9 24
         <h4 style="color: white">停车时长分析</h4>
10 25
         <piechart
@@ -18,7 +33,6 @@
18 33
           :encode="{ itemName: 'name', value: 'value' }"
19 34
         />
20 35
       </div>
21
-
22 36
       <div style="width: 50%;height: 500px;">
23 37
         <h4 style="color: white">停车时段分析</h4>
24 38
         <linechart
@@ -40,8 +54,7 @@
40 54
       <br>
41 55
     </div>
42 56
     <br>
43
-    <br>
44
-    <div class="charts">
57
+    <div class="charts" style="display: flex">
45 58
       <div style="width: 50%;height: 500px;">
46 59
         <h4 style="color: white">临时停车分析</h4>
47 60
         <piechart
@@ -76,6 +89,7 @@
76 89
 import piechart from "@/components/pieChart";
77 90
 import linechart from "@/components/lineChart";
78 91
 import api from "@/api/article_liao";
92
+import options from '@/util/options'
79 93
 export default {
80 94
   components: {
81 95
     piechart,
@@ -83,24 +97,42 @@ export default {
83 97
   },
84 98
   data() {
85 99
     return {
100
+      districtOptions: options.districtOptions,
101
+      carOptions: [],
86 102
       linedata: [],
87 103
       modelPieColor: ["#4382f6","#9078f8","#DAA520","#2E8B57"],
88 104
       modelData: [],
89 105
       modelPieColor4: ["#4382f6","#9078f8"],
90 106
       modelData4: [],
91 107
       modelPieColor5: ["#4382f6","#9078f8"],
92
-      modelData5: []
108
+      modelData5: [],
109
+      formInline: {
110
+        regionCode: '',
111
+        keyAreas: '',
112
+        streetName: '',
113
+        parkId: '',
114
+      }
93 115
     }
94 116
   },
95 117
   mounted() {
96
-    this.parkBehaviorDuration()
97
-    this.parkBehaviorRange()
98
-    this.parkBehaviorTemporary()
99
-    this.parkBehaviorNight()
118
+    this.getParkDic()
119
+    this.queryAll()
100 120
   },
101 121
   watch: {
102 122
   },
103 123
   methods: {
124
+    getParkDic() {
125
+      api.parkDic().then(res => {
126
+        this.carOptions = res.data || [];
127
+      })
128
+    },
129
+    queryAll() {
130
+      let params = {...this.formInline}
131
+      this.parkBehaviorDuration(params)
132
+      this.parkBehaviorRange(params)
133
+      this.parkBehaviorTemporary(params)
134
+      this.parkBehaviorNight(params)
135
+    },
104 136
     lineTooltipFormat(params) {
105 137
       return `<div class="line-tooltip">
106 138
         <div style="color: ${params[0].color}">${params[0].seriesName}: ${
@@ -111,23 +143,23 @@ export default {
111 143
       }</div>
112 144
       </div>`;
113 145
     },
114
-    parkBehaviorDuration() {
115
-      api.parkBehaviorDuration().then(res =>{
146
+    parkBehaviorDuration(params) {
147
+      api.parkBehaviorDuration(params).then(res =>{
116 148
         this.modelData = res.data
117 149
       })
118 150
     },
119
-    parkBehaviorRange(){
120
-      api.parkBehaviorRange().then(res =>{
151
+    parkBehaviorRange(params){
152
+      api.parkBehaviorRange(params).then(res =>{
121 153
         this.linedata = res.data
122 154
       })
123 155
     },
124
-    parkBehaviorTemporary(){
125
-      api.parkBehaviorTemporary().then(res =>{
156
+    parkBehaviorTemporary(params){
157
+      api.parkBehaviorTemporary(params).then(res =>{
126 158
         this.modelData4 = res.data
127 159
       })
128 160
     },
129
-    parkBehaviorNight(){
130
-      api.parkBehaviorNight().then(res =>{
161
+    parkBehaviorNight(params){
162
+      api.parkBehaviorNight(params).then(res =>{
131 163
         this.modelData5 = res.data
132 164
       })
133 165
     }
@@ -136,9 +168,58 @@ export default {
136 168
 </script>
137 169
 <style  lang="scss" scoped>
138 170
 .body-wrapper {
139
-  padding: 20px;
171
+  width: 100%;
172
+  height: 100%;
173
+  box-sizing: border-box;
140 174
   background: #0c0c0c;
175
+
176
+}
177
+.model-pie-body {
141 178
   width: 100%;
179
+  height: 99%;
180
+}
181
+
182
+
183
+.form-wrapper {
184
+  margin-bottom: 20px;
185
+}
186
+/deep/ .el-input__inner {
187
+  background: #2d3744;
188
+  border: none;
189
+  border-radius: 0;
190
+}
191
+/deep/ .el-select {
192
+  height: 40px;
193
+  .el-input__inner {
194
+    height: 40px;
195
+  }
196
+  .el-input__prefix, .el-input__suffix {
197
+    height: 40px;
198
+  }
199
+
200
+  /* 下面设置右侧按钮居中 */
201
+  .el-input__suffix {
202
+    top: 0px;
203
+    display: flex;
204
+    justify-content: center;
205
+    align-items: center;
206
+    flex-wrap: nowrap;
207
+    flex-direction: row;
208
+    align-content: flex-start;
209
+  }
210
+  /* 输入框加上上下边是 32px + 2px =34px */
211
+  .el-input__icon {
212
+    line-height: 0px;
213
+  }
214
+}
215
+/deep/ .form-wrapper .el-button {
216
+  background: linear-gradient(90deg,#0158d9,#3c97e4);
217
+  width: 100px;
218
+  height: 40px;
219
+}
220
+.body-wrapper {
221
+  padding: 20px;
222
+  background: #0c0c0c;
142 223
   .button-block{
143 224
     text-align: right;
144 225
     margin-bottom: 20px;
@@ -147,46 +228,13 @@ export default {
147 228
     text-align: right;
148 229
   }
149 230
   .search-card{
150
-    font-size: 24px;
151
-    font-weight: bold;
152
-    color: #3498db;
153 231
     margin-bottom: 20px;
232
+    text-align: center;
154 233
     .input-wrapper{
155 234
       width: 36%;
156 235
     }
157 236
   }
158 237
 }
159
-
160
-.charts{
161
-  width: 100%;
162
-  display: flex;
163
-  justify-content: space-between;
164
-}
165
-.btn_save{
166
-  background-color: #3498db;
167
-  color: #ffffff;
168
-  padding: 10px 20px;
169
-  cursor: pointer;
170
-  border: none;
171
-  border-radius: 4px;
172
-  font-size: 16px;
173
-  height: 40px;
174
-}
175
-
176
-.sel{
177
-  height: 200px;
178
-  margin-right: 10px;
179
-}
180
-
181
-.input-search{
182
-  width: 100%;
183
-  padding: 10px;
184
-  margin-bottom: 20px;
185
-  box-sizing: border-box;
186
-  background-color: #2a2a2a;
187
-  border: 1px solid #333;
188
-  color: #ffffff;
189
-}
190 238
 .audit-dialog{
191 239
   .mg-bt{
192 240
     margin-bottom: 24px;
@@ -194,5 +242,14 @@ export default {
194 242
   .label{
195 243
     text-align: right;
196 244
   }
245
+  .form-div{
246
+    /deep/ .el-input__inner{
247
+      height: 35px;
248
+      width: 90%;
249
+      border: 1px solid #a6a5a5;
250
+      color: #fff;
251
+      background: #2d3744;
252
+    }
253
+  }
197 254
 }
198 255
 </style>

+ 8 - 1
src/pages/index/components/park_monitor.vue

@@ -105,6 +105,13 @@ export default {
105 105
       total2: 0,
106 106
       pageSize2: 5,
107 107
       pageNum2: 1,
108
+      formInline: {
109
+        regionCode: '',
110
+        keyAreas: '',
111
+        streetName: '',
112
+        parkId: '',
113
+        time: [],
114
+      }
108 115
     }
109 116
   },
110 117
   mounted() {
@@ -136,7 +143,7 @@ export default {
136 143
       this.getTableData2()
137 144
     },
138 145
     parkMonitorStat(){
139
-      api.parkMonitorStat().then(res =>{
146
+      api.parkMonitorStat(this.formInline).then(res =>{
140 147
         this.modelData = res.data || []
141 148
       })
142 149
     }

+ 106 - 27
src/pages/index/components/parking_fee.vue

@@ -1,21 +1,31 @@
1 1
 <template>
2 2
   <div class="body-wrapper">
3
-    <div style="margin-bottom: 20px" class="search-card">
4
-      <el-form class="form-wrapper" :inline="true" :model="formInline">
5
-        <el-row>
6
-          <el-col :span="8">
7
-            <el-form-item label="车牌号:">
8
-              <el-input v-model="formInline.plateNo" placeholder="请输入车牌号"></el-input>
9
-            </el-form-item>
10
-          </el-col>
11
-          <el-col :span="8">
12
-            <el-form-item>
13
-              <el-button type="primary" @click="onSubmit">查询</el-button>
14
-            </el-form-item>
15
-          </el-col>
16
-        </el-row>
17
-      </el-form>
18
-    </div>
3
+    <el-form class="form-wrapper" :inline="true" :model="formInline">
4
+<!--      <el-form-item label="停车场">-->
5
+<!--        <el-select clearable v-model="formInline.parkId" placeholder="请选择" popper-class="cur-select">-->
6
+<!--          <el-option v-for="item in carOptions" :key="item.parkId" :label="item.carParkName" :value="item.parkId"></el-option>-->
7
+<!--        </el-select>-->
8
+<!--      </el-form-item>-->
9
+      <el-form-item label="车牌号:">
10
+        <el-input v-model="formInline.plateNo" placeholder="请输入车牌号"></el-input>
11
+      </el-form-item>
12
+
13
+<!--      <el-form-item label="查询日期">-->
14
+<!--        <el-date-picker-->
15
+<!--          clearable-->
16
+<!--          v-model="formInline.time"-->
17
+<!--          type="daterange"-->
18
+<!--          range-separator="至"-->
19
+<!--          start-placeholder="开始日期"-->
20
+<!--          value-format="yyyy-MM-dd"-->
21
+<!--          end-placeholder="结束日期">-->
22
+<!--        </el-date-picker>-->
23
+<!--      </el-form-item>-->
24
+      <el-form-item>
25
+        <el-button type="primary" @click="onSubmit">查询</el-button>
26
+      </el-form-item>
27
+    </el-form>
28
+    <br>
19 29
     <el-table :data="tableData" style="background: #2a2a2a;border-color: #333;">
20 30
       <el-table-column v-for="(item, index) in columns" :key="index" :label="item.label" :prop="item.key">
21 31
       </el-table-column>
@@ -35,6 +45,7 @@ export default {
35 45
   components: {},
36 46
   data() {
37 47
     return {
48
+      carOptions: [],
38 49
       columns: [
39 50
         {
40 51
           label: '停车场',
@@ -83,17 +94,25 @@ export default {
83 94
       pageNum: 1,
84 95
       searchWords: undefined,
85 96
       formInline: {
86
-        plateNo: ''
97
+        parkId: '',
98
+        plateNo: '',
99
+        time: []
87 100
       },
88 101
       title: ''
89 102
     }
90 103
   },
91 104
   mounted() {
105
+    this.getParkDic()
92 106
     this.getTableData()
93 107
   },
94 108
   watch: {
95 109
   },
96 110
   methods: {
111
+    getParkDic() {
112
+      api.parkDic().then(res => {
113
+        this.carOptions = res.data || [];
114
+      })
115
+    },
97 116
     handlePageChange() {
98 117
       this.getTableData()
99 118
     },
@@ -102,7 +121,18 @@ export default {
102 121
     },
103 122
     getTableData() {
104 123
       const {pageNum, pageSize} = this
105
-      api.tcsfztListByPage({current: pageNum, size: pageSize, ...this.formInline}).then(res => {
124
+      let params = {...this.formInline}
125
+      if (
126
+        this.formInline.time && this.formInline.time.length === 2 &&
127
+        this.formInline.time[1] !== ""
128
+      ) {
129
+        this.formInline.time[0] = this.formInline.time[0].substring(0, 10) + " 00:00:00";
130
+        this.formInline.time[1] = this.formInline.time[1].substring(0, 10) + " 23:59:59";
131
+        params.startInTime= this.formInline.time[0]
132
+        params.endInTime = this.formInline.time[1]
133
+      }
134
+      delete params.time
135
+      api.tcsfztListByPage({current: pageNum, size: pageSize, ...params}).then(res => {
106 136
         this.tableData = (res.data.records || []).map(item => ({...item, plateColor: dictionary.plateColorMap[item.plateColor]}))
107 137
         this.total = res.data.total
108 138
       })
@@ -111,6 +141,56 @@ export default {
111 141
 }
112 142
 </script>
113 143
 <style  lang="scss" scoped>
144
+.body-wrapper {
145
+  width: 100%;
146
+  height: 100%;
147
+  box-sizing: border-box;
148
+  background: #0c0c0c;
149
+
150
+}
151
+.model-pie-body {
152
+  width: 100%;
153
+  height: 99%;
154
+}
155
+
156
+
157
+.form-wrapper {
158
+  margin-bottom: 20px;
159
+}
160
+/deep/ .el-input__inner {
161
+  background: #2d3744;
162
+  border: none;
163
+  border-radius: 0;
164
+}
165
+/deep/ .el-select {
166
+  height: 40px;
167
+  .el-input__inner {
168
+    height: 40px;
169
+  }
170
+  .el-input__prefix, .el-input__suffix {
171
+    height: 40px;
172
+  }
173
+
174
+  /* 下面设置右侧按钮居中 */
175
+  .el-input__suffix {
176
+    top: 0px;
177
+    display: flex;
178
+    justify-content: center;
179
+    align-items: center;
180
+    flex-wrap: nowrap;
181
+    flex-direction: row;
182
+    align-content: flex-start;
183
+  }
184
+  /* 输入框加上上下边是 32px + 2px =34px */
185
+  .el-input__icon {
186
+    line-height: 0px;
187
+  }
188
+}
189
+/deep/ .form-wrapper .el-button {
190
+  background: linear-gradient(90deg,#0158d9,#3c97e4);
191
+  width: 100px;
192
+  height: 40px;
193
+}
114 194
 .body-wrapper {
115 195
   padding: 20px;
116 196
   background: #0c0c0c;
@@ -121,13 +201,12 @@ export default {
121 201
   .table-pagination{
122 202
     text-align: right;
123 203
   }
124
-  /deep/ .el-input__inner {
125
-    background: #2d3744;
126
-    border: none;
127
-    border-radius: 5px;
128
-  }
129
-  /deep/ .form-wrapper .el-button {
130
-    margin-top: 5px;
204
+  .search-card{
205
+    margin-bottom: 20px;
206
+    text-align: center;
207
+    .input-wrapper{
208
+      width: 36%;
209
+    }
131 210
   }
132 211
 }
133 212
 .audit-dialog{
@@ -139,11 +218,11 @@ export default {
139 218
   }
140 219
   .form-div{
141 220
     /deep/ .el-input__inner{
142
-      background: white;
143 221
       height: 35px;
144 222
       width: 90%;
145 223
       border: 1px solid #a6a5a5;
146
-      color: black;
224
+      color: #fff;
225
+      background: #2d3744;
147 226
     }
148 227
   }
149 228
 }

+ 73 - 1
src/pages/index/components/vehicle_violations.vue

@@ -187,12 +187,84 @@ export default {
187 187
   height: 100%;
188 188
   box-sizing: border-box;
189 189
   background: #0c0c0c;
190
-}
191 190
 
191
+}
192 192
 .model-pie-body {
193 193
   width: 100%;
194 194
   height: 99%;
195 195
 }
196 196
 
197 197
 
198
+.form-wrapper {
199
+  margin-bottom: 20px;
200
+}
201
+/deep/ .el-input__inner {
202
+  background: #2d3744;
203
+  border: none;
204
+  border-radius: 0;
205
+}
206
+/deep/ .el-select {
207
+  height: 40px;
208
+  .el-input__inner {
209
+    height: 40px;
210
+  }
211
+  .el-input__prefix, .el-input__suffix {
212
+    height: 40px;
213
+  }
214
+
215
+  /* 下面设置右侧按钮居中 */
216
+  .el-input__suffix {
217
+    top: 0px;
218
+    display: flex;
219
+    justify-content: center;
220
+    align-items: center;
221
+    flex-wrap: nowrap;
222
+    flex-direction: row;
223
+    align-content: flex-start;
224
+  }
225
+  /* 输入框加上上下边是 32px + 2px =34px */
226
+  .el-input__icon {
227
+    line-height: 0px;
228
+  }
229
+}
230
+/deep/ .form-wrapper .el-button {
231
+  background: linear-gradient(90deg,#0158d9,#3c97e4);
232
+  width: 100px;
233
+  height: 40px;
234
+}
235
+.body-wrapper {
236
+  padding: 20px;
237
+  background: #0c0c0c;
238
+  .button-block{
239
+    text-align: right;
240
+    margin-bottom: 20px;
241
+  }
242
+  .table-pagination{
243
+    text-align: right;
244
+  }
245
+  .search-card{
246
+    margin-bottom: 20px;
247
+    text-align: center;
248
+    .input-wrapper{
249
+      width: 36%;
250
+    }
251
+  }
252
+}
253
+.audit-dialog{
254
+  .mg-bt{
255
+    margin-bottom: 24px;
256
+  }
257
+  .label{
258
+    text-align: right;
259
+  }
260
+  .form-div{
261
+    /deep/ .el-input__inner{
262
+      height: 35px;
263
+      width: 90%;
264
+      border: 1px solid #a6a5a5;
265
+      color: #fff;
266
+      background: #2d3744;
267
+    }
268
+  }
269
+}
198 270
 </style>

+ 2 - 2
static/mung-local-config.js

@@ -1,7 +1,7 @@
1 1
 window.mungConfig = {
2 2
   dev: {
3
-    // BASE_API: "http://localhost:16399/luohe2_ee/api"
4
-    BASE_API: "https://park.lhzhtc.cn/luohe2_ee/api"
3
+    BASE_API: "http://localhost:16399/luohe2_ee/api"
4
+    // BASE_API: "https://park.lhzhtc.cn/luohe2_ee/api"
5 5
   },
6 6
   build: {
7 7
     BASE_API: "https://park.lhzhtc.cn/luohe2_ee/api"