1144 lines
30 KiB
Vue
Raw Normal View History

2025-08-01 11:39:06 +08:00
<template>
<view class="xilu">
<hx-navbar :config="config">
<block slot="left">
<picker mode="selector" :value="c_index" :range="province_list" range-key="name" @change="changeCity">
<view class="left flex-box pl25">
<image src="@/static/images/xilu_icon_address.png" mode="aspectFill" class="xilu_icon_address">
</image>
<view class="fs28 fw500 coldark plr10">{{province_list[c_index]['name'] || (city_name || '未知')}}
</view>
<image src="@/static/images/xilu_icon_arrowdown.png" mode="aspectFill" class="xilu_icon_down">
</image>
</view>
</picker>
</block>
<block slot="center">
<text class="fs36 fw500 col0">课程</text>
</block>
</hx-navbar>
<view class="page-foot">
<Footer :identity="1" :footState="1"></Footer>
</view>
<view class="container">
<swiper class="xilu_course_swiper pr z2" :indicator-dots="true" :circular="true" :autoplay="true"
:interval="3000" :duration="1000">
<swiper-item v-for="(vo,keys) in bannerList">
<image :src="vo.xilufitness_urls.thumb_image" mode="aspectFill" class="banner"
@click.stop="banner_redirect(vo.redirect_url)"></image>
</swiper-item>
</swiper>
<view class="xilu_tab_nav">
<view class="xilu_tab_nav_link" :class="course_type == 1 ? 'active':''" @click="chooseNav(1)">团课</view>
<view class="xilu_tab_nav_link" :class="course_type == 2 ? 'active':''" @click="chooseNav(2)">私教</view>
<view class="xilu_tab_nav_link" :class="course_type == 3 ? 'active':''" @click="chooseNav(3)">活动</view>
<view class="xilu_tab_nav_link" :class="course_type == 4 ? 'active':''" @click="chooseNav(4)">收藏的教练</view>
</view>
<template>
<view class="xilu_class_nav">
<view class="xilu_class_nav_link" :class="cindex==0?'active':''" @click="chooseClassNav(0)"
v-if="course_type != 3 && course_type != 4">
<view>课程</view>
<image src="@/static/images/xilu_arrow_yellow.png" mode="aspectFill" class="arrow"
v-if="cindex==0">
</image>
<image src="@/static/images/xilu_arrow_gray.png" mode="aspectFill" class="arrow" v-else>
</image>
</view>
<view class="xilu_class_nav_link" :class="cindex==1?'active':''" @click="chooseClassNav(1)">
<view>门店</view>
<image src="@/static/images/xilu_arrow_yellow.png" mode="aspectFill" class="arrow"
v-if="cindex==1">
</image>
<image src="@/static/images/xilu_arrow_gray.png" mode="aspectFill" class="arrow" v-else>
</image>
</view>
<view class="xilu_class_nav_link" :class="cindex==2?'active':''" @click="chooseClassNav(2)"
v-if="course_type != 4">
<view>时间</view>
<image src="@/static/images/xilu_arrow_yellow.png" mode="aspectFill" class="arrow"
v-if="cindex==2">
</image>
<image src="@/static/images/xilu_arrow_gray.png" mode="aspectFill" class="arrow" v-else>
</image>
</view>
<!-- <view class="xilu_class_nav_link" :class="course_type == 4?'active':''" @click="chooseNav(4)">
<view>收藏的教练</view>
</view> -->
</view>
<view class="xilu_date_nav flex-box ml25" v-if="course_type != 4">
<template v-for="(vo,keys) in classTimeList">
<view :class="choose_date == vo.day_date ? 'xilu_date_nav_item active' : 'xilu_date_nav_item'"
@tap="chooseDate(vo.day_date)">
<view>{{vo.day || ''}}</view>
<view class="mt5">{{vo.week || ''}}</view>
</view>
</template>
</view>
</template>
<template v-if="course_type == 1">
<!-- 团课 -->
<view class="pb30 plr25">
<template v-if="list.length > 0">
<template v-for="(vo,keys) in list">
<view class="flex-box flex-between mt30" @click.stop="shop_detail(vo.id)">
<view class="fs30 cola lh42 fw500">{{vo.shop_name || ''}}
<distance-format :distance="vo.distance"></distance-format>
</view>
<view class="fs30 cola">门店详情<image src="@/static/images/xilu_arrow_right.png"
mode="widthFix" class="ico12 ml10">
</image>
</view>
</view>
<view class="">
<view class="xilu_total_box mt30">
<template v-if="vo.list.length > 0">
<view class="xilu_total_box_item flex-box" v-for="(vv,kk) in vo.list"
@tap="course_detail(vv.id,1)">
<image :src="vv.course.xilufitness_urls.thumb_image" mode="aspectFill"
class="xilu_total_box_cover">
</image>
<view class="flex-grow-1 pl20">
<view class="fs30 fw500 colf lh42 m-ellipsis">{{vv.course.title || ''}}
</view>
<view class="mt10 lh32">
<text
class="fs24 colf">{{vv.start_at || ''}}{{vv.end_at || ''}}</text>
<text class="ml20 col2 fs24">¥{{vv.course_price || 0}}</text>
<text class="fs20 col9"
v-if="vv.market_price > 0">¥{{vv.market_price || 0}}</text>
</view>
<view class="mt10 fs24 col9 lh32"
v-if="vv.course.lable_list.length > 0">
{{vv.course.lable_list.join(' | ')}}
</view>
</view>
<view class="xilu_btn1" v-if="vv.is_plan == 1">预约</view>
<view class="xilu_btn1" v-else-if="vv.is_plan == 2">可排队</view>
<view class="xilu_btn1" v-else-if="vv.is_plan == 3">已开始</view>
<view class="xilu_btn1" v-else-if="vv.is_plan == 4">已售罄</view>
</view>
</template>
<template v-else>
<empty-data :tips="'暂无课程'" :lineHeight="200"></empty-data>
</template>
</view>
</view>
</template>
</template>
<template v-else>
<empty-data :tips="'暂无课程'" :lineHeight="300"></empty-data>
</template>
</view>
</template>
<template v-if="course_type == 2">
<!-- 私教 -->
<template v-if="list.length > 0">
<view class="pb30 plr25">
<template v-if="list.length > 0">
<template v-for="(vo,index) in list">
<view class="flex-box ptb30" @click.stop="shop_detail(vo.id)">
<view class="flex-grow-1 fs30 cola">{{vo.shop_name || ''}} <distance-format
:distance="vo.distance"></distance-format></view>
<view class="fs30 cola">门店详情</view>
<image src="@/static/images/xilu_arrow_right.png" mode="widthFix"
class="ico12 ml10">
</image>
</view>
<view class="xilu_box1">
<template v-if="vo.list.length > 0">
<view class="xilu_box1_item flex-box" v-for="(vv,kk) in vo.list"
@tap="course_detail(vv.id,2)">
<image
:src="vv.coach.xilufitness_urls.coach_avatar || '../../static/images/avatar.ong' "
mode="aspectFill" class="xilu_box1_cover"></image>
<view class="flex-grow-1 plr20">
<view class="fs30 fw500 colf">{{vv.course.title || ''}}</view>
<view class="mt10 lh32">
<text class="fs24 col2">¥{{vv.course_price || 0}}</text><text
class="fs20 tdl col9 ml5"
v-if="vv.market_price > 0">¥{{vv.market_price || 0}}</text>
</view>
<view class="mt10 fs30 col9 lh42 m-ellipsis"
v-if="vv.course.lable_list.length > 0">
{{vv.course.lable_list.join('')}}
</view>
</view>
<view class="xilu_btn" v-if="vv.is_plan == 1">预约</view>
<view class="xilu_btn" v-else-if="vv.is_plan == 2">可排队</view>
<view class="xilu_btn" v-else-if="vv.is_plan == 3">已开始</view>
<view class="xilu_btn" v-else-if="vv.is_plan == 4">已售罄</view>
</view>
</template>
<template v-else>
<empty-data :tips="'暂无课程'" :lineHeight="100"></empty-data>
</template>
</view>
</template>
</template>
<template v-else>
<empty-data :tips="'暂无私教课程'" :lineHeight="100"></empty-data>
</template>
</view>
</template>
<template v-else>
<empty-data :tips="'暂无课程'" :lineHeight="300"></empty-data>
</template>
</template>
<template v-if="course_type == 3">
<!-- 活动 -->
<template v-if="list.length > 0">
<view class="plr25">
<template v-if="list.length > 0">
<template v-for="(vo,keys) in list">
<view class="flex-box ptb30" @click.stop="shop_detail(vo.id)">
<view class="flex-grow-1 fs30 cola">{{vo.shop_name || ''}} <distance-format
:distance="vo.distance"></distance-format></view>
<view class="fs30 cola">门店详情</view>
<image src="@/static/images/xilu_arrow_right.png" mode="widthFix"
class="ico12 ml10">
</image>
</view>
<template v-if="vo.list.length > 0">
<view class="xilu_info_item flex-box" v-for="(vv,kk) in vo.list"
@tap="camp_detail(vv.id)">
<image :src="vv.camp.xilufitness_urls.thumb_image" mode="aspectFill"
class="xilu_info_item_cover">
</image>
<view class="flex-grow-1 pl10">
<view class="fs30 col2 fw500 lh42">{{vv.start_at || ''}}-{{vv.end_at || ''}}
</view>
<view class="flex flex-align-end">
<view class="fs24 col9 lh34 mt15 m-ellipsis flex-grow-1">
<text class="col2">¥{{vv.camp_price || 0}}</text>
<text class="col9 tdl fs20 mlr5"
v-if="vv.market_price > 0">¥{{vv.market_price || 0}}</text>
| <text
class="xilu_textsq colf mlr5">{{vv.class_count || 0}}课时</text>
| <text
class="xilu_textsq colf ml5">{{vv.class_duration || 0}}分钟/课时</text>
</view>
<view class="xilu_btn">报名</view>
</view>
<view class=" fs24 colf lh34" v-if="vv.plans.length > 0">
<template v-for="(vvv,kkk) in vv.plans">
{{vvv.week || ''}}{{vvv.day_start_at || ''}}{{vvv.day_end_at || ''}}
</template>
</view>
</view>
</view>
</template>
<template v-else>
<empty-data :tips="'暂无活动'" :lineHeight="100"></empty-data>
</template>
</template>
</template>
<template v-else>
<empty-data :tips="'暂无活动'" :lineHeight="100"></empty-data>
</template>
</view>
</template>
<template v-else>
<empty-data :tips="'暂无活动'" :lineHeight="300"></empty-data>
</template>
</template>
<template v-if="course_type == 4">
<!-- 收藏的教练 -->
<view class="pb30 plr25">
<template v-if="list.length > 0">
<template v-for="(vo,index) in list">
<view class="flex-box ptb30" @click.stop="shop_detail(vo.id)">
<view class="flex-grow-1 fs30 cola">{{vo.shop_name || ''}} <distance-format
:distance="vo.distance"></distance-format></view>
<view class="fs30 cola">门店详情</view>
<image src="@/static/images/xilu_arrow_right.png" mode="widthFix" class="ico12 ml10">
</image>
</view>
<view class="xilu_box1">
<template v-if="vo.coach_list.length > 0">
<view class="xilu_box1_item flex-box" v-for="(vv,kk) in vo.coach_list"
@tap="coach_detail(vv.id,vo.id)">
<image :src="vv.xilufitness_urls.coach_avatar" mode="aspectFill"
class="xilu_box1_cover">
</image>
<view class="flex-grow-1 plr20">
<view class="fs30 fw500 colf">{{vv.coach_name || ''}}<text
class="xilu_tips">{{vv.group_name || ''}}</text></view>
<view class="mt25 fs30 col9 lh42 m-ellipsis"
v-if="vv.lable_list && vv.lable_list.length > 0">
{{vv.lable_list.join('')}}
</view>
</view>
<view class="xilu_btn">预约</view>
</view>
</template>
<template v-else>
<empty-data :tips="'暂无教练'" :lineHeight="100"></empty-data>
</template>
</view>
</template>
</template>
<template v-else>
<empty-data :tips="'暂无收藏教练'" :lineHeight="200"></empty-data>
</template>
</view>
</template>
<u-popup :show="show" mode="bottom" @close="closePop()">
<view class="xilu_popup">
<view class="xilu_popup_head">
<view class="xilu_popup_tab flex-box flex-center" :class="hindex==0?'active':''"
@click="chooseHead(0)">
<view>课程</view>
<image src="@/static/images/xilu_arrow_yellow.png" mode="aspectFill" class="arrow"
v-if="hindex==0"></image>
<image src="@/static/images/xilu_icon_arrowdown_white.png" mode="aspectFill" class="arrow"
v-else>
</image>
</view>
<view class="xilu_popup_tab flex-box flex-center" :class="hindex==1?'active':''"
@click="chooseHead(1)">
<view>门店</view>
<image src="@/static/images/xilu_arrow_yellow.png" mode="aspectFill" class="arrow"
v-if="hindex==1"></image>
<image src="@/static/images/xilu_icon_arrowdown_white.png" mode="aspectFill" class="arrow"
v-else>
</image>
</view>
<view class="xilu_popup_tab flex-box flex-center" :class="hindex==2?'active':''"
@click="chooseHead(2)">
<view>时间</view>
<image src="@/static/images/xilu_arrow_yellow.png" mode="aspectFill" class="arrow"
v-if="hindex==2"></image>
<image src="@/static/images/xilu_icon_arrowdown_white.png" mode="aspectFill" class="arrow"
v-else>
</image>
</view>
</view>
<view class="xilu_popup_scroll flex" v-if="hindex==0">
<scroll-view class="xilu_popup_left" scroll-y>
<view class="xilu_left_item" :class="cate_pid == 0?'active':''"
@tap="chooseLeft(0,'course_cate')">全部
</view>
<view class="xilu_left_item" :class="cate_pid == vo.id ?'active':''"
v-for="(vo,index) in course_cate_list" @click="chooseLeft(vo.id,'course_cate')">
{{vo.cate_name}}
</view>
</scroll-view>
<scroll-view class="xilu_popup_right flex-grow-1" scroll-y>
<view class="xilu_right_item" :class="cate_id==0?'active':''"
@click="chooseRight(0,'course_cate')">全部</view>
<view class="xilu_right_item" :class="cate_id==vo.id?'active':''"
v-for="(vo,index) in course_cate_list_two" @click="chooseRight(vo.id,'course_cate')">
{{vo.cate_name}}
</view>
</scroll-view>
</view>
<view class="xilu_popup_scroll flex" v-if="hindex==1">
<scroll-view class="xilu_popup_left" scroll-y>
<view class="xilu_left_item" :class=" (province_id == 0) ?'active':''"
@click="chooseLeft(0,'province')">全部</view>
<view class="xilu_left_item"
:class="(province_id == vo.id || province_id == vo.province_id)?'active':''"
v-for="(vo,index) in province_list" @click="chooseLeft(vo,'province')">{{vo.name}}
</view>
</scroll-view>
<scroll-view class="xilu_popup_right flex-grow-1" scroll-y>
<view class="xilu_right_item" :class="(city_id == 0 && area_id == 0) ?'active':''"
@click="chooseRight(0,'city')">全部</view>
<view class="xilu_right_item" :class="(city_id == vo.id || area_id == vo.id) ? 'active':''"
v-for="(vo,index) in city_list" @click="chooseRight(vo,'city')">{{vo.name}}</view>
</scroll-view>
</view>
<view class="xilu_popup_scroll" v-if="hindex==2">
<view class="xilu_time_nav flex-box flex-center">
<view class="xilu_time_link">开始时间</view>
<view class="xilu_sq"></view>
<view class="xilu_time_link">结束时间</view>
</view>
<scroll-view scroll-y="true" class="xilu_time_scroll">
<view class="xilu_time_scroll_item" :class="tindex==index?'active':''"
v-for="(vo,index) in timeList" @click="chooseTime(index,vo)">{{vo.title}}</view>
</scroll-view>
</view>
<view class="p30 flex-box">
<view @tap="resetData()" class="xilu_btn_reset">重置</view>
<view @tap="clearData()" class="xilu_btn_sure">确认</view>
</view>
</view>
</u-popup>
</view>
</view>
</template>
<script>
const app = getApp();
export default {
data() {
return {
config: {
back: false,
title: '这里是课程列表',
leftSlot: true,
centerSlot: true,
backgroundColor: [1, '#ffcf00'],
},
cindex: -1,
show: false,
hindex: 0,
tindex: 0,
timeList: [],
classTimeList: [],
choose_date: '',
start_at: '',
end_at: '',
course_cate_list: [],
course_cate_list_two: [],
cate_pid: 0,
cate_id: 0,
province_list: [],
city_list: [],
province_id: 0,
city_id: 0,
area_id: 0,
city_name: '',
bannerList: [],
course_type: 1,
list: [],
page: 1,
total_count: 0,
c_index: ''
}
},
methods: {
//选择课程类型
chooseNav(course_type) {
this.course_type = course_type
this.clearData();
},
//选择城市
changeCity(e) {
let city_list = this.province_list;
let c_index = e.detail.value || '';
this.c_index = c_index;
if (city_list[c_index]) {
app.globalData.cityInfo = city_list[c_index];
this.city_id = city_list[c_index]['id'] || 0;
this.province_id = city_list[c_index]['province_id'] || 0;
this.city_name = city_list[c_index]['name'] || '';
this.clearData();
}
},
//选择搜索条件
chooseClassNav(e) {
if (e == 0) {
this.getCourseCateList(0);
} else if (e == 1) {
this.getCityList(0);
}
this.cindex = e;
this.hindex = e;
this.show = true;
},
chooseHead(e) {
if (e == 0 && this.course_cate_list.length == 0) {
this.getCourseCateList(0);
} else if (e == 1 && this.province_list.length == 0) {
this.getCityList(0);
}
this.hindex = e;
this.cindex = e;
},
//选择搜索条件左侧
chooseLeft(id, is_type) {
if (is_type == 'course_cate') {
// 课程一级分类
this.cate_pid = id;
if (id == 0) {
this.course_cate_list_two = [];
}
this.cate_id = 0;
this.getCourseCateList(id)
} else if (is_type == 'province') {
if (id.province_id) {
this.province_id = id.province_id || 0;
this.city_id = id.id || 0;
} else {
this.province_id = id.id || 0;
}
this.city_list = [];
this.area_id = 0;
//市区数据
this.getCityList(id.id || 0);
}
},
//右侧数据显示
chooseRight(id, is_type) {
if (is_type == 'course_cate') {
//课程子分类
this.cate_id = id;
} else if (is_type == 'city') {
//市/区数据
if (this.province_id) {
this.city_id = id.pid || 0;
this.area_id = id.id || 0;
} else {
this.city_id = id.id;
this.area_id = 0;
}
}
},
//选择时间
chooseTime(index, times) {
this.tindex = index,
this.start_at = times.start_at;
this.end_at = times.end_at;
},
//关闭弹窗
closePop() {
this.show = false;
},
//选择日期
chooseDate(day_date) {
this.choose_date = day_date;
this.clearData();
},
//清楚数据
clearData() {
this.page = 1;
this.list = [];
this.total_count = 0;
this.show = false;
this.getLists();
},
//重置数据
resetData() {
this.province_id = 0;
this.city_id = 0;
this.area_id = 0;
this.choose_date = '';
this.cate_pid = 0;
this.cate_id = 0;
this.show = false;
this.start_at = '';
this.end_at = '';
this.hindex = '';
this.tindex = '';
this.cindex = -1;
this.clearData();
},
//获取数据
getLists() {
let _this = this;
let url = '';
if (this.course_type == 4) {
url = '/addons/xilufitness/course/getCollectCoach';
} else {
url = '/addons/xilufitness/course/index';
}
this.$http({
url: url,
data: {
lat: app.globalData.lat,
lng: app.globalData.lng,
province_id: _this.province_id,
city_id: _this.city_id,
area_id: _this.area_id,
course_type: _this.course_type,
choose_date: _this.choose_date,
cate_pid: _this.cate_pid,
cate_id: _this.cate_id,
start_at: _this.start_at,
end_at: _this.end_at,
page: _this.page
},
method: 'post'
}).then(res => {
if (res.code) {
_this.bannerList = res.data.bannerList;
if (_this.page > 1) {
_this.list.push(...res.data.list);
} else {
_this.list = res.data.list || [];
}
_this.classTimeList = res.data.classTimeList;
_this.timeList = res.data.timeList;
_this.total_count = res.data.total_count;
_this.choose_date = _this.choose_date || res.data.day_date;
}
}).catch(error => {
console.log('courseError', error);
})
},
//获取课程分类
getCourseCateList(pid) {
let _this = this;
this.$http({
url: '/addons/xilufitness/course_cate/index',
data: {
pid: pid
},
method: 'get'
}).then(res => {
if (res.code == 1) {
if (pid == 0) {
_this.course_cate_list = res.data.list;
} else {
_this.course_cate_list_two = res.data.list;
}
}
}).catch(error => {
console.log('courseCateError', error);
})
},
//获取城市数据
getCityList(pid) {
let _this = this;
this.$http({
url: '/addons/xilufitness/home/getCityList',
data: {
pid: pid
},
method: 'get'
}).then(res => {
if (res.code == 1) {
if (pid == 0) {
_this.province_list = res.data.list;
if (!app.globalData.cityList) {
app.globalData.cityList = res.data.list;
}
} else {
_this.city_list = res.data.list;
}
}
}).catch(error => {
console.log('cityError', error);
})
},
//门店详情
shop_detail(id) {
this.$api.navigate('../stores_info/stores_info?id=' + id)
},
//课程详情
course_detail(id, is_type) {
this.$api.navigate('../group_lessons_info/group_lessons_info?id=' + id + '&is_type=' + is_type)
},
//活动详情
camp_detail(id) {
this.$api.navigate('../bootcamp_info/bootcamp_info?id=' + id);
},
//教练详情
coach_detail(id, shop_id) {
this.$api.navigate('../trainer_info/trainer_info?id=' + id + '&shop_id=' + shop_id);
},
//banner点击跳转
banner_redirect(url) {
if (url) {
this.$api.navigate(url);
}
}
},
onLoad(options) {
let city_info = app.globalData.cityInfo;
this.course_type = options.status || 1;
this.city_id = city_info.id || 0;
this.city_name = city_info.name || '';
this.getCityList(0);
this.getLists();
},
onShareAppMessage() {
}
}
</script>
<style lang="scss" scoped>
.xilu {
&_icon_address {
width: 26rpx;
height: 28rpx;
}
&_icon_down {
width: 17rpx;
height: 9rpx;
}
&_course_swiper {
width: 750rpx;
height: 414rpx;
.banner {
display: block;
width: 100%;
height: 100%;
}
}
&_swiper_bottom {
position: absolute;
z-index: 3;
bottom: 30rpx;
left: 0;
right: 0;
}
&_tab_nav {
height: 108rpx;
line-height: 108rpx;
padding-left: 32rpx;
&_link {
margin-right: 40rpx;
font-size: 34rpx;
font-weight: 400;
color: #FFFFFF;
display: inline-block;
vertical-align: top;
}
&_link.active {
font-weight: 500;
color: #FFCF00;
}
}
&_class_nav {
margin-bottom: 30rpx;
padding-left: 25rpx;
&_link {
display: inline-flex;
align-items: center;
height: 52rpx;
background: #292B2C;
border-radius: 26rpx;
padding: 0 30rpx;
font-size: 30rpx;
font-weight: 400;
color: #999999;
}
&_link.active {
border: 1px solid #FFCF00;
color: #FFCF00;
}
&_link+&_link {
margin-left: 18rpx;
}
}
&_date_nav {
width: 700rpx;
height: 145rpx;
background: #404243;
border-radius: 20rpx;
&_item {
width: 58rpx;
height: 110rpx;
font-size: 28rpx;
font-weight: 400;
color: #FFFFFF;
margin-left: 42rpx;
line-height: 40rpx;
text-align: center;
padding-top: 13rpx;
}
&_item:first-child {
margin-left: 16rpx;
}
&_item.active {
background: #FFCF00;
border-radius: 29rpx;
color: #101010;
line-height: 40rpx;
}
}
&_total_box {
background: #404243;
border-radius: 20rpx;
padding: 0 20rpx;
&_item {
padding: 20rpx 0;
border-bottom: 1px solid #666666;
}
&_item:last-child {
border-bottom: none;
}
&_cover {
width: 130rpx;
height: 130rpx;
border-radius: 20rpx;
display: block;
}
}
&_btn {
width: 118rpx;
height: 57rpx;
line-height: 57rpx;
text-align: center;
font-size: 28rpx;
font-weight: 400;
color: #0E0E0F;
background: #FFCF00;
border-radius: 10rpx;
}
&_btn1 {
width: 118rpx;
height: 57rpx;
line-height: 57rpx;
text-align: center;
font-size: 28rpx;
font-weight: 400;
color: #0E0E0F;
background: #FFCF00;
border-radius: 10rpx;
}
&_btn2 {
width: 118rpx;
height: 57rpx;
line-height: 57rpx;
font-size: 28rpx;
text-align: center;
font-weight: 400;
color: #0E0E0F;
background: #999999;
border-radius: 10rpx;
}
&_btn3 {
width: 118rpx;
height: 57rpx;
line-height: 53rpx;
text-align: center;
font-size: 28rpx;
font-weight: 400;
color: #FFFFFF;
border-radius: 10rpx;
border: 2rpx solid #999999;
}
&_popup {
width: 100%;
background: #292B2C;
&_head {
width: 100%;
height: 107rpx;
background: #404243;
padding: 29rpx 25rpx 25rpx;
white-space: nowrap;
overflow-x: auto;
}
&_tab {
width: 145rpx;
height: 52rpx;
line-height: calc(52rpx - 2px);
text-align: center;
font-size: 30rpx;
display: inline-flex;
color: #FFFFFF;
border-radius: 26rpx;
border: 1px solid #FFFFFF;
vertical-align: top;
}
&_tab+&_tab {
margin-left: 18rpx;
}
&_tab.active {
width: 145rpx;
height: 52rpx;
background: rgba(246, 204, 25, 0.2);
border-radius: 26rpx;
border: 1px solid #FFCF00;
font-size: 30rpx;
color: #FFCF00;
}
&_scroll {
width: 100%;
height: 828rpx;
}
&_left {
height: 828rpx;
width: 280rpx;
border-right: 1px solid #666666;
background: #2F3032;
padding-bottom: 1px;
}
&_right {
height: 828rpx;
background: #292B2C;
padding-left: 28rpx;
}
}
.arrow {
width: 15rpx;
height: 8rpx;
margin-left: 10rpx;
}
&_left_item:last-child {
padding-bottom: 20rpx;
height: 100rpx;
}
&_left_item {
height: 80rpx;
line-height: 80rpx;
padding-left: 35rpx;
font-size: 30rpx;
font-weight: 500;
color: #FFFFFF;
position: relative;
margin-top: 24rpx;
&.active {
font-size: 30rpx;
font-weight: 500;
color: #FFCF00;
}
&.active::before {
content: '';
border-radius: 0rpx 100rpx 100rpx 0rpx;
background: #FFCF00;
position: absolute;
top: 0;
left: 0;
width: 5rpx;
height: 80rpx;
}
}
&_right_item:first-child {
margin-top: 30rpx;
}
&_right_item {
width: 430rpx;
height: 80rpx;
line-height: calc(80rpx - 2px);
text-align: center;
border-radius: 15rpx;
border: 1px solid #999999;
font-size: 30rpx;
font-weight: 400;
color: #FFFFFF;
margin-top: 20rpx;
&.active {
font-size: 30rpx;
font-weight: 400;
color: #FFCF00;
background: rgba(246, 204, 25, 0.2);
box-shadow: 0rpx 4rpx 20rpx 5rpx rgba(183, 189, 202, 0.05);
border: 1px solid #FFCF00;
}
}
&_btn_reset {
width: 230rpx;
height: 90rpx;
line-height: calc(90rpx - 2px);
border-radius: 20rpx;
text-align: center;
font-size: 30rpx;
font-weight: 400;
color: #FFFFFF;
border: 1px solid #979797;
}
&_btn_sure {
width: 430rpx;
height: 90rpx;
line-height: 90rpx;
font-size: 30rpx;
font-weight: 400;
color: #0E0E0F;
text-align: center;
background: #FFCF00;
border-radius: 20rpx;
margin-left: 30rpx;
}
&_time_nav {
padding-top: 24rpx;
padding-left: 25rpx;
padding-right: 25rpx;
padding-bottom: 10rpx;
}
&_time_link {
width: 300rpx;
height: 80rpx;
line-height: calc(80rpx - 2px);
text-align: center;
font-size: 30rpx;
font-weight: 400;
color: #999999;
border-radius: 15rpx;
border: 1px solid #666666;
}
&_sq {
width: 29rpx;
height: 1px;
background: #EEEEEE;
border-radius: 45rpx;
margin-left: 35rpx;
margin-right: 35rpx;
}
&_time_scroll {
height: 710rpx;
padding: 0 25rpx 20rpx;
&_item {
width: 700rpx;
height: 80rpx;
line-height: calc(80rpx - 2px);
text-align: center;
font-size: 30rpx;
font-weight: 400;
color: #FFFFFF;
border-radius: 15rpx;
border: 1px solid #666666;
margin-top: 20rpx;
}
&_item.active {
background: rgba(246, 204, 25, 0.2);
box-shadow: 0rpx 4rpx 20rpx 5rpx rgba(183, 189, 202, 0.05);
border: 1rpx solid #FFCF00;
color: #FFCF00;
}
}
&_box1 {
width: 700rpx;
background: #404243;
border-radius: 20rpx;
padding: 0 20rpx;
&_item {
padding-top: 20rpx;
padding-bottom: 20rpx;
}
&_item+&_item {
border-top: 1px solid #666;
}
&_cover {
width: 130rpx;
height: 130rpx;
border-radius: 20rpx;
display: block;
}
}
&_info_item {
width: 700rpx;
padding: 20rpx;
background: #404243;
border-radius: 20rpx;
margin-bottom: 30rpx;
&_cover {
width: 150rpx;
height: 150rpx;
border-radius: 20rpx;
display: block;
}
}
&_tips {
display: inline-block;
height: 39rpx;
line-height: 39rpx;
background: linear-gradient(90deg, #FFD26A 0%, #FFB94E 100%);
border-radius: 19rpx;
padding: 0 15rpx;
font-size: 24rpx;
font-weight: 400;
color: #000000;
margin-left: 20rpx;
}
}
</style>