247 lines
6.3 KiB
JavaScript
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
|
|
})
|
|
},
|
|
})
|