Commit e7ca4bcb4fd91517631e2702508f47339ae298eb
1 parent
d3808923
会员卡
Showing
5 changed files
with
178 additions
and
135 deletions
src/api/card/card.js
0 → 100644
| 1 | +import request from '@/utils/request' | |
| 2 | + | |
| 3 | +export function queryVipCardListByOrgId(params) { //查询停车场-会员卡-根据orgID | |
| 4 | + return request({ | |
| 5 | + url: 'parkvip/queryVipCardListByOrgId', | |
| 6 | + method: 'post', | |
| 7 | + data: params | |
| 8 | + }) | |
| 9 | +} | |
| 10 | + | |
| 11 | + | |
| 12 | +export function queryVipCardListByPlName(params) { //搜索有会员卡的停车场 | |
| 13 | + return request({ | |
| 14 | + url: 'parkvip/queryVipCardListByPlName', | |
| 15 | + method: 'post', | |
| 16 | + data: params | |
| 17 | + }) | |
| 18 | +} | |
| 19 | + | |
| 20 | +export function queryVipCardByPlNo(params) { //查询某个停车场的 具体的会员卡信息 | |
| 21 | + return request({ | |
| 22 | + url: 'parkvip/queryVipCardByPlNo', | |
| 23 | + method: 'post', | |
| 24 | + data: params | |
| 25 | + }) | |
| 26 | +} | ... | ... |
src/router/index.js
| 1 | -import Vue from 'vue' | |
| 2 | -import Router from 'vue-router' | |
| 3 | -import plateNumber from '@/views/parkPay/plateNumber' | |
| 1 | +import Vue from "vue"; | |
| 2 | +import Router from "vue-router"; | |
| 3 | +import plateNumber from "@/views/parkPay/plateNumber"; | |
| 4 | 4 | // import parkRecord from '@/views/parkPay/parkRecord' |
| 5 | 5 | // import selfNav from '@/views/mySelf/selfNav' |
| 6 | - | |
| 7 | -Vue.use(Router) | |
| 8 | - | |
| 6 | +Vue.use(Router); | |
| 9 | 7 | export default new Router({ |
| 10 | 8 | routes: [ |
| 11 | 9 | { |
| 12 | - path: '/', | |
| 10 | + path: "/", | |
| 13 | 11 | redirect: { |
| 14 | - name: 'plateNumber' | |
| 12 | + name: "plateNumber" | |
| 15 | 13 | } |
| 16 | 14 | }, |
| 17 | 15 | // { |
| ... | ... | @@ -19,155 +17,119 @@ export default new Router({ |
| 19 | 17 | // name: 'navigation', |
| 20 | 18 | // component: navigation |
| 21 | 19 | // }, |
| 22 | - | |
| 23 | 20 | { |
| 24 | - path: '/parkRecord', | |
| 25 | - name: 'parkRecord', | |
| 21 | + path: "/parkRecord", | |
| 22 | + name: "parkRecord", | |
| 26 | 23 | component: () => import("@/views/parkPay/parkRecord.vue") |
| 27 | 24 | }, |
| 28 | 25 | { |
| 29 | - path: '/plateNumber', | |
| 30 | - name: 'plateNumber', | |
| 26 | + path: "/plateNumber", | |
| 27 | + name: "plateNumber", | |
| 31 | 28 | component: plateNumber |
| 32 | 29 | }, |
| 33 | - | |
| 34 | 30 | { |
| 35 | - path: '/orderPay', | |
| 36 | - name: 'orderPay', | |
| 31 | + path: "/orderPay", | |
| 32 | + name: "orderPay", | |
| 37 | 33 | component: () => import("@/views/parkPay/orderPay.vue") |
| 38 | 34 | }, |
| 39 | - | |
| 40 | - | |
| 41 | 35 | { |
| 42 | - path: '/map', | |
| 43 | - name: 'map', | |
| 36 | + path: "/map", | |
| 37 | + name: "map", | |
| 44 | 38 | component: () => import("@/views/map/map.vue") |
| 45 | 39 | }, |
| 46 | - | |
| 47 | 40 | { |
| 48 | - path: '/parkList', | |
| 49 | - name: 'parkList', | |
| 41 | + path: "/parkList", | |
| 42 | + name: "parkList", | |
| 50 | 43 | component: () => import("@/views/map/parkList.vue") |
| 51 | 44 | }, |
| 52 | - | |
| 53 | 45 | { |
| 54 | - path: '/parkinfo', | |
| 55 | - name: 'parkinfo', | |
| 46 | + path: "/parkinfo", | |
| 47 | + name: "parkinfo", | |
| 56 | 48 | component: () => import("@/views/map/parkinfo.vue") |
| 57 | 49 | }, |
| 58 | - | |
| 59 | 50 | { |
| 60 | - path: '/search', | |
| 61 | - name: 'search', | |
| 51 | + path: "/search", | |
| 52 | + name: "search", | |
| 62 | 53 | component: () => import("@/views/map/search.vue") |
| 63 | 54 | }, |
| 64 | - | |
| 65 | - | |
| 66 | - | |
| 67 | - | |
| 68 | - | |
| 69 | - | |
| 70 | - //---------------- 个人页面导航 | |
| 55 | + //---------------- 个人页面导航 | |
| 71 | 56 | { |
| 72 | - path: '/selfNav', | |
| 73 | - name: 'selfNav', | |
| 57 | + path: "/selfNav", | |
| 58 | + name: "selfNav", | |
| 74 | 59 | component: () => import("@/views/mySelf/selfNav.vue"), |
| 75 | - meta: {title: "个人中心"} | |
| 60 | + meta: { | |
| 61 | + title: "个人中心" , | |
| 62 | + keepAlive: false, //此组件不需要被缓存 | |
| 63 | + } | |
| 76 | 64 | }, |
| 77 | - | |
| 78 | 65 | // ------------------------建议反馈 |
| 79 | 66 | { |
| 80 | - path: '/suggestionBack', | |
| 81 | - name: 'suggestionBack', | |
| 67 | + path: "/suggestionBack", | |
| 68 | + name: "suggestionBack", | |
| 82 | 69 | component: () => import("@/views/mySelf/feedback/suggestionBack.vue"), |
| 83 | - meta: {title: "建议反馈"} | |
| 70 | + meta: { title: "建议反馈" } | |
| 84 | 71 | }, |
| 85 | - | |
| 86 | 72 | // ------------------------停车记录 |
| 87 | 73 | { |
| 88 | - path: '/parkNotes', | |
| 89 | - name: 'parkNotes', | |
| 74 | + path: "/parkNotes", | |
| 75 | + name: "parkNotes", | |
| 90 | 76 | component: () => import("@/views/mySelf/parkNotes/parkNotes.vue") |
| 91 | 77 | }, |
| 92 | - | |
| 93 | - | |
| 94 | 78 | // ------------------------登录 |
| 95 | 79 | { |
| 96 | - path: '/binDing', | |
| 97 | - name: 'binDing', | |
| 80 | + path: "/binDing", | |
| 81 | + name: "binDing", | |
| 98 | 82 | component: () => import("@/views/binding/binDing.vue"), |
| 99 | - meta: {title: "绑定手机号"} | |
| 83 | + meta: { title: "绑定手机号" } | |
| 100 | 84 | }, |
| 101 | 85 | { |
| 102 | - path: '/myCars', | |
| 103 | - name: 'myCars', | |
| 86 | + path: "/myCars", | |
| 87 | + name: "myCars", | |
| 104 | 88 | component: () => import("@/views//mySelf/myCars/myCars.vue"), |
| 105 | - meta: {title: "我的车牌"} | |
| 89 | + meta: { title: "我的车牌" } | |
| 106 | 90 | }, |
| 107 | - | |
| 108 | 91 | { |
| 109 | - path: '/addCarNum', | |
| 110 | - name: 'addCarNum', | |
| 92 | + path: "/addCarNum", | |
| 93 | + name: "addCarNum", | |
| 111 | 94 | component: () => import("@/views//mySelf/myCars/addCarNum.vue"), |
| 112 | - meta: {title: "添加车牌"} | |
| 95 | + meta: { title: "添加车牌" } | |
| 113 | 96 | }, |
| 114 | 97 | { |
| 115 | - path: '/rzCarNumber', | |
| 116 | - name: 'rzCarNumber', | |
| 117 | - component: () => import("@/views//mySelf/myCars/rzCarNumber.vue"), | |
| 98 | + path: "/rzCarNumber", | |
| 99 | + name: "rzCarNumber", | |
| 100 | + component: () => import("@/views//mySelf/myCars/rzCarNumber.vue") | |
| 118 | 101 | // meta: {title: "认证车牌"} |
| 119 | 102 | }, |
| 120 | - | |
| 121 | - | |
| 122 | 103 | { |
| 123 | - path: '/cardList', | |
| 124 | - name: 'cardList', | |
| 104 | + path: "/cardList", | |
| 105 | + name: "cardList", | |
| 125 | 106 | component: () => import("@/views//cards/cardList.vue"), |
| 126 | - meta: {title: "会员卡列表"} | |
| 107 | + meta: { title: "会员卡列表" } | |
| 127 | 108 | }, |
| 128 | - | |
| 129 | - | |
| 130 | 109 | { |
| 131 | - path: '/buyCardDetail', | |
| 132 | - name: 'buyCardDetail', | |
| 110 | + path: "/buyCardDetail", | |
| 111 | + name: "buyCardDetail", | |
| 133 | 112 | component: () => import("@/views//cards/buyCardDetail.vue"), |
| 134 | - meta: {title: "购买会员卡"} | |
| 113 | + meta: { title: "购买会员卡" } | |
| 135 | 114 | }, |
| 136 | - | |
| 137 | 115 | { |
| 138 | - path: '/buyVipCard', | |
| 139 | - name: 'buyVipCard', | |
| 116 | + path: "/buyVipCard", | |
| 117 | + name: "buyVipCard", | |
| 140 | 118 | component: () => import("@/views//cards/buyVipCard.vue"), |
| 141 | - meta: {title: "购买会员卡"} | |
| 119 | + meta: { title: "购买会员卡" } | |
| 142 | 120 | }, |
| 143 | - | |
| 144 | - | |
| 145 | - | |
| 146 | - | |
| 147 | - | |
| 148 | 121 | // ------------------------购买会员卡提示 |
| 149 | 122 | { |
| 150 | - path: '/cardPoint', | |
| 151 | - name: 'cardPoint', | |
| 123 | + path: "/cardPoint", | |
| 124 | + name: "cardPoint", | |
| 152 | 125 | component: () => import("@/views/cards/cardPoint.vue") |
| 153 | 126 | }, |
| 154 | - | |
| 155 | - | |
| 156 | 127 | // ------------------------购买会员卡 |
| 157 | 128 | { |
| 158 | - path: '/buyCard', | |
| 159 | - name: 'buyCard', | |
| 129 | + path: "/buyCard", | |
| 130 | + name: "buyCard", | |
| 160 | 131 | component: () => import("@/views/cards/buyCard.vue"), |
| 161 | - meta: {title: "购买会员卡"} | |
| 162 | - }, | |
| 163 | - | |
| 164 | - | |
| 165 | - | |
| 166 | - | |
| 167 | - | |
| 168 | - | |
| 169 | - | |
| 170 | - | |
| 171 | - | |
| 132 | + meta: { title: "购买会员卡" } | |
| 133 | + } | |
| 172 | 134 | ] |
| 173 | -}) | |
| 135 | +}); | ... | ... |
src/views/cards/buyCardDetail.vue
| ... | ... | @@ -10,35 +10,45 @@ |
| 10 | 10 | <div class="van-ellipsis" style="padding: 20px 0 10px 20px">万达停车场plName</div> |
| 11 | 11 | <div class="van-ellipsis" style="padding: 0 0 0 20px">万达停车场plAddress</div> |
| 12 | 12 | </div> |
| 13 | - | |
| 14 | - | |
| 15 | - | |
| 16 | - <van-cell-group inset style="margin-bottom: 10px;" @click="LinkBuyCard"> | |
| 13 | + <van-cell-group inset style="margin-bottom: 10px;" v-for="i in list" @click="LinkBuyCard"> | |
| 17 | 14 | <van-cell > |
| 18 | 15 | <template #title> |
| 19 | 16 | <span style="font-size: 20px;font-weight: 600;">年卡</span> |
| 20 | 17 | </template> |
| 21 | 18 | </van-cell> |
| 22 | - <van-cell title="万达月卡cardName" center value="立即购买" label="单价:¥1800.00" is-link> | |
| 19 | + <van-cell :title= "i.cardName" center value="立即购买" :label="'单价:'+(i.actPrice/100).toFixed(2)" is-link> | |
| 23 | 20 | </van-cell> |
| 24 | 21 | </van-cell-group> |
| 25 | 22 | |
| 26 | - <van-cell-group inset style="margin-bottom: 10px;"> | |
| 27 | - <van-cell > | |
| 28 | - <template #title> | |
| 29 | - <span style="font-size: 20px;font-weight: 600;">年卡</span> | |
| 30 | - </template> | |
| 31 | - </van-cell> | |
| 32 | - <van-cell title="万达月卡cardName" center value="立即购买" label="单价:¥1800.00" is-link> | |
| 33 | - </van-cell> | |
| 34 | - </van-cell-group> | |
| 23 | + <!--<van-cell-group inset style="margin-bottom: 10px;">--> | |
| 24 | + <!--<van-cell >--> | |
| 25 | + <!--<template #title>--> | |
| 26 | + <!--<span style="font-size: 20px;font-weight: 600;">年卡</span>--> | |
| 27 | + <!--</template>--> | |
| 28 | + <!--</van-cell>--> | |
| 29 | + <!--<van-cell title="万达月卡cardName" center value="立即购买" label="单价:¥1800.00" is-link>--> | |
| 30 | + <!--</van-cell>--> | |
| 31 | + <!--</van-cell-group>--> | |
| 35 | 32 | </section> |
| 36 | 33 | |
| 37 | 34 | </template> |
| 38 | 35 | |
| 39 | 36 | <script> |
| 37 | + | |
| 38 | +import { queryVipCardByPlNo } from "@/api/card/card"; | |
| 40 | 39 | export default { |
| 41 | 40 | name: "buyCardDetail", |
| 41 | + data(){ | |
| 42 | + return{ | |
| 43 | + plNo:'', | |
| 44 | + list:[] | |
| 45 | + } | |
| 46 | + }, | |
| 47 | + created(){ | |
| 48 | + this.plNo = this.$route.query.plNo | |
| 49 | + console.log(this.plNo) | |
| 50 | + this.queryVipCardByPlNo() | |
| 51 | + }, | |
| 42 | 52 | |
| 43 | 53 | methods:{ |
| 44 | 54 | LinkBuyCard(){ |
| ... | ... | @@ -46,6 +56,19 @@ export default { |
| 46 | 56 | name: "buyVipCard" |
| 47 | 57 | } |
| 48 | 58 | ); |
| 59 | + }, | |
| 60 | + queryVipCardByPlNo() { | |
| 61 | + let jsondata = { | |
| 62 | + parkNo:this.plNo, | |
| 63 | + saleChannel: "2" | |
| 64 | + }; | |
| 65 | + jsondata.sign = this.$utils.signObject(jsondata); | |
| 66 | + queryVipCardByPlNo(jsondata).then(response => { | |
| 67 | + // console.log(response.data[0].parkList); | |
| 68 | + | |
| 69 | + console.log(response); | |
| 70 | + this.list = response.data | |
| 71 | + }); | |
| 49 | 72 | } |
| 50 | 73 | } |
| 51 | 74 | }; | ... | ... |
src/views/cards/cardList.vue
| ... | ... | @@ -15,21 +15,17 @@ |
| 15 | 15 | </van-col> |
| 16 | 16 | </van-row> |
| 17 | 17 | |
| 18 | - <ul> | |
| 19 | - <li class="cardListWrap" @click="toBuyCardPage"> | |
| 20 | - <div class="van-ellipsis" style="padding: 20px 0 10px 10px">万达停车场plName</div> | |
| 21 | - <div class="van-ellipsis" style="padding: 10px 0 20px 10px">万达停车场plAddress</div> | |
| 22 | - </li> | |
| 23 | - <li class="cardListWrap"> | |
| 24 | - <div class="van-ellipsis" style="padding: 20px 0 10px 10px">万达停车场plName</div> | |
| 25 | - <div class="van-ellipsis" style="padding: 10px 0 20px 10px">万达停车场plAddress</div> | |
| 18 | + <ul v-if="cardList.length>0"> | |
| 19 | + <li class="cardListWrap" v-for="i in cardList[0].parkList" @click="toBuyCardPage(i)"> | |
| 20 | + <div class="van-ellipsis" style="padding: 20px 0 10px 10px">{{i.plName}}</div> | |
| 21 | + <div class="van-ellipsis" style="padding: 10px 0 20px 10px;color: #999">{{i.plAddress}}</div> | |
| 26 | 22 | </li> |
| 27 | 23 | </ul> |
| 28 | 24 | |
| 29 | 25 | |
| 30 | - <section style="text-align: center;padding-top: 20px"> | |
| 31 | - <van-image :src="require('../../assets/images/cards/novipcard.png')" /> | |
| 32 | - <p>为找到会员卡</p> | |
| 26 | + <section style="text-align: center;padding-top: 20px" v-else> | |
| 27 | + <van-image :src="require('../../assets/images/cards/novipcard.png')"/> | |
| 28 | + <p>未找到会员卡</p> | |
| 33 | 29 | </section> |
| 34 | 30 | |
| 35 | 31 | |
| ... | ... | @@ -38,33 +34,69 @@ |
| 38 | 34 | </template> |
| 39 | 35 | |
| 40 | 36 | <script> |
| 41 | -import { Toast } from 'vant'; | |
| 37 | +import { queryVipCardListByOrgId, queryVipCardListByPlName } from "@/api/card/card"; | |
| 42 | 38 | export default { |
| 43 | 39 | name: "cardList", |
| 44 | 40 | data() { |
| 45 | 41 | return { |
| 46 | - value: '', | |
| 42 | + value: "", | |
| 43 | + cardList: [] | |
| 47 | 44 | }; |
| 48 | 45 | }, |
| 46 | + created() { | |
| 47 | + this.queryVipCardListByOrgId(); | |
| 48 | + }, | |
| 49 | 49 | methods: { |
| 50 | 50 | onSearch(val) { |
| 51 | - Toast(val); | |
| 51 | + console.log("111" + val); | |
| 52 | + // Toast(val); | |
| 53 | + let jsondata = { | |
| 54 | + orgId: this.$utils.orgId, | |
| 55 | + parkName: val, | |
| 56 | + saleChannel: "2" | |
| 57 | + }; | |
| 58 | + jsondata.sign = this.$utils.signObject(jsondata); | |
| 59 | + queryVipCardListByPlName(jsondata).then(response => { | |
| 60 | + // console.log(response.data[0].parkList); | |
| 61 | + this.cardList = response.data; | |
| 62 | + console.log(response); | |
| 63 | + }); | |
| 52 | 64 | }, |
| 53 | 65 | onCancel() { |
| 54 | - Toast('取消'); | |
| 66 | + // Toast('取消'); | |
| 55 | 67 | }, |
| 56 | - toBuyCardPage(){ | |
| 68 | + toBuyCardPage(i) { | |
| 57 | 69 | this.$router.push({ |
| 58 | - name: "buyCardDetail" | |
| 70 | + name: "buyCardDetail", | |
| 71 | + query: { | |
| 72 | + plNo: i.plNo, | |
| 73 | + plName: i.plName, | |
| 74 | + plAddress: i.plAddress | |
| 75 | + } | |
| 59 | 76 | } |
| 60 | 77 | ); |
| 78 | + }, | |
| 79 | + queryVipCardListByOrgId() { | |
| 80 | + let jsondata = { | |
| 81 | + orgId: this.$utils.orgId, | |
| 82 | + longitude: "115.10114", | |
| 83 | + latitude: "40.616892", | |
| 84 | + type: "00", | |
| 85 | + limit: "10000000", | |
| 86 | + saleChannel: "2" | |
| 87 | + }; | |
| 88 | + jsondata.sign = this.$utils.signObject(jsondata); | |
| 89 | + queryVipCardListByOrgId(jsondata).then(response => { | |
| 90 | + console.log(response.data); | |
| 91 | + this.cardList = response.data; | |
| 92 | + }); | |
| 61 | 93 | } |
| 62 | - }, | |
| 94 | + } | |
| 63 | 95 | }; |
| 64 | 96 | </script> |
| 65 | 97 | |
| 66 | 98 | <style scoped> |
| 67 | - .cardListWrap{ | |
| 99 | + .cardListWrap { | |
| 68 | 100 | margin-top: 15px; |
| 69 | 101 | margin-left: 0px; |
| 70 | 102 | margin-right: 0px; | ... | ... |
src/views/mySelf/selfNav.vue