recommendSong.js
2.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
import PubSub from 'pubsub-js';
import request from '../../../utils/request'
Page({
/**
* 页面的初始数据
*/
data: {
day: '', // 天
month: '', // 月
recommendList: [], // 推荐列表数据
index: 0, // 点击音乐的下标
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
// 判断用户是否登录
let userInfo = wx.getStorageSync('userInfo');
if(!userInfo){
wx.showToast({
title: '请先登录',
icon: 'none',
success: () => {
// 跳转至登录界面
wx.reLaunch({
url: '/pages/login/login'
})
}
})
}
// 更新日期的状态数据
this.setData({
day: new Date().getDate(),
month: new Date().getMonth() + 1
})
// 获取每日推荐的数据
this.getRecommendList();
// 订阅来自songDetail页面发布的消息
PubSub.subscribe('switchType', (msg, type) => {
let {recommendList, index} = this.data;
if(type === 'pre'){ // 上一首
(index === 0) && (index = recommendList.length);
index -= 1;
}else { // 下一首
(index === recommendList.length - 1) && (index = -1);
index += 1;
}
// 更新下标
this.setData({
index
})
let musicId = recommendList[index].id;
// 将musicId回传给songDetail页面
PubSub.publish('musicId', musicId)
});
},
// 获取用户每日推荐数据
async getRecommendList(){
let recommendListData = await request('/recommend/songs');
this.setData({
recommendList: recommendListData.recommend
})
},
// 跳转至songDetail页面
toSongDetail(event){
let {song, index} = event.currentTarget.dataset;
this.setData({
index
})
// 路由跳转传参: query参数
wx.navigateTo({
// 不能直接将song对象作为参数传递,长度过长,会被自动截取掉
// url: '/pages/songDetail/songDetail?songPackage=' + JSON.stringify(songPackage)
url: '/songPackage/pages/songDetail/songDetail?musicId=' + song.id
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})