yuminge-app/yun-min-program-plugin-master/packageG/mycomponent/community/community.js

384 lines
10 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 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) {},
});
}
},
},
});