JMApp/pages/map/map.js
2024-03-20 18:16:30 +08:00

164 lines
5.2 KiB
JavaScript

var t = require("../../@babel/runtime/helpers/interopRequireDefault")(require("../../@babel/runtime/regenerator")), e = require("../../@babel/runtime/helpers/asyncToGenerator"), o = getApp(), a = require("../../utils/login.js");
Page({
data: {
markers: [],
longitude: null,
latitude: null,
weather: {},
totop: !1,
shop: {},
showshop: !1,
zoomsize: 14,
showLocation: !0
},
onLoad: function(t) {
var e = this;
wx.showLoading({
title: ""
}), a.pageStart(o).then(function(t) {
e.getuserLocation();
});
},
getuserLocation: function() {
var o = this;
return e(t.default.mark(function e() {
var a;
return t.default.wrap(function(t) {
for (;;) switch (t.prev = t.next) {
case 0:
return t.next = 2, o.getlocation();
case 2:
a = t.sent, console.log("result:", a), a && (o.latitude = a.latitude, o.longitude = a.longitude),
o.getData();
case 6:
case "end":
return t.stop();
}
}, e);
}))();
},
latitude: null,
longitude: null,
onShareAppMessage: function() {},
tolocation: function() {
var t = wx.createMapContext("map");
console.log("moveToLocation"), t.moveToLocation({
success: function(t) {
console.log(t);
},
fail: function(t) {
wx.showModal({
title: "用户未授权",
content: "请开启相关权限,以便更好使用小程序哦!",
showCancel: !0,
success: function(t) {
t.confirm ? wx.openSetting({
success: function(t) {
console.log("authSetting", t), t.authSetting || that.showLocationFail();
}
}) : t.cancel;
},
fail: function(t) {
that.showLocationFail();
}
});
}
});
},
clickMaker: function(t) {
wx.openLocation({
latitude: latitude,
longitude: longitude,
scale: 18
});
},
callUs: function() {
if (!o.globalData.servicetel) return !1;
wx.makePhoneCall({
phoneNumber: "" + o.globalData.servicetel
});
},
getData: function() {
var t = this;
a.request(o.globalData.config.map, {
longitude: this.longitude,
latitude: this.latitude
}).then(function(e) {
wx.hideLoading(), 200 == e.code ? (e.data.list.forEach(function(t, e) {
t.id = e, t.width = 32, t.height = 32, t.latitude = 1 * t.latitude, t.longitude = 1 * t.longitude,
t.iconPath = "/img/location-blue.png", t.callout = {
content: t.name
};
}), t.setData({
weather: e.data.weather,
markers: e.data.list,
longitude: 1 * e.data.longitude,
latitude: 1 * e.data.latitude,
zoomsize: e.data.zoomsize
})) : wx.showModal({
title: "提示",
content: e.message,
confirmColor: "#EF8176",
cancelColor: "#999999"
});
}).catch(function(t) {
wx.hideLoading();
});
},
bindmarkertap: function(t) {
console.log(t);
this.data.markers.forEach(function(t) {
t.iconPath = "/img/location-blue.png";
});
for (var e = 0; e < this.data.markers.length; e++) if (this.data.markers[e].id == t.detail.markerId) {
console.log(e), this.data.markers[e].iconPath = "/img/location-red.png", this.data.markers[e].width = 50,
this.data.markers[e].height = 50, this.setData({
shop: Object.assign({}, this.data.markers[e]),
showshop: !0
});
break;
}
},
closeshop: function() {
this.setData({
showshop: !1
});
},
changeTop: function() {
this.setData({
totop: !this.data.totop
});
},
getlocation: function() {
return new Promise(function(t, e) {
wx.getLocation({
type: "wgs84",
success: function(e) {
e.latitude, e.longitude;
t(e);
},
fail: function(e) {
t();
}
});
});
},
showLocationFail: function() {
wx.showToast({
title: "位置失败",
icon: "none",
duration: 1e3
});
},
toMap: function() {
wx.openLocation({
latitude: this.data.shop.latitude,
longitude: this.data.shop.longitude,
name: this.data.shop.name,
address: this.data.shop.address
});
}
});