Browse Source

Merge branch 'beta' of https://git.cocorobo.cn/CocoRoboLabs/pbl-student-table into beta

lsc 3 months ago
parent
commit
820a9ef77e

+ 1 - 1
dist/index.html

@@ -27,7 +27,7 @@
     html,
     body{
       font-family: '黑体';
-    }</style><link href=./static/css/app.1d3a43724b14043b9e6236a19c1555d9.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.3ad1d5771e9b13dbdad2.js></script><script type=text/javascript src=./static/js/vendor.264e3d6e7c524117db80.js></script><script type=text/javascript src=./static/js/app.311f22d965d1a60a504d.js></script></body></html><script>function stopSafari() {
+    }</style><link href=./static/css/app.a9680466cae1cc0a0e6a9e493d2e18db.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.3ad1d5771e9b13dbdad2.js></script><script type=text/javascript src=./static/js/vendor.264e3d6e7c524117db80.js></script><script type=text/javascript src=./static/js/app.b939c708c47f20c81981.js></script></body></html><script>function stopSafari() {
     //阻止safari浏览器双击放大功能
     let lastTouchEnd = 0  //更新手指弹起的时间
     document.documentElement.addEventListener("touchstart", function (event) {

File diff suppressed because it is too large
+ 0 - 0
dist/static/css/app.1d3a43724b14043b9e6236a19c1555d9.css


File diff suppressed because it is too large
+ 0 - 0
dist/static/css/app.1d3a43724b14043b9e6236a19c1555d9.css.map


File diff suppressed because it is too large
+ 0 - 0
dist/static/css/app.a9680466cae1cc0a0e6a9e493d2e18db.css


File diff suppressed because it is too large
+ 0 - 0
dist/static/css/app.a9680466cae1cc0a0e6a9e493d2e18db.css.map


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/app.311f22d965d1a60a504d.js.map


File diff suppressed because it is too large
+ 1 - 0
dist/static/js/app.b939c708c47f20c81981.js


File diff suppressed because it is too large
+ 1 - 0
dist/static/js/app.b939c708c47f20c81981.js.map


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/manifest.3ad1d5771e9b13dbdad2.js.map


+ 15 - 5
src/components/classRoomHelper/index.vue

@@ -53,11 +53,8 @@
         <el-popover
           placement="left"
           width="200"
-          trigger="hover"
-          :disabled="
-            !splitScreenData.isOpen ||
-              splitScreenData.uid != splitScreenData.myUid
-          "
+          trigger="manual"
+					v-model="showPopover"
         >
           <div class="ch_nav_box_topFixed_popover">
             <div
@@ -565,6 +562,19 @@ export default {
       }
     };
   },
+	computed:{
+		showPopover:{
+			get(){
+				// return this.Annot
+				return (this.splitScreenData.isOpen && this.splitScreenData.uid === this.splitScreenData.myUid);
+			},
+			set(newValue){
+				console.log(newValue)
+
+				// this.AnnotationCanvasShow = newValue
+			}
+		}
+	},
   mounted() {
     let setting = this.courseDetail.setting;
     if (setting) {

+ 275 - 42
src/components/components/choseWorksDetailDialog.vue

@@ -18,6 +18,7 @@
                 :key="item.value"
                 :class="{ s_b_m_t_l_active: showType === item.value }"
                 @click="changeShowType(item.value)"
+								v-if="item.showType.includes(toolType)"
                 >{{ item.label }}</span
               >
             </div>
@@ -26,39 +27,23 @@
             </div>
           </div>
           <div class="s_b_m_bottom">
-            <div class="s_b_m_b_item" v-if="showType === 0">
+            <div class="s_b_m_b_item" v-if="showType === 0 && dialogTypeList[0].showType.includes(toolType)">
               <div class="s_b_m_b_i_main">
                 <div class="s_b_m_b_i_m_title" v-if="testData">
                   <div>
-                    <svg
-                      t="1731461684123"
-                      class="icon"
-                      viewBox="0 0 1024 1024"
-                      version="1.1"
-                      xmlns="http://www.w3.org/2000/svg"
-                      p-id="4452"
-                      width="200"
-                      height="200"
-                    >
-                      <path
-                        d="M361.425 318.506h389.4v427.6h-389.4z"
-                        fill="#CFD5F8"
-                        p-id="4453"
-                      ></path>
-                      <path
-                        d="M773.825 514.306h-293.3v-48.1h293.3v48.1z m0-216.4h-293.3v48.1h293.3v-48.1z m0 336.7h-293.3v48.1h293.3v-48.1z m-415.5-168.4c-13.3 0.2-23.9 11.2-23.7 24.4 0.2 13.3 11.2 23.9 24.4 23.7 13.1-0.2 23.7-10.9 23.7-24 0-13.3-10.8-24.1-24-24.1h-0.4m0-48.1c39.8 0.6 71.6 33.5 71 73.3s-33.5 71.6-73.3 71c-39.4-0.6-71-32.7-71-72.2 0-39.9 32.3-72.2 72.2-72.2 0.3 0.1 0.7 0.1 1.1 0.1z m0-120.2c-13.3 0.2-23.9 11.2-23.7 24.4 0.2 13.3 11.2 23.9 24.4 23.7 13.1-0.2 23.7-10.9 23.7-24 0-13.3-10.8-24.1-24.1-24.1h-0.3m0-48.1c39.8 0.6 71.6 33.5 71 73.3s-33.5 71.6-73.3 71c-39.4-0.6-71-32.8-71-72.2 0-39.9 32.3-72.2 72.1-72.2 0.4 0 0.8 0 1.2 0.1z m0 384.8c-13.3 0.2-23.9 11.2-23.7 24.4 0.2 13.3 11.2 23.9 24.4 23.7 13.1-0.2 23.7-10.9 23.7-24 0-13.3-10.8-24.1-24-24.1h-0.4m0-48.2c39.8 0.6 71.6 33.5 71 73.3-0.6 39.8-33.5 71.6-73.3 71-39.4-0.6-71-32.7-71-72.2 0-39.9 32.3-72.2 72.2-72.2 0.3 0.1 0.7 0.1 1.1 0.1z"
-                        fill="#486EFF"
-                        p-id="4454"
-                      ></path>
-                    </svg>
-                    <span>选择题</span>
+            
+										<img :src="toolList.find(item=>item.value===toolType).img" alt/>
+
+										<span>{{ toolList.find(item=>item.value===toolType).label }}</span>
                   </div>
                   <span v-if="testData.toolDetail">{{ testData.toolDetail }}</span>
+									<span v-else>无</span>
                 </div>
 
                 <span>题目内容</span>
 
                 <div
+									v-if="[45].includes(toolType)"
                   class="s_b_m_b_i_m_choseList"
                   v-for="(item, index) in testJson"
                 >
@@ -133,9 +118,86 @@
                     </span>
                   </div>
                 </div>
+
+								<div v-if="[15].includes(toolType)" class="s_b_m_b_i_m_question">
+									<div class="s_b_m_b_i_m_c_title">
+                    <span>{{1 }}</span>
+                    <svg
+                      width="16"
+                      height="16"
+                      viewBox="0 0 16 16"
+                      fill="none"
+                      xmlns="http://www.w3.org/2000/svg"
+                    >
+                      <path
+                        d="M15.3536 8.35355C15.5488 8.15829 15.5488 7.84171 15.3536 7.64645L12.1716 4.46447C11.9763 4.2692 11.6597 4.2692 11.4645 4.46447C11.2692 4.65973 11.2692 4.97631 11.4645 5.17157L14.2929 8L11.4645 10.8284C11.2692 11.0237 11.2692 11.3403 11.4645 11.5355C11.6597 11.7308 11.9763 11.7308 12.1716 11.5355L15.3536 8.35355ZM1 8.5H15V7.5H1V8.5Z"
+                        fill="#3681FC"
+                      />
+                    </svg>
+
+                    <span>提问:{{ testData.answerQ }}</span>
+                  </div>
+									<span>
+
+									</span>
+								</div>
+
+								<div v-if="[41].includes(toolType)" class="s_b_m_b_i_m_selectiveMatching">
+									<div class="sm_left">
+										<img :src="testData.selectJson.url" alt="" @click="$hevueImgPreview(testData.selectJson.url)">
+									</div>
+									<div class="sm_right">
+										<div class="sm_right_item" v-for="(item,index) in testData.selectJson.answer">
+											<el-select v-model="testData.selectJson.answer[index]" placeholder="请选择">
+  			  							<el-option
+  			  								v-for="(item2,index2) in testData.selectJson.select"
+													:disabled="item!==index2"
+  			  								:key="index2"
+  			  								:label="item2"
+  			  								:value="index2">
+												</el-option>
+											</el-select>
+										</div>
+									</div>
+								</div
+								
+								>
+
+								<div v-if="[47].includes(toolType)" class="s_b_m_b_i_m_sorting">
+									<div class="sortingItem" v-for="(item,index) in testData.sentenceList" :key="index">
+										<div class="s_b_m_b_i_m_c_title">
+                    <span>{{ index + 1 }}</span>
+                    <svg
+                      width="16"
+                      height="16"
+                      viewBox="0 0 16 16"
+                      fill="none"
+                      xmlns="http://www.w3.org/2000/svg"
+                    >
+                      <path
+                        d="M15.3536 8.35355C15.5488 8.15829 15.5488 7.84171 15.3536 7.64645L12.1716 4.46447C11.9763 4.2692 11.6597 4.2692 11.4645 4.46447C11.2692 4.65973 11.2692 4.97631 11.4645 5.17157L14.2929 8L11.4645 10.8284C11.2692 11.0237 11.2692 11.3403 11.4645 11.5355C11.6597 11.7308 11.9763 11.7308 12.1716 11.5355L15.3536 8.35355ZM1 8.5H15V7.5H1V8.5Z"
+                        fill="#3681FC"
+                      />
+                    </svg>
+
+                    <span>{{ item.sentenceTitle?item.sentenceTitle:"无标题" }}</span>
+                  </div>
+
+									<div class="si_box">
+										<!-- <span v-for="(item2,index2) in item.sentenceContent" :key="index2">{{ item2 }}</span> -->
+										<div class="si_b_top">
+											<span class="si_b_t_item" v-for="(item2,index2) in item.addSentence" :key="index2">{{ item.rightAnswer[index2] }}</span>
+										</div>
+										<div class="si_b_bottom">
+											<span class="si_b_b_item" v-for="(item2,index2) in item.rightAnswer" :key="index2">{{ item2 }}</span>
+										</div>
+									</div>
+									</div>
+								</div>
               </div>
+
             </div>
-            <div class="s_b_m_b_item" v-if="showType === 1">
+            <div class="s_b_m_b_item" v-if="showType === 1 && dialogTypeList[1].showType.includes(toolType)">
 
 							<div class="s_b_m_b_i_eChartsArea">
 								<div class="s_b_m_b_i_e_title">
@@ -207,8 +269,8 @@
                 </div>
               </div>
             </div>
-            <div class="s_b_m_b_item s_b_m_b_worksSubmit" v-if="showType === 2">
-              <div class="s_b_b_i_noSubmit">
+            <div class="s_b_m_b_item s_b_m_b_worksSubmit" v-if="showType === 2 && dialogTypeList[2].showType.includes(toolType)">
+              <div class="s_b_b_i_noSubmit"  v-if="[45,15,41,47].includes(toolType)">
                 <div class="s_b_b_i_ws_top">
                   <div class="s_b_b_i_ws_t_left">
                     <div @click="foldList.noSubmit = !foldList.noSubmit">
@@ -233,7 +295,7 @@
                   </div>
                   <div class="s_b_b_i_ws_t_right"></div>
                 </div>
-                <div class="s_b_b_i_ws_bottom" v-show="!foldList.noSubmit">
+                <div class="s_b_b_i_ws_bottom" v-show="!foldList.noSubmit" >
                   <div
                     class="s_b_b_i_ws_b_noSubmitItem"
                     v-if="noWorksStudent.length > 0"
@@ -247,7 +309,7 @@
                   >
                 </div>
               </div>
-              <div class="s_b_b_i_worksPreview">
+              <div class="s_b_b_i_worksPreview"  v-if="[45,15,41,47].includes(toolType)">
                 <div class="s_b_b_i_ws_top">
                   <div class="s_b_b_i_ws_t_left">
                     <div
@@ -281,7 +343,7 @@
                     v-for="item in worksStudent"
                     :key="item.userid"
                   >
-                    <div class="s_b_b_i_ws_b_i_s_i_t_top" @click="openTools(item)">
+                    <div class="s_b_b_i_ws_b_i_s_i_t_top" :style="`cursor: ${[45].includes(toolType)?'pointer':'default'}`" @click="openTools(item)">
                       <div
                         class="s_b_b_i_ws_b_i_s_i_t_t_delIcon"
                         @click.stop="deleteWorks(item.wid)"
@@ -291,7 +353,11 @@
 
 											<div class="s_b_b_i_ws_b_i_s_i_t_t_answer">
 												
-												<span v-for="(answer,answerIndex) in worksCheckAnswer(item)" :key="item.userid+'-'+answerIndex+'-'+answer.index">
+
+
+												<span v-if="[15].includes(toolType)" class="questionsAndAnswersSpan">{{ questionsAndAnswers(item) }}</span>
+
+												<span v-for="(answer,answerIndex) in worksCheckAnswer(item)" :key="item.userid+'-'+answerIndex+'-'+answer.index" v-if="[45].includes(toolType)">
 													<span v-if="answer.type===1" v-for="item2 in answer.label" :key="answer.index+'-'+item.userid+'-1'">
 														<span :class="`${item2.right?'answerRight':'answerWrong'}`">{{ item2.label }}</span>
 													</span>
@@ -300,6 +366,10 @@
 													</span>
 												</span>
 
+												<div class="answerSelect" v-if="[41].includes(toolType)">
+													<span v-for="(item2,index2) in item.works.split(',')" :key="index2" :class="`${testData.selectJson.answer[index2]===parseInt(item2)?'answerRight':'answerWrong'}`">{{ optionTypeList[item2] }}</span>
+												</div>
+
 												<!-- <span>{{ worksCheckAnswer(item) }}</span> -->
 											</div>
                     </div>
@@ -348,7 +418,7 @@ export default {
       default: () => []
     },
     courseType: {
-      type: String,
+      type: String || Number,
       default: ""
     },
     taskCount: {
@@ -367,15 +437,33 @@ export default {
       toolIndex: null,
       worksStudent: [],
       noWorksStudent: [],
+			toolType:null,
       foldList: {
         noSubmit: false,
         worksPreview: false
       },
       dialogTypeList: [
-        { label: "作业详细", value: 0, loading: false },
-        { label: "题目统计", value: 1, loading: false },
-        { label: "学生统计", value: 2, loading: false }
+        { label: "作业详细", value: 0,showType:[45,15,41,47], loading: false },
+        { label: "题目统计", value: 1,showType:[45], loading: false },
+        { label: "学生统计", value: 2,showType:[45,15,41,47], loading: false }
       ],
+			// toolTypeList:{
+			// 	41:"选择匹配",
+			// 	45:"选择题",
+			// 	15:"问答题",
+			// 	47:"排序",
+			// },
+			// toolImageList:{
+			// 	15:require("../../assets/icon/thirdToolList/answer.png")
+			// 	41:require("../../assets/icon/thirdToolList/select.png"),
+			// 	47:require("../../assets/icon/fourthToolList/conSentences.png")
+			// },
+			toolList:[
+				{label:"选择题",value:45,img:require("../../assets/icon/thirdToolList/choose.png")},
+				{label:"问答题",value:15,img:require("../../assets/icon/thirdToolList/answer.png")},
+				{label:"选择匹配",value:41,img:require("../../assets/icon/thirdToolList/select.png")},
+				{label:"排序",value:47,img:require("../../assets/icon/fourthToolList/conSentences.png")}
+			],
 			statisticsTypeList:[
 				{label:"准确率",value:0},
 				{label:"选项汇总",value:1}
@@ -386,7 +474,7 @@ export default {
   computed: {
     tableData() {
       let _result = [];
-      if (this.show && this.toolIndex !== null) {
+      if (this.show && this.toolIndex !== null && [45].includes(this.toolType)) {
         let worksJson = [];
         if (this.testJson) {
           worksJson = JSON.parse(JSON.stringify(this.testJson));
@@ -528,7 +616,8 @@ export default {
 		worksCheckAnswer(){
 			return data=>{
 				let _result = [];
-				let works = JSON.parse(data.works);
+				if([45].includes(this.toolType)){
+					let works = JSON.parse(data.works);
 				let testJson = works[0].testJson.testJson;
 				let worksAnswer = works[0].anwer;
 
@@ -559,10 +648,20 @@ export default {
 				})
 
 				_result = answerList;
-				// _result = works[0].anwer;
-
-
+				}
 
+				return _result;
+			}
+		},
+		questionsAndAnswers(){
+			return data=>{
+				let _result = "";
+				if([15].includes(this.toolType)){
+					let _work = data.works?JSON.parse(data.works)[0]:null;
+					if(_work){
+						_result = _work.answer;
+					}
+				}
 				return _result;
 			}
 		}
@@ -608,6 +707,7 @@ export default {
       this.show = true;
       this.data = data;
       this.toolIndex = data.toolIndex;
+			this.toolType = data.toolType;
       this.setData();
     },
     setData() {
@@ -640,6 +740,7 @@ export default {
       this.noWorksStudent = [];
       this.toolIndex = null;
       this.testData = null;
+			this.toolType = null;
       this.foldList = {
         noSubmit: false,
         worksPreview: false
@@ -661,7 +762,9 @@ export default {
       this.dialogTypeList[2].loading = true;
     },
 		openTools(data){
-			this.$emit("openTools",45,this.toolIndex,this.taskCount,data.works,data.sName)
+			if([45].includes(this.toolType)){
+				this.$emit("openTools",this.toolType,this.toolIndex,this.taskCount,data.works,data.sName)
+			}
 		},
 		changeShowStatisticsType(type){
 			this.showStatisticsType = type;
@@ -675,13 +778,15 @@ export default {
         }})
 		},
 		splitScreenFn(data){
-			console.log("splitScreenFn",data)
 			if(data.type!==undefined){
 				this.showType = data.type;
 			}
 			if(data.showStatisticsType!==undefined){
 				this.showStatisticsType = data.showStatisticsType;
 			}
+			if(data.toolType!==undefined){
+				this.toolType = data.toolType;
+			}
 		}
   }
 };
@@ -819,6 +924,13 @@ export default {
   margin-right: 5px;
 }
 
+.s_b_m_b_i_m_title > div >img {
+  width: 50px;
+  height: 50px;
+	margin: 5px;
+  margin-right: 5px;
+}
+
 .s_b_m_b_i_m_title > div > span {
   font-size: 20px;
   font-weight: bold;
@@ -1034,7 +1146,6 @@ export default {
     #e3eeff 100%
   );
   position: relative;
-	cursor: pointer;
 	overflow: auto;
 }
 
@@ -1220,7 +1331,129 @@ export default {
 	border-radius: 4px;
 }
 
+.questionsAndAnswersSpan{
+	font-size: 18px;
+}
 
+.s_b_m_b_i_m_question{
+	width: 100%;
+	height: auto;
+	box-sizing: border-box;
+	padding: 10px 0 10px 15px;
+}
+
+.s_b_m_b_i_m_question>span{
+	width: 100%;
+	height: 150px;
+	display: block;
+	margin-top: 15px;
+	border-radius: 10px;
+	box-sizing: border-box;
+	padding: 2px;
+	border: solid 1px #d7d9e0;
+}
+
+.s_b_m_b_i_m_selectiveMatching{
+	width: 100%;
+	height: auto;
+	padding-left: 15px;
+	display: flex;
+}
+
+.sm_left{
+	width: calc(100% - 300px);
+	height: 100%;
+}
+
+.sm_left>img{
+	width: 100%;
+	height: auto;
+	cursor: pointer;
+	border-radius: 2px;
+}
+
+.sm_right{
+	width: 300px;
+	min-height: 600px;
+	box-sizing: border-box;
+	padding: 10px;
+	height: auto;
+	overflow: auto;
+}
+
+.sm_right_item{
+	width: 100%;
+	height: auto;
+	margin-bottom: 20px;
+	display: flex;
+	align-items: center;
+	justify-content: center;
+}
+
+.sm_right_item>>>.el-select{
+	width: 100%;
+}
+
+.answerSelect>span{
+	font-size: 18px;
+	font-weight: bold;
+	margin: 2px 4px;
+	display: block;
+	float: left;
+	
+}
+
+.s_b_m_b_i_m_sorting{
+	width: 100%;
+	height: auto;
+	box-sizing: border-box;
+	padding-left: 15px;
+}
+
+.sortingItem{
+	margin-bottom: 20px;
+}
+
+.si_box{
+	width: 100%;
+	height: auto;
+	box-sizing: border-box;
+	padding: 10px;
+}
+
+.si_b_top{
+	width: 100%;
+	height: auto;
+	margin-top: 20px;
+}
+
+.si_b_top>span{
+	font-size: 24px;
+	margin-right: 20px;
+	padding: 10px 40px;
+	border: dashed 2px #d7d9e0;
+	border-radius: 5px;
+	color: #ebedf3;
+	font-weight: bold;
+	box-sizing: border-box;
+}
+
+.si_b_bottom{
+	width: 100%;
+	height: auto;
+	margin-top: 40px;
+}
+
+.si_b_bottom>span{
+	font-size: 24px;
+	margin-right: 20px;
+	padding: 10px 40px;
+	border: solid 2px #A3C7F9;
+	border-radius: 5px;
+	color: black;
+	font-weight: bold;
+	box-sizing: border-box;
+}
 
 /* F9FAFB */
 

+ 81 - 52
src/components/components/statisticalAnalysis.vue

@@ -12,7 +12,7 @@
       <div class="s_box">
         <div class="s_b_top">
           <div class="s_b_t_left">
-            <img src="../../assets/icon/thirdToolList/ask.png" slt="图片"/>
+            <img src="../../assets/icon/thirdToolList/ask.png" slt="图片" />
             <div class="s_b_t_l_detail">
               <div>{{ askData.title }}</div>
               <span>{{ askData.describe }}</span>
@@ -56,16 +56,19 @@
             >
           </div>
           <div class="s_b_b_right">
-						<div class=s_b_b_r_btnArea>
-							<div class="s_b_b_r_primaryBtn" @click="refresh">刷新</div>
-						</div>
+            <div class="s_b_b_r_btnArea">
+              <div class="s_b_b_r_primaryBtn" @click="refresh">刷新</div>
+            </div>
             <div class="s_b_b_r_item" v-if="showType === 0">
               <div class="itemBox">
                 <div class="ib_title">数据统计图</div>
-                <div class="ib_echarts" style="width:60%;height: 600px;min-width: 600px;">
+                <div
+                  class="ib_echarts"
+                  style="width:60%;height: 600px;min-width: 600px;"
+                >
                   <eChartsView
-										id="problemSituationData"
-                    v-if="problemSituationData.eChartsOption && show "
+                    id="problemSituationData"
+                    v-if="problemSituationData.eChartsOption && show"
                     :data="problemSituationData.eChartsOption"
                   />
                 </div>
@@ -109,9 +112,12 @@
             <div class="s_b_b_r_item" v-if="showType === 1">
               <div class="itemBox">
                 <div class="ib_title">数据统计图</div>
-                <div class="ib_echarts" style="width:60%;height: 600px;min-width: 600px;">
+                <div
+                  class="ib_echarts"
+                  style="width:60%;height: 600px;min-width: 600px;"
+                >
                   <eChartsView2
-										id="studentSummaryData"
+                    id="studentSummaryData"
                     v-if="studentSummary.eChartsOption && show"
                     :data="studentSummary.eChartsOption"
                   />
@@ -158,7 +164,7 @@
                 <div class="ib_title">数据统计图</div>
                 <div class="ib_echarts" style="width:800px;height: 600px">
                   <eChartsView3
-										id="classSummaryData"
+                    id="classSummaryData"
                     v-if="classSummary.eChartsOption && show"
                     :data="classSummary.eChartsOption"
                   />
@@ -212,6 +218,16 @@ import eChartsView from "./eChartsView.vue";
 import eChartsView2 from "./eChartsView.vue";
 import eChartsView3 from "./eChartsView.vue";
 export default {
+  props: {
+    courseType: {
+      type: String || Number,
+      default: ""
+    },
+    taskCount: {
+      type: Number,
+      default: 0
+    }
+  },
   components: {
     eChartsView,
     eChartsView2,
@@ -225,7 +241,7 @@ export default {
       tType: null,
       worksData: null,
       worksStudent: null,
-			toolIndex:null,
+      toolIndex: null,
       askData: {
         title: "",
         describe: ""
@@ -234,11 +250,11 @@ export default {
   },
   methods: {
     open(data) {
-			console.log(data)
+      console.log(data);
       this.show = true;
       this.data = data;
       this.worksStudent = data.worksStudent;
-			this.toolIndex = data.toolIndex;
+      this.toolIndex = data.toolIndex;
       if (data.worksStudent.length > 0) {
         let works = data.worksStudent[0].works
           ? JSON.parse(data.worksStudent[0].works)
@@ -257,13 +273,14 @@ export default {
     close() {
       this.show = false;
       this.init();
+			this.$emit("changeSplitScreenBehavior",{code:99})
     },
     init() {
       this.data = null;
       this.showType = 0;
       this.tType = null;
       this.worksData = null;
-			this.toolIndex = null;
+      this.toolIndex = null;
       this.askData = {
         title: "",
         describe: ""
@@ -271,7 +288,16 @@ export default {
     },
     changeShowType(type) {
       this.showType = type;
-			this.$forceUpdate()
+      this.$emit("changeSplitScreenBehavior", {
+        code: 2,
+        form: {
+          toolIndex: this.toolIndex,
+          courseType: this.courseType,
+          taskCount: this.taskCount,
+          type: this.showType
+        }
+      });
+      this.$forceUpdate();
     },
     indexMethod(index) {
       if (index === 0) {
@@ -280,14 +306,14 @@ export default {
         return index;
       }
     },
-		refresh(){
-			this.$emit("refresh",this.toolIndex)
-		},
-		refreshData(data){
-			console.log(data)
-			this.data = data;
+    refresh() {
+      this.$emit("refresh", this.toolIndex);
+    },
+    refreshData(data) {
+      console.log(data);
+      this.data = data;
       this.worksStudent = data.worksStudent;
-			this.toolIndex = data.toolIndex;
+      this.toolIndex = data.toolIndex;
       if (data.worksStudent.length > 0) {
         let works = data.worksStudent[0].works
           ? JSON.parse(data.worksStudent[0].works)
@@ -302,7 +328,14 @@ export default {
       } else {
         this.worksData = [];
       }
-		},
+    },
+    splitScreenFn(data) {
+			console.log("👇👇")
+			console.log(data)
+      if (data.type !== undefined) {
+        this.showType = data.type;
+      }
+    }
   },
   computed: {
     // 题目情况
@@ -617,16 +650,13 @@ export default {
 
       result.tableData.unshift(totalData);
 
-
-			totalData.options.forEach((item,index)=>{
-				let obj = {
-					value:item,
-					name:`选项${index+1}`
-				}
-				result.eChartsOption.series[0].data.push(obj)
-			})
-			
-			
+      totalData.options.forEach((item, index) => {
+        let obj = {
+          value: item,
+          name: `选项${index + 1}`
+        };
+        result.eChartsOption.series[0].data.push(obj);
+      });
 
       return result;
     }
@@ -760,31 +790,30 @@ export default {
 .s_b_b_right {
   width: calc(100% - 300px);
   height: 100%;
-	position: relative;
+  position: relative;
 }
 
-.s_b_b_r_btnArea{
-	width: auto;
-	height: auto;
-	position: absolute;
-	right: 30px;
-	top: 30px;
+.s_b_b_r_btnArea {
+  width: auto;
+  height: auto;
+  position: absolute;
+  right: 30px;
+  top: 30px;
 }
 
-.s_b_b_r_primaryBtn{
-	width: auto;
-	height: auto;
-	background-color: #007AFF;
-	
-	color: #fff;
-	font-size: 16px;
-	padding: 10px 30px;
-	border-radius: 25px;
-	cursor: pointer;
-	box-shadow: 0px 2px 5px 0px #1D398314;
+.s_b_b_r_primaryBtn {
+  width: auto;
+  height: auto;
+  background-color: #007aff;
 
-box-shadow: 0.5px 0.5px 10px 2px #1D39830D;
+  color: #fff;
+  font-size: 16px;
+  padding: 10px 30px;
+  border-radius: 25px;
+  cursor: pointer;
+  box-shadow: 0px 2px 5px 0px #1d398314;
 
+  box-shadow: 0.5px 0.5px 10px 2px #1d39830d;
 }
 
 .s_b_b_r_item {

+ 65 - 18
src/components/easy2/studyStudent.vue

@@ -1082,7 +1082,8 @@
                                 openStatisticalAnalysis(
                                   tooC,
                                   toolIndex,
-                                  taskCount
+                                  taskCount,
+																	45
                                 )
                               "
                               style="position: absolute;right: 33px;top: -30px;"
@@ -1138,6 +1139,10 @@
                               alt
                             />
                             <div style="margin: 5px 0">问答</div>
+														<div class="upload_toolBtn" v-if="tType==='1' && worksStudent[toolIndex].length>0" @click="openChoseWorksDetailDialog(tooC,toolIndex,taskCount,15)"
+                              style="position: absolute;right: 135px;top: -45px;height: 40px;display: flex;align-items: center;justify-content: center;background: #409EFF;">
+                              作业详细
+                            </div>
                           </div>
                           <div v-if="tooC == 26">
                             <img
@@ -1280,6 +1285,10 @@
                               alt
                             />
                             <div style="margin: 5px 0">选择匹配</div>
+														<div class="upload_toolBtn" v-if="tType==='1' && worksStudent[toolIndex].length>0" @click="openChoseWorksDetailDialog(tooC,toolIndex,taskCount,41)"
+                              style="position: absolute;right: 33px;top: -30px;">
+                              作业详细
+                            </div>
                           </div>
                           <div v-if="tooC == 44">
                             <img
@@ -1296,6 +1305,10 @@
                               alt
                             />
                             <div style="margin: 5px 0">排序</div>
+														<!-- <div class="upload_toolBtn" v-if="tType==='1' && worksStudent[toolIndex].length>0" @click="openChoseWorksDetailDialog(tooC,toolIndex,taskCount,47)"
+                              style="position: absolute;right: 33px;top: -30px;">
+                              作业详细
+                            </div> -->
                           </div>
                           <div v-if="tooC == 48">
                             <img
@@ -13188,7 +13201,7 @@
                 'https://view.officeapps.live.com/op/view.aspx?src='
               ) != -1
           "
-          style="width: 95%; margin: 0 auto"
+          style="width: 100%;height:100%; margin: 0 auto"
         >
           <iframe
             style="width: 100%; height: 100%; border: none"
@@ -13212,6 +13225,7 @@
           v-if="fulltype == 1"
           style="
             box-shadow: 0 0 6px 1px #f2f2f2;
+						height:100%;
             width: 100%;
             background: #f1f1f1;
           "
@@ -15405,10 +15419,7 @@
       </div>
       <div>{{ TxtMd }}</div>
     </el-dialog>
-    <statisticalAnalysis
-      ref="statisticalAnalysisRef"
-      @refresh="statisticalAnalysisRefresh"
-    />
+    <statisticalAnalysis ref="statisticalAnalysisRef" @refresh="statisticalAnalysisRefresh"  @changeSplitScreenBehavior="changeSplitScreenBehavior"  :courseType="courseType" :taskCount="taskCount"/>
     <choseWorksDetailDialog
       ref="choseWorksDetailDialogRef"
       :worksStudentData="this.worksStudent"
@@ -21605,7 +21616,7 @@ export default {
             this.getCourseState(1);
           }
 
-          if (this.IsFollow && this.tType == 2) {
+					if ((this.IsFollow && this.tType == 2) || (this.splitScreenData.isOpen && this.splitScreenData.uid != this.splitScreenData.myUid)) {
             this.setContent2(false);
             let _followC = res.data[0][0].followC.split("-");
             if (
@@ -24475,12 +24486,14 @@ export default {
     },
     openChoseWorksDetailDialog(tooC, toolIndex, taskCount) {
       this.$refs.choseWorksDetailDialogRef.open({
+				toolType:45,
         tType: this.tType,
         toolIndex: toolIndex
       });
       this.changeSplitScreenBehavior({
         code: 1,
         form: {
+					toolType:45,
           toolIndex: toolIndex,
           courseType: this.courseType,
           taskCount: this.taskCount,
@@ -24493,6 +24506,16 @@ export default {
         worksStudent: this.worksStudent[toolIndex],
         tType: this.tType,
         toolIndex: toolIndex
+      });
+			this.changeSplitScreenBehavior({
+        code: 2,
+        form: {
+					toolType:4,
+					courseType: this.courseType,
+          taskCount: this.taskCount,
+          toolIndex: toolIndex,
+          type: 0
+        }
       });
     },
     statisticalAnalysisRefresh(toolIndex) {
@@ -24502,7 +24525,7 @@ export default {
         toolIndex: toolIndex
       });
     },
-    async splitScreenBehavior(type = 0) {
+		async splitScreenBehavior(type = 0) {
       // return;
       if (this.splitScreenData.loading)
         return this.$message.info("操作过快,请稍等");
@@ -24516,7 +24539,7 @@ export default {
         this.$message.success("已关闭分屏模式");
         this.studentFreePreview(false);
         this.OpenJobPreview(false);
-        this.followingMode(false);
+        // this.followingMode(false);
       } else if (type == 1) {
         //开启分屏
         this.splitScreenData.isOpen = true;
@@ -24529,7 +24552,7 @@ export default {
           this.$message.success("已开启分屏");
           this.studentFreePreview(true);
           this.OpenJobPreview(true);
-          this.followingMode(true);
+          // this.followingMode(true);
         } else {
           this.splitScreenData.isOpen = false;
           this.splitScreenData.userId = "";
@@ -24596,7 +24619,7 @@ export default {
           console.log("获取分屏数出错:", e);
         });
     },
-    doSplitScreenBehavior() {
+		doSplitScreenBehavior() {
       if (
         this.splitScreenData.isOpen &&
         this.splitScreenData.uid != this.splitScreenData.myUid
@@ -24609,23 +24632,38 @@ export default {
 						if(this.$refs.choseWorksDetailDialogRef.show){
 							this.$refs.choseWorksDetailDialogRef.close();
 						}
+						if(this.$refs.statisticalAnalysisRef.show){
+							this.$refs.statisticalAnalysisRef.close();
+						}
           } else if (behavior.code === 0) {
             //开启内容列表弹窗
             this.checkFileFull1(behavior.form[0], behavior.form[1]);
           } else if (behavior.code === 1) {
             //关于选择题的作业详细的操作
             // toolIndex:toolIndex,courseType:this.courseType,taskCount:this.taskCount,type:0
-            this.courseType = behavior.form.courseType;
-            this.taskCount = behavior.form.taskCount;
+            if(this.courseType!==behavior.form.courseType || this.taskCount!==behavior.form.taskCount){
+							this.courseType = behavior.form.courseType;
+            	this.taskCount = behavior.form.taskCount;
+						}
             this.$nextTick(() => {
-              if (this.$refs.choseWorksDetailDialogRef.show) {
+							if (this.$refs.choseWorksDetailDialogRef.show) {
                 //已经打开了
-								this.$refs.choseWorksDetailDialogRef.splitScreenFn({type:behavior.form.type,showStatisticsType:behavior.form.showStatisticsType})
+								this.$refs.choseWorksDetailDialogRef.splitScreenFn({toolType:behavior.form.toolType,type:behavior.form.type,showStatisticsType:behavior.form.showStatisticsType})
               } else {
-								this.$refs.choseWorksDetailDialogRef.open({toolIndex:behavior.form.toolIndex,tType: this.tType,})
+								this.$refs.choseWorksDetailDialogRef.open({toolType:behavior.form.toolType,toolIndex:behavior.form.toolIndex,tType: this.tType,})
               }
             });
-          }
+          }else if(behavior.code === 2){
+						if(this.$refs.statisticalAnalysisRef.show){
+							this.$refs.statisticalAnalysisRef.splitScreenFn({type:behavior.form.type})
+						}else{
+							this.$refs.statisticalAnalysisRef.open({
+      				  worksStudent: this.worksStudent[behavior.form.toolIndex],
+      				  tType: this.tType,
+      				  toolIndex: behavior.form.toolIndex
+      				});
+						}
+					}
         } else {
         }
       }
@@ -24633,7 +24671,14 @@ export default {
     updateSplitScreenData(empty = 0) {
       // return
       return new Promise(resolve => {
-				if(this.userid!==this.courseDetail.userid)return;
+				if(this.userid!==this.courseDetail.userid){
+					if(!this.courseDetail.userid){
+						return setTimeout(()=>{
+							this.updateSplitScreenData(empty)
+						},2000)
+					}
+					return;
+				};
         if (
           this.splitScreenData.uid == this.splitScreenData.myUid &&
           this.splitScreenData.userId == this.userid
@@ -24664,6 +24709,7 @@ export default {
               resoleve(0);
             });
         } else if (empty == 2 && this.tType == 1) {
+					console.log("清空清空清空清空")
           let params = [
             {
               cid: this.id,
@@ -24694,6 +24740,7 @@ export default {
     },
     studentFreePreview(flag) {
       this.IsLookOpen = flag;
+			this.followingMode(flag)
       this.updateLookOpen();
     },
     OpenJobPreview(flag) {

+ 63 - 18
src/components/easy3/studyStudent.vue

@@ -1041,7 +1041,7 @@
                             />
                             <div style="margin: 5px 0">选择题</div>
 
-														<div class="upload_toolBtn" v-if="tType==='1' && worksStudent[toolIndex].length>0" @click="openChoseWorksDetailDialog(tooC,toolIndex,taskCount)"
+														<div class="upload_toolBtn" v-if="tType==='1' && worksStudent[toolIndex].length>0" @click="openChoseWorksDetailDialog(tooC,toolIndex,taskCount,45)"
                               style="position: absolute;right: 33px;top: -30px;">
                               作业详细
                             </div>
@@ -1069,6 +1069,11 @@
                               alt
                             />
                             <div style="margin: 5px 0">问答</div>
+
+														<div class="upload_toolBtn" v-if="tType==='1' && worksStudent[toolIndex].length>0" @click="openChoseWorksDetailDialog(tooC,toolIndex,taskCount,15)"
+                              style="position: absolute;right: 135px;top: -45px;height: 40px;display: flex;align-items: center;justify-content: center;background: #409EFF;">
+                              作业详细
+                            </div>
                           </div>
                           <div v-if="tooC == 26">
                             <img
@@ -1211,6 +1216,10 @@
                               alt
                             />
                             <div style="margin: 5px 0">选择匹配</div>
+														<div class="upload_toolBtn" v-if="tType==='1' && worksStudent[toolIndex].length>0" @click="openChoseWorksDetailDialog(tooC,toolIndex,taskCount,41)"
+                              style="position: absolute;right: 33px;top: -30px;">
+                              作业详细
+                            </div>
                           </div>
                           <div v-if="tooC == 44">
                             <img
@@ -1227,6 +1236,10 @@
                               alt
                             />
                             <div style="margin: 5px 0">排序</div>
+														<!-- <div class="upload_toolBtn" v-if="tType==='1' && worksStudent[toolIndex].length>0" @click="openChoseWorksDetailDialog(tooC,toolIndex,taskCount,47)"
+                              style="position: absolute;right: 33px;top: -30px;">
+                              作业详细
+                            </div> -->
                           </div>
                           <div v-if="tooC == 48">
                             <img
@@ -10008,7 +10021,7 @@
               'https://view.officeapps.live.com/op/view.aspx?src='
             ) != -1
           "
-          style="width: 95%; margin: 0 auto"
+          style="width: 100%;height:100%; margin: 0 auto"
         >
           <iframe
             style="width: 100%; height: 100%; border: none"
@@ -10032,6 +10045,7 @@
           v-if="fulltype == 1"
           style="
             box-shadow: 0 0 6px 1px #f2f2f2;
+						height:100%;
             width: 100%;
             background: #f1f1f1;
           "
@@ -11952,7 +11966,7 @@
     :scoreDetail="scoreDetail"
     @selectSWorks="selectSWorks" 
     @selectStudent="selectStudent"></checkEnglishVoice>
-		<statisticalAnalysis ref="statisticalAnalysisRef" @refresh="statisticalAnalysisRefresh"/>
+		<statisticalAnalysis ref="statisticalAnalysisRef" @refresh="statisticalAnalysisRefresh"  @changeSplitScreenBehavior="changeSplitScreenBehavior"  :courseType="courseType" :taskCount="taskCount"/>
 		<choseWorksDetailDialog
       ref="choseWorksDetailDialogRef"
       :worksStudentData="this.worksStudent"
@@ -17296,7 +17310,7 @@ export default {
             this.getCourseState(1);
           }
 
-          if ((this.IsFollow && this.tType == 2) || (this.splitScreenData.isOpen && this.splitScreenData.uid != this.splitScreenData.myUid)) {
+					if ((this.IsFollow && this.tType == 2) || (this.splitScreenData.isOpen && this.splitScreenData.uid != this.splitScreenData.myUid)) {
             this.setContent2(false);
             let _followC = res.data[0][0].followC.split("-");
             if (
@@ -20100,17 +20114,16 @@ export default {
 		setClassRoomHelperWidth(width){
       this.classRoomHelperWidth = width
     },
-		openStatisticalAnalysis(tooC,toolIndex,taskCount){
-			this.$refs.statisticalAnalysisRef.open({worksStudent:this.worksStudent[toolIndex],tType:this.tType,toolIndex:toolIndex})
-		},
-    openChoseWorksDetailDialog(tooC, toolIndex, taskCount) {
+		openChoseWorksDetailDialog(tooC, toolIndex, taskCount,tooc) {
       this.$refs.choseWorksDetailDialogRef.open({
+				toolType:tooc,
         tType: this.tType,
         toolIndex: toolIndex
       });
       this.changeSplitScreenBehavior({
         code: 1,
         form: {
+					toolType:tooc,
           toolIndex: toolIndex,
           courseType: this.courseType,
           taskCount: this.taskCount,
@@ -20123,6 +20136,16 @@ export default {
         worksStudent: this.worksStudent[toolIndex],
         tType: this.tType,
         toolIndex: toolIndex
+      });
+			this.changeSplitScreenBehavior({
+        code: 2,
+        form: {
+					toolType:4,
+					courseType: this.courseType,
+          taskCount: this.taskCount,
+          toolIndex: toolIndex,
+          type: 0
+        }
       });
     },
     statisticalAnalysisRefresh(toolIndex) {
@@ -20146,7 +20169,7 @@ export default {
         this.$message.success("已关闭分屏模式");
         this.studentFreePreview(false);
         this.OpenJobPreview(false);
-        this.followingMode(false);
+        // this.followingMode(false);
       } else if (type == 1) {
         //开启分屏
         this.splitScreenData.isOpen = true;
@@ -20159,7 +20182,7 @@ export default {
           this.$message.success("已开启分屏");
           this.studentFreePreview(true);
           this.OpenJobPreview(true);
-          this.followingMode(true);
+          // this.followingMode(true);
         } else {
           this.splitScreenData.isOpen = false;
           this.splitScreenData.userId = "";
@@ -20239,31 +20262,52 @@ export default {
 						if(this.$refs.choseWorksDetailDialogRef.show){
 							this.$refs.choseWorksDetailDialogRef.close();
 						}
+						if(this.$refs.statisticalAnalysisRef.show){
+							this.$refs.statisticalAnalysisRef.close();
+						}
           } else if (behavior.code === 0) {
             //开启内容列表弹窗
             this.checkFileFull1(behavior.form[0], behavior.form[1]);
           } else if (behavior.code === 1) {
             //关于选择题的作业详细的操作
             // toolIndex:toolIndex,courseType:this.courseType,taskCount:this.taskCount,type:0
-            this.courseType = behavior.form.courseType;
-            this.taskCount = behavior.form.taskCount;
+            if(this.courseType!==behavior.form.courseType || this.taskCount!==behavior.form.taskCount){
+							this.courseType = behavior.form.courseType;
+            	this.taskCount = behavior.form.taskCount;
+						}
             this.$nextTick(() => {
-              if (this.$refs.choseWorksDetailDialogRef.show) {
+							if (this.$refs.choseWorksDetailDialogRef.show) {
                 //已经打开了
-								this.$refs.choseWorksDetailDialogRef.splitScreenFn({type:behavior.form.type,showStatisticsType:behavior.form.showStatisticsType})
+								this.$refs.choseWorksDetailDialogRef.splitScreenFn({toolType:behavior.form.toolType,type:behavior.form.type,showStatisticsType:behavior.form.showStatisticsType})
               } else {
-								this.$refs.choseWorksDetailDialogRef.open({toolIndex:behavior.form.toolIndex,tType: this.tType,})
+								this.$refs.choseWorksDetailDialogRef.open({toolType:behavior.form.toolType,toolIndex:behavior.form.toolIndex,tType: this.tType,})
               }
             });
-          }
+          }else if(behavior.code === 2){
+						if(this.$refs.statisticalAnalysisRef.show){
+							this.$refs.statisticalAnalysisRef.splitScreenFn({type:behavior.form.type})
+						}else{
+							this.$refs.statisticalAnalysisRef.open({
+      				  worksStudent: this.worksStudent[behavior.form.toolIndex],
+      				  tType: this.tType,
+      				  toolIndex: behavior.form.toolIndex
+      				});
+						}
+					}
         } else {
         }
       }
     },
     updateSplitScreenData(empty = 0) {
-      // return
       return new Promise(resolve => {
-				if(this.userid!==this.courseDetail.userid)return;
+				if(this.userid!==this.courseDetail.userid){
+					if(!this.courseDetail.userid){
+						return setTimeout(()=>{
+							this.updateSplitScreenData(empty)
+						},2000)
+					}
+					return;
+				};
         if (
           this.splitScreenData.uid == this.splitScreenData.myUid &&
           this.splitScreenData.userId == this.userid
@@ -20324,6 +20368,7 @@ export default {
     },
     studentFreePreview(flag) {
       this.IsLookOpen = flag;
+			this.followingMode(flag)
       this.updateLookOpen();
     },
     OpenJobPreview(flag) {

+ 61 - 20
src/components/studyStudent.vue

@@ -1011,7 +1011,7 @@
                             />
                             <div style="margin: 5px 0">选择题</div>
 
-														<div class="upload_toolBtn" v-if="tType==='1'" @click="openChoseWorksDetailDialog(tooC,toolIndex,taskCount)"
+														<div class="upload_toolBtn" v-if="tType==='1'" @click="openChoseWorksDetailDialog(tooC,toolIndex,taskCount,45)"
                               style="position: absolute;right: 33px;top: -30px;">
                               作业详细
                             </div>
@@ -1039,6 +1039,10 @@
                               alt
                             />
                             <div style="margin: 5px 0">问答</div>
+														<div class="upload_toolBtn" v-if="tType==='1' && worksStudent[toolIndex].length>0" @click="openChoseWorksDetailDialog(tooC,toolIndex,taskCount,15)"
+                              style="position: absolute;right: 135px;top: -45px;height: 40px;display: flex;align-items: center;justify-content: center;background: #409EFF;">
+                              作业详细
+                            </div>
                           </div>
                           <div v-if="tooC == 26">
                             <img
@@ -1181,6 +1185,10 @@
                               alt
                             />
                             <div style="margin: 5px 0">选择匹配</div>
+														<div class="upload_toolBtn" v-if="tType==='1' && worksStudent[toolIndex].length>0" @click="openChoseWorksDetailDialog(tooC,toolIndex,taskCount,41)"
+                              style="position: absolute;right: 33px;top: -30px;">
+                              作业详细
+                            </div>
                           </div>
                           <div v-if="tooC == 44">
                             <img
@@ -9954,7 +9962,7 @@
               'https://view.officeapps.live.com/op/view.aspx?src='
             ) != -1
           "
-          style="width: 95%; margin: 0 auto"
+          style="width: 100%;height:100%; margin: 0 auto"
         >
           <iframe
             style="width: 100%; height: 100%; border: none"
@@ -9979,6 +9987,7 @@
           style="
             box-shadow: 0 0 6px 1px #f2f2f2;
             width: 100%;
+						height:100%;
             background: #f1f1f1;
           "
         >
@@ -11894,7 +11903,7 @@
     :scoreDetail="scoreDetail"
     @selectSWorks="selectSWorks" 
     @selectStudent="selectStudent"></checkEnglishVoice>
-		<statisticalAnalysis ref="statisticalAnalysisRef" @refresh="statisticalAnalysisRefresh"/>
+		<statisticalAnalysis ref="statisticalAnalysisRef" @refresh="statisticalAnalysisRefresh"  @changeSplitScreenBehavior="changeSplitScreenBehavior"  :courseType="courseType" :taskCount="taskCount"/>
 		<choseWorksDetailDialog
       ref="choseWorksDetailDialogRef"
       :worksStudentData="this.worksStudent"
@@ -17288,7 +17297,7 @@ export default {
             this.getCourseState(1);
           }
 
-          if ((this.IsFollow && this.tType == 2) || this.splitScreenData.isOpen) {
+          if ((this.IsFollow && this.tType == 2) || (this.splitScreenData.isOpen && this.splitScreenData.uid != this.splitScreenData.myUid)) {
             this.setContent2(false);
             let _followC = res.data[0][0].followC.split("-");
             if (
@@ -20090,17 +20099,16 @@ export default {
     setClassRoomHelperWidth(width){
       this.classRoomHelperWidth = width
     },
-		openStatisticalAnalysis(tooC,toolIndex,taskCount){
-			this.$refs.statisticalAnalysisRef.open({worksStudent:this.worksStudent[toolIndex],tType:this.tType,toolIndex:toolIndex})
-		},
-    openChoseWorksDetailDialog(tooC, toolIndex, taskCount) {
+		openChoseWorksDetailDialog(tooC, toolIndex, taskCount,tooc) {
       this.$refs.choseWorksDetailDialogRef.open({
+				toolType:tooc,
         tType: this.tType,
         toolIndex: toolIndex
       });
       this.changeSplitScreenBehavior({
         code: 1,
         form: {
+					toolType:tooc,
           toolIndex: toolIndex,
           courseType: this.courseType,
           taskCount: this.taskCount,
@@ -20113,6 +20121,16 @@ export default {
         worksStudent: this.worksStudent[toolIndex],
         tType: this.tType,
         toolIndex: toolIndex
+      });
+			this.changeSplitScreenBehavior({
+        code: 2,
+        form: {
+					toolType:4,
+					courseType: this.courseType,
+          taskCount: this.taskCount,
+          toolIndex: toolIndex,
+          type: 0
+        }
       });
     },
     statisticalAnalysisRefresh(toolIndex) {
@@ -20122,7 +20140,7 @@ export default {
         toolIndex: toolIndex
       });
     },
-    async splitScreenBehavior(type = 0) {
+		async splitScreenBehavior(type = 0) {
       // return;
       if (this.splitScreenData.loading)
         return this.$message.info("操作过快,请稍等");
@@ -20136,7 +20154,7 @@ export default {
         this.$message.success("已关闭分屏模式");
         this.studentFreePreview(false);
         this.OpenJobPreview(false);
-        this.followingMode(false);
+        // this.followingMode(false);
       } else if (type == 1) {
         //开启分屏
         this.splitScreenData.isOpen = true;
@@ -20149,7 +20167,7 @@ export default {
           this.$message.success("已开启分屏");
           this.studentFreePreview(true);
           this.OpenJobPreview(true);
-          this.followingMode(true);
+          // this.followingMode(true);
         } else {
           this.splitScreenData.isOpen = false;
           this.splitScreenData.userId = "";
@@ -20216,7 +20234,7 @@ export default {
           console.log("获取分屏数出错:", e);
         });
     },
-    doSplitScreenBehavior() {
+		doSplitScreenBehavior() {
       if (
         this.splitScreenData.isOpen &&
         this.splitScreenData.uid != this.splitScreenData.myUid
@@ -20229,31 +20247,52 @@ export default {
 						if(this.$refs.choseWorksDetailDialogRef.show){
 							this.$refs.choseWorksDetailDialogRef.close();
 						}
+						if(this.$refs.statisticalAnalysisRef.show){
+							this.$refs.statisticalAnalysisRef.close();
+						}
           } else if (behavior.code === 0) {
             //开启内容列表弹窗
             this.checkFileFull1(behavior.form[0], behavior.form[1]);
           } else if (behavior.code === 1) {
             //关于选择题的作业详细的操作
             // toolIndex:toolIndex,courseType:this.courseType,taskCount:this.taskCount,type:0
-            this.courseType = behavior.form.courseType;
-            this.taskCount = behavior.form.taskCount;
+            if(this.courseType!==behavior.form.courseType || this.taskCount!==behavior.form.taskCount){
+							this.courseType = behavior.form.courseType;
+            	this.taskCount = behavior.form.taskCount;
+						}
             this.$nextTick(() => {
-              if (this.$refs.choseWorksDetailDialogRef.show) {
+							if (this.$refs.choseWorksDetailDialogRef.show) {
                 //已经打开了
-								this.$refs.choseWorksDetailDialogRef.splitScreenFn({type:behavior.form.type,showStatisticsType:behavior.form.showStatisticsType})
+								this.$refs.choseWorksDetailDialogRef.splitScreenFn({toolType:behavior.form.toolType,type:behavior.form.type,showStatisticsType:behavior.form.showStatisticsType})
               } else {
-								this.$refs.choseWorksDetailDialogRef.open({toolIndex:behavior.form.toolIndex,tType: this.tType,})
+								this.$refs.choseWorksDetailDialogRef.open({toolType:behavior.form.toolType,toolIndex:behavior.form.toolIndex,tType: this.tType,})
               }
             });
-          }
+          }else if(behavior.code === 2){
+						if(this.$refs.statisticalAnalysisRef.show){
+							this.$refs.statisticalAnalysisRef.splitScreenFn({type:behavior.form.type})
+						}else{
+							this.$refs.statisticalAnalysisRef.open({
+      				  worksStudent: this.worksStudent[behavior.form.toolIndex],
+      				  tType: this.tType,
+      				  toolIndex: behavior.form.toolIndex
+      				});
+						}
+					}
         } else {
         }
       }
     },
     updateSplitScreenData(empty = 0) {
-      // return
       return new Promise(resolve => {
-				if(this.userid!==this.courseDetail.userid)return;
+				if(this.userid!==this.courseDetail.userid){
+					if(!this.courseDetail.userid){
+						return setTimeout(()=>{
+							this.updateSplitScreenData(empty)
+						},2000)
+					}
+					return;
+				};
         if (
           this.splitScreenData.uid == this.splitScreenData.myUid &&
           this.splitScreenData.userId == this.userid
@@ -20284,6 +20323,7 @@ export default {
               resoleve(0);
             });
         } else if (empty == 2 && this.tType == 1) {
+					console.log("清空清空清空清空")
           let params = [
             {
               cid: this.id,
@@ -20314,6 +20354,7 @@ export default {
     },
     studentFreePreview(flag) {
       this.IsLookOpen = flag;
+			this.followingMode(flag)
       this.updateLookOpen();
     },
     OpenJobPreview(flag) {

File diff suppressed because it is too large
+ 1054 - 5
src/components/works.vue


Some files were not shown because too many files changed in this diff