lsc 1 年之前
父节点
当前提交
944d783a0a

+ 1 - 1
dist/index.html

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

文件差异内容过多而无法显示
+ 0 - 0
dist/static/css/app.a6bd67bdda579db8a86715ecc0ec5c67.css


文件差异内容过多而无法显示
+ 0 - 0
dist/static/css/app.a6bd67bdda579db8a86715ecc0ec5c67.css.map


文件差异内容过多而无法显示
+ 0 - 0
dist/static/css/app.b3dc1ffedf99e58b877061a7d3296c2f.css


文件差异内容过多而无法显示
+ 0 - 0
dist/static/css/app.b3dc1ffedf99e58b877061a7d3296c2f.css.map


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/app.a5fb0048c308bd1dc202.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/app.a5fb0048c308bd1dc202.js.map


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/app.e6dbdd01e69e44966e74.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/manifest.3512a67a6213c2df4180.js.map


+ 115 - 55
src/components/pages/addCourse.vue

@@ -223,7 +223,7 @@
                 <div class="c_info_title">课程简要描述</div>
                 <div style="width: 95%; padding: 0 0px 0 20px">
                   <div style="width: 55%">
-                    <textarea rows="6" class="binfo_input binfo_textarea" cols v-model="courseText"></textarea>
+                    <textarea rows="6" class="binfo_input binfo_textarea" cols v-model="courseText" placeholder="请输入课程简要描述"></textarea>
                   </div>
                 </div>
               </div>
@@ -290,7 +290,7 @@
                           <div class="type_content">
                             <span :class="{ active: typeMode == 1 }" @click="OtherMb(1)">目标树</span>
                             <span :class="{ active: typeMode == 2 }" @click="OtherMb(2)">目标罗盘</span>
-                            <span :class="{ active: typeMode == 3 }" @click="OtherMb(3)">目标看板</span>
+                            <!-- <span :class="{ active: typeMode == 3 }" @click="OtherMb(3)">目标看板</span> -->
                           </div>
                         </div>
                         <div class="e_add_list_pbox_content">
@@ -505,7 +505,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>
@@ -692,33 +692,8 @@
                         flex-direction: row;
                         justify-content: space-between;
                         align-items: center;
-                      " :style="{ margin: !itemTask.isFoldchapter ? '20px 0 0' : '20px 0 0' }">
+                      " :style="{ margin: !itemTask.isFoldchapter ? '20px 0 10px' : '20px 0 0' }">
                             <div style="margin-bottom:10px" class="lineTitle">学习内容</div>
-                            <div class="add_info_box">
-                              <button class="c_pub_button_add pub_btn_add_img" @click="addImg($event)">
-                                文件
-                                <input type="file" accept="*" style="display: none" v-if="inputShow" @change="
-                                  beforeUpload2($event, unitIndex, 13, itemTaskIndex)
-                                  " />
-                              </button>
-                              <button class="c_pub_button_add pub_btn_add_img" @click="addAttText(itemTaskIndex)">
-                                图文
-                              </button>
-                              <button class="c_pub_button_add pub_btn_add_img" @click="openLine(itemTaskIndex)">
-                                链接
-                              </button>
-                              <button class="c_pub_button_add pub_btn_add_img" @click="pasteLine(itemTaskIndex)">
-                                代码
-                              </button>
-                              <button class="c_pub_button_add pub_btn_add_img" @click="openSource(itemTaskIndex)">
-                                资源
-                              </button>
-                              <!-- <button class="info_btn" @click="addImg($event)">
-                          其他附件
-                          <input type="file" accept="*" style="display: none" v-if="inputShow" @change="beforeUpload2($event, unitIndex, 12, itemTaskIndex)
-                            " />
-                        </button> -->
-                            </div>
                             <div style="margin-bottom:10px" v-if="!itemTask.isFoldchapter" class="show_taskD show"
                               @click="foldC(itemTaskIndex)"><img src="../../assets/icon/new/icon-slide.png" />收起学习内容</div>
                             <div style="margin-bottom:10px" v-else class="show_taskD" @click="foldC(itemTaskIndex)"><img
