Kaynağa Gözat

app下载页

GaoYuPeng 5 yıl önce
ebeveyn
işleme
87c96036d5

+ 8 - 0
shanXiPlatform/src/api/app-versions/index.js

@@ -0,0 +1,8 @@
1
+import request from '@/utils/request1'
2
+//获取全都版本信息
3
+export function getAllVersions() {
4
+  return request({
5
+    url: `/version_info.json`,
6
+    method: 'get',
7
+  })
8
+}

BIN
shanXiPlatform/src/assets/images/QRcode.png


BIN
shanXiPlatform/src/assets/images/new.png


+ 3 - 3
shanXiPlatform/src/components/Navebarright/index.vue

@@ -37,7 +37,7 @@
37 37
             <div class="arrow"></div>
38 38
             <img
39 39
               class="img-app"
40
-              src="http://101.36.160.140:21021/apk/qrcode.png"
40
+              src="@/assets/images/QRcode.png"
41 41
               width="120px"
42 42
               height="120px"
43 43
             />
@@ -200,8 +200,8 @@ export default {
200 200
        if (
201 201
         this.$route.path .indexOf("/inform/unreadinform") != -1 ||
202 202
         this.$route.path .indexOf("/daiban/pending")  != -1 ||
203
-        this.$route.path .indexOf("/reservesManagement/mechanicalVentilation")!= -1 
204
-        
203
+        this.$route.path .indexOf("/reservesManagement/mechanicalVentilation")!= -1
204
+
205 205
       ) {
206 206
         this.$router.go(0)
207 207
       }

+ 4 - 4
shanXiPlatform/src/permission.js

@@ -8,7 +8,7 @@ import getPageTitle from '@/utils/get-page-title'
8 8
 
9 9
 NProgress.configure({ showSpinner: false }) // NProgress Configuration
10 10
 
11
-const whiteList = ['/login', 'auth-redirect'] // no redirect whitelist
11
+const whiteList = ['/qrcode','/login', 'auth-redirect'] // no redirect whitelist
12 12
 
13 13
 router.beforeEach(async(to, from, next) => {
14 14
   if(to.meta.navigation){
@@ -21,7 +21,7 @@ router.beforeEach(async(to, from, next) => {
21 21
       type:'changeIsnavigation',
22 22
       isnavigation: false
23 23
     })
24
-  }     
24
+  }
25 25
   if(to.path == '/home' || to.path == '/home/'){
26 26
     store.commit({
27 27
       type:'changeIsShowWeather',
@@ -54,8 +54,8 @@ router.beforeEach(async(to, from, next) => {
54 54
       type:'changeIstable',
55 55
       istable: false
56 56
     })
57
-  }     
58
-  
57
+  }
58
+
59 59
   // start progress bar
60 60
   NProgress.start()
61 61
 

+ 8 - 7
shanXiPlatform/src/router/index.js

@@ -73,6 +73,13 @@ export const constantRoutes = [
73 73
     // meta: { keepAlive: false } //不缓存页面
74 74
   },
75 75
   {
76
+    path: '/qrcode',
77
+    component: () => import('@/views/qrcode/index'),
78
+    // name: 'qrcode',
79
+    hidden: true,
80
+    // meta: { title: 'App下载', icon: 'dashboard', affix: false, noCache: true, navigation: false }
81
+  },
82
+  {
76 83
     path: '/login',
77 84
     component: () => import('@/views/login/index'),
78 85
     hidden: true,
@@ -1211,13 +1218,7 @@ export const constantRoutes = [
1211 1218
         meta: { title: '组织树', icon: 'dashboard', affix: false, noCache: true, navigation: true },
1212 1219
         children: []
1213 1220
       },
1214
-      {
1215
-        path: '/qrcode',
1216
-        component: () => import('@/views/qrcode/index'),
1217
-        name: 'qrcode',
1218
-        hidden: true,
1219
-        meta: { title: 'App下载', icon: 'dashboard', affix: false, noCache: true, navigation: true }
1220
-      },
1221
+
1221 1222
       //   系统管理/器材库
1222 1223
       {
1223 1224
         path: 'equipmentWarehouse',

+ 14 - 4
shanXiPlatform/src/utils/request.js

@@ -14,6 +14,15 @@ const service = axios.create({
14 14
   // withCredentials: true, // send cookies when cross-domain requests
15 15
   timeout: 5000 // request timeout
16 16
 })
17
+const service1 = axios.create({
18
+  // baseURL: process.env.VUE_APP_BASE_API,
19
+  // this is app download baseURL
20
+  baseURL: '/apk',
21
+
22
+  // url = base url + request url
23
+  // withCredentials: true, // send cookies when cross-domain requests
24
+  timeout: 5000 // request timeout
25
+})
17 26
 
18 27
 // request interceptor
19 28
 service.interceptors.request.use(
@@ -83,7 +92,7 @@ service.interceptors.response.use(
83 92
     //     duration: 5 * 1000
84 93
     //   })
85 94
     //   return Promise.reject(new Error(res.message || 'Error')) // 返回错误,可以如下面所示,给一个弹框提示错误之后,在返回
86
-    // } 
95
+    // }
87 96
     // else {
88 97
     //   return res;
89 98
     // }
@@ -143,13 +152,13 @@ service.interceptors.response.use(
143 152
     // }
144 153
 
145 154
     if (error.response.status == 401 && store.state.isAuthority) {
146
-     
155
+
147 156
       store.state.isAuthority = false;
148
-    
157
+
149 158
       MessageBox.alert('身份失效,请重新登录', '确认退出', {
150 159
         confirmButtonText: '确定',
151 160
         callback:()=>{
152
-          
161
+
153 162
           store.dispatch('user/resetToken')
154 163
           .then(() => {
155 164
             location.reload()
@@ -168,3 +177,4 @@ service.interceptors.response.use(
168 177
 )
169 178
 
170 179
 export default service
180
+

+ 173 - 0
shanXiPlatform/src/utils/request1.js

@@ -0,0 +1,173 @@
1
+import axios from 'axios'
2
+import { MessageBox, Message } from 'element-ui'
3
+import store from '@/store'
4
+import { getToken } from '@/utils/auth'
5
+import { closenewWebSocket, newWebSocket } from '@/api/sendMessageSocket'
6
+
7
+
8
+// create an axios instance
9
+
10
+const service1 = axios.create({
11
+  // baseURL: process.env.VUE_APP_BASE_API,
12
+  // this is app download baseURL
13
+  baseURL: '/apk',
14
+
15
+  // url = base url + request url
16
+  // withCredentials: true, // send cookies when cross-domain requests
17
+  timeout: 5000 // request timeout
18
+})
19
+
20
+// request interceptor
21
+service1.interceptors.request.use(
22
+  config => {
23
+    // do something before request is sent
24
+
25
+    if (getToken()) {
26
+      // let each request carry token
27
+      // ['X-Token'] is a custom headers key
28
+      // please modify it according to the actual situation
29
+      //  config.headers['Authorization'] = getToken()
30
+
31
+      // let token_type = JSON.parse(getToken()).token_type
32
+      // let access_token = JSON.parse(getToken()).access_token
33
+      // config.headers['Authorization'] = token_type + ' ' + access_token
34
+      config.headers['Authorization'] = getToken()
35
+    }
36
+    return config
37
+  },
38
+  error => {
39
+    // do something with request error
40
+    // console.log(error) // for debug
41
+    return Promise.reject(error)
42
+  }
43
+)
44
+
45
+// response interceptor
46
+service1.interceptors.response.use(
47
+  /**
48
+   * If you want to get http information such as headers or status
49
+   * Please return  response => response
50
+  */
51
+
52
+  /**
53
+   * Determine the request status by custom code
54
+   * Here is just an example
55
+   * You can also judge the status by HTTP Status Code
56
+   */
57
+  response => {
58
+    const res = response.data //
59
+
60
+    // console.log(response, "response..........")
61
+
62
+    // 走框架接口,会先在这里拿到服务器返回的数据,如果出现请求超时,或者token获取,或者一些公共错误,可以在这里判断拦截,然后在返回
63
+    // if (res.code == 401 && store.state.isAuthority) {
64
+    //   // if (response.code == 401) {
65
+    //   console.log(res.code, "res.code.......")
66
+    //   store.state.isAuthority = false;
67
+
68
+    //   // to re-login
69
+    //   MessageBox.confirm('身份失效,请重新登录', '确认退出', {
70
+    //     confirmButtonText: '确定',
71
+    //     cancelButtonText: '取消',
72
+    //     type: 'warning'
73
+    //   }).then(() => {
74
+    //     store.dispatch('user/resetToken').then(() => {
75
+    //       location.reload()
76
+    //     })
77
+    //   })
78
+    //   return Promise.reject(new Error(res.message || 'Error')) // 返回错误,可以如下面所示,给一个弹框提示错误之后,在返回
79
+
80
+    // }
81
+    // else if(res.code == 501 && store.state.isAuthority){
82
+    //   Message({
83
+    //     message: res.message || 'Error',
84
+    //     type: 'error',
85
+    //     duration: 5 * 1000
86
+    //   })
87
+    //   return Promise.reject(new Error(res.message || 'Error')) // 返回错误,可以如下面所示,给一个弹框提示错误之后,在返回
88
+    // }
89
+    // else {
90
+    //   return res;
91
+    // }
92
+
93
+    // 走框架接口,会先在这里拿到服务器返回的数据,如果出现请求超时,或者token获取,或者一些公共错误,可以在这里判断拦截,然后在返回
94
+
95
+
96
+
97
+    // if the custom code is not 20000, it is judged as an error.
98
+    // if (res.code !== 20000) {
99
+    //   Message({
100
+    //     message: res.message || 'Error',
101
+    //     type: 'error',
102
+    //     duration: 5 * 1000
103
+    //   })
104
+
105
+    // 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired;
106
+    if (res.code === 50008 || res.code === 50012 || res.code === 50014) {
107
+      // to re-login
108
+      MessageBox.confirm('You have been logged out, you can cancel to stay on this page, or log in again', 'Confirm logout', {
109
+        confirmButtonText: 'Re-Login',
110
+        cancelButtonText: 'Cancel',
111
+        type: 'warning'
112
+      }).then(() => {
113
+        store.dispatch('user/resetToken').then(() => {
114
+          location.reload()
115
+        })
116
+      })
117
+      // }
118
+      return Promise.reject(new Error(res.message || 'Error'))
119
+    } else {
120
+      return res
121
+    }
122
+  },
123
+  error => {
124
+    // console.log(JSON.stringify(error), "mmmmm")
125
+
126
+    // Message({
127
+    //   message: error.message,
128
+    //   type: 'error',
129
+    //   duration: 5 * 1000
130
+    // })
131
+    // return Promise.reject(error)
132
+
133
+    // if (error.response.status == 401&& store.state.isAuthority) {
134
+    //   store.state.isAuthority = false;
135
+    //   MessageBox.confirm('身份失效,请重新登录', '确认退出', {
136
+    //     confirmButtonText: '确定',
137
+    //     cancelButtonText: '取消',
138
+    //     type: 'warning'
139
+    //   }).then(() => {
140
+    //     store.dispatch('user/resetToken').then(() => {
141
+    //       location.reload()
142
+    //     })
143
+    //     closenewWebSocket(JSON.parse(getUser()).uid)
144
+    //   })
145
+    // }
146
+
147
+    if (error.response.status == 401 && store.state.isAuthority) {
148
+
149
+      store.state.isAuthority = false;
150
+
151
+      MessageBox.alert('身份失效,请重新登录', '确认退出', {
152
+        confirmButtonText: '确定',
153
+        callback:()=>{
154
+
155
+          store.dispatch('user/resetToken')
156
+          .then(() => {
157
+            location.reload()
158
+          })
159
+          closenewWebSocket(JSON.parse(getUser()).uid)
160
+          console.log("我到这儿le.....s")
161
+        }
162
+
163
+      })
164
+    }else if (error.response.status == 666 && store.state.isAuthority) {
165
+      this.$message.error('服务器神游中!');
166
+    } else if (error.response.status == 504 && store.state.isAuthority) {
167
+      this.$message.error('请求超时,请稍后再试');
168
+    }
169
+  }
170
+)
171
+
172
+export default service1
173
+

+ 164 - 69
shanXiPlatform/src/views/qrcode/index.vue

@@ -1,44 +1,66 @@
1
+
1 2
 <template>
2 3
   <div class="content">
3 4
     <div class="view row">
4 5
       <div class="app-logo">
5
-        <img src="@/assets/images/logon.jpg" alt="管理云平台">
6
+        <img src="@/assets/images/logon.jpg" alt="管理云平台" />
6 7
       </div>
7 8
       <div class="app-name">
8 9
         <h2>
9
-          <i class="fa fa-android" aria-hidden = 'true'></i>
10
+          <i class="fa fa-android" aria-hidden="true"></i>
10 11
           管理云平台
11 12
         </h2>
12 13
       </div>
13 14
       <div class="app-text">
14 15
         <ul class="breadcrumb">
15
-          <li>版本:1.19(build 19)</li>
16
+          <li > 版本:{{version.versionName}}(build {{version.versionCode}})</li>
16 17
           <li>大小:8.7M</li>
17
-          <li>更新时间:2021-01-14</li>
18
+          <li>更新时间:{{version.time}}</li>
18 19
         </ul>
19 20
       </div>
20 21
     </div>
21
-    <div class="view row" >
22
+    <div class="view row">
22 23
       <div class="install-btn">
23
-        <div class="spinner">
24
-          <a id="down_load" class="btn-u btn-u-lg" href="javascript:void(0);">安装</a>
24
+        <div class="spinner" >
25
+          <!-- <p>{{key }} {{value}}</p> -->
26
+          <!-- <p>{{version[fileName]}}</p> -->
27
+          <!-- <span>{{version.fileName}}</span> -->
28
+          <a id="down_load" @click="handleDown" class="btn-u btn-u-lg" :href="[url + version.fileName]"
29
+            >安装</a
30
+          >
25 31
         </div>
26 32
       </div>
27 33
     </div>
28 34
     <div class="row update-explain">
29 35
       <div class="tag-box">
30 36
         <h2 class="content-title">更新说明</h2>
31
-        <div class="update-description"> Uploaded by jenkins upload-pgyer plugin</div>
37
+        <div class="update-description">
38
+          {{version.content}}
39
+        </div>
32 40
       </div>
33 41
     </div>
34 42
     <div class="row ">
35 43
       <div class="versions">
36 44
         <div class="tag-box">
37
-          <h2 class="content-title">历史版本</h2>
38
-          <el-table>
39
-
45
+          <h2 class="content-title">历史版本 <span>选择历史版本下载</span></h2>
46
+          <el-table :data="version_info" fit stripe @row-click='handleClick' >
47
+            <el-table-column prop="versionName" label="版本" >
48
+              <template slot-scope="scope">
49
+                <div class="versionDiv">
50
+                  <!-- <span class="li-new"></span> -->
51
+                    {{scope.row.versionName }}(bulid {{ scope.row.versionCode}})
52
+                </div >
53
+              </template>
54
+            </el-table-column>
55
+            <el-table-column prop="time" label="更新日期"> </el-table-column>
56
+            <el-table-column class="update-content" prop="content" label="更新内容" >
57
+              <template slot-scope="scope">
58
+                <div class="content-version" >
59
+                    {{scope.row.content }}
60
+                </div >
61
+              </template>
62
+            </el-table-column>
40 63
           </el-table>
41
-
42 64
         </div>
43 65
       </div>
44 66
     </div>
@@ -46,66 +68,103 @@
46 68
 </template>
47 69
 
48 70
 <script>
71
+import { getAllVersions } from "@/api/app-versions/index"
49 72
 export default {
73
+  data() {
74
+    return {
75
+      version_info: [],
76
+      version:'',
77
+      url:'http://101.36.160.140:21021/apk/'
78
+    }
79
+  },
80
+  mounted() {
81
+    this.getVersions()
82
+  },
83
+  methods: {
84
+    //获取全部版本信息
85
+    getVersions() {
86
+      getAllVersions()
87
+        .then(res => {
88
+          console.log(res, "res...")
89
+          this.version_info = res.info
90
+          this.version = res.info[0]
91
+          console.log(this.version,'this.version...')
92
+        })
93
+        .catch(err => {
94
+          console.log(err, "err info")
95
+        })
96
+    },
97
+    handleClick(row){
98
+      console.log('row:',row)
99
+      this.version = row
100
+    },
101
+    handleDown(){
50 102
 
103
+    }
104
+  }
51 105
 }
52 106
 </script>
53 107
 
54 108
 <style lang="scss" scoped>
55
-  .content {
56
-    width: 75%;
57
-    margin: 0 auto;
58
-    // background-color: aqua;
59
-    height: 100vh;
60
-    overflow-y: scroll;
61
-    padding-top: 40px;
62
-    padding-bottom: 40px;
63
-    .view {
64
-      padding-top: 26px;
65
-    }
66
-    .row {
109
+
110
+
111
+.content {
112
+  // width: 75%;
113
+  margin: 0 auto;
114
+  // background-color: aqua;
115
+  // height: 100vh;
116
+  // overflow-y: scroll;
117
+  padding-top: 40px;
118
+  padding-bottom: 40px;
119
+  // 目前支持大部分手机端,ipad需要进行特别设置高度
120
+   height: calc(100vh - 100px);
121
+  overflow: auto;
122
+  .view {
123
+    padding-top: 26px;
124
+  }
125
+  .row {
67 126
     margin-left: -15px;
68
-    margin-right:-15px;
127
+    margin-right: -15px;
69 128
     .app-logo {
70 129
       text-align: center;
71 130
       margin-bottom: 30px;
72
-  }
131
+    }
73 132
     .app-name {
74
-    text-align: center;
75
-    padding-top: 10px;
76
-    h2{
77
-      color: #333;
78
-      font-size: 24px;
79
-      margin-bottom: -5px;
80
-      font-weight: 400;
81
-      text-shadow: none;
82
-      margin-top: 5px;
133
+      text-align: center;
134
+      padding-top: 10px;
135
+      h2 {
136
+        color: #333;
137
+        font-size: 24px;
138
+        margin-bottom: -5px;
139
+        font-weight: 400;
140
+        text-shadow: none;
141
+        margin-top: 5px;
142
+      }
83 143
     }
84
-  }
85 144
     .app-text {
86
-    text-align: center;
87
-    color: #788090;
88
-    box-sizing: border-box;
89
-    ul.breadcrumb {
90
-      padding: 0;
91
-    }
92
-    .breadcrumb {
93
-      top: 10px;
94
-      position: relative;
95
-      margin-bottom: 20px;
96
-      list-style: none;
97
-      li:not(:last-child) {
98
-        border-right: 1px solid #DEE2EC;
99
-        padding-right: 10px;
100
-        margin-right: 5px;
145
+      text-align: center;
146
+      color: #788090;
147
+      box-sizing: border-box;
148
+      ul.breadcrumb {
149
+        padding: 0;
101 150
       }
102
-      li {
103
-        display: inline-block;
104
-        color: #788090;
105
-        padding: 0 5px;
151
+      .breadcrumb {
152
+        top: 10px;
153
+        position: relative;
154
+        margin-bottom: 20px;
155
+        list-style: none;
156
+        li:not(:last-child) {
157
+          border-right: 1px solid #dee2ec;
158
+          padding-right: 10px;
159
+          margin-right: 5px;
160
+        }
161
+        li {
162
+          display: inline-block;
163
+          color: #788090;
164
+          padding: 0 5px;
165
+        }
106 166
       }
107 167
     }
108
-  }
109 168
     .install-btn {
110 169
       text-align: center;
111 170
       margin-bottom: 20px;
@@ -113,32 +172,33 @@ export default {
113 172
         height: 45px;
114 173
 
115 174
         #down_load {
116
-          background-color: #037D41;
175
+          background-color: #037d41;
117 176
           line-height: initial;
118 177
           border: 1px solid transparent;
119 178
         }
120
-        .btn-u-lg, a.btn-u-lg {
179
+        .btn-u-lg,
180
+        a.btn-u-lg {
121 181
           font-size: 18px;
122 182
           padding: 8px 60px;
123 183
           border-radius: 30px;
124 184
         }
125 185
         .btn-u {
126
-          background-color: #037D41;
186
+          background-color: #037d41;
127 187
           cursor: pointer;
128 188
           padding: 4px 13px;
129 189
           position: relative;
130 190
         }
131
-        .btn-u, .btn-u:hover {
191
+        .btn-u,
192
+        .btn-u:hover {
132 193
           color: #fff;
133 194
           text-decoration: none;
134 195
         }
135 196
       }
136 197
     }
137
-
138 198
   }
139 199
   .update-explain {
140 200
     padding: 0 15px;
141
-    .tag-box{
201
+    .tag-box {
142 202
       padding: 20px;
143 203
       background: #fff;
144 204
       margin-bottom: 40px;
@@ -147,7 +207,7 @@ export default {
147 207
         line-height: 25px;
148 208
         text-shadow: none;
149 209
         font-weight: 400;
150
-        margin-top:5px;
210
+        margin-top: 5px;
151 211
         color: #585f69;
152 212
       }
153 213
       .update-description {
@@ -156,9 +216,12 @@ export default {
156 216
       }
157 217
     }
158 218
   }
219
+  .tags-view-container #tag_right {
220
+    width: 25%;
221
+  }
159 222
   .versions {
160 223
     padding: 0 15px;
161
-    .tag-box{
224
+    .tag-box {
162 225
       padding: 20px;
163 226
       background: #fff;
164 227
       margin-bottom: 40px;
@@ -167,13 +230,45 @@ export default {
167 230
         line-height: 25px;
168 231
         text-shadow: none;
169 232
         font-weight: 400;
170
-        margin-top:5px;
233
+        margin-top: 5px;
171 234
         color: #585f69;
172 235
       }
236
+    }
173 237
   }
238
+}
239
+.content-title {
240
+  span  {
241
+    font-size: 10px;
242
+    font-weight: 400;
174 243
   }
175
-
176
-  }
177
-
178
-
244
+}
245
+.content-version{
246
+  // width: 180px;
247
+  overflow: hidden;
248
+  text-overflow: ellipsis;
249
+  white-space: nowrap;
250
+  //  -webkit-line-clamp: 1;
251
+  // 多行文本溢出
252
+  display: -webkit-box;
253
+  display: -moz-box;
254
+  // display: -webkit-flex;
255
+  // display: -moz-flex;
256
+  // display: flex;
257
+-webkit-box-orient: vertical;
258
+-webkit-line-clamp: 2;
259
+overflow: hidden;
260
+}
261
+.versionDiv {
262
+  position: relative;
263
+}
264
+.li-new {
265
+  position: absolute;
266
+  top: 0;
267
+  left: 5%;
268
+  font-size: 13px;
269
+  // background: url("/@/assets/images/new.png") center no-repeat;
270
+  height: 100%;
271
+  width: 30px;
272
+  background-size: 100%;
273
+}
179 274
 </style>

+ 20 - 8
shanXiPlatform/vue.config.js

@@ -29,7 +29,7 @@ module.exports = {
29 29
   assetsDir: 'static',
30 30
   // lintOnSave: process.env.NODE_ENV === 'development',
31 31
 
32
-  
32
+
33 33
   // 取消 ESLint 校验
34 34
 
35 35
   lintOnSave:false,
@@ -42,25 +42,37 @@ module.exports = {
42 42
         target: 'http://101.36.160.140:21021',  //这里后台的地址模拟的;应该填写你们真实的后台接口
43 43
         // target:'http://172.16.0.02:9601',
44 44
         changOrigin: true,  //允许跨域
45
-       
45
+
46
+        pathRewrite: {
47
+          /* 重写路径,当我们在浏览器中看到请求的地址为:http://localhost:8080/api/core/getData/userInfo 时
48
+            实际上访问的地址是:http://121.121.67.254:8185/core/getData/userInfo,因为重写了 /api
49
+           */
50
+          '^/': ''
51
+        }
52
+      },
53
+      '/apk': {
54
+        target: 'http://101.36.160.140:21021',  //这里后台的地址模拟的;应该填写你们真实的后台接口
55
+        // target:'http://172.16.0.02:9601',
56
+        changOrigin: true,  //允许跨域
57
+
46 58
         pathRewrite: {
47 59
           /* 重写路径,当我们在浏览器中看到请求的地址为:http://localhost:8080/api/core/getData/userInfo 时
48 60
             实际上访问的地址是:http://121.121.67.254:8185/core/getData/userInfo,因为重写了 /api
49 61
            */
50
-          '^/': '' 
62
+          '^/apk': ''
51 63
         }
52 64
       },
53 65
       '/webs': {
54 66
         target: 'http://139.159.183.224:19999',  //这里后台的地址模拟的;应该填写你们真实的后台接口
55 67
         // target:'http://172.16.0.02:9601',
56
-        
68
+
57 69
         changOrigin: true,  //允许跨域
58
-       
70
+
59 71
         pathRewrite: {
60 72
           /* 重写路径,当我们在浏览器中看到请求的地址为:http://localhost:8080/api/core/getData/userInfo 时
61 73
             实际上访问的地址是:http://121.121.67.254:8185/core/getData/userInfo,因为重写了 /api
62 74
            */
63
-          '^/webs': '' 
75
+          '^/webs': ''
64 76
         }
65 77
       },
66 78
 
@@ -72,10 +84,10 @@ module.exports = {
72 84
 
73 85
 
74 86
 
75
-   
76 87
 
77 88
 
78
-   
89
+
90
+
79 91
     port: port,
80 92
     open: true,
81 93
     overlay: {