Browse Source

Merge branch 'gyt-feature-tianyong' into online

TIANYONG 1 year ago
parent
commit
927495dd48

+ 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)
     })
 

+ 6 - 6
src/subpages/colexiu/index.tsx

@@ -289,12 +289,12 @@ export default defineComponent({
       nextTick(() => {
         useFee()
         // 给app传伴奏URL
-        // postMessage({
-        //   api: 'cloudAccompanyMessage',
-        //   content: {
-        //     accompanyUrl: runtime.songs.background,
-        //   },
-        // })
+        postMessage({
+          api: 'cloudAccompanyMessage',
+          content: {
+            accompanyUrl: runtime.songs.background,
+          },
+        })
 
         if (search.chenkuang) {
           RuntimeUtils.refreshView();``

+ 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"

+ 29 - 1
src/subpages/colexiu/popups/evaluating/index.tsx

@@ -7,6 +7,8 @@ import iconConfirm from './icons/confirm.png'
 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)
 
@@ -25,6 +27,14 @@ export type ResultContent = {
   score: number
 }
 
+/** 合成音频传伴奏弹窗 */
+const api_openAdjustRecording = (content: any) => {
+	postMessage({
+		api: "openAdjustRecording",
+		content,
+	});
+};
+
 //效音组件
 export default defineComponent({
   name: 'ColexiuEvaluating',
@@ -79,6 +89,24 @@ export default defineComponent({
       }
     }
 
+    /** 评测结果按钮处理 */
+    const handleEvaluatResult = () => {
+      const browserInfo = browser()
+      // 如果音频是midi格式,或者非学生端,走之前的逻辑
+      if (detailState.isAppPlay || !browserInfo.isStudent) {
+        confirmShow.value = true
+      } else {
+        if (props.data?.recordIdStr) {
+          // 上传云端
+          api_openAdjustRecording({
+            recordId: String(props.data?.recordIdStr),
+            title: detailState.activeDetail?.musicSheetName || "曲谱演奏",
+            coverImg: detailState.activeDetail?.titleImg || '',
+          });
+        }
+      }
+    }
+
     return () => {
       return (
         <div>
@@ -93,7 +121,7 @@ export default defineComponent({
             {open && (
               <Content
                 data={props.data}
-                onUpload={() => (confirmShow.value = true)}
+                onUpload={handleEvaluatResult}
                 onRestart={() => (evaluatingShow.value = false)}
               />
             )}