EP-WachatApp/eaterplanet_ecommerce/moduleA/solitaire/index.js

338 lines
9.3 KiB
JavaScript

var app = getApp();
var util = require('../../utils/util.js');
var status = require('../../utils/index.js');
Page({
mixins: [require('../../mixin/globalMixin.js')],
data: {
list: [],
loadText: "加载中...",
noData: 0,
loadMore: true,
groupInfo: {
group_name: '社区',
owner_name: '团长'
},
},
page: 1,
handlerGobackClick(delta) {
const pages = getCurrentPages();
if (pages.length >= 2) {
wx.navigateBack({
delta: delta
});
} else {
wx.switchTab({
url: '/eaterplanet_ecommerce/pages/index/index'
});
}
},
handlerGohomeClick(url) {
wx.switchTab({
url: '/eaterplanet_ecommerce/pages/index/index'
});
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function(options) {
app.setShareConfig();
let that = this;
status.setNavBgColor();
status.setGroupInfo().then((groupInfo) => { that.setData({ groupInfo }) });
let { share_id, community_id } = options;
this.options = options;
if (share_id != 'undefined' && share_id > 0) wx.setStorageSync('share_id', share_id);
this.compareCommunity(community_id)
this.getData(community_id);
},
initFn(community_id) {
let that = this;
this.page = 1;
this.setData({
list: [],
loadText: "加载中...",
noData: 0,
loadMore: true,
}, ()=>{
that.getData(community_id);
})
},
/**
* 比较社区
*/
compareCommunity: function (shareCommunityId) {
let that = this;
// 原来社区
let currentCommunity = wx.getStorageSync('community');
let currentCommunityId = currentCommunity.communityId || '';
const token = wx.getStorageSync('token');
shareCommunityId && util.getCommunityById(shareCommunityId).then(res => {
let { hide_community_change_btn, default_head_info } = res;
let { groupInfo } = that.data;
if (res.open_danhead_model == 1) {
// 开启单社区
app.globalData.community = default_head_info;
app.globalData.changedCommunity = true;
wx.setStorage({ key: "community", data: default_head_info })
token && util.addhistory(default_head_info);
if(shareCommunityId!=default_head_info.communityId) {
let { groupInfo } = that.data;
app.util.message(`您只能访问自己${groupInfo.group_name}`, 'switchTo:/eaterplanet_ecommerce/pages/index/index', 'error', '知道了');
return;
}
} else {
// 社区是否存在
if (currentCommunityId != '' && shareCommunityId) {
// 存在并且不相同
console.log('currentCommunityId存在 比较社区')
if (currentCommunityId != shareCommunityId) {
console.log('currentCommunityId存在 社区不同')
//如果禁止切换
// if (hide_community_change_btn == 1) {
console.log('禁止切换');
app.util.message(`您只能访问自己${groupInfo.group_name}`, 'switchTo:/eaterplanet_ecommerce/pages/index/index', 'error', '知道了');
return;
// }
// that.setData({
// hide_community_change_btn,
// showChangeCommunity: res.data ? true : false,
// changeCommunity: res.data,
// currentCommunity: currentCommunity
// })
}
} else {
// 不存在社区id
//token 是否存在
if (token) {
util.getCommunityInfo().then(function (ret) {
//比较社区
console.log('token存在 比较社区')
if (ret.community_id && ret.community_id != shareCommunityId) {
app.util.message(`您只能访问自己${groupInfo.group_name}`, 'switchTo:/eaterplanet_ecommerce/pages/index/index', 'error', '知道了');
// that.setData({
// showChangeCommunity: true,
// currentCommunity: ret
// })
}
}).catch((param) => {
console.log('step4 新人')
if (Object.keys(param) != '') util.addhistory(param, true);
});
} else {
console.log('token不存在 存社区')
// 直接存本地
app.globalData.community = res.data;
app.globalData.changedCommunity = true;
wx.setStorage({ key: "community", data: res.data })
}
}
}
});
},
/**
* 切换提示
*/
confrimChangeCommunity: function () {
let community = this.data.changeCommunity;
let token = wx.getStorageSync('token');
app.globalData.community = community;
app.globalData.changedCommunity = true;
wx.setStorage({
key: "community",
data: community
})
token && util.addhistory(community);
this.initFn(community.communityId);
this.setData({ showChangeCommunity: false })
console.log('用户点击确定')
},
/**
* 取消切换
*/
cancelChangeCommunity: function () {
let currentCommunity = this.data.currentCommunity;
let communityId = currentCommunity.communityId || '';
communityId && this.initFn(communityId);
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function() {
let that = this;
util.check_login_new().then((res) => {
if (!res) {
that.setData({
needAuth: true
})
} else {
(0, status.cartNum)('', true).then((res) => {
that.setData({
cartNum: res.data
})
});
}
})
},
/**
* 获取列表
*/
getData: function (head_id) {
let that = this;
wx.showLoading();
if (!head_id) {
let community = wx.getStorageSync('community');
head_id = community.communityId || '';
}
app.util.request({
url: 'entry/wxapp/index',
data: {
controller: 'solitaire.get_head_index_solitairelist',
head_id,
page: this.page
},
dataType: 'json',
success: function(res) {
wx.stopPullDownRefresh();
wx.hideLoading();
let showTabbar = res.data.showTabbar;
if (res.data.code == 0) {
let h = {};
let list = res.data.data;
let head_data = res.data.head_data;
if (list.length < 20) h.noMore = true;
let oldList = that.data.list;
list = oldList.concat(list);
that.page++;
that.setData({
list,
...h,
head_data,
showTabbar
})
} else if (res.data.code == 1) {
// 无数据
let head_data = res.data.head_data || '';
if (that.page == 1) that.setData({
noData: 1
})
that.setData({
loadMore: false,
noMore: false,
head_data,
loadText: "没有更多记录了~",
showTabbar
})
} else if (res.data.code == 2) {
// 您还未登录
} else if (res.data.code == 3) {
// 团长不存在
app.util.message(res.data.msg, '/eaterplanet_ecommerce/pages/position/community', 'error');
return;
} else {
app.util.message(res.data.msg, '', 'error');
return;
}
}
})
},
goDetails: function (event){
var id = event ? event.currentTarget.dataset.id : '';
if(!id) return;
var pages_all = getCurrentPages();
let link = `/eaterplanet_ecommerce/moduleA/solitaire/details?id=${id}`;
if (pages_all.length > 3) {
wx.redirectTo({
url: link
})
} else {
wx.navigateTo({
url: link
})
}
},
showImgPrev: function (event) {
var idx = event ? event.currentTarget.dataset.idx : '';
var sidx = event ? event.currentTarget.dataset.sidx : '';
let list = this.data.list;
let urls = list[sidx].images_list;
wx.previewImage({
current: urls[idx],
urls
});
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function() {
let that = this;
this.page = 1;
this.setData({
list: [],
loadText: "加载中...",
noData: 0,
loadMore: true,
}, ()=>{
that.getData();
})
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function() {
if (!this.data.loadMore) return false;
this.getData();
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
let community = wx.getStorageSync('community');
let head_id = community.communityId || '';
let share_id = wx.getStorageSync('member_id') || '';
let share_path = `eaterplanet_ecommerce/moduleA/solitaire/index?share_id=${share_id}&community_id=${head_id}`;
let title = '';
return {
title,
path: share_path,
success: function (res) {
// 转发成功
},
fail: function (res) {
// 转发失败
}
}
},
onShareTimeline: function () {
let community = wx.getStorageSync('community');
let head_id = community.communityId || '';
let share_id = wx.getStorageSync('member_id') || '';
let title = '';
var query= `share_id=${share_id}&community_id=${head_id}`;
return {
title,
query,
success: function (res) {
// 转发成功
},
fail: function (res) {
// 转发失败
}
}
}
})