浏览代码

feat: 根据app消息控制评测上传按钮是否显示

TIANYONG 1 年之前
父节点
当前提交
6eb84b8ce3

+ 2 - 0
src/pages/detail/state.ts

@@ -86,6 +86,8 @@ const state = reactive({
   isNeedRefreshSection: false,
   /** 是否是课后训练模式 */
   isLessonTrain: false,
+  /** 是否隐藏评测报告弹窗,保存演奏按钮,默认不隐藏 */
+  isHideEvaluatReportSaveBtn: false,    
 })
 
 export const isRhythmicExercises = () => {

+ 22 - 0
src/subpages/colexiu/buttons/evaluating.tsx

@@ -9,6 +9,7 @@ import {
   postMessage,
   promisefiyPostMessage,
   removeListenerMessage,
+  CallBack
 } from '/src/helpers/native-message'
 import { browser } from '/src/helpers/utils'
 import runtime, * as RuntimeUtils from '/src/pages/detail/runtime'
@@ -456,6 +457,7 @@ const sendResult = (evt?: IPostMessage) => {
     const data = evt?.content?.body
     if (evt?.content.header.commond === 'overall') {
       // console.log(evt)
+      detailState.isHideEvaluatReportSaveBtn = false;
       Toast.clear()
       endResult.value = data
       evaluatingShow.value = true
@@ -529,6 +531,24 @@ const cloudMetronome = (evt: any) => {
   startButtonShow.value = true
 }
 
+/** 监听评测弹窗是否隐藏保存演奏按钮 */
+const hideComplexButton = (callback: CallBack, listen?: boolean) => {
+	if (listen) {
+		listenerMessage("hideComplexButton", callback);
+	} else {
+		removeListenerMessage("hideComplexButton", callback);
+	}
+};
+
+// 隐藏存演奏按钮
+const handleComplexButton = (res?: IPostMessage) => {
+	console.log('监听是否隐藏保存按钮', res)
+	if (res?.content) {
+		const { header, body } = res.content;
+		detailState.isHideEvaluatReportSaveBtn = true
+	}
+};
+
 export default defineComponent({
   name: 'ColexiuButtonEvaluating',
   setup(props, { expose }) {
@@ -551,6 +571,7 @@ export default defineComponent({
       listenerMessage('cloudTimeUpdae', onProgress)
       RuntimeUtils.event.on('tickDestroy', cloudMetronome)
       RuntimeUtils.event.on('tickEnd', evaluatStart)
+      hideComplexButton(handleComplexButton, true);
     })
 
     onBeforeUnmount(() => {
@@ -562,6 +583,7 @@ export default defineComponent({
       removeListenerMessage('sendResult', sendResult)
       // removeListenerMessage('cancelEvaluating', cancelTheEvaluation)
       removeListenerMessage('cloudTimeUpdae', onProgress)
+      hideComplexButton(() => {}, false);
       RuntimeUtils.event.off('tickEnd', evaluatStart)
     })
 

+ 2 - 2
src/subpages/colexiu/popups/evaluating/content.tsx

@@ -248,7 +248,7 @@ export default defineComponent({
                 </div>
               </div>
 
-              {isUnitTest ? null : (
+              {isUnitTest ? null : !detailState.isHideEvaluatReportSaveBtn ? (
                 <div class={styles.rigthBtns}>
                   <div class={styles.skepBtn} onClick={() => emit('upload')}>
                     <img src={iconUpload} />
@@ -259,7 +259,7 @@ export default defineComponent({
                   分享
                 </div> */}
                 </div>
-              )}
+              ) : null}
             </div>
             <Popup
               teleport="body"

+ 4 - 2
src/subpages/colexiu/popups/evaluating/index.tsx

@@ -8,6 +8,7 @@ import Content from './content'
 import SettingState from '/src/pages/detail/setting-state'
 import { IPostMessage, postMessage } from '/src/helpers/native-message'
 import detailState from '/src/pages/detail/state'
+import { browser } from '/src/helpers/utils'
 export const evaluatingShow = ref<boolean>(false)
 const open = ref(false)
 
@@ -90,8 +91,9 @@ export default defineComponent({
 
     /** 评测结果按钮处理 */
     const handleEvaluatResult = () => {
-      // 如果音频是midi格式,走之前的逻辑
-      if (detailState.isAppPlay) {
+      const browserInfo = browser()
+      // 如果音频是midi格式,或者非学生端,走之前的逻辑
+      if (detailState.isAppPlay || !browserInfo.isStudent) {
         confirmShow.value = true
       } else {
         if (props.data?.recordIdStr) {