import { defineComponent, reactive, ref } from 'vue'; import { NImage, NModal } from 'naive-ui'; import styles from './index.module.less'; import icon1 from '../../images/addSource/icon1.png'; import icon2 from '../../images/addSource/icon2.png'; import icon3 from '../../images/addSource/icon3.png'; import icon4 from '../../images/addSource/icon4.png'; import icon5 from '../../images/addSource/icon5.png'; import icon6 from '../../images/addSource/icon6.png'; import icon7 from '../../images/addSource/icon7.png'; import { useRouter } from 'vue-router'; import SourceRhythm from '../source-rhythm'; import SourceInstrument from '../source-instrument'; import SourceKnowledge from '../source-knowledge'; import SourceMusician from '../source-musician'; import SourceMusic from '../source-music'; export default defineComponent({ name: 'add-other-source', emits: ['close', 'comfirm'], setup(props, { emit }) { const router = useRouter(); const sourceList = ref([ // { // image: icon1, // name: '听音练习', // index: 0 // }, { image: icon2, name: '节奏练习', index: 1 }, { image: icon3, name: '乐器百科', index: 2 }, { image: icon6, name: '名曲鉴赏', index: 3 }, { image: icon5, name: '音乐家', index: 4 }, { image: icon4, name: '乐理知识', index: 5 }, { image: icon7, name: '制作曲谱', index: 6 } ]); const state = reactive({ listenStatus: false, // 听音练习 rhythmStatus: false, //节奏 theoryStatus: false, // musicStatus: false, // instrumentStatus: false, // musicianStatus: false // }); // LISTEN:听音,RHYTHM:节奏,THEORY:乐理知识,MUSIC_WIKI:曲目 INSTRUMENT:乐器 MUSICIAN:音乐家) const onDetail = (item: any) => { switch (item.index) { case 1: state.rhythmStatus = true; break; case 2: state.instrumentStatus = true; break; case 3: state.musicStatus = true; break; case 4: state.musicianStatus = true; break; case 5: state.theoryStatus = true; break; case 6: // 直接跳转到制谱页面 (临时存储数据) sessionStorage.setItem('notation-open-create', '1'); router.push('/notation'); break; default: break; } }; return () => ( <>
{sourceList.value.map(source => (
onDetail(source)}>

{source.name}

))}
{/* 百科: https://oss.dayaedu.com/ktqy/17101370093153448b2cd.png jianshang https://oss.dayaedu.com/ktqy/1710137009315eedcdeed.png jiezou https://oss.dayaedu.com/ktqy/171013700931689a322a6.png yinyuejia https://oss.dayaedu.com/ktqy/1710137009316fbd65d39.png yueli https://oss.dayaedu.com/ktqy/17101370093160d479afe.png */} {/* 节奏练习 */} (state.rhythmStatus = false)} onConfirm={(item: any) => { state.rhythmStatus = false; emit('comfirm', { materialId: null, coverImg: item.coverImg, dataJson: item.dataJson, title: '节奏练习', isCollect: false, isSelected: false, content: null, type: 'RHYTHM' }); emit('close'); }} /> {/* 乐器百科 */} (state.instrumentStatus = false)} onConfirm={(val: any) => { state.instrumentStatus = false; const value = val || []; const temp: any[] = []; value.forEach((item: any) => { temp.push({ materialId: item.materialId, coverImg: item.coverImg, dataJson: null, title: item.title, isCollect: false, isSelected: false, content: item.content, type: 'INSTRUMENT' }); }); emit('comfirm', temp); emit('close'); }} /> {/* 乐理知识 */} (state.theoryStatus = false)} onConfirm={(val: any) => { state.theoryStatus = false; const value = val || []; const temp: any[] = []; value.forEach((item: any) => { temp.push({ materialId: item.materialId, coverImg: item.coverImg, dataJson: null, title: item.title, isCollect: false, isSelected: false, content: item.content, type: 'THEORY' }); }); emit('comfirm', temp); emit('close'); }} /> {/* 音乐家 */} (state.musicianStatus = false)} onConfirm={(val: any) => { state.musicianStatus = false; const value = val || []; const temp: any[] = []; value.forEach((item: any) => { temp.push({ materialId: item.materialId, coverImg: item.coverImg, dataJson: null, title: item.title, isCollect: false, isSelected: false, content: item.content, type: 'MUSICIAN' }); }); emit('comfirm', temp); emit('close'); }} /> {/* 名曲鉴赏 */} (state.musicStatus = false)} onConfirm={(val: any) => { state.musicStatus = false; const value = val || []; const temp: any[] = []; value.forEach((item: any) => { temp.push({ materialId: item.materialId, coverImg: item.coverImg, dataJson: null, title: item.title, isCollect: false, isSelected: false, content: item.content, type: 'MUSIC_WIKI' }); }); emit('comfirm', temp); emit('close'); }} /> ); } });