소스 검색

修改bug

zengyicheng 1 년 전
부모
커밋
ac15792c4a

+ 2 - 2
src/components/pages/components/classStudentComponents/worksDetail3.vue

@@ -1499,7 +1499,7 @@ export default {
 
           // 将结果转换为数组形式
           b = Object.values(b);
-          var c = b.sort(function (x, y) {
+          b = b.sort(function (x, y) {
             // 首先比较stage字段
             if (x.stage !== y.stage) {
               return parseInt(x.stage) - parseInt(y.stage);
@@ -1508,7 +1508,7 @@ export default {
             // 如果stage字段相同,则比较task字段
             return parseInt(x.task) - parseInt(y.task);
           });
-          this.sInfo = c;
+          this.sInfo = b;
           var chapters = [],
             eList = [],
             _ooption = [],

+ 41 - 13
src/components/pages/components/report.vue

@@ -84,6 +84,13 @@ export default {
       askList: [],
       questList: [],
       wordList: [],
+      chooseInfo: [],
+      pjInfo: [],
+      xztkInfo: [],
+      lccjInfo: [],
+      bgInfo: [],
+      cocopiInfo: [],
+      wordInfo: [],
       course: {},
     };
   },
@@ -107,11 +114,17 @@ export default {
           }
           this.dyList = dyList;
           this.userAarray = res.data[1];
-          console.log(res.data[0][1]);
           this.imgList = res.data[2];
           this.askList = res.data[3];
           this.questList = res.data[4];
           this.wordList = res.data[5];
+          this.chooseInfo = res.data[6];
+          this.pjInfo = res.data[7]; //个人评价作业
+          this.xztkInfo = res.data[8]; //选择填空作业
+          this.lccjInfo = res.data[9]; //连词成句作业
+          this.bgInfo = res.data[10]; //表格作业
+          this.cocopiInfo = res.data[11]; //cocopi或源码编辑作业
+          this.wordInfo = res.data[12]; //文档作业
         })
         .catch((err) => {
           console.error(err);
@@ -144,6 +157,13 @@ export default {
       let askList = this.askList;
       let questList = this.questList;
       let wordList = this.wordList;
+      let chooseInfo = this.chooseInfo;
+      let pjInfo = this.pjInfo;
+      let xztkInfo = this.xztkInfo;
+      let lccjInfo = this.lccjInfo;
+      let bgInfo = this.bgInfo;
+      let cocopiInfo = this.cocopiInfo;
+      let wordInfo = this.wordInfo;
 
       let workArray = [];
 
@@ -168,6 +188,13 @@ export default {
                   askList: [],
                   questList: [],
                   wordList: [],
+                  chooseInfo: [],
+                  pjInfo: [],
+                  xztkInfo: [],
+                  lccjInfo: [],
+                  bgInfo: [],
+                  cocopiInfo: [],
+                  wordInfo: [],
                   chapName:
                     "第" +
                     (parseInt(_chap[chapI]) + 1) +
@@ -246,6 +273,13 @@ export default {
                   askList: [],
                   questList: [],
                   wordList: [],
+                  chooseInfo: [],
+                  pjInfo: [],
+                  xztkInfo: [],
+                  lccjInfo: [],
+                  bgInfo: [],
+                  cocopiInfo: [],
+                  wordInfo: [],
                   chapName:
                     "第" +
                     (parseInt(_chap[chapI]) + 1) +
@@ -275,7 +309,7 @@ export default {
                   ) {
                     const element = askList[b];
                     let a1 = JSON.parse(element.content)[0];
-                    let b1 = a1.anwer.split(",");
+                    let b1 = a1.anwer;
                     let c1 = [];
                     for (var j1 = 0; j1 < b1.length; j1++) {
                       c1.push(parseInt(b1[j1]));
@@ -319,16 +353,11 @@ export default {
       }
 
       this.generate(_course + html);
-      console.log(workArray);
     },
     setHtml(workJson) {
       var _title =
-      // style='display:flex;align-items:center'
-        "<div >" +
-        "<h2>" +
-        workJson.chapName +
-        "-" +
-        workJson.username;
+        // style='display:flex;align-items:center'
+        "<div >" + "<h2>" + workJson.chapName + "-" + workJson.username;
       ("</h2>");
       ("</div>");
       var _subtitle = "<h3>" + workJson.taskName + "</h3>";
@@ -405,7 +434,6 @@ export default {
     async generate(a) {
       // 将html文件中需要用到的数据挂载到store上
       this.$store.commit("update", ["report", a]);
-      console.log(this.$store.state.report);
       const content = `<!DOCTYPE html>
       <html lang="en">
       <head>
@@ -422,7 +450,7 @@ export default {
       //生成报告
       const link = document.createElement("a");
       // link.download = "报告.html"; // 文件名
-      let dname = this.course.title+'-'
+      let dname = this.course.title + "-";
       var _uname = [];
       var _userA = this.userAarray;
       if (this.uname.length) {
@@ -431,9 +459,9 @@ export default {
             _uname.push(_userA[i].username);
           }
         }
-        dname+=_uname.join('、')+'.html'
+        dname += _uname.join("、") + ".html";
       } else {
-        dname+='全部学生.html'
+        dname += "全部学生.html";
       }
       link.download = dname; // 文件名
       link.style.display = "none";

+ 2 - 0
src/components/pages/components/report/studentAbility.vue

@@ -413,6 +413,7 @@ export default {
               //劳动课程
               this.$el.querySelector("#person_canvas2")
             );
+            debugger
             let radarOption = JSON.parse(JSON.stringify(this.radarOption));
             for (var i = 0; i < this.randarJson.length; i++) {
               radarOption.radar.indicator.push({
@@ -599,6 +600,7 @@ export default {
               }
             }
           }
+          debugger
           for (var i = 0; i < _workW.length; i++) {
             _workW[i].work = [];
             for (var j = 0; j < _workW[i].elist.length; j++) {

+ 455 - 74
src/components/pages/components/studentWorksDetail.vue

@@ -1873,7 +1873,7 @@ export default {
 
           // 将结果转换为数组形式
           b = Object.values(b);
-          var c = b.sort(function (x, y) {
+          b = b.sort(function (x, y) {
             // 首先比较stage字段
             if (x.stage !== y.stage) {
               return parseInt(x.stage) - parseInt(y.stage);
@@ -1882,7 +1882,7 @@ export default {
             // 如果stage字段相同,则比较task字段
             return parseInt(x.task) - parseInt(y.task);
           });
-          this.sInfo = c;
+          this.sInfo = b;
           var chapters = [],
             eList = [],
             _ooption = [],
@@ -2558,101 +2558,362 @@ export default {
         cid: cid,
       };
       this.ajax
-        .get(this.$store.state.api + "selectWorksDetail3", params)
+        .get(this.$store.state.api + "selectAllWorksDetail", params)
         .then((res) => {
           this.sInfo = res.data[0][0];
           this.chapInfo = JSON.parse(res.data[0][0].chapters);
           var chapters = JSON.parse(res.data[0][0].chapters);
           var worksDetail = res.data[1];
-          // var askArray = res.data[2];
-          this.scopeId = res.data[2].length ? res.data[2][0].id : this.sInfo.id;
+          // this.scopeId = res.data[2][0].id;
+          // var scopeId = res.data[2][0].id;
           var askInfo = res.data[3];
           var answerInfo = res.data[4];
           var linkInfo = res.data[5];
+          var chooseInfo = res.data[6];
+          var pjInfo = res.data[7]; //个人评价作业
+          var xztkInfo = res.data[8]; //选择填空作业
+          var lccjInfo = res.data[9]; //连词成句作业
+          var bgInfo = res.data[10]; //表格作业
+          var cocopiInfo = res.data[11]; //cocopi或源码编辑作业
+          var wordInfo = res.data[12]; //文档作业
+          var workEvaList = res.data[13];
+          this.scopeId = res.data[2].length ? res.data[2][0].id : this.sInfo.id;
           var workJson = {
             img: [],
             imgIndex: 0,
             eList: [],
             rateList: {},
-            wpptInfo: [],
             askInfo: [],
             answerInfo: [],
+            wpptInfo: [],
+            chooseInfo: [],
+            pjInfo: [],
+            xztkInfo: [],
+            lccjInfo: [],
+            bgInfo: [],
+            cocopiInfo: [],
+            wordInfo: [],
           };
-          var eList =
-            chapters[this.sInfo.stage].chapterInfo[0].taskJson[this.sInfo.task]
-              .eList;
-          //           ooption: [
-          //   { value: 0, name: "意识能力" },
-          //   { value: 0, name: "科学探究能力" },
-          //   { value: 0, name: "实践创新能力" },
-          //   { value: 0, name: "学习反思能力" },
-          //   { value: 0, name: "工程思维能力" },
-          // ],
-          var _ooption = [];
-          if (eList) {
-            workJson.eList = eList;
-            for (var i = 0; i < eList.length; i++) {
-              _ooption.push({ value: 0, name: eList[i].value });
-              workJson.rateList[eList[i].value] = 0;
-            }
-            workJson.rateList.content = "";
-            this.ooption = _ooption;
-          } else {
-            workJson.eList = [
-              { value: "意识能力", detail: "", score: 5 },
-              { value: "科学探究能力", detail: "", score: 5 },
-              { value: "实践创新能力", detail: "", score: 5 },
-              { value: "学习反思能力", detail: "", score: 5 },
-              { value: "工程思维能力", detail: "", score: 5 },
-            ];
-            for (var i = 0; i < workJson.eList.length; i++) {
-              _ooption.push({ value: 0, name: workJson.eList[i].value });
-              workJson.rateList[workJson.eList[i].value] = 0;
+          var eList = [];
+          if (workEvaList.length > 0) {
+            for (var qi = 0; qi < workEvaList.length; qi++) {
+              var eListOld =
+                chapters[workEvaList[qi].stage].chapterInfo[0].taskJson[
+                  workEvaList[qi].task
+                ].eList;
+              var _ooption = [];
+              if (eListOld && eListOld.length) {
+                var eListNew = Object.keys(eListOld).map(function (key) {
+                  return {
+                    detail: eListOld[key].detail,
+                    score: eListOld[key].score,
+                    value: eListOld[key].value,
+                  };
+                });
+                eList = eListNew;
+                if (eList && eList.length) {
+                  workJson.eList = eList;
+                  for (var i = 0; i < eList.length; i++) {
+                    _ooption.push({ value: 0, name: eList[i].value });
+                    workJson.rateList[eList[i].value] = 0;
+                  }
+                  workJson.rateList.content = "";
+                  this.ooption = _ooption;
+                } else {
+                  workJson.eList = [
+                    { value: "意识能力", detail: "", score: 5 },
+                    { value: "科学探究能力", detail: "", score: 5 },
+                    { value: "实践创新能力", detail: "", score: 5 },
+                    { value: "学习反思能力", detail: "", score: 5 },
+                    { value: "工程思维能力", detail: "", score: 5 },
+                  ];
+                  for (var i = 0; i < workJson.eList.length; i++) {
+                    _ooption.push({ value: 0, name: workJson.eList[i].value });
+                    workJson.rateList[workJson.eList[i].value] = 0;
+                  }
+                  workJson.rateList.content = "";
+                  this.ooption = [
+                    { value: 0, name: "意识能力" },
+                    { value: 0, name: "科学探究能力" },
+                    { value: 0, name: "实践创新能力" },
+                    { value: 0, name: "学习反思能力" },
+                    { value: 0, name: "工程思维能力" },
+                  ];
+                }
+              }
             }
-            workJson.rateList.content = "";
-            this.ooption = [
-              { value: 0, name: "意识能力" },
-              { value: 0, name: "科学探究能力" },
-              { value: 0, name: "实践创新能力" },
-              { value: 0, name: "学习反思能力" },
-              { value: 0, name: "工程思维能力" },
-            ];
           }
-          if (this.sInfo.rate) {
-            var _rate = JSON.parse(this.sInfo.rate);
-            var _rateList = Object.keys(JSON.parse(this.sInfo.rate));
-            for (var i = 0; i < _rateList.length; i++) {
-              var _c = Object.keys(workJson.rateList);
-              if (_c.indexOf(_rateList[i]) != -1) {
-                workJson.rateList[_rateList[i]] = _rate[_rateList[i]];
+          var _rate = [],
+            _rateList = [];
+          if (workEvaList.length > 0) {
+            for (var p = 0; p < workEvaList.length; p++) {
+              if (workEvaList[p].rate && eList && eList.length) {
+                _rate[p] = JSON.parse(workEvaList[p].rate);
+              }
+              _rateList[p] = Object.keys(JSON.parse(workEvaList[p].rate));
+              for (var i = 0; i < _rateList[p].length; i++) {
+                var _c = Object.keys(workJson.rateList);
+                if (_c.indexOf(_rateList[p][i]) != -1) {
+                  workJson.rateList[_rateList[i]] = _rate[_rateList[i]];
+                }
+              }
+              for (var i = 0; i < this.ooption[p].length; i++) {
+                if (_rateList[p].indexOf(this.ooption[p][i].name) != -1) {
+                  this.ooption[p][i].value = _rate[p][this.ooption[p][i].name];
+                }
               }
             }
-            for (var i = 0; i < this.ooption.length; i++) {
-              if (_rateList.indexOf(this.ooption[i].name) != -1) {
-                this.ooption[i].value = _rate[this.ooption[i].name];
+          } else {
+            if (this.sInfo.rate) {
+              _rate = JSON.parse(this.sInfo.rate);
+              _rateList = Object.keys(JSON.parse(this.sInfo.rate));
+              for (var i = 0; i < _rateList.length; i++) {
+                var _c = Object.keys(workJson.rateList);
+                if (_c.indexOf(_rateList[i]) != -1) {
+                  workJson.rateList[_rateList[i]] = _rate[_rateList[i]];
+                }
+              }
+              for (var i = 0; i < this.ooption.length; i++) {
+                if (_rateList.indexOf(this.ooption[i].name) != -1) {
+                  this.ooption[i].value = _rate[this.ooption[i].name];
+                }
               }
             }
           }
 
           for (var i = 0; i < worksDetail.length; i++) {
-            workJson.img.push({ src: worksDetail[i].content, id: i });
+            workJson.img.push({
+              src: worksDetail[i].content,
+              id: i,
+              score: worksDetail[i].score
+                ? JSON.parse(worksDetail[i].score).wScore
+                : worksDetail[i].score,
+            });
           }
           for (var i = 0; i < askInfo.length; i++) {
             const element = askInfo[i];
             let a = JSON.parse(element.content)[0];
-            let b = a.anwer.split(",");
-            let c = [];
-            for (var j = 0; j < b.length; j++) {
-              c.push(parseInt(b[j]));
+            let e = [];
+            for (var y = 0; y < a.askJson.length; y++) {
+              if (a.askJson[y].type == "2") {
+                e.push(JSON.parse(askInfo[i].content)[0].anwer[y]);
+              } else {
+                e.push(JSON.parse(askInfo[i].content)[0].anwer[y]);
+              }
             }
-            a.askJson.radio = c;
-            a.askJson.time = element.time;
-            workJson.askInfo.push(a.askJson);
+            a.radio = e;
+            workJson.askInfo.push({
+              askInfo: a,
+              score: askInfo[i].score
+                ? JSON.parse(askInfo[i].score).wScore
+                : askInfo[i].score,
+            });
           }
 
+          for (var i = 0; i < chooseInfo.length; i++) {
+            const element1 = chooseInfo[i];
+            let t = JSON.parse(element1.content)[0].testJson;
+            let e = [];
+            for (var y = 0; y < t.testJson.length; y++) {
+              if (t.testJson[y].type == "2") {
+                e.push(JSON.parse(chooseInfo[i].content)[0].anwer[y]);
+              } else {
+                e.push(JSON.parse(chooseInfo[i].content)[0].anwer[y]);
+              }
+            }
+            t.radio = e;
+            workJson.chooseInfo.push({
+              chooseInfo: t,
+              score: chooseInfo[i].score
+                ? JSON.parse(chooseInfo[i].score).wScore
+                : chooseInfo[i].score,
+            });
+          }
+
+          // for (var i = 0; i < pptInfo.length; i++) {
+          //   var a = ["PPT", "PPTX", "XLSX", "XLS", "DOC", "DOCX"];
+          //   if (
+          //     a.indexOf(
+          //       pptInfo[i].content
+          //         .split(".")
+          //         [pptInfo[i].content.split(".").length - 1].toLocaleUpperCase()
+          //     ) != -1
+          //   ) {
+          //     var a =
+          //       "https://view.officeapps.live.com/op/view.aspx?src=" +
+          //       pptInfo[i].content;
+          //     workJson.wpptInfo.push({
+          //       wpptInfo: a,
+          //       score: pptInfo[i].score
+          //         ? JSON.parse(pptInfo[i].score).wScore
+          //         : pptInfo[i].score,
+          //     });
+          //   } else if (
+          //     pptInfo[i].content
+          //       .split(".")
+          //       [
+          //         pptInfo[i].content.split(".").length - 1
+          //       ].toLocaleUpperCase() == "PDF"
+          //   ) {
+          //     workJson.wpptInfo.push({
+          //       wpptInfo: pptInfo[i].content,
+          //       score: pptInfo[i].score
+          //         ? JSON.parse(pptInfo[i].score).wScore
+          //         : pptInfo[i].score,
+          //     });
+          //   }
+          // }
+
           for (var i = 0; i < answerInfo.length; i++) {
             const element = answerInfo[i];
-            workJson.answerInfo.push(JSON.parse(element.content)[0]);
+            workJson.answerInfo.push({
+              answerInfo: JSON.parse(element.content)[0],
+              score: answerInfo[i].score
+                ? JSON.parse(answerInfo[i].score).wScore
+                : answerInfo[i].score,
+            });
+          }
+
+          for (var i = 0; i < pjInfo.length; i++) {
+            var pj = pjInfo[i];
+            var a =
+              chapters[this.sInfo.stage].chapterInfo[0].taskJson[
+                this.sInfo.task
+              ].toolChoose;
+            var rateJson = [];
+            for (var z = 0; z < a.length; z++) {
+              if (a[z].tool[0] == 40) {
+                rateJson = a[z].rateJson;
+              }
+            }
+            workJson.pjInfo.push({
+              answer: JSON.parse(pj.content),
+              rateJson: rateJson,
+              score: pjInfo[i].score
+                ? JSON.parse(pjInfo[i].score).wScore
+                : pjInfo[i].score,
+            });
+          }
+
+          for (var i = 0; i < xztkInfo.length; i++) {
+            if (xztkInfo[i].type == 7) {
+              var xztk = xztkInfo[i];
+              var a =
+                chapters[this.sInfo.stage].chapterInfo[0].taskJson[
+                  this.sInfo.task
+                ].toolChoose;
+              var selectJson = [];
+              for (var z = 0; z < a.length; z++) {
+                if (a[z].tool[0] == 41) {
+                  selectJson = a[z].selectJson;
+                }
+              }
+              workJson.xztkInfo.push({
+                answer: xztk.content.split(",").map(Number),
+                selectJson: selectJson,
+                score: xztkInfo[i].score
+                  ? JSON.parse(xztkInfo[i].score).wScore
+                  : xztkInfo[i].score,
+              });
+            }
+          }
+
+          for (var i = 0; i < lccjInfo.length; i++) {
+            var lccj = lccjInfo[i];
+            workJson.lccjInfo.push({
+              lccjInfo: JSON.parse(lccj.content)[0],
+              score: lccjInfo[i].score
+                ? JSON.parse(lccjInfo[i].score).wScore
+                : lccjInfo[i].score,
+            });
+          }
+
+          for (var i = 0; i < bgInfo.length; i++) {
+            var bg = bgInfo[i];
+            workJson.bgInfo.push({
+              bgInfo: JSON.parse(bg.content),
+              score: bgInfo[i].score
+                ? JSON.parse(bgInfo[i].score).wScore
+                : bgInfo[i].score,
+            });
+          }
+
+          for (var i = 0; i < cocopiInfo.length; i++) {
+            var cocopi = cocopiInfo[i];
+            var c = ["DOT", "DOC", "DOCX", "PPT", "PPTX", "XLSX", "XLS"];
+            var d = [
+              "BMP",
+              "PJP",
+              "APNG",
+              "PNG",
+              "JPG",
+              "GIF",
+              "SVG",
+              "JPEG",
+              "JPG",
+              "ICO",
+              "PGPEG",
+              "AVIF",
+            ];
+            var t = 0; //t = 1是图片 2是文档 3是pdf
+            if (
+              d.indexOf(
+                cocopi.content
+                  .split(".")
+                  [cocopi.content.split(".").length - 1].toLocaleUpperCase()
+              ) != -1
+            ) {
+              t = 1;
+              workJson.cocopiInfo.push({
+                url: cocopi.content,
+                type: t,
+                score: cocopiInfo[i].score
+                  ? JSON.parse(cocopiInfo[i].score).wScore
+                  : cocopiInfo[i].score,
+              });
+            } else if (
+              c.indexOf(
+                cocopi.content
+                  .split(".")
+                  [cocopi.content.split(".").length - 1].toLocaleUpperCase()
+              ) != -1
+            ) {
+              t = 2;
+              var a =
+                "https://view.officeapps.live.com/op/view.aspx?src=" +
+                cocopi.content;
+              workJson.cocopiInfo.push({
+                url: a,
+                type: t,
+                score: cocopiInfo[i].score
+                  ? JSON.parse(cocopiInfo[i].score).wScore
+                  : cocopiInfo[i].score,
+              });
+            } else if (
+              cocopi.content
+                .split(".")
+                [cocopi.content.split(".").length - 1].toLocaleUpperCase() ==
+              "PDF"
+            ) {
+              t = 3;
+              workJson.cocopiInfo.push({
+                url: cocopi.content,
+                type: t,
+                score: cocopiInfo[i].score
+                  ? JSON.parse(cocopiInfo[i].score).wScore
+                  : cocopiInfo[i].score,
+              });
+            }
+          }
+
+          for (var i = 0; i < wordInfo.length; i++) {
+            var word = wordInfo[i];
+            workJson.wordInfo.push({
+              wordInfo: JSON.parse(word.content),
+              score: wordInfo[i].score
+                ? JSON.parse(wordInfo[i].score).wScore
+                : wordInfo[i].score,
+            });
           }
 
           this.worksDetail = workJson;
@@ -2693,26 +2954,36 @@ export default {
               }"/></div>`;
             }
           }
-
           var _ask = "";
           if (workJson.askInfo.length > 0) {
-            var _ask = "<h3>选择题</h3>";
+            var _ask = "<h3>问卷</h3>";
             for (var i = 0; i < workJson.askInfo.length; i++) {
               var _div = document.createElement("div");
-              _div.innerHTML = `<h4>标题:${workJson.askInfo[i].askTitle}</h4>`;
-              for (var j = 0; j < workJson.askInfo[i].askJson.length; j++) {
+              _div.innerHTML = `<h4>标题:${workJson.askInfo[i].askInfo.askJson.askTitle}</h4>`;
+              for (
+                var j = 0;
+                j < workJson.askInfo[i].askInfo.askJson.askJson.length;
+                j++
+              ) {
                 var _div2 = document.createElement("div");
                 _div2.innerHTML = `<h5>第${j + 1}题:${
-                  workJson.askInfo[i].askJson[j].askstitle
-                }  选择:${workJson.askInfo[i].radio[j] + 1}</h5> `;
+                  workJson.askInfo[i].askInfo.askJson.askJson[j].askstitle
+                }  选择:${
+                  workJson.askInfo[i].askInfo.answer &&
+                  workJson.askInfo[i].askInfo.answer.length > 0
+                    ? workJson.askInfo[i].askInfo.answer[0]
+                    : 1
+                }</h5> `;
                 var _div3 = document.createElement("div");
                 for (
                   var z = 0;
-                  z < workJson.askInfo[i].askJson[j].checkList.length;
+                  z <
+                  workJson.askInfo[i].askInfo.askJson.askJson[j].checkList
+                    .length;
                   z++
                 ) {
                   _div3.innerHTML += `<span style="margin-right:5px">${z + 1}.${
-                    workJson.askInfo[i].askJson[j].checkList[z]
+                    workJson.askInfo[i].askInfo.askJson.askJson[j].checkList[z]
                   }</span>`;
                 }
                 _div2.innerHTML += `<div>${_div3.innerHTML}</div>`;
@@ -2727,8 +2998,8 @@ export default {
             var _answer = "<h3>问答</h3>";
             for (var i = 0; i < workJson.answerInfo.length; i++) {
               var _div = document.createElement("div");
-              _div.innerHTML = `<h4>问答:${workJson.answerInfo[i].answerTitle}</h4>`;
-              _div.innerHTML += `<div>${workJson.answerInfo[i].answer}</div>`;
+              _div.innerHTML = `<h4>问答:${workJson.answerInfo[i].answerInfo.answerTitle}</h4>`;
+              _div.innerHTML += `<div>${workJson.answerInfo[i].answerInfo.answer}</div>`;
               _answer += `<div>${_div.innerHTML}</div>`;
             }
           }
@@ -2740,8 +3011,118 @@ export default {
             }
           }
 
+          var _choose = "";
+          if (workJson.chooseInfo.length > 0) {
+            var _choose = "<h3>选择题</h3>";
+            for (var i = 0; i < workJson.chooseInfo.length; i++) {
+              var _div = document.createElement("div");
+              _div.innerHTML = `<h4>标题:${workJson.chooseInfo[i].chooseInfo.testTitle}</h4>`;
+              for (
+                var j = 0;
+                j < workJson.chooseInfo[i].chooseInfo.testJson.length;
+                j++
+              ) {
+                var _div2 = document.createElement("div");
+                _div2.innerHTML = `<h5>第${j + 1}题:${
+                  workJson.chooseInfo[i].chooseInfo.testJson[j].teststitle
+                }  选择:${
+                  workJson.chooseInfo[i].chooseInfo.testJson[j].answer
+                }</h5> `;
+                var _div3 = document.createElement("div");
+                for (
+                  var z = 0;
+                  z <
+                  workJson.chooseInfo[i].chooseInfo.testJson[j].checkList
+                    .length;
+                  z++
+                ) {
+                  _div3.innerHTML += `<span style="margin-right:5px">${z + 1}.${
+                    workJson.chooseInfo[i].chooseInfo.testJson[j].checkList[z]
+                  }</span>`;
+                }
+                _div2.innerHTML += `<div>${_div3.innerHTML}</div>`;
+                _div.innerHTML += `<div>${_div2.innerHTML}</div>`;
+              }
+              _choose += `<div>${_div.innerHTML}</div>`;
+            }
+          }
+
+          // var _pj = "";
+          // if(workJson.pjInfo.length > 0){
+          //   var _pj = "<h3>个人评价<h3>";
+          //   for(var i = 0;i<workJson.pjInfo.length;i++){
+          //     var _div = document.createElement("div");
+          //     _div.innerHTML = `<h4>个人评价:${workJson.pjInfo[i].answer.eBzText}</h4> `;
+          //     _div.innerHTML += `<div>${workJson.pjInfo[i].radio}</div> `;
+          //     _choose += `<div>${_div.innerHTML}</div>`;
+          //   }
+          // }
+
+          var _lccjInfo = "";
+          if (workJson.lccjInfo.length > 0) {
+            var _lccjInfo = "<h3>连词成句<h3>";
+            for (var i = 0; i < workJson.lccjInfo.length; i++) {
+              var _div = document.createElement("div");
+              _div.innerHTML = `<h4>第一题${workJson.lccjInfo[i].lccjInfo.sentenceTitle}</h4> `;
+              var _div2 = document.createElement("div");
+              for (
+                var j = 0;
+                j < workJson.lccjInfo[i].lccjInfo.chooseSenList.length;
+                j++
+              ) {
+                _div2.innerHTML += ` 句子 ${j + 1} : ${
+                  workJson.lccjInfo[i].lccjInfo.chooseSenList[j]
+                }`;
+              }
+
+              _div.innerHTML += `<div>${_div2.innerHTML}</div>`;
+              _lccjInfo += `<div>${_div.innerHTML}</div>`;
+            }
+          }
+
+          var _bg = "";
+          if (workJson.bgInfo.length > 0) {
+            var _bg = "<h3>表格<h3>";
+            for (var i = 0; i < workJson.bgInfo.length; i++) {
+              var _div = document.createElement("div");
+              _div.innerHTML = `<h4>${workJson.bgInfo[i].bgInfo.text}</h4> `;
+              _bg += `<div>${_div.innerHTML}</div>`;
+            }
+          }
+
+          var _cocopi = "";
+          if (workJson.cocopiInfo.length > 0) {
+            var _bg = "<h3>cocopi<h3>";
+            for (var i = 0; i < workJson.cocopiInfo.length; i++) {
+              var _div = document.createElement("div");
+              _div.innerHTML = `<div style="margin-top:10px"><a href='${workJson.cocopiInfo[i].url}'>${workJson.cocopiInfo[i].url}</a></div>`;
+              _cocopi += `<div>${_div.innerHTML}</div>`;
+            }
+          }
+
+          var _word = "";
+          if (workJson.wordInfo.length > 0) {
+            var _word = "<h3>文档<h3>";
+            for (var i = 0; i < workJson.wordInfo.length; i++) {
+              var _div = document.createElement("div");
+              _div.innerHTML = `<h4>${workJson.wordInfo[i].wordInfo.text}</h4> `;
+              _word += `<div>${_div.innerHTML}</div>`;
+            }
+          }
+
           var _html =
-            _course + _title + _subtitle + _img + _ask + _answer + _link;
+            _course +
+            _title +
+            _subtitle +
+            _img +
+            _ask +
+            _answer +
+            _link +
+            _choose +
+            _lccjInfo +
+            _bg +
+            _cocopi +
+            _word;
           this.generate(_html);
         })
         .catch((err) => {

+ 458 - 75
src/components/pages/components/worksDetail2.vue

@@ -173,7 +173,9 @@
               <el-button
                 type="primary"
                 size="small"
-                @click="lookWork2(scope.row.id, scope.row.userid, '', '')"
+                @click="
+                  lookWork2(scope.row.id, scope.row.userid, scope.row.courseid)
+                "
                 >导出报告</el-button
               >
               <!-- <el-button
@@ -2848,108 +2850,369 @@ export default {
     },
     onPlayerPlay() {},
     // this.$store.commit("update", ["userInfo", userInfo]);
-    lookWork2(id, uid, stage, task) {
+    lookWork2(id, uid, cid) {
       // this.scopeId = id;
       let params = {
         uid: uid,
-        cid: this.id,
+        cid: cid,
       };
       this.ajax
-        .get(this.$store.state.api + "selectWorksDetail3", params)
+        .get(this.$store.state.api + "selectAllWorksDetail", params)
         .then((res) => {
           this.sInfo = res.data[0][0];
           this.chapInfo = JSON.parse(res.data[0][0].chapters);
           var chapters = JSON.parse(res.data[0][0].chapters);
           var worksDetail = res.data[1];
-          // var askArray = res.data[2];
-          this.scopeId = res.data[2].length ? res.data[2][0].id : this.sInfo.id;
+          // this.scopeId = res.data[2][0].id;
+          // var scopeId = res.data[2][0].id;
           var askInfo = res.data[3];
           var answerInfo = res.data[4];
           var linkInfo = res.data[5];
+          var chooseInfo = res.data[6];
+          var pjInfo = res.data[7]; //个人评价作业
+          var xztkInfo = res.data[8]; //选择填空作业
+          var lccjInfo = res.data[9]; //连词成句作业
+          var bgInfo = res.data[10]; //表格作业
+          var cocopiInfo = res.data[11]; //cocopi或源码编辑作业
+          var wordInfo = res.data[12]; //文档作业
+          var workEvaList = res.data[13];
+          this.scopeId = res.data[2].length ? res.data[2][0].id : this.sInfo.id;
           var workJson = {
             img: [],
             imgIndex: 0,
             eList: [],
             rateList: {},
-            wpptInfo: [],
             askInfo: [],
             answerInfo: [],
+            wpptInfo: [],
+            chooseInfo: [],
+            pjInfo: [],
+            xztkInfo: [],
+            lccjInfo: [],
+            bgInfo: [],
+            cocopiInfo: [],
+            wordInfo: [],
           };
-          var eList =
-            chapters[this.sInfo.stage].chapterInfo[0].taskJson[this.sInfo.task]
-              .eList;
-          //           ooption: [
-          //   { value: 0, name: "意识能力" },
-          //   { value: 0, name: "科学探究能力" },
-          //   { value: 0, name: "实践创新能力" },
-          //   { value: 0, name: "学习反思能力" },
-          //   { value: 0, name: "工程思维能力" },
-          // ],
-          var _ooption = [];
-          if (eList) {
-            workJson.eList = eList;
-            for (var i = 0; i < eList.length; i++) {
-              _ooption.push({ value: 0, name: eList[i].value });
-              workJson.rateList[eList[i].value] = 0;
-            }
-            workJson.rateList.content = "";
-            this.ooption = _ooption;
-          } else {
-            workJson.eList = [
-              { value: "意识能力", detail: "", score: 5 },
-              { value: "科学探究能力", detail: "", score: 5 },
-              { value: "实践创新能力", detail: "", score: 5 },
-              { value: "学习反思能力", detail: "", score: 5 },
-              { value: "工程思维能力", detail: "", score: 5 },
-            ];
-            for (var i = 0; i < workJson.eList.length; i++) {
-              _ooption.push({ value: 0, name: workJson.eList[i].value });
-              workJson.rateList[workJson.eList[i].value] = 0;
+          var eList = [];
+          if (workEvaList.length > 0) {
+            for (var qi = 0; qi < workEvaList.length; qi++) {
+              var eListOld =
+                chapters[workEvaList[qi].stage].chapterInfo[0].taskJson[
+                  workEvaList[qi].task
+                ].eList;
+              var _ooption = [];
+              if (eListOld && eListOld.length) {
+                var eListNew = Object.keys(eListOld).map(function (key) {
+                  return {
+                    detail: eListOld[key].detail,
+                    score: eListOld[key].score,
+                    value: eListOld[key].value,
+                  };
+                });
+                eList = eListNew;
+                if (eList && eList.length) {
+                  workJson.eList = eList;
+                  for (var i = 0; i < eList.length; i++) {
+                    _ooption.push({ value: 0, name: eList[i].value });
+                    workJson.rateList[eList[i].value] = 0;
+                  }
+                  workJson.rateList.content = "";
+                  this.ooption = _ooption;
+                } else {
+                  workJson.eList = [
+                    { value: "意识能力", detail: "", score: 5 },
+                    { value: "科学探究能力", detail: "", score: 5 },
+                    { value: "实践创新能力", detail: "", score: 5 },
+                    { value: "学习反思能力", detail: "", score: 5 },
+                    { value: "工程思维能力", detail: "", score: 5 },
+                  ];
+                  for (var i = 0; i < workJson.eList.length; i++) {
+                    _ooption.push({ value: 0, name: workJson.eList[i].value });
+                    workJson.rateList[workJson.eList[i].value] = 0;
+                  }
+                  workJson.rateList.content = "";
+                  this.ooption = [
+                    { value: 0, name: "意识能力" },
+                    { value: 0, name: "科学探究能力" },
+                    { value: 0, name: "实践创新能力" },
+                    { value: 0, name: "学习反思能力" },
+                    { value: 0, name: "工程思维能力" },
+                  ];
+                }
+              }
             }
-            workJson.rateList.content = "";
-            this.ooption = [
-              { value: 0, name: "意识能力" },
-              { value: 0, name: "科学探究能力" },
-              { value: 0, name: "实践创新能力" },
-              { value: 0, name: "学习反思能力" },
-              { value: 0, name: "工程思维能力" },
-            ];
           }
-          if (this.sInfo.rate) {
-            var _rate = JSON.parse(this.sInfo.rate);
-            var _rateList = Object.keys(JSON.parse(this.sInfo.rate));
-            for (var i = 0; i < _rateList.length; i++) {
-              var _c = Object.keys(workJson.rateList);
-              if (_c.indexOf(_rateList[i]) != -1) {
-                workJson.rateList[_rateList[i]] = _rate[_rateList[i]];
+          var _rate = [],
+            _rateList = [];
+          if (workEvaList.length > 0) {
+            for (var p = 0; p < workEvaList.length; p++) {
+              if (workEvaList[p].rate && eList && eList.length) {
+                _rate[p] = JSON.parse(workEvaList[p].rate);
+              }
+              _rateList[p] = Object.keys(JSON.parse(workEvaList[p].rate));
+              for (var i = 0; i < _rateList[p].length; i++) {
+                var _c = Object.keys(workJson.rateList);
+                if (_c.indexOf(_rateList[p][i]) != -1) {
+                  workJson.rateList[_rateList[i]] = _rate[_rateList[i]];
+                }
+              }
+              for (var i = 0; i < this.ooption[p].length; i++) {
+                if (_rateList[p].indexOf(this.ooption[p][i].name) != -1) {
+                  this.ooption[p][i].value = _rate[p][this.ooption[p][i].name];
+                }
               }
             }
-            for (var i = 0; i < this.ooption.length; i++) {
-              if (_rateList.indexOf(this.ooption[i].name) != -1) {
-                this.ooption[i].value = _rate[this.ooption[i].name];
+          } else {
+            if (this.sInfo.rate) {
+              _rate = JSON.parse(this.sInfo.rate);
+              _rateList = Object.keys(JSON.parse(this.sInfo.rate));
+              for (var i = 0; i < _rateList.length; i++) {
+                var _c = Object.keys(workJson.rateList);
+                if (_c.indexOf(_rateList[i]) != -1) {
+                  workJson.rateList[_rateList[i]] = _rate[_rateList[i]];
+                }
+              }
+              for (var i = 0; i < this.ooption.length; i++) {
+                if (_rateList.indexOf(this.ooption[i].name) != -1) {
+                  this.ooption[i].value = _rate[this.ooption[i].name];
+                }
               }
             }
           }
 
           for (var i = 0; i < worksDetail.length; i++) {
-            workJson.img.push({ src: worksDetail[i].content, id: i });
+            workJson.img.push({
+              src: worksDetail[i].content,
+              id: i,
+              score: worksDetail[i].score
+                ? JSON.parse(worksDetail[i].score).wScore
+                : worksDetail[i].score,
+            });
           }
           for (var i = 0; i < askInfo.length; i++) {
             const element = askInfo[i];
             let a = JSON.parse(element.content)[0];
-            let b = a.anwer.split(",");
-            let c = [];
-            for (var j = 0; j < b.length; j++) {
-              c.push(parseInt(b[j]));
+            let e = [];
+            for (var y = 0; y < a.askJson.length; y++) {
+              if (a.askJson[y].type == "2") {
+                e.push(JSON.parse(askInfo[i].content)[0].anwer[y]);
+              } else {
+                e.push(JSON.parse(askInfo[i].content)[0].anwer[y]);
+              }
             }
-            a.askJson.radio = c;
-            a.askJson.time = element.time;
-            workJson.askInfo.push(a.askJson);
+            a.radio = e;
+            workJson.askInfo.push({
+              askInfo: a,
+              score: askInfo[i].score
+                ? JSON.parse(askInfo[i].score).wScore
+                : askInfo[i].score,
+            });
           }
 
+          for (var i = 0; i < chooseInfo.length; i++) {
+            const element1 = chooseInfo[i];
+            let t = JSON.parse(element1.content)[0].testJson;
+            let e = [];
+            for (var y = 0; y < t.testJson.length; y++) {
+              if (t.testJson[y].type == "2") {
+                e.push(JSON.parse(chooseInfo[i].content)[0].anwer[y]);
+              } else {
+                e.push(JSON.parse(chooseInfo[i].content)[0].anwer[y]);
+              }
+            }
+            t.radio = e;
+            workJson.chooseInfo.push({
+              chooseInfo: t,
+              score: chooseInfo[i].score
+                ? JSON.parse(chooseInfo[i].score).wScore
+                : chooseInfo[i].score,
+            });
+          }
+
+          // for (var i = 0; i < pptInfo.length; i++) {
+          //   var a = ["PPT", "PPTX", "XLSX", "XLS", "DOC", "DOCX"];
+          //   if (
+          //     a.indexOf(
+          //       pptInfo[i].content
+          //         .split(".")
+          //         [pptInfo[i].content.split(".").length - 1].toLocaleUpperCase()
+          //     ) != -1
+          //   ) {
+          //     var a =
+          //       "https://view.officeapps.live.com/op/view.aspx?src=" +
+          //       pptInfo[i].content;
+          //     workJson.wpptInfo.push({
+          //       wpptInfo: a,
+          //       score: pptInfo[i].score
+          //         ? JSON.parse(pptInfo[i].score).wScore
+          //         : pptInfo[i].score,
+          //     });
+          //   } else if (
+          //     pptInfo[i].content
+          //       .split(".")
+          //       [
+          //         pptInfo[i].content.split(".").length - 1
+          //       ].toLocaleUpperCase() == "PDF"
+          //   ) {
+          //     workJson.wpptInfo.push({
+          //       wpptInfo: pptInfo[i].content,
+          //       score: pptInfo[i].score
+          //         ? JSON.parse(pptInfo[i].score).wScore
+          //         : pptInfo[i].score,
+          //     });
+          //   }
+          // }
+
           for (var i = 0; i < answerInfo.length; i++) {
             const element = answerInfo[i];
-            workJson.answerInfo.push(JSON.parse(element.content)[0]);
+            workJson.answerInfo.push({
+              answerInfo: JSON.parse(element.content)[0],
+              score: answerInfo[i].score
+                ? JSON.parse(answerInfo[i].score).wScore
+                : answerInfo[i].score,
+            });
+          }
+
+          for (var i = 0; i < pjInfo.length; i++) {
+            var pj = pjInfo[i];
+            var a =
+              chapters[this.sInfo.stage].chapterInfo[0].taskJson[
+                this.sInfo.task
+              ].toolChoose;
+            var rateJson = [];
+            for (var z = 0; z < a.length; z++) {
+              if (a[z].tool[0] == 40) {
+                rateJson = a[z].rateJson;
+              }
+            }
+            workJson.pjInfo.push({
+              answer: JSON.parse(pj.content),
+              rateJson: rateJson,
+              score: pjInfo[i].score
+                ? JSON.parse(pjInfo[i].score).wScore
+                : pjInfo[i].score,
+            });
+          }
+
+          for (var i = 0; i < xztkInfo.length; i++) {
+            if (xztkInfo[i].type == 7) {
+              var xztk = xztkInfo[i];
+              var a =
+                chapters[this.sInfo.stage].chapterInfo[0].taskJson[
+                  this.sInfo.task
+                ].toolChoose;
+              var selectJson = [];
+              for (var z = 0; z < a.length; z++) {
+                if (a[z].tool[0] == 41) {
+                  selectJson = a[z].selectJson;
+                }
+              }
+              workJson.xztkInfo.push({
+                answer: xztk.content.split(",").map(Number),
+                selectJson: selectJson,
+                score: xztkInfo[i].score
+                  ? JSON.parse(xztkInfo[i].score).wScore
+                  : xztkInfo[i].score,
+              });
+            }
+          }
+
+          for (var i = 0; i < lccjInfo.length; i++) {
+            var lccj = lccjInfo[i];
+            workJson.lccjInfo.push({
+              lccjInfo: JSON.parse(lccj.content)[0],
+              score: lccjInfo[i].score
+                ? JSON.parse(lccjInfo[i].score).wScore
+                : lccjInfo[i].score,
+            });
+          }
+
+          for (var i = 0; i < bgInfo.length; i++) {
+            var bg = bgInfo[i];
+            workJson.bgInfo.push({
+              bgInfo: JSON.parse(bg.content),
+              score: bgInfo[i].score
+                ? JSON.parse(bgInfo[i].score).wScore
+                : bgInfo[i].score,
+            });
+          }
+
+          for (var i = 0; i < cocopiInfo.length; i++) {
+            var cocopi = cocopiInfo[i];
+            var c = ["DOT", "DOC", "DOCX", "PPT", "PPTX", "XLSX", "XLS"];
+            var d = [
+              "BMP",
+              "PJP",
+              "APNG",
+              "PNG",
+              "JPG",
+              "GIF",
+              "SVG",
+              "JPEG",
+              "JPG",
+              "ICO",
+              "PGPEG",
+              "AVIF",
+            ];
+            var t = 0; //t = 1是图片 2是文档 3是pdf
+            if (
+              d.indexOf(
+                cocopi.content
+                  .split(".")
+                  [cocopi.content.split(".").length - 1].toLocaleUpperCase()
+              ) != -1
+            ) {
+              t = 1;
+              workJson.cocopiInfo.push({
+                url: cocopi.content,
+                type: t,
+                score: cocopiInfo[i].score
+                  ? JSON.parse(cocopiInfo[i].score).wScore
+                  : cocopiInfo[i].score,
+              });
+            } else if (
+              c.indexOf(
+                cocopi.content
+                  .split(".")
+                  [cocopi.content.split(".").length - 1].toLocaleUpperCase()
+              ) != -1
+            ) {
+              t = 2;
+              var a =
+                "https://view.officeapps.live.com/op/view.aspx?src=" +
+                cocopi.content;
+              workJson.cocopiInfo.push({
+                url: a,
+                type: t,
+                score: cocopiInfo[i].score
+                  ? JSON.parse(cocopiInfo[i].score).wScore
+                  : cocopiInfo[i].score,
+              });
+            } else if (
+              cocopi.content
+                .split(".")
+                [cocopi.content.split(".").length - 1].toLocaleUpperCase() ==
+              "PDF"
+            ) {
+              t = 3;
+              workJson.cocopiInfo.push({
+                url: cocopi.content,
+                type: t,
+                score: cocopiInfo[i].score
+                  ? JSON.parse(cocopiInfo[i].score).wScore
+                  : cocopiInfo[i].score,
+              });
+            }
+          }
+
+          for (var i = 0; i < wordInfo.length; i++) {
+            var word = wordInfo[i];
+            workJson.wordInfo.push({
+              wordInfo: JSON.parse(word.content),
+              score: wordInfo[i].score
+                ? JSON.parse(wordInfo[i].score).wScore
+                : wordInfo[i].score,
+            });
           }
 
           this.worksDetail = workJson;
@@ -2990,26 +3253,36 @@ export default {
               }"/></div>`;
             }
           }
-
           var _ask = "";
           if (workJson.askInfo.length > 0) {
-            var _ask = "<h3>选择题</h3>";
+            var _ask = "<h3>问卷</h3>";
             for (var i = 0; i < workJson.askInfo.length; i++) {
               var _div = document.createElement("div");
-              _div.innerHTML = `<h4>标题:${workJson.askInfo[i].askTitle}</h4>`;
-              for (var j = 0; j < workJson.askInfo[i].askJson.length; j++) {
+              _div.innerHTML = `<h4>标题:${workJson.askInfo[i].askInfo.askJson.askTitle}</h4>`;
+              for (
+                var j = 0;
+                j < workJson.askInfo[i].askInfo.askJson.askJson.length;
+                j++
+              ) {
                 var _div2 = document.createElement("div");
                 _div2.innerHTML = `<h5>第${j + 1}题:${
-                  workJson.askInfo[i].askJson[j].askstitle
-                }  选择:${workJson.askInfo[i].radio[j] + 1}</h5> `;
+                  workJson.askInfo[i].askInfo.askJson.askJson[j].askstitle
+                }  选择:${
+                  workJson.askInfo[i].askInfo.answer &&
+                  workJson.askInfo[i].askInfo.answer.length > 0
+                    ? workJson.askInfo[i].askInfo.answer[0]
+                    : 1
+                }</h5> `;
                 var _div3 = document.createElement("div");
                 for (
                   var z = 0;
-                  z < workJson.askInfo[i].askJson[j].checkList.length;
+                  z <
+                  workJson.askInfo[i].askInfo.askJson.askJson[j].checkList
+                    .length;
                   z++
                 ) {
                   _div3.innerHTML += `<span style="margin-right:5px">${z + 1}.${
-                    workJson.askInfo[i].askJson[j].checkList[z]
+                    workJson.askInfo[i].askInfo.askJson.askJson[j].checkList[z]
                   }</span>`;
                 }
                 _div2.innerHTML += `<div>${_div3.innerHTML}</div>`;
@@ -3024,8 +3297,8 @@ export default {
             var _answer = "<h3>问答</h3>";
             for (var i = 0; i < workJson.answerInfo.length; i++) {
               var _div = document.createElement("div");
-              _div.innerHTML = `<h4>问答:${workJson.answerInfo[i].answerTitle}</h4>`;
-              _div.innerHTML += `<div>${workJson.answerInfo[i].answer}</div>`;
+              _div.innerHTML = `<h4>问答:${workJson.answerInfo[i].answerInfo.answerTitle}</h4>`;
+              _div.innerHTML += `<div>${workJson.answerInfo[i].answerInfo.answer}</div>`;
               _answer += `<div>${_div.innerHTML}</div>`;
             }
           }
@@ -3037,8 +3310,118 @@ export default {
             }
           }
 
+          var _choose = "";
+          if (workJson.chooseInfo.length > 0) {
+            var _choose = "<h3>选择题</h3>";
+            for (var i = 0; i < workJson.chooseInfo.length; i++) {
+              var _div = document.createElement("div");
+              _div.innerHTML = `<h4>标题:${workJson.chooseInfo[i].chooseInfo.testTitle}</h4>`;
+              for (
+                var j = 0;
+                j < workJson.chooseInfo[i].chooseInfo.testJson.length;
+                j++
+              ) {
+                var _div2 = document.createElement("div");
+                _div2.innerHTML = `<h5>第${j + 1}题:${
+                  workJson.chooseInfo[i].chooseInfo.testJson[j].teststitle
+                }  选择:${
+                  workJson.chooseInfo[i].chooseInfo.testJson[j].answer
+                }</h5> `;
+                var _div3 = document.createElement("div");
+                for (
+                  var z = 0;
+                  z <
+                  workJson.chooseInfo[i].chooseInfo.testJson[j].checkList
+                    .length;
+                  z++
+                ) {
+                  _div3.innerHTML += `<span style="margin-right:5px">${z + 1}.${
+                    workJson.chooseInfo[i].chooseInfo.testJson[j].checkList[z]
+                  }</span>`;
+                }
+                _div2.innerHTML += `<div>${_div3.innerHTML}</div>`;
+                _div.innerHTML += `<div>${_div2.innerHTML}</div>`;
+              }
+              _choose += `<div>${_div.innerHTML}</div>`;
+            }
+          }
+
+          // var _pj = "";
+          // if(workJson.pjInfo.length > 0){
+          //   var _pj = "<h3>个人评价<h3>";
+          //   for(var i = 0;i<workJson.pjInfo.length;i++){
+          //     var _div = document.createElement("div");
+          //     _div.innerHTML = `<h4>个人评价:${workJson.pjInfo[i].answer.eBzText}</h4> `;
+          //     _div.innerHTML += `<div>${workJson.pjInfo[i].radio}</div> `;
+          //     _choose += `<div>${_div.innerHTML}</div>`;
+          //   }
+          // }
+
+          var _lccjInfo = "";
+          if (workJson.lccjInfo.length > 0) {
+            var _lccjInfo = "<h3>连词成句<h3>";
+            for (var i = 0; i < workJson.lccjInfo.length; i++) {
+              var _div = document.createElement("div");
+              _div.innerHTML = `<h4>第一题${workJson.lccjInfo[i].lccjInfo.sentenceTitle}</h4> `;
+              var _div2 = document.createElement("div");
+              for (
+                var j = 0;
+                j < workJson.lccjInfo[i].lccjInfo.chooseSenList.length;
+                j++
+              ) {
+                _div2.innerHTML += ` 句子 ${j + 1} : ${
+                  workJson.lccjInfo[i].lccjInfo.chooseSenList[j]
+                }`;
+              }
+
+              _div.innerHTML += `<div>${_div2.innerHTML}</div>`;
+              _lccjInfo += `<div>${_div.innerHTML}</div>`;
+            }
+          }
+
+          var _bg = "";
+          if (workJson.bgInfo.length > 0) {
+            var _bg = "<h3>表格<h3>";
+            for (var i = 0; i < workJson.bgInfo.length; i++) {
+              var _div = document.createElement("div");
+              _div.innerHTML = `<h4>${workJson.bgInfo[i].bgInfo.text}</h4> `;
+              _bg += `<div>${_div.innerHTML}</div>`;
+            }
+          }
+
+          var _cocopi = "";
+          if (workJson.cocopiInfo.length > 0) {
+            var _bg = "<h3>cocopi<h3>";
+            for (var i = 0; i < workJson.cocopiInfo.length; i++) {
+              var _div = document.createElement("div");
+              _div.innerHTML = `<div style="margin-top:10px"><a href='${workJson.cocopiInfo[i].url}'>${workJson.cocopiInfo[i].url}</a></div>`;
+              _cocopi += `<div>${_div.innerHTML}</div>`;
+            }
+          }
+
+          var _word = "";
+          if (workJson.wordInfo.length > 0) {
+            var _word = "<h3>文档<h3>";
+            for (var i = 0; i < workJson.wordInfo.length; i++) {
+              var _div = document.createElement("div");
+              _div.innerHTML = `<h4>${workJson.wordInfo[i].wordInfo.text}</h4> `;
+              _word += `<div>${_div.innerHTML}</div>`;
+            }
+          }
+
           var _html =
-            _course + _title + _subtitle + _img + _ask + _answer + _link;
+            _course +
+            _title +
+            _subtitle +
+            _img +
+            _ask +
+            _answer +
+            _link +
+            _choose +
+            _lccjInfo +
+            _bg +
+            _cocopi +
+            _word;
           this.generate(_html);
         })
         .catch((err) => {

+ 3 - 3
src/components/pages/components/worksDetail3.vue

@@ -1499,7 +1499,7 @@ export default {
 
           // 将结果转换为数组形式
           b = Object.values(b);
-          var c = b.sort(function (x, y) {
+          b = b.sort(function (x, y) {
             // 首先比较stage字段
             if (x.stage !== y.stage) {
               return parseInt(x.stage) - parseInt(y.stage);
@@ -1508,7 +1508,7 @@ export default {
             // 如果stage字段相同,则比较task字段
             return parseInt(x.task) - parseInt(y.task);
           });
-          this.sInfo = c;
+          this.sInfo = b;
           var chapters = [],
             eList = [],
             _ooption = [],
@@ -3655,7 +3655,7 @@ export default {
   width: 100%;
   margin: 0 auto;
   overflow: auto;
-  height: 400px;
+  height: calc(100% - 90px);
   overflow-x: hidden;
 }
 

+ 2 - 2
src/components/pages/myReport/components/MyLookComponent/worksDetail3.vue

@@ -1498,7 +1498,7 @@ export default {
 
           // 将结果转换为数组形式
           b = Object.values(b);
-          var c = b.sort(function (x, y) {
+          b = b.sort(function (x, y) {
             // 首先比较stage字段
             if (x.stage !== y.stage) {
               return parseInt(x.stage) - parseInt(y.stage);
@@ -1507,7 +1507,7 @@ export default {
             // 如果stage字段相同,则比较task字段
             return parseInt(x.task) - parseInt(y.task);
           });
-          this.sInfo = c;
+          this.sInfo = b;
           var chapters = [],
             eList = [],
             _ooption = [],

+ 2 - 2
src/components/pages/tencent/student.vue

@@ -33,13 +33,13 @@
         </div>
         <div class="head_right">
           <el-button @click="addStudent">添加学生</el-button>
-          <el-upload  v-show="false" class="upload-demo newCss" :http-request="handleChange" :on-remove="handleRemove" action="#"
+          <el-upload  class="upload-demo newCss" :http-request="handleChange" :on-remove="handleRemove" action="#"
             :file-list="fileListUpload" accept=".xlsx">
             <el-button size="primary" type="primary">批量添加</el-button>
             <div slot="tip" class="el-upload__tip" style="margin-left:10px;">只能上传xlsx文件,且不超过500kb</div>
           </el-upload>
           <!-- <el-button @click="exportExcel">导出学生</el-button> -->
-          <div @click="getExcel" v-show="false">xls 上传样例</div>
+          <div @click="getExcel" >xls 上传样例</div>
         </div>
       </div>
     </div>