Commit 552b3337ce02c63098b1605c8c2b7ebcf981963c
1 parent
9ca46819
我已经购买会员卡
Showing
6 changed files
with
207 additions
and
19 deletions
src/api/card/card.js
... | ... | @@ -43,4 +43,11 @@ export function createVipCardOrder2022(params) { //会员卡购买续费2022 |
43 | 43 | }) |
44 | 44 | } |
45 | 45 | |
46 | +export function queryVipCardsByCustId(params) { //查询用户已购买的会员卡 | |
47 | + return request({ | |
48 | + url: 'parkvip/queryVipCardsByCustId', | |
49 | + method: 'post', | |
50 | + data: params | |
51 | + }) | |
52 | +} | |
46 | 53 | ... | ... |
src/assets/images/cards/myvipcardBg.png
0 → 100644
33.9 KB
src/assets/images/cards/vipcardbtnBg.png
0 → 100644
3.57 KB
src/router/index.js
... | ... | @@ -131,6 +131,13 @@ export default new Router({ |
131 | 131 | name: "buyCard", |
132 | 132 | component: () => import("@/views/cards/buyCard.vue"), |
133 | 133 | meta: { title: "购买会员卡" } |
134 | - } | |
134 | + }, | |
135 | + { | |
136 | + path: "/ownCards", | |
137 | + name: "ownCards", | |
138 | + component: () => import("@/views/cards/ownCards.vue"), | |
139 | + meta: { title: "已购会员卡" } | |
140 | + }, | |
141 | + | |
135 | 142 | ] |
136 | 143 | }); | ... | ... |
src/utils/filters.js
1 | 1 | const vFilter = { |
2 | 2 | formateColor: function(val) { // 0:蓝牌;1:黄牌;2:白牌;3:黑牌;4:绿色 |
3 | 3 | switch (val) { |
4 | - case '0': | |
5 | - return 'carBlue' | |
4 | + case "0": | |
5 | + return "carBlue"; | |
6 | 6 | break; |
7 | - case '1': | |
8 | - return 'carYellow' | |
7 | + case "1": | |
8 | + return "carYellow"; | |
9 | 9 | break; |
10 | - case '2': | |
11 | - return 'carWhite' | |
10 | + case "2": | |
11 | + return "carWhite"; | |
12 | 12 | break; |
13 | - case '3': | |
14 | - return 'carBlack' | |
13 | + case "3": | |
14 | + return "carBlack"; | |
15 | 15 | break; |
16 | - case '4': | |
17 | - return 'carGreen' | |
16 | + case "4": | |
17 | + return "carGreen"; | |
18 | 18 | break; |
19 | - | |
20 | 19 | } |
21 | - }, | |
20 | + } | |
21 | +}; | |
22 | +const numFilter = function(value) { | |
23 | + // 截取当前数据到小数点后两位 | |
24 | + let realVal = (Number(value) / 100).toFixed(2); | |
25 | + return realVal; | |
26 | +}; | |
27 | +const carType = function(carType) { | |
28 | + switch (Number(carType)) { | |
29 | + case 1: | |
30 | + return "大型车"; | |
31 | + break; | |
32 | + case 2: | |
33 | + return "小型车"; | |
34 | + break; | |
35 | + default: | |
36 | + break; | |
37 | + } | |
38 | +}; | |
22 | 39 | |
23 | -} | |
24 | 40 | |
25 | -const numFilter=function (value) { | |
26 | - // 截取当前数据到小数点后两位 | |
27 | - let realVal = (Number(value)/100).toFixed(2) | |
28 | - return realVal | |
41 | +const cardType = function(cardType) { | |
42 | + switch (Number(cardType)) { | |
43 | + case 1: | |
44 | + return "年卡"; | |
45 | + break; | |
46 | + case 2: | |
47 | + return "半年卡"; | |
48 | + break; | |
49 | + case 3: | |
50 | + return "季卡"; | |
51 | + break; | |
52 | + case 4: | |
53 | + return "月卡"; | |
54 | + break; | |
55 | + case 5: | |
56 | + return "日卡"; | |
57 | + break; | |
58 | + default: | |
59 | + break; | |
60 | + } | |
29 | 61 | } |
30 | 62 | |
31 | 63 | |
32 | -export default {vFilter,numFilter} | |
64 | + | |
65 | +export default { vFilter, numFilter, carType, cardType }; | ... | ... |
src/views/cards/ownCards.vue
0 → 100644
1 | +<template> | |
2 | + <section class="commonPagePadding"> | |
3 | + <ul class="cardListWrap"> | |
4 | + <li class="cardMain" v-for="(i,index) in mycardlist" @click="gotoNextPay(i)" :key="index"> | |
5 | + <p class="cardTags"> | |
6 | + <span>{{i.cardType | cardType}}</span> | |
7 | + <span>{{i.carType | carType}}</span> | |
8 | + </p> | |
9 | + | |
10 | + <p class="cardCarNum">{{i.carNumber}}</p> | |
11 | + <p>{{i.parkName}}</p> | |
12 | + <p class="cardDate">有效期:{{i.effDate}} 至 {{i.expDate}}</p> | |
13 | + <div class="renewBtn">续费</div> | |
14 | + </li> | |
15 | + </ul> | |
16 | + | |
17 | + <!--<div style="text-align: center;padding-top: 60px;">--> | |
18 | + <!--<van-image :src="require('../../assets/images/cards/novipcard.png')"></van-image>--> | |
19 | + <!--<p>暂无购买会员卡记录</p>--> | |
20 | + <!--</div>--> | |
21 | + </section> | |
22 | +</template> | |
23 | + | |
24 | +<script> | |
25 | +import { queryVipCardsByCustId } from "@/api/card/card"; | |
26 | +export default { | |
27 | + name: "ownCards", | |
28 | + data() { | |
29 | + return { | |
30 | + mycardlist: [{ | |
31 | + "cardName": "测试1", | |
32 | + "parkName": "东济路", | |
33 | + "num": 1, | |
34 | + "discount": "1.0", | |
35 | + "invoiceState": "0", | |
36 | + "useType": "1", | |
37 | + "cardNo": "V1123900924620210176", | |
38 | + "expDate": "2023-07-28", | |
39 | + "effDate": "2023-06-29", | |
40 | + "carType": "2", | |
41 | + "payType": "12", | |
42 | + "price": "100", | |
43 | + "isSupportRenew": "1", | |
44 | + "cardStatus": "2", | |
45 | + "parkNo": "P15040000000018", | |
46 | + "payFinishTime": "2023-06-29 09:01:37", | |
47 | + "cardType": "4", | |
48 | + "orderPayedFee": "10", | |
49 | + "custCardNo": "7011123901072930799616", | |
50 | + "carNumber": "苏B13ERR", | |
51 | + "parkAddr": "江阴市江阴高新技术产业开发区东济路", | |
52 | + "totalAmount": "100", | |
53 | + "saleChannel": "4", | |
54 | + "custCardId": "4493", | |
55 | + "actPrice": "100" | |
56 | + }] | |
57 | + }; | |
58 | + }, | |
59 | + created() { | |
60 | + this.queryVipCardsByCustId(); | |
61 | + }, | |
62 | + methods: { | |
63 | + queryVipCardsByCustId() { | |
64 | + let jsondata = { | |
65 | + saleChannel: "2" | |
66 | + }; | |
67 | + jsondata.sign = this.$utils.signObject(jsondata); | |
68 | + queryVipCardsByCustId(jsondata).then(response => { | |
69 | + console.log(response); | |
70 | + // this.mycardlist = response.data | |
71 | + }); | |
72 | + }, | |
73 | + gotoNextPay(i) { | |
74 | + this.$router.push({ | |
75 | + name: "buyVipCard", | |
76 | + query: { | |
77 | + cardName: i.cardName, | |
78 | + carType: i.carType, | |
79 | + cardType: i.cardType, | |
80 | + actPrice: i.actPrice, | |
81 | + discValue: i.discValue, | |
82 | + plName: i.parkName, | |
83 | + plAddress: i.parkAddr, | |
84 | + plNo: i.parkNo, | |
85 | + cardNo: i.cardNo, | |
86 | + carNumber: i.carNumber, | |
87 | + effDate: i.effDate, | |
88 | + expDate: i.expDate, | |
89 | + orderPayedFee: i.orderPayedFee | |
90 | + } | |
91 | + } | |
92 | + ); | |
93 | + } | |
94 | + } | |
95 | +}; | |
96 | +</script> | |
97 | + | |
98 | +<style scoped lang="less"> | |
99 | + .cardMain { | |
100 | + height: 190px; | |
101 | + padding: 20px; | |
102 | + margin-top: 10px; | |
103 | + position: relative; | |
104 | + background: url("../../assets/images/cards/myvipcardBg.png") no-repeat; | |
105 | + background-size: 100% 100%; | |
106 | + color: #fff; | |
107 | + } | |
108 | + | |
109 | + .cardTags { | |
110 | + span { | |
111 | + padding: 2px 25px; | |
112 | + border-radius: 15px; | |
113 | + background: rgba(255, 255, 255, .3); | |
114 | + margin-right: 10px; | |
115 | + font-size: 12px; | |
116 | + | |
117 | + } | |
118 | + } | |
119 | + | |
120 | + .cardCarNum { | |
121 | + padding: 20px 0 2px; | |
122 | + font-size: 22px; | |
123 | + font-weight: 600; | |
124 | + } | |
125 | + | |
126 | + .cardDate { | |
127 | + padding-top: 34px; | |
128 | + } | |
129 | + | |
130 | + .renewBtn { | |
131 | + width: 80px; | |
132 | + height: 35px; | |
133 | + line-height: 35px; | |
134 | + text-align: center; | |
135 | + position: absolute; | |
136 | + right: 70px; | |
137 | + top: 50%; | |
138 | + transform: translateY(-50%); | |
139 | + background: url("../../assets/images/cards/vipcardbtnBg.png") no-repeat; | |
140 | + } | |
141 | +</style> | ... | ... |