办学质量监测教学评价系统
康鲁杰
2 小时以前 38a626b58763f903f5580d49854a420681925092
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<script setup lang="ts">
import { ref,onMounted,onUnmounted } from "vue";
//import { CavansDemo } from "@/views/aidutu";
const pp= defineProps<{chat?:Chat.Chat,base64:string}>() 
const st = ref({q:''}); 
const ifdiv =ref<HTMLIFrameElement>();
const emits = defineEmits(['success']);
 
onMounted( ()=>{ 
    // iframe.contentWindow && iframe.contentWindow.postMessage( JSON.stringify({act:'del',obj }), '*');
    const data = {
      instance_id: `1`,//固定值
      custom_id: `2`,//固定值
      channel_id: `3`,//固定值
      guild_id: `4`,//固定值
      frame_id: '5', //固定值
      platform: 'desktop', //固定值
      prompt: pp.chat?.text , // 按实际传入
      img_type: 'png'// 按实际传入
     // ,img_info:''
      ,img_info: JSON.stringify({"image_url":  '' ,"prompt":"sunglasses"})  // 按实际传入
      }
    st.value.q=  Object.keys(data).map(key =>key + '=' + encodeURIComponent(data[key])).join('&')
    window.addEventListener('message', messageFun )
})
onUnmounted(()=>{
   window.removeEventListener('message', messageFun )
})
 
//收到iframe的消息
const messageFun=(e:MessageEvent)=>{
   //console.log('我收到消息了', e.data );
   if( !e?.data) return ;
   const obj= JSON.parse( e.data );
   emits('success', obj );
}
const loadOk= (e:Event)=>{
   //console.log('loadOk','good news' );
    const iframe= e.target as HTMLIFrameElement;
    iframe.contentWindow && iframe.contentWindow.postMessage( JSON.stringify({act:'go',img_info: {"image_url":  pp.base64==''?pp.chat?.opt?.imageUrl : pp.base64 ,"prompt":'' }  }), '*');// pp.chat?.text
}
</script>
<template>
    <!-- <iframe @load="loadOk" ref="ifdiv" :src="`./mitf/index.html?${st.q}`"  class=" h-[80vh] w-full" style="border-width: 0px; border-style: none; overflow: hidden;" v-if="st.q"></iframe> -->
    <iframe @load="loadOk" ref="ifdiv" :src="`https://static.aitutu.cc/res/mitf/index.html?${st.q}`"  class=" h-[80vh] w-full" style="border-width: 0px; border-style: none; overflow: hidden;" v-if="st.q"></iframe>
 
</template>