lsc 7 months ago
parent
commit
18f47d0dc8

+ 1 - 1
dist/index.html

@@ -32,7 +32,7 @@
       width: 100%;
       background: #e6eaf0;
       font-family: '黑体';
-    }</style><link href=./static/css/app.4d8135a8b303283d092a5849885836e6.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.571c38d63f24b1ae9e16.js></script><script type=text/javascript src=./static/js/vendor.ee476e38463461edca63.js></script><script type=text/javascript src=./static/js/app.b9d2fb19eb3c13c3d926.js></script></body></html><script>function stopSafari() {
+    }</style><link href=./static/css/app.3538feecb1ed53f6cda64193f1fc05b6.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.571c38d63f24b1ae9e16.js></script><script type=text/javascript src=./static/js/vendor.ee476e38463461edca63.js></script><script type=text/javascript src=./static/js/app.5c28c34bc8ef8be8cced.js></script></body></html><script>function stopSafari() {
     //阻止safari浏览器双击放大功能
     let lastTouchEnd = 0  //更新手指弹起的时间
     document.documentElement.addEventListener("touchstart", function (event) {

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


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


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


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


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


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


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


+ 68 - 43
src/components/pages/aiAddCourse/addCourse.vue

@@ -4739,7 +4739,7 @@
                                 <div v-for="(eItem, eIndex) in itemTask.eList" :key="eIndex" class="elist_input_box">
                                   <div class="elist_inptu_text">
                                     <span>目标:</span>
-                                    <input type="input" v-model="itemTask.eList[eIndex].target" placeholder="填写目标"  style="width: 200px;"/>
+                                    <input type="input" v-model="itemTask.eList[eIndex].target" placeholder="填写目标"  style="width: calc(100% - 280px);"/>
                                     <el-switch
                                       style="margin-left: auto;"
                                       v-model="itemTask.eList[eIndex].isai"
@@ -4786,7 +4786,12 @@
                                   <div class="elist_inptu_text" style="align-items: flex-start;" v-loading="ruleLoading[itemTaskIndex] && ruleLoading[itemTaskIndex][eIndex]" element-loading-text="小可正在努力生成中,请稍等...">
                                     <span>细则:</span>
                                     <div style="width: calc(100%);">
-                                      <div @click="openRule(itemTaskIndex, eIndex)" class="ruleBtn">{{itemTask.eList[eIndex].isrule ? '收起细则' : '展开细则'}}</div>
+                                      <div @click="openRule(itemTaskIndex, eIndex)" class="ruleBtn" v-if="itemTask.eList[eIndex].rule">{{itemTask.eList[eIndex].isrule ? '收起细则' : '展开细则'}}</div>
+                                      <el-tooltip effect="light" content="右键单击可配置提示词" placement="bottom" v-else>
+                                        <div class="ruleBtn"
+                                          @contextmenu.prevent="openAiDialog(1, 'aiRateRule', itemTaskIndex, eIndex)"
+                                          @click="openAiDialog(2, 'aiRateRule', itemTaskIndex, eIndex)">生成细则</div>
+                                      </el-tooltip>
                                       <div style="width: calc(100%);" class='op_task_box' v-if="itemTask.eList[eIndex].isrule">
                                         <textarea v-autoHeight="68" rows="2" class="binfo_input binfo_textarea" cols v-model="itemTask.eList[eIndex].rule" placeholder="请输入评价细则"></textarea>    
                                           <div class="op_box">
@@ -7682,23 +7687,24 @@ export default {
             this.openAiDialog(clickType, 'aiTeacher2')
             return;
           }
-
-          let _pan2 = 1
-          for (var k = 0; k < this.unitJson[0].chapterInfo[0].taskJson.length; k++) {
-            if(!this.unitJson[0].chapterInfo[0].taskJson[k].taskDetail2){
-              _pan2 = 2
-              this.$message.error(`请完善任务${k+1}的课程大纲`)
-              break;
-            }
-            if(!this.unitJson[0].chapterInfo[0].taskJson[k].taskDetail3){
-              _pan2 = 2
-              this.$message.error(`请完善任务${k+1}的课程教案`)
-              break;
+          if(!(this.templateid == "4480d65a-1e48-11ef-bee5-005056b86db5" || this.templateid == "cf5722a4-401b-11ef-b873-005056b86dc3")){
+            let _pan2 = 1
+            for (var k = 0; k < this.unitJson[0].chapterInfo[0].taskJson.length; k++) {
+              if(!this.unitJson[0].chapterInfo[0].taskJson[k].taskDetail2){
+                _pan2 = 2
+                this.$message.error(`请完善任务${k+1}的课程大纲`)
+                break;
+              }
+              if(!this.unitJson[0].chapterInfo[0].taskJson[k].taskDetail3){
+                _pan2 = 2
+                this.$message.error(`请完善任务${k+1}的课程教案`)
+                break;
+              }
             }
-          }
 
-          if(_pan2 == 2){
-            return;
+            if(_pan2 == 2){
+              return;
+            }
           }
 
           const functionA = () => {
@@ -15042,7 +15048,7 @@ export default {
         this.aitype = "aiDetail"
         // this.aiText = `请根据${this.courseText}设计一个名为${this.courseName}的${sub.length ? sub.join(",") + "学科的" : ""},面向${this.getListClassC(this.checkboxList2)}的项目式学习课程。`
         this.aiText = this.aiJson.aiDetail
-        this.aiCallback = callback
+        this.aiCallBack = callback
       } else if (type == "aiOutline") {
         this.aitype = "aiOutline"
         // this.aiText = `请根据${this.courseText}设计一个名为${this.courseName}的${sub.length ? sub.join(",") + "学科的" : ""},面向${this.getListClassC(this.checkboxList2)}的项目式学习课程设计序列教学活动(需要每个任务都需要至少50个token的详细描述),每个教学活动的活动设计(可以直接使用文件内容)以及每个教学活动的评价量规(学生能做到...)。`
@@ -15237,7 +15243,7 @@ export default {
         }
         this.aitype = type
         this.aiText = this.aiJson.aiAbstract
-        this.aiCallback = callback
+        this.aiCallBack = callback
       } else if (type == 'aitargetTextDetail'){
         if (this.ttargetTextLoading) {
           this.$message({
@@ -15248,7 +15254,7 @@ export default {
         }
         this.aitype = type
         this.aiText = this.aiJson.aiTarget
-        this.aiCallback = callback
+        this.aiCallBack = callback
       } else if (type == 'aitargetTextDetail2'){
         if (this.ttargetTextLoading2) {
           this.$message({
@@ -15259,7 +15265,7 @@ export default {
         }
         this.aitype = type
         this.aiText = this.aiJson.aiTarget2
-        this.aiCallback = callback
+        this.aiCallBack = callback
       } else if (type == 'aiSearchFile'){
         if(this.fileSLoading) {
           this.$message({
@@ -15274,19 +15280,28 @@ export default {
       } else if (type == 'aiRateRule'){
         this.aitype = type
         this.aiText = this.aiJson.aiRateRule
-        this.aiCallback = [callback, index]
+        this.aiCallBack = [callback, index]
       } else if (type == 'aiRateRuleA'){
-        this.$confirm("是否确定一键生成所有细则", "提示", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
+        this.$confirm("是否生成所有维度的细则?仅生成该任务/生成所有", "提示", {
+          confirmButtonText: "生成所有",
+          cancelButtonText: "仅生成该任务",
+          distinguishCancelAndClose: true,
           type: "warning",
         })
           .then(() => {
             this.aitype = type
             this.aiText = this.aiJson.aiRateRule
-            this.aiCallback = callback
+            this.aiCallBack = [1,callback]
             this.dialogVisibleAiD = true
-        }).catch(() => {})
+        }).catch((v) => {
+          console.log(v);
+          if (v == "cancel") {
+            this.aitype = type
+            this.aiText = this.aiJson.aiRateRule
+            this.aiCallBack = [2,callback]
+            this.dialogVisibleAiD = true
+          }
+        })
       }
 
       if(type != 'aiRateRuleA'){
@@ -15443,13 +15458,13 @@ ${(this.templateid == "4480d65a-1e48-11ef-bee5-005056b86db5" || this.templateid
 
 ## 格式要求
 任务描述:用老师的身份以友好,但是又清晰明确的口吻来撰写该描述,该描述教师给与学生的指示(用于指导学生如何进行每个教学活动),对应到学生活动,输出内容至少200tokens
-评价标准:至少3条评价标准,这个评价是教师用来评价学生表现的,需要包含评价维度,以及该维度中教师期待学生的表现,句式为学生应该能....
+评价标准:至少3条评价标准,这个评价是教师用来评价学生表现的,需要包含评价维度,维度描述,评价目标,以及评价目标是根据<教学任务教案>提取关于这个评价维度的目标,还有该维度中教师期待学生的表现,维度描述的句式为学生应该能....
 工具名:从工具列表中选择0~2个工具用于学生阶段性成果提交:工具列表:电子白板,文档,思维导图,表格,作业提交,问答,选择题,只在这几个工具里选
 工具描述:用同学的方式以友好亲切,明确的口吻告诉学生该如何使用该工具
 出现选择题和问答题的概率提高,然后根据<教学任务教案>判断是否需要选择题或者问答题
  
 # Format example
-{"detail":"面向学生的任务描述","elist":[{"value":"评价名字1","detail":"评价维度1","score":5},{"value":"评价名字2","detail":"评价维度2","score":5},{"value":"评价名字3","detail":"评价维度3","score":5}],"toolChoose":[{"tool":"工具名","detail":"工具描述"},{"tool":"工具名","detail":"工具描述"}]}`
+{"detail":"面向学生的任务描述","elist":[{"value":"评价维度","detail":"维度描述",target:"评价目标","score":5},{"value":"评价维度","detail":"维度描述",target:"评价目标","score":5},{"value":"评价维度","detail":"维度描述",target:"评价目标","score":5}],"toolChoose":[{"tool":"工具名","detail":"工具描述"},{"tool":"工具名","detail":"工具描述"}]}`
         this.taskLoading[_task] = true
         this.aiGet32(message, _task)
           }
@@ -15472,13 +15487,13 @@ ${(this.templateid == "4480d65a-1e48-11ef-bee5-005056b86db5" || this.templateid
 
 ## 格式要求
 任务描述:用老师的身份以友好,但是又清晰明确的口吻来撰写该描述,该描述教师给与学生的指示(用于指导学生如何进行每个教学活动),对应到学生活动,输出内容至少200tokens
-评价标准:至少3条评价标准,这个评价是教师用来评价学生表现的,需要包含评价维度,以及该维度中教师期待学生的表现,句式为学生应该能....
+评价标准:至少3条评价标准,这个评价是教师用来评价学生表现的,需要包含评价维度,维度描述,评价目标,以及评价目标是根据<教学任务教案>提取关于这个评价维度的目标,还有该维度中教师期待学生的表现,维度描述的句式为学生应该能....
 工具名:从工具列表中选择0~2个工具用于学生阶段性成果提交:工具列表:电子白板,文档,思维导图,表格,作业提交,问答,选择题,只在这几个工具里选
 工具描述:用同学的方式以友好亲切,明确的口吻告诉学生该如何使用该工具
 出现选择题和问答题的概率提高,然后根据<教学任务教案>判断是否需要选择题或者问答题
  
 # Format example
-{"detail":"面向学生的任务描述","elist":[{"value":"评价名字1","detail":"评价维度1","score":5},{"value":"评价名字2","detail":"评价维度2","score":5},{"value":"评价名字3","detail":"评价维度3","score":5}],"toolChoose":[{"tool":"工具名","detail":"工具描述"},{"tool":"工具名","detail":"工具描述"}]}`
+{"detail":"面向学生的任务描述","elist":[{"value":"评价维度","detail":"维度描述",target:"评价目标","score":5},{"value":"评价维度","detail":"维度描述",target:"评价目标","score":5},{"value":"评价维度","detail":"维度描述",target:"评价目标","score":5}],"toolChoose":[{"tool":"工具名","detail":"工具描述"},{"tool":"工具名","detail":"工具描述"}]}`
         this.taskLoading[this.aiCallBack] = true
         this.aiGet32(message, this.aiCallBack)
         }
@@ -15588,16 +15603,26 @@ ${msg}。相关信息内容至少要有300tokens,可以是markdown格式
           this.fileSLoading = false
         })
       } else if (this.aitype == 'aiRateRule'){
-        this.againEva(msg, this.aiCallback[0], this.aiCallback[1])
+        this.againEva(msg, this.aiCallBack[0], this.aiCallBack[1])
       } else if (this.aitype == 'aiRateRuleA'){
-        for(var i = 0; i < this.unitJson[0].chapterInfo[0].taskJson.length; i++){
-          let task = this.unitJson[0].chapterInfo[0].taskJson[i]
+        if(this.aiCallBack[0] == 1){
+          for(var i = 0; i < this.unitJson[0].chapterInfo[0].taskJson.length; i++){
+            let task = this.unitJson[0].chapterInfo[0].taskJson[i]
+            for(var k = 0; k < task.eList.length; k++){
+              if(!task.eList[k].rule){
+                this.againEva(msg, i, k)
+              }
+            }
+          }
+        }else if(this.aiCallBack[0] == 2){
+          let task = this.unitJson[0].chapterInfo[0].taskJson[this.aiCallBack[1]]
           for(var k = 0; k < task.eList.length; k++){
             if(!task.eList[k].rule){
-              this.againEva(msg, i, k)
+              this.againEva(msg, this.aiCallBack[1], k)
             }
           }
         }
+
       }
       this.setAiJson(this.aitype, msg, msg2)
     },
@@ -15653,14 +15678,14 @@ ${sub.length ? '学科:' + sub.join(",") : ''}
 ${mclass.length ? '面向年级:' + mclass.join(",") : ''}
 ${(this.mode == 1 && (!this.yiKeTemplateArray.includes(this.templateid)) && this.teacherCourseText) ? '提取教案摘要:'+this.teacherCourseText : ''}
 ${(this.mode == 1 && (!this.yiKeTemplateArray.includes(this.templateid)) && target) ? '提取教案目标:'+target : ''}
-${this.courseText && this.aiCallback == 2 ? '参考内容:'+this.courseText : ''}
+${this.courseText && this.aiCallBack == 2 ? '参考内容:'+this.courseText : ''}
 
 ## 要求
 ${message} 以及##参考资料 ${(!this.yiKeTemplateArray.includes(this.templateid)) ? "" : '以文本格式输出项目概况,驱动性问题,最终作品'}
 
 ${(this.templateid != 'cf5722a4-401b-11ef-b873-005056b86dc4') && '## Format example 课程简要描述:课程内容的简单叙述。 驱动性问题:1个驱动整个项目的问题。 最终作品:对应解决驱动性问题的作品,可个人可团队。'}
 
-${this.courseText && this.aiCallback == 2 ? '注意,优化原有的<参考内容>即可不用重新生成,让内容更具体化,更具体' : ''}
+${this.courseText && this.aiCallBack == 2 ? '注意,优化原有的<参考内容>即可不用重新生成,让内容更具体化,更具体' : ''}
 
 如果在上传的文件中没有找到相关的课程简要描述、驱动性问题和最终作品的信息,请用自身的理解输出`
       this.aiGet(msg)
@@ -19230,12 +19255,12 @@ Instruction: Based on the context, follow "Format example", write content.
 课程名字:${this.courseName}
 ${sub.length ? '学科:' + sub.join(",") : ''}
 ${mclass.length ? '面向年级:' + mclass.join(",") : ''}
-${this.teacherCourseText && this.aiCallback == 2 ? '参考内容:'+this.teacherCourseText : ''}
+${this.teacherCourseText && this.aiCallBack == 2 ? '参考内容:'+this.teacherCourseText : ''}
 
 ## 要求
 ${msg}
 
-${this.teacherCourseText && this.aiCallback == 2 ? '注意,优化原有的<参考内容>即可不用重新生成,让内容更具体化,更具体' : ''}`
+${this.teacherCourseText && this.aiCallBack == 2 ? '注意,优化原有的<参考内容>即可不用重新生成,让内容更具体化,更具体' : ''}`
       let _uuid = uuidv4();
       // let params = JSON.stringify({
       //   // "model": "Chat",
@@ -19394,12 +19419,12 @@ Instruction: Based on the context, follow "Format example", write content.
 课程名字:${this.courseName}
 ${sub.length ? '学科:' + sub.join(",") : ''}
 ${mclass.length ? '面向年级:' + mclass.join(",") : ''}
-${this.targetCourseText && this.aiCallback == 2 ? '参考内容:'+this.targetCourseText : ''}
+${this.targetCourseText && this.aiCallBack == 2 ? '参考内容:'+this.targetCourseText : ''}
 
 ## 要求
 ${msg}
 
-${this.targetCourseText && this.aiCallback == 2 ? '注意,优化原有的<参考内容>即可不用重新生成,让内容更具体化,更具体' : ''}`
+${this.targetCourseText && this.aiCallBack == 2 ? '注意,优化原有的<参考内容>即可不用重新生成,让内容更具体化,更具体' : ''}`
       let _uuid = uuidv4();
       // let params = JSON.stringify({
       //   // "model": "Chat",
@@ -19541,12 +19566,12 @@ Instruction: Based on the context, follow "Format example", write content.
 #Context
 ## 参考资料
 课程标题:${this.courseName}
-${this.targetCourseText && this.aiCallback == 2 ? '参考内容:'+this.targetCourseText : ''}
+${this.targetCourseText && this.aiCallBack == 2 ? '参考内容:'+this.targetCourseText : ''}
 
 ## 要求
 ${msg}
 
-${this.targetCourseText && this.aiCallback == 2 ? '注意,优化原有的<参考内容>即可不用重新生成,让内容更具体化,更具体' : ''}`
+${this.targetCourseText && this.aiCallBack == 2 ? '注意,优化原有的<参考内容>即可不用重新生成,让内容更具体化,更具体' : ''}`
       let _uuid = uuidv4();
       // let params = JSON.stringify({
       //   // "model": "Chat",

+ 5 - 0
src/components/pages/test/index.vue

@@ -1321,6 +1321,11 @@ export default {
             this.getCourse2();
         }
         this.selectTestType();
+        window.onbeforeunload = function(event) {
+            event.preventDefault();
+            event.returnValue = false;
+            return false
+        }
     },
 };
 </script>

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