فهرست منبع

CF99 介接ies5 名單(UI 待調整)

Louise lin 2 هفته پیش
والد
کامیت
147de2ae57

+ 44 - 1
HiTeachCC/ClientApp/src/api/ies5Api.js

@@ -71,5 +71,48 @@ export default {
                 reject(err)
             })
         })
-    }
+    },
+
+    // 取得我所有的IES5課程名單
+    getIES5TeacherInfo: function() {
+        return new Promise((resolve, reject) => {
+            post(apiUrl + '/hiteach/get-teacher-info').then(res => {
+                resolve(res)
+            }, err => {
+                reject(err)
+            })
+        })
+    },
+
+    getIES5StudentsListByCourse: function(data) {
+        return new Promise((resolve, reject) => {
+            post(apiUrl + '/hiteach/get-students-list', data).then(res => {
+                resolve(res)
+            }, err => {
+                reject(err)
+            })
+        })
+    },
+    // 建立簡易名單
+    createIES5StudentList: function(data) {
+        return new Promise((resolve, reject) => {
+            post(apiUrl + '/course-base/create-simple', data).then(res => {
+                resolve(res)
+            }, err => {
+                reject(err)
+            })
+        })
+    },
+    // 更新簡易名單
+    updateIES5StudentListMember: function(data) {
+        return new Promise((resolve, reject) => {
+            post(apiUrl + '/course-base/update-simple-member', data).then(res => {
+                resolve(res)
+            }, err => {
+                reject(err)
+            })
+        })
+    },
+
+
 }

+ 3 - 0
HiTeachCC/ClientApp/src/assets/css/Board.less

@@ -230,9 +230,12 @@
     border-width: 2px;
     border-radius: 4px;
     border: 1px solid #ccc !important;
