lsc 1 year ago
parent
commit
aa4526b433
1 changed files with 307 additions and 233 deletions
  1. 307 233
      src/components/pages/addCourse.vue

+ 307 - 233
src/components/pages/addCourse.vue

@@ -60,9 +60,9 @@
             <div class="navTop">辅助导航</div>
             <div class="navBottom">
               <div class="navTask" :class="{
-                  isNavTask: isClickColor > 0 && isClickColor == tIndex + 1,
-                }" v-for="(t, tIndex) in unitJson[unitIndex].chapterInfo[0]
-      .taskJson" :key="tIndex" @click="goToTask(tIndex)">
+                isNavTask: isClickColor > 0 && isClickColor == tIndex + 1,
+              }" v-for="(t, tIndex) in unitJson[unitIndex].chapterInfo[0]
+  .taskJson" :key="tIndex" @click="goToTask(tIndex)">
                 <div>任务{{ tIndex + 1 }}</div>
                 <div>
                   <el-tooltip effect="light" :content="t.task" placement="top">
@@ -89,22 +89,24 @@
               <h3 class="info_title" v-if="steps == 4">上传课程</h3>
               <el-breadcrumb separator-class="el-icon-arrow-right" style="margin-top: 15px">
                 <el-breadcrumb-item :to="{
-                    path:
-                      '/course?userid=' +
-                      userid +
-                      '&oid=' +
-                      oid +
-                      '&org=' +
-                      org +
-                      '&role=' +
-                      role,
-                  }">课程管理</el-breadcrumb-item>
+                  path:
+                    '/course?userid=' +
+                    userid +
+                    '&oid=' +
+                    oid +
+                    '&org=' +
+                    org +
+                    '&role=' +
+                    role,
+                }">课程管理</el-breadcrumb-item>
                 <el-breadcrumb-item>
                   <span style="color: rgb(15, 126, 255)">添加课程</span>
                 </el-breadcrumb-item>
               </el-breadcrumb>
-              <el-button type="primary" @click="pasteStage" size="small" v-if="steps == 3 && (!cid || (cid && (userid == courseUserid || role == '1')))" style="margin-left: 20px;">智能粘贴</el-button>
-              
+              <el-button type="primary" @click="pasteTask" size="small"
+                v-if="steps == 3 && (!cid || (cid && (userid == courseUserid || role == '1')))"
+                style="margin-left: 20px;">智能粘贴</el-button>
+
             </div>
             <div v-if="steps == 1 || steps == 2 || steps == 3" class="stepsWord">
               {{
@@ -122,8 +124,8 @@
           </div>
           <div class="rightBox" v-if="this.steps == 1" @mousewheel="scrollChange">
             <div class="updateMask" :style="{
-                      height: rightBoxHeight ? rightBoxHeight + 'px' : '100%',
-                    }" v-if="cid && userid != courseUserid && role != '1'"></div>
+              height: rightBoxHeight ? rightBoxHeight + 'px' : '100%',
+            }" v-if="cid && userid != courseUserid && role != '1'"></div>
             <div class="whiteBg">
               <div class="right_title" :class="{ updateTips: cid && userid != courseUserid && role != '1' }">
                 课程基本信息
@@ -158,10 +160,10 @@
                         <div class="choose">
                           <div class="all_choose" v-for="(item, index) in CourseType[0]" :key="index">
                             <span v-if="CourseTypeJson[item.id].length > 0 &&
