From e360ef37612979275b52707d1fab31bdeb9ea387 Mon Sep 17 00:00:00 2001 From: yangjun <1173114630@qq.com> Date: Wed, 18 Dec 2024 17:24:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../site/common/video/videojs/viewPage.vue | 180 ++++++++++++++---- .../components/ZyInfoDetailForm copy.vue | 4 +- .../zy/zyInfo/components/ZyInfoDetailForm.vue | 54 +----- 3 files changed, 149 insertions(+), 89 deletions(-) diff --git a/src/views/site/common/video/videojs/viewPage.vue b/src/views/site/common/video/videojs/viewPage.vue index 4002428..1696759 100644 --- a/src/views/site/common/video/videojs/viewPage.vue +++ b/src/views/site/common/video/videojs/viewPage.vue @@ -27,28 +27,54 @@
-
{{ mainVideoCardBoxTitle || '' }}
- -
- 本教室容量:{{ktangInfo?.jiaoshirongliang?.jsrl || ' '}}座位 - 选课人数:{{ ktangInfo.xkrs || ' ' }} - AI识别出勤人数: {{ ktangInfo?.kcDetectionDetailed?.num||'-' }} - - - - - ? - - - -
+ + +
{{ mainVideoCardBoxTitle || '' }}
+
+ 本教室容量:{{ktangInfo?.jiaoshirongliang?.jsrl || ' '}}座位 + 选课人数:{{ ktangInfo.xkrs || ' ' }} + AI识别出勤人数: {{ ktangInfo?.kcDetectionDetailed?.num||'-' }} + + + + + ? + + + +
+
+ +
+ 说明:目前部分教室摄像头拍摄画面无法覆盖到全体学生,AI识别出勤人数仅供参考 +
+
+
+ + +
教师近景
+
 
+ +
+ +
学生全景
+
 
+ +
+ +
PPT
+
 
+ +
+ +
教师全景
+
 
+ +
+
-
@@ -77,20 +103,46 @@ - - + +
- + {{ item?.xm }} - 显示缩略窗口 - 隐藏缩略窗口 + +
 
