Former-commit-id: b4e07402e00bbda0ca8d4612b822e74238bd619c
Former-commit-id: 590f732e84ecce988b99f3760e67b14b5af71301
1.0
wanggang 5 years ago
parent 7c5a92d749
commit a834324ef7

@ -2,6 +2,9 @@
{
public enum ClusterId
{
Basic = 0x0000,
OnOff = 0x0006,
LevelControl=0x0008,
off = 0xfbee,
light = 0x0400,
alarm = 0x0500,
@ -10,7 +13,7 @@
humidity = 0x0405,
voltage = 0x0001,
socket = 0x0702,
SummationDivisor = 0x0b04,
doorlock = 0x0101
ElectricityMeasurement = 0x0b04,
doorlock = 0x0101,
}
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,54 @@
<template>
<div class="card device-component">
<div class="card-header">
<h3 class="card-title">
{{device.displayName}}
<i v-if="device.isOnline" class="text-success ion ion-ios-wifi"></i>
<i v-else class="text-danger ion ion-ios-wifi"></i>
</h3>
<div class="card-tools">
<span @click="visible = true" title="操作"><i class="ion ion-md-settings"></i></span>
</div>
</div>
<div class="card-body">
<div class="row">
<div class="col-4 align-self-center">
<img class="device-image" :src="device.ioTProduct.image" />
</div>
<div class="col-8 align-self-center">
<div class="row" style="line-height:28px;">
<span>
状态:
<span class="status">
{{status}}
</span>
</span>
</div>
</div>
</div>
</div>
<a-modal v-model="visible" :title="device.displayName" :footer="null">
<img style="height:32px;" v-on:click="execApi(device.number,'/Curtain/On')" src="/platform/images/left.svg" />
<img style="height:32px;" v-on:click="execApi(device.number,'/Curtain/Stop')" src="/platform/images/stop.svg" />
<img style="height:32px;" v-on:click="execApi(device.number,'/Curtain/Off')" src="/platform/images/right.svg" />
</a-modal>
</div>
</template>
<script>
({
props: ['device'],
data: function () {
return {
visible: false
}
},
computed: {
status: function () {
var value = getDeviceDataValue(this.device, '状态');
return value === '0' ? '关' :
(value === '1' ? '开' : '停');
}
}
});
</script>

@ -13,10 +13,10 @@
<img class="device-image" :src="device.ioTProduct.image" />
</div>
<div class="col-8 align-self-center">
<div class="row" style="line-height:28px;">
<div class="row">
<span>
状态:
<span :class="cls" style="font-size:28px;">
<span class="status">
{{status}}
</span>
</span>

@ -7,21 +7,19 @@
<i v-else class="text-danger ion ion-ios-wifi"></i>
</h3>
<div class="card-tools">
<span @click="showModal" title="操作"><i class="ion ion-md-settings"></i></span>
<span @click="visible = true" title="操作"><i class="ion ion-md-settings"></i></span>
</div>
</div>
<div class="card-body">
<div class="row" style="height:100%;width:300px;margin: 0 auto;">
<div class="row">
<div class="col-4 align-self-center">
<img class="mh-100" :src="device.ioTProduct.image" style="width:48px;" />
<img class="device-image" :src="device.ioTProduct.image" style="width:48px;" />
</div>
<div class="col-8 align-self-center">
<template v-if="isSmart">
<div class="row">
<span>
状态:
<img v-if="getDeviceDataValue(device,'状态')==='1'" src="/platform/images/on.svg" />
<img v-else="getDeviceDataValue(device,'状态')==='0'" src="/platform/images/off.svg" />
状态:{{status}}
</span>
</div>
<div class="row">
@ -37,9 +35,7 @@
</div>
<div class="row">
<span>
状态:
<img v-if="getDeviceDataValue(device,'状态')==='1'" src="/platform/images/on.svg" />
<img v-else="getDeviceDataValue(device,'状态')==='0'" src="/platform/images/off.svg" />
状态:{{status}}
</span>
</div>
</template>
@ -47,8 +43,8 @@
</div>
</div>
<a-modal v-model="visible" :title="device.displayName" :footer="null">
<img style="height:32px;" v-if="getDeviceDataValue(device,'状态')==='1'" v-on:click="execApi(device.number,'/Socket/Off')" src="/platform/images/on.svg" />
<img style="height:32px;" v-else="getDeviceDataValue(device,'状态')==='0'" v-on:click="execApi(device.number,'/Socket/On')" src="/platform/images/off.svg" />
<img style="height:32px;" v-if="status==='开'" v-on:click="execApi(device.number,'/Socket/Off')" src="/platform/images/on.svg" />
<img style="height:32px;" v-else v-on:click="execApi(device.number,'/Socket/On')" src="/platform/images/off.svg" />
</a-modal>
</div>
</template>
@ -61,6 +57,9 @@
}
},
computed: {
status: function () {
return getDeviceDataValue(this.device, '状态') === '1' ? '开' : '关';
},
isSmart: function () {
return Enumerable.from(this.device.data).any(function (o) { return o.name === "电量"; });
},
@ -70,11 +69,6 @@
power: function () {
return parseFloat(getDeviceDataValue(this.device, '功率') || 0).toFixed(2);
}
},
methods: {
showModal: function () {
this.visible = true;
}
}
});
</script>

@ -142,21 +142,25 @@ img.pointer {
height: 150px;
margin: 10px;
}
.device-row {
height: 100%;
width: 300px;
margin: 0 auto;
}
.device-image{
width:48px;
height:48px;
}
.device-component .status {
font-size: 28px;
}
.device-component .card-tools .ion {
font-size: 16px!important;
}
.device-component .card-body {
padding:10px;
min-width:270px;
}
.device-component .card-body > .row {
height: 100%;
width: 270px;
margin: 0 auto;
}
.device-component .card-body .row span{
line-height:24px;
display:inline-block;
@ -164,4 +168,7 @@ img.pointer {
.device-component .card-body span img {
height:24px;
display:inline;
}
}
.ant-modal-body{
text-align:center;
}

@ -91,7 +91,8 @@ addVueComponents({
prefix: "/components/devices/",
list: [
'smoke',
'socket'
'socket',
'curtain'
]
});
//获取设备数据

Loading…
Cancel
Save