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.
iot/projects/WebSPA/wwwroot/pages/iot/node.html

214 lines
13 KiB

<div class="page js_show" v-if="node">
<div class="weui-header">
<router-link to="/pages/iot/nodes" class="weui-header-left">
<i class="ion ion-ios-arrow-back"></i>
</router-link>
<h1 class="weui-header-title">{{node.name}}</h1>
</div>
<div class="main">
<!--环境-->
<div class="row" style="background-color: #35A9FE;padding:5px 0;">
<!--光强检测器-->
<div v-for="device in getDevices('光强检测器')" class="col-3" style="padding:5px">
<template>
<div class="light align-self-center" style="box-sizing:border-box;">
<div class="row" style="height:100%;margin: 0 auto;padding:0px;">
<div class="col-12 align-self-center " style="text-align:center; padding-bottom:15px;">
<img class="mh-100" src="/images/white-light.svg" style="width:24px;" />
</div>
<div class="col-12 align-self-center" style="line-height:14px;text-align:center;font-size:12px;padding:5px;color: #ffffff;">
<span style="display: block; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; word-break: break-all;">{{getDeviceData(device,'光照度')}}</span>
</div>
</div>
</div>
</template>
<script>
({
props: ['device']
});
</script>
</div>
<!--温湿度传感器-->
<div v-for="device in getDevices('温湿度传感器')" class="col-3" style="padding:5px">
<template>
<div class="light align-self-center" style="box-sizing:border-box;">
<div class="row" style="height:100%;margin: 0 auto; padding:0px;">
<div class="col-12 align-self-center " style="text-align:center; padding-bottom:15px;">
<img class="mh-100" src="/images/white-humiture.svg" style="width:24px" />
</div>
<div class="col-12 align-self-center" style="line-height:14px;text-align:center;font-size:12px;padding:5px;color: #ffffff;">
<span>
{{getDeviceData(device,'温度')}}
</span>
<span>
{{getDeviceData(device,'湿度')}}
</span>
</span>
</div>
</div>
</div>
</template>
<script>
({
props: ['device']
});
</script>
</div>
<!--烟雾报警器-->
<!--<div v-for="device in getDevices('烟雾报警器')" class="col" style="min-width:320px;">
<iot-smoke v-bind:device="device"></iot-smoke>
</div>-->
<!--人体感应器-->
<div v-for="device in getDevices('人体感应器')" class="col-3" style="padding:5px">
<template>
<div class="light align-self-center" style="box-sizing:border-box;">
<div class="row" style="height:100%;margin: 0 auto;padding:0px;">
<div class="col-12 align-self-center " style="text-align:center; padding-bottom:15px;">
<img src="/images/white-person.svg" class="mh-100" style="width:24px;" />
</div>
<div class="col-12 align-self-center" style="line-height:14px;text-align:center;font-size:12px;padding:5px;color: #ffffff;">
<span>
<span v-if="getDeviceDataValue(device,'状态')==='正常'">
{{getDeviceDataValue(device,'状态')}}
</span>
<span v-else>
{{getDeviceDataValue(device,'状态')}}
</span>
</span>
</div>
</div>
</div>
</template>
<script>
({
props: ['device']
});
</script>
</div>
</div>
<!--场景-->
<div class="row" v-if="scenes.length">
<div class="col col-md-12" style="padding:5px 5px 0">
<div class="card" style="margin: 5px;">
<div class="card-header" style="background-color: #fff;border-bottom-color: #fff; font-size: 14px;padding:10px 15px;">场景</div>
<div class="card-body" style="padding:0 0 15px 0">
<div class="row">
<div class="col-md-2 col-sm-4 col-4 p-1" v-for="scene in scenes" v-on:click="execScene(scene.id)">
<div class="weui-grid__icon">
<img class="weui-tabbar__icon" :src="scene.image.replace('.png', '.svg')" style="width:48px;margin: auto auto" />
</div>
<p class="weui-grid__label" style="text-align: center;margin-bottom: 5px;">{{scene.name}}</p>
</div>
</div>
</div>
</div>
</div>
</div>
<!--控制-->
<div class="row" style="padding:0px 5px 0">
<!--调色灯-->
<div v-for="device in getDevices('调色灯')" class="col" style="padding:5px">
<iot-color-light v-bind:device="device"></iot-color-light>
</div>
<!--窗帘电机-->
<div v-for="device in getDevices('窗帘电机')" class="col" style="padding:5px">
<iot-curtain v-bind:device="device"></iot-curtain>
</div>
<!--一路开关-->
<div v-for="device in getDevices('一路开关')" class="col-6" style="padding:5px">
<template>
<div class="card switch" style="box-sizing:border-box;height:130px;">
<div class="card-header" style="background-color: #fff;border-bottom-color: #fff; font-size: 14px;padding:10px 15px;">
{{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" style="padding:0px">
<div class="row" style="height:100%;margin: 0 auto;">
<div class="col-7 align-self-center">
<img class="mh-100" src="/images/switch1.svg" style="width:32px;" />
</div>
<div class="col-5 align-self-center">
<div class="row" style="line-height:28px; text-align: right;">
<img style="height:32px;width:32px;padding:5px;border:solid #cccccc 1px;border-radius:50%;margin-left: 0px;" v-if="getDeviceDataValue(device,'状态')=='开'" v-on:click="execApi(device.number,'/Switch/Off')" src="/images/on.svg" />
<img style="height:32px;width:32px;padding:5px;border:solid #cccccc 1px;border-radius:50%;margin-left: 0px;" v-if="getDeviceDataValue(device,'状态')=='关'" v-on:click="execApi(device.number,'/Switch/On')" src="/images/off.svg" />
</div>
</div>
</div>
</div>
</div>
</template>
<script>
({
props: ['device']
});
</script>
</div>
<!--三路开关-->
<div v-for="device in getDevices('三路开关')" class="col" style="padding:5px">
<iot-switch3 v-bind:device="device"></iot-switch3>
</div>
<!--智能插座-->
<div v-for="device in getDevices('智能插座')" class="col-6" style="padding:5px">
<template>
<div class="card socket" style="box-sizing:border-box;height:130px;">
<div class="card-header" style="background-color: #fff;border-bottom-color: #fff; font-size: 14px;padding:10px 15px;">
{{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"style="padding:0px">
<div class="row" style="height:50%;margin: 0 auto;">
<div class="col-7 align-self-center">
<img class="mh-100" src="/images/socket.svg" style="width:32px;" />
</div>
<div class="col-5 align-self-center">
<div class="row" style="line-height:28px;">
<img style="height:32px;width:32px;padding:5px;border:solid #cccccc 1px;border-radius:50%;margin-left: 0px;" v-if="getDeviceDataValue(device,'状态')==='开'" v-on:click="execApi(device.number,'/Socket/Off')" :src="config.apigateway+'/IoTCenter/images/on.png'" />
<img style="height:32px;width:32px;padding:5px;border:solid #cccccc 1px;border-radius:50%;margin-left: 0px;" v-else="getDeviceDataValue(device,'状态')==='关'" v-on:click="execApi(device.number,'/Socket/On')" :src="config.apigateway+'/IoTCenter/images/off.png'" />
</div>
</div>
</div>
<div class="row" style="margin: 0 auto;">
<span class="badge badge-info" style="line-height:14px;margin: 10px 0px 5px 15px;color: #666;background-color: #f5f5f5;font-weight: normal;" v-if="getDeviceDataValue(device, '电量')">{{parseFloat(getDeviceDataValue(device, '电量')||0).toFixed(2)}} kW‧h</span>
<span class="badge badge-info" style="line-height:14px;margin: 10px 0px 5px 15px;color: #666;background-color: #f5f5f5;font-weight: normal;" >{{parseFloat(getDeviceDataValue(device, '功率')||0).toFixed(2)}} W</span>
</div>
</div>
</div>
</template>
<script>
({
props: ['device'],
});
</script>
</div>
</div>
<!--<div class="col col-md-12 my-2 px-3">遥控器</div>-->
<div class="row">
<!--摄像头-->
<div v-for="device in getDevices('摄像头')" class="col" style="min-width:320px;">
<iot-camera v-bind:device="device"></iot-camera>
</div>
<!--红外转发器-->
<div v-for="device in getDevices('红外转发器')" class="col" style="min-width:320px;">
<iot-ir v-bind:device="device"></iot-ir>
</div>
<!--串口控制器-->
<div v-if="getShowFlag('串口控制器')" v-for="device in getDevices('串口控制器')" class="col" style="min-width:320px;">
<iot-serial-port v-bind:device="device"></iot-serial-port>
</div>
</div>
<!--test-->
<!--<hr />
<div class="row" v-if="node">
<div v-for="device in node.devices" class="col-lg-3 col col-md-4 col-sm-6">
<div class="weui-grid__icon">
<img :src="'/IoTCenter'+device.product.image" />
</div>
<p class="weui-grid__label">{{device.displayName}}</p>
</div>
</div>-->
</div>
</div>