Kaynağa Gözat

Merge branch 'beta' of https://git.cocorobo.cn/CocoRoboLabs/pbl-student-table into beta

lsc 1 ay önce
ebeveyn
işleme
3069be5beb

+ 1 - 1
dist/index.html

@@ -32,7 +32,7 @@
     html,
     body{
       font-family: '黑体';
-    }</style><link href=./static/css/app.1fa27d71bb192e7ad788f34882f54eaa.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.3ad1d5771e9b13dbdad2.js></script><script type=text/javascript src=./static/js/vendor.becc9317549795ada446.js></script><script type=text/javascript src=./static/js/app.a4120d5459c2d22a8ebe.js></script></body></html><script>function stopSafari() {
+    }</style><link href=./static/css/app.a4881c04b06ffcb8d98f959d371904c7.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.3ad1d5771e9b13dbdad2.js></script><script type=text/javascript src=./static/js/vendor.becc9317549795ada446.js></script><script type=text/javascript src=./static/js/app.b263fa4cf9e0dcc5f57d.js></script></body></html><script>function stopSafari() {
     //阻止safari浏览器双击放大功能
     let lastTouchEnd = 0  //更新手指弹起的时间
     document.documentElement.addEventListener("touchstart", function (event) {

Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/static/css/app.a4881c04b06ffcb8d98f959d371904c7.css


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/static/css/app.a4881c04b06ffcb8d98f959d371904c7.css.map


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/static/js/app.b263fa4cf9e0dcc5f57d.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/static/js/app.b263fa4cf9e0dcc5f57d.js.map


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
dist/static/js/manifest.3ad1d5771e9b13dbdad2.js.map


+ 34 - 0
src/App.vue

@@ -483,4 +483,38 @@ html::-webkit-scrollbar-thumb {
   height: 100%;
   overflow: hidden;
 }
+
+.el-message-box__btns>.pptEasyClassConfirmButtonText {
+  background: #FCCF00 !important;
+  color: #ffffffe0 !important;
+  border-color: #FCCF00 !important;
+}
+
+.el-message-box__btns>.pptEasyClassConfirmButtonText:hover{
+  background: #e9be02 !important;
+  color: #ffffffe0 !important;
+  border-color: #e9be02 !important;
+}
+
+.el-message-box__btns>.pptEasyClassCancelButtonText {
+  background: #FFFFFF  !important;
+  color: #00000090 !important;
+  border-color: #DDDDDD !important;
+}
+
+.el-message-box__btns>.pptEasyClassCancelButtonText:hover {
+  background: #d8d8d8  !important;
+  color: #00000090 !important;
+  border-color: #d8d8d8 !important;
+}
+
+.pptEasyClassMessage{
+  background: #fff !important;
+  box-shadow: 0px 4px 5px -2px rgba(0,0,0,0.08), 0px 8px 12px 1px rgba(0,0,0,0.04), 0px 3px 15px 3px rgba(0,0,0,0.05) !important;
+  min-width: auto !important;
+}
+
+.pptEasyClassMessage>.el-message__icon{
+  color: #FCCF00;
+}
 </style>

+ 65 - 23
src/components/pptEasyClass/index.vue

@@ -14,15 +14,19 @@
             <img src="../../assets/icon/newIcon/return.svg" alt="" />
           </div>
           <div v-if="tcid" class="class-info-group">
-            <span class="class-label">班级</span>
+            <span class="class-label">{{ lang.ssClass }}</span>
             <span class="class-value">{{ className }}</span>
           </div>
           <div v-if="tcid" class="class-info-group">
-            <span class="class-label" v-if="inviteCode">识别码</span>
+            <span class="class-label" v-if="inviteCode">{{ lang.ssInviteCode }}</span>
             <span class="class-value" v-if="inviteCode">{{ inviteCode }}</span>
           </div>
         </div>
         <div class="pec_h_center">
+          <div class="pec_h_r_btn_refresh" :class="{ 'recording': recordedForm.status == 1 }" @click="toggleRecording" v-show="(jArray.includes(oid) || jArray.includes(org)) && courseDetail.userid == userid && tcid">
+            <svg t="1772588344140"  viewBox="0 0 1024 1024" p-id="1693" width="200" height="200"><path d="M512 1024a512.568889 512.568889 0 0 1-512-512 512.625778 512.625778 0 0 1 512-512 512.568889 512.568889 0 0 1 512 512 512.568889 512.568889 0 0 1-512 512zM512 73.329778c-241.948444 0-438.670222 196.835556-438.670222 438.670222S270.051556 950.670222 512 950.670222s438.670222-196.835556 438.670222-438.670222S753.948444 73.329778 512 73.329778z m0 686.592a245.191111 245.191111 0 1 1 0-490.382222 245.191111 245.191111 0 0 1 0 490.382222z" p-id="1694"></path></svg>
+              <span>{{ recordedForm.status == 1 ? lang.ssStopRecording2 : lang.ssRecord }}</span>
+          </div>
           <el-tooltip effect="dark" :content="courseDetail.title" placement="bottom">
             <div class="pec_h_l_title">
               <span>{{ courseDetail.title }}</span>
@@ -38,12 +42,12 @@
               inactive-color="#d8d8d8"
               @change="onFreeBrowseChange"
             ></el-switch>
-            <span class="switch-label" :class="{ active: freeBrowse }">{{ freeBrowse ? '自由浏览' : '跟随模式' }}</span>
+            <span class="switch-label" :class="{ active: freeBrowse }">{{ freeBrowse ? lang.ssFreeBrowse : lang.ssFollowMode }}</span>
           </div>
           <div class="free-browse-switch" v-if="tType == 2">
-            <span class="switch-label" :class="{ active: freeBrowse }">{{ freeBrowse ? '自由浏览' : '跟随模式' }}</span>
+            <span class="switch-label" :class="{ active: freeBrowse }">{{ freeBrowse ? lang.ssFreeBrowse : lang.ssFollowMode }}</span>
           </div>
-          <el-tooltip effect="dark" content="刷新" placement="bottom">
+          <el-tooltip effect="dark" :content="lang.ssRefresh" placement="bottom">
             <div class="refresh_icon" @click="refreshCourse">
                 <img src="../../assets/icon/course/refresh-2.svg" />
             </div>
@@ -53,12 +57,9 @@
           <div class="pec_h_r_btnArea">
             <!-- openObserveDialog -->
             <!-- toggleRecording -->
-            <div class="pec_h_r_btn_refresh" :class="{ 'recording': recordedForm.status == 1 }" @click="toggleRecording" v-show="(jArray.includes(oid) || jArray.includes(org)) && courseDetail.userid == userid && tcid">
-              <span>{{ recordedForm.status == 1 ? '结束录音' : '开始录音' }}</span>
-            </div>
             <div class="pec_h_r_btn_afterClass" @click="afterClass" v-if="courseDetail.userid == userid">
               <img src="../../assets/icon/newIcon/afterClass.svg" alt="" />
-              <span>下课</span>
+              <span>{{ lang.ssEndClass }}</span>
             </div>
             <div class="name_box" v-if="tType == 2">
               {{ userJson.username }}
@@ -125,7 +126,7 @@ export default {
       // 录音相关变量
       languageRadio: 2, // 语言选择
       recordedForm: {
-        status: 0, // 0: 未开始, 1: 录音中, 2: 暂停, 3: 结束
+        status: 1, // 0: 未开始, 1: 录音中, 2: 暂停, 3: 结束
         startTime: 0,
         endTime: 0,
         timeDuration: 0,
@@ -168,10 +169,26 @@ export default {
         const now = new Date();
         const duration = (now - new Date(this.recordingStartTime)) / 1000;
         if (duration < 5) {
-          this.$message.warning('录音时间至少需要5秒');
+          this.$message.warning(this.lang.ssRecordingTimeAtLeast5Seconds);
           return;
         }
-        this.onFinishRecordWithMicrosoft();
+        this.$confirm(this.lang.ssStopRecordingNotice, this.lang.ssStopRecordingConfirm, {
+          confirmButtonText: this.lang.ssConfirm,
+          cancelButtonText: this.lang.ssCancel,
+          confirmButtonClass:"pptEasyClassConfirmButtonText",
+          cancelButtonClass:"pptEasyClassCancelButtonText"
+        }).then(() => {
+          console.log("确定")
+          // this.$message({
+          //   dangerouslyUseHTMLString: true,
+          //   customClass:"pptEasyClassMessage",
+          //   message: '已停止录制 <p style="color:#3AB855;text-decoration: underline;cursor: pointer;float:right;margin-left:10px" target="_blank">查看结果</p>'
+          // });
+          this.onFinishRecordWithMicrosoft();
+        }).catch(() => {
+          console.log("取消")
+        });
+
       } else {
         const now = new Date();
         const duration = (now - new Date(this.recordingEndTime)) / 1000;
@@ -258,7 +275,12 @@ export default {
           this.recordedForm.status = 0;
           this.controlsStatus = 2;
           this.showGetTextLoading = false;
-          this.$message.success("已结束录音");
+          // this.$message.success("已结束录音");
+          this.$message({
+            dangerouslyUseHTMLString: true,
+            customClass:"pptEasyClassMessage",
+            message: `${this.lang.ssStoppedRecording} <p style="color:#3AB855;text-decoration: underline;cursor: pointer;float:right;margin-left:10px" target="_blank">${this.lang.ssViewRecordingResult}</p>`
+          });
           console.log("结束录音👇");
           console.log("结束录音", e);
           this.recordedForm.audioBlob.push(e.preaudio);
@@ -385,7 +407,7 @@ export default {
         })
         .catch(err => {
           console.log(err);
-          this.$message.error("获取课程数据失败");
+          this.$message.error(this.lang.ssGetCourseDataFail);
           this.pageLoading = false;
         });
     },
@@ -465,9 +487,9 @@ export default {
       }
     },
     afterClass() {
-      this.$confirm('此操作将使当前课程内所有学生退出登录,是否继续?', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
+      this.$confirm(this.lang.ssEndClassConfirm, this.lang.ssPrompt, {
+        confirmButtonText: this.lang.ssConfirm,
+        cancelButtonText: this.lang.ssCancel,
         type: 'warning'
       }).then(() => {
         this.$refs.ppt.contentWindow.PPTistStudent.forceLogout();
@@ -666,15 +688,35 @@ export default {
   margin-right: 5px;
 }
 
-.pec_h_r_btnArea>.pec_h_r_btn_refresh {
+.pec_h_center>.pec_h_r_btn_refresh {
   color: #fff;
-  background-color: #0061ff;
-  border-color: #0061ff;
+  /* background-color: #0061ff;
+  border-color: #0061ff; */
+  padding: 9px 10px;
+  margin-right: 15px;
+  border-radius: 26px;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  gap: 5px;
+  background: #FFF7F5;
+  color: #000000;
+  font-weight: 400;
+  cursor: pointer;
+  fill: #666666;
+}
+
+.pec_h_center>.pec_h_r_btn_refresh>svg{
+
+  width: 1rem;
+  height: 1rem;
 }
 
-.pec_h_r_btnArea>.pec_h_r_btn_refresh.recording {
-  background-color: #F53F3F;
-  border-color: #F53F3F;
+.pec_h_center>.pec_h_r_btn_refresh.recording {
+  /* background-color: #F53F3F;
+  border-color: #F53F3F; */
+  background: #FFF7E8;
+  fill: #FF9300;
   animation: pulse 1.5s infinite;
 }
 

+ 13 - 2
src/lang/cn.json

@@ -45,6 +45,11 @@
   "ssAiExperience": "AI体验",
   "ssAppCenter": "应用中心",
   "ssRefresh": "刷新",
+  "ssFreeBrowse": "自由浏览",
+  "ssFollowMode": "跟随模式",
+  "ssEndClass": "下课",
+  "ssGetCourseDataFail": "获取课程数据失败",
+  "ssEndClassConfirm": "此操作将使当前课程内所有学生退出登录,是否继续?",
   "ssComment": "评论",
   "ssRecord": "录制",
   "ssDownload": "下载",
@@ -884,5 +889,11 @@
   "ssWordCloudFail": "生成词云图失败",
   "ssSubmitWork": "提交作业",
   "ssLikeL":"点赞",
-  "ssCorrectOrder": "正确排序"
-}
+  "ssCorrectOrder": "正确排序",
+  "ssStopRecording2": "停止录制",
+  "ssRecordingTimeAtLeast5Seconds": "录音时间至少需要5秒",
+  "ssStopRecordingNotice": "停止录制后,录音文件将发送至课堂分析应用。",
+  "ssStopRecordingConfirm": "确定停止课堂录制?",
+  "ssStoppedRecording": "已停止录制",
+  "ssViewRecordingResult": "查看结果"
+}

+ 12 - 1
src/lang/en.json

@@ -45,6 +45,11 @@
   "ssAiExperience": "AI Experience",
   "ssAppCenter": "App Center",
   "ssRefresh": "Refresh",
+  "ssFreeBrowse": "Free Browse",
+  "ssFollowMode": "Follow Mode",
+  "ssEndClass": "End Class",
+  "ssGetCourseDataFail": "Failed to get course data",
+  "ssEndClassConfirm": "This will log out all students in the current course. Continue?",
   "ssComment": "Comment",
   "ssRecord": "Record",
   "ssDownload": "Download",
@@ -882,5 +887,11 @@
   "ssWordCloudFail": "Failed to generate word cloud",
   "ssSubmitWork": "Submit Work",
   "ssLikeL":"Like",
-  "ssCorrectOrder": "Correct Order"
+  "ssCorrectOrder": "Correct Order",
+  "ssStopRecording2": "Stop Recording",
+  "ssRecordingTimeAtLeast5Seconds": "The recording time must be at least 5 seconds",
+  "ssStopRecordingNotice": "After stopping the recording, the file will be sent to the classroom analysis application.",
+  "ssStopRecordingConfirm": "Are you sure you want to stop classroom recording?",
+  "ssStoppedRecording": "Recording stopped",
+  "ssViewRecordingResult": "View result"
 }

+ 12 - 1
src/lang/hk.json

@@ -45,6 +45,11 @@
   "ssAiExperience": "AI體驗",
   "ssAppCenter": "應用中心",
   "ssRefresh": "刷新",
+  "ssFreeBrowse": "自由瀏覽",
+  "ssFollowMode": "跟隨模式",
+  "ssEndClass": "下課",
+  "ssGetCourseDataFail": "獲取課程數據失敗",
+  "ssEndClassConfirm": "此操作將使當前課程內所有學生退出登錄,是否繼續?",
   "ssComment": "評論",
   "ssRecord": "錄製",
   "ssDownload": "下載",
@@ -882,5 +887,11 @@
   "ssWordCloudFail": "生成詞雲圖失敗",
   "ssSubmitWork": "提交作業",
   "ssLikeL":"點贊",
-  "ssCorrectOrder": "正確排序"
+  "ssCorrectOrder": "正確排序",
+  "ssStopRecording2": "停止錄製",
+  "ssRecordingTimeAtLeast5Seconds": "錄音時間至少需要5秒",
+  "ssStopRecordingNotice": "停止錄製後,錄音檔案將發送至課堂分析應用。",
+  "ssStopRecordingConfirm": "確定停止課堂錄製?",
+  "ssStoppedRecording": "已停止錄製",
+  "ssViewRecordingResult": "查看結果"
 }

Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor