<?php

use yii\helpers\Html;
use yii\helpers\Url;
use yii\widgets\DetailView;
use yii\grid\GridView;
use app\models\DeviceStatus;
use yii\widgets\ActiveForm;
use yii\bootstrap\Modal;
use yii\bootstrap\Alert;
/* @var $this yii\web\View */
/* @var $model app\models\Device */ $this->title = "设备详情-$model->station_name 编号: $model->device_id";
$this->params['breadcrumbs'][] = ['label' => '自救设备', 'url' => ['index']];
$this->params['breadcrumbs'][] = $this->title;
if( Yii::$app->getSession()->hasFlash('error') ) {
echo Alert::widget([
'options' => [
'class' => 'alert-error',
],
'body' => Yii::$app->getSession()->getFlash('error'),
]);
}
if( Yii::$app->getSession()->hasFlash('success') ) {
echo Alert::widget([
'options' => [
'class' => 'alert-success', //这里是提示框的class
],
'body' => Yii::$app->getSession()->getFlash('success'), //消息体
]);
}
?>
<script type="text/javascript">
window.onpageshow = function(event){
if (event.persisted) {
window.location.reload();
}
}
</script>
<style>
.box-header a{
display:inline-block;
}
body{
font-size:16px;
}
a:link,a:visited,a:hover,a:active { color:white; text-decoration: none;}
.close{
line-height:72%;
font-size:300%;
}
.bg-yellow {
background-color: #f39c12 !important
}
</style>
<div id="dialog1" style="display:none">
<div class="weui-mask"></div>
<div class="weui-dialog">
<div class="weui-dialog__hd"><strong class="weui-dialog__title">故障确认</strong></div>
<div style="color:#696969;font-size:16px" class="weui-dialog__bd">您确认已知道<?=$model->station_name?>的故障情况吗?</div>
<div class="weui-dialog__ft">
<a style="color:red" href="<?=yii\helpers\Url::toRoute(['know','device_id'=>$model->device_id])?>" class="weui-dialog__btn weui-dialog__btn_default">确认</a>
<a style="color:green" href="javascript:quKnow()" class="weui-dialog__btn weui-dialog__btn_primary">再看看</a>
</div>
</div>
</div> <h4 style="display:inline-block;line-height:20px">设备信息</h4>
<span style="sange">
<?php if($isopen_flag){
if($model->status == 0){
echo '<a href="javascript:meKnow()" class="weui-btn weui-btn_mini weui-btn_warn">点击已知道</a>';
}else if($model->status == 1){
echo '<a href="javascript:;" class="weui-btn weui-btn_mini bg-yellow">您已知道此设备故障情况</a>';
}
?>
<script type="text/javascript">
function meKnow(){
document.getElementById('dialog1').style.display='block';
}
function quKnow(){
document.getElementById('dialog1').style.display='none';
}
</script> <!-- <?= Html::a('取消关注', ['delete', 'id' => $model->device_id], [
'class' => 'weui-btn weui-btn_mini weui-btn_warn',
'data' => [
'confirm' => '您确定取消关注'.$model->station_name.'吗?',
'method' => 'post',
],
]) ?> --> <?php }?> </span> <?php
// Modal::begin([
// 'id' => 'map-modal',
// 'header' => '<h4 class="modal-title">设备地图信息</h4>',
// ]);
// echo '<iframe style="width:100%;height:380px"
// src="http://apis.map.qq.com/tools/poimarker?type=0&marker=coord:39.98146,116.314966;title: '.$model->device_id.' '.$model->station_name.';&key=2GSBZ-SYKKI-7GXG6-5FHIP-KF4SV-6WBJX&referer=myapp">
// </iframe>';
// Modal::end();
?> <div class="weui-form-preview">
<?= DetailView::widget([
'model' => $model,
'template' => '<div style="margin-top:-5px" class="weui-cells">
<div class="weui-cell">
<div style="text-align:left;width:100%;color:#666666" class="weui-cell__ft">{value}</div>
</div></div>', 'options' => ['class' => ''],
'attributes' => [
[
'label' => '设备详情',
'format' => 'raw',
'value' => '设备号码:'.$model->phone.'<br>基站名称:'.$model->station_name.'<br>设备编号:'.$model->device_id.'<br>设备地址:'.$model->province.' '.$model->city.' '.$model->location.'<br>长按关注设备微信二维码:'.Html::img('@web/'.$model->wcode, ['width' => 42]),
// Html::a('查看设备地图', '#', [
// 'id' => 'map',
// 'data-toggle' => 'modal',
// 'data-target' => '#map-modal',
// 'class' => 'weui-btn weui-btn_mini weui-btn_primary',
// ]),
],
],
]) ?>
</div> <h4>设备当前状态&nbsp;&nbsp;
<?php if ($model->type!=0&&$model->type!=1) {
$guzhang='<span style="color:red;font-size:16px">故障:';
switch ($model->type) {
case 2:
$guzhang.='放电';
break;
case 3:
$guzhang.='电压小于48V';
break;
case 4:
$guzhang.='剩余工作时间小于3小时';
break;
case 5:
$guzhang.='设备失联';
break;
case 6:
$guzhang.='设备故障';
break;
case 0:
$guzhang.='运转良好';
break;
}
echo $guzhang.'<span>';
}else{
echo '<span style="color:green;font-size:16px">运转良好</span>';
} ?></h4> <?php if($device_status){?>
<?= DetailView::widget([
'model' => $device_status,
'template' => '<div style="margin-top:-8px" class="weui-cells">
<div class="weui-cell">
<div style="text-align:left;width:100%;color:#666666;padding-bottom:8px" class="weui-cell__ft">{value}</div>
</div>', 'options' => ['class' => ''],
'attributes' => [
[
'label'=>'记录时间',
'attribute'=>'create_time',
'value'=>function($device_status){
return '记录时间:'.date('Y/m/d H:i:s',$device_status->create_time);
},
],
[
'label'=>'IP地址',
'attribute'=>'ip',
'value'=>function($device_status){
return 'ip地址:'.$device_status->ip;
},
],
[
'label'=>'落后电池数量',
'attribute'=>'bad_battery_count',
'value'=>function($device_status){
return '落后电池数量:'.$device_status->bad_battery_count;
},
],
[
'label'=>'落后电池',
'attribute'=>'v1',
'format'=>'raw',
'value'=>function($device_status){
if($device_status->bad_battery_status==0){
return "落后电池:<span style='color:green'>没有电池落后,运转良好</span>";
}else{
$msg='';
foreach($device_status->bad_battery_status as $key=>$value){
if($value==1) $msg.=($key*2+1).',' . ($key*2+2) .',';
}
$msg=rtrim($msg,',');
if(strlen($msg)<1){
return "落后电池:<span style='color:green'>没有电池落后,运转良好</span>";
}else{
return "落后电池:<span style='color:red'>第".$msg."节电池为落后电池,请及时检修。</span>";
}
}
}
],
[
'label' => '状态详情',
'format' => 'raw',
'value' => '工作状态:'.DeviceStatus::$status_names[$device_status->status].
'<br>充电状态:'.DeviceStatus::$charge_names[$device_status->status_charge].
'<br>电压:'.$device_status->volt.'V'.
'<br>电流:'.$device_status->current.'A'.
'<br>工作时间:'.$device_status->work_min.'分钟(约'.round($device_status->work_min/60,1).'小时)'.
'<br>均衡电量:'.$device_status->zijiu_ah.'AH'.
'<br>均衡时间:'.$device_status->zijiu_min.'分钟(约'.round($device_status->zijiu_min/60,1).'小时)'.
'<br>充放电量:'.$device_status->output_ah.'AH'.
'<br>充放时间:'.$device_status->output_min.'分钟(约'.round($device_status->output_min/60,1).'小时)'.
'<br>剩余电量:'.$device_status->remain_ah.'AH'.
'<br>剩余时间:'.$device_status->remain_min.'分钟(约'.round($device_status->remain_min/60,1).'小时)'
],
[
'label'=>'电池组电压',
'attribute'=>'v1',
'format'=>'raw',
'value'=>function($device_status){
$bad=$device_status->bad_battery_status?$device_status->bad_battery_status:[0=>0,1=>0,2=>0,3=>0,4=>0,5=>0,6=>0,7=>0,8=>0,9=>0,10=>0,11=>0];
$badcount=count($bad);
if($badcount<12){
for($i = 0; $i <(12-$badcount); $i++) {
array_push($bad,0);
}
}
$dcolor='电池组电压:<br>';
$count=0;
foreach($bad as $key=>$value){
$keyv='v'.($key+1);
if($value==1){
$dcolor.='<span style="color:red">【'.($key+1).'】'.$device_status->$keyv.'V</span>';
}else{
$dcolor.='【'.($key+1).'】'.$device_status->$keyv.'V';
}
$count++;
if($count%3==0){$dcolor.='<br>';}
}
return $dcolor;
}
], ],
]) ?> <?php }else{echo '当前没有设备状态';}?>
<h4>消息通知&nbsp;&nbsp;&nbsp;</h4>
<div class="wmsg-search">
<div style="margin-top:10px;" class="form">
<?= \yii\widgets\ListView::widget([
'dataProvider' => $wmsg,
'itemView'=>'_wmsg_item'
]);?>
</div>
</div>
</div>

