初始化

This commit is contained in:
魏啾
2024-03-21 15:43:18 +08:00
parent 08c5d22de6
commit fab2d5f480
534 changed files with 76501 additions and 1 deletions

View File

@@ -0,0 +1,600 @@
<template>
<view class="content" :style="[theme]">
<view class="towcontentitem">
<image class="towcontentitemimage" :src="data.img" mode="aspectFill"></image>
<view class="towcontentitemone flex-start">
<view class="towcontentitemonetext flex-colum-start">
<text class="towcontentitemonetextone" style="color: #fff;">{{data.title}}</text>
<text class="towcontentitemonetexttow" style="color: #fff;">{{data.show}}</text>
</view>
</view>
<view class="towcontentitemtow flex-between">
<text class="towcontentitemtowetext" style="color: #fff;">{{data.price}}<text
class="towcontentitemtowetexts" style="color: #fff;">/{{data.frequ}}</text></text>
<text class="towcontentitemtowetext_s" style="color: #fff;">{{data.end_time}}</text>
</view>
</view>
<view class="therecontentitem">
<view class="therecontentitemtext">
商品
</view>
<view class="therecontentitemtextitem flex-between">
<view class="therecontentitemtextitem_left">
{{data.title}}
</view>
<view class="therecontentitemtextitem_right">
{{data.price}}
</view>
</view>
<view class="therecontentitemtextitemt_one">
{{data.show}}
</view>
<view class="therecontentitemtext" style="margin-top: 14rpx;">
权益
</view>
<view class="therecontentitemtextitemt_one">
<text style="color: #333333;">{{data.frequ}}</text>{{data.show}}
</view>
</view>
<view class="therecontentitem">
<view class="therecontentitem_tow flex-start">
手机号码<text>{{data.mobile}}</text>
</view>
<view class="therecontentitem_tows">
该号码不会提供给商家仅用于接收平台通知信息
</view>
</view>
<view class="therecontentitem">
<view class="therecontentitemtext">
使用说明
</view>
<view class="therecontentitemtextthere" style="margin-top: 14rpx;margin-bottom: 30rpx;"
v-html="data.notice">
</view>
</view>
<view class="fixedview flex-between">
<view class="fixedview_one flex-start">
<view class="fixedview_oneone">
应付金额
</view>
<view class="fixedview_onetow flex-colum-start">
<text>{{data.price}}</text>
</view>
</view>
<view v-if="mobile" class="fixedview_tow" @tap="$u.debounce(showpopupclick,1000)">
立即付款
</view>
<view v-else class="fixedview_tow">
<button open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">
立即付款
</button>
</view>
</view>
<u-overlay :show="overlayshow" @click="overlayshow = false">
<view class="warp">
<view class="rect" @tap.stop>
<view class="onerect flex-center">
<view>洗剪吹新娘造型</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">
年卡会员
</view>
<view class="thererecttow">
<text></text>300
</view>
</view>
<view class="fourrect flex-between">
<view class="fourrectone">
<text>共计:</text>300
</view>
<view class="fourrecttow">
立即购买
</view>
</view>
</view>
</view>
</u-overlay>
</view>
</template>
<script>
export default {
data() {
return {
mobile: uni.cache.get('loginuser').userinfo.mobile,
overlayshow: false,
numberbox: "",
data: {
mobile: ''
}
}
},
computed: {
theme() {
return this.$store.getters.theme
},
},
async onLoad(e) {
console.log(e)
let res = await this.api.reservationvipdetail({
id: e.id
})
try {
this.data = res
this.data.notice = res.notice.replace(/\<img/g, '<img style="max-width:100%;height:auto" ');
this.data.mobile = uni.cache.get('loginuser').userinfo.mobile
} catch (e) {
//TODO handle the exception
}
},
async onShow() {
this.$store.dispatch('storeuseruserinfo')
},
mounted() {
var query = uni.createSelectorQuery().in(this).select('.fixedview')
query.boundingClientRect(ele => {
var that = this;
uni.getSystemInfo({
success(res) {
that.height = (ele.height) + "px";
that = null;
}
})
}).exec();
},
methods: {
async getPhoneNumber(res) { // 获取手机号
var resdataa = res
// #ifdef MP-WEIXIN
uni.login({
provider: 'weixin',
success: async (data) => {
let resdata = await this.api.usergetwechatphone({
code: data.code,
iv: resdataa.detail.iv,
encryptedData: resdataa.detail.encryptedData
})
try {
this.mobile = resdata.mobile
} catch (e) {
uni.showToast({
title: '获取失败'
})
}
}
});
// #endif
},
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: 5;
}
.towcontentitemone {
width: 100%;
position: relative;
z-index: 9;
.towcontentitemoneimage {
width: 76rpx;
height: 76rpx;
}
.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 {
margin-left: 16rpx;
.towcontentitemonetextone {
width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-size: 32rpx;
font-family: Source Han Sans CN-Medium, Source Han Sans CN;
font-weight: 500;
color: #422A07;
}
.towcontentitemonetexttow {
width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
margin-top: 16rpx;
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 {
margin-top: 24rpx;
background: linear-gradient(318deg, #6E6E6E 0%, #404040 100%);
box-shadow: 0px 4rpx 8rpx 2rpx #8D8D8D;
border-radius: 28rpx;
font-size: 28rpx;
font-family: Source Han Sans CN-Bold, Source Han Sans CN;
font-weight: bold;
color: #FFFFFF;
}
.towcontentitemtow {
z-index: 10;
position: relative;
margin-top: 68rpx;
font-size: 24rpx;
.towcontentitemtowetext {
font-size: 30rpx;
font-family: Source Han Sans CN-Medium, Source Han Sans CN;
font-weight: bold;
color: #333333;
.towcontentitemtowetexts {
font-size: 20rpx;
font-family: Source Han Sans CN-Medium, Source Han Sans CN;
font-weight: 500;
color: #333333;
}
}
.towcontentitemtowetext_s {
font-size: 24rpx;
font-family: Source Han Sans CN-Medium, Source Han Sans CN;
font-weight: 500;
color: #333333;
}
}
}
.therecontentitem {
margin-top: 32rpx;
width: 100%;
padding: 32rpx 32rpx 0 32rpx;
background: #FFFFFF;
border-radius: 12rpx;
.therecontentitem_tow {
font-size: 32rpx;
font-family: PingFang SC-Bold, PingFang SC;
font-weight: bold;
color: #999999;
text {
margin-left: 20rpx;
font-size: 32rpx;
font-family: PingFang SC-Bold, PingFang SC;
font-weight: bold;
color: #333333;
}
}
.therecontentitem_tows {
margin-top: 16rpx;
font-size: 24rpx;
font-family: PingFang SC-Bold, PingFang SC;
font-weight: bold;
color: #999999;
padding-bottom: 30rpx;
}
.therecontentitemtext {
font-size: 32rpx;
font-family: PingFang SC-Bold, PingFang SC;
font-weight: bold;
color: #333333;
}
.therecontentitemtextthere {
font-size: 24rpx;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
color: #666666;
}
.therecontentitemtextitem {
margin-top: 24rpx;
.therecontentitemtextitem_left {
font-size: 28rpx;
font-family: PingFang SC-Bold, PingFang SC;
font-weight: bold;
color: #333333;
}
.therecontentitemtextitem_right {
font-size: 32rpx;
font-family: Roboto-Bold, Roboto;
font-weight: bold;
color: #333333;
}
}
.therecontentitemtextitemt_one {
margin-top: 6rpx;
font-size: 24rpx;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
color: #999999;
padding-bottom: 16rpx;
border-bottom: 1rpx dashed #F7F7F7;
}
}
.fixedview {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
padding: 24rpx 28rpx;
background: #FFFFFF;
.fixedview_one {
.fixedview_oneone {
font-size: 28rpx;
font-family: SourceHanSansCN-Bold-, SourceHanSansCN-Bold;
font-weight: normal;
color: #333333;
}
.fixedview_onetow {
font-size: 44rpx;
font-family: SourceHanSansCN-Bold-, SourceHanSansCN-Bold;
font-weight: normal;
color: #F45C4C;
font-weight: bold;
text {
font-size: 28rpx;
}
}
}
.fixedview_tow {
background: var(--bg-color-button);
border-radius: 34rpx;
padding: 10rpx 44rpx;
font-size: 32rpx;
font-family: PingFang SC-Bold, PingFang SC;
font-weight: bold;
color: #FFFFFF;
button::after {
border-radius: 34rpx;
padding: 0 !important;
margin: 0 !important;
}
button {
background-color: var(--bg-color-button) !important;
padding: 0 !important;
line-height: inherit !important;
margin: 0 !important;
width: auto !important;
font-weight: 500 !important;
border-radius: none !important;
color: #FFFFFF;
}
}
}
.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>