|
@@ -5,7 +5,8 @@ import {
|
|
|
onUnmounted,
|
|
|
ref,
|
|
|
Transition,
|
|
|
- computed
|
|
|
+ computed,
|
|
|
+ nextTick
|
|
|
} from 'vue';
|
|
|
import styles from './index.module.less';
|
|
|
import 'plyr/dist/plyr.css';
|
|
@@ -100,7 +101,10 @@ export default defineComponent({
|
|
|
modelAttendStatus: false, // 布置作业提示弹窗
|
|
|
modalAttendMessage: '本节课未设置课后训练,是否继续?',
|
|
|
modelTrainStatus: false, // 训练设置
|
|
|
- homeworkStatus: true // 布置作业完成时
|
|
|
+ homeworkStatus: true, // 布置作业完成时
|
|
|
+ removeVisiable: false,
|
|
|
+ removeTitle: '',
|
|
|
+ removeContent: ''
|
|
|
});
|
|
|
const activeData = reactive({
|
|
|
// isAutoPlay: false, // 是否自动播放
|
|
@@ -332,11 +336,12 @@ export default defineComponent({
|
|
|
for (let i = 0; i < data.itemList.length; i++) {
|
|
|
const activeItem = data.itemList[i];
|
|
|
if (activeItem.type === 'VIDEO' && activeItem.videoEle) {
|
|
|
- activeItem.videoEle.stop();
|
|
|
+ console.log(activeItem.videoEle, 'activeItem.videoEle');
|
|
|
+ activeItem.videoEle?.pause();
|
|
|
}
|
|
|
|
|
|
if (activeItem.type === 'SONG' && activeItem.audioEle) {
|
|
|
- activeItem.audioEle.stop();
|
|
|
+ activeItem.audioEle?.stop();
|
|
|
}
|
|
|
// console.log('🚀 ~ activeItem:', activeItem)
|
|
|
// 停止曲谱的播放
|
|
@@ -505,9 +510,12 @@ export default defineComponent({
|
|
|
clearTimeout(activeData.timer);
|
|
|
message.destroyAll();
|
|
|
// item.autoPlay = false;
|
|
|
- // nextTick(() => {
|
|
|
- // item.videoEle?.play();
|
|
|
- // });
|
|
|
+ nextTick(() => {
|
|
|
+ if (item.error) {
|
|
|
+ item.videoEle?.src(item.content);
|
|
|
+ // item.videoEle?.onPlay();
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
}
|
|
|
// requestAnimationFrame(() => {
|
|
@@ -591,10 +599,10 @@ export default defineComponent({
|
|
|
const activeItem = data.itemList[popupData.activeIndex];
|
|
|
// 暂停视频和曲谱的播放
|
|
|
if (activeItem.type === 'VIDEO' && activeItem.videoEle) {
|
|
|
- activeItem.videoEle.pause();
|
|
|
+ activeItem.videoEle?.stop();
|
|
|
}
|
|
|
if (activeItem.type === 'SONG' && activeItem.audioEle) {
|
|
|
- activeItem.audioEle.stop();
|
|
|
+ activeItem.audioEle?.stop();
|
|
|
}
|
|
|
if (activeItem.type === 'MUSIC') {
|
|
|
activeItem.iframeRef?.contentWindow?.postMessage(
|
|
@@ -723,6 +731,9 @@ export default defineComponent({
|
|
|
setModelOpen();
|
|
|
}
|
|
|
}}
|
|
|
+ onError={() => {
|
|
|
+ m.error = true;
|
|
|
+ }}
|
|
|
/>
|
|
|
<Transition name="van-fade">
|
|
|
{!m.isprepare && (
|
|
@@ -1078,18 +1089,13 @@ export default defineComponent({
|
|
|
</div>
|
|
|
</NModal>
|
|
|
|
|
|
-
|
|
|
-
|
|
|
- <NModal
|
|
|
- class={['background']}
|
|
|
- v-model:show={showModalTone.value}
|
|
|
- >
|
|
|
- <div>
|
|
|
- <PlaceholderTone onClose={()=>{
|
|
|
- showModalTone.value = false
|
|
|
- }}></PlaceholderTone>
|
|
|
- </div>
|
|
|
-
|
|
|
+ <NModal class={['background']} v-model:show={showModalTone.value}>
|
|
|
+ <div>
|
|
|
+ <PlaceholderTone
|
|
|
+ onClose={() => {
|
|
|
+ showModalTone.value = false;
|
|
|
+ }}></PlaceholderTone>
|
|
|
+ </div>
|
|
|
</NModal>
|
|
|
<NModal
|
|
|
v-model:show={showModalTime.value}
|
|
@@ -1101,6 +1107,30 @@ export default defineComponent({
|
|
|
<TimerMeter></TimerMeter>
|
|
|
</div>
|
|
|
</NModal>
|
|
|
+
|
|
|
+ <NModal
|
|
|
+ v-model:show={data.removeVisiable}
|
|
|
+ preset="card"
|
|
|
+ class={['modalTitle', styles.removeVisiable]}
|
|
|
+ title={data.removeTitle}>
|
|
|
+ <div class={styles.studentRemove}>
|
|
|
+ <p>{data.removeContent}</p>
|
|
|
+
|
|
|
+ <NSpace class={styles.btnGroupModal} justify="center">
|
|
|
+ <NButton
|
|
|
+ round
|
|
|
+ type="primary"
|
|
|
+ onClick={() => {
|
|
|
+ //
|
|
|
+ }}>
|
|
|
+ 确定
|
|
|
+ </NButton>
|
|
|
+ <NButton round onClick={() => (data.removeVisiable = false)}>
|
|
|
+ 取消
|
|
|
+ </NButton>
|
|
|
+ </NSpace>
|
|
|
+ </div>
|
|
|
+ </NModal>
|
|
|
</div>
|
|
|
);
|
|
|
}
|