TIANYONG 6 місяців тому
батько
коміт
33118c95e4

+ 32 - 0
src/helpers/customMusicScore.ts

@@ -236,6 +236,38 @@ export const moveGracePosition = (needTrans?: boolean) => {
 	}
 }
 
+// 处理一行谱高度太高的问题
+export const limitSingleSvgPageHeight = () => {
+	if (state.isSingleLine && !state.isCombineRender) {
+		// 获取生成的 SVG 元素
+		const osmdSvgPage = document.getElementById('osmdSvgPage1');
+		if (osmdSvgPage) {
+			// 获取当前的 viewBox 值
+			const viewBox = osmdSvgPage.getAttribute('viewBox');
+			if (viewBox) {
+				// 分割 viewBox 的值,viewBox 形式为 "min-x min-y width height"
+				const viewBoxValues = viewBox.split(' ');
+				// 修改 viewBox 高度
+				const newHeight = 300;
+				const staffHeight = osmdSvgPage.querySelector('.staffline')?.getBoundingClientRect()?.height;
+				if (viewBoxValues[3] > 300 && staffHeight && staffHeight < 240) {
+					const originY = state.isSimplePage ? 0 : 0.25;
+					let transY = (240 - staffHeight * state.zoom) / staffHeight;
+					transY = state.isSimplePage ? transY / 2 : transY;
+					const realY = (originY + transY) * 100 + '%';
+					viewBoxValues[3] = newHeight; // 这是第四个值,代表高度
+					// 设置新的 viewBox 值
+					osmdSvgPage.setAttribute('viewBox', viewBoxValues.join(' '));
+					osmdSvgPage.setAttribute('height','240');
+					// @ts-ignore
+					osmdSvgPage.querySelector('.staffline').style.transform = `translateY(-${realY})`
+				}
+			}
+		}
+	}
+
+}
+
 // 谱面优化
 export const resetFormate = () => {
 	container.value = document.getElementById('scrollContainer')

+ 1 - 1
src/page-instrument/view-evaluat-report/component/share-top/index.tsx

@@ -83,7 +83,7 @@ export default defineComponent({
 
     // 资源类型
     const isPad = computed(() => {
-      return navigator?.userAgent?.includes("UAWEIVRD-W09") || browserInfo?.iPad;
+      return navigator?.userAgent?.includes("UAWEIVRD-W09") || browserInfo?.iPad || browserInfo?.isTablet;
     });
 
 		const openAudioAndVideo = () => {

+ 32 - 0
src/utils/index.ts

@@ -4,6 +4,33 @@ import { getQuery } from "./queryString";
 /** 获取浏览器信息 */
 export const browser = () => {
 	const u = navigator.userAgent;
+	const isAndroid = /(?:Android)/.test(u);
+  	const isFireFox = /(?:Firefox)/.test(u);
+	function isIpadFun() {
+	const ua = window.navigator.userAgent;
+	let IsIPad = false;
+	if (/ipad/i.test(ua)) {
+		IsIPad = true;
+	}
+	// iPad from IOS13
+	const macApp = ua.match(/Macintosh/i) != null;
+	if (macApp) {
+		// need to distinguish between Macbook and iPad
+		const canvas = document.createElement('canvas');
+		if (canvas != null) {
+		const context: any =
+			canvas.getContext('webgl') || canvas.getContext('experimental-webgl');
+		if (context) {
+			const info = context.getExtension('WEBGL_debug_renderer_info');
+			if (info) {
+			const renderer = context.getParameter(info.UNMASKED_RENDERER_WEBGL);
+			if (renderer.indexOf('Apple') != -1) IsIPad = true;
+			}
+		}
+		}
+	}
+	return IsIPad;
+	}	
 	return {
 		trident: u.indexOf("Trident") > -1, //IE内核
 		presto: u.indexOf("Presto") > -1, //opera内核
@@ -24,6 +51,11 @@ export const browser = () => {
 		isStudent: u.indexOf("ORCHESTRASTUDENT") > -1 || u.includes("COLEXIUSTUDENT"),
 		isSchool: u.indexOf("ORCHESTRASCHOOL") > -1,
 		iPad: u.indexOf("iPad") > -1, //是否iPad
+		isTablet:
+		/(?:iPad|PlayBook)/.test(u) ||
+		(isAndroid && !/(?:Mobile)/.test(u)) ||
+		(isFireFox && /(?:Tablet)/.test(u)) ||
+		isIpadFun(),
 		webApp: u.indexOf("Safari") == -1, //是否web应该程序,没有头部与底部
 		weixin: u.indexOf("MicroMessenger") > -1, //是否微信 (2015-01-22新增)
 		alipay: u.indexOf("AlipayClient") > -1, //是否支付宝

+ 1 - 1
src/view/evaluating/index.tsx

@@ -633,6 +633,7 @@ export const handleViewReport = (key: "recordId" | "recordIdStr", type: "gym" |
     statusBarTextColor: false,
     isOpenLight: true,
     c_orientation: 0,
+    showLoadingAnim: true
   });
 };
 
@@ -651,7 +652,6 @@ const handleAccompanyError = (res?: IPostMessage) => {
   if (res?.content) {
     const { type, reson } = res.content;
     state.playState = 'paused'
-    evaluatingData.startBegin = false
     switch (type) {
       case "enterBackground":
       // App退到后台

+ 1 - 1
src/view/music-score/index.tsx

@@ -7,7 +7,7 @@ import Selection from "../selection";
 import styles from "./index.module.less";
 import queryString from "query-string";
 import { getGradualLengthByXml } from "/src/helpers/calcSpeed";
-import { resetFormate, resetGivenFormate, setGlobalMusicSheet } from "/src/helpers/customMusicScore"
+import { resetFormate, resetGivenFormate, setGlobalMusicSheet, limitSingleSvgPageHeight } from "/src/helpers/customMusicScore"
 import { setGlobalData } from "/src/utils";
 import Loading from "/src/view/audio-list/loading"
 import { storeData } from "/src/store";