index.js 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. // import dao from '../../../../tools/services/new_dao';
  2. const app = getApp();
  3. Component({
  4. properties: {
  5. show: {
  6. type: Boolean,
  7. value: false
  8. },
  9. music: {
  10. type: Array,
  11. value: []
  12. }
  13. },
  14. observers: {
  15. "music": function (list) {
  16. let key = list[0] ? list[0].key : "";
  17. if (key === this.data.key) return
  18. this.uplist(list)
  19. }
  20. },
  21. key: -1,
  22. data: {
  23. recommendMusicList: [], // 推荐音乐列表
  24. itemHeight: 0
  25. },
  26. attached() {
  27. let music_data = app.globalData.menulist || [];
  28. music_data.forEach((element, index) => {
  29. element.selected = false;
  30. element.status = false;
  31. element.key = index;
  32. });
  33. this.setData({
  34. recommendMusicList: music_data,
  35. });
  36. },
  37. ready() {
  38. // this._tracks = global.edit.tracks;
  39. },
  40. methods: {
  41. uplist(list) {
  42. let key = list[0] ? list[0].key : "";
  43. const recommendMusicList = JSON.parse(JSON.stringify(this.data.recommendMusicList));
  44. for (let i = 0; i < recommendMusicList.length; i++) {
  45. recommendMusicList[i].selected = false;
  46. recommendMusicList[i].status = 'paused';
  47. }
  48. this.setData({
  49. key,
  50. recommendMusicList,
  51. })
  52. },
  53. onTapRecommendMisic(e) {
  54. // const key = e.currentTarget.dataset.key;
  55. let key = e.currentTarget.dataset.key - 0;
  56. const recommendMusicList = this.data.recommendMusicList;
  57. for (let i = 0; i < recommendMusicList.length; i++) {
  58. if (recommendMusicList[i].key === key) {
  59. if (recommendMusicList[i].selected) {
  60. recommendMusicList[i].selected = false;
  61. recommendMusicList[i].status = 'paused';
  62. key = "";
  63. // 停掉音乐
  64. this._delMusic()
  65. } else {
  66. recommendMusicList[i].selected = true;
  67. recommendMusicList[i].status = 'playing';
  68. // 开始播放音乐, 并且播放器seek 0
  69. const musicData = recommendMusicList[i];
  70. this._setMusic(musicData); // 设置音乐
  71. }
  72. } else {
  73. recommendMusicList[i].selected = false;
  74. recommendMusicList[i].status = 'paused';
  75. }
  76. }
  77. this.setData({
  78. key,
  79. recommendMusicList,
  80. })
  81. },
  82. _delMusic() {
  83. // 删掉音乐
  84. this.triggerEvent('remove')
  85. },
  86. _setMusic(musicData) {
  87. // 创建音乐clip
  88. this.triggerEvent('change', musicData)
  89. }
  90. }
  91. })