Jelajahi Sumber

自訂名單:權益控制

Louise lin 2 tahun lalu
induk
melakukan
00a3a2061c

+ 12 - 5
HiTeachCC/ClientApp/src/components/EditMemberList.vue

@@ -47,15 +47,15 @@
       <div class="closebtn" @click="closeEditMemberList()"><img src="@/statics/iconsvg/interaction/Close.svg" class="q-icon" /></div>
       <div class="closebtn" @click="closeEditMemberList()"><img src="@/statics/iconsvg/interaction/Close.svg" class="q-icon" /></div>
       <p class="editmemberlist-title">{{ $t("memberlist['自訂學生名單']") }}</p>
       <p class="editmemberlist-title">{{ $t("memberlist['自訂學生名單']") }}</p>
       <!--選單控制按鈕外部-->
       <!--選單控制按鈕外部-->
-      <div class="editmemberlist-rightbtns" v-show="$parent.customMemberlist.length > 0">
+      <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="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="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="delete-btn" @click="showCorfirmDelete = true"><svg-icon icon-class="trash-alt-solid" /></div>
       </div>
       </div>
-      <div class="editmemberlist-empty" v-show="$parent.customMemberlist.length == 0">
+      <div class="editmemberlist-empty" v-show="isCustomMemberlistEmpty()">
         <div @click="openAddMemberList()"><svg-icon icon-class="new-page" class="add-icon" /><br />{{ $t("memberlist['創建名單']") }}</div>
         <div @click="openAddMemberList()"><svg-icon icon-class="new-page" class="add-icon" /><br />{{ $t("memberlist['創建名單']") }}</div>
       </div>
       </div>
-      <div class="memberlist-wrap" v-if="$parent.customMemberlist.length > 0">
+      <div class="memberlist-wrap" v-if="!isCustomMemberlistEmpty()">
         <div class="listitems">
         <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 }">
           <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 }}
             {{ list.listName }}
@@ -64,7 +64,7 @@
         <div class="listDetail" :style="{ 'min-height': tableHeight + 'px' }">
         <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>
           <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="editmemberlist-bottombtns" v-show="$parent.customMemberlist.length > 0">
+          <div class="editmemberlist-bottombtns" v-show="!isCustomMemberlistEmpty()">
             <div class="edit-btn" @click="addStudent()"><svg-icon icon-class="new-page" /></div>
             <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="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 class="delete-btn" v-show="Object.keys(currentEditStudent).length !== 0" @click="deleteStudent()"><svg-icon icon-class="trash-alt-solid" /></div>
