Browse Source

Merge branch 'beta' of https://git.cocorobo.cn/CocoRoboLabs/pbl-teacher-table into beta

lsc 11 months ago
parent
commit
62de5dd662
2 changed files with 318 additions and 86 deletions
  1. 151 34
      src/components/pages/aiAddCourse/addCourse.vue
  2. 167 52
      src/components/pages/newCourse/addCourse.vue

+ 151 - 34
src/components/pages/aiAddCourse/addCourse.vue

@@ -3864,41 +3864,63 @@
     </el-dialog>
     <el-dialog title="添加协同成员" :visible.sync="dialogVisibleMember" :append-to-body="true" width="25%" height="80%"
       :before-close="handleClose" class="addNewPP customWidth">
-      <div class="people">
-        <div class="people_top">
-          <div class="people_top_right">
-            <div class="people_search">
-              <el-input placeholder="搜索成员名称" v-model="searchTN" @keyup.enter.native="getTeacher"></el-input>
-              <div class="search_img" @click="getTeacher">
-                <img src="../../../assets/icon/search.png" alt />
-              </div>
-            </div>
+      <div  style="display: flex;justify-content: space-between;"> 
+        <div style="width: 100px;overflow: auto;overflow-x: hidden; height: 350px;flex-shrink:0;padding-right: 10px;">
+          <div class="CollaborativeCss" :class="{CollaborativeCss2:collid == ''}" @click="getTeacher('')">
+              全部
+          </div> 
+          <div class="CollaborativeCss" :class="{CollaborativeCss2:i.id == collid}" @click="getTeacher(i.id)" v-for="(i,index) in CollaborativeTeaList" :key="i.id">
+            <el-tooltip
+              placement="top"
+              :content="i.name"
+              >
+              <span>{{i.name}}</span>
+            </el-tooltip>
           </div>
-          <div class="people_nav" style="display: flex; align-items: center">
-            <div class="check_class_left_title">选择成员</div>
-            <div style="display: flex; align-items: center; margin-left: auto">
-              <el-checkbox v-model="checkAll2" @change="handleCheckAllChange2" class="all_check">全选</el-checkbox>
-            </div>
+          <div class="CollaborativeCss" :class="{CollaborativeCss2:collid == '1xpz'}" @click="getTeacherCopy()">
+              其他
           </div>
         </div>
-        <el-checkbox-group v-model="checkboxList3" class="people_name" v-if="teacherJuri.length"
-          @change="InviteChange2">
-          <el-checkbox v-for="item in teacherJuri" :key="item.userid" :label="item.userid">
-            <div class="t_j_box">
-              <el-tooltip placement="top" :content="item.name ? item.name : '暂无姓名'">
-                <span>{{ item.name ? item.name : "暂无姓名" }}</span>
-              </el-tooltip>
-              <el-tooltip placement="top" :content="item.username.split('@')[0]">
-                <span>{{ item.username.split('@')[0] }}</span>
-              </el-tooltip>
-              <el-tooltip placement="top" :content="item.school">
-                <span>{{ item.school }}</span>
-              </el-tooltip>
+        <div style="flex:1" v-loading="CollLoading">
+          <div class="people">
+            <div class="people_top">
+              <div class="people_top_right">
+                <div class="people_search">
+                  <el-input placeholder="搜索成员名称" v-model="searchTN" @keyup.enter.native="getTeacher(collid)"></el-input>
+                  <div class="search_img" @click="getTeacher(collid)">
+                    <img src="../../../assets/icon/search.png" alt />
+                  </div>
+                </div>
+              </div>
+              <div class="people_nav" style="display: flex; align-items: center">
+                <div class="check_class_left_title">选择成员</div>
+                <div style="display: flex; align-items: center; margin-left: auto">
+                  <el-checkbox v-model="checkAll2" @change="handleCheckAllChange2" class="all_check">全选</el-checkbox>
+                </div>
+              </div>
             </div>
