|
@@ -34,7 +34,10 @@ export default defineComponent({
|
|
albumList: [],
|
|
albumList: [],
|
|
videoList: [],
|
|
videoList: [],
|
|
search: '',
|
|
search: '',
|
|
- tagTree: []
|
|
|
|
|
|
+ tagTree: [],
|
|
|
|
+ tagTreeAlbum: [],
|
|
|
|
+ hotList: [],
|
|
|
|
+ musicList: []
|
|
})
|
|
})
|
|
const router = useRouter()
|
|
const router = useRouter()
|
|
const getAlbumList = async () => {
|
|
const getAlbumList = async () => {
|
|
@@ -55,6 +58,28 @@ export default defineComponent({
|
|
console.log(e)
|
|
console.log(e)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ const getMusicList = async () => {
|
|
|
|
+ try {
|
|
|
|
+ const res = await request.post('/api-website/open/music/sheet/list', {
|
|
|
|
+ data: {
|
|
|
|
+ albumStatus: 'PASS',
|
|
|
|
+ exquisiteFlag: 1,
|
|
|
|
+ page: 1,
|
|
|
|
+ rows: 5,
|
|
|
|
+ state: 1
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+ // state.musicList = res.data.rows
|
|
|
|
+ state.musicList = res.data.rows.map(n => {
|
|
|
|
+ if (typeof n.paymentType === 'string')
|
|
|
|
+ n.paymentType = n.paymentType.split(',')
|
|
|
|
+ return n
|
|
|
|
+ })
|
|
|
|
+ } catch (e) {
|
|
|
|
+ console.log(e)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
const getVideoList = async () => {
|
|
const getVideoList = async () => {
|
|
try {
|
|
try {
|
|
const res = await request.post(
|
|
const res = await request.post(
|
|
@@ -76,16 +101,28 @@ export default defineComponent({
|
|
const gotoSearch = (val: string, type: any) => {
|
|
const gotoSearch = (val: string, type: any) => {
|
|
router.push({ name: 'searchdetail', params: { search: val, type } })
|
|
router.push({ name: 'searchdetail', params: { search: val, type } })
|
|
}
|
|
}
|
|
- const getTagTree = async () => {
|
|
|
|
|
|
+ const getTagTree = async (type = 'MUSIC') => {
|
|
try {
|
|
try {
|
|
- const res = await request.get('/api-website/open/MusicTag/tree', {})
|
|
|
|
- state.tagTree = res.data.splice(0, 2)
|
|
|
|
|
|
+ const res = await request.get('/api-website/open/MusicTag/tree', {
|
|
|
|
+ params: {
|
|
|
|
+ type: type
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
|
|
- // state.hotList = res.data
|
|
|
|
|
|
+ if (type === 'MUSIC') {
|
|
|
|
+ const resHot = await request.get(
|
|
|
|
+ `/api-website/open/music/sheet/hotTag/${type}`
|
|
|
|
+ )
|
|
|
|
+ state.hotList = resHot.data || []
|
|
|
|
+ state.tagTree = res.data || []
|
|
|
|
+ } else {
|
|
|
|
+ state.tagTreeAlbum = res.data || []
|
|
|
|
+ }
|
|
} catch (e) {
|
|
} catch (e) {
|
|
console.log(e)
|
|
console.log(e)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
const gotoVideoList = () => {
|
|
const gotoVideoList = () => {
|
|
router.push({ path: '/videoDetailList' })
|
|
router.push({ path: '/videoDetailList' })
|
|
}
|
|
}
|
|
@@ -103,8 +140,9 @@ export default defineComponent({
|
|
//
|
|
//
|
|
onMounted(() => {
|
|
onMounted(() => {
|
|
getAlbumList()
|
|
getAlbumList()
|
|
- getVideoList()
|
|
|
|
|
|
+ getMusicList()
|
|
getTagTree()
|
|
getTagTree()
|
|
|
|
+ getTagTree('ALBUM')
|
|
})
|
|
})
|
|
return () => (
|
|
return () => (
|
|
<div>
|
|
<div>
|
|
@@ -151,24 +189,69 @@ export default defineComponent({
|
|
<ElInput
|
|
<ElInput
|
|
placeholder="搜索你想要的曲目"
|
|
placeholder="搜索你想要的曲目"
|
|
v-model={state.search}
|
|
v-model={state.search}
|
|
- // onKeyup={(e:any) => {
|
|
|
|
- // if (e.keyCode === 13) {
|
|
|
|
- // gotoSearch(state.search,'music')
|
|
|
|
- // }
|
|
|
|
- // }}
|
|
|
|
- // onkeyup= { gotoSearch(state.search,'music')}
|
|
|
|
></ElInput>
|
|
></ElInput>
|
|
</div>
|
|
</div>
|
|
<div class={styles.chioseLineWrap}>
|
|
<div class={styles.chioseLineWrap}>
|
|
- {state.tagTree.map((tree: any) => {
|
|
|
|
- return (
|
|
|
|
- <div class={styles.chioseRow}>
|
|
|
|
- <p>{tree.name}:</p>
|
|
|
|
|
|
+ <div class={styles.chioseRow}>
|
|
|
|
+ <p>专辑分类:</p>
|
|
|
|
+ <div class={[styles.chioseTagWrap, 'chioseTagWrap']}>
|
|
|
|
+ {state.tagTreeAlbum.map((tag: any) => {
|
|
|
|
+ return (
|
|
|
|
+ <tagItem
|
|
|
|
+ class={styles.tags}
|
|
|
|
+ title={tag.name}
|
|
|
|
+ onSearchTag={() => {
|
|
|
|
+ gotoSearchTag(tag)
|
|
|
|
+ }}
|
|
|
|
+ >
|
|
|
|
+ {/* {} */}
|
|
|
|
+ </tagItem>
|
|
|
|
+ )
|
|
|
|
+ })}
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ {state.musicList && state.musicList.length > 0 && (
|
|
|
|
+ <>
|
|
|
|
+ <div
|
|
|
|
+ class={[styles.section, styles.pb40]}
|
|
|
|
+ style="padding-top: 0"
|
|
|
|
+ >
|
|
|
|
+ <div class={styles.albumMoudel}>
|
|
|
|
+ <div class={styles.albumWrap} style="padding-right: 25px">
|
|
|
|
+ <div class={[styles.titleWrap, styles.hotAlbum]}>
|
|
|
|
+ <div class={[styles.titleWrapLeft]}>
|
|
|
|
+ <h4>精品乐谱</h4>
|
|
|
|
+ <img src={titleDot} class={styles.dotImg} alt="" />
|
|
|
|
+ </div>
|
|
|
|
+ <div
|
|
|
|
+ class={[styles.titleWrapMore]}
|
|
|
|
+ onClick={() => gotoSearch('', 'album')}
|
|
|
|
+ >
|
|
|
|
+ <span>更多</span>
|
|
|
|
+ <img src={moreArrow} alt="" />
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ <div class={styles.musicList}>
|
|
|
|
+ {state.musicList.map(item => {
|
|
|
|
+ return <musicLIstItem item={item}></musicLIstItem>
|
|
|
|
+ })}
|
|
|
|
+ </div>
|
|
|
|
+ <div class={styles.line}></div>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ <div class={styles.albumSearch}>
|
|
|
|
+ <div class={styles.chioseLineWrap}>
|
|
|
|
+ <div class={styles.chioseRow} style="margin-top: 0">
|
|
|
|
+ <p>曲谱分类:</p>
|
|
<div class={[styles.chioseTagWrap, 'chioseTagWrap']}>
|
|
<div class={[styles.chioseTagWrap, 'chioseTagWrap']}>
|
|
- {tree.children.map((tag: any) => {
|
|
|
|
|
|
+ {state.tagTree.map((tag: any) => {
|
|
return (
|
|
return (
|
|
- // effect={isChiose(tag)}
|
|
|
|
-
|
|
|
|
<tagItem
|
|
<tagItem
|
|
class={styles.tags}
|
|
class={styles.tags}
|
|
title={tag.name}
|
|
title={tag.name}
|
|
@@ -182,12 +265,30 @@ export default defineComponent({
|
|
})}
|
|
})}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- )
|
|
|
|
- })}
|
|
|
|
|
|
+ <div class={styles.chioseRow}>
|
|
|
|
+ <p>热门搜索:</p>
|
|
|
|
+ <div class={[styles.chioseTagWrap, 'chioseTagWrap']}>
|
|
|
|
+ {state.hotList.map((tag: any) => {
|
|
|
|
+ return (
|
|
|
|
+ <tagItem
|
|
|
|
+ class={styles.tags}
|
|
|
|
+ title={tag.key}
|
|
|
|
+ onSearchTag={() => {
|
|
|
|
+ gotoSearchTag(tag)
|
|
|
|
+ }}
|
|
|
|
+ >
|
|
|
|
+ {/* {} */}
|
|
|
|
+ </tagItem>
|
|
|
|
+ )
|
|
|
|
+ })}
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
|
|
+ </>
|
|
|
|
+ )}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{/* <div class="bg-white">
|
|
{/* <div class="bg-white">
|