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> | ... | ... |