appointment_weapp/pages/order/orderInfo.vue

1195 lines
29 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="index" :style="[theme]">
<view class="onecontent">
<view class="onecontentone flex-start">
<image class="onecontentone_image" :src="listdata.img" mode="aspectFill"></image>
<view class="onecontentone_one flex-colum-start">
<text class="onecontentone_one_top">{{listdata.title}}</text>
<view class="onecontentone_one_view flex-between">
<view class="onecontentone_one_viewtext">
<text>¥</text>{{listdata.price}}
</view>
<view class="onecontentone_one_ts" @click="infoshow = true">
查看详情
</view>
</view>
</view>
</view>
</view>
<view class="onecontenttow ">
<view class="onecontenttowone flex-start">
<view class="onecontenttowone_one">
预约时间<text>必填</text>
</view>
</view>
<view class="onecontenttowtow flex-between">
<view class="onecontenttowtow_item flex-between">
<view class=" flex-colum" v-for="(item,index) in reservationlist" :key="index"
:class="reservationshow == index ? 'onecontenttowtow_item_ones':'onecontenttowtow_item_one'"
@click="reservation(item,index)">
<text class="onecontenttowtow_item_one_textone">{{item.week}}</text>
<text class="onecontenttowtow_item_one_texttow">{{item.date.slice(5,10)}}</text>
</view>
</view>
<view class="onecontenttowtow_left flex-colum" @click="calendarshow = true">
<u-icon name="calendar" color="#b4b4b4" size="20"></u-icon>
<text class="onecontenttowtow_lefttext">选择</text>
</view>
</view>
<view class="onecontenttowthere flex-start">
<view v-for="(item,index) in listday_time" :key="index" @click="clicktime(item,index)"
:class="timeshow == index?'onecontenttowthere_items':'onecontenttowthere_item'">
{{item}}
</view>
</view>
<view class="onecontenttowthereflex-center" style="text-align: center; color: #ccc; padding-top: 20rpx;"
v-if="listday_time.length==0">
暂无预约时间
</view>
</view>
<view class="onecontenttere" v-if="listday_time.length !=0">
<view class="onecontentterewone flex-start">
<view class="onecontenttereone_one">
{{listdata.position_nickname}}
</view>
</view>
<view class="onecontentterewtow flex-start">
<view class="flex-colum" v-for="(item,index) in list_Hairstylist" :key="index"
:class="listhairstylistshow == index ? 'onecontentterewtow_items ':'onecontentterewtow_item'"
@click="clicklisthairstylist(item,index)">
<image :src="item.avatar" mode="aspectFill"></image>
<text>{{item.nickname}}</text>
<view :class="item.is_select == 1 ?'onecontentterewtowview':'onecontentterewtowviews'">
<text v-if="item.is_select == 1">
<text v-if="item.count ==0">空闲中</text>
<text v-else>已约{{item.count}}人</text>
</text>
<text v-if="item.is_select == 0">已约满</text>
</view>
</view>
</view>
</view>
<view class="onecontentfour">
<view class="onecontentfourone flex-start">
<view class="onecontentfourone_one">
备注
</view>
</view>
<u--textarea v-model="remark" placeholder="请输入内容" autoHeight></u--textarea>
</view>
<view :style="{height:height}"></view>
<view class="fixedview flex-between">
<view class="fixedview_one flex-start">
<view class="fixedview_oneone">
应付金额:
</view>
<view class="fixedview_onetow">
<text>¥</text>{{listdata.price}}
</view>
</view>
<view class="fixedview_tow" @click="overlayshow = true" v-if="listday_time.length!=0">
立即预约
</view>
<view class="fixedview_tow" style="background: #ccc;" v-else>
立即预约
</view>
</view>
<u-overlay :show="infoshow" @click="infoshow = false">
<view class="infowarp">
<view class="inforect" @tap.stop>
<view class="onerect flex-between">
<view>服务详情</view>
<u-icon @click="infoshow = false" name="close-circle-fill" color="#000000" size="24"></u-icon>
</view>
<view class="infotowrect flex-start">
<image :src="listdata.img" mode="aspectFill"></image>
</view>
<view class="infothererect flex-colum-start">
<view class="infothererect_one">
{{listdata.title}}
</view>
<view class="infothererect_one">
{{listdata.price}}
</view>
</view>
<view class="infofourrect">
<view class="infofourrect_one">
【服务简介】
</view>
<view class="infofourrect_yow" v-html="listdata.details">
<!-- 烫发、编发、洗头、定型。 -->
</view>
</view>
</view>
</view>
</u-overlay>
<u-overlay :show="overlayshow" @click="overlayshow = false">
<view class="warp">
<view class="rect" @tap.stop>
<view class="onerect flex-start">
<image class="onecontentone_image" :src="listdata.img" mode="aspectFill"></image>
<view class="nonecontentone_view">{{listdata.title}}</view>
<view class="onerecticon">
<u-icon @click="overlayshow = false" name="close-circle-fill" color="#000000"
size="24"></u-icon>
</view>
</view>
<view class="towrect">
<view class="towrect_one">
预约时间:{{day_time}}
</view>
<view class="towrect_tow">
<text>{{day_hour}}</text>
</view>
</view>
<view class="thererect flex-between">
<view class="thererect_one">
预约服务
</view>
<view class="thererect_tow">
<u-number-box v-model="numberbox" :min="1" button-size="24" color="#ffffff"
:bgColor="theme.cartpieces" iconStyle="color: #fff" integer></u-number-box>
</view>
</view>
<view class="fuorrect flex-between">
<view class="fuorrect_one">
合计
</view>
<view class="fuorrect_tow">
¥{{listdata.price}}
</view>
</view>
<view>
确定
</view>
<view v-if="mobiles" class="fvirect flex-center" @click="requestSubscribeMessage">
确定
</view>
<view v-else class="fvirect flex-center">
<button open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">
确定
</button>
</view>
</view>
</view>
</u-overlay>
<u-calendar mode="single" @confirm="confirm" :show="calendarshow" @close="calendarshow = false"></u-calendar>
</view>
</template>
<script>
export default {
data() {
return {
mobiles: uni.cache.get('loginuser').userinfo.mobile,
overlayshow: false,
infoshow: false,
numberbox: 1,
height: '',
timeshow: '',
textarea: '',
reservationshow: 0,
calendarshow: false,
listhairstylistshow: -1,
reservationlist: [],
day_time: '', //日期
day_hour: '', //小时
people_id: '', //发型师id
inifid: '',
listdata: {},
remark: "",
listday_time: [],
list_Hairstylist: [],
nickname: ''
}
},
onLoad(e) {
this.inifid = e.id
this.confirm() //初始时间
this.reservationdetail() //详情
},
computed: {
theme() {
return this.$store.getters.theme
},
},
onShow() {
this.$store.dispatch('storeuseruserinfo')
},
mounted() {
//#ifdef MP-WEIXIN || H5
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();
//#endif
//#ifdef MP-ALIPAY
my.createSelectorQuery().selectAll('.fixedview').boundingClientRect().exec(ele => {
var nodeData = ele[0]
var that = this;
that.height = (nodeData.height) + "px";
that = null;
})
//#endif
},
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.mobiles = resdata.mobile
} catch (e) {
uni.showToast({
title: '获取失败'
})
}
}
});
// #endif
},
async reservationmakenow() {
let res = await this.api.reservationmakenow({
service_id: this.inifid,
day_time: this.day_time
})
if (res.length != 0) {
this.listday_time = res
this.day_hour = res[0]
this.reservationattendantavailable() //有空服务员
} else {
this.listday_time = []
}
},
async reservationattendantavailable() {
let res = await this.api.reservationattendantavailable({
service_id: this.inifid,
day_time: this.day_time,
time: this.day_hour
})
this.list_Hairstylist = res
},
async reservationdetail() {
let res = await this.api.reservationdetail({
id: this.inifid
})
this.listdata = res
this.listdata.details = res.details.replace(/\<img/g, '<img style="max-width:100%;height:auto" ');
},
reservation(a, b) {
this.reservationshow = b
this.day_time = a.date
this.reservationmakenow() //获取预约时间
this.timeshow = 0 //归零
},
clicklisthairstylist(a, b) {
if (a.is_select == 0) {
uni.showToast({
title: '该发型师以预约满'
})
} else {
this.listhairstylistshow = b
this.people_id = a.id
this.nickname = a.nickname
}
},
clicktime(a, b) {
this.timeshow = b
this.day_hour = a
console.log(a, b)
this.reservationattendantavailable() //有空服务员
},
numberboxchange(e) {
console.log('当前值为: ' + e.value)
},
requestSubscribeMessage() {
var this_ = this
var tmplIds = uni.cache.get('loginuser').style_type == 'Hotel' ?
'35eHb-4ubBqSY4k8FS6HEzDX32GO5eXMjo9fkWYMTzA' : '82MEoVTs2rnLk6RR9jcnjZSnFurao3aqKp1EzSojuwU'
uni.getSetting({
withSubscriptions: true,
success(res) {
// 调起授权界面弹窗
if (res.subscriptionsSetting.mainSwitch) { // 用户打开了订阅消息总开关
if (res.subscriptionsSetting.itemSettings !=
null) { // 用户同意总是保持是否推送消息的选择, 这里表示以后不会再拉起推送消息的授权
let moIdState = res.subscriptionsSetting.itemSettings[tmplIds]; // 用户同意的消息模板id
if (moIdState === 'accept') {
uni.requestSubscribeMessage({ // 调起消息订阅界面
tmplIds: [tmplIds],
success(res) {
if (res[tmplIds] == 'accept') {
this_.overlayshowclick(1)
} else if (res[tmplIds] == 'reject') {
this_.overlayshowclick(0)
} else if (res[tmplIds] == 'ban') {
this_.overlayshowclick(0)
} else if (res[tmplIds] == 'accept') {
this_.overlayshowclick(0)
} else {
this_.overlayshowclick(0)
}
},
fail(er) {
this_.overlayshowclick(0)
console.log(er);
}
})
} else if (moIdState === 'reject') {
console.log("拒绝消息推送");
this_.overlayshowclick(0)
} else if (moIdState === 'ban') {
console.log("已被后台封禁");
this_.overlayshowclick(0)
}
} else {
// 当用户没有点击 ’总是保持以上选择,不再询问‘ 按钮。那每次执到这都会拉起授权弹窗
uni.showModal({
title: '提示',
content: '请授权开通服务通知',
showCancel: true,
success: function(ress) {
if (ress.confirm) {
// console.log('用户点击确定')
uni.requestSubscribeMessage({ // 调起消息订阅界面
tmplIds: [tmplIds],
success(res) {
if (res[tmplIds] == 'accept') {
this_.overlayshowclick(1)
} else if (res[tmplIds] == 'reject') {
this_.overlayshowclick(0)
} else if (res[tmplIds] == 'ban') {
this_.overlayshowclick(0)
} else if (res[tmplIds] == 'accept') {
this_.overlayshowclick(0)
} else {
this_.overlayshowclick(0)
}
},
fail(er) {
this_.overlayshowclick(0)
console.log(er);
}
})
} else if (ress.cancel) {
this_.overlayshowclick(0)
}
}
})
}
} else {
this_.overlayshowclick(0)
}
}
})
},
async overlayshowclick(e) {
this.overlayshow = false
let datares = await this.api.reservationdirectorder({
service_id: this.inifid,
number: this.numberbox,
mobile: uni.cache.get('loginuser').userinfo.mobile,
time: this.day_time + ' ' + this.day_hour,
remark: this.remark,
people_id: this.people_id == '' ? 0 : this.people_id,
username: this.nickname,
send_message: e
})
console.log(datares)
if (datares) {
uni.showToast({
title: '预约成功',
icon: 'none'
});
setTimeout(() => {
uni.pro.navigateTo('order/confirm', datares)
}, 500);
}
},
confirm(e) {
if (e) {
this.calendarshow = false
console.log(new Date(e[0]));
var now = new Date(e[0]);
} else {
//获取当前年月日
var now = new Date();
// var year = now.getFullYear(); //得到年份
// var month = now.getMonth() + 1; //得到月份
// var date = now.getDate(); //得到日期
// data = year + "年" + month + "月" + date + "日";
}
this.reservationlist = []
for (let i = 0; i < 7; i++) {
var date = new Date(now.getTime() + i * 24 * 3600 * 1000);
var year = date.getFullYear();
var month = (date.getMonth() + 1) > 9 ? (date.getMonth() + 1) : '0' + (date.getMonth() + 1);
var day = (date.getDate()) > 9 ? (date.getDate()) : '0' + (date.getDate());
var dt2 = new Date(now.getTime() + i * 24 * 3600 * 1000);
var weekDay = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"];
// var weekDays = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"];
this.reservationlist.push({
date: year + "-" + month + "-" + day,
// date: month + "-" + day,
// day: day,
// weekday: weekDays[dt2.getDay()],
week: weekDay[dt2.getDay()],
});
}
this.day_time = this.reservationlist[0].date
this.reservationmakenow() //获取预约时间
}
}
}
</script>
<style lang="scss">
page {
background: #F6F6F6;
}
/deep/ .mystyle {
width: 100% !important;
height: auto;
display: block;
}
.index {
padding: 32rpx 28rpx;
.onecontent {
width: 100%;
padding: 26rpx 32rpx;
background: #FFFFFF;
border-radius: 12rpx;
.onecontentone {
flex-wrap: nowrap;
font-size: 32rpx;
font-family: SourceHanSansCN-Medium-, SourceHanSansCN-Medium;
font-weight: normal;
color: #333333;
.onecontentone_image {
width: 176rpx;
height: 176rpx;
border-radius: 16rpx;
}
.nonecontentone_view {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
flex: 1;
}
.onecontentone_one {
position: relative;
justify-content: flex-start;
flex: 1;
margin-left: 24rpx;
height: 176rpx;
.onecontentone_one_top {
font-size: 32rpx;
font-family: Source Han Sans CN-Regular, Source Han Sans CN;
font-weight: 400;
color: #1A1A1A;
}
.onecontentone_one_view {
margin-top: 32rpx;
width: 100%;
.onecontentone_one_viewtext {
text {
font-size: 28rpx;
}
font-size: 40rpx;
font-family: SourceHanSansCN-Bold-,
SourceHanSansCN-Bold;
font-weight: normal;
color: #333333;
}
.onecontentone_one_ts {
padding: 8rpx 22rpx;
background: #F7F7F7;
border-radius: 28rpx;
font-size: 28rpx;
font-family: Source Han Sans CN-Regular, Source Han Sans CN;
font-weight: 400;
color: #666666;
}
}
}
}
}
.onecontenttow {
margin-top: 24rpx;
width: 100%;
padding: 24rpx 0 32rpx 0;
background: #FFFFFF;
border-radius: 12rpx;
.onecontenttowone::before {
content: '';
display: inline-block;
width: 4rpx;
height: 24rpx;
background: var(--bg-color-button);
border-radius: 4rpx;
}
.onecontenttowone {
padding: 0 32rpx;
.onecontenttowone_one {
margin-left: 16rpx;
font-size: 32rpx;
font-family: Source Han Sans CN-Bold, Source Han Sans CN;
font-weight: bold;
color: #1A1A1A;
text {
color: #999999;
}
}
}
.onecontenttowtow {
margin-top: 32rpx;
padding: 0 0 0 32rpx;
.onecontenttowtow_item {
flex: 1;
flex-wrap: nowrap;
.onecontenttowtow_item_one:nth-child(1) {
margin: 0 !important;
}
.onecontenttowtow_item_one {
padding: 6rpx;
.onecontenttowtow_item_one_textone {
font-size: 28rpx;
font-family: Source Han Sans CN-Medium, Source Han Sans CN;
font-weight: 500;
color: #333333;
}
.onecontenttowtow_item_one_texttow {
margin-top: 5rpx;
font-size: 24rpx;
font-family: Source Han Sans CN-Regular, Source Han Sans CN;
font-weight: 400;
color: #999999;
}
}
.onecontenttowtow_item_ones {
padding: 6rpx;
border-radius: 10rpx;
background: var(--bg-color-buttontow);
.onecontenttowtow_item_one_textone {
font-size: 28rpx;
font-family: Source Han Sans CN-Medium, Source Han Sans CN;
font-weight: 500;
color: #fff;
}
.onecontenttowtow_item_one_texttow {
margin-top: 5rpx;
font-size: 24rpx;
font-family: Source Han Sans CN-Regular, Source Han Sans CN;
font-weight: 400;
color: #fff;
}
}
}
.onecontenttowtow_left {
width: 96rpx;
border-left: 1rpx solid #f9f9f9;
background: #FFFFFF;
box-shadow: -2rpx 0px 4rpx 2rpx rgba(193, 193, 193, 0.09);
.onecontenttowtow_lefttext {
font-size: 24rpx;
font-family: Source Han Sans CN-Regular, Source Han Sans CN;
font-weight: 400;
color: #999999;
}
}
}
.onecontenttowthere {
margin-top: 10rpx;
.onecontenttowthere_item {
width: 17%;
margin: 0 4%;
margin-top: 24rpx;
padding: 8rpx 0;
text-align: center;
background: #F7F7F7;
border-radius: 8rpx;
border: 2rpx solid #F7F7F7;
font-size: 28rpx;
font-family: Source Han Sans CN-Medium, Source Han Sans CN;
font-weight: 500;
color: #999999;
}
.onecontenttowthere_items {
width: 17%;
margin: 0rpx 4%;
margin-top: 24rpx;
padding: 8rpx 0;
text-align: center;
background: #F7F7F7;
text-align: center;
border-radius: 8rpx;
border: 1rpx solid var(--bg-color-buttontow);
font-size: 28rpx;
font-family: Source Han Sans CN-Medium, Source Han Sans CN;
font-weight: 500;
color: var(--bg-color-buttontow);
}
}
}
.onecontenttere {
margin-top: 24rpx;
width: 100%;
padding: 32rpx;
background: #FFFFFF;
border-radius: 12rpx;
.onecontentterewone::before {
content: '';
display: inline-block;
width: 4rpx;
height: 24rpx;
background: var(--bg-color-button);
border-radius: 4rpx;
}
.onecontentterewone {
.onecontenttereone_one {
margin-left: 16rpx;
font-size: 32rpx;
font-family: Source Han Sans CN-Bold, Source Han Sans CN;
font-weight: bold;
color: #1A1A1A;
text {
color: #999999;
}
}
}
.onecontentterewtow {
.onecontentterewtow_item {
width: 22%;
margin: 0 1.5%;
margin-top: 20rpx;
padding: 20rpx 10rpx;
background: #FFFFFF;
border-radius: 8rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
border: 2rpx solid #F7F7F7;
image {
width: 76rpx;
height: 76rpx;
border-radius: 50%;
}
text {
text-align: center;
margin-top: 6rpx;
font-size: 24rpx;
font-family: Source Han Sans CN-Medium, Source Han Sans CN;
font-weight: 500;
color: #333333;
}
.onecontentterewtowviews {
margin-top: 14rpx;
padding: 4rpx 10rpx;
font-size: 16rpx;
font-family: Source Han Sans CN-Medium, Source Han Sans CN;
font-weight: 500;
color: #FFFFFF;
background: #F7F7F7;
border-radius: 16rpx;
text {
color: #999999;
background: #F7F7F7;
}
}
.onecontentterewtowview {
margin-top: 14rpx;
padding: 4rpx 16rpx;
font-size: 16rpx;
font-family: Source Han Sans CN-Medium, Source Han Sans CN;
font-weight: 500;
color: #FFFFFF;
background: var(--bg-color-button);
border-radius: 24rpx;
text {
color: #FFFFFF;
}
}
}
.onecontentterewtow_items {
width: 22%;
margin: 0 1.5%;
margin-top: 20rpx;
padding: 20rpx 10rpx;
background: #FFFFFF;
border-radius: 8rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
border: 1rpx solid var(--bg-color-buttontow);
image {
border-radius: 50%;
width: 76rpx;
height: 76rpx;
}
text {
text-align: center;
margin-top: 6rpx;
font-size: 24rpx;
font-family: Source Han Sans CN-Medium, Source Han Sans CN;
font-weight: 500;
color: #333333;
}
.onecontentterewtowviews {
margin-top: 14rpx;
padding: 4rpx 16rpx;
font-size: 16rpx;
font-family: Source Han Sans CN-Medium, Source Han Sans CN;
font-weight: 500;
color: #FFFFFF;
background: #F7F7F7;
border-radius: 24rpx;
text {
color: #999999;
background: #F7F7F7;
}
}
.onecontentterewtowview {
margin-top: 14rpx;
padding: 4rpx 16rpx;
font-size: 16rpx;
font-family: Source Han Sans CN-Medium, Source Han Sans CN;
font-weight: 500;
color: #FFFFFF;
background: var(--bg-color-button);
border-radius: 24rpx;
text {
color: #FFFFFF;
}
}
}
}
}
.introduction {
margin-top: 24rpx;
width: 100%;
padding: 32rpx;
background: #FFFFFF;
border-radius: 12rpx;
.introduction_one {
font-size: 32rpx;
font-family: Source Han Sans CN-Medium, Source Han Sans CN;
font-weight: 500;
color: #1A1A1A;
}
.introduction_yow {
margin-top: 18rpx;
font-size: 28rpx;
font-family: Source Han Sans CN-Regular, Source Han Sans CN;
font-weight: 400;
color: #1A1A1A;
width: 100%;
/deep/ [alt] {
width: 100%;
}
/deep/ img {
width: 100%;
}
img {
width: 100%;
}
/deep/ p {
width: 100%;
}
}
}
.onecontentfour {
margin-top: 24rpx;
width: 100%;
padding: 32rpx;
background: #FFFFFF;
border-radius: 12rpx;
.onecontentfourone::before {
content: '';
display: inline-block;
width: 4rpx;
height: 24rpx;
background: var(--bg-color-button);
border-radius: 4rpx;
}
.onecontentfourone {
padding-bottom: 16rpx;
.onecontentfourone_one {
margin-left: 16rpx;
font-size: 32rpx;
font-family: Source Han Sans CN-Bold, Source Han Sans CN;
font-weight: bold;
color: #1A1A1A;
text {
color: #999999;
}
}
}
}
.fixedview {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
padding: 24rpx 28rpx;
background: #FFFFFF;
z-index: 999;
.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;
}
}
}
.infowarp {
position: relative;
height: 100%;
overflow: auto;
.inforect {
position: absolute;
bottom: 0;
height: 1000rpx;
overflow: auto;
width: 100%;
background: #FFFFFF;
border-radius: 60rpx 60rpx 0px 0px;
padding: 48rpx 32rpx 32rpx 32rpx;
.onerect {
width: 100%;
position: relative;
padding-bottom: 34rpx;
border-bottom: 1rpx solid #F7F7F7;
view {
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;
}
}
}
.infotowrect {
width: 686rpx;
border-radius: 18rpx;
height: 640rpx;
image {
border-radius: 18rpx;
width: 100%;
height: 100%;
}
}
.infothererect {
padding-bottom: 16rpx;
border-bottom: 4rpx solid #F9F9F9;
.infothererect_one {
margin-top: 22rpx;
font-size: 32rpx;
font-family: Source Han Sans CN-Medium, Source Han Sans CN;
font-weight: 500;
color: #1A1A1A;
}
}
.infofourrect {
.infofourrect_one {
margin-top: 32rpx;
font-size: 32rpx;
font-family: Source Han Sans CN-Medium, Source Han Sans CN;
font-weight: 500;
color: #1A1A1A;
}
.infofourrect_yow {
margin-top: 18rpx;
font-size: 28rpx;
font-family: Source Han Sans CN-Regular, Source Han Sans CN;
font-weight: 400;
color: #1A1A1A;
}
}
}
.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 {
width: 100%;
position: relative;
padding-bottom: 34rpx;
border-bottom: 1rpx solid #F7F7F7;
image {
width: 124rpx;
height: 124rpx;
border-radius: 16rpx;
}
.nonecontentone_view {
width: 70%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
margin-left: 16rpx;
height: 124rpx;
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 {
padding-bottom: 34rpx;
border-bottom: 1rpx solid #F7F7F7;
padding-top: 34rpx;
.towrect_one {
font-size: 28rpx;
font-family: Source Han Sans CN-Medium, Source Han Sans CN;
font-weight: 500;
color: #1A1A1A;
}
.towrect_tow {
margin-top: 16rpx;
text {
background: #F7F7F7;
border-radius: 8rpx;
border: 1rpx solid var(--bg-color-button);
padding: 8rpx 26rpx;
font-size: 28rpx;
font-family: Source Han Sans CN-Medium, Source Han Sans CN;
font-weight: 500;
color: var(--bg-color-button);
}
}
}
.thererect {
padding: 34rpx 0;
border-bottom: 1rpx solid #F7F7F7;
border-top: 1rpx solid #F7F7F7;
.thererect_one {
font-size: 28rpx;
font-family: Source Han Sans CN-Medium, Source Han Sans CN;
font-weight: 500;
color: #1A1A1A;
}
.thererect_tow {}
}
.fuorrect {
margin-top: 32rpx;
.fuorrect_one {
font-size: 28rpx;
font-family: Source Han Sans CN-Medium, Source Han Sans CN;
font-weight: 500;
color: #1A1A1A;
}
.fuorrect_tow {
font-weight: bold;
font-size: 32rpx;
font-family: SourceHanSansCN-Bold-, SourceHanSansCN-Bold;
color: #333333;
}
}
.fvirect {
margin-top: 200rpx;
padding: 16rpx;
text-align: center;
background: var(--bg-color-button);
border-radius: 40rpx;
font-size: 36rpx;
font-family: PingFang SC-Bold, PingFang SC;
font-weight: bold;
color: #FFFFFF;
button::after {
border: none !important;
padding: 0 !important;
margin: 0 !important;
}
button {
background-color: transparent !important;
padding: 0 !important;
color: #FFFFFF;
line-height: inherit !important;
margin: 0 !important;
width: 100% !important;
font-weight: 500 !important;
border-radius: none !important;
}
}
}
}
}
</style>