|  | @@ -0,0 +1,162 @@
 | 
	
		
			
				|  |  | +import { defineComponent, toRefs, reactive, onMounted, ref } from 'vue'
 | 
	
		
			
				|  |  | +import hold from '@/components/albumItem/images/hold.png'
 | 
	
		
			
				|  |  | +import start from '@/components/albumItem/images/start.png'
 | 
	
		
			
				|  |  | +import smallPan from '@/components/albumItem/images/pan.png'
 | 
	
		
			
				|  |  | +import classes from './index.module.less'
 | 
	
		
			
				|  |  | +import arrow from '@/components/musicLIstItem/images/arrow.png'
 | 
	
		
			
				|  |  | +import hot from '@/components/hotSearch/images/hot.png'
 | 
	
		
			
				|  |  | +import pan from './images/pan.png'
 | 
	
		
			
				|  |  | +import somePan from './images/somePan.png'
 | 
	
		
			
				|  |  | +import tagItem from '@/components/tagItem'
 | 
	
		
			
				|  |  | +import pagination from '@/components/pagination'
 | 
	
		
			
				|  |  | +import albumItem from './modals/albumItem'
 | 
	
		
			
				|  |  | +import request from '@/helpers/request'
 | 
	
		
			
				|  |  | +import musicLIstItem from '@/components/musicLIstItem'
 | 
	
		
			
				|  |  | +export default defineComponent({
 | 
	
		
			
				|  |  | +  name: 'albumDetail',
 | 
	
		
			
				|  |  | +  props: {
 | 
	
		
			
				|  |  | +    title: {
 | 
	
		
			
				|  |  | +      type: String,
 | 
	
		
			
				|  |  | +      default: ''
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  components: { tagItem, pagination, albumItem,musicLIstItem },
 | 
	
		
			
				|  |  | +  setup(props, conent) {
 | 
	
		
			
				|  |  | +    const state = reactive({
 | 
	
		
			
				|  |  | +      title: props.title,
 | 
	
		
			
				|  |  | +      hotList: [],
 | 
	
		
			
				|  |  | +      hotTagList:[],
 | 
	
		
			
				|  |  | +      relatedMusicAlbum:[],
 | 
	
		
			
				|  |  | +      musicList: [],
 | 
	
		
			
				|  |  | +      pageInfo: {
 | 
	
		
			
				|  |  | +        // 分页规则
 | 
	
		
			
				|  |  | +        limit: 10, // 限制显示条数
 | 
	
		
			
				|  |  | +        page: 1, // 当前页
 | 
	
		
			
				|  |  | +        total: 0, // 总条数
 | 
	
		
			
				|  |  | +        page_size: [10, 20, 40, 50] // 选择限制显示条数
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      details:{} as any
 | 
	
		
			
				|  |  | +    })
 | 
	
		
			
				|  |  | +    const getList = async () => {
 | 
	
		
			
				|  |  | +      try{
 | 
	
		
			
				|  |  | +        const res = await request.post('/api-website/open/music/album/detail', {
 | 
	
		
			
				|  |  | +          data: {
 | 
	
		
			
				|  |  | +            id: 15,
 | 
	
		
			
				|  |  | +            page: state.pageInfo.page,
 | 
	
		
			
				|  |  | +            rows: state.pageInfo.limit
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +          state.details = res.data;
 | 
	
		
			
				|  |  | +          state.pageInfo.total = res.data.musicSheetList.total;
 | 
	
		
			
				|  |  | +          state.musicList = res.data.musicSheetList.rows;
 | 
	
		
			
				|  |  | +          state.hotList = res.data.hotMusicAlbum;
 | 
	
		
			
				|  |  | +          state.hotTagList = res.data.musicTagNames.split(',')||[]
 | 
	
		
			
				|  |  | +          state.relatedMusicAlbum = res.data.relatedMusicAlbum;
 | 
	
		
			
				|  |  | +      }catch(e){
 | 
	
		
			
				|  |  | +        console.log(e)
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    onMounted(()=>{
 | 
	
		
			
				|  |  | +      getList()
 | 
	
		
			
				|  |  | +    })
 | 
	
		
			
				|  |  | +    return () => (
 | 
	
		
			
				|  |  | +      <>
 | 
	
		
			
				|  |  | +        <div class={classes.wall}></div>
 | 
	
		
			
				|  |  | +        <div class={[classes.w1200, classes.wrap]}>
 | 
	
		
			
				|  |  | +          <div class={classes.left}>
 | 
	
		
			
				|  |  | +            <div class={classes.albumInfo}>
 | 
	
		
			
				|  |  | +              <div class={classes.albumInfoTop}>
 | 
	
		
			
				|  |  | +                <div class={classes.albumInfoTopImg}>
 | 
	
		
			
				|  |  | +                  <img src={state.details.albumCoverUrl?state.details.albumCoverUrl:hold} alt="" class={classes.albumCover} />
 | 
	
		
			
				|  |  | +                  <img src={pan} alt="" class={classes.pan} />
 | 
	
		
			
				|  |  | +                </div>
 | 
	
		
			
				|  |  | +                <div class={classes.albumInfoTopConent}>
 | 
	
		
			
				|  |  | +                  <h2>{state.details.albumName}</h2>
 | 
	
		
			
				|  |  | +                  <p>
 | 
	
		
			
				|  |  | +                    {state.details.albumDesc}
 | 
	
		
			
				|  |  | +                  </p>
 | 
	
		
			
				|  |  | +                  <div class={classes.tagWrap}>
 | 
	
		
			
				|  |  | +                    {state.hotTagList.map((item: any) => {
 | 
	
		
			
				|  |  | +                      return <tagItem title={item}></tagItem>
 | 
	
		
			
				|  |  | +                    })}
 | 
	
		
			
				|  |  | +                  </div>
 | 
	
		
			
				|  |  | +                </div>
 | 
	
		
			
				|  |  | +              </div>
 | 
	
		
			
				|  |  | +              <div class={classes.albumInfoBottom}>
 | 
	
		
			
				|  |  | +                <div class={classes.albumInfoLeft}>
 | 
	
		
			
				|  |  | +                  <div class={classes.itemBottomL}>
 | 
	
		
			
				|  |  | +                    <img src={smallPan} alt="" />
 | 
	
		
			
				|  |  | +                    <span>{state.details.musicSheetCount}首</span>
 | 
	
		
			
				|  |  | +                  </div>
 | 
	
		
			
				|  |  | +                  <div class={classes.itemBottomR}>
 | 
	
		
			
				|  |  | +                    <img src={start} alt="" />
 | 
	
		
			
				|  |  | +                    <span>{state.details.favorite}人收藏</span>
 | 
	
		
			
				|  |  | +                  </div>
 | 
	
		
			
				|  |  | +                </div>
 | 
	
		
			
				|  |  | +                <div class={classes.albumInfoRight}>
 | 
	
		
			
				|  |  | +                  <div class={classes.itemBottomR}>
 | 
	
		
			
				|  |  | +                    <img src={start} alt="" />
 | 
	
		
			
				|  |  | +                    <span>已收藏</span>
 | 
	
		
			
				|  |  | +                  </div>
 | 
	
		
			
				|  |  | +                </div>
 | 
	
		
			
				|  |  | +              </div>
 | 
	
		
			
				|  |  | +            </div>
 | 
	
		
			
				|  |  | +            <div class={classes.musicWrap}>
 | 
	
		
			
				|  |  | +              <div class={classes.title}>
 | 
	
		
			
				|  |  | +                <div class={classes.dot}></div>
 | 
	
		
			
				|  |  | +                <span>曲目列表</span>
 | 
	
		
			
				|  |  | +              </div>
 | 
	
		
			
				|  |  | +              <div>
 | 
	
		
			
				|  |  | +                {state.musicList.map(item => {
 | 
	
		
			
				|  |  | +                  return <musicLIstItem item={item}></musicLIstItem>
 | 
	
		
			
				|  |  | +                })}
 | 
	
		
			
				|  |  | +              </div>
 | 
	
		
			
				|  |  | +            </div>
 | 
	
		
			
				|  |  | +            <pagination
 | 
	
		
			
				|  |  | +              total={state.pageInfo.total}
 | 
	
		
			
				|  |  | +              v-model:page={state.pageInfo.page}
 | 
	
		
			
				|  |  | +              limit={state.pageInfo.limit}
 | 
	
		
			
				|  |  | +              pageSizes={state.pageInfo.page_size}
 | 
	
		
			
				|  |  | +              pagination={getList}
 | 
	
		
			
				|  |  | +            ></pagination>
 | 
	
		
			
				|  |  | +          </div>
 | 
	
		
			
				|  |  | +          <div class={classes.right}>
 | 
	
		
			
				|  |  | +            <div class={classes.some}>
 | 
	
		
			
				|  |  | +              <div class={classes.someTitle}>
 | 
	
		
			
				|  |  | +                <div class={classes.tilteL}>
 | 
	
		
			
				|  |  | +                  <img src={somePan} alt="" />
 | 
	
		
			
				|  |  | +                  <span>相关专辑</span>
 | 
	
		
			
				|  |  | +                </div>
 | 
	
		
			
				|  |  | +                <div class={classes.tilteR}>
 | 
	
		
			
				|  |  | +                  <span>更多</span>
 | 
	
		
			
				|  |  | +                  <img class={classes.arrow} src={arrow} alt="" />
 | 
	
		
			
				|  |  | +                </div>
 | 
	
		
			
				|  |  | +              </div>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +              <div class={classes.someWrap}>
 | 
	
		
			
				|  |  | +                {state.relatedMusicAlbum.map(item=> <albumItem detail={item}></albumItem>)}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +              </div>
 | 
	
		
			
				|  |  | +            </div>
 | 
	
		
			
				|  |  | +            <div class={classes.some}>
 | 
	
		
			
				|  |  | +              <div class={classes.someTitle}>
 | 
	
		
			
				|  |  | +                <div class={classes.tilteL}>
 | 
	
		
			
				|  |  | +                  <img src={hot} alt="" />
 | 
	
		
			
				|  |  | +                  <span>热门专辑</span>
 | 
	
		
			
				|  |  | +                </div>
 | 
	
		
			
				|  |  | +                <div class={classes.tilteR}>
 | 
	
		
			
				|  |  | +                  <span>更多</span>
 | 
	
		
			
				|  |  | +                  <img class={classes.arrow} src={arrow} alt="" />
 | 
	
		
			
				|  |  | +                </div>
 | 
	
		
			
				|  |  | +              </div>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +              <div class={classes.someWrap}>
 | 
	
		
			
				|  |  | +              {state.hotList.map(item=> <albumItem detail={item}></albumItem>)}
 | 
	
		
			
				|  |  | +              </div>
 | 
	
		
			
				|  |  | +            </div>
 | 
	
		
			
				|  |  | +          </div>
 | 
	
		
			
				|  |  | +        </div>
 | 
	
		
			
				|  |  | +      </>
 | 
	
		
			
				|  |  | +    )
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +})
 |