-                                (oid == '69893dca-1d47-11ed-8c78-005056b86db5'
-                                  ? pTypeCheck.indexOf(item.id) != -1
-                                  : true)
-                                ">{{ item.name }}</span>
+                              (oid == '69893dca-1d47-11ed-8c78-005056b86db5'
+                                ? pTypeCheck.indexOf(item.id) != -1
+                                : true)
+                              ">{{ item.name }}</span>
                             <el-checkbox-group v-model="courseTypeId" v-if="CourseTypeJson[item.id].length > 0 &&
                               (oid == '69893dca-1d47-11ed-8c78-005056b86db5'
                                 ? pTypeCheck.indexOf(item.id) != -1
@@ -249,7 +251,7 @@
                       </div>
                     </div>
                     <div style="flex: 0.5 1 0%; margin: 0; width: 180px"
-                      v-if="courseUserid != '' ? (courseUserid == userid  || role == '1') : true">
+                      v-if="courseUserid != '' ? (courseUserid == userid || role == '1') : true">
                       <div class="bInfo_title">协同编辑</div>
                       <div class="addPeople" @click="openMember" style="background: #6b92c9">
                         添加协同成员
@@ -440,6 +442,22 @@
                     简易模式
                   </div>
                 </div>
+                <div class="wordTeacher" @click="pasteStage()">
+                  <div class="wordPic">
+                    <img src="../../assets/icon/wordMub.png" alt />
+                  </div>
+
+                  <div style="
+                      margin-top: 10px;
+                      line-height: 19px;
+                      overflow: hidden;
+                      text-overflow: ellipsis;
+                      white-space: nowrap;
+                      padding: 0 20px;
+                    ">
+                    智能粘贴任务模式
+                  </div>
+                </div>
                 <!-- <div class="wordTeacher" @click="checkTemplate4()">
                   <div class="wordPic">
                     <img src="../../assets/icon/wordMub.png" alt />
@@ -498,12 +516,12 @@
                     }}
                   </div>
                   <img src="../../assets/line.png" class="cru_line" :style="{
-                        left: offsetLetfPx + 'px',
-                      }" />
+                    left: offsetLetfPx + 'px',
+                  }" />
                 </div>
                 <div class="addStageImg" @click="addunit()" v-if="!(unitJson[unitJson.length - 1].easy == 4) &&
-                    !(unitJson[unitJson.length - 1].easy == 6)
-                    ">
+                  !(unitJson[unitJson.length - 1].easy == 6)
+                  ">
                   <img src="../../assets/icon/add.png" alt />
                 </div>
               </div>
@@ -534,13 +552,13 @@
                   v-for="(itemTask, itemTaskIndex) in item.taskJson" :key="itemTaskIndex">
                   <div v-if="unitJson[unitIndex].easy != 1">
                     <div :style="{
-                        marginBottom:
-                          unitJson[unitIndex].easy == 3 ||
-                            (unitJson[unitIndex].easy == 5 &&
-                              itemTask.taskType == 1)
-                            ? '75px'
-                            : '0',
-                      }">
+                      marginBottom:
+                        unitJson[unitIndex].easy == 3 ||
+                          (unitJson[unitIndex].easy == 5 &&
+                            itemTask.taskType == 1)
+                          ? '75px'
+                          : '0',
+                    }">
                       <div style="font-size: 22px; color: #8e8e8e" :id="'task' + itemTaskIndex">
                         任务{{ itemTaskIndex + 1 }}
                       </div>
@@ -559,8 +577,8 @@
                         </div>
                         <div>
                           <input type="text" placeholder="输入任务名称" class="binfo_input" style="border-radius: 4px" v-model="unitJson[unitIndex].chapterInfo[0].taskJson[
-                              itemTaskIndex
-                            ].task
+                            itemTaskIndex
+                          ].task
                             " />
                         </div>
                         <div class="remove" v-if="item.taskJson.length > 1 &&
@@ -582,8 +600,8 @@
                       </div>
                       <div v-if="easyArray.indexOf(unitJson[unitIndex].easy) == -1">
                         <editor-bar style="width: 90% !important; margin: 0" placeholder="请输入任务描述" v-model="unitJson[unitIndex].chapterInfo[0].taskJson[
-                            itemTaskIndex
-                          ].taskDetail
+                          itemTaskIndex
+                        ].taskDetail
                           " @change="change"></editor-bar>
                         <!-- <textarea
                           rows="6"
