|  | @@ -1,5 +1,6 @@
 | 
	
		
			
				|  |  |  import {
 | 
	
		
			
				|  |  |    TransitionGroup,
 | 
	
		
			
				|  |  | +  computed,
 | 
	
		
			
				|  |  |    defineComponent,
 | 
	
		
			
				|  |  |    onMounted,
 | 
	
		
			
				|  |  |    reactive,
 | 
	
	
		
			
				|  | @@ -8,8 +9,8 @@ import {
 | 
	
		
			
				|  |  |  import styles from './index.module.less';
 | 
	
		
			
				|  |  |  import TheSearch from '@/components/TheSearch';
 | 
	
		
			
				|  |  |  import { NButton, NImage, NSpace } from 'naive-ui';
 | 
	
		
			
				|  |  | -import { getImage } from './image';
 | 
	
		
			
				|  |  |  import { useRouter } from 'vue-router';
 | 
	
		
			
				|  |  | +import mock from './mock.json';
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  export default defineComponent({
 | 
	
		
			
				|  |  |    name: 'XiaokuAi',
 | 
	
	
		
			
				|  | @@ -17,46 +18,75 @@ export default defineComponent({
 | 
	
		
			
				|  |  |      const router = useRouter();
 | 
	
		
			
				|  |  |      const data = reactive({
 | 
	
		
			
				|  |  |        tags: [
 | 
	
		
			
				|  |  | -        { name: '全部', id: 0 },
 | 
	
		
			
				|  |  | -        { name: '人教版', id: 1 },
 | 
	
		
			
				|  |  | -        { name: '声部训练', id: 2 },
 | 
	
		
			
				|  |  | -        { name: '小曲目', id: 3 },
 | 
	
		
			
				|  |  | -        { name: '考级曲目', id: 4 }
 | 
	
		
			
				|  |  | +        { name: '全部', id: '0' },
 | 
	
		
			
				|  |  | +        { name: '人教版', id: '1' },
 | 
	
		
			
				|  |  | +        { name: '人音版', id: '2' }
 | 
	
		
			
				|  |  |        ],
 | 
	
		
			
				|  |  | -      tagIndex: 0,
 | 
	
		
			
				|  |  | -      list: [
 | 
	
		
			
				|  |  | -        {
 | 
	
		
			
				|  |  | -          name: '一年级上册人教版(2013版)',
 | 
	
		
			
				|  |  | -          src: ''
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -      ]
 | 
	
		
			
				|  |  | +      tagIndex: '0',
 | 
	
		
			
				|  |  | +      list: mock.list
 | 
	
		
			
				|  |  | +    });
 | 
	
		
			
				|  |  | +    const _list = computed(() => {
 | 
	
		
			
				|  |  | +      if (data.tagIndex === '0') return data.list;
 | 
	
		
			
				|  |  | +      return data.list.filter(item => data.tagIndex === item.category);
 | 
	
		
			
				|  |  |      });
 | 
	
		
			
				|  |  |      return () => (
 | 
	
		
			
				|  |  |        <div class={styles.container}>
 | 
	
		
			
				|  |  |          <div class={styles.tools}>
 | 
	
		
			
				|  |  | -          <div class={styles.tags}>
 | 
	
		
			
				|  |  | -            <NSpace size={[24, 12]}>
 | 
	
		
			
				|  |  | -              {data.tags.map((item, index) => (
 | 
	
		
			
				|  |  | -                <NButton
 | 
	
		
			
				|  |  | -                  round
 | 
	
		
			
				|  |  | -                  secondary={data.tagIndex !== index}
 | 
	
		
			
				|  |  | -                  type={data.tagIndex === index ? 'primary' : 'default'}
 | 
	
		
			
				|  |  | -                  class={[
 | 
	
		
			
				|  |  | -                    styles.tag,
 | 
	
		
			
				|  |  | -                    data.tagIndex === index ? styles.active : ''
 | 
	
		
			
				|  |  | -                  ]}
 | 
	
		
			
				|  |  | -                  onClick={() => (data.tagIndex = index)}>
 | 
	
		
			
				|  |  | -                  {item.name}
 | 
	
		
			
				|  |  | +          <div class={styles.tagWrap}>
 | 
	
		
			
				|  |  | +            <div class={styles.tags}>
 | 
	
		
			
				|  |  | +              <NSpace size={[24, 12]}>
 | 
	
		
			
				|  |  | +                <NButton quaternary disabled>
 | 
	
		
			
				|  |  | +                  类型
 | 
	
		
			
				|  |  | +                </NButton>
 | 
	
		
			
				|  |  | +                {data.tags.map((item, index) => (
 | 
	
		
			
				|  |  | +                  <NButton
 | 
	
		
			
				|  |  | +                    round
 | 
	
		
			
				|  |  | +                    secondary={data.tagIndex !== item.id}
 | 
	
		
			
				|  |  | +                    type={data.tagIndex === item.id ? 'primary' : 'default'}
 | 
	
		
			
				|  |  | +                    class={[
 | 
	
		
			
				|  |  | +                      styles.tag,
 | 
	
		
			
				|  |  | +                      data.tagIndex === item.id ? styles.active : ''
 | 
	
		
			
				|  |  | +                    ]}
 | 
	
		
			
				|  |  | +                    onClick={() => (data.tagIndex = item.id)}>
 | 
	
		
			
				|  |  | +                    {item.name}
 | 
	
		
			
				|  |  | +                  </NButton>
 | 
	
		
			
				|  |  | +                ))}
 | 
	
		
			
				|  |  | +              </NSpace>
 | 
	
		
			
				|  |  | +            </div>
 | 
	
		
			
				|  |  | +            <div class={styles.tags}>
 | 
	
		
			
				|  |  | +              <NSpace size={[24, 12]}>
 | 
	
		
			
				|  |  | +                <NButton quaternary disabled>
 | 
	
		
			
				|  |  | +                  学段
 | 
	
		
			
				|  |  | +                </NButton>
 | 
	
		
			
				|  |  | +                <NButton round secondary type={'default'}>
 | 
	
		
			
				|  |  | +                  小学
 | 
	
		
			
				|  |  | +                </NButton>
 | 
	
		
			
				|  |  | +                <NButton round secondary type={'default'}>
 | 
	
		
			
				|  |  | +                  初中
 | 
	
		
			
				|  |  | +                </NButton>
 | 
	
		
			
				|  |  | +                <NButton round secondary type={'default'}>
 | 
	
		
			
				|  |  | +                  高中
 | 
	
		
			
				|  |  | +                </NButton>
 | 
	
		
			
				|  |  | +              </NSpace>
 | 
	
		
			
				|  |  | +            </div>
 | 
	
		
			
				|  |  | +            <div class={styles.tags}>
 | 
	
		
			
				|  |  | +              <NSpace size={[24, 12]}>
 | 
	
		
			
				|  |  | +                <NButton quaternary disabled>
 | 
	
		
			
				|  |  | +                  年级
 | 
	
		
			
				|  |  |                  </NButton>
 | 
	
		
			
				|  |  | -              ))}
 | 
	
		
			
				|  |  | -            </NSpace>
 | 
	
		
			
				|  |  | +                {['一', '二', '三', '四', '五', '六'].map((item, index) => (
 | 
	
		
			
				|  |  | +                  <NButton secondary round>
 | 
	
		
			
				|  |  | +                    {item}年级
 | 
	
		
			
				|  |  | +                  </NButton>
 | 
	
		
			
				|  |  | +                ))}
 | 
	
		
			
				|  |  | +              </NSpace>
 | 
	
		
			
				|  |  | +            </div>
 | 
	
		
			
				|  |  |            </div>
 | 
	
		
			
				|  |  |            <TheSearch round />
 | 
	
		
			
				|  |  |          </div>
 | 
	
		
			
				|  |  |          <div class={styles.content}>
 | 
	
		
			
				|  |  |            <NSpace size={[50, 40]}>
 | 
	
		
			
				|  |  | -            {new Array(30).fill(data.list[0]).map((item, index) => {
 | 
	
		
			
				|  |  | -              const _index = index > 5 ? index % 5 : index;
 | 
	
		
			
				|  |  | +            {_list.value.map((item, index) => {
 | 
	
		
			
				|  |  |                return (
 | 
	
		
			
				|  |  |                  <div
 | 
	
		
			
				|  |  |                    class={styles.item}
 | 
	
	
		
			
				|  | @@ -64,9 +94,10 @@ export default defineComponent({
 | 
	
		
			
				|  |  |                    onClick={() => router.push({ path: '/xiaoku-music' })}>
 | 
	
		
			
				|  |  |                    <div class={styles.cover}>
 | 
	
		
			
				|  |  |                      <div class={styles.itemImg}>
 | 
	
		
			
				|  |  | +                      <div class={styles.itemBg}></div>
 | 
	
		
			
				|  |  |                        <NImage
 | 
	
		
			
				|  |  |                          objectFit="contain"
 | 
	
		
			
				|  |  | -                        src={getImage(`${_index}.png`)}
 | 
	
		
			
				|  |  | +                        src={item.src}
 | 
	
		
			
				|  |  |                          lazy
 | 
	
		
			
				|  |  |                          previewDisabled={true}
 | 
	
		
			
				|  |  |                          onLoad={e => {
 |