JMApp/pages/wangdian/wangdian.js
XiaoMo 47d847e138 feat(地图导航): 添加网点地图导航功能
在多个页面中添加了地图导航功能,用户可以通过点击地址或导航图标打开地图并查看具体位置。如果位置信息缺失,会提示用户“暂无位置信息”。此功能提升了用户体验,方便用户快速找到网点位置。
2025-04-10 22:36:01 +08:00

162 lines
3.4 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// pages/wangdian/wangdian.js
var t = require("../../utils/login.js");
Page({
/**
* 页面的初始数据
*/
data: {
banner: [],
info: {},
jiqilist: [],
number: '',
machineCount: 0,
freeMachineCount: 0,
timer: null,
},
onLoad(options) {
// 如果没有wx.getStorageSync('latitude') 或者 wx.getStorageSync('longitude') 则获取当前位置
if (!wx.getStorageSync('latitude') || !wx.getStorageSync('longitude')) {
wx.getLocation({
type: 'wgs84',
success: (res) => {
wx.setStorageSync('latitude', res.latitude);
wx.setStorageSync('longitude', res.longitude);
this.getBranchDetail();
}
});
}
this.setData({
number: options.number || ''
});
this.getBranchDetail();
this.getMachineList();
// 设置定时器每10秒刷新一次机器状态
this.data.timer = setInterval(() => {
this.getMachineList();
}, 10000);
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
// 页面卸载时清除定时器
if (this.data.timer) {
clearInterval(this.data.timer);
this.data.timer = null;
}
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
// 页面卸载时清除定时器
if (this.data.timer) {
clearInterval(this.data.timer);
this.data.timer = null;
}
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
},
// 获取网点详情信息
getBranchDetail() {
t.request('/miniprogram/branch/detail', {
number: this.data.number,
latitude: wx.getStorageSync('latitude'),
longitude: wx.getStorageSync('longitude'),
method: 'GET',
}, !0).then((res) => {
if (res.code == 200) {
this.setData({
banner: res.data.banner || [],
info: res.data.info || {},
});
}
})
},
// 获取机器列表
getMachineList() {
t.request('/miniprogram/branch/machine', {
number: this.data.number,
}).then((res) => {
if (res.code == 200) {
this.setData({
jiqilist: res.data || [],
});
// 计算机器数量, 与空闲机器数量 free machine
let machineCount = this.data.jiqilist.length;
let freeMachineCount = 0;
for (let i = 0; i < this.data.jiqilist.length; i++) {
if (this.data.jiqilist[i].devicestatus == 0) {
freeMachineCount++;
}
}
// 更新数据
this.setData({
machineCount,
freeMachineCount
});
}
})
},
// 打开地图导航
openLocation() {
if (this.data.info.latitude && this.data.info.longitude) {
wx.openLocation({
latitude: Number(this.data.info.latitude),
longitude: Number(this.data.info.longitude),
name: this.data.info.name,
address: this.data.info.address,
scale: 18
})
} else {
wx.showToast({
title: '暂无位置信息',
icon: 'none'
})
}
},
})