@@ -880,6 +855,26 @@
                               </div>
                             </div>
                           </div>
+                          <div class="add_info_box" style="margin: 10px 0 0" v-if="!itemTask.isFoldchapter">
+                            <button class="c_pub_button_add pub_btn_add_img" @click="addImg($event)">
+                              文件
+                              <input type="file" accept="*" style="display: none" v-if="inputShow" @change="
+                                beforeUpload2($event, unitIndex, 13, itemTaskIndex)
+                                " />
+                            </button>
+                            <button class="c_pub_button_add pub_btn_add_img" @click="addAttText(itemTaskIndex)">
+                              图文
+                            </button>
+                            <button class="c_pub_button_add pub_btn_add_img" @click="openLine(itemTaskIndex)">
+                              链接
+                            </button>
+                            <button class="c_pub_button_add pub_btn_add_img" @click="pasteLine(itemTaskIndex)">
+                              代码
+                            </button>
+                            <button class="c_pub_button_add pub_btn_add_img" @click="openSource(itemTaskIndex)">
+                              资源
+                            </button>
+                          </div>
                           <div v-if="unitJson[unitIndex].chapterInfo[0].taskJson[
                             itemTaskIndex
                           ].proVisible
@@ -2129,7 +2124,7 @@
                               </div>
                               <div>添加工具</div>
                             </div> -->
-                            <button class="c_pub_button_add pub_btn_tool_img" @click="addToolFun(itemTaskIndex)" style="margin: 0 auto 0">
+                            <button class="c_pub_button_add pub_btn_tool_img" @click="addToolFun(itemTaskIndex)" style="margin: 0 auto;padding: 0 30px;height: 45px;">
                               添加工具
                             </button>
                           </div>
@@ -2424,7 +2419,7 @@
                                     <div class="type_content">
                                       <span :class="{ active: typeMode == 1 }" @click="OtherMb(1)">目标树</span>
                                       <span :class="{ active: typeMode == 2 }" @click="OtherMb(2)">目标罗盘</span>
-                                      <span :class="{ active: typeMode == 3 }" @click="OtherMb(3)">目标看板</span>
+                                      <!-- <span :class="{ active: typeMode == 3 }" @click="OtherMb(3)">目标看板</span> -->
                                     </div>
                                   </div>
                                   <div class="e_add_list_pbox_content">
@@ -2662,7 +2657,11 @@
           </el-tooltip>
         </div>
         <div class="check_class_left">
-          <div class="check_class_left_title">选择班级</div>
+          <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>
           <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">
