歌曲列表右击菜单新增跳转到当前歌曲源官方详情页菜单

This commit is contained in:
lyswhut
2020-06-25 23:10:38 +08:00
parent 9eec1adf77
commit 5d91643637
29 changed files with 116 additions and 13 deletions
+15 -1
View File
@@ -36,7 +36,8 @@ div(:class="$style.download")
<script>
import { mapGetters, mapActions, mapMutations } from 'vuex'
import { checkPath, openDirInExplorer, findParentNode } from '../utils'
import { checkPath, openDirInExplorer, findParentNode, openUrl } from '../utils'
import musicSdk from '../utils/music'
import path from 'path'
export default {
@@ -63,6 +64,7 @@ export default {
file: true,
search: true,
remove: true,
sourceDetail: true,
},
menuLocation: {
x: 0,
@@ -145,6 +147,11 @@ export default {
action: 'file',
hide: !this.listMenu.itemMenuControl.file,
},
{
name: this.$t('view.download.menu_source_detail'),
action: 'sourceDetail',
disabled: !this.listMenu.itemMenuControl.sourceDetail,
},
{
name: this.$t('view.download.menu_search'),
action: 'search',
@@ -359,6 +366,7 @@ export default {
this.selectdData = []
},
handleListItemRigthClick(event, index) {
this.listMenu.itemMenuControl.sourceDetail = !!musicSdk[this.showList[index].musicInfo.source].getMusicDetailPageUrl
let dom_selected = this.$refs.dom_tbody.querySelector('tr.selected')
if (dom_selected) dom_selected.classList.remove('selected')
this.$refs.dom_tbody.querySelectorAll('tr')[index].classList.add('selected')
@@ -401,6 +409,7 @@ export default {
this.hideListMenu()
// let key
let item
let url
switch (action && action.action) {
case 'play':
@@ -456,6 +465,11 @@ export default {
})
}
break
case 'sourceDetail':
item = this.showList[index].musicInfo
url = musicSdk[item.source].getMusicDetailPageUrl(item)
if (!url) return
openUrl(url)
}
},
},
+9
View File
@@ -23,6 +23,8 @@
<script>
import { mapGetters, mapMutations, mapActions } from 'vuex'
import { openUrl } from '../utils'
import musicSdk from '../utils/music'
export default {
name: 'Leaderboard',
data() {
@@ -99,6 +101,8 @@ export default {
}
},
handleMenuClick(info) {
let minfo
let url
switch (info.action) {
case 'download':
if (this.selectedData.length) {
@@ -132,6 +136,11 @@ export default {
})
}
break
case 'sourceDetail':
minfo = this.list[info.index]
url = musicSdk[minfo.source].getMusicDetailPageUrl(minfo)
if (!url) return
openUrl(url)
}
},
testPlay(index) {
+15 -1
View File
@@ -69,7 +69,8 @@
<script>
import { mapMutations, mapGetters, mapActions } from 'vuex'
import { throttle, scrollTo, clipboardWriteText, assertApiSupport, findParentNode } from '../utils'
import { throttle, scrollTo, clipboardWriteText, assertApiSupport, findParentNode, openUrl } from '../utils'
import musicSdk from '../utils/music'
export default {
name: 'List',
data() {
@@ -120,6 +121,7 @@ export default {
moveTo: true,
download: true,
remove: true,
sourceDetail: true,
},
menuLocation: {
x: 0,
@@ -211,6 +213,11 @@ export default {
action: 'copyName',
disabled: !this.listMenu.itemMenuControl.copyName,
},
{
name: this.$t('view.list.list_source_detail'),
action: 'sourceDetail',
disabled: !this.listMenu.itemMenuControl.sourceDetail,
},
{
name: this.$t('view.list.list_add_to'),
action: 'addTo',
@@ -658,6 +665,7 @@ export default {
})
},
handleListItemRigthClick(event, index) {
this.listMenu.itemMenuControl.sourceDetail = !!musicSdk[this.list[index].source].getMusicDetailPageUrl
let dom_selected = this.$refs.dom_tbody.querySelector('tr.selected')
if (dom_selected) dom_selected.classList.remove('selected')
this.$refs.dom_tbody.querySelectorAll('tr')[index].classList.add('selected')
@@ -711,6 +719,7 @@ export default {
let index = this.listMenu.rightClickItemIndex
this.hideListMenu()
let minfo
let url
switch (action && action.action) {
case 'play':
this.testPlay(index)
@@ -765,6 +774,11 @@ export default {
this.handleRemove(index)
}
break
case 'sourceDetail':
minfo = this.list[index]
url = musicSdk[minfo.source].getMusicDetailPageUrl(minfo)
if (!url) return
openUrl(url)
}
},
},
+16 -2
View File
@@ -61,8 +61,8 @@
<script>
import { mapGetters, mapActions, mapMutations } from 'vuex'
import { scrollTo, clipboardWriteText, assertApiSupport, findParentNode } from '../utils'
// import music from '../utils/music'
import { scrollTo, clipboardWriteText, assertApiSupport, findParentNode, openUrl } from '../utils'
import musicSdk from '../utils/music'
export default {
name: 'Search',
data() {
@@ -90,6 +90,7 @@ export default {
play: true,
addTo: true,
download: true,
sourceDetail: true,
},
menuLocation: {
x: 0,
@@ -178,6 +179,11 @@ export default {
action: 'addTo',
disabled: !this.listMenu.itemMenuControl.addTo,
},
{
name: this.$t('view.search.list_source_detail'),
action: 'sourceDetail',
disabled: !this.listMenu.itemMenuControl.sourceDetail,
},
]
},
listInfo() {
@@ -414,6 +420,7 @@ export default {
return assertApiSupport(source)
},
handleListItemRigthClick(event, index) {
this.listMenu.itemMenuControl.sourceDetail = !!musicSdk[this.listInfo.list[index].source].getMusicDetailPageUrl
let dom_selected = this.$refs.dom_tbody.querySelector('tr.selected')
if (dom_selected) dom_selected.classList.remove('selected')
this.$refs.dom_tbody.querySelectorAll('tr')[index].classList.add('selected')
@@ -436,6 +443,7 @@ export default {
let index = this.listMenu.rightClickItemIndex
this.hideListMenu()
let minfo
let url
switch (action && action.action) {
case 'play':
if (this.selectedData.length) {
@@ -468,6 +476,12 @@ export default {
})
}
break
case 'sourceDetail':
minfo = this.listInfo.list[index]
url = musicSdk[minfo.source].getMusicDetailPageUrl(minfo)
if (!url) return
openUrl(url)
break
}
},
},
+9 -2
View File
@@ -61,8 +61,8 @@
<script>
import { mapGetters, mapMutations, mapActions } from 'vuex'
import { scrollTo, assertApiSupport } from '../utils'
// import music from '../utils/music'
import { scrollTo, assertApiSupport, openUrl } from '../utils'
import musicSdk from '../utils/music'
export default {
name: 'SongList',
data() {
@@ -203,6 +203,8 @@ export default {
}
},
handleMenuClick(info) {
let minfo
let url
switch (info.action) {
case 'download':
if (this.selectedData.length) {
@@ -236,6 +238,11 @@ export default {
})
}
break
case 'sourceDetail':
minfo = this.listDetail.list[info.index]
url = musicSdk[minfo.source].getMusicDetailPageUrl(minfo)
if (!url) return
openUrl(url)
}
},
testPlay(index) {