Browse Source

第一日开发 3个页面

第一日开发 3个页面
烬玊 1 year ago
parent
commit
2c931206a8

File diff suppressed because it is too large
+ 513 - 450
package-lock.json


+ 9 - 7
package.json

@@ -13,18 +13,20 @@
13 13
   "dependencies": {
14 14
     "@wangeditor/editor": "^5.1.23",
15 15
     "@wangeditor/editor-for-vue": "^1.0.2",
16
-    "axios": "^1.2.0",
17
-    "element-ui": "^2.15.12",
16
+    "apexcharts": "^3.45.2",
17
+    "axios": "1.4.0",
18 18
     "babel-runtime": "^6.26.0",
19
+    "echarts": "^4.9.0",
20
+    "echarts-gl": "^1.1.1",
21
+    "echarts-liquidfill": "^2.0.5",
22
+    "element-ui": "^2.15.12",
19 23
     "js-cookie": "^3.0.1",
20 24
     "vue": "^2.5.2",
25
+    "vue-apexcharts": "^1.6.2",
21 26
     "vue-router": "^3.0.1",
22
-    "vue-tree-color": "^2.3.2",
23
-    "vuex": "^3.6.2",
24
-    "echarts": "^4.9.0",
25 27
     "vue-seamless-scroll": "^1.1.23",
26
-    "echarts-gl": "^1.1.1",
27
-    "echarts-liquidfill": "^2.0.5"
28
+    "vue-tree-color": "^2.3.2",
29
+    "vuex": "^3.6.2"
28 30
   },
29 31
   "devDependencies": {
30 32
     "autoprefixer": "^7.1.2",

+ 2 - 2
src/assets/css/element_ui.css

@@ -309,8 +309,8 @@
309 309
 }
310 310
 
311 311
 .el-input__inner {
312
-  background-color: #060042;
313
-  border: 1px solid #09f;
312
+  /*background-color: #060042;*/
313
+  /*border: 1px solid #09f;*/
314 314
   color: #fff;
315 315
 }
316 316
 

+ 260 - 0
src/pages/index/components/berths_information.vue

