From 480225f049e0aa0881ebfedfdbefacae1177c37b Mon Sep 17 00:00:00 2001 From: binbin_pan Date: Wed, 25 Dec 2024 14:27:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=80=8D=E6=95=B0=E6=92=AD?= =?UTF-8?q?=E6=94=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/YNEduApp/index/index.vue | 2 +- .../YNEduApp/learn/components/VideoStudy.vue | 97 -------------- pages/YNEduApp/learn/learn copy.vue | 81 ------------ pages/YNEduApp/learn/learn.vue | 119 +++++++++++++++++- pages/YNEduApp/learnProj/learnProj.vue | 77 +----------- pages/YNEduApp/learnProj/learnProjDetail.vue | 7 +- 6 files changed, 121 insertions(+), 262 deletions(-) delete mode 100644 pages/YNEduApp/learn/components/VideoStudy.vue delete mode 100644 pages/YNEduApp/learn/learn copy.vue diff --git a/pages/YNEduApp/index/index.vue b/pages/YNEduApp/index/index.vue index 8876cd0..a153bfc 100644 --- a/pages/YNEduApp/index/index.vue +++ b/pages/YNEduApp/index/index.vue @@ -50,7 +50,7 @@ - + 可联系管理员发布 diff --git a/pages/YNEduApp/learn/components/VideoStudy.vue b/pages/YNEduApp/learn/components/VideoStudy.vue deleted file mode 100644 index beef96a..0000000 --- a/pages/YNEduApp/learn/components/VideoStudy.vue +++ /dev/null @@ -1,97 +0,0 @@ - - - - - diff --git a/pages/YNEduApp/learn/learn copy.vue b/pages/YNEduApp/learn/learn copy.vue deleted file mode 100644 index 85693b4..0000000 --- a/pages/YNEduApp/learn/learn copy.vue +++ /dev/null @@ -1,81 +0,0 @@ - - - - - diff --git a/pages/YNEduApp/learn/learn.vue b/pages/YNEduApp/learn/learn.vue index 3ad9505..b1110c2 100644 --- a/pages/YNEduApp/learn/learn.vue +++ b/pages/YNEduApp/learn/learn.vue @@ -5,10 +5,28 @@ id="myVideo" :src="path" :initial-time="studyDuration" + :show-progress="true" + :enable-progress-gesture="false" @error="videoErrorCallback" @timeupdate="videoTimeUpdate" controls - /> + > + + x {{ currentRate }} + + + + {{ item }} + + + { + that.rateShow = true + }) + console.log('rateShow', that.rateShow) + }, + // 切换倍速 + switchRate(e) { + let that = this + let rate = Number(e.currentTarget.dataset.rate) + that.currentRate = rate + that.rateShow = false + this.video.playbackRate(rate) + }, videoErrorCallback(e) { console.log('视频错误信息:', e) }, // 视频播放时间更新 videoTimeUpdate(e) { let newTime = Math.ceil(e.detail.currentTime) + if (Math.abs(newTime - this.currentTime) > 1.5) { + console.log('手动拖动了进度条,重置时间到上传播放时间') + this.video.seek(this.currentTime) + return + } if (this.currentTime != newTime) { this.currentTime = newTime console.log('🚀 ~ 视频播放时间: ~ this.currentTime:', this.currentTime) @@ -235,10 +284,10 @@ export default { } */ .video { - width: 100vw; + width: 100%; height: 260px; uni-video { - width: 100vw; + width: 100%; height: 100%; } } @@ -248,8 +297,68 @@ export default { width: 100px; } -::v-deep .u-modal__content { +/* ::v-deep .u-modal__content { flex-direction: column; align-items: center; +} */ + +/* 以下为视频CSS */ +.multi-list.full-screen.vertical { + height: 100vh !important; + padding: 8vh 0; } +.multi-list.full-screen.horizontal { + height: 100vw !important; + padding: 8vw 0; +} +.multi { + position: absolute; + right: 30rpx; + top: 50%; + transform: translateY(-50%); + z-index: 999998; + width: 100rpx; + color: #fff; + padding: 10rpx 0; + text-align: center; + transition: color ease 0.3s; +} +.multi.rate { + right: 30rpx; +} +.multi-list { + position: absolute; + height: 100%; + width: 0; + background-color: rgba(0, 0, 0, 0.65); + top: 0; + right: 0; + transition: width 0.3s ease; + z-index: 999999; + box-sizing: border-box; + padding: 50rpx 0; +} +.multi-list.rate { + padding: 25rpx 0; +} +.multi-list.active { + width: 300rpx; +} +.multi-item { + text-align: center; + color: #fff; + line-height: 80rpx; + transition: color ease 0.3s; +} +.multi-item.rate { + line-height: 70rpx; +} +.multi-item:hover, +.multi:hover { + color: #00d8ff; +} +.multi-item.active { + color: #00d8ff; +} +/* 视频CSS结束 */ diff --git a/pages/YNEduApp/learnProj/learnProj.vue b/pages/YNEduApp/learnProj/learnProj.vue index 5baf7d5..5f35557 100644 --- a/pages/YNEduApp/learnProj/learnProj.vue +++ b/pages/YNEduApp/learnProj/learnProj.vue @@ -9,16 +9,6 @@
-

