作者 mxd

听课教室选座

... ... @@ -309,7 +309,8 @@
"path": "stu_selection/stu_selection",
"style": {
"navigationBarTitleText": "听课教室选座",
"enablePullDownRefresh": false
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
}, {
... ...
<template>
<view class="wrap_box">
<!-- <uParse v-if="datas" :content="datas"></uParse> -->
<!-- <view class="tel_index_bg"></view> -->
<image class="tel_index_bg" src="/static/images/selectseat_bg.png" mode="aspectFill"></image>
<CustomReturn title="听课教室选座" color="#fff" :bgColor="bgColor"/>
<view class="bg-img">
<image src="/static/imagesV2/stu_selection/selectseat_bg.png" mode="aspectFill"></image>
</view>
<view v-if="datas.info" class="vio_list">
<scroll-view scroll-x class="stime_list scroll_x" v-if="datas.type==2">
<view class="stime_li" :class="{active:index==0}" v-for="(item,index) in datas.timeArr">
<view class="li_tit">
{{item.title}}
<PaddingTopB>
<view v-if="datas.info" class="vio_list">
<scroll-view scroll-x class="stime_list scroll_x" v-if="datas.type ==2">
<view class="stime_li" :class="{active:index==0}" v-for="(item,index) in datas.timeArr">
<view class="li_tit">
{{item.title}}
</view>
<view v-if="index==0" class="li_time">
<text>{{time_h}}</text>
<text>{{time_m}}</text>
<text>{{time_s}}</text>
</view>
<view v-else class="li_time">即将开始</view>
</view>
</scroll-view>
<view v-else class="xzdata_null">
<view class="icon">
<image src="/static/imagesV2/stu_selection/icon-success.png" mode=""></image>
</view>
<view v-if="index==0" class="li_time">
<text>{{time_h}}</text>
<text>{{time_m}}</text>
<text>{{time_s}}</text>
<view>
<view class="d1">
选座已结束
</view>
<view class="d2">
没有选座的同学赶紧选座吧!
</view>
</view>
<view v-else class="li_time">即将开始</view>
</view>
</scroll-view>
<view v-else class="xzdata_null">
<view class="d1">
选座已结束
</view>
<view class="d2">
没有选座的同学赶紧选座吧!
</view>
</view>
<view class="xz_rule">
<image class="xz_rule_top" src="/static/images/selectseat_rules.png" mode="aspectFill"></image>
<view class="xz_rule_tit">
选座规则
</view>
<view class="rule_msg">
<view class="xz_room">
选座教室:{{datas.info.pid}}
<view class="xz_rule">
<view class="tit-icon">
<image src="/static/imagesV2/stu_selection/xuanzuoguize.png" mode="aspectFill"></image>
</view>
<view class="rule_tip">
活动开始前5分钟可以选座,错过时间等选座活动整体结束后再选
<view class="rule_msg">
<view class="xz_room">
选座教室:{{datas.info.pid}}
</view>
<view class="rule_tip">
活动开始前5分钟可以选座,错过时间等选座活动整体结束后再选
</view>
</view>
</view>
</view>
<view class="stu_tit">
<text></text>
<view class="">以下学员可以选座</view>
</view>
<view class="stu_list">
<view class="stu_li" v-for="(item,index) in datas.user">
<view class="stu_name">
<view class="oh1">{{item.name}}</view>
<image v-if="item.sex==2" src="/static/images/tch/icon_female.png" mode="aspectFit"></image>
<image v-else src="/static/images/tch/icon_male.png" mode="aspectFit"></image>
</view>
<view class="stu_time">
{{item.add_time}} 入学
</view>
<view v-if="item.seat_type==1" class="stu_status">
已选
<view class="stu_tit">
<view class="">以下学员可以选座</view>
</view>
<view class="stu_list">
<view class="stu_li" v-for="(item,index) in datas.user">
<view v-if="item.seat_type==1" class="stu_status">
已选
</view>
<view v-else class="stu_status stu_status1">
未选
</view>
<view class="stu_name">
<view class="oh1">{{item.name}}</view>
<image v-if="item.sex==2" src="/static/imagesV2/stu_selection/icon_female.png" mode="aspectFit"></image>
<image v-else src="/static/imagesV2/stu_selection/icon_male.png" mode="aspectFit"></image>
</view>
<view class="stu_time">
{{item.add_time}} 入学
</view>
</view>
<view v-else class="stu_status stu_status1">
未选
<u-empty v-if="datas.user&&datas.user.length==0"
mode="data"
text="暂无数据"
icon="/static/images/tch/img_blank.png"
>
</u-empty>
</view>
<view v-if="datas.user&&datas.user.length>0" class="bz_add" >
<view class="" @click="$service.jump" :data-url="'/pagesStu/stu_seat_list/stu_seat_list?id='+datas.info.id">
去选座
</view>
</view>
<u-empty v-if="datas.user&&datas.user.length==0"
mode="data"
text="暂无数据"
icon="/static/images/tch/img_blank.png"
>
</u-empty>
</view>
</view>
<view v-if="datas.user&&datas.user.length>0" class="bz_add" >
<view class="" @click="$service.jump" :data-url="'/pagesStu/stu_seat_list/stu_seat_list?id='+datas.info.id">
去选座
</view>
</view>
<!-- 阻止滑动 -->
<!-- <view @touchmove.stop.prevent='test'></view> -->
</PaddingTopB>
</view>
</template>
... ... @@ -86,11 +97,18 @@
mapState,
mapMutations
} from 'vuex'
import CustomReturn from "@/components/CustomReturn/index.vue"
import PaddingTopB from "@/components/PaddingTopB/index.vue"
var that
var djs_name
export default {
components: {
CustomReturn,
PaddingTopB
},
data() {
return {
bgColor: 'none',
options:'',
time_list:[
{
... ... @@ -131,6 +149,13 @@
return this.getDate('end');
}
},
onPageScroll(e) {
if(e.scrollTop > 0 ) {
this.bgColor = '#3384fc'
}else {
this.bgColor = 'none'
}
},
onLoad(e) {
that=this
that.options=e||{}
... ... @@ -308,24 +333,12 @@
<style lang="scss" scoped>
.wrap_box{
width: 100%;
// padding: 30rpx;
min-height: 100vh;
// #ifdef H5
min-height: calc(100vh - 44px);
// #endif
background: #F8F8F8;
position: relative;
padding-bottom: 120rpx;
padding-bottom: 120rpx;
}
.tel_index_bg {
.bg-img {
height: 504rpx;
position: absolute;
top: 0;
z-index: 1;
width: 100%;
height: 250rpx;
background: url('/static/images/selectseat_bg.png') repeat fixed center;
}
.vio_list{
... ... @@ -344,7 +357,7 @@
}
.stime_list{
width: 100%;
// padding: 0 30rpx;
margin: 20rpx 0 60rpx 0;
.stime_li{
width: 144rpx;
height: 102rpx;
... ... @@ -389,122 +402,100 @@
}
.xz_rule{
width: 100%;
height: 306rpx;
background: #FFFFFF;
border-radius: 32rpx;
margin-top: 80rpx;
border-radius: 20rpx;
position: relative;
.xz_rule_top{
width: 100%;
height: 154rpx;
margin-top: -40rpx;
position: relative;
z-index: 2;
}
.xz_rule_tit{
width: 100%;
height: 74rpx;
display: flex;
align-items: center;
padding: 0 40rpx;
padding: 60rpx 30rpx 30rpx;
.tit-icon {
position: absolute;
top: 0;
left: 0;
z-index: 10;
font-size: 30rpx;
color: #FFFFFF;
top: 0;
width: 130rpx;
height: 40rpx;
}
.rule_msg{
width: 100%;
padding: 0 30rpx;
.xz_room{
font-size: 30rpx;
color: #545D71;
position: relative;
padding-left: 21rpx;
&:before{
content:'';
position: absolute;
left: 0;
top: 50%;
margin-top: -13rpx;
width: 6rpx;
height: 26rpx;
background: #2D81FF;
border-radius: 3rpx;
}
font-size: 28rpx;
font-family: PingFang SC;
font-weight: 500;
color: #323232;
}
.rule_tip{
padding-top: 30rpx;
font-size: 28rpx;
color: #A9B1C0;
font-size: 22rpx;
font-family: PingFang SC;
font-weight: 400;
color: #979797;
margin-top: 20rpx;
}
}
}
.stu_tit{
width: 100%;
height: 94rpx;
font-size: 28rpx;
color: #545D71;
display: flex;
align-items: center;
text{
width: 16rpx;
height: 16rpx;
background: #FFAC0D;
border-radius: 50%;
margin-right: 8rpx;
font-family: PingFang SC;
font-weight: 500;
color: #323232;
margin: 30rpx 0;
padding-left: 20rpx;
position: relative;
&:before{
content:'';
position: absolute;
left: 0;
top: 0;
bottom: 0;
width: 10rpx;
background: #2D81FF;
border-radius: 6rpx;
}
}
.stu_list{
width: 100%;
// height: 740px;
background: #FFFFFF;
border-radius: 10rpx;
padding: 15rpx 0;
border-radius: 20rpx;
.stu_li{
width: 100%;
padding: 0 30rpx;
height: 80rpx;
padding: 30rpx;
display: flex;
align-items: center;
.stu_name{
font-size: 30rpx;
color: #545D71;
font-size: 28rpx;
font-family: PingFang SC;
font-weight: 400;
color: #323232;
display: flex;
align-items: center;
view{
line-height: 32rpx;
height: 32rpx;
max-width: 250rpx;
}
image {
width: 28rpx;
height: 28rpx;
margin-left: 12rpx;
width: 30rpx;
height: 26rpx;
margin-left: 20rpx;
}
}
.stu_time{
flex: 1;
font-size: 28rpx;
font-family: Arial;
color: #A9B1C0;
padding-left: 20rpx;
font-size: 24rpx;
font-family: PingFang SC;
font-weight: 400;
color: #979797;
text-align: right;
}
.stu_status{
font-size: 26rpx;
color: #2D81FF;
width: 78rpx;
height: 38rpx;
background: rgba(45, 129, 255, .1);
border-radius: 4rpx;
display: flex;
align-items: center;
justify-content: center;
padding: 4rpx 6rpx;
font-size: 20rpx;
font-family: PingFang SC;
font-weight: 500;
background: #F3F4F6;
border: 1px solid #CACACA;
border-radius: 2px;
color: #979797;
margin-right: 20rpx;
&.stu_status1{
color: #AFB6C4;
background: rgba(175, 182, 196, .1);
background: #FFF1F0;
border: 1px solid #FFAFAE;
color: #EC5656;
}
}
}
... ... @@ -513,39 +504,42 @@
width: 100%;
position: fixed;
bottom: 0;
background: #f8f8f8;
background: #FFFFFF;
z-index: 800;
left: 0;
padding: 30rpx;
padding: 15rpx 25rpx;
view{
font-size: 32rpx;
color: #FFFFFF;
width: 100%;
height: 90rpx;
background: #2D81FF;
border-radius: 10rpx;
display: flex;
align-items: center;
justify-content: center;
border-radius: 44rpx;
line-height: 88rpx;
font-size: 34rpx;
font-family: PingFang SC;
font-weight: 500;
text-align: center;
color: #FFFFFF;
}
}
.xzdata_null{
width: 100%;
height: 110rpx;
display: flex;
align-items: center;
// justify-content: center;
flex-direction: column;
position: relative;
// top: -20rpx;
margin-bottom: -40rpx;
margin: 50rpx 0;
.icon {
width: 60rpx;
height: 60rpx;
margin-right: 20rpx;
}
.d1{
font-size: 36rpx;
font-size: 32rpx;
font-family: PingFang SC;
font-weight: 500;
color: #FFFFFF;
}
.d2{
font-size: 26rpx;
font-size: 24rpx;
font-family: PingFang SC;
font-weight: 500;
color: #FFFFFF;
margin-top: 20rpx;
}
}
</style>
... ...