Quellcode durchsuchen

英文版学生评价

11wqe1 vor 7 Monaten
Ursprung
Commit
908c2a7227

+ 2 - 2
src/components/pages/aiAddCourse/addCourse.vue

@@ -2675,7 +2675,7 @@
                             isGjCss:
                               toolIndexType == `gj${tIndex}${toolIndex2}`,
                           }">
-                            <div>{{ lang.ssTool }}{{ toolIndex2 + 1 }}:</div>
+                            <div>{{ lang.ssToolC }}{{ toolIndex2 + 1 }}:</div>
                             <div>
                               {{
                               toolsData[tool.tool[0]] &&
@@ -2786,7 +2786,7 @@
                                 toolIndexType ==
                                 `gj${tIndex}${toolIndex2}${stageIndex}`,
                             }">
-                              <div>{{ lang.ssTool }}{{ toolIndex2 + 1 }}:</div>
+                              <div>{{ lang.ssToolC }}{{ toolIndex2 + 1 }}:</div>
                               <div>
                                 {{
                                 toolsData[tool.tool[0]] &&

Datei-Diff unterdrückt, da er zu groß ist
+ 173 - 162
src/components/pages/components/exportDataDialog.vue


+ 73 - 71
src/components/pages/components/exportWorksDialog.vue

@@ -25,30 +25,30 @@
                     margin: 20px 0;
                   "
           >
-            作业集
+            {{ lang.ssWorkSet }}
           </div>
           <div class="termC">
-            <div><span>2023-2024</span>学年</div>
+            <div><span>2023-2024</span>{{ lang.ssSchoolYear }}</div>
             <div style="width: 20px;"></div>
-            <div>第<span>2</span>学期</div>
+            <div>{{ lang.ssSemester.replace(/\*/g, 2) }}</div>
           </div>
           <div class="fromCss">
             <div>
-              <span>姓名:</span>
+              <span>{{ lang.ssName }}:</span>
               <div class="txt">{{ worksDialogCon2.sName }}</div>
             </div>
             <div>
-              <span>班级:</span>
+              <span>{{ lang.ssClass }}:</span>
               <div class="txt">
                 {{ worksDialogCon2.class ? worksDialogCon2.class : "——" }}
               </div>
             </div>
             <div>
-              <span>学校:</span>
+              <span>{{ lang.ssSchool }}:</span>
               <div class="txt">{{ worksDialogCon2.schName }}</div>
             </div>
             <div>
-              <span>指导老师:</span>
+              <span>{{ lang.ssTeacher }}:</span>
               <div class="txt">
                 <div style="transform: translate(-1em, 0px);">
                   {{ worksDialogCon2.uname }}
@@ -89,7 +89,7 @@
             class="stageCon"
           >
             <div v-if="CState != 5 && CState != 6" class="stageTit">
-              {{ i.id * 1 + 1 }}阶段<span v-if="i.name">:{{ i.name }}</span>
+              {{ lang.ssStage.replace(/\*/g, i.id * 1 + 1) }}<span v-if="i.name">:{{ i.name }}</span>
             </div>
             <template v-for="k in i.taskList">
               <div
@@ -106,7 +106,7 @@
                       "
                 >
                   <div class="taskTitInd">
-                    <span>任务{{ k.task + 1 }}</span>
+                    <span>{{ lang.ssTask }}{{ k.task + 1 }}</span>
                     <span>{{ k.taskTit }}</span>
                   </div>
                   <div>
@@ -129,11 +129,11 @@
                           alt=""
                         />
                         <div class="toolTit">
-                          <div>工具{{ lind + 1 }}:问答工具</div>
-                          <div>提问:{{ l.content[0][0].answerTitle }}</div>
+                          <div>{{ lang.ssTool.replace(/\*/g, lind + 1) }}{{ lang.ssQATool }}</div>
+                          <div>{{ lang.ssQuestionT }}{{ l.content[0][0].answerTitle }}</div>
                         </div>
                       </div>
-                      <div class="answerTxt">回答:{{ l.content[0][0].answer }}</div>
+                      <div class="answerTxt">{{ lang.ssAnswer }}{{ l.content[0][0].answer }}</div>
                     </div>
                     <div v-if="l.tool[0] == 52">
                       <div class="toolBlk">
@@ -142,9 +142,9 @@
                           alt=""
                         />
                         <div class="toolTit">
-                          <div>工具{{ lind + 1 }}:文档工具</div>
+                          <div>{{ lang.ssTool.replace(/\*/g, lind + 1) }}{{ lang.ssDocTool }}</div>
                           <div>
-                            根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
+                            {{ lang.ssDefaultDesc }}
                           </div>
                         </div>
                       </div>
@@ -158,14 +158,14 @@
                           alt=""
                         />
                         <div class="toolTit">
-                          <div>工具{{ lind + 1 }}{{ l.appJson.name }}</div>
+                          <div>{{ lang.ssTool.replace(/\*/g, lind + 1) }}{{ l.appJson.name }}</div>
                           <div>
                             {{ l.appJson.detail }}
                           </div>
                         </div>
                       </div>
                       <div  style="margin-bottom: 20px;" v-for="(item,index) in l.content[0]" :key="index+'coco'">
-                            <div style="margin-bottom: 15px;font-size: 14px;font-weight: 600;color: #000;">{{ index + 1}}阶段</div>
+                            <div style="margin-bottom: 15px;font-size: 14px;font-weight: 600;color: #000;">{{ lang.ssStage.replace(/\*/g, index + 1) }}</div>
                             <template v-if="item.imageUrls && item.imageUrls.length">
                               <div style="display: flex;flex-wrap: wrap;gap: 10px;" v-for="(image,index) in item.imageUrls" :key="index+'-image'">
                                   <img style="max-width: 390px;object-fit: cover;" :src="image" alt="" />
@@ -174,7 +174,7 @@
                             <template v-if="item.messages && item.messages.length">
                               <div v-for="(po,PInd) in item.messages" :key="PInd+'PInd'">
                                 <div class="left" v-if="po.role == 'assistant'">
-                                        <div class="TName">小可AI助手</div>:
+                                        <div class="TName">{{ lang.ssAIAssist }}</div>:
                                         <div class="con" v-html="MarkdownT(po.content)"></div>
                                 </div>
 
@@ -201,12 +201,12 @@
 
                         <div class="toolTit">
                           <div>
-                            工具{{ lind + 1 }}{{
-                              l.tool[0] == 16 ? "作业提交" : "批量上传"
+                            {{ lang.ssTool.replace(/\*/g, lind + 1) }}{{
+                              l.tool[0] == 16 ? lang.ssWorkSubmit : lang.ssBatchUpload
                             }}
                           </div>
                           <div>
-                            根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
+                            {{ lang.ssDefaultDesc }}
                           </div>
                         </div>
                       </div>
@@ -234,16 +234,16 @@
 
                         <div class="toolTit">
                           <div>
-                            工具{{ lind + 1 }}{{
+                            {{ lang.ssTool.replace(/\*/g, lind + 1) }}{{
                               l.tool[0] == 1
-                                ? "电子白板"
+                                ? lang.ssWhiteBoard
                                 : l.tool[0] == 7
-                                ? "思维网格"
-                                : "思维导图"
+                                ? lang.ssMindGrid
+                                : lang.ssMindMap
                             }}
                           </div>
                           <div>
-                            根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
+                            {{ lang.ssDefaultDesc }}
                           </div>
                         </div>
                       </div>
@@ -257,9 +257,9 @@
                           alt=""
                         />
                         <div class="toolTit">
-                          <div>工具{{ lind + 1 }}:表格</div>
+                          <div>{{ lang.ssTool.replace(/\*/g, lind + 1) }}{{ lang.ssTableTool }}</div>
                           <div>
-                            根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
+                            {{ lang.ssDefaultDesc }}
                           </div>
                         </div>
                       </div>
@@ -274,8 +274,8 @@
                           alt=""
                         />
                         <div class="toolTit">
-                          <div>工具{{ lind + 1 }}:问卷调查</div>
-                          <div>标题:{{ l.content[0][0].askJson.askTitle }}</div>
+                          <div>{{ lang.ssTool.replace(/\*/g, lind + 1) }}{{ lang.ssSurveyTool }}</div>
+                          <div>{{ lang.ssTitle }}:{{ l.content[0][0].askJson.askTitle }}</div>
                         </div>
                       </div>
 
@@ -284,7 +284,7 @@
                         v-for="(i, index) in l.content[0][0].askJson.askJson"
                         :key="index"
                       >
-                        <div>题目:{{ i.askstitle }}</div>
+                        <div>{{ lang.ssQuestion3.replace(/\*/g, index + 1) }}{{ i.askstitle }}</div>
                         <el-radio-group
                           v-if="!i.type"
                           v-model="l.content[0][0].anwer[index]"
@@ -322,9 +322,9 @@
                           alt=""
                         />
                         <div class="toolTit">
-                          <div>工具{{ lind + 1 }}:选择题</div>
+                          <div>{{ lang.ssTool.replace(/\*/g, lind + 1) }}{{ lang.ssChoiceTool }}</div>
                           <div>
-                            根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
+                            {{ lang.ssDefaultDesc }}
                           </div>
                         </div>
                       </div>
@@ -333,16 +333,16 @@
                         :key="index + 'm'"
                       >
                         <div>
-                          题目:{{ i.teststitle }}
+                          {{ lang.ssQuestion3.replace(/\*/g, index + 1) }}{{ i.teststitle }}
                           <span
                             v-if="
                               JSON.stringify(l.content[0].radio[index]) ==
                                 JSON.stringify(i.answer)
                             "
                             style="color: #868ce4"
-                            >回答正确</span
+                            >{{ lang.ssCorrect }}</span
                           >
-                          <span v-else style="color: red">回答错误</span>
+                          <span v-else style="color: red">{{ lang.ssWrong }}</span>
                         </div>
                         <div
                           v-if="i.type == 1"
@@ -433,9 +433,9 @@
                           alt=""
                         />
                         <div class="toolTit">
-                          <div>工具{{ lind + 1 }}:选择匹配</div>
+                          <div>{{ lang.ssTool.replace(/\*/g, lind + 1) }}{{ lang.ssMatchTool }}</div>
                           <div>
-                            根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
+                            {{ lang.ssDefaultDesc }}
                           </div>
                         </div>
                       </div>
@@ -446,7 +446,7 @@
                         alt=""
                       />
                       <div>
-                        <span style="margin-right: 10px">选项:</span
+                        <span style="margin-right: 10px">{{ lang.ssOption }}:</span
                         ><span
                           style="margin-right: 10px"
                           v-for="(item, itInd) in l.selectJson.select"
@@ -455,30 +455,30 @@
                         >
                       </div>
                       <div style="margin: 10px 0;">
-                        <span style="margin-right: 10px">回答:</span>
+                        <span style="margin-right: 10px">{{ lang.ssAnswer }}:</span>
 
                         <div
                           style="margin-right: 10px"
                           v-for="(item, itInd) in l.content[0]"
                           :key="itInd"
                         >
-                          选项{{ itInd + 1 }}:{{ l.selectJson.select[item] }}
+                          {{ lang.ssOption }}{{ itInd + 1 }}:{{ l.selectJson.select[item] }}
                           <span
                             v-if="l.selectJson.answer[itInd] == l.content[0][itInd]"
                             style="color: #868ce4"
-                            >回答正确</span
+                            >{{ lang.ssCorrect }}</span
                           >
-                          <span v-else style="color: red">回答错误</span>
+                          <span v-else style="color: red">{{ lang.ssWrong }}</span>
                         </div>
                       </div>
                       <div>
-                        <span style="margin-right: 10px">答案:</span>
+                        <span style="margin-right: 10px">{{ lang.ssAnswer3 }}:</span>
 
                         <span
                           style="margin-right: 10px"
                           v-for="(item, itInd) in l.selectJson.answer"
                           :key="itInd"
-                          >选项{{ itInd + 1 }}:{{
+                          >{{ lang.ssOption }}{{ itInd + 1 }}:{{
                             l.selectJson.select[item]
                           }}</span
                         >
@@ -531,9 +531,9 @@
                           alt=""
                         />
                         <div class="toolTit">
-                          <div>工具{{ lind + 1 }}:排序</div>
+                          <div>{{ lang.ssTool.replace(/\*/g, lind + 1) }}{{ lang.ssSortTool }}</div>
                           <div>
-                            根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
+                            {{ lang.ssDefaultDesc }}
                           </div>
                         </div>
                       </div>
@@ -550,7 +550,7 @@
                                 flex-wrap: wrap;
                               "
                         >
-                          题目:
+                          {{ lang.ssQuestion2.replace(/\*/g, index + 1) }}:
                           <div
                             class="sortTool"
                             v-for="(i, index) in i.addSentence"
@@ -564,9 +564,9 @@
                                 JSON.stringify(i.addSentence)
                             "
                             style="color: #868ce4"
-                            >回答正确</span
+                            >{{ lang.ssCorrect }}</span
                           >
-                          <span v-else style="color: red">回答错误</span>
+                          <span v-else style="color: red">{{ lang.ssWrong }}</span>
                         </div>
                         <div
                           style="
@@ -576,7 +576,7 @@
                                 flex-wrap: wrap;
                               "
                         >
-                          学生回答:
+                          {{ lang.ssStuAnswer }}
                           <div
                             class="sortTool"
                             v-for="(i, index) in i.chooseSenList"
@@ -586,7 +586,7 @@
                           </div>
                         </div>
                         <div>
-                          答案:
+                          {{ lang.ssAnswer3 }}
                           <span style="margin: 0 5px">{{
                             i.addSentence.join(",")
                           }}</span>
@@ -608,12 +608,12 @@
                   >
                     <div class="taskScoTit">
                       <div>
-                        作业得分:<span style="color: rgba(242, 161, 75, 1)">{{
+                        {{ lang.ssTaskScore }}<span style="color: rgba(242, 161, 75, 1)">{{
                           totalScore(l.rate)
                         }}</span>
-                        
+                        {{ lang.ssScoreUnit }}
                       </div>
-                      <div>作业提交时间:{{ workTime(k.toolEList) }}</div>
+                      <div>{{ lang.ssSubmitTime }}{{ workTime(k.toolEList) }}</div>
                     </div>
 
                     <!-- 作业评分 -->
@@ -621,7 +621,7 @@
                       <!-- 分数详情与素养 -->
                       <div style="flex: 1; display: flex; flex-wrap: wrap">
                         <div style="width: 315px; margin:0 20px 10px 0">
-                          <div class="taskScoConTit">分数详情</div>
+                          <div class="taskScoConTit">{{ lang.ssScoreDetail }}</div>
                           <div
                             v-for="(wItem, ind) in l.eList"
                             :key="ind + 's'"
@@ -653,7 +653,7 @@
                         </div>
 
                         <div style="flex: 1">
-                          <div class="taskScoConTit">素养</div>
+                          <div class="taskScoConTit">{{ lang.ssLiteracy2 }}</div>
                           <div class="WorkConSY">
                             <div v-for="(wItem, ind) in l.eList" :key="ind + 's'">
                               <!-- <el-tooltip
@@ -682,7 +682,7 @@
                             "
                         v-if="l.rate.content"
                       >
-                        <div class="taskScoConTit">评语</div>
+                        <div class="taskScoConTit">{{ lang.ssComment }}</div>
                         <div class="WorkCon">
                           {{ l.rate.content }}
                         </div>
@@ -703,12 +703,12 @@
                   >
                     <div class="taskScoTit">
                       <div>
-                        作业得分:<span style="color: rgba(242, 161, 75, 1)">{{
+                        {{ lang.ssTaskScore }}<span style="color: rgba(242, 161, 75, 1)">{{
                           totalScore(k.toolEList[0].rate)
                         }}</span>
-                        
+                        {{ lang.ssScoreUnit }}
                       </div>
-                      <div>作业提交时间:{{ workTime(k.toolEList) }}</div>
+                      <div>{{ lang.ssSubmitTime }}{{ workTime(k.toolEList) }}</div>
                     </div>
 
                     <!-- 作业评分 -->
@@ -716,7 +716,7 @@
                       <!-- 分数详情与素养 -->
                       <div style="flex: 1; display: flex; flex-wrap: wrap">
                         <div style="width: 315px; margin:0 20px 10px 0">
-                          <div class="taskScoConTit">分数详情</div>
+                          <div class="taskScoConTit">{{ lang.ssScoreDetail }}</div>
                           <div
                             v-for="(wItem, ind) in l.eList"
                             :key="ind + 's'"
@@ -748,7 +748,7 @@
                         </div>
 
                         <div style="flex: 1">
-                          <div class="taskScoConTit">素养</div>
+                          <div class="taskScoConTit">{{ lang.ssLiteracy2 }}</div>
                           <div class="WorkConSY">
                             <div v-for="(wItem, ind) in l.eList" :key="ind + 's'">
                               <!-- <el-tooltip
@@ -780,7 +780,7 @@
                             "
                         v-if="l.rate.content"
                       >
-                        <div class="taskScoConTit">评语</div>
+                        <div class="taskScoConTit">{{ lang.ssComment }}</div>
                         <div class="WorkCon">
                           {{ l.rate.content }}
                         </div>
@@ -792,7 +792,7 @@
                 <!-- 思维导图 -->
                 <div v-if="CState == 5 || CState == 6" class="taskTitInd">
                   <div></div>
-                  <span>任务评价体系</span>
+                  <span>{{ lang.ssTaskEval }}</span>
                 </div>
                 <exjsmind
                   v-if="CState == 5 || CState == 6"
@@ -820,6 +820,7 @@ import jspdf from "jspdf";
 import JSZip from "jszip";
 import exjsmind from "./exjsmind";
 import MarkdownIt from "markdown-it";
+import { myMixin } from "@/mixins/mixin.js";
 const getFile = url => {
   return new Promise((resolve, reject) => {
     var credentials = {
@@ -860,6 +861,7 @@ const getFile = url => {
   });
 };
 export default {
+  mixins: [ myMixin ],
   props: [
     "uid",
     "cid",
@@ -1030,7 +1032,7 @@ export default {
         pdf.addImage(imgData, "PNG", 0, 0, imgWidth, imgHeight);
         pdf.save(
           this.worksDialogCon2.course +
-            "-作业集-" +
+            "-" + this.lang.ssWorkSet + "-" +
             this.worksDialogCon2.sName +
             ".pdf"
         );
@@ -1063,7 +1065,7 @@ export default {
             var pdfData = {
               pdfName:
                 this.worksDialogCon2.course +
-                "-作业集-" +
+                "-" + this.lang.ssWorkSet + "-" +
                 this.worksDialogCon2.sName +
                 ".pdf",
               pdfCon: pdf.output("blob")
@@ -1128,7 +1130,7 @@ export default {
                     toolEList: k.toolChoose,
                     treeData: {
                       id: "0",
-                      topic: k.task ? k.task : "任务" + i,
+                      topic: k.task ? k.task : this.lang.ssTask + i,
                       children: []
                     }
                   });
@@ -1301,7 +1303,7 @@ export default {
                               children: [
                                 {
                                   id: kind + "+" + elind + "+" + stind + "b",
-                                  topic: `工具${elind * 1 + 1}`
+                                  topic: this.lang.ssTool.replace(/\*/g, elind * 1 + 1)
                                 }
                               ]
                             });
@@ -1310,7 +1312,7 @@ export default {
                               if (lc.topic == st.detail) {
                                 lc.children.push({
                                   id: kind + "+" + elind + "+" + stind + "b",
-                                  topic: `工具${elind * 1 + 1}`
+                                  topic: this.lang.ssTool.replace(/\*/g, elind * 1 + 1)
                                 });
                               }
                             });
@@ -1400,7 +1402,7 @@ export default {
       // 生成压缩包并提供下载链接
       zip.generateAsync({ type: "blob" }).then(function(content) {
         // 使用FileSaver保存压缩包
-        saveAs(content, _this.courseName + "-作业集汇总.zip");
+        saveAs(content, _this.courseName + "-" + _this.lang.ssWorkSetSummary + ".zip");
       });
 
       this.$emit("update:worksDialog", false);
@@ -1437,7 +1439,7 @@ export default {
           if (!this.tableData.length) {
             this.loading = false;
 
-            return this.$message.info("课程下未有提交作业");
+            return this.$message.info(this.lang.ssNoWorkSubmit);
           }
           this.courseName = this.tableData[0].course;
           this.circulatePdf();

+ 30 - 30
src/components/pages/components/lookReport.vue

@@ -4,19 +4,19 @@
       style="display: flex;align-items: center;padding-bottom: 15px;font-size: 14px;color: rgba(0, 0, 0, 0.4);"
     >
       <span @click="pageBack" style="height: 100%;cursor: pointer;"
-        >评价管理</span
+        >{{lang.ssEvalManage}}</span
       >
       <span style="margin: 0 5px;">
         <i class="el-icon-arrow-right"></i>
       </span>
       <span @click="pageBack" style="height: 100%;cursor: pointer;"
-        >查看课程</span
+        >{{lang.ssViewCourse2}}</span
       >
       <span style="margin: 0 5px;">
         <i class="el-icon-arrow-right"></i>
       </span>
       <div style="font-weight: 600;color: rgba(0, 0, 0, 0.9);">
-        {{ checkCourse.title }}-查看报告
+        {{ checkCourse.title }}-{{lang.ssViewReport}}
       </div>
     </div>
 
@@ -32,7 +32,7 @@
           @click="exportWorkPdf"
           type="primary"
           size="small"
-          >一键导出</el-button
+          >{{lang.ssOneClickExp}}</el-button
         >
         <el-button
           v-if="checkCourse.state == 5 || checkCourse.state == 6"
@@ -40,7 +40,7 @@
           :type="multipleSelection.length < 2 ? 'info' : 'primary'"
           :disabled="multipleSelection.length < 2"
           size="small"
-          >批量导出</el-button
+          >{{lang.ssBatchExp}}</el-button
         >
 
         <el-button
@@ -48,7 +48,7 @@
           @click="pageBack"
           type="primary"
           size="small"
-          >返回</el-button
+          >{{lang.ssBack}}</el-button
         >
       </div>
     </div>
@@ -60,16 +60,16 @@
       <div
         style="display: flex;justify-content: space-between;align-items: center;width: 650px;"
       >
-        <div style="margin-right: 10px;">筛选</div>
+        <div style="margin-right: 10px;">{{lang.ssFilter}}</div>
         <div>
           <el-select
             class="r_select"
             v-model="uClass"
-            placeholder="请选择班级"
+            :placeholder="lang.ssSelectClass"
             filterable
             @change="searchWork2"
           >
-            <el-option label="所有班级" value></el-option>
+            <el-option :label="lang.ssAllClass" value></el-option>
             <el-option
               v-for="item in classAarray"
               :key="item.id"
@@ -82,10 +82,10 @@
         <el-select
           class="r_select"
           v-model="uname"
-          placeholder="请选择学生"
+          :placeholder="lang.ssSelectStu"
           @change="searchWork2"
         >
-          <el-option label="所有学生" value></el-option>
+          <el-option :label="lang.ssAllStudent" value></el-option>
           <el-option
             v-for="item in userAarray"
             :key="item.userid"
@@ -97,7 +97,7 @@
 
         <div class="typeCheck">
           <el-switch v-model="typeCheckN"></el-switch
-          ><span style="font-size: 14px;">查看所有学生</span>
+          ><span style="font-size: 14px;">{{lang.ssViewAllStu}}</span>
         </div>
       </div>
     </div>
@@ -120,12 +120,12 @@
         </el-table-column>
         <el-table-column
           prop="sName"
-          label="姓名"
+          :label="lang.ssName"
           min-width="20"
           align="center"
         ></el-table-column>
         <el-table-column
-          label="班级"
+          :label="lang.ssClass"
           min-width="20"
           show-overflow-tooltip
           align="center"
@@ -136,28 +136,28 @@
             </div>
           </template>
         </el-table-column>
-        <el-table-column align="center" label="操作" min-width="20">
+        <el-table-column align="center" :label="lang.ssOperation" min-width="20">
           <template slot-scope="scope">
             <el-button
               v-if="checkCourse.state == 5 || checkCourse.state == 6"
               type="primary"
               size="small"
               @click="lookPdf(scope.row)"
-              >查看报告</el-button
+              >{{lang.ssViewReport}}</el-button
             >
             <el-button
               v-else
               type="primary"
               size="small"
               @click="getReport(scope.row)"
-              >查看报告</el-button
+              >{{lang.ssViewReport}}</el-button
             >
             <el-button
               v-if="checkCourse.state == 5 || checkCourse.state == 6"
               type="primary"
               size="small"
               @click="getPdf(scope.row)"
-              >导出报告</el-button
+              >{{lang.ssExportReport}}</el-button
             >
           </template>
         </el-table-column>
@@ -188,7 +188,7 @@
     >
       <div slot="title" class="header-title">
         <div style="color: #fff">
-          {{ this.digNum == 2 ? "查看" : "导出" }}报告
+          {{ this.digNum == 2 ? lang.ssView : lang.ssExport }}{{lang.ssReport}}
         </div>
       </div>
       <exportDataDialog
@@ -215,17 +215,17 @@
       </div>
     </el-dialog>
     <el-dialog
-      title="提示"
+      :title="lang.ssTip"
       :visible.sync="workFrame"
       width="500px"
       style="overflow: hidden;margin-top: 20vh;"
       :append-to-body="true"
       :before-close="handleClose">
-      <span>是否同步导出学生作业集?</span>
+      <span>{{lang.ssSyncExport}}</span>
       <span slot="footer" class="dialog-footer">
-        <el-button size="small" @click="workFrame = false">取消</el-button>
-        <el-button size="small" type="primary" @click="downloadPdf(0)">仅报告</el-button>
-        <el-button size="small" type="primary" @click="downloadPdf(1)">报告(含作业集)</el-button>
+        <el-button size="small" @click="workFrame = false">{{lang.ssCancel}}</el-button>
+        <el-button size="small" type="primary" @click="downloadPdf(0)">{{lang.ssOnlyReport}}</el-button>
+        <el-button size="small" type="primary" @click="downloadPdf(1)">{{lang.ssReportWithWork}}</el-button>
       </span>
     </el-dialog>
     <!-- <div style="width: 30px;" v-if="workFrame">
@@ -302,9 +302,9 @@ export default {
     },
     // 一键导出
     exportWorkPdf() {
-      this.$confirm("一键导出所有报告需要占用您大量时间,是否导出?", "提示", {
-        confirmButtonText: "确认",
-        cancelButtonText: "取消",
+      this.$confirm(this.lang.ssOneClickExpAll, this.lang.ssTip, {
+        confirmButtonText: this.lang.ssConfirm,
+        cancelButtonText: this.lang.ssCancel,
         type: "warning"
       })
         .then(() => {
@@ -318,9 +318,9 @@ export default {
     },
     // 批量导出
     batchExportPdf() {
-      this.$confirm("批量导出报告需要占用您一些时间,是否导出?", "提示", {
-        confirmButtonText: "确认",
-        cancelButtonText: "取消",
+      this.$confirm(this.lang.ssBatchExpAll, this.lang.ssTip, {
+        confirmButtonText: this.lang.ssConfirm,
+        cancelButtonText: this.lang.ssCancel,
         type: "warning"
       })
         .then(() => {

+ 64 - 64
src/components/pages/components/lookWork.vue

@@ -20,20 +20,20 @@
           type="primary"
           style="margin-left: 10px;height: 25px;line-height: 8px;"
           @click="expPdf"
-          >导出</el-button
+          >{{lang.ssExport}}</el-button
         >
       </div>
 
       <div v-if="isStu == 0">
         <el-button type="primary" @click="upPer" size="small" v-if="positP > 0"
-          >上一个</el-button
+          >{{lang.ssPrevStu}}</el-button
         >
         <el-button
           type="primary"
           @click="nxtPer"
           size="small"
           v-if="positP < tableData.length - 1"
-          >下一个</el-button
+          >{{lang.ssNextStu}}</el-button
         >
       </div>
     </div>
@@ -56,7 +56,7 @@
             >
               <template slot="title">
                 <div class="eliP">
-                  {{ "第" + (i.id * 1 + 1) + "阶段" }}:{{ i.name }}
+                  {{ lang.ssStage.replace(/\*/g, i.id * 1 + 1) }}:{{ i.name }}
                 </div>
               </template>
               <el-menu-item-group>
@@ -67,7 +67,7 @@
                   style="display: flex; align-items: center"
                   @click="positT(k.id)"
                 >
-                  <div class="TitBti">任务{{ kin + 1 }}</div>
+                  <div class="TitBti">{{lang.ssTaskrp.replace(/\*/g, kin + 1)}}</div>
                   <div class="eliP">
                     {{ k.name }}
                   </div>
@@ -87,7 +87,7 @@
               class="stageCon"
             >
               <div v-if="CState != 5 && CState != 6" class="stageTit">
-                阶段{{ i.id + 1 }}:{{ i.name }}
+                {{lang.ssStage.replace(/\*/g, i.id + 1)}}:{{ i.name }}
               </div>
 
               <template v-for="(k) in i.taskList">
@@ -106,7 +106,7 @@
                     :id="k.stage + '-' + k.task"
                   >
                     <div class="taskTitInd">
-                      <span class="TitBti">任务{{ k.task + 1 }}</span>
+                      <span class="TitBti">{{lang.ssTaskrp.replace(/\*/g, k.task + 1)}}</span>
                       <span>{{ k.taskTit }}</span>
                     </div>
                     <div></div>
@@ -124,7 +124,7 @@
                       v-if="l.content && l.content.length"
                     >
                       <div class="JSCo" v-if="l.score">
-                        <div>评分:{{ JSON.parse(l.score).wScore }}</div>
+                        <div>{{lang.ssScore2}}{{ JSON.parse(l.score).wScore }}</div>
                         <div class="JSCoTxt">
                           <el-tooltip
                             class="item"
@@ -145,12 +145,12 @@
                             alt=""
                           />
                           <div class="toolTit">
-                            <div>工具{{ lind + 1 }}:问答工具</div>
-                            <div>提问:{{ l.content[0][0].answerTitle }}</div>
+                            <div>{{lang.ssTool.replace(/\*/g, lind + 1)}}{{lang.ssQATool}}</div>
+                            <div>{{lang.ssQuestionT}}{{ l.content[0][0].answerTitle }}</div>
                           </div>
                         </div>
                         <div class="answerTxt">
-                          回答:{{ l.content[0][0].answer }}
+                          {{lang.ssAnswer}}{{ l.content[0][0].answer }}
                         </div>
                       </div>
                       <div v-if="l.tool[0] == 52">
@@ -161,9 +161,9 @@
                             alt=""
                           />
                           <div class="toolTit">
-                            <div>工具{{ lind + 1 }}:文档工具</div>
+                            <div>{{lang.ssTool.replace(/\*/g, lind + 1)}}{{lang.ssDocTool}}</div>
                             <div>
-                              根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
+                              {{lang.ssDefaultDesc}}
                             </div>
                           </div>
                         </div>
@@ -177,14 +177,14 @@
                             alt=""
                           />
                           <div class="toolTit">
-                            <div>工具{{ lind + 1 }}:{{ l.appJson.name }}</div>
+                            <div>{{lang.ssTool.replace(/\*/g, lind + 1)}}{{ l.appJson.name }}</div>
                             <div>
                               {{ l.appJson.detail }}
                             </div>
                           </div>
                         </div>
                         <div  style="margin-bottom: 20px;" v-for="(item,index) in l.content[0]" :key="index+'coco'">
-                            <div style="margin-bottom: 15px;font-size: 14px;font-weight: 600;color: #000;">{{ index + 1}}阶段</div>
+                            <div style="margin-bottom: 15px;font-size: 14px;font-weight: 600;color: #000;">{{lang.ssStage.replace(/\*/g, index + 1)}}</div>
                             <template v-if="item.imageUrls && item.imageUrls.length">
                               <div style="display: flex;flex-wrap: wrap;gap: 10px;" v-for="(image,index) in item.imageUrls" :key="index+'-image'">
                                   <img style="max-width: 390px;object-fit: cover;" :src="image" alt="" />
@@ -193,7 +193,7 @@
                             <template v-if="item.messages && item.messages.length">
                               <div v-for="(po,PInd) in item.messages" :key="PInd+'PInd'">
                                 <div class="left" v-if="po.role == 'assistant'">
-                                        <div class="TName">小可AI助手</div>:
+                                        <div class="TName">{{lang.ssAIAssist}}</div>:
                                         <div class="con" v-html="MarkdownT(po.content)"></div>
                                 </div>
 
@@ -219,12 +219,12 @@
                           />
                           <div class="toolTit">
                             <div>
-                              工具{{ lind + 1 }}:{{
-                                l.tool[0] == 16 ? "作业提交" : "批量上传"
+                              {{lang.ssTool.replace(/\*/g, lind + 1)}}{{
+                                l.tool[0] == 16 ? lang.ssWorkSubmit : lang.ssBatchUpload
                               }}
                             </div>
                             <div>
-                              根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
+                              {{lang.ssDefaultDesc}}
                             </div>
                           </div>
                         </div>
@@ -291,16 +291,16 @@
                           />
                           <div class="toolTit">
                             <div>
-                              工具{{ lind + 1 }}:{{
+                              {{lang.ssTool.replace(/\*/g, lind + 1)}}{{
                                 l.tool[0] == 1
-                                  ? "电子白板"
+                                  ? lang.ssWhiteBoard
                                   : l.tool[0] == 7
-                                  ? "思维网格"
-                                  : "思维导图"
+                                  ? lang.ssMindGrid
+                                  : lang.ssMindMap
                               }}
                             </div>
                             <div>
-                              根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
+                              {{lang.ssDefaultDesc}}
                             </div>
                           </div>
                         </div>
@@ -319,9 +319,9 @@
                             alt=""
                           />
                           <div class="toolTit">
-                            <div>工具{{ lind + 1 }}:表格</div>
+                            <div>{{lang.ssTool.replace(/\*/g, lind + 1)}}{{lang.ssTable}}</div>
                             <div>
-                              根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
+                              {{lang.ssDefaultDesc}}
                             </div>
                           </div>
                         </div>
@@ -336,8 +336,8 @@
                             alt=""
                           />
                           <div class="toolTit">
-                            <div>工具{{ lind + 1 }}:问卷调查</div>
-                            <div>标题:{{ l.content[0][0].askJson.askTitle }}</div>
+                            <div>{{lang.ssTool.replace(/\*/g, lind + 1)}}{{lang.ssSurveyTool}}</div>
+                            <div>{{lang.ssTitle}}:{{ l.content[0][0].askJson.askTitle }}</div>
                           </div>
                         </div>
 
@@ -346,7 +346,7 @@
                           v-for="(i, index) in l.content[0][0].askJson.askJson"
                           :key="index"
                         >
-                          <div>题目:{{ i.askstitle }}</div>
+                          <div>{{lang.ssTopic}}:{{ i.askstitle }}</div>
                           <el-radio-group
                             v-if="!i.type"
                             v-model="l.content[0][0].anwer[index]"
@@ -384,9 +384,9 @@
                             alt=""
                           />
                           <div class="toolTit">
-                            <div>工具{{ lind + 1 }}:选择题</div>
+                            <div>{{lang.ssTool.replace(/\*/g, lind + 1)}}{{lang.ssChoiceTool}}</div>
                             <div>
-                              根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
+                              {{lang.ssDefaultDesc}}
                             </div>
                           </div>
                         </div>
@@ -395,16 +395,16 @@
                           :key="index + 'm'"
                         >
                           <div>
-                            题目:{{ i.teststitle }}
+                            {{lang.ssTopic}}:{{ i.teststitle }}
                             <span
                               v-if="
                                 JSON.stringify(l.content[0].radio[index]) ==
                                   JSON.stringify(i.answer)
                               "
                               style="color: #868ce4"
-                              >回答正确</span
+                              >{{lang.ssCorrect}}</span
                             >
-                            <span v-else style="color: red">回答错误</span>
+                            <span v-else style="color: red">{{lang.ssWrong}}</span>
                           </div>
                           <div
                             v-if="i.type == 1"
@@ -495,9 +495,9 @@
                             alt=""
                           />
                           <div class="toolTit">
-                            <div>工具{{ lind + 1 }}:选择匹配</div>
+                            <div>{{lang.ssTool.replace(/\*/g, lind + 1)}}{{lang.ssMatchTool}}</div>
                             <div>
-                              根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
+                              {{lang.ssDefaultDesc}}
                             </div>
                           </div>
                         </div>
@@ -508,7 +508,7 @@
                           alt=""
                         />
                         <div>
-                          <span style="margin-right: 10px">选项:</span
+                          <span style="margin-right: 10px">{{lang.ssOption}}:</span
                           ><span
                             style="margin-right: 10px"
                             v-for="(item, itInd) in l.selectJson.select"
@@ -517,32 +517,32 @@
                           >
                         </div>
                         <div style="margin: 10px 0;">
-                          <span style="margin-right: 10px">回答:</span>
+                          <span style="margin-right: 10px">{{lang.ssAnswer}}</span>
 
                           <div
                             style="margin-right: 10px"
                             v-for="(item, itInd) in l.content[0]"
                             :key="itInd"
                           >
-                            选项{{ itInd + 1 }}:{{ l.selectJson.select[item] }}
+                            {{lang.ssOption}}{{ itInd + 1 }}:{{ l.selectJson.select[item] }}
                             <span
                               v-if="
                                 l.selectJson.answer[itInd] == l.content[0][itInd]
                               "
                               style="color: #868ce4"
-                              >回答正确</span
+                              >{{lang.ssCorrect}}</span
                             >
-                            <span v-else style="color: red">回答错误</span>
+                            <span v-else style="color: red">{{lang.ssWrong}}</span>
                           </div>
                         </div>
                         <div>
-                          <span style="margin-right: 10px">答案:</span>
+                          <span style="margin-right: 10px">{{lang.ssAnswer3}}</span>
 
                           <span
                             style="margin-right: 10px"
                             v-for="(item, itInd) in l.selectJson.answer"
                             :key="itInd"
-                            >选项{{ itInd + 1 }}:{{
+                            >{{lang.ssOption}}{{ itInd + 1 }}:{{
                               l.selectJson.select[item]
                             }}</span
                           >
@@ -595,9 +595,9 @@
                             alt=""
                           />
                           <div class="toolTit">
-                            <div>工具{{ lind + 1 }}:排序</div>
+                            <div>{{lang.ssTool.replace(/\*/g, lind + 1)}}{{lang.ssSortTool}}</div>
                             <div>
-                              根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
+                              {{lang.ssDefaultDesc}}
                             </div>
                           </div>
                         </div>
@@ -614,7 +614,7 @@
                                 flex-wrap: wrap;
                               "
                           >
-                            题目:
+                            {{ lang.ssTopic }}:
                             <div
                               class="sortTool"
                               v-for="(i, index) in i.addSentence"
@@ -628,9 +628,9 @@
                                   JSON.stringify(i.addSentence)
                               "
                               style="color: #868ce4"
-                              >回答正确</span
+                              >{{lang.ssCorrect}}</span
                             >
-                            <span v-else style="color: red">回答错误</span>
+                            <span v-else style="color: red">{{lang.ssWrong}}</span>
                           </div>
                           <div
                             style="
@@ -640,7 +640,7 @@
                                 flex-wrap: wrap;
                               "
                           >
-                            学生回答:
+                            {{lang.ssStuAnswer}}
                             <div
                               class="sortTool"
                               v-for="(i, index) in i.chooseSenList"
@@ -650,7 +650,7 @@
                             </div>
                           </div>
                           <div>
-                            答案:
+                            {{lang.ssAnswer3}}
                             <span style="margin: 0 5px">{{
                               i.addSentence.join(",")
                             }}</span>
@@ -666,12 +666,12 @@
                     >
                       <div class="taskScoTit">
                         <div>
-                          作业得分:<span style="color: rgba(242, 161, 75, 1)">{{
+                          {{lang.ssTaskScore}}<span style="color: rgba(242, 161, 75, 1)">{{
                             totalScore(l.rate)
                           }}</span>
-                          
+                          {{lang.ssScoreUnit}}
                         </div>
-                        <div>作业提交时间:{{ workTime(k.toolEList) }}</div>
+                        <div>{{lang.ssSubmitTime}}{{ workTime(k.toolEList) }}</div>
                       </div>
 
                       <!-- 作业评分 -->
@@ -679,7 +679,7 @@
                         <!-- 分数详情与素养 -->
                         <div v-if="l.eList" class="taskScoConEList">
                           <div style="width: 49%; margin: 0 20px 10px 0">
-                            <div class="taskScoConTit">分数详情</div>
+                            <div class="taskScoConTit">{{lang.ssScoreDetail}}</div>
                             <div style="display: flex;flex-wrap: wrap;">
                               <div
                                 v-for="(wItem, ind) in l.eList"
@@ -704,7 +704,7 @@
                             v-if="l.eList"
                             style="width: 49%;display: flex;flex-direction: column;"
                           >
-                            <div class="taskScoConTit">素养</div>
+                            <div class="taskScoConTit">{{lang.ssLiteracy2}}</div>
                             <div class="WorkConSY">
                               <div v-for="(wItem, ind) in l.eList" :key="ind + 's'">
                                 <div class="RootImgBlockSy">
@@ -725,7 +725,7 @@
                             "
                           v-if="l.rate.content || l.rate.comment"
                         >
-                          <div class="taskScoConTit">评语</div>
+                          <div class="taskScoConTit">{{lang.ssComment}}</div>
                           <div class="WorkCon">
                             {{ l.rate.content || l.rate.comment }}
                           </div>
@@ -742,12 +742,12 @@
                     >
                       <div class="taskScoTit">
                         <div>
-                          作业得分:<span style="color: rgba(242, 161, 75, 1)">{{
+                          {{lang.ssTaskScore}}<span style="color: rgba(242, 161, 75, 1)">{{
                             totalScore(k.toolEList[0].rate)
                           }}</span>
-                          
+                          {{lang.ssScoreUnit}}
                         </div>
-                        <div>作业提交时间:{{ workTime(k.toolEList) }}</div>
+                        <div>{{lang.ssSubmitTime}}{{ workTime(k.toolEList) }}</div>
                       </div>
 
                       <!-- 作业评分 -->
@@ -755,7 +755,7 @@
                         <!-- 分数详情与素养 -->
                         <div v-if="l.eList" class="taskScoConEList">
                           <div style="width: 49%; margin: 0 20px 10px 0">
-                            <div class="taskScoConTit">分数详情</div>
+                            <div class="taskScoConTit">{{lang.ssScoreDetail}}</div>
                             <div style="display: flex;flex-wrap: wrap;">
                               <div
                                 v-for="(wItem, ind) in l.eList"
@@ -780,7 +780,7 @@
                             v-if="isSU(l.eList)"
                             style="width: 49%;display: flex;flex-direction: column;"
                           >
-                            <div class="taskScoConTit">素养</div>
+                            <div class="taskScoConTit">{{lang.ssLiteracy2}}</div>
                             <div class="WorkConSY">
                               <div v-for="(wItem, ind) in l.eList" :key="ind + 's'">
                                 <div class="RootImgBlockSy">
@@ -806,7 +806,7 @@
                             "
                           v-if="l.rate.content || l.rate.comment"
                         >
-                          <div class="taskScoConTit">评语</div>
+                          <div class="taskScoConTit">{{lang.ssComment}}</div>
                           <div class="WorkCon">
                             {{ l.rate.content || l.rate.comment }}
                           </div>
@@ -1157,7 +1157,7 @@ export default {
         .catch(err => {
           this.addOp3('1', "", { courseid: this.cid ,type: "course_homeWorkScore_edit" }, err)
 
-          this.$message.error("评价失败");
+          this.$message.error(this.lang.ssEvalFail);
           console.error(err);
         });
     },
@@ -1456,7 +1456,7 @@ export default {
           behavior: "smooth" // 平滑滚动效果
         });
       } else {
-        this.$message.error("该任务暂时没提交作业");
+        this.$message.error(this.lang.ssNoTaskWork);
       }
     }
   }

+ 484 - 943
src/components/pages/components/report.vue

@@ -1,13 +1,13 @@
 <template>
   <div class="r_box" v-loading="isLoading">
     <div class="r_cbox">
-      <span>班级筛选</span>
+      <span>{{lang.ssClassFilter}}</span>
       <el-select
         multiple
         collapse-tags
         class="r_select"
         v-model="chooseClass"
-        placeholder="全部"
+        :placeholder="lang.ssAll"
         filterable
         @change="changeClass"
       >
@@ -22,13 +22,13 @@
     </div>
 
     <div class="r_cbox">
-      <span>学生姓名</span>
+      <span>{{lang.ssStuName}}</span>
       <el-select
         multiple
         collapse-tags
         class="r_select"
         v-model="uname"
-        placeholder="全部"
+        :placeholder="lang.ssAll"
       >
         <el-option
           v-for="item in userAarray"
@@ -41,13 +41,13 @@
     </div>
 
     <div class="r_cbox" v-if="(dataJson.state != 5 && dataJson.state != 6)">
-      <span>选择阶段</span>
+      <span>{{lang.ssSelectStage}}</span>
       <el-select
         class="r_select"
         v-model="chap"
         multiple
         collapse-tags
-        placeholder="全部"
+        :placeholder="lang.ssAll"
         @change="changeChap"
       >
         <el-option
@@ -60,13 +60,13 @@
     </div>
 
     <div class="r_cbox">
-      <span>任务内容</span>
+      <span>{{lang.ssTaskContent}}</span>
       <el-select
         class="r_select"
         v-model="task"
         multiple
         collapse-tags
-        placeholder="全部"
+        :placeholder="lang.ssAll"
       >
         <el-option-group
           v-for="(group, index) in dyAarray"
@@ -84,7 +84,7 @@
       </el-select>
     </div>
     <div class="btn_box">
-      <el-button class="btn" type="primary" @click="confirmPdf">确定</el-button>
+      <el-button class="btn" type="primary" @click="confirmPdf">{{lang.ssConfirm}}</el-button>
     </div>
 
     <el-dialog
@@ -98,8 +98,8 @@
         <div style="color: #fff">
           {{
             (dataJson.state == 5 || dataJson.state == 6)
-              ? "按任务导出"
-              : "自定义导出" + ":" + dataJson.title
+              ? lang.ssTaskExport
+              : lang.ssCustomExp + ":" + dataJson.title
           }}
         </div>
       </div>
@@ -117,1013 +117,554 @@
             <h1>{{ userP.username }}</h1>
           </div> -->
 
-        <div
-          v-for="(i, wip) in workList"
-            v-if="(chap.length ? chap.indexOf(wip) != -1 : true)"
-          :key="i.id"
-          class="stageCon"
-        >
-          <!-- v-if="
-              isStage(i.taskList, userP.userid) &&
-                (chap.length ? chap.indexOf(wip) != -1 : true)
-            " -->
-          <div v-if="dataJson.state != 5" class="stageTit">
-            第{{ i.id * 1 + 1 }}阶段<span v-if="i.name">:{{ i.name }}</span>
-          </div>
+        <template  v-for="(i, wip) in workList">
           <div
-            v-for="k in i.taskList"
-            :key="k.task + 'a'"
-              v-if="isTask( k)"
-              
-            style="margin-bottom: 15px"
+            v-if="(chap.length ? chap.indexOf(wip) != -1 : true)"
+            :key="i.id"
+            class="stageCon"
           >
-            <!-- v-if="isTask(k.toolEList, userP.userid, k)" -->
-
-            <div
-              style="
-                    width: 100%;
-                    display: flex;
-                    justify-content: space-between;
-                    margin-bottom: 10px;
-                  "
-            >
-              <div class="taskTitInd">
-                <span>任务{{ k.task + 1 }}</span>
-                <span>{{ k.taskTit }}</span>
-              </div>
-              <div></div>
-            </div>
-            <div v-if="k.taskDetail" class="taskBri">
-              <div v-html="k.taskDetail"></div>
+            <!-- v-if="
+                isStage(i.taskList, userP.userid) &&
+                  (chap.length ? chap.indexOf(wip) != -1 : true)
+              " -->
+            <div v-if="dataJson.state != 5" class="stageTit">
+              {{lang.ssStage.replace(/\*/g, i.id * 1 + 1)}}<span v-if="i.name">:{{ i.name }}</span>
             </div>
-            <div
-              class="WorksCon"
-              v-for="(l, lind) in k.toolEList"
-              :key="lind + 'l'"
-            >
+
+            <template v-for="k in i.taskList">
               <div
-                v-if="l.content && l.content.length"
-                v-for="(imgp, imgIdx) in l.content"
-                :key="imgIdx + 'img'"
+                :key="k.task + 'a'"
+                v-if="isTask(k)"
+                style="margin-bottom: 15px"
               >
-              
+                <!-- v-if="isTask(k.toolEList, userP.userid, k)" -->
                 <div
-                  v-for="(userP, upi) in pdfUser"
-                  style="background-color: #fff;border-radius: 8px;margin-top: 10px;"
-                  :key="upi + 'upi'"
+                  style="
+                        width: 100%;
+                        display: flex;
+                        justify-content: space-between;
+                        margin-bottom: 10px;
+                      "
                 >
-                  <div  v-if="
-                    (imgp && imgp[0] && imgp[0].userid == userP.userid) ||
-                      imgp.userid == userP.userid
-                  ">
-                   
-                    <div v-if="l.tool[0] == 15">
-                      <div style="padding: 10px;box-sizing: border-box;">
-                        <h1>{{ userP.username }}</h1>
-                      </div>
-                      <div class="toolBlk">
-                        <img
-                          src="../../../assets/icon/thirdToolList/answer.png"
-                          alt=""
-                        />
-                        <div class="toolTit">
-                          <div>工具{{ lind + 1 }}:问答工具</div>
-                          <div>提问:{{ l.content[0][0].answerTitle }}</div>
-                        </div>
-                      </div>
-                      <div class="answerTxt">
-                        回答:{{ l.content[0][0].answer }}
-                      </div>
-                    </div>
-                    <div v-if="l.tool[0] == 52">
-                      <div style="padding: 10px;box-sizing: border-box;">
-                        <h1>{{ userP.username }}</h1>
-                      </div>
-                      <div class="toolBlk">
-                        <img
-                          src="../../../assets/icon/fourthToolList/text.png"
-                          alt=""
-                        />
-                        <div class="toolTit">
-                          <div>工具{{ lind + 1 }}:文档工具</div>
-                          <div>
-                            根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
-                          </div>
-                        </div>
-                      </div>
-                      <div class="answerTxt" v-html="l.content[0].text"></div>
-                    </div>
-                    <div v-if="l.tool[0] == 72">
-                    <div class="toolBlk">
-                      <img
-                      style="width: 44px;height: 44px;object-fit: contain;"
-                        :src="l.appJson.json.icon"
-                        alt=""
-                      />
-                      <div class="toolTit">
-                        <div>工具{{ lind + 1 }}:{{ l.appJson.name }}</div>
-                        <div>
-                          {{ l.appJson.detail }}
-                        </div>
-                      </div>
-                    </div>
-                    <div  style="margin-bottom: 20px;" v-for="(item,index) in l.content[0]" :key="index+'coco'">
-                        <div style="margin-bottom: 15px;font-size: 14px;font-weight: 600;color: #000;">第{{ index + 1}}阶段</div>
-                        <div v-for="(po,PInd) in item.messages" :key="PInd+'PInd'">
-                            <div class="left" v-if="po.role == 'assistant'">
-                                    <div class="TName">小可AI助手</div>:
-                                    <div class="con" v-html="MarkdownT(po.content)"></div>
-                            </div>
-
-                            <div class="left" v-if="po.role == 'user'">
-                                    <div class="TName">{{ userP.username }}</div>:
-                                    <div class="con" v-html="po.content"></div>
-                            </div>
-                        </div>
-                    </div>
+                  <div class="taskTitInd">
+                    <span>{{lang.ssTaskrp.replace(/\*/g, k.task + 1)}}</span>
+                    <span>{{ k.taskTit }}</span>
                   </div>
-                    <div v-if="l.tool[0] == 16 || l.tool[0] == 50">
-                      <div style="padding: 10px;box-sizing: border-box;">
-                        <h1>{{ userP.username }}</h1>
-                      </div>
-                      <div class="toolBlk">
-                        <img
-                          v-if="l.tool[0] == 16"
-                          src="../../../assets/icon/thirdToolList/work.png"
-                          alt=""
-                        />
-                        <img
-                          v-if="l.tool[0] == 50"
-                          src="../../../assets/icon/thirdToolList/plwork.png"
-                          alt=""
-                        />
-
-                        <div class="toolTit">
-                          <div>
-                            工具{{ lind + 1 }}:{{
-                              l.tool[0] == 16 ? "作业提交" : "批量上传"
-                            }}
-                          </div>
-                          <div>
-                            根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
-                          </div>
-                        </div>
-                      </div>
-                      <div v-for="(i, codex) in l.content" :key="codex + 'co'">
-                        <div class="answerTxt" v-html="i.con"></div>
-                      </div>
-                    </div>
+                  <div></div>
+                </div>
+                <div v-if="k.taskDetail" class="taskBri">
+                  <div v-html="k.taskDetail"></div>
+                </div>
+                <div
+                  class="WorksCon"
+                  v-for="(l, lind) in k.toolEList"
+                  :key="lind + 'l'"
+                >
+                <template v-if="l.content && l.content.length">
+                  <div
+                    v-for="(imgp, imgIdx) in l.content"
+                    :key="imgIdx + 'img'"
+                  >
+                  
                     <div
-                      v-if="l.tool[0] == 7 || l.tool[0] == 1 || l.tool[0] == 3"
+                      v-for="(userP, upi) in pdfUser"
+                      style="background-color: #fff;border-radius: 8px;margin-top: 10px;"
+                      :key="upi + 'upi'"
                     >
-                    <div style="padding: 10px;box-sizing: border-box;">
-                        <h1>{{ userP.username }}</h1>
-                      </div>
-                      <div class="toolBlk">
-                        <img
-                          v-if="l.tool[0] == 1"
-                          src="../../../assets/icon/secondToolList/whiteBoard.png"
-                          alt=""
-                        />
-                        <img
-                          v-if="l.tool[0] == 3"
-                          src="../../../assets/icon/secondToolList/mindMapping.png"
-                          alt=""
-                        />
-                        <img
-                          v-if="l.tool[0] == 7"
-                          src="../../../assets/icon/secondToolList/mindNetwork.png"
-                          alt=""
-                        />
-
-                        <div class="toolTit">
-                          <div>
-                            工具{{ lind + 1 }}:{{
-                              l.tool[0] == 1
-                                ? "电子白板"
-                                : l.tool[0] == 7
-                                ? "思维网格"
-                                : "思维导图"
-                            }}
+                      <div  v-if="
+                        (imgp && imgp[0] && imgp[0].userid == userP.userid) ||
+                          imgp.userid == userP.userid
+                      ">
+                      
+                        <div v-if="l.tool[0] == 15">
+                          <div style="padding: 10px;box-sizing: border-box;">
+                            <h1>{{ userP.username }}</h1>
                           </div>
-                          <div>
-                            根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
+                          <div class="toolBlk">
+                            <img
+                              src="../../../assets/icon/thirdToolList/answer.png"
+                              alt=""
+                            />
+                            <div class="toolTit">
+                              <div>{{lang.ssTool.replace(/\*/g, lind + 1)}}{{lang.ssQATool}}</div>
+                              <div>{{lang.ssQuestionT}}{{ l.content[0][0].answerTitle }}</div>
+                            </div>
                           </div>
-                        </div>
-                      </div>
-                      <img
-                        style="max-width: 200px"
-                        :src="l.content[0].con"
-                        alt=""
-                      />
-                      <div>{{ l.content[0].con }}</div>
-                    </div>
-                    <div v-if="l.tool[0] == 48">
-                      <div style="padding: 10px;box-sizing: border-box;">
-                        <h1>{{ userP.username }}</h1>
-                      </div>
-                      <div class="toolBlk">
-                        <img
-                          src="../../../assets/icon/fourthToolList/table.png"
-                          alt=""
-                        />
-                        <div class="toolTit">
-                          <div>工具{{ lind + 1 }}:表格</div>
-                          <div>
-                            根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
+                          <div class="answerTxt">
+                            {{lang.ssAnswer}}{{ l.content[0][0].answer }}
                           </div>
                         </div>
-                      </div>
-                      <el-form>
-                        <div class="cont" v-html="l.content[0].text"></div>
-                      </el-form>
-                    </div>
-                    <div v-if="l.tool[0] == 4">
-                      <div style="padding: 10px;box-sizing: border-box;">
-                        <h1>{{ userP.username }}</h1>
-                      </div>
-                      <div class="toolBlk">
-                        <img
-                          src="../../../assets/icon/thirdToolList/ask.png"
-                          alt=""
-                        />
-                        <div class="toolTit">
-                          <div>工具{{ lind + 1 }}:问卷调查</div>
-                          <div>标题:{{ l.content[0][0].askJson.askTitle }}</div>
-                        </div>
-                      </div>
-
-                      <div
-                        style="margin-bottom: 5px"
-                        v-for="(i, index) in l.content[0][0].askJson.askJson"
-                        :key="index"
-                      >
-                        <div>题目:{{ i.askstitle }}</div>
-                        <el-radio-group
-                          v-if="!i.type"
-                          v-model="l.content[0][0].anwer[index]"
-                        >
-                          <el-radio
-                            v-for="(item2, checkIndex) in i.checkList"
-                            :key="checkIndex + 'b'"
-                            :label="checkIndex"
-                            disabled
-                          >
-                            {{ item2 }}
-                          </el-radio>
-                        </el-radio-group>
-                        <el-checkbox-group
-                          v-model="l.content[0][0].anwer[index]"
-                          v-else
-                        >
-                          <div class="radioBox">
-                            <el-checkbox
-                              v-for="(item2, checkIndex) in i.checkList"
-                              :key="checkIndex + 'c'"
-                              :label="checkIndex"
-                              disabled
-                            >
-                              {{ item2 }}
-                            </el-checkbox>
+                        <div v-if="l.tool[0] == 52">
+                          <div style="padding: 10px;box-sizing: border-box;">
+                            <h1>{{ userP.username }}</h1>
                           </div>
-                        </el-checkbox-group>
-                      </div>
-                    </div>
-                    <div v-if="l.tool[0] == 45">
-                      <div style="padding: 10px;box-sizing: border-box;">
-                        <h1>{{ userP.username }}</h1>
-                      </div>
-                      <div class="toolBlk">
-                        <img
-                          src="../../../assets/icon/thirdToolList/choose.png"
-                          alt=""
-                        />
-                        <div class="toolTit">
-                          <div>工具{{ lind + 1 }}:选择题</div>
-                          <div>
-                            根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
+                          <div class="toolBlk">
+                            <img
+                              src="../../../assets/icon/fourthToolList/text.png"
+                              alt=""
+                            />
+                            <div class="toolTit">
+                              <div>{{lang.ssTool.replace(/\*/g, lind + 1)}}{{lang.ssDocTool}}</div>
+                              <div>
+                                {{lang.ssDefaultDesc}}
+                              </div>
+                            </div>
                           </div>
+                          <div class="answerTxt" v-html="l.content[0].text"></div>
                         </div>
-                      </div>
-                      <div
-                        v-for="(i, index) in l.content[0].testJson"
-                        :key="index + 'm'"
-                      >
-                        <div>
-                          题目:{{ i.teststitle }}
-                          <span
-                            v-if="
-                              JSON.stringify(l.content[0].radio[index]) ==
-                                JSON.stringify(i.answer)
-                            "
-                            style="color: #868ce4"
-                            >回答正确</span
-                          >
-                          <span v-else style="color: red">回答错误</span>
-                        </div>
-                        <div
-                          v-if="i.type == 1"
-                          style="display: flex; flex-direction: column"
-                        >
-                          <el-radio-group v-model="l.content[0].radio[index]">
-                            <div class="radioBox">
-                              <el-radio
-                                v-for="(item2, checkIndex) in i.checkList"
-                                :key="checkIndex + 'b'"
-                                :label="checkIndex"
-                                disabled
-                                :class="[
-                                  i.answer == checkIndex
-                                    ? 'redioStyle5'
-                                    : 'redioStyle2'
-                                ]"
-                              >
-                                <div
-                                  v-if="
-                                    item2 && item2.imgType && item2.imgType == 1
-                                  "
-                                >
-                                  <div
-                                    class="inImg"
-                                    @click.stop="previewImg(item2.src)"
-                                  >
-                                    <img
-                                      style="display: block"
-                                      :src="item2.src"
-                                      alt=""
-                                    />
-                                  </div>
-                                </div>
-                                <span v-else v-html="item2"></span>
-                              </el-radio>
+                        <div v-if="l.tool[0] == 72">
+                        <div class="toolBlk">
+                          <img
+                          style="width: 44px;height: 44px;object-fit: contain;"
+                            :src="l.appJson.json.icon"
+                            alt=""
+                          />
+                          <div class="toolTit">
+                            <div>{{lang.ssTool.replace(/\*/g, lind + 1)}}{{ l.appJson.name }}</div>
+                            <div>
+                              {{ l.appJson.detail }}
                             </div>
-                          </el-radio-group>
+                          </div>
                         </div>
-                        <div class="radioBox">
-                          <el-checkbox-group
-                            v-model="l.content[0].radio[index]"
-                            v-if="i.type == '2'"
-                          >
-                            <div class="radioBox">
-                              <el-checkbox
-                                v-for="(item2, checkIndex) in i.checkList"
-                                :key="checkIndex + 'c'"
-                                :label="checkIndex"
-                                disabled
-                                :class="[
-                                  i.answer.includes(checkIndex)
-                                    ? 'redioStyle3'
-                                    : 'redioStyle4'
-                                ]"
-                              >
-                                <div style="display: flex">
-                                  <div
-                                    v-if="
-                                      item2 &&
-                                        item2.imgType &&
-                                        item2.imgType == 1
-                                    "
-                                  >
-                                    <div
-                                      class="inImg"
-                                      @click.stop="previewImg(item2.src)"
-                                    >
-                                      <img
-                                        style="display: block"
-                                        :src="item2.src"
-                                        alt=""
-                                      />
-                                    </div>
-                                  </div>
-                                  <span v-else v-html="item2"></span>
+                        <div  style="margin-bottom: 20px;" v-for="(item,index) in l.content[0]" :key="index+'coco'">
+                            <div style="margin-bottom: 15px;font-size: 14px;font-weight: 600;color: #000;">{{lang.ssStage.replace(/\*/g, index + 1)}}</div>
+                            <div v-for="(po,PInd) in item.messages" :key="PInd+'PInd'">
+                                <div class="left" v-if="po.role == 'assistant'">
+                                        <div class="TName">{{lang.ssAIAssist}}</div>:
+                                        <div class="con" v-html="MarkdownT(po.content)"></div>
+                                </div>
+
+                                <div class="left" v-if="po.role == 'user'">
+                                        <div class="TName">{{ userP.username }}</div>:
+                                        <div class="con" v-html="po.content"></div>
                                 </div>
-                              </el-checkbox>
                             </div>
-                          </el-checkbox-group>
-                        </div>
-                      </div>
-                    </div>
-                    <div v-if="l.tool[0] == 41">
-                      <div style="padding: 10px;box-sizing: border-box;">
-                        <h1>{{ userP.username }}</h1>
-                      </div>
-                      <div class="toolBlk">
-                        <img
-                          src="../../../assets/icon/thirdToolList/select.png"
-                          alt=""
-                        />
-                        <div class="toolTit">
-                          <div>工具{{ lind + 1 }}:选择匹配</div>
-                          <div>
-                            根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
-                          </div>
                         </div>
                       </div>
-                      <img
-                        @click.stop="previewImg(l.selectJson.url)"
-                        style="max-width: 200px"
-                        :src="l.selectJson.url"
-                        alt=""
-                      />
-                        <div>
-                          {{ l.selectJson.url }}
-                        </div>
-                      <div>
-                        <span style="margin-right: 10px">选项:</span
-                        ><span
-                          style="margin-right: 10px"
-                          v-for="(item, itInd) in l.selectJson.select"
-                          :key="itInd"
-                          >{{ item }}</span
-                        >
-                      </div>
-                      <div style="margin: 10px 0;">
-                        <span style="margin-right: 10px">回答:</span>
-
-                        <div
-                          style="margin-right: 10px"
-                          v-for="(item, itInd) in l.content"
-                          :key="itInd"
-                        >
-                        <div v-if="item.userid == userP.userid">
-                          <div v-for="(itemCon,itemConIndex) in item.con" :key="itemConIndex+'itemConIndex'">
-                            选项{{ itemConIndex + 1 }}:{{ l.selectJson.select[itemCon] }}
-                            <span
-                              v-if="
-                                l.selectJson.answer[itemConIndex] == item.con[itemConIndex]
-                              "
-                              style="color: #868ce4"
-                              >回答正确</span
-                            >
-                            <span v-else style="color: red">回答错误</span>
+                        <div v-if="l.tool[0] == 16 || l.tool[0] == 50">
+                          <div style="padding: 10px;box-sizing: border-box;">
+                            <h1>{{ userP.username }}</h1>
                           </div>
-
-                        </div>
-                          
-                        </div>
-
-                      </div>
-
-                      <div>
-                        <span style="margin-right: 10px">答案:</span>
-
-                        <span
-                          style="margin-right: 10px"
-                          v-for="(item, itInd) in l.selectJson.answer"
-                          :key="itInd"
-                          >选项{{ itInd + 1 }}:{{
-                            l.selectJson.select[item]
-                          }}</span
-                        >
-                      </div>
-                    </div>
-                    <div v-if="l.tool[0] == 47">
-                      <div style="padding: 10px;box-sizing: border-box;">
-                        <h1>{{ userP.username }}</h1>
-                      </div>
-                      <div class="toolBlk">
-                        <img
-                          src="../../../assets/icon/fourthToolList/conSentences.png"
-                          alt=""
-                        />
-                        <div class="toolTit">
-                          <div>工具{{ lind + 1 }}:排序</div>
-                          <div>
-                            根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
+                          <div class="toolBlk">
+                            <img
+                              v-if="l.tool[0] == 16"
+                              src="../../../assets/icon/thirdToolList/work.png"
+                              alt=""
+                            />
+                            <img
+                              v-if="l.tool[0] == 50"
+                              src="../../../assets/icon/thirdToolList/plwork.png"
+                              alt=""
+                            />
+
+                            <div class="toolTit">
+                              <div>
+                                {{lang.ssTool.replace(/\*/g, lind + 1)}}{{
+                                  l.tool[0] == 16 ? lang.ssWorkSubmit : lang.ssBatchUpload
+                                }}
+                              </div>
+                              <div>
+                                {{lang.ssDefaultDesc}}
+                              </div>
+                            </div>
                           </div>
-                        </div>
-                      </div>
-                      <div
-                        v-for="(i, index) in l.content[0]"
-                        :key="index"
-                        style="margin-bottom: 10px"
-                      >
-                        <div
-                          style="
-                            height: 20px;
-                            display: flex;
-                            align-items: center;
-                            flex-wrap: wrap;
-                          "
-                        >
-                          题目:
-                          <div
-                            class="sortTool"
-                            v-for="(i, index) in i.addSentence"
-                            :key="index"
-                          >
-                            {{ i }}
+                          <div v-for="(i, codex) in l.content" :key="codex + 'co'">
+                            <div class="answerTxt" v-html="i.con"></div>
                           </div>
-                          <span
-                            v-if="
-                              JSON.stringify(i.chooseSenList) ==
-                                JSON.stringify(i.addSentence)
-                            "
-                            style="color: #868ce4"
-                            >回答正确</span
-                          >
-                          <span v-else style="color: red">回答错误</span>
                         </div>
                         <div
-                          style="
-                            margin: 10px 0;
-                            display: flex;
-                            align-items: center;
-                            flex-wrap: wrap;
-                          "
+                          v-if="l.tool[0] == 7 || l.tool[0] == 1 || l.tool[0] == 3"
                         >
-                          学生回答:
-                          <div
-                            class="sortTool"
-                            v-for="(i, index) in i.chooseSenList"
-                            :key="index"
-                          >
-                            {{ i }}
+                        <div style="padding: 10px;box-sizing: border-box;">
+                            <h1>{{ userP.username }}</h1>
                           </div>
-                        </div>
-                        <div>
-                          答案:
-                          <span style="margin: 0 5px">{{
-                            i.addSentence.join(",")
-                          }}</span>
-                        </div>
-                      </div>
-                    </div>
-                  </div>
-                </div>
-                <!-- </div> -->
-              </div>
-            </div>
-          </div>
-        </div>
-        <!-- </div> -->
-      </div>
-    </el-dialog>
-
-
-
-    <!-- 自定义导出作业pdf弹框 -->
-    <!-- <el-dialog
-      :visible.sync="worksDialog"
-      :before-close="handleClose"
-      class="worksDialogCSSExp"
-      :append-to-body="true"
-      :fullscreen="true"
-    >
-      <div slot="title" class="header-title">
-        <div style="color: #fff">{{dataJson.state == 5 ?"按任务导出" :'自定义导出' + ':' +dataJson.title }}</div>
-      </div>
-
-      <div class="worksDiaCon" ref="reportPdf">
-        <div style="margin-bottom: 30px;font-size: 42px;">
-          {{ dataJson.title }}
-        </div>
-        <div
-          v-for="(userP, upi) in pdfUser"
-          style="background-color: #fff;border-radius: 8px;margin-top: 10px;"
-          :key="upi + 'upi'"
-        >
-          <div style="padding: 10px;box-sizing: border-box;">
-            <h1>{{ userP.username }}</h1>
-          </div>
-
-          <div
-            v-for="(i, wip) in workList"
-            v-if="
-              isStage(i.taskList, userP.userid) &&
-                (chap.length ? chap.indexOf(wip) != -1 : true)
-            "
-            :key="i.id"
-            class="stageCon"
-          >
-            <div v-if="dataJson.state != 5" class="stageTit">
-              第{{ i.id * 1 + 1 }}阶段<span v-if="i.name">:{{ i.name }}</span>
-            </div>
-            <div
-              v-for="k in i.taskList"
-              :key="k.task + 'a'"
-              v-if="isTask(k.toolEList, userP.userid, k)"
-              style="margin-bottom: 15px"
-            >
-              <div
-                style="
-                    width: 100%;
-                    display: flex;
-                    justify-content: space-between;
-                    margin-bottom: 10px;
-                  "
-              >
-                <div class="taskTitInd">
-                  <span>任务{{ k.task + 1 }}</span>
-                  <span>{{ k.taskTit }}</span>
-                </div>
-                <div></div>
-              </div>
-              <div v-if="k.taskDetail" class="taskBri">
-                <div v-html="k.taskDetail"></div>
-              </div>
-              <div
-                class="WorksCon"
-                v-for="(l, lind) in k.toolEList"
-                :key="lind + 'l'"
-              >
-                <div
-                  v-if="l.content && l.content.length"
-                  v-for="(imgp, imgIdx) in l.content"
-                  :key="imgIdx + 'img'"
-                >
-                  <div
-                    v-if="
-                      (imgp && imgp[0] && imgp[0].userid == userP.userid) ||
-                        imgp.userid == userP.userid
-                    "
-                  >
-                    <div v-if="l.tool[0] == 15">
-                      <div class="toolBlk">
-                        <img
-                          src="../../../assets/icon/thirdToolList/answer.png"
-                          alt=""
-                        />
-                        <div class="toolTit">
-                          <div>工具{{ lind + 1 }}:问答工具</div>
-                          <div>提问:{{ l.content[0][0].answerTitle }}</div>
-                        </div>
-                      </div>
-                      <div class="answerTxt">
-                        回答:{{ l.content[0][0].answer }}
-                      </div>
-                    </div>
-                    <div v-if="l.tool[0] == 52">
-                      <div class="toolBlk">
-                        <img
-                          src="../../../assets/icon/fourthToolList/text.png"
-                          alt=""
-                        />
-                        <div class="toolTit">
-                          <div>工具{{ lind + 1 }}:文档工具</div>
-                          <div>
-                            根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
+                          <div class="toolBlk">
+                            <img
+                              v-if="l.tool[0] == 1"
+                              src="../../../assets/icon/secondToolList/whiteBoard.png"
+                              alt=""
+                            />
+                            <img
+                              v-if="l.tool[0] == 3"
+                              src="../../../assets/icon/secondToolList/mindMapping.png"
+                              alt=""
+                            />
+                            <img
+                              v-if="l.tool[0] == 7"
+                              src="../../../assets/icon/secondToolList/mindNetwork.png"
+                              alt=""
+                            />
+
+                            <div class="toolTit">
+                              <div>
+                                {{lang.ssTool.replace(/\*/g, lind + 1)}}{{
+                                  l.tool[0] == 1
+                                    ? lang.ssWhiteBoard
+                                    : l.tool[0] == 7
+                                    ? lang.ssMindGrid
+                                    : lang.ssMindMap
+                                }}
+                              </div>
+                              <div>
+                                {{lang.ssDefaultDesc}}
+                              </div>
+                            </div>
                           </div>
+                          <img
+                            style="max-width: 200px"
+                            :src="l.content[0].con"
+                            alt=""
+                          />
+                          <div>{{ l.content[0].con }}</div>
                         </div>
-                      </div>
-                      <div class="answerTxt" v-html="l.content[0].text"></div>
-                    </div>
-                    <div v-if="l.tool[0] == 16 || l.tool[0] == 50">
-                      <div class="toolBlk">
-                        <img
-                          v-if="l.tool[0] == 16"
-                          src="../../../assets/icon/thirdToolList/work.png"
-                          alt=""
-                        />
-                        <img
-                          v-if="l.tool[0] == 50"
-                          src="../../../assets/icon/thirdToolList/plwork.png"
-                          alt=""
-                        />
-
-                        <div class="toolTit">
-                          <div>
-                            工具{{ lind + 1 }}:{{
-                              l.tool[0] == 16 ? "作业提交" : "批量上传"
-                            }}
+                        <div v-if="l.tool[0] == 48">
+                          <div style="padding: 10px;box-sizing: border-box;">
+                            <h1>{{ userP.username }}</h1>
                           </div>
-                          <div>
-                            根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
+                          <div class="toolBlk">
+                            <img
+                              src="../../../assets/icon/fourthToolList/table.png"
+                              alt=""
+                            />
+                            <div class="toolTit">
+                              <div>{{lang.ssTool.replace(/\*/g, lind + 1)}}{{lang.ssTableTool}}</div>
+                              <div>
+                                {{lang.ssDefaultDesc}}
+                              </div>
+                            </div>
                           </div>
+                          <el-form>
+                            <div class="cont" v-html="l.content[0].text"></div>
+                          </el-form>
                         </div>
-                      </div>
-                      <div v-for="(i, codex) in l.content" :key="codex + 'co'">
-                        <div class="answerTxt" v-html="i.con"></div>
-                      </div>
-                    </div>
-                    <div
-                      v-if="l.tool[0] == 7 || l.tool[0] == 1 || l.tool[0] == 3"
-                    >
-                      <div class="toolBlk">
-                        <img
-                          v-if="l.tool[0] == 1"
-                          src="../../../assets/icon/secondToolList/whiteBoard.png"
-                          alt=""
-                        />
-                        <img
-                          v-if="l.tool[0] == 3"
-                          src="../../../assets/icon/secondToolList/mindMapping.png"
-                          alt=""
-                        />
-                        <img
-                          v-if="l.tool[0] == 7"
-                          src="../../../assets/icon/secondToolList/mindNetwork.png"
-                          alt=""
-                        />
-
-                        <div class="toolTit">
-                          <div>
-                            工具{{ lind + 1 }}:{{
-                              l.tool[0] == 1
-                                ? "电子白板"
-                                : l.tool[0] == 7
-                                ? "思维网格"
-                                : "思维导图"
-                            }}
-                          </div>
-                          <div>
-                            根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
+                        <div v-if="l.tool[0] == 4">
+                          <div style="padding: 10px;box-sizing: border-box;">
+                            <h1>{{ userP.username }}</h1>
                           </div>
-                        </div>
-                      </div>
-                      <img
-                        style="max-width: 200px"
-                        :src="l.content[0].con"
-                        alt=""
-                      />
-                      <div>{{ l.content[0].con }}</div>
-                    </div>
-                    <div v-if="l.tool[0] == 48">
-                      <div class="toolBlk">
-                        <img
-                          src="../../../assets/icon/fourthToolList/table.png"
-                          alt=""
-                        />
-                        <div class="toolTit">
-                          <div>工具{{ lind + 1 }}:表格</div>
-                          <div>
-                            根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
+                          <div class="toolBlk">
+                            <img
+                              src="../../../assets/icon/thirdToolList/ask.png"
+                              alt=""
+                            />
+                            <div class="toolTit">
+                              <div>{{lang.ssTool.replace(/\*/g, lind + 1)}}{{lang.ssSurveyTool}}</div>
+                              <div>{{lang.ssTitle}}:{{ l.content[0][0].askJson.askTitle }}</div>
+                            </div>
                           </div>
-                        </div>
-                      </div>
-                      <el-form>
-                        <div class="cont" v-html="l.content[0].text"></div>
-                      </el-form>
-                    </div>
-                    <div v-if="l.tool[0] == 4">
-                      <div class="toolBlk">
-                        <img
-                          src="../../../assets/icon/thirdToolList/ask.png"
-                          alt=""
-                        />
-                        <div class="toolTit">
-                          <div>工具{{ lind + 1 }}:问卷调查</div>
-                          <div>标题:{{ l.content[0][0].askJson.askTitle }}</div>
-                        </div>
-                      </div>
 
-                      <div
-                        style="margin-bottom: 5px"
-                        v-for="(i, index) in l.content[0][0].askJson.askJson"
-                        :key="index"
-                      >
-                        <div>题目:{{ i.askstitle }}</div>
-                        <el-radio-group
-                          v-if="!i.type"
-                          v-model="l.content[0][0].anwer[index]"
-                        >
-                          <el-radio
-                            v-for="(item2, checkIndex) in i.checkList"
-                            :key="checkIndex + 'b'"
-                            :label="checkIndex"
-                            disabled
+                          <div
+                            style="margin-bottom: 5px"
+                            v-for="(i, index) in l.content[0][0].askJson.askJson"
+                            :key="index"
                           >
-                            {{ item2 }}
-                          </el-radio>
-                        </el-radio-group>
-                        <el-checkbox-group
-                          v-model="l.content[0][0].anwer[index]"
-                          v-else
-                        >
-                          <div class="radioBox">
-                            <el-checkbox
-                              v-for="(item2, checkIndex) in i.checkList"
-                              :key="checkIndex + 'c'"
-                              :label="checkIndex"
-                              disabled
+                            <div>{{lang.ssTopic}}:{{ i.askstitle }}</div>
+                            <el-radio-group
+                              v-if="!i.type"
+                              v-model="l.content[0][0].anwer[index]"
                             >
-                              {{ item2 }}
-                            </el-checkbox>
-                          </div>
-                        </el-checkbox-group>
-                      </div>
-                    </div>
-                    <div v-if="l.tool[0] == 45">
-                      <div class="toolBlk">
-                        <img
-                          src="../../../assets/icon/thirdToolList/choose.png"
-                          alt=""
-                        />
-                        <div class="toolTit">
-                          <div>工具{{ lind + 1 }}:选择题</div>
-                          <div>
-                            根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
-                          </div>
-                        </div>
-                      </div>
-                      <div
-                        v-for="(i, index) in l.content[0].testJson"
-                        :key="index + 'm'"
-                      >
-                        <div>题目:{{ i.teststitle }}</div>
-                        <div
-                          v-if="i.type == 1"
-                          style="display: flex; flex-direction: column"
-                        >
-                          <el-radio-group v-model="l.content[0].radio[index]">
-                            <div class="radioBox">
                               <el-radio
                                 v-for="(item2, checkIndex) in i.checkList"
                                 :key="checkIndex + 'b'"
                                 :label="checkIndex"
                                 disabled
-                                :class="[
-                                  i.answer == checkIndex
-                                    ? 'redioStyle5'
-                                    : 'redioStyle2'
-                                ]"
                               >
-                                <div
-                                  v-if="
-                                    item2 && item2.imgType && item2.imgType == 1
-                                  "
-                                >
-                                  <div
-                                    class="inImg"
-                                    @click.stop="previewImg(item2.src)"
-                                  >
-                                    <img
-                                      style="display: block"
-                                      :src="item2.src"
-                                      alt=""
-                                    />
-                                  </div>
-                                  <span>{{ item2.src }}</span>
-                                </div>
-                                <span v-else v-html="item2"></span>
+                                {{ item2 }}
                               </el-radio>
-                            </div>
-                          </el-radio-group>
+                            </el-radio-group>
+                            <el-checkbox-group
+                              v-model="l.content[0][0].anwer[index]"
+                              v-else
+                            >
+                              <div class="radioBox">
+                                <el-checkbox
+                                  v-for="(item2, checkIndex) in i.checkList"
+                                  :key="checkIndex + 'c'"
+                                  :label="checkIndex"
+                                  disabled
+                                >
+                                  {{ item2 }}
+                                </el-checkbox>
+                              </div>
+                            </el-checkbox-group>
+                          </div>
                         </div>
-                        <div class="radioBox">
-                          <el-checkbox-group
-                            v-model="l.content[0].radio[index]"
-                            v-if="i.type == '2'"
+                        <div v-if="l.tool[0] == 45">
+                          <div style="padding: 10px;box-sizing: border-box;">
+                            <h1>{{ userP.username }}</h1>
+                          </div>
+                          <div class="toolBlk">
+                            <img
+                              src="../../../assets/icon/thirdToolList/choose.png"
+                              alt=""
+                            />
+                            <div class="toolTit">
+                              <div>{{lang.ssTool.replace(/\*/g, lind + 1)}}{{lang.ssChoiceTool}}</div>
+                              <div>
+                                {{lang.ssDefaultDesc}}
+                              </div>
+                            </div>
+                          </div>
+                          <div
+                            v-for="(i, index) in l.content[0].testJson"
+                            :key="index + 'm'"
                           >
-                            <div class="radioBox">
-                              <el-checkbox
-                                v-for="(item2, checkIndex) in i.checkList"
-                                :key="checkIndex + 'c'"
-                                :label="checkIndex"
-                                disabled
-                                :class="[
-                                  i.answer.includes(checkIndex)
-                                    ? 'redioStyle3'
-                                    : 'redioStyle4'
-                                ]"
+                            <div>
+                              {{lang.ssTopic}}:{{ i.teststitle }}
+                              <span
+                                v-if="
+                                  JSON.stringify(l.content[0].radio[index]) ==
+                                    JSON.stringify(i.answer)
+                                "
+                                style="color: #868ce4"
+                                >{{lang.ssCorrect}}</span
                               >
-                                <div style="display: flex">
-                                  <div
-                                    v-if="
-                                      item2 &&
-                                        item2.imgType &&
-                                        item2.imgType == 1
-                                    "
+                              <span v-else style="color: red">{{lang.ssWrong}}</span>
+                            </div>
+                            <div
+                              v-if="i.type == 1"
+                              style="display: flex; flex-direction: column"
+                            >
+                              <el-radio-group v-model="l.content[0].radio[index]">
+                                <div class="radioBox">
+                                  <el-radio
+                                    v-for="(item2, checkIndex) in i.checkList"
+                                    :key="checkIndex + 'b'"
+                                    :label="checkIndex"
+                                    disabled
+                                    :class="[
+                                      i.answer == checkIndex
+                                        ? 'redioStyle5'
+                                        : 'redioStyle2'
+                                    ]"
                                   >
                                     <div
-                                      class="inImg"
-                                      @click.stop="previewImg(item2.src)"
+                                      v-if="
+                                        item2 && item2.imgType && item2.imgType == 1
+                                      "
                                     >
-                                      <img
-                                        style="display: block"
-                                        :src="item2.src"
-                                        alt=""
-                                      />
+                                      <div
+                                        class="inImg"
+                                        @click.stop="previewImg(item2.src)"
+                                      >
+                                        <img
+                                          style="display: block"
+                                          :src="item2.src"
+                                          alt=""
+                                        />
+                                      </div>
+                                    </div>
+                                    <span v-else v-html="item2"></span>
+                                  </el-radio>
+                                </div>
+                              </el-radio-group>
+                            </div>
+                            <div class="radioBox">
+                              <el-checkbox-group
+                                v-model="l.content[0].radio[index]"
+                                v-if="i.type == '2'"
+                              >
+                                <div class="radioBox">
+                                  <el-checkbox
+                                    v-for="(item2, checkIndex) in i.checkList"
+                                    :key="checkIndex + 'c'"
+                                    :label="checkIndex"
+                                    disabled
+                                    :class="[
+                                      i.answer.includes(checkIndex)
+                                        ? 'redioStyle3'
+                                        : 'redioStyle4'
+                                    ]"
+                                  >
+                                    <div style="display: flex">
+                                      <div
+                                        v-if="
+                                          item2 &&
+                                            item2.imgType &&
+                                            item2.imgType == 1
+                                        "
+                                      >
+                                        <div
+                                          class="inImg"
+                                          @click.stop="previewImg(item2.src)"
+                                        >
+                                          <img
+                                            style="display: block"
+                                            :src="item2.src"
+                                            alt=""
+                                          />
+                                        </div>
+                                      </div>
+                                      <span v-else v-html="item2"></span>
                                     </div>
-                                  </div>
-                                  <span v-else v-html="item2"></span>
+                                  </el-checkbox>
                                 </div>
-                              </el-checkbox>
+                              </el-checkbox-group>
                             </div>
-                          </el-checkbox-group>
+                          </div>
                         </div>
-                      </div>
-                    </div>
-                    <div v-if="l.tool[0] == 41">
-                      <div class="toolBlk">
-                        <img
-                          src="../../../assets/icon/thirdToolList/select.png"
-                          alt=""
-                        />
-                        <div class="toolTit">
-                          <div>工具{{ lind + 1 }}:选择匹配</div>
+                        <div v-if="l.tool[0] == 41">
+                          <div style="padding: 10px;box-sizing: border-box;">
+                            <h1>{{ userP.username }}</h1>
+                          </div>
+                          <div class="toolBlk">
+                            <img
+                              src="../../../assets/icon/thirdToolList/select.png"
+                              alt=""
+                            />
+                            <div class="toolTit">
+                              <div>{{lang.ssTool.replace(/\*/g, lind + 1)}}{{lang.ssMatchTool}}</div>
+                              <div>
+                                {{lang.ssDefaultDesc}}
+                              </div>
+                            </div>
+                          </div>
+                          <img
+                            @click.stop="previewImg(l.selectJson.url)"
+                            style="max-width: 200px"
+                            :src="l.selectJson.url"
+                            alt=""
+                          />
+                            <div>
+                              {{ l.selectJson.url }}
+                            </div>
                           <div>
-                            根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
+                            <span style="margin-right: 10px">{{lang.ssOption}}:</span
+                            ><span
+                              style="margin-right: 10px"
+                              v-for="(item, itInd) in l.selectJson.select"
+                              :key="itInd"
+                              >{{ item }}</span
+                            >
                           </div>
-                        </div>
-                      </div>
-                      <img
-                        style="max-width: 200px"
-                        :src="l.selectJson.url"
-                        alt=""
-                      />
-                      <div>
-                        {{ l.selectJson.url }}
-                      </div>
-                      <div>
-                        <span style="margin-right: 10px">选项:</span
-                        ><span
-                          style="margin-right: 10px"
-                          v-for="(item, itInd) in l.selectJson.select"
-                          :key="itInd"
-                          >{{ item }}</span
-                        >
-                      </div>
-                      <div>
-                        <span style="margin-right: 10px">答案:</span>
-
-                        <span
-                          style="margin-right: 10px"
-                          v-for="(item, itInd) in l.content[0].con"
-                          :key="itInd"
-                          >{{ itInd + 1 }}、{{
-                            l.selectJson.select[item]
-                          }}</span
-                        >
-                      </div>
-                    </div>
-                    <div v-if="l.tool[0] == 47">
-                      <div class="toolBlk">
-                        <img
-                          src="../../../assets/icon/fourthToolList/conSentences.png"
-                          alt=""
-                        />
-                        <div class="toolTit">
-                          <div>工具{{ lind + 1 }}:排序</div>
+                          <div style="margin: 10px 0;">
+                            <span style="margin-right: 10px">{{lang.ssAnswer}}</span>
+
+                            <div
+                              style="margin-right: 10px"
+                              v-for="(item, itInd) in l.content"
+                              :key="itInd"
+                            >
+                            <div v-if="item.userid == userP.userid">
+                              <div v-for="(itemCon,itemConIndex) in item.con" :key="itemConIndex+'itemConIndex'">
+                                {{lang.ssOption}}{{ itemConIndex + 1 }}:{{ l.selectJson.select[itemCon] }}
+                                <span
+                                  v-if="
+                                    l.selectJson.answer[itemConIndex] == item.con[itemConIndex]
+                                  "
+                                  style="color: #868ce4"
+                                  >{{lang.ssCorrect}}</span
+                                >
+                                <span v-else style="color: red">{{lang.ssWrong}}</span>
+                              </div>
+
+                            </div>
+                              
+                            </div>
+
+                          </div>
+
                           <div>
-                            根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
+                            <span style="margin-right: 10px">{{lang.ssAnswer3}}</span>
+
+                            <span
+                              style="margin-right: 10px"
+                              v-for="(item, itInd) in l.selectJson.answer"
+                              :key="itInd"
+                              >{{lang.ssOption}}{{ itInd + 1 }}:{{
+                                l.selectJson.select[item]
+                              }}</span
+                            >
                           </div>
                         </div>
-                      </div>
-                      <div
-                        v-for="(i, index) in l.content[0]"
-                        :key="index"
-                        style="margin-bottom: 10px"
-                      >
-                        <div
-                          style="
-                            height: 20px;
-                            display: flex;
-                            align-items: center;
-                            flex-wrap: wrap;
-                          "
-                        >
-                          题目:
-                          <div
-                            class="sortTool"
-                            v-for="(i, index) in i.addSentence"
-                            :key="index"
-                          >
-                            {{ i }}
+                        <div v-if="l.tool[0] == 47">
+                          <div style="padding: 10px;box-sizing: border-box;">
+                            <h1>{{ userP.username }}</h1>
+                          </div>
+                          <div class="toolBlk">
+                            <img
+                              src="../../../assets/icon/fourthToolList/conSentences.png"
+                              alt=""
+                            />
+                            <div class="toolTit">
+                              <div>{{lang.ssTool.replace(/\*/g, lind + 1)}}{{lang.ssSortTool}}</div>
+                              <div>
+                                {{lang.ssDefaultDesc}}
+                              </div>
+                            </div>
                           </div>
-                          <span
-                            v-if="
-                              JSON.stringify(i.chooseSenList) ==
-                                JSON.stringify(i.addSentence)
-                            "
-                            style="color: #868ce4"
-                            >回答正确</span
-                          >
-                          <span v-else style="color: red">回答错误</span>
-                        </div>
-                        <div
-                          style="
-                            margin: 10px 0;
-                            display: flex;
-                            align-items: center;
-                            flex-wrap: wrap;
-                          "
-                        >
-                          学生回答:
                           <div
-                            class="sortTool"
-                            v-for="(i, index) in i.chooseSenList"
+                            v-for="(i, index) in l.content[0]"
                             :key="index"
+                            style="margin-bottom: 10px"
                           >
-                            {{ i }}
+                            <div
+                              style="
+                                height: 20px;
+                                display: flex;
+                                align-items: center;
+                                flex-wrap: wrap;
+                              "
+                            >
+                              {{lang.ssTopic}}:
+                              <div
+                                class="sortTool"
+                                v-for="(i, index) in i.addSentence"
+                                :key="index"
+                              >
+                                {{ i }}
+                              </div>
+                              <span
+                                v-if="
+                                  JSON.stringify(i.chooseSenList) ==
+                                    JSON.stringify(i.addSentence)
+                                "
+                                style="color: #868ce4"
+                                >{{lang.ssCorrect}}</span
+                              >
+                              <span v-else style="color: red">{{lang.ssWrong}}</span>
+                            </div>
+                            <div
+                              style="
+                                margin: 10px 0;
+                                display: flex;
+                                align-items: center;
+                                flex-wrap: wrap;
+                              "
+                            >
+                              {{lang.ssStuAnswer}}
+                              <div
+                                class="sortTool"
+                                v-for="(i, index) in i.chooseSenList"
+                                :key="index"
+                              >
+                                {{ i }}
+                              </div>
+                            </div>
+                            <div>
+                              {{lang.ssAnswer3}}
+                              <span style="margin: 0 5px">{{
+                                i.addSentence.join(",")
+                              }}</span>
+                            </div>
                           </div>
                         </div>
-                        <div>
-                          正确答案:
-                          <span style="margin: 0 5px">{{
-                            i.addSentence.join(",")
-                          }}</span>
-                        </div>
                       </div>
                     </div>
+                    <!-- </div> -->
                   </div>
+                </template>
                 </div>
               </div>
-            </div>
+            </template>
+            
+
           </div>
-        </div>
+        </template>
+        
+        <!-- </div> -->
       </div>
-    </el-dialog> -->
+    </el-dialog>
+
   </div>
 </template>
 

+ 11 - 11
src/components/pages/components/studentReport.vue

@@ -1,12 +1,12 @@
 <template>
   <div style="width: 100%; height: 100%">
     <div class="sr_head">
-      学生成长报告
+      {{lang.ssStuGrowth}}
       <div class="sr_headBtnS">
-        <el-button v-if="seatNum > 0 && typeNum !=1" type="primary" size="small" @click="upStu">上一位</el-button>
-        <el-button  style="margin-left: 10px;" v-if="seatNum < studentList.length-1 && typeNum !=1" type="primary" size="small" @click="nextStu">下一位</el-button>
+        <el-button v-if="seatNum > 0 && typeNum !=1" type="primary" size="small" @click="upStu">{{lang.ssPrevStu}}</el-button>
+        <el-button  style="margin-left: 10px;" v-if="seatNum < studentList.length-1 && typeNum !=1" type="primary" size="small" @click="nextStu">{{lang.ssNextStu}}</el-button>
         <!-- <el-button style="margin-left: 10px;" type="primary" size="small" @click="downloadFile('https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/student01-%E5%AD%A6%E7%94%9F%E6%88%90%E9%95%BF%E6%8A%A5%E5%91%8A1719315423787.pdf');">导出报告</el-button> -->
-        <el-button style="margin-left: 10px;" @click="pageBack" type="primary" size="small">返回</el-button>
+        <el-button style="margin-left: 10px;" @click="pageBack" type="primary" size="small">{{lang.ssBack}}</el-button>
       </div>
       
     </div>
@@ -14,17 +14,17 @@
       <div class="sr_box">
         <div class="sr_first">
           <div class="first">
-            <div class="sub_title"><span>学生基本信息</span></div>
+            <div class="sub_title"><span>{{lang.ssStuBasicInfo}}</span></div>
             <StudentInfo class="r_box" :userid="userid" :courseid="courseid"></StudentInfo>
           </div>
           <div class="second">
-            <div class="sub_title"><span>项目基本信息</span></div>
+            <div class="sub_title"><span>{{lang.ssCourseBasicInfo}}</span></div>
             <CourseInfo class="r_box" :courseid="courseid"></CourseInfo>
           </div>
         </div>
         <div class="sr_second">
           <div class="first">
-            <div class="sub_title"><span>学生综合能力评估</span></div>
+            <div class="sub_title"><span>{{lang.ssStuAbilityEval}}</span></div>
             <StudentAbility class="r_box"  :userid="userid" :courseid="courseid"></StudentAbility>
           </div>
           <!-- <div class="second">
@@ -34,11 +34,11 @@
         </div>
         <div class="sr_third">
           <div class="first">
-            <div class="sub_title"><span>阶段完成情况</span></div>
+            <div class="sub_title"><span>{{lang.ssStageComplete}}</span></div>
             <CourseRadar class="r_box" :userid="userid" :courseid="courseid"></CourseRadar>
           </div>
           <div class="second">
-            <div class="sub_title"><span>阶段评价平均分</span></div>
+            <div class="sub_title"><span>{{lang.ssStageAvgScore}}</span></div>
             <CoursePie class="r_box" :userid="userid" :courseid="courseid"></CoursePie>
           </div>
         </div>
@@ -177,9 +177,9 @@ export default {
         else {
           let url = window.URL.createObjectURL(new Blob([data.Body]));
           let a = document.createElement("a");
-          a.name = 'student01-学生成长报告.pdf';
+          a.name = 'student01-' + this.lang.ssStuGrowth + '.pdf';
           a.href = url;
-          a.download = 'student01-学生成长报告.pdf';
+          a.download = 'student01-' + this.lang.ssStuGrowth + '.pdf';
           a.click();
           console.log(data); 
         }          // sxuccessful response

Datei-Diff unterdrückt, da er zu groß ist
+ 15 - 1224
src/components/pages/components/studentWorksDetail.vue


+ 96 - 77
src/components/pages/components/workData.vue

@@ -4,7 +4,7 @@
       <span>{{ dataJson.title }}</span>
     </div>
     <div class="cp_title" v-if="false">
-      <span>{{ "教师姓名:" + dataJson.uname }}</span>
+      <span>{{ lang.ssTeacherName + dataJson.uname }}</span>
     </div>
     <div class="data_body" v-if="false">
       <div class="data_c">
@@ -24,7 +24,7 @@
       </div>
     </div>
     <div class="sd_class" v-if="false">
-      <div class="sd_tTitle">课堂表现</div>
+      <div class="sd_tTitle">{{lang.ssClassPerf}}</div>
       <div class="wd_class_body">
         <div class="wd_module">
           <div class="sd_module_content">
@@ -37,25 +37,25 @@
                 text-align: center;
               "
             >
-              <span>课程人数:共100人,已完成人数{{ randomNum(50, 100) }}人</span>
+              <span>{{lang.ssCourseNum}}{{ randomNum(50, 100) }}{{lang.ssPerson}}</span>
             </div>
             <div class="sd_module_children">
-              <span class="s">课堂时长</span>
+              <span class="s">{{lang.ssClassTime}}</span>
               <span class="s2">
                 <span>{{ randomNum(5, 15) }}</span
-                > <span>{{ randomNum(1, 60) }}</span
-                > <span>{{ randomNum(1, 59) }}</span
-                >
+                >{{lang.ssTimes}} <span>{{ randomNum(1, 60) }}</span
+                >{{lang.ssMinute}} <span>{{ randomNum(1, 59) }}</span
+                >{{lang.ssSecond}}
               </span>
-              <span>已经击败99%教师</span>
+              <span>{{lang.ssBeat99}}</span>
             </div>
             <div class="sd_module_children">
-              <span class="s">课堂节数</span>
+              <span class="s">{{lang.ssClassSess}}</span>
               <span class="s2">
                 <span>{{ randomNum(5, 20) }}</span
-                >
+                >{{lang.ssSession}}
               </span>
-              <span>已经击败99%教师</span>
+              <span>{{lang.ssBeat99}}</span>
             </div>
           </div>
           <div style="width: 45%; position: relative">
@@ -76,35 +76,35 @@
                 box-sizing: border-box;
               "
             >
-              <span>教师为中心</span>
-              <span>学生为中心</span>
+              <span>{{lang.ssTeacherCent}}</span>
+              <span>{{lang.ssStudentCent}}</span>
             </div>
           </div>
           <div class="sd_module_content">
             <div class="sd_module_children">
-              <span class="s">课堂互动</span>
+              <span class="s">{{lang.ssClassInter}}</span>
               <span class="s2">
                 <span>{{ randomNum(10, 20) }}</span
-                >
+                >{{lang.ssTimes}}
               </span>
-              <span>已经击败99%教师</span>
+              <span>{{lang.ssBeat99}}</span>
             </div>
             <div class="sd_module_children">
-              <span class="s">课堂生成</span>
+              <span class="s">{{lang.ssClassGen}}</span>
               <span class="s2">
                 <span>{{ randomNum(7, 15) }}</span
-                >
+                >{{lang.ssSession}}
               </span>
-              <span>已经击败99%教师</span>
+              <span>{{lang.ssBeat99}}</span>
             </div>
             <div class="sd_module_children">
-              <span class="s">自主活动</span>
+              <span class="s">{{lang.ssSelfAct}}</span>
               <span class="s2">
                 <span>{{ randomNum(10, 20) }}</span
-                > <span>{{ randomNum(10, 59) }}</span
-                >
+                >{{lang.ssMinute}} <span>{{ randomNum(10, 59) }}</span
+                >{{lang.ssSecond}}
               </span>
-              <span>已经击败99%教师</span>
+              <span>{{lang.ssBeat99}}</span>
             </div>
           </div>
         </div>
@@ -128,18 +128,18 @@
       <!-- <img src="../../../assets/data/tu1.png" alt style="width:100%" /> -->
     </div>
     <div class="sd_class">
-      <div class="sd_tTitle" v-if="false">班级学生能力分析</div>
+      <div class="sd_tTitle" v-if="false">{{lang.ssClassStuAb}}</div>
       <div style="background: #fff; padding: 10px 0">
         <div class="sd_person_button" v-if="false">
-          <span @click="setType(1)" :class="{ active: type == 1 }">语文</span>
-          <span @click="setType(2)" :class="{ active: type == 2 }">数学</span>
-          <span @click="setType(3)" :class="{ active: type == 3 }">英语</span>
+          <span @click="setType(1)" :class="{ active: type == 1 }">{{lang.ssChinese2}}</span>
+          <span @click="setType(2)" :class="{ active: type == 2 }">{{lang.ssMath}}</span>
+          <span @click="setType(3)" :class="{ active: type == 3 }">{{lang.ssEnglish}}</span>
           <span @click="setType(4)" :class="{ active: type == 4 }"
-            >信息科技</span
+            >{{lang.ssInfoTech}}</span
           >
-          <span @click="setType(5)" :class="{ active: type == 5 }">艺术</span>
+          <span @click="setType(5)" :class="{ active: type == 5 }">{{lang.ssArt}}</span>
           <span @click="setType(6)" :class="{ active: type == 6 }"
-            >跨学科素养</span
+            >{{lang.ssCrossLit}}</span
           >
         </div>
         <div style="display: flex; flex-wrap: wrap">
@@ -359,7 +359,7 @@ export default {
             data: [
               {
                 value: 60,
-                name: "課堂類型",
+                name: "",
                 title: {
                   offsetCenter: [0, "80%"],
                   fontSize: 30,
@@ -371,13 +371,13 @@ export default {
       },
       lineOption: {
         title: {
-          text: "課堂時間",
+          text: "",
         },
         tooltip: {
           trigger: "axis",
         },
         legend: {
-          data: ["課堂時長", "麻吉星時長"],
+          data: [],
         },
         grid: {
           left: "3%",
@@ -402,12 +402,12 @@ export default {
         },
         series: [
           {
-            name: "課堂時長",
+            name: "",
             type: "line",
             data: [10, 20, 30, 11, 15, 16, 18],
           },
           {
-            name: "麻吉星時長",
+            name: "",
             type: "line",
             data: [22, 16, 18, 15, 19, 28, 17],
           },
@@ -415,7 +415,7 @@ export default {
       },
       barOption: {
         title: {
-          text: "任教班級",
+          text: "",
         },
         tooltip: {
           trigger: "axis",
@@ -440,38 +440,38 @@ export default {
         },
         series: [
           {
-            name: "圖片",
+            name: "",
             type: "bar",
             data: [220, 150],
           },
           {
-            name: "視頻",
+            name: "",
             type: "bar",
             data: [120, 132],
           },
           {
-            name: "互動",
+            name: "",
             type: "bar",
             data: [110, 132],
           },
           {
-            name: "投票",
+            name: "",
             type: "bar",
 
             data: [120, 132],
           },
           {
-            name: "挑戰",
+            name: "",
             type: "bar",
             data: [221, 110],
           },
           {
-            name: "評估",
+            name: "",
             type: "bar",
             data: [120, 133],
           },
           {
-            name: "棄權",
+            name: "",
             type: "bar",
             data: [105, 132],
           },
@@ -503,18 +503,18 @@ export default {
       scatterOption: {
         xAxis: {
           type: "category",
-          data: ["问题意识", "科学探究", "实践创新", "工程思维", "学习反思"],
+          data: [],
           splitLine: {
             show: true,
           },
           axisLine: {
             show: false,
           },
-          name: "能力指标",
+          name: "",
         },
         yAxis: {
           type: "value",
-          name: "分值",
+          name: "",
           minInterval: 1,
           max: 5,
           axisLine: {
@@ -534,7 +534,7 @@ export default {
         },
         series: [
           {
-            name: "学生百分数(单位:%)",
+            name: "",
             type: "scatter",
             symbolSize: function (val) {
               return val[2] * 1.5;
@@ -571,9 +571,9 @@ export default {
       this.$emit('cancel');
     },
     exportWorkPdf(){
-      this.$confirm("是否导出全部学生作业?一键导出需要等待一会儿哦~", "提示", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
+      this.$confirm(this.lang.ssExportAllWork, this.lang.ssTip, {
+        confirmButtonText: this.lang.ssConfirm,
+        cancelButtonText: this.lang.ssCancel,
         type: "warning",
       })
       .then(() => {
@@ -585,9 +585,9 @@ export default {
     },
     exportData(){
       // this.$emit("update:dialogVisibleBao", true);
-      this.$confirm("是否批量导出学生作业?批量导出需要等待一会儿哦~", "提示", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
+      this.$confirm(this.lang.ssBatchExportWork, this.lang.ssTip, {
+        confirmButtonText: this.lang.ssConfirm,
+        cancelButtonText: this.lang.ssCancel,
         type: "warning",
       })
       .then(() => {
@@ -644,6 +644,25 @@ export default {
       });
       //然后异步执行echarts的初始化函数
       newPromise.then(() => {
+        // 设置图表配置中的文本
+        this.gaugeOption.series[0].data[0].name = this.lang.ssClassType;
+        this.lineOption.title.text = this.lang.ssClassTime2;
+        this.lineOption.legend.data = [this.lang.ssClassDur, this.lang.ssMagicDur];
+        this.lineOption.series[0].name = this.lang.ssClassDur;
+        this.lineOption.series[1].name = this.lang.ssMagicDur;
+        this.barOption.title.text = this.lang.ssTeachClass;
+        this.barOption.series[0].name = this.lang.ssImage;
+        this.barOption.series[1].name = this.lang.ssVideo;
+        this.barOption.series[2].name = this.lang.ssInteractC;
+        this.barOption.series[3].name = this.lang.ssVote;
+        this.barOption.series[4].name = this.lang.ssChallenge;
+        this.barOption.series[5].name = this.lang.ssAssess;
+        this.barOption.series[6].name = this.lang.ssAbstain;
+        this.scatterOption.xAxis.data = [this.lang.ssProblemAw, this.lang.ssSciInquiry, this.lang.ssPracticeIn, this.lang.ssEngThink, this.lang.ssLearnRef];
+        this.scatterOption.xAxis.name = this.lang.ssAbilityIdx;
+        this.scatterOption.yAxis.name = this.lang.ssScore;
+        this.scatterOption.series[0].name = this.lang.ssStuPercent;
+        
         const chartObj = this.$echarts.init(
           //劳动课程
           this.$el.querySelector("#gauge_canvas")
@@ -694,59 +713,59 @@ export default {
         );
         this.sunburstOption.series.data = [
           {
-            name: "学习反思能力",
+            name: this.lang.ssLearnReflect,
             value: 15,
             children: [
               {
-                name: "终生学习",
+                name: this.lang.ssLifelongLearn,
                 value: this.randomNum(1, 5),
               },
               {
-                name: "自我进步",
+                name: this.lang.ssSelfProgress,
                 value: this.randomNum(1, 5),
               },
               {
-                name: "自我反思",
+                name: this.lang.ssSelfReflect,
                 value: this.randomNum(1, 5),
               },
             ],
           },
           {
-            name: "工程思维能力",
+            name: this.lang.ssEngThinkAb,
             value: 15,
             children: [
               {
-                name: "工程思维能力",
+                name: this.lang.ssEngThinkAb,
                 value: this.randomNum(1, 15),
               },
             ],
           },
           {
-            name: "实践创新能力",
+            name: this.lang.ssPracticeInno,
             value: 15,
             children: [
               {
-                name: "实践创新能力",
+                name: this.lang.ssPracticeInno,
                 value: this.randomNum(5, 15),
               },
             ],
           },
           {
-            name: "科学探究能力",
+            name: this.lang.ssSciInquiryAb,
             value: 15,
             children: [
               {
-                name: "科学探究能力",
+                name: this.lang.ssSciInquiryAb,
                 value: this.randomNum(5, 15),
               },
             ],
           },
           {
-            name: "问题意识",
+            name: this.lang.ssProblemAware,
             value: 15,
             children: [
               {
-                name: "问题意识",
+                name: this.lang.ssProblemAware,
                 value: this.randomNum(5, 15),
               },
             ],
@@ -818,59 +837,59 @@ export default {
       this.type = type;
       this.sunburstOption.series.data = [
         {
-          name: "学习反思能力",
+          name: this.lang.ssLearnReflect,
           value: 15,
           children: [
             {
-              name: "终生学习",
+              name: this.lang.ssLifelongLearn,
               value: this.randomNum(1, 5),
             },
             {
-              name: "自我进步",
+              name: this.lang.ssSelfProgress,
               value: this.randomNum(1, 5),
             },
             {
-              name: "自我反思",
+              name: this.lang.ssSelfReflect,
               value: this.randomNum(1, 5),
             },
           ],
         },
         {
-          name: "工程思维能力",
+          name: this.lang.ssEngThinkAb,
           value: 15,
           children: [
             {
-              name: "工程思维能力",
+              name: this.lang.ssEngThinkAb,
               value: this.randomNum(5, 15),
             },
           ],
         },
         {
-          name: "实践创新能力",
+          name: this.lang.ssPracticeInno,
           value: 15,
           children: [
             {
-              name: "实践创新能力",
+              name: this.lang.ssPracticeInno,
               value: this.randomNum(5, 15),
             },
           ],
         },
         {
-          name: "科学探究能力",
+          name: this.lang.ssSciInquiryAb,
           value: 15,
           children: [
             {
-              name: "科学探究能力",
+              name: this.lang.ssSciInquiryAb,
               value: this.randomNum(5, 15),
             },
           ],
         },
         {
-          name: "问题意识",
+          name: this.lang.ssProblemAware,
           value: 15,
           children: [
             {
-              name: "问题意识",
+              name: this.lang.ssProblemAware,
               value: this.randomNum(5, 15),
             },
           ],

Datei-Diff unterdrückt, da er zu groß ist
+ 36 - 1204
src/components/pages/components/worksDetail2.vue


+ 1 - 1
src/components/pages/course.vue

@@ -12,7 +12,7 @@
     align-items: center;
 ">
           <span class="sub_head">{{ lang.CourseManagement }}</span>
-          <span class="subClick" v-if="lang.lang != 'com'" @click="
+          <span class="subClick" @click="
             goTo(
               '/works?userid=' +
               userid +

+ 30 - 264
src/components/pages/works.vue

@@ -21,7 +21,7 @@
       "
       :style="{width: gotype ? 'calc(100% - 180px) !important' :'100%' }"
     >
-    <backPage style="padding: 40px 0 0;" v-if="gotype" tit="学生评价"></backPage>
+    <backPage style="padding: 40px 0 0;" v-if="gotype" :tit="lang.ssStuEval"></backPage>
       <div
         class="pb_content_body"
         style="
@@ -43,9 +43,11 @@
                       '/tcStudent?userid=' + userid + '&oid=' + oid + '&org=' + org
                     )
                   "
-                  >学生管理</span
+                  style="cursor: pointer;"
+                  >{{lang.ssStuMgmt}}</span
                 >
                 <span
+                  style="cursor: pointer;"
                   v-else
                   @click="
                     goTo(
@@ -59,9 +61,9 @@
                         role
                     )
                   "
-                  >课程管理</span
+                  >{{lang.ssCourseMgmt}}</span
                 >
-                <span class="sub_head">评价管理</span>
+                <span class="sub_head" style="cursor: pointer;">{{lang.ssEvalMgmt}}</span>
             </div>
           
 
@@ -76,13 +78,13 @@
         </div>
         <div class="student_head">
           <div class="cutTab" >
-            <div @click="cutTabBtn(0)" :class="[ cutTabNum==0 ? 'cutTabTwo':'']">按课程查看</div>
-            <div @click="cutTabBtn(1)" :class="[ cutTabNum==1 ? 'cutTabTwo':'']">按学生查看</div>
+            <div @click="cutTabBtn(0)" :class="[ cutTabNum==0 ? 'cutTabTwo':'']">{{lang.ssViewCourse}}</div>
+            <div @click="cutTabBtn(1)" :class="[ cutTabNum==1 ? 'cutTabTwo':'']">{{lang.ssViewStu}}</div>
           </div>
           <div class="student_search" v-if="cutTabNum==0">
-            <div>班级筛选</div>
+            <div>{{lang.ssClassFilter}}</div>
             <el-select v-model="classChoose" @change="search">
-              <el-option label="全部" value="">全部</el-option>
+              <el-option :label="lang.ssAll" value="">{{lang.ssAll}}</el-option>
               <el-option
                 v-for="(c, cIndex) in classJuri"
                 :key="cIndex"
@@ -111,15 +113,15 @@
             </el-select> -->
             <el-input
               v-model="cn"
-              placeholder="筛选课程名称"
+              :placeholder="lang.ssFilterCourse"
               @change="search"
             ></el-input>
           </div>
 
           <div class="student_search" v-if="cutTabNum==1">
-            <div>学生筛选</div>
+            <div>{{lang.ssStuFilter}}</div>
               <el-select v-model="classChoose" @change="search">
-                <el-option label="所有班级" value="">所有班级</el-option>
+                <el-option :label="lang.ssAllClass" value="">{{lang.ssAllClass}}</el-option>
                 <el-option
                   v-for="item in classJuri"
                   :key="item.id"
@@ -130,7 +132,7 @@
               </el-select>
               <el-input
                 v-model="cn"
-                placeholder="筛选学生名称"
+                :placeholder="lang.ssFilterStu"
                 @change="search"
               ></el-input>
           </div>
@@ -167,11 +169,11 @@
           >
             <el-table-column
               prop="title"
-              label="课程"
+              :label="lang.ssCourse"
               min-width="30"
               align="center"
             ></el-table-column>
-            <el-table-column label="班级" min-width="30" align="center">
+            <el-table-column :label="lang.ssClass" min-width="30" align="center">
               <template slot-scope="scope">
                 {{
                   tableData1[scope.$index].classJson.className
@@ -182,55 +184,25 @@
             </el-table-column>
             <el-table-column
               prop="uname"
-              label="创建人"
+              :label="lang.ssCreator"
               min-width="30"
               align="center"
             ></el-table-column>
-            <!-- <el-table-column
-              prop="evaTitle"
-              label="目标名称"
-              min-width="30"
-              align="center"
-            >
-              <template slot-scope="scope">
-                {{ scope.row.evaTitle ? scope.row.evaTitle : "-" }}
-              </template>
-            </el-table-column>
-            <el-table-column
-              prop="time"
-              label="时间"
-              min-width="20"
-              align="center"
-            ></el-table-column> -->
+
               
-              <el-table-column align="center" min-width="30" label="操作" >
+              <el-table-column align="center" min-width="30" :label="lang.ssAction" >
               <template slot-scope="scope">
-                <!-- <el-button
-                type="primary"
-                size="small"
-                @click="
-                  goTo(
-                    '/worksDetail?cid=' +
-                      scope.row.courseId +
-                      '&userid=' +
-                      userid +
-                      '&oid=' +
-                      oid
-                  )
-                "
-                >查看学生</el-button>-->
-                <!-- <el-button type="primary" size="small" @click="getWorkData(scope.row)">生成报告</el-button> -->
                 <el-button
                   type="primary"
                   size="small"
                   @click="getWorkData(scope.row)"
-                  >查看作业</el-button
+                  >{{lang.ssViewWork}}</el-button
                 >
                 <el-button
                   type="primary"
                   size="small"
                   @click="getStudnet(scope.row)"
-                  >查看报告</el-button
+                  >{{lang.ssViewReport}}</el-button
                 >
               </template>
             </el-table-column>
@@ -249,13 +221,13 @@
           >
             <el-table-column
               prop="name"
-              label="学生名称"
+              :label="lang.ssStuName"
               min-width="30"
               align="center"
             ></el-table-column>
             <el-table-column
               prop="className"
-              label="班级"
+              :label="lang.ssClass"
               min-width="40"
               align="center"
             >
@@ -266,13 +238,13 @@
               </template>
             </el-table-column>
              
-            <el-table-column label="操作"  align="center" min-width="30">
+            <el-table-column :label="lang.ssAction"  align="center" min-width="30">
               <template slot-scope="scope">
                 <el-button
                   type="primary"
                   size="small"
                   @click="getStuWorkData(scope.row)"
-                  >查看课程</el-button
+                  >{{lang.ssViewCourse2}}</el-button
                 >
               </template>
             </el-table-column>
@@ -292,24 +264,7 @@
         </div>
       </div>
     </div>
-    <!-- <el-dialog
-      title="查看报告"
-      :visible.sync="dialogVisible"
-      :append-to-body="true"
-      width="750px"
-      :before-close="handleClose"
-      class="dialog_diy"
-    >
-      <div>
-        <div class="a_addBox">
-          <WorkDate :dataJson="dataJson"></WorkDate>
-        </div>
-      </div>
-      <span slot="footer" class="dialog-footer">
-        <el-button @click="dialogVisible = false">关 闭</el-button>
-      </span>
-    </el-dialog>-->
-  
+
     <div class="sdetailBox" v-if="dialogVisibleS">
       <StudentWorksDetail
         :uid="dataJson.userid"
@@ -350,141 +305,8 @@
       :fullscreen="true"
     >
         <div slot="title" class="header-title">
-          <div style="color: #fff">查看报告</div>
-        </div>
-        <!-- <div style="display: flex;align-items: center;padding-bottom: 15px;font-size: 14px;color: rgba(0, 0, 0, 0.4);">
-          <span @click="pageBack" style="height: 100%;cursor: pointer;">评价管理</span>
-          <span style="margin: 0 5px;">
-            <i class="el-icon-arrow-right"></i>
-          </span>
-          <span @click="pageBack" style="height: 100%;cursor: pointer;">查看课程</span>
-          <span style="margin: 0 5px;">
-            <i class="el-icon-arrow-right"></i>
-          </span>
-          <div style="font-weight: 600;color: rgba(0, 0, 0, 0.9);">{{ checkCourse.title }}-查看报告</div>
+          <div style="color: #fff">{{lang.ssViewReport}}</div>
         </div>
-
-        <div class="JsonTit">
-          <div style="width:94%;margin: 0 auto;font-size: 26px;color: rgba(0, 0, 0, 0.9);">{{ checkCourse.title }}</div>
-          <div class="JsonTitBtn">
-            <el-button v-if="checkCourse.state == 5" @click="exportWorkPdf" type="primary" size="small"
-              >一键导出</el-button
-            >
-            <el-button style="margin-left: 20px;" @click="pageBack" type="primary" size="small">返回</el-button>
-          </div>
-        </div>
-
-        <div class="student_search" style="margin-bottom: 10px;justify-content: space-between;width: 94%;margin:30px auto;">
-          <div style="display: flex;justify-content: space-between;">
-            <div style="margin-right: 10px;">筛选</div>
-            <div>
-              <el-select
-                class="r_select"
-                v-model="uClass"
-                placeholder="请选择班级"
-                filterable
-                @change="searchWork2"
-              >
-                <el-option label="所有班级" value></el-option>
-                <el-option
-                  v-for="item in classAarray"
-                  :key="item.id"
-                  :label="item.name"
-                  :value="item.id"
-                ></el-option>
-              </el-select>
-            </div>
-
-            <el-select
-              class="r_select"
-              v-model="uname"
-              placeholder="请选择学生"
-              @change="searchWork2"
-            >
-              <el-option label="所有学生" value></el-option>
-              <el-option
-                v-for="item in userAarray"
-                :key="item.userid"
-                :label="item.sName"
-                :value="item.userid"
-              >
-              </el-option>
-            </el-select>
-
-            <div class="typeCheck">
-              <el-switch v-model="typeCheckN"></el-switch
-              ><span style="font-size: 14px;">查看所有学生</span>
-            </div>
-          </div>
-        </div>
-        <div class="TableCss">
-          <el-table
-            v-loading="isLoading2"
-            ref="multipleTable"
-            :data="lookReportTab"
-            border
-            :fit="true"
-            style="width: 100%"
-            :row-class-name="tableRowClassName"
-            :header-cell-style="{ background: 'rgb(238,238,238)' }"
-              @selection-change="handleSelectionChange"
-          >
-         
-            <el-table-column
-              prop="sName"
-              label="姓名"
-              min-width="20"
-              align="center"
-            ></el-table-column>
-            <el-table-column
-              label="班级"
-              min-width="20"
-              show-overflow-tooltip
-              align="center"
-            >
-            <template slot-scope="scope">
-              <div class="ellipsis">{{ scope.row.class ? scope.row.class : '-' }}</div>
-            </template>
-            </el-table-column>
-            <el-table-column align="center" label="操作" min-width="20">
-              <template  slot-scope="scope">
-                <el-button
-                  v-if="checkCourse.state == 5"
-                  type="primary"
-                  size="small"
-                  @click="lookPdf(scope.row)"
-                  >查看报告</el-button
-                >
-                <el-button
-                  v-else
-                  type="primary"
-                  size="small"
-                  @click="getReport(scope.row)"
-                  >查看报告</el-button
-                >
-                <el-button
-                  v-if="checkCourse.state == 5"
-                  type="primary"
-                  size="small"
-                  @click="getPdf"
-                  >导出报告</el-button
-                >
-              </template>
-              
-            </el-table-column>
-          </el-table>
-          <div v-if="!typeCheckN" style="display: flex;justify-content: space-between; padding:15px 0">
-            <el-pagination
-              background
-              layout="prev, pager, next"
-              :page-size="10"
-              :total="total2"
-              @current-change="handleCurrentChange2"
-            ></el-pagination>
-            <div style="display: flex;"  class="dialog-footer"> </div>
-          </div>
-        </div> -->
-
         <lookReport  :oid="oid" @getReport="getReport"  :key="signDialog" :signDialog.sync="signDialog" :checkCourse="checkCourse"></lookReport>
      
     </el-dialog>
@@ -509,7 +331,7 @@
       :fullscreen="true"
     >
       <div slot="title" class="header-title">
-        <div style="color: #fff">{{ this.digNum==2 ?'查看':'导出' }}报告</div>
+        <div style="color: #fff">{{ this.digNum==2 ? lang.ssViewReport : lang.ssExportReport }}</div>
       </div>
       <exportDataDialog  
         :key="exportW" 
@@ -845,9 +667,9 @@ export default {
         else {
           let url = window.URL.createObjectURL(new Blob([data.Body]));
           let a = document.createElement("a");
-          a.name = 'student01-学生成长报告.pdf';
+          a.name = 'student01-' + lang.ssStuGrowth + '.pdf';
           a.href = url;
-          a.download = 'student01-学生成长报告.pdf';
+          a.download = 'student01-' + lang.ssStuGrowth + '.pdf';
           a.click();
           console.log(data); 
         }          // sxuccessful response
@@ -889,65 +711,9 @@ export default {
           console.error(err);
         });
     },
-        // lookPdf(val){
-    //   this.worksDialogCon=val
-    //   this.worksDialog = true;
-    //   this.digNum = 2
-    //   this.exportW++
-    // },
-       // 查看报告筛选班级
-    // searchWork2() {
-    //   this.page2 = 1
-    //   this.getStudnet();
-    // },
-       // clearSelection() {
-    //     this.$refs.multipleTable.clearSelection();
-    // },
-    // 导出pdf
-    // exportPdfSetBtn(){
-    //   this.worksDialog = true;
-    //   this.digNum = 0
-    //   this.exportW++
-      
-    // },
-        // getClass() {
-    //   let params = {
-    //     oid: this.oid,
-    //   };
-    //   this.ajax
-    //     .get(this.$store.state.api + "selectClassBySchool", params)
-    //     .then((res) => {
-    //       this.classJuri = res.data[0];
-    //     })
-    //     .catch((err) => {
-    //       console.error(err);
-    //     });
-    // },
-    // 一键导出pdf
-    // exportPdfSetAllBtn(){
-
-    //   this.$confirm("是否导出全部学生报告?批量导出需要等待一会儿哦~ 。", "提示", {
-    //     confirmButtonText: "确定",
-    //     cancelButtonText: "取消",
-    //     type: "warning",
-    //   })
-    //   .then(() => {
-    //     this.worksDialog = true;
-    //     this.digNum = 1
-    //     this.exportW++
-    //   })
-    //   .catch(_ => {
-    //     this.$confirm.visible=false
-    //   })
-     
-      
-    // },
   },
   created() {
     this.page = 1;
-
-    // this.getClass();
-    // this.getAllStudent()
     this.getEva();
     this.getProject();
   },

+ 251 - 7
src/lang/cn.json

@@ -908,7 +908,6 @@
   "ssEvaRuleColon":"评价细则:",
   "ssAIScore":"AI评分",
   "ssEnterEvaRule":"请输入评价细则",
-  "ssMindMap":"思维导图",
   "ssGroupName":"第*组名称:",
   "ssTable":"表格",
   "ssStuGroup":"学生分组",
@@ -967,7 +966,6 @@
   "ssCopyLink":"请复制该链接邀请协同编辑",
   "ssCopyShare":"复制链接分享",
   "ssCancel":"取消",
-  "ssViewDoc":"查看文档",
   "ssAddDoc":"添加文档",
   "ssDocTitle":"文档标题",
   "ssEnterDocT":"请输入文档标题名...",
@@ -1006,12 +1004,11 @@
   "ssIntGen":"智能生成",
   "ssSmartPaste":"智能粘贴",
   "ssAddTool":"添加工具",
-  "ssTool":"工具",
+  "ssToolC":"工具",
   "ssInteract":"互动类",
   "ssCognitive":"思维类",
   "ssEval":"评价类",
   "ssMaterial":"素材库",
-  "ssMindGrid":"思维网格",
   "ssEWhite":"电子白板",
   "ssNote":"便签",
   "ssCollDoc":"协同文档",
@@ -1040,7 +1037,6 @@
   "ssTipEnterOpt":"提示:请输入以上题目的选项内容,此选项为所有题目共享。",
   "ssSetCorrect":"设置每道题目的正确选项",
   "ssSelectAns":"根据题目选择对应答案",
-  "ssSelectCorrect":"请选择正确答案",
   "ssAddEva":"添加评价",
   "ssEnterEva":"请输入个人评价指标:",
   "ssEvaCriteria":"个人评价指标:",
@@ -1293,7 +1289,6 @@
   "ssFillToolName":"请填写工具名称",
   "ssFillUrlSource":"请填写网址来源",
   "ssFillToolDesc":"请填写工具描述",
-  "ssView":"查看",
   "ssType":"类型",
   "ssVideoSet":"交互视频设置",
   "ssAddVideo":"添加视频",
@@ -1553,7 +1548,256 @@
   "ssModifyHTML":"修改HTML",
   "ssFillNameInfo":"请将名称信息补充完整",
   "ssFillCodeInfo":"请将代码信息补充完整",
-  "ssLoadHtmlError":"加载 HTML 文件时出错:"
+  "ssLoadHtmlError":"加载 HTML 文件时出错:",
+  "ssStuEval":"学生评价",
+  "ssStuMgmt":"学生管理",
+  "ssCourseMgmt":"课程管理",
+  "ssEvalMgmt":"评价管理",
+  "ssViewCourse":"按课程查看",
+  "ssViewStu":"按学生查看",
+  "ssClassFilter":"班级筛选",
+  "ssFilterCourse":"筛选课程名称",
+  "ssStuFilter":"学生筛选",
+  "ssAllClass":"所有班级",
+  "ssFilterStu":"筛选学生名称",
+  "ssCourse":"课程",
+  "ssClass":"班级",
+  "ssCreator":"创建人",
+  "ssViewWork":"查看作业",
+  "ssStuName":"学生名称",
+  "ssViewCourse2":"查看课程",
+  "ssBack":"返回",
+  "ssFilter":"筛选",
+  "ssSelectStu":"请选择学生",
+  "ssViewAllStu":"查看所有学生",
+  "ssAllStu":"所有学生",
+  "ssName":"姓名",
+  "ssExportReport":"导出报告",
+  "ssViewExport":"查看",
+  "ssExport":"导出",
+  "ssStuGrowth":"学生成长报告",
+  "ssTeacherName":"教师姓名:",
+  "ssClassPerf":"课堂表现",
+  "ssCourseNum":"课程人数:共100人,已完成人数",
+  "ssPerson":"人",
+  "ssClassTime":"课堂时长",
+  "ssTimes":"次",
+  "ssMinute":"分",
+  "ssBeat99":"已经击败99%教师",
+  "ssClassSess":"课堂节数",
+  "ssSession":"节",
+  "ssTeacherCent":"教师为中心",
+  "ssStudentCent":"学生为中心",
+  "ssClassInter":"课堂互动",
+  "ssClassGen":"课堂生成",
+  "ssSelfAct":"自主活动",
+  "ssChinese2":"语文",
+  "ssMath":"数学",
+  "ssInfoTech":"信息科技",
+  "ssCrossLit":"跨学科素养",
+  "ssProblemAw":"问题意识",
+  "ssSciInquiry":"科学探究",
+  "ssPracticeIn":"实践创新",
+  "ssEngThink":"工程思维",
+  "ssLearnRef":"学习反思",
+  "ssAbilityIdx":"能力指标",
+  "ssScore":"分值",
+  "ssStuPercent":"学生百分数(单位:%)",
+  "ssExportAllWork":"是否导出全部学生作业?一键导出需要等待一会儿哦~",
+  "ssBatchExportWork":"是否批量导出学生作业?批量导出需要等待一会儿哦~",
+  "ssLearnReflect":"学习反思能力",
+  "ssLifelongLearn":"终生学习",
+  "ssSelfProgress":"自我进步",
+  "ssSelfReflect":"自我反思",
+  "ssEngThinkAb":"工程思维能力",
+  "ssPracticeInno":"实践创新能力",
+  "ssSciInquiryAb":"科学探究能力",
+  "ssProblemAware":"问题意识",
+  "ssStudentNum":"学号",
+  "ssScoreNum":"分数",
+  "ssView":"查看",
+  "ssClassType":"课堂类型",
+  "ssClassTime2":"课堂时间",
+  "ssClassDur":"课堂时长",
+  "ssMagicDur":"麻吉星时长",
+  "ssTeachClass":"任教班级",
+  "ssImage":"图片",
+  "ssVideo":"视频",
+  "ssInteractC":"互动",
+  "ssVote":"投票",
+  "ssChallenge":"挑战",
+  "ssAssess":"评估",
+  "ssAbstain":"弃权",
+  "ssClassStuAb":"班级学生能力分析",
+  "ssSelectStage":"选择阶段",
+  "ssTaskContent":"任务内容",
+  "ssTaskExport":"按任务导出",
+  "ssCustomExp":"自定义导出",
+  "ssStage":"第*阶段",
+  "ssTaskrp":"任务*",
+  "ssTool":"工具*:",
+  "ssQATool":"问答工具",
+  "ssQuestionT":"提问:",
+  "ssAnswer":"回答:",
+  "ssDocTool":"文档工具",
+  "ssDefaultDesc":"根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。",
+  "ssTableTool":"表格",
+  "ssSurveyTool":"问卷调查",
+  "ssChoiceTool":"选择题",
+  "ssCorrect":"回答正确",
+  "ssWrong":"回答错误",
+  "ssMatchTool":"选择匹配",
+  "ssAnswer3":"答案:",
+  "ssSortTool":"排序",
+  "ssStuAnswer":"学生回答:",
+  "ssCorrectAns":"正确答案:",
+  "ssWorkSubmit":"作业提交",
+  "ssBatchUpload":"批量上传",
+  "ssWhiteBoard":"电子白板",
+  "ssMindGrid":"思维网格",
+  "ssMindMap":"思维导图",
+  "ssAIAssist":"小可AI助手",
+  "ssPrevStu":"上一位",
+  "ssNextStu":"下一位",
+  "ssStuBasicInfo":"学生基本信息",
+  "ssCourseBasicInfo":"项目基本信息",
+  "ssStuAbilityEval":"学生综合能力评估",
+  "ssStageComplete":"阶段完成情况",
+  "ssStageAvgScore":"阶段评价平均分",
+  "ssEvalManage":"评价管理",
+  "ssViewStudent":"查看学生",
+  "ssCourseQuery":"课程查询",
+  "ssInputCourse":"请输入课程",
+  "ssNoClass":"暂无班级",
+  "ssViewGrade":"查看&批改作业",
+  "ssViewReport":"查看报告",
+  "ssViewGrade2":"查看&批改",
+  "ssViewDoc":"查看文档",
+  "ssScore2":"评分:",
+  "ssNoUpload":"暂无上传截图",
+  "ssQATool2":"问答",
+  "ssQATitle":"问答标题",
+  "ssSurveyTool2":"问卷工具",
+  "ssContent2":"内容",
+  "ssTopic3":"题目:",
+  "ssChoiceTool2":"选择题工具",
+  "ssTopicContent":"题目内容",
+  "ssPersonalEval":"个人评价工具",
+  "ssInputEval":"请输入评价内容...",
+  "ssMatchTool2":"选择匹配工具",
+  "ssSelectCorrect":"请选择正确答案",
+  "ssCorrect3":"回答正确",
+  "ssWrong3":"回答错误",
+  "ssCorrectAns4":"正确答案:",
+  "ssSortTool2":"排序工具",
+  "ssQuestion2":"第*题",
+  "ssFormSentence":"组成句子:",
+  "ssCorrectAns5":"正确答案如下:",
+  "ssTableTool2":"表格工具",
+  "ssCocopiTool":"cocopi工具",
+  "ssFullScreen":"全屏查看",
+  "ssDocTool2":"文档工具",
+  "ssTaskScore":"任务得分:",
+  "ssScoreUnit":"分",
+  "ssSubmitTime":"作业提交时间:",
+  "ssScoreDetail":"分数详情",
+  "ssTarget2":"目标",
+  "ssSaveScore":"保存评分",
+  "ssCourseScore":"课程评分",
+  "ssViewChoice":"查看选择题",
+  "ssFilePreview":"文件预览",
+  "ssExportWork":"导出作业集",
+  "ssTime":"时间",
+  "ssOperation":"操作",
+  "ssEvalSuccess":"评价成功",
+  "ssEvalFail":"评价失败",
+  "ssNoTaskWork":"该任务暂时没提交作业",
+  "ssWorkSet":"作业集",
+  "ssWorkSetSummary":"作业集汇总",
+  "ssQuestion3":"第*题:",
+  "ssSelect2":"选择:",
+  "ssAnswer4":"答案:",
+  "ssGenReport":"小可正在生成报告,请稍等。",
+  "ssAIAnalysis":"AI分析",
+  "ssLastAnalysis":"最后一次分析:",
+  "ssSchoolYear":"学年",
+  "ssSemester":"第*学期",
+  "ssSchool":"学校:",
+  "ssTeacher":"指导老师:",
+  "ssLearnOver":"学习总览",
+  "ssComPerf":"综合表现",
+  "ssLoginTime2":"登录时长",
+  "ssStudyTime2":"学习时长",
+  "ssLearnScore":"学习成绩",
+  "ssContainSub":"包含学科",
+  "ssToolUsage":"工具使用情况",
+  "ssLearnBehav":"学习行为记录",
+  "ssInputContent":"请输入内容",
+  "ssRegenerate":"重新生成",
+  "ssLiteracyDev":"素养发展情况",
+  "ssLiteracyRadar":"素养发展雷达图",
+  "ssLiteracyOver":"素养发展总览",
+  "ssLearnAnalysis":"学习分析报告",
+  "ssTaskEval":"任务评价体系",
+  "ssSyncExport":"是否同步导出学生作业集?",
+  "ssOnlyReport":"仅报告",
+  "ssReportWithWork":"报告(含作业集)",
+  "ssNoWorkSubmit":"课程下未有提交作业",
+  "ssSelectClass2":"请选择班级",
+  "ssNoAnalysis":"当前报告暂无分析结果,请先点击【AI分析】",
+  "ssStartAnalysis":"开始分析中...",
+  "ssAnalysisDone":"AI分析已完成",
+  "ssRegenDone":"重新生成已完成",
+  "ssRegenerating":"重新生成中...",
+  "ssStuReportSum":"学生报告汇总",
+  "ssStuReport":"学生报告",
+  "ssStuGrowthRep":"学生成长报告",
+  "ssComment":"评语",
+  "ssLiteracy2":"素养",
+  "ssPersonalData":"个人数据",
+  "ssCooperation":"合作",
+  "ssClassAvg":"班级平均值",
+  "ssTaskScore2":"任务成绩",
+  "ssWorkSubmitRate":"作业提交率",
+  "ssTaskWayRatio":"完成任务方式占比",
+  "ssTeaStuInter":"师生互动",
+  "ssStuStuActive":"生生互动(主动)",
+  "ssStuStuPassive":"生生互动(被动)",
+  "ssToolRatio":"工具占比",
+  "ssLiteracyAvg":"素养平均分",
+  "ssInteractType":"互动类",
+  "ssThinkType":"思维类",
+  "ssCoopType":"协作类",
+  "ssAssessType":"测评类",
+  "ssEvalType":"评价类",
+  "ssProgType":"编程类",
+  "ssSubjectType":"学科类",
+  "ssOneClickExp":"一键导出",
+  "ssBatchExp":"批量导出",
+  "ssAllStudent":"所有学生",
+  "ssOneClickExpAll":"一键导出所有报告需要占用您大量时间,是否导出?",
+  "ssBatchExpAll":"批量导出报告需要占用您一些时间,是否导出?",
+  "ssReport":"报告",
+  "ssExportAllStudentWork":"是否导出全部学生作业?全部导出需要等待一会儿哦~",
+  "ssBatchExportWorkTime":"批量导出作业需要占用您较多时间,是否导出?",
+  "ssExportByTaskWork":"按任务导出作业",
+  "ssCustomExportWork":"自定义导出作业",
+  "ssViewByStudent":"按学生查看",
+  "ssViewByTask":"按任务查看",
+  "ssViewAllStudent":"查看所有学生",
+  "ssViewAndGrade":"查看&批改",
+  "ssExportWorkSet":"导出作业集",
+  "ssCustomExport":"自定义导出",
+  "ssExportByTask":"按任务导出",
+  "ssReturn":"返回",
+  "ssSelectStudent":"请选择学生",
+  "ssAllStage":"所有阶段",
+  "ssSelectTask":"请选择任务",
+  "ssAllTask":"所有任务",
+  "ssStageLabel":"阶段",
+  "ssQuestionnaire":"问卷",
+  "ssSentence":"句子",
+  "ssCocoFlow":"cocoFlow"
 
 
 

+ 257 - 14
src/lang/en.json

@@ -218,7 +218,7 @@
   "initializepasswordteacher":"Are you sure to initialize the password for this teacher?",
   "othertypesofteaching":"Cannot have the same name as other types of teaching and research rooms!",
   "CourseManagement":"Course management",
-  "EvaluationManagement":"Evaluation management",
+  "EvaluationManagement":"Assessment Management",
   "CreateCourse":"Create Course",
   "SimplifiedCourse": "Simplified Course",
   "Classroommode": "Lesson Plan Analysis Mode",
@@ -756,7 +756,7 @@
   "Use":"Use",
   "CommunityTemplate":"Community Template",
   "MyTemplate":"My Template",
-  "Creator":"Creator",
+  "Creator":"Owner",
   "deletethistemplate":"Are you sure to delete this template?",
   "ssUploadCont":"Upload course content",
   "ssUploadOk":"Upload completed",
@@ -868,7 +868,6 @@
   "ssRegenOver":"Regenerate Overview",
   "ssGenOverOnly":"Generate Overview",
   "ssExportPlan":"Export Lesson Plan",
-  "ssCatalog":"Catalog",
   "ssAttachArea":"Attachment Area",
   "ssOneKeyGen":"One-Click Generate",
   "ssRegenAllTask":"Regenerate All Tasks",
@@ -964,7 +963,6 @@
   "ssCopyLink":"Please copy the link to invite collaborative editing",
   "ssCopyShare":"Copy link and share",
   "ssCancel":"Cancel",
-  "ssViewDoc":"View document",
   "ssAddDoc":"Add File",
   "ssDocTitle":"document title",
   "ssEnterDocT":"Please enter the title of the document ..",
@@ -1003,13 +1001,11 @@
   "ssIntGen":"Intelligent Generation",
   "ssSmartPaste":"SMART Paste",
   "ssAddTool":"Add Tool",
-  "ssAddTool":"Add Tool",
-  "ssTool":"Tool",
+  "ssToolC":"Tool",
   "ssInteract":"Interactive",
   "ssCognitive":"Cognitive",
   "ssEval":"Evaluation",
   "ssMaterial":"Material Library",
-  "ssMindGrid":"Thinking Grid",
   "ssEWhite":"E-Whiteboard",
   "ssNote":"note",
   "ssCollDoc":"Collaborative document",
@@ -1017,7 +1013,7 @@
   "ssGaugeRate":"Gauge rating",
   "ssToolDesc":"Add Tool Description",
   "ssAddQA":"Add Q&A",
-  "ssQuestion":"Question:",
+  "ssQuestionT":"Question:",
   "ssEnterQues2":"Please enter your question",
   "ssAddQues":"Add questions",
   "ssEnterWant":"Please enter the question you want to answer",
@@ -1028,7 +1024,6 @@
   "ssPainting":"painting",
   "ssScience":"science and technology",
   "ssHumanity":"humanity",
-  "ssArt":"art",
   "ssSearchImg":"Search for image keywords",
   "ssChangeGrp":"Change to another group",
   "ssEnterKeyImg":"Please enter keywords to search for images",
@@ -1038,7 +1033,6 @@
   "ssTipEnterOpt":"Tip: Please enter option content for the above questions; options will be shared for all questions.",
   "ssSetCorrect":"Select Correct Option",
   "ssSelectAns":"Match Answers to Questions",
-  "ssSelectCorrect":"Select Correct Option",
   "ssAddEva":"Add Assessment",
   "ssEnterEva":"Enter Self-Assessment Criteria:",
   "ssEvaCriteria":"Self-Assessment criteria:",
@@ -1066,7 +1060,6 @@
   "ssAddTarget":"Add Objective",
   "ssTargetName":"Objective",
   "ssOwner":"Owner",
-  "ssAction":"Operate",
   "ssImport":"Import",
   "ssGroupSet":"Group settings",
   "ssSetGroupNum":"Group Names",
@@ -1286,7 +1279,6 @@
   "ssFree":"Free",
   "ssPaid":"Paid",
   "ssChinese":"Chinese",
-  "ssEnglish":"English",
   "ssScene":"Scene",
   "ssFillToolName":"Please fill in tool name",
   "ssFillUrlSource":"Please fill in URL source",
@@ -1302,7 +1294,6 @@
   "ssAddHiding":"Add hiding",
   "ssTriggerTime":"Trigger Time:",
   "ssVideoSec":"Which second of video",
-  "ssSecond":"second",
   "ssToolSet":"Tool Settings:",
   "ssIsSet":"Set",
   "ssInsertTool":"Insert Tool",
@@ -1553,7 +1544,259 @@
   "ssModifyHTML":"Modify HTML",
   "ssFillNameInfo":"Please complete the name information",
   "ssFillCodeInfo":"Please complete the code information",
-  "ssLoadHtmlError":"Error loading HTML file:"
+  "ssLoadHtmlError":"Error loading HTML file:",
+  "ssStuEval":"Student Evaluation",
+  "ssStuMgmt":"Student Management",
+  "ssCourseMgmt":"Course Management",
+  "ssEvalMgmt":"Assessment Management",
+  "ssViewCourse":"View by Course",
+  "ssViewStu":"View by Student",
+  "ssClassFilter":"Select Class",
+  "ssFilterCourse":"Select Course Name",
+  "ssStuFilter":"Student Filter",
+  "ssAllClass":"All Classes",
+  "ssFilterStu":"Filter Student Name",
+  "ssCourse":"Course",
+  "ssClass":"Class",
+  "ssCreator":"Owner",
+  "ssAction":"Actions",
+  "ssViewWork":"View Assignments",
+  "ssViewReport":"View Reports",
+  "ssStuName":"Student Name",
+  "ssViewCourse2":"View Course",
+  "ssBack":"Back",
+  "ssFilter":"Select Course",
+  "ssSelectStu":"Please select student",
+  "ssViewAllStu":"View All Students",
+  "ssAllStu":"All Students",
+  "ssName":"Name",
+  "ssExportReport":"Export Report",
+  "ssViewExport":"View",
+  "ssExport":"Export",
+  "ssStuGrowth":"Student Growth Report",
+  "ssTeacherName":"Teacher Name:",
+  "ssClassPerf":"Class Performance",
+  "ssCourseNum":"Course Participants: 100 total, Completed:",
+  "ssPerson":"people",
+  "ssClassTime":"Class Duration",
+  "ssTimes":"times",
+  "ssMinute":"min",
+  "ssSecond":"sec",
+  "ssBeat99":"Beat 99% of teachers",
+  "ssClassSess":"Class Sessions",
+  "ssSession":"sessions",
+  "ssTeacherCent":"Teacher-Centered",
+  "ssStudentCent":"Student-Centered",
+  "ssClassInter":"Class Interaction",
+  "ssClassGen":"Class Generation",
+  "ssSelfAct":"Self-Activity",
+  "ssChinese2":"Chinese",
+  "ssMath":"Math",
+  "ssEnglish":"English",
+  "ssInfoTech":"Information Technology",
+  "ssArt":"Art",
+  "ssCrossLit":"Cross-Disciplinary Literacy",
+  "ssProblemAw":"Problem Awareness",
+  "ssSciInquiry":"Scientific Inquiry",
+  "ssPracticeIn":"Practical Innovation",
+  "ssEngThink":"Engineering Thinking",
+  "ssLearnRef":"Learning Reflection",
+  "ssAbilityIdx":"Ability Indicator",
+  "ssScore":"Score",
+  "ssStuPercent":"Student Percentage (Unit: %)",
+  "ssExportAllWork":"Export all student assignments? One-click export will take a moment~",
+  "ssBatchExportWork":"Batch export student assignments? Batch export will take a moment~",
+  "ssLearnReflect":"Learning Reflection Ability",
+  "ssLifelongLearn":"Lifelong Learning",
+  "ssSelfProgress":"Self-Improvement",
+  "ssSelfReflect":"Self-Reflection",
+  "ssEngThinkAb":"Engineering Thinking Ability",
+  "ssPracticeInno":"Practical Innovation Ability",
+  "ssSciInquiryAb":"Scientific Inquiry Ability",
+  "ssProblemAware":"Problem Awareness",
+  "ssStudentNum":"Student ID",
+  "ssScoreNum":"Score",
+  "ssClassType":"Class Type",
+  "ssClassTime2":"Class Time",
+  "ssClassDur":"Class Duration",
+  "ssMagicDur":"Magic Star Duration",
+  "ssTeachClass":"Teaching Class",
+  "ssVideo":"Video",
+  "ssInteractC":"Interaction",
+  "ssVote":"Vote",
+  "ssChallenge":"Challenge",
+  "ssAssess":"Assessment",
+  "ssAbstain":"Abstain",
+  "ssClassStuAb":"Class Student Ability Analysis",
+  "ssSelectStage":"Select Stage",
+  "ssTaskContent":"Task Content",
+  "ssTaskExport":"Export by Task",
+  "ssCustomExp":"Custom Export",
+  "ssStage":"Stage *",
+  "ssTaskrp":"Task *",
+  "ssTool":"Tool *:",
+  "ssQATool":"Q&A Tool",
+  "ssQuestion":"Question:",
+  "ssAnswer":"Answer:",
+  "ssDocTool":"Document Tool",
+  "ssDefaultDesc":"Based on preliminary understanding and field research of the project, think and discuss to raise questions.",
+  "ssTableTool":"Table",
+  "ssSurveyTool":"Survey",
+  "ssChoiceTool":"Multiple Choice",
+  "ssCorrect":"Correct",
+  "ssWrong":"Wrong",
+  "ssMatchTool":"Match Selection",
+  "ssAnswer3":"Answer:",
+  "ssSortTool":"Sort",
+  "ssStuAnswer":"Student Answer:",
+  "ssCorrectAns":"Correct Answer:",
+  "ssWorkSubmit":"Work Submission",
+  "ssBatchUpload":"Batch Upload",
+  "ssWhiteBoard":"Whiteboard",
+  "ssMindGrid":"Mind Grid",
+  "ssAIAssist":"Xiaoke AI Assistant",
+  "ssPrevStu":"Previous",
+  "ssNextStu":"Next",
+  "ssStuBasicInfo":"Student Basic Information",
+  "ssCourseBasicInfo":"Course Basic Information",
+  "ssStuAbilityEval":"Student Comprehensive Ability Assessment",
+  "ssStageComplete":"Stage Completion Status",
+  "ssStageAvgScore":"Stage Evaluation Average Score",
+  "ssEvalManage":"Assessment Management",
+  "ssViewStudent":"View Student",
+  "ssCourseQuery":"Course Query",
+  "ssInputCourse":"Please enter course",
+  "ssNoClass":"No Class",
+  "ssViewGrade":"View & Grade Work",
+  "ssViewGrade2":"Review & Grade",
+  "ssCatalog":"Catalog",
+  "ssViewDoc":"View Document",
+  "ssScore2":"Score:",
+  "ssNoUpload":"No Upload Screenshot",
+  "ssQATool2":"Q&A",
+  "ssQATitle":"Q&A Title",
+  "ssSurveyTool2":"Survey Tool",
+  "ssContent2":"Content",
+  "ssTopic3":"Topic:",
+  "ssChoiceTool2":"Choice Tool",
+  "ssTopicContent":"Topic Content",
+  "ssPersonalEval":"Personal Evaluation Tool",
+  "ssInputEval":"Please enter evaluation content...",
+  "ssMatchTool2":"Match Tool",
+  "ssSelectCorrect":"Please select correct answer",
+  "ssCorrect3":"Correct Answer",
+  "ssWrong3":"Wrong Answer",
+  "ssCorrectAns4":"Correct Answer:",
+  "ssSortTool2":"Sort Tool",
+  "ssQuestion2":"Question *",
+  "ssFormSentence":"Form Sentence:",
+  "ssCorrectAns5":"Correct Answer:",
+  "ssTableTool2":"Table Tool",
+  "ssCocopiTool":"Cocopi Tool",
+  "ssFullScreen":"Full Screen View",
+  "ssDocTool2":"Document Tool",
+  "ssTaskScore":"Task Score:",
+  "ssScoreUnit":"points",
+  "ssSubmitTime":"Work Submission Time:",
+  "ssScoreDetail":"Score Details",
+  "ssTarget2":"Target",
+  "ssSaveScore":"Save Score",
+  "ssCourseScore":"Course Score",
+  "ssViewChoice":"View Choice Questions",
+  "ssFilePreview":"File Preview",
+  "ssExportWork":"Export Submissions",
+  "ssTime":"Time",
+  "ssOperation":"Operation",
+  "ssEvalSuccess":"Evaluation Successful",
+  "ssEvalFail":"Evaluation Failed",
+  "ssNoTaskWork":"No work submitted for this task yet",
+  "ssWorkSet":"Work Set",
+  "ssWorkSetSummary":"Work Set Summary",
+  "ssImage":"Image",
+  "ssQuestion3":"Question *:",
+  "ssSelect2":"Select:",
+  "ssAnswer4":"Answer:",
+  "ssGenReport":"Generating report, please wait...",
+  "ssAIAnalysis":"AI Analysis",
+  "ssLastAnalysis":"Last Analysis:",
+  "ssSchoolYear":"School Year",
+  "ssSemester":"Semester *",
+  "ssSchool":"School:",
+  "ssTeacher":"Teacher:",
+  "ssLearnOver":"Learning Overview",
+  "ssComPerf":"Overall Performance",
+  "ssLoginTime2":"Login Duration",
+  "ssStudyTime2":"Study Duration",
+  "ssLearnScore":"Learning Score",
+  "ssContainSub":"Subjects Included",
+  "ssToolUsage":"Tool Usage",
+  "ssLearnBehav":"Learning Behavior Record",
+  "ssInputContent":"Please enter content",
+  "ssRegenerate":"Regenerate",
+  "ssLiteracyDev":"Literacy Development",
+  "ssLiteracyRadar":"Literacy Development Radar",
+  "ssLiteracyOver":"Literacy Development Overview",
+  "ssLearnAnalysis":"Learning Analysis Report",
+  "ssTaskEval":"Task Evaluation System",
+  "ssSyncExport":"Sync export student work set?",
+  "ssOnlyReport":"Report Only",
+  "ssReportWithWork":"Report (with work set)",
+  "ssNoWorkSubmit":"No work submitted for this course",
+  "ssSelectClass2":"Please select class",
+  "ssNoAnalysis":"No analysis results available, please click [AI Analysis] first",
+  "ssStartAnalysis":"Starting analysis...",
+  "ssAnalysisDone":"AI Analysis Completed",
+  "ssRegenDone":"Regeneration Completed",
+  "ssRegenerating":"Regenerating...",
+  "ssStuReportSum":"Student Report Summary",
+  "ssStuReport":"Student Report",
+  "ssStuGrowthRep":"Student Growth Report",
+  "ssComment":"Comment",
+  "ssLiteracy2":"Literacy",
+  "ssPersonalData":"Personal Data",
+  "ssCooperation":"Cooperation",
+  "ssClassAvg":"Class Average",
+  "ssTaskScore2":"Task Score",
+  "ssWorkSubmitRate":"Work Submission Rate",
+  "ssTaskWayRatio":"Task Completion Method Ratio",
+  "ssTeaStuInter":"Teacher-Student Interaction",
+  "ssStuStuActive":"Student-Student Interaction (Active)",
+  "ssStuStuPassive":"Student-Student Interaction (Passive)",
+  "ssToolRatio":"Tool Ratio",
+  "ssLiteracyAvg":"Literacy Average Score",
+  "ssInteractType":"Interaction",
+  "ssThinkType":"Thinking",
+  "ssCoopType":"Collaboration",
+  "ssAssessType":"Assessment",
+  "ssEvalType":"Evaluation",
+  "ssProgType":"Programming",
+  "ssSubjectType":"Subject",
+  "ssOneClickExp":"One-Click Export",
+  "ssBatchExp":"Custom Export",
+  "ssAllStudent":"All Students",
+  "ssOneClickExpAll":"One-click export of all reports will take a lot of your time. Do you want to export?",
+  "ssBatchExpAll":"Batch export of reports will take some of your time. Do you want to export?",
+  "ssReport":"Report",
+  "ssExportAllStudentWork":"Do you want to export all student assignments? Full export will take a while~",
+  "ssBatchExportWorkTime":"Batch export of assignments will take more of your time. Do you want to export?",
+  "ssExportByTaskWork":"Export by Task",
+  "ssCustomExportWork":"Custom Export",
+  "ssViewByStudent":"View by Student",
+  "ssViewByTask":"View by Task",
+  "ssViewAllStudent":"View All Students",
+  "ssViewAndGrade":"Review & Grade",
+  "ssExportWorkSet":"Export Submissions",
+  "ssCustomExport":"Custom Export",
+  "ssExportByTask":"Export by Task",
+  "ssReturn":"Return",
+  "ssSelectStudent":"Please select student",
+  "ssAllStage":"All Stages",
+  "ssSelectTask":"Please select task",
+  "ssAllTask":"All Tasks",
+  "ssStageLabel":"Stage",
+  "ssQuestionnaire":"Questionnaire",
+  "ssSentence":"Sentence",
+  "ssCocoFlow":"cocoFlow"
 
 
 

+ 250 - 6
src/lang/hk.json

@@ -869,7 +869,6 @@
   "ssRegenOver":"重新生成概況",
   "ssGenOverOnly":"生成概況",
   "ssExportPlan":"導出教案",
-  "ssCatalog":"目錄",
   "ssAttachArea":"附件區",
   "ssOneKeyGen":"一鍵生成",
   "ssRegenAllTask":"重新生成所有任務",
@@ -907,7 +906,6 @@
   "ssEvaRuleColon":"評價細則:",
   "ssAIScore":"AI評分",
   "ssEnterEvaRule":"請輸入評價細則",
-  "ssMindMap":"思維導圖",
   "ssGroupName":"第*組名稱:",
   "ssTable":"表格",
   "ssStuGroup":"學生分組",
@@ -965,7 +963,6 @@
   "ssCopyLink":"請複製該鏈接邀請協同編輯",
   "ssCopyShare":"複製鏈接分享",
   "ssCancel":"取消",
-  "ssViewDoc":"查看文檔",
   "ssAddDoc":"添加文檔",
   "ssDocTitle":"文檔標題",
   "ssEnterDocT":"請輸入文檔標題名...",
@@ -1004,7 +1001,7 @@
   "ssIntGen":"智能生成",
   "ssSmartPaste":"智能粘貼",
   "ssAddTool":"添加工具",
-  "ssTool":"工具",
+  "ssToolC":"工具",
   "ssInteract":"互動類",
   "ssCognitive":"思維類",
   "ssEval":"評價類",
@@ -1038,7 +1035,6 @@
   "ssTipEnterOpt":"提示:請輸入以上題目的選項內容,此選項為所有題目共享。",
   "ssSetCorrect":"設置每道題目的正確選項",
   "ssSelectAns":"根據題目選擇正確答案",
-  "ssSelectCorrect":"請選擇正確答案",
   "ssAddEva":"添加評價",
   "ssEnterEva":"請輸入個人評價指標:",
   "ssEvaCriteria":"個人評價指標:",
@@ -1553,7 +1549,255 @@
   "ssModifyHTML":"修改HTML",
   "ssFillNameInfo":"請將名稱信息補充完整",
   "ssFillCodeInfo":"請將代碼信息補充完整",
-  "ssLoadHtmlError":"加載 HTML 文件時出錯:"
+  "ssLoadHtmlError":"加載 HTML 文件時出錯:",
+  "ssStuEval":"學生評價",
+  "ssStuMgmt":"學生管理",
+  "ssCourseMgmt":"課程管理",
+  "ssEvalMgmt":"評估管理",
+  "ssViewCourse":"按課程查看",
+  "ssViewStu":"按學生查看",
+  "ssClassFilter":"班級篩選",
+  "ssFilterCourse":"篩選課程名稱",
+  "ssStuFilter":"學生篩選",
+  "ssAllClass":"所有班級",
+  "ssFilterStu":"篩選學生名稱",
+  "ssCourse":"課程",
+  "ssClass":"班級",
+  "ssCreator":"創建人",
+  "ssViewWork":"查看作業",
+  "ssViewReport":"查看報告",
+  "ssStuName":"學生名稱",
+  "ssViewCourse2":"查看課程",
+  "ssBack":"返回",
+  "ssFilter":"篩選",
+  "ssSelectStu":"請選擇學生",
+  "ssViewAllStu":"查看所有學生",
+  "ssAllStu":"所有學生",
+  "ssName":"姓名",
+  "ssExportReport":"導出報告",
+  "ssViewExport":"查看",
+  "ssExport":"導出",
+  "ssStuGrowth":"學生成長報告",
+  "ssTeacherName":"教師姓名:",
+  "ssClassPerf":"課堂表現",
+  "ssCourseNum":"課程人數:共100人,已完成人數",
+  "ssPerson":"人",
+  "ssClassTime":"課堂時長",
+  "ssTimes":"次",
+  "ssMinute":"分",
+  "ssBeat99":"已經擊敗99%教師",
+  "ssClassSess":"課堂節數",
+  "ssSession":"節",
+  "ssTeacherCent":"教師為中心",
+  "ssStudentCent":"學生為中心",
+  "ssClassInter":"課堂互動",
+  "ssClassGen":"課堂生成",
+  "ssSelfAct":"自主活動",
+  "ssChinese2":"語文",
+  "ssMath":"數學",
+  "ssInfoTech":"信息科技",
+  "ssCrossLit":"跨學科素養",
+  "ssProblemAw":"問題意識",
+  "ssSciInquiry":"科學探究",
+  "ssPracticeIn":"實踐創新",
+  "ssEngThink":"工程思維",
+  "ssLearnRef":"學習反思",
+  "ssAbilityIdx":"能力指標",
+  "ssScore":"分值",
+  "ssStuPercent":"學生百分數(單位:%)",
+  "ssExportAllWork":"是否導出全部學生作業?一鍵導出需要等待一會兒哦~",
+  "ssBatchExportWork":"是否批量導出學生作業?批量導出需要等待一會兒哦~",
+  "ssLearnReflect":"學習反思能力",
+  "ssLifelongLearn":"終生學習",
+  "ssSelfProgress":"自我進步",
+  "ssSelfReflect":"自我反思",
+  "ssEngThinkAb":"工程思維能力",
+  "ssPracticeInno":"實踐創新能力",
+  "ssSciInquiryAb":"科學探究能力",
+  "ssProblemAware":"問題意識",
+  "ssStudentNum":"學號",
+  "ssScoreNum":"分數",
+  "ssClassType":"課堂類型",
+  "ssClassTime2":"課堂時間",
+  "ssClassDur":"課堂時長",
+  "ssMagicDur":"麻吉星時長",
+  "ssTeachClass":"任教班級",
+  "ssVideo":"視頻",
+  "ssInteractC":"互動",
+  "ssVote":"投票",
+  "ssChallenge":"挑戰",
+  "ssAssess":"評估",
+  "ssAbstain":"棄權",
+  "ssClassStuAb":"班級學生能力分析",
+  "ssSelectStage":"選擇階段",
+  "ssTaskContent":"任務內容",
+  "ssTaskExport":"按任務導出",
+  "ssCustomExp":"自定義導出",
+  "ssStage":"第*階段",
+  "ssTaskrp":"任務*",
+  "ssTool":"工具*:",
+  "ssQATool":"問答工具",
+  "ssQuestionT":"提問:",
+  "ssAnswer":"回答:",
+  "ssDocTool":"文檔工具",
+  "ssDefaultDesc":"根據前期的了解與實地調研對於項目的了解,進行思考與討論提出問題。",
+  "ssTableTool":"表格",
+  "ssSurveyTool":"問卷調查",
+  "ssChoiceTool":"選擇題",
+  "ssCorrect":"回答正確",
+  "ssWrong":"回答錯誤",
+  "ssMatchTool":"選擇匹配",
+  "ssAnswer3":"答案:",
+  "ssSortTool":"排序",
+  "ssStuAnswer":"學生回答:",
+  "ssCorrectAns":"正確答案:",
+  "ssWorkSubmit":"作業提交",
+  "ssBatchUpload":"批量上傳",
+  "ssWhiteBoard":"電子白板",
+  "ssMindMap":"思維導圖",
+  "ssAIAssist":"小可AI助手",
+  "ssPrevStu":"上一位",
+  "ssNextStu":"下一位",
+  "ssStuBasicInfo":"學生基本信息",
+  "ssCourseBasicInfo":"項目基本信息",
+  "ssStuAbilityEval":"學生綜合能力評估",
+  "ssStageComplete":"階段完成情況",
+  "ssStageAvgScore":"階段評價平均分",
+  "ssEvalManage":"評價管理",
+  "ssViewStudent":"查看學生",
+  "ssCourseQuery":"課程查詢",
+  "ssInputCourse":"請輸入課程",
+  "ssNoClass":"暫無班級",
+  "ssViewGrade":"查看&批改作業",
+  "ssViewGrade2":"查看&批改",
+  "ssCatalog":"目錄",
+  "ssViewDoc":"查看文檔",
+  "ssScore2":"評分:",
+  "ssNoUpload":"暫無上傳截圖",
+  "ssQATool2":"問答",
+  "ssQATitle":"問答標題",
+  "ssSurveyTool2":"問卷工具",
+  "ssContent2":"內容",
+  "ssTopic3":"題目:",
+  "ssChoiceTool2":"選擇題工具",
+  "ssTopicContent":"題目內容",
+  "ssPersonalEval":"個人評價工具",
+  "ssInputEval":"請輸入評價內容...",
+  "ssMatchTool2":"選擇匹配工具",
+  "ssSelectCorrect":"請選擇正確答案",
+  "ssCorrect3":"回答正確",
+  "ssWrong3":"回答錯誤",
+  "ssCorrectAns4":"正確答案:",
+  "ssSortTool2":"排序工具",
+  "ssQuestion2":"第*題",
+  "ssFormSentence":"組成句子:",
+  "ssCorrectAns5":"正確答案如下:",
+  "ssTableTool2":"表格工具",
+  "ssCocopiTool":"cocopi工具",
+  "ssFullScreen":"全屏查看",
+  "ssDocTool2":"文檔工具",
+  "ssTaskScore":"任務得分:",
+  "ssScoreUnit":"分",
+  "ssSubmitTime":"作業提交時間:",
+  "ssScoreDetail":"分數詳情",
+  "ssTarget2":"目標",
+  "ssSaveScore":"保存評分",
+  "ssCourseScore":"課程評分",
+  "ssViewChoice":"查看選擇題",
+  "ssFilePreview":"文件預覽",
+  "ssExportWork":"導出作業集",
+  "ssTime":"時間",
+  "ssOperation":"操作",
+  "ssEvalSuccess":"評價成功",
+  "ssEvalFail":"評價失敗",
+  "ssNoTaskWork":"該任務暫時沒提交作業",
+  "ssWorkSet":"作業集",
+  "ssWorkSetSummary":"作業集匯總",
+  "ssImage":"圖片",
+  "ssQuestion3":"第*題:",
+  "ssSelect2":"選擇:",
+  "ssAnswer4":"答案:",
+  "ssGenReport":"小可正在生成報告,請稍等。",
+  "ssAIAnalysis":"AI分析",
+  "ssLastAnalysis":"最後一次分析:",
+  "ssSchoolYear":"學年",
+  "ssSemester":"第*學期",
+  "ssSchool":"學校:",
+  "ssTeacher":"指導老師:",
+  "ssLearnOver":"學習總覽",
+  "ssComPerf":"綜合表現",
+  "ssLoginTime2":"登錄時長",
+  "ssStudyTime2":"學習時長",
+  "ssLearnScore":"學習成績",
+  "ssContainSub":"包含學科",
+  "ssToolUsage":"工具使用情況",
+  "ssLearnBehav":"學習行為記錄",
+  "ssInputContent":"請輸入內容",
+  "ssRegenerate":"重新生成",
+  "ssLiteracyDev":"素養發展情況",
+  "ssLiteracyRadar":"素養發展雷達圖",
+  "ssLiteracyOver":"素養發展總覽",
+  "ssLearnAnalysis":"學習分析報告",
+  "ssTaskEval":"任務評價體系",
+  "ssSyncExport":"是否同步導出學生作業集?",
+  "ssOnlyReport":"僅報告",
+  "ssReportWithWork":"報告(含作業集)",
+  "ssNoWorkSubmit":"課程下未有提交作業",
+  "ssSelectClass2":"請選擇班級",
+  "ssNoAnalysis":"當前報告暫無分析結果,請先點擊【AI分析】",
+  "ssStartAnalysis":"開始分析中...",
+  "ssAnalysisDone":"AI分析已完成",
+  "ssRegenDone":"重新生成已完成",
+  "ssRegenerating":"重新生成中...",
+  "ssStuReportSum":"學生報告匯總",
+  "ssStuReport":"學生報告",
+  "ssStuGrowthRep":"學生成長報告",
+  "ssComment":"評語",
+  "ssLiteracy2":"素養",
+  "ssPersonalData":"個人數據",
+  "ssCooperation":"合作",
+  "ssClassAvg":"班級平均值",
+  "ssTaskScore2":"任務成績",
+  "ssWorkSubmitRate":"作業提交率",
+  "ssTaskWayRatio":"完成任務方式占比",
+  "ssTeaStuInter":"師生互動",
+  "ssStuStuActive":"生生互動(主動)",
+  "ssStuStuPassive":"生生互動(被動)",
+  "ssToolRatio":"工具占比",
+  "ssLiteracyAvg":"素養平均分",
+  "ssInteractType":"互動類",
+  "ssThinkType":"思維類",
+  "ssCoopType":"協作類",
+  "ssAssessType":"測評類",
+  "ssEvalType":"評價類",
+  "ssProgType":"編程類",
+  "ssSubjectType":"學科類",
+  "ssOneClickExp":"一鍵導出",
+  "ssBatchExp":"批量導出",
+  "ssAllStudent":"所有學生",
+  "ssOneClickExpAll":"一鍵導出所有報告需要佔用您大量時間,是否導出?",
+  "ssBatchExpAll":"批量導出報告需要佔用您一些時間,是否導出?",
+  "ssReport":"報告",
+  "ssExportAllStudentWork":"是否導出全部學生作業?全部導出需要等待一會兒哦~",
+  "ssBatchExportWorkTime":"批量導出作業需要佔用您較多時間,是否導出?",
+  "ssExportByTaskWork":"按任務導出作業",
+  "ssCustomExportWork":"自定義導出作業",
+  "ssViewByStudent":"按學生查看",
+  "ssViewByTask":"按任務查看",
+  "ssViewAllStudent":"查看所有學生",
+  "ssViewAndGrade":"查看&批改",
+  "ssExportWorkSet":"導出作業集",
+  "ssCustomExport":"自定義導出",
+  "ssExportByTask":"按任務導出",
+  "ssReturn":"返回",
+  "ssSelectStudent":"請選擇學生",
+  "ssAllStage":"所有階段",
+  "ssSelectTask":"請選擇任務",
+  "ssAllTask":"所有任務",
+  "ssStageLabel":"階段",
+  "ssQuestionnaire":"問卷",
+  "ssSentence":"句子",
+  "ssCocoFlow":"cocoFlow"
 
 
 

Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.