当前位置: 首页 > news >正文

vue-music 关于playlist (底部播放列表组件)

建立playlist.vue 组件,在player.vue 组件中引用,点击迷你播放器的播放列表按钮由下至上弹出这个层,所以在player.vue 播放器组件中引用

在playlist.vue 组件中首先设置对外的方法可以控制该组件的显示隐藏,通过mapGetters 获取歌单数据

播放列表功能操作:

  当前播放歌曲显示正确的icon

  点击当前歌曲播放该歌曲,对应相应的icon ,列表滚动到最上面

  删除当前单条播放歌曲,(判断当前歌曲是否为正在播放的歌曲,重置数组)

  清空整个播放列表(清空时confirm 做拦截提示)

  切换播放模式(逻辑与player组件 共享)

  收藏该歌曲(待续)

  添加歌曲到队列(待续)

 

// actions.js

export const deleteSong = function({commit,state},song){
  let playlist = state.playList.slice();
  let sequenceList = state.sequenceList.slice();
  let currentIndex = state.currentIndex;
  let pIndex = findIndex(playlist,song);
  playlist.splice(pIndex,1);
  let sIndex = findIndex(sequenceList,song);
  sequenceList.splice(sIndex,1);

  if(currentIndex > pIndex || currentIndex == playlist.length){
    currentIndex--;
  }

  commit(types.SET_PLAYLIST,playlist)
  commit(types.SET_SEQUENCE_LIST,sequenceList)
  commit(types.SET_CURRENT_INDEX,currentIndex)

  // 如果删除列表为空
  if(!playlist.length){
    commit(types.SET_PLAYING_STATE,false)
  }else{
    commit(types.SET_PLAYING_STATE,true)
  }

}

export const deleteSongList = function({commit}){
  commit(types.SET_PLAYLIST,[])
  commit(types.SET_SEQUENCE_LIST,[])
  commit(types.SET_CURRENT_INDEX,-1)
  commit(types.SET_PLAYING_STATE,false)
}

 

转载于:https://www.cnblogs.com/catbrother/p/9180493.html

相关文章:

  • 爬虫基础 2.4 会话和cookie
  • Spring boot的简单rest服务(非xml方式配置)
  • Servlet
  • Confluence 6 配置自动备份
  • 微软云端套用新模型增加精准度 减少预测模型误差
  • 【多线程系列】AQS CAS简单介绍
  • CF1063F String Journey
  • JPA(三):JPA基本注解
  • 有哪些不用编写代码就能轻松制作生成HTML5页面的工具
  • Spring Session产生的sessionid与cookies中的sessionid不一样的问题 httpOnly 设置不起作用的问题??...
  • JS中的prototype、__proto__与constructor(图解)
  • 美丽的闭包,在js中实现函数重载
  • Android 自定义时钟控件 时针、分针、秒针的绘制这一篇就够了
  • 在树莓派2或3的kali上 RCA(a/v connector)接口的正确使用方法(多图)(原创)
  • 软件行业40岁前摸索出路,介绍小型软件项目是否可以收辛苦费?事实验证这个路子行不通...
  • [译]Python中的类属性与实例属性的区别
  • 【css3】浏览器内核及其兼容性
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • Flannel解读
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • leetcode98. Validate Binary Search Tree
  • Making An Indicator With Pure CSS
  • MySQL QA
  • uni-app项目数字滚动
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 前端设计模式
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 大数据全解:定义、价值及挑战
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • # centos7下FFmpeg环境部署记录
  • #Linux(Source Insight安装及工程建立)
  • ${factoryList }后面有空格不影响
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (bean配置类的注解开发)学习Spring的第十三天
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (五)网络优化与超参数选择--九五小庞
  • (一)UDP基本编程步骤
  • (转)可以带来幸福的一本书
  • (转)人的集合论——移山之道
  • .gitignore
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
  • .NET和.COM和.CN域名区别
  • .NET牛人应该知道些什么(2):中级.NET开发人员
  • .NET中的Event与Delegates,从Publisher到Subscriber的衔接!
  • ;号自动换行
  • ??如何把JavaScript脚本中的参数传到java代码段中