123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- import {
- clearHistoryList,
- setHistoryList,
- removeHistoryList,
- setMode,
- setUserId
- } from '@/utils/storage'
- import * as types from './mutation-types'
- function findIndex(list, music) {
- return list.findIndex(item => {
- return item.id === music.id
- })
- }
- export default {
- // 设置播放列表
- setPlaylist: function ({ commit }, { list }) {
- commit(types.SET_PLAYLIST, list)
- commit(types.SET_ORDERLIST, list)
- },
- // 选择播放(会更新整个播放列表)
- selectPlay: function ({ commit }, { list, index }) {
- commit(types.SET_PLAYLIST, list)
- commit(types.SET_ORDERLIST, list)
- commit(types.SET_CURRENTINDEX, index)
- commit(types.SET_PLAYING, true)
- },
- // 选择播放(会插入一条到播放列表)
- selectAddPlay: function ({ commit, state }, music) {
- let list = [...state.playlist]
- // 查询当前播放列表是否有代插入的音乐,并返回其索引值
- let index = findIndex(list, music)
- // 当前播放列表有待插入的音乐时,直接改变当前播放音乐的索引值
- if (index > -1) {
- commit(types.SET_CURRENTINDEX, index)
- } else {
- list.unshift(music)
- commit(types.SET_PLAYLIST, list)
- commit(types.SET_ORDERLIST, list)
- commit(types.SET_CURRENTINDEX, 0)
- }
- commit(types.SET_PLAYING, true)
- },
- // 清空播放列表
- clearPlayList: function ({ commit }) {
- commit(types.SET_PLAYING, false)
- commit(types.SET_CURRENTINDEX, -1)
- commit(types.SET_PLAYLIST, [])
- commit(types.SET_ORDERLIST, [])
- },
- // 删除正在播放列表中的歌曲
- removerPlayListItem: function (
- { commit, state },
- { list, index }
- ) {
- let currentIndex = state.currentIndex
- if (index < state.currentIndex || list.length === state.currentIndex) {
- currentIndex--
- commit(types.SET_CURRENTINDEX, currentIndex)
- }
- commit(types.SET_PLAYLIST, list)
- commit(types.SET_ORDERLIST, list)
- if (!list.length) {
- commit(types.SET_PLAYING, false)
- } else {
- commit(types.SET_PLAYING, true)
- }
- },
- // 设置播放历史
- setHistory: function ({ commit }, music) {
- commit(types.SET_HISTORYLIST, setHistoryList(music))
- },
- // 删除播放历史
- removeHistory: function ({ commit }, music) {
- commit(types.SET_HISTORYLIST, removeHistoryList(music))
- },
- // 清空播放历史
- clearHistory: function ({ commit }) {
- commit(types.SET_HISTORYLIST, clearHistoryList())
- },
- // 设置播放模式
- setPlayMode: function ({ commit }, mode) {
- commit(types.SET_PLAYMODE, setMode(mode))
- },
- // 设置网易云用户UID
- setUid: function ({ commit }, uid) {
- commit(types.SET_UID, setUserId(uid))
- }
- }
|