appointment_weapp/pages/my/member/memberinfo.vue

399 lines
8.9 KiB
Vue

<template>
<view class="content">
<view class="towcontentitem">
<image class="towcontentitemimage" :src="data.img" mode="aspectFill"></image>
<view class="fourcontentitemabsolute">
<!-- 年卡会员 -->
</view>
<view class="towcontentitemone flex-start">
<image class="towcontentitemoneimage" :src="data.store_avatar" mode="aspectFill"></image>
<view class="towcontentitemonetext flex-colum-start">
<text class="towcontentitemonetextone">{{data.title}}</text>
<text class="towcontentitemonetexttow">{{data.show}}</text>
</view>
<view class="towcontentitemoneabsolute" @click="overlayshow = true">
加购
</view>
</view>
<view class="towcontentitemprogress">
{{Number(data.user_sec_y_frequ)}}/{{Number(data.user_sec_z_frequ)}}
</view>
<view class="towcontentitemtow flex-between">
<text class="towcontentitemtowetext">{{data.vip_number || ''}}</text>
<text class="towcontentitemtowetext">{{data.end_time}}</text>
</view>
</view>
<view class="therecontentitem">
<view class="therecontentitemtext">
会员详情
</view>
<view class="therecontentitemone">
<!-- <view class="therecontentitemoneiten flex-between" @click="order">
<text class="therecontentitemoneitentetxt">账单明细</text>
<u-icon name="arrow-right" color="#808080" size="18"></u-icon>
</view> -->
<view class="therecontentitemoneiten flex-between" @click="overlayshow = true">
<text class="therecontentitemoneitentetxt">订单明细</text>
<u-icon name="arrow-right" color="#808080" size="18"></u-icon>
</view>
</view>
</view>
<u-overlay :show="overlayshow" @click="overlayshow = false">
<view class="warp">
<view class="rect" @tap.stop>
<view class="onerect flex-center">
<view>{{data.store_title}}</view>
<u-icon @click="overlayshow = false" class="onerecticon" name="backspace" color="#000000"
size="28"></u-icon>
</view>
<view class="towrect">
商品
</view>
<view class="thererect flex-between">
<view class="thererectone">
{{data.title}}
</view>
<view class="thererecttow">
<text></text>{{data.price}}
</view>
</view>
<view class="fourrect flex-between">
<view class="fourrectone">
<text>共计:</text>{{data.price}}
</view>
<view class="fourrecttow" @tap="$u.debounce(showpopupclick,1000)">
立即购买
</view>
</view>
</view>
</view>
</u-overlay>
</view>
</template>
<script>
export default {
data() {
return {
overlayshow: false,
numberbox: "",
data: {}
}
},
async onLoad(e) {
console.log(e)
let res = await this.api.reservationvipdetail({
id: e.id
})
this.data = res
console.log(this.data)
},
methods: {
async showpopupclick() {
try {
let res = await this.api.useropenuserseccrd({
id: this.data.id
}) //判断是否支付成功
if (res) {
// #ifdef MP-WEIXIN
uni.requestPayment({
provider: 'wxpay', //支付类型-固定值
partnerid: res.payAppId, // 微信支付商户号
timeStamp: res.payTimeStamp, // 时间戳(单位:秒)
nonceStr: res.paynonceStr, // 随机字符串
package: res.payPackage, // 固定值
signType: res.paySignType, //固定值
paySign: res.paySign, //签名
success: (res) => {
uni.showToast({
title: "支付成功"
})
uni.redirectTo({
url: "/my/member/index?e=" + 1,
});
},
fail: (err) => {
setTimeout(res => {
uni.showToast({
icon: 'none',
title: '支付失败'
})
uni.hideLoading()
}, 2000)
uni.redirectTo({
url: "/my/member/index?e=" + 1,
});
}
});
// #endif
}
} catch (e) {
//TODO handle the exception
}
},
order(e) {
uni.pro.navigateTo('my/order/index', {
e: 0
})
}
}
}
</script>
<style lang="scss">
page {
background: #F9F9F9;
}
.content {
padding: 32rpx 28rpx;
.towcontentitem {
margin-top: 22rpx;
width: 100%;
position: relative;
padding: 32rpx;
border-radius: 12rpx;
.fourcontentitemabsolute {
z-index: 9;
position: absolute;
right: 0;
top: 0;
padding: 6rpx 28rpx;
font-size: 20rpx;
font-family: Source Han Sans CN-Medium, Source Han Sans CN;
font-weight: 500;
color: #FFFFFF;
text-shadow: 0px 6rpx 12rpx rgba(255, 255, 255, 0.19);
background: linear-gradient(NaNdeg, #4A4A4A 0%, #919191 100%);
border-radius: 0px 12rpx 0px 12rpx;
opacity: 1;
}
.towcontentitemimage {
top: 0;
left: 0;
position: absolute;
width: 100%;
height: 100%;
border-radius: 12rpx;
z-index: 0;
}
.towcontentitemone {
width: 100%;
position: relative;
z-index: 9;
.towcontentitemoneimage {
width: 76rpx;
height: 76rpx;
border-radius: 50%;
}
.towcontentitemoneabsolute {
position: absolute;
padding: 8rpx 44rpx;
right: 0;
font-size: 28rpx;
font-family: Source Han Sans CN-Medium, Source Han Sans CN;
font-weight: 500;
color: #FFFFFF;
background: linear-gradient(130deg, #F4AE46 0%, #EE9437 100%);
box-shadow: 0px 4rpx 8rpx 2rpx rgba(243, 169, 67, 0.37);
border-radius: 28rpx;
}
.towcontentitemonetext {
width: 80%;
height: 76rpx;
margin-left: 16rpx;
.towcontentitemonetextone {
width: 80%;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
font-size: 32rpx;
font-family: Source Han Sans CN-Medium, Source Han Sans CN;
font-weight: 500;
color: #422A07;
}
.towcontentitemonetexttow {
width: 80%;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
width:400rpx;
font-size: 24rpx;
font-family: Source Han Sans CN-Regular, Source Han Sans CN;
font-weight: 400;
color: #422A07;
}
}
}
.towcontentitemprogressa {
padding: 8rpx 44rpx;
width: 50%;
z-index: 10;
position: relative;
margin-top: 54rpx;
}
.towcontentitemprogress {
position: relative;
z-index: 99;
margin-top: 24rpx;
border-radius: 28rpx;
font-size: 28rpx;
font-family: Source Han Sans CN-Bold, Source Han Sans CN;
font-weight: bold;
color: #000;
}
.towcontentitemtow {
z-index: 10;
position: relative;
margin-top: 68rpx;
font-size: 24rpx;
font-family: Source Han Sans CN-Regular, Source Han Sans CN;
font-weight: 400;
color: #422A07;
}
}
.therecontentitem {
margin-top: 32rpx;
width: 100%;
padding: 32rpx 32rpx 0 32rpx;
background: #FFFFFF;
border-radius: 24rpx;
.therecontentitemtext {
font-size: 32rpx;
font-family: PingFang SC-Bold, PingFang SC;
font-weight: bold;
color: #333333;
}
.therecontentitemone {
.therecontentitemoneiten:nth-child(1) {
border-top: none !important;
}
.therecontentitemoneiten {
padding: 32rpx 0;
border-top: 1px solid #F7F7F7;
.therecontentitemoneitentetxt {
font-size: 28rpx;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
color: #333333;
}
}
}
}
.warp {
position: relative;
height: 100%;
.rect {
position: absolute;
bottom: 0;
width: 100%;
background: #FFFFFF;
border-radius: 60rpx 60rpx 0px 0px;
padding: 48rpx 32rpx 32rpx 32rpx;
.onerect {
position: relative;
padding-bottom: 48rpx;
image {
width: 124rpx;
height: 124rpx;
}
view {
margin-left: 16rpx;
font-size: 32rpx;
font-family: Source Han Sans CN-Medium, Source Han Sans CN;
font-weight: 500;
color: #1A1A1A;
}
.onerecticon {
position: absolute;
top: 0;
right: 0;
}
}
.towrect {
font-size: 32rpx;
font-family: PingFang SC-Bold, PingFang SC;
font-weight: bold;
color: #333333;
}
.thererect {
margin-top: 16rpx;
.thererectone {
font-size: 28rpx;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
color: #333333;
}
.thererecttow {
text {
font-size: 16rpx;
}
font-size: 32rpx;
font-family: PingFang SC-Heavy,
PingFang SC;
font-weight: 800;
color: #333333;
}
}
.fourrect {
margin-top: 44rpx;
.fourrectone {
text {
font-size: 24rpx;
color: #333333;
}
font-size: 40rpx;
font-family: PingFang SC-Bold,
PingFang SC;
font-weight: bold;
color: #FC5F69;
}
.fourrecttow {
background: linear-gradient(143deg, #8689AF 0%, #494A5F 100%);
border-radius: 34rpx;
padding: 10rpx 44rpx;
font-size: 32rpx;
font-family: PingFang SC-Bold, PingFang SC;
font-weight: bold;
color: #FFFFFF;
}
}
}
}
}
</style>