Commit 26e543b8efe38f8aa2d72e0ee44c9004fa30d519

Authored by liuqimichale
1 parent 455431ac

ajax 统一封装

config/index.js
@@ -10,7 +10,15 @@ module.exports = { @@ -10,7 +10,15 @@ module.exports = {
10 // Paths 10 // Paths
11 assetsSubDirectory: 'static', 11 assetsSubDirectory: 'static',
12 assetsPublicPath: '/', 12 assetsPublicPath: '/',
13 - proxyTable: {}, 13 + proxyTable: {
  14 + '/api/': {
  15 + target: 'http://39.98.54.240:8090/',
  16 + changeOrigin: true,
  17 + pathRewrire: {
  18 + '^/api': ''
  19 + }
  20 + }
  21 + },
14 22
15 // Various Dev Server settings 23 // Various Dev Server settings
16 host: 'localhost', // can be overwritten by process.env.HOST 24 host: 'localhost', // can be overwritten by process.env.HOST
@@ -20,7 +28,7 @@ module.exports = { @@ -20,7 +28,7 @@ module.exports = {
20 notifyOnErrors: true, 28 notifyOnErrors: true,
21 poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions- 29 poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-
22 30
23 - 31 +
24 /** 32 /**
25 * Source Maps 33 * Source Maps
26 */ 34 */
package.json
@@ -10,6 +10,7 @@ @@ -10,6 +10,7 @@
10 "build": "node build/build.js" 10 "build": "node build/build.js"
11 }, 11 },
12 "dependencies": { 12 "dependencies": {
  13 + "axios": "^0.21.1",
13 "css-loader": "^3.6.0", 14 "css-loader": "^3.6.0",
14 "less-loader": "^4.1.0", 15 "less-loader": "^4.1.0",
15 "sass-loader": "^7.3.1", 16 "sass-loader": "^7.3.1",
src/api/parkRecord/parkRecord.js 0 → 100644
  1 +import request from '@/utils/request'
  2 +
  3 +export function parkRecordList(params) {
  4 + return request({
  5 + url: '/queryParkOrder/queryParkingRecordPageByCarNumbers',
  6 + method: 'post',
  7 + data: params
  8 + })
  9 +}
src/components/orderPay.vue
1 <template> 1 <template>
2 <div> 2 <div>
3 <div class="car-wrap"> 3 <div class="car-wrap">
4 - <div class="carBG">  
5 - <p>蒙DT849</p>  
6 - <p>D36.0123</p> 4 + <div class="carBG" :class="carWrapBG | formateColor">
  5 + <p class="carNumber">{{carNumber}}</p>
  6 + <p class="payFee">{{payFee/100}}.00元</p>
7 </div> 7 </div>
8 </div> 8 </div>
9 9
  10 + <ul class="fee-wrap">
  11 + <li>
  12 + <span>待缴金额</span>
  13 + <span>36.00</span>
  14 + </li>
  15 + <li>
  16 + <span>优惠金额</span>
  17 + <span>36.00</span>
  18 + </li>
  19 + <li>
  20 + <span>应付金额</span>
  21 + <span>36.00</span>
  22 + </li>
  23 + </ul>
  24 + <div style="padding: 20px 18px">
  25 + <div class="toPay">微信支付</div>
  26 + </div>
  27 +
  28 + <p class="tip">
  29 + 温馨提示:
  30 + </p>
  31 + <p style="color: #666;padding: 0 18px;">
  32 + 请在支付完成后15分钟内出场,如超出15分钟,会
  33 + 产生相应费用。
  34 + </p>
  35 +
  36 +
10 </div> 37 </div>
11 </template> 38 </template>
12 39
13 <script> 40 <script>
14 export default { 41 export default {
15 - name: 'orderPay' 42 + name: 'orderPay',
  43 + data() {
  44 + return {
  45 + carWrapBG: 0,
  46 + carNumber: '京A12312',
  47 + payFee: 0
  48 + }
  49 + },
  50 + created() {
  51 + this.carWrapBG = this.$route.query.carColor
  52 + },
  53 + filters:{
  54 + formateColor(val){
  55 + switch (val) {
  56 + case '0':
  57 + return 'carBlue'
  58 + break;
  59 + case '1':
  60 + return 'carYellow'
  61 + break;
  62 + case '2':
  63 + return 'carGreen'
  64 + break;
  65 + case '3':
  66 + return 'carWhite'
  67 + break;
  68 + case '4':
  69 + return 'carBlack'
  70 + break;
  71 + }
  72 + }
  73 + }
16 } 74 }
17 </script> 75 </script>
18 76
19 <style scoped lang="scss"> 77 <style scoped lang="scss">
20 .car-wrap { 78 .car-wrap {
21 padding: 7px 7px; 79 padding: 7px 7px;
  80 + background: #FFF;
22 } 81 }
23 82
24 .carBG { 83 .carBG {
25 width: 100%; 84 width: 100%;
26 height: 130px; 85 height: 130px;
  86 + }
  87 + .carBlue{
  88 + background: url("../assets/images/blueBG.png") no-repeat;
  89 + background-size: 100% 100%;
  90 + }
  91 + .carYellow{
27 background: url("../assets/images/yellowBG.png") no-repeat; 92 background: url("../assets/images/yellowBG.png") no-repeat;
28 background-size: 100% 100%; 93 background-size: 100% 100%;
29 } 94 }
  95 + .carGreen{
  96 + background: url("../assets/images/greenBG.png") no-repeat;
  97 + background-size: 100% 100%;
  98 + }
  99 + .carWhite{
  100 + background: url("../assets/images/whiteBG.png") no-repeat;
  101 + background-size: 100% 100%;
  102 + }
  103 + .carBlack{
  104 + background: url("../assets/images/blackBG.png") no-repeat;
  105 + background-size: 100% 100%;
  106 + }
  107 +
  108 + .carNumber {
  109 + padding: 20px 0 10px;
  110 + font-size: 30px;
  111 + color: #fff;
  112 + text-align: center;
  113 + }
  114 +
  115 + .payFee {
  116 + font-size: 24px;
  117 + color: #FF7B7B;
  118 + text-align: center;
  119 + }
  120 +
  121 + .fee-wrap {
  122 + background: #FFF;
  123 + padding: 0 18px;
  124 + > li {
  125 + display: flex;
  126 + justify-content: space-between;
  127 + height: 30px;
  128 + line-height: 30px;
  129 + border-bottom: 1px solid #EAEAEA;
  130 + &:last-child {
  131 + border-bottom: 0;
  132 + }
  133 + }
  134 +
  135 + }
  136 +
  137 + .toPay {
  138 + width: 100%;
  139 + height: 44px;
  140 + margin: 0 auto;
  141 + line-height: 44px;
  142 + text-align: center;
  143 + background: linear-gradient(180deg, #3885D9 0%, #4194EF 100%);
  144 + border-radius: 4px;
  145 + border: 1px solid #0D72E2;
  146 + font-size: 20px;
  147 + color: #FFF;
  148 + cursor: pointer;
  149 + }
  150 + .tip{
  151 + padding-left: 40px;
  152 + background: url("../assets/images/free-tip.png") no-repeat 18px center;
  153 + background-size: 16px 16px;
  154 + color: #666;
  155 + }
30 </style> 156 </style>
src/components/parkRecord.vue
@@ -19,7 +19,7 @@ @@ -19,7 +19,7 @@
19 19
20 <div class="cost-main" > 20 <div class="cost-main" >
21 <ul class="cost-header"> 21 <ul class="cost-header">
22 - <li :class="carColor | formatColor">蒙DMW169</li> 22 + <li :class="carColor | formateColor">蒙DMW169</li>
23 <li>本次费用</li> 23 <li>本次费用</li>
24 </ul> 24 </ul>
25 25
@@ -61,7 +61,7 @@ @@ -61,7 +61,7 @@
61 :class="{isChecked: i.checked}" 61 :class="{isChecked: i.checked}"
62 > 62 >
63 <ul class="cost-header"> 63 <ul class="cost-header">
64 - <li :class="carColor | formatColor">蒙DMW169</li> 64 + <li :class="carColor | formateColor">蒙DMW169</li>
65 <li>欠费</li> 65 <li>欠费</li>
66 </ul> 66 </ul>
67 67
@@ -123,6 +123,8 @@ @@ -123,6 +123,8 @@
123 </template> 123 </template>
124 124
125 <script> 125 <script>
  126 +import { parkRecordList } from '@/api/parkRecord/parkRecord.js'
  127 +
126 export default { 128 export default {
127 name: 'parkRecord', 129 name: 'parkRecord',
128 data() { 130 data() {
@@ -151,8 +153,18 @@ export default { @@ -151,8 +153,18 @@ export default {
151 created() { 153 created() {
152 this.carNumber = this.$route.query.carNumber // 获取车牌号 154 this.carNumber = this.$route.query.carNumber // 获取车牌号
153 console.log(this.carNumber) 155 console.log(this.carNumber)
  156 + this.parkRecordList(this.carNumber)
154 }, 157 },
155 methods: { 158 methods: {
  159 + parkRecordList(){
  160 + parkRecordList({}).then(res => {
  161 + console.log(res)
  162 +
  163 + })
  164 + },
  165 +
  166 +
  167 +
156 tabHandle(index) { // tab 切换 168 tabHandle(index) { // tab 切换
157 this.currentTabActive = index 169 this.currentTabActive = index
158 }, 170 },
@@ -194,11 +206,18 @@ export default { @@ -194,11 +206,18 @@ export default {
194 this.$refs.alert.open() 206 this.$refs.alert.open()
195 return 207 return
196 } 208 }
197 - this.$router.push({path:'orderPay'}) 209 + this.$router.push(
  210 + {
  211 + path:'orderPay',
  212 + query:{
  213 + carColor:0
  214 + }
  215 + }
  216 + )
198 } 217 }
199 }, 218 },
200 filters: { 219 filters: {
201 - formatColor(val) { 220 + formateColor(val) {
202 switch (val) { 221 switch (val) {
203 case 0: 222 case 0:
204 return 'carBlue' 223 return 'carBlue'
src/router/index.js
@@ -9,8 +9,9 @@ export default new Router({ @@ -9,8 +9,9 @@ export default new Router({
9 routes: [ 9 routes: [
10 { 10 {
11 path: '/', 11 path: '/',
12 - name: 'plateNumber',  
13 - component: plateNumber 12 + redirect: {
  13 + name: 'parkRecord'
  14 + }
14 }, 15 },
15 { 16 {
16 path: '/plateNumber', 17 path: '/plateNumber',
src/utils/common.js 0 → 100644
src/utils/request.js 0 → 100644
  1 +import axios from 'axios'
  2 +
  3 +// let _userToken = sessionStorage.getItem('userToken')
  4 +// let _url = process.env.API_ROOT
  5 +// axios.defaults.baseURL = process.env.API_ROOT
  6 +const service = axios.create({
  7 + // baseURL: 'http://47.104.196.152:8081', // url = base url + request url
  8 + //baseURL: _url, // url = base url + request url
  9 +
  10 + baseURL: '/api', // url = base url + request url
  11 + withCredentials: true, // send cookies when cross-domain requests
  12 + timeout: 6000 // request timeout
  13 +})
  14 +
  15 +service.interceptors.request.use(
  16 + config => {
  17 + // let token = _userToken
  18 + // //let token='298bd7ff-a025-4145-a4a3-554769375b48';
  19 + // config.headers['X-Auth-Token'] = token
  20 + return config
  21 + },
  22 + error => {
  23 + // do something with request error
  24 + console.log(error) // for debug
  25 + return Promise.reject(error)
  26 + }
  27 +)
  28 +
  29 +// response interceptor
  30 +service.interceptors.response.use(
  31 + response => {
  32 + const res = response.data
  33 + // if the custom code is not 20000, it is judged as an error.
  34 + if (res.code != '8888') {
  35 + return res
  36 + } else {
  37 + return res
  38 + }
  39 + },
  40 + error => {
  41 + console.log('err' + error) // for debug
  42 + return Promise.reject(error)
  43 + }
  44 +)
  45 +
  46 +export default service
src/utils/utils.js 0 → 100644
src/utils/variables.js 0 → 100644