浏览代码

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

SanHQin 3 月之前
父节点
当前提交
221bebf114

+ 1 - 1
dist/index.html

@@ -32,7 +32,7 @@
       width: 100%;
       background: #e6eaf0;
       font-family: '黑体';
-    }</style><link href=./static/css/app.17eb751b9afadf56363a771937f446fb.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.161e82026ac2ae03ab6f.js></script><script type=text/javascript src=./static/js/vendor.de15001ce66f032e9274.js></script><script type=text/javascript src=./static/js/app.fb20c44ae8d85d2eb070.js></script></body></html><script>function stopSafari() {
+    }</style><link href=./static/css/app.0ac8f0d4c4106045ad07474a669d7f43.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.3eade43afd174522bb8a.js></script><script type=text/javascript src=./static/js/vendor.6bffbf9058a42e825dbc.js></script><script type=text/javascript src=./static/js/app.5c14692bcb981e6854a3.js></script></body></html><script>function stopSafari() {
     //阻止safari浏览器双击放大功能
     let lastTouchEnd = 0  //更新手指弹起的时间
     document.documentElement.addEventListener("touchstart", function (event) {

文件差异内容过多而无法显示
+ 0 - 0
dist/static/css/app.0ac8f0d4c4106045ad07474a669d7f43.css


文件差异内容过多而无法显示
+ 0 - 0
dist/static/css/app.0ac8f0d4c4106045ad07474a669d7f43.css.map


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/0.4f3b05586c3acc102a54.js.map


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/0.7da288988865a9378b49.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/0.7da288988865a9378b49.js.map


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/app.5c14692bcb981e6854a3.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/app.5c14692bcb981e6854a3.js.map


+ 2 - 2
dist/static/js/manifest.161e82026ac2ae03ab6f.js → dist/static/js/manifest.3eade43afd174522bb8a.js

@@ -1,2 +1,2 @@
-!function(e){var n=window.webpackJsonp;window.webpackJsonp=function(r,c,a){for(var i,u,f,s=0,l=[];s<r.length;s++)u=r[s],t[u]&&l.push(t[u][0]),t[u]=0;for(i in c)Object.prototype.hasOwnProperty.call(c,i)&&(e[i]=c[i]);for(n&&n(r,c,a);l.length;)l.shift()();if(a)for(s=0;s<a.length;s++)f=o(o.s=a[s]);return f};var r={},t={6:0};function o(n){if(r[n])return r[n].exports;var t=r[n]={i:n,l:!1,exports:{}};return e[n].call(t.exports,t,t.exports,o),t.l=!0,t.exports}o.e=function(e){var n=t[e];if(0===n)return new Promise(function(e){e()});if(n)return n[2];var r=new Promise(function(r,o){n=t[e]=[r,o]});n[2]=r;var c=document.getElementsByTagName("head")[0],a=document.createElement("script");a.type="text/javascript",a.charset="utf-8",a.async=!0,a.timeout=12e4,o.nc&&a.setAttribute("nonce",o.nc),a.src=o.p+"static/js/"+e+"."+{0:"4f3b05586c3acc102a54",1:"14e8e8c7e44fc858e4a6",2:"94e1427bfc7ef0b4c685",3:"3a9f53a78da16650e6b8"}[e]+".js";var i=setTimeout(u,12e4);function u(){a.onerror=a.onload=null,clearTimeout(i);var n=t[e];0!==n&&(n&&n[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}return a.onerror=a.onload=u,c.appendChild(a),r},o.m=e,o.c=r,o.d=function(e,n,r){o.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},o.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(n,"a",n),n},o.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},o.p="./",o.oe=function(e){throw console.error(e),e}}([]);
-//# sourceMappingURL=manifest.161e82026ac2ae03ab6f.js.map
+!function(e){var n=window.webpackJsonp;window.webpackJsonp=function(r,a,c){for(var i,u,f,s=0,l=[];s<r.length;s++)u=r[s],t[u]&&l.push(t[u][0]),t[u]=0;for(i in a)Object.prototype.hasOwnProperty.call(a,i)&&(e[i]=a[i]);for(n&&n(r,a,c);l.length;)l.shift()();if(c)for(s=0;s<c.length;s++)f=o(o.s=c[s]);return f};var r={},t={6:0};function o(n){if(r[n])return r[n].exports;var t=r[n]={i:n,l:!1,exports:{}};return e[n].call(t.exports,t,t.exports,o),t.l=!0,t.exports}o.e=function(e){var n=t[e];if(0===n)return new Promise(function(e){e()});if(n)return n[2];var r=new Promise(function(r,o){n=t[e]=[r,o]});n[2]=r;var a=document.getElementsByTagName("head")[0],c=document.createElement("script");c.type="text/javascript",c.charset="utf-8",c.async=!0,c.timeout=12e4,o.nc&&c.setAttribute("nonce",o.nc),c.src=o.p+"static/js/"+e+"."+{0:"7da288988865a9378b49",1:"14e8e8c7e44fc858e4a6",2:"94e1427bfc7ef0b4c685",3:"3a9f53a78da16650e6b8"}[e]+".js";var i=setTimeout(u,12e4);function u(){c.onerror=c.onload=null,clearTimeout(i);var n=t[e];0!==n&&(n&&n[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}return c.onerror=c.onload=u,a.appendChild(c),r},o.m=e,o.c=r,o.d=function(e,n,r){o.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},o.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(n,"a",n),n},o.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},o.p="./",o.oe=function(e){throw console.error(e),e}}([]);
+//# sourceMappingURL=manifest.3eade43afd174522bb8a.js.map

文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/manifest.3eade43afd174522bb8a.js.map


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/vendor.6bffbf9058a42e825dbc.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/vendor.6bffbf9058a42e825dbc.js.map


+ 24 - 41
src/components/pages/aiEasy/addCourse.vue

@@ -469,59 +469,27 @@
                                 </div>
                               </div>
                               <div class="chapter_upload_n" :class="{dataTips: !item1.fileid}">
-                                <input readonly="true" v-if="
+                                <div v-if="
                                   item1.type == 2 ||
                                   item1.type == 3 ||
                                   item1.type == 12 ||
                                   item1.type == 13 ||
                                   item1.type == 7
-                                " :placeholder="item1.name" @click="
+                                " @click="
                                   updataVideoT(
                                     $event,
                                     unitIndex,
                                     0,
                                     index1
                                   )
-                                  " style="
-                                        border: none;
-                                        outline: none;
-                                        max-width: 100%;
-                                        z-index: 99;
-                                        font-size: 14px;
-                                        white-space: nowrap;
-                                        overflow: hidden;
-                                        text-overflow: ellipsis;
-                                      " />
-                                <input :placeholder="item1.name" v-if="item1.type == 6" style="
-                                        border: none;
-                                        outline: none;
-                                        max-width: 100%;
-                                        white-space: nowrap;
-                                        overflow: hidden;
-                                        text-overflow: ellipsis;
-                                      " readonly="true" @click="
+                                  " class="chapter_upload_box" >{{ item1.name }}</div>
+                                <div v-if="item1.type == 6" class="chapter_upload_box" @click="
                                         selectAttText(0, index1)
-                                        " />
-                                <input :placeholder="item1.title ? item1.title : '链接'
-                                  " v-if="item1.type == 8" style="
-                                        border: none;
-                                        outline: none;
-                                        max-width: 100%;
-                                        white-space: nowrap;
-                                        overflow: hidden;
-                                        text-overflow: ellipsis;
-                                      " readonly="true" @click="selectLine(0, index1)" />
-                                <input :placeholder="item1.title ? item1.title : '链接'
-                                  " v-if="item1.type == 14" style="
-                                        border: none;
-                                        outline: none;
-                                        max-width: 100%;
-                                        white-space: nowrap;
-                                        overflow: hidden;
-                                        text-overflow: ellipsis;
-                                      " readonly="true" @click="
+                                        " >{{ item1.name }}</div>
+                                <div v-if="item1.type == 8" class="chapter_upload_box" @click="selectLine(0, index1)" >{{ item1.title ? item1.title : '链接' }}</div>
+                                <div v-if="item1.type == 14" class="chapter_upload_box" @click="
                                         openUpdateSource(0, index1)
-                                        " />
+                                        " >{{ item1.title ? item1.title : '链接' }}</div>
                               </div>
                               <div class="chapter_upload_ic">
                                 <div class="chapter_upload_noSee" v-if="item1.type == 12"></div>
@@ -2585,6 +2553,7 @@
                     <span>一键生成</span>
                     <div class="buttonBox">
                       <div @click="openAiDialog(2, 'aiTaskName'), addCourseBehavior('courseBehavior2', `点击学历案-生成所有任务名`)" v-if="panTaskName() == 0">生成所有任务名</div>
+                      <div @click="openAiDialog2(2, 'aiTaskName'), addCourseBehavior('courseBehavior2', `点击学历案-生成所有任务名`)" v-else-if="panTask() == 0">重新生成所有任务名</div>
                       <div @click="openAiDialog2(2, 'aiTask3','all', ''), addCourseBehavior('courseBehavior2', `点击学历案-重新生成所有任务`)" v-if="panTaskName() > 0 && panTask() > 0">重新生成所有任务</div>
                       <div @click="openAiDialog(2, 'aiTask3','all', ''), addCourseBehavior('courseBehavior2', `点击学历案-生成所有任务按钮`)" v-else-if="panTaskName() > 0">生成所有任务</div>
                       <div @click="openAiDialog(2, 'aiTaskG2', 'all'), addCourseBehavior('courseBehavior2', `点击学历案-一键生成所有工具按钮`)" v-if="panTask() > 0 && panTool() == 0">一键生成所有工具</div>
@@ -26566,6 +26535,8 @@ ${msg}
   margin: 0 15px 0px auto;
   display: flex;
   align-items: center;
+  min-width: 175px;
+  justify-content: flex-end;
 }
 
 .chapter_upload_ic_l {
@@ -26632,13 +26603,25 @@ ${msg}
   text-overflow: ellipsis;
   white-space: nowrap;
   overflow: hidden;
-  width: 55%;
+  width: 100%;
   margin-left: 10px;
   cursor: pointer;
   margin-top: 2px;
   align-items: center;
 }
 
+.chapter_upload_n > .chapter_upload_box{
+  border: none;
+  outline: none;
+  max-width: 100%;
+  z-index: 99;
+  font-size: 14px;
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  color: #757575;
+}
+
 .chapter_upload_l_i2,
 .chapter_upload_l_i3,
 .chapter_upload_l_i8,

+ 28 - 16
src/components/pages/components/exportDataDialog.vue

@@ -902,7 +902,7 @@
                     l.content.length &&
                     l.eList &&
                     l.eList.length &&
-                    CState == 5
+                    (CState == 5 || CState == 6)
                 "
                 class="taskSco"
               >
@@ -995,7 +995,7 @@
                 v-if="
                     l.eList &&
                     l.eList.length &&
-                    CState != 5 && CState != '' &&
+                    CState != 5 && CState != 6 && CState != '' &&
                     lind == k.toolEList.length - 1
                 "
                 class="taskSco"
@@ -1230,9 +1230,9 @@ export default {
       cp: [4, 45, 15, 16, 50, 41, 47],
       pj: [40],
       bc: [18, 21, 23, 24, 32, 57, 63, 71],
-      xk: [28, 31, 39, 66, , 68, 69, 70],
+      xk: [28, 31, 39, 66, 68, 69, 70],
       // 师生互动工具list
-      TeaStuInt: [ 1, 52, 3, 48, 16],
+      TeaStuInt: [ 52,48,3,1,16,45,47,41],
       // 处理过的分组,师生互动数据
       // TeaStuInt2: [1, 3, 52, 4, 10, 11, 13, 15],
 
@@ -1351,10 +1351,10 @@ export default {
           }
         })
 
-        // console.log('TimeList',TimeList);
         TimeList.sort(function(a,b){
           return a-b;//从小到大排序
         })
+        // console.log('TimeList',TimeList[0]);
 
 
         return this.convertToTimestamp(TimeList[0]);
@@ -1697,12 +1697,12 @@ export default {
                     }
                   });
                   // 将没有提交作业,但是有评分标准的数据填上数据,防止报错
