lsc пре 1 година
родитељ
комит
b731059afc

+ 1 - 1
dist/index.html

@@ -25,7 +25,7 @@
       height: 100%;
       width: 100%;
       background: #e6eaf0;
-    }</style><link href=./static/css/app.4ab38bbdfd51bd56201ee052253a163f.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.1b8e037bd3fbbd358d74.js></script><script type=text/javascript src=./static/js/app.a386a145922469100613.js></script></body></html><script>function stopSafari() {
+    }</style><link href=./static/css/app.c2a55430a86f24592e02087bdde57130.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.1b8e037bd3fbbd358d74.js></script><script type=text/javascript src=./static/js/app.e59ab3c1c3b41f20e57c.js></script></body></html><script>function stopSafari() {
     //阻止safari浏览器双击放大功能
     let lastTouchEnd = 0  //更新手指弹起的时间
     document.documentElement.addEventListener("touchstart", function (event) {

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
dist/static/css/app.4ab38bbdfd51bd56201ee052253a163f.css


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
dist/static/css/app.4ab38bbdfd51bd56201ee052253a163f.css.map


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
dist/static/css/app.c2a55430a86f24592e02087bdde57130.css


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
dist/static/css/app.c2a55430a86f24592e02087bdde57130.css.map


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
dist/static/js/app.a386a145922469100613.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
dist/static/js/app.e59ab3c1c3b41f20e57c.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
dist/static/js/app.e59ab3c1c3b41f20e57c.js.map


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
dist/static/js/manifest.3512a67a6213c2df4180.js.map


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

@@ -737,7 +737,7 @@ export default {
             } else if (_tool[tool].tool == 6) {
               chapterHTML += `<h4>步骤${tool + 1}:协同文档</h4>`
             } else if (_tool[tool].tool == 15) {
-              chapterHTML += `<h4>步骤${tool + 1}:问答工具</h4>`
+              chapterHTML += `<h4>步骤${tool + 1}:问答</h4>`
             } else if (_tool[tool].tool == 53) {
               chapterHTML += `<h4>步骤${tool + 1}:文件上传</h4>`
             } else if (_tool[tool].tool == 54) {

+ 185 - 36
src/components/pages/addCourse.vue

@@ -1449,7 +1449,7 @@
                                   <div class="tool">
                                     <div class="whiteBIcon" @click="openTools(itemTaskIndex, 15, toolIndex)">
                                       <img src="../../assets/icon/thirdToolList/answer.png" alt />
-                                      <div style="margin: 5px 0">问答工具</div>
+                                      <div style="margin: 5px 0">问答</div>
                                     </div>
                                     <div class="check" @click="addTools(15, itemTaskIndex, toolIndex)">
                                       <img src="../../assets/icon/checkNo.png" alt
@@ -1568,7 +1568,7 @@
                                   <div class="tool">
                                     <div class="whiteBIcon" @click="addTools(21, itemTaskIndex, toolIndex)">
                                       <img src="../../assets/icon/fourthToolList/program.png" alt />
-                                      <div style="margin: 5px 0">编程平台</div>
+                                      <div style="margin: 5px 0">AIoT Blockly</div>
                                     </div>
                                     <div class="check" @click="addTools(21, itemTaskIndex, toolIndex)">
                                       <img src="../../assets/icon/checkNo.png" alt
@@ -1593,7 +1593,7 @@
                                   <div class="tool">
                                     <div class="whiteBIcon" @click="addTools(23, itemTaskIndex, toolIndex)">
                                       <img src="../../assets/icon/fourthToolList/Pythonprogram.png" alt />
-                                      <div style="margin: 5px 0">Python</div>
+                                      <div style="margin: 5px 0">AI Python</div>
                                     </div>
                                     <div class="check" @click="addTools(23, itemTaskIndex, toolIndex)">
                                       <img src="../../assets/icon/checkNo.png" alt
@@ -1606,7 +1606,7 @@
                                   <div class="tool">
                                     <div class="whiteBIcon" @click="addTools(24, itemTaskIndex, toolIndex)">
                                       <img src="../../assets/icon/fourthToolList/AIprogram.png" alt />
-                                      <div style="margin: 5px 0">AI平台</div>
+                                      <div style="margin: 5px 0">AI Blockly</div>
                                     </div>
                                     <div class="check" @click="addTools(24, itemTaskIndex, toolIndex)">
                                       <img src="../../assets/icon/checkNo.png" alt
@@ -2007,7 +2007,7 @@
                                   <div class="tool">
                                     <div class="whiteBIcon" @click="openTools(itemTaskIndex, 15, toolIndex)">
                                       <img src="../../assets/icon/thirdToolList/answer.png" alt />
-                                      <div style="margin: 5px 0">问答工具</div>
+                                      <div style="margin: 5px 0">问答</div>
                                     </div>
                                     <div class="check" @click="addTools(15, itemTaskIndex, toolIndex)">
                                       <img src="../../assets/icon/checkNo.png" alt
@@ -2516,35 +2516,50 @@
                 @click="checkAskType('2', askJson.askJson[index1])">多选题</span>
             </div>
             <div class="a_add_head">
-              <div style="display: flex;align-items: center;">
+              <div style="display: flex;align-items: center;width: 100%;margin-right: 20px;">
                 {{ index1 + 1 + "、" }}
                 <textarea class="a_add_head_input textarea_css" v-autoHeight="40" v-model="askJson.askJson[index1].askstitle
-                  " placeholder="请输入题目"></textarea>
+                  " placeholder="请输入题目" @change="()=>{$forceUpdate()}"></textarea>
+              </div>
+              <div class="moveBtn moveBtn2" style="margin: 0 20px 0 0px;" v-if="askJson.askCount != 1">
+                  <div class="chapter_upload_up" @click.stop="askMove(1, index1)">
+                  </div>
+                  <div class="chapter_upload_down" @click.stop="askMove(2, index1)"></div>
               </div>
               <div class="a_add_head_div">
                 <el-button type="primary" size="small" @click="deleteAskList(index1)" v-if="askJson.askCount != 1">删除
                 </el-button>
-                <el-button type="primary" size="small" @click="addAskList()">添加</el-button>
+                <el-button type="primary" size="small" @click="addAskList(index1)">添加</el-button>
               </div>
             </div>
             <div class="a_add_body">
               <div class="a_add_input" style="flex-direction: column;">
                 <div v-for="(item2, checkIndex) in askJson.askJson[index1].askItem" :key="checkIndex"
-                  style=" margin: 20px 10px 0 0;display: flex;align-items:center;">
+                  style=" margin: 20px 10px 0 0;display: flex;align-items:center;position: relative;">
                   <div style="margin-right: 10px">
                     选项{{ checkIndex + 1 }}
                   </div>
                   <textarea class="a_add_head_input textarea_css" v-autoHeight="40" v-model="askJson.askJson[index1].checkList[checkIndex]
-                    " placeholder="请输入选项" style="width: 300px;"></textarea>
+                    " placeholder="请输入选项" style="width: 300px;" @change="()=>{$forceUpdate()}"></textarea>
+                  <div class="moveBtn moveBtn2" style="margin: 0 0px 0 20px" v-if="askJson.askJson[index1].askItem != 1">
+                    <div class="chapter_upload_up" @click.stop="checkMove(1, index1,checkIndex)">
+                    </div>
+                    <div class="chapter_upload_down" @click.stop="checkMove(2, index1,checkIndex)"></div>
+                  </div>
+                  <div class="a_add_body_div">
+                    <el-button type="primary" size="small" @click="addcheckList(askJson.askJson[index1],checkIndex)">添加</el-button>
+                    <el-button type="primary" size="small" @click="deletecheckList(askJson.askJson[index1],checkIndex)" v-if="askJson.askJson[index1].askItem != 1">删除
+                    </el-button>
+                  </div>
                 </div>
               </div>
-              <div class="a_add_body_div">
+              <!-- <div class="a_add_body_div">
                 <el-button style="margin: 10px 0px 0 0" type="primary" size="small"
                   @click="addcheckList(askJson.askJson[index1])">添加</el-button>
                 <el-button type="primary" size="small" style="margin: 10px 0 0 10px"
                   @click="deletecheckList(askJson.askJson[index1])" v-if="askJson.askJson[index1].askItem != 1">删除
                 </el-button>
-              </div>
+              </div> -->
             </div>
           </div>
         </div>
@@ -2587,7 +2602,12 @@
                     placeholder="请输入题目">
                   </el-input> -->
                   <textarea class="a_add_head_input textarea_css" v-autoHeight="40"
-                    v-model="testJson.testJson[index1].teststitle" placeholder="请输入题目"></textarea>
+                    v-model="testJson.testJson[index1].teststitle" placeholder="请输入题目" @change="()=>{$forceUpdate()}"></textarea>
+                </div>
+                <div class="moveBtn moveBtn2" v-if="testJson.testCount != 1">
+                  <div class="chapter_upload_up" @click.stop="testMove(1, index1)">
+                  </div>
+                  <div class="chapter_upload_down" @click.stop="testMove(2, index1)"></div>
                 </div>
                 <div class="xzUpImg" @click.stop="addImg($event)" style="margin-right: 10px;">
                   <img src="../../assets/icon/xzUpImg.png" alt="" />
@@ -2597,7 +2617,7 @@
               <div class="a_add_head_div">
                 <el-button type="primary" size="small" @click="deleteTestList(index1)" v-if="testJson.testCount != 1">删除
                 </el-button>
-                <el-button type="primary" size="small" @click="addTestList()">添加</el-button>
+                <el-button type="primary" size="small" @click="addTestList(index1)">添加</el-button>
               </div>
             </div>
             <div class="timuImgBox" v-if="testJson.testJson[index1].timuList &&
@@ -2613,7 +2633,7 @@
             </div>
             <div class="a_add_body">
               <div class="a_add_input a_add_input_choice">
-                <el-radio-group v-model="testJson.testJson[index1].answer" v-if="testJson.testJson[index1].type == 1">
+                <el-radio-group v-model="testJson.testJson[index1].answer" v-if="testJson.testJson[index1].type == 1" @change="()=>{$forceUpdate()}">
                   <div class="radioBox">
                     <el-radio v-for="(item2, checkIndex) in testJson.testJson[index1]
                       .testItem" :key="checkIndex" :label="checkIndex">
@@ -2643,17 +2663,28 @@
                       </div>
 
                       <textarea class="a_add_head_input textarea_css" v-autoHeight="40" v-else v-model="testJson.testJson[index1].checkList[checkIndex]
-                        " placeholder="请输入选项" style="width: 300px; margin-right: 10px"></textarea>
+                        " placeholder="请输入选项" style="width: 300px; margin-right: 10px" @change="()=>{$forceUpdate()}"></textarea>
                       <div class="xzUpImg" @click.stop="addImg($event)">
                         <img src="../../assets/icon/xzUpImg.png" alt="" />
                         <input type="file" accept="image/*" style="display: none"
                           @change="beforeUploadTi($event, index1, checkIndex)" />
                       </div>
+                      <div class="moveBtn moveBtn2" v-if="testJson.testJson[index1].testItem != 1">
+                        <div class="chapter_upload_up" @click.stop="tcheckMove(1, index1, checkIndex)">
+                        </div>
+                        <div class="chapter_upload_down" @click.stop="tcheckMove(2, index1, checkIndex)"></div>
+                      </div>
+                      <div class="a_add_body_div">
+                        <el-button type="primary" size="small" @click.stop="addTcheckList(testJson.testJson[index1], checkIndex)">添加</el-button>
+                        <el-button type="primary" size="small" @click.stop="deleteTcheckList(testJson.testJson[index1], checkIndex)"
+                          v-if="testJson.testJson[index1].testItem != 1">删除
+                        </el-button>
+                      </div>
                     </el-radio>
                   </div>
                 </el-radio-group>
                 <el-checkbox-group v-model="testJson.testJson[index1].answer"
-                  v-if="testJson.testJson[index1].type == '2'">
+                  v-if="testJson.testJson[index1].type == '2'" @change="()=>{$forceUpdate()}">
                   <div class="radioBox">
                     <el-checkbox v-for="(item2, checkIndex1) in testJson.testJson[index1]
                       .testItem" :key="checkIndex1" :label="checkIndex1">
@@ -2683,22 +2714,33 @@
                       </div>
 
                       <textarea class="a_add_head_input textarea_css" v-autoHeight="40" v-else v-model="testJson.testJson[index1].checkList[checkIndex1]
-                        " placeholder="请输入选项" style="width: 300px; margin-right: 10px"></textarea>
+                        " placeholder="请输入选项" style="width: 300px; margin-right: 10px" @change="()=>{$forceUpdate()}"></textarea>
                       <div class="xzUpImg" @click.stop="addImg($event)">
                         <img src="../../assets/icon/xzUpImg.png" alt="" />
                         <input type="file" accept="image/*" style="display: none"
                           @change="beforeUploadTi($event, index1, checkIndex1)" />
                       </div>
+                      <div class="moveBtn moveBtn2" v-if="testJson.testJson[index1].testItem != 1">
+                        <div class="chapter_upload_up" @click.stop="tcheckMove(1, index1, checkIndex1)">
+                        </div>
+                        <div class="chapter_upload_down" @click.stop="tcheckMove(2, index1, checkIndex1)"></div>
+                      </div>
+                      <div class="a_add_body_div">
+                        <el-button type="primary" size="small" @click.stop="addTcheckList(testJson.testJson[index1], checkIndex1)">添加</el-button>
+                        <el-button type="primary" size="small" @click.stop="deleteTcheckList(testJson.testJson[index1], checkIndex1)"
+                          v-if="testJson.testJson[index1].testItem != 1">删除
+                        </el-button>
+                      </div>
                     </el-checkbox>
                   </div>
                 </el-checkbox-group>
               </div>
-              <div class="a_add_body_div">
+              <!-- <div class="a_add_body_div">
                 <el-button type="primary" size="small" @click="addTcheckList(testJson.testJson[index1])">添加</el-button>
                 <el-button type="primary" size="small" @click="deleteTcheckList(testJson.testJson[index1])"
                   v-if="testJson.testJson[index1].testItem != 1">删除
                 </el-button>
-              </div>
+              </div> -->
             </div>
           </div>
         </div>
@@ -6590,23 +6632,23 @@ export default {
       }
       this.$forceUpdate();
     },
-    addAskList() {
-      this.askJson.askJson.push({
+    addAskList(index) {
+      this.askJson.askJson.splice(index+1,0,{
         askstitle: "",
         askItem: 1,
         checkList: [],
-      });
+      })
       this.askJson.askCount++;
     },
-    addTestList() {
-      this.testJson.testJson.push({
+    addTestList(index) {
+      this.testJson.testJson.splice(index+1,0,{
         teststitle: "",
         testItem: 1,
         checkList: [],
         timuList: [],
         answer: [],
         type: "1",
-      });
+      })
       this.testJson.testCount++;
     },
     deleteAskList(index) {
@@ -6652,21 +6694,109 @@ export default {
       }
 
     },
-    addcheckList(json) {
-      json.checkList.length++;
+    askMove(type,index){
+      if (type == 1) {
+        if (index > 0) {
+          let a = JSON.parse(JSON.stringify(this.askJson.askJson[index - 1]));
+          let b = JSON.parse(JSON.stringify(this.askJson.askJson[index]));
+          this.askJson.askJson[index - 1] = b;
+          this.askJson.askJson[index] = a;
+        }
+      } else {
+        if (
+          index < this.askJson.askJson.length - 1
+        ) {
+          let a = JSON.parse(JSON.stringify(this.askJson.askJson[index + 1]));
+          let b = JSON.parse(JSON.stringify(this.askJson.askJson[index]));
+          this.askJson.askJson[index + 1] = b;
+          this.askJson.askJson[index] = a;
+        }
+      }
+      this.$forceUpdate();
+    },
+    checkMove(type,index,checkIndex){
+      if (type == 1) {
+        if (checkIndex > 0) {
+          let a = JSON.parse(JSON.stringify(this.askJson.askJson[index].checkList[checkIndex - 1]));
+          let b = JSON.parse(JSON.stringify(this.askJson.askJson[index].checkList[checkIndex]));
+          this.askJson.askJson[index].checkList[checkIndex - 1] = b;
+          this.askJson.askJson[index].checkList[checkIndex] = a;
+        }
+      } else {
+        if (
+          checkIndex < this.askJson.askJson[index].checkList.length - 1
+        ) {
+          let a = JSON.parse(JSON.stringify(this.askJson.askJson[index].checkList[checkIndex + 1]));
+          let b = JSON.parse(JSON.stringify(this.askJson.askJson[index].checkList[checkIndex]));
+          this.askJson.askJson[index].checkList[checkIndex + 1] = b;
+          this.askJson.askJson[index].checkList[checkIndex] = a;
+        }
+      }
+      this.$forceUpdate();
+    },
+    testMove(type,index){
+      if (type == 1) {
+        if (index > 0) {
+          let a = JSON.parse(JSON.stringify(this.testJson.testJson[index - 1]));
+          let b = JSON.parse(JSON.stringify(this.testJson.testJson[index]));
+          this.testJson.testJson[index - 1] = b;
+          this.testJson.testJson[index] = a;
+        }
+      } else {
+        if (
+          index < this.testJson.testJson.length - 1
+        ) {
+          let a = JSON.parse(JSON.stringify(this.testJson.testJson[index + 1]));
+          let b = JSON.parse(JSON.stringify(this.testJson.testJson[index]));
+          this.testJson.testJson[index + 1] = b;
+          this.testJson.testJson[index] = a;
+        }
+      }
+      this.$forceUpdate();
+    },
+    tcheckMove(type,index,checkIndex){
+      if (type == 1) {
+        if (checkIndex > 0) {
+          let a = JSON.parse(JSON.stringify(this.testJson.testJson[index].checkList[checkIndex - 1]));
+          let b = JSON.parse(JSON.stringify(this.testJson.testJson[index].checkList[checkIndex]));
+          this.testJson.testJson[index].checkList[checkIndex - 1] = b;
+          this.testJson.testJson[index].checkList[checkIndex] = a;
+        }
+      } else {
+        if (
+          checkIndex < this.testJson.testJson[index].checkList.length - 1
+        ) {
+          let a = JSON.parse(JSON.stringify(this.testJson.testJson[index].checkList[checkIndex + 1]));
+          let b = JSON.parse(JSON.stringify(this.testJson.testJson[index].checkList[checkIndex]));
+          this.testJson.testJson[index].checkList[checkIndex + 1] = b;
+          this.testJson.testJson[index].checkList[checkIndex] = a;
+        }
+      }
+      this.$forceUpdate();
+    },
+    addcheckList(json,index) {
+      // json.checkList.length++;
+      json.checkList.splice(index+1,0,'')
       json.askItem++;
+      this.$forceUpdate();
     },
-    deletecheckList(json) {
-      json.checkList.length--;
+    deletecheckList(json,index) {
+      // json.checkList.length--;
+      json.checkList.splice(index,1)
       json.askItem--;
+      this.$forceUpdate();
     },
-    addTcheckList(json) {
-      json.checkList.length++;
+    addTcheckList(json,index) {
+      // json.checkList.length++;
+      json.checkList.splice(index+1,0,'')
       json.testItem++;
+      this.$forceUpdate();
     },
-    deleteTcheckList(json) {
-      json.checkList.length--;
+    deleteTcheckList(json,index) {
+      // json.checkList.length--;
+      json.checkList.splice(index,1)
       json.testItem--;
+      this.$forceUpdate();
     },
     checkTestType(type, json) {
       json.type = type;
@@ -10047,7 +10177,8 @@ ol {
 }
 
 .a_add_head .a_add_head_input {
-  width: 540px;
+  /* width: 540px; */
+  width: 100%;
 }
 
 .a_add_head .a_add_head_div {
@@ -10078,6 +10209,7 @@ ol {
   align-items: center;
   flex-direction: row-reverse;
   margin: 30px 0 0 0;
+  position: relative;
 }
 
 .a_add_input_choice>>>.el-checkbox {
@@ -10085,6 +10217,7 @@ ol {
   align-items: center;
   flex-direction: row-reverse;
   margin: 30px 0 0 0;
+  position: relative;
 }
 
 .width100 {
@@ -10122,7 +10255,9 @@ ol {
   align-items: center;
   justify-content: center;
   /* flex-direction: column; */
-  margin-bottom: 8px;
+  position: absolute;
+  right: -20px;
+  transform: translateX(100%);
 }
 
 .a_add_body_div >>> .el-button--primary{
@@ -11536,7 +11671,10 @@ ol {
 .xzUpImg {
   width: 25px;
   height: 25px;
+  min-width: 25px;
+  min-height: 25px;
   cursor: pointer;
+  margin: 0 10px;
 }
 
 .xzUpImg>img {
@@ -11570,10 +11708,15 @@ ol {
   display: flex;
   flex-direction: row;
   align-items: center;
+  width:100%;
+  margin-right:10px;
 }
 
 .timuUpImg>div:nth-child(1) {
   margin-right: 10px;
+  display: flex;
+  align-items: center;
+  width: 100%;
 }
 
 .timuImgBox {
@@ -11709,4 +11852,10 @@ ol {
 
 .addEditor>>>.w-e-text-container {
   min-height: 100px;
+}
+
+.moveBtn2{
+  flex-direction: column;
+  width: fit-content;
+  margin: 0 10px 0 10px;
 }</style>

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

@@ -1032,7 +1032,7 @@
                             <div class="tool">
                               <div class="whiteBIcon" @click="openTools(itemTaskIndex, 15, toolIndex)">
                                 <img src="../../assets/icon/thirdToolList/answer.png" alt />
-                                <div style="margin: 5px 0">问答工具</div>
+                                <div style="margin: 5px 0">问答</div>
                               </div>
                               <div class="check" @click="addTools(15, itemTaskIndex, toolIndex)">
                                 <img src="../../assets/icon/checkNo.png" alt v-if="itemTool.tool.indexOf(15) == -1" />
@@ -1154,7 +1154,7 @@
                             <div class="tool">
                               <div class="whiteBIcon" @click="addTools(23, itemTaskIndex, toolIndex)">
                                 <img src="../../assets/icon/fourthToolList/Pythonprogram.png" alt />
-                                <div style="margin: 5px 0">Python</div>
+                                <div style="margin: 5px 0">AI Python</div>
                               </div>
                               <div class="check" @click="addTools(23, itemTaskIndex, toolIndex)">
                                 <img src="../../assets/icon/checkNo.png" alt v-if="itemTool.tool.indexOf(23) == -1" />
@@ -1165,7 +1165,7 @@
                             <div class="tool">
                               <div class="whiteBIcon" @click="addTools(24, itemTaskIndex, toolIndex)">
                                 <img src="../../assets/icon/fourthToolList/AIprogram.png" alt />
-                                <div style="margin: 5px 0">AI平台</div>
+                                <div style="margin: 5px 0">AI Blockly</div>
                               </div>
                               <div class="check" @click="addTools(24, itemTaskIndex, toolIndex)">
                                 <img src="../../assets/icon/checkNo.png" alt v-if="itemTool.tool.indexOf(24) == -1" />

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

@@ -202,7 +202,7 @@
                         margin-bottom: 10px;
                       "
                     >
-                      <div style="font-size: 16px">问答工具</div>
+                      <div style="font-size: 16px">问答</div>
                     </div>
                     <div class="answerbox">
                       <div style="min-width: 80px">问答标题</div>

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

@@ -437,7 +437,7 @@
                               margin-bottom: 10px;
                             "
                           >
-                            <div style="font-size: 16px">问答工具</div>
+                            <div style="font-size: 16px">问答</div>
                           </div>
                           <div class="answerbox">
                             <div style="min-width: 80px">问答标题</div>

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

@@ -440,7 +440,7 @@
                               margin-bottom: 10px;
                             "
                           >
-                            <div style="font-size: 16px">问答工具</div>
+                            <div style="font-size: 16px">问答</div>
                           </div>
                           <div class="answerbox">
                             <div style="min-width: 80px">问答标题</div>

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

@@ -202,7 +202,7 @@
                         margin-bottom: 10px;
                       "
                     >
-                      <div style="font-size: 16px">问答工具</div>
+                      <div style="font-size: 16px">问答</div>
                     </div>
                     <div class="answerbox">
                       <div style="min-width: 80px">问答标题</div>

+ 189 - 40
src/components/pages/easy/addCourse.vue

@@ -848,7 +848,7 @@
                                     openTools(itemTaskIndex, 15, toolIndex)
                                     ">
                                     <img src="../../../assets/icon/thirdToolList/answer.png" alt />
-                                    <div style="margin: 5px 0">问答工具</div>
+                                    <div style="margin: 5px 0">问答</div>
                                   </div>
                                   <div class="check" @click="
                                     addTools(15, itemTaskIndex, toolIndex)
@@ -1011,7 +1011,7 @@
                                     addTools(21, itemTaskIndex, toolIndex)
                                     ">
                                     <img src="../../../assets/icon/fourthToolList/program.png" alt />
-                                    <div style="margin: 5px 0">编程平台</div>
+                                    <div style="margin: 5px 0">AIoT Blockly</div>
                                   </div>
                                   <div class="check" @click="
                                     addTools(21, itemTaskIndex, toolIndex)
@@ -1045,7 +1045,7 @@
                                     addTools(23, itemTaskIndex, toolIndex)
                                     ">
                                     <img src="../../../assets/icon/fourthToolList/Pythonprogram.png" alt />
-                                    <div style="margin: 5px 0">Python</div>
+                                    <div style="margin: 5px 0">AI Python</div>
                                   </div>
                                   <div class="check" @click="
                                     addTools(23, itemTaskIndex, toolIndex)
@@ -1062,7 +1062,7 @@
                                     addTools(24, itemTaskIndex, toolIndex)
                                     ">
                                     <img src="../../../assets/icon/fourthToolList/AIprogram.png" alt />
-                                    <div style="margin: 5px 0">AI平台</div>
+                                    <div style="margin: 5px 0">AI Blockly</div>
                                   </div>
                                   <div class="check" @click="
                                     addTools(24, itemTaskIndex, toolIndex)
@@ -2531,7 +2531,7 @@
                             <div class="tool">
                               <div class="whiteBIcon" @click="openTools(itemTaskIndex, 15, toolIndex)">
                                 <img src="../../../assets/icon/thirdToolList/answer.png" alt />
-                                <div style="margin: 5px 0">问答工具</div>
+                                <div style="margin: 5px 0">问答</div>
                               </div>
                               <div class="check" @click="addTools(15, itemTaskIndex, toolIndex)">
                                 <img src="../../../assets/icon/checkNo.png" alt v-if="itemTool.tool.indexOf(15) == -1" />
@@ -2660,7 +2660,7 @@
                             <div class="tool">
                               <div class="whiteBIcon" @click="addTools(21, itemTaskIndex, toolIndex)">
                                 <img src="../../../assets/icon/fourthToolList/program.png" alt />
-                                <div style="margin: 5px 0">编程平台</div>
+                                <div style="margin: 5px 0">AIoT Blockly</div>
                               </div>
                               <div class="check" @click="addTools(21, itemTaskIndex, toolIndex)">
                                 <img src="../../../assets/icon/checkNo.png" alt v-if="itemTool.tool.indexOf(21) == -1" />
@@ -2684,7 +2684,7 @@
                             <div class="tool">
                               <div class="whiteBIcon" @click="addTools(23, itemTaskIndex, toolIndex)">
                                 <img src="../../../assets/icon/fourthToolList/Pythonprogram.png" alt />
-                                <div style="margin: 5px 0">Python</div>
+                                <div style="margin: 5px 0">AI Python</div>
                               </div>
                               <div class="check" @click="addTools(23, itemTaskIndex, toolIndex)">
                                 <img src="../../../assets/icon/checkNo.png" alt v-if="itemTool.tool.indexOf(23) == -1" />
@@ -2696,7 +2696,7 @@
                             <div class="tool">
                               <div class="whiteBIcon" @click="addTools(24, itemTaskIndex, toolIndex)">
                                 <img src="../../../assets/icon/fourthToolList/AIprogram.png" alt />
-                                <div style="margin: 5px 0">AI平台</div>
+                                <div style="margin: 5px 0">AI Blockly</div>
                               </div>
                               <div class="check" @click="addTools(24, itemTaskIndex, toolIndex)">
                                 <img src="../../../assets/icon/checkNo.png" alt v-if="itemTool.tool.indexOf(24) == -1" />
@@ -3003,7 +3003,7 @@
                             <div class="tool">
                               <div class="whiteBIcon" @click="openTools(itemTaskIndex, 15, toolIndex)">
                                 <img src="../../../assets/icon/thirdToolList/answer.png" alt />
-                                <div style="margin: 5px 0">问答工具</div>
+                                <div style="margin: 5px 0">问答</div>
                               </div>
                               <div class="check" @click="addTools(15, itemTaskIndex, toolIndex)">
                                 <img src="../../../assets/icon/checkNo.png" alt v-if="itemTool.tool.indexOf(15) == -1" />
@@ -3456,34 +3456,49 @@
                 @click="checkAskType('2', askJson.askJson[index1])">多选题</span>
             </div>
             <div class="a_add_head">
-              <div style="display: flex;align-items: center;">
+              <div style="display: flex;align-items: center;width: 100%;margin-right: 20px;">
                 {{ index1 + 1 + "、" }}
                 <textarea class="a_add_head_input textarea_css"  v-autoHeight="40" v-model="askJson.askJson[index1].askstitle
-                        " placeholder="请输入题目" ></textarea>
+                        " placeholder="请输入题目" @change="()=>{$forceUpdate()}"></textarea>
+              </div>
+              <div class="moveBtn moveBtn2" style="margin: 0 20px 0 0px;" v-if="askJson.askCount != 1">
+                  <div class="chapter_upload_up" @click.stop="askMove(1, index1)">
+                  </div>
+                  <div class="chapter_upload_down" @click.stop="askMove(2, index1)"></div>
               </div>
               <div class="a_add_head_div">
                 <el-button type="primary" size="small" @click="deleteAskList(index1)" v-if="askJson.askCount != 1">删除
                 </el-button>
-                <el-button type="primary" size="small" @click="addAskList()">添加</el-button>
+                <el-button type="primary" size="small" @click="addAskList(index1)">添加</el-button>
               </div>
             </div>
             <div class="a_add_body">
               <div class="a_add_input" style="flex-direction: column;">
-                <div  v-for="(item2, checkIndex) in askJson.askJson[index1].askItem"  :key="checkIndex" style=" margin: 20px 10px 0 0;display: flex;align-items:center;">
+                <div  v-for="(item2, checkIndex) in askJson.askJson[index1].askItem"  :key="checkIndex" style=" margin: 20px 10px 0 0;display: flex;align-items:center;position: relative;">
                   <div style="margin-right: 10px">
                     选项{{ checkIndex + 1 }}
                   </div>
                   <textarea class="a_add_head_input textarea_css"   v-autoHeight="40" v-model="askJson.askJson[index1].checkList[checkIndex]
-                        " placeholder="请输入选项" style="width: 300px;" ></textarea>  
+                        " placeholder="请输入选项" style="width: 300px" @change="()=>{$forceUpdate()}"></textarea>  
+                  <div class="moveBtn moveBtn2" style="margin: 0 0px 0 20px" v-if="askJson.askJson[index1].askItem != 1">
+                    <div class="chapter_upload_up" @click.stop="checkMove(1, index1,checkIndex)">
+                    </div>
+                    <div class="chapter_upload_down" @click.stop="checkMove(2, index1,checkIndex)"></div>
+                  </div>
+                   <div class="a_add_body_div">
+                    <el-button type="primary" size="small" @click="addcheckList(askJson.askJson[index1],checkIndex)">添加</el-button>
+                    <el-button type="primary" size="small" @click="deletecheckList(askJson.askJson[index1],checkIndex)" v-if="askJson.askJson[index1].askItem != 1">删除
+                    </el-button>
+                  </div>
                 </div>
               </div>
-              <div class="a_add_body_div">
+              <!-- <div class="a_add_body_div">
                 <el-button style="margin: 10px 0px 0 0" type="primary" size="small"
                   @click="addcheckList(askJson.askJson[index1])">添加</el-button>
                 <el-button type="primary" size="small" style="margin: 10px 0 0 10px"
                   @click="deletecheckList(askJson.askJson[index1])" v-if="askJson.askJson[index1].askItem != 1">删除
                 </el-button>
-              </div>
+              </div> -->
             </div>
           </div>
         </div>
@@ -3524,7 +3539,12 @@
                   <!-- <el-input class="a_add_head_input"  v-autoHeight="40" resize="none" v-model="testJson.testJson[index1].teststitle" type="textarea"
                     placeholder="请输入题目">
                   </el-input> -->
-                  <textarea class="a_add_head_input textarea_css"  v-autoHeight="40" v-model="testJson.testJson[index1].teststitle" placeholder="请输入题目"></textarea>
+                  <textarea class="a_add_head_input textarea_css"  v-autoHeight="40" v-model="testJson.testJson[index1].teststitle" placeholder="请输入题目" @change="()=>{$forceUpdate()}"></textarea>
+                </div>
+                <div class="moveBtn moveBtn2" v-if="testJson.testCount != 1">
+                  <div class="chapter_upload_up" @click.stop="testMove(1, index1)">
+                  </div>
+                  <div class="chapter_upload_down" @click.stop="testMove(2, index1)"></div>
                 </div>
                 <div class="xzUpImg" @click.stop="addImg($event)" style="margin-right: 10px;">
                   <img src="../../../assets/icon/xzUpImg.png" alt="" />
@@ -3534,7 +3554,7 @@
               <div class="a_add_head_div">
                 <el-button type="primary" size="small" @click="deleteTestList(index1)" v-if="testJson.testCount != 1">删除
                 </el-button>
-                <el-button type="primary" size="small" @click="addTestList()">添加</el-button>
+                <el-button type="primary" size="small" @click="addTestList(index1)">添加</el-button>
               </div>
             </div>
             <div class="timuImgBox" v-if="testJson.testJson[index1].timuList &&
@@ -3550,7 +3570,7 @@
             </div>
             <div class="a_add_body">
               <div class="a_add_input a_add_input_choice">
-                <el-radio-group v-model="testJson.testJson[index1].answer" v-if="testJson.testJson[index1].type == 1">
+                <el-radio-group v-model="testJson.testJson[index1].answer" v-if="testJson.testJson[index1].type == 1" @change="()=>{$forceUpdate()}">
                   <div class="radioBox">
                     <el-radio v-for="(item2, checkIndex) in testJson.testJson[index1]
                       .testItem" :key="checkIndex" :label="checkIndex">
@@ -3579,17 +3599,28 @@
                         </div>
                       </div>
                      <textarea class="a_add_head_input textarea_css"  v-autoHeight="40" v-else v-model="testJson.testJson[index1].checkList[checkIndex]
-                        " placeholder="请输入选项" style="width: 300px; margin-right: 10px" ></textarea>
+                        " placeholder="请输入选项" style="width: 300px; margin-right: 10px" @change="()=>{$forceUpdate()}"></textarea>
+                      <div class="moveBtn moveBtn2" v-if="testJson.testJson[index1].testItem != 1">
+                        <div class="chapter_upload_up" @click.stop="tcheckMove(1, index1, checkIndex)">
+                        </div>
+                        <div class="chapter_upload_down" @click.stop="tcheckMove(2, index1, checkIndex)"></div>
+                      </div>
                       <div class="xzUpImg" @click.stop="addImg($event)">
                         <img src="../../../assets/icon/xzUpImg.png" alt="" />
                         <input type="file" accept="image/*" style="display: none"
                           @change="beforeUploadTi($event, index1, checkIndex)" />
                       </div>
+                      <div class="a_add_body_div">
+                        <el-button type="primary" size="small" @click.stop="addTcheckList(testJson.testJson[index1], checkIndex)">添加</el-button>
+                        <el-button type="primary" size="small" @click.stop="deleteTcheckList(testJson.testJson[index1], checkIndex)"
+                          v-if="testJson.testJson[index1].testItem != 1">删除
+                        </el-button>
+                      </div>
                     </el-radio>
                   </div>
                 </el-radio-group>
                 <el-checkbox-group v-model="testJson.testJson[index1].answer"
-                  v-if="testJson.testJson[index1].type == '2'">
+                  v-if="testJson.testJson[index1].type == '2'" @change="()=>{$forceUpdate()}">
                   <div class="radioBox">
                     <el-checkbox v-for="(item2, checkIndex1) in testJson.testJson[index1]
                       .testItem" :key="checkIndex1" :label="checkIndex1">
@@ -3619,22 +3650,33 @@
                       </div>
 
                       <textarea class="a_add_head_input textarea_css"  v-autoHeight="40" v-else v-model="testJson.testJson[index1].checkList[checkIndex1]
-                        " placeholder="请输入选项" style="width: 300px; margin-right: 10px" ></textarea>
+                        " placeholder="请输入选项" style="width: 300px; margin-right: 10px" @change="()=>{$forceUpdate()}"></textarea>
+                      <div class="moveBtn moveBtn2" v-if="testJson.testJson[index1].testItem != 1">
+                        <div class="chapter_upload_up" @click.stop="tcheckMove(1, index1, checkIndex1)">
+                        </div>
+                        <div class="chapter_upload_down" @click.stop="tcheckMove(2, index1, checkIndex1)"></div>
+                      </div>
                       <div class="xzUpImg" @click.stop="addImg($event)">
                         <img src="../../../assets/icon/xzUpImg.png" alt="" />
                         <input type="file" accept="image/*" style="display: none"
                           @change="beforeUploadTi($event, index1, checkIndex1)" />
                       </div>
+                      <div class="a_add_body_div">
+                        <el-button type="primary" size="small" @click.stop="addTcheckList(testJson.testJson[index1], checkIndex1)">添加</el-button>
+                        <el-button type="primary" size="small" @click.stop="deleteTcheckList(testJson.testJson[index1], checkIndex1)"
+                          v-if="testJson.testJson[index1].testItem != 1">删除
+                        </el-button>
+                      </div>
                     </el-checkbox>
                   </div>
                 </el-checkbox-group>
               </div>
-              <div class="a_add_body_div">
+              <!-- <div class="a_add_body_div">
                 <el-button type="primary" size="small" @click="addTcheckList(testJson.testJson[index1])">添加</el-button>
                 <el-button type="primary" size="small" @click="deleteTcheckList(testJson.testJson[index1])"
                   v-if="testJson.testJson[index1].testItem != 1">删除
                 </el-button>
-              </div>
+              </div> -->
             </div>
           </div>
         </div>
@@ -7322,23 +7364,23 @@ export default {
       }
       this.$forceUpdate();
     },
-    addAskList() {
-      this.askJson.askJson.push({
+    addAskList(index) {
+      this.askJson.askJson.splice(index+1,0,{
         askstitle: "",
         askItem: 1,
         checkList: [],
-      });
+      })
       this.askJson.askCount++;
     },
-    addTestList() {
-      this.testJson.testJson.push({
+    addTestList(index) {
+      this.testJson.testJson.splice(index+1,0,{
         teststitle: "",
         testItem: 1,
         checkList: [],
         timuList: [],
         answer: [],
         type: "1",
-      });
+      })
       this.testJson.testCount++;
     },
     deleteAskList(index) {
@@ -7384,27 +7426,116 @@ export default {
       }
 
     },
-    addcheckList(json) {
-      json.checkList.length++;
+    askMove(type,index){
+      if (type == 1) {
+        if (index > 0) {
+          let a = JSON.parse(JSON.stringify(this.askJson.askJson[index - 1]));
+          let b = JSON.parse(JSON.stringify(this.askJson.askJson[index]));
+          this.askJson.askJson[index - 1] = b;
+          this.askJson.askJson[index] = a;
+        }
+      } else {
+        if (
+          index < this.askJson.askJson.length - 1
+        ) {
+          let a = JSON.parse(JSON.stringify(this.askJson.askJson[index + 1]));
+          let b = JSON.parse(JSON.stringify(this.askJson.askJson[index]));
+          this.askJson.askJson[index + 1] = b;
+          this.askJson.askJson[index] = a;
+        }
+      }
+      this.$forceUpdate();
+    },
+    checkMove(type,index,checkIndex){
+      if (type == 1) {
+        if (checkIndex > 0) {
+          let a = JSON.parse(JSON.stringify(this.askJson.askJson[index].checkList[checkIndex - 1]));
+          let b = JSON.parse(JSON.stringify(this.askJson.askJson[index].checkList[checkIndex]));
+          this.askJson.askJson[index].checkList[checkIndex - 1] = b;
+          this.askJson.askJson[index].checkList[checkIndex] = a;
+        }
+      } else {
+        if (
+          checkIndex < this.askJson.askJson[index].checkList.length - 1
+        ) {
+          let a = JSON.parse(JSON.stringify(this.askJson.askJson[index].checkList[checkIndex + 1]));
+          let b = JSON.parse(JSON.stringify(this.askJson.askJson[index].checkList[checkIndex]));
+          this.askJson.askJson[index].checkList[checkIndex + 1] = b;
+          this.askJson.askJson[index].checkList[checkIndex] = a;
+        }
+      }
+      this.$forceUpdate();
+    },
+    testMove(type,index){
+      if (type == 1) {
+        if (index > 0) {
+          let a = JSON.parse(JSON.stringify(this.testJson.testJson[index - 1]));
+          let b = JSON.parse(JSON.stringify(this.testJson.testJson[index]));
+          this.testJson.testJson[index - 1] = b;
+          this.testJson.testJson[index] = a;
+        }
+      } else {
+        if (
+          index < this.testJson.testJson.length - 1
+        ) {
+          let a = JSON.parse(JSON.stringify(this.testJson.testJson[index + 1]));
+          let b = JSON.parse(JSON.stringify(this.testJson.testJson[index]));
+          this.testJson.testJson[index + 1] = b;
+          this.testJson.testJson[index] = a;
+        }
+      }
+      this.$forceUpdate();
+    },
+    tcheckMove(type,index,checkIndex){
+      if (type == 1) {
+        if (checkIndex > 0) {
+          let a = JSON.parse(JSON.stringify(this.testJson.testJson[index].checkList[checkIndex - 1]));
+          let b = JSON.parse(JSON.stringify(this.testJson.testJson[index].checkList[checkIndex]));
+          this.testJson.testJson[index].checkList[checkIndex - 1] = b;
+          this.testJson.testJson[index].checkList[checkIndex] = a;
+        }
+      } else {
+        if (
+          checkIndex < this.testJson.testJson[index].checkList.length - 1
+        ) {
+          let a = JSON.parse(JSON.stringify(this.testJson.testJson[index].checkList[checkIndex + 1]));
+          let b = JSON.parse(JSON.stringify(this.testJson.testJson[index].checkList[checkIndex]));
+          this.testJson.testJson[index].checkList[checkIndex + 1] = b;
+          this.testJson.testJson[index].checkList[checkIndex] = a;
+        }
+      }
+      this.$forceUpdate();
+    },
+    addcheckList(json,index) {
+      // json.checkList.length++;
+      json.checkList.splice(index+1,0,'')
       json.askItem++;
+      this.$forceUpdate();
     },
-    deletecheckList(json) {
-      json.checkList.length--;
+    deletecheckList(json,index) {
+      // json.checkList.length--;
+      json.checkList.splice(index,1)
       json.askItem--;
+      this.$forceUpdate();
     },
-    addTcheckList(json) {
-      json.checkList.length++;
+    addTcheckList(json,index) {
+      // json.checkList.length++;
+      json.checkList.splice(index+1,0,'')
       json.testItem++;
+      this.$forceUpdate();
     },
-    deleteTcheckList(json) {
-      json.checkList.length--;
+    deleteTcheckList(json,index) {
+      // json.checkList.length--;
+      json.checkList.splice(index,1)
       json.testItem--;
+      this.$forceUpdate();
     },
     checkTestType(type, json) {
       json.type = type;
       setTimeout(()=>{
         json.answer = [];
       },100)
+      this.$forceUpdate();
     },
     checkAskType(type, json) {
       json.type = type;
@@ -10672,7 +10803,7 @@ ol {
 }
 
 .a_add_head .a_add_head_input {
-  width: 540px;
+  width: 100%;
 }
 
 .a_add_head .a_add_head_div {
@@ -10703,6 +10834,7 @@ ol {
   align-items: center;
   flex-direction: row-reverse;
   margin: 30px 0 0 0;
+  position: relative;
 }
 
 .a_add_input_choice>>>.el-checkbox {
@@ -10710,6 +10842,7 @@ ol {
   align-items: center;
   flex-direction: row-reverse;
   margin: 30px 0 0 0;
+  position: relative;
 }
 
 .width100 {
@@ -10747,7 +10880,9 @@ ol {
   align-items: center;
   justify-content: center;
   /* flex-direction: column; */
-  margin-bottom:8px;
+  position: absolute;
+  right: -20px;
+  transform: translateX(100%);
 }
 
 .a_add_body_div >>> .el-button--primary{
@@ -12153,7 +12288,10 @@ ol {
 .xzUpImg {
   width: 25px;
   height: 25px;
+  min-width: 25px;
+  min-height: 25px;
   cursor: pointer;
+  margin: 0 10px;
 }
 
 .xzUpImg>img {
@@ -12187,10 +12325,15 @@ ol {
   display: flex;
   flex-direction: row;
   align-items: center;
+  width:100%;
+  margin-right:10px;
 }
 
 .timuUpImg>div:nth-child(1) {
   margin-right: 10px;
+  display: flex;
+  align-items: center;
+  width: 100%;
 }
 
 .timuImgBox {
@@ -12281,4 +12424,10 @@ ol {
     border-color: #409EFF;
     outline: 0;
 }
+
+.moveBtn2{
+  flex-direction: column;
+  width: fit-content;
+  margin: 0 10px 0 10px;
+}
 </style>

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

@@ -1266,7 +1266,7 @@ export default {
       //   "",
       //   "",
       handle: {page: 1, type: 0, userid: '', isPlay: 0},
-      //1、电子白板 2、便签 3、思维导图 4、问卷调查 5、量规评分 6、协同文档 7、思维网格 8、素材库 9、选择题 10、倒计时 11、问答题 12、选人回答 13、分小组 14、老师对提交作业进行评价 15、问答 16、作业提交 17、学习资料 18、训练平台 19、目标管理 20、课程设计 21、编程平台 22、AI体验 23、python 24、AI平台
+      //1、电子白板 2、便签 3、思维导图 4、问卷调查 5、量规评分 6、协同文档 7、思维网格 8、素材库 9、选择题 10、倒计时 11、问答题 12、选人回答 13、分小组 14、老师对提交作业进行评价 15、问答 16、作业提交 17、学习资料 18、训练平台 19、目标管理 20、课程设计 21、编程平台 22、AI体验 23、python 24、AI Blockly
       howTools: 0,
       worksDetail: [],
       worksList: [],

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

@@ -1266,7 +1266,7 @@ export default {
       //   "",
       //   "",
       handle: {page: 1, type: 0, userid: '', isPlay: 0},
-      //1、电子白板 2、便签 3、思维导图 4、问卷调查 5、量规评分 6、协同文档 7、思维网格 8、素材库 9、选择题 10、倒计时 11、问答题 12、选人回答 13、分小组 14、老师对提交作业进行评价 15、问答 16、作业提交 17、学习资料 18、训练平台 19、目标管理 20、课程设计 21、编程平台 22、AI体验 23、python 24、AI平台
+      //1、电子白板 2、便签 3、思维导图 4、问卷调查 5、量规评分 6、协同文档 7、思维网格 8、素材库 9、选择题 10、倒计时 11、问答题 12、选人回答 13、分小组 14、老师对提交作业进行评价 15、问答 16、作业提交 17、学习资料 18、训练平台 19、目标管理 20、课程设计 21、编程平台 22、AI体验 23、python 24、AI Blockly
       howTools: 0,
       worksDetail: [],
       worksList: [],

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

@@ -202,7 +202,7 @@
                         margin-bottom: 10px;
                       "
                     >
-                      <div style="font-size: 16px">问答工具</div>
+                      <div style="font-size: 16px">问答</div>
                     </div>
                     <div class="answerbox">
                       <div style="min-width: 80px">问答标题</div>

+ 3 - 3
src/components/pages/student/addCourse.vue

@@ -867,7 +867,7 @@
                             <span v-if="itemTool.tool == 1"> 电子白板 </span>
                             <span v-if="itemTool.tool == 3"> 思维导图 </span>
                             <span v-if="itemTool.tool == 6"> 协同文档 </span>
-                            <span v-if="itemTool.tool == 15"> 问答工具 </span>
+                            <span v-if="itemTool.tool == 15"> 问答 </span>
                             <span v-if="itemTool.tool == 48"> 表格 </span>
                             <span v-if="itemTool.tool == 51"> 资源库 </span>
                             <span v-if="itemTool.tool == 52"> 文档 </span>
@@ -902,7 +902,7 @@
                           <div class="tool" v-if="itemTool.tool == 15">
                             <div class="whiteBIcon" @click="openToolFun(15, itemTaskIndex, toolIndex)">
                               <img src="../../../assets/icon/thirdToolList/answer.png" alt />
-                              <div style="margin: 5px 0">问答工具</div>
+                              <div style="margin: 5px 0">问答</div>
                             </div>
                           </div>
                           <div class="tool" v-if="itemTool.tool == 48 && !itemTool.toolPhoto.length
@@ -2032,7 +2032,7 @@
                 <!-- <div class="tool">
                                     <div class="whiteBIcon" @click="addToolFun(15)">
                                         <img src="../../../assets/icon/thirdToolList/answer.png" alt />
-                                        <div style="margin: 5px 0">问答工具</div>
+                                        <div style="margin: 5px 0">问答</div>
                                     </div>
                                 </div> -->
                 <div class="tool">

+ 3 - 3
src/components/pages/studio/addCourse.vue

@@ -1241,7 +1241,7 @@
                             <span v-if="itemTool.tool == 1"> 电子白板 </span>
                             <span v-if="itemTool.tool == 3"> 思维导图 </span>
                             <span v-if="itemTool.tool == 6"> 协同文档 </span>
-                            <span v-if="itemTool.tool == 15"> 问答工具 </span>
+                            <span v-if="itemTool.tool == 15"> 问答 </span>
                             <span v-if="itemTool.tool == 48"> 表格 </span>
                             <span v-if="itemTool.tool == 51"> 资源库 </span>
                             <span v-if="itemTool.tool == 52"> 文档 </span>
@@ -1318,7 +1318,7 @@
                                 src="../../../assets/icon/thirdToolList/answer.png"
                                 alt
                               />
-                              <div style="margin: 5px 0">问答工具</div>
+                              <div style="margin: 5px 0">问答</div>
                             </div>
                           </div>
                           <div
@@ -3184,7 +3184,7 @@
                 <!-- <div class="tool">
                                     <div class="whiteBIcon" @click="addToolFun(15)">
                                         <img src="../../../assets/icon/thirdToolList/answer.png" alt />
-                                        <div style="margin: 5px 0">问答工具</div>
+                                        <div style="margin: 5px 0">问答</div>
                                     </div>
                                 </div> -->
                 <div class="tool">

+ 188 - 38
src/components/pages/task/addCourse.vue

@@ -1190,7 +1190,7 @@
                                       src="../../../assets/icon/thirdToolList/answer.png"
                                       alt
                                     />
-                                    <div style="margin: 5px 0">问答工具</div>
+                                    <div style="margin: 5px 0">问答</div>
                                   </div>
                                   <div
                                     class="check"
@@ -1446,7 +1446,7 @@
                                       src="../../../assets/icon/fourthToolList/program.png"
                                       alt
                                     />
-                                    <div style="margin: 5px 0">编程平台</div>
+                                    <div style="margin: 5px 0">AIoT Blockly</div>
                                   </div>
                                   <div
                                     class="check"
@@ -1510,7 +1510,7 @@
                                       src="../../../assets/icon/fourthToolList/Pythonprogram.png"
                                       alt
                                     />
-                                    <div style="margin: 5px 0">Python</div>
+                                    <div style="margin: 5px 0">AI Python</div>
                                   </div>
                                   <div
                                     class="check"
@@ -1542,7 +1542,7 @@
                                       src="../../../assets/icon/fourthToolList/AIprogram.png"
                                       alt
                                     />
-                                    <div style="margin: 5px 0">AI平台</div>
+                                    <div style="margin: 5px 0">AI Blockly</div>
                                   </div>
                                   <div
                                     class="check"
@@ -3782,7 +3782,7 @@
                                   src="../../../assets/icon/thirdToolList/answer.png"
                                   alt
                                 />
-                                <div style="margin: 5px 0">问答工具</div>
+                                <div style="margin: 5px 0">问答</div>
                               </div>
                               <div
                                 class="check"
@@ -4007,7 +4007,7 @@
                                   src="../../../assets/icon/fourthToolList/program.png"
                                   alt
                                 />
-                                <div style="margin: 5px 0">编程平台</div>
+                                <div style="margin: 5px 0">AIoT Blockly</div>
                               </div>
                               <div
                                 class="check"
@@ -4063,7 +4063,7 @@
                                   src="../../../assets/icon/fourthToolList/Pythonprogram.png"
                                   alt
                                 />
-                                <div style="margin: 5px 0">Python</div>
+                                <div style="margin: 5px 0">AI Python</div>
                               </div>
                               <div
                                 class="check"
@@ -4091,7 +4091,7 @@
                                   src="../../../assets/icon/fourthToolList/AIprogram.png"
                                   alt
                                 />
-                                <div style="margin: 5px 0">AI平台</div>
+                                <div style="margin: 5px 0">AI Blockly</div>
                               </div>
                               <div
                                 class="check"
@@ -4758,7 +4758,7 @@
                                   src="../../../assets/icon/thirdToolList/answer.png"
                                   alt
                                 />
-                                <div style="margin: 5px 0">问答工具</div>
+                                <div style="margin: 5px 0">问答</div>
                               </div>
                               <div
                                 class="check"
@@ -5539,10 +5539,15 @@
               >
             </div>
             <div class="a_add_head">
-              <div style="display: flex;align-items: center;">
+              <div style="display: flex;align-items: center;width: 100%;margin-right: 20px;">
                 {{ index1 + 1 + "、" }}
                 <textarea class="a_add_head_input textarea_css"  v-autoHeight="40" v-model="askJson.askJson[index1].askstitle
-                        " placeholder="请输入题目" ></textarea>
+                        " placeholder="请输入题目" @change="()=>{$forceUpdate()}"></textarea>
+              </div>
+              <div class="moveBtn moveBtn2" style="margin: 0 20px 0 0px;" v-if="askJson.askCount != 1">
+                  <div class="chapter_upload_up" @click.stop="askMove(1, index1)">
+                  </div>
+                  <div class="chapter_upload_down" @click.stop="askMove(2, index1)"></div>
               </div>
               <div class="a_add_head_div">
                 <el-button
@@ -5552,22 +5557,32 @@
                   v-if="askJson.askCount != 1"
                   >删除
                 </el-button>
-                <el-button type="primary" size="small" @click="addAskList()" 
+                <el-button type="primary" size="small" @click="addAskList(index1)" 
                   >添加</el-button
                 >
               </div>
             </div>
             <div class="a_add_body">
               <div class="a_add_input" style="flex-direction: column;">
-                <div  v-for="(item2, checkIndex) in askJson.askJson[index1].askItem"  :key="checkIndex" style=" margin: 20px 10px 0 0;display: flex;align-items:center;">
+                <div  v-for="(item2, checkIndex) in askJson.askJson[index1].askItem"  :key="checkIndex" style=" margin: 20px 10px 0 0;display: flex;align-items:center;position: relative;">
                   <div style="margin-right: 10px">
                     选项{{ checkIndex + 1 }}
                   </div>
                   <textarea class="a_add_head_input textarea_css"   v-autoHeight="40" v-model="askJson.askJson[index1].checkList[checkIndex]
-                        " placeholder="请输入选项" style="width: 300px;" ></textarea>  
+                        " placeholder="请输入选项" style="width: 300px;" @change="()=>{$forceUpdate()}"></textarea>  
+                  <div class="moveBtn moveBtn2" style="margin: 0 0px 0 20px" v-if="askJson.askJson[index1].askItem != 1">
+                    <div class="chapter_upload_up" @click.stop="checkMove(1, index1,checkIndex)">
+                    </div>
+                    <div class="chapter_upload_down" @click.stop="checkMove(2, index1,checkIndex)"></div>
+                  </div>
+                  <div class="a_add_body_div">
+                    <el-button type="primary" size="small" @click="addcheckList(askJson.askJson[index1],checkIndex)">添加</el-button>
+                    <el-button type="primary" size="small" @click="deletecheckList(askJson.askJson[index1],checkIndex)" v-if="askJson.askJson[index1].askItem != 1">删除
+                    </el-button>
+                  </div>
                 </div>
               </div>
-              <div class="a_add_body_div">
+              <!-- <div class="a_add_body_div">
                 <el-button
                   style="margin: 10px 0px 0 0"
                   type="primary"
@@ -5583,7 +5598,7 @@
                   v-if="askJson.askJson[index1].askItem != 1"
                   >删除
                 </el-button>
-              </div>
+              </div> -->
             </div>
           </div>
         </div>
@@ -5640,7 +5655,12 @@
                   <!-- <el-input class="a_add_head_input"  v-autoHeight="40" resize="none" v-model="testJson.testJson[index1].teststitle" type="textarea"
                     placeholder="请输入题目">
                   </el-input> -->
-                  <textarea class="a_add_head_input textarea_css"  v-autoHeight="40" v-model="testJson.testJson[index1].teststitle" placeholder="请输入题目"></textarea>
+                  <textarea class="a_add_head_input textarea_css"  v-autoHeight="40" v-model="testJson.testJson[index1].teststitle" placeholder="请输入题目" @change="()=>{$forceUpdate()}"></textarea>
+                </div>
+                <div class="moveBtn moveBtn2" v-if="testJson.testCount != 1">
+                  <div class="chapter_upload_up" @click.stop="testMove(1, index1)">
+                  </div>
+                  <div class="chapter_upload_down" @click.stop="testMove(2, index1)"></div>
                 </div>
                 <div class="xzUpImg" @click.stop="addImg($event)" style="margin-right: 10px;">
                   <img src="../../../assets/icon/xzUpImg.png" alt="" />
@@ -5660,7 +5680,7 @@
                   v-if="testJson.testCount != 1"
                   >删除
                 </el-button>
-                <el-button type="primary" size="small" @click="addTestList()"
+                <el-button type="primary" size="small" @click="addTestList(index1)"
                   >添加</el-button
                 >
               </div>
@@ -5689,6 +5709,7 @@
                 <el-radio-group
                   v-model="testJson.testJson[index1].answer"
                   v-if="testJson.testJson[index1].type == 1"
+                  @change="()=>{$forceUpdate()}"
                 >
                   <div class="radioBox">
                     <el-radio
@@ -5734,7 +5755,7 @@
                       </div>
 
                       <textarea class="a_add_head_input textarea_css"  v-autoHeight="40" v-else v-model="testJson.testJson[index1].checkList[checkIndex]
-                        " placeholder="请输入选项" style="width: 300px; margin-right: 10px" ></textarea>
+                        " placeholder="请输入选项" style="width: 300px; margin-right: 10px" @change="()=>{$forceUpdate()}"></textarea>
                       <div class="xzUpImg" @click.stop="addImg($event)">
                         <img src="../../../assets/icon/xzUpImg.png" alt="" />
                         <input
@@ -5744,12 +5765,24 @@
                           @change="beforeUploadTi($event, index1, checkIndex)"
                         />
                       </div>
+                      <div class="moveBtn moveBtn2" v-if="testJson.testJson[index1].testItem != 1">
+                        <div class="chapter_upload_up" @click.stop="tcheckMove(1, index1, checkIndex)">
+                        </div>
+                        <div class="chapter_upload_down" @click.stop="tcheckMove(2, index1, checkIndex)"></div>
+                      </div>
+                      <div class="a_add_body_div">
+                        <el-button type="primary" size="small" @click.stop="addTcheckList(testJson.testJson[index1], checkIndex)">添加</el-button>
+                        <el-button type="primary" size="small" @click.stop="deleteTcheckList(testJson.testJson[index1], checkIndex)"
+                          v-if="testJson.testJson[index1].testItem != 1">删除
+                        </el-button>
+                      </div>
                     </el-radio>
                   </div>
                 </el-radio-group>
                 <el-checkbox-group
                   v-model="testJson.testJson[index1].answer"
                   v-if="testJson.testJson[index1].type == '2'"
+                  @change="()=>{$forceUpdate()}"
                 >
                   <div class="radioBox">
                     <el-checkbox
@@ -5795,7 +5828,7 @@
                       </div>
 
                       <textarea class="a_add_head_input textarea_css"  v-autoHeight="40" v-else v-model="testJson.testJson[index1].checkList[checkIndex1]
-                        " placeholder="请输入选项" style="width: 300px; margin-right: 10px" ></textarea>
+                        " placeholder="请输入选项" style="width: 300px; margin-right: 10px" @change="()=>{$forceUpdate()}"></textarea>
                       <div class="xzUpImg" @click.stop="addImg($event)">
                         <img src="../../../assets/icon/xzUpImg.png" alt="" />
                         <input
@@ -5805,11 +5838,22 @@
                           @change="beforeUploadTi($event, index1, checkIndex1)"
                         />
                       </div>
+                      <div class="moveBtn moveBtn2" v-if="testJson.testJson[index1].testItem != 1">
+                        <div class="chapter_upload_up" @click.stop="tcheckMove(1, index1, checkIndex1)">
+                        </div>
+                        <div class="chapter_upload_down" @click.stop="tcheckMove(2, index1, checkIndex1)"></div>
+                      </div>
+                      <div class="a_add_body_div">
+                        <el-button type="primary" size="small" @click.stop="addTcheckList(testJson.testJson[index1], checkIndex1)">添加</el-button>
+                        <el-button type="primary" size="small" @click.stop="deleteTcheckList(testJson.testJson[index1], checkIndex1)"
+                          v-if="testJson.testJson[index1].testItem != 1">删除
+                        </el-button>
+                      </div>
                     </el-checkbox>
                   </div>
                 </el-checkbox-group>
               </div>
-              <div class="a_add_body_div">
+              <!-- <div class="a_add_body_div">
                 <el-button
                   type="primary"
                   size="small"
@@ -5823,7 +5867,7 @@
                   v-if="testJson.testJson[index1].testItem != 1"
                   >删除
                 </el-button>
-              </div>
+              </div> -->
             </div>
           </div>
         </div>
@@ -9862,23 +9906,23 @@ export default {
       }
       this.$forceUpdate();
     },
-    addAskList() {
-      this.askJson.askJson.push({
+    addAskList(index) {
+      this.askJson.askJson.splice(index+1,0,{
         askstitle: "",
         askItem: 1,
         checkList: [],
-      });
+      })
       this.askJson.askCount++;
     },
-    addTestList() {
-      this.testJson.testJson.push({
+    addTestList(index) {
+      this.testJson.testJson.splice(index+1,0,{
         teststitle: "",
         testItem: 1,
         checkList: [],
         timuList: [],
         answer: [],
         type: "1",
-      });
+      })
       this.testJson.testCount++;
     },
     deleteAskList(index) {
@@ -9924,21 +9968,109 @@ export default {
       }
 
     },
-    addcheckList(json) {
-      json.checkList.length++;
+    askMove(type,index){
+      if (type == 1) {
+        if (index > 0) {
+          let a = JSON.parse(JSON.stringify(this.askJson.askJson[index - 1]));
+          let b = JSON.parse(JSON.stringify(this.askJson.askJson[index]));
+          this.askJson.askJson[index - 1] = b;
+          this.askJson.askJson[index] = a;
+        }
+      } else {
+        if (
+          index < this.askJson.askJson.length - 1
+        ) {
+          let a = JSON.parse(JSON.stringify(this.askJson.askJson[index + 1]));
+          let b = JSON.parse(JSON.stringify(this.askJson.askJson[index]));
+          this.askJson.askJson[index + 1] = b;
+          this.askJson.askJson[index] = a;
+        }
+      }
+      this.$forceUpdate();
+    },
+    checkMove(type,index,checkIndex){
+      if (type == 1) {
+        if (checkIndex > 0) {
+          let a = JSON.parse(JSON.stringify(this.askJson.askJson[index].checkList[checkIndex - 1]));
+          let b = JSON.parse(JSON.stringify(this.askJson.askJson[index].checkList[checkIndex]));
+          this.askJson.askJson[index].checkList[checkIndex - 1] = b;
+          this.askJson.askJson[index].checkList[checkIndex] = a;
+        }
+      } else {
+        if (
+          checkIndex < this.askJson.askJson[index].checkList.length - 1
+        ) {
+          let a = JSON.parse(JSON.stringify(this.askJson.askJson[index].checkList[checkIndex + 1]));
+          let b = JSON.parse(JSON.stringify(this.askJson.askJson[index].checkList[checkIndex]));
+          this.askJson.askJson[index].checkList[checkIndex + 1] = b;
+          this.askJson.askJson[index].checkList[checkIndex] = a;
+        }
+      }
+      this.$forceUpdate();
+    },
+    testMove(type,index){
+      if (type == 1) {
+        if (index > 0) {
+          let a = JSON.parse(JSON.stringify(this.testJson.testJson[index - 1]));
+          let b = JSON.parse(JSON.stringify(this.testJson.testJson[index]));
+          this.testJson.testJson[index - 1] = b;
+          this.testJson.testJson[index] = a;
+        }
+      } else {
+        if (
+          index < this.testJson.testJson.length - 1
+        ) {
+          let a = JSON.parse(JSON.stringify(this.testJson.testJson[index + 1]));
+          let b = JSON.parse(JSON.stringify(this.testJson.testJson[index]));
+          this.testJson.testJson[index + 1] = b;
+          this.testJson.testJson[index] = a;
+        }
+      }
+      this.$forceUpdate();
+    },
+    tcheckMove(type,index,checkIndex){
+      if (type == 1) {
+        if (checkIndex > 0) {
+          let a = JSON.parse(JSON.stringify(this.testJson.testJson[index].checkList[checkIndex - 1]));
+          let b = JSON.parse(JSON.stringify(this.testJson.testJson[index].checkList[checkIndex]));
+          this.testJson.testJson[index].checkList[checkIndex - 1] = b;
+          this.testJson.testJson[index].checkList[checkIndex] = a;
+        }
+      } else {
+        if (
+          checkIndex < this.testJson.testJson[index].checkList.length - 1
+        ) {
+          let a = JSON.parse(JSON.stringify(this.testJson.testJson[index].checkList[checkIndex + 1]));
+          let b = JSON.parse(JSON.stringify(this.testJson.testJson[index].checkList[checkIndex]));
+          this.testJson.testJson[index].checkList[checkIndex + 1] = b;
+          this.testJson.testJson[index].checkList[checkIndex] = a;
+        }
+      }
+      this.$forceUpdate();
+    },
+    addcheckList(json,index) {
+      // json.checkList.length++;
+      json.checkList.splice(index+1,0,'')
       json.askItem++;
+      this.$forceUpdate();
     },
-    deletecheckList(json) {
-      json.checkList.length--;
+    deletecheckList(json,index) {
+      // json.checkList.length--;
+      json.checkList.splice(index,1)
       json.askItem--;
+      this.$forceUpdate();
     },
-    addTcheckList(json) {
-      json.checkList.length++;
+    addTcheckList(json,index) {
+      // json.checkList.length++;
+      json.checkList.splice(index+1,0,'')
       json.testItem++;
+      this.$forceUpdate();
     },
-    deleteTcheckList(json) {
-      json.checkList.length--;
+    deleteTcheckList(json,index) {
+      // json.checkList.length--;
+      json.checkList.splice(index,1)
       json.testItem--;
+      this.$forceUpdate();
     },
     checkTestType(type, json) {
       json.type = type;
@@ -13183,7 +13315,7 @@ ol {
 }
 
 .a_add_head .a_add_head_input {
-  width: 540px;
+  width: 100%;
 }
 
 .a_add_head .a_add_head_div {
@@ -13214,6 +13346,7 @@ ol {
   align-items: center;
   flex-direction: row-reverse;
   margin: 30px 0 0 0;
+  position: relative;
 }
 
 .a_add_input_choice >>> .el-checkbox {
@@ -13221,6 +13354,7 @@ ol {
   align-items: center;
   flex-direction: row-reverse;
   margin: 30px 0 0 0;
+  position: relative;
 }
 
 .width100 {
@@ -13258,7 +13392,9 @@ ol {
   align-items: center;
   justify-content: center;
   /* flex-direction: column; */
-  margin-bottom:8px;
+  position: absolute;
+  right: -20px;
+  transform: translateX(100%);
 }
 
 .a_add_body_div >>> .el-button--primary{
@@ -14670,7 +14806,10 @@ ol {
 .xzUpImg {
   width: 25px;
   height: 25px;
+  min-width: 25px;
+  min-height: 25px;
   cursor: pointer;
+  margin: 0 10px;
 }
 
 .xzUpImg > img {
@@ -14704,10 +14843,15 @@ ol {
   display: flex;
   flex-direction: row;
   align-items: center;
+  width:100%;
+  margin-right:10px;
 }
 
 .timuUpImg > div:nth-child(1) {
   margin-right: 10px;
+  display: flex;
+  align-items: center;
+  width: 100%;
 }
 
 .timuImgBox {
@@ -14797,4 +14941,10 @@ ol {
     border-color: #409EFF;
     outline: 0;
 }
+
+.moveBtn2{
+  flex-direction: column;
+  width: fit-content;
+  margin: 0 10px 0 10px;
+}
 </style>

Неке датотеке нису приказане због велике количине промена