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

322 lines
9.4 KiB
JavaScript
Raw 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/goodsrush/goodsrush.js
var app = getApp();
Component({
properties: {
datas: {
type: null,
},
component_id: {
type: null,
},
page_id: {
type: null
},
bottomShowBolIndex: {
type: null,
},
index: {
type: null,
},
U_tabcontrol: {
type: null,
},
bottomShowBol: {
type: null,
},
isLast: {
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",
list: [],
language: "",
page: 1,
total_page: 0,
isLoadMore: true,
allLoaded: false, // 全部数据已经加载完成
},
lifetimes: {
// 生命周期函数可以为函数或一个在methods段中定义的方法名
attached() {
let language = wx.getStorageSync("langIndex");
this.setData({
language: language.en
});
},
moved() {},
detached() {},
},
// 生命周期函数可以为函数或一个在methods段中定义的方法名
attached() {},
// 此处attached的声明会被lifetimes字段中的声明覆盖
ready() {
if (this.data.datas.list) {
this.setData({
total_page: this.data.datas.list.last_page,
page: this.data.datas.list.current_page,
per_page: this.data.datas.list.per_page,
list: this.data.datas.list.data.slice(0, this.data.per_page)
});
if (this.data.total_page <= this.data.page) {
this.setData({
isLoadMore: false,
allLoaded: true,
});
}
}
this.setTime();
// this.datas.get_number 限制数量
if (this.data.datas.get_number && this.data.datas.get_number <= this.data.per_page) {
this.setData({
isLoadMore: false,
allLoaded: true,
list: this.data.datas.list.data.slice(0, this.data.datas.get_number)
});
}
this.setData({
clientWidth: wx.getSystemInfoSync().windowWidth,
});
},
pageLifetimes: {
// 组件所在页面的生命周期函数
show() {},
hide() {},
resize() {},
},
methods: {
setTime() {
let nowTime = new Date().getTime();
for (let i = 0; i < this.data.list.length; i++) {
if (this.data.list[i].start_time) {
// let start_time = this.data.list[i].start_time.replace(/-/g, '/');
// // .replace(/-/g, '/')兼容iOS和安卓 否则在iOS上会变成NaN
// let beginTime = new Date(start_time).getTime();
let start_time = this.data.list[i].start_time;
let beginTime = start_time * 1000;
this.setData({
["list[" + i + "].day"]: "00",
["list[" + i + "].hou"]: "00",
["list[" + i + "].min"]: "00",
["list[" + i + "].sec"]: "00",
});
if (nowTime > beginTime) {
this._countDown(i, this.data.list[i].end_time);
this.setData({
["list[" + i + "].begShow"]: true,
});
} else {
this._countDown(i, this.data.list[i].start_time);
this.setData({
["list[" + i + "].begShow"]: false,
});
}
}
}
},
//倒计时
_countDown: function (index, endTime_1) {
let newTime = new Date().getTime();
// let endTime = endTime_1 ? new Date(endTime_1.replace(/-/g, '/')).getTime() : 0;
let endTime = endTime_1 ? endTime_1 * 1000 : 0;
if (endTime - newTime > 0) {
let time = (endTime - newTime) / 1000;
// 获取天、时、分、秒
let day = parseInt(time / (60 * 60 * 24));
let hou = parseInt((time % (60 * 60 * 24)) / 3600);
let min = parseInt(((time % (60 * 60 * 24)) % 3600) / 60);
let sec = parseInt(((time % (60 * 60 * 24)) % 3600) % 60);
this.setData({
["list[" + index + "].day"]: this._timeFormat(day),
["list[" + index + "].hou"]: this._timeFormat(hou),
["list[" + index + "].min"]: this._timeFormat(min),
["list[" + index + "].sec"]: this._timeFormat(sec),
});
} else {
//活动已结束,全部设置为'00'
this.setData({
["list[" + index + "].day"]: "00",
["list[" + index + "].hou"]: "00",
["list[" + index + "].min"]: "00",
["list[" + index + "].sec"]: "00",
});
}
if (endTime - newTime < 0) {
this.setData({
["list[" + index + "].day"]: "00",
["list[" + index + "].hou"]: "00",
["list[" + index + "].min"]: "00",
["list[" + index + "].sec"]: "00",
});
} else {
setTimeout(this._countDown.bind(this, index, endTime_1), 1000);
}
},
//小于10的格式化函数
_timeFormat(param) {
//小于10的格式化函数
return param < 10 ? "0" + param : param;
},
gotoDetail(e) {
let id = e.currentTarget.dataset.item.id;
if (e.currentTarget.dataset.item.plugin_id == 78) {
wx.navigateTo({
url: '/packageA/detail_v2/detail_v2?id=' + id + '&md=1'
});
} else {
wx.navigateTo({
url: "/packageA/detail_v2/detail_v2?id=" + id,
});
}
},
// 获取更多数据
getMoreData() {
let that = this;
if (this.data.page >= this.data.total_page) {
this.setData({
allLoaded: true
});
return;
}
that.setData({
page: that.data.page + 1,
});
let urlStr = app.getNetAddresss("home-page.get-decorate-page");
urlStr += "&page=" + that.data.page;
urlStr += "&decorate_id=" + that.data.page_id;
urlStr += "&component_id=" + that.data.component_id;
if (this.data.U_tabcontrol) {
urlStr += "&component_key=U_tabcontrol";
urlStr += "&component_info=" + JSON.stringify({
list_key: this.data.index
});
} else {
urlStr += "&component_key=U_goodsrush";
}
app._getNetWork({
url: urlStr,
success: (resdata) => {
var res = resdata.data;
if (res.result == 1) {
if (this.data.U_tabcontrol) {
that.setData({
page: res.data[0].remote_data.list.current_page,
list: this.data.list.concat(res.data[0].remote_data.list.data),
});
} else {
that.setData({
page: res.data.current_page,
list: this.data.list.concat(res.data.data),
});
}
this.setTime();
if (that.data.page < that.data.total_page) {
that.setData({
isLoadMore: true,
});
} else {
that.setData({
allLoaded: true,
});
return;
}
if (this.data.datas.get_number && this.data.list.length > this.data.datas.get_number) {
this.setData({
isLoadMore: false,
allLoaded: true,
list: this.data.list.slice(0, this.data.datas.get_number)
});
}
} else {
that.setData({
page: that.data.page - 1,
isLoadMore: false,
allLoaded: true,
});
}
},
fail: function (res) {
// console.log(res);
},
});
},
// 会员中心用的
loadMoreMemberData() {
let that = this;
that.setData({
isLoadMore: false
});
if (that.data.datas.current_page >= that.data.datas.last_page) {
return;
} else {
that.data.datas.current_page += 1;
let urlStr = app.getNetAddresss('member.member.plugin-data');
if (this.data.store_alone_temp == 1) {
// 门店独立
urlStr = app.getNetAddresss("plugin.store-alone-temp.frontend.member.nav-data");
}
urlStr += '&page=' + that.data.datas.current_page;
urlStr += '&code=' + that.data.plugin_active;
app._getNetWork({
url: urlStr,
success: (resdata) => {
var res = resdata.data;
if (res.result == 1) {
that.setData({
list: this.data.list.concat(res.data.data.data),
});
this.setTime();
if (that.data.datas.current_page < that.data.datas.last_page) {
that.setData({
isLoadMore: true
});
} else {
that.setData({
allLoaded: true
});
}
that.triggerEvent("setLoadMore", {
isLoadMore: that.data.isLoadMore,
});
} else {
that.setData({
page: that.data.datas.current_page - 1,
isLoadMore: false,
allLoaded: true
});
}
},
fail: function (res) {
console.log(res);
}
});
}
},
},
observers: {
bottomShowBol: function (flag) {
if (flag && this.data.bottomShowBolIndex == this.data.index && this.data.datas.sort_style.choose_icon != 5 && this.data.isLoadMore) {
this.getMoreData();
}
},
},
});