-                  if (!l.rate && l.eList && l.eList.length && this.CState == 5) {
+                  if (!l.rate && l.eList && l.eList.length && (this.CState == 5 || this.CState == 6)) {
                     l.rate = { content: "" };
                     l.eList.forEach(elp => {
                       l.rate[elp.detail] = 0;
                     });
-                  }else if ((!l.rate && l.eList && l.eList.length && this.CState != 5)) {
+                  }else if ((!l.rate && l.eList && l.eList.length && this.CState != 5&& this.CState != 6)) {
                       l.rate = { content: "" };
                       l.eList.forEach(elp => {
                         l.rate[elp.value] = 0;
@@ -2616,10 +2616,10 @@ export default {
             if (
               data.choices &&
               data.choices.length &&
-              data.choices[0].message
+              data.choices[0].messagea
             ) {
               let content = data.choices[0].message.content;
-              this.AiAnalysisCon2.allFx = content.replaceAll("<br>", "");
+              this.AiAnlysisCon2.allFx = content.replaceAll("<br>", "");
             }
 
             this.loading = false;
@@ -2637,10 +2637,10 @@ export default {
     },
     async getAiAnalysisCon3() {
       await this.getAiAnalysisCon2();
-      console.log("666");
+      // console.log("666");
       await this.updateFx();
 
-      console.log("111");
+      // console.log("111");
     },
     // 处理学习行为记录ai分析数据
     async getAiAnalysisCon2() {
@@ -2931,7 +2931,7 @@ export default {
           });
         });
       });
-      console.log("this.toolData", this.toolData);
+      // console.log("this.toolData", this.toolData);
 
       // 环形图占比
       this.toolRatio[0].value = this.toolData[0].length;
@@ -3380,6 +3380,18 @@ export default {
         repeatWorkCopy[e.task].push(e);
       });
 
