From f9b6f3b5147ce3e3a4e1ccdc36c0fbd8241ca283 Mon Sep 17 00:00:00 2001
From: yangjun <1173114630@qq.com>
Date: Fri, 20 Dec 2024 14:05:35 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=9B=9B=E5=88=86=E5=B1=8F?=
=?UTF-8?q?=E5=8A=9F=E8=83=BD=EF=BC=8C=E5=B8=A6=E8=A7=86=E9=A2=91=E6=BA=90?=
=?UTF-8?q?=E5=88=87=E6=8D=A2=E7=9A=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../site/common/video/videojs/viewPage.vue | 214 ++++++++++++++++--
.../checkKecheng/dqxqkcMenu.vue | 17 +-
.../checkKecheng/dqxqkcMenuHistory.vue | 2 +-
3 files changed, 199 insertions(+), 34 deletions(-)
diff --git a/src/views/site/common/video/videojs/viewPage.vue b/src/views/site/common/video/videojs/viewPage.vue
index 4002428..6f6ebec 100644
--- a/src/views/site/common/video/videojs/viewPage.vue
+++ b/src/views/site/common/video/videojs/viewPage.vue
@@ -27,28 +27,60 @@
-
{{ 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识别出勤人数仅供参考
+
+
+
+
+
+
+
+
+
+
+
+ {{checkTitle}}
+
+
+
+
+
+
+
+
+
+
+
+ {{item.xm}}
+
+
+
+
+
-
+
-
@@ -77,6 +109,7 @@
+
@@ -89,8 +122,28 @@
-
-
+
+
+
+
+
+
+
+
+
+
分屏模式
+
+
+
+
+
+ {{ item.xm }}
+
+
+
+ 视频源
+
+
@@ -158,14 +211,18 @@ const kcErrorreportIndexModal = ref();
const tingKeZuJiAddModal = ref({});
const curentPlayerVideo = ref({});
const kcCardBoxTitle = ref('');
+const spyCheck = ref([]);
const ktangInfo = ref({});
// const jxdgInfo = ref({});
const mainVideoCardBoxTitle = ref('');
+const checkTitle = ref('');
const tableData = ref([])
+const fpData = ref([])
const suibiList = ref([])
const isError = ref(false);
const tkbjVisible = ref(false);
const playStatus = ref(false);
+const fpxsShow = ref('1');
const model = reactive>({ notes:'' });
@@ -196,6 +253,33 @@ const savePlayLog = (params) => defHttp.post({ url: Api.savePlayLog, params, },
const changeAvyLiveByJsbhsApi = (params) => defHttp.get({ url: Api.changeAvyLiveByJsbhsApi, params,timeout: 9000000 });
// const editSuibi = (params) => defHttp.post({ url: Api.editSuibi, params });
+function getJvmClass(){
+ var className = "";
+ if(spyCheck.value.length == 4){
+
+ }else if(spyCheck.value.length == 3){
+ className = "className3";
+ }else if(spyCheck.value.length == 2){
+ className = "className2";
+ }
+ console.log("🚀 ~ getJvmClass ~ className:", className)
+ return className;
+}
+
+function handleSpy(record){
+ console.log("🚀 ~ handleSpy ~ record:", record)
+ for(var i=0;i {
if(route.query.id){
model.notes = '';
@@ -203,6 +287,15 @@ onMounted(() => {
list({ pageSize: -1, sfyx: '0', jsbh: route.query.id }).then(res => {
let list = (res?.records) ?? [];
tableData.value = list;
+ fpData.value = list;
+ var tta = "";
+ for(var i=0;i x.isShow = true);//默认展开
let zjData = tableData.value.find(x => x.xm == '教师近景') || {};
nextTick(() => {
@@ -218,6 +311,9 @@ onMounted(() => {
getKcxx();
//记录播放日志
isError.value = false;
+
+
+
}else{
isError.value = true;
}
@@ -265,6 +361,20 @@ function funpingjia(record) {
* @param player
*/
function loadEnd(player){
+ nextTick(() => {
+ // player.on('play',() => {
+ // setTimeout(() => {
+ // player.pause();
+ // },2000);
+ // })
+ })
+}
+
+/**
+ * 子页加载完成后回调
+ * @param player
+ */
+ function loadEnd2(player){
nextTick(() => {
player.on('play',() => {
setTimeout(() => {
@@ -282,6 +392,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 +415,29 @@ function changeLive(item:any){
// })
}
+
+function changeLive2(item:any){
+ fpxsShow.value = '2'
+ let url = item.pullUrl
+ let mainVideo = document.querySelector('#mainVideo');
+ mainVideo?.player?.src([{ type:'application/x-mpegURL',src: url }])
+ mainVideoCardBoxTitle.value = item.jsmc+" "+item.xm;
+ curentPlayerVideo.value = item;
+ checkTitle.value = item.xm;
+}
+
+
+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 }])
+ checkTitle.value = "教师近景";
+ curentPlayerVideo.value = item;
+}
+
+
function mainVideoLoadEnd(player){
setTimeout(() => {
setTimeout(() => {
@@ -563,4 +697,40 @@ 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;
+}
+
+
+.s-video-all {
+ width: 100%;
+ position: relative;
+}
+
+.s-full {
+ text-align: center;
+ position: absolute;
+ left: 10px;
+ top: 10px;
+ width: 70px;
+ color: white;
+ cursor: pointer;
+ background: #c0c0c0;
+ border-radius: 5px;
+}
+
+
+.className3 {
+ margin-top: 50px;
+}
+
+.className2 {
+ margin-top: 100px;
+}
\ No newline at end of file
diff --git a/src/views/site/renKeJiaoCheng/checkKecheng/dqxqkcMenu.vue b/src/views/site/renKeJiaoCheng/checkKecheng/dqxqkcMenu.vue
index b48f7b6..a12d6e5 100644
--- a/src/views/site/renKeJiaoCheng/checkKecheng/dqxqkcMenu.vue
+++ b/src/views/site/renKeJiaoCheng/checkKecheng/dqxqkcMenu.vue
@@ -49,11 +49,11 @@
课程资源
-
@@ -127,14 +121,15 @@
课程资源
+
+
+ 上传考核材料
-
+