Commit a03ce182 authored by youjie's avatar youjie

no message

parent 46433c39
<style scoped>
.curriculum-n{
justify-content: center;padding: 100rpx 30rpx 50rpx;
}
.row{
display: flex;align-items: center;
}
.curriculum-top-n{
width: 100%;
height: 350rpx;
border-radius: 12px;
background: linear-gradient(to bottom, #4C50E7, #FFFFFF);
padding: 5px;
}
.curriculum-top-nn{
width: 100%;
height: 100%;
background: #FFF;
border-radius: 12px;
position: relative;
}
.curriculum-top-pl{
width: 140rpx;
height: 30px;
font-size: 14px;
color: #FFF;
background: linear-gradient(to bottom, #5559e8, #6d70eb);
border-bottom-right-radius: 12px;
justify-content: center;
}
.curriculum-top-pl-ht{
width: 40px;
height: 13px;
background: #F5F5F5;
margin-left: 5px;
}
.lijigoumai{
width: 130rpx;
height: 50rpx;
border-radius: 26rpx;
justify-content: center;
background: #5559E8;
font-size: 11px;
color: #FFF;
margin-top: 13px;
}
.review{
height: 400rpx;
background: #EBEBEB;
padding: 18px;
}
.reviewcenter{
display: flex;
flex-direction: column;
align-items: center;
margin-top: 100rpx;
}
.lijigoumai2{
width: 130rpx;
height: 50rpx;
border-radius: 26rpx;
justify-content: center;
background: #FFFFFF;
font-size: 11px;
color: #4C50E7;
margin-top: 13px;
}
</style>
<template>
<view>
<view class="row curriculum-n" :style="{ 'margin-top': `${statusBarHeight}px` }">
<view class="curriculum-top-n" >
<view class="curriculum-top-nn">
<view class="row" style="justify-content: space-between;">
<view class="curriculum-top-pl row">当前课程</view>
<view class="row">
<view class="row">
<image style="width: 15px;height: 15px;" src='https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/educationStu/studyindex_nz.png'></image>
<view class="curriculum-top-pl-ht" style="width: 90px;"></view>
</view>
<view class="row" style="margin: 0 10px 0 20px;">
<image style="width: 15px;height: 15px;" src='https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/educationStu/studyindex_hb.png'></image>
<view class="curriculum-top-pl-ht" ></view>
</view>
</view>
</view>
<view class="row" style="justify-content: space-between;padding: 0 11px;margin-top: 15px;">
<view style="margin-left: 17px;">
<view style="font-size: 13px;font-family: PingFang SC;font-weight: bold;color: #111111;">暂无课程</view>
<view style="font-size: 10px;font-family: PingFang SC;font-weight: 400;color: #888888;margin-top: 10px;">购买课程后可回顾</view>
<!-- <view class="lijigoumai row">立即购课</view> -->
</view>
<view>
<image style="width: 234rpx;height: 226rpx;" mode="aspectFit" src='https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/educationStu/studyindex_nan.png'></image>
</view>
</view>
</view>
</view>
</view>
<view class="review">
<view style="font-size: 14px;color: #111111;">课程顾问 <span style="font-size: 10px;color: #999999;">(最近7天课程)</span> </view>
<view class="reviewcenter" >
<view style="font-size: 13px;font-family: PingFang SC;font-weight: bold;color: #111111;">暂无课程</view>
<view style="font-size: 10px;font-family: PingFang SC;font-weight: 400;color: #888888;margin-top: 10px;">购买课程后可回顾</view>
<!-- <view class="lijigoumai2 row">了解课程</view> -->
</view>
</view>
<view style="margin-left: 18px;font-size: 14px;font-family: PingFang SC;font-weight: 400;color: #666666;margin-top: 30px;">
加油哦!
</view>
<view style="margin-left: 18px;font-size: 23px;font-family: PingFang SC;font-weight: 400;color: #111111;">
考试
</view>
<view class="review reviewcenter" style="height: 300rpx;margin-top: 0;align-items: center;justify-content: center;">
<view style="font-size: 13px;
font-family: PingFang SC;
font-weight: bold;
color: #111111;
line-height: 35px;">暂无记录</view>
<view style="font-size: 10px;margin-top: 10px;
font-family: PingFang SC;
font-weight: 500;
color: #999999;">参与考试后可查看</view>
</view>
</view>
</template>
<script>
import {ref,reactive,toRefs,toRef,getCurrentInstance,watch,computed,onMounted,provide,} from "vue";
export default {
setup(props) {
let data = reactive({
statusBarHeight: 0,
})
let methods = {
}
onMounted(()=>{
data.statusBarHeight = uni.getSystemInfoSync().statusBarHeight;
})
let that = methods;
return {
...toRefs(data),
...methods,
};
}
}
</script>
<template>
<swiper class="image-container" previous-margin="45rpx" next-margin="45rpx" :indicator-dots="false" :current="currentIndex" indicator-active-color='#4C50E7' @change="swiperChange">
<swiper-item :class="currentIndex == index ? 'swiper-item' : 'swiper-item-side'" v-for="(item, index) in imgList" :key="item[urlKey]">
<!-- <image @click="clickImg(item)" :class="currentIndex == index ? 'item-img' : 'item-img-side'" :src="item[urlKey]" lazy-load :style="dontFirstAnimation ? 'animation: none;' : ''" mode="aspectFill"></image> -->
<view class="box" :class="currentIndex == index ? 'item-img' : 'item-img-side'" :style="{background:item.B2BBackground ? getOpacityColor(item.B2BBackground,0.3):'#FFF',}">
<view class="box-state">
<span v-if="item.ClassStatus==1">未开班</span>
<span v-if="item.ClassStatus==2">学习中</span>
<span v-if="item.ClassStatus==3">已结课</span>
</view>
<view class="box-center">
<view v-if="item.B2BIcon" class="box-center-l" :style="{background:item.B2BBackground ? getOpacityColor(item.B2BBackground,0.7):'#FFF',}">
<image mode='widthFix' :src="item.B2BIcon"></image>
</view>
<view class="box-center-r">
<view>
<view style="font-size: 15px;font-weight: bold;">{{item.CourseName}}</view>
<view style="font-size: 12px;font-weight: 500;margin-top: 5px;">{{item.ClassName}}</view>
<view class="row" style="font-size: 12px;margin-top: 5px;">
<view class="row">总计<span style="color: #4C50E7;margin:0 3px;font-weight: bold;">{{item.TotalHours}}</span>课时</view>
<view style="width: 1px;height: 15px;background-color:#999999;margin: 0 10px;"></view>
<view class="row" style="display: none;">剩余<span style="color: #4C50E7;margin:0 3px;font-weight: bold;">{{item.SurplusHours}}</span>课时</view>
</view>
</view>
<view style="display: none;">
<view class="row" style="justify-content: space-between;font-size: 11px;margin-bottom:10rpx;">
<span>已学课程</span>
<span>{{item.CompleteHours}}/{{item.TotalHours}}</span>
</view>
<van-progress :percentage="(item.CompleteHours/item.TotalHours)*100" :showPivot='false'/>
</view>
</view>
</view>
</view>
</swiper-item>
</swiper>
</template>
<script>
export default {
props: {
imgList: {
type: Array,
default() {
return []
}
},
urlKey: {
type: String,
default() {
return ''
}
},
},
data() {
return {
currentIndex: 0,
dontFirstAnimation: true
}
},
methods: {
swiperChange(e) {
this.dontFirstAnimation = false
this.currentIndex = e.detail.current;
this.$emit('selected', this.currentIndex)
},
clickImg(item) {
this.$emit('selected', item, this.currentIndex)
},
getOpacityColor(thisColor, thisOpacity){
var theColor = thisColor.toLowerCase();
//十六进制颜色值的正则表达式
var r = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;
// 如果是16进制颜色
if (theColor && r.test(theColor)) {
if (theColor.length === 4) {
var sColorNew = "#";
for (var i = 1; i < 4; i += 1) {
sColorNew += theColor.slice(i, i + 1).concat(theColor.slice(i, i + 1));
}
theColor = sColorNew;
}
//处理六位的颜色值
var sColorChange = [];
for (var i = 1; i < 7; i += 2) {
sColorChange.push(parseInt("0x" + theColor.slice(i, i + 2)));
}
return "rgba(" + sColorChange.join(",") + "," + thisOpacity + ")";
// return "rgba(" + sColorChange.join(",") + ", 0.7)";
}
return theColor;
}
},
mounted() {
let i= this.imgList.findIndex(e=>e.ClassStatus==2)
if(i>=0){
this.currentIndex=i
}else{
let i1= this.imgList.findIndex(e=>e.ClassStatus==1)
if(i1>=0){
this.currentIndex=i1
}else{
let i2= this.imgList.findIndex(e=>e.ClassStatus==3)
if(i2>=0){
this.currentIndex=i2
}
}
}
}
}
</script>
<style scoped>
.image-container {
width: 750rpx;
height: 350rpx;
}
.item-img {
width: 630rpx;
height: 300rpx;
border-radius: 14rpx;
animation: to-big .3s;
}
.swiper-item {
width: 630rpx;
height: 300rpx;
display: flex;
justify-content: center;
align-items: center;
}
.item-img-side {
width: 630rpx;
height: 260rpx;
border-radius: 14rpx;
animation: to-mini .3s;
}
.swiper-item-side {
width: 630rpx;
height: 260rpx;
display: flex;
justify-content: center;
align-items: center;
}
.box{
position: relative;
display: flex;
align-items: center;
justify-content: center;
/* padding: 0 20rpx; */
}
.box-center{
display: flex;
align-items: center;
justify-content: space-between;
width: calc(100% - 36rpx);
}
.box-center-l{
width: 162rpx;
height: 208rpx;
border-radius: 6px;
position: relative;
}
.box-center-l image{
position: absolute;
bottom: 10rpx;
right: 10rpx;
max-width: 100rpx;
height: auto;
}
.box-center-r{
flex:1;
margin-left: 12px;
min-height: 208rpx;
display: flex;
flex-direction: column;
justify-content: space-between;
}
.row{
display: flex;align-items: center;
}
.box-state{
width: 38rpx;
height: 88rpx;
position: absolute;
right:17px ;
top: 0;
background: #5DE3A6;
font-size: 20rpx;
color: #333333;
text-align: center;
box-sizing: border-box;
padding: 5rpx 8rpx;
}
@keyframes to-mini
{
from {
height: 300rpx;
}
to {
height: 260rpx;
}
}
@keyframes to-big
{
from {
height: 260rpx;
}
to {
height: 300rpx;
}
}
</style>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment