lsc 1 year ago
parent
commit
26bcab4b52

BIN
src/assets/icon/new/addStage.png


+ 23 - 22
src/components/pages/addCourse.vue

@@ -510,7 +510,7 @@
                           class="chapter_upload_drag"
                         ></div>
                         <div class="nt_taskBox">
-                          <div class="nt_taskTitle">任务{{ tIndex + 1 }}:</div>
+                          <div class="nt_taskTitle">任务{{ tIndex + 1 }}</div>
                           <div class="nt_taskName">
                             <el-tooltip effect="light" :content="t.task" placement="top">
                               <span>{{ t.task }}</span>
@@ -530,7 +530,7 @@
                         <div v-for="(tool, toolIndex2) in t.toolChoose" :key="toolIndex2"
                           @click="jumpGj(tIndex, toolIndex2)">
                           <div class="gjCss" :class="{ isGjCss: toolIndexType == `gj${tIndex}${toolIndex2}` }">
-                            <div>工具{{ toolIndex2 + 1 }}:</div>
+                            <div>工具{{ toolIndex2 + 1 }}</div>
                             <div>{{ toolsData[tool.tool[0]] && toolsData[tool.tool[0]].name }}</div>
                           </div>
                         </div>
@@ -1232,31 +1232,31 @@
                                 </div>
                                 <div class="chooseWho">
                                   <div :class="itemTool.toolType == 0 ? 'isChooseActive' : ''
-                                    " @click="(itemTool.toolType = 0), (itemTool.isFold3 = true), $forceUpdate()">
+                                    " @click="(itemTool.toolType = 0), (itemTool.isFold3 = false), $forceUpdate()">
                                     互动类
                                   </div>
                                   <div :class="itemTool.toolType == 1 ? 'isChooseActive' : ''
-                                    " @click="(itemTool.toolType = 1), (itemTool.isFold3 = true), $forceUpdate()">
+                                    " @click="(itemTool.toolType = 1), (itemTool.isFold3 = false), $forceUpdate()">
                                     思维类
                                   </div>
                                   <div :class="itemTool.toolType == 6 ? 'isChooseActive' : ''
-                                    " @click="(itemTool.toolType = 6), (itemTool.isFold3 = true), $forceUpdate()">
+                                    " @click="(itemTool.toolType = 6), (itemTool.isFold3 = false), $forceUpdate()">
                                     协作类
                                   </div>
                                   <div :class="itemTool.toolType == 2 ? 'isChooseActive' : ''
-                                    " @click="(itemTool.toolType = 2), (itemTool.isFold3 = true), $forceUpdate()">
+                                    " @click="(itemTool.toolType = 2), (itemTool.isFold3 = false), $forceUpdate()">
                                     测评类
                                   </div>
                                   <div :class="itemTool.toolType == 7 ? 'isChooseActive' : ''
-                                    " @click="(itemTool.toolType = 7), (itemTool.isFold3 = true), $forceUpdate()">
+                                    " @click="(itemTool.toolType = 7), (itemTool.isFold3 = false), $forceUpdate()">
                                     评价类
                                   </div>
                                   <div :class="itemTool.toolType == 3 ? 'isChooseActive' : ''
-                                    " @click="(itemTool.toolType = 3), (itemTool.isFold3 = true), $forceUpdate()">
+                                    " @click="(itemTool.toolType = 3), (itemTool.isFold3 = false), $forceUpdate()">
                                     编程类
                                   </div>
                                   <div :class="itemTool.toolType == 5 ? 'isChooseActive' : ''
-                                    " @click="(itemTool.toolType = 5), (itemTool.isFold3 = true), $forceUpdate()">
+                                    " @click="(itemTool.toolType = 5), (itemTool.isFold3 = false), $forceUpdate()">
                                     学科类
                                   </div>
                                   <!-- <div :class="itemTool.toolType == 4 ? 'isChooseActive' : ''
@@ -1264,7 +1264,7 @@
                               其他
                             </div> -->
                                 </div>
-                                <div class="chapter_upload_ud2" style="z-index: 99;margin:0 0 0 auto" v-if="itemTask.toolChoose.length > 1">
+                                <div class="chapter_upload_ud2" style="z-index: 9;margin:0 0 0 auto" v-if="itemTask.toolChoose.length > 1">
                                   <div class="chapter_upload_up2" @click.stop="
                                       upTool(
                                         $event,
@@ -1282,7 +1282,7 @@
                                       )
                                   ">下移</div>
                               </div>
