Commit 552b3337ce02c63098b1605c8c2b7ebcf981963c

Authored by 刘淇
1 parent 9ca46819

我已经购买会员卡

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