@@ -157,6 +157,11 @@ export default {
     },
     },
   },
   },
   methods: {
   methods: {
+    isCustomMemberlistEmpty() {
+      if (this.$parent.customMemberlist) {
+        return this.$parent.customMemberlist?.length == 0;
+      } else return true;
+    },
     checkUserKeyboardInputSeatID(e) {
     checkUserKeyboardInputSeatID(e) {
       if (e.keyCode == 69 || (this.hasNonNumeric(e.key) && e.keyCode !== 8)) e.preventDefault();
       if (e.keyCode == 69 || (this.hasNonNumeric(e.key) && e.keyCode !== 8)) e.preventDefault();
     },
     },
@@ -176,11 +181,12 @@ export default {
       this.Hishow = false;
       this.Hishow = false;
     },
     },
     openAddMemberList() {
     openAddMemberList() {
+      let autolength = this.$parent.customMemberlist ? this.$parent.customMemberlist.length : 0;
       this.showAddMemberList = true;
       this.showAddMemberList = true;
       this.tempAddMemberList = [];
       this.tempAddMemberList = [];
       this.addMemberListErrRow = [];
       this.addMemberListErrRow = [];
       this.addMemberListErrMsg = [];
       this.addMemberListErrMsg = [];
-      this.currentEditMemberListName = this.$t("memberlist['自訂名單']") + (this.$parent.customMemberlist.length + 1);
+      this.currentEditMemberListName = this.$t("memberlist['自訂名單']") + (autolength + 1);
       this.currentEditMemberList = {};
       this.currentEditMemberList = {};
       this.addmemberlisttext = "";
       this.addmemberlisttext = "";
       this.showAddMemberAutoSeatIDMsg = false;
       this.showAddMemberAutoSeatIDMsg = false;
@@ -276,6 +282,7 @@ export default {
       }
       }
     },
     },
     savecustomMemberlist() {
     savecustomMemberlist() {
+      this.$parent.customMemberlist = this.$parent.customMemberlist ? this.$parent.customMemberlist : [];
       if (this.addMemberListErrMsg.length === 0 && this.addmemberlisttext != "" && this.tempAddMemberList.length != 0 && this.currentEditMemberListName != "") {
       if (this.addMemberListErrMsg.length === 0 && this.addmemberlisttext != "" && this.tempAddMemberList.length != 0 && this.currentEditMemberListName != "") {
         this.$parent.customMemberlist.push({
         this.$parent.customMemberlist.push({
           listName: this.currentEditMemberListName,
           listName: this.currentEditMemberListName,

+ 12 - 7
HiTeachCC/ClientApp/src/views/Board.vue

@@ -106,11 +106,11 @@
             <div class="screen-title-top">
             <div class="screen-title-top">
               <div class="screen-title-icon"><svg-icon icon-class="htc_cc" /></div>
               <div class="screen-title-icon"><svg-icon icon-class="htc_cc" /></div>
               <!-- {{ $t("board['歡迎使用HiTeachCC來進行互動']") }}<br /-->{{ !showMemberlist ? $t("board['請選擇開始的動作']") : $t("memberlist['請選擇學生名單']") }}
               <!-- {{ $t("board['歡迎使用HiTeachCC來進行互動']") }}<br /-->{{ !showMemberlist ? $t("board['請選擇開始的動作']") : $t("memberlist['請選擇學生名單']") }}
-              <div class="memberlist-page" v-show="showMemberlist">
+              <div class="memberlist-page" v-show="showMemberlist&&isAuthAccount()!=0">
                 <!-- <div class="previusImgBtn2" ><svg-icon icon-class="previusImgBtn" class="ImgBtn-icon" /></div> -->
                 <!-- <div class="previusImgBtn2" ><svg-icon icon-class="previusImgBtn" class="ImgBtn-icon" /></div> -->
                 <div class="memberfreebtn" @click="setCurrentMemberList({})" :class="{ 'memberfreebtn-light': Object.keys(currentMemberList).length == 0 }">{{$t("memberlist['自由加入']")}}</div>
                 <div class="memberfreebtn" @click="setCurrentMemberList({})" :class="{ 'memberfreebtn-light': Object.keys(currentMemberList).length == 0 }">{{$t("memberlist['自由加入']")}}</div>
-                <div class="memberfreebtn" @click="openEditMemberListAtInit()" v-if="customMemberlist.length == 0">{{$t("memberlist['創建自訂學生名單']")}}</div>
-                <div class="memberlist-wrap" v-if="customMemberlist.length > 0">
+                <div class="memberfreebtn" @click="openEditMemberListAtInit()" v-if="customMemberlist==''">{{$t("memberlist['創建自訂學生名單']")}}</div>
+                <div class="memberlist-wrap" v-if="customMemberlist!=''">
                   <div class="listitems">
                   <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 }">
                     <div class="listitem" v-for="(list, index) in customMemberlist" :key="list.listName + index" @click="setCurrentMemberList(list)" :class="{ 'listitem-light': currentMemberList.listID == list.listID }">
                       {{ list.listName }}
                       {{ list.listName }}
@@ -123,7 +123,7 @@
                     </div>
                     </div>
                   </div>
                   </div>
                 </div>
                 </div>
-                <div class="page-btn" @click="showMemberlist = false">{{$t("memberlist['下一步']")}}</div>
+                <div class="page-btn" @click="showMemberlist = false" >{{$t("memberlist['下一步']")}}</div>
               </div>
               </div>
             </div>
             </div>
             <div v-show="!showMemberlist">
             <div v-show="!showMemberlist">
@@ -161,7 +161,7 @@
                   <div class="setting-btn" :class="{ 'setting-btn-light': this.$store.state.currentAnsOption == 'En' }" @click="setAnsOption('En')"><svg-icon icon-class="SetAnsEn" /></div>
                   <div class="setting-btn" :class="{ 'setting-btn-light': this.$store.state.currentAnsOption == 'En' }" @click="setAnsOption('En')"><svg-icon icon-class="SetAnsEn" /></div>
                   <div class="setting-btn" :class="{ 'setting-btn-light': this.$store.state.currentAnsOption == 'Num' }" @click="setAnsOption('Num')"><svg-icon icon-class="SetAns" /></div>
                   <div class="setting-btn" :class="{ 'setting-btn-light': this.$store.state.currentAnsOption == 'Num' }" @click="setAnsOption('Num')"><svg-icon icon-class="SetAns" /></div>
                 </div>
                 </div>
-                <div class="page-btn cancel-btn" @click="showMemberlist = true">{{$t("memberlist['上一步']")}}</div>
+                <div class="page-btn cancel-btn" @click="showMemberlist = true" v-show="isAuthAccount()!=0">{{$t("memberlist['上一步']")}}</div>
               </div>
               </div>
             </div>
             </div>
             <div class="limit-text">
             <div class="limit-text">
@@ -6851,12 +6851,16 @@ export default {
     // 初始植
     // 初始植
     this.activityRecordNumberS = this.classInfo.activityRecordNumber;
     this.activityRecordNumberS = this.classInfo.activityRecordNumber;
 
 
+    // 權益
     console.log(this.getFunc("works"), "works"); // 作品收集任務數
     console.log(this.getFunc("works"), "works"); // 作品收集任務數
     console.log(this.getFunc("clients"), "clients"); // 連線人數
     console.log(this.getFunc("clients"), "clients"); // 連線人數
     this.limitTime = this.getFunc("clients").isDeadline == true ? moment(this.getFunc("clients").exp * 1000).format("YYYY.MM.DD") : 0;
     this.limitTime = this.getFunc("clients").isDeadline == true ? moment(this.getFunc("clients").exp * 1000).format("YYYY.MM.DD") : 0;
     console.log(this.limitTime, "exptime");
     console.log(this.limitTime, "exptime");
     this.limitCollate = this.getFunc("works").para;
     this.limitCollate = this.getFunc("works").para;
     this.limitClient = this.getFunc("clients").para;
     this.limitClient = this.getFunc("clients").para;
+
+    this.showMemberlist=this.isAuthAccount()==0?false:true
+
     // this.loginCallback();
     // this.loginCallback();
     this.init();
     this.init();
     this.isRequestReBuild = sessionStorage.getItem("isRequestReBuild");
     this.isRequestReBuild = sessionStorage.getItem("isRequestReBuild");
@@ -6883,8 +6887,7 @@ export default {
     console.log(this.classInfo, "classInfo");
     console.log(this.classInfo, "classInfo");
     console.log(this.blobConnect);
     console.log(this.blobConnect);
 
 
-    //帶入自訂名單偏好設定
-    this.customMemberlist=this.getPREFMemberList
+   
   },
   },
 
 
   async mounted() {
   async mounted() {
@@ -6895,6 +6898,8 @@ export default {
     let that = this;
     let that = this;
     if (sessionStorage.getItem("currentAnsOption")) this.setAnsOption(sessionStorage.getItem("currentAnsOption"));
     if (sessionStorage.getItem("currentAnsOption")) this.setAnsOption(sessionStorage.getItem("currentAnsOption"));
     else this.setAnsOption(this.getPREFMCQType);
     else this.setAnsOption(this.getPREFMCQType);
+     //帶入自訂名單偏好設定
+    this.customMemberlist=this.getPREFMemberList
 
 
     this.getStorageSize("session");
     this.getStorageSize("session");