Переглянути джерело

CF99 介接ies5 名單:新增名單api功能, logo 調整

Louise lin 1 тиждень тому
батько
коміт
f063e83c2d

+ 0 - 11
HiTeachCC/ClientApp/src/api/ies5Api.js

@@ -103,16 +103,5 @@ export default {
             })
         })
     },
-    // 更新簡易名單
-    updateIES5StudentListMember: function(data) {
-        return new Promise((resolve, reject) => {
-            post(apiUrl + '/course-base/update-simple-member', data).then(res => {
-                resolve(res)
-            }, err => {
-                reject(err)
-            })
-        })
-    },
-
 
 }

+ 33 - 9
HiTeachCC/ClientApp/src/assets/css/Board.less

@@ -349,6 +349,15 @@
     font-size: 200px;
     line-height: 0px;
   }
+  .screen-title-text{
+    top: 52px;
+    left: calc(50% + 80px);
+    transform: translateX(-50%);
+    text-align: center;
+    position: absolute;
+    font-size: 20px;
+    line-height: 0px;
+  }
 }
 .ies5-icon {
   font-size: 80px;
@@ -365,16 +374,31 @@
   background-color: #ececec;
   box-shadow: none !important;
 
-  .hicard-title-icon {
-    top: -60px;
-    left: 49%;
-    transform: translateX(-50%);
-    text-align: center;
-    position: absolute;
-    font-size: 200px;
-    line-height: 0px;
-    z-index: -1;
+  .hi-card-title{
+    display: block;
+    position: relative;
+    .hicard-title-icon{
+      font-size: 200px;
+      line-height: 0px;
+      z-index: -1;
+      position: absolute;
+      top: -120px;
+      left: calc( 50% - 20px);
+      transform: translateX(-50%);
+    
+    }
+    .hi-title{
+      font-size: 20px;
+      z-index: 1;
+      position: relative;
+      top: -32px;
+      left: calc( 50% + 40px);
+      transform: translateX(-50%);
+    }
+
+    
   }
+  
   .memberlist-icon{
     stroke: #000;
   }

Різницю між файлами не показано, бо вона завелика
+ 14 - 1
HiTeachCC/ClientApp/src/assets/icons/svg/htc_cc.svg


Різницю між файлами не показано, бо вона завелика
+ 14 - 1
HiTeachCC/ClientApp/src/assets/img/login/htc_cc.svg


BIN
HiTeachCC/ClientApp/src/assets/img/login/logo.png


+ 8 - 0
HiTeachCC/ClientApp/src/components/Common/CommonHeader.vue

@@ -2,6 +2,7 @@
   <div class="head colorF pad20" style="position: fixed;display: flex;justify-content: space-between;width:100%;">
     <!-- <h2 class="fl logo" v-if="LanguageShow">{{$t('login.loginBox.headertitle')}}</h2> -->
     <img class="fl logo" v-if="LanguageShow" src="@/assets/img/login/htc_cc.svg" style="margin-right: 50px;" />
+    <div class="hiTitle">{{ $t('board.hiTitle') }}</div>
     <ul class="langBtns">
       <li @click="changeLang('zh-TW')">
         <svg-icon class="icon" :icon-class="$i18n.locale === 'zh-TW' ? 'lang_tw_sel' : 'lang_tw'" />
@@ -59,5 +60,12 @@ export default {
 </script>
 
 <style scoped>
+.hiTitle{
+  font-size: 20px;
+  color: black;
+  position: absolute;
+  left: 190px;
+  top:24px;
+}
 
 </style>

+ 102 - 39
HiTeachCC/ClientApp/src/components/EditMemberList.vue

@@ -49,29 +49,30 @@
       <!--選單控制按鈕外部-->
       <div class="editmemberlist-rightbtns" v-show="!isCustomMemberlistEmpty()">
         <div class="edit-btn" @click="openAddMemberList()"><svg-icon icon-class="new-page" /></div>
-        <div class="edit-btn" @click="openEditListName()" v-show="Object.keys($parent.currentMemberList).length > 0"><font-awesome-icon icon="pencil-alt" /></div>
-        <div class="delete-btn" @click="showCorfirmDelete = true"><svg-icon icon-class="trash-alt-solid" /></div>
+        <!-- <div class="edit-btn" @click="openEditListName()" v-show="Object.keys($parent.currentMemberList).length > 0"><font-awesome-icon icon="pencil-alt" /></div> -->
+        <!-- <div class="delete-btn" @click="showCorfirmDelete = true"><svg-icon icon-class="trash-alt-solid" /></div> -->
       </div>
       <div class="editmemberlist-empty" v-show="isCustomMemberlistEmpty()">
         <div @click="openAddMemberList()"><svg-icon icon-class="new-page" class="add-icon" /><br />{{ $t("memberlist['創建名單']") }}</div>
       </div>
       <div class="memberlist-wrap" v-if="!isCustomMemberlistEmpty()">
-        <div class="listitems">
-          <div class="listitem"  v-for="(list,index) in $parent.customMemberlist" :key="'edList'+index" @click="setCurrentMemberList(list)" :class="{ 'listitem-light': $parent.currentMemberList.id == list.id }">
+        <div class="listitems" :style="{ 'max-height': tableHeight-42 + 'px' }">
+          <div class="listitem"  v-for="(list,index) in $parent.customMemberlist" :key="'edList'+index" @click="setCurrentMemberList(list)" :class="{ 'listitem-light': $parent.currentMemberList.listID == list.listID }">
             {{ list.name }}
           </div>
         </div>
-        <div class="listDetail" :style="{ 'min-height': tableHeight + 'px' }">
-          <Table :fixed-header="true" @on-row-click="setEditStudent" :row-class-name="hintSelectedRow" v-show="Object.keys($parent.currentMemberList).length >= 0" :height="tableHeight - 41" :no-data-text="`<p>${$t('memberlist.暫無數據')}</p>`" :columns="columnsTitle" :data="$parent.currentMemberList.list"></Table>
-          <!--選單控制按鈕內部-->
+        <div class="listDetail" :style="{ 'max-height': tableHeight + 'px' }">
+          <Table :fixed-header="true" @on-row-click="setEditStudent" :row-class-name="hintSelectedRow" v-show="Object.keys($parent.currentMemberList).length >= 0" :height="tableHeight - 41" :no-data-text="`<p>${$t('memberlist.暫無數據')}</p>`" :columns="columnsTitle" :data="$parent.memberList"></Table>
+          <!-- 選單控制按鈕內部
           <div class="editmemberlist-bottombtns" v-show="!isCustomMemberlistEmpty()">
             <div class="edit-btn" @click="addStudent()"><svg-icon icon-class="new-page" /></div>
             <div class="edit-btn" v-show="Object.keys(currentEditStudent).length !== 0" @click="editStudent()"><font-awesome-icon icon="pencil-alt" /></div>
             <div class="delete-btn" v-show="Object.keys(currentEditStudent).length !== 0" @click="deleteStudent()"><svg-icon icon-class="trash-alt-solid" /></div>
-          </div>
+          </div> -->
         </div>
       </div>
-      <div class="errmsg" v-if="showAddListReachMax">{{ $t("memberlist['自訂名單已達上限提示字']") }}</div>
+      <div class="errmsg" >{{ $t("memberlist['新增說明']") }}</div>
+      <!-- <div class="errmsg" v-if="showAddListReachMax">{{ $t("memberlist['自訂名單已達上限提示字']") }}</div> -->
       <div class="errmsg" v-if="showAddStudentReachMax">{{ $t("memberlist['新增單筆名單人數達上限提示字']") }}</div>
     </div>
     <!--新增學生名單-->
@@ -172,16 +173,29 @@ export default {
     async setCurrentMemberList(list) {
       const res=await this.$api.ies5Api.getIES5StudentsListByCourse({
         "grant_type":"private",
-        "stulist_id":list.id
+        "stulist_id":list.listID
       });
      
       this.$parent.currentMemberList ={
-        id:list.id,
+        listID:list.listID,
         name:list.name,
         list: res.students
       }
+
+      let tempMemberList=[]
+      this.$parent.currentMemberList?.list?.forEach((item)=>{
+        let tempStudent={
+          memberID: item.memberID||item.id,
+          memberName: item.memberName||item.name,
+          seatID: item.seatID||item.irs,
+          groupName: null,
+          groupID: null,
+          isHiGroup: false
+        }
+        tempMemberList.push(tempStudent)
+      })
       console.log(this.$parent.currentMemberList,"183")
-      this.$parent.memberList = Object.keys(this.$parent.currentMemberList).length == 0 ? [] : this.$parent.currentMemberList.list;
+      this.$parent.memberList = Object.keys(this.$parent.currentMemberList).length == 0 ? [] : tempMemberList;
       this.$parent.verifyMode = Object.keys(this.$parent.currentMemberList).length == 0 ? "Dynamic" : "Fixed";
       this.currentEditStudent = {};
     },
@@ -196,19 +210,16 @@ export default {
     },
     openAddMemberList() {
       this.showAddListReachMax = false;
-      if (this.$parent.customMemberlist.length < 3) {
-        let autolength = this.$parent.customMemberlist ? this.$parent.customMemberlist.length : 0;
-        this.showAddMemberList = true;
-        this.tempAddMemberList = [];
-        this.addMemberListErrRow = [];
-        this.addMemberListErrMsg = [];
-        this.currentEditMemberListName = this.$t("memberlist['自訂名單']") + (autolength + 1);
-        this.currentEditMemberList = {};
-        this.addmemberlisttext = "";
-        this.showAddMemberAutoSeatIDMsg = false;
-      } else {
-        this.showAddListReachMax = true;
-      }
+      let autolength = this.$parent.customMemberlist ? this.$parent.customMemberlist.length : 0;
+      this.showAddMemberList = true;
+      this.tempAddMemberList = [];
+      this.addMemberListErrRow = [];
+      this.addMemberListErrMsg = [];
+      this.currentEditMemberListName = this.$t("memberlist['自訂名單']") + (autolength + 1);
+      this.currentEditMemberList = {};
+      this.addmemberlisttext = "";
+      this.showAddMemberAutoSeatIDMsg = false;
+      
     },
     async closeEditMemberList() {
       this.showEditMemberList = false;
@@ -216,10 +227,10 @@ export default {
       if(this.$parent.isEditMemberListAtInit){
         this.$parent.modalUpload=true
       }
-      let blob = new Blob([JSON.stringify(this.$parent.customMemberlist)], { type: "application/json" });
-      blob.lastModifiedDate = new Date();
-      blob.name = "CCroster.json";
-      await this.$parent.uploadResourceByPath(blob, "local/CCroster");
+      // let blob = new Blob([JSON.stringify(this.$parent.customMemberlist)], { type: "application/json" });
+      // blob.lastModifiedDate = new Date();
+      // blob.name = "CCroster.json";
+      // await this.$parent.uploadResourceByPath(blob, "local/CCroster");
       this.$parent.isEditMemberListAtInit=false
     },
     fetchCCroster() {
@@ -311,6 +322,12 @@ export default {
               seatID: item,
               memberID: "member" + new Date().getTime() + index,
               memberName: data[index - 1],
+              id: "",
+              code: null,
+              type: 3,
+              nickname: data[index - 1],
+              no: item,
+              irs: item,
             });
           }
         });
@@ -322,6 +339,13 @@ export default {
               seatID: index + 1,
               memberID: "member" + new Date().getTime() + index,
               memberName: data[index],
+
+              id: "",
+              code: null,
+              type: 3,
+              nickname: data[index],
+              no: index + 1,
+              irs: index + 1,
             });
           }
         });
