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

134 lines
2.9 KiB

// package/pointsStatus/pointsStatus.js
import { getProjectGraph, getDeployPoints, getProjectPoints, getdPointCurPatrolRecord } from "../../utils/getApiUrl";
import { Request } from "../../common";
Page({
/**
* 页面的初始数据
*/
data: {
imgUrl: getApp().globalData.imgUrl,
describe: '',
image: '',
allPoints: [],
setedPoints: [],
},
getData(projectId) {
const that = this;
wx.showLoading({ title: '加载中...' });
Request.get(getProjectGraph(projectId)).then(res => {
if (res) {
Request.get(getDeployPoints(res.id)).then(deployPointsRes => {
Request.get(getProjectPoints(projectId)).then(allPointRes => {
wx.hideLoading();
that.setData({
image: res.graph,
allPoints: allPointRes,
setedPoints: deployPointsRes.map(p => ({
...p,
position: JSON.parse(p.position),
pointInfo: allPointRes.find(a => a.id === p.pointId),
})),
})
})
})
} else {
wx.hideLoading();
// 未布设
}
})
},
calcTooltip(e) {
const that = this;
const pointNodeId = e.currentTarget.id;
const { id: pointId, show } = e.currentTarget.dataset;
const windowWidth = wx.getSystemInfoSync().windowWidth;
const setTooltip = (status) => {
const query = that.createSelectorQuery().in(that);
query.select('#' + pointNodeId).boundingClientRect(data => {
const sub = windowWidth - data.left < 100 ? 100 - (windowWidth - data.left) : 0;
const nextSetedPoints = that.data.setedPoints.map(p => {
if (p.pointId == pointId) {
p.sub = sub;
p.show = !p.show;
if (status) {
p.status = status;
}
}
return p;
})
that.setData({ setedPoints: nextSetedPoints })
}).exec()
}
if (!show) {
wx.showLoading({ title: '加载中...' });
Request.get(getdPointCurPatrolRecord(pointId)).then(res => {
wx.hideLoading();
setTooltip(res.length ? res[0].alarm ? '异常' : '正常' : '--');
})
} else {
setTooltip();
}
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
const { projectId, describe } = options;
this.setData({ describe });
this.getData(projectId);
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})