-          </el-checkbox>
-        </el-checkbox-group>
-        <div style="text-align: center; margin-top: 10px" v-else>暂无数据</div>
+            <el-checkbox-group v-model="checkboxList3" class="people_name" v-if="teacherJuri.length"
+              @change="InviteChange2">
+              <el-checkbox v-for="item in teacherJuri" :key="item.userid" :label="item.userid">
+                <div class="t_j_box">
+                  <el-tooltip placement="top" :content="item.name ? item.name : '暂无姓名'">
+                    <span>{{ item.name ? item.name : "暂无姓名" }}</span>
+                  </el-tooltip>
+                  <el-tooltip placement="top" :content="item.username.split('@')[0]">
+                    <span>{{ item.username.split('@')[0] }}</span>
+                  </el-tooltip>
+                  <el-tooltip placement="top" :content="item.school">
+                    <span>{{ item.school }}</span>
+                  </el-tooltip>
+                </div>
+              </el-checkbox>
+            </el-checkbox-group>
+            <div style="text-align: center; margin-top: 10px" v-else>暂无数据</div>
+          </div>
+        </div>
       </div>
+
+      
       <span slot="footer" class="dialog-footer">
         <el-button @click="dialogVisibleMember = false">取 消</el-button>
         <el-button type="primary" @click="isAddPPTeacher">确定</el-button>
@@ -5179,6 +5201,8 @@ export default {
       publicTool: 0,
       searchPeople: "",
       searchTN: "",
+      collid: '',
+      CollLoading: false,
       userid: this.$route.query.userid,
       oid: this.$route.query.oid,
       org: this.$route.query.org,
@@ -5274,6 +5298,7 @@ export default {
       templateArray: [],
       studentJuri: [],
       teacherJuri: [],
+      CollaborativeTeaList: [],
       checkboxList: [],
       checkboxList2: [],
       checkboxList3: [],
@@ -7801,7 +7826,71 @@ export default {
           console.error(err);
         });
     },