@@ -331,22 +355,42 @@ export default {
         this.setAddMemberErrMsg(this.$t("memberlist['名單人數上限提示字']"));
       }
     },
-    savecustomMemberlist() {
+    async savecustomMemberlist() {
       this.$parent.customMemberlist = this.$parent.customMemberlist ? this.$parent.customMemberlist : [];
       if (this.addMemberListErrMsg.length === 0 && this.addmemberlisttext != "" && this.tempAddMemberList.length != 0 && this.currentEditMemberListName != "") {
-        this.$parent.customMemberlist.push({
-          listName: this.currentEditMemberListName,
-          list: this.tempAddMemberList,
-          listID: "list" + new Date().getTime(),
-        });
+
+        await this.$api.ies5Api.createIES5StudentList({
+          courseName: "HiTeach",
+          groupListName: this.currentEditMemberListName,
+          limitCount: 200,
+          courseId: "",
+          groupId: "",
+          member: this.tempAddMemberList,
+        })
+
+        const res = await this.$api.ies5Api.getIES5TeacherInfo()
+
+        if (res.courses && Array.isArray(res.courses)) {
+          this.$parent.customMemberlist = [];
+          res.courses.forEach(course => {
+            if (course.classes && Array.isArray(course.classes)) {
+              const classItems = course.classes.map(classItem => ({
+                listID: classItem.stuListId,
+                name: `${course.name || ''}-${classItem.name || ''}`
+              }));
+              this.$parent.customMemberlist = [...this.$parent.customMemberlist, ...classItems];
+            }
+          });
+        }
+
         this.editMemberListMode == "Init" ? this.closeEditMemberList() : (this.showAddMemberList = false);
-        this.$parent.currentMemberList = this.$parent.customMemberlist[this.$parent.customMemberlist.length - 1];
+        this.$parent.currentMemberList = [];
       }
     },
     useSampleList() {
       this.addmemberlisttext = this.$t("memberlist['範例名單']");
     },
-    deleteMemberList() {
+    deleteMemberList() { //IES5 不提供從終端刪名單,請到IES5
       const deleteIndex = this.$parent.customMemberlist.findIndex((list) => list.listID == this.$parent.currentMemberList.listID);
       this.$parent.customMemberlist.splice(deleteIndex, 1);
       this.$parent.currentMemberList = {};
@@ -393,6 +437,8 @@ export default {
     },
     isSeatIDduplicate() {
       const parentIndex = this.$parent.customMemberlist.findIndex((list) => list.listID == this.$parent.currentMemberList.listID);
+      console.log(parentIndex,this.$parent.customMemberlist)
+      //202505 介接iES5名單
       const targetId = this.$parent.customMemberlist[parentIndex].list.findIndex((stu) => stu.seatID == this.tempEditSeatID);
       //   console.log(this.$parent.customMemberlist[parentIndex].list, targetId);
       return targetId !== -1;
@@ -437,10 +483,24 @@ export default {
       this.tempEditListName = this.$parent.currentMemberList.listName;
       this.showAddListReachMax = false;
     },
-    updateListName() {
+    async updateListName() {
       if (this.tempEditListName != "") {
         const parentIndex = this.$parent.customMemberlist.findIndex((list) => list.listID == this.$parent.currentMemberList.listID);
-        this.$parent.customMemberlist[parentIndex].listName = this.tempEditListName;
+        this.$parent.customMemberlist[parentIndex].name = this.tempEditListName;
+
+        //直接修改名單名稱到IES5
+        this.$parent.currentMemberList.name = this.tempEditListName;
+
+
+        await this.$api.ies5Api.updateIES5StudentListMember({
+          courseName: "louise",
+          groupListName: this.tempEditListName,
+          limitCount: 200,
+          courseId: "e95bc143-0475-364d-882d-ceacfaddfe54", //一律寫到HiTeach
+          groupId: "e95bc143-0475-364d-882d-ceacfaddfe54", //一律寫到HiTeach
+          member: this.$parent.currentMemberList.list,
+        })
+
         this.showEditListName = false;
         this.showEditListNameMsg = false;
       } else {
@@ -678,6 +738,7 @@ export default {
         border: 1px solid #ccc !important;
         position: relative;
         width: 40%;
+        overflow-y: auto;
         .listitem-light {
           color: blue;
           border: 1px solid blue !important;
@@ -703,6 +764,8 @@ export default {
         }
       }
       .listDetail {
+        max-height: 418.5px;
+        overflow-y: auto;
         .editmemberlist-bottombtns {
           border: 1px solid #ccc !important;
           border-top: 1px solid transparent !important;

+ 3 - 1
HiTeachCC/ClientApp/src/locale/lang/en-US/index.js

@@ -37,6 +37,7 @@ export default {
     目前沒有動作可復原: 'No more undo'
   },
   board: {
+    hiTitle:'web app',
     前往:'Install',
     Gpt安裝提示標題:'Installation Note',
     GPT安裝提示字:"<p>You're allowed to use GPT tools. It's best to use Google Chrome or Microsoft Edge on your computer. Download and install the extension kit to enable GPT-related functions. After installation, please log in again to activate this feature!</p>",
@@ -365,7 +366,7 @@ export default {
     創建自訂學生名單:'Create a preset name list',
     使用IES5課程名單:'Use IES 5 Course List',
     點選左側指定可加入的學生名單:'Click on the left to select a name list',
-    點選Hi進行編輯:'If you need to edit the preset name list, please operate from the Hi menu after clicking "Next"',
+    點選Hi進行編輯:'If you need to add the preset name list, please operate from the Hi menu after clicking "Next"',
     下一步:'Next',
     上一步:'Previous',
     編輯學生:'Edit Student',
@@ -382,6 +383,7 @@ export default {
     確定刪除後這個名單將無法復原:'This list will not be recoverable after deletion. Are you sure?',
     刪除:'Delete\t',
     自訂學生名單:'Edit Preset List',
+    新增說明:'Currently, adding name lists is only available under the HiTeach course category (HiTeach-). For using other course categories, advanced management such as editing or deleting, please set up in IES5. After adding, please refresh to use.',
     創建名單:'Create a List',
     暫無數據:'No data',
     新建的學生名單:'New name list...',

+ 6 - 4
HiTeachCC/ClientApp/src/locale/lang/zh-CN/index.js

@@ -37,6 +37,7 @@ export default {
     目前沒有動作可復原: '目前没有动作可复原'
   },
   board: {
+    hiTitle:'网页版',
     前往:'前往',
     Gpt安裝提示標題:'安装提示',
     GPT安裝提示字:'<p>您具备使用GPT工具之权限,建议可使用chrome或edge的电脑版浏览器,<br>并前往下载安装扩充套件,以支持GPT相关扩充功能,重新启动登入即可使用!</p>',
@@ -76,7 +77,7 @@ export default {
     匯出PDF: '导出PDF',
     匯出課堂記錄: '导出课堂记录',
     插入PDF:'插入PDF',
-    自訂學生名單:'自订学生名单',
+    自訂學生名單:'新增IES5简易名单',
     PDFInit:{
       開啟PDF檔案: '开启PDF档案',
       從:'从',
@@ -336,8 +337,8 @@ export default {
     請選擇學生名單:'请选择上课名单',
     創建自訂學生名單:'创建预存的学生名单',
     使用IES5課程名單:'使用IES5课程名单',
-    點選左側指定可加入的學生名單: '点击左侧清单选择预存的名单',
-    點選Hi進行編輯:'如需编辑预存名单,请按下一步进入系统后从Hi菜单操作',
+    點選左側指定可加入的學生名單: '点击左侧清单选择IES5的名单',
+    點選Hi進行編輯:'如需编辑IES5名单,请按下一步进入系统后从Hi菜单操作',
     下一步:'下一步',
     上一步:'上一步',
     編輯學生:'编辑学生',
@@ -353,7 +354,8 @@ export default {
     表單名稱不可為空:'名称不可为空',
     確定刪除後這個名單將無法復原:'确定删除后这个名单将无法复原!',
     刪除:'删除',
-    自訂學生名單:'编辑预存名单',
+    自訂學生名單:'新增IES5简易名单',
+    新增說明:'目前仅简易提供于HiTeach课程类别下(HiTeach-)新增名单功能,如需使用其他课程类别,编辑或删除等进阶管理请于IES5设置,新增后请重新整理方可使用',
     創建名單:'创建名单',
     暫無數據:'暂无数据',
     新建的學生名單:'创建的学生名单...',

+ 6 - 4
HiTeachCC/ClientApp/src/locale/lang/zh-TW/index.js

@@ -37,6 +37,7 @@ export default {
     目前沒有動作可復原: '目前沒有動作可復原',
   },
   board: {
+    hiTitle:'網頁版',
     前往:'前往',
     Gpt安裝提示標題:'安裝提示',
     GPT安裝提示字:'<p>您具備使用GPT工具之權限,建議可使Chrome或Edge的電腦版瀏覽器,<br>並前往下載安裝擴充套件,以支持GPT相關擴充功能,重新啟動登入即可使用!</p>',
@@ -76,7 +77,7 @@ export default {
     匯出PDF: '匯出PDF',
     匯出課堂記錄: '匯出課堂記錄',
     插入PDF:'插入PDF',
-    自訂學生名單:'編輯自訂名單',
+    自訂學生名單:'新增IES5簡易名單',
     PDFInit:{
       開啟PDF檔案: '使用PDF簡報',
       從:'從',
@@ -364,8 +365,8 @@ export default {
     請選擇學生名單:'請選擇上課名單',
     創建自訂學生名單:'新建立預存的學生名單',
     使用IES5課程名單:'使用IES5課程名單',
-    點選左側指定可加入的學生名單:'點選左側列表選擇預存的名單',
-    點選Hi進行編輯:'如需編修預存名單,請按下一步進入系統後從Hi選單操作',
+    點選左側指定可加入的學生名單:'點選左側列表選擇IES5的名單',
+    點選Hi進行編輯:'如需新增名單,請按下一步進入系統後從Hi選單操作',
     下一步:'下一步',
     上一步:'上一步',
     編輯學生:'編輯學生',
@@ -381,7 +382,8 @@ export default {
     表單名稱不可為空:'表單名稱不可為空',
     確定刪除後這個名單將無法復原:'確定刪除後這個名單將無法復原!',
     刪除:'刪除',
-    自訂學生名單:'編輯預存名單',
+    自訂學生名單:'新增IES5簡易名單',
+    新增說明:'目前僅簡易提供於HiTeach課程類別下(HiTeach-)新增名單功能,如需使用其他課程類別,編輯或刪除等進階管理請於IES5設置,新增後請重新整理方可使用',
     創建名單:'新建名單',
     暫無數據:'暫無數據',
     新建的學生名單:'新建的學生名單...',

+ 27 - 9
HiTeachCC/ClientApp/src/views/Board.vue

@@ -129,6 +129,7 @@
           <div slot="footer">
             <div class="screen-title-top">
               <div class="screen-title-icon"><svg-icon icon-class="htc_cc" /></div>
+              <div class="screen-title-text">{{ $t("board['hiTitle']") }}</div>
               <!-- {{ $t("board['歡迎使用HiTeachCC來進行互動']") }}<br /-->{{ !showMemberlist ? $t("board['請選擇開始的動作']") : $t("memberlist['請選擇學生名單']") }}
               <div class="memberlist-page" v-show="showMemberlist&&isAuthAccount()!=0">
                 <!-- <div class="previusImgBtn2" ><svg-icon icon-class="previusImgBtn" class="ImgBtn-icon" /></div> -->
@@ -137,7 +138,7 @@
                 
                 <div class="memberlist-wrap" v-if="customMemberlist!=''">
                   <div class="listitems">
-                    <div class="listitem" v-for="(list,index) in customMemberlist" :key="'initList'+index" @click="setCurrentMemberList(list)" :class="{ 'listitem-light': currentMemberList.id == list.id&&!isUseIES5studentList }">
+                    <div class="listitem" v-for="(list,index) in customMemberlist" :key="'initList'+index" @click="setCurrentMemberList(list)" :class="{ 'listitem-light': currentMemberList.listID == list.listID&&!isUseIES5studentList }">
                       {{ list.name }} 
                     </div>
                   </div>
@@ -246,7 +247,10 @@
     <!--Hi界面-->
     <div class="q-pa-md row items-start q-gutter-md" v-if="Hishow">
       <q-card class="hi-card">
-        <div class="hicard-title-icon"><svg-icon icon-class="htc_cc" /></div>
+        <div class="hi-card-title">
+          <div class="hicard-title-icon"><svg-icon icon-class="htc_cc" /></div>
+          <span class="hi-title">{{ $t("board['hiTitle']") }}</span>
+        </div>
         <div class="section">
           <!--Upload action="" :on-success="handleUploadSuc" :accept="Accept" :format="Format" :on-exceeded-size="handleMaxSize" :on-format-error="handleFormatError" :before-upload="" class="hicard-btn" @click="uploadPDF"-->
           <!--<div class="open-other">-->
@@ -7372,7 +7376,21 @@ export default {
       this.students=[]
       if(Object.keys(this.currentMemberList).length > 0){
 
-      this.memberList = Object.keys(this.currentMemberList).length == 0 ? [] : JSON.parse(JSON.stringify(this.currentMemberList?.list))
+      let tempMemberList=[]
+      this.currentMemberList?.list?.forEach((item)=>{
+        let tempStudent={
+          memberID: item.memberID||item.id,
+          memberName: item.memberName||item.name,
+          seatID: item.seatID||item.irs,
+          groupName: null,
+          groupID: null,
+          isHiGroup: false
+        }
+        tempMemberList.push(tempStudent)
+      })
+
+
+      this.memberList = Object.keys(this.currentMemberList).length == 0 ? [] : tempMemberList
       this.verifyMode = Object.keys(this.currentMemberList).length == 0 ? "Dynamic" : "Fixed";
       this.allowSitin = true
 
@@ -7380,10 +7398,10 @@ export default {
       if(this.currentMemberList?.list){
       this.currentMemberList?.list?.forEach((item)=>{
           let student = {
-              sort: item.seatID,
+              sort: item.seatID||item.irs,
               id: '',
-              accountid: item.memberID,
-              studentName: item.memberName,
+              accountid: item.memberID||item.id,
+              studentName: item.memberName||item.name,
               sendTime: time,
               headImg: '',
               option: '',
@@ -7514,6 +7532,8 @@ export default {
     
      //帶入自訂名單偏好設定20250523 先註解
     // this.customMemberlist=this.getPREFMemberList?this.getPREFMemberList.length!=0?await this.$refs.editMemberList.fetchCCroster():[]:[]
+    const fetchCCroster=await this.$refs.editMemberList.fetchCCroster()
+    console.log(fetchCCroster,"fetchCCroster")
     const res=await this.$api.ies5Api.getIES5TeacherInfo()
     
     if (res.courses && Array.isArray(res.courses)) {
@@ -7521,7 +7541,7 @@ export default {
       res.courses.forEach(course => {
         if (course.classes && Array.isArray(course.classes)) {
           const classItems = course.classes.map(classItem => ({
-            id: classItem.stuListId,
+            listID: classItem.stuListId,
             name: `${course.name || ''}-${classItem.name || ''}`
           }));
           this.customMemberlist = [...this.customMemberlist, ...classItems];
@@ -7529,8 +7549,6 @@ export default {
       });
     }
 
-    console.log(this.customMemberlist, "7519");
-
 
     this.getStorageSize("session");