You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

201 lines
4.6 KiB
JavaScript

const card = require('../../utils/card.js');
const util = require('../../utils/util.js');
const app = getApp();
var pageSize = 10;
var firstLoad = true;
var loadMore = function (that) {
var dataList = that.data.dataList;
var showLength = dataList.length;
var totalCount = that.data.totalCount;
if (!firstLoad && (showLength >= totalCount)) {
return;
}
that.setData({
hidden: false
});
// 当前位置
wx.getLocation({
type: 'gcj02', //返回可以用于wx.openLocation的经纬度
success: function (res) {
var latitude = res.latitude
var longitude = res.longitude
queryShops(that, longitude, latitude);
},
fail: function () {
queryShops(that, "", "", 0, 0);
}
});
}
var queryShops = function (that, longitude, latitude) {
var dataList = that.data.dataList;
var pageNum = that.data.pageNum;
var keyword = that.data.inputVal;
card.getCouponApplyShop(that.data.couponId, pageNum, pageSize, longitude, latitude,"name",keyword, function (res) {
var resData = res.data;
if (resData.status == 1) {
var totalNum = resData.totalCount;
if (dataList.length >= totalNum) {
that.setData({
hidden: true
});
return;
}
var totalPage = resData.pageCount;
var shopList = resData.list;
var shopLength = shopList.length;
for (var value of shopList) {
value.distance = (parseFloat(value.distance) / 1000).toFixed(2);
dataList.push(value);
}
pageNum = pageNum + 1;
that.setData({
hidden: true,
totalCount: totalNum,
totalPage: totalPage,
pageNum: pageNum,
dataList: dataList
});
} else {
that.setData({
hidden: true
});
}
}, function (res) {});
}
Page({
data: {
hidden: false,
pageNum: 1,
totalPage: 0,
totalCount: 0,
dataList: [],
inputShowed: false,
inputVal: "",
inputFlag: 0,
statusBarHeight: app.statusBarHeight * 2.5,
},
onLoad: function (options) {
if (options.couponId) {
this.setData({
couponId: options.couponId
});
} else {
app.showMsg("券id不存在即将返回上一层", "none");
wx.navigateBack({});
}
},
onShow: function () {
loadMore(this);
this.setData({
color: app.globalData.color
})
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
wx.showNavigationBarLoading() //在标题栏中显示加载
loadMore(this);
wx.hideNavigationBarLoading() //完成停止加载
wx.stopPullDownRefresh() //停止下拉刷新
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
loadMore(this);
},
onLocation: function (e) {
var latitude = e.currentTarget.dataset.latitude;
var longitude = e.currentTarget.dataset.longitude;
console.error("--------" + latitude + "----" + latitude)
if (latitude != "" && longitude != "") {
wx.openLocation({
latitude: Number(latitude),
longitude: Number(longitude),
scale: 28
})
} else {
// 当前位置
wx.getLocation({
type: 'gcj02', //返回可以用于wx.openLocation的经纬度
success: function (res) {
var latitude = res.latitude
var longitude = res.longitude
wx.openLocation({
latitude: latitude,
longitude: longitude,
scale: 28
})
}
});
}
},
showInput: function () {
this.setData({
inputShowed: true
});
},
hideInput: function () {
this.resetSearch();
this.setData({
inputVal: "",
inputShowed: false,
inputFlag: 0
});
},
clearInput: function () {
this.resetSearch();
this.setData({
inputVal: "",
inputFlag: 0
});
},
inputTyping: function (e) {
var inputFlag = 1;
var inputVal = e.detail.value;
this.setData({
inputVal: inputVal,
inputFlag: inputFlag
});
this.resetSearch();
if (inputVal == "") {
inputFlag = 0;
this.setData({
inputFlag: inputFlag
});
}
},
resetSearch: function () {
var inputFlag = this.data.inputFlag;
if (inputFlag == 1) {
this.setData({
hidden: false,
pageNum: 1,
totalPage: 0,
totalCount: 0,
dataList: []
});
loadMore(this);
}
},
phone: function (e) {
if (e.currentTarget.dataset.phone) {
wx.makePhoneCall({
phoneNumber: e.currentTarget.dataset.phone,
})
} else {
app.showMsg("电话不存在", "none")
}
}
})