2025-08-01 11:39:06 +08:00

1144 lines
30 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="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>