const app = getApp(); const planSvc = require('../../services/plan'); const favSvc = require('../../services/favorite'); const auth = require('../../utils/auth'); Page({ data: { statusBarHeight: 20, slug: '', collection: null, exercises: [], total: 0, loading: true, favorited: false }, onLoad(query) { const slug = query.slug || ''; this.setData({ statusBarHeight: app.globalData.statusBarHeight || 20, slug }); this.load(); if (auth.isLogin()) { favSvc.planStatus(slug).then((r) => { this.setData({ favorited: !!(r && r.favorited) }); }).catch(() => {}); } }, load() { this.setData({ loading: true }); planSvc.officialExercises(this.data.slug, 1, 60).then((res) => { this.setData({ collection: res.collection, exercises: (res && res.items) || [], total: (res && res.total) || 0, loading: false }); }).catch(() => { this.setData({ loading: false }); }); }, // 收藏 / 取消收藏官方计划 onToggleFav() { auth.ensureLogin().then(() => { const slug = this.data.slug; const wasFav = this.data.favorited; const op = wasFav ? favSvc.removePlan(slug) : favSvc.addPlan(slug); op.then(() => { this.setData({ favorited: !wasFav }); wx.showToast({ title: wasFav ? '已取消收藏' : '已收藏', icon: 'none' }); }).catch(() => {}); }).catch(() => {}); }, // 导入到我的计划 onImport() { auth.ensureLogin().then(() => { wx.showLoading({ title: '导入中…', mask: true }); planSvc.importOfficial(this.data.slug).then(() => { wx.hideLoading(); wx.showToast({ title: '已导入到我的计划', icon: 'success' }); setTimeout(() => { wx.navigateTo({ url: '/pages/my-plans/my-plans' }); }, 600); }).catch(() => { wx.hideLoading(); }); }).catch(() => {}); }, onExercise(e) { if (!e || !e.detail || !e.detail.id) return; wx.navigateTo({ url: '/pages/detail/detail?from=collection&slug=' + encodeURIComponent(this.data.slug) + '&id=' + encodeURIComponent(e.detail.id) }); } });