|  | @@ -1,7 +1,9 @@
 | 
	
		
			
				|  |  |  import {
 | 
	
		
			
				|  |  |    computed,
 | 
	
		
			
				|  |  |    defineComponent,
 | 
	
		
			
				|  |  | +  nextTick,
 | 
	
		
			
				|  |  |    onMounted,
 | 
	
		
			
				|  |  | +  onUnmounted,
 | 
	
		
			
				|  |  |    reactive,
 | 
	
		
			
				|  |  |    ref,
 | 
	
		
			
				|  |  |    Teleport,
 | 
	
	
		
			
				|  | @@ -22,7 +24,7 @@ import { api_musicSheetPage } from '../co-ai/api';
 | 
	
		
			
				|  |  |  import { state as baseState } from '@/state';
 | 
	
		
			
				|  |  |  import request from '@/helpers/request';
 | 
	
		
			
				|  |  |  import MEmpty from '@/components/m-empty';
 | 
	
		
			
				|  |  | -import { postMessage } from '@/helpers/native-message';
 | 
	
		
			
				|  |  | +import { listenerMessage, postMessage } from '@/helpers/native-message';
 | 
	
		
			
				|  |  |  import { audioPlayType } from '@/helpers/constant';
 | 
	
		
			
				|  |  |  import MusicDetail from './music-detail';
 | 
	
		
			
				|  |  |  import TheVip from '@/components/the-vip';
 | 
	
	
		
			
				|  | @@ -150,6 +152,7 @@ export default defineComponent({
 | 
	
		
			
				|  |  |          name: ''
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      });
 | 
	
		
			
				|  |  | +    const tabsRef = ref();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      const musicForms = reactive({
 | 
	
		
			
				|  |  |        page: 1,
 | 
	
	
		
			
				|  | @@ -166,6 +169,7 @@ export default defineComponent({
 | 
	
		
			
				|  |  |        tagActive: {} as any,
 | 
	
		
			
				|  |  |        childSelectId: null as any
 | 
	
		
			
				|  |  |      });
 | 
	
		
			
				|  |  | +    const contentRef = ref()
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      const searchValue = computed(() => {
 | 
	
		
			
				|  |  |        if (state.tabActive === 'RECOMMEND') {
 | 
	
	
		
			
				|  | @@ -251,6 +255,24 @@ export default defineComponent({
 | 
	
		
			
				|  |  |        getMusicList();
 | 
	
		
			
				|  |  |      };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    const onReset = () => {
 | 
	
		
			
				|  |  | +      //
 | 
	
		
			
				|  |  | +      state.sNt = '';
 | 
	
		
			
				|  |  | +      state.sAPT = '';
 | 
	
		
			
				|  |  | +      data.tagActiveId = '';
 | 
	
		
			
				|  |  | +      data.childSelectId = null;
 | 
	
		
			
				|  |  | +      data.selectParents = {}
 | 
	
		
			
				|  |  | +      state.allSearch.bookVersionId = data.childSelectId || data.tagActiveId;
 | 
	
		
			
				|  |  | +      state.allSearch.audioPlayTypes = state.sAPT
 | 
	
		
			
				|  |  | +        ? state.sAPT === 'PLAY_SING'
 | 
	
		
			
				|  |  | +          ? ['SING', 'PLAY']
 | 
	
		
			
				|  |  | +          : [state.sAPT]
 | 
	
		
			
				|  |  | +        : [];
 | 
	
		
			
				|  |  | +      state.allSearch.musicTagIds = state.sNt;
 | 
	
		
			
				|  |  | +      state.searchPopup = false;
 | 
	
		
			
				|  |  | +      onSearch();
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      const onDetail = (item: any) => {
 | 
	
		
			
				|  |  |        state.item = item;
 | 
	
		
			
				|  |  |        state.musicDetailPopup = true;
 | 
	
	
		
			
				|  | @@ -358,11 +380,17 @@ export default defineComponent({
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    const tabResize = () => {
 | 
	
		
			
				|  |  | +      tabsRef.value?.resize();
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      onMounted(async () => {
 | 
	
		
			
				|  |  |        if (route.query.type) {
 | 
	
		
			
				|  |  |          state.tabActive = route.query.type;
 | 
	
		
			
				|  |  |          state.isAllStatus = false;
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      // tabsRef
 | 
	
		
			
				|  |  |        // 场景
 | 
	
		
			
				|  |  |        const tempAudio = Object.keys(audioPlayType).map(key => {
 | 
	
		
			
				|  |  |          return {
 | 
	
	
		
			
				|  | @@ -373,10 +401,20 @@ export default defineComponent({
 | 
	
		
			
				|  |  |        state.audioPlayTypeList = [{ name: '全部', id: '' }, ...tempAudio];
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |        state.loading = true;
 | 
	
		
			
				|  |  | -      getUserInfo()
 | 
	
		
			
				|  |  | +      getUserInfo();
 | 
	
		
			
				|  |  |        await getTags();
 | 
	
		
			
				|  |  |        await getMusicTagTree();
 | 
	
		
			
				|  |  |        getMusicList();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      window.addEventListener('resize', tabResize);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      listenerMessage('webViewOnResume', () => {
 | 
	
		
			
				|  |  | +        tabResize();
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +    });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    onUnmounted(() => {
 | 
	
		
			
				|  |  | +      window.removeEventListener('resize', tabResize);
 | 
	
		
			
				|  |  |      });
 | 
	
		
			
				|  |  |      return () => (
 | 
	
		
			
				|  |  |        <div
 | 
	
	
		
			
				|  | @@ -404,6 +442,7 @@ export default defineComponent({
 | 
	
		
			
				|  |  |                        styles.leftArrow
 | 
	
		
			
				|  |  |                      ]}></i>
 | 
	
		
			
				|  |  |                    <Tabs
 | 
	
		
			
				|  |  | +                    ref={tabsRef}
 | 
	
		
			
				|  |  |                      class={styles.tabSection}
 | 
	
		
			
				|  |  |                      v-model:active={state.tabActive}
 | 
	
		
			
				|  |  |                      shrink
 | 
	
	
		
			
				|  | @@ -419,6 +458,7 @@ export default defineComponent({
 | 
	
		
			
				|  |  |                            onSearch();
 | 
	
		
			
				|  |  |                          }
 | 
	
		
			
				|  |  |                        } else {
 | 
	
		
			
				|  |  | +                        state.searchPopup = false;
 | 
	
		
			
				|  |  |                          state.isAllStatus = false;
 | 
	
		
			
				|  |  |                          onSearch();
 | 
	
		
			
				|  |  |                        }
 | 
	
	
		
			
				|  | @@ -453,6 +493,9 @@ export default defineComponent({
 | 
	
		
			
				|  |  |              background={'transparent'}
 | 
	
		
			
				|  |  |              inputBackground="transparent"
 | 
	
		
			
				|  |  |              class={styles.mSearch11}
 | 
	
		
			
				|  |  | +            onFocus={() => {
 | 
	
		
			
				|  |  | +              state.searchPopup = false;
 | 
	
		
			
				|  |  | +            }}
 | 
	
		
			
				|  |  |              onSearch={(val: any) => {
 | 
	
		
			
				|  |  |                if (state.tabActive === 'RECOMMEND') {
 | 
	
		
			
				|  |  |                  state.recommendSearch.name = val;
 | 
	
	
		
			
				|  | @@ -463,6 +506,7 @@ export default defineComponent({
 | 
	
		
			
				|  |  |                } else {
 | 
	
		
			
				|  |  |                  state.allSearch.name = val;
 | 
	
		
			
				|  |  |                }
 | 
	
		
			
				|  |  | +              state.searchPopup = false;
 | 
	
		
			
				|  |  |                onSearch();
 | 
	
		
			
				|  |  |              }}></MSearch>
 | 
	
		
			
				|  |  |          </MSticky>
 | 
	
	
		
			
				|  | @@ -513,7 +557,12 @@ export default defineComponent({
 | 
	
		
			
				|  |  |                                </span>
 | 
	
		
			
				|  |  |                              )}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                            {item.composer && <p>{item.composer}</p>}
 | 
	
		
			
				|  |  | +                            {item.composer && (
 | 
	
		
			
				|  |  | +                              <p>
 | 
	
		
			
				|  |  | +                                {item.composer}
 | 
	
		
			
				|  |  | +                                {item.composer}
 | 
	
		
			
				|  |  | +                              </p>
 | 
	
		
			
				|  |  | +                            )}
 | 
	
		
			
				|  |  |                            </div>
 | 
	
		
			
				|  |  |                          </div>
 | 
	
		
			
				|  |  |                        ),
 | 
	
	
		
			
				|  | @@ -547,7 +596,6 @@ export default defineComponent({
 | 
	
		
			
				|  |  |                            <div
 | 
	
		
			
				|  |  |                              class={[
 | 
	
		
			
				|  |  |                                styles.subjectItem,
 | 
	
		
			
				|  |  | -                              styles.subjectItem4,
 | 
	
		
			
				|  |  |                                subject.id === state.sNt && styles.active
 | 
	
		
			
				|  |  |                              ]}
 | 
	
		
			
				|  |  |                              onClick={() => {
 | 
	
	
		
			
				|  | @@ -583,7 +631,7 @@ export default defineComponent({
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                    {data.tags.length > 0 && (
 | 
	
		
			
				|  |  |                      <>
 | 
	
		
			
				|  |  | -                      <div class={styles.title}>
 | 
	
		
			
				|  |  | +                      <div class={styles.title} ref={contentRef}>
 | 
	
		
			
				|  |  |                          {data.tags[0]?.columnName}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                          {state.isTagExpand && (
 | 
	
	
		
			
				|  | @@ -616,11 +664,14 @@ export default defineComponent({
 | 
	
		
			
				|  |  |                              )
 | 
	
		
			
				|  |  |                          )}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                        {!state.isTagExpand && (
 | 
	
		
			
				|  |  | +                        {!state.isTagExpand && data.tags.length > 5 && (
 | 
	
		
			
				|  |  |                            <div
 | 
	
		
			
				|  |  |                              class={[styles.subjectItem]}
 | 
	
		
			
				|  |  |                              onClick={() => {
 | 
	
		
			
				|  |  |                                state.isTagExpand = true;
 | 
	
		
			
				|  |  | +                              nextTick(() => {
 | 
	
		
			
				|  |  | +                                contentRef.value?.scrollIntoView({ behavior: 'smooth', block: 'start' })
 | 
	
		
			
				|  |  | +                              })
 | 
	
		
			
				|  |  |                              }}>
 | 
	
		
			
				|  |  |                              更多 <Icon name="arrow-down" />
 | 
	
		
			
				|  |  |                            </div>
 | 
	
	
		
			
				|  | @@ -638,10 +689,8 @@ export default defineComponent({
 | 
	
		
			
				|  |  |                  </div>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  <div class={styles.searchHead}>
 | 
	
		
			
				|  |  | -                  <span
 | 
	
		
			
				|  |  | -                    class={styles.cancel}
 | 
	
		
			
				|  |  | -                    onClick={() => (state.searchPopup = false)}>
 | 
	
		
			
				|  |  | -                    取消
 | 
	
		
			
				|  |  | +                  <span class={styles.cancel} onClick={() => onReset()}>
 | 
	
		
			
				|  |  | +                    重置
 | 
	
		
			
				|  |  |                    </span>
 | 
	
		
			
				|  |  |                    {/* <span>筛选</span> */}
 | 
	
		
			
				|  |  |                    <span
 |