@@ -0,0 +1,260 @@
1
+<template>
2
+  <div class="body-wrapper">
3
+    <div class="search-card">
4
+      <h5>泊位基础情况分析</h5>
5
+    </div>
6
+    <br>
7
+    <form id="form1" size="medium">
8
+      <el-select v-model="value" placeholder="行政区" class="sel">
9
+        <el-option
10
+          v-for="item in options"
11
+          :key="item.value"
12
+          :label="item.label"
13
+          :value="item.value">
14
+        </el-option>
15
+      </el-select>
16
+
17
+      <el-select v-model="value" placeholder="重点区域" class="sel">
18
+        <el-option
19
+          v-for="item in options2"
20
+          :key="item.value"
21
+          :label="item.label"
22
+          :value="item.value">
23
+        </el-option>
24
+      </el-select>
25
+
26
+      <el-select v-model="value" placeholder="道路" class="sel">
27
+        <el-option
28
+          v-for="item in options3"
29
+          :key="item.value"
30
+          :label="item.label"
31
+          :value="item.value">
32
+        </el-option>
33
+      </el-select>
34
+      <el-button class="btn_save" type="primary" @click="submitIntegrationConfig">查询</el-button>
35
+    </form>
36
+    <br>
37
+    <div class="charts_all">
38
+      <div class="charts">
39
+        <piechart
40
+          class="model-pie-body"
41
+          :roseType="false"
42
+          id="chart1"
43
+          :radiusArr="['30%', '70%']"
44
+          :colorArr="modelPieColor"
45
+          :labelFormat="['{name|{b}}', '{sub|{@value}万元 {d}%}', '{hr|}']"
46
+          :dataset="modelData.list"
47
+          :encode="{ itemName: 'name', value: 'value' }"
48
+        />
49
+      </div>
50
+      <div class="charts">
51
+        <piechart
52
+          class="model-pie-body"
53
+          :roseType="false"
54
+          id="chart2"
55
+          :radiusArr="['30%', '70%']"
56
+          :colorArr="modelPieColor"
57
+          :labelFormat="['{name|{b}}', '{sub|{@value}万元 {d}%}', '{hr|}']"
58
+          :dataset="modelData2.list"
59
+          :encode="{ itemName: 'name', value: 'value' }"
60
+        />
61
+      </div>
62
+      <div class="charts">
63
+        <piechart
64
+          class="model-pie-body"
65
+          :roseType="false"
66
+          id="chart3"
67
+          :radiusArr="['30%', '70%']"
68
+          :colorArr="modelPieColor"
69
+          :labelFormat="['{name|{b}}', '{sub|{@value}万元 {d}%}', '{hr|}']"
70
+          :dataset="modelData3.list"
71
+          :encode="{ itemName: 'name', value: 'value' }"
72
+        />
73
+      </div>
74
+    </div>
75
+
76
+  </div>
77
+</template>
78
+<script>
79
+import api from "@/api/audit.js";
80
+import piechart from "@/components/pieChart";
81
+
82
+export default {
83
+  components: {
84
+    piechart
85
+  },
86
+  data() {
87
+    return {
88
+      options: [{
89
+        value: '源汇区',
90
+        label: '源汇区'
91
+      }, {
92
+        value: '召陵区',
93
+        label: '召陵区'
94
+      }],
95
+      options2: [{
96
+        value: '违规停车高发区',
97
+        label: '违规停车高发区'
98
+      }, {
99
+        value: '事故高发区',
100
+        label: '事故高发区'
101
+      }],
102
+      options3: [{
103
+        value: '团结路',
104
+        label: '团结路'
105
+      }, {
106
+        value: '人民东路',
107
+        label: '人民东路'
108
+      }],
109
+      modelPieColor: ["#4382f6","#9078f8"],
110
+      modelData: {
111
+        list: [{name: '占用位', value: 100}, {name: '空闲位', value: 100}]
112
+      },
113
+      modelData2: {
114
+        list: [{name: '占用位', value: 200}, {name: '空闲位', value: 800}]
115
+      },
116
+      modelData3: {
117
+        list: [{name: '占用位', value: 100}, {name: '空闲位', value: 900}]
118
+      },
119
+      linedata: [{month: '11', lastYearAmount: 20, thisYearAmount: 30}, {month: '12', lastYearAmount: 40, thisYearAmount: 50}],
120
+      bardata: [{month: '01', hs: 100, cs: 200},{month: '02', hs: 300, cs: 200},{month: '03', hs: 400, cs: 200},],
121
+      tableData: [],
122
+      total: 0,
123
+      pageSize: 10,
124
+      pageNum: 1,
125
+      radio: '2',
126
+      dialogVisible: false,
127
+      selRow: {},
128
+      searchWords: undefined,
129
+      searchWords2: undefined,
130
+      searchWords3: undefined
131
+    }
132
+  },
133
+  mounted() {
134
+    this.getTableData()
135
+  },
136
+  watch: {
137
+  },
138
+  methods: {
139
+    handlePageChange() {
140
+      this.getTableData()
141
+    },
142
+    handleAudit(row) {
143
+      this.selRow = row
144
+      this.dialogVisible = true
145
+    },
146
+    handleCancelApply(row) {
147
+      console.log('enter handle cancel apply')
148
+    },
149
+    handleConfirm() {
150
+      const {id} = this.selRow
151
+      console.log('radio', this.radio)
152
+      api.applyResource({id, applyType: this.radio}).then(res => {
153
+        if(res.success) {
154
+          this.dialogVisible = false
155
+          this.$message({
156
+            message: '审核成功!',
157
+            type: 'success'
158
+          })
159
+          this.getTableData()
160
+        }
161
+      })
162
+    },
163
+    getTableData() {
164
+      const {pageNum, pageSize, searchWords} = this
165
+      api.applyList({pageNum, pageSize, resourceName: searchWords}).then(res => {
166
+        this.tableData = []
167
+        res.data.records.map((item, index) => {
168
+          const newItem = {...item}
169
+          newItem.applyTypeText = this.getApplyTypeText(item.applyType)
170
+          this.tableData.push(newItem)
171
+        })
172
+        this.total = res.data.total
173
+      })
174
+    },
175
+    getApplyTypeText(val) {
176
+      if (!val){
177
+        return '未申请'
178
+      }
179
+      const textMap = {
180
+        1: '待审批',
181
+        2: '审批通过',
182
+        3: '审批驳回'
183
+      }
184
+      return textMap[val]
185
+    },
186
+    handleSearch() {
187
+      this.pageNum = 1
188
+      this.getTableData()
189
+    }
190
+  }
191
+}
192
+</script>
193
+<style  lang="scss" scoped>
194
+.body-wrapper {
195
+  padding: 20px;
196
+  background: #0c0c0c;
197
+  width: 80%;
198
+  .button-block{
199
+    text-align: right;
200
+    margin-bottom: 20px;
201
+  }
202
+  .table-pagination{
203
+    text-align: right;
204
+  }
205
+  .search-card{
206
+    font-size: 24px;
207
+    font-weight: bold;
208
+    color: #3498db;
209
+    margin-bottom: 20px;
210
+    .input-wrapper{
211
+      width: 36%;
212
+    }
213
+  }
214
+}
215
+
216
+.charts_all{
217
+  display: flex;
218
+  justify-content: space-around;
219
+  width: 100%;
220
+  height: 320px;
221
+}
222
+
223
+.charts{
224
+  width: 30%;
225
+  height: 300px;
226
+}
227
+.btn_save{
228
+  background-color: #3498db;
229
+  color: #ffffff;
230
+  padding: 10px 20px;
231
+  cursor: pointer;
232
+  border: none;
233
+  border-radius: 4px;
234
+  font-size: 16px;
235
+  height: 40px;
236
+}
237
+
238
+.sel{
239
+  height: 200px;
240
+  margin-right: 10px;
241
+}
242
+
243
+.input-search{
244
+  width: 100%;
245
+  padding: 10px;
246
+  margin-bottom: 20px;
247
+  box-sizing: border-box;
248
+  background-color: #2a2a2a;
249
+  border: 1px solid #333;
250
+  color: #ffffff;
251
+}
252
+.audit-dialog{
253
+  .mg-bt{
254
+    margin-bottom: 24px;
255
+  }
256
+  .label{
257
+    text-align: right;
258
+  }
259
+}
260
+</style>

