|
@@ -1,9 +1,11 @@
|
|
|
<template>
|
|
|
+ <div v-if="isDrag" class="metronomeMinConMask"></div>
|
|
|
<div
|
|
|
v-if="windowMet"
|
|
|
class="metronomeMinCon"
|
|
|
:class="[metronomeMinConBoxClass]"
|
|
|
:style="metronomeMinConDragData.styleDrag.value"
|
|
|
+ @mousedown="hanldeMetronomeMinmousedown"
|
|
|
>
|
|
|
<div class="topMetronomeMin">
|
|
|
<img
|
|
@@ -75,7 +77,7 @@
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
import { NModal } from 'naive-ui';
|
|
|
-import { computed, ref, watch } from 'vue';
|
|
|
+import { computed, ref, watch, onMounted, onUnmounted} from 'vue';
|
|
|
import Metronome from './Metronome.vue';
|
|
|
import { useUserStore } from '@/store/modules/users';
|
|
|
import useDrag from '@/hooks/useDrag';
|
|
@@ -107,7 +109,18 @@ watch(metronomeShow, () => {
|
|
|
});
|
|
|
const playState = ref<'play' | 'pause'>('pause');
|
|
|
const rotateWagTime = ref((60 * 2) / 90);
|
|
|
-
|
|
|
+onMounted(() => {
|
|
|
+ document.addEventListener('visibilitychange', documentHidePause);
|
|
|
+});
|
|
|
+onUnmounted(() => {
|
|
|
+ document.removeEventListener('visibilitychange', documentHidePause);
|
|
|
+});
|
|
|
+function documentHidePause() {
|
|
|
+ if (document.visibilityState === 'hidden') {
|
|
|
+ metronomeDom.value?.pausePlay();
|
|
|
+ playState.value = 'pause';
|
|
|
+ }
|
|
|
+}
|
|
|
function handleCloseMet() {
|
|
|
metronomeShow.value = false;
|
|
|
windowMet.value = false;
|
|
@@ -132,9 +145,26 @@ const metronomeMinConDragData = useDrag(
|
|
|
windowMet,
|
|
|
users.info.id
|
|
|
);
|
|
|
+const isDrag = ref(false); // 拖动metronomeMin的时候防止iframe
|
|
|
+function hanldeMetronomeMinmousedown() {
|
|
|
+ isDrag.value = true;
|
|
|
+ document.addEventListener('mouseup', onMouseup);
|
|
|
+ function onMouseup() {
|
|
|
+ isDrag.value = false;
|
|
|
+ document.removeEventListener('mouseup', onMouseup);
|
|
|
+ }
|
|
|
+}
|
|
|
</script>
|
|
|
|
|
|
<style lang="less" scoped>
|
|
|
+.metronomeMinConMask {
|
|
|
+ position: fixed;
|
|
|
+ width: 100vw;
|
|
|
+ height: 100vh;
|
|
|
+ top: 0;
|
|
|
+ left: 0;
|
|
|
+ z-index: 9;
|
|
|
+}
|
|
|
.metronomeMinCon {
|
|
|
position: fixed;
|
|
|
left: 12Px;
|