|
|
|
@ -140,35 +140,35 @@
|
|
|
|
|
<div class="box box-solid">
|
|
|
|
|
<div class="box-body row">
|
|
|
|
|
<div class="col-md-12">
|
|
|
|
|
<canvas id="TemperatureChart" style="width:100%;height:200px;" :data-device-number="GetDeviceNumber('温湿度传感器')"></canvas>
|
|
|
|
|
<canvas id="TemperatureChart" :data-device-number="GetDeviceNumber('温湿度传感器')"></canvas>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="box box-solid">
|
|
|
|
|
<div class="box-body row">
|
|
|
|
|
<div class="col-md-12">
|
|
|
|
|
<canvas id="humidityChart" style="width:100%;height:200px;" :data-device-number="GetDeviceNumber('温湿度传感器')"></canvas>
|
|
|
|
|
<canvas id="humidityChart" :data-device-number="GetDeviceNumber('温湿度传感器')"></canvas>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="box box-solid">
|
|
|
|
|
<div class="box-body row">
|
|
|
|
|
<div class="col-md-12">
|
|
|
|
|
<canvas id="LightChart1" style="width:100%;height:200px;" :data-device-number="GetDeviceNumber('光强检测器','前门')"></canvas>
|
|
|
|
|
<canvas id="LightChart1" :data-device-number="GetDeviceNumber('光强检测器','前门')"></canvas>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="box box-solid">
|
|
|
|
|
<div class="box-body row">
|
|
|
|
|
<div class="col-md-12">
|
|
|
|
|
<canvas id="LightChart2" style="width:100%;height:200px;" :data-device-number="GetDeviceNumber('光强检测器','后门')"></canvas>
|
|
|
|
|
<canvas id="LightChart2" :data-device-number="GetDeviceNumber('光强检测器','后门')"></canvas>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="box box-solid">
|
|
|
|
|
<div class="box-body row">
|
|
|
|
|
<div class="col-md-12">
|
|
|
|
|
<canvas id="EnergyChart" style="width:100%;height:200px;" :data-device-number="GetDeviceNumber('智能插座')"></canvas>
|
|
|
|
|
<canvas id="EnergyChart" :data-device-number="GetDeviceNumber('智能插座')"></canvas>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
@ -252,6 +252,7 @@
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="box box-solid btns">
|
|
|
|
|
<template v-for="device in GetDevices('调色灯')">
|
|
|
|
|
<div class="row" style="text-align:center;">
|
|
|
|
@ -297,6 +298,72 @@
|
|
|
|
|
</form>
|
|
|
|
|
</template>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="box box-solid btns">
|
|
|
|
|
<template v-for="device in GetDevices('红外转发器')">
|
|
|
|
|
<div class="row" style="text-align:center;">
|
|
|
|
|
{{device.Name||device.DisplayName}}
|
|
|
|
|
</div>
|
|
|
|
|
<div class="row" style="background-color:#fff;border:1px solid #eee;border-radius:5px;text-align:center;padding:10px 0;margin:10px 0">
|
|
|
|
|
<form class="device KeyCodeType1 ir" method="get" action="/App/Exec">
|
|
|
|
|
<input type="hidden" name="Number" :value="device.Number" />
|
|
|
|
|
<input type="hidden" name="Method" value="/Ir/Send" />
|
|
|
|
|
<input type="hidden" name="Type" value="1" />
|
|
|
|
|
<input type="hidden" name="Code" :value="GetDataValue(device.Number,'按键')" />
|
|
|
|
|
<div class="row">
|
|
|
|
|
<div class="col-md-2">
|
|
|
|
|
<label>电源:</label>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-md-10">
|
|
|
|
|
<label class="button button-raised button-round"><input @change="SendCode1($event)" name="power" type="radio" value="2" v-model="getCode1(GetDataValue(device.Number,'按键')).power" />开</label>
|
|
|
|
|
<label class="button button-raised button-round"><input @change="SendCode1($event)" name="power" type="radio" value="1" v-model="getCode1(GetDataValue(device.Number,'按键')).power" />关</label>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="row">
|
|
|
|
|
<div class="col-md-2">
|
|
|
|
|
<label>模式:</label>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-md-10">
|
|
|
|
|
<label class="button button-raised button-round"><input @change="SendCode1($event)" name="pattern" type="radio" v-model="getCode1(GetDataValue(device.Number,'按键')).pattern" value="0" />制冷</label>
|
|
|
|
|
<label class="button button-raised button-round"><input @change="SendCode1($event)" name="pattern" type="radio" v-model="getCode1(GetDataValue(device.Number,'按键')).pattern" value="120" />自动</label>
|
|
|
|
|
<label class="button button-raised button-round"><input @change="SendCode1($event)" name="pattern" type="radio" v-model="getCode1(GetDataValue(device.Number,'按键')).pattern" value="240" />制热</label>
|
|
|
|
|
<label class="button button-raised button-round"><input @change="SendCode1($event)" name="pattern" type="radio" v-model="getCode1(GetDataValue(device.Number,'按键')).pattern" value="360" />抽湿</label>
|
|
|
|
|
<label class="button button-raised button-round"><input @change="SendCode1($event)" name="pattern" type="radio" v-model="getCode1(GetDataValue(device.Number,'按键')).pattern" value="480" />送风</label>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="row">
|
|
|
|
|
<div class="col-md-2">
|
|
|
|
|
<label>温度:</label>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-md-10">
|
|
|
|
|
<input @change="SendCode1($event)" name="temperature" type="range" step="1" min="1" max="15" :value="getCode1(GetDataValue(device.Number,'按键')).temperature" />
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="row">
|
|
|
|
|
<div class="col-md-2">
|
|
|
|
|
<label>风向:</label>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-md-10">
|
|
|
|
|
<label class="button button-raised button-round"><input @change="SendCode1($event)" name="direction" type="radio" v-model="getCode1(GetDataValue(device.Number,'按键')).direction" value="0" />任意</label>
|
|
|
|
|
<label class="button button-raised button-round"><input @change="SendCode1($event)" name="direction" type="radio" v-model="getCode1(GetDataValue(device.Number,'按键')).direction" value="60" />手动</label>
|
|
|
|
|
<label class="button button-raised button-round"><input @change="SendCode1($event)" name="direction" type="radio" v-model="getCode1(GetDataValue(device.Number,'按键')).direction" value="75" />自动</label>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="row">
|
|
|
|
|
<div class="col-md-2">
|
|
|
|
|
<label>风量:</label>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-md-10">
|
|
|
|
|
<label class="button button-raised button-round"><input @change="SendCode1($event)" name="wind" type="radio" v-model="getCode1(GetDataValue(device.Number,'按键')).wind" value="0" />自动</label>
|
|
|
|
|
<label class="button button-raised button-round"><input @change="SendCode1($event)" name="wind" type="radio" v-model="getCode1(GetDataValue(device.Number,'按键')).wind" value="15" />高</label>
|
|
|
|
|
<label class="button button-raised button-round"><input @change="SendCode1($event)" name="wind" type="radio" v-model="getCode1(GetDataValue(device.Number,'按键')).wind" value="30" />中</label>
|
|
|
|
|
<label class="button button-raised button-round"><input @change="SendCode1($event)" name="wind" type="radio" v-model="getCode1(GetDataValue(device.Number,'按键')).wind" value="45" />低</label>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</form>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<script>
|
|
|
|
@ -642,7 +709,7 @@
|
|
|
|
|
}
|
|
|
|
|
return null;
|
|
|
|
|
},
|
|
|
|
|
CallApi(number, method) {
|
|
|
|
|
CallApi(number, method, query) {
|
|
|
|
|
ajax('/App/Exec', { number: number, method: method, query: query }, 'post');
|
|
|
|
|
},
|
|
|
|
|
AjaxSubmit(event) {
|
|
|
|
@ -652,6 +719,95 @@
|
|
|
|
|
ajax(url, null, 'get');
|
|
|
|
|
});
|
|
|
|
|
return false;
|
|
|
|
|
},
|
|
|
|
|
getCode1(code) {
|
|
|
|
|
var pattern = 0;
|
|
|
|
|
var direction = 0;
|
|
|
|
|
var wind = 0;
|
|
|
|
|
var power = 2;
|
|
|
|
|
var temperature = 1;
|
|
|
|
|
if (code > 480 + 2) {
|
|
|
|
|
pattern = 480;
|
|
|
|
|
}
|
|
|
|
|
else if (code > 360 + 2) {
|
|
|
|
|
pattern = 360;
|
|
|
|
|
}
|
|
|
|
|
else if (code > 240 + 2) {
|
|
|
|
|
pattern = 240;
|
|
|
|
|
}
|
|
|
|
|
else if (code > 120 + 2) {
|
|
|
|
|
pattern = 120;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
pattern = 0;
|
|
|
|
|
}
|
|
|
|
|
code -= pattern;
|
|
|
|
|
if (code > 75 + 2) {
|
|
|
|
|
direction = 75;
|
|
|
|
|
}
|
|
|
|
|
else if (code > 60 + 2) {
|
|
|
|
|
direction = 60;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
direction = 0;
|
|
|
|
|
}
|
|
|
|
|
code -= direction;
|
|
|
|
|
if (code > 45 + 2) {
|
|
|
|
|
wind = 45;
|
|
|
|
|
}
|
|
|
|
|
else if (code > 30 + 2) {
|
|
|
|
|
wind = 30;
|
|
|
|
|
}
|
|
|
|
|
else if (code > 15 + 2) {
|
|
|
|
|
wind = 15;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
wind = 0;
|
|
|
|
|
}
|
|
|
|
|
code -= wind;
|
|
|
|
|
if (code === 1) {
|
|
|
|
|
power = 1;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
power = 2;
|
|
|
|
|
temperature = code - power;
|
|
|
|
|
}
|
|
|
|
|
return {
|
|
|
|
|
pattern: pattern,
|
|
|
|
|
direction: direction,
|
|
|
|
|
wind: wind,
|
|
|
|
|
power: power,
|
|
|
|
|
temperature: temperature
|
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
SendCode1(event) {
|
|
|
|
|
console.log(event.target);
|
|
|
|
|
var form = $(event.target).parents('form');
|
|
|
|
|
var url = form.attr('action') + '?' + form.serialize();
|
|
|
|
|
if (form.hasClass('KeyCodeType1')) {
|
|
|
|
|
if (event.target.name == "power" && event.target.value == "1") {
|
|
|
|
|
url = new URI(url).setQuery('Code', '1').toString();
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
var list = {};
|
|
|
|
|
list['power'] = form.find("[name = 'power']:checked").val();
|
|
|
|
|
list['pattern'] = form.find("[name = 'pattern']:checked").val();
|
|
|
|
|
list['direction'] = form.find("[name = 'direction']:checked").val();
|
|
|
|
|
list['wind'] = form.find("[name = 'wind']:checked").val();
|
|
|
|
|
list['temperature'] = form.find("[name = 'temperature']").val();
|
|
|
|
|
list[event.target.name] = event.target.value;
|
|
|
|
|
var code = 0;
|
|
|
|
|
for (var name in list) {
|
|
|
|
|
code += parseInt(list[name]);
|
|
|
|
|
}
|
|
|
|
|
url = new URI(url).setQuery('Code', code).toString();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
Vue.nextTick(function () {
|
|
|
|
|
ajax(url, null, 'get');
|
|
|
|
|
});
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
destroy() {
|
|
|
|
|