@@ -625,12 +643,12 @@
                       <div v-else class="add_chapters_box" style="display: flex; flex-direction: column">
                         <div class="chapter_upload" v-for="(item1, index1) in itemTask.chapterData" :key="item1.id"
                           @click="getChapterData(
-                              $event,
-                              unitIndex,
-                              index,
-                              index1,
-                              item1.type
-                            )
+                            $event,
+                            unitIndex,
+                            index,
+                            index1,
+                            item1.type
+                          )
                             ">
                           <div class="chapter_upload_t" style="width: 100%"></div>
                           <div class="chapter_upload_o" style="
@@ -656,12 +674,12 @@
                               ">
                               <div class="chapter_upload_ic_l"></div>
                               <div class="chapter_upload_ic_r" style="position: absolute" @click.stop="deleteChapterData(
-                                  $event,
-                                  unitIndex,
-                                  index,
-                                  index1,
-                                  itemTaskIndex
-                                )
+                                $event,
+                                unitIndex,
+                                index,
+                                index1,
+                                itemTaskIndex
+                              )
                                 ">
                                 <div></div>
                               </div>
@@ -672,11 +690,11 @@
                                 item1.type == 12 ||
                                 item1.type == 7
                                 " :placeholder="item1.name" @change="updataVideoT(
-      $event,
-      unitIndex,
-      chapterIndex,
-      index1
-    )
+    $event,
+    unitIndex,
+    chapterIndex,
+    index1
+  )
     " style="
                                   border: none;
                                   outline: none;
@@ -707,20 +725,20 @@
                                 " readonly="true" @click="selectLine(itemTaskIndex, index1)" />
                               <div class="chapter_upload_ud" style="z-index: 99">
                                 <div class="chapter_upload_up" @click="upCd(
-                                    $event,
-                                    unitIndex,
-                                    index,
-                                    itemTaskIndex,
-                                    index1
-                                  )
+                                  $event,
+                                  unitIndex,
+                                  index,
+                                  itemTaskIndex,
+                                  index1
+                                )
                                   "></div>
                                 <div class="chapter_upload_down" @click="downCd(
-                                    $event,
-                                    unitIndex,
-                                    index,
-                                    itemTaskIndex,
-                                    index1
-                                  )
+                                  $event,
+                                  unitIndex,
+                                  index,
+                                  itemTaskIndex,
+                                  index1
+                                )
                                   "></div>
                               </div>
                             </div>
@@ -762,8 +780,8 @@
                       </button>
                     </div>
                     <div v-if="unitJson[unitIndex].chapterInfo[0].taskJson[
-                        itemTaskIndex
-                      ].proVisible
+                      itemTaskIndex
+                    ].proVisible
                       " class="mask">
                       <div class="progressBox">
                         <!-- <div id="closePro" class="closeCss">
@@ -786,19 +804,19 @@
                           }}M</span>
                         </div>
                         <el-progress :text-inside="true" :stroke-width="20" :percentage="unitJson[unitIndex].chapterInfo[0].taskJson[
-                              itemTaskIndex
-                            ].progress
-                              ? unitJson[unitIndex].chapterInfo[0].taskJson[
-                                itemTaskIndex
-                              ].progress
-                              : 0
-                            " style="width: 80%"></el-progress>
+                          itemTaskIndex
+                        ].progress
+                          ? unitJson[unitIndex].chapterInfo[0].taskJson[
+                            itemTaskIndex
+                          ].progress
+                          : 0
+                          " style="width: 80%"></el-progress>
                       </div>
                     </div>
                   </div>
                   <div v-if="unitJson[unitIndex].easy == 1 ||
-                      (unitJson[unitIndex].easy == 5 && itemTask.taskType == 2)
-                      " class="basic_box" style="
+                    (unitJson[unitIndex].easy == 5 && itemTask.taskType == 2)
+                    " class="basic_box" style="
                       margin: 0 auto;
                       min-height: 0;
                       width: 95% !important;
