jhwxapp/miniprogram/pages/shebeiguanli-map/jixiedingwei.js

670 lines
18 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

// pages/new-map/map.js
import * as echarts from '../../ec-canvas/echarts';
const app = getApp();
//加载最近一周运行时长
function initChart_1(chart_1, datas_1, datas_2) {
var option_1={
grid: {
top: "20%",
bottom: "18%",
left:"0%",
right:"0%"
},
tooltip: {
trigger: "axis",
axisPointer: {
type: "shadow",
label: {
show: true
}
}
},
xAxis: {
data: datas_2,
axisLine: {
show: false //隐藏X轴轴线
},
axisTick: {
show: false //隐藏X轴刻度
},
axisLabel: {
show: true,
textStyle: {
color: "#ebf8ac", //X轴文字颜色
fontSize:'10'
}
}
},
yAxis: [{
type: "value",
nameTextStyle: {
color: "#ebf8ac"
},
splitLine: {
show: false
},
axisTick: {
show: false
},
axisLine: {
show: false
},
},
{
type: "value",
nameTextStyle: {
color: "#ebf8ac"
},
splitLine: {
show: false
},
axisTick: {
show: false
},
axisLine: {
show: false
},
axisLabel: {
show: true,
}
},
],
series: [{
type: "line",
yAxisIndex: 1, //使用的 y 轴的 index在单个图表实例中存在多个 y轴的时候有用
smooth: true, //平滑曲线显示
showAllSymbol: true, //显示所有图形。
symbol: "circle", //标记的图形为实心圆
symbolSize:7, //标记的大小
itemStyle: {
//折线拐点标志的样式
color: "#fd9820"
},
lineStyle: {
color: "#fd9820"
},
areaStyle:{
color: "rgba(5,140,255, 0.2)"
},
label: {
show: true,
position: 'top',
textStyle: {
color: '#ffffff',
fontSize:'10'
}
},
data: datas_1
},
{
type: "bar",
barWidth: 12,
itemStyle: {
normal: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
offset: 0,
color: "#51d7ff"
},
{
offset: 1,
color: "#3637a3"
}
])
}
},
data:datas_1
}
]
};
chart_1.setOption(option_1);
return chart_1;
}
//一周油耗
function initChart_2(chart_2, datas_1, datas_2) {
var option_2={
grid: {
top: "20%",
bottom: "18%",
left:"0%",
right:"0%"
},
tooltip: {
trigger: "axis",
axisPointer: {
type: "shadow",
label: {
show: true
}
}
},
xAxis: {
data:datas_2,
axisLine: {
show: false //隐藏X轴轴线
},
axisTick: {
show: false //隐藏X轴刻度
},
axisLabel: {
show: true,
textStyle: {
color: "#ebf8ac", //X轴文字颜色
fontSize:'10'
}
}
},
yAxis: [{
type: "value",
nameTextStyle: {
color: "#ebf8ac"
},
splitLine: {
show: false
},
axisTick: {
show: false
},
axisLine: {
show: false
},
},
{
type: "value",
nameTextStyle: {
color: "#ebf8ac"
},
splitLine: {
show: false
},
axisTick: {
show: false
},
axisLine: {
show: false
},
axisLabel: {
show: true,
}
},
],
series: [{
type: "line",
yAxisIndex: 1, //使用的 y 轴的 index在单个图表实例中存在多个 y轴的时候有用
smooth: true, //平滑曲线显示
showAllSymbol: true, //显示所有图形。
symbol: "circle", //标记的图形为实心圆
symbolSize:7, //标记的大小
itemStyle: {
//折线拐点标志的样式
color: "#fd9820"
},
lineStyle: {
color: "#fd9820"
},
areaStyle:{
color: "rgba(5,140,255, 0.2)"
},
label: {
show: true,
position: 'top',
textStyle: {
color: '#ffffff',
fontSize:'10'
}
},
data: datas_1
},
{
type: "bar",
barWidth: 12,
itemStyle: {
normal: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
offset: 0,
color: "#51d7ff"
},
{
offset: 1,
color: "#3637a3"
}
])
}
},
data:datas_1
}
]
};
chart_2.setOption(option_2);
return chart_2;
}
Page({
/**
* 页面的初始数据
*/
data: {
ec_1: {
lazyLoad: true //动态加载
},
ec_2: {
lazyLoad: true //动态加载
},
option1: [],
value1: '',
currentId: '', //传值与list id 相同
showPopup: false,
show:false,
bottom: "500rpx",
showUp: false,
list:[ {
id:1,
machine_key:"",
name:"挖掘机12312",
model:"z51110",
state:"运行",
class:"machinery_state_yx",
battery:"50",
workingHours:"8小时55分钟",
oilCapacity:"358L",
proportion:"80%",
projectName: "西安地铁8号西安大白杨站智慧工地111",
}],
lists:[],
height:"",
longitude:'',
latitude:'',
markers: [],
index:'',
machineryTotalList:[],
projectId:'',
projectName:'',
machineKey:"",
//机械初始经纬度信息
machineLongitude:'',
machineLatitude:'',
machineMarkers:[],
//刷新字段
initialMachineKey:"",
timeLevenStatus:0,
},
//页面加载
onClickShow() {
this.setData({ show: true });
},
onClickHide() {
this.setData({ show: false });
},
upward() {
this.setData({ showUp: true });
this.setData({ bottom: "500rpx" });
this.selectMachineryRun(this.data.projectId,this.data.initialMachineKey,this.data.machineryTotalList);
},
downward() {
this.setData({ showUp: false });
this.setData({ bottom: "50rpx" });
},
showPopup() {
this.setData({ showPopup: true });
},
onClose() {
this.setData({ showPopup: false });
this.setData({ showType: false });
},
selectList(event){
this.onClickShow();
//加载数据
this.selectMachineryRun(this.data.projectId,event.currentTarget.dataset.machinekey,this.data.machineryTotalList);
let timeLevenStatus = this.data.timeLevenStatus;
if(timeLevenStatus == 0){
this.selectMachineryWeekTime(event.currentTarget.dataset.machinekey);
}else{
this.selectMachineryWeekTankLeven(event.currentTarget.dataset.machinekey);
}
this.setData({
showPopup: false,
index:event.currentTarget.dataset.index,
showUp: true ,
currentId:event.currentTarget.dataset.machinekey
});
},
optionChange(event){
this.onClickShow();
var category = "";
var option1 = this.data.option1;
for(var i = 0;i<option1.length;i++){
if(option1[i].value == event.detail){
category = option1[i].text
}
}
this.selectMachineryList(this.data.projectId,category);
},
//页面初始化
onLoad: function (option) {
this.onClickShow();
var that = this
//调用wx.getSystemInfo接口然后动态绑定组件高度
wx.getSystemInfo({
success: function (res) {
that.setData({
height: res.windowHeight
})
}
}),
//获取缓存中数据
wx.getStorage({
key: 'userinfo',
success:function(res){
that.setData({
userInfo:res.data,
index:option.index,
projectId:app.globalData.projectId,
projectName:app.globalData.projectName,
initialMachineKey:option.machineKey,
currentId:option.machineKey
})
}
})
this.oneComponent = this.selectComponent('#mychart-one');
this.twoComponent = this.selectComponent('#mychart-two');
if(option.skipState =="1"){
this.setData({ showUp: true })
//页面初始化加载单个机械设备信息
this.selectMachineryRun(app.globalData.projectId,option.machineKey,JSON.parse(option.machineryTotalList));
}else{
this.setData({ showPopup:true })
}
//记载最近一周机械运行数据
this.selectMachineryWeekTime(option.machineKey);
//查询出机械列表
this.selectMachineryList(app.globalData.projectId,option.type,option.skipState);
//查询出机械类型
this.selectMachineCategory(app.globalData.projectId);
},
//加载运行轨迹数据
init_one: function (datas_1,datas_2) {
this.oneComponent.init((canvas, width, height,dpr) => {
const chart = echarts.init(canvas, null, {
width: width,
height: height,
devicePixelRatio: dpr //解决小程序视图模糊的问题,必写
});
initChart_1(chart,datas_1,datas_2);
this.chart = chart;
return chart;
});
},
//加载油耗数据
init_two: function (datas_1,datas_2) {
this.twoComponent.init((canvas, width, height,dpr) => {
const chart = echarts.init(canvas, null, {
width: width,
height: height,
devicePixelRatio: dpr //解决小程序视图模糊的问题,必写
});
initChart_2(chart,datas_1,datas_2);
this.chart = chart;
return chart;
});
},
//查询出单个机械设备的基础数据
selectMachineryRun:function(event,event1,event2){
var that = this;
wx.request({
url: app.globalData.reqUrl+'/weixin/machicnery/selectMachineryRun',
data:{
"projectId":event,
"machineKey":event1
},
method:"GET",
success:function(res){
if(res.data.partMachineryList.length >0){
var markers = [];
for(var i=0;i<event2.length;i++){
if(event2[i].machine_key ==event1){
var marker = {id:event2[i],longitude:res.data.partMachineryList[0].longitude,latitude:res.data.partMachineryList[0].latitude,machineKey:res.data.partMachineryList[0].machine_key,iconPath:"http://fileimg.makalu.cc/10127f663a454adea855fc852e715dd5.png",width: 40, height: 40};
markers.push(marker);
}else{
var marker = {id:event2[i],longitude:event2[i].longitude,latitude:event2[i].latitude,machineKey:event2[i].machine_key
}
markers.push(marker);
}
}
that.setData({
list:res.data.partMachineryList,
markers:markers,
longitude:res.data.partMachineryList[0].longitude,
latitude:res.data.partMachineryList[0].latitude,
machineLongitude:res.data.partMachineryList[0].longitude,
machineLatitude:res.data.partMachineryList[0].latitude,
machineMarkers:markers,
})
}
that.onClickHide();
}
})
},
//查询出机械列表
selectMachineryList:function(event,category,skipState){
var that = this;
wx.request({
url: app.globalData.reqUrl+'/weixin/machicnery/selectMachineryRun',
data:{
"projectId":event,
"category":(category=="全部")?"":category,
},
method:"GET",
success:function(res){
var event2 = res.data.totalMachineryList;
if(event2.length>0){
var markers = [];
for(var i=0;i<event2.length;i++){
var marker = {id:event2[i],longitude:event2[i].longitude,latitude:event2[i].latitude,machineKey:event2[i].machine_key }
markers.push(marker);
}
if(skipState == "1"){
that.setData({
lists:event2,
machineryTotalList:event2,
})
}else{
that.setData({
lists:event2,
markers:markers,
longitude:event2[0].longitude,
latitude:event2[0].latitude,
machineryTotalList:event2,
})
}
}else{
that.setData({
lists:[],
markers:[],
longitude:'',
latitude:'',
})
}
that.onClickHide();
}
})
},
//查询出机械类型
selectMachineCategory:function(event){
var that = this;
wx.request({
url: app.globalData.reqUrl+'/weixin/machicnery/selectMachineCategory',
data:{
"projectId":event,
"type":"map"
},
method:"GET",
success:function(res){
that.onClickHide();
that.setData({
option1:res.data
})
}
})
},
//查询出最近一周运行数据
selectMachineryWeekTime:function(event){
var that = this;
wx.request({
url: app.globalData.reqUrl+'/weixin/machicnery/selectMachineryWeekTime',
data:{
"machineKey":event
},
method:"GET",
success:function(res){
that.onClickHide();
that.init_one(res.data.valueList,res.data.timeList);
}
})
},
//查询出最近一周油耗
selectMachineryWeekTankLeven:function(event){
var that = this;
wx.request({
url: app.globalData.reqUrl+'/weixin/machicnery/selectMachineryWeekTankLeven',
data:{
"machineKey":event
},
method:"GET",
success:function(res){
that.onClickHide();
that.init_two(res.data.valueList,res.data.timeList);
}
})
},
///向左切换
changeLeftData:function(event){
this.onClickShow();
var machineryTotalList = this.data.machineryTotalList;
var projectId = this.data.projectId;
if(this.data.index == "0"){
app.toast("已经到头了,无法进行点击");
this.onClickHide();
}else{
this.selectMachineryRun(projectId,machineryTotalList[this.data.index-1].machine_key,machineryTotalList);
let timeLevenStatus = this.data.timeLevenStatus;
if(timeLevenStatus == 0){
this.selectMachineryWeekTime(machineryTotalList[this.data.index-1].machine_key);
}else{
this.selectMachineryWeekTankLeven(machineryTotalList[this.data.index-1].machine_key);
}
this.setData({
machineKey:machineryTotalList[this.data.index-1].machine_key,
index:this.data.index-1,
currentId:machineryTotalList[this.data.index-1].machine_key,
})
}
},
//向右切换
changeRightData:function(event){
this.onClickShow();
var machineryTotalList = this.data.machineryTotalList;
var projectId = this.data.projectId;
if(this.data.index == (machineryTotalList.length-1)){
app.toast("已经到头了,无法进行点击");
this.onClickHide();
}else{
this.selectMachineryRun(projectId,machineryTotalList[(this.data.index-1+2)].machine_key,machineryTotalList);
let timeLevenStatus = this.data.timeLevenStatus;
if(timeLevenStatus == 0){
this.selectMachineryWeekTime(machineryTotalList[(this.data.index-1+2)].machine_key);
}else{
this.selectMachineryWeekTankLeven(machineryTotalList[(this.data.index-1+2)].machine_key);
}
this.setData({
machineKey:machineryTotalList[(this.data.index-1+2)].machine_key,
index:this.data.index-1+2,
currentId:machineryTotalList[(this.data.index-1+2)].machine_key,
})
}
},
//点击定位点切换机械
getListByMachineKey:function(event){
this.onClickShow();
this.selectMachineryRun(this.data.projectId,event.markerId.machine_key,this.data.machineryTotalList);
let timeLevenStatus = this.data.timeLevenStatus;
if(timeLevenStatus == 0){
this.selectMachineryWeekTime(event.markerId.machine_key);
}else{
this.selectMachineryWeekTankLeven(event.markerId.machine_key);
}
var markers = this.data.markers;
var index = "";
for(var i = 0;i<markers.length;i++){
if(markers[i].machineKey == event.markerId.machine_key){
index = i;
}
}
this.setData({
index:index,
showUp: true,
currentId:event.markerId.machine_key
})
},
//获取机械定位
machineLocation:function(event){
this.setData({
longitude:this.data.machineLongitude,
latitude:this.data.machineLatitude,
markers:this.data.machineMarkers
})
},
//获取个人定位
personalLocation:function(even){
this.setData({
longitude:app.globalData.initialLon,
latitude:app.globalData.initialLat,
markers:app.globalData.markers,
})
},
//切换最近一周工作时长和油耗
cutTimeLeven(event){
let machineKey = event.currentTarget.dataset.machinekey;
this.onClickShow();
if(event.detail.index == "0"){
this.selectMachineryWeekTime(machineKey);
this.setData({timeLevenStatus:0});
}else{
this.selectMachineryWeekTankLeven(machineKey);
this.setData({timeLevenStatus:1});
}
},
//返回设备管理首页
goRYGL:function(event){
wx.redirectTo({
url: '../shebieguanli-jxsb/shajiangguan'
})
},
})