384 lines
10 KiB
JavaScript
384 lines
10 KiB
JavaScript
// packageE/community/community.js
|
||
var location = require("../../../mybehaviors/location/location");
|
||
var app = getApp();
|
||
Component({
|
||
behaviors: [location],
|
||
properties: {
|
||
datas: {
|
||
type: null,
|
||
},
|
||
component_id: {
|
||
type: null,
|
||
},
|
||
U_tabcontrol: {
|
||
type: null,
|
||
},
|
||
btnFlag: {
|
||
type: null
|
||
},
|
||
bottomShowBolIndex: {
|
||
type: null,
|
||
},
|
||
index: {
|
||
type: null,
|
||
},
|
||
store_id: {
|
||
type: null,
|
||
},
|
||
plugin_active: {
|
||
// 会员中心商品加载
|
||
type: null,
|
||
},
|
||
store_alone_temp: {
|
||
// 门店独立判断
|
||
type: null,
|
||
}
|
||
},
|
||
// 私有数据,可用于模板渲染
|
||
data: {
|
||
emptyImage: "https://mini-app-img-1251768088.cos.ap-guangzhou.myqcloud.com/image.png",
|
||
clientWidth: "375",
|
||
language: "",
|
||
|
||
active: 0,
|
||
cate: [],
|
||
cateList: [],
|
||
newClassification: "",
|
||
nearbyClassification: "",
|
||
address: "",
|
||
city: "",
|
||
point: "",
|
||
|
||
//more
|
||
isLoadMore: true,
|
||
page: 1,
|
||
total_page: 0,
|
||
getMoreDataType: "newClassification",
|
||
cateMoreData: {},
|
||
loading: false,
|
||
},
|
||
|
||
lifetimes: {
|
||
// 生命周期函数,可以为函数,或一个在methods段中定义的方法名
|
||
attached() {
|
||
let language = wx.getStorageSync("langIndex");
|
||
this.setData({
|
||
language: language.en
|
||
});
|
||
},
|
||
moved() {},
|
||
detached() {},
|
||
},
|
||
|
||
// 生命周期函数,可以为函数,或一个在methods段中定义的方法名
|
||
attached() {},
|
||
// 此处attached的声明会被lifetimes字段中的声明覆盖
|
||
ready() {
|
||
this.setData({
|
||
clientWidth: wx.getSystemInfoSync().windowWidth,
|
||
});
|
||
|
||
if (this.data.U_tabcontrol) {
|
||
if (Number(this.data.datas.get_number) > 0) {
|
||
this.getFirstData(this.data.datas.list);
|
||
}
|
||
} else if (this.data.datas.get_style == 2) {
|
||
this.setData({
|
||
newClassification: this.data.datas.list,
|
||
isLoadMore: false
|
||
});
|
||
} else {
|
||
|
||
if(this.data.datas.show_nearby) this._getLocation();
|
||
this.getHomePageData(this.data.datas.cate);
|
||
if (Number(this.data.datas.get_number) > 0) {
|
||
this.getFirstData(this.data.datas.list);
|
||
}
|
||
}
|
||
},
|
||
|
||
pageLifetimes: {
|
||
// 组件所在页面的生命周期函数
|
||
show() {},
|
||
hide() {},
|
||
resize() {},
|
||
},
|
||
methods: {
|
||
getHomePageData(data) {
|
||
let that = this;
|
||
that.setData({
|
||
cate: data,
|
||
});
|
||
let cateList = that.data.cateList;
|
||
for (let i = 0; i < that.data.cate.length; i++) {
|
||
cateList.push([]);
|
||
}
|
||
that.setData({
|
||
cateList: cateList,
|
||
});
|
||
},
|
||
getFirstData(data) {
|
||
if (data) {
|
||
this.setData({
|
||
total_page: data.last_page,
|
||
});
|
||
|
||
if (this.data.page < this.data.total_page) {
|
||
this.setData({
|
||
isLoadMore: true,
|
||
});
|
||
} else {
|
||
this.setData({
|
||
isLoadMore: false,
|
||
});
|
||
}
|
||
|
||
if (data.data.length > this.data.datas.get_number) {
|
||
data.data.splice(
|
||
this.data.datas.get_number,
|
||
data.data.length - this.data.datas.get_number
|
||
);
|
||
this.setData({
|
||
isLoadMore: false,
|
||
});
|
||
}
|
||
|
||
this.setData({
|
||
newClassification: data.data,
|
||
});
|
||
}
|
||
},
|
||
getClassification(type, id, index) {
|
||
let that = this;
|
||
let urlStr = app.getNetAddresss(
|
||
"plugin.micro-communities.api.index.getStick"
|
||
);
|
||
that.pageInit();
|
||
let dataJson = {};
|
||
if (id) {
|
||
dataJson.cat_id = id;
|
||
} else {
|
||
if (type == "newClassification") {
|
||
dataJson.trick_new = 1;
|
||
} else if (type == "nearbyClassification") {
|
||
dataJson.lng = this.data.point.lng;
|
||
dataJson.lat = this.data.point.lat;
|
||
dataJson.city_name = this.data.city;
|
||
dataJson.address = this.data.city;
|
||
}
|
||
}
|
||
|
||
if (this.data.store_id) {
|
||
dataJson.store_id = this.data.store_id;
|
||
}
|
||
app._postNetWork({
|
||
url: urlStr,
|
||
showToastIn: false,
|
||
data: dataJson,
|
||
success: (resdata) => {
|
||
var res = resdata.data;
|
||
if (res.result == 1) {
|
||
that.data.total_page = res.data.last_page;
|
||
|
||
if (that.data.page < that.data.total_page) {
|
||
that.setData({
|
||
isLoadMore: true,
|
||
});
|
||
}
|
||
|
||
if (id) {
|
||
that.setData({
|
||
["cateList[" + index + "]"]: res.data.data,
|
||
});
|
||
} else {
|
||
if (type == "newClassification") {
|
||
if (res.data.data.length > this.data.datas.get_number) {
|
||
res.data.data.splice(
|
||
this.data.datas.get_number,
|
||
res.data.data.length - this.data.datas.get_number
|
||
);
|
||
this.setData({
|
||
isLoadMore: false,
|
||
});
|
||
}
|
||
|
||
that.setData({
|
||
newClassification: res.data.data,
|
||
});
|
||
} else if (type == "nearbyClassification") {
|
||
if (res.data.data.length > this.data.datas.get_number) {
|
||
res.data.data.splice(
|
||
this.data.datas.get_number,
|
||
res.data.data.length - this.data.datas.get_number
|
||
);
|
||
this.setData({
|
||
isLoadMore: false,
|
||
});
|
||
}
|
||
|
||
that.setData({
|
||
nearbyClassification: res.data.data,
|
||
});
|
||
}
|
||
}
|
||
} else {
|
||
wx.showToast({
|
||
icon: "none",
|
||
title: res.msg,
|
||
duration: 1500,
|
||
});
|
||
}
|
||
},
|
||
fail: function (res) {},
|
||
});
|
||
},
|
||
getClassificationBtn(e) {
|
||
let index = e.detail.index;
|
||
let title = e.detail.title;
|
||
if (title == "最新") {
|
||
this.getClassification("newClassification");
|
||
this.data.getMoreDataType = "newClassification";
|
||
this.setData({
|
||
active: "0",
|
||
});
|
||
} else if (title == "附近") {
|
||
this.getClassification("nearbyClassification");
|
||
this.data.getMoreDataType = "nearbyClassification";
|
||
this.setData({
|
||
active: "near",
|
||
});
|
||
} else {
|
||
let indexData = this.data.datas.show_nearby ? index - 2 : index - 1;
|
||
this.getClassification("", this.data.cate[indexData].id, indexData);
|
||
this.data.getMoreDataType = "cate";
|
||
this.data.cateMoreData = {
|
||
type: "",
|
||
id: this.data.cate[indexData].id,
|
||
index: indexData,
|
||
};
|
||
this.setData({
|
||
active: this.data.cate[indexData].id,
|
||
});
|
||
}
|
||
},
|
||
pageInit() {
|
||
this.setData({
|
||
page: 1,
|
||
total_page: 0,
|
||
isLoadMore: false,
|
||
loading: false,
|
||
});
|
||
},
|
||
jumpDetails(e) {
|
||
let stick_id = e.currentTarget.dataset.stickid;
|
||
wx.navigateTo({
|
||
url: "/packageC/micro_communities/microCommentDetails/microCommentDetails?stickId=" +
|
||
stick_id,
|
||
});
|
||
},
|
||
getMoreData() {
|
||
const that = this;
|
||
let json = {};
|
||
if (this.data.getMoreDataType == "newClassification") {
|
||
json.trick_new = 1;
|
||
} else if (this.data.getMoreDataType == "nearbyClassification") {
|
||
json.lng = this.data.point.lng;
|
||
json.lat = this.data.point.lat;
|
||
json.city_name = this.data.city;
|
||
json.address = this.data.city;
|
||
} else {
|
||
json.cat_id = that.data.cateMoreData.id;
|
||
}
|
||
if (this.data.store_id) {
|
||
json.store_id = this.data.store_id;
|
||
}
|
||
|
||
this.setData({
|
||
isLoadMore: false,
|
||
}); // 防止多次请求分页数据
|
||
let urlStr = app.getNetAddresss(
|
||
"plugin.micro-communities.api.index.getStick"
|
||
);
|
||
if (this.data.store_alone_temp == 1) {
|
||
// 门店独立
|
||
urlStr = app.getNetAddresss("plugin.store-alone-temp.frontend.member.nav-data");
|
||
urlStr += '&code=' + that.data.plugin_active;
|
||
}
|
||
if (this.data.page >= this.data.total_page) {
|
||
that.setData({
|
||
loading: true,
|
||
});
|
||
return;
|
||
} else {
|
||
that.data.page = this.data.page + 1;
|
||
json.page = this.data.page;
|
||
app._postNetWork({
|
||
url: urlStr,
|
||
showToastIn: false,
|
||
data: json,
|
||
success: function (resdata) {
|
||
var res = resdata.data;
|
||
if (res.result == 1) {
|
||
var myData = res.data.data;
|
||
|
||
if (that.data.page < that.data.total_page) {
|
||
that.setData({
|
||
isLoadMore: true,
|
||
});
|
||
}
|
||
if (that.data.getMoreDataType == "newClassification") {
|
||
if (myData.length > that.data.datas.get_number) {
|
||
myData.splice(
|
||
that.data.datas.get_number,
|
||
myData.length - that.data.datas.get_number
|
||
);
|
||
this.setData({
|
||
isLoadMore: false,
|
||
});
|
||
}
|
||
|
||
that.setData({
|
||
newClassification: that.data.newClassification.concat(myData),
|
||
});
|
||
} else if (that.data.getMoreDataType == "nearbyClassification") {
|
||
if (myData.length > this.data.datas.get_number) {
|
||
myData.splice(
|
||
this.data.datas.get_number,
|
||
myData.length - this.data.datas.get_number
|
||
);
|
||
this.setData({
|
||
isLoadMore: false,
|
||
});
|
||
}
|
||
|
||
that.setData({
|
||
nearbyClassification: that.data.nearbyClassification.concat(
|
||
myData
|
||
),
|
||
});
|
||
} else {
|
||
let cateList = that.data.cateList[that.data.cateMoreData.index];
|
||
|
||
that.setData({
|
||
["cateList[" +
|
||
that.data.cateMoreData.index +
|
||
"]"
|
||
]: cateList.concat(myData),
|
||
});
|
||
}
|
||
that.triggerEvent("setLoadMore", {
|
||
isLoadMore: that.data.isLoadMore,
|
||
});
|
||
} else {
|
||
that.data.page = that.data.page - 1;
|
||
this.setData({
|
||
isLoadMore: false,
|
||
});
|
||
}
|
||
},
|
||
fail: function (res) {},
|
||
});
|
||
}
|
||
},
|
||
},
|
||
}); |