瀏覽代碼

课堂记录模块多语系配置

liqk 3 年之前
父節點
當前提交
d365529e3e

+ 38 - 0
TEAMModelOS/ClientApp/src/locale/lang/en-US/cusMgt.js

@@ -333,5 +333,43 @@ export default {
         parseErr: 'Failed to parse login information',
         cusLabel: 'Course:',
         toTeammodel: 'Go to TEAM Model Cloud now!>>>'
+    },
+
+    //ClassRecord.vue
+    rcd: {
+        ctime: '上課時間:',
+        rtn: '返回',
+        rcdLabel: '互動記錄',
+        enote: '電子筆記',
+        sokrateRpt: '蘇格拉底報告',
+        dataCount: '數據統計',
+        allRcd: '所有記錄',
+        qustion: '即問即答',
+        message: '飛訊',
+        image: '圖片',
+        file: '附件',
+        link: '超鏈接',
+        cw: '課件第',
+        page: '頁',
+        pageNoRcd: '此頁沒有互動數據',
+        di: '第',
+        dataErr: '獲取數據失敗',
+        noNote: '暫無電子筆記',
+        crtRate: '正確率',
+        correct: '正確',
+        wrong: '錯誤',
+        attendCount: '出席人數',
+        gCount: '小組數',
+        taskCount: '任務總數',
+        colctCount: '作品總數',
+        pushCount: '推送總數',
+        totalScore: '總計分',
+        examCount: '測驗總數',
+        quCount: '互動題數',
+        scoreRate: '測驗得分率',
+        interactionCount: '學生互動總數',
+        intUnit: '次/人',
+        optionCount: '選項分佈',
+        tPushLabel: '教師推送了一張圖:'
     }
 }

+ 38 - 0
TEAMModelOS/ClientApp/src/locale/lang/zh-CN/cusMgt.js

@@ -333,5 +333,43 @@ export default {
         parseErr:'登录信息解析失败',
         cusLabel:'课程:',
         toTeammodel:'即刻前往醍摩豆云平台>>>'
+    },
+
+    //ClassRecord.vue
+    rcd:{
+        ctime:'上课时间:',
+        rtn:'返回',
+        rcdLabel:'互动记录',
+        enote:'电子笔记',
+        sokrateRpt:'苏格拉底报告',
+        dataCount:'数据统计',
+        allRcd:'所有记录',
+        qustion:'即问即答',
+        message:'飞讯',
+        image:'图片',
+        file:'附件',
+        link:'超链接',
+        cw:'课件第',
+        page:'页',
+        pageNoRcd:'此页没有互动数据',
+        di:'第',
+        dataErr:'获取数据失败',
+        noNote:'暂无电子笔记',
+        crtRate:'正确率',
+        correct:'正确',
+        wrong:'错误',
+        attendCount:'出席人数',
+        gCount:'小组数',
+        taskCount:'任务总数',
+        colctCount:'作品总数',
+        pushCount:'推送总数',
+        totalScore:'总计分',
+        examCount:'测验总数',
+        quCount:'互动题数',
+        scoreRate:'测验得分率',
+        interactionCount:'学生互动总数',
+        intUnit:'次/人',
+        optionCount:'选项分布',
+        tPushLabel:'教师推送了一张图:'
     }
 }

+ 151 - 113
TEAMModelOS/ClientApp/src/locale/lang/zh-TW/cusMgt.js