@@ -806,18 +824,18 @@
                     ">
                     <div>
                       <div class="add_chapters_box" v-if="itemTask.chapterData &&
-                          itemTask.chapterData.length == 0
-                          " style="height: 185px"></div>
+                        itemTask.chapterData.length == 0
+                        " style="height: 185px"></div>
                       <div v-else class="add_chapters_box" style="display: flex; flex-direction: column">
                         <div v-for="(item1, index1) in itemTask.chapterData" :key="item1.id">
                           <div class="chapter_upload" @click="getChapterData(
-                                $event,
-                                unitIndex,
-                                index,
-                                index1,
-                                item1.type
-                              )
-                              ">
+                            $event,
+                            unitIndex,
+                            index,
+                            index1,
+                            item1.type
+                          )
+                            ">
                             <div class="chapter_upload_t" style="width: 100%"></div>
                             <div class="chapter_upload_o" style="
                                 position: relative;
@@ -827,9 +845,9 @@
                               <div class="chapter_upload_l" style="padding: 1px 0 0 10px">
                                 <div v-if="item1.type == 2" class="chapter_upload_l_i1"></div>
                                 <div v-if="item1.type == 3 ||
-                                    item1.type == 6 ||
-                                    item1.type == 7
-                                    " class="chapter_upload_l_i5" style="margin-left: 1px"></div>
+                                  item1.type == 6 ||
+                                  item1.type == 7
+                                  " class="chapter_upload_l_i5" style="margin-left: 1px"></div>
                                 <div v-if="item1.type == 8" class="chapter_upload_l_i8" style="margin-left: 1px"></div>
                               </div>
                               <div class="chapter_upload_ic" style="
@@ -841,13 +859,13 @@
                                 ">
                                 <div class="chapter_upload_ic_l"></div>
                                 <div class="chapter_upload_ic_r" style="position: absolute" @click.stop="deleteChapterData(
-                                      $event,
-                                      unitIndex,
-                                      index,
-                                      index1,
-                                      itemTaskIndex
-                                    )
-                                    ">
+                                  $event,
+                                  unitIndex,
+                                  index,
+                                  index1,
+                                  itemTaskIndex
+                                )
+                                  ">
                                   <div></div>
                                 </div>
                               </div>
@@ -858,18 +876,18 @@
                                     height: 14px;
                                     line-height: 12px;
                                   " v-if="item1.type == 2 ||
-                                      item1.type == 3 ||
-                                      item1.type == 7
-                                      ">{{ item1.text }}-</span>
+                                    item1.type == 3 ||
+                                    item1.type == 7
+                                    ">{{ item1.text }}-</span>
                                 <input v-if="item1.type == 2 ||
                                   item1.type == 3 ||
                                   item1.type == 7
                                   " :placeholder="item1.name" @change="updataVideoT(
-      $event,
-      unitIndex,
-      chapterIndex,
-      index1
-    )
+    $event,
+    unitIndex,
+    chapterIndex,
+    index1
+  )
     " style="
                                     border: none;
                                     outline: none;
@@ -900,20 +918,20 @@
                                   " readonly="true" @click="selectLine(itemTaskIndex, index1)" />
                                 <div class="chapter_upload_ud" style="z-index: 99">
                                   <div class="chapter_upload_up" @click="upCd(
-                                      $event,
-                                      unitIndex,
-                                      index,
-                                      itemTaskIndex,
-                                      index1
-                                    )
+                                    $event,
+                                    unitIndex,
+                                    index,
+                                    itemTaskIndex,
+                                    index1
+                                  )
                                     "></div>
                                   <div class="chapter_upload_down" @click="downCd(
