123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234 |
- <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" style="color: #C59D7C;">{{userName}}</view>
- <view class="u-font-14 u-m-t-10 u-tips-color" style="color: #C59D7C;" v-if="!isVip">您目前还未开通会员</view>
-
- <view class="u-font-14 u-m-t-10 u-tips-color" style="color: #C59D7C;" v-if="isVip&&vipEndTime">会员到期:{{vipEndTime}}</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: 200rpx;margin: 10rpx 10rpx 0rpx;">
- <view class="text-center flex flex-direction justify-center padding-tb radius"
- :class="selNum == item.id?'active': ''"
- style="color: #DFC5A7;width: 216rpx;height: 200rpx;background: linear-gradient(-30deg, #2B2A30, #4A4A4A);border: 1px;">
- <view class="text-bold">{{item.vipName}}</view>
- <view class="text-bold" style="margin-top: 20upx;">¥<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;padding-bottom: 60rpx;">
- <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" style="padding-top: 20rpx;padding-bottom: 20rpx;" 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,
- vipEndTime:''
- }
- },
- 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'
- this.vipEndTime = res.data.vipEndTime
- 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() {
- 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-color: #343339;
- }
- .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>
|