Преглед изворни кода

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

CrazyIter_Bin пре 1 година
родитељ
комит
e851212efe

+ 8 - 1
TEAMModelOS/ClientApp/public/lang/en-US.js

@@ -1708,7 +1708,14 @@ const LANG_EN_US = {
                 textImage:'Draw Notes',
                 image:'Picture',
                 file:'File',
-                audio:'Audio'
+                audio: 'Audio',
+                autoScore: 'Automatic Scoring',
+                answerLang: 'Language',
+                us: 'English',
+                zh: 'Mandarin',
+                jp: 'Japanese',
+                kr: 'Korean',
+                hk: 'Cantonese'
             },
             newSchoolItem: 'Create School Question',
             newPrivateItem: 'Create Personal Question',

+ 8 - 1
TEAMModelOS/ClientApp/public/lang/zh-CN.js

@@ -1707,7 +1707,14 @@ const LANG_ZH_CN = {
                 textImage:'标记',
                 image:'图片',
                 file:'文档',
-                audio:'音频'
+                audio:'音频',
+                autoScore:'自动评分',
+                answerLang:'语言类型',
+                us:'英语',
+                zh:'普通话',
+                jp:'日语',
+                kr:'韩语',
+                hk:'粤语'
             },
             newSchoolItem: '新建学校题目',
             newPrivateItem: '新建个人题目',

+ 149 - 142
TEAMModelOS/ClientApp/public/lang/zh-TW.js