-                                      $event,
-                                      unitIndex,
-                                      index,
-                                      itemTaskIndex,
-                                      index1
-                                    )
+                                    $event,
+                                    unitIndex,
+                                    index,
+                                    itemTaskIndex,
+                                    index1
+                                  )
                                     "></div>
                                 </div>
                               </div>
@@ -929,12 +947,12 @@
                         <input type="file"
                           accept="application/pdf, application/.ppt, .ppt, .pptx, .xlsx, .xls, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document"
                           style="display: none" v-if="inputShow" @change="beforeUpload3(
-                              $event,
-                              unitIndex,
-                              3,
-                              itemTaskIndex,
-                              '教学设计'
-                            )
+                            $event,
+                            unitIndex,
+                            3,
+                            itemTaskIndex,
+                            '教学设计'
+                          )
                             " />
                       </button>
                       <button class="info_btn" @click="addImg($event)">
@@ -943,35 +961,35 @@
                         <input type="file"
                           accept="application/pdf, application/.ppt, .ppt, .pptx, .xlsx, .xls, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document"
                           style="display: none" v-if="inputShow" @change="beforeUpload3(
-                              $event,
-                              unitIndex,
-                              3,
-                              itemTaskIndex,
-                              '教学课件'
-                            )
+                            $event,
+                            unitIndex,
+                            3,
+                            itemTaskIndex,
+                            '教学课件'
+                          )
                             " />
                       </button>
                       <button class="info_btn" @click="addImg($event)">
                         教学视频
                         <input type="file" accept="video/mp4, video/quicktime, video/x-msvideo" style="display: none"
                           v-if="inputShow" @change="beforeUpload3(
-                              $event,
-                              unitIndex,
-                              2,
-                              itemTaskIndex,
-                              '教学视频'
-                            )
-                            " />
-                      </button>
-                      <button class="info_btn" @click="addImg($event)">
-                        教学音频
-                        <input type="file" accept="audio/*" style="display: none" v-if="inputShow" @change="beforeUpload3(
                             $event,
                             unitIndex,
                             2,
                             itemTaskIndex,
-                            '教学频'
+                            '教学视频'
                           )
+                            " />
+                      </button>
+                      <button class="info_btn" @click="addImg($event)">
+                        教学音频
+                        <input type="file" accept="audio/*" style="display: none" v-if="inputShow" @change="beforeUpload3(
+                          $event,
+                          unitIndex,
+                          2,
+                          itemTaskIndex,
+                          '教学音频'
+                        )
                           " />
                       </button>
                       <button class="info_btn" @click="addImg($event)">
@@ -979,18 +997,18 @@
                         <input type="file"
                           accept="application/pdf, application/.ppt, .ppt, .pptx, .xlsx, .xls, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document"
                           style="display: none" v-if="inputShow" @change="beforeUpload3(
-                              $event,
-                              unitIndex,
-                              3,
-                              itemTaskIndex,
-                              '学习单'
-                            )
+                            $event,
+                            unitIndex,
+                            3,
+                            itemTaskIndex,
+                            '学习单'
+                          )
                             " />
                       </button>
                     </div>
                     <div v-if="unitJson[unitIndex].chapterInfo[0].taskJson[
-                        itemTaskIndex
-                      ].proVisible
+                      itemTaskIndex
+                    ].proVisible
                       " class="mask">
                       <div class="progressBox">
                         <!-- <div id="closePro" class="closeCss">
@@ -1013,19 +1031,19 @@
                           }}M</span>
                         </div>
                         <el-progress :text-inside="true" :stroke-width="20" :percentage="unitJson[unitIndex].chapterInfo[0].taskJson[
-                              itemTaskIndex
-                            ].progress
-                              ? unitJson[unitIndex].chapterInfo[0].taskJson[
-                                itemTaskIndex
-                              ].progress
-                              : 0
-                            " style="width: 80%"></el-progress>
+                          itemTaskIndex
+                        ].progress
+                          ? unitJson[unitIndex].chapterInfo[0].taskJson[
+                            itemTaskIndex
+                          ].progress
+                          : 0
+                          " style="width: 80%"></el-progress>
                       </div>
                     </div>
                   </div>
                   <div v-if="unitJson[unitIndex].easy != 3 &&
