Commit f11a84b3 by jscat

nyx weapp: 功能优化

1. 将activity-info like更新的消息统一为事件传输方式(eventBus)
分发给首页(activity)和收藏页(my-collects)
parent f961a466
// pages/activity/activity-info/activity-info.js // pages/activity/activity-info/activity-info.js
// pages/activity/activity-info/activity-info.js // pages/activity/activity-info/activity-info.js
var config = wx.getStorageSync("config"); var config = wx.getStorageSync("config");
var app = getApp(); var app = getApp();
var event = require('./../../../utils/event.js')
Page({ Page({
...@@ -28,7 +29,6 @@ Page({ ...@@ -28,7 +29,6 @@ Page({
likeDictUpdate: {}, // 判断当前页面是否存在点赞操作 likeDictUpdate: {}, // 判断当前页面是否存在点赞操作
likeStatus: 0, // 判断like图标的状态 likeStatus: 0, // 判断like图标的状态
likeUrl: "../../../icon/activity/like.png", // like图标的url likeUrl: "../../../icon/activity/like.png", // like图标的url
likeDictSub: {},
}, },
...@@ -147,16 +147,15 @@ Page({ ...@@ -147,16 +147,15 @@ Page({
// 如果存在update操作, 则更新 // 如果存在update操作, 则更新
if (likeDictUpdate.hasOwnProperty(activityId) && likeDictUpdate[activityId] != 0 ) { if (likeDictUpdate.hasOwnProperty(activityId) && likeDictUpdate[activityId] != 0 ) {
// step1: 更新数据库
_this.submitLike(userId, activityId, likeDictUpdate[activityId]) _this.submitLike(userId, activityId, likeDictUpdate[activityId])
var pages = getCurrentPages(); // step2: 通过eventBus影响订阅页(首页或者收藏页)的数据
var currPage = pages[pages.length - 1]; //当前页面 var data = {
var prevPage = pages[pages.length - 2]; //上一个页面 'activity_id': activityId,
'num_like' : numLike
//直接调用上一个页面的setData()方法,把数据存到上一个页面中去 }
prevPage.setData({ event.emit('LikeChanged', data);
likeDictSub: { 'activity_id': activityId, 'num_like': numLike}
})
} }
......
// pages/activity/activity.js // pages/activity/activity.js
...@@ -47,9 +47,6 @@ Page({ ...@@ -47,9 +47,6 @@ Page({
strSearch : "", //搜索的字串 strSearch : "", //搜索的字串
inputVal : "", //输入字符串,主要用于页面显示 inputVal : "", //输入字符串,主要用于页面显示
//点赞模块-来自子页面
likeDictSub: {},
//二维码信息 //二维码信息
qRCodeMsg: "", qRCodeMsg: "",
...@@ -180,8 +177,8 @@ Page({ ...@@ -180,8 +177,8 @@ Page({
} }
// event 订阅, 主要接受my-collect.js里 emit 发送的消息 // event 订阅, 主要接受activity-info.js里 emit 发送的消息
event.on('DataChanged', this, function(data) { event.on('LikeChanged', this, function(data) {
var activity_id = data['activity_id'] var activity_id = data['activity_id']
var num_like = data['num_like'] var num_like = data['num_like']
var activities = _this.__data__.activities; var activities = _this.__data__.activities;
...@@ -220,24 +217,6 @@ Page({ ...@@ -220,24 +217,6 @@ Page({
county: defaultCounty county: defaultCounty
}) })
var likeDictSub = _this.__data__.likeDictSub;
var activities = _this.__data__.activities;
if(likeDictSub.hasOwnProperty('activity_id'))
{
var activity_id = likeDictSub['activity_id']
for(var i=0; i< activities.length; i++)
{
if(activity_id == activities[i]['activity_id'])
{
activities[i]['num_like'] = likeDictSub['num_like']
}
}
_this.setData({
activities: activities,
likeDictSub: {}, // 处理完之后, 重置为{}
})
}
}, },
/** /**
...@@ -252,7 +231,7 @@ Page({ ...@@ -252,7 +231,7 @@ Page({
*/ */
onUnload: function () { onUnload: function () {
event.remove('DataChanged', this); event.remove('LikeChanged', this);
}, },
......
// pages/activity/activity.js // pages/activity/activity.js
...@@ -29,8 +29,6 @@ Page({ ...@@ -29,8 +29,6 @@ Page({
noteTop: 0, noteTop: 0,
noteHeight: 0, noteHeight: 0,
//点赞模块-来自子页面
likeDictSub: {},
}, },
...@@ -78,32 +76,17 @@ Page({ ...@@ -78,32 +76,17 @@ Page({
//初始载入5个收藏活动 //初始载入5个收藏活动
if(_this.__data__.collects.length == 0) if(_this.__data__.collects.length == 0)
{ {
//消费collects
_this.getCollects(0, 1, 5); _this.getCollects(0, 1, 5);
} }
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/** // event 订阅, 主要接受activity-info.js里 emit 发送的消息
* 生命周期函数--监听页面显示 event.on('LikeChanged', this, function(data) {
*/ var activity_id = data['activity_id']
onShow: function () {
var _this = this;
var likeDictSub = _this.__data__.likeDictSub;
var collects = _this.__data__.collects; var collects = _this.__data__.collects;
if(likeDictSub.hasOwnProperty('activity_id'))
{
// step1: 在这个页面只能直接取消; 故直接从collects里去除该记录 // step1: 在这个页面只能直接取消; 故直接从collects里去除该记录
var activity_id = likeDictSub['activity_id']
var num_like = likeDictSub['num_like']
for(var index=0; index< collects.length; index++) for(var index=0; index< collects.length; index++)
{ {
if(activity_id == collects[index]['activity_id']) if(activity_id == collects[index]['activity_id'])
...@@ -112,19 +95,24 @@ Page({ ...@@ -112,19 +95,24 @@ Page({
} }
} }
// step2: 通过eventBus影响首页(activity)的数据
var data = {
'activity_id': activity_id,
'num_like' : num_like
}
event.emit('DataChanged', data);
_this.setData({ _this.setData({
collects: collects, collects: collects,
likeDictSub: {}, // 处理完之后, 重置为{} })
}) })
} },
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
}, },
...@@ -140,6 +128,8 @@ Page({ ...@@ -140,6 +128,8 @@ Page({
*/ */
onUnload: function () { onUnload: function () {
event.remove('LikeChanged', this);
}, },
/** /**
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论