123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234 |
- let Parse = getApp().Parse;
- const company = getApp().globalData.company
- const compute = require("../../../utils/compute.js");
- let navigationBarHeight = getApp().globalData.statusBarHeight + 44;
- Page({
- /**
- * 页面的初始数据
- */
- data: {
- latitude: 0,
- longitude: 0,
- active: 0,
- list: [],
- value: null,
- showTab: false,
- stickytop: navigationBarHeight,
- },
- navigateComments(e) {
- let id = e.currentTarget.dataset.item.objectId
- wx.navigateTo({
- url: `/nova-tourism/pages/gourmet/store-package/comment/index?id=` + id
- })
- },
- async getData() {
- if (this.data.latitude == 0 && this.data.longitude == 0) {
- let { latitude, longitude } = await this.getLocation()
- this.setData({
- latitude,
- longitude
- })
- console.log(this.latitude, this.longitude);
- }
- this.getShopStore()
- },
- storepackage(e) {
- let id = e.currentTarget.dataset.item.objectId
- console.log(id);
- wx.navigateTo({
- url: '/nova-tourism/pages/gourmet/store-package/index?id=' + id
- });
- },
- getLocation() {
- return new Promise((resolve, reject) => {
- wx.getLocation({
- type: 'gcj02',
- success: (res) => {
- console.log(res.latitude, res.longitude);
- resolve({
- latitude: res.latitude,
- longitude: res.longitude
- })
- },
- fail: () => { },
- complete: () => { }
- });
- })
- },
- onSearch() {
- wx.showToast({
- title: `搜索 ${this.data.value}`,
- icon: 'none',
- });
- },
- onClick() {
- wx.showToast({
- title: `搜索 ${this.data.value}`,
- icon: 'none',
- });
- },
- onChan(e) {
- this.setData({
- value: e.detail,
- });
- this.getShopStore()
- },
- onChange(event) {
- let active = event.detail.name
- console.log(active);
- this.setData({
- active: active
- })
- this.getShopStore()
- },
- async getShopStore() {
- let ShopStore = new Parse.Query('ShopStore')
- ShopStore.equalTo('company', company)
- ShopStore.equalTo('type', "catering")
- ShopStore.notEqualTo("isDeleted",true)
- if (this.data.active == 0) {
- ShopStore.descending('isShow')
- }
- if (this.data.active == 1) {
- ShopStore.descending('score')
- }
- if (this.data.active == 3) {
- ShopStore.ascending('perCapita')
- }
- if (this.data.value) {
- ShopStore.contains('storeName', this.data.value)
- }
- let shopStores = await ShopStore.find()
- if (shopStores) {
- let listJSON = []
- for (let i = 0; i < shopStores.length; i++) {
- listJSON.push(shopStores[i].toJSON())
- }
- for (let i = 0; i < listJSON.length; i++) {
- let item = listJSON[i]
- if (item.location) {
- console.log(this.data.latitude, this.data.longitude);
- let distance = compute.computeDistance(
- this.data.latitude,
- this.data.longitude,
- item.location.latitude,
- item.location.longitude
- )
- item.distance = distance.toFixed(2)
- listJSON[i] = item
- }
- }
- //按距离排序
- if (this.data.active == 2) {
- listJSON = listJSON.sort((a, b) => {
- return a.distance - b.distance
- })
- }
- this.setData({
- list: listJSON
- })
- }
- console.log(this.data.list);
- },
- onPageScroll: function (e) {
- var that = this;
- var scrollTop = parseInt(e.scrollTop); //滚动条距离顶部高度
- //判断'滚动条'滚动的距离 和 '元素在初始时'距顶部的距离进行判断
- var isSatisfy = scrollTop >= that.data.navbarInitTop ? true : false;
- // 只有处于吸顶的临界值才会不相等
- if (that.data.isFixedTop === isSatisfy) {
- return false;
- }
- that.setData({
- isFixedTop: isSatisfy
- });
- },
- /**
- * 生命周期函数--监听页面加载
- */
- onLoad: function (options) {
- this.setData({
- activeColor:getApp().globalData.activeColor || '#229293'
- })
- this.getData()
- this.getShopStore()
- },
- /**
- * 生命周期函数--监听页面初次渲染完成
- */
- onReady: function () {
- },
- /**
- * 生命周期函数--监听页面显示
- */
- onShow: function () {
- var that = this;
- if (that.data.navbarInitTop == 0) {
- //获取节点距离顶部的距离
- wx.createSelectorQuery().select('#navbar').boundingClientRect(function (rect) {
- if (rect && rect.top > 0) {
- var navbarInitTop = parseInt(rect.top);
- that.setData({
- navbarInitTop: navbarInitTop
- });
- }
- }).exec();
- }
- },
- /**
- * 生命周期函数--监听页面隐藏
- */
- onHide: function () {
- },
- /**
- * 生命周期函数--监听页面卸载
- */
- onUnload: function () {
- },
- /**
- * 页面相关事件处理函数--监听用户下拉动作
- */
- onPullDownRefresh: function () {
- },
- /**
- * 页面上拉触底事件的处理函数
- */
- onReachBottom: function () {
- },
- /**
- * 用户点击右上角分享
- */
- onShareAppMessage: function () {
- return {
- title: '美食预定',
- }
- }
- })
|