-                      !(unitJson[unitIndex].easy == 5 && itemTask.taskType == 1)
-                      " style="
+                    !(unitJson[unitIndex].easy == 5 && itemTask.taskType == 1)
+                    " style="
                       flex-direction: row;
                       justify-content: flex-start;
                       align-items: center;
@@ -2027,15 +2045,15 @@
           </div>
           <div class="info_btnBox">
             <button class="info_btn" v-if="steps == 1" @click="goTo(
-                '/course?userid=' +
-                userid +
-                '&oid=' +
-                oid +
-                '&org=' +
-                org +
-                '&role=' +
-                role
-              )
+              '/course?userid=' +
+              userid +
+              '&oid=' +
+              oid +
+              '&org=' +
+              org +
+              '&role=' +
+              role
+            )
               ">
               返回课程
             </button>
@@ -2339,7 +2357,7 @@
                 <el-radio-group v-model="testJson.testJson[index1].answer" v-if="testJson.testJson[index1].type == 1">
                   <div class="radioBox">
                     <el-radio v-for="(item2, checkIndex) in testJson.testJson[index1]
-                        .testItem" :key="checkIndex" :label="checkIndex">
+                      .testItem" :key="checkIndex" :label="checkIndex">
                       <div style="margin-right: 10px">
                         选项{{ checkIndex + 1 }}
                       </div>
@@ -2350,12 +2368,12 @@
                           .imgType == 1
                         ">
                         <div class="inImg" @click.stop="previewImg(
-                            testJson.testJson[index1].checkList[checkIndex]
-                              .src
-                          )
+                          testJson.testJson[index1].checkList[checkIndex]
+                            .src
+                        )
                           ">
                           <el-image :src="testJson.testJson[index1].checkList[checkIndex]
-                              .src
+                            .src
                             " lazy />
                           <!-- <img :src="
                             testJson.testJson[index1].checkList[checkIndex]
@@ -2378,7 +2396,7 @@
                   v-if="testJson.testJson[index1].type == '2'">
                   <div class="radioBox">
                     <el-checkbox v-for="(item2, checkIndex1) in testJson.testJson[index1]
-                        .testItem" :key="checkIndex1" :label="checkIndex1">
+                      .testItem" :key="checkIndex1" :label="checkIndex1">
                       <div style="margin-right: 10px">
                         选项{{ checkIndex1 + 1 }}
                       </div>
@@ -2389,12 +2407,12 @@
                           .imgType == 1
                         ">
                         <div class="inImg" @click.stop="previewImg(
-                            testJson.testJson[index1].checkList[checkIndex1]
-                              .src
-                          )
+                          testJson.testJson[index1].checkList[checkIndex1]
+                            .src
+                        )
                           ">
                           <el-image :src="testJson.testJson[index1].checkList[checkIndex1]
-                              .src
+                            .src
                             " lazy />
                           <!-- <img :src="
                             testJson.testJson[index1].checkList[checkIndex1]
