Procházet zdrojové kódy

Merge branch 'hqyDevNewVersion' of http://git.dayaedu.com/liushengqiang/music-score into feature-tianyong-newVersion

TIANYONG před 10 měsíci
rodič
revize
8836a4a970

+ 1 - 1
src/page-instrument/custom-plugins/helper-model/recommendation/index.tsx

@@ -113,7 +113,7 @@ export default defineComponent({
 		}
 		return () => (
 			<div class={[styles.recommendation,styles[state.modeType]]}>
-				<div class={styles.head}>
+				<div class={[styles.head, "top_drag"]}>
 					<img class={styles.headTit} src={headImg("recommendationName.png")} />
 					<img class={styles.closeImg} src={headImg("closeImg.png")} onClick={()=>{ emit("close") }} />
 				</div>

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

@@ -528,6 +528,10 @@ export default defineComponent({
       if (query.workRecord) {
         return;
       }
+      // 总控平台 隐藏返回按钮
+      if (query.isCbs) {
+        headTopData.showBack = false;
+      } 
       /** 作业模式 end */
       if (state.defaultModeType == 1) {
         headTopData.handleChangeModeType("practise");
@@ -591,7 +595,13 @@ export default defineComponent({
             styleDrag: { value: null },
           }
         : useDrag([`${parentClassName} .top_drag`, `${parentClassName} .bom_drag`], parentClassName, toRef(headTopData, "settingMode"), userId);
-
+    const speedClassName = "speedBoxClass_drag";
+    const speedInfo =
+      state.platform !== IPlatform.PC
+        ? {
+            styleDrag: { value: null },
+          }
+        : useDrag([`${speedClassName} .top_drag`, `${speedClassName} .bom_drag`], speedClassName, toRef(headData, "speedShow"), userId);
     onMounted(() => {
       getQueryModelSetModelType();
       window.addEventListener("message", changePlay);
@@ -876,7 +886,7 @@ export default defineComponent({
                   </div>
                 </div>
                 {
-                  <Popup v-model:show={headData.speedShow} class="popup-custom van-scale center-closeBtn settingBoxClass_drag" transition="van-scale" teleport="body" style={positionInfo.styleDrag.value} overlay-style={{ background: "rgba(0, 0, 0, 0.3)" }}>
+                  <Popup v-model:show={headData.speedShow} class="popup-custom van-scale center-closeBtn speedBoxClass_drag" transition="van-scale" teleport="body" style={speedInfo.styleDrag.value} overlay-style={{ background: "rgba(0, 0, 0, 0.3)" }}>
                     <Speed />
                     {state.platform === IPlatform.PC && <Dragbom showGuide={!state.guideInfo?.teacherDrag} onGuideDone={handleGuide} />}
                   </Popup>

+ 1 - 1
src/page-instrument/header-top/settting/index.tsx

@@ -66,7 +66,7 @@ export default defineComponent({
 
 		return () => (
 			<div class={[styles.settting, styles[state.modeType]]}>
-                <div class={styles.head}>
+                <div class={[styles.head, "top_drag"]}>
 					<img class={styles.headTit} src={headImg("settingName.png")} />
 					<img class={styles.closeImg} src={headImg("closeImg.png")} onClick={()=>{ headTopData.settingMode = false }} />
 				</div>

+ 1 - 1
src/page-instrument/header-top/speed/index.tsx

@@ -106,7 +106,7 @@ export default defineComponent({
 		};
 		return () => (
 			<div class={[styles.speedContainer, styles[state.modeType]]}>
-				<div class={styles.head}>
+				<div class={[styles.head, "top_drag"]}>
 					<img class={styles.headTit} src={headImg("headTit.png")} />
 					<img class={styles.closeImg} src={headImg("closeImg.png")} onClick={()=>{ headData.speedShow = false }} />
 				</div>

+ 0 - 1
src/page-instrument/view-detail/index.module.less

@@ -51,7 +51,6 @@
         width: 100%;
         height: 100%;
         object-fit: cover; /* 保持宽高比 */
-        z-index: -1;
         &.practise{
             background-color: #213793;
         }        

+ 1 - 2
src/view/plugins/toggleMusicSheet/choosePartName/index.tsx

@@ -54,11 +54,10 @@ export default defineComponent({
 
     return () => (
       <div class={[styles.container, state.platform === IPlatform.PC && styles.pcContainer, styles[state.modeType]]}>
-        <div class={styles.head}>
+        <div class={[styles.head, "top_drag"]}>
           <img class={styles.headTit} src={changeName} />
           <img class={styles.closeImg} src={headImg("closeImg.png")} onClick={() => emit("close")} />
         </div>
-        { state.platform === IPlatform.PC && <div class={[!state.guideInfo?.teacherDrag && styles.pcPartTopZIndex ,styles.pcPartTop,'top_drag']}></div> }
         <div class={styles.pickerCon}>
           <div class={styles.pickerBox}>
             <Picker

+ 23 - 12
src/view/plugins/useDrag/index.ts

@@ -105,19 +105,22 @@ export default function useDrag(
 
 // 拖动
 function drag(el: HTMLElement, parentElement: HTMLElement, pos: Ref<posType>) {
-  function mousedown(e: MouseEvent) {
+  function onDown(e: MouseEvent | TouchEvent) {
+    const isTouchEv = isTouchEvent(e);
+    const event = isTouchEv ? e.touches[0] : e;
     const parentElementRect = parentElement.getBoundingClientRect();
-    const downX = e.clientX;
-    const downY = e.clientY;
+    const downX = event.clientX;
+    const downY = event.clientY;
     const clientWidth = document.documentElement.clientWidth;
     const clientHeight = document.documentElement.clientHeight;
     const maxLeft = clientWidth - parentElementRect.width;
     const maxTop = clientHeight - parentElementRect.height;
     const minLeft = 0;
     const minTop = 0;
-    function onMousemove(e: MouseEvent) {
-      let moveX = parentElementRect.left + (e.clientX - downX);
-      let moveY = parentElementRect.top + (e.clientY - downY);
+    function onMove(e: MouseEvent | TouchEvent) {
+      const event = isTouchEvent(e) ? e.touches[0] : e;
+      let moveX = parentElementRect.left + (event.clientX - downX);
+      let moveY = parentElementRect.top + (event.clientY - downY);
       moveX = moveX < minLeft ? minLeft : moveX > maxLeft ? maxLeft : moveX;
       moveY = moveY < minTop ? minTop : moveY > maxTop ? maxTop : moveY;
       pos.value = {
@@ -125,14 +128,22 @@ function drag(el: HTMLElement, parentElement: HTMLElement, pos: Ref<posType>) {
         left: moveX
       };
     }
-    function onMouseup() {
-      document.removeEventListener('mousemove', onMousemove);
-      document.removeEventListener('mouseup', onMouseup);
+    function onUp() {
+      document.removeEventListener(
+        isTouchEv ? 'touchmove' : 'mousemove',
+        onMove
+      );
+      document.removeEventListener(isTouchEv ? 'touchend' : 'mouseup', onUp);
     }
-    document.addEventListener('mousemove', onMousemove);
-    document.addEventListener('mouseup', onMouseup);
+    document.addEventListener(isTouchEv ? 'touchmove' : 'mousemove', onMove);
+    document.addEventListener(isTouchEv ? 'touchend' : 'mouseup', onUp);
   }
-  el.addEventListener('mousedown', mousedown);
+  el.addEventListener('mousedown', onDown);
+  el.addEventListener('touchstart', onDown);
+}
+
+function isTouchEvent(e: MouseEvent | TouchEvent): e is TouchEvent {
+  return window.TouchEvent && e instanceof window.TouchEvent;
 }
 
 // 缓存

+ 5 - 1
src/view/selection/index.module.less

@@ -212,7 +212,11 @@
         height: 38px;
     }
 }
-
+.isPad{
+    .followTipUp, .followTipDown {
+        transform: translate(-50%) scale(0.7);
+    }
+}
 .followTipUp {
     i {
         font-style: normal;

+ 4 - 0
src/view/selection/index.tsx

@@ -11,6 +11,7 @@ import { getQuery } from "/src/utils/queryString";
 import IntonationDown from "./imgs/pitchLow.png"
 import IntonationUp from "./imgs/pitchHigh.png"
 import MultipleRestMeasures from "./multipleRestMeasures"
+import { browser } from "../../utils";
 
 const selectData = reactive({
 	notes: [] as any[],
@@ -207,6 +208,8 @@ export const recalculateNoteData = () => {
 export default defineComponent({
 	name: "selection",
 	setup() {
+		const browsInfo = browser();
+		const isPad =  navigator?.userAgent?.includes("UAWEIVRD-W09") || browsInfo?.iPad || browsInfo.isTablet;
 		const route = useRoute();
 		const query: any = {
 			...getQuery(),
@@ -282,6 +285,7 @@ export default defineComponent({
 					id="selectionBox"
 					class={[
 						styles.selectionContainer,
+						isPad && styles.isPad
 					]}
 					onClick={(e: Event) => e.stopPropagation()}
 				>