mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/learning-system-portal.git
synced 2025-12-09 19:06:43 +08:00
Merge branch 'master-0623-lyc' into test20250220
# Conflicts: # src/views/study/coursenew.vue
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 657 KiB |
@@ -28,9 +28,9 @@
|
||||
</div>
|
||||
<div v-if="resType == 10" style="position: relative;">
|
||||
<videoPlayer ref="myVideoPlayer" id="myVideoPlayer" @progress="progress" :src="blobUrl" :blobId="blobId" @onPlayerPlaying="onPlayerPlaying"
|
||||
:initTime="contentData.lastStudyTime" :notePlay="notePlay" @onPlayerPlay="onPlayerPlay"
|
||||
:isDrag="curriculumData.isDrag" @onFullscreen="onFullscreen" @onPlayerPause="onPlayerPause"
|
||||
@onPlayerEnded="onPlayerEnded" :isCrowd="isCrowd" @onTimeUpdate="handleAudioTimeUpdate"></videoPlayer>
|
||||
:initTime="contentData.lastStudyTime" :notePlay="notePlay" @onPlayerPlay="onPlayerPlay"
|
||||
:isDrag="curriculumData.isDrag" @onFullscreen="onFullscreen" @onPlayerPause="onPlayerPause"
|
||||
@onPlayerEnded="onPlayerEnded" :isCrowd="isCrowd" @onTimeUpdate="handleAudioTimeUpdate"></videoPlayer>
|
||||
<div class="player-box" v-if="playerBoxShow">
|
||||
<div class="player-praise" style="cursor: pointer;">
|
||||
<div @click="praiseContent">
|
||||
@@ -41,7 +41,7 @@
|
||||
</div>
|
||||
<div style="margin-left: 15px;cursor: pointer;" @click="treadContent">
|
||||
<img class="icon-small" v-if="isTrample"
|
||||
:src="require('@/assets/images/icon/trample-active.png')" />
|
||||
:src="require('@/assets/images/icon/trample-active.png')" />
|
||||
<img class="icon-small" v-else :src="require('@/assets/images/icon/cai.png')" />
|
||||
<!-- {{ courseInfo.trampleCount }} -->
|
||||
<div style="color:#fff;cursor: pointer;">踩</div>
|
||||
@@ -68,7 +68,7 @@
|
||||
<div class="con-audio-title">{{ contentData.contentName }}</div>
|
||||
<div class="con-audio-player">
|
||||
<audioPlayer v-if="resType == 20" :url="blobUrl" :name="contentData.contentName" @onPlaying="audioPlaying" :isDrag="curriculumData.isDrag"
|
||||
@onPlay="audioPlay" @onPause="audioPause" @onPlayEnd="audioEnd"></audioPlayer>
|
||||
@onPlay="audioPlay" @onPause="audioPause" @onPlayEnd="audioEnd"></audioPlayer>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -95,7 +95,7 @@
|
||||
<div class="hyper-link-row">{{ conLink.url }}</div>
|
||||
</div>
|
||||
<div v-if="conLink.openType == 1"><iframe :src="conLink.url"
|
||||
style="width: 100%;border:0px;min-height: 473px;" frameborder="0"></iframe></div>
|
||||
style="width: 100%;border:0px;min-height: 473px;" frameborder="0"></iframe></div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="resType == 60">
|
||||
@@ -115,21 +115,21 @@
|
||||
<div class="score" style="display: flex;">
|
||||
<div v-if="!scoreInfo.has" style="margin-left:10px;cursor: pointer;padding-top:18px">
|
||||
<!-- <el-popover placement="top" width="300" trigger="hover"> -->
|
||||
<!-- <div style="text-align:center;line-height:50px;padding:20px 0px">
|
||||
<!-- <div style="text-align:center;line-height:50px;padding:20px 0px">
|
||||
|
||||
<div style="padding-top:30px"><el-button @click="addScore">提交评分</el-button></div>
|
||||
</div> -->
|
||||
<el-rate v-model="scoreInfo.score" @change="addScore"></el-rate>
|
||||
<!-- <el-tag class="ref-score" slot="reference">去评分</el-tag> -->
|
||||
<div style="padding-top:30px"><el-button @click="addScore">提交评分</el-button></div>
|
||||
</div> -->
|
||||
<el-rate v-model="scoreInfo.score" @change="addScore"></el-rate>
|
||||
<!-- <el-tag class="ref-score" slot="reference">去评分</el-tag> -->
|
||||
<!-- </el-popover> -->
|
||||
</div>
|
||||
<div v-if="scoreInfo.has" style="padding-top: 5px;display: flex;">
|
||||
<div style="padding-top: 16px;">
|
||||
<div style="padding-top: 16px;">
|
||||
<el-rate disabled v-model="courseInfo.score" :allow-half="true" ></el-rate>
|
||||
</div>
|
||||
<div>
|
||||
<span class="score-text">{{ toScore(courseInfo.score) }}</span>
|
||||
<span style="font-size: 18px;">分</span>
|
||||
<span class="score-text">{{ toScore(courseInfo.score) }}</span>
|
||||
<span style="font-size: 18px;">分</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -142,14 +142,14 @@
|
||||
{{ courseInfo.praises }}
|
||||
</div>
|
||||
<div style="margin-left: 20px;" @click="treadContent">
|
||||
<el-tooltip class="item" effect="light" :content="isTrample?'取消踩':'踩'" placement="top-start" :visible-arrow="false" popper-class="text-tooltip">
|
||||
<img class="icon-small" v-if="isTrample" :src="require('@/assets/images/icon/trample-active.png')" />
|
||||
<img class="icon-small" v-else :src="require('@/assets/images/icon/trample.png')" />
|
||||
</el-tooltip>
|
||||
<el-tooltip class="item" effect="light" :content="isTrample?'取消踩':'踩'" placement="top-start" :visible-arrow="false" popper-class="text-tooltip">
|
||||
<img class="icon-small" v-if="isTrample" :src="require('@/assets/images/icon/trample-active.png')" />
|
||||
<img class="icon-small" v-else :src="require('@/assets/images/icon/trample.png')" />
|
||||
</el-tooltip>
|
||||
{{ courseInfo.trampleCount }}
|
||||
</div>
|
||||
<div style="margin-left: 6px;">
|
||||
<interactBar :size="16" :type="1" :aid="courseInfo.sysCreateAid" :data="courseInfo" :praises="false" :favorites="true" :shares="true" :comments="false" :views="false"></interactBar>
|
||||
<interactBar :size="16" :type="1" :aid="courseInfo.sysCreateAid" :data="courseInfo" :praises="false" :favorites="true" :shares="true" :comments="false" :views="false"></interactBar>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -157,138 +157,141 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="course-control">
|
||||
<div class="control-tab" v-if="contentList.length>0" >
|
||||
<div v-if="contentList.length>1" @click="heartabone" :class="tab == 1 ? 'control-tab-active' : ' '">
|
||||
<i class="el-icon-reading" style="margin-right:9px;margin-left:9px"></i>课程单元
|
||||
<div class="control-tab" v-if="contentList.length>0" >
|
||||
<div v-if="contentList.length>1" @click="heartabone" :class="tab == 1 ? 'control-tab-active' : ' '">
|
||||
<i class="el-icon-reading" style="margin-right:9px;margin-left:9px"></i>课程单元
|
||||
</div>
|
||||
<div @click="heartabtwo" :class="tab == 2 ? 'control-tab-active' : ' '">
|
||||
<i class="el-icon-edit" style="margin-right:9px;margin-left:9px"></i>我的笔记
|
||||
</div>
|
||||
</div>
|
||||
<div @click="heartabtwo" :class="tab == 2 ? 'control-tab-active' : ' '">
|
||||
<i class="el-icon-edit" style="margin-right:9px;margin-left:9px"></i>我的笔记
|
||||
</div>
|
||||
</div>
|
||||
<!-- 课程单元 -->
|
||||
<div class="course-units" v-if="tab == 1">
|
||||
<div :style="`height: ${controlHeight}px;overflow-y: auto;`">
|
||||
<div class="catalog" v-if="courseInfo.type == 20">
|
||||
<div v-for="(item, index) in catalogTree" :key="index" :name="index">
|
||||
<el-menu
|
||||
ref="menu"
|
||||
:default-openeds="defaultOpeneds"
|
||||
:default-active="activeId"
|
||||
:unique-opened="true"
|
||||
class="el-menu-vertical-demo"
|
||||
@open="handleOpen"
|
||||
@close="handleClose">
|
||||
<el-submenu :index="item.section.id">
|
||||
<template slot="title">
|
||||
<div style="display: flex;justify-content: space-between;">
|
||||
<div style="width: 240px;font-weight: 700;font-size: 16px;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;" :title="item.section.name">{{item.section.name}}</div>
|
||||
<div style="margin-right: 23px;font-weight: 700;font-size: 16px;">({{ item.children.filter(item=>item.status == 9).length }}/{{ item.children.length }})</div>
|
||||
</div>
|
||||
</template>
|
||||
<el-menu-item-group v-for="(ele, i) in item.children" :key="i">
|
||||
<div class="units-info" :class="{'units-active':contentData.id == ele.id}" @click="showRes(ele,i,index,item)">
|
||||
<el-menu-item :index="ele.id" style="padding: 0;padding-left: 10px;">
|
||||
<div style="display: flex;justify-content: space-between;">
|
||||
<div style="width: 200px;font-size: 16px;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;" :title="ele.contentName">{{i+1}}. {{ ele.contentName }}</div>
|
||||
<div>
|
||||
<span v-if="contentData.id == ele.id" style="color: #387DF7;font-size: 14px;margin-right: 4px;">学习中</span>
|
||||
<!-- <img v-if="contentData.id == ele.id" :src="`${webBaseUrl}/images/playicon.png`" alt=""> -->
|
||||
<img v-if="contentData.id == ele.id && ele.status == 9" style="width: 16px;height: 16px;" src="@/assets/images/over.png" alt="">
|
||||
<img v-if="contentData.id == ele.id && ele.status == 0" style="width: 16px;height: 16px;" src="@/assets/images/nowNot.png" alt="">
|
||||
<img v-if="contentData.id == ele.id && (ele.status != 9&&ele.status != 0)" style="width: 16px;height: 16px;" src="@/assets/images/ban1.png" alt="">
|
||||
<img v-if="contentData.id != ele.id && ele.status == 9" style="width: 16px;height: 16px;" src="@/assets/images/notNew.png" alt="">
|
||||
<img v-if="contentData.id != ele.id && ele.status == 0" style="width: 16px;height: 16px;" src="@/assets/images/not.png" alt="">
|
||||
<img v-if="contentData.id != ele.id && (ele.status != 9&&ele.status != 0)" style="width: 16px;height: 16px;" src="@/assets/images/newBan.png" alt="">
|
||||
<!-- 课程单元 -->
|
||||
<div class="course-units" v-if="tab == 1">
|
||||
<div :style="`height: ${controlHeight}px;overflow-y: auto;`">
|
||||
<div class="catalog" v-if="courseInfo.type == 20">
|
||||
<div v-for="(item, index) in catalogTree" :key="index" :name="index">
|
||||
<el-menu
|
||||
ref="menu"
|
||||
:default-openeds="defaultOpeneds"
|
||||
:default-active="activeId"
|
||||
:unique-opened="true"
|
||||
class="el-menu-vertical-demo"
|
||||
@open="handleOpen"
|
||||
@close="handleClose">
|
||||
<el-submenu :index="item.section.id">
|
||||
<template slot="title">
|
||||
<div style="display: flex;justify-content: space-between;">
|
||||
<div style="width: 240px;font-weight: 700;font-size: 16px;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;" :title="item.section.name">{{item.section.name}}</div>
|
||||
<div style="margin-right: 23px;font-weight: 700;font-size: 16px;">({{ item.children.filter(item=>item.status == 9).length }}/{{ item.children.length }})</div>
|
||||
</div>
|
||||
</template>
|
||||
<el-menu-item-group v-for="(ele, i) in item.children" :key="i">
|
||||
<div class="units-info" :class="{'units-active':contentData.id == ele.id}" @click="showRes(ele,i,index,item)">
|
||||
<el-menu-item :index="ele.id" style="padding: 0;padding-left: 10px;">
|
||||
<div style="display: flex;justify-content: space-between;">
|
||||
<div style="width: 200px;font-size: 16px;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;" :title="ele.contentName">{{i+1}}. {{ ele.contentName }}</div>
|
||||
<div>
|
||||
<span v-if="contentData.id == ele.id" style="color: #387DF7;font-size: 14px;margin-right: 4px;">学习中</span>
|
||||
<!-- <img v-if="contentData.id == ele.id" :src="`${webBaseUrl}/images/playicon.png`" alt=""> -->
|
||||
<img v-if="contentData.id == ele.id && ele.status == 9" style="width: 16px;height: 16px;" src="@/assets/images/over.png" alt="">
|
||||
<img v-if="contentData.id == ele.id && ele.status == 0" style="width: 16px;height: 16px;" src="@/assets/images/nowNot.png" alt="">
|
||||
<img v-if="contentData.id == ele.id && (ele.status != 9&&ele.status != 0)" style="width: 16px;height: 16px;" src="@/assets/images/ban1.png" alt="">
|
||||
<img v-if="contentData.id != ele.id && ele.status == 9" style="width: 16px;height: 16px;" src="@/assets/images/notNew.png" alt="">
|
||||
<img v-if="contentData.id != ele.id && ele.status == 0" style="width: 16px;height: 16px;" src="@/assets/images/not.png" alt="">
|
||||
<img v-if="contentData.id != ele.id && (ele.status != 9&&ele.status != 0)" style="width: 16px;height: 16px;" src="@/assets/images/newBan.png" alt="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-menu-item>
|
||||
</div>
|
||||
</el-menu-item-group>
|
||||
</el-submenu>
|
||||
</el-menu>
|
||||
</div>
|
||||
</el-menu-item-group>
|
||||
</el-submenu>
|
||||
</el-menu>
|
||||
</div>
|
||||
<!-- <div v-for="(item, index) in catalogTree" :key="index" :name="index">
|
||||
<div style="margin: 10px 0px;font-weight: 700;">{{item.section.name}}</div>
|
||||
<div class="units-info" :class="{'units-active':contentData.id == ele.id}" v-for="(ele, i) in item.children" :key="i" @click="showRes(ele,i,index)">
|
||||
<img v-if="contentData.id == ele.id" :src="`${webBaseUrl}/images/playicon.png`" alt=""> {{i+1}}.
|
||||
<span>{{ ele.contentName }}</span>
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
<!-- <div v-for="(item, index) in catalogTree" :key="index" :name="index">
|
||||
<div style="margin: 10px 0px;font-weight: 700;">{{item.section.name}}</div>
|
||||
<div class="units-info" :class="{'units-active':contentData.id == ele.id}" v-for="(ele, i) in item.children" :key="i" @click="showRes(ele,i,index)">
|
||||
<img v-if="contentData.id == ele.id" :src="`${webBaseUrl}/images/playicon.png`" alt=""> {{i+1}}.
|
||||
<span>{{ ele.contentName }}</span>
|
||||
<div v-else class="catalog">
|
||||
<!-- contentList -->
|
||||
<div class="units-info" style="display: flex;justify-content: space-between" v-for="(list, index) in contentList" :key="index" :name="index" @click="showRes(list,-1,index)" :class="{'units-active':contentData.id == list.id}">
|
||||
<!-- <div class="units-info" :class="{'units-active':contentData.id == ele.id}" @click="showRes(ele,i,index)" v-for="(ele, i) in item.children" :key="i"> -->
|
||||
<!-- <img v-if="contentData.id == list.id" :src="`${webBaseUrl}/images/playicon.png`" alt=""> -->
|
||||
<div style="max-width: 193px;;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">
|
||||
{{index+1}}.{{ list.contentName }}
|
||||
</div>
|
||||
<div style="margin-left: 5px">
|
||||
<span v-if="contentData.id == list.id" style="color: #387DF7;font-size: 14px;margin-right: 4px;">学习中</span>
|
||||
<img v-if="contentData.id == list.id && list.status == 9" style="width: 16px;height: 16px;" src="@/assets/images/over.png" alt="">
|
||||
<img v-if="contentData.id == list.id && list.status == 0" style="width: 16px;height: 16px;" src="@/assets/images/nowNot.png" alt="">
|
||||
<img v-if="contentData.id == list.id && (list.status != 9&&list.status != 0)" style="width: 16px;height: 16px;" src="@/assets/images/ban1.png" alt="">
|
||||
<img v-if="contentData.id != list.id && list.status == 9" style="width: 16px;height: 16px;" src="@/assets/images/notNew.png" alt="">
|
||||
<img v-if="contentData.id != list.id && list.status == 0" style="width: 16px;height: 16px;" src="@/assets/images/not.png" alt="">
|
||||
<img v-if="contentData.id != list.id && (list.status != 9&&list.status != 0)" style="width: 16px;height: 16px;" src="@/assets/images/newBan.png" alt="">
|
||||
</div>
|
||||
<!-- </div> -->
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
<div v-else class="catalog">
|
||||
<!-- contentList -->
|
||||
<div class="units-info" style="display: flex;justify-content: space-between" v-for="(list, index) in contentList" :key="index" :name="index" @click="showRes(list,-1,index)" :class="{'units-active':contentData.id == list.id}">
|
||||
<!-- <div class="units-info" :class="{'units-active':contentData.id == ele.id}" @click="showRes(ele,i,index)" v-for="(ele, i) in item.children" :key="i"> -->
|
||||
<!-- <img v-if="contentData.id == list.id" :src="`${webBaseUrl}/images/playicon.png`" alt=""> -->
|
||||
<div style="max-width: 193px;;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">
|
||||
{{index+1}}.{{ list.contentName }}
|
||||
</div>
|
||||
<div style="margin-left: 5px">
|
||||
<span v-if="contentData.id == list.id" style="color: #387DF7;font-size: 14px;margin-right: 4px;">学习中</span>
|
||||
<img v-if="contentData.id == list.id && list.status == 9" style="width: 16px;height: 16px;" src="@/assets/images/over.png" alt="">
|
||||
<img v-if="contentData.id == list.id && list.status == 0" style="width: 16px;height: 16px;" src="@/assets/images/nowNot.png" alt="">
|
||||
<img v-if="contentData.id == list.id && (list.status != 9&&list.status != 0)" style="width: 16px;height: 16px;" src="@/assets/images/ban1.png" alt="">
|
||||
<img v-if="contentData.id != list.id && list.status == 9" style="width: 16px;height: 16px;" src="@/assets/images/notNew.png" alt="">
|
||||
<img v-if="contentData.id != list.id && list.status == 0" style="width: 16px;height: 16px;" src="@/assets/images/not.png" alt="">
|
||||
<img v-if="contentData.id != list.id && (list.status != 9&&list.status != 0)" style="width: 16px;height: 16px;" src="@/assets/images/newBan.png" alt="">
|
||||
</div>
|
||||
<!-- </div> -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 我的笔记 -->
|
||||
<div class="mynote" v-show="tab == 2">
|
||||
<my-note ref="mynote" :height="controlHeight" @change="noteChange" :data="courseInfo" @videoLocation="videoLocation" @onPlayVideo="onPlayVideo"
|
||||
:score="courseInfo.score"></my-note>
|
||||
</div>
|
||||
<!-- 我的笔记 -->
|
||||
<div class="mynote" v-show="tab == 2">
|
||||
<my-note ref="mynote" :height="controlHeight" @change="noteChange" :data="courseInfo" @videoLocation="videoLocation" @onPlayVideo="onPlayVideo"
|
||||
:score="courseInfo.score"></my-note>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="course-infobox">
|
||||
<div class="course-info">
|
||||
<div style="background-color: #fff;">
|
||||
<div class="course-info-tab">
|
||||
<div @click="coutab(1)" :class="courestab == 1? 'course-info-tab-active' : ''">内容简介<span class=""></span> </div>
|
||||
<div @click="coutab(2)" :class="courestab == 2? 'course-info-tab-active' : ''">课程评论<span class=""></span> </div>
|
||||
<div @click="coutab(3)" :class="courestab == 3? 'course-info-tab-active' : ''">课程笔记<span class=""></span> </div>
|
||||
</div>
|
||||
<div v-show="courestab==1" style="margin-left:17px;padding-top: 20px;">
|
||||
<div style="padding: 30px;">
|
||||
<div class="course-info-row"><img src="@/assets/images/icon/remark-iocn.png" alt="" srcset=""> 目标人群:<div class="course-info-text">{{courseInfo.forUsers}}</div></div>
|
||||
<div class="course-info-row"><img src="@/assets/images/icon/remark-iocn.png" alt="" srcset=""> 课程价值:<div class="course-info-text">{{courseInfo.value}}</div></div>
|
||||
<div class="course-info-row"><img src="@/assets/images/icon/remark-iocn.png" alt="" srcset=""> 详细介绍:<div class="course-info-text" v-html="courseInfo.summary"></div></div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-show="courestab==2" class="coures-comments" style="margin-left:17px">
|
||||
<comments v-if="courseInfo.id && courseInfo.id != ''" :obj-type="1" :obj-id="courseInfo.id" :toUsers="toUsers"></comments>
|
||||
</div>
|
||||
<div v-show="courestab==3" class="coures-note">
|
||||
<note-comments :key="timer" v-if="courseInfo.id && courseInfo.id != ''" :obj-type="6" :obj-id="courseInfo.id" :name="courseInfo.name"></note-comments>
|
||||
</div>
|
||||
<div class="course-info-tab">
|
||||
<div @click="coutab(1)" :class="courestab == 1? 'course-info-tab-active' : ''">内容简介<span class=""></span> </div>
|
||||
<div @click="coutab(2)" :class="courestab == 2? 'course-info-tab-active' : ''">课程评论<span class=""></span> </div>
|
||||
<div @click="coutab(3)" :class="courestab == 3? 'course-info-tab-active' : ''">课程笔记<span class=""></span> </div>
|
||||
</div>
|
||||
<div v-show="courestab==1" style="margin-left:17px;padding-top: 20px;">
|
||||
<div style="padding: 30px;">
|
||||
<div class="course-info-row"><img src="@/assets/images/icon/remark-iocn.png" alt="" srcset=""> 目标人群:<div class="course-info-text">{{courseInfo.forUsers}}</div></div>
|
||||
<div class="course-info-row"><img src="@/assets/images/icon/remark-iocn.png" alt="" srcset=""> 课程价值:<div class="course-info-text">{{courseInfo.value}}</div></div>
|
||||
<div class="course-info-row"><img src="@/assets/images/icon/remark-iocn.png" alt="" srcset=""> 详细介绍:<div class="course-info-text" v-html="courseInfo.summary"></div></div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-show="courestab==2" class="coures-comments" style="margin-left:17px">
|
||||
<comments v-if="courseInfo.id && courseInfo.id != ''" :obj-type="1" :obj-id="courseInfo.id" :toUsers="toUsers"></comments>
|
||||
</div>
|
||||
<div v-show="courestab==3" class="coures-note">
|
||||
<note-comments :key="timer" v-if="courseInfo.id && courseInfo.id != ''" :obj-type="6" :obj-id="courseInfo.id" :name="courseInfo.name"></note-comments>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="course-teacher">
|
||||
<div class="cteacher-top">
|
||||
<div class="cteacher-top"><img width="100%" style="vertical-align: top;" height="10px" src="../../../public/images/tearch-top.png" alt=""></div>
|
||||
<div class="cteacher-top-title">课程讲师</div>
|
||||
<div class="cteacher-top"><img width="100%" style="vertical-align: top;" height="10px" src="../../../public/images/tearch-top.png" alt=""></div>
|
||||
<div class="cteacher-top-title">课程讲师</div>
|
||||
</div>
|
||||
|
||||
<div class="cteacher-list">
|
||||
<div class="teacher" v-for="(item, idx) in teachers" :key="idx">
|
||||
<div class="teacher-avator" @click="toUserHome(item)" title="点击进入他的主页">
|
||||
<!-- <div class="teacher-text" v-if="item.authorInfo.avatar == ''">{{userAvatarText(item.teacherName)}}</div> -->
|
||||
<div v-if="item.authorInfo.avatar !== ''">
|
||||
<el-avatar :src="fileBaseUrl + item.authorInfo.avatar" shape="circle" :size="50"></el-avatar>
|
||||
<div v-if="item.authorInfo && item.authorInfo.avatar">
|
||||
<el-avatar :src="fileBaseUrl + item.authorInfo.avatar" shape="circle" :size="50"></el-avatar>
|
||||
</div>
|
||||
<div v-else-if="item.photo">
|
||||
<el-avatar :src="fileBaseUrl + item.photo" shape="circle" :size="50"></el-avatar>
|
||||
</div>
|
||||
<div v-else class="teacher-text">
|
||||
<div v-if="item.authorInfo.sex === 1 "><img src="../../../public/images/Avatarman.png" alt=""></div>
|
||||
<div v-if="item.authorInfo && item.authorInfo.sex === 1"><img src="../../../public/images/Avatarman.png" alt=""></div>
|
||||
<div v-else><img src="../../../public/images/Avatarwoman.png" alt=""></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="teacher-info">
|
||||
<div class="teacher-name">
|
||||
<span> {{ item.teacherName }}</span>
|
||||
<!-- <span style="font-size: 12px; color:#666666 ;">( {{cutOrgNamePath(item.authorInfo.orgInfo)}} )</span> -->
|
||||
<span> {{ item.teacherName }}</span>
|
||||
<!-- <span style="font-size: 12px; color:#666666 ;">( {{cutOrgNamePath(item.authorInfo.orgInfo)}} )</span> -->
|
||||
</div>
|
||||
<!-- <div class="teacher-remark" v-html="item.authorInfo.sign"></div> -->
|
||||
<div v-if="item.teacherType === 1 " class="teacher-remark">{{cutOrgNamePath(item.authorInfo.orgInfo)}}</div>
|
||||
@@ -522,13 +525,13 @@
|
||||
},
|
||||
noteChange(){
|
||||
//视频点定位,直接到播放的视频位置
|
||||
this.timer = new Date().getTime()
|
||||
this.timer = new Date().getTime()
|
||||
},
|
||||
//清空追加学习时长事件
|
||||
cleanAppendTime(){
|
||||
if(this.appendStudyOtherHandle){
|
||||
window.clearTimeout(this.appendStudyOtherHandle);
|
||||
}
|
||||
if(this.appendStudyOtherHandle){
|
||||
window.clearTimeout(this.appendStudyOtherHandle);
|
||||
}
|
||||
},
|
||||
//非音视频课学习时长的增加,每一分钟保存一次
|
||||
appendStudyOtherTime() {
|
||||
@@ -539,46 +542,46 @@
|
||||
if (!this.contentData.id) {
|
||||
return;
|
||||
}
|
||||
//每一分钟保存一次
|
||||
// 取消阅读的每分钟六十秒的计时,最多是设置的时间或默认时间
|
||||
let $this=this;
|
||||
let startTime = new Date().getTime();
|
||||
this.appendStudyOtherHandle = setTimeout(function() {
|
||||
let endTime = new Date().getTime();
|
||||
let totalTime = Math.round((endTime - startTime) / 1000);
|
||||
$this.cumulativeDuration += totalTime;
|
||||
if($this.cumulativeDuration <= $this.maxDuration){
|
||||
//发送时长
|
||||
$this.sendStudyOtherTime(totalTime);
|
||||
//递归调用
|
||||
$this.appendStudyOtherTime();
|
||||
}else{
|
||||
clearTimeout(this.appendStudyOtherHandle);
|
||||
$this.cumulativeDuration = 0;
|
||||
$this.maxDuration = 0;
|
||||
}
|
||||
}, 1000*60);
|
||||
//每一分钟保存一次
|
||||
// 取消阅读的每分钟六十秒的计时,最多是设置的时间或默认时间
|
||||
let $this=this;
|
||||
let startTime = new Date().getTime();
|
||||
this.appendStudyOtherHandle = setTimeout(function() {
|
||||
let endTime = new Date().getTime();
|
||||
let totalTime = Math.round((endTime - startTime) / 1000);
|
||||
$this.cumulativeDuration += totalTime;
|
||||
if($this.cumulativeDuration <= $this.maxDuration){
|
||||
//发送时长
|
||||
$this.sendStudyOtherTime(totalTime);
|
||||
//递归调用
|
||||
$this.appendStudyOtherTime();
|
||||
}else{
|
||||
clearTimeout(this.appendStudyOtherHandle);
|
||||
$this.cumulativeDuration = 0;
|
||||
$this.maxDuration = 0;
|
||||
}
|
||||
}, 1000*60);
|
||||
|
||||
},
|
||||
sendStudyOtherTime(totalTime){
|
||||
//静默处理
|
||||
apiStat.sendEvent({
|
||||
"key": "StudyCourseOther",//课程学习的key
|
||||
"title": "非音视频课内容",//事件的标题
|
||||
"parameters":"second:" + totalTime,//second:value 本次的学习时长
|
||||
"content": "学习课程",//事件的内容
|
||||
"objId": this.courseInfo.id,//课程的id
|
||||
"objType": "1",//类型
|
||||
"source":"page",
|
||||
"objInfo": ""+this.courseInfo.name,
|
||||
"aid":this.userInfo.aid, //当前登录人的id
|
||||
"aname":this.userInfo.name,//当前人的姓名
|
||||
"status": 1 //状态
|
||||
}).then(rs=>{
|
||||
if(rs.status != 200) {
|
||||
console.log(rs.message);
|
||||
}
|
||||
});
|
||||
"key": "StudyCourseOther",//课程学习的key
|
||||
"title": "非音视频课内容",//事件的标题
|
||||
"parameters":"second:" + totalTime,//second:value 本次的学习时长
|
||||
"content": "学习课程",//事件的内容
|
||||
"objId": this.courseInfo.id,//课程的id
|
||||
"objType": "1",//类型
|
||||
"source":"page",
|
||||
"objInfo": ""+this.courseInfo.name,
|
||||
"aid":this.userInfo.aid, //当前登录人的id
|
||||
"aname":this.userInfo.name,//当前人的姓名
|
||||
"status": 1 //状态
|
||||
}).then(rs=>{
|
||||
if(rs.status != 200) {
|
||||
console.log(rs.message);
|
||||
}
|
||||
});
|
||||
},
|
||||
//笔记组件触发,播放指定时间
|
||||
onPlayVideo(contentId,time){
|
||||
@@ -587,32 +590,32 @@
|
||||
console.log(contentId,this.contentData.id,'两个内容id');
|
||||
let $this=this;
|
||||
if(this.contentData.id==contentId){
|
||||
this.onPlayerPause()
|
||||
this.contentData.lastStudyTime=time;
|
||||
setTimeout(() => {
|
||||
$this.$refs.myVideoPlayer.startPlay(time);
|
||||
}, 10)
|
||||
console.log('开始播放1');
|
||||
this.onPlayerPause()
|
||||
this.contentData.lastStudyTime=time;
|
||||
setTimeout(() => {
|
||||
$this.$refs.myVideoPlayer.startPlay(time);
|
||||
}, 10)
|
||||
console.log('开始播放1');
|
||||
}else{
|
||||
//通过contentId
|
||||
let toResContent=null;
|
||||
this.contentList.forEach(c => {
|
||||
if(c.id==contentId){
|
||||
c.lastStudyTime=time;
|
||||
toResContent=c;
|
||||
//通过contentId
|
||||
let toResContent=null;
|
||||
this.contentList.forEach(c => {
|
||||
if(c.id==contentId){
|
||||
c.lastStudyTime=time;
|
||||
toResContent=c;
|
||||
}
|
||||
});
|
||||
if(toResContent){
|
||||
|
||||
this.changePlayRes(toResContent);
|
||||
setTimeout(() => {
|
||||
$this.$refs.myVideoPlayer.startPlay(time);
|
||||
}, 10)
|
||||
|
||||
console.log('开始播放2');
|
||||
}else{
|
||||
this.$message.error('资源已不存在或更换过,已无法定位');
|
||||
}
|
||||
});
|
||||
if(toResContent){
|
||||
|
||||
this.changePlayRes(toResContent);
|
||||
setTimeout(() => {
|
||||
$this.$refs.myVideoPlayer.startPlay(time);
|
||||
}, 10)
|
||||
|
||||
console.log('开始播放2');
|
||||
}else{
|
||||
this.$message.error('资源已不存在或更换过,已无法定位');
|
||||
}
|
||||
}
|
||||
this.playerBoxShow = false;
|
||||
},
|
||||
@@ -690,23 +693,23 @@
|
||||
}else if(r.contentType==50){ //scorm
|
||||
this.scormUrl='';
|
||||
apiCourseFile.detail(r.contentRefId).then(cfrs => {
|
||||
if(cfrs.status==200){
|
||||
this.curCFile = cfrs.result;
|
||||
//this.scormUrl=cfrs
|
||||
let pars='?mode=normal&r='+Math.random();
|
||||
pars+='&scormId='+this.curCFile.id;
|
||||
pars+='&courseId='+this.courseId;
|
||||
pars+='&contentId='+r.id;
|
||||
pars+='&studentId='+this.userInfo.aid;
|
||||
pars+='&studentName='+encodeURIComponent(this.userInfo.name);
|
||||
pars+='&lmsId='+this.studyId;
|
||||
pars+='&scoId=';//不指定,scorm模块自动根据学习记录定位
|
||||
let urlPre=window.location.protocol;
|
||||
let configUrl=process.env.VUE_APP_SCORM_URL;
|
||||
configUrl=urlPre+configUrl.substring(configUrl.indexOf(':')+1);
|
||||
if(cfrs.status==200){
|
||||
this.curCFile = cfrs.result;
|
||||
//this.scormUrl=cfrs
|
||||
let pars='?mode=normal&r='+Math.random();
|
||||
pars+='&scormId='+this.curCFile.id;
|
||||
pars+='&courseId='+this.courseId;
|
||||
pars+='&contentId='+r.id;
|
||||
pars+='&studentId='+this.userInfo.aid;
|
||||
pars+='&studentName='+encodeURIComponent(this.userInfo.name);
|
||||
pars+='&lmsId='+this.studyId;
|
||||
pars+='&scoId=';//不指定,scorm模块自动根据学习记录定位
|
||||
let urlPre=window.location.protocol;
|
||||
let configUrl=process.env.VUE_APP_SCORM_URL;
|
||||
configUrl=urlPre+configUrl.substring(configUrl.indexOf(':')+1);
|
||||
|
||||
this.scormUrl=configUrl+pars;//播放的首页
|
||||
}
|
||||
this.scormUrl=configUrl+pars;//播放的首页
|
||||
}
|
||||
});
|
||||
|
||||
}else if (r.contentType == 52) {
|
||||
@@ -737,12 +740,12 @@
|
||||
setTimeout(() => {
|
||||
this.isContentTypeTwo = r.contentType
|
||||
$this.isShowTime()
|
||||
}, 2000);
|
||||
}
|
||||
}, 2000);
|
||||
}
|
||||
}
|
||||
//以下是学习记录,50是scorm项目
|
||||
if (this.contentData.contentType > 20 && this.contentData.contentType !== 50) { //非视频类的
|
||||
//用户的学习时长,非音视频课程学习,单独的处理
|
||||
//用户的学习时长,非音视频课程学习,单独的处理
|
||||
this.isAppendTime = false;
|
||||
|
||||
this.appendStudyOtherHandle = setTimeout(function() {
|
||||
@@ -752,18 +755,18 @@
|
||||
// 没有设置默认时长三十分钟,
|
||||
$this.maxDuration = r.duration !== 0 ? r.duration * 2 : $this.defaultMaxTime;
|
||||
$this.$store.dispatch("userTrigger", {
|
||||
"key": "StudyCourseOther",//课程学习的key
|
||||
"title": "非音视频课内容",//事件的标题
|
||||
"parameters":"second:15",//second:value 本次的学习时长
|
||||
"content": "学习课程",//事件的内容
|
||||
"objId": $this.courseInfo.id,//课程的id
|
||||
"objType": "1",//类型
|
||||
"source":"page",
|
||||
"objInfo": ""+$this.courseInfo.name,
|
||||
"aid":$this.userInfo.aid, //当前登录人的id
|
||||
"aname":$this.userInfo.name,//当前人的姓名
|
||||
"status": 1 //状态
|
||||
});
|
||||
"key": "StudyCourseOther",//课程学习的key
|
||||
"title": "非音视频课内容",//事件的标题
|
||||
"parameters":"second:15",//second:value 本次的学习时长
|
||||
"content": "学习课程",//事件的内容
|
||||
"objId": $this.courseInfo.id,//课程的id
|
||||
"objType": "1",//类型
|
||||
"source":"page",
|
||||
"objInfo": ""+$this.courseInfo.name,
|
||||
"aid":$this.userInfo.aid, //当前登录人的id
|
||||
"aname":$this.userInfo.name,//当前人的姓名
|
||||
"status": 1 //状态
|
||||
});
|
||||
$this.appendStudyOtherTime();
|
||||
}, 15000); //非音视频课程学习,十五秒后记录
|
||||
this.isContentType = this.contentData.contentType
|
||||
@@ -780,20 +783,20 @@
|
||||
|
||||
|
||||
this.$nextTick(function(){
|
||||
if (r.contentType == 10) {
|
||||
console.log('视频处理lastStudyTime',this.contentData.lastStudyTime)
|
||||
console.log('视频处理progressVideo',this.contentData.progressVideo)
|
||||
this.$refs.myVideoPlayer.updateProgressByClickBar2(this.contentData.lastStudyTime,this.contentData.progressVideo);
|
||||
}
|
||||
if (r.contentType == 10) {
|
||||
console.log('视频处理lastStudyTime',this.contentData.lastStudyTime)
|
||||
console.log('视频处理progressVideo',this.contentData.progressVideo)
|
||||
this.$refs.myVideoPlayer.updateProgressByClickBar2(this.contentData.lastStudyTime,this.contentData.progressVideo);
|
||||
}
|
||||
|
||||
let h=$this.$refs.coursePlayer.offsetHeight;
|
||||
//解决获取高度不正的问题
|
||||
if(h>400 && h<500){
|
||||
h=h+40;
|
||||
}else if(h>500){
|
||||
h=h+60;
|
||||
}
|
||||
$this.controlHeight=h-95;
|
||||
let h=$this.$refs.coursePlayer.offsetHeight;
|
||||
//解决获取高度不正的问题
|
||||
if(h>400 && h<500){
|
||||
h=h+40;
|
||||
}else if(h>500){
|
||||
h=h+60;
|
||||
}
|
||||
$this.controlHeight=h-95;
|
||||
})
|
||||
|
||||
|
||||
@@ -935,9 +938,9 @@
|
||||
this.interactRuning = true;
|
||||
let teacherId='';
|
||||
if(this.teachers.length>0){
|
||||
teacherId=this.teachers[0].teacherId;
|
||||
teacherId=this.teachers[0].teacherId;
|
||||
}else{
|
||||
teacherId=this.courseInfo.sysCreateAid
|
||||
teacherId=this.courseInfo.sysCreateAid
|
||||
}
|
||||
let postData = {
|
||||
objType: 1,
|
||||
@@ -1078,7 +1081,7 @@
|
||||
class: 'catalog-cell-state1'
|
||||
};
|
||||
}
|
||||
break;
|
||||
break;
|
||||
}
|
||||
return data;
|
||||
},
|
||||
@@ -1139,8 +1142,8 @@
|
||||
var markDiv = div.querySelector("#" + divId);
|
||||
console.log("去除水印 ---- gx markDiv ----",markDiv);
|
||||
if (markDiv) {
|
||||
console.log("执行去除水印 ---- gx markDiv ----",markDiv);
|
||||
div.removeChild(markDiv);
|
||||
console.log("执行去除水印 ---- gx markDiv ----",markDiv);
|
||||
div.removeChild(markDiv);
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1199,9 +1202,9 @@
|
||||
var time = localStorage.getItem('videoProgressData')
|
||||
var arr = time&&JSON.parse(time) || {}
|
||||
if(arr[this.blobId] && this.contentData.progressVideo<arr[this.blobId]) {
|
||||
postData.progressVideo = arr[this.blobId]
|
||||
// postData.contentId = this.contentData.id
|
||||
// postData.courseId = this.contentData.courseId
|
||||
postData.progressVideo = arr[this.blobId]
|
||||
// postData.contentId = this.contentData.id
|
||||
// postData.courseId = this.contentData.courseId
|
||||
}
|
||||
}
|
||||
//console.log('记录播放时间')
|
||||
@@ -1259,9 +1262,9 @@
|
||||
var time = localStorage.getItem('videoProgressData')
|
||||
var arr = time&&JSON.parse(time) || {}
|
||||
if(arr[this.blobId] && this.contentData.progressVideo<arr[this.blobId]) {
|
||||
postData.progressVideo = arr[this.blobId]
|
||||
// postData.contentId = this.contentData.id
|
||||
// postData.courseId = this.contentData.courseId
|
||||
postData.progressVideo = arr[this.blobId]
|
||||
// postData.contentId = this.contentData.id
|
||||
// postData.courseId = this.contentData.courseId
|
||||
}
|
||||
}
|
||||
//console.log('记录播放时间')
|
||||
@@ -1309,11 +1312,11 @@
|
||||
}
|
||||
//设置必须的字段
|
||||
if(rs.result.contents.length==1){
|
||||
$this.tab=2;
|
||||
//console.log('内容只有一个');
|
||||
$this.tab=2;
|
||||
//console.log('内容只有一个');
|
||||
}
|
||||
if(!rs.result.isCrowd){
|
||||
$this.$message.error('您没有查看该课程的权限');
|
||||
$this.$message.error('您没有查看该课程的权限');
|
||||
}
|
||||
// 是否播放
|
||||
this.isCrowd = rs.result.isCrowd
|
||||
@@ -1412,9 +1415,7 @@
|
||||
}
|
||||
}
|
||||
con.lastStudyTime = scon.lastStudyTime;
|
||||
console.log('====视频处理progressVideo1',scon.progressVideo);
|
||||
con.progressVideo = scon.progressVideo || 0;
|
||||
console.log('====视频处理progressVideo2',con.progressVideoo);
|
||||
//以下判断是为了兼容之前的问题,学习状态
|
||||
if (scon.status) {
|
||||
con.status = scon.status;
|
||||
@@ -1516,37 +1517,37 @@
|
||||
progress(val) {
|
||||
const progressValue = parseFloat(val) * 100;
|
||||
this.sendEventProgress = Number(progressValue.toFixed(2));
|
||||
},
|
||||
},
|
||||
saveStudyDuration(duration) { //保存本地存储的学习时长
|
||||
if (duration > 0) {
|
||||
//发送用户学习事件
|
||||
//console.log('保存到后台学习时长='+duration);
|
||||
let postData={
|
||||
"key": "StudyCourse",//课程学习的key
|
||||
"title": "学习课程",//事件的标题
|
||||
"parameters":"second:"+duration,//second:value,total:value 本次的学习时长
|
||||
"content": "学习课程【"+this.courseInfo.name+"】",//事件的内容
|
||||
"objId": this.courseInfo.id,//课程的id
|
||||
"objType": "1",//类型
|
||||
"source":"page",
|
||||
"objInfo": ""+this.courseInfo.name,
|
||||
"aid":this.userInfo.aid, //当前登录人的id
|
||||
"aname":this.userInfo.name,//当前人的姓名
|
||||
"status": 1, //状态
|
||||
"contentId": this.contentData.id,
|
||||
}
|
||||
if(this.resType == 10){
|
||||
postData.progress = this.sendEventProgress;
|
||||
}
|
||||
//静默处理
|
||||
apiStat.sendEvent(postData).then(rs=>{
|
||||
if(rs.status == 200) {
|
||||
// this.appendStartTime = new Date();//重新计时
|
||||
// studyUtil.clearStudyDuration(); //清除本地存储
|
||||
} else {
|
||||
console.log(rs.message);
|
||||
"key": "StudyCourse",//课程学习的key
|
||||
"title": "学习课程",//事件的标题
|
||||
"parameters":"second:"+duration,//second:value,total:value 本次的学习时长
|
||||
"content": "学习课程【"+this.courseInfo.name+"】",//事件的内容
|
||||
"objId": this.courseInfo.id,//课程的id
|
||||
"objType": "1",//类型
|
||||
"source":"page",
|
||||
"objInfo": ""+this.courseInfo.name,
|
||||
"aid":this.userInfo.aid, //当前登录人的id
|
||||
"aname":this.userInfo.name,//当前人的姓名
|
||||
"status": 1, //状态
|
||||
"contentId": this.contentData.id,
|
||||
}
|
||||
});
|
||||
if(this.resType == 10){
|
||||
postData.progress = this.sendEventProgress;
|
||||
}
|
||||
//静默处理
|
||||
apiStat.sendEvent(postData).then(rs=>{
|
||||
if(rs.status == 200) {
|
||||
// this.appendStartTime = new Date();//重新计时
|
||||
// studyUtil.clearStudyDuration(); //清除本地存储
|
||||
} else {
|
||||
console.log(rs.message);
|
||||
}
|
||||
});
|
||||
// let postAppendData = {
|
||||
// id: this.appentId,
|
||||
// studyId: this.studyId,
|
||||
@@ -1568,13 +1569,13 @@
|
||||
},
|
||||
//结束追加学习时长
|
||||
stopStudyTime(){
|
||||
//console.log('停止追加学习时长');
|
||||
this.isAppendTime=false;
|
||||
//暂停让他为空 从新计时
|
||||
this.appendStartTime = null
|
||||
if (this.appendHandle != null) {
|
||||
window.clearTimeout(this.appendHandle);
|
||||
}
|
||||
//console.log('停止追加学习时长');
|
||||
this.isAppendTime=false;
|
||||
//暂停让他为空 从新计时
|
||||
this.appendStartTime = null
|
||||
if (this.appendHandle != null) {
|
||||
window.clearTimeout(this.appendHandle);
|
||||
}
|
||||
},
|
||||
appendStudyTime() {
|
||||
// 暂停的时候重新从十五秒开始计时
|
||||
@@ -1596,11 +1597,11 @@
|
||||
this.appendHandle && window.clearTimeout(this.appendHandle);
|
||||
//启动下次追加学习时长
|
||||
this.appendHandle = setTimeout(() => {
|
||||
let endTime = new Date().getTime();
|
||||
this.appentInterval = 60
|
||||
let totalTime = Math.round((endTime - this.appendStartTime) / 1000);
|
||||
this.appendStudyTime();
|
||||
this.saveStudyDuration(totalTime)
|
||||
let endTime = new Date().getTime();
|
||||
this.appentInterval = 60
|
||||
let totalTime = Math.round((endTime - this.appendStartTime) / 1000);
|
||||
this.appendStudyTime();
|
||||
this.saveStudyDuration(totalTime)
|
||||
}, this.appentInterval * 1000);
|
||||
},
|
||||
|
||||
@@ -1666,55 +1667,55 @@
|
||||
},
|
||||
handleAudioTimeUpdate(currentTime) {
|
||||
// if(this.contentStudysLength.length == 0){
|
||||
let params = {
|
||||
studyId: this.studyId, //学习id,
|
||||
courseId: this.courseId, //课程id,
|
||||
contentId: this.contentData.id, //内容id,
|
||||
contentType: this.contentData.contentType,
|
||||
contentName: this.contentData.contentName, //内容名称
|
||||
progress: 1,
|
||||
status: 2,
|
||||
contentTotal: this.totalContent
|
||||
};
|
||||
if(currentTime > 2 && this.trueFalse){
|
||||
apiStudy.studyContent(params).then(()=>{
|
||||
if(this.contentData.status<2){
|
||||
this.contentData.status = 2;
|
||||
}
|
||||
})
|
||||
this.trueFalse = false
|
||||
}
|
||||
let params = {
|
||||
studyId: this.studyId, //学习id,
|
||||
courseId: this.courseId, //课程id,
|
||||
contentId: this.contentData.id, //内容id,
|
||||
contentType: this.contentData.contentType,
|
||||
contentName: this.contentData.contentName, //内容名称
|
||||
progress: 1,
|
||||
status: 2,
|
||||
contentTotal: this.totalContent
|
||||
};
|
||||
if(currentTime > 2 && this.trueFalse){
|
||||
apiStudy.studyContent(params).then(()=>{
|
||||
if(this.contentData.status<2){
|
||||
this.contentData.status = 2;
|
||||
}
|
||||
})
|
||||
this.trueFalse = false
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
::v-deep .el-icon-arrow-down{
|
||||
color: #000;
|
||||
font-weight: 900;
|
||||
font-size: 16px;
|
||||
}
|
||||
.el-menu,
|
||||
.el-menu-item,
|
||||
.el-submenu__title {
|
||||
background-color: transparent !important; /* 设置背景色为透明,以移除默认的背景颜色变化 */
|
||||
color: inherit !important; /* 确保文字颜色不变,如果需要的话 */
|
||||
}
|
||||
::v-deep .el-icon-arrow-down{
|
||||
color: #000;
|
||||
font-weight: 900;
|
||||
font-size: 16px;
|
||||
}
|
||||
.el-menu,
|
||||
.el-menu-item,
|
||||
.el-submenu__title {
|
||||
background-color: transparent !important; /* 设置背景色为透明,以移除默认的背景颜色变化 */
|
||||
color: inherit !important; /* 确保文字颜色不变,如果需要的话 */
|
||||
}
|
||||
|
||||
/* 取消选中效果 */
|
||||
.el-menu-item.is-active,
|
||||
.el-submenu__title.is-active {
|
||||
background-color: transparent !important; /* 移除选中时的背景色 */
|
||||
color: inherit !important; /* 保持文字颜色与未选中时一致,如果需要的话 */
|
||||
}
|
||||
/* 取消选中效果 */
|
||||
.el-menu-item.is-active,
|
||||
.el-submenu__title.is-active {
|
||||
background-color: transparent !important; /* 移除选中时的背景色 */
|
||||
color: inherit !important; /* 保持文字颜色与未选中时一致,如果需要的话 */
|
||||
}
|
||||
|
||||
/* 如果有特定的 hover 样式,也可以取消 */
|
||||
.el-menu-item:hover,
|
||||
.el-submenu__title:hover {
|
||||
background-color: transparent !important; /* 移除鼠标悬停时的背景色变化 */
|
||||
color: inherit !important; /* 保持文字颜色不变 */
|
||||
}
|
||||
/* 如果有特定的 hover 样式,也可以取消 */
|
||||
.el-menu-item:hover,
|
||||
.el-submenu__title:hover {
|
||||
background-color: transparent !important; /* 移除鼠标悬停时的背景色变化 */
|
||||
color: inherit !important; /* 保持文字颜色不变 */
|
||||
}
|
||||
//内容块样式定义
|
||||
.course-content {
|
||||
min-height: 745px;
|
||||
@@ -1736,7 +1737,7 @@
|
||||
// overflow: auto;
|
||||
}
|
||||
.course-control{ //内容控制区域
|
||||
width: 420px;
|
||||
width: 420px;
|
||||
}
|
||||
}
|
||||
.course-infobox {
|
||||
@@ -1842,7 +1843,7 @@
|
||||
padding: 10px 30px 30px 30px;
|
||||
}
|
||||
|
||||
//以下是未整理的样式,上面的整理之后的样式
|
||||
//以下是未整理的样式,上面的整理之后的样式
|
||||
.coures-note {
|
||||
min-height: 500px;
|
||||
padding-left: 17px;
|
||||
@@ -2221,9 +2222,9 @@
|
||||
width: 60px !important;
|
||||
height: 60px !important;
|
||||
border-radius: 50%;
|
||||
img{
|
||||
width: 100% !important;
|
||||
}
|
||||
img{
|
||||
width: 100% !important;
|
||||
}
|
||||
}
|
||||
.teacher-text {
|
||||
width: 68px;
|
||||
|
||||
Reference in New Issue
Block a user