-    getTeacher() {
+      // 添加协同成员其他选项按钮
+      getTeacherCopy(){
+      this.CollLoading=true
+
+      this.collid = ''
+      this.collid = '1xpz'
+      let params = {
+        oid:
+          this.org && this.org != "undefined" && this.org != "null"
+            ? this.org
+            : this.oid,
+        cu: "",
+        cn: this.searchTN,
+        coll: ''
+      };
+      this.ajax
+        .get(
+          this.$store.state.api +
+            (this.org && this.org != "undefined" && this.org != "null"
+              ? "selectCollaborativeMembersOrg"
+              : "selectCollaborativeMembers"),
+          params
+        )
+        .then((res) => {
+          let teacherJuri = res.data[0];
+          this.CollaborativeTeaList = res.data[1];
+          for (var i = 0; i < teacherJuri.length; i++) {
+            if (teacherJuri[i].userid == this.userid) {
+              teacherJuri.splice(i, 1);
+              break;
+            }
+          }
+
+          this.teacherJuri = teacherJuri.filter((i,index)=>{
+            return (i.cclassid == '' || i.cclassid == null)
+          })
+          console.log(' this.teacherJuri', this.teacherJuri);
+
+
+          let _check = [];
+          let _check2 = [];
+          for (var i = 0; i < this.teacherJuri.length; i++) {
+            var gid = this.teacherJuri[i].userid;
+            _check.push(gid);
+          }
+          for (var i = 0; i < this.checkboxList3.length; i++) {
+            var _id = this.checkboxList3[i];
+            if (_check.indexOf(_id) !== -1) {
+              _check2.push(_id);
+            }
+          }
+          this.checkAll2 = _check2.length === _check.length;
+          this.CollLoading=false
+
+        })
+        .catch((err) => {
+          console.error(err);
+          this.CollLoading=false
+        });
+    },
+    getTeacher(val) {
+      this.CollLoading=true
+      this.collid = ''
+      this.collid = !val ? '' : val
+
       let params = {
         oid:
           this.org && this.org != "undefined" && this.org != "null"
@@ -7809,17 +7898,20 @@ export default {
             : this.oid,
         cu: "",
         cn: this.searchTN,
+        coll: this.collid
       };
       this.ajax
         .get(
           this.$store.state.api +
           (this.org && this.org != "undefined" && this.org != "null"
-            ? "selectTeacherAddOrg"
-            : "selectTeacherAdd"),
+            ? "selectCollaborativeMembersOrg"
+            : "selectCollaborativeMembers"),
           params
         )
         .then((res) => {
           let teacherJuri = res.data[0];
+          this.CollaborativeTeaList = res.data[1];
+
           for (var i = 0; i < teacherJuri.length; i++) {
             if (teacherJuri[i].userid == this.userid) {
               teacherJuri.splice(i, 1);
@@ -7841,9 +7933,11 @@ export default {
             }
           }
           this.checkAll2 = _check2.length === _check.length;
+          this.CollLoading=false
         })
         .catch((err) => {
           console.error(err);
+          this.CollLoading=false
         });
     },
     searchStudent() {
@@ -15447,9 +15541,32 @@ ol {
 }
 
 .customWidth>>>.el-dialog {
-  min-width: 500px !important;
+  min-width: 600px !important;
+}
+
+.CollaborativeCss {
+  width: 100%;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  box-sizing: border-box;
+  padding: 10px 0;
+  cursor: pointer;
 }
 
+.CollaborativeCss >>> .el-tooltip {
+  overflow: hidden;
+  white-space: nowrap;
+  text-overflow: ellipsis;
+}
+.CollaborativeCss2 {
+  background: #e0eafb;
+  color: #3681fc;
+  font-weight: 700;
+  border-radius: 5px;
+}
+
+
 .a_addBox {
   margin: 10px 0;
   background: #fff;

+ 167 - 52
src/components/pages/newCourse/addCourse.vue

@@ -5347,60 +5347,82 @@
       :before-close="handleClose"
       class="addNewPP customWidth"
     >
-      <div class="people">
-        <div class="people_top">
-          <div class="people_top_right">
-            <div class="people_search">
-              <el-input
-                placeholder="搜索成员名称"
-                v-model="searchTN"
-                @keyup.enter.native="getTeacher"
-              ></el-input>
-              <div class="search_img" @click="getTeacher">
-                <img src="../../../assets/icon/search.png" alt />
-              </div>
-            </div>
+      <div style="display: flex;justify-content: space-between;">
+        <div style="width: 100px;overflow: auto;overflow-x: hidden; height: 350px;flex-shrink:0;padding-right: 10px;">
+          <div class="CollaborativeCss" :class="{CollaborativeCss2:collid == ''}" @click="getTeacher('')">
+              全部
           </div>
-          <div class="people_nav" style="display: flex; align-items: center">
-            <div class="check_class_left_title">选择成员</div>
-            <div style="display: flex; align-items: center; margin-left: auto">
-              <el-checkbox
-                v-model="checkAll2"
-                @change="handleCheckAllChange2"
-                class="all_check"
-                >全选</el-checkbox
+          <div class="CollaborativeCss" :class="{CollaborativeCss2:i.id == collid}" @click="getTeacher(i.id)" v-for="(i,index) in CollaborativeTeaList" :key="i.id">
+            <el-tooltip
+              placement="top"
+              :content="i.name"
               >
-            </div>
+              <span>{{i.name}}</span>
+            </el-tooltip>
+          </div>
+          <div class="CollaborativeCss" :class="{CollaborativeCss2:collid == '1xpz'}" @click="getTeacherCopy()">
+              其他
           </div>
         </div>
-        <el-checkbox-group
-          v-model="checkboxList3"
-          class="people_name"
-          v-if="teacherJuri.length"
-          @change="InviteChange2"
-        >
-          <el-checkbox
-            v-for="item in teacherJuri"
-            :key="item.userid"
-            :label="item.userid"
-          >
-            <div class="t_j_box">
-              <el-tooltip
-                placement="top"
-                :content="item.name ? item.name : '暂无姓名'"
+        <div style="flex:1" v-loading="CollLoading">
+          <div class="people">
+              <div class="people_top">
+                <div class="people_top_right">
+                  <div class="people_search">
+                    <el-input
+                      placeholder="搜索成员名称"
+                      v-model="searchTN"
+                      @keyup.enter.native="getTeacher(collid)"
+                    ></el-input>
+                    <div class="search_img" @click="getTeacher(collid)">
+                      <img src="../../../assets/icon/search.png" alt />
+                    </div>
+                  </div>
+                </div>
+                <div class="people_nav" style="display: flex; align-items: center">
+                  <div class="check_class_left_title">选择成员</div>
+                  <div style="display: flex; align-items: center; margin-left: auto">
+                    <el-checkbox
+                      v-model="checkAll2"
+                      @change="handleCheckAllChange2"
+                      class="all_check"
+                      >全选</el-checkbox
+                    >
+                  </div>
+                </div>
+              </div>
+              <el-checkbox-group
+                v-model="checkboxList3"
+                class="people_name"
+                v-if="teacherJuri.length"
+                @change="InviteChange2"
               >
-                <span>{{ item.name ? item.name : "暂无姓名" }}</span>
-              </el-tooltip>
-              <el-tooltip placement="top" :content="item.username.split('@')[0]">
-                <span>{{ item.username.split('@')[0] }}</span>
-              </el-tooltip>
-              <el-tooltip placement="top" :content="item.school">
-                <span>{{ item.school }}</span>
-              </el-tooltip>
+                <el-checkbox
+                  v-for="item in teacherJuri"
+                  :key="item.userid"
+                  :label="item.userid"
+                >
+                  <div class="t_j_box">
+                    <el-tooltip
+                      placement="top"
+                      :content="item.name ? item.name : '暂无姓名'"
+                    >
+                      <span>{{ item.name ? item.name : "暂无姓名" }}</span>
+                    </el-tooltip>
+                    <el-tooltip placement="top" :content="item.username.split('@')[0]">
+                      <span>{{ item.username.split('@')[0] }}</span>
+                    </el-tooltip>
+                    <el-tooltip placement="top" :content="item.school">
+                      <span>{{ item.school }}</span>
+                    </el-tooltip>
+                  </div>
+                </el-checkbox>
+              </el-checkbox-group>
+              <div style="text-align: center; margin-top: 10px" v-else>暂无数据</div>
             </div>
-          </el-checkbox>
-        </el-checkbox-group>
-        <div style="text-align: center; margin-top: 10px" v-else>暂无数据</div>
+          
+        </div>
+     
       </div>
       <span slot="footer" class="dialog-footer">
         <el-button @click="dialogVisibleMember = false">取 消</el-button>
@@ -7442,6 +7464,8 @@ export default {
       publicTool: 0,
       searchPeople: "",
       searchTN: "",
+      collid: '',
+      CollLoading: false,
       userid: this.$route.query.userid,
       oid: this.$route.query.oid,
       org: this.$route.query.org,
@@ -7537,6 +7561,7 @@ export default {
       templateArray: [],
       studentJuri: [],
       teacherJuri: [],
+      CollaborativeTeaList: [],
       checkboxList: [],
       checkboxList2: [],
       checkboxList3: [],
@@ -7700,6 +7725,7 @@ export default {
     },
     getListMan2() {
       return function (list) {
+        console.log('getListMan2',list);
         let _people2 = [];
         if (this.ManAarray.length) {
           for (var j = 0; j < list.length; j++) {
@@ -9762,7 +9788,70 @@ export default {
           console.error(err);
         });
     },
-    getTeacher() {
+    // 添加协同成员其他选项按钮
+    getTeacherCopy(){
+      this.CollLoading=true
+      this.collid = ''
+      this.collid = '1xpz'
+      let params = {
+        oid:
+          this.org && this.org != "undefined" && this.org != "null"
+            ? this.org
+            : this.oid,
+        cu: "",
+        cn: this.searchTN,
+        coll: ''
+      };
+      this.ajax
+        .get(
+          this.$store.state.api +
+            (this.org && this.org != "undefined" && this.org != "null"
+              ? "selectCollaborativeMembersOrg"
+              : "selectCollaborativeMembers"),
+          params
+        )
+        .then((res) => {
+          let teacherJuri = res.data[0];
+          this.CollaborativeTeaList = res.data[1];
+          for (var i = 0; i < teacherJuri.length; i++) {
+            if (teacherJuri[i].userid == this.userid) {
+              teacherJuri.splice(i, 1);
+              break;
+            }
+          }
+
+          this.teacherJuri = teacherJuri.filter((i,index)=>{
+            return (i.cclassid == '' || i.cclassid == null)
+          })
+          console.log(' this.teacherJuri', this.teacherJuri);
+
+
+          let _check = [];
+          let _check2 = [];
+          for (var i = 0; i < this.teacherJuri.length; i++) {
+            var gid = this.teacherJuri[i].userid;
+            _check.push(gid);
+          }
+          for (var i = 0; i < this.checkboxList3.length; i++) {
+            var _id = this.checkboxList3[i];
+            if (_check.indexOf(_id) !== -1) {
+              _check2.push(_id);
+            }
+          }
+          this.checkAll2 = _check2.length === _check.length;
+          this.CollLoading=false
+
+        })
+        .catch((err) => {
+          console.error(err);
+          this.CollLoading=false
+        });
+    },
+    getTeacher(val) {
+      this.CollLoading=true
+
+      this.collid = ''
+      this.collid = !val ? '' : val
       let params = {
         oid:
           this.org && this.org != "undefined" && this.org != "null"
@@ -9770,17 +9859,19 @@ export default {
             : this.oid,
         cu: "",
         cn: this.searchTN,
+        coll: this.collid
       };
       this.ajax
         .get(
           this.$store.state.api +
             (this.org && this.org != "undefined" && this.org != "null"
-              ? "selectTeacherAddOrg"
-              : "selectTeacherAdd"),
+              ? "selectCollaborativeMembersOrg"
+              : "selectCollaborativeMembers"),
           params
         )
         .then((res) => {
           let teacherJuri = res.data[0];
+          this.CollaborativeTeaList = res.data[1];
           for (var i = 0; i < teacherJuri.length; i++) {
             if (teacherJuri[i].userid == this.userid) {
               teacherJuri.splice(i, 1);
@@ -9802,9 +9893,12 @@ export default {
             }
           }
           this.checkAll2 = _check2.length === _check.length;
+          this.CollLoading=false
+
         })
         .catch((err) => {
           console.error(err);
+          this.CollLoading=false
         });
     },
     searchStudent() {
@@ -16048,7 +16142,28 @@ ol {
 }
 
 .customWidth >>> .el-dialog {
-  min-width: 500px !important;
+  min-width: 600px !important;
+}
+.CollaborativeCss {
+  width: 100%;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  box-sizing: border-box;
+  padding: 10px 0;
+  cursor: pointer;
+}
+
+.CollaborativeCss >>> .el-tooltip {
+  overflow: hidden;
+  white-space: nowrap;
+  text-overflow: ellipsis;
+}
+.CollaborativeCss2 {
+  background: #e0eafb;
+  color: #3681fc;
+  font-weight: 700;
+  border-radius: 5px;
 }
 
 .a_addBox {