|
@@ -21,6 +21,7 @@ import { defineComponent, reactive, ref, onMounted, nextTick, computed } from 'v
|
|
|
import { useRoute, useRouter } from 'vue-router'
|
|
|
import { getImage } from './images'
|
|
|
import styles from './index.module.less'
|
|
|
+import OSticky from '@/components/o-sticky'
|
|
|
|
|
|
export default defineComponent({
|
|
|
name: 'accompany-music-list',
|
|
@@ -37,6 +38,7 @@ export default defineComponent({
|
|
|
loading: false,
|
|
|
finished: false,
|
|
|
refreshing: false,
|
|
|
+ musicTree: [] as any,
|
|
|
pagenation: {
|
|
|
page: 1,
|
|
|
rows: 20
|
|
@@ -47,8 +49,32 @@ export default defineComponent({
|
|
|
list: [] as any,
|
|
|
keyword: ''
|
|
|
})
|
|
|
+ const getTree = async () => {
|
|
|
+ try {
|
|
|
+ const res: any = await request.get(
|
|
|
+ state.platformApi + '/musicSheetCategories/queryTree?enable=true'
|
|
|
+ )
|
|
|
+ if (Array.isArray(res?.data)) {
|
|
|
+ data.musicTree = res.data.map((n: any, index: number) => {
|
|
|
+ return {
|
|
|
+ ...n,
|
|
|
+ id: n.id,
|
|
|
+ icon: n.coverImg,
|
|
|
+ btnIcon: getImage('b2.svg'),
|
|
|
+ color: '#9881FF',
|
|
|
+ title: n.name,
|
|
|
+ subtitle: '',
|
|
|
+ btnText: 'GO >'
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ getList()
|
|
|
+ } catch (error) {
|
|
|
+ console.log(error)
|
|
|
+ }
|
|
|
+ }
|
|
|
const option1 = computed(() => {
|
|
|
- const v1: any = props.musicTree.find((n: any) => n.id == route.query.categorieid)
|
|
|
+ const v1: any = data.musicTree.find((n: any) => n.id == route.query.categorieid)
|
|
|
// console.log('🚀 ~ v1', v1)
|
|
|
if (Array.isArray(v1?.musicSheetCategoriesList)) {
|
|
|
const list = v1.musicSheetCategoriesList.map((m: any) => {
|
|
@@ -130,9 +156,6 @@ export default defineComponent({
|
|
|
data.list = []
|
|
|
getList()
|
|
|
}
|
|
|
- onMounted(() => {
|
|
|
- getList()
|
|
|
- })
|
|
|
//进入云教练
|
|
|
const openView = (item: any) => {
|
|
|
let src = `${location.origin}/orchestra-music-score/?id=${item.id}`
|
|
@@ -148,95 +171,100 @@ export default defineComponent({
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
- const headeRef = ref()
|
|
|
- const headerData = reactive({
|
|
|
- height: 0
|
|
|
- })
|
|
|
onMounted(() => {
|
|
|
- const rect = useRect(headeRef)
|
|
|
- headerData.height = rect.height
|
|
|
+ // getTree()
|
|
|
})
|
|
|
return () => (
|
|
|
<div class={styles['accompany-music-list']}>
|
|
|
- <div class={styles.heade} ref={headeRef}>
|
|
|
- <DropdownMenu>
|
|
|
- <DropdownItem
|
|
|
- v-model:modelValue={data.value1}
|
|
|
- options={option1.value}
|
|
|
- onChange={() => onSearch()}
|
|
|
- ></DropdownItem>
|
|
|
- <DropdownItem
|
|
|
- v-model:modelValue={data.value2}
|
|
|
- options={option2.value as any}
|
|
|
- onChange={() => onSearch()}
|
|
|
- ></DropdownItem>
|
|
|
- </DropdownMenu>
|
|
|
- <div class={styles.filter}>
|
|
|
- <Search
|
|
|
- placeholder="请输入搜索关键词"
|
|
|
- background="#F8F8F8"
|
|
|
- shape="round"
|
|
|
- showAction={true}
|
|
|
- v-model:modelValue={data.keyword}
|
|
|
- >
|
|
|
- {{
|
|
|
- // label: () => (
|
|
|
- // <Popover
|
|
|
- // v-model:show={data.PopoverOpen}
|
|
|
- // actions={actions}
|
|
|
- // placement="bottom-start"
|
|
|
- // >
|
|
|
- // {{
|
|
|
- // reference: () => (
|
|
|
- // <div>
|
|
|
- // 长笛 <Icon name="arrow" />
|
|
|
- // </div>
|
|
|
- // )
|
|
|
- // }}
|
|
|
- // </Popover>
|
|
|
- // ),
|
|
|
- action: () => (
|
|
|
- <div class={styles.searchBtn} onClick={() => onSearch()}>
|
|
|
- 搜索
|
|
|
- </div>
|
|
|
- )
|
|
|
- }}
|
|
|
- </Search>
|
|
|
+ <OSticky
|
|
|
+ class={styles.heade}
|
|
|
+ >
|
|
|
+ <div>
|
|
|
+ <DropdownMenu>
|
|
|
+ <DropdownItem
|
|
|
+ v-model:modelValue={data.value1}
|
|
|
+ options={option1.value}
|
|
|
+ onChange={() => onSearch()}
|
|
|
+ ></DropdownItem>
|
|
|
+ <DropdownItem
|
|
|
+ v-model:modelValue={data.value2}
|
|
|
+ options={option2.value as any}
|
|
|
+ onChange={() => onSearch()}
|
|
|
+ ></DropdownItem>
|
|
|
+ </DropdownMenu>
|
|
|
+ <div class={styles.filter}>
|
|
|
+ <Search
|
|
|
+ placeholder="请输入搜索关键词"
|
|
|
+ background="#F8F8F8"
|
|
|
+ shape="round"
|
|
|
+ showAction={true}
|
|
|
+ v-model:modelValue={data.keyword}
|
|
|
+ >
|
|
|
+ {{
|
|
|
+ // label: () => (
|
|
|
+ // <Popover
|
|
|
+ // v-model:show={data.PopoverOpen}
|
|
|
+ // actions={actions}
|
|
|
+ // placement="bottom-start"
|
|
|
+ // >
|
|
|
+ // {{
|
|
|
+ // reference: () => (
|
|
|
+ // <div>
|
|
|
+ // 长笛 <Icon name="arrow" />
|
|
|
+ // </div>
|
|
|
+ // )
|
|
|
+ // }}
|
|
|
+ // </Popover>
|
|
|
+ // ),
|
|
|
+ action: () => (
|
|
|
+ <div class={styles.searchBtn} onClick={() => onSearch()}>
|
|
|
+ 搜索
|
|
|
+ </div>
|
|
|
+ )
|
|
|
+ }}
|
|
|
+ </Search>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- {headerData.height && <div style={{ height: headerData.height + 'px' }}></div>}
|
|
|
+ </OSticky>
|
|
|
<OFullRefresh
|
|
|
v-model:modelValue={data.refreshing}
|
|
|
onRefresh={onRefresh}
|
|
|
- style="min-height: 100vh;"
|
|
|
+ style="min-height: calc(100vh - var(--van-dropdown-menu-height) - 1.6rem)"
|
|
|
>
|
|
|
- <List
|
|
|
- loading-text=" "
|
|
|
- immediateCheck={false}
|
|
|
- loading={data.loading}
|
|
|
- v-model:finished={data.finished}
|
|
|
- finishedText="没有更多了"
|
|
|
- onLoad={() => {
|
|
|
- getList()
|
|
|
- }}
|
|
|
- >
|
|
|
- <CellGroup inset>
|
|
|
- {data.list.map((item: any) => {
|
|
|
- return (
|
|
|
- <Cell size="large" center title={item.musicSheetName} isLink onClick={() => openView(item)}>
|
|
|
- {{
|
|
|
- icon: () => (
|
|
|
- <Icon style={{ marginRight: '12px' }} size={40} name={imgDefault} />
|
|
|
- )
|
|
|
- }}
|
|
|
- </Cell>
|
|
|
- )
|
|
|
- })}
|
|
|
- </CellGroup>
|
|
|
- </List>
|
|
|
+ {!data.loading && !!data.list.length && (
|
|
|
+ <List
|
|
|
+ loading-text=" "
|
|
|
+ immediateCheck={false}
|
|
|
+ loading={data.loading}
|
|
|
+ v-model:finished={data.finished}
|
|
|
+ finishedText="没有更多了"
|
|
|
+ onLoad={() => {
|
|
|
+ getList()
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ <CellGroup inset>
|
|
|
+ {data.list.map((item: any) => {
|
|
|
+ return (
|
|
|
+ <Cell
|
|
|
+ size="large"
|
|
|
+ center
|
|
|
+ title={item.musicSheetName}
|
|
|
+ isLink
|
|
|
+ onClick={() => openView(item)}
|
|
|
+ >
|
|
|
+ {{
|
|
|
+ icon: () => (
|
|
|
+ <Icon style={{ marginRight: '12px' }} size={40} name={imgDefault} />
|
|
|
+ )
|
|
|
+ }}
|
|
|
+ </Cell>
|
|
|
+ )
|
|
|
+ })}
|
|
|
+ </CellGroup>
|
|
|
+ </List>
|
|
|
+ )}
|
|
|
+ {!data.loading && !data.list.length && <OEmpty tips="暂无曲谱" />}
|
|
|
</OFullRefresh>
|
|
|
-
|
|
|
- {!data.loading && !data.list.length && <OEmpty tips="空空如也" />}
|
|
|
</div>
|
|
|
)
|
|
|
}
|