-
- + +
+ + + + +
+
+ 二分屏 +
+
+
+
+ + +
+
+ 三分屏 +
+
+
+
+ + +
+
+ 四分屏
@@ -166,6 +218,7 @@ const suibiList = ref([]) const isError = ref(false); const tkbjVisible = ref(false); const playStatus = ref(false); +const fpxsShow = ref('1'); const model = reactive>({ notes:'' }); @@ -202,6 +255,7 @@ onMounted(() => { //按教师编号加载数据,屏蔽掉无效的,不分页 list({ pageSize: -1, sfyx: '0', jsbh: route.query.id }).then(res => { let list = (res?.records) ?? []; + console.log("🚀 ~ list ~ list:", list) tableData.value = list; tableData.value.forEach(x => x.isShow = true);//默认展开 let zjData = tableData.value.find(x => x.xm == '教师近景') || {}; @@ -266,11 +320,11 @@ function funpingjia(record) { */ function loadEnd(player){ nextTick(() => { - player.on('play',() => { - setTimeout(() => { - player.pause(); - },2000); - }) + // player.on('play',() => { + // setTimeout(() => { + // player.pause(); + // },2000); + // }) }) } @@ -282,6 +336,7 @@ function initVideo(key){ } function changeLive(item:any){ + fpxsShow.value = '1' let url = item.pullUrl let mainVideo = document.querySelector('#mainVideo'); // mainVideo?.player?.src([{ type:'application/x-mpegURL',src: 'http://127.0.0.1/live_hls/a.m3u8' }]) @@ -304,6 +359,56 @@ function changeLive(item:any){ // }) } + +function changeJfpLive(type){ + fpxsShow.value = type; + let item= tableData.value.find(x => x.xm == '教师近景') || {}; + let url = item.pullUrl + let mainVideo = document.querySelector('#mainVideo'); + mainVideo?.player?.src([{ type:'application/x-mpegURL',src: url }]) + if(type==2){ + let item2= tableData.value.find(x => x.xm == '学生全景') || {}; + let url2 = item2.pullUrl + let main2Video = document.querySelector('#main2Video'); + main2Video?.player?.src([{ type:'application/x-mpegURL',src: url2 }]) + mainVideoCardBoxTitle.value = "二分屏"; + }else if(type == 3){ + + let item2= tableData.value.find(x => x.xm == '学生全景') || {}; + let url2 = item2.pullUrl + let main2Video = document.querySelector('#main2Video'); + main2Video?.player?.src([{ type:'application/x-mpegURL',src: url2 }]) + mainVideoCardBoxTitle.value = "二分屏"; + + let item3 = tableData.value.find(x => x.xm == 'PPT') || {}; + let url3 = item3.pullUrl + let main3Video = document.querySelector('#main3Video'); + main3Video?.player?.src([{ type:'application/x-mpegURL',src: url3 }]) + mainVideoCardBoxTitle.value = "三分屏"; + }else if(type == 4){ + + let item2= tableData.value.find(x => x.xm == '学生全景') || {}; + let url2 = item2.pullUrl + let main2Video = document.querySelector('#main2Video'); + main2Video?.player?.src([{ type:'application/x-mpegURL',src: url2 }]) + mainVideoCardBoxTitle.value = "二分屏"; + + let item3 = tableData.value.find(x => x.xm == 'PPT') || {}; + let url3 = item3.pullUrl + let main3Video = document.querySelector('#main3Video'); + main3Video?.player?.src([{ type:'application/x-mpegURL',src: url3 }]) + mainVideoCardBoxTitle.value = "三分屏"; + + let item4 = tableData.value.find(x => x.xm == '教师全景') || {}; + let url4 = item4.pullUrl + let main4Video = document.querySelector('#main4Video'); + main4Video?.player?.src([{ type:'application/x-mpegURL',src: url4 }]) + mainVideoCardBoxTitle.value = "四分屏"; + } + +} + + function mainVideoLoadEnd(player){ setTimeout(() => { setTimeout(() => { @@ -563,4 +668,13 @@ video::-webkit-media-controls-timeline { border: 1px #1c84c6 solid; cursor: pointer; } +.handClass{ + cursor: pointer; +} +.fptitle{ + background: black; + color: white; + font-weight: 700; + text-align: center; +} \ No newline at end of file diff --git a/src/views/zy/zyInfo/components/ZyInfoDetailForm copy.vue b/src/views/zy/zyInfo/components/ZyInfoDetailForm copy.vue index a5ebcf9..0be2c41 100644 --- a/src/views/zy/zyInfo/components/ZyInfoDetailForm copy.vue +++ b/src/views/zy/zyInfo/components/ZyInfoDetailForm copy.vue @@ -170,7 +170,7 @@ const props = defineProps({ formData: { type: Object, default: () => {} }, formBpm: { type: Boolean, default: true }, }); -const showType = ref('1'); +const showType = ref('0'); const formRef = ref(); const useForm = Form.useForm; const emit = defineEmits(['register', 'ok']); @@ -299,8 +299,6 @@ function edit(record) { const parts = record.stuFilePath.split('.'); const filetype = parts[parts.length - 1]; console.log(`🚀 ~ nextTick ~ filetype:`, filetype) - // var file = getFileAccessHttpUrl(record.filePath); - // ylurl.value = file; let wpsType = "w"; if(filetype=='doc' || filetype=='docx'){ showType.value = '1'; diff --git a/src/views/zy/zyInfo/components/ZyInfoDetailForm.vue b/src/views/zy/zyInfo/components/ZyInfoDetailForm.vue index eb41743..c9b2771 100644 --- a/src/views/zy/zyInfo/components/ZyInfoDetailForm.vue +++ b/src/views/zy/zyInfo/components/ZyInfoDetailForm.vue @@ -81,7 +81,7 @@
- +
批阅信息
@@ -96,9 +96,6 @@ 下载 - -
-
@@ -158,7 +155,6 @@ import { useRouter } from 'vue-router'; import dayjs, { Dayjs } from 'dayjs'; import JUpload from '/@/components/Form/src/jeecg/components/JUpload/JUpload.vue'; import { getFileAccessHttpUrl } from '/@/utils/common/compUtils'; -import WebOfficeSDK from '/@/views/zy/zyInfoStudent/components/wpsApi/web-office-sdk-solution-v2.0.7.es' import { downloadFile } from '/@/utils/common/renderUtils'; //当前路由信息 @@ -170,7 +166,6 @@ const props = defineProps({ formData: { type: Object, default: () => {} }, formBpm: { type: Boolean, default: true }, }); -const showType = ref('0'); const formRef = ref(); const useForm = Form.useForm; const emit = defineEmits(['register', 'ok']); @@ -288,58 +283,11 @@ function add() { * 编辑 */ function edit(record) { - console.log("🚀 ~ edit ~ record:", record) nextTick(() => { resetFields(); //赋值 Object.assign(formData, record); handleKcnr(formData.kcnr); - - - // const parts = record.stuFilePath.split('.'); - // const filetype = parts[parts.length - 1]; - // console.log(`🚀 ~ nextTick ~ filetype:`, filetype) - // let wpsType = "w"; - // if(filetype=='doc' || filetype=='docx'){ - // showType.value = '1'; - // wpsType = "w"; - // }else if(filetype=='pdf'){ - // showType.value = '1'; - // wpsType = "f"; - // }else if(filetype=='ppt' || filetype=='pptx' ){ - // showType.value = '1'; - // wpsType = "p"; - // }else if(filetype=='xls' || filetype=='xlsx' ){ - // showType.value = '1'; - // wpsType = "s"; - // } - - // if(showType.value == '1'){ - // const element = document.getElementById('wpsiframeid'); - // // 清空内容 - // element.innerHTML = ''; - // const jssdk = WebOfficeSDK.init({ - // officeType: wpsType, - // appId: 'SX20241118WSUGQN', - // fileId: formData.stuId, - // mount:document.querySelector('.wps-iframe'), - // commonOptions: { - // isShowDocMap: false, //是否开启目录功能,默认开启 - // isShowTopArea: false, // 隐藏顶部区域(头部和工具栏) - // isShowHeader: false, // 隐藏头部区域 - // isBrowserViewFullscreen: true, // 是否在浏览器区域全屏 - // isIframeViewFullscreen: true, // 是否在 iframe 区域内全屏 - // acceptVisualViewportResizeEvent: true // 控制 WebOffice 是否接受外部的 VisualViewport - // }, - // wordOptions: { - // isShowDocMap: false, // 是否开启目录功能,默认开启 - // isBestScale: true, // 打开文档时,默认以最佳比例显示 - // isShowBottomStatusBar: false, // 是否展示底部状态栏 - // } - // //token: getToken() - // }) - // } - }); }