+    max-height: 180px;
+    overflow: hidden;
     
     .listitems {
       flex:1;
+      overflow: auto;
       .listitem-light{
         color: blue;
         border: 1px solid blue !important;

+ 14 - 4
HiTeachCC/ClientApp/src/components/EditMemberList.vue

@@ -57,8 +57,8 @@
       </div>
       <div class="memberlist-wrap" v-if="!isCustomMemberlistEmpty()">
         <div class="listitems">
-          <div class="listitem" v-for="(list, index) in $parent.customMemberlist" :key="list.listName + index" @click="setCurrentMemberList(list)" :class="{ 'listitem-light': $parent.currentMemberList.listID == list.listID }">
-            {{ list.listName }}
+          <div class="listitem"  v-for="(list,index) in $parent.customMemberlist" :key="'edList'+index" @click="setCurrentMemberList(list)" :class="{ 'listitem-light': $parent.currentMemberList.id == list.id }">
+            {{ list.name }}
           </div>
         </div>
         <div class="listDetail" :style="{ 'min-height': tableHeight + 'px' }">
@@ -169,8 +169,18 @@ export default {
     checkUserKeyboardInputSeatID(e) {
       if (e.keyCode == 69 || (this.hasNonNumeric(e.key) && e.keyCode !== 8)) e.preventDefault();
     },
-    setCurrentMemberList(list) {
-      this.$parent.currentMemberList = list;
+    async setCurrentMemberList(list) {
+      const res=await this.$api.ies5Api.getIES5StudentsListByCourse({
+        "grant_type":"private",
+        "stulist_id":list.id
+      });
+     
+      this.$parent.currentMemberList ={
+        id:list.id,
+        name:list.name,
+        list: res.students
+      }
+      console.log(this.$parent.currentMemberList,"183")
       this.$parent.memberList = Object.keys(this.$parent.currentMemberList).length == 0 ? [] : this.$parent.currentMemberList.list;
       this.$parent.verifyMode = Object.keys(this.$parent.currentMemberList).length == 0 ? "Dynamic" : "Fixed";
       this.currentEditStudent = {};

+ 23 - 8
HiTeachCC/ClientApp/src/views/Board.vue

@@ -137,12 +137,12 @@
                 
                 <div class="memberlist-wrap" v-if="customMemberlist!=''">
                   <div class="listitems">
-                    <div class="listitem" v-for="(list, index) in customMemberlist" :key="list.listName + index" @click="setCurrentMemberList(list)" :class="{ 'listitem-light': currentMemberList.listID == list.listID&&!isUseIES5studentList }">
-                      {{ list.listName }}
+                    <div class="listitem" v-for="(list,index) in customMemberlist" :key="'initList'+index" @click="setCurrentMemberList(list)" :class="{ 'listitem-light': currentMemberList.id == list.id&&!isUseIES5studentList }">
+                      {{ list.name }} 
                     </div>
                   </div>
                   <div class="listDetail">
-                    <div class="list-stu" v-show="Object.keys(currentMemberList).length >= 0" v-for="(stu, index) in currentMemberList.list" :key="index + stu.seatID + stu.memberName">{{ stu.seatID }} {{ stu.memberName }}</div>
+                    <div class="list-stu" v-show="Object.keys(currentMemberList).length >= 0" v-for="(stu, index) in currentMemberList.list" :key="index + stu.irs">{{ stu.irs }}{{ stu.name }}</div>
                     <div class="list-info" v-show="Object.keys(currentMemberList).length == 0">
                       <p>{{ $t("memberlist['點選左側指定可加入的學生名單']") }}</p>
                       <p>{{ $t("memberlist['點選Hi進行編輯']") }}</p>
@@ -6870,7 +6870,6 @@ export default {
         IRSBlockSize: this.$store.state.tempIRSBlockSize, // IRS Block 大小
         pens: this.$store.state.tempPenstate,
         gptActionList:this.$store.state.tempGptActionList,
-        memberListIDs:this.customMemberlist.map(item=>item.listID)
       };
       this.$Spin.show(); // 畫面loading表現你可以自己調整
       await this.$store.dispatch("preferences/updProfilePREF", data).then(() => {
@@ -7046,7 +7045,7 @@ export default {
       else if (isPureAccount && this.classInfo.isIES5) type = 2;
       else if (!isPureAccount && this.classInfo.isIES5) type = 3;
       console.log(type,'AuthType',this.$store.state.loginType)
-      return type;
+      return 3;
     },
     isAuthOpenAIAccount(){
       return this.getFunc("aigpt")?.active
@@ -7445,7 +7444,7 @@ export default {
     },
   },
 
-  created() {
+  async created() {
     // 初始植
     this.activityRecordNumberS = this.classInfo.activityRecordNumber;
 
@@ -7513,8 +7512,24 @@ export default {
     if (sessionStorage.getItem("currentAnsOption")) this.setAnsOption(sessionStorage.getItem("currentAnsOption"));
     else this.setAnsOption(this.getPREFMCQType);
     
-     //帶入自訂名單偏好設定
-    this.customMemberlist=this.getPREFMemberList?this.getPREFMemberList.length!=0?await this.$refs.editMemberList.fetchCCroster():[]:[]
+     //帶入自訂名單偏好設定20250523 先註解
+    // this.customMemberlist=this.getPREFMemberList?this.getPREFMemberList.length!=0?await this.$refs.editMemberList.fetchCCroster():[]:[]
+    const res=await this.$api.ies5Api.getIES5TeacherInfo()
+    
+    if (res.courses && Array.isArray(res.courses)) {
+      this.customMemberlist = [];
+      res.courses.forEach(course => {
+        if (course.classes && Array.isArray(course.classes)) {
+          const classItems = course.classes.map(classItem => ({
+            id: classItem.stuListId,
+            name: `${course.name || ''}-${classItem.name || ''}`
+          }));
+          this.customMemberlist = [...this.customMemberlist, ...classItems];
+        }
+      });
+    }
+
+    console.log(this.customMemberlist, "7519");
 
 
     this.getStorageSize("session");