sadjv3/anmo-user/my/vip/index.vue

233 lines
6.1 KiB
Vue

<template>
<view>
<view class="">
<view class="margin-lr margin-top" style="position: relative;border-radius: 10upx;overflow: hidden;">
<image src="../static/vip.png" style="width: 100%;height: 250rpx;"></image>
<view class=" u-flex u-p-l-30 u-p-t-80 u-p-b-30" style="position: absolute;top: 0;width: 100%;">
<view class="u-m-r-20">
<u-avatar :src="avatar" size="100"></u-avatar>
</view>
<view class="u-flex-1 ">
<view class="u-font-18 text-white text-bold">{{userName}}</view>
<view class="u-font-14 u-m-t-10 u-tips-color" style="color: #C59D7C;" v-if="!isVip">您目前还未开通会员</view>
</view>
</view>
</view>
<view class="flex margin-top-sm flex-wrap padding-lr-sm">
<view v-for="(item,index) in vipList" :key='index' @click="select(item)" class=""
style="display: inline-block;width: 216rpx;height: 250rpx;margin: 10rpx 10rpx;">
<view class="text-center flex flex-direction justify-between padding-tb radius"
:class="selNum == item.id?'active': ''"
style="color: #DFC5A7;width: 216rpx;height: 250rpx;background: linear-gradient(-30deg, #2B2A30, #4A4A4A);border: 1px;">
<view class="text-bold">{{item.vipName}}</view>
<view class="text-bold">¥<text class="text-xxl">{{item.money}}</text></view>
<view>立即预约</view>
</view>
</view>
</view>
<view class="padding-tb radius margin-top margin-lr"
style="background-color: #343339;border-radius: 10upx;">
<view class="text-center text-xl text-bold " style="color: #CAB49C;">开通专享特权</view>
<view class="flex flex-wrap">
<view v-for="(item,index) in MemberList" :key="index"
style="width: 33%;text-align: center;margin-top: 34upx;">
<image :src="item.memberImg" mode="" style="margin: 0 auto;height: 45rpx;width: 45rpx;"></image>
<view class="grid-text margin-top-sm" style="color: #DFC5A7;">{{item.memberName}}</view>
</view>
</view>
</view>
</view>
<view style="height: 110rpx;"></view>
<view class="flex justify-between cu-bar foot bg padding-lr" v-if="!isVip">
<view style="color: #DFC5A7;">
实付:<text style="font-size: 38upx;margin-top: 8upx;">{{price}}</text>金元
</view>
<view class="">
<u-button :custom-style="customStyle" @click="pay()" shape="circle" :hair-line="false">立即开通</u-button>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
customStyle: {
width: '250rpx',
color: '#402321',
background: "#DFC5A7",
border: 0,
fontWeight: '700'
},
gridData: [{
title: '专享九折',
image: '../static/1.png'
},
// {
// title: '特权礼物',
// image: '../static/2.png'
// },
{
title: '身份标识',
image: '../static/3.png'
},
// {
// title: '超值专享券',
// image: '../static/4.png'
// },
// {
// title: '商家特权',
// image: '../static/5.png'
// },
// {
// title: '定制挂件',
// image: '../static/6.png'
// }
],
avatar: '',
userName: '匿名',
vipList: [],
selNum: 2,
newPrice: 0,
money: 0,
price: 0,
MemberList: [],
isVip: false
}
},
onLoad() {
this.avatar = uni.getStorageSync('avatar')
this.userName = uni.getStorageSync('userName')
this.getVipList()
this.getMemberList()
this.getMoney()
this.getIsVip()
this.getUserInfo()
},
methods: {
getUserInfo() {
this.$Request.get("/app/user/selectUserById").then(res => {
if (res.code == 0) {
this.avatar = res.data.avatar?res.data.avatar: '../../static/logo.png'
uni.setStorageSync('avatar', res.data.avatar)
}
});
},
//获取VIP列表
getVipList() {
this.$Request.get('/app/VipDetails/selectVipDetails').then(res => {
if (res.code == 0) {
this.vipList = res.data
this.price = this.vipList[0].money
}
})
},
// 获取特权列表
getMemberList() {
this.$Request.get('/app/member/selectMemberList').then(res => {
if (res.code == 0) {
this.MemberList = res.data
}
})
},
getIsVip() {
this.$Request.get("/app/UserVip/isUserVip").then(res => {
if (res.code == 0) {
this.isVip = res.data
}
});
},
// 我的金元
getMoney() {
this.$Request.get("/app/userMoney/selectMyMoney").then(res => {
if (res.code == 0 && res.data) {
this.money = res.data.money
}
});
},
select(e) {
this.selNum = e.id
this.price = e.money
},
pay() {
this.getMoney()
// console.log(this.money, this.newPrice)
if (this.money >= this.price) {
let data = {
id: this.selNum,
type: '2'
}
this.$Request.get('/app/orders/generateOrder', data).then(res => {
if (res.code == 0) {
this.$Request.get('/app/userMoney/payTakingOrder', {
orderId: res.data.ordersId
}).then(res => {
console.log(res.data)
if (res.code == 0) {
this.isVip = true
uni.showToast({
title: '开通成功!'
})
// setTimeout(function() {
// uni.navigateBack()
// },1000)
} else {
uni.showToast({
title: res.msg
})
}
})
}
})
} else {
uni.showModal({
title: '提示',
content: '当前账户余额不足,请充值',
success: function(res) {
if (res.confirm) {
console.log('用户点击确定');
uni.navigateTo({
url: '/my/wallet/index'
})
} else if (res.cancel) {
console.log('用户点击取消');
}
}
})
}
}
},
computed: {
}
}
</script>
<style>
.bg {
background: #f7f7f7;
}
.btn {
width: 100%;
height: 88upx;
background: linear-gradient(0deg, #af8262 0%, #cab49c 100%);
border-radius: 44upx;
text-align: center;
line-height: 88upx;
margin-top: 40upx;
font-size: 34upx;
font-weight: 600;
color: #402321;
}
.active {
border: 1px solid #cab49c !important;
border-radius: ;
background: black !important;
}
</style>