@@ -4205,16 +4204,6 @@ export default {
     scrollChange() {
       this.rightBoxHeight = $(".rightBox")[0].scrollHeight - 80;
     },
-    handleCheckAllChange(val) {
-      this.checkedCities = val ? cityOptions : [];
-      this.isIndeterminate = false;
-    },
-    handleCheckedCitiesChange(value) {
-      let checkedCount = value.length;
-      this.checkAll = checkedCount === this.cities.length;
-      this.isIndeterminate =
-        checkedCount > 0 && checkedCount < this.cities.length;
-    },
     addHw(e) {
       var el = e.currentTarget;
       el.getElementsByTagName("input")[0].click();
@@ -4359,6 +4348,7 @@ export default {
         .$confirm("是否保存已编辑内容?", "提示", {
           confirmButtonText: "保存",
           cancelButtonText: "不保存",
+          distinguishCancelAndClose: true,   
           type: "warning",
         })
         .then(() => {
@@ -4384,17 +4374,20 @@ export default {
             }
           }
         })
-        .catch(() => {
-          this.goTo(
-            "/course?userid=" +
-            this.userid +
-            "&oid=" +
-            this.oid +
-            "&org=" +
-            this.org +
-            "&role=" +
-            this.role
-          );
+        .catch((v) => {
+          console.log(v)
+          if(v == "cancel"){
+              this.goTo(
+              "/course?userid=" +
+              this.userid +
+              "&oid=" +
+              this.oid +
+              "&org=" +
+              this.org +
+              "&role=" +
+              this.role
+            );
+          }
         });
     },
     lastSteps() {
@@ -5840,6 +5833,19 @@ export default {
           }
           this.grade2 = res.data[0];
           this.classJuri = res.data[0];
+          let _check = []
+          let _check2 = []
+          for (var i = 0; i < this.grade2.length; i++) {
+            var gid = this.grade2[i].id
+            _check.push(gid)
+          }
+          for (var i = 0; i < this.checkboxList2.length; i++) {
+            var _id = this.checkboxList2[i]
+              if (_check.indexOf(_id) !== -1) {
+                _check2.push(_id)
+              }
+          }
+          this.checkAll = _check2.length === _check.length;
         })
         .catch((err) => {
           this.isLoading = false;
@@ -8822,6 +8828,19 @@ export default {
     },
     InviteChange(val) {
       console.log(val);
+      let _check = []
+      let _check2 = []
+      for (var i = 0; i < this.grade2.length; i++) {
+        var gid = this.grade2[i].id
+        _check.push(gid)
+      }
+      for (var i = 0; i < this.checkboxList2.length; i++) {
+        var _id = this.checkboxList2[i]
+          if (_check.indexOf(_id) !== -1) {
+            _check2.push(_id)
+          }
+      }
+      this.checkAll = _check2.length === _check.length;
       return;
       let array = JSON.parse(JSON.stringify(val));
       this.inviteCode = this.inviteCode.filter((el) => {
@@ -8834,6 +8853,31 @@ export default {
         this.getInviteCode(array[i]);
       }
     },
+    handleCheckAllChange(val) {
+      if (val) {
+        for (var i = 0; i < this.grade2.length; i++) {
+          var gid = this.grade2[i].id
+          if (this.checkboxList2.indexOf(gid) === -1) {
+            this.checkboxList2.push(gid)
+          }
+        }
+      } else {
+        let _check = []
+        let _check2 = []
+        for (var i = 0; i < this.grade2.length; i++) {
+          var gid = this.grade2[i].id
+          _check.push(gid)
+        }
+        for (var i = 0; i < this.checkboxList2.length; i++) {
+          var _id = this.checkboxList2[i]
+          if (_check.indexOf(_id) === -1) {
+            _check2.push(_id)
+          }
+        }
+        this.checkboxList2 = _check2
+      }
+      this.isIndeterminate = false;
+    },
     async getInviteCode(cid) {
       let code = this.randomNumber();
       let params = {
@@ -9692,7 +9736,7 @@ export default {
   border: 1.5px solid #CAD1DC;
   font-size: 16px;
   resize: none;
-  background: #f6f6f6;
+  /* background: #f6f6f6; */
   font-family: 'Microsoft YaHei';
 }
 
@@ -12374,7 +12418,7 @@ ol {
   color: #060E17;
   line-height: 25px;
   font-size: 16px;
-  min-width: 45px;
+  min-width: 50px;
 }
 
 .navTask .nt_taskName {
@@ -12848,6 +12892,22 @@ ol {
   box-sizing: border-box;
 }
 
+.check_class_all_box {
+  display: flex;
+  margin-bottom: 10px;
+}
+
+.all_check {
+  display: flex;
+  align-items: center;
+  padding: 2px 0 0;
+  margin-left: 10px;
+}
+
+.all_check>>>.el-checkbox__label {
+  line-height: unset;
+}
+
 .check_class_left_title {
   font-size: 16px;
   font-weight: 700;

+ 124 - 59
src/components/pages/easy/addCourse.vue

@@ -169,14 +169,14 @@
                         .taskJson" :key="tIndex">
                         <div @dragstart="dragTaskStart(t, tIndex)" @dragover.prevent="dragTaskOver(tIndex)"
                           @dragend="dragTaskEnd()" draggable @click="goToTask(tIndex)" class="navTask" :class="{
-                          isNavTask:
-                            isClickColor > 0 && isClickColor == tIndex + 1,
-                          isNavOpen: t.toolOpen,
-                          // dragOver: newIndex === tIndex
-                        }">
+                            isNavTask:
+                              isClickColor > 0 && isClickColor == tIndex + 1,
+                            isNavOpen: t.toolOpen,
+                            // dragOver: newIndex === tIndex
+                          }">
                           <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>
@@ -222,30 +222,6 @@
                             align-items: center;
                           ">
                           <div class="lineTitle" style="margin-bottom:10px">学习内容</div>
-                          <div class="add_info_box">
-                            <button class="c_pub_button_add pub_btn_add_img" @click="addImg($event)">
-                              文件
-                              <input type="file" accept="*" style="display: none" v-if="inputShow"
-                                @change="beforeUpload2($event, unitIndex, 13, 0)" />
-                            </button>
-                            <button class="c_pub_button_add pub_btn_add_img" @click="addAttText(0)">
-                              图文
-                            </button>
-                            <button class="c_pub_button_add pub_btn_add_img" @click="openLine(0)">
-                              链接
-                            </button>
-                            <button class="c_pub_button_add pub_btn_add_img" @click="pasteLine(0)">
-                              代码
-                            </button>
-                            <button class="c_pub_button_add pub_btn_add_img" @click="openSource(0)">
-                              资源
-                            </button>
-                            <!-- <button class="info_btn" @click="addImg($event)">
-                              其他附件
-                              <input type="file" accept="*" style="display: none" v-if="inputShow" @change="beforeUpload2($event, unitIndex, 12, itemTaskIndex)
-                                " />
-                            </button> -->
-                          </div>
                           <div style="margin-bottom:10px" v-if="!item.taskJson[0].isFoldchapter" class="show_taskD show"
                             @click="foldC(0)"><img src="../../../assets/icon/new/icon-slide.png" />收起学习内容</div>
                           <div style="margin-bottom:10px" v-else class="show_taskD" @click="foldC(0)"><img
@@ -404,6 +380,30 @@
                             </div>
                           </div>
                         </div>
+                        <div class="add_info_box" style="margin:10px 0 0" v-if="!item.taskJson[0].isFoldchapter">
+                            <button class="c_pub_button_add pub_btn_add_img" @click="addImg($event)">
+                              文件
+                              <input type="file" accept="*" style="display: none" v-if="inputShow"
+                                @change="beforeUpload2($event, unitIndex, 13, 0)" />
+                            </button>
+                            <button class="c_pub_button_add pub_btn_add_img" @click="addAttText(0)">
+                              图文
+                            </button>
+                            <button class="c_pub_button_add pub_btn_add_img" @click="openLine(0)">
+                              链接
+                            </button>
+                            <button class="c_pub_button_add pub_btn_add_img" @click="pasteLine(0)">
+                              代码
+                            </button>
+                            <button class="c_pub_button_add pub_btn_add_img" @click="openSource(0)">
+                              资源
+                            </button>
+                            <!-- <button class="info_btn" @click="addImg($event)">
+                              其他附件
+                              <input type="file" accept="*" style="display: none" v-if="inputShow" @change="beforeUpload2($event, unitIndex, 12, itemTaskIndex)
+                                " />
+                            </button> -->
+                          </div>
                         <div v-if="unitJson[unitIndex].chapterInfo[0].taskJson[0]
                           .proVisible
                           " class="mask">
@@ -1646,7 +1646,8 @@
                             </div>
                             <div>添加工具</div>
                           </div> -->
-                          <button class="c_pub_button_add pub_btn_tool_img" @click="addToolFun(itemTaskIndex)" style="margin: 0 auto 0">
+                          <button class="c_pub_button_add pub_btn_tool_img" @click="addToolFun(itemTaskIndex)"
+                            style="margin: 0 auto;padding: 0 30px;height: 45px;">
                             添加工具
                           </button>
                         </div>
@@ -3597,7 +3598,11 @@
           </el-tooltip>
         </div>
         <div class="check_class_left">
-          <div class="check_class_left_title">选择班级</div>
+          <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>
           <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">
@@ -5056,16 +5061,6 @@ export default {
         this.heightPx = $(".rightBox")[0].offsetHeight - 130 + 'px'
       }
     },
-    handleCheckAllChange(val) {
-      this.checkedCities = val ? cityOptions : [];
-      this.isIndeterminate = false;
-    },
-    handleCheckedCitiesChange(value) {
-      let checkedCount = value.length;
-      this.checkAll = checkedCount === this.cities.length;
-      this.isIndeterminate =
-        checkedCount > 0 && checkedCount < this.cities.length;
-    },
     addHw(e) {
       var el = e.currentTarget;
       el.getElementsByTagName("input")[0].click();
@@ -5209,6 +5204,7 @@ export default {
         .$confirm("是否保存已编辑内容?", "提示", {
           confirmButtonText: "保存",
           cancelButtonText: "不保存",
+          distinguishCancelAndClose: true,   
           type: "warning",
         })
         .then(() => {
@@ -5232,17 +5228,20 @@ export default {
             }
           }
         })
-        .catch(() => {
-          this.goTo(
-            "/course?userid=" +
-            this.userid +
-            "&oid=" +
-            this.oid +
-            "&org=" +
-            this.org +
-            "&role=" +
-            this.role
-          );
+        .catch((v) => {
+          console.log(v)
+          if(v == "cancel"){
+              this.goTo(
+              "/course?userid=" +
+              this.userid +
+              "&oid=" +
+              this.oid +
+              "&org=" +
+              this.org +
+              "&role=" +
+              this.role
+            );
+          }
         });
     },
     nextSteps() {
@@ -6502,6 +6501,19 @@ export default {
           }
           this.grade2 = res.data[0];
           this.classJuri = res.data[0];
+          let _check = []
+          let _check2 = []
+          for (var i = 0; i < this.grade2.length; i++) {
+            var gid = this.grade2[i].id
+            _check.push(gid)
+          }
+          for (var i = 0; i < this.checkboxList2.length; i++) {
+            var _id = this.checkboxList2[i]
+              if (_check.indexOf(_id) !== -1) {
+                _check2.push(_id)
+              }
+          }
+          this.checkAll = _check2.length === _check.length;
         })
         .catch((err) => {
           this.isLoading = false;
@@ -9426,6 +9438,19 @@ export default {
     },
     InviteChange(val) {
       console.log(val);
+      let _check = []
+      let _check2 = []
+      for (var i = 0; i < this.grade2.length; i++) {
+        var gid = this.grade2[i].id
+        _check.push(gid)
+      }
+      for (var i = 0; i < this.checkboxList2.length; i++) {
+        var _id = this.checkboxList2[i]
+          if (_check.indexOf(_id) !== -1) {
+            _check2.push(_id)
+          }
+      }
+      this.checkAll = _check2.length === _check.length;
       return;
       let array = JSON.parse(JSON.stringify(val));
       this.inviteCode = this.inviteCode.filter((el) => {
@@ -9438,6 +9463,31 @@ export default {
         this.getInviteCode(array[i]);
       }
     },
+    handleCheckAllChange(val) {
+      if (val) {
+        for (var i = 0; i < this.grade2.length; i++) {
+          var gid = this.grade2[i].id
+          if (this.checkboxList2.indexOf(gid) === -1) {
+            this.checkboxList2.push(gid)
+          }
+        }
+      } else {
+        let _check = []
+        let _check2 = []
+        for (var i = 0; i < this.grade2.length; i++) {
+          var gid = this.grade2[i].id
+          _check.push(gid)
+        }
+        for (var i = 0; i < this.checkboxList2.length; i++) {
+          var _id = this.checkboxList2[i]
+          if (_check.indexOf(_id) === -1) {
+            _check2.push(_id)
+          }
+        }
+        this.checkboxList2 = _check2
+      }
+      this.isIndeterminate = false;
+    },
     async getInviteCode(cid) {
       let code = this.randomNumber();
       let params = {
@@ -9674,7 +9724,7 @@ export default {
       this.newIndex = i;
     },
     dragTaskEnd() {
-      if(this.newIndex == this.oldIndex){
+      if (this.newIndex == this.oldIndex) {
         return;
       }
       this.$confirm(
@@ -9689,7 +9739,7 @@ export default {
         .then(() => {
           let newItems = [...this.unitJson[this.unitIndex].chapterInfo[0].taskJson];
           let chapterData = []
-          if(this.oldIndex == 0){
+          if (this.oldIndex == 0) {
             chapterData = newItems[this.oldIndex].chapterData
             newItems[this.oldIndex].chapterData = []
           }
@@ -9697,7 +9747,7 @@ export default {
           newItems.splice(this.oldIndex, 1);
           // 在列表中目标位置增加新的节点
           newItems.splice(this.newIndex, 0, this.oldData);
-          if(this.oldIndex == 0){
+          if (this.oldIndex == 0) {
             newItems[0].chapterData = chapterData
           }
           this.unitJson[this.unitIndex].chapterInfo[0].taskJson = [...newItems];
@@ -12851,7 +12901,7 @@ ol {
   background-image: url(../../../assets/icon/new/icon_arrow_a.png) !important;
 }
 
-.dragOver{
+.dragOver {
   background: red !important;
 }
 
@@ -12893,7 +12943,7 @@ ol {
   color: #060E17;
   line-height: 25px;
   font-size: 16px;
-  min-width: 45px;
+  min-width: 50px;
 }
 
 .navTask .nt_taskName {
@@ -13315,10 +13365,25 @@ ol {
   box-sizing: border-box;
 }
 
+.check_class_all_box {
+  display: flex;
+  margin-bottom: 10px;
+}
+
+.all_check {
+  display: flex;
+  align-items: center;
+  padding: 2px 0 0;
+  margin-left: 10px;
+}
+
+.all_check>>>.el-checkbox__label {
+  line-height: unset;
+}
+
 .check_class_left_title {
   font-size: 16px;
   font-weight: 700;
-  margin-bottom: 10px;
 }
 
 .check_class_item {

+ 3 - 2
src/components/pages/synergyCourse/group/group.vue

@@ -157,12 +157,13 @@
                                     {{ g.name }}
                                 </div>
                                 <div>
-                                    <div v-if="courseDetail.userid == userid && groupJson.islock == 2"
+                                    <!-- && groupJson.islock == 2 -->
+                                    <div v-if="courseDetail.userid == userid"
                                         @click="deleteGroupChair(g.id, gindex)">
                                         移除组员
                                     </div>
                                     <div @click="selectGroup(g.id)"
-                                        v-else-if="groupStudentUid && groupStudentUid[g.id].indexOf(userid) == -1 && courseDetail.userid !== userid">
+                                        v-if="groupStudentUid && groupStudentUid[g.id].indexOf(userid) == -1 && courseDetail.userid !== userid">
                                         加入分组
                                     </div>
                                     <div @click="

+ 113 - 55
src/components/pages/task/addCourse.vue

@@ -172,7 +172,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>
@@ -272,36 +272,6 @@
                             align-items: center;
                           ">
                           <div class="lineTitle" style="margin-bottom:10px">学习内容</div>
-                          <div class="add_info_box">
-                            <button class="c_pub_button_add pub_btn_add_img" @click="addImg($event)">
-                              文件
-                              <input type="file" accept="*" style="display: none" v-if="inputShow" @change="
-                                beforeUpload2(
-                                  $event,
-                                  unitIndex,
-                                  13,
-                                  itemTaskIndex
-                                )
-                                " />
-                            </button>
-                            <button class="c_pub_button_add pub_btn_add_img" @click="addAttText(itemTaskIndex)">
-                              图文
-                            </button>
-                            <button class="c_pub_button_add pub_btn_add_img" @click="openLine(itemTaskIndex)">
-                              链接
-                            </button>
-                            <button class="c_pub_button_add pub_btn_add_img" @click="pasteLine(itemTaskIndex)">
-                              代码
-                            </button>
-                            <button class="c_pub_button_add pub_btn_add_img" @click="openSource(itemTaskIndex)">
-                              资源
-                            </button>
-                            <!-- <button class="info_btn" @click="addImg($event)">
-                              其他附件
-                              <input type="file" accept="*" style="display: none" v-if="inputShow" @change="beforeUpload2($event, unitIndex, 12, itemTaskIndex)
-                                " />
-                            </button> -->
-                          </div>
                           <div style="margin-bottom:10px" v-if="!itemTask.isFoldchapter" class="show_taskD show"
                             @click="foldC(itemTaskIndex)"><img src="../../../assets/icon/new/icon-slide.png" />收起学习内容
                           </div>
@@ -461,6 +431,30 @@
                             </div>
                           </div>
                         </div>
+                        <div class="add_info_box" style="margin:10px 0 0" v-if="!itemTask.isFoldchapter">
+                            <button class="c_pub_button_add pub_btn_add_img" @click="addImg($event)">
+                              文件
+                              <input type="file" accept="*" style="display: none" v-if="inputShow"
+                                @change="beforeUpload2($event, unitIndex, 13, 0)" />
+                            </button>
+                            <button class="c_pub_button_add pub_btn_add_img" @click="addAttText(0)">
+                              图文
+                            </button>
+                            <button class="c_pub_button_add pub_btn_add_img" @click="openLine(0)">
+                              链接
+                            </button>
+                            <button class="c_pub_button_add pub_btn_add_img" @click="pasteLine(0)">
+                              代码
+                            </button>
+                            <button class="c_pub_button_add pub_btn_add_img" @click="openSource(0)">
+                              资源
+                            </button>
+                            <!-- <button class="info_btn" @click="addImg($event)">
+                              其他附件
+                              <input type="file" accept="*" style="display: none" v-if="inputShow" @change="beforeUpload2($event, unitIndex, 12, itemTaskIndex)
+                                " />
+                            </button> -->
+                          </div>
                         <div v-if="unitJson[unitIndex].chapterInfo[0].taskJson[
                             itemTaskIndex
                           ].proVisible
@@ -1988,7 +1982,7 @@
                             </div>
                             <div>添加工具</div>
                           </div> -->
-                          <button class="c_pub_button_add pub_btn_tool_img" @click="addToolFun(itemTaskIndex)" style="margin: 0 auto 0">
+                          <button class="c_pub_button_add pub_btn_tool_img" @click="addToolFun(itemTaskIndex)" style="margin: 0 auto;padding: 0 30px;height: 45px;">
                             添加工具
                           </button>
                         </div>
@@ -3912,7 +3906,11 @@
           </el-tooltip>
         </div>
         <div class="check_class_left">
-          <div class="check_class_left_title">选择班级</div>
+          <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>
           <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">
@@ -5394,16 +5392,6 @@ export default {
         this.heightPx = $(".rightBox")[0].offsetHeight - 130 + 'px'
       }
     },
-    handleCheckAllChange(val) {
-      this.checkedCities = val ? cityOptions : [];
-      this.isIndeterminate = false;
-    },
-    handleCheckedCitiesChange(value) {
-      let checkedCount = value.length;
-      this.checkAll = checkedCount === this.cities.length;
-      this.isIndeterminate =
-        checkedCount > 0 && checkedCount < this.cities.length;
-    },
     addHw(e) {
       var el = e.currentTarget;
       el.getElementsByTagName("input")[0].click();
@@ -5547,6 +5535,7 @@ export default {
         .$confirm("是否保存已编辑内容?", "提示", {
           confirmButtonText: "保存",
           cancelButtonText: "不保存",
+          distinguishCancelAndClose: true,   
           type: "warning",
         })
         .then(() => {
@@ -5570,17 +5559,20 @@ export default {
             }
           }
         })
-        .catch(() => {
-          this.goTo(
-            "/course?userid=" +
-            this.userid +
-            "&oid=" +
-            this.oid +
-            "&org=" +
-            this.org +
-            "&role=" +
-            this.role
-          );
+        .catch((v) => {
+          console.log(v)
+          if(v == "cancel"){
+              this.goTo(
+              "/course?userid=" +
+              this.userid +
+              "&oid=" +
+              this.oid +
+              "&org=" +
+              this.org +
+              "&role=" +
+              this.role
+            );
+          }
         });
     },
     nextSteps() {
@@ -6827,6 +6819,19 @@ export default {
           }
           this.grade2 = res.data[0];
           this.classJuri = res.data[0];
+          let _check = []
+          let _check2 = []
+          for (var i = 0; i < this.grade2.length; i++) {
+            var gid = this.grade2[i].id
+            _check.push(gid)
+          }
+          for (var i = 0; i < this.checkboxList2.length; i++) {
+            var _id = this.checkboxList2[i]
+              if (_check.indexOf(_id) !== -1) {
+                _check2.push(_id)
+              }
+          }
+          this.checkAll = _check2.length === _check.length;
         })
         .catch((err) => {
           this.isLoading = false;
@@ -9721,6 +9726,19 @@ export default {
     },
     InviteChange(val) {
       console.log(val);
+      let _check = []
+      let _check2 = []
+      for (var i = 0; i < this.grade2.length; i++) {
+        var gid = this.grade2[i].id
+        _check.push(gid)
+      }
+      for (var i = 0; i < this.checkboxList2.length; i++) {
+        var _id = this.checkboxList2[i]
+          if (_check.indexOf(_id) !== -1) {
+            _check2.push(_id)
+          }
+      }
+      this.checkAll = _check2.length === _check.length;
       return;
       let array = JSON.parse(JSON.stringify(val));
       this.inviteCode = this.inviteCode.filter((el) => {
@@ -9733,6 +9751,31 @@ export default {
         this.getInviteCode(array[i]);
       }
     },
+    handleCheckAllChange(val) {
+      if (val) {
+        for (var i = 0; i < this.grade2.length; i++) {
+          var gid = this.grade2[i].id
+          if (this.checkboxList2.indexOf(gid) === -1) {
+            this.checkboxList2.push(gid)
+          }
+        }
+      } else {
+        let _check = []
+        let _check2 = []
+        for (var i = 0; i < this.grade2.length; i++) {
+          var gid = this.grade2[i].id
+          _check.push(gid)
+        }
+        for (var i = 0; i < this.checkboxList2.length; i++) {
+          var _id = this.checkboxList2[i]
+          if (_check.indexOf(_id) === -1) {
+            _check2.push(_id)
+          }
+        }
+        this.checkboxList2 = _check2
+      }
+      this.isIndeterminate = false;
+    },
     async getInviteCode(cid) {
       let code = this.randomNumber();
       let params = {
@@ -13178,7 +13221,7 @@ ol {
   color: #060E17;
   line-height: 25px;
   font-size: 16px;
-  min-width: 45px;
+  min-width: 50px;
 }
 
 .navTask .nt_taskName {
@@ -13599,6 +13642,21 @@ ol {
   box-sizing: border-box;
 }
 
+.check_class_all_box {
+  display: flex;
+  margin-bottom: 10px;
+}
+
+.all_check {
+  display: flex;
+  align-items: center;
+  padding: 2px 0 0;
+  margin-left: 10px;
+}
+
+.all_check>>>.el-checkbox__label {
+  line-height: unset;
+}
 .check_class_left_title {
   font-size: 16px;
   font-weight: 700;

+ 7 - 0
src/components/tools/sunburst.vue

@@ -22,12 +22,19 @@ export default {
       timer: null,
       ooption: [],
       option: {
+        tooltip:{},
         series: {
           type: "sunburst",
           data: [],
           radius: [30, "90%"],
           label: {
             rotate: "radial",
+            // formatter: function (val) {
+            //   // console.log(val);
+            //   return val.name.length > 5
+            //     ? val.name.substring(0, 6) + '...'
+            //     : val.name;
+            // }
           },
         },
       },

部分文件因为文件数量过多而无法显示