Kaynağa Gözat

指法预览

liushengqiang 1 yıl önce
ebeveyn
işleme
d46b388865
1 değiştirilmiş dosya ile 15 ekleme ve 1 silme
  1. 15 1
      src/views/xiaoku-music/index.tsx

+ 15 - 1
src/views/xiaoku-music/index.tsx

@@ -5,6 +5,7 @@ import {
   defineComponent,
   nextTick,
   onMounted,
+  onUnmounted,
   reactive,
   ref
 } from 'vue';
@@ -70,7 +71,8 @@ export default defineComponent({
       showPlayer: false,
       previewModal: false,
       showPreivew: false,
-      previewUrl: ''
+      previewUrl: '',
+      showCloseBtn: true
     });
     const showGuide = ref(false);
     const userStore = useUserStore();
@@ -126,6 +128,13 @@ export default defineComponent({
       getList();
     };
 
+    // ifram事件处理
+    const iframeHandle = (ev: MessageEvent) => {
+      if (ev.data?.api === 'api_fingerPreView'){
+        data.showCloseBtn = !ev.data.state
+      }
+    };
+
     onMounted(async () => {
       getSubjects();
       await getList();
@@ -137,7 +146,11 @@ export default defineComponent({
       nextTick(() => {
         obv.observe(spinRef.value);
       });
+      window.addEventListener('message', iframeHandle);
     });
+    onUnmounted(() => {
+      window.removeEventListener('message', iframeHandle);
+    })
     /** 查看收藏状态 */
     const getFavitor = async (item: any) => {
       const res = await api_materialFavoriteStatus({
@@ -463,6 +476,7 @@ export default defineComponent({
           displayDirective="show">
           <NSpin show={data.showPreivew} style="--n-opacity-spinning: 1;">
             <img
+              style={{display: data.showCloseBtn ? '' : 'none'}}
               src={icon_close}
               class={styles.previewClose}
               onClick={() => {