Ver código fonte

消息后两个及修改

zbb 1 ano atrás
pai
commit
96f9662f7d

Diferenças do arquivo suprimidas por serem muito extensas
+ 14420 - 0
package-lock.json


+ 2 - 4
package.json

@@ -15,13 +15,11 @@
15 15
     "@wangeditor/editor-for-vue": "^1.0.2",
16 16
     "apexcharts": "^3.45.2",
17 17
     "axios": "1.4.0",
18
-    "axios": "1.4.0",
19 18
     "element-ui": "^2.15.12",
20 19
     "babel-runtime": "^6.26.0",
21 20
     "echarts": "^4.9.0",
22 21
     "echarts-gl": "^1.1.1",
23 22
     "echarts-liquidfill": "^2.0.5",
24
-    "element-ui": "^2.15.12",
25 23
     "js-cookie": "^3.0.1",
26 24
     "vue": "^2.5.2",
27 25
     "vue-apexcharts": "^1.6.2",
@@ -54,8 +52,8 @@
54 52
     "html-webpack-plugin": "^2.30.1",
55 53
     "less": "^3.9.0",
56 54
     "less-loader": "^4.1.0",
57
-    "node-sass": "^4.12.0",
58 55
     "node-notifier": "^5.1.2",
56
+    "node-sass": "^4.12.0",
59 57
     "optimize-css-assets-webpack-plugin": "^3.2.0",
60 58
     "ora": "^1.2.0",
61 59
     "portfinder": "^1.0.13",
@@ -74,7 +72,7 @@
74 72
     "vue-template-compiler": "^2.5.2",
75 73
     "webpack": "^3.6.0",
76 74
     "webpack-bundle-analyzer": "^2.9.0",
77
-    "webpack-dev-server": "^2.9.1",
75
+    "webpack-dev-server": "^2.11.5",
78 76
     "webpack-merge": "^4.1.0"
79 77
   },
80 78
   "engines": {

+ 32 - 16
src/pages/index/components/parking_fee.vue

@@ -1,14 +1,25 @@
1 1
 <template>
2 2
   <div class="body-wrapper">
3
-    <div class="search-card">
4
-      <el-input class="input-wrapper" v-model="searchWords" placeholder="请输入关键时间节点">
5
-        <el-button style="color: white" slot="append" class="searchbtn" @click="handleSearch">
6
-        </el-button>
7
-      </el-input>
8
-      <el-input class="input-wrapper" v-model="searchWords" placeholder="请输入关键字">
9
-        <el-button style="color: white" slot="append" class="searchbtn" @click="handleSearch">
10
-        </el-button>
11
-      </el-input>
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.searchTime" placeholder="请输入关键时间节点"></el-input>
9
+            </el-form-item>
10
+          </el-col>
11
+          <el-col :span="8">
12
+            <el-form-item label="关键字:">
13
+              <el-input v-model="formInline.searchWord" placeholder="请输入关键字"></el-input>
14
+            </el-form-item>
15
+          </el-col>
16
+          <el-col :span="8">
17
+            <el-form-item>
18
+              <el-button type="primary" @click="onSubmit">查询</el-button>
19
+            </el-form-item>
20
+          </el-col>
21
+        </el-row>
22
+      </el-form>
12 23
     </div>
13 24
     <el-table :data="tableData" style="background: #2a2a2a;border-color: #333;">
14 25
       <el-table-column v-for="(item, index) in columns" :key="index" :label="item.label" :prop="item.key">
@@ -80,7 +91,11 @@ export default {
80 91
       radio: '2',
81 92
       dialogVisible: false,
82 93
       selRow: {},
83
-      searchWords: undefined
94
+      searchWords: undefined,
95
+      formInline: {
96
+        searchTime: '',
97
+        searchWord: ''
98
+      }
84 99
     }
85 100
   },