+ 183 - 0
src/pages/index/components/data_docking.vue

@@ -0,0 +1,183 @@
1
+<template>
2
+  <div class="body-wrapper">
3
+    <div class="search-card">
4
+    <h5>数据对接配置</h5>
5
+  </div>
6
+    <div>
7
+      <form>
8
+        <h4 style="color: #FFFFFF">模块名称</h4>
9
+        <br>
10
+        <el-input class="input-search" v-model="searchWords" placeholder="模块名称"></el-input>
11
+        <br>
12
+        <h4 style="color: #FFFFFF">接口地址</h4>
13
+        <br>
14
+        <el-input class="input-search" v-model="searchWords2" placeholder="接口地址"></el-input>
15
+        <br>
16
+        <h4 style="color: #FFFFFF">api秘钥</h4>
17
+        <br>
18
+        <el-input class="input-search" v-model="searchWords3" placeholder="api秘钥"></el-input>
19
+        <br>
20
+          <el-button class="btn_save" type="primary" @click="submitIntegrationConfig">保存配置</el-button>
21
+      </form>
22
+      <br>
23
+    </div>
24
+  <el-table :data="tableData" style="background: #2a2a2a;border-color: #333;">
25
+    <el-table-column v-for="(item, index) in columns" :key="index" :label="item.label" :prop="item.key">
26
+    </el-table-column>
27
+  </el-table>
28
+  <div class="table-pagination">
29
+    <el-pagination :background="false" layout="total, prev, pager, next" :total="total" @current-change="handlePageChange"
30
+                   :current-page.sync="pageNum2" :page-size.sync="pageSize2">
31
+    </el-pagination>
32
+  </div>
33
+  </div>
34
+</template>
35
+<script>
36
+import api from "@/api/audit.js";
37
+
38
+export default {
39
+  components: {},
40
+  data() {
41
+    return {
42
+      columns: [
43
+        {
44
+          label: '模块名称',
45
+          key: 'resourceName'
46
+        },
47
+        {
48
+          label: '接口地址',
49
+          key: 'resourceType'
50
+        },
51
+        {
52
+          label: 'api秘钥',
53
+          key: 'userName'
54
+        },
55
+        {
56
+          label: '操作',
57
+          key: 'applyTypeText'
58
+        }
59
+      ],
60
+      tableData: [],
61
+      total: 0,
62
+      pageSize: 10,
63
+      pageNum: 1,
64
+      radio: '2',
65
+      dialogVisible: false,
66
+      selRow: {},
67
+      searchWords: undefined,
68
+      searchWords2: undefined,
69
+      searchWords3: undefined
70
+    }
71
+  },
72
+  mounted() {
73
+    this.getTableData()
74
+  },
75
+  watch: {
76
+  },
77
+  methods: {
78
+    handlePageChange() {
79
+      this.getTableData()
80
+    },
81
+    handleAudit(row) {
82
+      this.selRow = row
83
+      this.dialogVisible = true
84
+    },
85
+    handleCancelApply(row) {
86
+      console.log('enter handle cancel apply')
87
+    },
88
+    handleConfirm() {
89
+      const {id} = this.selRow
90
+      console.log('radio', this.radio)
91
+      api.applyResource({id, applyType: this.radio}).then(res => {
92
+        if(res.success) {
93
+          this.dialogVisible = false
94
+          this.$message({
95
+            message: '审核成功!',
96
+            type: 'success'
97
+          })
98
+          this.getTableData()
99
+        }
100
+      })
101
+    },
102
+    getTableData() {
103
+      const {pageNum, pageSize, searchWords} = this
104
+      api.applyList({pageNum, pageSize, resourceName: searchWords}).then(res => {
105
+        this.tableData = []
106
+        res.data.records.map((item, index) => {
107
+          const newItem = {...item}
108
+          newItem.applyTypeText = this.getApplyTypeText(item.applyType)
109
+          this.tableData.push(newItem)
110
+        })
111
+        this.total = res.data.total
112
+      })
113
+    },
114
+    getApplyTypeText(val) {
115
+      if (!val){
116
+        return '未申请'
117
+      }
118
+      const textMap = {
119
+        1: '待审批',
120
+        2: '审批通过',
121
+        3: '审批驳回'
122
+      }
123
+      return textMap[val]
124
+    },
125
+    handleSearch() {
126
+      this.pageNum = 1
127
+      this.getTableData()
128
+    }
129
+  }
130
+}
131
+</script>
132
+<style  lang="scss" scoped>
133
+.body-wrapper {
134
+  padding: 20px;
135
+  background: #0c0c0c;
136
+  width: 80%;
137
+  .button-block{
138
+    text-align: right;
139
+    margin-bottom: 20px;
140
+  }
141
+  .table-pagination{
142
+    text-align: right;
143
+  }
144
+  .search-card{
145
+    font-size: 24px;
146
+    font-weight: bold;
147
+    color: #3498db;
148
+    margin-bottom: 20px;
149
+    .input-wrapper{
150
+      width: 36%;
151
+    }
152
+  }
153
+}
154
+
155
+.btn_save{
156
+  background-color: #3498db;
157
+  color: #ffffff;
158
+  padding: 10px 20px;
159
+  cursor: pointer;
160
+  border: none;
161
+  border-radius: 4px;
162
+  font-size: 16px;
163
+  height: 40px;
164
+}
165
+
166
+.input-search{
167
+  width: 100%;
168
+  padding: 10px;
169
+  margin-bottom: 20px;
170
+  box-sizing: border-box;
171
+  background-color: #2a2a2a;
172
+  border: 1px solid #333;
173
+  color: #ffffff;
174
+}
175
+.audit-dialog{
176
+  .mg-bt{
177
+    margin-bottom: 24px;
178
+  }
179
+  .label{
180
+    text-align: right;
181
+  }
182
+}
183
+</style>

+ 356 - 118
src/pages/index/components/static_resource.vue

@@ -1,139 +1,375 @@
1 1
 <template>
2 2
   <div class="body-wrapper">
3 3
     <div class="search-card">
4
-        <el-input class="input-wrapper" v-model="searchWords" placeholder="请输入关键字">
5
-            <el-button slot="append" class="searchbtn" @click="handleSearch">
6
-            </el-button>
7
-        </el-input>
4
+      <h5>车场查询</h5>
5
+      <el-input class="input-wrapper" v-model="searchWords" placeholder="请输入车场名称">
6
+        <el-button slot="append" class="searchbtn" @click="handleSearch">
7
+        </el-button>
8
+      </el-input>
8 9
     </div>
9 10
     <el-table :data="tableData" style="background: #2a2a2a;border-color: #333;">
10 11
       <el-table-column v-for="(item, index) in columns" :key="index" :label="item.label" :prop="item.key">
11 12
       </el-table-column>
12
-      <el-table-column
13
-        label="操作"
14
-        width="100">
15
-        <template slot-scope="scope">
16
-            <el-button v-if="scope.row && scope.row.applyType === '1'" @click="handleAudit(scope.row)" type="text" size="small">审核</el-button>
17
-        </template>
13
+    </el-table>
14
+    <div class="table-pagination">
15
+      <el-pagination :background="false" layout="total, prev, pager, next" :total="total" @current-change="handlePageChange"
16
+                     :current-page.sync="pageNum" :page-size.sync="pageSize">
17
+      </el-pagination>
18
+    </div>
19
+
20
+    <div class="search-card">
21
+      <h5>泊位查询</h5>
22
+      <el-input class="input-wrapper" v-model="searchWords2" placeholder="请输入泊位编号">
23
+        <el-button slot="append" class="searchbtn" @click="handleSearch">
24
+        </el-button>
25
+      </el-input>
26
+    </div>
27
+    <el-table :data="tableData2" style="background: #2a2a2a;border-color: #333;">
28
+      <el-table-column v-for="(item, index) in columns2" :key="index" :label="item.label" :prop="item.key">
29
+      </el-table-column>
30
+    </el-table>
31
+    <div class="table-pagination">
32
+      <el-pagination :background="false" layout="total, prev, pager, next" :total="total" @current-change="handlePageChange"
33
+                     :current-page.sync="pageNum2" :page-size.sync="pageSize2">
34
+      </el-pagination>
35
+    </div>
36
+
37
+    <div class="search-card">
38
+      <h5>监控查询</h5>
39
+      <el-input class="input-wrapper" v-model="searchWords3" placeholder="请输入监控编号">
40
+        <el-button slot="append" class="searchbtn" @click="handleSearch">
41
+        </el-button>
42
+      </el-input>
43
+    </div>
44
+    <el-table :data="tableData" style="background: #2a2a2a;border-color: #333;">
45
+      <el-table-column v-for="(item, index) in columns3" :key="index" :label="item.label" :prop="item.key">
46
+      </el-table-column>
47
+    </el-table>
48
+    <div class="table-pagination">
49
+      <el-pagination :background="false" layout="total, prev, pager, next" :total="total" @current-change="handlePageChange"
50
+                     :current-page.sync="pageNum3" :page-size.sync="pageSize3">
51
+      </el-pagination>
52
+    </div>
53
+
54
+    <div class="search-card">
55
+      <h5>设备查询</h5>
56
+      <el-input class="input-wrapper" v-model="searchWords4" placeholder="请输入设备编号">
57
+        <el-button slot="append" class="searchbtn" @click="handleSearch">
58
+        </el-button>
59
+      </el-input>
60
+    </div>
61
+    <el-table :data="tableData" style="background: #2a2a2a;border-color: #333;">
62
+      <el-table-column v-for="(item, index) in columns4" :key="index" :label="item.label" :prop="item.key">
63
+      </el-table-column>
64
+    </el-table>
65
+    <div class="table-pagination">
66
+      <el-pagination :background="false" layout="total, prev, pager, next" :total="total" @current-change="handlePageChange"
67
+                     :current-page.sync="pageNum4" :page-size.sync="pageSize4">
68
+      </el-pagination>
69
+    </div>
70
+
71
+    <div class="search-card">
72
+      <h5>单位查询</h5>
73
+      <el-input class="input-wrapper" v-model="searchWords5" placeholder="请输入单位名称">
74
+        <el-button slot="append" class="searchbtn" @click="handleSearch">
75
+        </el-button>
76
+      </el-input>
77
+    </div>
78
+    <el-table :data="tableData" style="background: #2a2a2a;border-color: #333;">
79
+      <el-table-column v-for="(item, index) in columns5" :key="index" :label="item.label" :prop="item.key">
80
+      </el-table-column>
81
+    </el-table>
82
+    <div class="table-pagination">
83
+      <el-pagination :background="false" layout="total, prev, pager, next" :total="total" @current-change="handlePageChange"
84
+                     :current-page.sync="pageNum5" :page-size.sync="pageSize5">
85
+      </el-pagination>
86
+    </div>
87
+
88
+    <div class="search-card">
89
+      <h5>备案资源查询</h5>
90
+      <el-input class="input-wrapper" v-model="searchWords6" placeholder="请输入备案单位名称">
91
+        <el-button slot="append" class="searchbtn" @click="handleSearch">
92
+        </el-button>
93
+      </el-input>
94
+    </div>
95
+    <el-table :data="tableData" style="background: #2a2a2a;border-color: #333;">
96
+      <el-table-column v-for="(item, index) in columns6" :key="index" :label="item.label" :prop="item.key">
97
+      </el-table-column>
98
+    </el-table>
99
+    <div class="table-pagination">
100
+      <el-pagination :background="false" layout="total, prev, pager, next" :total="total" @current-change="handlePageChange"
101
+                     :current-page.sync="pageNum6" :page-size.sync="pageSize6">
102
+      </el-pagination>
103
+    </div>
104
+
105
+    <div class="search-card">
106
+      <h5>普查资源查询</h5>
107
+      <el-input class="input-wrapper" v-model="searchWords7" placeholder="请输车场名称">
108
+        <el-button slot="append" class="searchbtn" @click="handleSearch">
109
+        </el-button>
110
+      </el-input>
111
+    </div>
112
+    <el-table :data="tableData" style="background: #2a2a2a;border-color: #333;">
113
+      <el-table-column v-for="(item, index) in columns7" :key="index" :label="item.label" :prop="item.key">
18 114
       </el-table-column>
