v2.0.0
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
<template>
|
||||
<div id="my-list" :class="$style.container" @click="handleContainerClick">
|
||||
<MyList ref="myList" :list-id="listId" @show-menu="$refs.musicList.handleMenuClick()" />
|
||||
<MusicList ref="musicList" :list-id="listId" @show-menu="$refs.myList.handleMenuClick()" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getListPrevSelectId } from '@renderer/utils/data'
|
||||
|
||||
import MyList from './MyList'
|
||||
import MusicList from './MusicList'
|
||||
|
||||
export default {
|
||||
name: 'List',
|
||||
components: {
|
||||
MyList,
|
||||
MusicList,
|
||||
},
|
||||
async beforeRouteEnter(to, from, next) {
|
||||
let id = to.query.id
|
||||
if (!id) {
|
||||
id = await getListPrevSelectId()
|
||||
next({
|
||||
path: to.path,
|
||||
query: { id },
|
||||
})
|
||||
} else next()
|
||||
},
|
||||
beforeRouteUpdate(to, from) {
|
||||
// console.log(to, from)
|
||||
if (to.query.updated) return
|
||||
let id = to.query.id
|
||||
if (id == null) return
|
||||
// if (!getList(id)) {
|
||||
// id = defaultList.id
|
||||
// }
|
||||
this.listId = id
|
||||
const scrollIndex = to.query.scrollIndex
|
||||
const isAnimation = from.query.id == to.query.id
|
||||
this.$refs.musicList?.handleRestoreScroll(scrollIndex, isAnimation)
|
||||
|
||||
return {
|
||||
path: '/list',
|
||||
query: { id, updated: true },
|
||||
}
|
||||
},
|
||||
beforeRouteLeave(to, from) {
|
||||
this.$refs.musicList?.saveListPosition()
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
listId: null,
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.listId = this.$route.query.id
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="less" module>
|
||||
@import '@renderer/assets/styles/layout.less';
|
||||
|
||||
.container {
|
||||
overflow: hidden;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
</style>
|
||||
Reference in New Issue
Block a user