@@ -3013,7 +3031,7 @@ import sourceDialog from "./teacherSource/dialog.vue";
 import interVideo from "./interVideo/index.vue";
 
 export default {
-  components: { EditorBar, Mind, Time, Sunburst, SeeBoard, Table, sourceDialog,interVideo },
+  components: { EditorBar, Mind, Time, Sunburst, SeeBoard, Table, sourceDialog, interVideo },
   data() {
     return {
       checkAll: false,
@@ -3071,7 +3089,7 @@ export default {
       dialogVisiblemb: false,
       dialogVisibleInvite: false,
       dialogVisibleSource: false,
-      dialogVisibleVideo:false,
+      dialogVisibleVideo: false,
       isClickColor: 0,
       publicTool: 0,
       searchPeople: "",
@@ -3211,7 +3229,7 @@ export default {
       icode: "",
       easyArray: [2, 4],
       sourceData: {},
-      videoJson:{}
+      videoJson: {}
     };
   },
   computed: {
@@ -3841,33 +3859,33 @@ export default {
       this.$forceUpdate();
       this.dialogVisible7 = true;
     },
-    pasteLine(i){
+    pasteLine(i) {
       navigator.clipboard
-      .readText()
-      .then((v) => {
-        console.log("获取剪贴板成功:", v);
-        const html = v;    
-          const regex = /src="(.*?)"/g;    
-          const match = regex.exec(html);    
-          if (match && match[1]) {    
-              console.log(match[1]);    
-              this.$message.success("粘贴成功")
-              this.unitJson[this.unitIndex].chapterInfo[0].taskJson[
+        .readText()
+        .then((v) => {
+          console.log("获取剪贴板成功:", v);
+          const html = v;
+          const regex = /src="(.*?)"/g;
+          const match = regex.exec(html);
+          if (match && match[1]) {
+            console.log(match[1]);
+            this.$message.success("粘贴成功")
+            this.unitJson[this.unitIndex].chapterInfo[0].taskJson[
               i
-              ].chapterData.push({
-                name: "链接",
-                title: "粘贴链接",
-                url: match[1],
-                type: 8,
-              });
-          } else {    
-              // console.log("未找到包含 src 属性的 iframe");    
-              this.$message.error("没有找到粘贴的链接")
-          }    
-      })
-      .catch((v) => {
-        console.log("获取剪贴板失败: ", v);
-      });
+            ].chapterData.push({
+              name: "链接",
+              title: "粘贴链接",
+              url: match[1],
+              type: 8,
+            });
+          } else {
+            // console.log("未找到包含 src 属性的 iframe");    
+            this.$message.error("没有找到粘贴的链接")
+          }
+        })
+        .catch((v) => {
+          console.log("获取剪贴板失败: ", v);
+        });
     },
     openSource(i) {
       this.lineCount = i;
@@ -5568,7 +5586,7 @@ export default {
         } else {
           var videoJson = {
             video: "",
-            setting:[]
+            setting: []
           };
           this.videoJson = videoJson;
         }
@@ -6095,7 +6113,7 @@ export default {
         this.addTools(45, this.taskCount, this.toolIndex);
       }
     },
-    addVideoJson(videoJson){
+    addVideoJson(videoJson) {
       this.unitJson[this.unitIndex].chapterInfo[0].taskJson[
         this.taskCount
       ].toolChoose[this.toolIndex].videoJson = videoJson;
@@ -6111,12 +6129,12 @@ export default {
     //自动获取剪贴板
     pasteOption() {
       let iframe = top.document.querySelectorAll("#AIChat iframe")[0]
-      if(!iframe){
+      if (!iframe) {
         this.$message.error("请使用AI共创生成题目")
         return;
       }
       let copyData = iframe.contentWindow.copyData
-      if(!copyData || !copyData.selectData.length){
+      if (!copyData || !copyData.selectData.length) {
         this.$message.error("请使用AI共创生成题目")
         return;
       }
@@ -6165,25 +6183,74 @@ export default {
       this.testJson = isTestJson
       this.$forceUpdate();
     },
-    pasteStage(){
+    pasteTask() {
+      let iframe = top.document.querySelectorAll("#AIChat iframe")[0]
+      if(!iframe){
+        this.$message.error("请使用AI共创生成")
+        return;
+      }
+      let copyData = iframe.contentWindow.copyData
+      if(!copyData || !copyData.tasksData || !copyData.tasksData.length){
+        this.$message.error("请使用AI共创生成")
+        return;
+      }
+      let stageTasksData = copyData.tasksData;
+      let taskA = []
+      let tasks = stageTasksData
+      for (var j = 0; j < tasks.length; j++) {
+        taskA.push({
+          task: tasks[j].taskName,
+          taskDetail: tasks[j].taskDecs,
+          chapterData: [],
+          toolText: "",
+          toolChoose: [
+            {
+              tool: [],
+              toolDetail: "",
+              toolType: 0,
+              askCount: 1,
+              askTitle: "",
+              askJson: [{ askstitle: "", askItem: 1, checkList: [] }],
+            },
+          ],
+          isShowTools: false,
+          askCount: 1,
+          isFold: 0,
+          askTitle: "",
+          askJson: [{ askstitle: "", askItem: 1, checkList: [] }],
+          checkJson: [{ checkCount: [], checkPerent: [] }],
+          homeworkList: [],
+        })
+      }
+      this.unitJson[this.unitIndex].chapterInfo[0].taskJson = taskA
+      this.$forceUpdate();
+    },
+    pasteStage() {
       let iframe = top.document.querySelectorAll("#AIChat iframe")[0]
       if(!iframe){
         this.$message.error("请使用AI共创生成")
         return;
       }
       let copyData = iframe.contentWindow.copyData
-      if(!copyData || !copyData.stageTasksData.length || copyData.stageTasksData[0].stage == '' || !copyData.stageTasksData[0].tasks.length){
+      if(!copyData || !copyData.stageData || !copyData.stageData.length){
         this.$message.error("请使用AI共创生成")
         return;
       }
-      let stageTasksData = copyData.stageTasksData;
-      for(var i = 0;i<stageTasksData.length;i++){
-        let taskA = []
-        let tasks = stageTasksData[i].tasks
-        for(var j = 0;j < tasks.length;j++){
-          taskA.push({
-                  task: tasks[j].taskName,
-                  taskDetail: tasks[j].taskDecs,
+      let stageData = copyData.stageData;
+      let stage = []
+      for (var i = 0; i < stageData.length; i++) {
+        stage.push({
+          dyName: stageData[i], //单元标题
+          chapterInfo: [
+            {
+              isread: false,
+              chapterid: this.guid(),
+              title: "",
+              courseName: "",
+              taskJson: [
+                {
+                  task: "",
+                  taskDetail: "",
                   chapterData: [],
                   toolText: "",
                   toolChoose: [
@@ -6193,7 +6260,9 @@ export default {
                       toolType: 0,
                       askCount: 1,
                       askTitle: "",
-                      askJson: [{ askstitle: "", askItem: 1, checkList: [] }],
+                      askJson: [
+                        { askstitle: "", askItem: 1, checkList: [] },
+                      ],
                     },
                   ],
                   isShowTools: false,
@@ -6203,19 +6272,8 @@ export default {
                   askJson: [{ askstitle: "", askItem: 1, checkList: [] }],
                   checkJson: [{ checkCount: [], checkPerent: [] }],
                   homeworkList: [],
-                })
-        }
-        this.unitJson.push({
-          dyName: stageTasksData[i].stage, //单元标题
-          isUpdate: 1,
-          easy: this.unitJson[this.unitJson.length - 1].easy ? 1 : 0,
-          chapterInfo: [
-            {
-              isread: false,
-              chapterid: this.guid(),
-              title: "",
-              courseName: "",
-              taskJson: taskA,
+                },
+              ],
               itemCount: 1,
               fileList1: [],
               video: [],
@@ -6224,8 +6282,24 @@ export default {
               templateArray: [],
             },
           ],
-        });
+        },)
       }
+      let _this = this;
+      _this
+        .$confirm("确定选择智能粘贴模式吗?", "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning",
+        })
+        .then(() => {
+          _this.unitIndex = 0;
+          _this.unitJson = stage;
+          _this.steps++;
+          _this.updateWork();
+        })
+        .catch(() => {
+          return;
+        });
     },
     addAnswer() {
       if (this.answerQ == "") {