191 lines
4.5 KiB
JavaScript
191 lines
4.5 KiB
JavaScript
// packageH/cpsCard/cpsCard.js
|
||
const app = getApp();
|
||
Page({
|
||
/**
|
||
* 页面的初始数据
|
||
*/
|
||
data: {
|
||
hot: [],
|
||
category: [],
|
||
acindex: 0,
|
||
tabsHeight: "",
|
||
topHeight: "",
|
||
currBox: "tab0",
|
||
heightArray: [],
|
||
toview: "ind0",
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面加载
|
||
*/
|
||
onLoad: function (options) {
|
||
this.getdata();
|
||
},
|
||
goDetail(e) {
|
||
console.log(e);
|
||
let id = e.currentTarget.dataset.id;
|
||
let name = e.currentTarget.dataset.name;
|
||
wx.navigateTo({
|
||
url: "/packageH/cpsList/cpsList?id=" + `${id}&name=${name}`,
|
||
});
|
||
// wx.navigateTo({
|
||
// url: 'packageD/buy/myOrder_v2/myOrder_v2?tag=-2'`&goodsId=${id}&optionsId=&total=${num}`,
|
||
// })
|
||
},
|
||
taptest(e) {
|
||
let ind = e.currentTarget.dataset.ind;
|
||
this.setData({
|
||
acindex: ind,
|
||
});
|
||
this.setData({
|
||
toview: `ind${ind}`,
|
||
});
|
||
},
|
||
tabScroll(e) {},
|
||
bincroll(e) {
|
||
// console.log(e.detail.scrollTop)
|
||
let scrollTop = e.detail.scrollTop;
|
||
|
||
if (scrollTop <= this.data.topHeight && this.data.curr) {
|
||
this.setData({
|
||
curr: false,
|
||
});
|
||
} else if (scrollTop > this.data.topHeight && !this.data.curr) {
|
||
this.setData({
|
||
curr: true,
|
||
});
|
||
}
|
||
for (let i = 0; i < this.data.category.length; i++) {
|
||
if (this.data.heightArray[1] >= e.detail.scrollTop) {
|
||
this.setData({
|
||
acindex: 0,
|
||
currBox: "tab0",
|
||
});
|
||
} else if (
|
||
this.data.heightArray[i] < e.detail.scrollTop + 50 &&
|
||
e.detail.scrollTop + 50 < this.data.heightArray[i + 1]
|
||
) {
|
||
this.setData({
|
||
acindex: i,
|
||
currBox: "tab" + i,
|
||
});
|
||
break;
|
||
} else if (
|
||
this.data.heightArray[this.data.category.length - 1] <=
|
||
e.detail.scrollTop + 50
|
||
) {
|
||
this.setData({
|
||
acindex: this.data.category.length - 1,
|
||
currBox: "tab" + this.data.category.length - 1,
|
||
});
|
||
}
|
||
// console.log(this.data.heightArray[i],e.detail.scrollTop,this.data.heightArray[i+1],i)
|
||
}
|
||
},
|
||
testTabs() {
|
||
// 获取全部分类box高度 -100?
|
||
let that = this;
|
||
let heightArray = [];
|
||
for (let i = 0; i < this.data.category.length; i++) {
|
||
wx.createSelectorQuery()
|
||
.select(`#ind${i}`)
|
||
.boundingClientRect(function (rect) {
|
||
heightArray.push(rect.top - that.data.topHeight - 100);
|
||
if (i == that.data.category.length - 1) {
|
||
that.setData({
|
||
heightArray: heightArray,
|
||
});
|
||
}
|
||
// console.log(heightArray)
|
||
})
|
||
.exec();
|
||
}
|
||
},
|
||
/**
|
||
* 生命周期函数--监听页面初次渲染完成
|
||
*/
|
||
onReady: function () {
|
||
let that = this;
|
||
wx.createSelectorQuery()
|
||
.select(".page-section-spacing")
|
||
.boundingClientRect(function (rect) {
|
||
console.log(rect);
|
||
that.setData({
|
||
tabsHeight: rect.top,
|
||
});
|
||
})
|
||
.exec();
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面显示
|
||
*/
|
||
onShow: function () {},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面隐藏
|
||
*/
|
||
onHide: function () {},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面卸载
|
||
*/
|
||
onUnload: function () {},
|
||
|
||
/**
|
||
* 页面相关事件处理函数--监听用户下拉动作
|
||
*/
|
||
onPullDownRefresh: function () {},
|
||
|
||
/**
|
||
* 页面上拉触底事件的处理函数
|
||
*/
|
||
onReachBottom: function () {},
|
||
|
||
/**
|
||
* 用户点击右上角分享
|
||
*/
|
||
onShareAppMessage: function () {},
|
||
getdata() {
|
||
wx.showLoading({
|
||
title: "加载中",
|
||
});
|
||
let that = this;
|
||
let urlStr = app.getNetAddresss("plugin.aggregation-cps.api.equity");
|
||
app._getNetWork({
|
||
url: urlStr,
|
||
success: (resdata) => {
|
||
let res = resdata.data;
|
||
wx.hideLoading();
|
||
if (res.result == 1) {
|
||
that.setData({
|
||
hot: res.data.hot,
|
||
category: res.data.category,
|
||
brand: res.data.category[0].brand,
|
||
});
|
||
setTimeout(() => {
|
||
wx.createSelectorQuery()
|
||
.select(".top")
|
||
.boundingClientRect(function (rect) {
|
||
that.setData({
|
||
topHeight: rect.height,
|
||
});
|
||
})
|
||
.exec();
|
||
that.testTabs();
|
||
}, 200);
|
||
} else {
|
||
wx.showToast({
|
||
title: res.msg,
|
||
duration: 1000,
|
||
icon: "none",
|
||
});
|
||
}
|
||
},
|
||
fail: function (res) {
|
||
console.log(res.msg);
|
||
},
|
||
});
|
||
},
|
||
});
|