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,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,6 +131,13 @@ export default new Router({ | ||
131 | name: "buyCard", | 131 | name: "buyCard", |
132 | component: () => import("@/views/cards/buyCard.vue"), | 132 | component: () => import("@/views/cards/buyCard.vue"), |
133 | meta: { title: "购买会员卡" } | 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 | const vFilter = { | 1 | const vFilter = { |
2 | formateColor: function(val) { // 0:蓝牌;1:黄牌;2:白牌;3:黑牌;4:绿色 | 2 | formateColor: function(val) { // 0:蓝牌;1:黄牌;2:白牌;3:黑牌;4:绿色 |
3 | switch (val) { | 3 | switch (val) { |
4 | - case '0': | ||
5 | - return 'carBlue' | 4 | + case "0": |
5 | + return "carBlue"; | ||
6 | break; | 6 | break; |
7 | - case '1': | ||
8 | - return 'carYellow' | 7 | + case "1": |
8 | + return "carYellow"; | ||
9 | break; | 9 | break; |
10 | - case '2': | ||
11 | - return 'carWhite' | 10 | + case "2": |
11 | + return "carWhite"; | ||
12 | break; | 12 | break; |
13 | - case '3': | ||
14 | - return 'carBlack' | 13 | + case "3": |
14 | + return "carBlack"; | ||
15 | break; | 15 | break; |
16 | - case '4': | ||
17 | - return 'carGreen' | 16 | + case "4": |
17 | + return "carGreen"; | ||
18 | break; | 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> |