index.tsx 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import { NTabPane, NTabs } from 'naive-ui'
  2. import { defineComponent, reactive } from 'vue'
  3. import MusicList from './component/music-list'
  4. import { useRoute } from 'vue-router'
  5. import { getTabsCache, setTabsCaches } from '@/hooks/use-async'
  6. import MusicSheetCategoriesList from '@views/music-library/music-sheet/component/music-sheet-categories-list'
  7. export default defineComponent({
  8. name: 'music-sheet',
  9. setup() {
  10. const state = reactive({
  11. tabName: 'MusicList' as 'MusicList' | 'TagList' | 'CategroryList',
  12. searchId: null,
  13. musicCategoryId: null
  14. })
  15. const route = useRoute()
  16. getTabsCache((val: any) => {
  17. if (val.form.tabName) {
  18. state.tabName = val.form.tabName
  19. }
  20. })
  21. const setTabName = (val: any) => {
  22. console.log('setTabName', val)
  23. state.tabName = val.tabName
  24. state.searchId = val.id
  25. }
  26. const setTabs = (val: any) => {
  27. setTabsCaches(val, 'tabName', route)
  28. }
  29. return () => {
  30. return (
  31. <div class="system-menu-container">
  32. <div class={['section-container']} style="padding-top: 0">
  33. <NTabs
  34. type="line"
  35. size="large"
  36. v-model:value={state.tabName}
  37. onUpdate:value={(val: any) => setTabs(val)}
  38. >
  39. <NTabPane name="MusicList" tab="曲目列表" v-auth="musicSheet/page1751238894313013249">
  40. <MusicList searchId={state.searchId} musicCategoryId={state.musicCategoryId} />
  41. </NTabPane>
  42. <NTabPane
  43. name="CategroryList"
  44. tab="曲目分类"
  45. v-auth="musicSheetCategories/queryTree1751238805699952641"
  46. >
  47. <MusicSheetCategoriesList
  48. onSetTabName={setTabName}
  49. onJump={(param: any) => {
  50. state.tabName = param.tabName
  51. state.musicCategoryId = param.musicCategoryId
  52. }}
  53. />
  54. {/*<TagList />*/}
  55. </NTabPane>
  56. </NTabs>
  57. </div>
  58. </div>
  59. )
  60. }
  61. }
  62. })