Browse Source

Merge branch 'develop' of http://52.130.252.100:10000/TEAMMODEL/TEAMModelOS into develop

CrazyIter_Bin 1 year ago
parent
commit
a5321ed418

+ 4 - 0
TEAMModelOS.SDK/Models/Service/GroupListService.cs

@@ -1022,6 +1022,10 @@ namespace TEAMModelOS.SDK
             else
             else
             {
             {
                 var semesterGroupList = await GetGroupListSemester(client, classes, school,type:null,periodId:null ,no:null, time);
                 var semesterGroupList = await GetGroupListSemester(client, classes, school,type:null,periodId:null ,no:null, time);
+                if (semesterGroupList.rgroupList.IsNotEmpty()) {
+                    groupLists.AddRange(semesterGroupList.rgroupList);
+                    members.AddRange(semesterGroupList.rmembers);
+                }
                 classes = classes.Except(semesterGroupList.rgroupList.Select(y => y.id)).ToList();
                 classes = classes.Except(semesterGroupList.rgroupList.Select(y => y.id)).ToList();
                 if (classes.IsNotEmpty()) {
                 if (classes.IsNotEmpty()) {
                     Dictionary<string, List<RGroupList>> groups = new Dictionary<string, List<RGroupList>>();
                     Dictionary<string, List<RGroupList>> groups = new Dictionary<string, List<RGroupList>>();

+ 24 - 24
TEAMModelOS/ClientApp/public/lang/en-US.js

@@ -364,7 +364,7 @@ const LANG_EN_US = {
         isShowLines: 'Sealing line',
         isShowLines: 'Sealing line',
         objective: 'Objective Question',
         objective: 'Objective Question',
         complete: 'Cloze Question',
         complete: 'Cloze Question',
-        subjective: 'Writing Question',
+        subjective: 'Subjective Question',
         compositionZh: 'Essay(Language)',
         compositionZh: 'Essay(Language)',
         compositionEn: 'Essay(English)',
         compositionEn: 'Essay(English)',
         tip1: 'Question Number',
         tip1: 'Question Number',
@@ -576,8 +576,8 @@ const LANG_EN_US = {
         pdName6: 'Haboard Smarter Touchscreen',
         pdName6: 'Haboard Smarter Touchscreen',
         pdName7: 'AI Lecture Observation Lounge',
         pdName7: 'AI Lecture Observation Lounge',
         pdName8: 'Sokrates',
         pdName8: 'Sokrates',
-        pdName9: '藝術評測服務',
-        pdName10: '五育看板',
+        pdName9: 'Art Assessment Service',
+        pdName10: 'All-round Quality Dashboard',
         authDate: 'Expiry Date:',
         authDate: 'Expiry Date:',
         fuAuth: 'Authorized Function:',
         fuAuth: 'Authorized Function:',
         IRSnumber: 'Web IRS No.:',
         IRSnumber: 'Web IRS No.:',
@@ -870,12 +870,12 @@ const LANG_EN_US = {
     },
     },
     newCusMgt: {
     newCusMgt: {
         irs: {
         irs: {
-            batchSetting: 'Batch setting seat number (IRS number)',
-            batchText: 'Batch modification',
-            cancel: 'Cancel batch settings',
-            repeatTip: 'These seat numbers (IRS numbers) are duplicated, please check and try again:',
-            allowPick: 'Allow self-selected seat number',
-            pickTip: 'If the seat number you selected is already occupied, it will be automatically assigned by the system'
+            batchSetting: 'Batch set seat No. (IRS No.)',
+            batchText: 'Save',
+            cancel: 'Cancel',
+            repeatTip: 'These seat No. (IRS No.) are duplicated, please check and try again:',
+            allowPick: 'Allow students to choose their seat No.',
+            pickTip: 'If the seat No. you selected is already used, it will be automatically assigned by the system'
         },
         },
         configCourse: 'Assigned courses this semester',
         configCourse: 'Assigned courses this semester',
         recommendFiles: 'Lesson Backup data',
         recommendFiles: 'Lesson Backup data',
@@ -1084,7 +1084,7 @@ const LANG_EN_US = {
         schoolType: 'In-school Account',
         schoolType: 'In-school Account',
         tmIDType: 'ID',
         tmIDType: 'ID',
         qrCodeText: 'Invitation Code:',
         qrCodeText: 'Invitation Code:',
-        inviteUrl: 'Copy description with URL',
+        inviteUrl: 'Copy URL with description',
         inviteShortUrl: 'Copy URL only',
         inviteShortUrl: 'Copy URL only',
         copyUrl: 'Copy Link',
         copyUrl: 'Copy Link',
         joinMessage1: "Allowed to join the course",
         joinMessage1: "Allowed to join the course",
@@ -1356,7 +1356,7 @@ const LANG_EN_US = {
         //MgtStuList.vue
         //MgtStuList.vue
         nameList: 'Name list',
         nameList: 'Name list',
         remvStu: 'Remove Student',
         remvStu: 'Remove Student',
-        editStu: 'Set IRS number',
+        editStu: 'Auto-set IRS number',
         goBack: 'Click to go back',
         goBack: 'Click to go back',
         delListTitle: 'Delete Customized Class',
         delListTitle: 'Delete Customized Class',
         notSet: 'Not set',
         notSet: 'Not set',
@@ -1659,7 +1659,7 @@ const LANG_EN_US = {
         multiple: 'Multiple Answers',
         multiple: 'Multiple Answers',
         judge: 'True-False',
         judge: 'True-False',
         complete: 'Cloze',
         complete: 'Cloze',
-        subjective: 'Writing',
+        subjective: 'Subjective',
         connector: 'Matching',
         connector: 'Matching',
         correct: 'Correcting',
         correct: 'Correcting',
         compose: 'Question Set',
         compose: 'Question Set',
@@ -1831,8 +1831,8 @@ const LANG_EN_US = {
             choosePaper: 'Select exam file',
             choosePaper: 'Select exam file',
             choosed: 'Deselect',
             choosed: 'Deselect',
             searchPaper: 'Enter exam file name to search...',
             searchPaper: 'Enter exam file name to search...',
-            copyTip1: 'Use ',
-            copyTip2: 'Duplicate'
+            copyTip1: 'Are you sure you want to duplicate ',
+            copyTip2: 'to create a new exam file'
         },
         },
         importFile: {
         importFile: {
             uploadSuc: 'Exam file uploaded and parsed successfully!',
             uploadSuc: 'Exam file uploaded and parsed successfully!',
@@ -1842,7 +1842,7 @@ const LANG_EN_US = {
             importTips: 'Import Notice',
             importTips: 'Import Notice',
             tips1: ' Click on the upload icon above to select a file',
             tips1: ' Click on the upload icon above to select a file',
             tips2: ' Only support ".docx, .xlsx, .xls" format file import, please refer to the template format to import',
             tips2: ' Only support ".docx, .xlsx, .xls" format file import, please refer to the template format to import',
-            tips3: ' For now, only single answer, multiple answers, true-false, cloze, writing, matching, correcting, and question set are supported for import',
+            tips3: ' For now, only single answer, multiple answers, true-false, cloze, subjective, matching, correcting, and question set are supported for import',
             tips4: ' Please keep the template language the same as the current browser language',
             tips4: ' Please keep the template language the same as the current browser language',
             tips5: ' For more details, please refer to the template making instruction',
             tips5: ' For more details, please refer to the template making instruction',
             tips8: '',
             tips8: '',
@@ -2016,7 +2016,7 @@ const LANG_EN_US = {
             value: "complete"
             value: "complete"
         },
         },
         {
         {
-            label: "Writing",
+            label: "Subjective",
             value: "subjective"
             value: "subjective"
         },
         },
         {
         {
@@ -3000,7 +3000,7 @@ const LANG_EN_US = {
             calcing: 'Result data are being processed now.,',
             calcing: 'Result data are being processed now.,',
             clickFresh: 'Click here to refresh',
             clickFresh: 'Click here to refresh',
             inCalc: 'The data is being processed, please check later',
             inCalc: 'The data is being processed, please check later',
-            total: 'Total Score ',
+            total: 'Total Score',
             avgScore1: 'Total Average Score',
             avgScore1: 'Total Average Score',
             totalLabel: 'Total Quantity',
             totalLabel: 'Total Quantity',
             scoreMat: 'Score Segment',
             scoreMat: 'Score Segment',
@@ -4687,7 +4687,7 @@ const LANG_EN_US = {
             value: "complete"
             value: "complete"
         },
         },
         {
         {
-            label: "Writing",
+            label: "Subjective",
             value: "subjective"
             value: "subjective"
         },
         },
         {
         {
@@ -5112,7 +5112,7 @@ const LANG_EN_US = {
                 multiple: 'Multiple Answers Question',
                 multiple: 'Multiple Answers Question',
                 judge: 'True-False Question',
                 judge: 'True-False Question',
                 complete: 'Cloze Question',
                 complete: 'Cloze Question',
-                subjective: 'Writing Question',
+                subjective: 'Subjective Question',
                 compose: 'Question Set',
                 compose: 'Question Set',
                 correct: 'Correcting Question',
                 correct: 'Correcting Question',
                 connector: 'Matching Question'
                 connector: 'Matching Question'
@@ -5592,7 +5592,7 @@ const LANG_EN_US = {
     },
     },
     // 问卷调查
     // 问卷调查
     survey: {
     survey: {
-        pickTip: 'To comply with the survey activity question template, we only keep the single answer, multiple answers, true-false, and writing questions from the exam file. Are you sure you want to continue?',
+        pickTip: 'To comply with the survey activity question template, we only keep the single answer, multiple answers, true-false, and subjective questions from the exam file. Are you sure you want to continue?',
         pickTip2: 'Please select an exam file first',
         pickTip2: 'Please select an exam file first',
         pickPaper: 'Select questions from the question bank',
         pickPaper: 'Select questions from the question bank',
         noItemTip: 'The content of the survey cannot be empty',
         noItemTip: 'The content of the survey cannot be empty',
@@ -5611,7 +5611,7 @@ const LANG_EN_US = {
         single: 'Single Answer Question',
         single: 'Single Answer Question',
         multiple: 'Multiple Answers Question',
         multiple: 'Multiple Answers Question',
         judge: 'True-False Question',
         judge: 'True-False Question',
-        subjective: 'Writing Question',
+        subjective: 'Subjective Question',
         defaultName: 'Default Survey Name',
         defaultName: 'Default Survey Name',
         isExistTip: 'Unsaved survey activity already exists!',
         isExistTip: 'Unsaved survey activity already exists!',
         getDataFailTip: 'Failed to obtain data!',
         getDataFailTip: 'Failed to obtain data!',
@@ -5667,7 +5667,7 @@ const LANG_EN_US = {
             single: 'Single Answer',
             single: 'Single Answer',
             multiple: 'Multiple Answers',
             multiple: 'Multiple Answers',
             judge: 'True-False',
             judge: 'True-False',
-            subjective: 'Writing',
+            subjective: 'Subjective',
             noCompleteTip: 'Please fill in completely',
             noCompleteTip: 'Please fill in completely',
             confirmTitle: 'Friendly Reminder',
             confirmTitle: 'Friendly Reminder',
             confirmText: 'Are you sure to delete this question?',
             confirmText: 'Are you sure to delete this question?',
@@ -6837,7 +6837,7 @@ const LANG_EN_US = {
         ql_text3: 'Multiple Answers Question',
         ql_text3: 'Multiple Answers Question',
         ql_text4: 'True-False Question',
         ql_text4: 'True-False Question',
         ql_text5: 'Cloze Question',
         ql_text5: 'Cloze Question',
-        ql_text6: 'Writing Question',
+        ql_text6: 'Subjective Question',
         ql_text7: 'Question Set',
         ql_text7: 'Question Set',
         ql_text8: ' points',
         ql_text8: ' points',
         ql_text9: 'View Answer and Explanation',
         ql_text9: 'View Answer and Explanation',
@@ -6940,7 +6940,7 @@ const LANG_EN_US = {
             quType1: 'Single Answer',
             quType1: 'Single Answer',
             quType2: 'Multiple Answer',
             quType2: 'Multiple Answer',
             quType3: 'True-false',
             quType3: 'True-false',
-            quType4: 'Writing',
+            quType4: 'Subjective',
             trainType1: 'Demonstration and sharing of IT teaching cases',
             trainType1: 'Demonstration and sharing of IT teaching cases',
             trainType2: 'Expert Specialized Training',
             trainType2: 'Expert Specialized Training',
             trainType3: 'Homogeneous Pedagogy',
             trainType3: 'Homogeneous Pedagogy',

+ 1 - 1
TEAMModelOS/ClientApp/public/lang/zh-TW.js

@@ -576,7 +576,7 @@ const LANG_ZH_TW = {
         pdName6: 'Haboard醍摩豆智慧大屏',
         pdName6: 'Haboard醍摩豆智慧大屏',
         pdName7: '教研中心模組',
         pdName7: '教研中心模組',
         pdName8: '蘇格拉底',
         pdName8: '蘇格拉底',
-        pdName9: '藝術評服務',
+        pdName9: '藝術評服務',
         pdName10: '五育看板',
         pdName10: '五育看板',
         authDate: '有效期:',
         authDate: '有效期:',
         fuAuth: '功能權限:',
         fuAuth: '功能權限:',

+ 1 - 1
TEAMModelOS/ClientApp/src/common/BaseLayout.vue

@@ -1084,7 +1084,7 @@
 											role: "admin",
 											role: "admin",
 											permission: "dashboard-read",
 											permission: "dashboard-read",
 											menuName: "artDashboard",
 											menuName: "artDashboard",
-											isShow: true
+											isShow: !this.isQingYangArea
 										},
 										},
 										// 校园风采(针对青羊区放出)
 										// 校园风采(针对青羊区放出)
 										// {
 										// {

+ 3 - 1
TEAMModelOS/ClientApp/src/view/student-web/AppNew.vue

@@ -856,7 +856,7 @@ export default {
                     // 从学生的入学年到现在
                     // 从学生的入学年到现在
                     if(this.userInfo.year <= (oldYear + i)) {
                     if(this.userInfo.year <= (oldYear + i)) {
                         // 只展示到当前学期
                         // 只展示到当前学期
-                        if(Semester.year === (oldYear + i) && Semester.semesterIndex === 1) {
+                        if(Semester.year === (oldYear + i) && Semester.semesterId === semesterArr[j].id) {
                             arr.push({
                             arr.push({
                                 year: oldYear + i,
                                 year: oldYear + i,
                                 name: semesterArr[j].name,
                                 name: semesterArr[j].name,
@@ -878,6 +878,8 @@ export default {
                         }
                         }
                     }
                     }
                 }
                 }
+                // 展示到当前学期,跳出循环,不显示未来学期
+                if(Semester.year === (oldYear + i) && Semester.semesterId === arr[arr.length - 1].id) break
             }
             }
             this.semesterLists = arr
             this.semesterLists = arr
             this.selectSemester = this.semesterLists.findIndex((i) => i.year === Semester.year && i.id === Semester.semesterId);
             this.selectSemester = this.semesterLists.findIndex((i) => i.year === Semester.year && i.id === Semester.semesterId);

+ 3 - 2
TEAMModelOS/Controllers/Client/HiTeachController.cs

@@ -659,7 +659,7 @@ namespace TEAMModelOS.Controllers.Client
                 // 轉換為短網址
                 // 轉換為短網址
                 string shortUrl = await GetShortUrl(Uri.EscapeUriString(longUrl));
                 string shortUrl = await GetShortUrl(Uri.EscapeUriString(longUrl));
 
 
-                return Ok(new { code = 200, result = shortUrl });
+                return Ok(new { code = 200, result = shortUrl, groupListId = groupListWithCourseTaskId.groupList.id});
             }
             }
             catch (Exception ex)
             catch (Exception ex)
             {
             {
@@ -1099,7 +1099,7 @@ namespace TEAMModelOS.Controllers.Client
                 string hostWithProtocol = uri.GetLeftPart(UriPartial.Authority);
                 string hostWithProtocol = uri.GetLeftPart(UriPartial.Authority);
 
 
                 string longUrl = $"{hostWithProtocol}/joinclass?listName={groupList.name}&cusDesc=暫無資料&cusId={_courseTaskId.GetString()}&tName={_teacherName.GetString()}" +
                 string longUrl = $"{hostWithProtocol}/joinclass?listName={groupList.name}&cusDesc=暫無資料&cusId={_courseTaskId.GetString()}&tName={_teacherName.GetString()}" +
-                    $"&listNo={groupList.no}&cusName={_courseName.GetString()}&m=前往加入課程:{_courseName.GetString()}{groupList.name}&o=1";
+                    $"&listNo={groupList.no}&cusName={_courseName.GetString()}&m=前往加入課程:{_courseName.GetString()}{groupList.name}&o=1";               
 
 
                 string shortUrl = await GetShortUrl(Uri.EscapeUriString(longUrl));
                 string shortUrl = await GetShortUrl(Uri.EscapeUriString(longUrl));
                 #endregion               
                 #endregion               
@@ -1108,6 +1108,7 @@ namespace TEAMModelOS.Controllers.Client
                 {
                 {
                     code = 200,
                     code = 200,
                     shortUrl = shortUrl,
                     shortUrl = shortUrl,
+                    longUrl = $"{hostWithProtocol}/joinclass?listName={groupList.name}&cusId={_courseTaskId.GetString()}&tName={_teacherName.GetString()}&listNo={groupList.no}&cusName={_courseName.GetString()}&m=前往加入課程:{_courseName.GetString()}{groupList.name}&o=1",
                     joinLock = groupList.joinLock,
                     joinLock = groupList.joinLock,
                     limitCount = groupList.limitCount,
                     limitCount = groupList.limitCount,
                     isOptionalSeat = groupList.optNo == 1 ? true : false,
                     isOptionalSeat = groupList.optNo == 1 ? true : false,