jyyhq/witDisplay/js/airConditioner/airConditionerSet.js

460 lines
14 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.

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页面层2iframe层也就是解析content3加载层4tips层
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前层DOMindex当前层索引
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页面层2iframe层也就是解析content3加载层4tips层
// 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前层DOMindex当前层索引
// 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";
}
}