mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/learning-system-portal.git
synced 2025-12-09 02:46:44 +08:00
1461 lines
44 KiB
Vue
1461 lines
44 KiB
Vue
<template>
|
||
<div id="couser-list-content" class="couser-list-content">
|
||
<div class="course-banner">
|
||
<portal-header current="course" @emitInput="emitInput"></portal-header>
|
||
</div>
|
||
|
||
<!-- <div class="course-input">
|
||
<el-input class="course-value" v-model.trim="course.keyword" maxlength="20" @input="inputOn($event)" clearable placeholder="请输入关键词搜索"><el-button slot="append" icon="el-icon-search" @click="searchData()" class="course-btn"></el-button></el-input>
|
||
</div> -->
|
||
<div class="xcontent portal-content">
|
||
<div class="xrow" style="display: flex;justify-content: space-between;">
|
||
<div style="flex: 1;margin-right:0px" class="xcol content-div">
|
||
<el-row class="search-div" style="margin-right:36px">
|
||
<div class="searchbar" v-if="searchTags.length > 0">
|
||
<div style="line-height: 30px;">
|
||
<span class="item-title"> 搜索条件</span>
|
||
<el-tag closable v-for="(tag, tagIdx) in searchTags" :key="tagIdx" @close="tagsClose(tag,tagIdx)">{{ tag.name }}</el-tag>
|
||
</div>
|
||
</div>
|
||
<el-row class="search-item">
|
||
<el-col :span="24">
|
||
<div style="margin-top:10px; display: flex;">
|
||
<div style="line-height: 25px;padding-right: 10px;">
|
||
<span class="item-title" style="padding-right: 5px;">授课方式</span>
|
||
<span class="item-line"></span>
|
||
</div>
|
||
<!-- // 10微课,21在线课(直播);20:在线课( 录播);30:面授课;40:学习项目,90:混合式, -->
|
||
<div>
|
||
<el-radio-group v-model="category" size="mini" @change="searchData">
|
||
<el-radio-button :label="null">全部</el-radio-button>
|
||
<el-radio-button :label="20">录播课</el-radio-button>
|
||
<el-radio-button :label="30">线下课</el-radio-button>
|
||
<el-radio-button :label="40">学习项目</el-radio-button>
|
||
</el-radio-group>
|
||
</div>
|
||
</div>
|
||
</el-col>
|
||
</el-row>
|
||
<div :class="queryExpand ? 'search-div-expand' : 'search-div-collapse'">
|
||
<el-row class="search-item">
|
||
<el-col :span="24">
|
||
<div style="margin-top:10px;display: flex;">
|
||
<div style="line-height: 25px;padding-right: 10px;">
|
||
<span class="item-title" style="padding-right: 5px;">内容分类</span>
|
||
<span class="item-line"></span>
|
||
</div>
|
||
<el-radio-group v-model="types.sysTypes" size="mini" @change="changeType">
|
||
<el-radio-button :label="null">全部</el-radio-button>
|
||
<el-radio-button v-for="item in optionsList" :key="item.id" :label="item.id">{{item.name}}</el-radio-button>
|
||
</el-radio-group>
|
||
<span @click="jumUX()" class="Uxtext" style=""> U选小课堂
|
||
<span class="uxicon">
|
||
<svg-icon icon-class="hot" style="font-size:22px"></svg-icon>
|
||
</span>
|
||
</span>
|
||
</div>
|
||
<div class="search-item-sub" v-if="types.oneSubList.length != 0">
|
||
<el-radio-group v-model="types.subOne" size="mini" @change="changeTypeSub">
|
||
<el-radio-button label="0">全部</el-radio-button>
|
||
<el-radio-button v-for="item in types.oneSubList" :key="item.id" :label="item.id">{{item.name}}</el-radio-button>
|
||
</el-radio-group>
|
||
</div>
|
||
<div class="search-item-sub" v-if="types.towSubList.length != 0">
|
||
<el-radio-group v-model="types.subTow" size="mini" @change="searchData">
|
||
<el-radio-button label="0">全部</el-radio-button>
|
||
<el-radio-button v-for="item in types.towSubList" :key="item.id" :label="item.id">{{item.name}}</el-radio-button>
|
||
</el-radio-group>
|
||
</div>
|
||
</el-col>
|
||
</el-row>
|
||
</div>
|
||
</el-row>
|
||
<el-row class="order-div" v-if="listType == 1">
|
||
<span class="quyer-tag">
|
||
<el-button type="text" class="order-class" @click="orderChange('studys')" :class="{ actice: course.orderField == 'studys' }">最热</el-button>
|
||
<el-button type="text" class="order-class" @click="orderChange('publishTime')" :class="{ actice: course.orderField == 'publishTime' }">最新</el-button>
|
||
</span>
|
||
</el-row>
|
||
<div class="xrow data-content" v-if="listType == 1">
|
||
<div class="xrow-course course-index" v-for="(cinfo,cidx) in courseList" :key="cinfo.id" v-if="(courseList.length<=course.pageSize) || (cidx<parseInt(courseList.length/columns)*columns)">
|
||
<div class="course-card">
|
||
<a :href="toCourseDetail(cinfo)">
|
||
<div class="course-image-box" style="height:196px">
|
||
<course-image height="196px" :course="cinfo"></course-image>
|
||
<!-- <span v-if="cinfo.type < 21" class="course-type-title course-type">录播课</span>
|
||
<span v-if="cinfo.type==30" class="course-type-title course-type">线下课</span>
|
||
<span v-if="cinfo.type==40" class="course-type-title course-type">学习项目</span> -->
|
||
</div>
|
||
<div :title="cinfo.title" class="course-title two-line-ellipsis" v-html="cinfo.name">
|
||
</div>
|
||
<div class="course-author">
|
||
<div class="course-author-left">
|
||
<span v-if="cinfo.teacher">{{cinfo.teacher=='BOE教师'? '':cinfo.teacher}}</span>
|
||
<span class="study-num">{{cinfo.studies}}人学习</span>
|
||
</div>
|
||
<div style="display:flex">
|
||
<div class="cor-praises" v-if="cinfo.source == 2"><interactBar :type="1" :data="cinfo" :comments="false" :praises="false" :shares="false" :views="false"></interactBar> </div>
|
||
<div>
|
||
<div v-if="cinfo.score">
|
||
<span class="course-score-value">{{toScore(cinfo.score)}}分</span>
|
||
</div>
|
||
<div v-else class="course-score-no">未评分</div></div>
|
||
</div>
|
||
</div>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<!-- 分页 -->
|
||
<div class="pagination-div">
|
||
<span class="pag-text" @click="loadMore()" v-if="moreState == 1 && courseList.length>=course.pageSize">加载更多</span>
|
||
<span class="pag-text-msg" v-else-if="moreState == 2">数据加载中</span>
|
||
<span class="pag-text-msg" v-else-if="moreState == 3">没有更多数据了</span>
|
||
</div>
|
||
</div>
|
||
<div style="width: 410px;">
|
||
<div>
|
||
<div id="fixd-box">
|
||
<div v-if="identity == 2 || identity == 3 || identity == 5">
|
||
<el-button style="width: 100%;margin-bottom:15px;height: 37px;border-radius: 0;" type="primary" @click="toNeedCourse">做课程</el-button>
|
||
</div>
|
||
<div class="ranking-card portal-right-box list-bg">
|
||
<p class="portal-title-one" style="padding-bottom:12px">好评榜</p>
|
||
<ul>
|
||
<li class="list-info" v-for="(item, index) in scorelist" :key="index" style="cursor: pointer;margin-top:24px;line-height: 30px;display: flex;">
|
||
<span class="portal-right-text blue-one" v-if="index==0">
|
||
<img src="/images/listblue01.png" alt="">
|
||
</span>
|
||
<span class="portal-right-text blue-tow" v-if="index==1">
|
||
<img src="/images/listblue02.png" alt="">
|
||
</span>
|
||
<span class="portal-right-text blue-three" v-if="index==2">
|
||
<img src="/images/listblue03.png" alt="">
|
||
</span>
|
||
<span class="portal-right-text" v-if="index==3">
|
||
<img src="/images/list04.png" alt="">
|
||
</span>
|
||
<span class="portal-right-text" v-if="index==4">
|
||
<img src="/images/list05.png" alt="">
|
||
</span>
|
||
<span class="portal-title-desc title-line-ellipsis" v-if="item.images == ''" style="font-size: 14px;">{{ item.name }}</span>
|
||
<span class="portal-title-desc" v-else style="font-size: 14px;">
|
||
<img style="width:96px;height:52px" :src="fileBaseUrl + item.images" alt=""/>
|
||
<span class="portal-images-title two-line-ellipsis">{{ item.name }}</span>
|
||
</span>
|
||
|
||
<div class="list-active">
|
||
<div class="list-content">
|
||
<div class="list-img">
|
||
<course-image :course="item"></course-image>
|
||
<span v-if="item.type < 21" class="course-type">录播</span>
|
||
<span v-if="item.type==30" class="course-type">线下课</span>
|
||
<span v-if="item.type==40" class="course-type">学习项目</span>
|
||
</div>
|
||
<div class="list-text">
|
||
<h6 class="two-line-ellipsis">{{item.name}}</h6>
|
||
<span>2022年2月18日</span>
|
||
</div>
|
||
</div>
|
||
<div class="list-bottom">
|
||
<interactBar :type="1" :data="item" :couseViews="true" :shares="false" :views="false"></interactBar>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</div>
|
||
<div style="margin-top:26px" class="ranking-card portal-right-box list-bg1">
|
||
<p class="portal-title-one" style="padding-bottom:12px">人气榜</p>
|
||
<ul>
|
||
<li class="list-info" v-for="(item, index) in ankingList" :key="index" style="cursor: pointer;margin-top:24px;line-height: 30px;display: flex;">
|
||
<span class="portal-right-text orange-one" v-if="index==0">
|
||
<img src="/images/list-01.png" alt="">
|
||
</span>
|
||
<span class="portal-right-text orange-tow" v-if="index==1">
|
||
<img src="/images/list02.png" alt="">
|
||
</span>
|
||
<span class="portal-right-text orange-three" v-if="index==2">
|
||
<img src="/images/list03.png" alt="">
|
||
</span>
|
||
<span class="portal-right-text" v-if="index==3">
|
||
<img src="/images/list04.png" alt="">
|
||
</span>
|
||
<span class="portal-right-text" v-if="index==4">
|
||
<img src="/images/list05.png" alt="">
|
||
</span>
|
||
<span class="portal-title-desc title-line-ellipsis" v-if="item.images == ''" style="font-size: 14px;">{{ item.name }}</span>
|
||
<span class="portal-title-desc" v-else style="font-size: 14px;">
|
||
<img style="width:96px;height:52px" :src="fileBaseUrl + item.images" alt=""/>
|
||
<span class="portal-images-title two-line-ellipsis">{{ item.name }}</span>
|
||
</span>
|
||
|
||
<div class="list-active">
|
||
<div class="list-content">
|
||
<div class="list-img">
|
||
<course-image :course="item"></course-image>
|
||
<span v-if="item.type < 21" class="course-type">录播</span>
|
||
<span v-if="item.type==30" class="course-type">线下课</span>
|
||
<span v-if="item.type==40" class="course-type">学习项目</span>
|
||
</div>
|
||
<div class="list-text">
|
||
<h6 class="two-line-ellipsis">{{item.name}}</h6>
|
||
<span>2022年2月18日</span>
|
||
</div>
|
||
</div>
|
||
<div class="list-bottom">
|
||
<interactBar :type="1" :data="item" :couseViews="true" :shares="false" :views="false"></interactBar>
|
||
</div>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div style="margin-top:26px" class="ranking-card portal-right-box list-bg2">
|
||
<p class="portal-title-one" style="padding-bottom:12px">热度榜</p>
|
||
<ul>
|
||
<li class="list-info" v-for="(item, index) in hotList" :key="index" style="cursor: pointer;margin-top:24px;line-height: 30px;display: flex;">
|
||
<span class="portal-right-text orange-one" v-if="index==0">
|
||
<img src="/images/listred01 .png" alt="">
|
||
</span>
|
||
<span class="portal-right-text orange-tow" v-if="index==1">
|
||
<img src="/images/listred02.png" alt="">
|
||
</span>
|
||
<span class="portal-right-text orange-three" v-if="index==2">
|
||
<img src="/images/listred03.png" alt="">
|
||
</span>
|
||
<span class="portal-right-text" v-if="index==3">
|
||
<img src="/images/list04.png" alt="">
|
||
</span>
|
||
<span class="portal-right-text" v-if="index==4">
|
||
<img src="/images/list05.png" alt="">
|
||
</span>
|
||
<span class="portal-title-desc title-line-ellipsis" v-if="item.images == ''" style="font-size: 14px;">{{ item.courseName }}</span>
|
||
<span class="portal-title-desc" v-else style="font-size: 14px;">
|
||
<img style="width:96px;height:52px" :src="fileBaseUrl + item.images" alt=""/>
|
||
<span class="portal-images-title two-line-ellipsis">{{ item.courseName }}</span>
|
||
</span>
|
||
<div class="list-active">
|
||
<div class="list-content">
|
||
<div class="list-img">
|
||
<course-image :course="item"></course-image>
|
||
<span v-if="item.type < 21" class="course-type">录播</span>
|
||
<span v-if="item.type==30" class="course-type">线下课</span>
|
||
<span v-if="item.type==40" class="course-type">学习项目</span>
|
||
</div>
|
||
<div class="list-text">
|
||
<h6 class="two-line-ellipsis">{{item.courseName}}</h6>
|
||
<span>2022年2月18日</span>
|
||
</div>
|
||
</div>
|
||
<div class="list-bottom">
|
||
<interactBar :type="1" :data="item" :couseViews="true" :shares="false" :views="false"></interactBar>
|
||
</div>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<portal-footer></portal-footer>
|
||
<portalFloatTools ref="floatTools"></portalFloatTools>
|
||
</div>
|
||
</template>
|
||
<script>
|
||
import { mapGetters, mapActions } from "vuex";
|
||
import portalHeader from "@/components/PortalHeader.vue";
|
||
import portalFooter from "@/components/PortalFooter.vue";
|
||
import portalFloatTools from "@/components/PortalFloatTools.vue";
|
||
import authorInfo from "@/components/Portal/authorInfo.vue";
|
||
import courseItem from "@/components/Portal/course/courseItem.vue";
|
||
import apiCoursePortal from "@/api/modules/coursePortal.js";
|
||
import courseForm from "@/components/Course/courseForm.vue";
|
||
import apiType from "@/api/modules/type.js";
|
||
import apiCourse from "@/api/modules/coursePortal.js";
|
||
import apiOldCourse from "@/api/boe/course.js";
|
||
import apiTeacher from "@/api/modules/teacher.js";
|
||
import apiUser from "@/api/system/user.js";
|
||
import scene from "@/api/modules/scene.js";
|
||
import apiUserGroup from "@/api/modules/usergroup.js";
|
||
import interactBar from "@/components/Portal/interactBar.vue";
|
||
import courseImage from "@/components/Course/courseImage.vue";
|
||
import { courseType, getType, toScore,formatDate } from "@/utils/tools.js";
|
||
import { deepClone, param } from "../../../utils";
|
||
import apiSearchterm from "@/api/modules/searchterm.js";
|
||
export default {
|
||
name: "index",
|
||
components: {
|
||
portalHeader,
|
||
portalFooter,
|
||
portalFloatTools,
|
||
courseItem,
|
||
courseForm,
|
||
authorInfo,
|
||
courseImage,
|
||
interactBar
|
||
},
|
||
computed: {
|
||
...mapGetters(["resOwnerMap", "sysTypeMap", "userInfo", "identity"])
|
||
},
|
||
data() {
|
||
return {
|
||
formatDate,
|
||
audiences:[],//当前用户的受众
|
||
couretitle: "",
|
||
toScore,
|
||
noPageList: true, //判断接口是否还有数据
|
||
noDataList: true, //判断接口是否还有数据
|
||
moreState: 1, // 1 加载更多 2 加载中 3无数据
|
||
columns: 3, //列的数量
|
||
fileBaseUrl: process.env.VUE_APP_FILE_BASE_URL,
|
||
// 查询信息
|
||
types: {
|
||
sysTypesSub: "",
|
||
subOne: "",
|
||
subTow: "",
|
||
sysTypes: null,
|
||
oneSubList: [],
|
||
towSubList: []
|
||
},
|
||
course: {
|
||
orderField: "studys",
|
||
topOrder: true,
|
||
orderAsc: false,
|
||
pageIndex: 1, // 第几页
|
||
pageSize: 9 //每页多少条
|
||
},
|
||
optionsList: [], //分类数据
|
||
sceneList: [], //场景
|
||
keyword: "",
|
||
anking: "",
|
||
isFind: false,
|
||
searchbar: {
|
||
top: false
|
||
},
|
||
ankingList: [],
|
||
scorelist: [],
|
||
searchTags: [],
|
||
queryExpand: true, // true更多,false收起
|
||
category: null,
|
||
categorySub: 0,
|
||
type1: 0,
|
||
type2: [],
|
||
type3: 0,
|
||
type4: 0,
|
||
status: 1,
|
||
pager: {
|
||
total: 40
|
||
},
|
||
data: [{}, {}, {}, {}],
|
||
order: 1,
|
||
listType: 1,
|
||
courseList: [],
|
||
searchRecords: [],
|
||
hotList: [],
|
||
totalPages: 1
|
||
};
|
||
},
|
||
mounted() {
|
||
let screenWidth = window.screen.availWidth;
|
||
if (screenWidth < 1280) {
|
||
this.course.pageSize = 9;
|
||
this.columns = 3;
|
||
} else if (screenWidth < 1600) {
|
||
this.course.pageSize = 12;
|
||
this.columns = 3;
|
||
} else if (screenWidth >= 1600) {
|
||
this.course.pageSize = 15;
|
||
this.columns = 3;
|
||
}
|
||
|
||
let el_top = document.querySelector("#searchbar");
|
||
let el_search = document.querySelector("#searchbar");
|
||
let height = 200;
|
||
let flag = true;
|
||
let $this = this;
|
||
this.getAnkingData();
|
||
window.addEventListener("scroll",this.handleScroll);
|
||
if (this.$route.query !== {}) {
|
||
this.course.keyword = this.$route.query.keyword;
|
||
}
|
||
this.getSceneData();
|
||
this.getTypeData();
|
||
if (this.course.keyword != undefined) {
|
||
this.totalPages = 4;
|
||
}
|
||
|
||
this.loadSysTypes();
|
||
this.getScoreList();
|
||
this.getHotList();
|
||
//查询排行榜,页面打开只查询一次
|
||
let localKey="user_"+this.userInfo.sysId+"_gids";
|
||
if(this.audiences.length==0){
|
||
//let hasIds;
|
||
let hasIds=sessionStorage.getItem(localKey);
|
||
if(hasIds && hasIds.length>0){
|
||
this.audiences=hasIds.split(",");
|
||
this.search();
|
||
}else{
|
||
Promise.all([apiOldCourse.audience(this.userInfo.sysId),apiUserGroup.userGroupIds()]).then(rs=>{
|
||
//console.log(rs,'rs');
|
||
let aids=[];
|
||
if(rs[0].status==200){
|
||
aids.push(rs[0].result);
|
||
}
|
||
if(rs[1].status==200){
|
||
aids.push(rs[1].result);
|
||
}
|
||
this.audiences=aids;
|
||
sessionStorage.setItem(localKey,this.audiences);
|
||
this.search();
|
||
})
|
||
}
|
||
}
|
||
|
||
this.searchterm();
|
||
},
|
||
beforeDestroy() {
|
||
window.removeEventListener("scroll", this.handleScroll);
|
||
},
|
||
methods: {
|
||
jumUX() {
|
||
window.open("https://m.qingxuetang.com/x/?appId=qxtcorp306130", "_blank");
|
||
},
|
||
emitInput(val) {
|
||
this.course.keyword = val;
|
||
this.searchData();
|
||
},
|
||
handleScroll() {
|
||
let innerHeight = document.querySelector("#couser-list-content")
|
||
.clientHeight;
|
||
let outerHeight = document.documentElement.clientHeight;
|
||
let scrollTop = document.documentElement.scrollTop;
|
||
if (outerHeight + scrollTop + 350 >= innerHeight) {
|
||
if (this.moreState == 1 && this.course.pageIndex < 4) {
|
||
this.loadMore();
|
||
}
|
||
}
|
||
if (scrollTop > 630) {
|
||
document.querySelector("#fixd-box").style.cssText =
|
||
"position: fixed;top: -550px;width:242.5px";
|
||
} else {
|
||
document.querySelector("#fixd-box").style.cssText = "position: static";
|
||
}
|
||
},
|
||
toNeedCourse() {
|
||
// 需要先切换标签
|
||
//this.$store.dispatch('SetCurIdentity',2);
|
||
//this.$router.push('/need/course?open=new');
|
||
this.$refs.floatTools.toNeedCourse();
|
||
},
|
||
searchData() {
|
||
this.course.pageIndex = 1;
|
||
this.noPageList = true; //判断接口是否还有数据
|
||
this.noDataList = true; //判断接口是否还有数据
|
||
this.courseList = [];
|
||
this.totalPages = 4;
|
||
this.search();
|
||
},
|
||
inputOn() {
|
||
this.$forceUpdate();
|
||
},
|
||
...mapActions({
|
||
getResOwnerTree: "resOwner/getResOwnerTree",
|
||
loadResOwners: "resOwner/loadResOwners",
|
||
getSysTypeTree: "sysType/getSysTypeTree",
|
||
loadSysTypes: "sysType/loadSysTypes"
|
||
}),
|
||
sysTypeName(code) {
|
||
if (code == "") {
|
||
return "";
|
||
}
|
||
return this.sysTypeMap.get(code);
|
||
},
|
||
useHotword(item) {
|
||
this.$set(this.course, "keyword", item.keyword);
|
||
this.searchData();
|
||
},
|
||
searchterm() {
|
||
apiSearchterm.list(5, 1).then(res => {
|
||
if (res.status == 200) {
|
||
this.searchRecords = res.result;
|
||
}
|
||
});
|
||
},
|
||
toCourseDetail(item) {
|
||
if (item.source == 1) {
|
||
return `${this.webBaseUrl}/course/boeframe?id=${item.id}&type=${item.type}`;
|
||
//此处使用window.open有问题
|
||
//window.open(`${this.webBaseUrl}/course/boeframe?id=${item.id}&type=${item.type}`);
|
||
} else {
|
||
if (item.type == 10) {
|
||
return this.webBaseUrl + "/course/micro?id=" + item.id;
|
||
} else if (item.type == 20) {
|
||
return this.webBaseUrl + "/course/detail?id=" + item.id;
|
||
}
|
||
}
|
||
|
||
return "";
|
||
},
|
||
orderChange(id) {
|
||
this.course.orderField = id;
|
||
this.course.pageIndex = 1;
|
||
this.noPageList = true; //判断接口是否还有数据
|
||
this.noDataList = true; //判断接口是否还有数据
|
||
this.courseList = [];
|
||
this.totalPages = 1;
|
||
this.search();
|
||
},
|
||
tagsClose(tag, index) {
|
||
for (let i in this.course) {
|
||
if (tag.id === this.course[i]) {
|
||
this.course[i] = "";
|
||
if (i === "sysType1") {
|
||
this.types.sysTypes = "";
|
||
}
|
||
if (i === "sysType2") {
|
||
this.types.subOne = "";
|
||
}
|
||
if (i === "sysType3") {
|
||
this.types.subTow = "";
|
||
}
|
||
if (i === "type") {
|
||
this.category = "";
|
||
this.categorySub = "";
|
||
}
|
||
|
||
|
||
this.searchTags.splice(index, 1);
|
||
if(i === 'type') {
|
||
this.category = null;
|
||
this.categorySub = null;
|
||
}
|
||
if (i === "sysType1") {
|
||
this.types.sysTypes = null;
|
||
}
|
||
if (i === "sysType2") {
|
||
this.types.subOne = null;
|
||
}
|
||
if (i === "sysType3") {
|
||
this.types.subTow = null;
|
||
}
|
||
|
||
this.searchData();
|
||
}
|
||
}
|
||
},
|
||
|
||
// 分类
|
||
changeType(num) {
|
||
this.types.oneSubList = [];
|
||
this.types.subOne = "0";
|
||
this.types.towSubList = [];
|
||
let list = {};
|
||
if (num !== 0) {
|
||
list = this.optionsList.find(item => {
|
||
return item.id === num;
|
||
});
|
||
}
|
||
if (list && list.children) {
|
||
this.types.oneSubList = list.children;
|
||
}
|
||
this.searchData();
|
||
},
|
||
// 子级分类
|
||
changeTypeSub(num) {
|
||
this.types.subTow = "0";
|
||
let list = {};
|
||
if (num !== 0) {
|
||
apiType.list(1, num).then(res => {
|
||
if (res.status === 200) {
|
||
this.types.towSubList = res.result;
|
||
}
|
||
});
|
||
}
|
||
this.searchData();
|
||
},
|
||
//获取场景,保留
|
||
async getSceneData() {
|
||
try {
|
||
const { result, status } = await scene.list(1);
|
||
if (status === 200) {
|
||
this.sceneList = result;
|
||
}
|
||
} catch (error) {
|
||
console.log(error);
|
||
}
|
||
},
|
||
//获取分类,此处获取提内容分类
|
||
async getTypeData() {
|
||
try {
|
||
const { result, status } = await apiType.tree(1);
|
||
if (status === 200) {
|
||
this.optionsList = result;
|
||
}
|
||
} catch (error) {
|
||
console.log(error);
|
||
}
|
||
},
|
||
loadMore() {
|
||
this.course.pageIndex += 1;
|
||
this.search();
|
||
},
|
||
// 高亮搜索词
|
||
brightenKeyword(val, keyword) {
|
||
const Reg = new RegExp(keyword, 'i');
|
||
let res = '';
|
||
if (val) {
|
||
res = val.replace(Reg, `<span style="color: #3e7fff;">${keyword}</span>`);
|
||
return res;
|
||
}
|
||
},
|
||
async search() {
|
||
let that = this;
|
||
if (this.course.keyword) {
|
||
apiSearchterm.save({ keyword: this.course.keyword, type: 1 });
|
||
}
|
||
|
||
if(this.audiences.length>0){
|
||
this.course.audiences=this.audiences.join(",");
|
||
}
|
||
|
||
this.isFind = true;
|
||
this.course.type = this.category;
|
||
if (this.types.sysTypes == 0 || this.types.sysTypes == null) {
|
||
this.course.sysType1 = "";
|
||
this.course.sysType2 = "";
|
||
this.course.sysType3 = "";
|
||
} else {
|
||
this.course.sysType1 = this.types.sysTypes;
|
||
}
|
||
this.course.sysType2 = this.types.subOne;
|
||
this.course.sysType3 = this.types.subTow;
|
||
if (this.course.sysType2 == 0) {
|
||
this.course.sysType2 = "";
|
||
}
|
||
if (this.course.sysType3 == 0) {
|
||
this.course.sysType3 = "";
|
||
}
|
||
this.course.device = 1;
|
||
this.getTags();
|
||
// if(this.course.pageIndex == 1) {
|
||
// this.courseList = [];
|
||
// }
|
||
|
||
let isTopList = [];
|
||
// 隐藏loadMore
|
||
this.moreState = 2;
|
||
await apiCoursePortal
|
||
.courseSearch(this.course)
|
||
.then(res => {
|
||
if (res.status == 200 && res.result.list.length > 0) {
|
||
this.totalPages = res.result.totalPages;
|
||
res.result.list.forEach(item => {
|
||
//教师转化
|
||
if(item.teacher){
|
||
let dotIdx=item.teacher.indexOf(',');
|
||
if(dotIdx>0){
|
||
item.teacher=item.teacher.substring(0,dotIdx);
|
||
}
|
||
}
|
||
|
||
//转化标红显示
|
||
item.title=item.name;
|
||
if(that.course.keyword){
|
||
item.name=that.brightenKeyword(item.name,that.course.keyword);
|
||
}else{
|
||
item.name=item.name;
|
||
}
|
||
|
||
});
|
||
|
||
this.courseList.push(...res.result.list);
|
||
this.moreState = 1;
|
||
} else {
|
||
this.moreState = 3;
|
||
}
|
||
})
|
||
.catch(err => {
|
||
this.moreState = 3;
|
||
});
|
||
|
||
},
|
||
getTags() {
|
||
this.searchTags = [];
|
||
let courseData = deepClone(this.course);
|
||
for (let i in courseData) {
|
||
if (
|
||
courseData[i] !== "" &&
|
||
i !== "pageIndex" &&
|
||
i !== "pageSize" &&
|
||
i !== "orderField" &&
|
||
i !== "orderAsc" &&
|
||
i !== "topOrder" &&
|
||
i !== "device" &&
|
||
i !== "audiences" &&
|
||
courseData[i] !== null &&
|
||
courseData[i] !== undefined
|
||
) {
|
||
let id = courseData[i];
|
||
if (i == "type" && courseData[i] !== 0) {
|
||
courseData[i] = courseType(courseData[i]);
|
||
}
|
||
if (i == "sysType1" || i == "sysType2" || i == "sysType3") {
|
||
if (courseData[i] !== "0") {
|
||
courseData[i] = this.sysTypeName(courseData[i]);
|
||
}
|
||
}
|
||
if (i == "type" && courseData[i] === 0) {
|
||
courseData[i] = "在线课";
|
||
}
|
||
if (courseData[i] !== "0") {
|
||
this.searchTags.push({
|
||
id: id,
|
||
name: courseData[i]
|
||
});
|
||
}
|
||
}
|
||
}
|
||
},
|
||
// goTarget(href) {
|
||
// window.open(this.webBaseUrl+href, "_blank");
|
||
// },
|
||
showInApply() {
|
||
this.inapply.show = true;
|
||
},
|
||
findOrg() {
|
||
//
|
||
},
|
||
pushEnter(type) {
|
||
this.type1.push(type);
|
||
},
|
||
deleteOut(type) {
|
||
this.type1 = this.type.filter(item => item != type);
|
||
},
|
||
chooseShow(type) {
|
||
return this.type1.some(item => item == type);
|
||
},
|
||
getAnkingData() {
|
||
apiCourse.ranking().then(res => {
|
||
if (res.status == 200) {
|
||
this.ankingList = res.result;
|
||
}
|
||
});
|
||
},
|
||
getScoreList() {
|
||
apiCourse.scorelist(5).then(res => {
|
||
if (res.status == 200) {
|
||
this.scorelist = res.result;
|
||
}
|
||
});
|
||
},
|
||
getHotList() {
|
||
apiCourse.studyCounts(5).then(res => {
|
||
if (res.status == 200) {
|
||
this.hotList = res.result;
|
||
}
|
||
});
|
||
},
|
||
jumpRouter(item) {
|
||
//console.log(item.type, "item.type");
|
||
// return console.log(id,type,"fihkj1")
|
||
if (item.type == 20) {
|
||
//录播课
|
||
// window.open(`${this.webBaseUrl}/course/detail?id=${id}`)
|
||
this.$router.push(`/course/detail?id=${item.id}`);
|
||
}
|
||
if (item.type == 10) {
|
||
//微课
|
||
// window.open(`${this.webBaseUrl}/course/micro?id=${id}`)
|
||
this.$router.push(`/course/micro?id=${item.id}`);
|
||
}
|
||
},
|
||
jumpRouter2(item) {
|
||
// console.log(item,"土豪包括九年")
|
||
let type = item.courseType;
|
||
let id = item.courseId;
|
||
|
||
//console.log(item.type,type,'item.type');
|
||
// return console.log(id,type,"fihkj1")
|
||
if (type == 20) {
|
||
//录播课
|
||
// window.open(`${this.webBaseUrl}/course/detail?id=${id}`)
|
||
this.$router.push(`/course/detail?id=${id}`);
|
||
}
|
||
if (type == 10) {
|
||
//微课
|
||
// window.open(`${this.webBaseUrl}/course/micro?id=${id}`)
|
||
this.$router.push(`/course/micro?id=${id}`);
|
||
}
|
||
}
|
||
}
|
||
};
|
||
</script>
|
||
|
||
<style scoped lang="scss">
|
||
.course-card{
|
||
// height: 196px;
|
||
position: relative;
|
||
}
|
||
::v-deep .course-image-box :hover .el-image{
|
||
transition: all 0.5s;
|
||
z-index: 999;
|
||
position: absolute;
|
||
top: -50px;
|
||
left: -35px;
|
||
width: 420px !important;
|
||
height: 236px !important;
|
||
|
||
}
|
||
|
||
.list-active{
|
||
display: none;
|
||
width: 458px;
|
||
height: 165px;
|
||
padding: 20px;
|
||
background: #FFFFFF;
|
||
box-sizing: border-box;
|
||
box-shadow: 0px 2px 12px 0px rgba(0,0,0,0.05);
|
||
border-radius: 2px;
|
||
border: 1px solid #EDEFF0;
|
||
position: absolute;
|
||
top: 30px;
|
||
left: -16%;
|
||
z-index: 999;
|
||
.list-content{
|
||
display: flex;
|
||
padding-bottom: 20px;
|
||
border-bottom: 1px solid #EDEFF0;
|
||
.list-img{
|
||
width: 125px;
|
||
height: 70px;
|
||
position: relative;
|
||
::v-deep .el-image{
|
||
border-radius: 4px !important;
|
||
}
|
||
img{
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
.course-type{
|
||
position: absolute;
|
||
left: 0;
|
||
bottom: 0;
|
||
height: 20;
|
||
line-height: 20px;
|
||
font-size: 12px;
|
||
color: #FFFFFF;
|
||
padding: 0px 8px;
|
||
background: #387DF7;
|
||
border-radius: 0px 12px 0px 0px;
|
||
}
|
||
}
|
||
.list-text{
|
||
flex: 1;
|
||
margin-left: 12px;
|
||
h6{
|
||
font-size: 14px;
|
||
margin: 0px;
|
||
font-weight: 500;
|
||
line-height: normal;
|
||
color: #04243C;
|
||
}
|
||
span{
|
||
font-size: 14px;
|
||
color: #6E7B84;
|
||
}
|
||
}
|
||
}
|
||
.list-bottom{
|
||
padding-top: 10px;
|
||
::v-deep .interact-bar-btns{
|
||
justify-content: space-between !important;
|
||
.interact-bar-btn{
|
||
margin: 0 !important;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
.list-info{
|
||
position: relative;
|
||
}
|
||
.list-info:hover .list-active{
|
||
// transition: all 0.5s;
|
||
display: block;
|
||
}
|
||
|
||
.course-banner{
|
||
height: 240px;
|
||
background: url('/images/course-banner.png');
|
||
}
|
||
::v-deep .el-radio-button{
|
||
margin-right:0px;
|
||
}
|
||
::v-deep .title-line-ellipsis {
|
||
// width: 100%;
|
||
display: -webkit-box;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
-webkit-box-orient: vertical;
|
||
-webkit-line-clamp: 1;
|
||
box-sizing: border-box;
|
||
word-break: break-all;
|
||
}
|
||
::v-deep .el-card__body {
|
||
padding: 0;
|
||
}
|
||
::v-deep .bacolor:nth-child(odd) {
|
||
background-color: #fff;
|
||
padding: 0 5px;
|
||
}
|
||
::v-deep .bacolor:nth-child(even) {
|
||
background-color: #f6f6f6;
|
||
padding: 0 5px;
|
||
}
|
||
.Uxtext {
|
||
font-weight: 450;
|
||
margin-top: 5px;
|
||
margin-left: 15px;
|
||
font-size: 14px;
|
||
color: #3d3d3d;
|
||
cursor: pointer;
|
||
position: relative;
|
||
}
|
||
.uxicon {
|
||
font-size: 10px;
|
||
position: absolute;
|
||
top: -14px;
|
||
left: 98%;
|
||
}
|
||
// .el-radio-button{
|
||
// margin-right: 10px;
|
||
// margin-bottom: 10px;
|
||
|
||
// .el-radio-button__inner{
|
||
// background: #fff;
|
||
// border: none;
|
||
// height: 20px;
|
||
// }
|
||
// }
|
||
::v-deep .el-radio-button__inner,
|
||
.el-radio-group {
|
||
vertical-align: top;
|
||
}
|
||
::v-deep .el-radio-button__inner {
|
||
background: none;
|
||
}
|
||
::v-deep .el-radio-button:first-child .el-radio-button__inner {
|
||
border-left: none;
|
||
|
||
// border-radius: 4px 0 0 4px;
|
||
//box-shadow: none!important;
|
||
}
|
||
// .el-row{
|
||
// display: flex;
|
||
// flex-wrap: wrap;
|
||
// }
|
||
.item-title {
|
||
// margin-top: 10px;
|
||
// margin-bottom: 5px;
|
||
// margin-right: 10px;
|
||
// margin: 10px;
|
||
margin: 10px 10px 10px 0;
|
||
//font-size: 14px;
|
||
font-weight: 600;
|
||
color: #333333;
|
||
// line-height: 20px;
|
||
}
|
||
.item-line {
|
||
padding-left: 2px;
|
||
height: 20px;
|
||
background: #ddd;
|
||
}
|
||
.course-card {
|
||
padding: 30px;
|
||
padding-bottom: 18px;
|
||
margin-bottom: 36px;
|
||
background: #fff;
|
||
border-radius: 8px;
|
||
margin-right: 35px;
|
||
::v-deep .cor-praises {
|
||
// position: absolute;
|
||
-moz-user-select: none; /*火狐*/
|
||
-webkit-user-select: none; /*webkit浏览器*/
|
||
-ms-user-select: none; /*IE10*/
|
||
-khtml-user-select: none; /*早期浏览器*/
|
||
user-select: none;
|
||
.interact-bar-btn {
|
||
margin-top: -2px;
|
||
min-width: 26px !important;
|
||
width: 32px;
|
||
height: 20px;
|
||
background:rgba(237, 239, 240,0.5);
|
||
border-radius: 20px;
|
||
margin-top: 4px;
|
||
margin-right: 12px;
|
||
.interact-bar-value {
|
||
display: none;
|
||
}
|
||
.svg-icon{
|
||
font-size: 12px !important;
|
||
margin-left: 10px;
|
||
margin-bottom: 6px;
|
||
}
|
||
}
|
||
}
|
||
.cor-icon {
|
||
position: absolute;
|
||
left: 100px;
|
||
top: 54px;
|
||
border-radius: 50%;
|
||
background: rgba(88, 138, 252, 0.37);
|
||
|
||
.el-icon-caret-right {
|
||
font-size: 36px;
|
||
color: #588afc;
|
||
}
|
||
}
|
||
.course-image-box {
|
||
position: relative;
|
||
height: 196px;
|
||
// width: 350px;
|
||
width: 100%;
|
||
height: 100%;
|
||
::v-deep .el-image{
|
||
border-radius: 4px !important;
|
||
}
|
||
.course-image {
|
||
width: 100%;
|
||
height: 148px;
|
||
}
|
||
.course-type {
|
||
position: absolute;
|
||
top: 5px;
|
||
right: 0px;
|
||
width: 90px;
|
||
height: 30px;
|
||
line-height: 30px;
|
||
text-align: center;
|
||
background-color: #292828;
|
||
opacity: 0.4;
|
||
border-top-left-radius: 15px;
|
||
border-bottom-left-radius: 15px;
|
||
color: #ffffff;
|
||
-moz-user-select: none; /*火狐*/
|
||
-webkit-user-select: none; /*webkit浏览器*/
|
||
-ms-user-select: none; /*IE10*/
|
||
-khtml-user-select: none; /*早期浏览器*/
|
||
user-select: none;
|
||
}
|
||
.course-type-title {
|
||
position: absolute;
|
||
top: 5px;
|
||
right: 0px;
|
||
width: 90px;
|
||
height: 30px;
|
||
line-height: 30px;
|
||
text-align: center;
|
||
color: #ffffff;
|
||
-moz-user-select: none; /*火狐*/
|
||
-webkit-user-select: none; /*webkit浏览器*/
|
||
-ms-user-select: none; /*IE10*/
|
||
-khtml-user-select: none; /*早期浏览器*/
|
||
user-select: none;
|
||
}
|
||
.course-flag {
|
||
height: 26px;
|
||
position: absolute;
|
||
top: 15px;
|
||
right: 0;
|
||
}
|
||
.course-tip {
|
||
width: 100%;
|
||
height: 26px;
|
||
position: absolute;
|
||
bottom: 0;
|
||
padding: 0 10px;
|
||
color: #fff;
|
||
font-size: 14px;
|
||
.course-study-count {
|
||
float: left;
|
||
}
|
||
.course-time {
|
||
float: right;
|
||
}
|
||
}
|
||
}
|
||
.course-title {
|
||
height: 44px;
|
||
// margin: 10px 0;
|
||
margin: 16px 0 20px 0px;
|
||
line-height: 24px;
|
||
font-size: 16px;
|
||
font-weight: 600;
|
||
color: #333333;
|
||
-moz-user-select: none; /*火狐*/
|
||
-webkit-user-select: none; /*webkit浏览器*/
|
||
-ms-user-select: none; /*IE10*/
|
||
-khtml-user-select: none; /*早期浏览器*/
|
||
user-select: none;
|
||
}
|
||
.course-author {
|
||
// margin: 5px 15px;
|
||
// padding-bottom: 10px;
|
||
display: flex;
|
||
justify-content: space-between;
|
||
.course-author-left {
|
||
font-size: 14px;
|
||
line-height: 30px;
|
||
color: #6E7B84;
|
||
}
|
||
}
|
||
.course-score {
|
||
// padding: 5px 15px;
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
margin-bottom: 10px;
|
||
|
||
.course-score-star {
|
||
flex: 1;
|
||
}
|
||
.course-score-value {
|
||
color: #ffb30f;
|
||
font-family: "Arial";
|
||
-moz-user-select: none; /*火狐*/
|
||
-webkit-user-select: none; /*webkit浏览器*/
|
||
-ms-user-select: none; /*IE10*/
|
||
-khtml-user-select: none; /*早期浏览器*/
|
||
user-select: none;
|
||
// font-size: 30px;
|
||
}
|
||
.course-score-no {
|
||
font-size: 12px;
|
||
color: #ffb30f;
|
||
-moz-user-select: none; /*火狐*/
|
||
-webkit-user-select: none; /*webkit浏览器*/
|
||
-ms-user-select: none; /*IE10*/
|
||
-khtml-user-select: none; /*早期浏览器*/
|
||
user-select: none;
|
||
}
|
||
}
|
||
}
|
||
.course-score-no {
|
||
text-align: right;
|
||
font-size: 14px;
|
||
color: #6B7C85;
|
||
line-height: 30px;
|
||
}
|
||
.course-score-value {
|
||
font-size: 14px;
|
||
color: #FA6400;
|
||
// margin-left: 32px;
|
||
line-height: 30px;
|
||
font-family: "Arial";
|
||
// font-size: 30px;
|
||
}
|
||
.study-num {
|
||
line-height: 30px;
|
||
font-size: 14px;
|
||
margin-left: 12px;
|
||
color: #6E7B84;
|
||
-moz-user-select: none; /*火狐*/
|
||
-webkit-user-select: none; /*webkit浏览器*/
|
||
-ms-user-select: none; /*IE10*/
|
||
-khtml-user-select: none; /*早期浏览器*/
|
||
user-select: none;
|
||
}
|
||
.btn-label {
|
||
}
|
||
.btn-label {
|
||
position: relative;
|
||
display: inline-block;
|
||
outline: 0;
|
||
span {
|
||
padding: 7px 15px;
|
||
font-size: 12px;
|
||
border-radius: 0;
|
||
white-space: nowrap;
|
||
background: #fff;
|
||
border: 1px solid #dcdfe6;
|
||
font-weight: 500;
|
||
border-left: 0;
|
||
color: #606266;
|
||
-webkit-appearance: none;
|
||
text-align: center;
|
||
box-sizing: border-box;
|
||
outline: 0;
|
||
margin: 0;
|
||
position: relative;
|
||
cursor: pointer;
|
||
transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
|
||
}
|
||
}
|
||
.searchbar {
|
||
background-color: #ffffff;
|
||
// border: 1px solid #f3f3f3;
|
||
// width: 900px;
|
||
// padding: 5px 20px;
|
||
}
|
||
|
||
.fixed {
|
||
position: fixed;
|
||
top: 0px;
|
||
background-color: #f0f0f0;
|
||
z-index: 999;
|
||
height: 50px;
|
||
}
|
||
.content-div {
|
||
|
||
.quyer-tag {
|
||
|
||
// margin-left: 10px;
|
||
.order-class {
|
||
margin: 30px 0;
|
||
color: #6E7B84;
|
||
text-align: left;
|
||
font-size: 14px;
|
||
padding: 4px 8px;
|
||
margin-right: 30px;
|
||
}
|
||
.actice {
|
||
background: #387DF7;
|
||
color: #fff;
|
||
}
|
||
}
|
||
/* 分页div */
|
||
.pagination-div {
|
||
text-align: center;
|
||
padding: 10px 0;
|
||
margin: 10px;
|
||
.pag-text {
|
||
border: 1px solid #292828;
|
||
padding: 10px 20px;
|
||
border-radius: 20px;
|
||
background: #fff;
|
||
cursor: pointer;
|
||
}
|
||
.pag-text-msg {
|
||
padding: 10px 20px;
|
||
background: #fff;
|
||
}
|
||
}
|
||
.search-div {
|
||
background: #fff;
|
||
padding: 10px 25px;
|
||
::v-deep .el-input {
|
||
width: 420px;
|
||
height: 38px;
|
||
margin-bottom: 13px;
|
||
.el-input__inner {
|
||
height: 38px;
|
||
border-radius: 0;
|
||
}
|
||
.el-input-group__append {
|
||
width: 44px;
|
||
height: 38px;
|
||
border: 0;
|
||
padding: 0;
|
||
background: #3e7fff;
|
||
border-radius: 0;
|
||
.el-button {
|
||
margin: 0;
|
||
border: 0;
|
||
width: 100%;
|
||
height: 38px;
|
||
padding: 0;
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
.el-icon-search {
|
||
color: #fff;
|
||
font-size: 22px;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
// .tip{
|
||
// color:#999999;
|
||
// font-size: 12px;
|
||
// >span{
|
||
// margin-right: 8px;
|
||
// cursor: pointer;
|
||
// }
|
||
// }
|
||
.search-item {
|
||
// padding: 10px 0;
|
||
}
|
||
.search-item:not(:last-child) {
|
||
// border-bottom: 1px solid #dfdfdf;
|
||
}
|
||
.search-item-sub {
|
||
// margin-top: 10px;
|
||
}
|
||
}
|
||
.search-div-collapse {
|
||
display: block;
|
||
}
|
||
.search-div-expand {
|
||
// display: none;
|
||
}
|
||
.search-div-more {
|
||
text-align: center;
|
||
}
|
||
|
||
.order-div {
|
||
padding: 0px 15px 0 0px;
|
||
}
|
||
.data-content {
|
||
// padding: 5px 0px;
|
||
.course-card {
|
||
// width: 290px;
|
||
margin-bottom: 36px;
|
||
position: relative;
|
||
.course-image-box {
|
||
position: relative;
|
||
.course-image {
|
||
width: 288px;
|
||
height: 148px;
|
||
}
|
||
.course-flag {
|
||
height: 26px;
|
||
position: absolute;
|
||
top: 15px;
|
||
right: 0;
|
||
}
|
||
.course-tip {
|
||
width: 100%;
|
||
height: 26px;
|
||
position: absolute;
|
||
bottom: 0;
|
||
padding: 0 10px;
|
||
color: #fff;
|
||
font-size: 14px;
|
||
.course-study-count {
|
||
float: left;
|
||
}
|
||
.course-time {
|
||
float: right;
|
||
}
|
||
}
|
||
}
|
||
.course-info-box {
|
||
padding: 15px;
|
||
.course-info-title {
|
||
font-size: 18px;
|
||
font-weight: 600;
|
||
color: #343434;
|
||
height: 48px;
|
||
}
|
||
.course-other-info {
|
||
height: 40px;
|
||
margin-top: 10px;
|
||
.course-author {
|
||
float: left;
|
||
height: 40px;
|
||
font-size: 12px;
|
||
color: #666666;
|
||
line-height: 40px;
|
||
img {
|
||
margin-right: 10px;
|
||
width: 30px;
|
||
border: 1px solid #eee;
|
||
border-radius: 50%;
|
||
vertical-align: middle;
|
||
}
|
||
}
|
||
.course-score-info {
|
||
float: right;
|
||
height: 40px;
|
||
line-height: 40px;
|
||
.course-score {
|
||
color: #f8a114;
|
||
font-family: "Arial";
|
||
font-size: 36px;
|
||
}
|
||
.course-score-title {
|
||
font-size: 14px;
|
||
color: #787878;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
.cardmark {
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
width: 100%;
|
||
height: 100%;
|
||
background: rgba(101, 101, 101, 0.8);
|
||
pointer-events: none;
|
||
border-radius: 5px;
|
||
padding: 10px;
|
||
opacity: 0;
|
||
-webkit-transition: all 1.5s;
|
||
-moz-transition: all 1.5s;
|
||
-ms-transition: all 1.5s;
|
||
-o-transition: all 1.5s;
|
||
transition: all 1.5s;
|
||
.cardmark-name {
|
||
font-size: 18px;
|
||
line-height: 30px;
|
||
font-weight: 600;
|
||
color: #fff;
|
||
}
|
||
.cardmark-info {
|
||
color: #fff;
|
||
font-size: 14px;
|
||
line-height: 20px;
|
||
}
|
||
}
|
||
}
|
||
.course-card:hover .cardmark {
|
||
opacity: 1;
|
||
}
|
||
}
|
||
}
|
||
.course-form {
|
||
width: 100%;
|
||
margin: 10px 0;
|
||
::v-deep.el-button {
|
||
width: 100%;
|
||
color: #fff;
|
||
}
|
||
}
|
||
|
||
.right-box {
|
||
.add-btn {
|
||
width: 100%;
|
||
padding: 15px 0;
|
||
}
|
||
.ranking-card {
|
||
margin-top: 0px;
|
||
}
|
||
|
||
.ranking-data {
|
||
margin: 10px 0;
|
||
color: #999999;
|
||
}
|
||
}
|
||
.ranking-title {
|
||
line-height: 34px;
|
||
font-size: 15px;
|
||
color: #333333;
|
||
.center-titlt {
|
||
font-size: 15px;
|
||
color: #333333;
|
||
}
|
||
.center {
|
||
text-align: right;
|
||
}
|
||
img {
|
||
margin-top: 5px;
|
||
}
|
||
}
|
||
</style>
|