浏览代码

bug fixed&& 电话管理

duwendi 1 年之前
父节点
当前提交
1062c2143d
共有 3 个文件被更改,包括 275 次插入71 次删除
  1. 12 0
      src/api/article_z.js
  2. 49 26
      src/pages/index/components/pakking_lot.vue
  3. 214 45
      src/pages/index/components/telephone_management.vue

+ 12 - 0
src/api/article_z.js

@@ -320,6 +320,18 @@ export default {
320
   queryTelephoneManagementByPage(params) {
320
   queryTelephoneManagementByPage(params) {
321
     return axios.get(`/opt/telephone/management/page`, {params})
321
     return axios.get(`/opt/telephone/management/page`, {params})
322
   },
322
   },
323
+  // 电话管理——新增
324
+  addTelephone(params) {
325
+    return axios.post(`/opt/telephone/management/add`, params)
326
+  },
327
+  // 电话管理——修改
328
+  editTelephone(params) {
329
+    return axios.post(`/opt/telephone/management/edit`, params)
330
+  },
331
+  // 电话管理——删除
332
+  deleteTelephone(params) {
333
+    return axios.post(`/opt/telephone/management/delete`, params)
334
+  },
323
   // 任务报表——获取任务追缴分页
335
   // 任务报表——获取任务追缴分页
324
   queryTaskReportByPage(params) {
336
   queryTaskReportByPage(params) {
325
     return axios.get(`/opt/task/report/page`, {params})
337
     return axios.get(`/opt/task/report/page`, {params})

+ 49 - 26
src/pages/index/components/pakking_lot.vue

@@ -11,7 +11,7 @@
11
                     v-for="(item,index) in carParkingNameOptions"
11
                     v-for="(item,index) in carParkingNameOptions"
12
                     :key="index"
12
                     :key="index"
13
                     :label="item.parkName"
13
                     :label="item.parkName"
14
-                    :value="item.id" />
14
+                    :value="item.parkName" />
15
                 </el-select>
15
                 </el-select>
16
               </el-form-item>
16
               </el-form-item>
17
             </el-col>
17
             </el-col>
@@ -19,16 +19,16 @@
19
               <el-form-item>
19
               <el-form-item>
20
                 <el-button type="primary" class="query-btn" @click="onSubmit1" icon="el-icon-search">查询</el-button>
20
                 <el-button type="primary" class="query-btn" @click="onSubmit1" icon="el-icon-search">查询</el-button>
21
               </el-form-item>
21
               </el-form-item>
22
-              <el-form-item>
22
+              <!-- <el-form-item>
23
                 <el-button type="success" @click="handleAdd">添加车场</el-button>
23
                 <el-button type="success" @click="handleAdd">添加车场</el-button>
24
-              </el-form-item>
24
+              </el-form-item> -->
25
             </el-col>
25
             </el-col>
26
           </el-row>
26
           </el-row>
27
         </el-form>
27
         </el-form>
28
         <el-table border :row-class-name="rowClassName" :data="tableData1" v-loading="loading1">
28
         <el-table border :row-class-name="rowClassName" :data="tableData1" v-loading="loading1">
29
           <el-table-column v-for="(item, index) in columns1" :key="index" :label="item.label" :prop="item.key">
29
           <el-table-column v-for="(item, index) in columns1" :key="index" :label="item.label" :prop="item.key">
30
           </el-table-column>
30
           </el-table-column>
31
-          <el-table-column
31
+          <!-- <el-table-column
32
             label="操作"
32
             label="操作"
33
             width="200">
33
             width="200">
34
             <template slot-scope="scope" style="display: inline-block">
34
             <template slot-scope="scope" style="display: inline-block">
@@ -37,7 +37,7 @@
37
                 <el-button type="danger" slot="reference">删除</el-button>
37
                 <el-button type="danger" slot="reference">删除</el-button>
38
               </el-popconfirm>
38
               </el-popconfirm>
39
             </template>
39
             </template>
40
-          </el-table-column>
40
+          </el-table-column> -->
41
         </el-table>
41
         </el-table>
42
         <div class="table-pagination">
42
         <div class="table-pagination">
43
           <el-pagination layout="total, prev, pager, next, jumper" :total="total1" @current-change="handlePageChange1"
43
           <el-pagination layout="total, prev, pager, next, jumper" :total="total1" @current-change="handlePageChange1"
@@ -60,22 +60,25 @@
60
                     :value="item.id" />
60
                     :value="item.id" />
61
                 </el-select>
61
                 </el-select>
62
               </el-form-item>
62
               </el-form-item>
63
-              <el-form-item label="营业开始时间">
64
-                <el-time-picker
65
-                  v-model="formLabelAlign.inTime"
66
-                  :picker-options="{selectableRange: '0:00:00 - 23:59:59'}"
67
-                  value-format='HH:mm:ss'
68
-                  placeholder="选择时间">
69
-                </el-time-picker>
70
-              </el-form-item>
71
-              <el-form-item label="营业结束时间">
72
-                <el-time-picker
73
-                  v-model="formLabelAlign.outTime"
74
-                  :picker-options="{selectableRange: '12:00:00 - 23:59:59'}"
75
-                  value-format='HH:mm:ss'
76
-                  placeholder="选择时间">
77
-                </el-time-picker>
63
+              <el-form-item label="停车场地址">
64
+                <el-input v-model="formLabelAlign.parkAddress"></el-input>
65
+              </el-form-item>
66
+              <el-form-item label="停车场管理员">
67
+                <el-input v-model="formLabelAlign.managerName"></el-input>
68
+              </el-form-item>
69
+              <el-form-item lable="联系方式">
70
+                <el-input v-model="formLabelAlign.managerPhone"></el-input>
71
+              </el-form-item>
72
+              <el-form-item>
73
+                <el-select clearable filterable v-model="formInline1.state" placeholder="请选择">
74
+                  <el-option
75
+                  v-for="(item,index) in stateOptions"
76
+                  :key="index"
77
+                  :label="item.label"
78
+                  :value="item.value" />
79
+                </el-select>
78
               </el-form-item>
80
               </el-form-item>
81
+
79
 <!--              <el-form-item label="停车场管理员">-->
82
 <!--              <el-form-item label="停车场管理员">-->
80
 <!--                <el-input v-model="formLabelAlign.managerName"></el-input>-->
83
 <!--                <el-input v-model="formLabelAlign.managerName"></el-input>-->
81
 <!--              </el-form-item>-->
84
 <!--              </el-form-item>-->
@@ -444,17 +447,33 @@ export default {
444
       fileList: [],
447
       fileList: [],
445
       activeName: '停车场管理',
448
       activeName: '停车场管理',
446
       columns1: [
449
       columns1: [
450
+        {
451
+          label: '车场编号',
452
+          key: 'id'
453
+        },
447
         {
454
         {
448
           label: '车场名称',
455
           label: '车场名称',
449
           key: 'parkName'
456
           key: 'parkName'
450
         },
457
         },
451
         {
458
         {
452
-          label: '营业开始时间',
453
-          key: 'inTime'
459
+          label: '地址',
460
+          key: 'address'
461
+        },
462
+        {
463
+          label: '管理员',
464
+          key: 'managerName'
454
         },
465
         },
455
         {
466
         {
456
-          label: '营业结束时间',
457
-          key: 'outTime'
467
+          label: '联系方式',
468
+          key: 'managerPhone'
469
+        },
470
+        {
471
+          label: '车位数',
472
+          key: 'berthNumber'
473
+        },
474
+        {
475
+          label: '在线状态',
476
+          key: 'state'
458
         },
477
         },
459
         // {
478
         // {
460
         //   label: '停车场管理员',
479
         //   label: '停车场管理员',
@@ -463,7 +482,11 @@ export default {
463
       ],
482
       ],
464
       carParkingNameValue: '',
483
       carParkingNameValue: '',
465
       carParkingNameOptions: [],
484
       carParkingNameOptions: [],
466
-      tableData1: [{parkName: 'sasa'}],
485
+      tableData1: [],
486
+      stateOptions: [
487
+        {label: '在线', value: '1'},
488
+        {label: '离线', value: '0'}
489
+      ],
467
       total1: 0,
490
       total1: 0,
468
       pageSize1: 10,
491
       pageSize1: 10,
469
       pageNum1: 1,
492
       pageNum1: 1,
@@ -920,7 +943,7 @@ export default {
920
       this.loading1 = true
943
       this.loading1 = true
921
       const {pageNum1, pageSize1} = this
944
       const {pageNum1, pageSize1} = this
922
       api_z.queryParkingLotByPage({current: pageNum1, size: pageSize1, ...this.formInline1}).then(res => {
945
       api_z.queryParkingLotByPage({current: pageNum1, size: pageSize1, ...this.formInline1}).then(res => {
923
-        this.tableData1 = res.data.records || []
946
+        this.tableData1 = res.data.records.map(item => ({...item, state: item.state === '0' ? '离线' : '在线'})) || []
924
         this.total1 = res.data.total
947
         this.total1 = res.data.total
925
         this.loading1 = false
948
         this.loading1 = false
926
       })
949
       })

+ 214 - 45
src/pages/index/components/telephone_management.vue

@@ -1,116 +1,286 @@
1
 <template>
1
 <template>
2
   <div class="body-wrapper">
2
   <div class="body-wrapper">
3
-    <div style="display: flex; justify-content: space-between;">
3
+    <div style="display: flex; justify-content: space-between">
4
       <div style="width: 100%">
4
       <div style="width: 100%">
5
-        <el-form class="form-wrapper" :inline="true" :model="formInline" style="margin-bottom: 20px;">
5
+        <el-form
6
+          class="form-wrapper"
7
+          :inline="true"
8
+          :model="formInline"
9
+          style="margin-bottom: 20px"
10
+        >
6
           <el-row>
11
           <el-row>
7
             <el-col :span="6">
12
             <el-col :span="6">
8
               <el-form-item label="车牌号:">
13
               <el-form-item label="车牌号:">
9
-                <el-input v-model="formInline.plateNo" placeholder="请输入"></el-input>
14
+                <el-input
15
+                  v-model="formInline.plateNo"
16
+                  placeholder="请输入"
17
+                ></el-input>
10
               </el-form-item>
18
               </el-form-item>
11
             </el-col>
19
             </el-col>
12
             <el-col :span="6">
20
             <el-col :span="6">
13
               <el-form-item label="电话号码:">
21
               <el-form-item label="电话号码:">
14
-                <el-input v-model="formInline.phoneNo" placeholder="请输入"></el-input>
22
+                <el-input
23
+                  v-model="formInline.phoneNo"
24
+                  placeholder="请输入"
25
+                ></el-input>
15
               </el-form-item>
26
               </el-form-item>
16
             </el-col>
27
             </el-col>
17
             <el-col :span="6">
28
             <el-col :span="6">
18
               <el-form-item label="电话是否有效:">
29
               <el-form-item label="电话是否有效:">
19
-                <el-select clearable v-model="formInline.phoneStatus" placeholder="错误类型" popper-class="cur-select">
30
+                <el-select
31
+                  clearable
32
+                  v-model="formInline.phoneStatus"
33
+                  placeholder="请选择"
34
+                  popper-class="cur-select"
35
+                >
20
                   <el-option label="全部" value=""></el-option>
36
                   <el-option label="全部" value=""></el-option>
21
                   <el-option label="有效" value="有效"></el-option>
37
                   <el-option label="有效" value="有效"></el-option>
22
                   <el-option label="无效" value="无效"></el-option>
38
                   <el-option label="无效" value="无效"></el-option>
23
                 </el-select>
39
                 </el-select>
24
               </el-form-item>
40
               </el-form-item>
25
             </el-col>
41
             </el-col>
26
-            <el-col :span="4">
42
+            <el-col :span="6">
43
+              <el-form-item>
44
+                <el-button
45
+                  type="primary"
46
+                  class="query-btn"
47
+                  @click="onSubmit"
48
+                  icon="el-icon-search"
49
+                  >查询</el-button
50
+                >
51
+              </el-form-item>
27
               <el-form-item>
52
               <el-form-item>
28
-                <el-button type="primary" class="query-btn" @click="onSubmit" icon="el-icon-search">查询</el-button>
53
+                <el-button type="success" @click="handleAdd">录入</el-button>
29
               </el-form-item>
54
               </el-form-item>
30
             </el-col>
55
             </el-col>
31
           </el-row>
56
           </el-row>
32
         </el-form>
57
         </el-form>
33
-        <el-table border :row-class-name="rowClassName" :data="tableData" v-loading="loading">
34
-          <el-table-column v-for="(item, index) in columns" :key="index" :label="item.label" :prop="item.key">
58
+        <el-table
59
+          border
60
+          :row-class-name="rowClassName"
61
+          :data="tableData"
62
+          v-loading="loading"
63
+        >
64
+          <el-table-column
65
+            v-for="(item, index) in columns"
66
+            :key="index"
67
+            :label="item.label"
68
+            :prop="item.key"
69
+          >
70
+          </el-table-column>
71
+          <el-table-column label="操作" width="200">
72
+            <template slot-scope="scope" style="display: inline-block">
73
+              <el-button
74
+                type="primary"
75
+                @click="handleEdit(scope.row)"
76
+                slot="reference"
77
+                >修改</el-button
78
+              >
79
+              <el-popconfirm
80
+                title="确定删除吗?"
81
+                @confirm="deleteRow(scope.row)"
82
+              >
83
+                <el-button type="danger" slot="reference">删除</el-button>
84
+              </el-popconfirm>
85
+            </template>
35
           </el-table-column>
86
           </el-table-column>
36
         </el-table>
87
         </el-table>
37
         <div class="table-pagination">
88
         <div class="table-pagination">
38
-          <el-pagination :background="false" layout="total, prev, pager, next" :total="total" @current-change="handlePageChange"
39
-                         :current-page.sync="pageNum" :page-size.sync="pageSize">
89
+          <el-pagination
90
+            :background="false"
91
+            layout="total, prev, pager, next"
92
+            :total="total"
93
+            @current-change="handlePageChange"
94
+            :current-page.sync="pageNum"
95
+            :page-size.sync="pageSize"
96
+          >
40
           </el-pagination>
97
           </el-pagination>
41
         </div>
98
         </div>
42
       </div>
99
       </div>
43
     </div>
100
     </div>
101
+    <el-dialog
102
+      :title="title"
103
+      :visible.sync="dialogVisible"
104
+      width="45%"
105
+      custom-class="audit-dialog"
106
+    >
107
+      <div class="form-div">
108
+        <el-form
109
+          label-position="left"
110
+          label-width="100px"
111
+          :model="formLabelAlign"
112
+          ref="formLabelAlign"
113
+          :rules="rules"
114
+        >
115
+          <el-form-item label="车牌号" prop="plateNo">
116
+            <el-input v-model="formLabelAlign.plateNo"></el-input>
117
+          </el-form-item>
118
+          <el-form-item label="联系方式" prop="phoneNo">
119
+            <el-input v-model="formLabelAlign.phoneNo"></el-input>
120
+          </el-form-item>
121
+          <el-form-item label="电话是否有效" prop="phoneStatus">
122
+            <el-select
123
+              v-model="formLabelAlign.phoneStatus"
124
+              placeholder="请选择"
125
+              popper-class="cur-select"
126
+            >
127
+              <el-option label="有效" value="有效"></el-option>
128
+              <el-option label="无效" value="无效"></el-option>
129
+            </el-select>
130
+          </el-form-item>
131
+        </el-form>
132
+      </div>
133
+      <span slot="footer" class="dialog-footer">
134
+        <el-button @click="dialogVisible = false">取 消</el-button>
135
+        <el-button type="primary" @click="handleConfirm">确 定</el-button>
136
+      </span>
137
+    </el-dialog>
44
   </div>
138
   </div>
45
 </template>
139
 </template>
46
 <script>
140
 <script>
47
 import api from "@/api/audit";
141
 import api from "@/api/audit";
48
 import api_z from "@/api/article_z.js";
142
 import api_z from "@/api/article_z.js";
49
-
143
+import { vehicleNumber, checkPhone } from "@/util/common";
50
 
144
 
51
 export default {
145
 export default {
52
-  components: {
53
-
54
-  },
146
+  components: {},
55
   data() {
147
   data() {
56
     return {
148
     return {
57
       loading: false,
149
       loading: false,
58
       formInline: {
150
       formInline: {
59
-        plateNo: '',
60
-        phoneNo: '',
61
-        phoneStatus: ''
151
+        plateNo: "",
152
+        phoneNo: "",
153
+        phoneStatus: "",
154
+      },
155
+      title: "",
156
+      dialogVisible: false,
157
+      formLabelAlign: {
158
+        plateNo: "",
159
+        phoneNo: "",
160
+        phoneStatus: "",
62
       },
161
       },
63
       columns: [
162
       columns: [
64
         {
163
         {
65
-          label: '车牌号',
66
-          key: 'plateNo'
67
-        },
68
-        {
69
-          label: '电话号码',
70
-          key: 'phoneNo'
164
+          label: "车牌号",
165
+          key: "plateNo",
71
         },
166
         },
72
         {
167
         {
73
-          label: '导入时间',
74
-          key: 'importTime'
168
+          label: "电话号码",
169
+          key: "phoneNo",
75
         },
170
         },
171
+        // {
172
+        //   label: '导入时间',
173
+        //   key: 'importTime'
174
+        // },
76
         {
175
         {
77
-          label: '电话状态',
78
-          key: 'phoneStatus'
176
+          label: "电话状态",
177
+          key: "phoneStatus",
79
         },
178
         },
80
       ],
179
       ],
81
-      tableData:[],
180
+      rules: {
181
+        plateNo: [
182
+          { required: true, message: "车牌号不能为空", trigger: "blur" },
183
+          {
184
+            validator: vehicleNumber,
185
+            trigger: "blur",
186
+          },
187
+        ],
188
+        phoneNo: [
189
+          { required: true, message: "电话号码不能为空", trigger: "blur" },
190
+          { validator: checkPhone, trigger: "blur" },
191
+        ],
192
+        phoneStatus: [
193
+          { required: true, message: "是否有效不能为空", trigger: "change" },
194
+        ],
195
+      },
196
+      tableData: [],
82
       total: 0,
197
       total: 0,
83
       pageSize: 10,
198
       pageSize: 10,
84
       pageNum: 1,
199
       pageNum: 1,
85
-    }
200
+    };
86
   },
201
   },
87
   mounted() {
202
   mounted() {
88
-    this.getTableData()
203
+    this.getTableData();
89
   },
204
   },
90
   watch: {},
205
   watch: {},
91
   methods: {
206
   methods: {
207
+    handleAdd() {
208
+      this.title = "录入";
209
+      this.formLabelAlign = {};
210
+      this.dialogVisible = true;
211
+    },
212
+    handleEdit(row) {
213
+      this.title = "修改";
214
+      this.formLabelAlign = { ...row };
215
+      this.dialogVisible = true;
216
+    },
217
+    deleteRow(record) {
218
+      api_z.deleteTelephone([{ id: record.id }]).then((res) => {
219
+        if (res.code === 200) {
220
+          this.$message({ type: "success", message: "删除成功!" });
221
+          this.getTableData();
222
+        }
223
+      });
224
+    },
225
+    handleConfirm() {
226
+      this.$refs["formLabelAlign"].validate((valid) => {
227
+        if (valid) {
228
+          if (this.title === "修改") {
229
+            api_z.editTelephone({ ...this.formLabelAlign }).then((res) => {
230
+              if (res.code === 200) {
231
+                this.dialogVisible = false;
232
+                this.$message({
233
+                  message: "修改成功!",
234
+                  type: "success",
235
+                });
236
+                this.getTableData();
237
+              }
238
+            });
239
+          } else {
240
+            api_z.addTelephone({ ...this.formLabelAlign }).then((res) => {
241
+              if (res.code === 200) {
242
+                this.dialogVisible = false;
243
+                this.$message({
244
+                  message: "添加成功!",
245
+                  type: "success",
246
+                });
247
+                this.getTableData();
248
+              }
249
+            });
250
+          }
251
+        } else {
252
+          return false;
253
+        }
254
+      });
255
+    },
92
     rowClassName({ rowIndex }) {
256
     rowClassName({ rowIndex }) {
93
       // 偶数行和奇数行分别返回不同的类名,也可以根据实际需求基于rowData进行条件判断
257
       // 偶数行和奇数行分别返回不同的类名,也可以根据实际需求基于rowData进行条件判断
94
-      return rowIndex % 2 === 0 ? 'even-row' : 'odd-row';
258
+      return rowIndex % 2 === 0 ? "even-row" : "odd-row";
95
     },
259
     },
96
     onSubmit() {
260
     onSubmit() {
97
-      this.pageNum = 1
98
-      this.getTableData()
261
+      this.pageNum = 1;
262
+      this.getTableData();
99
     },
263
     },
100
     handlePageChange() {
264
     handlePageChange() {
101
-      this.getTableData()
265
+      this.getTableData();
102
     },
266
     },
103
     getTableData() {
267
     getTableData() {
104
-      this.loading = true
105
-      const {pageNum, pageSize} = this
106
-      api_z.queryTelephoneManagementByPage({current: pageNum, size: pageSize, ...this.formInline}).then(res => {
107
-        this.tableData = res.data.records || []
108
-        this.total = res.data.total
109
-        this.loading = false
110
-      })
268
+      this.loading = true;
269
+      const { pageNum, pageSize } = this;
270
+      api_z
271
+        .queryTelephoneManagementByPage({
272
+          current: pageNum,
273
+          size: pageSize,
274
+          ...this.formInline,
275
+        })
276
+        .then((res) => {
277
+          this.tableData = res.data.records || [];
278
+          this.total = res.data.total;
279
+          this.loading = false;
280
+        });
111
     },
281
     },
112
-  }
113
-}
282
+  },
283
+};
114
 </script>
284
 </script>
115
 <style lang="scss" scoped>
285
 <style lang="scss" scoped>
116
 .body-wrapper {
286
 .body-wrapper {
@@ -139,5 +309,4 @@ export default {
139
     }
309
     }
140
   }
310
   }
141
 }
311
 }
142
-
143
 </style>
312
 </style>