|
@@ -8116,7 +8116,7 @@
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- v-show="org == '1973f6c7-1561-11ee-91d8-005056b86db5' || org == '777559d2-7239-11ee-b98c-005056b86db5' || org == '884c5665-a453-46f3-b7b6-01d575290aa9'" -->
|
|
<!-- v-show="org == '1973f6c7-1561-11ee-91d8-005056b86db5' || org == '777559d2-7239-11ee-b98c-005056b86db5' || org == '884c5665-a453-46f3-b7b6-01d575290aa9'" -->
|
|
- <classRoomHelper v-if="!['2'].includes(tType)" :videoStart="videoStart" @startRecording="startRecording" @stopRecording="stopRecording" :fileList="vChapterData[taskCount]" :worksStudent="worksStudent" :courseType="parseInt(courseType)" :taskCount="taskCount" :tcid="tcid" :navList="navList" v-show="orgArray.includes(org) || oidArray.includes(oid)" ref="classRoomHelperRef" :courseDetail="courseDetail" :tType="tType" @setWidth="setClassRoomHelperWidth" @refresh="refreshCourse" @goStep="nextOrpreSteps" @authority="juriVisible = true" @review="setPz" @backPage="goTo(
|
|
|
|
|
|
+ <classRoomHelper v-if="!['2'].includes(tType)" @studentFreePreview="studentFreePreview" @OpenJobPreview="OpenJobPreview" :videoStart="videoStart" :IsFollow="IsFollow" :sIsOpen="sIsOpen" :IsLookOpen="IsLookOpen" :splitScreenData="splitScreenData" @splitScreenBehavior="splitScreenBehavior" @startRecording="startRecording" @stopRecording="stopRecording" :fileList="vChapterData[taskCount]" :worksStudent="worksStudent" :courseType="parseInt(courseType)" :taskCount="taskCount" :tcid="tcid" :navList="navList" v-show="orgArray.includes(org) || oidArray.includes(oid)" ref="classRoomHelperRef" :courseDetail="courseDetail" :tType="tType" @setWidth="setClassRoomHelperWidth" @refresh="refreshCourse" @goStep="nextOrpreSteps" @authority="juriVisible = true" @review="setPz" @backPage="goTo(
|
|
'/courseDetail?userid=' +
|
|
'/courseDetail?userid=' +
|
|
userid +
|
|
userid +
|
|
'&oid=' +
|
|
'&oid=' +
|
|
@@ -11987,6 +11987,7 @@ import scoreZong from '../scoreZong/index.vue'
|
|
import classRoomHelper from '../classRoomHelper/index.vue'
|
|
import classRoomHelper from '../classRoomHelper/index.vue'
|
|
import MarkdownIt from "markdown-it";
|
|
import MarkdownIt from "markdown-it";
|
|
import statisticalAnalysis from '../components/statisticalAnalysis.vue'
|
|
import statisticalAnalysis from '../components/statisticalAnalysis.vue'
|
|
|
|
+import { v4 as uuidv4 } from "uuid";
|
|
|
|
|
|
const getFile = (url) => {
|
|
const getFile = (url) => {
|
|
return new Promise((resolve, reject) => {
|
|
return new Promise((resolve, reject) => {
|
|
@@ -12063,7 +12064,8 @@ export default {
|
|
scoreItem,
|
|
scoreItem,
|
|
classRoomHelper,
|
|
classRoomHelper,
|
|
scoreZong,
|
|
scoreZong,
|
|
- statisticalAnalysis
|
|
|
|
|
|
+ statisticalAnalysis,
|
|
|
|
+
|
|
},
|
|
},
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
@@ -12431,7 +12433,15 @@ export default {
|
|
},
|
|
},
|
|
classRoomHelperWidth: '85px',
|
|
classRoomHelperWidth: '85px',
|
|
orgArray:[],
|
|
orgArray:[],
|
|
- oidArray:[]
|
|
|
|
|
|
+ oidArray:[],
|
|
|
|
+ splitScreenData:{
|
|
|
|
+ isOpen:false,
|
|
|
|
+ userId:"",
|
|
|
|
+ uid:"",
|
|
|
|
+ myUid:"",
|
|
|
|
+ loading:false,
|
|
|
|
+ behavior:null,
|
|
|
|
+ }
|
|
};
|
|
};
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
@@ -16822,6 +16832,7 @@ export default {
|
|
_this.selectStudent();
|
|
_this.selectStudent();
|
|
_this.selectSLook();
|
|
_this.selectSLook();
|
|
_this.getPick();
|
|
_this.getPick();
|
|
|
|
+
|
|
if (_this.courseDetail.userid == _this.userid && _this.IsFollow) {
|
|
if (_this.courseDetail.userid == _this.userid && _this.IsFollow) {
|
|
_this.setCTask();
|
|
_this.setCTask();
|
|
}
|
|
}
|
|
@@ -16847,6 +16858,7 @@ export default {
|
|
_this.selectStudent();
|
|
_this.selectStudent();
|
|
_this.selectSLook();
|
|
_this.selectSLook();
|
|
_this.getPick();
|
|
_this.getPick();
|
|
|
|
+ _this.getSplitScreenData();//获取分屏数据
|
|
if (_this.courseDetail.userid == _this.userid && _this.IsFollow) {
|
|
if (_this.courseDetail.userid == _this.userid && _this.IsFollow) {
|
|
_this.setCTask();
|
|
_this.setCTask();
|
|
}
|
|
}
|
|
@@ -19332,6 +19344,9 @@ export default {
|
|
}
|
|
}
|
|
);
|
|
);
|
|
let downloadUrl = URL.createObjectURL(videoFile);
|
|
let downloadUrl = URL.createObjectURL(videoFile);
|
|
|
|
+ if(this.$refs.classRoomHelperRef){
|
|
|
|
+ this.$refs.classRoomHelperRef.checkUploadFile(videoFile)
|
|
|
|
+ }
|
|
document.body.appendChild(a);
|
|
document.body.appendChild(a);
|
|
a.style.display = "none";
|
|
a.style.display = "none";
|
|
a.href = url;
|
|
a.href = url;
|
|
@@ -20072,6 +20087,139 @@ export default {
|
|
},
|
|
},
|
|
statisticalAnalysisRefresh(toolIndex){
|
|
statisticalAnalysisRefresh(toolIndex){
|
|
this.$refs.statisticalAnalysisRef.refreshData({worksStudent:this.worksStudent[toolIndex],tType:this.tType,toolIndex:toolIndex})
|
|
this.$refs.statisticalAnalysisRef.refreshData({worksStudent:this.worksStudent[toolIndex],tType:this.tType,toolIndex:toolIndex})
|
|
|
|
+ },
|
|
|
|
+ async splitScreenBehavior(type=0){
|
|
|
|
+ if(this.splitScreenData.loading)return this.$message.info("操作过快,请稍等")
|
|
|
|
+ if(type==0){//关闭分屏
|
|
|
|
+ this.splitScreenData.isOpen = false;
|
|
|
|
+ // this.splitScreenData.userId = "";
|
|
|
|
+ // this.splitScreenData.uid = "";
|
|
|
|
+ this.splitScreenData.behavior = null;
|
|
|
|
+ await this.updateSplitScreenData(1);
|
|
|
|
+ this.$message.success("已关闭分屏模式");
|
|
|
|
+ this.studentFreePreview(false)
|
|
|
|
+ this.OpenJobPreview(false)
|
|
|
|
+ this.followingMode(false)
|
|
|
|
+ }else if(type==1){//开启分屏
|
|
|
|
+ this.splitScreenData.isOpen = true;
|
|
|
|
+ this.splitScreenData.userId = this.userid;
|
|
|
|
+ this.splitScreenData.uid = this.splitScreenData.myUid;
|
|
|
|
+ this.splitScreenData.behavior = null;
|
|
|
|
+ let status = await this.updateSplitScreenData(0);
|
|
|
|
+
|
|
|
|
+ if(status==1){
|
|
|
|
+ this.$message.success("已开启分屏")
|
|
|
|
+ this.studentFreePreview(true)
|
|
|
|
+ this.OpenJobPreview(true)
|
|
|
|
+ this.followingMode(true)
|
|
|
|
+ }else{
|
|
|
|
+ this.splitScreenData.isOpen = false;
|
|
|
|
+ this.splitScreenData.userId = "";
|
|
|
|
+ this.splitScreenData.uid = "";
|
|
|
|
+ this.splitScreenData.behavior = null;
|
|
|
|
+ this.$message.success("分屏开启失败")
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ getSplitScreenData(){
|
|
|
|
+ return;
|
|
|
|
+ console.log("获取分屏数据👇")
|
|
|
|
+ if(this.tType!=1)return;
|
|
|
|
+ let params = {
|
|
|
|
+ cid:this.id
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ this.ajax.get(this.$store.state.api+"select_courseSplitScreenData",params).then(async res=>{
|
|
|
|
+ let data = res.data[0][0]["splitScreenData"];
|
|
|
|
+ console.log("获取了分屏数:",data)
|
|
|
|
+ if(data){
|
|
|
|
+ data = JSON.parse(data)
|
|
|
|
+ if(!this.splitScreenData.isOpen && data.isOpen && this.splitScreenData.myUid == data.uid){
|
|
|
|
+ this.splitScreenData.isOpen = false;
|
|
|
|
+ this.splitScreenData.userId = "";
|
|
|
|
+ this.splitScreenData.uid = "";
|
|
|
|
+ this.splitScreenData.behavior = null;
|
|
|
|
+ await this.updateSplitScreenData(1);
|
|
|
|
+ }else if(!this.splitScreenData.isOpen && data.isOpen){
|
|
|
|
+ this.splitScreenData.isOpen = true;
|
|
|
|
+ this.splitScreenData.uid = data.uid;
|
|
|
|
+ this.splitScreenData.userId = data.userId;
|
|
|
|
+ this.splitScreenData.behavior = data.behavior;
|
|
|
|
+ this.$message.success("分屏模式已开启");
|
|
|
|
+ }else if(this.splitScreenData.isOpen && !data.isOpen){
|
|
|
|
+ this.splitScreenData.isOpen = false;
|
|
|
|
+ this.splitScreenData.userId = "";
|
|
|
|
+ this.splitScreenData.uid = "";
|
|
|
|
+ this.splitScreenData.behavior = null;
|
|
|
|
+ this.$message.error("已结束分屏模式");
|
|
|
|
+ }else if(this.splitScreenData.isOpen && data.isOpen){
|
|
|
|
+ this.splitScreenData.isOpen = true;
|
|
|
|
+ this.splitScreenData.uid = data.uid;
|
|
|
|
+ this.splitScreenData.userId = data.userId;
|
|
|
|
+ this.splitScreenData.behavior = data.behavior;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ }else{
|
|
|
|
+ if(this.splitScreenData.isOpen){
|
|
|
|
+ this.splitScreenData.isOpen = false;
|
|
|
|
+ this.splitScreenData.userId = "";
|
|
|
|
+ this.splitScreenData.uid = "";
|
|
|
|
+ this.splitScreenData.behavior = null;
|
|
|
|
+ this.$message.error("已结束分屏模式")
|
|
|
|
+ }
|
|
|
|
+ };
|
|
|
|
+ }).catch(e=>{
|
|
|
|
+ cosnole.log("获取分屏数出错:",e)
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ updateSplitScreenData(empty = 0){
|
|
|
|
+ return;
|
|
|
|
+ return new Promise((resolve)=>{
|
|
|
|
+
|
|
|
|
+ if(this.splitScreenData.uid == this.splitScreenData.myUid && this.splitScreenData.userId == this.userid){
|
|
|
|
+ this.splitScreenData.loading = true;
|
|
|
|
+ let params = [{
|
|
|
|
+ cid:this.id,
|
|
|
|
+ nData:empty===1?"":JSON.stringify(this.splitScreenData)
|
|
|
|
+ }]
|
|
|
|
+
|
|
|
|
+ this.ajax.post(this.$store.state.api+"update_courseSplitScreenData",params).then(res=>{
|
|
|
|
+ this.splitScreenData.loading = false;
|
|
|
|
+ if(res.data==1){
|
|
|
|
+ resolve(1);
|
|
|
|
+ console.log("修改分屏数据成功")
|
|
|
|
+ }
|
|
|
|
+ }).catch(e=>{
|
|
|
|
+ this.splitScreenData.loading = false;
|
|
|
|
+ console.log("修改分屏数据失败",e)
|
|
|
|
+ resoleve(0)
|
|
|
|
+
|
|
|
|
+ })
|
|
|
|
+ }else if(empty==2){
|
|
|
|
+ let params = [{
|
|
|
|
+ cid:this.id,
|
|
|
|
+ nData:""
|
|
|
|
+ }]
|
|
|
|
+
|
|
|
|
+ return this.ajax.post(this.$store.state.api+"update_courseSplitScreenData",params).then(_=>resolve(1)).catch(_=>resolve(0))
|
|
|
|
+ }else{
|
|
|
|
+ return resolve(0);
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ studentFreePreview(flag){
|
|
|
|
+ this.IsLookOpen = flag;
|
|
|
|
+ this.updateLookOpen();
|
|
|
|
+ },
|
|
|
|
+ OpenJobPreview(flag){
|
|
|
|
+ this.sIsOpen = flag;
|
|
|
|
+ this.updateSLook();
|
|
|
|
+ },
|
|
|
|
+ followingMode(flag){
|
|
|
|
+ this.IsFollow = flag;
|
|
|
|
+ this.updateFollow();
|
|
}
|
|
}
|
|
},
|
|
},
|
|
directives: {
|
|
directives: {
|
|
@@ -20116,6 +20264,7 @@ export default {
|
|
this.timer = null;
|
|
this.timer = null;
|
|
clearInterval(this.opertimer);
|
|
clearInterval(this.opertimer);
|
|
this.opertimer = null;
|
|
this.opertimer = null;
|
|
|
|
+ this.updateSplitScreenData(1);
|
|
},
|
|
},
|
|
computed: {
|
|
computed: {
|
|
getHeight(){
|
|
getHeight(){
|
|
@@ -20278,6 +20427,8 @@ export default {
|
|
}
|
|
}
|
|
// 获取评分列表
|
|
// 获取评分列表
|
|
this.getScoreList()
|
|
this.getScoreList()
|
|
|
|
+ this.updateSplitScreenData(2);
|
|
|
|
+ this.splitScreenData.myUid = uuidv4();
|
|
document.scrollingElement.scrollTop = 0;
|
|
document.scrollingElement.scrollTop = 0;
|
|
window.addEventListener("resize", () => {
|
|
window.addEventListener("resize", () => {
|
|
var a = document.getElementsByClassName("box_course")[0].offsetHeight;
|
|
var a = document.getElementsByClassName("box_course")[0].offsetHeight;
|