-                              <div v-if="itemTool.isFold3" class="show_toolD show"
+                              <div v-if="!itemTool.isFold3" class="show_toolD show"
                                 @click="fold3(itemTaskIndex, toolIndex)"
                                 :style="{ margin: itemTask.toolChoose.length > 1 ? '0px 35px 0px 10px' : '0 0 0 auto' }"><img
                                   src="../../assets/icon/new/icon-slide.png" />收起工具栏</div>
@@ -1293,7 +1293,7 @@
                                 v-if="itemTask.toolChoose.length > 1" style="position: absolute; right: 0;top:-5px;"></div>
                               </div>
 
-                              <div style="min-height: 163px" v-show="itemTool.isFold3">
+                              <div style="min-height: 163px" v-show="!itemTool.isFold3">
                                 <div class="toolSort" v-if="itemTool.toolType == 0">
                                   <!-- <div class="tool">
                               <div
@@ -2141,7 +2141,7 @@
                             </div> -->
                                 </div>
                               </div>
-                              <div v-show="itemTool.isFold3">
+                              <div v-show="!itemTool.isFold3">
                                 <textarea rows="2" v-autoHeight="70" type="text" placeholder="添加工具描述" class="binfo_input"
                                   style="margin: 0 0 20px 0; width: 100% !important"
                                   v-model="itemTool.toolDetail"></textarea>
@@ -2693,11 +2693,12 @@
         <div class="check_class_left">
           <div class="check_class_all_box">
             <div class="check_class_left_title">选择班级</div>
-            <div style="display:flex;align-items:center;"></div>
+            <div style="display:flex;align-items:center;margin-left:auto;"><el-checkbox v-model="checkAll"
+                @change="handleCheckAllChange" class="all_check">全选</el-checkbox></div>
           </div>
-          <div class="class_item" style="position:absolute; margin:0" v-if="grade2.length">            
+          <!-- <div class="class_item" style="position:absolute; margin:0" v-if="grade2.length">            
             <el-checkbox v-model="checkAll" @change="handleCheckAllChange">全选</el-checkbox>
-          </div>
+          </div> -->
           <el-checkbox-group v-model="checkboxList2" class="check_class_item" @change="InviteChange" v-if="grade2.length">
             <div v-for="item in grade2" :key="item.id" class="class_item">
               <el-checkbox :label="item.id">
