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 | // import parkRecord from '@/views/parkPay/parkRecord' | 4 | // import parkRecord from '@/views/parkPay/parkRecord' |
| 5 | // import selfNav from '@/views/mySelf/selfNav' | 5 | // import selfNav from '@/views/mySelf/selfNav' |
| 6 | - | ||
| 7 | -Vue.use(Router) | ||
| 8 | - | 6 | +Vue.use(Router); |
| 9 | export default new Router({ | 7 | export default new Router({ |
| 10 | routes: [ | 8 | routes: [ |
| 11 | { | 9 | { |
| 12 | - path: '/', | 10 | + path: "/", |
| 13 | redirect: { | 11 | redirect: { |
| 14 | - name: 'plateNumber' | 12 | + name: "plateNumber" |
| 15 | } | 13 | } |
| 16 | }, | 14 | }, |
| 17 | // { | 15 | // { |
| @@ -19,155 +17,119 @@ export default new Router({ | @@ -19,155 +17,119 @@ export default new Router({ | ||
| 19 | // name: 'navigation', | 17 | // name: 'navigation', |
| 20 | // component: navigation | 18 | // component: navigation |
| 21 | // }, | 19 | // }, |
| 22 | - | ||
| 23 | { | 20 | { |
| 24 | - path: '/parkRecord', | ||
| 25 | - name: 'parkRecord', | 21 | + path: "/parkRecord", |
| 22 | + name: "parkRecord", | ||
| 26 | component: () => import("@/views/parkPay/parkRecord.vue") | 23 | component: () => import("@/views/parkPay/parkRecord.vue") |
| 27 | }, | 24 | }, |
| 28 | { | 25 | { |
| 29 | - path: '/plateNumber', | ||
| 30 | - name: 'plateNumber', | 26 | + path: "/plateNumber", |
| 27 | + name: "plateNumber", | ||
| 31 | component: plateNumber | 28 | component: plateNumber |
| 32 | }, | 29 | }, |
| 33 | - | ||
| 34 | { | 30 | { |
| 35 | - path: '/orderPay', | ||
| 36 | - name: 'orderPay', | 31 | + path: "/orderPay", |
| 32 | + name: "orderPay", | ||
| 37 | component: () => import("@/views/parkPay/orderPay.vue") | 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 | component: () => import("@/views/map/map.vue") | 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 | component: () => import("@/views/map/parkList.vue") | 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 | component: () => import("@/views/map/parkinfo.vue") | 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 | component: () => import("@/views/map/search.vue") | 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 | component: () => import("@/views/mySelf/selfNav.vue"), | 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 | component: () => import("@/views/mySelf/feedback/suggestionBack.vue"), | 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 | component: () => import("@/views/mySelf/parkNotes/parkNotes.vue") | 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 | component: () => import("@/views/binding/binDing.vue"), | 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 | component: () => import("@/views//mySelf/myCars/myCars.vue"), | 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 | component: () => import("@/views//mySelf/myCars/addCarNum.vue"), | 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 | // meta: {title: "认证车牌"} | 101 | // meta: {title: "认证车牌"} |
| 119 | }, | 102 | }, |
| 120 | - | ||
| 121 | - | ||
| 122 | { | 103 | { |
| 123 | - path: '/cardList', | ||
| 124 | - name: 'cardList', | 104 | + path: "/cardList", |
| 105 | + name: "cardList", | ||
| 125 | component: () => import("@/views//cards/cardList.vue"), | 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 | component: () => import("@/views//cards/buyCardDetail.vue"), | 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 | component: () => import("@/views//cards/buyVipCard.vue"), | 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 | component: () => import("@/views/cards/cardPoint.vue") | 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 | component: () => import("@/views/cards/buyCard.vue"), | 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,35 +10,45 @@ | ||
| 10 | <div class="van-ellipsis" style="padding: 20px 0 10px 20px">万达停车场plName</div> | 10 | <div class="van-ellipsis" style="padding: 20px 0 10px 20px">万达停车场plName</div> |
| 11 | <div class="van-ellipsis" style="padding: 0 0 0 20px">万达停车场plAddress</div> | 11 | <div class="van-ellipsis" style="padding: 0 0 0 20px">万达停车场plAddress</div> |
| 12 | </div> | 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 | <van-cell > | 14 | <van-cell > |
| 18 | <template #title> | 15 | <template #title> |
| 19 | <span style="font-size: 20px;font-weight: 600;">年卡</span> | 16 | <span style="font-size: 20px;font-weight: 600;">年卡</span> |
| 20 | </template> | 17 | </template> |
| 21 | </van-cell> | 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 | </van-cell> | 20 | </van-cell> |
| 24 | </van-cell-group> | 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 | </section> | 32 | </section> |
| 36 | 33 | ||
| 37 | </template> | 34 | </template> |
| 38 | 35 | ||
| 39 | <script> | 36 | <script> |
| 37 | + | ||
| 38 | +import { queryVipCardByPlNo } from "@/api/card/card"; | ||
| 40 | export default { | 39 | export default { |
| 41 | name: "buyCardDetail", | 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 | methods:{ | 53 | methods:{ |
| 44 | LinkBuyCard(){ | 54 | LinkBuyCard(){ |
| @@ -46,6 +56,19 @@ export default { | @@ -46,6 +56,19 @@ export default { | ||
| 46 | name: "buyVipCard" | 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,21 +15,17 @@ | ||
| 15 | </van-col> | 15 | </van-col> |
| 16 | </van-row> | 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 | </li> | 22 | </li> |
| 27 | </ul> | 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 | </section> | 29 | </section> |
| 34 | 30 | ||
| 35 | 31 | ||
| @@ -38,33 +34,69 @@ | @@ -38,33 +34,69 @@ | ||
| 38 | </template> | 34 | </template> |
| 39 | 35 | ||
| 40 | <script> | 36 | <script> |
| 41 | -import { Toast } from 'vant'; | 37 | +import { queryVipCardListByOrgId, queryVipCardListByPlName } from "@/api/card/card"; |
| 42 | export default { | 38 | export default { |
| 43 | name: "cardList", | 39 | name: "cardList", |
| 44 | data() { | 40 | data() { |
| 45 | return { | 41 | return { |
| 46 | - value: '', | 42 | + value: "", |
| 43 | + cardList: [] | ||
| 47 | }; | 44 | }; |
| 48 | }, | 45 | }, |
| 46 | + created() { | ||
| 47 | + this.queryVipCardListByOrgId(); | ||
| 48 | + }, | ||
| 49 | methods: { | 49 | methods: { |
| 50 | onSearch(val) { | 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 | onCancel() { | 65 | onCancel() { |
| 54 | - Toast('取消'); | 66 | + // Toast('取消'); |
| 55 | }, | 67 | }, |
| 56 | - toBuyCardPage(){ | 68 | + toBuyCardPage(i) { |
| 57 | this.$router.push({ | 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 | </script> | 96 | </script> |
| 65 | 97 | ||
| 66 | <style scoped> | 98 | <style scoped> |
| 67 | - .cardListWrap{ | 99 | + .cardListWrap { |
| 68 | margin-top: 15px; | 100 | margin-top: 15px; |
| 69 | margin-left: 0px; | 101 | margin-left: 0px; |
| 70 | margin-right: 0px; | 102 | margin-right: 0px; |
src/views/mySelf/selfNav.vue
| @@ -81,10 +81,10 @@ export default { | @@ -81,10 +81,10 @@ export default { | ||
| 81 | ); | 81 | ); |
| 82 | } else { | 82 | } else { |
| 83 | this.$toast("请先登录"); | 83 | this.$toast("请先登录"); |
| 84 | - this.$router.push({ | ||
| 85 | - name: "binDing" | ||
| 86 | - } | ||
| 87 | - ); | 84 | + // this.$router.push({ |
| 85 | + // name: "binDing" | ||
| 86 | + // } | ||
| 87 | + // ); | ||
| 88 | } | 88 | } |
| 89 | }, | 89 | }, |
| 90 | toBindingPage() { | 90 | toBindingPage() { |