|
@@ -0,0 +1,146 @@
|
|
|
+// import { PaperClipIcon } from '@heroicons/vue/solid'
|
|
|
+import { defineComponent, toRefs, reactive, onMounted, ref } from 'vue'
|
|
|
+import arrow from '@/components/musicLIstItem/images/arrow.png'
|
|
|
+import styles from './index.module.less'
|
|
|
+import albumItem from '@/components/albumItem'
|
|
|
+import videoDetailItem from '@/components/videoDetailItem'
|
|
|
+import musicLIstItem from '@/components/musicLIstItem'
|
|
|
+import hotSearch from '@/components/hotSearch'
|
|
|
+import { Swiper, SwiperSlide } from 'swiper/vue'
|
|
|
+import { Navigation, Pagination, Scrollbar, A11y } from 'swiper'
|
|
|
+import request from '@/helpers/request'
|
|
|
+import silder from '@/components/silder'
|
|
|
+import searchInput from '@/components/searchInput'
|
|
|
+import 'swiper/css'
|
|
|
+import 'swiper/css/navigation'
|
|
|
+import 'swiper/css/pagination'
|
|
|
+import 'swiper/css/scrollbar'
|
|
|
+export default defineComponent({
|
|
|
+ name: 'home',
|
|
|
+ components: {
|
|
|
+ albumItem,
|
|
|
+ videoDetailItem,
|
|
|
+ musicLIstItem,
|
|
|
+ hotSearch,
|
|
|
+ Swiper,
|
|
|
+ SwiperSlide,
|
|
|
+ silder,
|
|
|
+ searchInput
|
|
|
+ },
|
|
|
+ setup() {
|
|
|
+ const state = reactive({
|
|
|
+ modules: [Navigation, Pagination, Scrollbar, A11y],
|
|
|
+ albumList: [],
|
|
|
+ musicList: []
|
|
|
+ })
|
|
|
+ const onSwiper = swiper => {
|
|
|
+ console.log(swiper)
|
|
|
+ }
|
|
|
+ const onSlideChange = () => {
|
|
|
+ console.log('slide change')
|
|
|
+ }
|
|
|
+ const getAlbumList = async () => {
|
|
|
+ try {
|
|
|
+ const res = await request.post('/api-website/open/music/album/list', {
|
|
|
+ data: {
|
|
|
+ albumStatus: 1,
|
|
|
+ page: 1,
|
|
|
+ rows: 10
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ state.albumList = res.data.rows
|
|
|
+ } catch (e) {
|
|
|
+ console.log(e)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ const getMusicList = async () => {
|
|
|
+ try {
|
|
|
+ const res = await request.post('/api-website/open/music/sheet/list', {
|
|
|
+ data: {
|
|
|
+ albumStatus: 'PASS',
|
|
|
+ page: 1,
|
|
|
+ rows: 5,
|
|
|
+ state: 1
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ state.musicList = res.data.rows
|
|
|
+ } catch (e) {
|
|
|
+ console.log(e)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ onMounted(() => {
|
|
|
+ getAlbumList()
|
|
|
+ getMusicList()
|
|
|
+ })
|
|
|
+ return () => (
|
|
|
+ <div>
|
|
|
+ <swiper
|
|
|
+ modules={state.modules}
|
|
|
+ class={styles.mySwiper}
|
|
|
+ slides-per-view={1}
|
|
|
+ space-between={50}
|
|
|
+ pagination={{ clickable: true }}
|
|
|
+ navigation={{
|
|
|
+ nextEl: '.swiper-button-next',
|
|
|
+ prevEl: '.swiper-button-prev'
|
|
|
+ }}
|
|
|
+ loop={true}
|
|
|
+ onSwiper={onSwiper}
|
|
|
+ onSlideChange={onSlideChange}
|
|
|
+ >
|
|
|
+ <swiper-slide>Slide 1</swiper-slide>
|
|
|
+ <swiper-slide>Slide 2</swiper-slide>
|
|
|
+ <swiper-slide>Slide 3</swiper-slide>
|
|
|
+ <swiper-slide>Slide 4</swiper-slide>
|
|
|
+ <swiper-slide>Slide 5</swiper-slide>
|
|
|
+ <swiper-slide>Slide 6</swiper-slide>
|
|
|
+ </swiper>
|
|
|
+ <div class="swiper-button-prev"></div>
|
|
|
+ <div class="swiper-button-next"></div>
|
|
|
+ <div class="bg-white">
|
|
|
+ <div class={styles.w1200}>
|
|
|
+ <div class={styles.section}>
|
|
|
+ {/* <div class={styles.titleWrap}>
|
|
|
+ <img src={titleDot} class={styles.dotImg} alt="" />
|
|
|
+ <h4>热门专辑</h4>
|
|
|
+ <img src={titleDot} class={styles.dotImg} alt="" />
|
|
|
+ </div> */}
|
|
|
+ <searchInput></searchInput>
|
|
|
+ <hotSearch type={'search'}></hotSearch>
|
|
|
+ <h5 class={styles.hotAlbum}>热门专辑</h5>
|
|
|
+ <div class={styles.albumList}>
|
|
|
+ {state.albumList.map(item => {
|
|
|
+ return <albumItem detail={item}></albumItem>
|
|
|
+ })}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <div class={styles.w1200}>
|
|
|
+ <div class={styles.section}>
|
|
|
+ <div class={styles.videoNav}>
|
|
|
+ <h5>热门乐谱</h5>
|
|
|
+ <div class={styles.wrapRight}>
|
|
|
+ <span>更多</span>
|
|
|
+ <img class={styles.arrow} src={arrow} alt="" />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class={styles.musicList}>
|
|
|
+ {state.musicList.map(item => {
|
|
|
+ return <musicLIstItem detail={item}></musicLIstItem>
|
|
|
+ })}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ {/* <musicLIstItem></musicLIstItem> */}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <silder></silder>
|
|
|
+ </div>
|
|
|
+ )
|
|
|
+ }
|
|
|
+})
|