- +

@@ -110,71 +100,6 @@ export default { ], // 项目列表 projList: [] - // projList: [ - // { - // id: 1, - // img: 'https://cdn.uviewui.com/uview/swiper/1.jpg', - // title: '应急抢险', - // star: 5, - // avatar: '/static/eduImg/avatar.jpg', - // user: '管理员', - // percent: 71 - // }, - // { - // id: 2, - // img: 'https://cdn.uviewui.com/uview/swiper/1.jpg', - // title: '应急抢险', - // star: 3, - // avatar: '/static/eduImg/avatar.jpg', - // user: '管理员', - // percent: 33 - // }, - // { - // id: 3, - // img: 'https://cdn.uviewui.com/uview/swiper/1.jpg', - // title: '应急抢险', - // star: 2, - // avatar: '/static/eduImg/avatar.jpg', - // user: '管理员', - // percent: 94 - // }, - // { - // id: 4, - // img: 'https://cdn.uviewui.com/uview/swiper/1.jpg', - // title: '应急抢险', - // star: 4, - // avatar: '/static/eduImg/avatar.jpg', - // user: '管理员', - // percent: 76 - // }, - // { - // id: 5, - // img: 'https://cdn.uviewui.com/uview/swiper/1.jpg', - // title: '应急抢险', - // star: 1, - // avatar: '/static/eduImg/avatar.jpg', - // user: '管理员', - // percent: 63 - // }, - // { - // id: 6, - // img: 'https://cdn.uviewui.com/uview/swiper/1.jpg', - // title: '应急抢险', - // star: 5, - // avatar: '/static/eduImg/avatar.jpg', - // user: '管理员', - // percent: 52 - // }, - // { - // id: 7, - // img: 'https://cdn.uviewui.com/uview/swiper/1.jpg', - // title: '应急抢险', - // star: 4, - // avatar: '/static/eduImg/avatar.jpg', - // user: '管理员', - // percent: 18 - // } - // ] } }, mounted() { diff --git a/pages/YNEduApp/learnProj/learnProjDetail.vue b/pages/YNEduApp/learnProj/learnProjDetail.vue index 3e930f8..17c5de6 100644 --- a/pages/YNEduApp/learnProj/learnProjDetail.vue +++ b/pages/YNEduApp/learnProj/learnProjDetail.vue @@ -153,7 +153,8 @@ export default { eligibility: 0, learnIconObj: { color: '#1A63AC', size: '18', type: 'calendar' }, pracIconObj: { color: '#38B022', size: '18', type: 'compose' }, - listStage: [] + listStage: [], + isSpeed: '' } }, onLoad(params) { @@ -188,6 +189,7 @@ export default { this.listStageContentNum = res.data.listStageContentNum this.eligibility = res.data.eligibility this.listStage = res.data.listStage + this.isSpeed = res.data.isSpeed if (this.listStage.length > 0) { this.listStage.forEach((item, index) => { this.$set(item, 'isShow', true) @@ -210,7 +212,8 @@ export default { path: item.path, // 视频路径 studyDuration: item.studyDuration || 0, // 学习时长 allStudyDuration: item.allStudyDuration, // 总时长 - isEnd: item.studyPercentage >= 100 ? true : false + isEnd: item.studyPercentage >= 100 ? true : false, + isSpeed: this.isSpeed } console.log('🚀 ~ toggleTheoryLearn ~ params:', params) console.log('🚀 ~ toggleTheoryLearn ~ item:', item.path)