19 115
     </el-table>
20 116
     <div class="table-pagination">
21 117
       <el-pagination :background="false" layout="total, prev, pager, next" :total="total" @current-change="handlePageChange"
22
-        :current-page.sync="pageNum" :page-size.sync="pageSize">
118
+                     :current-page.sync="pageNum7" :page-size.sync="pageSize7">
23 119
       </el-pagination>
24 120
     </div>
25
-    <el-dialog
26
-        title="审核"
27
-        :visible.sync="dialogVisible"
28
-        width="60%"
29
-        custom-class="audit-dialog">
30
-        <el-row class="mg-bt">
31
-            <el-col class="label" :span="4">审核:</el-col>
32
-            <el-col :span="18">
33
-                <el-radio v-model="radio" label="2">通过</el-radio>
34
-                <el-radio v-model="radio" label="3">驳回</el-radio>
35
-            </el-col>
36
-        </el-row>
37
-        <span slot="footer" class="dialog-footer">
38
-            <el-button @click="dialogVisible = false">取 消</el-button>
39
-            <el-button type="primary" @click="handleConfirm">确 定</el-button>
40
-        </span>
41
-    </el-dialog>
121
+
122
+
42 123
   </div>
43 124
 </template>
44 125
 <script>
45 126
 import api from "@/api/audit.js";