v1版本的更多相关文章

  1. CQRS之旅——旅程5(准备发布V1版本)

    旅程5:准备发布V1版本 添加功能和重构,为V1版本发布做准备. "大多数人在完成一件事之后,就像留声机的唱片一样,一遍又一遍地使用它,直到它破碎,忘记了过去是用来创造更多未来的东西.&qu ...

  2. ubuntu上pyecharts V1版本环境搭建

    1 背景 今天想用pyecharts画图,在新的环境下使用pip安装之后发现,导入pyecharts模块一直失败,报错如下. 图 1 导入pyecharts错误图 请注意:我这里使用的python版本 ...

  3. Kubernetes概念介绍和v1版本部署过程

    简介: k8s一个开源的,跨主机管理容器应用集群的编排系统,为应用提供了基础的部署.维护和扩缩容机制. 编排:跨Docker主机同一管理容器集群. 目的 简化开发和运维容器集群的工作. 让开发和运维能 ...

  4. 区块链V1版本实现之五

    代码重构: block.go文件: package main import ( "crypto/sha256" ) //定义区块结构 type Block struct { //前 ...

  5. 区块链V1版本实现之二

    部分程序代码(生成并调用hash代码): 1 //创建区块,对Block的每一个字段填充数据 2 func NewBlock(data string, prevBlockHash []byte) *B ...

  6. 区块链V1版本实现之一

    1. 程序地址:https://gitee.com/Jame_sz/beijing_go_term2.git 2. 程序编写流程: //1. 定义结构(区块头的字段比正常的少) //>1. 前区 ...

  7. 网易云音乐综合爬虫python库NetCloud v1版本发布

    以前写的太烂了,这次基本把之前的代码全部重构了一遍.github地址是:NetCloud.下面是简单的介绍以及quick start. NetCloud--一个完善的网易云音乐综合爬虫Python库 ...

  8. pyecharts v1 版本 学习笔记 饼图,玫瑰图

    饼图: 普通案例 from example.commons import Faker from pyecharts import options as opts from pyecharts.char ...

  9. pyecharts v1 版本 学习笔记 折线图,面积图

    折线图 折线图 基本demo import pyecharts.options as opts from pyecharts.charts import Line c = ( Line() .add_ ...

随机推荐

  1. ios APP改名推送名字还是旧的

    重启手机就行了 https://community.jiguang.cn/t/ios-app/14759

  2. SQLAlchemy_ORM

    ORM 与 SQLAlchemy 简介: ORM 叫对象关系映射,ORM 将对象转换成SQL,然后使用数据API执行SQL并获取执行结果 SQLAlchemy 是Python 社区最知名的 ORM 工 ...

  3. 2018/09/05《涂抹MySQL》【权限管理】学习笔记(二)

    读 第四章<管理MySQL库与表> 第五章<MySQL的权限管理> 总结 1:当配置好 MySQL 数据库后,发现有几个默认的库,他们的意义和作用?(这里只做简单了解,之后用到 ...

  4. Selenium功能自动化测试工具

    Selenium也是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE.Mozilla Firefox.Mozilla Suite ...

  5. bzoj3733 [Pa2013]Iloczyn 搜索

    正解:搜索 解题报告: 先放下传送门QwQ umm其实并不难,,,最近在复建基础姿势点所以都写的是些小水题QAQ 首先考虑如果能构造出来一定是因数凑起来鸭,所以先把因数都拆出来,然后就爆搜 几个常见的 ...

  6. 【Python学习 】Python获取命令行参数的方法

    背景 最近编写一个python程序的时候,需要去获取python命令行的参数,因此这里记录下如何获取命令行参数的方法. 一.sys 模块 在 Python 中,sys 模块是一个非常常用且十分重要的模 ...

  7. 【三分】light bulb(zoj3203)

    题目描述: 如图,你可以在房间里移动,灯泡的高度为H,你的身高为h,灯泡与墙的水平距离为D,求你影子的最长长度(影子长度=地上影子长度+墙上影子长度) 样例输入: 0.5 样例输出: 1.000 0. ...

  8. Jenkins打包安卓时提示没同意constraintLayout的license的解决方法

    使用Jenkins打包安卓项目时,报错并失败,错误信息: You have not accepted the license agreements of the following SDK compo ...

  9. sql server 跟踪日志

    1,当SQL Server错误日志很大时,手工运行:  exec sp_cycle_errorlog 系统存储过程,即可使用新的日志文件 sqlserver系统自动调用 exec sp_cycle_e ...

  10. 016-插件使用-head

    一.安装以及概览 elasticsearch-head将是一款专门针对于elasticsearch的客户端工具 elasticsearch-head配置包,下载地址:https://github.co ...