+      // 获取任务下的可评分工具数量
+      let toolNum = []
+
+      this.toolPercentage.forEach((e,i) => {
+        toolNum[i] = []
+        e.forEach(k=>{
+          if (this.TeaStuInt.indexOf(k) != -1) {
+            toolNum[i].push(k)
+          }
+        })
+      });
+
       repeatWorkCopy.forEach((e, index) => {
         e.forEach(k => {
           scoList[index] += k.sco * 1;
@@ -3387,7 +3399,7 @@ export default {
         if (scoList[index] == 0) {
           scoList[index] = 0;
         } else {
-          scoList[index] = (scoList[index] / e.length).toFixed(1);
+          scoList[index] = (scoList[index] / toolNum[index].length).toFixed(1);
         }
       });
 
@@ -3422,8 +3434,8 @@ export default {
       });
 
 
-         // 获取任务下的可评分工具数量
-         let toolNum = []
+        // 获取任务下的可评分工具数量
+        let toolNum = []
 
         this.toolPercentage.forEach((e,i) => {
           toolNum[i] = []
@@ -3455,7 +3467,7 @@ export default {
         // scoNum[e.task].push(e.sco * 1);
       });
 
-      console.log('repeatWorkCopy',JSON.parse(JSON.stringify(repeatWorkCopy)));
+      // console.log('repeatWorkCopy',JSON.parse(JSON.stringify(repeatWorkCopy)));
 
       // scoNum.forEach((e,i)=>{
       //   if (e.length < (toolNum[i].length * this.data12[0].num)) {

+ 7 - 6
src/components/pages/components/exportWorksDialog.vue

@@ -88,7 +88,7 @@
           v-if="isStage(i.taskList)"
           class="stageCon"
         >
-          <div v-if="CState != 5" class="stageTit">
+          <div v-if="CState != 5 && CState != 6" class="stageTit">
             第{{ i.id * 1 + 1 }}阶段<span v-if="i.name">:{{ i.name }}</span>
           </div>
           <div
@@ -568,7 +568,7 @@
                     l.content.length &&
                     l.eList &&
                     l.eList.length &&
-                    CState == 5
+                    (CState == 5 || CState == 6)
                 "
                 class="taskSco"
               >
@@ -662,6 +662,7 @@
                     l.eList &&
                     l.eList.length &&
                     CState != 5 && 
+                    CState != 6 && 
                     lind == k.toolEList.length - 1
                 "
                 class="taskSco"
@@ -754,12 +755,12 @@
             </div>
           
             <!-- 思维导图 -->
-            <div v-if="CState == 5" class="taskTitInd">
+            <div v-if="CState == 5 || CState == 6" class="taskTitInd">
               <div></div>
               <span>任务评价体系</span>
             </div>
             <exjsmind
-              v-if="CState == 5"
+              v-if="CState == 5 || CState == 6"
               :treeData="k.treeData"
               :keyL="k.task.toString()"
             ></exjsmind>
@@ -1161,12 +1162,12 @@ export default {
                     }
                   });
                   // 将没有提交作业,但是有评分标准的数据填上数据,防止报错
-                  if (!l.rate && l.eList && l.eList.length && this.CState == 5) {
+                  if (!l.rate && l.eList && l.eList.length && (this.CState == 5 || this.CState == 6)) {
                     l.rate = { content: "" };
                     l.eList.forEach(elp => {
                       l.rate[elp.detail] = 0;
                     });
-                  }else if ((!l.rate && l.eList && l.eList.length && this.CState != 5)) {
+                  }else if ((!l.rate && l.eList && l.eList.length && this.CState != 5 && this.CState != 6)) {
                       l.rate = { content: "" };
                       l.eList.forEach(elp => {
                         l.rate[elp.value] = 0;

+ 6 - 6
src/components/pages/components/lookReport.vue

@@ -28,14 +28,14 @@
       </div>
       <div class="JsonTitBtn">
         <el-button
-          v-if="checkCourse.state == 5"
+          v-if="checkCourse.state == 5 || checkCourse.state == 6"
           @click="exportWorkPdf"
           type="primary"
           size="small"
           >一键导出</el-button
         >
         <el-button
-          v-if="checkCourse.state == 5"
+          v-if="checkCourse.state == 5 || checkCourse.state == 6"
           @click="batchExportPdf"
           :type="multipleSelection.length < 2 ? 'info' : 'primary'"
           :disabled="multipleSelection.length < 2"
@@ -112,7 +112,7 @@
         @selection-change="handleSelectionChange"
       >
         <el-table-column
-          v-if="checkCourse.state == 5"
+          v-if="checkCourse.state == 5 || checkCourse.state == 6"
           key="1"
           type="selection"
           width="55"
@@ -139,7 +139,7 @@
         <el-table-column align="center" label="操作" min-width="20">
           <template slot-scope="scope">
             <el-button
-              v-if="checkCourse.state == 5"
+              v-if="checkCourse.state == 5 || checkCourse.state == 6"
               type="primary"
               size="small"
               @click="lookPdf(scope.row)"
@@ -153,7 +153,7 @@
               >查看报告</el-button
             >
             <el-button
-              v-if="checkCourse.state == 5"
+              v-if="checkCourse.state == 5 || checkCourse.state == 6"
               type="primary"
               size="small"
               @click="getPdf(scope.row)"
@@ -192,7 +192,7 @@
         </div>
       </div>
       <exportDataDialog
-        v-if="checkCourse.state == 5"
+        v-if="checkCourse.state == 5 || checkCourse.state == 6"
         :key="exportW"
         :digNum="digNum"
         :oid="oid"

+ 7 - 7
src/components/pages/components/lookWork.vue

@@ -86,7 +86,7 @@
             v-if="isStage(i.taskList)"
             class="stageCon"
           >
-            <div v-if="CState != 5" class="stageTit">
+            <div v-if="CState != 5 && CState != 6" class="stageTit">
               阶段{{ i.id + 1 }}:{{ i.name }}
             </div>
 
@@ -587,7 +587,7 @@
                 <!-- ai作业得分  -->
                 <div
                   class="taskSco"
-                  v-if="l.content && l.content.length && l.eList && CState == 5"
+                  v-if="l.content && l.content.length && l.eList && (CState == 5 || CState == 6)"
                 >
                   <div class="taskScoTit">
                     <div>
@@ -662,7 +662,7 @@
                 <div
                   class="taskSco"
                   v-if="
-                    l.eList && CState != 5 && lind == k.toolEList.length - 1
+                    l.eList && CState != 5 && CState != 6 && lind == k.toolEList.length - 1
                   "
                 >
                   <div class="taskScoTit">
@@ -935,7 +935,7 @@ export default {
       let elist = this.workList[stage].taskList[task].toolEList[tool].eList;
 
       elist.forEach(e => {
-        if (this.CState == 5) {
+        if (this.CState == 5 ||this.CState == 6) {
           processedData[e.detail] = 0;
         } else {
           processedData[e.value] = 0;
@@ -1190,8 +1190,8 @@ export default {
                     !l.rate &&
                     l.eList &&
                     l.eList.length &&
-                    this.CState == 5
-                  ) {
+                    (this.CState == 5 || this.CState == 6)
+                  ) {                    
                     l.rate = { content: "" };
                     l.eList.forEach(elp => {
                       l.rate[elp.detail] = 0;
@@ -1200,7 +1200,7 @@ export default {
                     !l.rate &&
                     l.eList &&
                     l.eList.length &&
-                    this.CState != 5
+                    (this.CState != 5 && this.CState != 6)
                   ) {
                     l.rate = { content: "" };
                     l.eList.forEach(elp => {

+ 1 - 1
src/components/pages/components/studentWorksDetail.vue

@@ -1472,7 +1472,7 @@
     <div class="report_box" v-if="reportVisible">
 
     <el-dialog
-      v-if="exportData.state == 5"
+      v-if="exportData.state == 5 || exportData.state == 6"
       :visible.sync="reportVisible"
       :before-close="handleClose"
       class="worksDialogCSSExp"

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

@@ -35,7 +35,7 @@
               
               <!-- v-show="org == '1973f6c7-1561-11ee-91d8-005056b86db5' || org == '777559d2-7239-11ee-b98c-005056b86db5' || org == '884c5665-a453-46f3-b7b6-01d575290aa9'" -->
               <div type="primary" @click="oepnTemplate()" v-show="orgArray.includes(org) || oidArray.includes(oid)">AI模式</div>
-              <!--<div type="primary" @click="oepnTemplate2()" v-show="orgArray.includes(org) || oidArray.includes(oid)">上课模式</div>-->
+              <div type="primary" @click="oepnTemplate2()" v-show="orgArray.includes(org) || oidArray.includes(oid)">上课模式</div>
               <!-- oepnTemplate2 -->
             </div>
           </button>

部分文件因为文件数量过多而无法显示