办学质量监测教学评价系统
shenrongliang
2025-06-13 11d86cc6c26bb4f709e407acadf4805c2024e79f
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
<script setup lang="ts">
import {watch,ref  } from 'vue'
import {SunoMedia} from '@/api/sunoStore';
import { homeStore } from '@/store';
import { NImage,NEmpty } from 'naive-ui';
import {SvgIcon} from '@/components/common'
 
const pObj= ref<SunoMedia>()
watch(()=>homeStore.myData.act, (n)=>{
    if(n=='goPlay'){
        let data = homeStore.myData.actData 
        pObj.value = data as SunoMedia
        
 
    }
})
</script>
<template>
<div v-if="pObj">
    <div class="w-full  relative h-[300px]">
        <NImage :src="pObj.image_large_url" class="w-full h-full">
             <template #placeholder>
                      <div class="w-full h-full justify-center items-center flex"  >
                       <SvgIcon icon="line-md:downloading-loop" class="text-[60px] text-green-300"   ></SvgIcon>
                      </div>
                </template>
        </NImage>
        <div class="absolute bottom-0 right-0 p-2 text-white text-right"> 
            <h2 class=" text-xl">{{ pObj.title }}</h2>
            <div class="">{{$t('suno.style')}}:{{ pObj.metadata.tags }}</div>
        </div>
    </div>
   
    <pre class=" text-wrap p-2">{{ pObj.metadata.prompt }}</pre>
</div>
<div class=" flex w-full h-full justify-center items-center" v-else >
    <n-empty :description="$t('suno.emputy')" ></n-empty>
</div>
 
</template>