@@ -7,11 +7,11 @@ export default {
     editCus: '編輯課程',
     cusName: '課程名稱',
     cNameHolder: '請輸入課程名稱',
-    cNameErr:'課程名稱不能包含空格',
+    cNameErr: '課程名稱不能包含空格',
     cusCode: '課程編碼',
     codeHolder: '請輸入課程編碼',
-    cusDesc:'課程描述',
-    descHolder:'請輸入課程描述',
+    cusDesc: '課程描述',
+    descHolder: '請輸入課程描述',
     cusPd: '課程學制',
     pdHolder: '請選擇學制',
     cusSubject: '課程學科',
@@ -95,45 +95,45 @@ export default {
     qu: '問卷',
     hw: '工作',
     sl: '自主學習',
-    acTime:'活動時間',
-    private:'個人',
-    school:'學校',     
-    noRecord:'暫無課堂記錄',
-    groupTips:'溫馨提示:當前分組為編制班分組,任課教師可前往HiTeach端自定義分組。 ',
-    noSchoolStu:'暫未加入學校無法新增學校學生,可以建立自定義名單,學生通過掃碼加入名單!',
-    qrCodeLabel:'掃碼加入名單',
-    hasDelClass:'(此班已被刪除)',
-    hasDelList:'(名單已被刪除)',
-    schoolType:'校內帳號',
-    tmIDType:'用户編號',
-    qrCodeText:'邀請碼:',
-    inviteUrl:'邀請鏈接:',
-    copyUrl:'複製鏈接',
-    createTips1:'溫馨提示:您(已加入學校)可以挑選學校學生加入課程或讓學生通過輸入課程邀請碼、掃描課程二維碼、課程鏈接方式主動加入課程。 ',
-    createTips2:'溫馨提示:您(暫未加入學校)可讓學生通過輸入課程邀請碼、掃描課程二維碼、課程鏈接方式主動加入課程。 ',
-    renameListTitle:'修改名稱',
-    selectListTips:'請選擇名單',
-    alreadyExist:'已在課程名單',
-    listAPIErr:'名單列表獲取失敗',
-    justRmList:'僅從課程名單移除(沒有真正刪除,名單可繼續使用)',
-    permDelList:'永久刪除 (如果其他課程在使用名單也會關聯刪除)',
-    listSaveOk:'保存/更新成功',
-    listSaveErr:'保存/更新失敗',
-    listExp:'名單異常無法創建二維碼',
-    getListErr:'獲取名單數據失敗',
-    hasGraduate:'已畢業',
-    notStart:'未到入學時間',
-    noNote:'暫無電子筆記',
-    duration:'時長:',
-    noData:'暫無數據',
-    rcdErr:'查詢課堂記錄失敗',
+    acTime: '活動時間',
+    private: '個人',
+    school: '學校',
+    noRecord: '暫無課堂記錄',
+    groupTips: '溫馨提示:當前分組為編制班分組,任課教師可前往HiTeach端自定義分組。 ',
+    noSchoolStu: '暫未加入學校無法新增學校學生,可以建立自定義名單,學生通過掃碼加入名單!',
+    qrCodeLabel: '掃碼加入名單',
+    hasDelClass: '(此班已被刪除)',
+    hasDelList: '(名單已被刪除)',
+    schoolType: '校內帳號',
+    tmIDType: '用户編號',
+    qrCodeText: '邀請碼:',
+    inviteUrl: '邀請鏈接:',
+    copyUrl: '複製鏈接',
+    createTips1: '溫馨提示:您(已加入學校)可以挑選學校學生加入課程或讓學生通過輸入課程邀請碼、掃描課程二維碼、課程鏈接方式主動加入課程。 ',
+    createTips2: '溫馨提示:您(暫未加入學校)可讓學生通過輸入課程邀請碼、掃描課程二維碼、課程鏈接方式主動加入課程。 ',
+    renameListTitle: '修改名稱',
+    selectListTips: '請選擇名單',
+    alreadyExist: '已在課程名單',
+    listAPIErr: '名單列表獲取失敗',
+    justRmList: '僅從課程名單移除(沒有真正刪除,名單可繼續使用)',
+    permDelList: '永久刪除 (如果其他課程在使用名單也會關聯刪除)',
+    listSaveOk: '保存/更新成功',
+    listSaveErr: '保存/更新失敗',
+    listExp: '名單異常無法創建二維碼',
+    getListErr: '獲取名單數據失敗',
+    hasGraduate: '已畢業',
+    notStart: '未到入學時間',
+    noNote: '暫無電子筆記',
+    duration: '時長:',
+    noData: '暫無數據',
+    rcdErr: '查詢課堂記錄失敗',
     delRcd: '删除',
     delRcdTitle: '删除課堂記錄',
     delRcdContent: '課堂記錄數據删除後將無法找回,確認删除當前課堂記錄嗎?',
-    
+
     //ManageClass.vue
-    stuMgt:'學生管理',
-    classNotice:'班級公告',
+    stuMgt: '學生管理',
+    classNotice: '班級公告',
     classLabel: '班級:',
     stuCount: '學生人數:',
     autoGroup: '自動分組',
@@ -142,14 +142,14 @@ export default {
     viewport2: '清單視圖',
     noStu: '暫無學生',
     resetPw: '重置密碼',
-    resetPwContent1:'確認重置',
-    resetPwContent2:'的密碼',
-    resetPwContent3:'確認批量重置',
-    resetPwContent4:'個學生的密碼',
-    resetPwOk:'重置成功',
+    resetPwContent1: '確認重置',
+    resetPwContent2: '的密碼',
+    resetPwContent3: '確認批量重置',
+    resetPwContent4: '個學生的密碼',
+    resetPwOk: '重置成功',
     noMgtClass1: '暫未加入學校',
     noMgtClass2: '學校暫未設置您為班導師',
-    toJoin:'前往申請加入學校',
+    toJoin: '前往申請加入學校',
     groupNameHolder: '請設定組名',
     edtiGroupName: '修改組名',
     addGroup: '新增組別',
@@ -163,27 +163,27 @@ export default {
     action: '操作',
     atLeast: '至少保留一組',
     checkName: '請先輸入組名再建立組別',
-    groupNameRepeat:'組名重複',
+    groupNameRepeat: '組名重複',
     noStuTips: '暫無學生可以進行分組',
     groupCount: '分組數量最少為1',
     groupTypeTips: '請設定分組管道',
     groupUnit: '組',
     stuNameList: '學生名單',
     saveGroup: '儲存分組',
-    setAvatar:'設置頭像',
-    stuNameLabel:'姓名:',
-    reupload:'重新上傳',
-    uploadAvatar:'上傳頭像',
-    uploadTips:'請上傳頭像',
-    setOk:'設置成功',
-    setErr:'設置失敗',
-    uploadErr:'頭像上傳失敗',
-    deleteGroup:'刪除分組',
-    delGroupContent:'確認刪除',
-    setAvatarLabel:'設置頭像',
-    classStuErr:'獲取班級名單失敗',
-    unGroup:'未分組學生',
-    setGroupName:'請設置組名',
+    setAvatar: '設置頭像',
+    stuNameLabel: '姓名:',
+    reupload: '重新上傳',
+    uploadAvatar: '上傳頭像',
+    uploadTips: '請上傳頭像',
+    setOk: '設置成功',
+    setErr: '設置失敗',
+    uploadErr: '頭像上傳失敗',
+    deleteGroup: '刪除分組',
+    delGroupContent: '確認刪除',
+    setAvatarLabel: '設置頭像',
+    classStuErr: '獲取班級名單失敗',
+    unGroup: '未分組學生',
+    setGroupName: '請設置組名',
 
     //NewCusMgt.vue
     schdTable: '課表模式',
@@ -191,18 +191,18 @@ export default {
     stuListMgt: '自定義名單',
     teaLabel: '教師',
     noTeacher: '暫無授課教師',
-    noCourse:'當前學段暫未創建課程',
+    noCourse: '當前學段暫未創建課程',
     cusNameList: '課程名單',
     cusTime: '課程時段',
     saveLabel: '儲存變更',
     addStuList: '新增名單',
-    addListType:'方式',
-    addListType1:'新建名單',
-    addListType2:'選擇已有名單',
-    listLabel:'名單',
+    addListType: '方式',
+    addListType1: '新建名單',
+    addListType2: '選擇已有名單',
+    listLabel: '名單',
     removeList: '移除名單',
-    addrLabel:'上課教室:',
-    nameLabel:'班級名單:',
+    addrLabel: '上課教室:',
+    nameLabel: '班級名單:',
     defaultList: '預設名單',
     noSet: '未設定',
     defaultTips: '預設名單為教室對應的名單,否則需要指定自定義名單。',
@@ -212,15 +212,15 @@ export default {
     notime1: '暫未設定時段,請先',
     notime2: '設定時段',
     notime3: '再安排上課時段。',
-    listType1:'編制班',
-    listType2:'選課班',
+    listType1: '編制班',
+    listType2: '選課班',
     confirmAdd: '確認新增',
     cancelAdd: '取消新增',
     createList: '新建選課班',
     name: '名稱:',
     nameHolder: '請輸入名單名稱…',
-    nameRepeat:'選課班名稱重複',
-    pdHolder:'請設置學段',
+    nameRepeat: '選課班名稱重複',
+    pdHolder: '請設置學段',
     timeSetTitle: '時段設定',
     job: '職位',
     teaName: '姓名',
@@ -241,28 +241,28 @@ export default {
     remvTeaTitle: '移除授課老師',
     remvTeaContent: '是否確認移除',
     gradeLabel: '年級',
-    cusNoRepeat:'課程編碼重複',
-    cusNameRepeat:'課程名稱重複',
-    noClassInfo:'暫未找到班級資訊',
-    noRoomInfo:'暫未找到教室資訊',
+    cusNoRepeat: '課程編碼重複',
+    cusNameRepeat: '課程名稱重複',
+    noClassInfo: '暫未找到班級資訊',
+    noRoomInfo: '暫未找到教室資訊',
 
     //MgtStuList.vue
     nameList: '名單',
     remvStu: '移除學生',
-    editStu:'設置IRS',
-    goBack:'返回上級',
-    delListTitle:'刪除自定義名單',
-    notSet:'未設置',
-    irsTips1:'1、按照名單順序快速設置IRS號碼;',
-    irsTips2:'2、如果學生已經設置IRS號碼將被重置。 ',
-    irsRepeat:'IRS號碼重複',
-    remvContent1:'是否確認從名單移除',
-    remvContent2:'位學生',
-    okText:'是',
-    cancelText:'否',
-    remvTips:'請選擇需要移除的學生',
-    findListInfoErr:'查詢選課班資訊失敗',
-    findListErr:'查詢選課班列表失敗',
+    editStu: '設置IRS',
+    goBack: '返回上級',
+    delListTitle: '刪除自定義名單',
+    notSet: '未設置',
+    irsTips1: '1、按照名單順序快速設置IRS號碼;',
+    irsTips2: '2、如果學生已經設置IRS號碼將被重置。 ',
+    irsRepeat: 'IRS號碼重複',
+    remvContent1: '是否確認從名單移除',
+    remvContent2: '位學生',
+    okText: '是',
+    cancelText: '否',
+    remvTips: '請選擇需要移除的學生',
+    findListInfoErr: '查詢選課班資訊失敗',
+    findListErr: '查詢選課班列表失敗',
 
     //TeaTable.vue
     am: '上午',
@@ -293,8 +293,8 @@ export default {
     cusTable: '課程表',
     importLabel: '匯入課表',
     cusMode: '課程模式',
-    roomLabel:'教室',
-    roomType:'教室類型:',
+    roomLabel: '教室',
+    roomType: '教室類型:',
 
     //ClassTable.vue
     noAddTea: '當前課程未新增授課老師',
@@ -310,28 +310,66 @@ export default {
     fri: '星期五',
     sat: '星期六',
     sun: '星期日',
-    nameListType:'類型',
-    scClass:'學校班級',
-    customNameList:'自定義名單',
-    teaTimeWraning:'該教師此時段已有課程安排',
-    classTimeWarning:'該班級此時段已有課程安排',
-    
+    nameListType: '類型',
+    scClass: '學校班級',
+    customNameList: '自定義名單',
+    teaTimeWraning: '該教師此時段已有課程安排',
+    classTimeWarning: '該班級此時段已有課程安排',
+
     // JoinClass.vue
-    join:{
-        title:'加入課程名單',
-        errorInfo:'數據錯誤,請重新掃碼',
-        teacherLabel:'教師:',
-        listLabel:'名單:',
-        joinBtn:'立即加入',
-        errorTile:'訊息錯誤',
-        errorContent:'課程名單讀取失敗,請重新掃碼加入! ',
-        joinOk:'加入成功',
-        joinErr:'加入失敗',
-        getListErr:'獲取名單訊息失敗',
-        hasJoin:'課程加入成功! ',
-        getErr:'用戶訊息讀取失敗',
-        parseErr:'登入訊息讀取失敗',
-        cusLabel:'課程:',
-        toTeammodel:'即刻前往醍摩豆雲平台>>>'
-    }  
+    join: {
+        title: '加入課程名單',
+        errorInfo: '數據錯誤,請重新掃碼',
+        teacherLabel: '教師:',
+        listLabel: '名單:',
+        joinBtn: '立即加入',
+        errorTile: '訊息錯誤',
+        errorContent: '課程名單讀取失敗,請重新掃碼加入! ',
+        joinOk: '加入成功',
+        joinErr: '加入失敗',
+        getListErr: '獲取名單訊息失敗',
+        hasJoin: '課程加入成功! ',
+        getErr: '用戶訊息讀取失敗',
+        parseErr: '登入訊息讀取失敗',
+        cusLabel: '課程:',
+        toTeammodel: '即刻前往醍摩豆雲平台>>>'
+    },
+
+    //ClassRecord.vue
+    rcd: {
+        ctime: '上課時間:',
+        rtn: '返回',
+        rcdLabel: '互動記錄',
+        enote: '電子筆記',
+        sokrateRpt: '蘇格拉底報告',
+        dataCount: '數據統計',
+        allRcd: '所有記錄',
+        qustion: '即問即答',
+        message: '飛訊',
+        image: '圖片',
+        file: '附件',
+        link: '超鏈接',
+        cw: '課件第',
+        page: '頁',
+        pageNoRcd: '此頁沒有互動數據',
+        di: '第',
+        dataErr: '獲取數據失敗',
+        noNote: '暫無電子筆記',
+        crtRate: '正確率',
+        correct: '正確',
+        wrong: '錯誤',
+        attendCount: '出席人數',
+        gCount: '小組數',
+        taskCount: '任務總數',
+        colctCount: '作品總數',
+        pushCount: '推送總數',
+        totalScore: '總計分',
+        examCount: '測驗總數',
+        quCount: '互動題數',
+        scoreRate: '測驗得分率',
+        interactionCount: '學生互動總數',
+        intUnit: '次/人',
+        optionCount: '選項分佈',
+        tPushLabel: '教師推送了一張圖:'
+    }
 }

+ 28 - 20
TEAMModelOS/ClientApp/src/view/classrecord/ClassRecord.vue

@@ -9,7 +9,7 @@
                     </span>
                     <div style="display:inline-block;margin-left:30px">
                         <span class="label-text">
-                            上课时间:
+                            {{$t('cusMgt.rcd.ctime')}}
                         </span>
                         <span class="label-value">
                             {{$jsFn.timeFormat(recordInfo.startTime)}}
@@ -17,7 +17,7 @@
                     </div>
                     <Button type="info" size="small" @click="goBack" style="float:right">
                         <Icon custom="iconfont icon-arrow" size="12" style="vertical-align: baseline;" />
-                        返回
+                        {{$t('cusMgt.rcd.rtn')}}
                     </Button>
                 </div>
                 <!--上课内容-->
@@ -38,26 +38,34 @@
                 <div class="cus-data-wrap">
                     <!--课堂互动记录-->
                     <h2 class="content-title">
-                        互动记录
-                        <span class="e-note-tag" @click="viewENote">电子笔记</span>
-                        <span class="e-note-tag" @click="viewReport">苏格拉底报告</span>
-                        <span class="e-note-tag" @click="viewData">数据统计</span>
+                        {{$t('cusMgt.rcd.rcdLabel')}}
+                        <span class="e-note-tag" @click="viewENote">
+                            {{$t('cusMgt.rcd.rcdLabel')}}
+                        </span>
+                        <span class="e-note-tag" @click="viewReport">
+                            {{$t('cusMgt.rcd.sokrateRpt')}}
+                        </span>
+                        <span class="e-note-tag" @click="viewData">
+                            {{$t('cusMgt.rcd.dataCount')}}
+                        </span>
                     </h2>
                     <div class="interaction-record-wrap">
                         <div class="interaction-type-wrap">
                             <span style="border-bottom:5px solid #efefef;display:block; margin-bottom:10px;padding-top:5px;">
-                                <Icon size="22" :class="typeIndex == 'all' ? 'type-icon-active type-icon':'type-icon'" custom="iconfont icon-basic-setting" @click="filterType('all')" title="所有记录" />
+                                <Icon size="22" :class="typeIndex == 'all' ? 'type-icon-active type-icon':'type-icon'" custom="iconfont icon-basic-setting" @click="filterType('all')" :title="$t('cusMgt.rcd.allRcd')" />
                             </span>
-                            <span :class="typeIndex == 'irs' ? 'type-icon-active type-icon':'type-icon'" style="font-size:32px;line-height:30px;" @click="filterType('irs')" title="即问即答">Q</span>
-                            <Icon :class="typeIndex == 'msg' ? 'type-icon-active type-icon':'type-icon'" custom="iconfont icon-message" style="font-size:24px;" @click="filterType('msg')" title="飞讯" />
-                            <Icon :class="typeIndex == 'img' ? 'type-icon-active type-icon':'type-icon'" type="ios-image" @click="filterType('img')" title="图片" />
-                            <Icon :class="typeIndex == 'file' ? 'type-icon-active type-icon':'type-icon'" type="md-document" @click="filterType('file')" title="附件" />
-                            <Icon :class="typeIndex == 'link' ? 'type-icon-active type-icon':'type-icon'" type="ios-link" @click="filterType('link')" title="超链接" />
+                            <span :class="typeIndex == 'irs' ? 'type-icon-active type-icon':'type-icon'" style="font-size:32px;line-height:30px;" @click="filterType('irs')" :title="$t('cusMgt.rcd.qustion')">Q</span>
+                            <Icon :class="typeIndex == 'msg' ? 'type-icon-active type-icon':'type-icon'" custom="iconfont icon-message" style="font-size:24px;" @click="filterType('msg')" :title="$t('cusMgt.rcd.message')" />
+                            <Icon :class="typeIndex == 'img' ? 'type-icon-active type-icon':'type-icon'" type="ios-image" @click="filterType('img')" :title="$t('cusMgt.rcd.image')" />
+                            <Icon :class="typeIndex == 'file' ? 'type-icon-active type-icon':'type-icon'" type="md-document" @click="filterType('file')" :title="$t('cusMgt.rcd.file')" />
+                            <Icon :class="typeIndex == 'link' ? 'type-icon-active type-icon':'type-icon'" type="ios-link" @click="filterType('link')" :title="$t('cusMgt.rcd.link')" />
                         </div>
                         <vuescroll ref="datawrap">
                             <div class="page-item" :key="index" v-for="(item,index) in pageList" :id="'page'+(item.page)">
                                 <div class="page-info-wrap">
-                                    <span class="page-tag" @click="toVideo(index+1,$event)" :ref="'page'+(index+1)">课件第{{item.page}}页</span>
+                                    <span class="page-tag" @click="toVideo(index+1,$event)" :ref="'page'+(index+1)">
+                                        {{`${$t('cusMgt.rcd.cw')}${item.page}${$t('cusMgt.rcd.page')}`}}
+                                    </span>
                                     <!-- 课件缩略图 -->
                                     <!-- <img class="page-mini-img" @click="openViewer(item.img)" :src="item.img" /> -->
                                     <Timeline style="margin-top:10px;margin-left:-5px">
@@ -68,7 +76,7 @@
                                     </Timeline>
                                 </div>
                                 <div class="record-data-wrap">
-                                    <EmptyData v-if="!item.pageData.length" textContent="此页没有互动数据"></EmptyData>
+                                    <EmptyData v-if="!item.pageData.length" :textContent="$t('cusMgt.rcd.pageNoRcd')"></EmptyData>
                                     <template v-else>
                                         <!-- 互动数据 -->
                                         <div>
@@ -95,7 +103,7 @@
         </div>
         <!--返回顶部-->
         <BackToTop @on-to-top="handleToTop"></BackToTop>
-        <Modal v-model="dataStatus" title="数据统计" :width="800" footer-hide>
+        <Modal v-model="dataStatus" :title="$t('cusMgt.rcd.dataCount')" :width="800" footer-hide>
             <DataCount></DataCount>
         </Modal>
     </div>
@@ -149,7 +157,7 @@ export default {
                 //fluid: true, // 当true时,Video.js player将拥有流体大小。换句话说,它将按比例缩放以适应其容器。
                 sources: [],
                 poster: '',
-                notSupportedMessage: '此视频暂无法播放,请稍后再试' //允许覆盖Video.js无法播放媒体源时显示的默认信息。
+                // notSupportedMessage: '此视频暂无法播放,请稍后再试' //允许覆盖Video.js无法播放媒体源时显示的默认信息。
             },
             eventMap: {
                 SPQStrt: '课中评测',
@@ -208,13 +216,13 @@ export default {
                     this.markers = pageEvent.map((item, index) => {
                         return {
                             time: item.Time,
-                            text: `第${index + 1}页`,
+                            text: `${this.$t('cusMgt.rcd.di')}${index + 1}${this.$t('cusMgt.rcd.page')}`,
                             page: index + 1
                         }
                     })
                 },
                 err => {
-                    this.$Message.error('获取数据失败')
+                    this.$Message.error(this.$t('cusMgt.rcd.dataErr'))
                 }
             )
         },
@@ -234,7 +242,7 @@ export default {
             if (this.recordInfo.eNote) {
                 window.open('/web/viewer.html?file=' + encodeURIComponent(this.recordInfo.eNote))
             } else {
-                this.$Message.warning('暂无电子笔记')
+                this.$Message.warning(this.$t('cusMgt.rcd.noNote'))
             }
         },
         //点击视频切片
@@ -328,7 +336,7 @@ export default {
             this.playerOptions.sources.push({
                 src: this.videoUrl
             })
-            
+
             this.getPageList()
         }
     }

+ 0 - 486
TEAMModelOS/ClientApp/src/view/classrecord/data/1.json

@@ -1,486 +0,0 @@
-{
-    "item": [
-        {
-            "shapeType": "ellipse",
-            "paragraph": [
-                {
-                    "style": {
-                        "vert": "v-mid",
-                        "hori": "h-mid",
-                        "writing": "horz"
-                    },
-                    "texts": [
-                        {
-                            "content": "Shape with image background",
-                            "isbr": false,
-                            "style": {
-                                "color": "FFFF00",
-                                "size": 20.0,
-                                "family": "inherit",
-                                "weight": "initial",
-                                "style": "normal",
-                                "decoration": "initial",
-                                "vertAlign": "baseline",
-                                "align": "initial",
-                                "shadow": "none"
-                            }
-                        }
-                    ]
-                }
-            ],
-            "fill": {
-                "type": 3,
-                "image": "https://teammodelostest.blob.core.chinacloudapi.cn/teammodelos/pptx/223c84bdbc0075e8fa418522644345ef8577ec4b/imgs/4fd5bb0f9d4afa6ace354fec0052c6d7b39294ac.jpeg",
-                "rot": 0.0,
-                "grad": []
-            },
-            "border": {
-                "width": 1.0,
-                "color": "117EA7",
-                "type": "solid",
-                "stroke": "0"
-            },
-            "type": "Sp",
-            "position": {
-                "rot": 0.0,
-                "flipH": 0,
-                "flipV": 0,
-                "x": 300.0,
-                "y": 3.1297,
-                "cx": 312.5217,
-                "cy": 210.8337
-            },
-            "index": 3,
-            "svg": {
-                "id": "3",
-                "svgShape": [
-                    {
-                        "rx": "156.26085",
-                        "ry": "105.41685",
-                        "cx": "156.26085",
-                        "cy": "105.41685",
-                        "type": "ellipse"
-                    }
-                ]
-            },
-            "uid": "4cd59085897f46c19f03dc676eefac34"
-        },
-        {
-            "shapeType": "rect",
-            "paragraph": [
-                {
-                    "style": {
-                        "vert": "v-mid",
-                        "hori": "h-right",
-                        "writing": "horz"
-                    },
-                    "texts": [
-                        {
-                            "content": "Introduction to",
-                            "isbr": false,
-                            "style": {
-                                "color": "FFFF00",
-                                "size": 54.0,
-                                "family": "Calibri",
-                                "weight": "bold",
-                                "style": "normal",
-                                "decoration": "underline",
-                                "vertAlign": "baseline",
-                                "align": "initial",
-                                "shadow": "none"
-                            }
-                        }
-                    ]
-                }
-            ],
-            "fill": {
-                "type": 1,
-                "color": "1CADE4",
-                "rot": 0.0,
-                "grad": []
-            },
-            "border": {
-                "width": 1.0,
-                "color": "FFFFFF",
-                "type": "solid",
-                "stroke": "0"
-            },
-            "type": "Sp",
-            "position": {
-                "rot": 0.0,
-                "flipH": 0,
-                "flipV": 0,
-                "x": 165.1793,
-                "y": 142.3244,
-                "cx": 600.0,
-                "cy": 96.9375
-            },
-            "index": 4,
-            "svg": {
-                "id": "4",
-                "svgShape": [
-                    {
-                        "x": "0",
-                        "y": "0",
-                        "width": "600",
-                        "height": "96.9375",
-                        "type": "rect"
-                    }
-                ]
-            },
-            "uid": "91424bee5f004caaab8c0842a9c11663"
-        },
-        {
-            "mediaType": "image",
-            "image": "https://teammodelostest.blob.core.chinacloudapi.cn/teammodelos/pptx/223c84bdbc0075e8fa418522644345ef8577ec4b/imgs/435f132b0c9fc2ff49d90b782da885717d02f5ac.png",
-            "fill": {
-                "type": 0,
-                "rot": 0.0,
-                "grad": []
-            },
-            "border": {
-                "width": 0.0,
-                "type": "solid",
-                "stroke": "0"
-            },
-            "type": "Media",
-            "position": {
-                "rot": 0.0,
-                "flipH": 0,
-                "flipV": 0,
-                "x": 174.2006,
-                "y": 213.9634,
-                "cx": 564.1202,
-                "cy": 225.1638
-            },
-            "index": 5,
-            "uid": "8cf33bdcca8445d7bc8bbbab13c24de1"
-        },
-        {
-            "shapeType": "pie",
-            "paragraph": [
-                {
-                    "style": {
-                        "vert": "v-mid",
-                        "hori": "h-mid",
-                        "writing": "horz"
-                    },
-                    "texts": [
-                        {
-                            "content": "Pie",
-                            "isbr": false,
-                            "style": {
-                                "color": "0000FF",
-                                "size": 0.0,
-                                "family": "inherit",
-                                "weight": "initial",
-                                "style": "normal",
-                                "decoration": "initial",
-                                "vertAlign": "baseline",
-                                "align": "initial",
-                                "shadow": "none"
-                            }
-                        }
-                    ]
-                }
-            ],
-            "fill": {
-                "type": 1,
-                "color": "1CADE4",
-                "rot": 0.0,
-                "grad": []
-            },
-            "border": {
-                "width": 1.0,
-                "color": "117EA7",
-                "type": "solid",
-                "stroke": "0"
-            },
-            "type": "Sp",
-            "position": {
-                "rot": 0.0,
-                "flipH": 0,
-                "flipV": 0,
-                "x": 688.6956,
-                "y": 448.4924,
-                "cx": 257.2173,
-                "cy": 241.7685
-            },
-            "index": 6,
-            "svg": {
-                "id": "6",
-                "svgShape": [
-                    {
-                        "d": "M120.8842,120.8842 L120.8842,0 A120.8842,120.8842 0 1,1 0.012088419999997768,119.39732434000001 z",
-                        "type": "path",
-                        "transform": "rotate(-5.957783333333339, 120.8842, 120.8842)"
-                    }
-                ]
-            },
-            "uid": "9a8bc75a520e4ad5a95baa455041e408"
-        },
-        {
-            "shapeType": "arc",
-            "paragraph": [
-                {
-                    "style": {
-                        "vert": "v-mid",
-                        "hori": "h-mid",
-                        "writing": "horz"
-                    },
-                    "texts": [
-                        {
-                            "content": "arc2",
-                            "isbr": false,
-                            "style": {
-                                "color": "FF0000",
-                                "size": 0.0,
-                                "family": "inherit",
-                                "weight": "initial",
-                                "style": "normal",
-                                "decoration": "initial",
-                                "vertAlign": "baseline",
-                                "align": "initial",
-                                "shadow": "none"
-                            }
-                        }
-                    ]
-                }
-            ],
-            "border": {
-                "width": 4.5,
-                "color": "2683C6"
-            },
-            "type": "Sp",
-            "position": {
-                "rot": 0.0,
-                "flipH": 0,
-                "flipV": 0,
-                "x": 519.1305,
-                "y": 475.7682,
-                "cx": 148.6956,
-                "cy": 206.6087
-            },
-            "index": 7,
-            "svg": {
-                "id": "7",
-                "svgShape": [
-                    {
-                        "d": "M103.3044,0 A74.3478,103.3044 0 1,1 60.08789196000001,1.921461839999992",
-                        "type": "path",
-                        "transform": "rotate(360, 103.3044, 103.3044)"
-                    }
-                ]
-            },
-            "uid": "578c6470af3441e6b9b54d5914d7fb68"
-        },
-        {
-            "shapeType": "custom",
-            "paragraph": [
-                {
-                    "style": {
-                        "vert": "v-mid",
-                        "hori": "h-mid",
-                        "writing": "horz"
-                    },
-                    "texts": []
-                }
-            ],
-            "border": {
-                "width": 1.0,
-                "color": "117EA7",
-                "type": "solid",
-                "stroke": "0"
-            },
-            "type": "Sp",
-            "position": {
-                "rot": 0.0,
-                "flipH": 0,
-                "flipV": 0,
-                "x": 792.0,
-                "y": 112.6955,
-                "cx": 134.5271,
-                "cy": 230.793
-            },
-            "index": 8,
-            "svg": {
-                "id": "8",
-                "svgShape": [
-                    {
-                        "d": "M0,0 C0.6522,87.1304 1.3044,174.2609 20.8696,180 C40.4349,185.7391 98.6087,44.7826 117.3913,34.4348 C136.1739,24.0869 135.5652,85.4783 133.5652,117.9131 C131.5652,150.3478 113.826,217.2174 105.3913,229.0435 C96.9565,240.8695 82.9565,188.8696 82.9565,188.8696 L82.9565,188.8696",
-                        "type": "path"
-                    }
-                ]
-            },
-            "uid": "2a54608fcf244d5882700ef39e72b85c"
-        },
-        {
-            "shapeType": "arc",
-            "paragraph": [
-                {
-                    "style": {
-                        "vert": "v-mid",
-                        "hori": "h-mid",
-                        "writing": "horz"
-                    },
-                    "texts": [
-                        {
-                            "content": "arc1",
-                            "isbr": false,
-                            "style": {
-                                "color": "000000",
-                                "size": 18.0,
-                                "family": "inherit",
-                                "weight": "initial",
-                                "style": "normal",
-                                "decoration": "initial",
-                                "vertAlign": "baseline",
-                                "align": "initial",
-                                "shadow": "none"
-                            }
-                        }
-                    ]
-                }
-            ],
-            "fill": {
-                "type": 1,
-                "color": "1CADE4",
-                "rot": 0.0,
-                "grad": []
-            },
-            "border": {
-                "width": 1.0,
-                "color": "1CADE4",
-                "type": "solid",
-                "stroke": "0"
-            },
-            "type": "Sp",
-            "position": {
-                "rot": 0.0,
-                "flipH": 0,
-                "flipV": 0,
-                "x": 66.1852,
-                "y": 257.7693,
-                "cx": 94.4349,
-                "cy": 105.4169
-            },
-            "index": 9,
-            "svg": {
-                "id": "9",
-                "svgShape": [
-                    {
-                        "d": "M52.7084,0 A47.2174,52.7084 0 1,1 21.753056179999998,97.09414364",
-                        "type": "path",
-                        "transform": "rotate(360, 52.7084, 52.7084)"
-                    }
-                ]
-            },
-            "uid": "f50a5c13d9ba458f844c6a762dbdd162"
-        },
-        {
-            "cxnType": "curvedConnector3",
-            "border": {
-                "width": 0.75,
-                "color": "1CADE4",
-                "type": "solid",
-                "stroke": "0"
-            },
-            "type": "CxnSp",
-            "position": {
-                "rot": 0.0,
-                "flipH": 0,
-                "flipV": 0,
-                "x": 65.2174,
-                "y": 50.6087,
-                "cx": 99.9619,
-                "cy": 57.9377
-            },
-            "index": 10,
-            "svg": {
-                "id": "10",
-                "svgShape": [
-                    {
-                        "d": "M0,0 C 24.990475,0 49.98095,14.484425 49.98095,28.96885 C 49.98095,43.453275 74.971425,57.9377 99.9619,57.9377",
-                        "type": "path"
-                    }
-                ]
-            },
-            "uid": "da48c46664ab4be2af58fcf6727ff108"
-        },
-        {
-            "shapeType": "rect",
-            "paragraph": [
-                {
-                    "style": {
-                        "vert": "v-up",
-                        "hori": "h-mid",
-                        "writing": "horz"
-                    },
-                    "texts": [
-                        {
-                            "content": "Amir",
-                            "isbr": false,
-                            "style": {
-                                "color": "FFFFFF",
-                                "size": 115.0,
-                                "family": "inherit",
-                                "weight": "bold",
-                                "style": "normal",
-                                "decoration": "initial",
-                                "vertAlign": "baseline",
-                                "align": "initial",
-                                "shadow": "-0.6929px 0 , 0 0.6929px , 0.6929px 0 , 0 -0.6929px ;"
-                            }
-                        }
-                    ]
-                }
-            ],
-            "border": {
-                "width": 0.0,
-                "type": "solid",
-                "stroke": "0"
-            },
-            "type": "Sp",
-            "position": {
-                "rot": 0.0,
-                "flipH": 0,
-                "flipV": 0,
-                "x": 141.7873,
-                "y": 474.246,
-                "cx": 337.2954,
-                "cy": 195.4906
-            },
-            "index": 11,
-            "svg": {
-                "id": "11",
-                "svgShape": [
-                    {
-                        "x": "0",
-                        "y": "0",
-                        "width": "337.2954",
-                        "height": "195.4906",
-                        "type": "rect"
-                    }
-                ]
-            },
-            "uid": "2bc52a4a1a23418c85c467f365f3df4c"
-        }
-    ],
-    "fill": {
-        "type": 3,
-        "image": "https://teammodelostest.blob.core.chinacloudapi.cn/teammodelos/pptx/223c84bdbc0075e8fa418522644345ef8577ec4b/imgs/29100d92c12748d02845a4c652275177bb2c9a73.jpeg",
-        "style": {
-            "left": 0,
-            "top": -1000,
-            "right": 0,
-            "bottom": -1000
-        },
-        "rot": 0.0,
-        "grad": []
-    },
-    "index": 0,
-    "width": 960.0,
-    "height": 720.0,
-    "source": 1,
-    "flag": 1
-}

File diff suppressed because it is too large
+ 0 - 1
TEAMModelOS/ClientApp/src/view/classrecord/data/10.json


File diff suppressed because it is too large
+ 0 - 1
TEAMModelOS/ClientApp/src/view/classrecord/data/11.json


File diff suppressed because it is too large
+ 0 - 604
TEAMModelOS/ClientApp/src/view/classrecord/data/12.json


File diff suppressed because it is too large
+ 0 - 559
TEAMModelOS/ClientApp/src/view/classrecord/data/2.json


File diff suppressed because it is too large
+ 0 - 1
TEAMModelOS/ClientApp/src/view/classrecord/data/3.json


File diff suppressed because it is too large
+ 0 - 1
TEAMModelOS/ClientApp/src/view/classrecord/data/4.json


File diff suppressed because it is too large
+ 0 - 494
TEAMModelOS/ClientApp/src/view/classrecord/data/5.json


File diff suppressed because it is too large
+ 0 - 1
TEAMModelOS/ClientApp/src/view/classrecord/data/6.json


File diff suppressed because it is too large
+ 0 - 559
TEAMModelOS/ClientApp/src/view/classrecord/data/7.json


File diff suppressed because it is too large
+ 0 - 1
TEAMModelOS/ClientApp/src/view/classrecord/data/8.json


File diff suppressed because it is too large
+ 0 - 1
TEAMModelOS/ClientApp/src/view/classrecord/data/9.json


+ 3 - 3
TEAMModelOS/ClientApp/src/view/classrecord/eventchart/CorrectRate.vue

@@ -9,7 +9,7 @@
                 optionBar: undefined,
                 option: {
                     title: {
-                        text: '正确率统计',
+                        text: this.$t('cusMgt.rcd.crtRate'),
                         // textStyle: {
                         //     color: 'white'
                         // },
@@ -35,11 +35,11 @@
                                     itemStyle: {
                                         color: '#1cc0f3'
                                     },
-                                    name:'正确'
+                                    name:this.$t('cusMgt.rcd.correct')
                                 },
                                 {
                                     value: 510,
-                                    name: '错误',
+                                    name: this.$t('cusMgt.rcd.wrong'),
                                     itemStyle: {
                                         color: '#ed4014'
                                     },

+ 12 - 12
TEAMModelOS/ClientApp/src/view/classrecord/eventchart/DataCount.vue

@@ -19,55 +19,55 @@ export default {
             colorList: ['#2d8cf0', '#2d8cf0', '#2db7f5', '#2db7f5', '#2db7f5', '#19be6b', '#2db7f5', '#2db7f5', '#2db7f5', '#ed4014'],
             dataList: [
                 {
-                    label: '出席人数',
+                    label: this.$t('cusMgt.rcd.attendCount'),
                     value: 0,
                     info: ''
                 },
                 {
-                    label: '小组数',
+                    label: this.$t('cusMgt.rcd.gCount'),
                     value: 0,
                     info: ''
                 },
 
                 {
-                    label: '任务总数',
+                    label: this.$t('cusMgt.rcd.taskCount'),
                     value: 0,
                     info: ''
                 },
                 {
-                    label: '作品总数',
+                    label: this.$t('cusMgt.rcd.colctCount'),
                     value: 0,
                     info: ''
                 },
                 {
-                    label: '推送总数',
+                    label: this.$t('cusMgt.rcd.pushCount'),
                     value: 0,
                     info: ''
                 },
                 {
-                    label: '总记分',
+                    label: this.$t('cusMgt.rcd.totalScore'),
                     value: 0,
                     info: ''
                 },
                 {
-                    label: '测验总题数',
+                    label: this.$t('cusMgt.rcd.examCount'),
                     value: 0,
                     info: ''
                 },
                 {
-                    label: '互动题数',
+                    label: this.$t('cusMgt.rcd.quCount'),
                     value: 0,
                     info: ''
                 },
                 {
-                    label: '测验得分率',
+                    label: this.$t('cusMgt.rcd.scoreRate'),
                     value: 0,
                     info: ''
                 },
                 {
-                    label: '学生互动总数',
+                    label: this.$t('cusMgt.rcd.interactionCount'),
                     value: 0,
-                    info: '(0次/人)'
+                    info: ''
                 }
             ]
         }
@@ -99,7 +99,7 @@ export default {
             this.dataList[8].value = summary.examPointRate
             // 学生互动总数
             this.dataList[9].value = summary.clientInteractionCount
-            this.dataList[9].info = `(${summary.clientInteractionAverge}次/人)`
+            this.dataList[9].info = `(${summary.clientInteractionAverge}${this.$t('cusMgt.rcd.intUnit')})`
         }
     }
 }

+ 1 - 23
TEAMModelOS/ClientApp/src/view/classrecord/eventchart/OptionCount.vue

@@ -9,10 +9,7 @@
                 optionBar: undefined,
                 option: {
                     title: {
-                        text: '选项分布',
-                        // textStyle: {
-                        //     color: 'white'
-                        // },
+                        text: this.$t('cusMgt.rcd.optionCount'),
                         right: '85',
                         top:'10'
                     },
@@ -22,9 +19,6 @@
                             type: 'shadow'
                         }
                     },
-                    //legend: {
-                    //    data: ['2011年', '2012年']
-                    //},
                     grid: {
                         left: '3%',
                         right: '4%',
@@ -34,26 +28,10 @@
                     xAxis: {
                         type: 'value',
                         boundaryGap: [0, 0.01],
-                        // axisLabel: {
-                        //     color:'white'
-                        // },
-                        // axisLine: {
-                        //     lineStyle: {
-                        //         color:'white'
-                        //     }
-                        // }
                     },
                     yAxis: {
                         type: 'category',
                         data: ['A', 'B', 'C', 'D'],
-                        // axisLabel: {
-                        //     color:'white'
-                        // },
-                        // axisLine: {
-                        //     lineStyle: {
-                        //         color:'white'
-                        //     }
-                        // }
                     },
                     series: [
                         {

+ 1 - 1
TEAMModelOS/ClientApp/src/view/classrecord/eventchart/Push.vue

@@ -3,7 +3,7 @@
         <TeacherClient></TeacherClient>
         <template v-if="pushType == 'img'">
             <div class="question-data-wrap">
-                <p class="text-label">教師推送了一張圖: </p>
+                <p class="text-label">{{$t('cusMgt.rcd.tPushLabel')}}</p>
                 <img  class="tea-push-img" src="https://teammodelostest.blob.core.chinacloudapi.cn/teammodelcontest/common/20200213/%E9%86%8D%E6%91%A9%E8%B1%86_%E8%B1%86%E5%AD%90%E5%BE%BD%E7%AB%A0_20200213154333.png" @click="openViewer('https://teammodelostest.blob.core.chinacloudapi.cn/teammodelcontest/common/20200213/%E9%86%8D%E6%91%A9%E8%B1%86_%E8%B1%86%E5%AD%90%E5%BE%BD%E7%AB%A0_20200213154333.png')" />
             </div>
         </template>

+ 3 - 3
TEAMModelOS/ClientApp/src/view/newcourse/MyCourse.vue

@@ -152,7 +152,7 @@
                                                 <Time class="record-time" :time="item.startTime" />
                                                 <div class="record-action-wrap">
                                                     <Icon class="action-icon" custom="iconfont icon-video" :title="$t('cusMgt.socrateMv')" @click.stop="viewVideo(item)" />
-                                                    <Icon class="action-icon" type="md-share" :title="$t('cusMgt.share')" @click.stop="shareRecord" />
+                                                    <Icon class="action-icon" type="md-share" :title="$t('cusMgt.share')" v-show="$store.state.config.srvAdrType != 'product'" @click.stop="shareRecord" />
                                                     <Icon class="action-icon" type="md-trash" :size="15" :title="$t('cusMgt.delRcd')" @click.stop="delRecord(item.id)" />
                                                 </div>
                                             </div>
@@ -552,7 +552,7 @@ export default {
     },
     methods: {
         shareRecord() {
-            this.$Message.warning('暂未开发分享功能')
+            this.$Message.warning('分享功能开发中')
         },
         delRecord(id) {
             this.$Modal.confirm({
@@ -1344,7 +1344,7 @@ export default {
         },
         filterRecordList(index) {
             this.recordListShow = this.recordList.filter(item => {
-                let id = this.teaClassList[index].classId || this.teaClassList[index].stulist
+                let id = this.teaClassList[index]?.classId || this.teaClassList[index]?.stulist
                 return item.groupIds.includes(id)
             })
         },