Browse Source

Merge branch 'beta' into HK

lsc 1 year ago
parent
commit
59e77caddd

+ 4 - 0
dist/index.html

@@ -25,7 +25,11 @@
       height: 100%;
       height: 100%;
       width: 100%;
       width: 100%;
       background: #e6eaf0;
       background: #e6eaf0;
+<<<<<<< HEAD
     }</style><link href=./static/css/app.1d267f2d533f277d0efffa5574ba142f.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.f583576dfec9dfc9a295.js></script><script type=text/javascript src=./static/js/vendor.47326b7cf726c651fd28.js></script><script type=text/javascript src=./static/js/app.8980f49f717794a8ee06.js></script></body></html><script>function stopSafari() {
     }</style><link href=./static/css/app.1d267f2d533f277d0efffa5574ba142f.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.f583576dfec9dfc9a295.js></script><script type=text/javascript src=./static/js/vendor.47326b7cf726c651fd28.js></script><script type=text/javascript src=./static/js/app.8980f49f717794a8ee06.js></script></body></html><script>function stopSafari() {
+=======
+    }</style><link href=./static/css/app.d50d70a4bb4d9d4531ad4ed220ff01ab.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.3512a67a6213c2df4180.js></script><script type=text/javascript src=./static/js/vendor.f1661c5ebfd33221b88f.js></script><script type=text/javascript src=./static/js/app.c5195d5813bd2578be8e.js></script></body></html><script>function stopSafari() {
+>>>>>>> beta
     //阻止safari浏览器双击放大功能
     //阻止safari浏览器双击放大功能
     let lastTouchEnd = 0  //更新手指弹起的时间
     let lastTouchEnd = 0  //更新手指弹起的时间
     document.documentElement.addEventListener("touchstart", function (event) {
     document.documentElement.addEventListener("touchstart", function (event) {

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


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


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


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


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


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


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


+ 84 - 5
src/components/pages/addCourse.vue

@@ -752,8 +752,12 @@
                     </div>
                     </div>
                     <div class="add_info_box">
                     <div class="add_info_box">
                       <button class="info_btn" @click="addImg($event)">
                       <button class="info_btn" @click="addImg($event)">
+                            添加文件
+                            <input type="file" accept="*" style="display: none" v-if="inputShow" @change="beforeUpload2($event, unitIndex, 13, 0)
+                              " />
+                          </button>
+                      <!-- <button class="info_btn" @click="addImg($event)">
                         添加视频
                         添加视频
-                        <!-- capture="camera" -->
                         <input type="file" accept="video/mp4, video/quicktime, video/x-msvideo" style="display: none"
                         <input type="file" accept="video/mp4, video/quicktime, video/x-msvideo" style="display: none"
                           v-if="inputShow" @change="beforeUpload2($event, unitIndex, 2, itemTaskIndex)
                           v-if="inputShow" @change="beforeUpload2($event, unitIndex, 2, itemTaskIndex)
                             " />
                             " />
@@ -764,7 +768,7 @@
                           accept="application/pdf, application/.ppt, .ppt, .pptx, .xlsx, .xls, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document"
                           accept="application/pdf, application/.ppt, .ppt, .pptx, .xlsx, .xls, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document"
                           style="display: none" v-if="inputShow" @change="beforeUpload2($event, unitIndex, 3, itemTaskIndex)
                           style="display: none" v-if="inputShow" @change="beforeUpload2($event, unitIndex, 3, itemTaskIndex)
                             " />
                             " />
-                      </button>
+                      </button> -->
                       <button class="info_btn" @click="addAttText(itemTaskIndex)">
                       <button class="info_btn" @click="addAttText(itemTaskIndex)">
                         添加图文
                         添加图文
                       </button>
                       </button>
@@ -777,11 +781,11 @@
                       <button class="info_btn" @click="openSource(itemTaskIndex)">
                       <button class="info_btn" @click="openSource(itemTaskIndex)">
                         添加资源
                         添加资源
                       </button>
                       </button>
-                      <button class="info_btn" @click="addImg($event)">
+                      <!-- <button class="info_btn" @click="addImg($event)">
                         其他附件
                         其他附件
                         <input type="file" accept="*" style="display: none" v-if="inputShow" @change="beforeUpload2($event, unitIndex, 12, itemTaskIndex)
                         <input type="file" accept="*" style="display: none" v-if="inputShow" @change="beforeUpload2($event, unitIndex, 12, itemTaskIndex)
                           " />
                           " />
-                      </button>
+                      </button> -->
                     </div>
                     </div>
                     <div v-if="unitJson[unitIndex].chapterInfo[0].taskJson[
                     <div v-if="unitJson[unitIndex].chapterInfo[0].taskJson[
                       itemTaskIndex
                       itemTaskIndex
@@ -4348,7 +4352,82 @@ export default {
               // a.splice(a.length - 1, a.length);
               // a.splice(a.length - 1, a.length);
               _this.$message.error("上传失败");
               _this.$message.error("上传失败");
             } else {
             } else {
-              if (type == 2 || type == 3 || type == 12) {
+              if (type == 13) {
+                let _type = 2
+                var fileA = [
+                  "PDF",
+                  "DOC",
+                  "DOCX",
+                  "DOCM",
+                  "DOTM",
+                  "DOTX",
+                  "PPTX",
+                  "PPSX",
+                  "PPT",
+                  "PPS",
+                  "PPTM",
+                  "POTM",
+                  "PPAM",
+                  "POTX",
+                  "PPSM","XLSX", "XLS"
+                ];
+                var videoA = [
+                  "AVI",
+                  "NAVI",
+                  "MPEG",
+                  "ASF",
+                  "MOV",
+                  "WMV",
+                  "3GP",
+                  "RM",
+                  "RMVB",
+                  "FLV",
+                  "F4V",
+                  "H.264",
+                  "H.265",
+                  "REAL VIDEO",
+                  "MKV",
+                  "WebM",
+                  "HDDVD",
+                  "MP4",
+                  "MPG",
+                  "M4V",
+                  "MGV",
+                  "OGV",
+                  "QTM",
+                  "STR",
+                  "AMC",
+                  "DVX",
+                  "EVO",
+                  "DAT",
+                  "OGG",
+                  "OGM",
+                ];
+                if (fileA.indexOf(
+                  data.Location
+                    .split(".")
+                  [data.Location.split(".").length - 1].toLocaleUpperCase()
+                ) != -1) {
+                  _type = 3
+                } else if (videoA.indexOf(
+                  data.Location
+                    .split(".")
+                  [data.Location.split(".").length - 1].toLocaleUpperCase()
+                ) != -1) {
+                  _type = 2
+                } else {
+                  _type = 12
+                }
+                _this.unitJson[unitIndex].chapterInfo[0].taskJson[
+                  itemTaskIndex
+                ].chapterData.push({
+                  name: file.name,
+                  url: data.Location,
+                  uid: file.uid,
+                  type: _type,
+                });
+                _this.imgChange1(null, null, _type, itemTaskIndex);
+              } else if (type == 2 || type == 3 || type == 12) {
                 _this.unitJson[unitIndex].chapterInfo[0].taskJson[
                 _this.unitJson[unitIndex].chapterInfo[0].taskJson[
                   itemTaskIndex
                   itemTaskIndex
                 ].chapterData.push({
                 ].chapterData.push({

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

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

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

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

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

@@ -1873,7 +1873,7 @@ export default {
 
 
           // 将结果转换为数组形式
           // 将结果转换为数组形式
           b = Object.values(b);
           b = Object.values(b);
-          var c = b.sort(function (x, y) {
+          b = b.sort(function (x, y) {
             // 首先比较stage字段
             // 首先比较stage字段
             if (x.stage !== y.stage) {
             if (x.stage !== y.stage) {
               return parseInt(x.stage) - parseInt(y.stage);
               return parseInt(x.stage) - parseInt(y.stage);
@@ -1882,7 +1882,7 @@ export default {
             // 如果stage字段相同,则比较task字段
             // 如果stage字段相同,则比较task字段
             return parseInt(x.task) - parseInt(y.task);
             return parseInt(x.task) - parseInt(y.task);
           });
           });
-          this.sInfo = c;
+          this.sInfo = b;
           var chapters = [],
           var chapters = [],
             eList = [],
             eList = [],
             _ooption = [],
             _ooption = [],
@@ -2558,101 +2558,362 @@ export default {
         cid: cid,
         cid: cid,
       };
       };
       this.ajax
       this.ajax
-        .get(this.$store.state.api + "selectWorksDetail3", params)
+        .get(this.$store.state.api + "selectAllWorksDetail", params)
         .then((res) => {
         .then((res) => {
           this.sInfo = res.data[0][0];
           this.sInfo = res.data[0][0];
           this.chapInfo = JSON.parse(res.data[0][0].chapters);
           this.chapInfo = JSON.parse(res.data[0][0].chapters);
           var chapters = JSON.parse(res.data[0][0].chapters);
           var chapters = JSON.parse(res.data[0][0].chapters);
           var worksDetail = res.data[1];
           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 askInfo = res.data[3];
           var answerInfo = res.data[4];
           var answerInfo = res.data[4];
           var linkInfo = res.data[5];
           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 = {
           var workJson = {
             img: [],
             img: [],
             imgIndex: 0,
             imgIndex: 0,
             eList: [],
             eList: [],
             rateList: {},
             rateList: {},
-            wpptInfo: [],
             askInfo: [],
             askInfo: [],
             answerInfo: [],
             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++) {
           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++) {
           for (var i = 0; i < askInfo.length; i++) {
             const element = askInfo[i];
             const element = askInfo[i];
             let a = JSON.parse(element.content)[0];
             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++) {
           for (var i = 0; i < answerInfo.length; i++) {
             const element = answerInfo[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;
           this.worksDetail = workJson;
@@ -2693,26 +2954,36 @@ export default {
               }"/></div>`;
               }"/></div>`;
             }
             }
           }
           }
-
           var _ask = "";
           var _ask = "";
           if (workJson.askInfo.length > 0) {
           if (workJson.askInfo.length > 0) {
-            var _ask = "<h3>选择题</h3>";
+            var _ask = "<h3>问卷</h3>";
             for (var i = 0; i < workJson.askInfo.length; i++) {
             for (var i = 0; i < workJson.askInfo.length; i++) {
               var _div = document.createElement("div");
               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");
                 var _div2 = document.createElement("div");
                 _div2.innerHTML = `<h5>第${j + 1}题:${
                 _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");
                 var _div3 = document.createElement("div");
                 for (
                 for (
                   var z = 0;
                   var z = 0;
-                  z < workJson.askInfo[i].askJson[j].checkList.length;
+                  z <
+                  workJson.askInfo[i].askInfo.askJson.askJson[j].checkList
+                    .length;
                   z++
                   z++
                 ) {
                 ) {
                   _div3.innerHTML += `<span style="margin-right:5px">${z + 1}.${
                   _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>`;
                   }</span>`;
                 }
                 }
                 _div2.innerHTML += `<div>${_div3.innerHTML}</div>`;
                 _div2.innerHTML += `<div>${_div3.innerHTML}</div>`;
@@ -2727,8 +2998,8 @@ export default {
             var _answer = "<h3>问答</h3>";
             var _answer = "<h3>问答</h3>";
             for (var i = 0; i < workJson.answerInfo.length; i++) {
             for (var i = 0; i < workJson.answerInfo.length; i++) {
               var _div = document.createElement("div");
               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>`;
               _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 =
           var _html =
-            _course + _title + _subtitle + _img + _ask + _answer + _link;
+            _course +
+            _title +
+            _subtitle +
+            _img +
+            _ask +
+            _answer +
+            _link +
+            _choose +
+            _lccjInfo +
+            _bg +
+            _cocopi +
+            _word;
           this.generate(_html);
           this.generate(_html);
         })
         })
         .catch((err) => {
         .catch((err) => {

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

@@ -173,7 +173,9 @@
               <el-button
               <el-button
                 type="primary"
                 type="primary"
                 size="small"
                 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
               >
               >
               <!-- <el-button
               <!-- <el-button
@@ -2848,108 +2850,369 @@ export default {
     },
     },
     onPlayerPlay() {},
     onPlayerPlay() {},
     // this.$store.commit("update", ["userInfo", userInfo]);
     // this.$store.commit("update", ["userInfo", userInfo]);
-    lookWork2(id, uid, stage, task) {
+    lookWork2(id, uid, cid) {
       // this.scopeId = id;
       // this.scopeId = id;
       let params = {
       let params = {
         uid: uid,
         uid: uid,
-        cid: this.id,
+        cid: cid,
       };
       };
       this.ajax
       this.ajax
-        .get(this.$store.state.api + "selectWorksDetail3", params)
+        .get(this.$store.state.api + "selectAllWorksDetail", params)
         .then((res) => {
         .then((res) => {
           this.sInfo = res.data[0][0];
           this.sInfo = res.data[0][0];
           this.chapInfo = JSON.parse(res.data[0][0].chapters);
           this.chapInfo = JSON.parse(res.data[0][0].chapters);
           var chapters = JSON.parse(res.data[0][0].chapters);
           var chapters = JSON.parse(res.data[0][0].chapters);
           var worksDetail = res.data[1];
           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 askInfo = res.data[3];
           var answerInfo = res.data[4];
           var answerInfo = res.data[4];
           var linkInfo = res.data[5];
           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 = {
           var workJson = {
             img: [],
             img: [],
             imgIndex: 0,
             imgIndex: 0,
             eList: [],
             eList: [],
             rateList: {},
             rateList: {},
-            wpptInfo: [],
             askInfo: [],
             askInfo: [],
             answerInfo: [],
             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++) {
           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++) {
           for (var i = 0; i < askInfo.length; i++) {
             const element = askInfo[i];
             const element = askInfo[i];
             let a = JSON.parse(element.content)[0];
             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++) {
           for (var i = 0; i < answerInfo.length; i++) {
             const element = answerInfo[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;
           this.worksDetail = workJson;
@@ -2990,26 +3253,36 @@ export default {
               }"/></div>`;
               }"/></div>`;
             }
             }
           }
           }
-
           var _ask = "";
           var _ask = "";
           if (workJson.askInfo.length > 0) {
           if (workJson.askInfo.length > 0) {
-            var _ask = "<h3>选择题</h3>";
+            var _ask = "<h3>问卷</h3>";
             for (var i = 0; i < workJson.askInfo.length; i++) {
             for (var i = 0; i < workJson.askInfo.length; i++) {
               var _div = document.createElement("div");
               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");
                 var _div2 = document.createElement("div");
                 _div2.innerHTML = `<h5>第${j + 1}题:${
                 _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");
                 var _div3 = document.createElement("div");
                 for (
                 for (
                   var z = 0;
                   var z = 0;
-                  z < workJson.askInfo[i].askJson[j].checkList.length;
+                  z <
+                  workJson.askInfo[i].askInfo.askJson.askJson[j].checkList
+                    .length;
                   z++
                   z++
                 ) {
                 ) {
                   _div3.innerHTML += `<span style="margin-right:5px">${z + 1}.${
                   _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>`;
                   }</span>`;
                 }
                 }
                 _div2.innerHTML += `<div>${_div3.innerHTML}</div>`;
                 _div2.innerHTML += `<div>${_div3.innerHTML}</div>`;
@@ -3024,8 +3297,8 @@ export default {
             var _answer = "<h3>问答</h3>";
             var _answer = "<h3>问答</h3>";
             for (var i = 0; i < workJson.answerInfo.length; i++) {
             for (var i = 0; i < workJson.answerInfo.length; i++) {
               var _div = document.createElement("div");
               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>`;
               _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 =
           var _html =
-            _course + _title + _subtitle + _img + _ask + _answer + _link;
+            _course +
+            _title +
+            _subtitle +
+            _img +
+            _ask +
+            _answer +
+            _link +
+            _choose +
+            _lccjInfo +
+            _bg +
+            _cocopi +
+            _word;
           this.generate(_html);
           this.generate(_html);
         })
         })
         .catch((err) => {
         .catch((err) => {

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

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

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

@@ -23,13 +23,13 @@
       <div class="student_button">
       <div class="student_button">
         <!-- <el-button type="primary" class="bgColor" @click="openCourse">协同编辑</el-button> -->
         <!-- <el-button type="primary" class="bgColor" @click="openCourse">协同编辑</el-button> -->
         <el-button type="primary" class="bgColor" @click="goToCourse3()"
         <el-button type="primary" class="bgColor" @click="goToCourse3()"
-          >极简式</el-button
+          >创建极简式课程</el-button
         >
         >
         <el-button type="primary" class="bgColor" @click="goToCourse2()"
         <el-button type="primary" class="bgColor" @click="goToCourse2()"
-          >任务式</el-button
+          >创建任务式课程</el-button
         >
         >
         <el-button type="primary" class="bgColor" @click="goToCourse()"
         <el-button type="primary" class="bgColor" @click="goToCourse()"
-          >阶段式</el-button
+          >创建阶段式课程</el-button
         >
         >
       </div>
       </div>
     </div>
     </div>

+ 138 - 59
src/components/pages/easy/addCourse.vue

@@ -144,6 +144,9 @@
                     </div>
                     </div>
                   </div>
                   </div>
                 </div>
                 </div>
+                <div style="width: 95%; padding: 15px 0px 15px 20px">
+                  <el-switch v-model="isTeacherSee" active-text="是否公开此课程" style="padding-bottom: 30px"></el-switch>
+                </div>
               </div>
               </div>
             </div>
             </div>
             <div class="whiteBg" style="border-radius: 0; margin-top: 15px" v-if="false">
             <div class="whiteBg" style="border-radius: 0; margin-top: 15px" v-if="false">
@@ -215,8 +218,8 @@
                             item.taskJson[0].chapterData.length == 0
                             item.taskJson[0].chapterData.length == 0
                             " style="height: 185px"></div>
                             " style="height: 185px"></div>
                           <div v-else class="add_chapters_box" style="display: flex; flex-direction: column">
                           <div v-else class="add_chapters_box" style="display: flex; flex-direction: column">
-                            <div class="chapter_upload" v-for="(item1, index1) in item.taskJson[0].chapterData" :key="item1.id"
-                              @click="getChapterData(
+                            <div class="chapter_upload" v-for="(item1, index1) in item.taskJson[0].chapterData"
+                              :key="item1.id" @click="getChapterData(
                                 $event,
                                 $event,
                                 unitIndex,
                                 unitIndex,
                                 index,
                                 index,
@@ -322,8 +325,12 @@
                         </div>
                         </div>
                         <div class="add_info_box">
                         <div class="add_info_box">
                           <button class="info_btn" @click="addImg($event)">
                           <button class="info_btn" @click="addImg($event)">
+                            添加文件
+                            <input type="file" accept="*" style="display: none" v-if="inputShow" @change="beforeUpload2($event, unitIndex, 13, 0)
+                              " />
+                          </button>
+                          <!-- <button class="info_btn" @click="addImg($event)">
                             添加视频
                             添加视频
-                            <!-- capture="camera" -->
                             <input type="file" accept="video/mp4, video/quicktime, video/x-msvideo" style="display: none"
                             <input type="file" accept="video/mp4, video/quicktime, video/x-msvideo" style="display: none"
                               v-if="inputShow" @change="beforeUpload2($event, unitIndex, 2, 0)
                               v-if="inputShow" @change="beforeUpload2($event, unitIndex, 2, 0)
                                 " />
                                 " />
@@ -334,7 +341,7 @@
                               accept="application/pdf, application/.ppt, .ppt, .pptx, .xlsx, .xls, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document"
                               accept="application/pdf, application/.ppt, .ppt, .pptx, .xlsx, .xls, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document"
                               style="display: none" v-if="inputShow" @change="beforeUpload2($event, unitIndex, 3, 0)
                               style="display: none" v-if="inputShow" @change="beforeUpload2($event, unitIndex, 3, 0)
                                 " />
                                 " />
-                          </button>
+                          </button> -->
                           <button class="info_btn" @click="addAttText(0)">
                           <button class="info_btn" @click="addAttText(0)">
                             添加图文
                             添加图文
                           </button>
                           </button>
@@ -347,11 +354,11 @@
                           <button class="info_btn" @click="openSource(0)">
                           <button class="info_btn" @click="openSource(0)">
                             添加资源
                             添加资源
                           </button>
                           </button>
-                          <button class="info_btn" @click="addImg($event)">
+                          <!-- <button class="info_btn" @click="addImg($event)">
                             其他附件
                             其他附件
                             <input type="file" accept="*" style="display: none" v-if="inputShow" @change="beforeUpload2($event, unitIndex, 12, itemTaskIndex)
                             <input type="file" accept="*" style="display: none" v-if="inputShow" @change="beforeUpload2($event, unitIndex, 12, itemTaskIndex)
                               " />
                               " />
-                          </button>
+                          </button> -->
                         </div>
                         </div>
                         <div v-if="unitJson[unitIndex].chapterInfo[0].taskJson[
                         <div v-if="unitJson[unitIndex].chapterInfo[0].taskJson[
                           0
                           0
@@ -434,18 +441,11 @@
                           itemTaskIndex
                           itemTaskIndex
                         ].taskDetail
                         ].taskDetail
                           " @change="change"></editor-bar> -->
                           " @change="change"></editor-bar> -->
-                        <textarea
-                          rows="2"
-                          class="binfo_input"
-                          placeholder="请输入任务描述"
-                          cols
-                          style="width: 90% !important; resize:none"
-                          v-model="
-                            unitJson[unitIndex].chapterInfo[0].taskJson[
+                        <textarea rows="2" class="binfo_input" placeholder="请输入任务描述" cols
+                          style="width: 90% !important; resize:none" v-model="unitJson[unitIndex].chapterInfo[0].taskJson[
                               itemTaskIndex
                               itemTaskIndex
                             ].taskDetail
                             ].taskDetail
-                          "
-                        ></textarea>
+                            "></textarea>
                       </div>
                       </div>
                     </div>
                     </div>
                     <div class="addTaskBorder" @click="addTaskBorder" v-if="!unitJson[unitIndex].easy">
                     <div class="addTaskBorder" @click="addTaskBorder" v-if="!unitJson[unitIndex].easy">
@@ -819,8 +819,12 @@
                     </div>
                     </div>
                     <div class="add_info_box">
                     <div class="add_info_box">
                       <button class="info_btn" @click="addImg($event)">
                       <button class="info_btn" @click="addImg($event)">
+                        添加文件
+                        <input type="file" accept="*" style="display: none" v-if="inputShow" @change="beforeUpload2($event, unitIndex, 13, itemTaskIndex)
+                          " />
+                      </button>
+                      <!-- <button class="info_btn" @click="addImg($event)">
                         添加视频
                         添加视频
-                        <!-- capture="camera" -->
                         <input type="file" accept="video/mp4, video/quicktime, video/x-msvideo" style="display: none"
                         <input type="file" accept="video/mp4, video/quicktime, video/x-msvideo" style="display: none"
                           v-if="inputShow" @change="beforeUpload2($event, unitIndex, 2, itemTaskIndex)
                           v-if="inputShow" @change="beforeUpload2($event, unitIndex, 2, itemTaskIndex)
                             " />
                             " />
@@ -831,24 +835,24 @@
                           accept="application/pdf, application/.ppt, .ppt, .pptx, .xlsx, .xls, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document"
                           accept="application/pdf, application/.ppt, .ppt, .pptx, .xlsx, .xls, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document"
                           style="display: none" v-if="inputShow" @change="beforeUpload2($event, unitIndex, 3, itemTaskIndex)
                           style="display: none" v-if="inputShow" @change="beforeUpload2($event, unitIndex, 3, itemTaskIndex)
                             " />
                             " />
-                      </button>
+                      </button> -->
                       <button class="info_btn" @click="addAttText(itemTaskIndex)">
                       <button class="info_btn" @click="addAttText(itemTaskIndex)">
                         添加图文
                         添加图文
                       </button>
                       </button>
                       <button class="info_btn" @click="openLine(itemTaskIndex)">
                       <button class="info_btn" @click="openLine(itemTaskIndex)">
                         添加链接
                         添加链接
                       </button>
                       </button>
-                      <button class="info_btn" @click="pasteLine(itemTaskIndex)">
-                        嵌入代码
-                      </button>
                       <button class="info_btn" @click="openSource(itemTaskIndex)">
                       <button class="info_btn" @click="openSource(itemTaskIndex)">
                         添加资源
                         添加资源
                       </button>
                       </button>
-                      <button class="info_btn" @click="addImg($event)">
+                      <button class="info_btn" @click="pasteLine(itemTaskIndex)">
+                        嵌入代码
+                      </button>
+                      <!-- <button class="info_btn" @click="addImg($event)">
                         其他附件
                         其他附件
                         <input type="file" accept="*" style="display: none" v-if="inputShow" @change="beforeUpload2($event, unitIndex, 12, itemTaskIndex)
                         <input type="file" accept="*" style="display: none" v-if="inputShow" @change="beforeUpload2($event, unitIndex, 12, itemTaskIndex)
                           " />
                           " />
-                      </button>
+                      </button> -->
                     </div>
                     </div>
                     <div v-if="unitJson[unitIndex].chapterInfo[0].taskJson[
                     <div v-if="unitJson[unitIndex].chapterInfo[0].taskJson[
                       itemTaskIndex
                       itemTaskIndex
@@ -3744,14 +3748,14 @@ export default {
       var _this = this;
       var _this = this;
       //((_this.unitJson[_this.unitIndex].chapterInfo[0].taskJson.length - 1) == i) ? "确定删除此任务吗?" : "切换任务顺序将删除所有工具的提交成果,是否继续此操作?"
       //((_this.unitJson[_this.unitIndex].chapterInfo[0].taskJson.length - 1) == i) ? "确定删除此任务吗?" : "切换任务顺序将删除所有工具的提交成果,是否继续此操作?"
       _this
       _this
-        .$confirm("确定删除此任务吗?" , "提示", {
+        .$confirm("确定删除此任务吗?", "提示", {
           confirmButtonText: "确定",
           confirmButtonText: "确定",
           cancelButtonText: "取消",
           cancelButtonText: "取消",
           type: "warning",
           type: "warning",
         })
         })
         .then(() => {
         .then(() => {
-          if(i == 0){
-            _this.unitJson[_this.unitIndex].chapterInfo[0].taskJson[i+1].chapterData = JSON.parse(JSON.stringify(_this.unitJson[_this.unitIndex].chapterInfo[0].taskJson[i].chapterData))
+          if (i == 0) {
+            _this.unitJson[_this.unitIndex].chapterInfo[0].taskJson[i + 1].chapterData = JSON.parse(JSON.stringify(_this.unitJson[_this.unitIndex].chapterInfo[0].taskJson[i].chapterData))
           }
           }
           _this.$forceUpdate();
           _this.$forceUpdate();
           _this.unitJson[_this.unitIndex].chapterInfo[0].taskJson.splice(
           _this.unitJson[_this.unitIndex].chapterInfo[0].taskJson.splice(
@@ -4192,7 +4196,7 @@ export default {
           "POTM",
           "POTM",
           "PPAM",
           "PPAM",
           "POTX",
           "POTX",
-          "PPSM",
+          "PPSM","XLSX", "XLS"
         ];
         ];
         if (
         if (
           b.indexOf(
           b.indexOf(
@@ -4292,7 +4296,82 @@ export default {
               // a.splice(a.length - 1, a.length);
               // a.splice(a.length - 1, a.length);
               _this.$message.error("上传失败");
               _this.$message.error("上传失败");
             } else {
             } else {
-              if (type == 2 || type == 3 || type == 12) {
+              if (type == 13) {
+                let _type = 2
+                var fileA = [
+                  "PDF",
+                  "DOC",
+                  "DOCX",
+                  "DOCM",
+                  "DOTM",
+                  "DOTX",
+                  "PPTX",
+                  "PPSX",
+                  "PPT",
+                  "PPS",
+                  "PPTM",
+                  "POTM",
+                  "PPAM",
+                  "POTX",
+                  "PPSM","XLSX", "XLS"
+                ];
+                var videoA = [
+                  "AVI",
+                  "NAVI",
+                  "MPEG",
+                  "ASF",
+                  "MOV",
+                  "WMV",
+                  "3GP",
+                  "RM",
+                  "RMVB",
+                  "FLV",
+                  "F4V",
+                  "H.264",
+                  "H.265",
+                  "REAL VIDEO",
+                  "MKV",
+                  "WebM",
+                  "HDDVD",
+                  "MP4",
+                  "MPG",
+                  "M4V",
+                  "MGV",
+                  "OGV",
+                  "QTM",
+                  "STR",
+                  "AMC",
+                  "DVX",
+                  "EVO",
+                  "DAT",
+                  "OGG",
+                  "OGM",
+                ];
+                if (fileA.indexOf(
+                  data.Location
+                    .split(".")
+                  [data.Location.split(".").length - 1].toLocaleUpperCase()
+                ) != -1) {
+                  _type = 3
+                } else if (videoA.indexOf(
+                  data.Location
+                    .split(".")
+                  [data.Location.split(".").length - 1].toLocaleUpperCase()
+                ) != -1) {
+                  _type = 2
+                } else {
+                  _type = 12
+                }
+                _this.unitJson[unitIndex].chapterInfo[0].taskJson[
+                  itemTaskIndex
+                ].chapterData.push({
+                  name: file.name,
+                  url: data.Location,
+                  uid: file.uid,
+                  type: _type,
+                });
+                _this.imgChange1(null, null, _type, itemTaskIndex);
+              } else if (type == 2 || type == 3 || type == 12) {
                 _this.unitJson[unitIndex].chapterInfo[0].taskJson[
                 _this.unitJson[unitIndex].chapterInfo[0].taskJson[
                   itemTaskIndex
                   itemTaskIndex
                 ].chapterData.push({
                 ].chapterData.push({
@@ -7186,37 +7265,37 @@ export default {
       //     type: "warning",
       //     type: "warning",
       //   })
       //   })
       //   .then(() => {
       //   .then(() => {
-          if (type == 1) {
-            if (index > 0) {
-              let a = JSON.parse(
-                JSON.stringify(
-                  this.unitJson[this.unitIndex].chapterInfo[0].taskJson[index - 1]
-                )
-              );
-              this.unitJson[this.unitIndex].chapterInfo[0].taskJson[index - 1] =
-                this.unitJson[this.unitIndex].chapterInfo[0].taskJson[index];
-              this.unitJson[this.unitIndex].chapterInfo[0].taskJson[index] = a;
-            }
-          } else {
-            if (
-              index <
-              this.unitJson[this.unitIndex].chapterInfo[0].taskJson.length - 1
-            ) {
-              let a = JSON.parse(
-                JSON.stringify(
-                  this.unitJson[this.unitIndex].chapterInfo[0].taskJson[index + 1]
-                )
-              );
-              this.unitJson[this.unitIndex].chapterInfo[0].taskJson[index + 1] =
-                this.unitJson[this.unitIndex].chapterInfo[0].taskJson[index];
-              this.unitJson[this.unitIndex].chapterInfo[0].taskJson[index] = a;
-            }
-          }
-          this.$forceUpdate();
-        // })
-        // .catch(() => {
-        //   return;
-        // })
+      if (type == 1) {
+        if (index > 0) {
+          let a = JSON.parse(
+            JSON.stringify(
+              this.unitJson[this.unitIndex].chapterInfo[0].taskJson[index - 1]
+            )
+          );
+          this.unitJson[this.unitIndex].chapterInfo[0].taskJson[index - 1] =
+            this.unitJson[this.unitIndex].chapterInfo[0].taskJson[index];
+          this.unitJson[this.unitIndex].chapterInfo[0].taskJson[index] = a;
+        }
+      } else {
+        if (
+          index <
+          this.unitJson[this.unitIndex].chapterInfo[0].taskJson.length - 1
+        ) {
+          let a = JSON.parse(
+            JSON.stringify(
+              this.unitJson[this.unitIndex].chapterInfo[0].taskJson[index + 1]
+            )
+          );
+          this.unitJson[this.unitIndex].chapterInfo[0].taskJson[index + 1] =
+            this.unitJson[this.unitIndex].chapterInfo[0].taskJson[index];
+          this.unitJson[this.unitIndex].chapterInfo[0].taskJson[index] = a;
+        }
+      }
+      this.$forceUpdate();
+      // })
+      // .catch(() => {
+      //   return;
+      // })
     },
     },
     addGroup(i) {
     addGroup(i) {
       // this.groupJson.group.splice(i + 1, 0, { name: "第"+(i+1)+"组" });
       // this.groupJson.group.splice(i + 1, 0, { name: "第"+(i+1)+"组" });

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

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

+ 95 - 9
src/components/pages/task/addCourse.vue

@@ -144,6 +144,9 @@
                     </div>
                     </div>
                   </div>
                   </div>
                 </div>
                 </div>
+                <div style="width: 95%; padding: 15px 0px 15px 20px">
+                  <el-switch v-model="isTeacherSee" active-text="是否公开此课程" style="padding-bottom: 30px"></el-switch>
+                </div>
               </div>
               </div>
             </div>
             </div>
             <div class="whiteBg" style="border-radius: 0; margin-top: 15px" v-if="false">
             <div class="whiteBg" style="border-radius: 0; margin-top: 15px" v-if="false">
@@ -379,8 +382,12 @@
                         </div>
                         </div>
                         <div class="add_info_box">
                         <div class="add_info_box">
                           <button class="info_btn" @click="addImg($event)">
                           <button class="info_btn" @click="addImg($event)">
+                                添加文件
+                            <input type="file" accept="*" style="display: none" v-if="inputShow" @change="beforeUpload2($event, unitIndex, 13, 0)
+                                  " />
+                          </button>
+                          <!-- <button class="info_btn" @click="addImg($event)">
                             添加视频
                             添加视频
-                            <!-- capture="camera" -->
                             <input type="file" accept="video/mp4, video/quicktime, video/x-msvideo" style="display: none"
                             <input type="file" accept="video/mp4, video/quicktime, video/x-msvideo" style="display: none"
                               v-if="inputShow" @change="beforeUpload2($event, unitIndex, 2, itemTaskIndex)
                               v-if="inputShow" @change="beforeUpload2($event, unitIndex, 2, itemTaskIndex)
                                 " />
                                 " />
@@ -391,7 +398,7 @@
                               accept="application/pdf, application/.ppt, .ppt, .pptx, .xlsx, .xls, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document"
                               accept="application/pdf, application/.ppt, .ppt, .pptx, .xlsx, .xls, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document"
                               style="display: none" v-if="inputShow" @change="beforeUpload2($event, unitIndex, 3, itemTaskIndex)
                               style="display: none" v-if="inputShow" @change="beforeUpload2($event, unitIndex, 3, itemTaskIndex)
                                 " />
                                 " />
-                          </button>
+                          </button> -->
                           <button class="info_btn" @click="addAttText(itemTaskIndex)">
                           <button class="info_btn" @click="addAttText(itemTaskIndex)">
                             添加图文
                             添加图文
                           </button>
                           </button>
@@ -404,11 +411,11 @@
                           <button class="info_btn" @click="openSource(itemTaskIndex)">
                           <button class="info_btn" @click="openSource(itemTaskIndex)">
                             添加资源
                             添加资源
                           </button>
                           </button>
-                          <button class="info_btn" @click="addImg($event)">
+                          <!-- <button class="info_btn" @click="addImg($event)">
                             其他附件
                             其他附件
                             <input type="file" accept="*" style="display: none" v-if="inputShow" @change="beforeUpload2($event, unitIndex, 12, itemTaskIndex)
                             <input type="file" accept="*" style="display: none" v-if="inputShow" @change="beforeUpload2($event, unitIndex, 12, itemTaskIndex)
                               " />
                               " />
-                          </button>
+                          </button> -->
                         </div>
                         </div>
                         <div v-if="unitJson[unitIndex].chapterInfo[0].taskJson[
                         <div v-if="unitJson[unitIndex].chapterInfo[0].taskJson[
                           itemTaskIndex
                           itemTaskIndex
@@ -817,8 +824,12 @@
                     </div>
                     </div>
                     <div class="add_info_box">
                     <div class="add_info_box">
                       <button class="info_btn" @click="addImg($event)">
                       <button class="info_btn" @click="addImg($event)">
+                            添加文件
+                        <input type="file" accept="*" style="display: none" v-if="inputShow" @change="beforeUpload2($event, unitIndex, 13, 0)
+                              " />
+                      </button>
+                      <!-- <button class="info_btn" @click="addImg($event)">
                         添加视频
                         添加视频
-                        <!-- capture="camera" -->
                         <input type="file" accept="video/mp4, video/quicktime, video/x-msvideo" style="display: none"
                         <input type="file" accept="video/mp4, video/quicktime, video/x-msvideo" style="display: none"
                           v-if="inputShow" @change="beforeUpload2($event, unitIndex, 2, itemTaskIndex)
                           v-if="inputShow" @change="beforeUpload2($event, unitIndex, 2, itemTaskIndex)
                             " />
                             " />
@@ -829,7 +840,7 @@
                           accept="application/pdf, application/.ppt, .ppt, .pptx, .xlsx, .xls, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document"
                           accept="application/pdf, application/.ppt, .ppt, .pptx, .xlsx, .xls, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document"
                           style="display: none" v-if="inputShow" @change="beforeUpload2($event, unitIndex, 3, itemTaskIndex)
                           style="display: none" v-if="inputShow" @change="beforeUpload2($event, unitIndex, 3, itemTaskIndex)
                             " />
                             " />
-                      </button>
+                      </button> -->
                       <button class="info_btn" @click="addAttText(itemTaskIndex)">
                       <button class="info_btn" @click="addAttText(itemTaskIndex)">
                         添加图文
                         添加图文
                       </button>
                       </button>
@@ -842,11 +853,11 @@
                       <button class="info_btn" @click="openSource(itemTaskIndex)">
                       <button class="info_btn" @click="openSource(itemTaskIndex)">
                         添加资源
                         添加资源
                       </button>
                       </button>
-                      <button class="info_btn" @click="addImg($event)">
+                      <!-- <button class="info_btn" @click="addImg($event)">
                         其他附件
                         其他附件
                         <input type="file" accept="*" style="display: none" v-if="inputShow" @change="beforeUpload2($event, unitIndex, 12, itemTaskIndex)
                         <input type="file" accept="*" style="display: none" v-if="inputShow" @change="beforeUpload2($event, unitIndex, 12, itemTaskIndex)
                           " />
                           " />
-                      </button>
+                      </button> -->
                     </div>
                     </div>
                     <div v-if="unitJson[unitIndex].chapterInfo[0].taskJson[
                     <div v-if="unitJson[unitIndex].chapterInfo[0].taskJson[
                       itemTaskIndex
                       itemTaskIndex
@@ -4286,7 +4297,82 @@ export default {
               // a.splice(a.length - 1, a.length);
               // a.splice(a.length - 1, a.length);
               _this.$message.error("上传失败");
               _this.$message.error("上传失败");
             } else {
             } else {
-              if (type == 2 || type == 3 || type == 12) {
+              if (type == 13) {
+                let _type = 2
+                var fileA = [
+                  "PDF",
+                  "DOC",
+                  "DOCX",
+                  "DOCM",
+                  "DOTM",
+                  "DOTX",
+                  "PPTX",
+                  "PPSX",
+                  "PPT",
+                  "PPS",
+                  "PPTM",
+                  "POTM",
+                  "PPAM",
+                  "POTX",
+                  "PPSM","XLSX", "XLS"
+                ];
+                var videoA = [
+                  "AVI",
+                  "NAVI",
+                  "MPEG",
+                  "ASF",
+                  "MOV",
+                  "WMV",
+                  "3GP",
+                  "RM",
+                  "RMVB",
+                  "FLV",
+                  "F4V",
+                  "H.264",
+                  "H.265",
+                  "REAL VIDEO",
+                  "MKV",
+                  "WebM",
+                  "HDDVD",
+                  "MP4",
+                  "MPG",
+                  "M4V",
+                  "MGV",
+                  "OGV",
+                  "QTM",
+                  "STR",
+                  "AMC",
+                  "DVX",
+                  "EVO",
+                  "DAT",
+                  "OGG",
+                  "OGM",
+                ];
+                if (fileA.indexOf(
+                  data.Location
+                    .split(".")
+                  [data.Location.split(".").length - 1].toLocaleUpperCase()
+                ) != -1) {
+                  _type = 3
+                } else if (videoA.indexOf(
+                  data.Location
+                    .split(".")
+                  [data.Location.split(".").length - 1].toLocaleUpperCase()
+                ) != -1) {
+                  _type = 2
+                } else {
+                  _type = 12
+                }
+                _this.unitJson[unitIndex].chapterInfo[0].taskJson[
+                  itemTaskIndex
+                ].chapterData.push({
+                  name: file.name,
+                  url: data.Location,
+                  uid: file.uid,
+                  type: _type,
+                });
+                _this.imgChange1(null, null, _type, itemTaskIndex);
+              } else if (type == 2 || type == 3 || type == 12) {
                 _this.unitJson[unitIndex].chapterInfo[0].taskJson[
                 _this.unitJson[unitIndex].chapterInfo[0].taskJson[
                   itemTaskIndex
                   itemTaskIndex
                 ].chapterData.push({
                 ].chapterData.push({

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

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

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