|
@@ -9,6 +9,7 @@ import { useRoute } from 'vue-router';
|
|
|
import AudioPlayer from '../components/audio-player';
|
|
|
import banner from '../images/banner1.png';
|
|
|
import musicBg from '../images/music_bg.png';
|
|
|
+import MEmpty from '@/components/m-empty';
|
|
|
|
|
|
export default defineComponent({
|
|
|
name: 'instrument-detail',
|
|
@@ -19,10 +20,12 @@ export default defineComponent({
|
|
|
background: 'transparent',
|
|
|
color: '#fff',
|
|
|
detail: {} as any,
|
|
|
- musicList: [] as any
|
|
|
+ musicList: [] as any,
|
|
|
+ loading: false
|
|
|
});
|
|
|
|
|
|
const getDetail = async () => {
|
|
|
+ forms.loading = true;
|
|
|
try {
|
|
|
const { data } = await request.get(
|
|
|
'/edu-app/knowledgeWiki/detail/' + route.query.id
|
|
@@ -40,6 +43,7 @@ export default defineComponent({
|
|
|
};
|
|
|
});
|
|
|
} catch {}
|
|
|
+ forms.loading = false;
|
|
|
};
|
|
|
onMounted(() => {
|
|
|
useEventListener(document, 'scroll', () => {
|
|
@@ -65,13 +69,19 @@ export default defineComponent({
|
|
|
<div class={styles.container}>
|
|
|
<div class={styles.musicHeader}>
|
|
|
<div class={styles.imgSection}>
|
|
|
- <Image class={styles.img} src={forms.detail.avatar || musicBg} />
|
|
|
+ <Image
|
|
|
+ class={styles.img}
|
|
|
+ src={forms.detail.avatar || musicBg}
|
|
|
+ fit="cover"
|
|
|
+ />
|
|
|
<div class={styles.pan}>
|
|
|
<img src={forms.detail.avatar || musicBg} />
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class={styles.musicContent}>
|
|
|
- <div class={styles.musicTitle}>{forms.detail.name || '--'}</div>
|
|
|
+ <div class={[styles.musicTitle, 'van-multi-ellipsis--l2']}>
|
|
|
+ {forms.detail.name || '--'}
|
|
|
+ </div>
|
|
|
<div class={styles.musicInto}>
|
|
|
{forms.detail.lyricists && (
|
|
|
<span>作词:{forms.detail.lyricists}</span>
|
|
@@ -84,7 +94,17 @@ export default defineComponent({
|
|
|
</div>
|
|
|
|
|
|
{/* <div class={styles.title}>{forms.detail.name}</div> */}
|
|
|
- <div class={styles.content} v-html={forms.detail.intros}></div>
|
|
|
+ {forms.detail.intros ? (
|
|
|
+ <div class={styles.content} v-html={forms.detail.intros}></div>
|
|
|
+ ) : (
|
|
|
+ ''
|
|
|
+ )}
|
|
|
+
|
|
|
+ {!forms.loading && !forms.detail.intros && (
|
|
|
+ <div class={styles.content}>
|
|
|
+ <MEmpty description="暂无内容" />
|
|
|
+ </div>
|
|
|
+ )}
|
|
|
</div>
|
|
|
|
|
|
<MSticky position="bottom">
|