|  | @@ -1,8 +1,17 @@
 | 
	
		
			
				|  |  | +import { Sticky, Cell, Tag, Icon, Popup, Tabs, Tab, Dialog } from 'vant'
 | 
	
		
			
				|  |  |  import { defineComponent, onMounted, onUnmounted, ref } from 'vue'
 | 
	
		
			
				|  |  | +// import Search from '@/components/col-search'
 | 
	
		
			
				|  |  |  import { useLocalStorage } from '@vueuse/core'
 | 
	
		
			
				|  |  | +// import AlbumItem from '../album/item'
 | 
	
		
			
				|  |  |  import AlbumList from '../album'
 | 
	
		
			
				|  |  | +// import MusicItem from '../list/item'
 | 
	
		
			
				|  |  |  import MusicList from '../list'
 | 
	
		
			
				|  |  |  import styles from './index.module.less'
 | 
	
		
			
				|  |  | +// import classNames from 'classnames'
 | 
	
		
			
				|  |  | +// import request from '@/helpers/request'
 | 
	
		
			
				|  |  | +import SelectTag from './select-tag'
 | 
	
		
			
				|  |  | +// import ColResult from '@/components/col-result'
 | 
	
		
			
				|  |  | +// import { orderStatus } from '@/views/order-detail/orderStatus'
 | 
	
		
			
				|  |  |  import { useRoute, useRouter } from 'vue-router'
 | 
	
		
			
				|  |  |  import { getRandomKey, musicBuy } from '../music'
 | 
	
		
			
				|  |  |  import { mitter } from './header'
 | 
	
	
		
			
				|  | @@ -11,16 +20,39 @@ export default defineComponent({
 | 
	
		
			
				|  |  |    name: 'MusicSearch',
 | 
	
		
			
				|  |  |    emits: ['confirm'],
 | 
	
		
			
				|  |  |    setup() {
 | 
	
		
			
				|  |  | +    const searchInputRef = ref()
 | 
	
		
			
				|  |  |      localStorage.setItem('behaviorId', getRandomKey())
 | 
	
		
			
				|  |  |      const route = useRoute()
 | 
	
		
			
				|  |  |      const router = useRouter()
 | 
	
		
			
				|  |  | +    const loading = ref(false)
 | 
	
		
			
				|  |  |      const keyword = ref(route.query.keyword || '')
 | 
	
		
			
				|  |  |      const tagids = ref(route.query.tagids || '')
 | 
	
		
			
				|  |  | -    const subject = ref()
 | 
	
		
			
				|  |  | +    const albumRows = ref([])
 | 
	
		
			
				|  |  | +    const sheetRows = ref([])
 | 
	
		
			
				|  |  |      const tagVisibility = ref(false)
 | 
	
		
			
				|  |  |      const words = useLocalStorage<string[]>('music-search', [])
 | 
	
		
			
				|  |  |      const activeTab = ref('songe')
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    const FetchList = async () => {
 | 
	
		
			
				|  |  | +      // loading.value = true
 | 
	
		
			
				|  |  | +      // try {
 | 
	
		
			
				|  |  | +      //   const res = await request.post(
 | 
	
		
			
				|  |  | +      //     '/api-student/music/sheet/albumAndSheetList',
 | 
	
		
			
				|  |  | +      //     {
 | 
	
		
			
				|  |  | +      //       data: {
 | 
	
		
			
				|  |  | +      //         albumRow: 3,
 | 
	
		
			
				|  |  | +      //         sheetRow: 10,
 | 
	
		
			
				|  |  | +      //         search: keyword.value,
 | 
	
		
			
				|  |  | +      //         musicTagIds: tagids.value
 | 
	
		
			
				|  |  | +      //       }
 | 
	
		
			
				|  |  | +      //     }
 | 
	
		
			
				|  |  | +      //   )
 | 
	
		
			
				|  |  | +      //   albumRows.value = res.data.musicAlbumList.rows
 | 
	
		
			
				|  |  | +      //   sheetRows.value = res.data.musicSheetList.rows
 | 
	
		
			
				|  |  | +      // } catch (error) {}
 | 
	
		
			
				|  |  | +      // loading.value = false
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      const onSearch = val => {
 | 
	
		
			
				|  |  |        keyword.value = val
 | 
	
		
			
				|  |  |        const indexOf = words.value.indexOf(val)
 | 
	
	
		
			
				|  | @@ -32,23 +64,20 @@ export default defineComponent({
 | 
	
		
			
				|  |  |          words.value.length = Math.min(words.value.length, 5)
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |        const activeRef = activeTab.value === 'album' ? albumList : musicList
 | 
	
		
			
				|  |  | +      console.log(val)
 | 
	
		
			
				|  |  |        ;(activeRef.value as any).onSearch?.(val)
 | 
	
		
			
				|  |  | +      // FetchList()
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      const onComfirm = tags => {
 | 
	
		
			
				|  |  |        const data = Object.values(tags).flat().filter(Boolean).join(',')
 | 
	
		
			
				|  |  |        tagids.value = data
 | 
	
		
			
				|  |  | +      // FetchList()
 | 
	
		
			
				|  |  |        const activeRef = activeTab.value === 'album' ? albumList : musicList
 | 
	
		
			
				|  |  |        ;(activeRef.value as any).onComfirm?.(tags)
 | 
	
		
			
				|  |  |        tagVisibility.value = false
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    const onConfirmSubject = (id: any) => {
 | 
	
		
			
				|  |  | -      subject.value = id
 | 
	
		
			
				|  |  | -      const activeRef = activeTab.value === 'album' ? albumList : musicList
 | 
	
		
			
				|  |  | -      ;(activeRef.value as any).onComfirmSubject?.(subject)
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |      const albumList = ref(null)
 | 
	
		
			
				|  |  |      const musicList = ref(null)
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -60,14 +89,14 @@ export default defineComponent({
 | 
	
		
			
				|  |  |        mitter.on('changeTab', changeTab)
 | 
	
		
			
				|  |  |        mitter.on('search', onSearch)
 | 
	
		
			
				|  |  |        mitter.on('confirm', onComfirm)
 | 
	
		
			
				|  |  | -      mitter.on('confirmSubject', onConfirmSubject)
 | 
	
		
			
				|  |  | +      // ;(activeRef.value as any).onSearch?.('')
 | 
	
		
			
				|  |  | +      // console.log(searchInputRef.value)
 | 
	
		
			
				|  |  |      })
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      onUnmounted(() => {
 | 
	
		
			
				|  |  |        mitter.off('changeTab', changeTab)
 | 
	
		
			
				|  |  |        mitter.off('search', onSearch)
 | 
	
		
			
				|  |  |        mitter.off('confirm', onComfirm)
 | 
	
		
			
				|  |  | -      mitter.off('confirmSubject', onConfirmSubject)
 | 
	
		
			
				|  |  |      })
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      return () => {
 | 
	
	
		
			
				|  | @@ -79,8 +108,7 @@ export default defineComponent({
 | 
	
		
			
				|  |  |                ref={albumList}
 | 
	
		
			
				|  |  |                defauleParams={{
 | 
	
		
			
				|  |  |                  search: keyword.value,
 | 
	
		
			
				|  |  | -                tagids: tagids.value,
 | 
	
		
			
				|  |  | -                subjectIds: subject.value
 | 
	
		
			
				|  |  | +                tagids: tagids.value
 | 
	
		
			
				|  |  |                }}
 | 
	
		
			
				|  |  |              />
 | 
	
		
			
				|  |  |            ) : (
 | 
	
	
		
			
				|  | @@ -99,11 +127,21 @@ export default defineComponent({
 | 
	
		
			
				|  |  |                }}
 | 
	
		
			
				|  |  |                defauleParams={{
 | 
	
		
			
				|  |  |                  search: keyword.value,
 | 
	
		
			
				|  |  | -                tagids: tagids.value,
 | 
	
		
			
				|  |  | -                subjectIds: subject.value
 | 
	
		
			
				|  |  | +                tagids: tagids.value
 | 
	
		
			
				|  |  |                }}
 | 
	
		
			
				|  |  |              />
 | 
	
		
			
				|  |  |            )}
 | 
	
		
			
				|  |  | +          {/* <Popup
 | 
	
		
			
				|  |  | +            show={tagVisibility.value}
 | 
	
		
			
				|  |  | +            round
 | 
	
		
			
				|  |  | +            closeable
 | 
	
		
			
				|  |  | +            position="bottom"
 | 
	
		
			
				|  |  | +            style={{ height: '60%' }}
 | 
	
		
			
				|  |  | +            teleport="body"
 | 
	
		
			
				|  |  | +            onUpdate:show={val => (tagVisibility.value = val)}
 | 
	
		
			
				|  |  | +          >
 | 
	
		
			
				|  |  | +            <SelectTag onConfirm={onComfirm} onCancel={() => {}} />
 | 
	
		
			
				|  |  | +          </Popup> */}
 | 
	
		
			
				|  |  |          </div>
 | 
	
		
			
				|  |  |        )
 | 
	
		
			
				|  |  |      }
 |