86 101
   mounted() {
@@ -139,12 +154,13 @@ export default {
139 154
   .table-pagination{
140 155
     text-align: right;
141 156
   }
142
-  .search-card{
143
-    margin-bottom: 20px;
144
-    text-align: center;
145
-    .input-wrapper{
146
-      width: 36%;
147
-    }
157
+  /deep/ .el-input__inner {
158
+    background: #2d3744;
159
+    border: none;
160
+    border-radius: 5px;
161
+  }
162
+  /deep/ .form-wrapper .el-button {
163
+    margin-top: 5px;
148 164
   }
149 165
 }
150 166
 .audit-dialog{

+ 139 - 0
src/pages/index/components/service_monitor.vue

@@ -0,0 +1,139 @@
1
+<template>
2
+  <div class="body-wrapper">
3
+    <div>
4
+      <h2 style="color: white;margin-bottom: 20px;">服务监控列表</h2>
5
+    </div>
6
+    <el-table :data="tableData" style="background: #2a2a2a;border-color: #333;">
7
+      <el-table-column v-for="(item, index) in columns" :key="index" :label="item.label" :prop="item.key">
8
+      </el-table-column>
9
+    </el-table>
10
+    <div class="table-pagination">
11
+      <el-pagination :background="false" layout="total, prev, pager, next" :total="total" @current-change="handlePageChange"
12
+                     :current-page.sync="pageNum" :page-size.sync="pageSize">
13
+      </el-pagination>
14
+    </div>
15
+  </div>
16
+</template>
17
+<script>
18
+import api from "@/api/audit.js";
19
+
20
+export default {
21
+  components: {},
22
+  data() {
23
+    return {
24
+      columns: [
25
+        {
26
+          label: '接口名称',
27
+          key: 'interfaceName'
28
+        },
29
+        {
30
+          label: '接口地址',
31
+          key: 'interfaceAddress'
32
+        },
33
+        {
34
+          label: '提交状态',
35
+          key: 'submitState'
36
+        },
37
+      ],
38
+      tableData: [{"interfaceName":'消息通知',"interfaceAddress":'http://39.106.16.100/notification',"submitState":'运行中'}
39
+        ,{"interfaceName":'预警提醒',"interfaceAddress":'http://39.106.16.100/warning',"submitState":'运行中'},
40
+        ,{"interfaceName":'剩余车位推送',
41
+          "interfaceAddress": 'http://39.106.16.100/seatpush',
42
+          "submitState": '运行中'
43
+        }, ,],
44
+      total: 3,
45
+      pageSize: 10,
46
+      pageNum: 1,
47
+      radio: '2',
48
+      dialogVisible: false,
49
+      selRow: {},
50
+      searchWords: undefined
51
+    }
52
+  },
53
+  mounted() {
54
+    this.getTableData()
55
+  },
56
+  watch: {},
57
+  methods: {
58
+    handlePageChange() {
59
+      this.getTableData()
60
+    },
61
+    handleAudit(row) {
62
+      this.selRow = row
63
+      this.dialogVisible = true
64
+    },
65
+    handleCancelApply(row) {
66
+      console.log('enter handle cancel apply')
67
+    },
68
+    handleConfirm() {
69
+      const {id} = this.selRow
70
+      console.log('radio', this.radio)
71
+      api.applyResource({id, applyType: this.radio}).then(res => {
72
+        if (res.success) {
73
+          this.dialogVisible = false
74
+          this.$message({
75
+            message: '审核成功!',
76
+            type: 'success'
77
+          })
78
+          this.getTableData()
79
+        }
80
+      })
81
+    },
82
+    getTableData() {
83
+      const {pageNum, pageSize, searchWords} = this
84
+      api.applyList({pageNum, pageSize, resourceName: searchWords}).then(res => {
85
+        this.tableData = []
86
+        res.data.records.map((item, index) => {
87
+          const newItem = {...item}
88
+          newItem.applyTypeText = this.getApplyTypeText(item.applyType)
89
+          this.tableData.push(newItem)
90
+        })
91
+        this.total = res.data.total
92
+      })
93
+    },
94
+    getApplyTypeText(val) {
95
+      if (!val) {
96
+        return '未申请'
97
+      }
98
+      const textMap = {
99
+        1: '待审批',
100
+        2: '审批通过',
101
+        3: '审批驳回'
102
+      }
103
+      return textMap[val]
104
+    },
105
+    handleSearch() {
106
+      this.pageNum = 1
107
+      this.getTableData()
108
+    }
109
+  }
110
+}
111
+</script>
112
+<style lang="scss" scoped>
113
+.body-wrapper {
114
+  padding: 20px;
115
+  background: #0c0c0c;
116
+
117
+  /deep/ .el-button {
118
+    background-color: #0158d9;
119
+    color: honeydew;
120
+    border: none;
121
+    width: 50px;
122
+    height: 25px;
123
+  }
124
+
125
+  .table-pagination {
126
+    text-align: right;
127
+  }
128
+}
129
+
130
+.audit-dialog {
131
+  .mg-bt {
132
+    margin-bottom: 24px;
133
+  }
134
+
135
+  .label {
136
+    text-align: right;
137
+  }
138
+}
139
+</style>

+ 137 - 0
src/pages/index/components/support.vue

@@ -0,0 +1,137 @@
1
+<template>
2
+  <div class="body-wrapper">
3
+    <div>
4
+      <h2 style="color: white;margin-bottom: 20px;display: inline-block;width: 90%">技术支持</h2>
5
+      <el-button>申请技术支持</el-button>
6
+    </div>
7
+    <el-table :data="tableData" style="background: #2a2a2a;border-color: #333;">
8
+      <el-table-column v-for="(item, index) in columns" :key="index" :label="item.label" :prop="item.key">
9
+      </el-table-column>
10
+    </el-table>
11
+    <div class="table-pagination">
12
+      <el-pagination :background="false" layout="total, prev, pager, next" :total="total" @current-change="handlePageChange"
13
+                     :current-page.sync="pageNum" :page-size.sync="pageSize">
14
+      </el-pagination>
15
+    </div>
16
+  </div>
17
+</template>
18
+<script>
19
+import api from "@/api/audit.js";
20
+
21
+export default {
22
+  components: {},
23
+  data() {
24
+    return {
25
+      columns: [
26
+        {
27
+          label: '申请标题',
28
+          key: 'requestTitle'
29
+        },
30
+        {
31
+          label: '申请时间',
32
+          key: 'requestTime'
33
+        },
34
+        {
35
+          label: '支持渠道',
36
+          key: 'supportChannel'
37
+        },
38
+        {
39
+          label: '受理状态',
40
+          key: 'acceptanceStatus'
41
+        }
42
+      ],
43
+      tableData: [{"requestTitle":'申请更换闸机',"requestTime":'2023-12-25 10:00:00',"supportChannel":'留言板',"acceptanceStatus":'已受理'},
44
+        {"requestTitle":'申请路面整修',"requestTime":'2023-12-30 10:00:00',"supportChannel":'电话沟通',"acceptanceStatus":'未受理'},],
45
+      total: 3,
46
+      pageSize: 10,
47
+      pageNum: 1,
48
+      radio: '2',
49
+      dialogVisible: false,
50
+      selRow: {},
51
+      searchWords: undefined
52
+    }
53
+  },
54
+  mounted() {
55
+    this.getTableData()
56
+  },
57
+  watch: {
58
+  },
59
+  methods: {
60
+    handlePageChange() {
61
+      this.getTableData()
62
+    },
63
+    handleAudit(row) {
64
+      this.selRow = row
65
+      this.dialogVisible = true
66
+    },
67
+    handleCancelApply(row) {
68
+      console.log('enter handle cancel apply')
69
+    },
70
+    handleConfirm() {
71
+      const {id} = this.selRow
72
+      console.log('radio', this.radio)
73
+      api.applyResource({id, applyType: this.radio}).then(res => {
74
+        if(res.success) {
75
+          this.dialogVisible = false
76
+          this.$message({
77
+            message: '审核成功!',
78
+            type: 'success'
79
+          })
80
+          this.getTableData()
81
+        }
82
+      })
83
+    },
84
+    getTableData() {
85
+      const {pageNum, pageSize, searchWords} = this
86
+      api.applyList({pageNum, pageSize, resourceName: searchWords}).then(res => {
87
+        this.tableData = []
88
+        res.data.records.map((item, index) => {
89
+          const newItem = {...item}
90
+          newItem.applyTypeText = this.getApplyTypeText(item.applyType)
91
+          this.tableData.push(newItem)
92
+        })
93
+        this.total = res.data.total
94
+      })
95
+    },
96
+    getApplyTypeText(val) {
97
+      if (!val){
98
+        return '未申请'
99
+      }
100
+      const textMap = {
101
+        1: '待审批',
102
+        2: '审批通过',
103
+        3: '审批驳回'
104
+      }
105
+      return textMap[val]
106
+    },
107
+    handleSearch() {
108
+      this.pageNum = 1
109
+      this.getTableData()
110
+    }
111
+  }
112
+}
113
+</script>
114
+<style  lang="scss" scoped>
115
+.body-wrapper {
116
+  padding: 20px;
117
+  background: #0c0c0c;
118
+  /deep/ .el-button {
119
+    background-color: #0158d9;
120
+    color: honeydew;
121
+    border: none;
122
+    width: 100px;
123
+    height: 40px;
124
+  }
125
+  .table-pagination{
126
+    text-align: right;
127
+  }
128
+}
129
+.audit-dialog{
130
+  .mg-bt{
131
+    margin-bottom: 24px;
132
+  }
133
+  .label{
134
+    text-align: right;
135
+  }
136
+}
137
+</style>

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

@@ -75,6 +75,8 @@ export default {
75 75
         {name: '服务发布功能', url: '/service_publish'},
76 76
         {name: '公告功能', url: '/announcement_function'},
77 77
         {name: '消息中心功能', url: '/message'},
78
+        {name: '技术支持功能', url: '/support'},
79
+        {name: '服务监控功能', url: '/service_monitor'},
78 80
         {name: '泊位使用情况', url: '/berths_usage'},
79 81
         {name: '泊位营收情况', url: '/berths_revenue'},
80 82
         {name: '泊位营收情况', url: '/parking_lot_situation'},

+ 10 - 0
src/router/index.js

@@ -264,6 +264,16 @@ export default new Router({
264 264
           path: "/credential_management_function",
265 265
           component: () => import("../pages/index/components/credential_management_function.vue")
266 266
         },
267
+        {
268
+          name: "support",
269
+          path: "/support",
270
+          component: () => import("../pages/index/components/support.vue")
271
+        },
272
+        {
273
+          name: "service_monitor",
274
+          path: "/service_monitor",
275
+          component: () => import("../pages/index/components/service_monitor.vue")
276
+        },
267 277
       ]
268 278
     }
269 279
   ]