46 127
 
47 128
 export default {
48
-    components: {},
49
-    data() {
50
-      return {
51
-        columns: [
52
-          {
53
-            label: '资源名称',
54
-            key: 'resourceName'
55
-          },
56
-          {
57
-            label: '资源类型',
58
-            key: 'resourceType'
59
-          },
60
-          {
61
-            label: '申请人',
62
-            key: 'userName'
63
-          },
64
-          {
65
-            label: '状态',
66
-            key: 'applyTypeText'
67
-          }
68
-        ],
69
-        tableData: [],
70
-        total: 0,
71
-        pageSize: 10,
72
-        pageNum: 1,
73
-        radio: '2',
74
-        dialogVisible: false,
75
-        selRow: {},
76
-        searchWords: undefined
77
-      }
78
-    },
79
-    mounted() {
129
+  components: {},
130
+  data() {
131
+    return {
132
+      columns: [
133
+        {
134
+          label: '车场名称',
135
+          key: 'resourceName'
136
+        },
137
+        {
138
+          label: '位置',
139
+          key: 'resourceType'
140
+        },
141
+        {
142
+          label: '泊位数',
143
+          key: 'userName'
144
+        }
145
+      ],
146
+      columns2: [
147
+        {
148
+          label: '泊位编号',
149
+          key: 'resourceName'
150
+        },
151
+        {
152
+          label: '所属停车场',
153
+          key: 'resourceType'
154
+        },
155
+        {
156
+          label: '是否共享泊位',
157
+          key: 'userName'
158
+        },
159
+        {
160
+          label: '是否充电泊位',
161
+          key: 'userName'
162
+        }
163
+      ],
164
+      columns3: [
165
+        {
166
+          label: '监控编号',
167
+          key: 'resourceName'
168
+        },
169
+        {
170
+          label: '位置',
171
+          key: 'resourceType'
172
+        },
173
+        {
174
+          label: '状态',
175
+          key: 'userName'
176
+        }
177
+      ],
178
+      columns4: [
179
+        {
180
+          label: '设备编号',
181
+          key: 'resourceName'
182
+        },
183
+        {
184
+          label: '设备类型',
185
+          key: 'resourceType'
186
+        },
187
+        {
188
+          label: '工作区域',
189
+          key: 'userName'
190
+        }
191
+      ],
192
+      columns5: [
193
+        {
194
+          label: '车位数量',
195
+          key: 'resourceName'
196
+        },
197
+        {
198
+          label: '专属泊位数量',
199
+          key: 'resourceType'
200
+        },
201
+        {
202
+          label: '合作起止日期',
203
+          key: 'userName'
204
+        }
205
+      ],
206
+      columns6: [
207
+        {
208
+          label: '单位名称',
209
+          key: 'resourceName'
210
+        },
211
+        {
212
+          label: '负责人',
213
+          key: 'resourceType'
214
+        },
215
+        {
216
+          label: '提交日期',
217
+          key: 'userName'
218
+        }
219
+      ],
220
+      columns7: [
221
+        {
222
+          label: '车场名称',
223
+          key: 'resourceName'
224
+        },
225
+        {
226
+          label: '设备数量',
227
+          key: 'resourceType'
228
+        },
229
+        {
230
+          label: '异常数量',
231
+          key: 'userName'
232
+        }
233
+      ],
234
+      tableData: [],
235
+      tableData2: [],
236
+      tableData3: [],
237
+      tableData4: [],
238
+      tableData5: [],
239
+      tableData6: [],
240
+      tableData7: [],
241
+      total: 0,
242
+      pageSize: 10,
243
+      pageNum: 1,
244
+      pageSize2: 10,
245
+      pageNum2: 1,
246
+      pageSize3: 10,
247
+      pageNum3: 1,
248
+      pageSize4: 10,
249
+      pageNum4: 1,
250
+      pageSize5: 10,
251
+      pageNum5: 1,
252
+      pageSize6: 10,
253
+      pageNum6: 1,
254
+      pageSize7: 10,
255
+      pageNum7: 1,
256
+      radio: '2',
257
+      dialogVisible: false,
258
+      selRow: {},
259
+      searchWords: undefined,
260
+      searchWords2: undefined,
261
+      searchWords3: undefined,
262
+      searchWords4: undefined,
263
+      searchWords5: undefined,
264
+      searchWords6: undefined,
265
+      searchWords7: undefined
266
+    }
267
+  },
268
+  mounted() {
269
+    this.getTableData()
270
+    this.getTableData2()
271
+    this.getTableData3()
272
+    this.getTableData4()
273
+    this.getTableData5()
274
+    this.getTableData6()
275
+    this.getTableData7()
276
+  },
277
+  watch: {
278
+  },
279
+  methods: {
280
+    handlePageChange() {
80 281
       this.getTableData()
81 282
     },
82
-    watch: {
283
+    handleAudit(row) {
284
+      this.selRow = row
285
+      this.dialogVisible = true
83 286
     },
84
-    methods: {
85
-      handlePageChange() {
86
-        this.getTableData()
87
-      },
88
-      handleAudit(row) {
89
-        this.selRow = row
90
-        this.dialogVisible = true
91
-      },
92
-      handleCancelApply(row) {
93
-        console.log('enter handle cancel apply')
94
-      },
95
-      handleConfirm() {
96
-        const {id} = this.selRow
97
-        console.log('radio', this.radio)
98
-        api.applyResource({id, applyType: this.radio}).then(res => {
99
-          if(res.success) {
100
-            this.dialogVisible = false
101
-            this.$message({
102
-              message: '审核成功!',
103
-              type: 'success'
104
-            })
105
-            this.getTableData()
106
-          }
107
-        })
108
-      },
109
-      getTableData() {
110
-        const {pageNum, pageSize, searchWords} = this
111
-        api.applyList({pageNum, pageSize, resourceName: searchWords}).then(res => {
112
-          this.tableData = []
113
-          res.data.records.map((item, index) => {
114
-            const newItem = {...item}
115
-            newItem.applyTypeText = this.getApplyTypeText(item.applyType)
116
-            this.tableData.push(newItem)
287
+    handleCancelApply(row) {
288
+      console.log('enter handle cancel apply')
289
+    },
290
+    handleConfirm() {
291
+      const {id} = this.selRow
292
+      api.applyResource({id, applyType: this.radio}).then(res => {
293
+        if(res.success) {
294
+          this.dialogVisible = false
295
+          this.$message({
296
+            message: '审核成功!',
297
+            type: 'success'
117 298
           })
118
-          this.total = res.data.total
119
-        })
120
-      },
121
-      getApplyTypeText(val) {
122
-        if (!val){
123
-          return '未申请'
124
-        }
125
-        const textMap = {
126
-          1: '待审批',
127
-          2: '审批通过',
128
-          3: '审批驳回'
299
+          this.getTableData()
129 300
         }
130
-        return textMap[val]
131
-      },
132
-      handleSearch() {
133
-        this.pageNum = 1
134
-        this.getTableData()
301
+      })
302
+    },
303
+    getTableData() {
304
+      const {pageNum, pageSize, searchWords} = this
305
+      api.applyList({pageNum, pageSize, resourceName: searchWords}).then(res => {
306
+        this.tableData = []
307
+        res.data.records.map((item, index) => {
308
+          const newItem = {...item}
309
+          newItem.applyTypeText = this.getApplyTypeText(item.applyType)
310
+          this.tableData.push(newItem)
311
+        })
312
+        this.total = res.data.total
313
+      })
314
+    },
315
+    getTableData2() {
316
+      api.applyList({pageNum: this.pageNum2, pageSize:this.pageSize2, resourceName: this.searchWords2}).then(res => {
317
+        this.tableData2 =  res.data.data
318
+        this.total2 = res.data.total
319
+      })
320
+    },
321
+
322
+    getTableData3() {
323
+      api.applyList({pageNum: this.pageNum3, pageSize:this.pageSize3, resourceName: this.searchWords3}).then(res => {
324
+        this.tableData3 =  res.data.data
325
+        this.total3 = res.data.total
326
+      })
327
+    },
328
+
329
+    getTableData4() {
330
+      api.applyList({pageNum: this.pageNum4, pageSize:this.pageSize4, resourceName: this.searchWords4}).then(res => {
331
+        this.tableData4 =  res.data.data
332
+        this.total4 = res.data.total
333
+      })
334
+    },
335
+
336
+    getTableData5() {
337
+      api.applyList({pageNum: this.pageNum5, pageSize:this.pageSize5, resourceName: this.searchWords5}).then(res => {
338
+        this.tableData5 =  res.data.data
339
+        this.total5 = res.data.total
340
+      })
341
+    },
342
+
343
+    getTableData6() {
344
+      api.applyList({pageNum: this.pageNum6, pageSize:this.pageSize6, resourceName: this.searchWords6}).then(res => {
345
+        this.tableData6 =  res.data.data
346
+        this.total6 = res.data.total
347
+      })
348
+    },
349
+
350
+    getTableData7() {
351
+      api.applyList({pageNum: this.pageNum7, pageSize:this.pageSize7, resourceName: this.searchWords7}).then(res => {
352
+        this.tableData7 =  res.data.data
353
+        this.total7 = res.data.total
354
+      })
355
+    },
356
+
357
+    getApplyTypeText(val) {
358
+      if (!val){
359
+        return '未申请'
135 360
       }
361
+      const textMap = {
362
+        1: '待审批',
363
+        2: '审批通过',
364
+        3: '审批驳回'
365
+      }
366
+      return textMap[val]
367
+    },
368
+    handleSearch() {
369
+      this.pageNum = 1
370
+      this.getTableData()
136 371
     }
372
+  }
137 373
 }
138 374
 </script>
139 375
 <style  lang="scss" scoped>
@@ -148,19 +384,21 @@ export default {
148 384
     text-align: right;
149 385
   }
150 386
   .search-card{
387
+    font-size: 24px;
388
+    font-weight: bold;
389
+    color: #3498db;
151 390
     margin-bottom: 20px;
152
-    text-align: center;
153 391
     .input-wrapper{
154
-        width: 36%;
392
+      width: 36%;
155 393
     }
156 394
   }
157 395
 }
158 396
 .audit-dialog{
159
-    .mg-bt{
160
-        margin-bottom: 24px;
161
-    }
162
-    .label{
163
-        text-align: right;
164
-    }
397
+  .mg-bt{
398
+    margin-bottom: 24px;
399
+  }
400
+  .label{
401
+    text-align: right;
402
+  }
165 403
 }
166 404
 </style>

+ 2 - 0
src/pages/index/layouts/indexLayout.vue

@@ -48,6 +48,8 @@ export default {
48 48
         {name: '收费价格监管', url: '/charge_price'},
49 49
         {name: '车主信用监管', url: '/car_owner_credit'},
50 50
         {name: '企业服务监管', url: '/enterprise_service'},
51
+        {name: '数据对接', url: '/data_docking'},
52
+        {name: '泊位基础情况', url: '/berths_information'},
51 53
       ]
52 54
     }
53 55
   },

+ 10 - 0
src/router/index.js

@@ -75,6 +75,16 @@ export default new Router({
75 75
           path: "/enterprise_service",
76 76
           component: () => import("../pages/index/components/enterprise_service.vue")
77 77
         },
78
+        {
79
+          name: "data_docking",
80
+          path: "/data_docking",
81
+          component: () => import("../pages/index/components/data_docking.vue")
82
+        },
83
+        {
84
+          name: "berths_information",
85
+          path: "/berths_information",
86
+          component: () => import("../pages/index/components/berths_information.vue")
87
+        },
78 88
       ]
79 89
     }
80 90
   ]