460 lines
14 KiB
JavaScript
460 lines
14 KiB
JavaScript
var table;
|
||
var table2;
|
||
var layuiForm;
|
||
var layer;
|
||
var rhButtonV=0;
|
||
$(function () {
|
||
layui.use(['form', 'laydate','table', 'upload'], function () {
|
||
layuiForm = layui.form; //只有执行了这一步,部分表单元素才会自动修饰成功
|
||
table=layui.table;
|
||
table2 = layui.table;
|
||
layer=layui.layer;
|
||
layuiForm.render();
|
||
//初始设置温度
|
||
// initSet();
|
||
//初始化遥控表格数据
|
||
initRemoteTable(2);
|
||
getHighAndLowTemperature("handControl");
|
||
getHighAndLowTemperature("remoteControl");
|
||
//初始化手动表格数据
|
||
initHandTable(1);
|
||
$("#remoteButton").click(function(){
|
||
setModel(2);
|
||
});
|
||
$("#handButton").click(function(){
|
||
setModel(1);
|
||
});
|
||
|
||
$("#handType").click(function(){
|
||
rhButtonV=1;
|
||
//$("#handType").attr('style', 'color: blue;background-color:#fff;');
|
||
//$("#remoteType").attr('style', 'color: #000;background-color:#fff;');
|
||
});
|
||
$("#remoteType").click(function(){
|
||
rhButtonV=2;
|
||
//$("#handType").attr('style', 'color: #000;background-color:#fff;');
|
||
//$("#remoteType").attr('style', 'color: blue;background-color:#fff;');
|
||
});
|
||
$("#handEitd").click(function(){
|
||
rhButtonV=1;
|
||
updateSet(rhButtonV);
|
||
});
|
||
$("#remoteEitd").click(function(){
|
||
rhButtonV=2;
|
||
updateSet(rhButtonV);
|
||
});
|
||
|
||
});
|
||
});
|
||
|
||
function getHighAndLowTemperature(type){
|
||
//获取遥控温度
|
||
$.ajax({
|
||
type: 'POST',
|
||
url: dataUrl + 'conditioning/getHighAndLowTemperature',
|
||
data: {type:type},
|
||
async:true,
|
||
dataType: 'json',
|
||
success: function (res) {
|
||
console.log(res);
|
||
var data=res.obj;
|
||
for (var i=0;i<data.length;i++){
|
||
if(type=="handControl"){
|
||
if(i==0){
|
||
$("#handSummer").html(data[i].k);
|
||
}else{
|
||
$("#handWinter").html(data[i].k);
|
||
}
|
||
}else if(type=="remoteControl"){
|
||
if(i == 0){
|
||
$("#remoteSummer").html(data[i].k);
|
||
}else{
|
||
$("#remoteWinter").html(data[i].k);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
});
|
||
}
|
||
function updateSet(updateSetType){
|
||
var title="";
|
||
if(updateSetType==2){
|
||
title="遥控控制温度调整";
|
||
$("#winterMin").val($("#remoteSummer").text())
|
||
$("#summerMax").val($("#remoteWinter").text())
|
||
}else{
|
||
title="手动控制温度调整";
|
||
$("#winterMin").val($("#handSummer").text())
|
||
$("#summerMax").val($("#handWinter").text())
|
||
}
|
||
layer.open({
|
||
// 基本层类型:0(信息框,默认)1(页面层)2(iframe层,也就是解析content)3(加载层)4(tips层)
|
||
type: 1,
|
||
title: title,
|
||
// 当type: 2时就是url
|
||
content:$("#updateSetDiv"),
|
||
// 宽高:如果是100%就是满屏
|
||
area: ['583px', '300px'],
|
||
// 坐标:auto(默认坐标,即垂直水平居中),具体当文档:https://www.layui.com/doc/modules/layer.html#offset
|
||
offset: 'auto',
|
||
// 按钮:按钮1的回调是yes(也可以是btn1),而从按钮2开始,则回调为btn2: function(){},以此类推
|
||
btn: ['确定', '取消'],
|
||
// 关闭按钮:layer提供了两种风格的关闭按钮,可通过配置1和2来展示,如果不显示,则0
|
||
closeBtn: 1,
|
||
// 遮罩:默认:0.3透明度的黑色背景('#000')
|
||
shade: 0.3,
|
||
// 是否点击遮罩关闭:默认:false
|
||
shadeClose: false,
|
||
// 自动关闭所需毫秒:默认:0不会自动关闭
|
||
time: 0,
|
||
// 最大最小化:默认:false
|
||
maxmin: false,
|
||
// 固定:默认:true
|
||
fixed: true,
|
||
// 是否允许拉伸:默认:true
|
||
resize: true,
|
||
// 层叠顺序:默认:19891014,一般用于解决和其它组件的层叠冲突
|
||
zIndex: 19891014,
|
||
// 层弹出后的成功回调方法:layero前层DOM,index当前层索引
|
||
success: function(layero, index){
|
||
},
|
||
// 第一个按钮事件,也可以叫btn1
|
||
yes: function (index, layero) {
|
||
var winterMin=$("#winterMin").val();
|
||
var summerMax=$("#summerMax").val();
|
||
if(""==winterMin||""==summerMax){
|
||
layer.msg("请设定温度!");
|
||
return;
|
||
}
|
||
updateSetValue(winterMin,summerMax,updateSetType);
|
||
layer.close(index);
|
||
},
|
||
btn2: function (index, layero) {
|
||
layer.close(index);
|
||
},
|
||
// 右上角关闭按钮触发的回调:默认会自动触发关闭。如果不想关闭,return false即可
|
||
cancel: function(index, layero){
|
||
// if(layer.confirm('确定要关闭么')){ //只有当点击confirm框的确定时,该层才会关闭
|
||
// layer.close(index);
|
||
// }
|
||
layer.close(index);
|
||
return false;
|
||
},
|
||
// 层销毁后触发的回调:无论是确认还是取消,只要层被销毁了,end都会执行,不携带任何参数。
|
||
end: function(){
|
||
},
|
||
// 最大化后触发的回调:携带一个参数,即当前层DOM
|
||
full: function(layero){
|
||
},
|
||
// 最小化后触发的回调:携带一个参数,即当前层DOM
|
||
min: function(layero){
|
||
},
|
||
// 还原后触发的回调:携带一个参数,即当前层DOM
|
||
restore: function(layero){
|
||
},
|
||
});
|
||
}
|
||
/**
|
||
* @param {Object} winterMin 制冷模式:小于温度
|
||
* @param {Object} summerMax 制热模式:高于温度
|
||
* @param {Object} model 模式 1:遥控 0:手动
|
||
*/
|
||
function updateSetValue(winterT,summerT,model){
|
||
$.ajax({
|
||
type: 'POST',
|
||
url: dataUrl + 'conditioning/setTemperature',
|
||
data: {
|
||
"controlModel": model,"summerTemperature":winterT,"winterTemperature":summerT
|
||
},
|
||
dataType: 'json',
|
||
success: function (res) {
|
||
initSet();
|
||
}
|
||
});
|
||
}
|
||
|
||
|
||
function setModel(model){
|
||
var selData =[];
|
||
console.log("model",model);
|
||
if(model==2){
|
||
$("#handType").attr('style', 'color: blue;background-color:#fff;');
|
||
$("#remoteType").attr('style', 'color: #000;background-color:#fff;');
|
||
rhButtonV=model;
|
||
selData=table.checkStatus('remoteTable').data;
|
||
console.log("selData",selData);
|
||
}else{
|
||
rhButtonV=model;
|
||
$("#handType").attr('style', 'color: #000;background-color:#fff;');
|
||
$("#remoteType").attr('style', 'color: blue;background-color:#fff;');
|
||
selData=table2.checkStatus('handTable').data;
|
||
console.log("selData",selData);
|
||
}
|
||
|
||
if(selData==undefined||selData.length==0){
|
||
layer.msg("请选择设备!");
|
||
return;
|
||
}
|
||
|
||
layer.confirm('您确定要执行此操作吗?', {
|
||
title: '操作确认',
|
||
icon: 3, // 问号图标
|
||
btn: ['确定', '取消'] // 按钮
|
||
}, function(index){
|
||
// 用户点击确定后的回调
|
||
updateModel(selData,rhButtonV);
|
||
layer.close(index); // 关闭当前弹窗
|
||
// 执行确认操作...
|
||
}, function(index){
|
||
// 用户点击取消后的回调
|
||
layer.close(index); // 关闭当前弹窗
|
||
// 执行取消操作...
|
||
});
|
||
// layer.open({
|
||
// // 基本层类型:0(信息框,默认)1(页面层)2(iframe层,也就是解析content)3(加载层)4(tips层)
|
||
// type: 1,
|
||
// title: "更换控制模式",
|
||
// // 当type: 2时就是url
|
||
// content:$("#showDiv"),
|
||
// // 宽高:如果是100%就是满屏
|
||
// area: ['483px', '300px'],
|
||
// // 坐标:auto(默认坐标,即垂直水平居中),具体当文档:https://www.layui.com/doc/modules/layer.html#offset
|
||
// offset: 'auto',
|
||
// // 按钮:按钮1的回调是yes(也可以是btn1),而从按钮2开始,则回调为btn2: function(){},以此类推
|
||
// btn: ['确定', '取消'],
|
||
// // 关闭按钮:layer提供了两种风格的关闭按钮,可通过配置1和2来展示,如果不显示,则0
|
||
// closeBtn: 1,
|
||
// // 遮罩:默认:0.3透明度的黑色背景('#000')
|
||
// shade: 0.3,
|
||
// // 是否点击遮罩关闭:默认:false
|
||
// shadeClose: false,
|
||
// // 自动关闭所需毫秒:默认:0不会自动关闭
|
||
// time: 0,
|
||
// // 最大最小化:默认:false
|
||
// maxmin: false,
|
||
// // 固定:默认:true
|
||
// fixed: true,
|
||
// // 是否允许拉伸:默认:true
|
||
// resize: true,
|
||
// // 层叠顺序:默认:19891014,一般用于解决和其它组件的层叠冲突
|
||
// zIndex: 19891014,
|
||
// // 层弹出后的成功回调方法:layero前层DOM,index当前层索引
|
||
// success: function(layero, index){
|
||
// },
|
||
// // 第一个按钮事件,也可以叫btn1
|
||
// yes: function (index, layero) {
|
||
// updateModel(selData,rhButtonV);
|
||
// layer.close(index);
|
||
// },
|
||
// btn2: function (index, layero) {
|
||
// layer.close(index);
|
||
// },
|
||
// // 右上角关闭按钮触发的回调:默认会自动触发关闭。如果不想关闭,return false即可
|
||
// cancel: function(index, layero){
|
||
// // if(layer.confirm('确定要关闭么')){ //只有当点击confirm框的确定时,该层才会关闭
|
||
// // layer.close(index);
|
||
// // }
|
||
// layer.close(index);
|
||
// return false;
|
||
// },
|
||
// // 层销毁后触发的回调:无论是确认还是取消,只要层被销毁了,end都会执行,不携带任何参数。
|
||
// end: function(){
|
||
// },
|
||
// // 最大化后触发的回调:携带一个参数,即当前层DOM
|
||
// full: function(layero){
|
||
// },
|
||
// // 最小化后触发的回调:携带一个参数,即当前层DOM
|
||
// min: function(layero){
|
||
// },
|
||
// // 还原后触发的回调:携带一个参数,即当前层DOM
|
||
// restore: function(layero){
|
||
// },
|
||
// });
|
||
}
|
||
/**
|
||
* @param {Object} selData 改变模式的空调
|
||
* @param {Object} model 模式 1:遥控 0:手动
|
||
*/
|
||
function updateModel(selData,model){
|
||
var airCodes=[];
|
||
$.each(selData,function(index,element){
|
||
airCodes.push(element.code)
|
||
});
|
||
console.log("airCodes",airCodes);
|
||
model = model == 2 ? 1 : 2;
|
||
console.log("model",model);
|
||
let summerTemperature;
|
||
let winterTemperature;
|
||
if(model == 2){
|
||
summerTemperature = $("#remoteSummer").text();
|
||
winterTemperature = $("#remoteWinter").text();
|
||
}else{
|
||
summerTemperature = $("#handSummer").text();
|
||
winterTemperature = $("#handWinter").text();
|
||
}
|
||
console.log("summerTemperature",summerTemperature);
|
||
console.log("winterTemperature",winterTemperature);
|
||
$.ajax({
|
||
type: 'POST',
|
||
url: dataUrl + 'conditioning/setControl',
|
||
headers: {
|
||
'Content-Type': 'application/json'
|
||
},
|
||
data: JSON.stringify({
|
||
codes: airCodes,
|
||
controlModel: model,
|
||
summerTemperature:summerTemperature,
|
||
winterTemperature:winterTemperature
|
||
}),
|
||
dataType: 'json',
|
||
success: function (res) {
|
||
//重新渲染表格
|
||
//初始化遥控表格数据
|
||
initRemoteTable(2);
|
||
//初始化手动表格数据
|
||
initHandTable(1);
|
||
}
|
||
});
|
||
}
|
||
|
||
function initSet(){
|
||
/**
|
||
* 初始遥控设置温度
|
||
*/
|
||
// $.ajax({
|
||
// type: 'POST',
|
||
// url: dataUrl + 'conditioning/floorElectricityStatistics',
|
||
// async:true,
|
||
// dataType: 'json',
|
||
// success: function (res) {
|
||
// $("#remoteSummer").html("");//遥控制冷温度
|
||
// $("#remoteWinter").html("");//遥控制热温度
|
||
// $("#handSummer").html("");//手动制冷温度
|
||
// $("#handWinter").html("");//手动制热温度
|
||
// }
|
||
// });
|
||
getHighAndLowTemperature("handControl");
|
||
getHighAndLowTemperature("remoteControl");
|
||
}
|
||
|
||
function initRemoteTable(model) {
|
||
table2.render({
|
||
elem: '#remoteTable'
|
||
,url: dataUrl + "conditioning/getAirList" //数据接口
|
||
, method: 'post' //方式默认是get
|
||
, where: {
|
||
controlModel: 2,
|
||
} //post请求必须加where ,post请求需要的参数
|
||
, cellMinWidth: 80
|
||
, cols: [[ //表头
|
||
{type: 'checkbox',align:'center'},
|
||
{field: 'code',align: 'center', title: '空调ID'}
|
||
, {field: 'deviceStatus',align: 'center', title: '状态',templet:function (d){
|
||
if(d.status==1){
|
||
return "<font style='color:green'>开启</font>";
|
||
}else{
|
||
return "<font style='color:red'>关闭</font>";
|
||
}
|
||
}}
|
||
, {field: 'floor',align: 'center', title: '楼层'}
|
||
,{field: 'airName', align: 'center',title: '房间'}
|
||
, {field: 'type', align: 'center', title: '设备类型'}
|
||
]]
|
||
, id: 'remoteTable'
|
||
, page: true //开启分页
|
||
, loading: true //数据加载中。。。
|
||
, limits: [10, 20, 50] //一页选择显示3,5或10条数据
|
||
, limit: 10 //一页显示10条数据
|
||
, response: {
|
||
statusCode: 200 //规定成功的状态码,默认:0
|
||
},
|
||
parseData: function (res) { //将原始数据解析成 table 组件所规定的数据,res为从url中get到的数据
|
||
//console.log("ress=="+JSON.stringify(res))
|
||
let result;
|
||
if (res.data !== '' && res.data != null && res.data !== "null") {
|
||
if (this.page.curr) {
|
||
result = res.data.slice(this.limit * (this.page.curr - 1), this.limit * this.page.curr);
|
||
} else {
|
||
result = res.data.slice(0, this.limit);
|
||
}
|
||
}
|
||
return {
|
||
"code": res.code, //解析接口状态
|
||
"msg": res.msg, //解析提示文本
|
||
"count": res.count, //解析数据长度
|
||
"data": result, //解析数据列表
|
||
};
|
||
},
|
||
toolbar: "#toolbar",
|
||
done: function(res, curr, count){
|
||
console.log("done=="+JSON.stringify(res))
|
||
var checkStatus = table2.checkStatus('remoteTable'); // 获取表格的选中状态
|
||
console.log("checkStatus",checkStatus); // 打印选中的数据
|
||
}
|
||
});
|
||
}
|
||
|
||
function initHandTable(model) {
|
||
table.render({
|
||
elem: '#handTable'
|
||
,url: dataUrl + "conditioning/getAirList" //数据接口
|
||
, method: 'post' //方式默认是get
|
||
, where: {
|
||
controlModel: 1,
|
||
} //post请求必须加where ,post请求需要的参数
|
||
, cellMinWidth: 80
|
||
, cols: [[ //表头
|
||
{type: 'checkbox',align:'center'},
|
||
{field: 'code',align: 'center', title: '空调ID'}
|
||
, {field: 'deviceStatus',align: 'center', title: '状态',templet:function (d){
|
||
if(d.status==1){
|
||
return "<font style='color:green'>开启</font>";
|
||
}else{
|
||
return "<font style='color:red'>关闭</font>";
|
||
}
|
||
}}
|
||
, {field: 'floor',align: 'center', title: '楼层'}
|
||
,{field: 'airName', align: 'center',title: '房间'}
|
||
, {field: 'type', align: 'center', title: '设备类型'}
|
||
]]
|
||
, id: 'handTable'
|
||
, page: true //开启分页
|
||
, loading: true //数据加载中。。。
|
||
, limits: [50, 100, 200] //一页选择显示3,5或10条数据
|
||
, limit: 10 //一页显示10条数据
|
||
, response: {
|
||
statusCode: 200 //规定成功的状态码,默认:0
|
||
}, parseData: function (res) { //将原始数据解析成 table 组件所规定的数据,res为从url中get到的数据
|
||
let result;
|
||
if (res.data !== '' && res.data != null && res.data !== "null") {
|
||
if (this.page.curr) {
|
||
result = res.data.slice(this.limit * (this.page.curr - 1), this.limit * this.page.curr);
|
||
} else {
|
||
result = res.data.slice(0, this.limit);
|
||
}
|
||
}
|
||
return {
|
||
"code": res.code, //解析接口状态
|
||
"msg": res.msg, //解析提示文本
|
||
"count": res.count, //解析数据长度
|
||
"data": result, //解析数据列表
|
||
};
|
||
},
|
||
toolbar: "#toolbar",
|
||
done: function(res, curr, count){
|
||
console.log("done=="+JSON.stringify(res))
|
||
var checkStatus = table.checkStatus('handTable'); // 获取表格的选中状态
|
||
console.log("checkStatus",checkStatus); // 打印选中的数据
|
||
}
|
||
});
|
||
}
|
||
|
||
function dataTbale(data,model){
|
||
var tablefiler="";
|
||
if(model==1){
|
||
tablefiler="remote";
|
||
}else if(model==0){
|
||
tablefiler="hand";
|
||
}
|
||
|
||
} |