You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
2.0 KiB
40 lines
2.0 KiB
<template>
|
|
<div class="card" style="box-sizing:border-box;height:150px;margin:10px;">
|
|
<div class="card-header">
|
|
{{device.displayName}}
|
|
<span class="float-right text-success" v-if="device.isOnline"><i class="ion ion-ios-wifi"></i></span>
|
|
<span class="float-right text-danger" v-else><i class="ion ion-ios-wifi"></i></span>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="row" style="height:100%;width:300px;margin: 0 auto;">
|
|
<div class="col-4 align-self-center">
|
|
<img class="mh-100" :src="device.product.image" style="width:48px;" />
|
|
</div>
|
|
<div class="col-8 align-self-center">
|
|
<div class="row" style="line-height:28px;">
|
|
<span class="badge badge-info" style="line-height:26px; margin-right: 10px;" v-if="isSmart">{{electricity}} kW‧h</span>
|
|
<span class="badge badge-info" style="line-height:26px; margin-right: 10px;" v-if="isSmart">{{power}} W</span>
|
|
<img style="height:32px;" v-if="getDeviceDataValue(device,'状态')==='开'" v-on:click="execApi(device.number,'/Socket/Off')" src="/images/on.svg" />
|
|
<img style="height:32px;" v-else="getDeviceDataValue(device,'状态')==='关'" v-on:click="execApi(device.number,'/Socket/On')" src="/images/off.svg" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
<script>
|
|
export default {
|
|
props: ['device'],
|
|
computed: {
|
|
isSmart: function () {
|
|
return Enumerable.from(this.device.data).any(function (o) { return o.name === "电量"; });
|
|
},
|
|
electricity: function () {
|
|
return parseFloat(getDeviceDataValue(this.device, '电量') || 0).toFixed(2);
|
|
},
|
|
power: function () {
|
|
return parseFloat(getDeviceDataValue(this.device, '功率') || 0).toFixed(2);
|
|
}
|
|
}
|
|
};
|
|
</script> |