parent
b8673a1d1e
commit
fa6fa0d0f3
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 611 B |
@ -0,0 +1,293 @@ |
|||||||
|
<template> |
||||||
|
<div class="app-container root"> |
||||||
|
<el-row :gutter="20" type="flex"> |
||||||
|
<el-col :span="4" v-for="(item,index) in vipList" :key="index"> |
||||||
|
<div @click="check('vipList',index)"> |
||||||
|
<el-card class="vip" :class="{active:item.active}"> |
||||||
|
<div>¥{{ item.price }}</div> |
||||||
|
<div>{{ item.time }}</div> |
||||||
|
</el-card> |
||||||
|
</div> |
||||||
|
|
||||||
|
|
||||||
|
</el-col> |
||||||
|
</el-row> |
||||||
|
<div class="tip mt10">审核通过后开始计算时长</div> |
||||||
|
<div class="title mt10 mb10">优惠选择</div> |
||||||
|
<el-row type="flex" class="discount-p"> |
||||||
|
<el-col class="discount mt10" v-for="item in 4" :key="item"> |
||||||
|
<div class="top"> |
||||||
|
<div class="left"> |
||||||
|
<div class="mt10"> |
||||||
|
<span class="unit">¥</span> |
||||||
|
<span class="price">10</span> |
||||||
|
</div> |
||||||
|
<div class="use mb10">满300使用</div> |
||||||
|
</div> |
||||||
|
<div class="right"> |
||||||
|
<div class="tag mt">新人优惠券</div> |
||||||
|
<div class="mt20"><span class="discount-coupon">满减券</span> <span class="tag ml10">全场通用券</span></div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="down mt20 mb20"> |
||||||
|
<div>未使用前 永久有效</div> |
||||||
|
</div> |
||||||
|
</el-col> |
||||||
|
</el-row> |
||||||
|
<div class="title mt10 mb10">支付方式</div> |
||||||
|
<div> |
||||||
|
<el-row v-for="(item,index) in payMethod" :key="index" type="flex" class="method"> |
||||||
|
<el-col :span="1"> |
||||||
|
<svg-icon :icon-class="item.icon"/> |
||||||
|
</el-col> |
||||||
|
|
||||||
|
<el-col :span="4">{{ item.name }}</el-col> |
||||||
|
<el-col :span="3" :offset="2"> |
||||||
|
<i class="el-icon-circle-check active" v-if="item.active"></i> |
||||||
|
<div class="inactive" @click="check('payMethod',index)" v-else></div> |
||||||
|
</el-col> |
||||||
|
</el-row> |
||||||
|
</div> |
||||||
|
<div class="text-center"> |
||||||
|
<el-button @click="$emit('back')">上一步</el-button> |
||||||
|
<el-button type="primary" @click="open=true">立即支付</el-button> |
||||||
|
</div> |
||||||
|
|
||||||
|
<el-dialog title="支付" :visible.sync="open"> |
||||||
|
<template v-if="payMethod.find(item=>item.active).type"> |
||||||
|
<el-row> |
||||||
|
<el-col :span="8" :offset="3"> |
||||||
|
<div class="bank-title">银行卡转账流程</div> |
||||||
|
<div class="mt20">第一步:对公汇款账户</div> |
||||||
|
<div class="mt20">名称:北京的当石科技有限公司</div> |
||||||
|
<div class="mt20">开户银行:招商银行北京分行三里屯支行</div> |
||||||
|
<div class="mt20">银行账号:1110 1354 8610 601</div> |
||||||
|
<div class="mt20">汇款金额:¥296.65</div> |
||||||
|
<div class="mt20">汇款备注:订单号fcaspi2crho1ds4</div> |
||||||
|
<div class="mt20 red">请在对公汇款时务必备注订单号</div> |
||||||
|
<el-button type="primary" class="mt20">一键复制</el-button> |
||||||
|
</el-col> |
||||||
|
<el-col :span="12"> |
||||||
|
<div class="mt20">第二步: 升级帐号</div> |
||||||
|
<div class="mt10"> |
||||||
|
转账完成后请点击页面中的「已完成支付」,我们在收到汇款24小时内会为您自动升级账号(周末、法定假日可能有延时) |
||||||
|
</div> |
||||||
|
</el-col> |
||||||
|
</el-row> |
||||||
|
<div class="text-center"> |
||||||
|
<el-button type="primary" @click="$emit('success')">已完成支付</el-button> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
<template v-else> |
||||||
|
<div class="text-center">¥{{ this.vipList.find(item => item.active).price }}</div> |
||||||
|
<div class="text-center"> |
||||||
|
<img src="http://www.dummyimage.com/100x100" class="mt20"/> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
</el-dialog> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script> |
||||||
|
export default { |
||||||
|
name: 'pay.vue', |
||||||
|
data() { |
||||||
|
return { |
||||||
|
open: false, |
||||||
|
vipList: [ |
||||||
|
{ price: 300, time: '1年', active: true }, |
||||||
|
{ price: 556, time: '2年', active: false }, |
||||||
|
{ price: 899, time: '4年', active: false } |
||||||
|
], |
||||||
|
payMethod: [{ |
||||||
|
icon: 'wechat', |
||||||
|
name: '微信支付', |
||||||
|
active: true |
||||||
|
}, { |
||||||
|
icon: 'alipay', |
||||||
|
name: '支付宝支付', |
||||||
|
active: false |
||||||
|
}, { |
||||||
|
icon: 'bank-card', |
||||||
|
name: '招商银行支付', |
||||||
|
type: 'bank', |
||||||
|
active: false |
||||||
|
}] |
||||||
|
} |
||||||
|
}, |
||||||
|
methods: { |
||||||
|
check(key, index) { |
||||||
|
|
||||||
|
let method = this[key].map(item => { |
||||||
|
item.active = false |
||||||
|
return item |
||||||
|
}) |
||||||
|
method[index].active = true |
||||||
|
|
||||||
|
this[key].splice(0, this[key].length, ...method) |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
</script> |
||||||
|
|
||||||
|
<style scoped lang="scss"> |
||||||
|
|
||||||
|
$discount-width: 40%; |
||||||
|
$discount-border: 1px dashed rgba(0, 0, 0, 0.5); |
||||||
|
$icon-size: 20px; |
||||||
|
|
||||||
|
.red { |
||||||
|
color: red; |
||||||
|
} |
||||||
|
|
||||||
|
.bank-title { |
||||||
|
font-size: 20px; |
||||||
|
} |
||||||
|
|
||||||
|
.root { |
||||||
|
padding: 0 10%; |
||||||
|
} |
||||||
|
|
||||||
|
.method { |
||||||
|
font-size: $icon-size; |
||||||
|
|
||||||
|
div { |
||||||
|
.active { |
||||||
|
color: blue; |
||||||
|
font-size: #{$icon-size + 2px}; |
||||||
|
} |
||||||
|
|
||||||
|
.inactive { |
||||||
|
width: $icon-size; |
||||||
|
height: $icon-size; |
||||||
|
border: 2px solid rgba(0, 0, 0, 0.5); |
||||||
|
border-radius: 50%; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
div:first-child { |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.method:not(:first-child) { |
||||||
|
.inactive { |
||||||
|
margin-left: 2px; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.discount-p { |
||||||
|
flex-wrap: wrap; |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
.discount:not(:nth-child(3n+1)) { |
||||||
|
margin-left: 10px; |
||||||
|
} |
||||||
|
|
||||||
|
.discount { |
||||||
|
flex-basis: calc(100% / 3 - 20px); |
||||||
|
border-radius: 6px; |
||||||
|
background-color: rgba(239, 239, 239, 1); |
||||||
|
text-align: center; |
||||||
|
border: 1px solid rgba(252, 202, 0, 1); |
||||||
|
|
||||||
|
|
||||||
|
& > .top { |
||||||
|
display: flex; |
||||||
|
border-bottom: $discount-border; |
||||||
|
|
||||||
|
|
||||||
|
& > .left { |
||||||
|
flex-basis: $discount-width; |
||||||
|
border-right: $discount-border; |
||||||
|
|
||||||
|
& > div { |
||||||
|
.unit { |
||||||
|
font-size: 12px; |
||||||
|
text-align: center; |
||||||
|
font-family: PingFangSC-regular; |
||||||
|
} |
||||||
|
|
||||||
|
.price { |
||||||
|
font-size: 40px; |
||||||
|
text-align: center; |
||||||
|
font-family: SFUIText-regular; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.use { |
||||||
|
color: rgba(68, 68, 68, 1); |
||||||
|
font-size: 12px; |
||||||
|
text-align: center; |
||||||
|
font-family: PingFangSC-regular; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
& > .right { |
||||||
|
padding-left: 20px; |
||||||
|
|
||||||
|
& > div { |
||||||
|
& > .discount-coupon { |
||||||
|
border-radius: 4px; |
||||||
|
background-color: rgba(94, 99, 102, 1); |
||||||
|
color: rgba(255, 255, 255, 1); |
||||||
|
font-size: 12px; |
||||||
|
text-align: center; |
||||||
|
font-family: Microsoft Yahei; |
||||||
|
padding: 5px; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.tag { |
||||||
|
color: rgba(68, 68, 68, 1); |
||||||
|
font-size: 13px; |
||||||
|
text-align: left; |
||||||
|
font-family: PingFangSC-regular; |
||||||
|
} |
||||||
|
|
||||||
|
.tag.mt { |
||||||
|
margin-top: 10px; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
& > .down { |
||||||
|
& > div { |
||||||
|
color: rgba(68, 68, 68, 1); |
||||||
|
font-size: 12px; |
||||||
|
text-align: center; |
||||||
|
font-family: PingFangSC-regular; |
||||||
|
width: $discount-width; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.tip { |
||||||
|
color: rgba(108, 108, 108, 1); |
||||||
|
font-size: 14px; |
||||||
|
text-align: left; |
||||||
|
font-family: SourceHanSansSC-regular; |
||||||
|
} |
||||||
|
|
||||||
|
.title { |
||||||
|
color: rgba(16, 16, 16, 1); |
||||||
|
font-size: 14px; |
||||||
|
text-align: left; |
||||||
|
font-family: SourceHanSansSC-regular; |
||||||
|
} |
||||||
|
|
||||||
|
.vip { |
||||||
|
color: rgba(16, 16, 16, 1); |
||||||
|
font-size: 14px; |
||||||
|
display: flex; |
||||||
|
justify-content: center; |
||||||
|
text-align: center; |
||||||
|
padding: 80px 0; |
||||||
|
} |
||||||
|
|
||||||
|
.vip.active { |
||||||
|
background-color: rgba(22, 132, 252, 0.29); |
||||||
|
} |
||||||
|
</style> |
Loading…
Reference in new issue