@@ -1089,7 +1089,7 @@ const LANG_ZH_TW = {
         copyUrl: '複製網址',
         joinMessage1: "允許加入課程",
         joinMessage2: "禁止加入課程",
-        defaultDesc:'雲端個人課程',
+        defaultDesc: '雲端個人課程',
         inviteInfo1: '邀請加入醍摩豆雲平臺IES教師個人課程',
         inviteInfo2: '課程名稱:',
         inviteInfo3: '課程名單:',
@@ -1710,7 +1710,14 @@ const LANG_ZH_TW = {
                 textImage: '標記',
                 image: '圖片',
                 file: '文檔',
-                audio: '音頻'
+                audio: '音頻',
+                autoScore: '自動評分',
+                answerLang: '語言類型',
+                us: '英語',
+                zh: '國語',
+                jp: '日語',
+                kr: '韓語',
+                hk: '粵語'
             },
             newSchoolItem: '新增學校題目',
             newPrivateItem: '新增個人題目',
@@ -3468,7 +3475,7 @@ const LANG_ZH_TW = {
         },
         registModal: {
             title: '驗證手機',
-            form : {
+            form: {
                 placeholder: {
                     phone: '請輸入手機',
                     pindCode: '請輸入驗證碼'
@@ -3670,7 +3677,7 @@ const LANG_ZH_TW = {
         delete: '刪除',
         view: '查看',
         edit: '編輯',
-        tableIsNaN:'尚無成績表',
+        tableIsNaN: '尚無成績表',
         noNotify: '暫無公告',
         notifyDetail: '公告詳情',
         delNotifyTitle: '刪除公告',
@@ -7730,146 +7737,146 @@ const LANG_ZH_TW = {
             totalTime: '總時間數'
         }
     },
-    scoreCalc:{
-        creatDate:'建立日期',
-        customInput:'手動輸入',
-        onlineClass:'線上課堂',
-        onlineHomeWork:'線上作業',
-        IRSnumber:'IRS',
-        addTableInfo:'請先新增成績表',
-        newTable:'新成績統計表',
-        newProject:'新項目',
-        subItem:'子項目',
-        notRated:'未評分',
-        tableIsNaN:'尚無成績表',
-        isNaN:'內容為空',
-        description1:'底線字',
-        description1_2:'可點擊編輯細項',
-        blueWord:'藍字',
-        canModifyable:'可修改',
-        description2:'可修改內容,(括弧)的數字為分數 x 百分比%的結果',
-        simple_complete:'精簡模式/完整模式',  
-        title:'標題',              
-        name:'姓名',
-        id:'學號',
-        class:'課堂',
-        th_homework:'作業',
-        th_exam:'評量',
-        totalScore:'總評分',
-        PRScore:'PR值',
-        gradesInClass:'課堂細項成績',    
-        attendType: "出席狀態",    
-        attend:'出席',//英文版Attendance
-        point:'記分板',
-        interactiveScore:'互動分',
-        attend2:'出席',//英文版Attend
-        leave:'請假',//英文版leave
-        absence:'缺席',//英文版Abs
-        sickLeave:'病假',//英文版SL
-        personalLeave:'事假',//英文版PL
-        publicLeave:'公假',//英文版PH
-        absence2:'缺席',//英文版Absence
-        sickLeave2:'病假',//英文版Sick leave
-        personalLeave2:'事假',//英文版Personal leave
-        publicLeave2:'公假',//英文版Public holiday
-        isSave:'已存檔',
-        notSave:'未存檔',
-        delete:'刪除',
-        export:'匯出',
-        print:'列印',
-        save:'儲存',
-        scoreCalculation:'成績計算',
-        simpleAttendanceCalculation:'簡單出席計算法',
-        attendanceCalculationMethod:'出席率計算法',
-        customCalculation:'自訂計算',
-        percentageScore:'標準化評分',
-        standardizedsScoring:'百分比評分',
-        customScoring:'自訂評分',
-        calculationDescription1:'教師根據學生的出席情況,直接給予分數。通常是以全勤為標準,缺席一次扣一定分數。',
-        calculationDescription2:'請輸入一次缺席扣多少分數',
-        marks:'分',
-        example:'範例:',
-        attendance:'出席成績',
-        fullMarksAttend:'出席滿分',
-        attendPercentage:'出席百分比',
-        absences:'缺席次數',
-        calculationDescription3:'缺席一次扣 ',
-        calculationFormula:'計算公式',
-        calculationDescription4:'勾選即為缺席狀態:',                   
-        checkOk:'確定',
-        cancel:'取消',
-        calculationDescription5:'根據學生的出席次數計算出席率,再以此作為出席分數的依據。出席率以百分比表示,例如出席率超過90%可得滿分,每低於一個百分點扣一定分數。',
-        calculationDescription6:'每缺席1% 扣',
-        attendanceOver:'出席率超過',
-        isFullMark:'% 為滿分',
-        classGrades:'課堂成績:',
-        totalNumberClasses:'課堂總次數',
-        attendQwen:'出席次數', 
-        formula:'公式:',
-        calculationDescription7:'請依照下列變數填寫計算公式:',
-        numberOfSick:'病假次數',
-        numberOfPerson:'事假次數',
-        numberOfPublic:'公假次數',
-        calculationDescription8:'公式範例(以下直接以出席率為出席分數):',
-        calculationDescription9:'※可使用excel公式寫!',
-        instantPreview:'算式寫法即時預覽',
-        calculationDescription10:'使用標準化方法將學生的得分轉換為標準分數。',
-        gravityCalculationScore:'比重計算分數',
-        averageScore:'平均分數',
-        standardDeviation:'標準差',
-        standardScoreZFormula:'標準分數(Z)公式:',
-        derivedStandardScoreTFormula:'衍生標準分數(T)公式:',
-        calculationDescription11:'(通常用於解決小數及負數問題)',
-        indicatesAverageScore:'表示平均分數',
-        calculationDescription12:'將學生的得分除以活動的最高分數。然後乘以100,即可計算出學生的百分比評分。',
-        highestScore:'最高分數',
-        calculationDescription13:'請依照下列變數填寫計算公式:',        
-        classQwen:'課堂總數',
-        totalScoreClass:'全班總分',        
-        totalNumberStudents:'學生總數',
-        formulaExample:'公式範例:',
-        writtenas:'寫法為:',
-        scoreboardScore:'記分板成績',          
+    scoreCalc: {
+        creatDate: '建立日期',
+        customInput: '手動輸入',
+        onlineClass: '線上課堂',
+        onlineHomeWork: '線上作業',
+        IRSnumber: 'IRS',
+        addTableInfo: '請先新增成績表',
+        newTable: '新成績統計表',
+        newProject: '新項目',
+        subItem: '子項目',
+        notRated: '未評分',
+        tableIsNaN: '尚無成績表',
+        isNaN: '內容為空',
+        description1: '底線字',
+        description1_2: '可點擊編輯細項',
+        blueWord: '藍字',
+        canModifyable: '可修改',
+        description2: '可修改內容,(括弧)的數字為分數 x 百分比%的結果',
+        simple_complete: '精簡模式/完整模式',
+        title: '標題',
+        name: '姓名',
+        id: '學號',
+        class: '課堂',
+        th_homework: '作業',
+        th_exam: '評量',
+        totalScore: '總評分',
+        PRScore: 'PR值',
+        gradesInClass: '課堂細項成績',
+        attendType: "出席狀態",
+        attend: '出席',//英文版Attendance
+        point: '記分板',
+        interactiveScore: '互動分',
+        attend2: '出席',//英文版Attend
+        leave: '請假',//英文版leave
+        absence: '缺席',//英文版Abs
+        sickLeave: '病假',//英文版SL
+        personalLeave: '事假',//英文版PL
+        publicLeave: '公假',//英文版PH
+        absence2: '缺席',//英文版Absence
+        sickLeave2: '病假',//英文版Sick leave
+        personalLeave2: '事假',//英文版Personal leave
+        publicLeave2: '公假',//英文版Public holiday
+        isSave: '已存檔',
+        notSave: '未存檔',
+        delete: '刪除',
+        export: '匯出',
+        print: '列印',
+        save: '儲存',
+        scoreCalculation: '成績計算',
+        simpleAttendanceCalculation: '簡單出席計算法',
+        attendanceCalculationMethod: '出席率計算法',
+        customCalculation: '自訂計算',
+        percentageScore: '標準化評分',
+        standardizedsScoring: '百分比評分',
+        customScoring: '自訂評分',
+        calculationDescription1: '教師根據學生的出席情況,直接給予分數。通常是以全勤為標準,缺席一次扣一定分數。',
+        calculationDescription2: '請輸入一次缺席扣多少分數',
+        marks: '分',
+        example: '範例:',
+        attendance: '出席成績',
+        fullMarksAttend: '出席滿分',
+        attendPercentage: '出席百分比',
+        absences: '缺席次數',
+        calculationDescription3: '缺席一次扣 ',
+        calculationFormula: '計算公式',
+        calculationDescription4: '勾選即為缺席狀態:',
+        checkOk: '確定',
+        cancel: '取消',
+        calculationDescription5: '根據學生的出席次數計算出席率,再以此作為出席分數的依據。出席率以百分比表示,例如出席率超過90%可得滿分,每低於一個百分點扣一定分數。',
+        calculationDescription6: '每缺席1% 扣',
+        attendanceOver: '出席率超過',
+        isFullMark: '% 為滿分',
+        classGrades: '課堂成績:',
+        totalNumberClasses: '課堂總次數',
+        attendQwen: '出席次數',
+        formula: '公式:',
+        calculationDescription7: '請依照下列變數填寫計算公式:',
+        numberOfSick: '病假次數',
+        numberOfPerson: '事假次數',
+        numberOfPublic: '公假次數',
+        calculationDescription8: '公式範例(以下直接以出席率為出席分數):',
+        calculationDescription9: '※可使用excel公式寫!',
+        instantPreview: '算式寫法即時預覽',
+        calculationDescription10: '使用標準化方法將學生的得分轉換為標準分數。',
+        gravityCalculationScore: '比重計算分數',
+        averageScore: '平均分數',
+        standardDeviation: '標準差',
+        standardScoreZFormula: '標準分數(Z)公式:',
+        derivedStandardScoreTFormula: '衍生標準分數(T)公式:',
+        calculationDescription11: '(通常用於解決小數及負數問題)',
+        indicatesAverageScore: '表示平均分數',
+        calculationDescription12: '將學生的得分除以活動的最高分數。然後乘以100,即可計算出學生的百分比評分。',
+        highestScore: '最高分數',
+        calculationDescription13: '請依照下列變數填寫計算公式:',
+        classQwen: '課堂總數',
+        totalScoreClass: '全班總分',
+        totalNumberStudents: '學生總數',
+        formulaExample: '公式範例:',
+        writtenas: '寫法為:',
+        scoreboardScore: '記分板成績',
         lessonRecordTitle: '課堂紀錄',
         homeworkTitle: '作業活動',
-        examTitle: '評量活動',        
-        totalRate:'總加權',
-        itemName:'項目名稱',
-        percentage:'百分比',
-        tickIncludedScore:'↓勾選則計入成績。 ',
-        dropSort:'※拖曳可排序',
-        itemRate:'比重',
-        logStudentScore:'編輯學生分數',
-        average:'平均',
-        loging:'登錄',
-        score:'成績',
-        attendState:'※出席分數:1出席 2缺席 4病假 5事假 6公假',
-        pasteMultiple:' 多筆貼上',
-        pasteEXCEL:' ※可直接從EXCEL貼上',       
-        back:'返回',        
-        warringTotalRate:'總加權不可超過100%',
-        dataIsSave:'資料已儲存',
-        remind:'提醒',
-        remindMessage1:'有未儲存的設定,要繼續切換活動項目嗎?',
-        remindMessage2:'有未儲存的設定,要繼續新增活動項目嗎?',
-        deleteRemind1:'刪除活動子項目',
-        remindMessage3:'活動子項目數據刪除後將無法找回,確認刪除當前活動子項目嗎?',
-        deleteRemind2:'刪除活動項目',
-        remindMessage4:'活動項目已刪除',
-        remindMessage5:'分數登錄完成',
-        remindMessage6:'有未儲存的設定,確定要繼續嗎?',
-        scoreCalc:'成績計算',        
-        modifyContent:'可修改內容       ',
-        ask:'詢問',
-        DelTableQuestion:'成績表數據刪除後將無法找回,確認刪除此成績表嗎?',
-        saveAsk:'是否確定要儲存此資料表所有內容呢?', 
-        addAsk:'是否確定要新增活動項目呢?',
-        APIerr:'API請求失敗',    
-        AddScoreSheet:'新增成績表',
-        chooseAddWay:'請選擇新增成績表的方式',
-        addNewTable:'新增"新"成績表',
-        InheritTable:'沿用成績表',
-        addTableNotice:'注意:新增的成績表成績以當下系統有的成績為準,成績表成績沒有跟其他功能連動',
+        examTitle: '評量活動',
+        totalRate: '總加權',
+        itemName: '項目名稱',
+        percentage: '百分比',
+        tickIncludedScore: '↓勾選則計入成績。 ',
+        dropSort: '※拖曳可排序',
+        itemRate: '比重',
+        logStudentScore: '編輯學生分數',
+        average: '平均',
+        loging: '登錄',
+        score: '成績',
+        attendState: '※出席分數:1出席 2缺席 4病假 5事假 6公假',
+        pasteMultiple: ' 多筆貼上',
+        pasteEXCEL: ' ※可直接從EXCEL貼上',
+        back: '返回',
+        warringTotalRate: '總加權不可超過100%',
+        dataIsSave: '資料已儲存',
+        remind: '提醒',
+        remindMessage1: '有未儲存的設定,要繼續切換活動項目嗎?',
+        remindMessage2: '有未儲存的設定,要繼續新增活動項目嗎?',
+        deleteRemind1: '刪除活動子項目',
+        remindMessage3: '活動子項目數據刪除後將無法找回,確認刪除當前活動子項目嗎?',
+        deleteRemind2: '刪除活動項目',
+        remindMessage4: '活動項目已刪除',
+        remindMessage5: '分數登錄完成',
+        remindMessage6: '有未儲存的設定,確定要繼續嗎?',
+        scoreCalc: '成績計算',
+        modifyContent: '可修改內容       ',
+        ask: '詢問',
+        DelTableQuestion: '成績表數據刪除後將無法找回,確認刪除此成績表嗎?',
+        saveAsk: '是否確定要儲存此資料表所有內容呢?',
+        addAsk: '是否確定要新增活動項目呢?',
+        APIerr: 'API請求失敗',
+        AddScoreSheet: '新增成績表',
+        chooseAddWay: '請選擇新增成績表的方式',
+        addNewTable: '新增"新"成績表',
+        InheritTable: '沿用成績表',
+        addTableNotice: '注意:新增的成績表成績以當下系統有的成績為準,成績表成績沒有跟其他功能連動',
     },
     activity: {
         scoreWord: {

+ 10 - 0
TEAMModelOS/ClientApp/src/utils/evTools.js

@@ -46,6 +46,8 @@ export default {
 					explain: item.explain,
 					type: item.type,
 					answerType: item.answerType || 'text',
+					useAutoScore: item.useAutoScore || false,
+					answerLang: item.answerLang || 'en-US',
 					objective: this.getItemType(item.type),
 					opts: item.option ? item.option.length : 0,
 					knowledge: item.knowledge,
@@ -86,6 +88,8 @@ export default {
 				type: item.type,
 				answer: item.answer || [],
 				answerType: item.answerType || 'text',
+				useAutoScore: item.useAutoScore || false,
+				answerLang: item.answerLang || 'en-US',
 				objective: this.getItemType(item.type),
 				question: this.getSimpleText(item.question),
 				knowledge: item.knowledge,
@@ -177,6 +181,8 @@ export default {
 			jsonData.exercise.code = tmdId
 			jsonData.exercise.option = jsonData.item[0].option
 			jsonData.exercise.answerType = jsonData.item[0].answerType || 'text'
+			jsonData.exercise.useAutoScore = jsonData.item[0].useAutoScore || false
+			jsonData.exercise.answerLang = jsonData.item[0].answerLang || 'en-US'
 			jsonData.exercise.id = jsonData.id
 			jsonData.exercise.scope = 'private'
 			jsonData.exercise.pid = jsonData.pid
@@ -259,6 +265,8 @@ export default {
 							jsonData.id = list[i].id
 							jsonData.exercise.question = jsonData.item[0].question
 							jsonData.exercise.answerType = jsonData.item[0].answerType || 'text'
+							jsonData.exercise.useAutoScore = jsonData.item[0].useAutoScore || false
+							jsonData.exercise.answerLang = jsonData.item[0].answerLang || 'en-US'
 							jsonData.exercise.createTime = list[i].createTime || 0
 							jsonData.exercise.blob = list[i].blob
 							jsonData.exercise.code = list[i].code
@@ -432,6 +440,8 @@ export default {
 						// 调整渲染试题数据结构
 						jsonData.exercise.question = jsonData.item[0].question
 						jsonData.exercise.answerType = jsonData.item[0].answerType || 'text'
+						jsonData.exercise.useAutoScore = jsonData.item[0].useAutoScore || false
+						jsonData.exercise.answerLang = jsonData.item[0].answerLang || 'en-US'
 						jsonData.exercise.blob = url
 						jsonData.exercise.code = code
 						jsonData.exercise.option = jsonData.item[0].option

+ 3 - 0
TEAMModelOS/ClientApp/src/view/evaluation/components/BaseEditExercise.vue

@@ -297,6 +297,9 @@ export default {
           break;
         case "subjective":
           exerciseItem.question = this.$refs.subjective.stemContent;
+           exerciseItem.answerType = this.$refs.subjective.answerType; // 02040301 问答题增加作答类型字段
+          exerciseItem.useAutoScore = this.$refs.subjective.useAutoScore; // 02040301 问答题增加作答类型字段
+          exerciseItem.answerLang = this.$refs.subjective.answerLang; // 02040301 问答题增加作答类型字段
           exerciseItem.option = [];
           exerciseItem.type = this.exersicesType;
           exerciseItem.level = +this.exersicesDiff;

+ 5 - 1
TEAMModelOS/ClientApp/src/view/evaluation/index/CreateExercises.vue

@@ -174,7 +174,9 @@ const defaultExercise = {
   answer: [],
   explain: "",
   type: "",
-  answerType:'text'
+  answerType:'text',
+  useAutoScore: false,
+	answerLang: "en-US",
 };
 export default {
   components: {
@@ -357,6 +359,8 @@ export default {
           exerciseItem.level = +this.exersicesDiff;
           exerciseItem.explain = this.analysisContent;
           exerciseItem.answerType = this.$refs.subjective.answerType; // 02040301 问答题增加作答类型字段
+          exerciseItem.useAutoScore = this.$refs.subjective.useAutoScore; // 02040301 问答题增加作答类型字段
+          exerciseItem.answerLang = this.$refs.subjective.answerLang; // 02040301 问答题增加作答类型字段
           exerciseItem.answer = [this.$refs.subjective.answerContent];
           break;
         case "connector":

+ 22 - 8
TEAMModelOS/ClientApp/src/view/evaluation/types/BaseSubjective.vue

@@ -9,11 +9,23 @@
 		<div class="exersices-content answer-type">
 			<IconText :text="$t('evaluation.newExercise.answerType.types')" :color="'#07ac88'" :icon="'md-chatbubbles'"></IconText>
 			<div class="types">
-				<span :class="['type-item', answerType === 'text' ? 'type-item-active' : '']" @click="answerType = 'text'">{{ $t('evaluation.newExercise.answerType.text') }}</span>
-				<span :class="['type-item', answerType === 'text_Image' ? 'type-item-active' : '']" @click="answerType = 'text_Image'">{{ $t('evaluation.newExercise.answerType.textImage') }}</span>
-				<span :class="['type-item', answerType === 'Image' ? 'type-item-active' : '']" @click="answerType = 'Image'">{{ $t('evaluation.newExercise.answerType.image') }}</span>
-				<span :class="['type-item', answerType === 'file' ? 'type-item-active' : '']" @click="answerType = 'file'">{{ $t('evaluation.newExercise.answerType.file') }}</span>
-				<span :class="['type-item', answerType === 'audio' ? 'type-item-active' : '']" @click="answerType = 'audio'">{{ $t('evaluation.newExercise.answerType.audio') }}</span>
+				<span :class="['type-item', answerType === 'text' ? 'type-item-active' : '']" @click="answerType = 'text'">{{ $t("evaluation.newExercise.answerType.text") }}</span>
+				<span :class="['type-item', answerType === 'text_Image' ? 'type-item-active' : '']" @click="answerType = 'text_Image'">{{ $t("evaluation.newExercise.answerType.textImage") }}</span>
+				<span :class="['type-item', answerType === 'Image' ? 'type-item-active' : '']" @click="answerType = 'Image'">{{ $t("evaluation.newExercise.answerType.image") }}</span>
+				<span :class="['type-item', answerType === 'file' ? 'type-item-active' : '']" @click="answerType = 'file'">{{ $t("evaluation.newExercise.answerType.file") }}</span>
+				<span :class="['type-item', answerType === 'audio' ? 'type-item-active' : '']" @click="answerType = 'audio'">{{ $t("evaluation.newExercise.answerType.audio") }}</span>
+				<div style="display: inline-block;" v-if="answerType === 'audio'"> 
+					<span style="margin-right: 10px">{{ $t("evaluation.newExercise.answerType.autoScore") }}</span>
+					<i-switch v-model="useAutoScore" />
+					<span style="margin: 10px 20px">{{ $t("evaluation.newExercise.answerType.answerLang") }}</span>
+					<Select v-model="answerLang" style="width: 150px">
+						<Option value="en-US">{{ $t("evaluation.newExercise.answerType.us") }}(en-US)</Option>
+						<Option value="zh">{{ $t("evaluation.newExercise.answerType.zh") }}(zh) </Option>
+						<Option value="ja-JP">{{ $t("evaluation.newExercise.answerType.jp") }}(ja-JP)</Option>
+						<Option value="ko-KR">{{ $t("evaluation.newExercise.answerType.kr") }}(ko-KR)</Option>
+						<Option value="zh-HK">{{ $t("evaluation.newExercise.answerType.hk") }}(zh-HK)</Option>
+					</Select>
+				</div>
 			</div>
 		</div>
 		<div class="exersices-option">
@@ -44,6 +56,8 @@
 		data() {
 			return {
 				answerType: "text",
+				useAutoScore: false,
+				answerLang: "en-US",
 				stemContent: "",
 				stemEditor: null,
 				answerContent: "",
@@ -54,7 +68,7 @@
 			doRender() {
 				this.stemContent = this.editInfo.question;
 				this.answerContent = this.editInfo.answer[0];
-				this.answerType = this.editInfo.answerType || 'text'
+				this.answerType = this.editInfo.answerType || "text";
 				this.stemEditor.txt.html(this.editInfo.question);
 				this.answerEditor.txt.html(this.editInfo.answer[0]);
 			}
@@ -110,8 +124,8 @@
 			margin-top: 20px;
 			border: 1px solid #dddddd;
 			cursor: pointer;
-			&-active{
-				background: #10ABE7;
+			&-active {
+				background: #10abe7;
 				color: #fff;
 			}
 		}