import { NBreadcrumb, NBreadcrumbItem, NButton, NImage, NSlider, NSpace, NSpin } from 'naive-ui'; import { computed, defineComponent, onMounted, reactive } from 'vue'; import styles from './detail.module.less'; import icon_back from '../../xiaoku-music/images/icon_back.png'; import icon_arrow from '../../xiaoku-music/images/icon_arrow.png'; import icon_play from '../../xiaoku-music/images/icon_play.png'; import icon_pause from '../../xiaoku-music/images/icon_pause.png'; import icon_default from '../../xiaoku-music/images/icon_default.png'; import icon_separator from '../../xiaoku-music/images/icon_separator.png'; import iconT from '../images/icon-t.png'; import iconAddT from '../images/icon-add-t.png'; import iconPlusT from '../images/icon-plus-t.png'; import { useRoute, useRouter } from 'vue-router'; import PlayLoading from '../../xiaoku-music/component/play-loading'; import TheNoticeBar from '/src/components/TheNoticeBar'; import TheEmpty from '/src/components/TheEmpty'; import PlayItem from '../../xiaoku-music/component/play-item'; import { api_knowledgeWiki_detail } from '../api'; import { state } from '/src/state'; export default defineComponent({ name: 'instrument-detail', setup() { const route = useRoute(); const router = useRouter(); const forms = reactive({ page: 1, rows: 20, status: true, name: '', // 关键词 type: route.query.type }); const data = reactive({ loading: false, finshed: false, reshing: false, details: {} as any, list: [] as any, listActive: 0, playState: 'pause' as 'play' | 'pause', showPlayer: false, showPreivew: false, previewUrl: '', showCloseBtn: true, fontSize: 18 // 默认18 }); /** 选中的item */ const activeItem = computed(() => { return data.list[data.listActive] || {}; }); /** 播放曲目 */ const handlePlay = (item: any) => { const index = data.list.findIndex((_item: any) => _item.id === item.id); if (index > -1) { if (data.listActive === index) { data.playState = data.playState === 'play' ? 'pause' : 'play'; } else { data.playState = 'play'; } data.showPlayer = true; data.listActive = index; } }; /** 音频控制 */ const handleChangeAudio = ( type: 'play' | 'pause' | 'pre' | 'next' | 'favitor' ) => { if (type === 'play') { data.playState = 'play'; } else if (type === 'pause') { data.playState = 'pause'; } else if (type === 'pre') { if (data.list[data.listActive - 1]) { handlePlay(data.list[data.listActive - 1]); } } else if (type === 'next') { if (data.list[data.listActive + 1]) { handlePlay(data.list[data.listActive + 1]); } } }; const getDetail = async () => { data.loading = true; let res = {} as any; try { res = await api_knowledgeWiki_detail({ id: route.query.id }); } catch (error) { console.log(error); } if (data.reshing) { data.list = []; data.reshing = false; } data.finshed = true; data.list = res.data.knowledgeWikiResources || []; data.list.forEach((item: any) => { item.audioFileUrl = item.url; }); const knowledgeWikiCategories = res.data.knowledgeWikiCategories || []; res.data.knowledgeName = knowledgeWikiCategories.length > 0 ? knowledgeWikiCategories[0].name : ''; res.data.intros = res.data.intros.replace( /