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||'-' }}
-
-
-
- 平台分别在三个时间节点(上课后10分钟,课中50分钟,下课前10分钟)抓取学生全景图片进行AI人流量识别,当前显示的人数为最近一个时间的人数识别,目前部分教室摄像头拍摄画面广角待更新,AI识别出勤人数仅供参考
-
-
- ?
-
-
-
-
+
+
+ {{ mainVideoCardBoxTitle || '' }}
+
+
本教室容量:{{ktangInfo?.jiaoshirongliang?.jsrl || ' '}}座位
+
选课人数:{{ ktangInfo.xkrs || ' ' }}
+
AI识别出勤人数: {{ ktangInfo?.kcDetectionDetailed?.num||'-' }}
+
+
+
+ 平台分别在三个时间节点(上课后10分钟,课中50分钟,下课前10分钟)抓取学生全景图片进行AI人流量识别,当前显示的人数为最近一个时间的人数识别
+
+
+ ?
+
+
+
+
+
+
+
+ 说明:目前部分教室摄像头拍摄画面无法覆盖到全体学生,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()
- // })
- // }
-
});
}