Browse Source

学生端--训练--进入曲谱播放页,播放后,点击左上角返回按钮,播放时长未记录

liushengqiang 2 years ago
parent
commit
e84b6bd289

+ 4 - 0
src/page-instrument/custom-plugins/work-ealuating/index.tsx

@@ -13,6 +13,10 @@ export default defineComponent({
 			type: Object,
 			default: () => ({}),
 		},
+		pageShow:{
+			type: Boolean,
+			default: true,
+		}
 	},
 	setup(props) {
 		const query = getQuery();

+ 13 - 0
src/page-instrument/custom-plugins/work-home/index.tsx

@@ -11,6 +11,10 @@ export default defineComponent({
 			type: Object,
 			default: () => ({}),
 		},
+		pageShow: {
+			type: Boolean,
+			default: true,
+		},
 	},
 	emits: ["change"],
 	setup(props) {
@@ -83,6 +87,15 @@ export default defineComponent({
 				}
 			}
 		);
+		watch(
+			() => props.pageShow,
+			(val) => {
+				if (!val && state.playState === "play") {
+					console.log('退出')
+					addHomeworkRecored();
+				}
+			}
+		);
 		onMounted(() => {
 			handleHide();
 			getWorkData();

+ 9 - 3
src/page-instrument/custom-plugins/work-index/index.tsx

@@ -7,7 +7,13 @@ import { headTopData } from "../../header-top";
 
 export default defineComponent({
 	name: "workIndex",
-	setup() {
+	props: {
+		pageShow: {
+			type: Boolean,
+			default: true,
+		}
+	},
+	setup(props) {
 		const query = getQuery();
 		const data = reactive({
 			/** 作业类型:练习PRACTICE, 评测EVALUATION */
@@ -33,9 +39,9 @@ export default defineComponent({
 		return () => (
 			<>
 				{/* 课后训练作业 */}
-				{data.trainingType === "PRACTICE" && <WorkHome workeData={data.worke} />}
+				{data.trainingType === "PRACTICE" && <WorkHome workeData={data.worke} pageShow={props.pageShow} />}
 				{/* 评测作业 */}
-				{data.trainingType === "EVALUATION" && <WorkEaluating workeData={data.worke} />}
+				{data.trainingType === "EVALUATION" && <WorkEaluating workeData={data.worke} pageShow={props.pageShow} />}
 			</>
 		);
 	},

+ 3 - 2
src/page-instrument/header-top/index.tsx

@@ -58,7 +58,8 @@ export const headData = reactive({
 
 export default defineComponent({
 	name: "header-top",
-	setup() {
+	emits: ["close"],
+	setup(props, { emit }) {
 		/** 设置按钮 */
 		const settingBtn = computed(() => {
 			// 音频播放中 禁用
@@ -209,6 +210,7 @@ export default defineComponent({
 
 		/** 返回 */
 		const handleBack = () => {
+			emit('close')
 			// 不在APP中,
 			if (!storeData.isApp) {
 				window.close();
@@ -224,7 +226,6 @@ export default defineComponent({
 			if (query.workRecord) {
 				return;
 			}
-			console.error("🚀 ~ query.workRecord:", query.workRecord)
 			/** 作业模式 end */
 			if (query.modelType) {
 				if (query.modelType === "practise") {

+ 4 - 2
src/page-instrument/view-detail/index.tsx

@@ -56,6 +56,8 @@ export default defineComponent({
 			skeletonLoading: true,
 			paddingLeft: "",
 			headerHide: false,
+			/** 页面显示 */
+			pageShow: true
 		});
 		const getAPPData = async () => {
 			const screenData = await isSpecialShapedScreen();
@@ -295,7 +297,7 @@ export default defineComponent({
 					)}
 				</Transition>
 				<div class={[styles.headHeight, detailData.headerHide && styles.headHide]}>
-					{state.musicRendered && <HeaderTop />}
+					{state.musicRendered && <HeaderTop onClose={() => detailData.pageShow = false} />}
 				</div>
 				<div
 					id="scrollContainer"
@@ -347,7 +349,7 @@ export default defineComponent({
 						{/* 统计训练时长 */}
 						<RecordingTime />
 						{/* 作业 */}
-						{query.workRecord && <WorkIndex />}
+						{query.workRecord && <WorkIndex pageShow={detailData.pageShow} />}
 					</>
 				)}
 			</div>