Files
sundynix-radio-mp/pages/profile/index.js
T
2026-03-05 17:04:40 +08:00

63 lines
1.8 KiB
JavaScript

/**
* 个人中心 — 用户信息 + 订阅管理 + 菜单
* 从后端获取已订阅频道列表
*/
const app = getApp()
const api = require('../../utils/api')
Page({
data: {
isVip: false,
userInfo: null,
menuItems: [
{ id: 'vip', label: '会员中心', icon: '👑', desc: '未开通', highlight: true },
{ id: 'help', label: '帮助与反馈', icon: '❓', desc: '', highlight: false },
{ id: 'about', label: '关于我们', icon: '📄', desc: 'v1.0.0', highlight: false }
]
},
onShow() {
this._refresh()
this._onSubChange = () => this._refresh()
this._onVipChange = () => this._refresh()
app.on('subscriptionChange', this._onSubChange)
app.on('vipChange', this._onVipChange)
},
onHide() {
if (this._onSubChange) app.off('subscriptionChange', this._onSubChange)
if (this._onVipChange) app.off('vipChange', this._onVipChange)
},
_refresh() {
const self = this
const gd = app.globalData
this.setData({
isVip: gd.isVip,
userInfo: gd.userInfo
})
// 更新菜单VIP状态
var menuItems = this.data.menuItems.slice()
menuItems[0].desc = gd.isVip ? '已开通' : '未开通'
menuItems[0].highlight = !gd.isVip
this.setData({ menuItems: menuItems })
},
onMenuTap(e) {
const id = e.currentTarget.dataset.id
if (id === 'vip') {
wx.navigateTo({ url: '/pages/vip/index' })
} else if (id === 'help') {
wx.showToast({ title: '帮助中心开发中', icon: 'none' })
} else if (id === 'about') {
wx.showToast({ title: '早安电台 v1.0.0', icon: 'none' })
}
},
goDiscover() {
wx.switchTab({ url: '/pages/discover/index' })
}
})