@@ -11017,7 +11018,7 @@ ol {
 }
 
 .tool+.tool {
-  margin-right: 45px;
+  margin-right: 10px;
 }
 
 .whiteBIcon {
@@ -11348,7 +11349,7 @@ ol {
 }
 
 .toolSort>div {
-  margin-right: 45px;
+  margin-right: 10px;
 }
 
 .tools {
@@ -12679,14 +12680,14 @@ ol {
   color: #060E17;
   line-height: 25px;
   font-size: 16px;
-  min-width: 50px;
+  /* min-width: 66px; */
 }
 
 .navTask .nt_taskName {
   /* color: #fff; */
   /* max-width: 130px; */
   /* width: 100%; */
-  max-width: calc(100% - 50px);
+  max-width: calc(100% - 66px);
   white-space: nowrap;
   overflow: hidden;
   text-overflow: ellipsis;
@@ -13166,7 +13167,7 @@ ol {
 }
 
 .all_check>>>.el-checkbox__label {
-  line-height: unset;
+  line-height: 18px;
 }
 
 .check_class_left_title {
@@ -13184,7 +13185,7 @@ ol {
   align-content: flex-start;
 }
 .class_item:first-child {
-  margin: 0 15px 15px 67px;
+  /* margin: 0 15px 15px 67px; */
 }
 .class_item {
   margin: 0 15px 15px 0;

+ 23 - 23
src/components/pages/easy/addCourse.vue

@@ -180,7 +180,7 @@
                           }">
                           <div style="left: 8px;" class="chapter_upload_drag"></div>
                           <div class="nt_taskBox">
-                            <div class="nt_taskTitle">任务{{ tIndex + 1 }}:</div>
+                            <div class="nt_taskTitle">任务{{ tIndex + 1 }}</div>
                             <div class="nt_taskName">
                               <el-tooltip effect="light" :content="t.task" placement="top">
                                 <span>{{ t.task }}</span>
@@ -200,7 +200,7 @@
                           <div v-for="(tool, toolIndex2) in t.toolChoose" :key="toolIndex2"
                             @click="jumpGj(tIndex, toolIndex2)">
                             <div class="gjCss" :class="{ isGjCss: toolIndexType == `gj${tIndex}${toolIndex2}` }">
-                              <div>工具{{ toolIndex2 + 1 }}:</div>
+                              <div>工具{{ toolIndex2 + 1 }}</div>
                               <div>{{ toolsData[tool.tool[0]] && toolsData[tool.tool[0]].name }}</div>
                             </div>
                           </div>
@@ -515,14 +515,14 @@
                               </div>
                               <div class="chooseWho">
                                 <div :class="itemTool.toolType == 0 ? 'isChooseActive' : ''
-                                  " @click="(itemTool.toolType = 0), (itemTool.isFold3 = true), $forceUpdate()">
+                                  " @click="(itemTool.toolType = 0), (itemTool.isFold3 = false), $forceUpdate()">
                                   互动类
                                 </div>
                                 <div :class="itemTool.toolType == 1
                                   ? 'isChooseActive'
                                   : ''
                                   " @click="
-    (itemTool.toolType = 1), (itemTool.isFold3 = true), $forceUpdate()
+    (itemTool.toolType = 1), (itemTool.isFold3 = false), $forceUpdate()
     ">
                                   思维类
                                 </div>
@@ -530,7 +530,7 @@
                                   ? 'isChooseActive'
                                   : ''
                                   " @click="
-    (itemTool.toolType = 6), (itemTool.isFold3 = true), $forceUpdate()
+    (itemTool.toolType = 6), (itemTool.isFold3 = false), $forceUpdate()
     ">
                                   协作类
                                 </div>
@@ -538,7 +538,7 @@
                                   ? 'isChooseActive'
                                   : ''
                                   " @click="
-    (itemTool.toolType = 2), (itemTool.isFold3 = true), $forceUpdate()
+    (itemTool.toolType = 2), (itemTool.isFold3 = false), $forceUpdate()
     ">
                                   测评类
                                 </div>
@@ -546,7 +546,7 @@
                                   ? 'isChooseActive'
                                   : ''
                                   " @click="
-    (itemTool.toolType = 7), (itemTool.isFold3 = true), $forceUpdate()
+    (itemTool.toolType = 7), (itemTool.isFold3 = false), $forceUpdate()
     ">
                                   评价类
                                 </div>
@@ -554,12 +554,12 @@
                                   ? 'isChooseActive'
                                   : ''
                                   " @click="
-    (itemTool.toolType = 3), (itemTool.isFold3 = true), $forceUpdate()
+    (itemTool.toolType = 3), (itemTool.isFold3 = false), $forceUpdate()
     ">
                                   编程类
                                 </div>
                                 <div :class="itemTool.toolType == 5 ? 'isChooseActive' : ''
-                                  " @click="(itemTool.toolType = 5), (itemTool.isFold3 = true), $forceUpdate()">
+                                  " @click="(itemTool.toolType = 5), (itemTool.isFold3 = false), $forceUpdate()">
                                   学科类
                                 </div>
                                 <!-- <div :class="itemTool.toolType == 4 ? 'isChooseActive' : ''
@@ -567,7 +567,7 @@
                                   其他
                                 </div> -->
                               </div>
-                              <div class="chapter_upload_ud2" style="z-index: 99;margin:0 0 0 auto" v-if="itemTask.toolChoose.length > 1">
+                              <div class="chapter_upload_ud2" style="z-index: 9;margin:0 0 0 auto" v-if="itemTask.toolChoose.length > 1">
                                   <div class="chapter_upload_up2" @click.stop="
                                       upTool(
                                         $event,
@@ -585,7 +585,7 @@
                                       )
                                   ">下移</div>
                               </div>
-                              <div v-if="itemTool.isFold3" class="show_toolD show"
+                              <div v-if="!itemTool.isFold3" class="show_toolD show"
                                 @click="fold3(itemTaskIndex, toolIndex)"
                                 :style="{ margin: itemTask.toolChoose.length > 1 ? '0px 35px 0px 10px' : '0 0 0 auto' }"><img
                                   src="../../../assets/icon/new/icon-slide.png" />收起工具栏</div>
@@ -595,7 +595,7 @@
                               <div class="remove" @click="deleteTool(itemTaskIndex, toolIndex)"
                                 v-if="itemTask.toolChoose.length > 1" style="position: absolute; right: 0;top:-5px;"></div>
                             </div>
-                            <div style="min-height: 163px" v-show="itemTool.isFold3">
+                            <div style="min-height: 163px" v-show="!itemTool.isFold3">
                               <div class="toolSort" v-if="itemTool.toolType == 0">
                                 <!-- <div class="tool">
                               <div
@@ -1658,7 +1658,7 @@
                             </div> -->
                               </div>
                             </div>
-                            <div v-show="itemTool.isFold3">
+                            <div v-show="!itemTool.isFold3">
                               <textarea rows="3" type="text" v-autoHeight="87" placeholder="添加工具描述" class="binfo_input"
                                 style="
                                   margin: 0 0 20px 0;
@@ -3625,12 +3625,12 @@
         <div class="check_class_left">
           <div class="check_class_all_box">
             <div class="check_class_left_title">选择班级</div>
-            <!-- <div style="display:flex;align-items:center;"><el-checkbox v-model="checkAll"
-                @change="handleCheckAllChange" class="all_check">全选</el-checkbox></div> -->
+            <div style="display:flex;align-items:center;margin-left:auto;"><el-checkbox v-model="checkAll"
+                @change="handleCheckAllChange" class="all_check">全选</el-checkbox></div>
           </div>
-          <div class="class_item" style="position:absolute; margin:0" v-if="grade2.length">            
+          <!-- <div class="class_item" style="position:absolute; margin:0" v-if="grade2.length">            
             <el-checkbox v-model="checkAll" @change="handleCheckAllChange">全选</el-checkbox>
-          </div>
+          </div> -->
           <el-checkbox-group v-model="checkboxList2" class="check_class_item" @change="InviteChange" v-if="grade2.length">
             <div v-for="item in grade2" :key="item.id" class="class_item">
               <el-checkbox :label="item.id">
@@ -11492,7 +11492,7 @@ ol {
 }
 
 .tool+.tool {
-  margin-right: 45px;
+  margin-right: 10px;
 }
 
 .whiteBIcon {
@@ -11818,7 +11818,7 @@ ol {
 }
 
 .toolSort>div {
-  margin-right: 45px;
+  margin-right: 10px;
 }
 
 .tools {
@@ -13126,14 +13126,14 @@ ol {
   color: #060E17;
   line-height: 25px;
   font-size: 16px;
-  min-width: 50px;
+  /* min-width: 66px; */
 }
 
 .navTask .nt_taskName {
   /* color: #fff; */
   /* max-width: 130px; */
   /* width: 100%; */
-  max-width: calc(100% - 50px);
+  max-width: calc(100% - 66px);
   white-space: nowrap;
   overflow: hidden;
   text-overflow: ellipsis;
@@ -13561,7 +13561,7 @@ ol {
 }
 
 .all_check>>>.el-checkbox__label {
-  line-height: unset;
+  line-height: 18px;
 }
 
 .check_class_left_title {
@@ -13580,7 +13580,7 @@ ol {
 }
 
 .class_item:first-child {
-  margin: 0 15px 15px 67px;
+  /* margin: 0 15px 15px 67px; */
 }
 .class_item {
   margin: 0 15px 15px 0;

+ 24 - 24
src/components/pages/task/addCourse.vue

@@ -177,7 +177,7 @@
                         }">
                           <div style="left: 8px;" class="chapter_upload_drag"></div>
                           <div class="nt_taskBox">
-                            <div class="nt_taskTitle">任务{{ tIndex + 1 }}:</div>
+                            <div class="nt_taskTitle">任务{{ tIndex + 1 }}</div>
                             <div class="nt_taskName">
                               <el-tooltip effect="light" :content="t.task" placement="top">
                                 <span>{{ t.task }}</span>
@@ -197,7 +197,7 @@
                           <div v-for="(tool, toolIndex2) in t.toolChoose" :key="toolIndex2"
                             @click="jumpGj(tIndex, toolIndex2)">
                             <div class="gjCss" :class="{ isGjCss: toolIndexType == `gj${tIndex}${toolIndex2}` }">
-                              <div>工具{{ toolIndex2 + 1 }}:</div>
+                              <div>工具{{ toolIndex2 + 1 }}</div>
                               <div>{{ toolsData[tool.tool[0]] && toolsData[tool.tool[0]].name }}</div>
                             </div>
                           </div>
@@ -517,14 +517,14 @@
                               </div>
                               <div class="chooseWho">
                                 <div :class="itemTool.toolType == 0 ? 'isChooseActive' : ''
-                                  " @click="(itemTool.toolType = 0), (itemTool.isFold3 = true), $forceUpdate()">
+                                  " @click="(itemTool.toolType = 0), (itemTool.isFold3 = false), $forceUpdate()">
                                   互动类
                                 </div>
                                 <div :class="itemTool.toolType == 1
                                     ? 'isChooseActive'
                                     : ''
                                   " @click="
-    (itemTool.toolType = 1), (itemTool.isFold3 = true), $forceUpdate()
+    (itemTool.toolType = 1), (itemTool.isFold3 = false), $forceUpdate()
     ">
                                   思维类
                                 </div>
@@ -532,7 +532,7 @@
                                     ? 'isChooseActive'
                                     : ''
                                   " @click="
-    (itemTool.toolType = 6), (itemTool.isFold3 = true), $forceUpdate()
+    (itemTool.toolType = 6), (itemTool.isFold3 = false), $forceUpdate()
     ">
                                   协作类
                                 </div>
@@ -540,7 +540,7 @@
                                     ? 'isChooseActive'
                                     : ''
                                   " @click="
-    (itemTool.toolType = 2), (itemTool.isFold3 = true), $forceUpdate()
+    (itemTool.toolType = 2), (itemTool.isFold3 = false), $forceUpdate()
     ">
                                   测评类
                                 </div>
@@ -548,7 +548,7 @@
                                     ? 'isChooseActive'
                                     : ''
                                   " @click="
-    (itemTool.toolType = 7), (itemTool.isFold3 = true), $forceUpdate()
+    (itemTool.toolType = 7), (itemTool.isFold3 = false), $forceUpdate()
     ">
                                   评价类
                                 </div>
@@ -556,12 +556,12 @@
                                     ? 'isChooseActive'
                                     : ''
                                   " @click="
-    (itemTool.toolType = 3), (itemTool.isFold3 = true), $forceUpdate()
+    (itemTool.toolType = 3), (itemTool.isFold3 = false), $forceUpdate()
     ">
                                   编程类
                                 </div>
                                 <div :class="itemTool.toolType == 5 ? 'isChooseActive' : ''
-                                  " @click="(itemTool.toolType = 5), (itemTool.isFold3 = true), $forceUpdate()">
+                                  " @click="(itemTool.toolType = 5), (itemTool.isFold3 = false), $forceUpdate()">
                                   学科类
                                 </div>
                                 <!--<div :class="itemTool.toolType == 4 ? 'isChooseActive' : ''
@@ -569,7 +569,7 @@
                                   其他
                                 </div> -->
                               </div>
-                              <div class="chapter_upload_ud2" style="z-index: 99;margin:0 0 0 auto" v-if="itemTask.toolChoose.length > 1">
+                              <div class="chapter_upload_ud2" style="z-index: 9;margin:0 0 0 auto" v-if="itemTask.toolChoose.length > 1">
                                   <div class="chapter_upload_up2" @click.stop="
                                       upTool(
                                         $event,
@@ -587,7 +587,7 @@
                                       )
                                   ">下移</div>
                               </div>
-                              <div v-if="itemTool.isFold3" class="show_toolD show"
+                              <div v-if="!itemTool.isFold3" class="show_toolD show"
                                 @click="fold3(itemTaskIndex, toolIndex)"
                                 :style="{ margin: itemTask.toolChoose.length > 1 ? '0px 35px 0px 10px' : '0 0 0 auto' }"><img
                                   src="../../../assets/icon/new/icon-slide.png" />收起工具栏</div>
@@ -598,7 +598,7 @@
                                 v-if="itemTask.toolChoose.length > 1" style="position: absolute; right: 0;top:-5px;"></div>
                             </div>
 
-                            <div style="min-height: 163px" v-show="itemTool.isFold3">
+                            <div style="min-height: 163px" v-show="!itemTool.isFold3">
                               <div class="toolSort" v-if="itemTool.toolType == 0">
                                 <!-- <div class="tool">
                               <div
@@ -1995,7 +1995,7 @@
                             </div> -->
                               </div>
                             </div>
-                            <div v-show="itemTool.isFold3">
+                            <div v-show="!itemTool.isFold3">
                               <textarea v-autoHeight="87" rows="3" type="text" placeholder="添加工具描述" class="binfo_input"
                                 style="
                                   margin: 0 0 20px 0;
@@ -3934,12 +3934,12 @@
         <div class="check_class_left">
           <div class="check_class_all_box">
             <div class="check_class_left_title">选择班级</div>
-            <!-- <div style="display:flex;align-items:center;"><el-checkbox v-model="checkAll"
-                @change="handleCheckAllChange" class="all_check">全选</el-checkbox></div> -->
+            <div style="display:flex;align-items:center;margin-left:auto;"><el-checkbox v-model="checkAll"
+                @change="handleCheckAllChange" class="all_check">全选</el-checkbox></div>
           </div>
-          <div class="class_item" style="position:absolute; margin:0" v-if="grade2.length">            
+          <!-- <div class="class_item" style="position:absolute; margin:0" v-if="grade2.length">            
             <el-checkbox v-model="checkAll" @change="handleCheckAllChange">全选</el-checkbox>
-          </div>
+          </div> -->
           <el-checkbox-group v-model="checkboxList2" class="check_class_item" @change="InviteChange" v-if="grade2.length">
             <div v-for="item in grade2" :key="item.id" class="class_item">
               <el-checkbox :label="item.id">
@@ -11770,7 +11770,7 @@ ol {
 }
 
 .tool+.tool {
-  margin-right: 45px;
+  margin-right: 10px;
 }
 
 .whiteBIcon {
@@ -12097,7 +12097,7 @@ ol {
 }
 
 .toolSort>div {
-  margin-right: 45px;
+  margin-right: 10px;
 }
 
 .tools {
@@ -13405,14 +13405,14 @@ ol {
   color: #060E17;
   line-height: 25px;
   font-size: 16px;
-  min-width: 50px;
-}
+  /* min-width: 66px; */
+}
 
 .navTask .nt_taskName {
   /* color: #fff; */
   /* max-width: 130px; */
   /* width: 100%; */
-  max-width: calc(100% - 50px);
+  max-width: calc(100% - 66px);
   white-space: nowrap;
   overflow: hidden;
   text-overflow: ellipsis;
@@ -13839,7 +13839,7 @@ ol {
 }
 
 .all_check>>>.el-checkbox__label {
-  line-height: unset;
+  line-height: 18px;
 }
 .check_class_left_title {
   font-size: 16px;
@@ -13857,7 +13857,7 @@ ol {
 }
 
 .class_item:first-child {
-  margin: 0 15px 15px 67px;
+  /* margin: 0 15px 15px 67px; */
 }
 .class_item {
   margin: 0 15px 15px 0;

+ 6 - 3
src/components/pages/test/add/addTest.vue

@@ -24,7 +24,7 @@
                     <div class="r_pub_button_retrun" @click="retrunCourse">返回</div>
                 </div>
                 <div class="step_box">
-                    <setInfo v-if="steps == 1" :oid="oid" :org="org"></setInfo>
+                    <setInfo v-if="steps == 1" :oid="oid" :org="org" :steps.sync="steps" :title.sync="title" :testType.sync="testType" :see.sync="see"></setInfo>
                 </div>
             </div>
         </div>
@@ -43,7 +43,10 @@ export default {
             oid: this.$route.query.oid,
             org: this.$route.query.org,
             role: this.$route.query.role,
-            steps:1,
+            steps: 1,
+            title: "",
+            testType: [],
+            see: false,
         }
     },
     methods: {
@@ -143,7 +146,7 @@ export default {
     align-items: center;
 }
 
-.step_box{
+.step_box {
     width: calc(100% - 40px);
     margin: 0 auto;
     height: calc(100% - 38px);

+ 43 - 9
src/components/pages/test/add/setInfo/index.vue

@@ -11,16 +11,16 @@
                                     <div class="course_input_box">
                                         <div class="bb_courseIcon"><img src="../../../../../assets/icon/new/course.png" />
                                         </div>
-                                        <input type="text" placeholder="请输入课程名称" class="binfo_input" v-model="courseName"
+                                        <input @input="titleChange" type="text" placeholder="请输入课程名称" class="binfo_input" v-model="courseName"
                                             style="border: 1.5px solid rgb(202, 209, 220);margin: 0px 10px 0px 0px;border-radius: 5px;font-weight: 600;padding: 12px 14px 12px 71px;" />
                                         <el-switch v-model="isTeacherSee" active-text="允许学生回答后查看正确答案"
-                                            style="justify-content: center;"></el-switch>
+                                            style="justify-content: center;" @change="seeChange"></el-switch>
                                     </div>
                                 </div>
                             </div>
                             <div class="both">
                                 <div class="choose">
-                                    <div class="all_choose" v-for="(item, index) in CourseType[0]" :key="index">
+                                    <div class="all_choose" v-for="(item, index) in CourseType[0]" :key="index" @change="typeChange">
                                         <span v-if="CourseTypeJson[item.id].length > 0">{{ item.name }}:</span>
                                         <el-checkbox-group v-model="courseTypeId" v-if="CourseTypeJson[item.id].length > 0">
                                             <el-checkbox v-for="item1 in CourseTypeJson[item.id]" :key="item1.id"
@@ -40,11 +40,13 @@
                 <div class="c_info_title">创建评测内容</div>
                 <div class="c_info_box">
                     <div class="c_info_tab">
-                        <span :class="{ active: type == 1 }" @click="type = 1">智能创建</span>
+                        <!-- <span :class="{ active: type == 1 }" @click="type = 1">智能创建</span> -->
                         <span :class="{ active: type == 2 }" @click="type = 2">手动创建</span>
-                        <span :class="{ active: type == 3 }" @click="type = 3">题库导入</span>
+                        <!-- <span :class="{ active: type == 3 }" @click="type = 3">题库导入</span> -->
+                    </div>
+                    <div class="c_info_tab_box">
+                        <manualCreate v-if="type == 2" :manualJson.sync="manualJson"></manualCreate>
                     </div>
-                    <div class="c_info_tab_box"></div>
                 </div>
             </div>
         </div>
@@ -52,7 +54,11 @@
 </template>
 
 <script>
+import manualCreate from './manualCreated.vue';
 export default {
+    components: {
+        manualCreate,
+    },
     props: {
         oid: {
             type: String,
@@ -60,6 +66,15 @@ export default {
         org: {
             type: String,
         },
+        title:{
+            type: String
+        },
+        testType:{
+            type: Array
+        },
+        see:{
+            type: Boolean
+        }
     },
     data() {
         return {
@@ -68,7 +83,8 @@ export default {
             CourseTypeJson: {},
             courseName: "",
             isTeacherSee: false,
-            type: 1,
+            type: 2,
+            manualJson:[]
         }
     },
     methods: {
@@ -144,8 +160,24 @@ export default {
                     console.error(err);
                 });
         },
+        titleChange(){
+            this.$emit("update:title", this.courseName)
+        },
+        typeChange(){
+            this.$emit("update:testType", this.courseTypeId)
+        },
+        seeChange(){
+            this.$emit("update:see", this.isTeacherSee)
+        },
+        depthCopy(s){
+            return JSON.parse(JSON.stringify(s))
+        }
     },
     created() {
+        this.courseTypeId = this.depthCopy(this.testType)
+        this.courseName = this.depthCopy(this.title)
+        this.isTeacherSee = this.depthCopy(this.see)
+
         this.selectAllType();
     }
 }
@@ -156,7 +188,7 @@ export default {
     width: calc(100%);
     background: #F0F2F5;
     overflow: auto;
-    height: calc(100% - 150px);
+    height: calc(100% - 20px);
     margin: 0 auto;
     position: relative;
     box-sizing: border-box;
@@ -365,5 +397,7 @@ export default {
 }
 
 
-.c_info_tab_box {}
+.c_info_tab_box {
+    overflow: hidden;
+}
 </style>

+ 272 - 0
src/components/pages/test/add/setInfo/manualCreated.vue

@@ -0,0 +1,272 @@
+<template>
+    <div class="mc_box">
+        <div class="mc_addBox">
+            <div class="mc_addBox_add">
+                <div class="title">请添加题目类型与数量</div>
+                <div class="select">
+                    <el-select v-model="topicType" placeholder="题目类型" clearable class="e-select">
+                        <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
+                        </el-option>
+                    </el-select>
+                    <el-input v-model="number" placeholder="请输入题目数量" size="normal" clearable @change="numberPan"
+                        class="e-input"></el-input>
+                    <img src="@/assets/icon/new/addStage.png" class="e-img" @click="addCheck" />
+                </div>
+            </div>
+            <div class="mc_addBox_add">
+                <div class="title">请添加题目类型与数量</div>
+                <div class="btnBox">
+                    <el-button type="primary" size="mini" v-for="item in buttonOptions" :key="item.type" class="e-button"
+                        @click="addQtype(item.type)">{{
+                            item.name }}</el-button>
+
+                </div>
+            </div>
+        </div>
+        <div class="mc_checkBox">
+            <div v-for="(item1, index1) in this.checkJson" :key="index1">
+                <div>
+                    <div><span>{{ selectType(item1,index1) }}</span></div>
+                    <div v-if="item1.array && item1.array.length">
+                        <div v-for="(item2, index2) in item1.array" :key="`${index1}-${index2}`">
+                            <div><span>{{ selectType(item2,index2) }}</span></div>
+                            <div v-if="item2.array && item2.array.length">
+                                <div v-for="(item3, index3) in item2.array" :key="`${index1}-${index2}-${index3}`">
+                                    <div><span>{{ selectType(item3,index3) }}</span></div>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+export default {
+    props: {
+        manualJson: {
+            type: Array,
+        },
+    },
+    data() {
+        return {
+            topicType: "",
+            number: "",
+            options: [
+                {
+                    value: 1,
+                    label: "选择题"
+                },
+                {
+                    value: 2,
+                    label: "问答题"
+                },
+                {
+                    value: 3,
+                    label: "填空题"
+                },
+                {
+                    value: 4,
+                    label: "添加文档"
+                }
+            ],
+            options2:{
+                1:"选择题",
+                2:"问答题",
+                3:"填空题",
+                4:"添加文档"
+            },
+            buttonOptions: [
+                { name: "分组", type: 1 },
+                { name: "分页", type: 2 },
+            ],
+            checkJson: [
+                // {
+                //     ttype: 1, //题目分类 1普通题目 2分组 3分页
+                //     type: 1, //题型分类 1选择题, 2问答题 3填空题 4添加文档
+                //     array:[] //题目 
+                // }
+            ],
+            checkC: "",
+        }
+    },
+    computed: {
+        selectType() {
+            return function(item,index){
+                if(item.ttype == 1){
+                    return (index+1)+'、'+this.options2[item.type];
+                }else if(item.ttype == 2){
+                    return `第${index+1}组 (共${item.array.length}题)`;
+                }else if(item.ttype == 3){
+                    return `分页${index+1}`;
+                }
+            } 
+        }
+    },
+    methods: {
+        numberPan() {
+            if (/[^\d]/.test(this.number)) {
+                this.$message.error('请填写数字')
+                this.number = ''
+            }
+        },
+        addCheck() {
+            if (!this.topicType) {
+                this.$message.error("请选择题目类型")
+                return
+            }
+            if (!this.number) {
+                this.$message.error("请填写题目数量")
+                return
+            }
+            if (this.checkC) {
+
+            } else {
+                let type = 1
+                if (this.checkJson.length > 0) {
+                    for (var i = 0; i < this.checkJson.length; i++) {
+                        if (this.checkJson[i].ttype == 2) {
+                            type = 2
+                        } else if (this.checkJson[i].ttype == 3) {
+                            type = 3
+                        }
+                    }
+                }
+                if (type == 1) {
+                    for (var i = 0; i < this.number; i++) {
+                        this.checkJson.push({
+                            ttype: 1,
+                            type: this.topicType,
+                        })
+                    }
+                } else if (type == 3) {
+                    this.$message.error("请选中分页或分组添加题目")
+                    return
+                }
+
+            }
+            this.topicType = ""
+            this.number = ""
+            this.$emit("update:manualJson", this.checkJson)
+        },
+        addQtype(type) {
+            if (type == 1) {
+                if (this.checkC) {
+
+                } else {
+                    let type = 1
+                    if (this.checkJson.length > 0) {
+                        for (var i = 0; i < this.checkJson.length; i++) {
+                            if (this.checkJson[i].ttype == 1) {
+                                type = 2
+                            } else if (this.checkJson[i].ttype == 3) {
+                                type = 3
+                            }
+                        }
+                    }
+                    if (type == 1) {
+                        this.checkJson.push({
+                            ttype: 2,
+                            array: []
+                        })
+                    } else if (type == 2) {
+                        this.checkJson = [{
+                            ttype: 2,
+                            array: this.depthCopy(this.checkJson)
+                        }]
+                    } else if (type == 3) {
+                        this.$message.error("请选中分页添加分组")
+                        return
+                    }
+                }
+            } else if (type == 2) {
+                let type = 1
+                if (this.checkJson.length > 0) {
+                    for (var i = 0; i < this.checkJson.length; i++) {
+                        if (this.checkJson[i].ttype == 1 || this.checkJson[i].ttype == 2) {
+                            type = 2
+                        }
+                    }
+                }
+                if (type == 1) {
+                    this.checkJson.push({
+                        ttype: 3,
+                        array: []
+                    })
+                } else {
+                    this.checkJson = [{
+                        ttype: 3,
+                        array: this.depthCopy(this.checkJson)
+                    }]
+                }
+
+            }
+            this.$emit("update:manualJson", this.checkJson)
+        },
+        depthCopy(s) {
+            return JSON.parse(JSON.stringify(s))
+        }
+    },
+    created() {
+        this.checkJson = this.depthCopy(this.manualJson);
+    },
+}
+</script>
+
+<style scoped>
+.mc_box {
+    width: 90%;
+    margin: 10px auto;
+    display: flex;
+
+}
+
+.mc_addBox {
+    width: 400px;
+    border: 1px solid #898989;
+    border-radius: 8px;
+    padding: 20px 20px;
+    box-sizing: border-box;
+    height: 350px;
+}
+
+.mc_addBox_add {}
+
+.mc_addBox_add+.mc_addBox_add {
+    margin-top: 10px;
+}
+
+.mc_addBox_add .title {
+    margin-bottom: 10px;
+}
+
+.mc_addBox_add .select {
+    display: flex;
+    align-items: center;
+}
+
+.mc_addBox_add .btnBox {}
+
+.mc_addBox_add .select .e-select {}
+
+.mc_addBox_add .select .e-input {
+    margin-left: 10px;
+}
+
+.mc_addBox_add .select .e-img {
+    cursor: pointer;
+    width: 20px;
+    margin-left: 10px;
+}
+
+.mc_addBox_add .btnBox .e-button {}
+
+.mc_checkBox {
+    width: calc(100% - 420px);
+    margin-left: 20px;
+    border: 1px solid #898989;
+    border-radius: 8px;
+}
+</style>