Browse Source

bug fixed

duwendi 1 year ago
parent
commit
d0204a495f

+ 4 - 0
src/api/article_z.js

@@ -23,6 +23,10 @@ export default {
23 23
   queryServiceMap(params) {
24 24
     return axios.post(`/dash/service/operations/page`, params)
25 25
   },
26
+  // todo 设备运营主题(重点区域/道路)
27
+  queryServiceList(params) {
28
+    return axios.post(`/dash/service/operations/page`, params)
29
+  },
26 30
   // 区域停车主题_区域饱和度
27 31
   queryParkingArea_qybhd(params) {
28 32
     return axios.post(`/dash/parking/area/stat1`, params)

+ 9 - 1
src/api/audit.js

@@ -17,10 +17,18 @@ export default {
17 17
   qyfwjgListByPage(params) {
18 18
     return axios.get('/dash/enterprise/service/page', {params})
19 19
   },
20
-  // 停车场情况-列表
20
+  //  停车场情况-列表
21 21
   tccqkListByPage(params) {
22 22
     return axios.get('/dash/parking/lot/situation/page', {params})
23 23
   },
24
+  // todo 停车场情况-进场
25
+  jcListByPage(params) {
26
+    return axios.get('/dash/parking/lot/situation/page', {params})
27
+  },
28
+  // todo 停车场情况-出场
29
+  ccListByPage(params) {
30
+    return axios.get('/dash/parking/lot/situation/page', {params})
31
+  },
24 32
   // 停车场情况-总览
25 33
   tccqkView(params) {
26 34
     return axios.get('/dash/parking/lot/situation/view', {params})

+ 5 - 1
src/assets/css/element_ui.css

@@ -44,6 +44,9 @@
44 44
   line-height: 30px;
45 45
 }
46 46
 
47
+
48
+
49
+
47 50
 .el-input-group>.el-input__inner {
48 51
   position: relative;
49 52
   /*width: 220px;*/
@@ -152,7 +155,8 @@
152 155
 .el-table {
153 156
   color: #bbc2d0 !important;
154 157
   font-size: 14px !important;
155
-  background: rgba(0, 0, 0, 0);
158
+  background: rgb(42, 42, 42);
159
+  border-color: rgb(51, 51, 51);
156 160
 }
157 161
 
158 162
 .el-table__body-wrapper::-webkit-scrollbar {

+ 58 - 51
src/pages/index/components/berths_information.vue

@@ -2,25 +2,18 @@
2 2
   <div class="body-wrapper">
3 3
     <el-form class="form-wrapper" :inline="true" :model="formInline">
4 4
       <el-form-item label="行政区">
5
-        <el-select v-model="formInline.region" placeholder="行政区" popper-class="cur-select">
6
-          <el-option label="源汇区" value="源汇区"></el-option>
7
-          <el-option label="郾城区" value="郾城区"></el-option>
8
-          <el-option label="召陵区" value="召陵区"></el-option>
5
+        <el-select v-model="formInline.regionCode" placeholder="请选择" popper-class="cur-select">
6
+          <el-option v-for="item in options"  :key="item.label" :label="item.label" :value="item.value"></el-option>
9 7
         </el-select>
10 8
       </el-form-item>
11
-<!--      <el-form-item label="重点区域">-->
12
-<!--        <el-select v-model="formInline.region2" placeholder="重点区域" popper-class="cur-select">-->
13
-<!--          <el-option label="违规停车高发区" value="违规停车高发区"></el-option>-->
14
-<!--          <el-option label="事故高发区" value="事故高发区"></el-option>-->
15
-<!--        </el-select>-->
16
-<!--      </el-form-item>-->
17
-<!--      <el-form-item label="道路">-->
18
-<!--        <el-select v-model="formInline.region3" placeholder="道路" popper-class="cur-select">-->
19
-<!--          <el-option label="拥政路" value="拥政路"></el-option>-->
20
-<!--          <el-option label="团结路" value="团结路"></el-option>-->
21
-<!--          <el-option label="黄河中路" value="黄河中路"></el-option>-->
22
-<!--        </el-select>-->
23
-<!--      </el-form-item>-->
9
+      <el-form-item label="重点区域">
10
+        <el-select v-model="formInline.keyAreas" placeholder="请选择" popper-class="cur-select">
11
+          <el-option  v-for="item in options1"  :key="item.label" :label="item.label" :value="item.value"></el-option>
12
+        </el-select>
13
+      </el-form-item>
14
+      <el-form-item label="具体道路">
15
+        <el-input v-model="formInline.streetName" placeholder="请输入"></el-input>
16
+      </el-form-item>
24 17
       <el-form-item>
25 18
         <el-button type="primary" @click="onSubmit">查询</el-button>
26 19
       </el-form-item>
@@ -85,27 +78,34 @@ export default {
85 78
   data() {
86 79
     return {
87 80
       options: [{
88
-        value: '源汇区',
81
+        value: '411102',
89 82
         label: '源汇区'
90 83
       }, {
91
-        value: '召陵区',
84
+        value: '411103',
85
+        label: '郾城区'
86
+      },{
87
+        value: '411104',
92 88
         label: '召陵区'
93
-      }],
94
-      options2: [{
95
-        value: '违规停车高发区',
96
-        label: '违规停车高发区'
97 89
       }, {
98
-        value: '事故高发区',
99
-        label: '事故高发区'
90
+        value: '411121',
91
+        label: '舞阳县'
92
+      }, {
93
+        value: '411122',
94
+        label: '临颍县'
100 95
       }],
101
-      options3: [{
102
-        value: '团结路',
103
-        label: '团结路'
96
+      options1: [{
97
+        value: '商圈',
98
+        label: '商圈'
99
+      }, {
100
+        value: '学校',
101
+        label: '学校'
102
+      }, {
103
+        value: '医院',
104
+        label: '医院'
104 105
       }, {
105
-        value: '人民东路',
106
-        label: '人民东路'
106
+        value: '旅游景点',
107
+        label: '旅游景点'
107 108
       }],
108
-      value: '',
109 109
       columns: [
110 110
         {
111 111
           label: '日期',
@@ -129,22 +129,15 @@ export default {
129 129
         }
130 130
       ],
131 131
       modelPieColor: ["#2E8B57","#9078f8"],
132
-      modelData: {
133
-        list: []
134
-      },
132
+      modelData: [],
135 133
       modelPieColor2: ["#2E8B57","#9078f8"],
136
-      modelData2: {
137
-        list: []
138
-      },
134
+      modelData2: [],
139 135
       modelPieColor3: ["#2E8B57","#9078f8"],
140
-      modelData3: {
141
-        list: []
142
-      },
136
+      modelData3: [],
143 137
       formInline: {
144
-        interfaceName: '',
145
-        region: '',
146
-        region2: '',
147
-        region3: ''
138
+        regionCode: '',
139
+        keyAreas: '',
140
+        streetName: ''
148 141
       }
149 142
     }
150 143
   },
@@ -157,21 +150,35 @@ export default {
157 150
   },
158 151
   methods: {
159 152
     onSubmit() {
160
-      console.log('submit!');
153
+      this.dashBerthsInformationStat1()
154
+      this.dashBerthsInformationStat2()
155
+      this.dashBerthsInformationStat3()
161 156
     },
162 157
     dashBerthsInformationStat1(){
163
-      api.dashBerthsInformationStat1().then(res =>{
164
-        this.modelData.list = res.data
158
+      api.dashBerthsInformationStat1({...this.formInline}).then(res =>{
159
+        let arr = [
160
+          {name: '占用', value: res.data.records[0].occupancyParkingNumber || 0},
161
+          {name: '空闲', value: res.data.records[0].remainParkingNumber || 0},
162
+        ]
163
+        this.modelData = arr || []
165 164
       })
166 165
     },
167 166
     dashBerthsInformationStat2(){
168
-      api.dashBerthsInformationStat2().then(res =>{
169
-        this.modelData2.list = res.data
167
+      api.dashBerthsInformationStat2({...this.formInline}).then(res =>{
168
+        let arr = [
169
+          {name: '有', value: res.data.records[0].hasChargingNumber || 0},
170
+          {name: '无', value: res.data.records[0].noChargingNumber || 0},
171
+        ]
172
+        this.modelData2 = arr || []
170 173
       })
171 174
     },
172 175
     dashBerthsInformationStat3(){
173
-      api.dashBerthsInformationStat3().then(res =>{
174
-        this.modelData3.list = res.data
176
+      api.dashBerthsInformationStat3({...this.formInline}).then(res =>{
177
+        let arr = [
178
+          {name: '有', value: res.data.records[0].hasChargeNum || 0},
179
+          {name: '无', value: res.data.records[0].noChargeNum || 0},
180
+        ]
181
+        this.modelData3 = arr || []
175 182
       })
176 183
     },
177 184
   }

+ 39 - 27
src/pages/index/components/berths_revenue.vue

@@ -5,25 +5,18 @@
5 5
     <br>
6 6
     <el-form class="form-wrapper" :inline="true" :model="formInline">
7 7
       <el-form-item label="行政区">
8
-        <el-select v-model="formInline.region" placeholder="行政区" popper-class="cur-select">
9
-          <el-option label="源汇区" value="源汇区"></el-option>
10
-          <el-option label="郾城区" value="郾城区"></el-option>
11
-          <el-option label="召陵区" value="召陵区"></el-option>
8
+        <el-select v-model="formInline.regionCode" placeholder="请选择" popper-class="cur-select">
9
+          <el-option v-for="item in options"  :key="item.label" :label="item.label" :value="item.value"></el-option>
12 10
         </el-select>
13 11
       </el-form-item>
14
-<!--      <el-form-item label="重点区域">-->
15
-<!--        <el-select v-model="formInline.region2" placeholder="重点区域" popper-class="cur-select">-->
16
-<!--          <el-option label="违规停车高发区" value="违规停车高发区"></el-option>-->
17
-<!--          <el-option label="事故高发区" value="事故高发区"></el-option>-->
18
-<!--        </el-select>-->
19
-<!--      </el-form-item>-->
20
-<!--      <el-form-item label="道路">-->
21
-<!--        <el-select v-model="formInline.region3" placeholder="道路" popper-class="cur-select">-->
22
-<!--          <el-option label="拥政路" value="拥政路"></el-option>-->
23
-<!--          <el-option label="团结路" value="团结路"></el-option>-->
24
-<!--          <el-option label="黄河中路" value="黄河中路"></el-option>-->
25
-<!--        </el-select>-->
26
-<!--      </el-form-item>-->
12
+      <el-form-item label="重点区域">
13
+        <el-select v-model="formInline.keyAreas" placeholder="请选择" popper-class="cur-select">
14
+          <el-option  v-for="item in options1"  :key="item.label" :label="item.label" :value="item.value"></el-option>
15
+        </el-select>
16
+      </el-form-item>
17
+      <el-form-item label="具体道路">
18
+        <el-input v-model="formInline.streetName" placeholder="请输入"></el-input>
19
+      </el-form-item>
27 20
       <el-form-item>
28 21
         <el-button type="primary" @click="onSubmit">查询</el-button>
29 22
       </el-form-item>
@@ -151,6 +144,22 @@ export default {
151 144
   },
152 145
   data() {
153 146
     return {
147
+      options: [{
148
+        value: '411102',
149
+        label: '源汇区'
150
+      }, {
151
+        value: '411103',
152
+        label: '郾城区'
153
+      },{
154
+        value: '411104',
155
+        label: '召陵区'
156
+      }, {
157
+        value: '411121',
158
+        label: '舞阳县'
159
+      }, {
160
+        value: '411122',
161
+        label: '临颍县'
162
+      }],
154 163
       linedata: [],
155 164
       linedata2: [],
156 165
       linedata3: [],
@@ -164,10 +173,9 @@ export default {
164 173
       dialogVisible: false,
165 174
       selRow: {},
166 175
       formInline: {
167
-        interfaceName: '',
168
-        region: '',
169
-        region2: '',
170
-        region3: ''
176
+        regionCode: '',
177
+        keyAreas: '',
178
+        streetName: ''
171 179
       }
172 180
     }
173 181
   },
@@ -182,7 +190,11 @@ export default {
182 190
   },
183 191
   methods: {
184 192
     onSubmit() {
185
-      console.log('submit!');
193
+      this.dashBerthsRevenueStat1()
194
+      this.dashBerthsRevenueStat2()
195
+      this.dashBerthsRevenueStat3()
196
+      this.dashBerthsRevenueStat4()
197
+      this.dashBerthsRevenueStat5()
186 198
     },
187 199
     lineTooltipFormat(params) {
188 200
       return `<div class="line-tooltip">
@@ -191,27 +203,27 @@ export default {
191 203
       }元</div>`;
192 204
     },
193 205
     dashBerthsRevenueStat1(){
194
-      api.dashBerthsRevenueStat1({}).then(res =>{
206
+      api.dashBerthsRevenueStat1({...this.formInline}).then(res =>{
195 207
         this.linedata = res.data
196 208
       })
197 209
     },
198 210
     dashBerthsRevenueStat2(){
199
-      api.dashBerthsRevenueStat2({}).then(res =>{
211
+      api.dashBerthsRevenueStat2({...this.formInline}).then(res =>{
200 212
         this.linedata2 = res.data
201 213
       })
202 214
     },
203 215
     dashBerthsRevenueStat3(){
204
-      api.dashBerthsRevenueStat3({}).then(res =>{
216
+      api.dashBerthsRevenueStat3({...this.formInline}).then(res =>{
205 217
         this.linedata3 = res.data
206 218
       })
207 219
     },
208 220
     dashBerthsRevenueStat4(){
209
-      api.dashBerthsRevenueStat4({}).then(res =>{
221
+      api.dashBerthsRevenueStat4({...this.formInline}).then(res =>{
210 222
         this.linedata4 = res.data
211 223
       })
212 224
     },
213 225
     dashBerthsRevenueStat5(){
214
-      api.dashBerthsRevenueStat5({}).then(res =>{
226
+      api.dashBerthsRevenueStat5({...this.formInline}).then(res =>{
215 227
         this.linedata5 = res.data
216 228
       })
217 229
     },

+ 58 - 48
src/pages/index/components/berths_usage.vue

@@ -2,25 +2,18 @@
2 2
   <div class="body-wrapper">
3 3
     <el-form class="form-wrapper" :inline="true" :model="formInline">
4 4
       <el-form-item label="行政区">
5
-        <el-select v-model="formInline.region" placeholder="行政区" popper-class="cur-select">
6
-          <el-option label="源汇区" value="源汇区"></el-option>
7
-          <el-option label="郾城区" value="郾城区"></el-option>
8
-          <el-option label="召陵区" value="召陵区"></el-option>
5
+        <el-select v-model="formInline.regionCode" placeholder="请选择" popper-class="cur-select">
6
+          <el-option v-for="item in options"  :key="item.label" :label="item.label" :value="item.value"></el-option>
9 7
         </el-select>
10 8
       </el-form-item>
11
-<!--      <el-form-item label="重点区域">-->
12
-<!--        <el-select v-model="formInline.region2" placeholder="重点区域" popper-class="cur-select">-->
13
-<!--          <el-option label="违规停车高发区" value="违规停车高发区"></el-option>-->
14
-<!--          <el-option label="事故高发区" value="事故高发区"></el-option>-->
15
-<!--        </el-select>-->
16
-<!--      </el-form-item>-->
17
-<!--      <el-form-item label="道路">-->
18
-<!--        <el-select v-model="formInline.region3" placeholder="道路" popper-class="cur-select">-->
19
-<!--          <el-option label="拥政路" value="拥政路"></el-option>-->
20
-<!--          <el-option label="团结路" value="团结路"></el-option>-->
21
-<!--          <el-option label="黄河中路" value="黄河中路"></el-option>-->
22
-<!--        </el-select>-->
23
-<!--      </el-form-item>-->
9
+      <el-form-item label="重点区域">
10
+        <el-select v-model="formInline.keyAreas" placeholder="请选择" popper-class="cur-select">
11
+          <el-option  v-for="item in options1"  :key="item.label" :label="item.label" :value="item.value"></el-option>
12
+        </el-select>
13
+      </el-form-item>
14
+      <el-form-item label="具体道路">
15
+        <el-input v-model="formInline.streetName" placeholder="请输入"></el-input>
16
+      </el-form-item>
24 17
       <el-form-item>
25 18
         <el-button type="primary" @click="onSubmit">查询</el-button>
26 19
       </el-form-item>
@@ -42,10 +35,7 @@
42 35
           :dataset="linedata"
43 36
           :tooltipFormat="lineTooltipFormat"
44 37
           :encode="[
45
-              { x: 'month', y: 'comeIn', seriesName: '入场(路内)',bool:'true' },
46
-              { x: 'month', y: 'comeOut', seriesName: '入场(路外)',bool:'true' },
47
-              { x: 'month', y: 'leftIn', seriesName: '出场(路内)',bool:'true' },
48
-              { x: 'month', y: 'leftOut', seriesName: '出场(路外)',bool:'true' },
38
+              { x: 'month', y: 'leftOut', seriesName: '出场',bool:'true' },
49 39
             ]"
50 40
           id="axstj"
51 41
         />
@@ -66,10 +56,7 @@
66 56
           :dataset="linedata2"
67 57
           :tooltipFormat="lineTooltipFormat"
68 58
           :encode="[
69
-              { x: 'month', y: 'comeIn', seriesName: '入场(路内)',bool:'true' },
70
-              { x: 'month', y: 'comeOut', seriesName: '入场(路外)',bool:'true' },
71
-              { x: 'month', y: 'leftIn', seriesName: '出场(路内)',bool:'true' },
72
-              { x: 'month', y: 'leftOut', seriesName: '出场(路外)',bool:'true' },
59
+              { x: 'month', y: 'comeIn', seriesName: '出场',bool:'true' },
73 60
             ]"
74 61
           id="artj"
75 62
         />
@@ -90,10 +77,7 @@
90 77
           :dataset="linedata3"
91 78
           :tooltipFormat="lineTooltipFormat"
92 79
           :encode="[
93
-              { x: 'month', y: 'comeIn', seriesName: '入场(路内)',bool:'true' },
94
-              { x: 'month', y: 'comeOut', seriesName: '入场(路外)',bool:'true' },
95
-              { x: 'month', y: 'leftIn', seriesName: '出场(路内)',bool:'true' },
96
-              { x: 'month', y: 'leftOut', seriesName: '出场(路外)',bool:'true' },
80
+              { x: 'month', y: 'comeIn', seriesName: '出场',bool:'true' }
97 81
             ]"
98 82
           id="aztj"
99 83
         />
@@ -114,10 +98,7 @@
114 98
           :dataset="linedata4"
115 99
           :tooltipFormat="lineTooltipFormat"
116 100
           :encode="[
117
-              { x: 'month', y: 'comeIn', seriesName: '入场(路内)',bool:'true' },
118
-              { x: 'month', y: 'comeOut', seriesName: '入场(路外)',bool:'true' },
119
-              { x: 'month', y: 'leftIn', seriesName: '出场(路内)',bool:'true' },
120
-              { x: 'month', y: 'leftOut', seriesName: '出场(路外)',bool:'true' },
101
+              { x: 'month', y: 'comeIn',bool:'true' },
121 102
             ]"
122 103
           id="aytj"
123 104
         />
@@ -135,13 +116,10 @@
135 116
           :left="40"
136 117
           :legendTop="0"
137 118
           yAxisName="(辆)"
138
-          :dataset="linedata2"
119
+          :dataset="linedata5"
139 120
           :tooltipFormat="lineTooltipFormat"
140 121
           :encode="[
141
-              { x: 'month', y: 'comeIn', seriesName: '入场(路内)',bool:'true' },
142
-              { x: 'month', y: 'comeOut', seriesName: '入场(路外)',bool:'true' },
143
-              { x: 'month', y: 'leftIn', seriesName: '出场(路内)',bool:'true' },
144
-              { x: 'month', y: 'leftOut', seriesName: '出场(路外)',bool:'true' },
122
+              { x: 'month', y: 'comeIn',bool:'true' }
145 123
             ]"
146 124
           id="antj"
147 125
         />
@@ -163,6 +141,35 @@ export default {
163 141
   },
164 142
   data() {
165 143
     return {
144
+      options: [{
145
+        value: '411102',
146
+        label: '源汇区'
147
+      }, {
148
+        value: '411103',
149
+        label: '郾城区'
150
+      },{
151
+        value: '411104',
152
+        label: '召陵区'
153
+      }, {
154
+        value: '411121',
155
+        label: '舞阳县'
156
+      }, {
157
+        value: '411122',
158
+        label: '临颍县'
159
+      }],
160
+      options1: [{
161
+        value: '商圈',
162
+        label: '商圈'
163
+      }, {
164
+        value: '学校',
165
+        label: '学校'
166
+      }, {
167
+        value: '医院',
168
+        label: '医院'
169
+      }, {
170
+        value: '旅游景点',
171
+        label: '旅游景点'
172
+      }],
166 173
       linedata: [],
167 174
       linedata2: [],
168 175
       linedata3: [],
@@ -176,10 +183,9 @@ export default {
176 183
       dialogVisible: false,
177 184
       selRow: {},
178 185
       formInline: {
179
-        interfaceName: '',
180
-        region: '',
181
-        region2: '',
182
-        region3: ''
186
+        regionCode: '',
187
+        keyAreas: '',
188
+        streetName: ''
183 189
       }
184 190
     }
185 191
   },
@@ -194,30 +200,34 @@ export default {
194 200
   },
195 201
   methods: {
196 202
     onSubmit() {
197
-      console.log('submit!');
203
+      this.dashBerthsUsageStat1()
204
+      this.dashBerthsUsageStat2()
205
+      this.dashBerthsUsageStat3()
206
+      this.dashBerthsUsageStat4()
207
+      this.dashBerthsUsageStat5()
198 208
     },
199 209
     dashBerthsUsageStat1(){
200
-      api.dashBerthsUsageStat1().then(res =>{
210
+      api.dashBerthsUsageStat1({...this.formInline}).then(res =>{
201 211
         this.linedata = res.data
202 212
       })
203 213
     },
204 214
     dashBerthsUsageStat2(){
205
-      api.dashBerthsUsageStat2().then(res =>{
215
+      api.dashBerthsUsageStat2({...this.formInline}).then(res =>{
206 216
         this.linedata2 = res.data
207 217
       })
208 218
     },
209 219
     dashBerthsUsageStat3(){
210
-      api.dashBerthsUsageStat3().then(res =>{
220
+      api.dashBerthsUsageStat3({...this.formInline}).then(res =>{
211 221
         this.linedata3 = res.data
212 222
       })
213 223
     },
214 224
     dashBerthsUsageStat4(){
215
-      api.dashBerthsUsageStat4().then(res =>{
225
+      api.dashBerthsUsageStat4({...this.formInline}).then(res =>{
216 226
         this.linedata4 = res.data
217 227
       })
218 228
     },
219 229
     dashBerthsUsageStat5(){
220
-      api.dashBerthsUsageStat5().then(res =>{
230
+      api.dashBerthsUsageStat5({...this.formInline}).then(res =>{
221 231
         this.linedata5 = res.data
222 232
       })
223 233
     },

+ 117 - 33
src/pages/index/components/parking_lot_situation.vue

@@ -1,37 +1,60 @@
1 1
 <template xmlns:piechart="http://www.w3.org/1999/html">
2 2
   <div class="body-wrapper">
3
-    <div class="search-card">
4
-      <h5>停车场情况</h5>
5
-    </div>
6
-    <br>
7
-    <div style="display: flex;justify-content: space-around;">
8
-      <div style="width: 25%;display: flex;">
9
-      <h4 class="h4font">泊位数量:</h4><h3 class="h4font">{{viewData.totalParkingNumber}}</h3>
10
-      </div>
11
-      <div style="width: 25%;display: flex;">
12
-        <h4 class="h4font">实时余位:</h4><h3 class="h4font">{{viewData.remainParkingNumber}}</h3>
13
-      </div>
14
-      <div style="width: 25%;display: flex;">
15
-        <h4 class="h4font">实时进场:</h4><h3 class="h4font">{{viewData.inNumber}}</h3>
16
-      </div>
17
-      <div style="width: 25%;display: flex;">
18
-        <h4 class="h4font">实时出场:</h4><h3 class="h4font">{{viewData.outNumber}}</h3>
19
-      </div>
20
-    </div>
21
-    <br>
22
-    <br>
23
-    <el-table :data="tableData" style="background: #2a2a2a;border-color: #333;">
24
-      <el-table-column v-for="(item, index) in columns" :key="index" :label="item.label" :prop="item.key">
25
-      </el-table-column>
26
-    </el-table>
27
-    <div class="table-pagination">
28
-      <el-pagination :background="false" layout="total, prev, pager, next" :total="total" @current-change="handlePageChange"
29
-                     :current-page.sync="pageNum" :page-size.sync="pageSize">
30
-      </el-pagination>
31
-    </div>
32
-    <br>
33
-
34
-
3
+    <el-tabs  v-model="activeName">
4
+      <el-tab-pane label="实时概况" name="实时概况">
5
+        <div style="display: flex;justify-content: space-around;">
6
+          <div style="width: 25%;display: flex;">
7
+            <h4 class="h4font">泊位数量:</h4><h3 class="h4font">{{viewData.totalParkingNumber}}</h3>
8
+          </div>
9
+          <div style="width: 25%;display: flex;">
10
+            <h4 class="h4font">实时余位:</h4><h3 class="h4font">{{viewData.remainParkingNumber}}</h3>
11
+          </div>
12
+          <div style="width: 25%;display: flex;">
13
+            <h4 class="h4font">实时进场:</h4><h3 class="h4font">{{viewData.inNumber}}</h3>
14
+          </div>
15
+          <div style="width: 25%;display: flex;">
16
+            <h4 class="h4font">实时出场:</h4><h3 class="h4font">{{viewData.outNumber}}</h3>
17
+          </div>
18
+        </div>
19
+        <br>
20
+        <br>
21
+        <el-table :data="tableData" style="background: #2a2a2a;border-color: #333;">
22
+          <el-table-column v-for="(item, index) in columns" :key="index" :label="item.label" :prop="item.key">
23
+          </el-table-column>
24
+        </el-table>
25
+        <div class="table-pagination">
26
+          <el-pagination :background="false" layout="total, prev, pager, next" :total="total" @current-change="handlePageChange"
27
+                         :current-page.sync="pageNum" :page-size.sync="pageSize">
28
+          </el-pagination>
29
+        </div>
30
+      </el-tab-pane>
31
+      <el-tab-pane label="实时进场" name="实时进出场">
32
+        <div style="display: flex; justify-content: space-between">
33
+          <div style="width: 50%">
34
+            <el-table :data="tableData1">
35
+              <el-table-column v-for="(item, index) in columns1" :key="index" :label="item.label" :prop="item.key">
36
+              </el-table-column>
37
+            </el-table>
38
+            <div class="table-pagination">
39
+              <el-pagination layout="prev, pager, next" :total="total1" @current-change="handlePageChange1"
40
+                             :current-page.sync="pageNum1" :page-size.sync="pageSize1">
41
+              </el-pagination>
42
+            </div>
43
+          </div>
44
+          <div style="width: 50%">
45
+            <el-table :data="tableData2">
46
+              <el-table-column v-for="(item, index) in columns2" :key="index" :label="item.label" :prop="item.key">
47
+              </el-table-column>
48
+            </el-table>
49
+            <div class="table-pagination">
50
+              <el-pagination layout="prev, pager, next" :total="total2" @current-change="handlePageChange2"
51
+                             :current-page.sync="pageNum2" :page-size.sync="pageSize2">
52
+              </el-pagination>
53
+            </div>
54
+          </div>
55
+        </div>
56
+      </el-tab-pane>
57
+    </el-tabs>
35 58
   </div>
36 59
 </template>
37 60
 <script>
@@ -44,6 +67,7 @@ export default {
44 67
   },
45 68
   data() {
46 69
     return {
70
+      activeName: '实时概况',
47 71
       columns: [
48 72
         {
49 73
           label: '停车场ID',
@@ -71,12 +95,52 @@ export default {
71 95
         inNumber: "0",
72 96
         totalParkingNumber: "0",
73 97
         remainParkingNumber: "0"
74
-      }
98
+      },
99
+      tableData1: [],
100
+      total1: 0,
101
+      pageSize1: 10,
102
+      pageNum1: 1,
103
+      formInline1: {
104
+        plateNo: ''
105
+      },
106
+      columns2: [
107
+        {
108
+          label: '停车场名称',
109
+          key: 'carParkName'
110
+        },
111
+        {
112
+          label: '车牌号',
113
+          key: 'plateNo'
114
+        },
115
+        {
116
+          label: '入场时间',
117
+          key: 'inTime'
118
+        }
119
+      ],
120
+      tableData2: [
121
+        {
122
+          label: '停车场名称',
123
+          key: 'carParkName'
124
+        },
125
+        {
126
+          label: '车牌号',
127
+          key: 'plateNo'
128
+        },
129
+        {
130
+          label: '入场时间',
131
+          key: 'outTime'
132
+        }
133
+      ],
134
+      total2: 0,
135
+      pageSize2: 10,
136
+      pageNum2: 1,
75 137
     }
76 138
   },
77 139
   mounted() {
78 140
     this.getTableData()
79 141
     this.getView()
142
+    this.getTableData1()
143
+    this.getTableData2()
80 144
   },
81 145
   watch: {
82 146
   },
@@ -84,6 +148,12 @@ export default {
84 148
     handlePageChange() {
85 149
       this.getTableData()
86 150
     },
151
+    handlePageChange1() {
152
+      this.getTableData1()
153
+    },
154
+    handlePageChange2() {
155
+      this.getTableData2()
156
+    },
87 157
     getTableData() {
88 158
       const {pageNum, pageSize} = this
89 159
       api.tccqkListByPage({current: pageNum, size: pageSize}).then(res => {
@@ -91,6 +161,20 @@ export default {
91 161
         this.total = res.data.total || 0
92 162
       })
93 163
     },
164
+    getTableData1() {
165
+      const {pageNum1, pageSize1} = this
166
+      api.tccqkListByPage({current: pageNum1, size: pageSize1}).then(res => {
167
+        this.tableData1 = res.data.records || []
168
+        this.total1 = res.data.total || 0
169
+      })
170
+    },
171
+    getTableData2() {
172
+      const {pageNum2, pageSize2} = this
173
+      api.tccqkListByPage({current: pageNum2, size: pageSize2}).then(res => {
174
+        this.tableData2 = res.data.records || []
175
+        this.total2 = res.data.total || 0
176
+      })
177
+    },
94 178
     getView() {
95 179
       api.tccqkView().then(res => {
96 180
         this.viewData = res.data

+ 173 - 27
src/pages/index/components/service_operations.vue

@@ -1,14 +1,52 @@
1 1
 <template>
2
-  <div style="color: #d5d3d3" class="middle-map">
3
-<!--    <el-select v-model="value" filterable remote reserve-keyword placeholder="请选择区域层级">-->
4
-<!--      <el-option-->
5
-<!--        v-for="item in options"-->
6
-<!--        :key="item.value"-->
7
-<!--        :label="item.label"-->
8
-<!--        :value="item.value">-->
9
-<!--      </el-option>-->
10
-<!--    </el-select>-->
11
-    <div class="bottom" id="map"></div>
2
+  <div class="body-wrapper">
3
+  <el-tabs v-model="activeName">
4
+    <el-tab-pane label="行政区" name="行政区">
5
+      <div style="color: #d5d3d3" class="middle-map">
6
+        <div class="bottom" id="map"></div>
7
+      </div>
8
+    </el-tab-pane>
9
+    <el-tab-pane label="重点区域" name="重点区域">
10
+        <el-form class="form-wrapper" :inline="true" :model="formInline">
11
+          <el-form-item label="重点区域">
12
+            <el-select v-model="formInline1.keyArea" placeholder="请选择" popper-class="cur-select">
13
+              <el-option v-for="item in options"  :key="item.label" :label="item.label" :value="item.value"></el-option>
14
+            </el-select>
15
+          </el-form-item>
16
+          <el-form-item>
17
+            <el-button type="primary" @click="onSubmit1">查询</el-button>
18
+          </el-form-item>
19
+        </el-form>
20
+        <el-table :data="tableData1">
21
+          <el-table-column v-for="(item, index) in columns1" :key="index" :label="item.label" :prop="item.key">
22
+          </el-table-column>
23
+        </el-table>
24
+        <div class="table-pagination">
25
+          <el-pagination layout="prev, pager, next" :total="total1" @current-change="handlePageChange1"
26
+                         :current-page.sync="pageNum1" :page-size.sync="pageSize1">
27
+          </el-pagination>
28
+        </div>
29
+    </el-tab-pane>
30
+    <el-tab-pane label="具体道路" name="具体道路">
31
+        <el-form class="form-wrapper" :inline="true" :model="formInline2">
32
+          <el-form-item label="具体道路">
33
+            <el-input v-model="formInline1.plateNo" placeholder="请输入"></el-input>
34
+          </el-form-item>
35
+          <el-form-item>
36
+            <el-button type="primary" @click="onSubmit1">查询</el-button>
37
+          </el-form-item>
38
+        </el-form>
39
+        <el-table :data="tableData2">
40
+          <el-table-column v-for="(item, index) in columns2" :key="index" :label="item.label" :prop="item.key">
41
+          </el-table-column>
42
+        </el-table>
43
+        <div class="table-pagination">
44
+          <el-pagination layout="prev, pager, next" :total="total1" @current-change="handlePageChange1"
45
+                         :current-page.sync="pageNum2" :page-size.sync="pageSize2">
46
+          </el-pagination>
47
+        </div>
48
+    </el-tab-pane>
49
+  </el-tabs>
12 50
   </div>
13 51
 </template>
14 52
 
@@ -20,15 +58,19 @@ import api from '@/api/article_z'
20 58
 export default {
21 59
   data() {
22 60
     return {
61
+      activeName: '行政区',
23 62
       options: [{
24
-        value: '行政区',
25
-        label: '行政区'
63
+        value: '商圈',
64
+        label: '商圈'
26 65
       }, {
27
-        value: '重点区域',
28
-        label: '重点区域'
66
+        value: '学校',
67
+        label: '学校'
29 68
       }, {
30
-        value: '具体道路',
31
-        label: '具体道路'
69
+        value: '医院',
70
+        label: '医院'
71
+      }, {
72
+        value: '旅游景点',
73
+        label: '旅游景点'
32 74
       }],
33 75
       value: '',
34 76
       dqIndex: -1,
@@ -110,12 +152,70 @@ export default {
110 152
           },
111 153
         ],
112 154
       },
113
-      curData: {},
114
-      dataSource: null,
115
-      totalAll: '0',
155
+      columns1: [
156
+        {
157
+          label: '重点区域',
158
+          key: 'plateNo'
159
+        },
160
+        {
161
+          label: '设备数',
162
+          key: 'carType'
163
+        }
164
+      ],
165
+      tableData1: [],
166
+      total1: 0,
167
+      pageSize1: 10,
168
+      pageNum1: 1,
169
+      formInline1: {
170
+        keyArea: ''
171
+      },
172
+      columns2: [
173
+        {
174
+          label: '道路',
175
+          key: 'streatName'
176
+        },
177
+        {
178
+          label: '设备数',
179
+          key: 'carParkName'
180
+        },
181
+      ],
182
+      tableData2: [],
183
+      total2: 0,
184
+      pageSize2: 10,
185
+      pageNum2: 1,
186
+      formInline2: {
187
+        streatName: ''
188
+      },
116 189
     };
117 190
   },
118 191
   methods: {
192
+    onSubmit1() {
193
+      this.pageNum1 = 1
194
+      this.getTableData1()
195
+    },
196
+    onSubmit2() {
197
+      this.pageNum2 = 1
198
+      this.getTableData2()
199
+    },
200
+    handlePageChange1() {
201
+      this.getTableData1()
202
+    },
203
+    handlePageChange2() {
204
+      this.getTableData2()
205
+    },
206
+    getTableData1() {
207
+      const {pageNum1, pageSize1} = this
208
+      api.queryServiceList({current: pageNum1, size: pageSize1, ...this.formInline1}).then(res => {
209
+        this.tableData1 = res.data.records || [];
210
+        this.total1 = res.data.total || 0
211
+      })
212
+    },
213
+    getTableData2() {
214
+      api.queryServiceList({current: pageNum2, size: pageSize2, ...this.formInline2}).then(res => {
215
+        this.tableData2 = res.data.records || [];
216
+        this.total2 = res.data.total || 0
217
+      })
218
+    },
119 219
     setIntervalMap(chart) {
120 220
       this.timer = setInterval(() => {
121 221
         chart.dispatchAction({
@@ -182,15 +282,11 @@ export default {
182 282
   },
183 283
 };
184 284
 </script>
285
+<style lang="less" scoped>
185 286
 
186
-<style>
187
-.el-input__inner{
188
-  color:#eee;
189
-  border-color: #212121;
190
-  background-color: rgba(1, 28, 82, 0.8);
287
+.form-wrapper {
288
+  margin-bottom: 20px;
191 289
 }
192
-</style>
193
-<style lang="less" scoped>
194 290
 /deep/ .el-input__inner {
195 291
   background: #2d3744;
196 292
   border: none;
@@ -220,9 +316,57 @@ export default {
220 316
     line-height: 0px;
221 317
   }
222 318
 }
319
+/deep/ .form-wrapper .el-button {
320
+  background: linear-gradient(90deg,#0158d9,#3c97e4);
321
+  width: 100px;
322
+  height: 40px;
323
+}
324
+.body-wrapper {
325
+  padding: 20px;
326
+  background: #0c0c0c;
327
+  .button-block{
328
+    text-align: right;
329
+    margin-bottom: 20px;
330
+  }
331
+  .table-pagination{
332
+    text-align: right;
333
+  }
334
+  .search-card{
335
+    margin-bottom: 20px;
336
+    text-align: center;
337
+    .input-wrapper{
338
+      width: 36%;
339
+    }
340
+  }
341
+}
342
+.body-wrapper {
343
+  padding: 20px;
344
+  .button-block{
345
+    text-align: right;
346
+    margin-bottom: 20px;
347
+  }
348
+  .table-pagination{
349
+    text-align: right;
350
+  }
351
+  .search-card{
352
+    margin-bottom: 20px;
353
+    text-align: center;
354
+    .input-wrapper{
355
+      width: 36%;
356
+    }
357
+  }
358
+}
359
+.audit-dialog{
360
+  .mg-bt{
361
+    margin-bottom: 24px;
362
+  }
363
+  .label{
364
+    text-align: right;
365
+  }
366
+}
223 367
 .middle-map {
224 368
   width: 100%;
225
-  height: 100%;
369
+  height: 800px;
226 370
   .bottom {
227 371
     height: 90%;
228 372
     width: 100%;
@@ -241,4 +385,6 @@ export default {
241 385
     }
242 386
   }
243 387
 }
388
+
389
+
244 390
 </style>

+ 7 - 0
src/util/dictionary.js

@@ -13,5 +13,12 @@ export default {
13 13
     '3': '白色',
14 14
     '4': '黑色',
15 15
     '5': '绿色'
16
+  },
17
+  areaCodeMap: {
18
+    '411102': '源汇区',
19
+    '411103': '郾城区',
20
+    '411104': '召陵区',
21
+    '411121': '舞阳县',
22
+    '411122': '临颍县'
16 23
   }
17 24
 }

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

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