|
@@ -126,7 +126,7 @@
|
|
|
<Icon type="ios-search" @click="openViewer(items.img)" />
|
|
|
</p>
|
|
|
</div>
|
|
|
-
|
|
|
+
|
|
|
<!-- <div v-for="(rtItem, rtIndex) in items.pageData" :key="rtIndex + '' + index" class="record-data-item">
|
|
|
<span class="event-tag">{{ rtItem.Event }}</span>
|
|
|
</div> -->
|
|
@@ -202,7 +202,7 @@ export default {
|
|
|
Receive,
|
|
|
DataCount,
|
|
|
},
|
|
|
- data () {
|
|
|
+ data() {
|
|
|
return {
|
|
|
isLoad: false,
|
|
|
player: undefined,
|
|
@@ -216,10 +216,10 @@ export default {
|
|
|
height: "450px",
|
|
|
controlBar: {
|
|
|
children: [// 写在这里,会在播放条上显示出来,并且是按照写的顺序显示位置。
|
|
|
- {name: "playToggle"}, //播放暂停按钮
|
|
|
- {name: "currentTimeDisplay"}, //当前播放时间
|
|
|
- {name: "progressControl"}, //播放进度条
|
|
|
- {name: "durationDisplay"}, //总时间
|
|
|
+ { name: "playToggle" }, //播放暂停按钮
|
|
|
+ { name: "currentTimeDisplay" }, //当前播放时间
|
|
|
+ { name: "progressControl" }, //播放进度条
|
|
|
+ { name: "durationDisplay" }, //总时间
|
|
|
{
|
|
|
name: "playbackRateMenuButton",
|
|
|
playbackRates: [0.5, 1, 1.5, 2, 2.5]
|
|
@@ -228,8 +228,8 @@ export default {
|
|
|
name: "volumePanel", //音量控制
|
|
|
inline: false, //不使用水平方式
|
|
|
},
|
|
|
- {name: "FullscreenToggle"}, //全屏
|
|
|
- {name: "DashBoardEchart"}
|
|
|
+ { name: "FullscreenToggle" }, //全屏
|
|
|
+ { name: "DashBoardEchart" }
|
|
|
],
|
|
|
},
|
|
|
/* html5: {
|
|
@@ -266,13 +266,13 @@ export default {
|
|
|
courseNow: undefined,
|
|
|
}
|
|
|
},
|
|
|
- created () {
|
|
|
+ created() {
|
|
|
this.hiTeachEvent = this.$GLOBAL.HI_TEACH_EVENT()
|
|
|
this.events = Object.keys(this.hiTeachEvent)
|
|
|
this.fnEvents = this.events.filter(key => this.hiTeachEvent[key].type === 'fn')
|
|
|
this.recordInfo = this.$route.params.record
|
|
|
this.courseNow = this.$route.params.courseNow
|
|
|
- if(!this.recordInfo) {
|
|
|
+ if (!this.recordInfo) {
|
|
|
this.$router.go(-1)
|
|
|
} else {
|
|
|
this.recordInfo.startTime = this.dateFormat(this.recordInfo.startTime)
|
|
@@ -284,13 +284,13 @@ export default {
|
|
|
this.getPageList()
|
|
|
}
|
|
|
},
|
|
|
- mounted () {
|
|
|
+ mounted() {
|
|
|
// this.getVideo()
|
|
|
},
|
|
|
methods: {
|
|
|
getVideo() {
|
|
|
var that = this
|
|
|
- this.player = videojs(document.getElementById("recordVideo"), this.playerOptions, function() {
|
|
|
+ this.player = videojs(document.getElementById("recordVideo"), this.playerOptions, function () {
|
|
|
this.on('error', (e) => {
|
|
|
that.hasVideo = false
|
|
|
that.isShowVd = false
|
|
@@ -298,7 +298,7 @@ export default {
|
|
|
})
|
|
|
//时间切片
|
|
|
this.player.markers({
|
|
|
- markerStyle: {
|
|
|
+ markerStyle: {
|
|
|
width: "16px",
|
|
|
height: "16px",
|
|
|
top: "-22px",
|
|
@@ -333,7 +333,7 @@ export default {
|
|
|
|
|
|
//标记点击事件
|
|
|
onMarkerClick: function (marker) {
|
|
|
-
|
|
|
+
|
|
|
},
|
|
|
//视频播放到标记点触发的时间
|
|
|
onMarkerReached: function (marker) {
|
|
@@ -353,7 +353,7 @@ export default {
|
|
|
that.getCurPage(marker.page)
|
|
|
},
|
|
|
});
|
|
|
-
|
|
|
+
|
|
|
this.isLoad = false
|
|
|
},
|
|
|
// 根据SokratesRecords.json处理page数据
|
|
@@ -395,7 +395,7 @@ export default {
|
|
|
let baseUrl = `${sas.url}/${sas.name}/records/${this.recordInfo.id}/IES/base.json?${sas.sas}`
|
|
|
this.baseData = JSON.parse(await this.$tools.getFile(baseUrl) || '{}')
|
|
|
this.baseData.student.forEach((item, index) => {
|
|
|
- if(item.name === this.$store.state.userInfo.name) {
|
|
|
+ if (item.name === this.$store.state.userInfo.name) {
|
|
|
this.nowStuInfo = item
|
|
|
this.nowStuInfo.index = index
|
|
|
}
|
|
@@ -405,6 +405,16 @@ export default {
|
|
|
}
|
|
|
let r = this.sokratesRecords.find(item => item.Event === 'PgidList')
|
|
|
let pgids = r ? r.PgIdList : []
|
|
|
+
|
|
|
+ //这里需要判断录制开始的pageid
|
|
|
+ let startInfo = this.sokratesRecords.find(item => item.Event === 'EzsStartRecord')
|
|
|
+ let startId = startInfo ? startInfo.Pgid : ''
|
|
|
+ let startIndex = 0
|
|
|
+ if (startId) {
|
|
|
+ startIndex = pgids.findIndex(item => item === startId)
|
|
|
+ }
|
|
|
+ pgids = pgids.slice(startIndex)
|
|
|
+
|
|
|
let havePage = 0
|
|
|
pgids.forEach((item, index) => {
|
|
|
let page = {}
|
|
@@ -479,7 +489,7 @@ export default {
|
|
|
let pageInfo = this.markers.find(item => {
|
|
|
return item.page === page
|
|
|
})
|
|
|
- if(pageInfo) {
|
|
|
+ if (pageInfo) {
|
|
|
this.player.currentTime(pageInfo.time)
|
|
|
}
|
|
|
},
|
|
@@ -491,7 +501,7 @@ export default {
|
|
|
let pageInfo = this.markers.find(item => {
|
|
|
return item.page === page
|
|
|
})
|
|
|
- if(pageInfo) {
|
|
|
+ if (pageInfo) {
|
|
|
this.player.currentTime(pageInfo.time)
|
|
|
if (!this.openHtexViewer) {
|
|
|
this.player.play()
|
|
@@ -511,16 +521,29 @@ export default {
|
|
|
this.player.play()
|
|
|
},
|
|
|
//查看电子笔记
|
|
|
- viewENote() {
|
|
|
+ async viewENote() {
|
|
|
+ let eNote
|
|
|
if (this.recordInfo.eNote) {
|
|
|
- window.open('/web/viewer.html?file=' + encodeURIComponent(this.recordInfo.eNote))
|
|
|
+ eNote = this.recordInfo.eNote
|
|
|
} else {
|
|
|
- this.$Message.warning(this.$t('cusMgt.rcd.noNote'))
|
|
|
+ // let sasInfo = {}
|
|
|
+ // let blobInfo = this.recordInfo.scope === 'school' ? this.$store.state.user.schoolProfile : this.$store.state.user.userProfile
|
|
|
+ // sasInfo.sas = '?' + blobInfo.blob_sas
|
|
|
+ // sasInfo.name = this.recordInfo.scope ? this.$store.state.userInfo.schoolCode : this.$store.state.userInfo.TEAMModelId
|
|
|
+ // sasInfo.url = blobInfo.blob_uri.slice(0, blobInfo.blob_uri.lastIndexOf(sasInfo.name) - 1)
|
|
|
+ let sasInfo = await this.$tools.getBlobSas(this.recordInfo.scope === 'school' ? this.recordInfo.school : this.recordInfo.tmdid)
|
|
|
+ eNote = `${sasInfo.url}/${sasInfo.name}/records/${this.recordInfo.id}/Note.pdf${sasInfo.sas}`
|
|
|
}
|
|
|
+ window.open('/web/viewer.html?file=' + encodeURIComponent(eNote))
|
|
|
+ // if (this.recordInfo.eNote) {
|
|
|
+ // window.open('/web/viewer.html?file=' + encodeURIComponent(this.recordInfo.eNote))
|
|
|
+ // } else {
|
|
|
+ // this.$Message.warning(this.$t('cusMgt.rcd.noNote'))
|
|
|
+ // }
|
|
|
},
|
|
|
//下载电子笔记
|
|
|
async loadNote() {
|
|
|
- if(this.recordInfo.eNote) {
|
|
|
+ if (this.recordInfo.eNote) {
|
|
|
// 已经有授权,在查看文件时不需要再次获取授权
|
|
|
let blobData = this.recordInfo.eNote
|
|
|
const downloadRes = async () => {
|
|
@@ -538,7 +561,7 @@ export default {
|
|
|
this.$Message.warning("暂无电子笔记")
|
|
|
}
|
|
|
},
|
|
|
- openViewer(item){
|
|
|
+ openViewer(item) {
|
|
|
this.$hevueImgPreview(item)
|
|
|
},
|
|
|
// 筛选
|
|
@@ -568,7 +591,7 @@ export default {
|
|
|
},
|
|
|
computed: {
|
|
|
curImg() {
|
|
|
- if (this.pageList[this.curPage]) {
|
|
|
+ if (this.pageList[this.curPage - 1]) {
|
|
|
return this.pageList[this.curPage - 1].img
|
|
|
} else {
|
|
|
return ""
|
|
@@ -583,8 +606,7 @@ export default {
|
|
|
</style>
|
|
|
<style lang="less">
|
|
|
.class-content {
|
|
|
-
|
|
|
- .video-js .vjs-big-play-button{
|
|
|
+ .video-js .vjs-big-play-button {
|
|
|
top: 50%;
|
|
|
left: 50%;
|
|
|
margin-left: -20px;
|
|
@@ -592,20 +614,19 @@ export default {
|
|
|
display: none;
|
|
|
}
|
|
|
|
|
|
- .video-js .vjs-control-bar{
|
|
|
+ .video-js .vjs-control-bar {
|
|
|
display: flex;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
.vjs-marker::after {
|
|
|
- content: '';
|
|
|
+ content: "";
|
|
|
height: 0px;
|
|
|
width: 0px;
|
|
|
border: 3px transparent solid;
|
|
|
display: block;
|
|
|
position: absolute;
|
|
|
bottom: -10px;
|
|
|
- z-index:-1;
|
|
|
+ z-index: -1;
|
|
|
border-right: 8px solid transparent;
|
|
|
border-top: 15px solid orange;
|
|
|
border-left: 8px solid transparent;
|
|
@@ -620,7 +641,7 @@ export default {
|
|
|
z-index: 101;
|
|
|
}
|
|
|
}
|
|
|
-.owner-student-client-icon{
|
|
|
+.owner-student-client-icon {
|
|
|
font-size: 30px;
|
|
|
padding: 5px;
|
|
|
color: #ffffff;
|