Files
sykl-hy/pages/mall/index/index.js

247 lines
6.3 KiB
JavaScript

/*
* 手太欠
* 愿这世界都如故事里一样 美好而动人~
*/
Page({
/**
* 页面的初始数据
*/
data: {
BarHeight : '',
indicatorDots: false,
vertical : false,
autoplay : false,
interval : 2000,
duration : 500,
previousmargin: '40rpx',//前边距
nextmargin : '40rpx',//后边距
otherCurrent : 1,
goodsArr : [], //商品
bannersArr : [], //轮播商品
surplus : '', //水滴量
healthsArr : [], //健康文章
centerInfo : [], //体验官介绍
serviceMobile: '', //客服电话
categories : '', //详情分类
userLogin : '', //是否登录
videos : '',
videoFlx : false, //视频定位
showGoods : '', //默认商品
waterMobile : '', //电话
memoryCurrent: 0,
videoState : true, //第一个视频是否加载
videoFilex : true, //第二个视频是否加载
// 记忆
startX : 0,
endX : 0,
iCenter : 3,
datas: [],
order: []
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
this.setData({
BarHeight: getApp().globalData.systInfo.statusBarHeight + wx.getMenuButtonBoundingClientRect().height
})
this.__set__();
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
// 获取首页数据
this.indexInfo();
// 获取登录状态
if(wx.getStorageSync("token")){
this.setData({
userLogin: true
})
// 获取用户信息
this.userInfo();
}
},
/**
* 首页数据
*/
indexInfo (e) {
wx.$api.mall.index().then(res => {
this.setData({
goodsArr : res.data.goods,
showGoods : res.data.show_goods,
bannersArr : res.data.banners,
videos : res.data.videos[0],
healthsArr : res.data.healths,
datas : res.data.memories,
centerInfo : res.data.center[0],
categories : res.data.categories,
waterMobile : res.data.water_mobile
})
this.move();
}).catch(err => {})
},
/**
* 用户信息
*/
userInfo() {
wx.$api.user.userIndex().then(res => {
this.setData({
surplus : res.data.account.score.surplus,
serviceMobile : res.data.service.mobile,
})
}).catch(err => {})
},
/**
* 轮播图的切换事件
*/
swiperOther (e) {
this.setData({
otherCurrent: e.detail.current //获取当前轮播图片的下标
})
},
/**
* 跳转文章列表
*/
tapMore(e){
console.log(e)
wx.navigateTo({
url: '../article/articleList/index?type=' + e.currentTarget.dataset.type
})
},
/**
* 拨打电话
*/
phoneCall(){
wx.makePhoneCall({
phoneNumber: this.data.waterMobile
});
},
/**
* 处理未登录时的转跳
*/
userNav(e){
let pageUrl = e.currentTarget.dataset.url
if(wx.getStorageSync("token")){
wx.navigateTo({
url: pageUrl
})
}else{
// 去登录
wx.navigateTo({
url: "/pages/login/index"
})
}
},
/**
* 监听页面滚动
*/
bestScroll(e){
if(e.detail.scrollTop >= this.data.systInfo.safeArea.width && !this.data.videoFlx){
this.setData({
videoFlx: true
})
}else if(e.detail.scrollTop < this.data.systInfo.safeArea.width && this.data.videoFlx){
this.setData({
videoFlx: false
})
}
},
move () {
var datas = this.data.datas;
/*图片分布*/
for (var i = 0; i < datas.length; i++) {
var data = datas[i];
var animation = wx.createAnimation({
duration: 200
});
animation.translateX(data.left).step();
this.setData({
["datas[" + i + "].animation"]: animation.export(),
["datas[" + i + "].zIndex"]: data.zIndex
})
}
},
/**左箭头 */
left: function () {
var last = this.data.datas.pop(); //获取数组的最后一个
this.data.datas.unshift(last);//放到数组的第一个
var orderFirst = this.data.order.shift();
this.data.order.push(orderFirst);
this.move();
},
/** */
right: function () {
var first = this.data.datas.shift(); //获取数组的第一个
this.data.datas.push(first);//放到数组的最后一个位置
var orderLast = this.data.order.pop();
this.data.order.unshift(orderLast);
this.move();
},
/**新的排列复制到新的数组中 */
__set__: function () {
var that = this;
var order = that.data.order;
var datas = that.data.datas;
for (var i = 0; i < datas.length; i++) {
that.setData({
["order[" + i + "]"]: datas[i].id
})
}
},
//手指触发开始移动
moveStart (e) {
var startX = e.changedTouches[0].pageX;
this.setData({
startX : startX
});
},
//手指触摸后移动完成触发事件
moveItem (e) {
var that = this;
var endX = e.changedTouches[0].pageX;
this.setData({
endX: endX
});
//计算手指触摸偏移剧距离
var moveX = this.data.startX - this.data.endX;
//向左移动
if (moveX > 20) {
this.left();
}
if (moveX < -20) {
this.right();
}
},
// 第一个播放进度变化时触发
bindloadedOne() {
this.setData({
videoState: false
})
},
// 第二个播放进度变化时触发
bindloadedTwo() {
this.setData({
videoFilex: false
})
},
})