lsc il y a 11 mois
Parent
commit
1b74e0f774

+ 1 - 1
dist/index.html

@@ -32,7 +32,7 @@
       width: 100%;
       background: #e6eaf0;
       font-family: 'Source Han Sans SC', sans-serif;
-    }</style><link href=./static/css/app.8039080c56f23eb8ecfe4c75852d8fa9.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.11d8a4dfbebdec332b5f.js></script><script type=text/javascript src=./static/js/app.580e065358f09d638946.js></script></body></html><script>function stopSafari() {
+    }</style><link href=./static/css/app.8492291daf78f8d11285daad94bc3ff6.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.11d8a4dfbebdec332b5f.js></script><script type=text/javascript src=./static/js/app.ac5c9c544bb9cdace935.js></script></body></html><script>function stopSafari() {
     //阻止safari浏览器双击放大功能
     let lastTouchEnd = 0  //更新手指弹起的时间
     document.documentElement.addEventListener("touchstart", function (event) {

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/css/app.8492291daf78f8d11285daad94bc3ff6.css


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/css/app.8492291daf78f8d11285daad94bc3ff6.css.map


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/app.ac5c9c544bb9cdace935.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/app.ac5c9c544bb9cdace935.js.map


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/manifest.571c38d63f24b1ae9e16.js.map


Fichier diff supprimé car celui-ci est trop grand
+ 272 - 12
src/components/pages/aiAddCourse/addCourse.vue


+ 137 - 63
src/components/pages/aiAddCourse/aiBox.vue

@@ -1,12 +1,12 @@
 <template>
-    <div class="ai_body">
+    <div class="ai_body" v-loading="loading">
         <div class="ai_body_dialog">
-            <div class="dialog_content" :class="{right: item.role == 2}" v-for="(item, index) in array" :key="index">
+            <div class="dialog_content" :class="{ right: item.role == 2 }" v-for="(item, index) in array" :key="index">
                 <div class="role">
                     <img src="../../../assets/icon/new/role1.png" v-if="item.role == 1">
                     <img src="../../../assets/icon/new/role2.png" v-else>
                 </div>
-                <div class="content" :class="{content2: item.role == 2}">{{ item.text }}</div>
+                <div class="content" :class="{ content2: item.role == 2 }">{{ item.text }}</div>
             </div>
         </div>
         <div class="ai_body_select">
@@ -14,38 +14,40 @@
                 <div class="task">
                     <div class="title">选择需要优化的任务:</div>
                     <div class="content">
-                        <div class="span" @click="addAllTask()">    
+                        <div class="span" @click="addAllTask()">
                             <div class="check">
                                 <img :src="checkImg" alt="" v-if="checkArray.length !== course.length">
                                 <img :src="checkIsImg" alt="" v-else>
                             </div>
                             <span>全选</span>
                         </div>
-                        <div class="span" v-for="(item, index) in course" :key="index" @click="addTask(index)">    
+                        <div class="span" v-for="(item, index) in course" :key="index" @click="addTask(index)">
                             <div class="check">
                                 <img :src="checkImg" alt="" v-if="checkArray.indexOf(index) === -1">
                                 <img :src="checkIsImg" alt="" v-else>
                             </div>
-                            <span>任务{{ index+1 }}</span>
+                            <span>任务{{ index + 1 }}</span>
                         </div>
                     </div>
                 </div>
                 <div class="part">
                     <div class="title">选择优化的部分:</div>
                     <div class="content">
-                        <div class="span" v-for="(item, index) in partArray" :key="index" :class="{active:part==item.name}" @click="checkPart(item.name)">
+                        <div class="span" v-for="(item, index) in partArray" :key="index"
+                            :class="{ active: part == item.name }" @click="checkPart(item.name)">
                             {{ item.name }}
                         </div>
                     </div>
                 </div>
             </div>
-            <span class="check" :class="{isCheck: checkBool}" v-if="!checkArray.length && !part" @click="checkBool = !checkBool">选择优化内容</span>
-            <span class="check" :class="{isCheck: checkBool}" @click="checkBool = !checkBool" v-else>
+            <span class="check" :class="{ isCheck: checkBool }" v-if="!checkArray.length && !part"
+                @click="checkBool = !checkBool">选择优化内容</span>
+            <span class="check" :class="{ isCheck: checkBool }" @click="checkBool = !checkBool" v-else>
                 <el-tooltip :content="taskName" placement="top" effect="dark">
                     <!-- content to trigger tooltip here -->
                     <span>{{ taskName }}</span>
                 </el-tooltip>
-                
+
             </span>
         </div>
         <div class="ai_body_input">
@@ -72,42 +74,108 @@ export default {
             checkIsImg: checkIsImg,
             checkArray: [],
             course: [
-                {title:'任务1'},
-                {title:'任务2'},
-                {title:'任务3'}
+                { title: '任务1' },
+                { title: '任务2' },
+                { title: '任务3' }
             ],
-            partArray: [{name: '全部内容'},{name:'任务设计'},{name:'评价设计'}],
-            part:'',
-            checkBool:false,
+            partArray: [{ name: '全部内容' }, { name: '任务设计' }, { name: '评价设计' }],
+            part: '',
+            checkBool: false,
+            loading: false
         }
     },
     methods: {
         addContent() {
-            if(this.courseText){
-                this.array.push({text: this.courseText, role: 2})
-                this.array.push({text: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', role: 1})
-                this.courseText = ''
+            if (this.courseText) {
+                this.loading = true
+                this.array.push({ text: this.courseText, role: 2 })
+                setTimeout(() => {
+                    this.loading = false
+                    if (this.courseText == '请告诉我任务四该具体如何实施?') {
+                        this.array.push({
+                            text: `任务四:设计保温杯的初步方案
+
+教学目标:
+•学会应用热传递原理设计保温杯。
+•掌握基本的设计思维和创新方法。
+•理解材料选择对保温效果的影响。
+
+教学过程:
+1.复习:回顾热传递的基本原理和不同材料的导热性能。
+2.需求分析:讨论保温杯的使用场景和功能需求,如保温时间、容量、便携性等。
+3.设计指导:教师介绍设计原则和考虑因素,如材料的导热性能、结构设计、成本和环保等。
+4.创意发散:学生团队进行头脑风暴,提出多种设计方案,并选出最可行的方案。
+5.方案绘制:学生绘制保温杯的设计图,包括尺寸、形状、结构和所用材料。
+
+师生研讨:
+•分享各组的设计方案,讨论设计的创新点和实用性。
+•教师提供专业意见和建议,帮助学生完善设计方案。
+•讨论如何将设计方案转化为实际操作的步骤。
+
+拓展:
+•学生研究市场上不同类型保温杯的设计和功能。
+•分析保温杯的改进空间和潜在的创新点。
+
+学生任务单:
+•列出保温杯的功能需求和设计目标。
+•绘制保温杯的设计方案图,并标注所用材料和尺寸。
+•简述所选材料的导热性能和对保温效果的影响。
+
+知识点练习:
+1.为什么保温杯通常使用不锈钢或陶瓷作为内胆材料?
+2.描述一个创新的保温杯设计方案,并解释其工作原理。
+3.讨论在设计保温杯时需要考虑的环境因素。
+
+答案:
+1.保温杯通常使用不锈钢或陶瓷作为内胆材料,因为这些材料是热的不良导体,可以有效减缓热量的散失。
+2.一个创新的保温杯设计方案可能是采用多层结构,内层为不锈钢,中间层为真空隔热层,外层为塑料保护层。这种设计可以有效隔绝外界温度对热水温度的影响。
+在设计保温杯时,需要考虑的环境因素包括材料的可回收性、生产过程中的能源消耗和废弃物处理等。`, role: 2
+                        })
+                    }else if(this.courseText == '请你重新设计该任务,我没有感温粉末。'){
+                        this.array.push({text:`任务一:探究热的传递方式
+
+任务名: 观察热在水中的传递
+
+任务描述:
+同学们,今天我们将通过一个有趣的实验来探究热是如何在水中传递的。你将需要加热水并观察温度是如何分布的。请准备好实验器材,并按照安全指南进行操作。在实验过程中,请注意观察热水和冷水之间的相互作用,以及水温是如何随时间和空间变化的。你将需要记录你的观察结果,并思考热是如何从一个地方传递到另一个地方的。
+
+工具名字: 电子白板
+
+工具指引:
+使用电子白板工具来绘制你的实验设置和观察到的热传递过程。你可以使用电子白板的绘图功能来创建一个温度分布图,展示热水和冷水相遇时的情况。同时,你可以用它来记录实验步骤和关键观察点,以便于你和同学们进行讨论和分享。
+
+评价维度:
+•实验观察和记录:学生应该能够准确地记录实验过程中的观察结果,包括水温变化和热传递的现象。
+•数据分析和解释:学生应该能够分析实验数据,解释热在水中的传递方式,并能够用自己的话描述热对流的原理。
+•实验报告撰写:学生应该能够撰写一份清晰的实验报告,包括实验目的、方法、结果和结论,以及对实验过程的反思。`,role: 1})
+                            this.$emit('setUnitJson')
+                    } else {
+                        this.array.push({ text: '请输入正确的文案', role: 1 })
+                    }
+                    // this.array.push({text: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', role: 1})
+                    this.courseText = ''
+                }, 2000);
             }
         },
-        addTask(index){
-            if(this.checkArray.indexOf(index) !== -1){
-                this.checkArray.splice(this.checkArray.indexOf(index),1)
-            }else{
+        addTask(index) {
+            if (this.checkArray.indexOf(index) !== -1) {
+                this.checkArray.splice(this.checkArray.indexOf(index), 1)
+            } else {
                 this.checkArray.push(index)
             }
             console.log(index);
         },
-        addAllTask(){
-            if(this.checkArray.length === this.course.length){
+        addAllTask() {
+            if (this.checkArray.length === this.course.length) {
                 this.checkArray = []
-            }else{
+            } else {
                 this.checkArray = []
-                this.course.forEach((item,index)=>{
-                  this.checkArray.push(index)  
+                this.course.forEach((item, index) => {
+                    this.checkArray.push(index)
                 })
             }
         },
-        checkPart(name){
+        checkPart(name) {
             this.part = name
         }
     },
@@ -117,16 +185,16 @@ export default {
         },
         taskName() {
             let task = ''
-            if(this.checkArray.length){
+            if (this.checkArray.length) {
                 task = '任务'
-                this.checkArray = this.checkArray.sort((a,b) => a-b)
+                this.checkArray = this.checkArray.sort((a, b) => a - b)
                 let a = JSON.parse(JSON.stringify(this.checkArray))
                 for (let index = 0; index < a.length; index++) {
                     a[index]++;
                 }
                 task += a.join('/')
             }
-            return task + ' ' + this.part 
+            return task + ' ' + this.part
         }
     },
 }
@@ -201,7 +269,7 @@ export default {
     right: 13px;
 }
 
-.ai_body_dialog{
+.ai_body_dialog {
     padding: 10px 0;
     box-sizing: border-box;
     height: calc(100% - 180px);
@@ -210,37 +278,38 @@ export default {
 }
 
 
-.dialog_content{
+.dialog_content {
     width: 100%;
     display: flex;
 }
 
-.dialog_content + .dialog_content{
+.dialog_content+.dialog_content {
     margin-top: 20px;
 }
 
-.dialog_content.right{
+.dialog_content.right {
     flex-direction: row-reverse;
 }
 
-.dialog_content.right .role{
+.dialog_content.right .role {
     margin-right: 0;
     margin-left: 10px;
 }
 
-.dialog_content .role{
+.dialog_content .role {
     min-width: 30px;
     width: 30px;
     height: 30px;
     margin-right: 10px;
     border-radius: 50%;
 }
-.dialog_content .role > img{
+
+.dialog_content .role>img {
     height: 100%;
     width: 100%;
 }
 
-.dialog_content .content{
+.dialog_content .content {
     padding: 5px;
     border-radius: 5px;
     width: 100%;
@@ -251,17 +320,17 @@ export default {
     overflow: hidden;
 }
 
-.dialog_content .content2{
+.dialog_content .content2 {
     background: #3681fc;
     color: #fff;
 }
 
 
-.ai_body_select{
+.ai_body_select {
     position: relative;
 }
 
-.ai_body_select > .check{
+.ai_body_select>.check {
     background: #e7e7e7;
     display: flex;
     width: fit-content;
@@ -277,7 +346,7 @@ export default {
     cursor: pointer;
 }
 
-.ai_body_select > .check::before{
+.ai_body_select>.check::before {
     content: '';
     width: 15px;
     height: 15px;
@@ -287,7 +356,7 @@ export default {
     margin-right: 5px;
 }
 
-.ai_body_select > .check::after{
+.ai_body_select>.check::after {
     content: '';
     width: 15px;
     height: 15px;
@@ -297,7 +366,7 @@ export default {
     margin-right: 5px;
 }
 
-.ai_body_select > .isCheck{
+.ai_body_select>.isCheck {
     background: #0061FF;
     display: flex;
     width: fit-content;
@@ -315,7 +384,7 @@ export default {
     box-sizing: border-box;
 }
 
-.ai_body_select > .isCheck > span{
+.ai_body_select>.isCheck>span {
     width: calc(100% - 40px);
     display: block;
     overflow: hidden;
@@ -323,7 +392,7 @@ export default {
     text-overflow: ellipsis;
 }
 
-.ai_body_select > .isCheck::before{
+.ai_body_select>.isCheck::before {
     content: '';
     width: 15px;
     height: 15px;
@@ -333,7 +402,7 @@ export default {
     margin-right: 5px;
 }
 
-.ai_body_select > .isCheck::after{
+.ai_body_select>.isCheck::after {
     content: '';
     width: 15px;
     height: 15px;
@@ -344,7 +413,7 @@ export default {
 }
 
 
-.ai_body_select > .checkBox{
+.ai_body_select>.checkBox {
     position: absolute;
     bottom: 40px;
     border: 1px solid #E0EAFB;
@@ -356,58 +425,63 @@ export default {
     box-sizing: border-box;
 }
 
-.ai_body_select > .checkBox > .task > .title,
-.ai_body_select > .checkBox > .part > .title{
+.ai_body_select>.checkBox>.task>.title,
+.ai_body_select>.checkBox>.part>.title {
     font-size: 14px;
     font-weight: 700;
     margin-bottom: 5px;
 }
 
-.ai_body_select > .checkBox > .task{
+.ai_body_select>.checkBox>.task {
     height: calc(100% - 60px);
 }
 
-.ai_body_select > .checkBox > .part{}
+.ai_body_select>.checkBox>.part {}
 
-.ai_body_select > .checkBox > .task > .content{
+.ai_body_select>.checkBox>.task>.content {
     height: calc(100% - 40px);
     overflow: auto;
 }
 
-.ai_body_select > .checkBox > .task > .content > .span + .span{
+.ai_body_select>.checkBox>.task>.content>.span+.span {
     margin-top: 5px;
 }
-.ai_body_select > .checkBox > .task > .content > .span{
+
+.ai_body_select>.checkBox>.task>.content>.span {
     display: flex;
     align-items: center;
     font-size: 14px;
     cursor: pointer;
 }
-.ai_body_select > .checkBox > .task > .content > .span > .check{
+
+.ai_body_select>.checkBox>.task>.content>.span>.check {
     width: 13px;
     height: 13px;
     display: flex;
     align-items: center;
     margin-right: 5px;
 }
-.ai_body_select > .checkBox > .task > .content > .span > .check > img{
+
+.ai_body_select>.checkBox>.task>.content>.span>.check>img {
     width: 100%;
     height: 100%;
 }
 
-.ai_body_select > .checkBox > .part > .content{
+.ai_body_select>.checkBox>.part>.content {
     display: flex;
     align-items: center;
     font-size: 14px;
     justify-content: space-between;
 }
-.ai_body_select > .checkBox > .part > .content > .span{
+
+.ai_body_select>.checkBox>.part>.content>.span {
     padding: 3px 6px;
     border: 1px solid #E0EAFB;
     border-radius: 40px;
     cursor: pointer;
 }
-.ai_body_select > .checkBox > .part > .content > .span.active{
+
+.ai_body_select>.checkBox>.part>.content>.span.active {
     color: #0061ff;
     border-color: #0061ff;
 }

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff