cxfoot/modules/admin/views/ball/qc_data.php
2023-10-24 14:54:18 +08:00

389 lines
16 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
use app\models\Store;
/**
* @author Any
* @description KISS
* @date 2021年6月30日
* @version 1.0.0
*
* _____LOG_____
*
*/
$this->title = '球车详情';
$this->params['breadcrumbs'][] = $this->title;
?>
<style type="text/css">
.layui-table-cell {
height: auto;
}
#container {
width: 100%;
height: 300px;
top:0px;
}
</style>
<div class="layui-fluid">
<div class="layui-card">
<div class="layui-card-header">
<?= $this->title ?>
</div>
<div class="layui-card-header layuiadmin-card-header-auto">
<div class="layui-form-item">
<div class="layui-inline">
<!--<a class=" layui-btn" href="<?= \Yii::$app->urlManager->createUrl(["admin/feedback/edit"]) ?>">添加反馈</a>-->
<select class="layui-select" id="ball_number">
<option value="">选择球车编号</option>
</select>
</div>
<div class="layui-inline layui-float-right">
</div>
</div>
</div>
<div class="layui-card-body">
<div>
<select id="OPERATION_ENABLE_select" class="layui-select">
<option value="0">禁止使用</option>
<option value="1">允许使用</option>
</select>
<select id="OPERATION_LEVEL_select" class="layui-select">
<option value="0">助力模式</option>
<option value="1">遥杆模式</option>
<option value="2">跟随模式</option>
</select>
<button class="layui-btn layui-btn-sm layui-btn-primary" id="handle_qc">操作车辆</button>
<div style="font-size: 10px">
行为选择,模式选择,均为下拉选项<br>
点击操作车辆,等待车辆刷新数据预计10秒左右更新最新数据<br>
此操作会直接影响已在租赁的车辆,如不在调试阶段,请勿操作,会造成用户在使用中突然关闭车辆或者切换模式等情况,造成用户体验不好的情况<br>
(请求mqtt - 等待mqtt订阅数据 - 等待页面数据刷新)
</div>
<button class="layui-btn layui-btn-sm layui-btn-primary handle_query" data="1">查询车辆详细</button>
<button class="layui-btn layui-btn-sm layui-btn-primary handle_query" data="4">查询告警信息</button>
<button class="layui-btn layui-btn-sm layui-btn-primary handle_query" data="2">查询车辆GPS</button>
<div style="font-size: 10px">
三种查询只是请求mqtt需要等待数据发布后才能更新
</div>
</div>
<table class="layui-table">
<colgroup>
<col width="150">
<col>
</colgroup>
<thead>
<tr>
<th>事件</th>
<th>详情</th>
</tr>
</thead>
<tbody>
<tr>
<td>IMEI</td>
<td><div class="body-data" id="IMEI"></div></td>
</tr>
<tr>
<td>SIMID</td>
<td><div class="body-data" id="SIMID"></div></td>
</tr>
<tr>
<td>信号</td>
<td><div class="body-data" id="CSQ"></div></td>
</tr>
<tr>
<td>电量</td>
<td>
<div style="width: 300px" class="layui-progress" lay-filter="number_per" lay-showpercent="true">
<div class="layui-progress-bar" id="ELEC_PERCENT" lay-percent=""></div>
</div></td>
</tr>
<tr>
<td>操作许可</td>
<td> <div id="OPERATION_ENABLE" class="body-data">
<span class="layui-badge layui-bg-cyan">禁止使用</span>
</div> </td>
</tr>
<tr>
<td>操作级别</td>
<td><div id="OPERATION_LEVEL" class="body-data"></div></td>
</tr>
<tr>
<td>运行模式</td>
<td><div id="MODE" class="body-data"></div></td>
</tr>
<tr>
<td>行驶总里程</td>
<td><span id="RANGE" class="body-data"></span>米</td>
</tr>
<tr>
<td>行驶里程</td>
<td><span id="RANGE_CURRENT" class="body-data"></span>米</td>
</tr>
<tr>
<td>运行总时长</td>
<td><span id="RUNTIME" class="body-data"></span></td>
</tr>
<tr>
<td>运行时长</td>
<td><div id="RUNTIME_CURRENT" class="body-data"></div></td>
</tr>
<tr>
<td>告警信息</td>
<td><div id="error_info_body" class="body-data"></div></td>
</tr>
<tr>
<td>纬度</td>
<td><div id="LAT" class="body-data"></div></td>
</tr>
<tr>
<td>经度</td>
<td><div id="LON" class="body-data"></div></td>
</tr>
<tr>
<td>数据更新时间</td>
<td><div id="time" class="body-data"></div></td>
</tr>
<tr>
<td>页面更新时间</td>
<td><div id="time_page" class="body-data"></div></td>
</tr>
</tbody>
</table>
<div id="container"></div>
</div>
</div>
</div>
<script charset="utf-8" src="https://map.qq.com/api/gljs?v=1.exp&key=<?=\Yii::$app->params['mapKey']['qqmap']?>"></script>
<script charset="utf-8" src="https://map.qq.com/api/js?v=2.exp&key=<?=\Yii::$app->params['mapKey']['qqmap']?>"></script>
<script charset="utf-8" src="https://map.qq.com/api/gljs?libraries=tools&v=1.exp&key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77"></script>
<script>
<?php $this->beginBlock('js_script_wrap') ?>
var map = null
var markerLayer = null
var initMap = function () {
var center = new TMap.LatLng(24.476404,118.129105);
//初始化地图
map = new TMap.Map("container", {
zoom: 18,//设置地图缩放级别
center: center//设置地图中心点坐标
});
//创建并初始化MultiMarker
markerLayer = new TMap.MultiMarker({
map: map, //指定地图容器
//样式定义
styles: {
//创建一个styleId为"myStyle"的样式styles的子属性名即为styleId
"myStyle": new TMap.MarkerStyle({
"width": 25, // 点标记样式宽度(像素)
"height": 35, // 点标记样式高度(像素)
//焦点在图片中的像素位置,一般大头针类似形式的图片以针尖位置做为焦点,圆形点以圆心位置为焦点
"anchor": { x: 16, y: 32 }
})
},
//点标记数据数组
geometries: [
]
});
};
$('.body-data').html('<i class="layui-icon layui-icon-loading layui-anim layui-anim-rotate layui-anim-loop"></i>');
layui.config({
base: '/statics/layuiadmin/' //静态资源所在路径
}).extend({
index: 'lib/index' //主入口模块
}).use(['index', 'user', 'table', 'form','element'], function () {
var $ = layui.$
, form = layui.form
, table = layui.table
, admin = layui.admin
,element = layui.element;
$.ajax({
url:"<?=\Yii::$app->urlManager->createUrl(['admin/ball/index'])?>",
data:{page:1,limit:9999},
success:function(res){
if(res.code != 0){
return layer.msg('没有球车数据')
}
var html = "";
$.each(res.data,function(key,val){
html += "<option value='"+val.ball_number+"'>车辆编号:"+val.ball_number+"</option>";
})
$('#ball_number').html(html)
if(GetQueryString('qr_number')){
$('#ball_number').val(GetQueryString('qr_number'))
$('#ball_number').change()
}else{
getData()
}
initMap();
}
})
$('#ball_number').change(function(){
var data = $('#ball_number').val()
$('.body-data').html('<i class="layui-icon layui-icon-loading layui-anim layui-anim-rotate layui-anim-loop"></i>');
getData()
})
function getData(){
var number = $('#ball_number').val()
$.ajax({
url:"<?=\Yii::$app->urlManager->createUrl(['admin/ball/qc-data'])?>",
data:{ball_number:number},
success:function(res){
if(res.code !=0){
element.progress('number_per', '0%')
return $('.body-data').html('未连接mqtt');
}
var OPERATION_ENABLE = {
0: '<span class="layui-badge layui-bg-black">禁止使用</span>',
1: '<span class="layui-badge layui-bg-blue">允许使用</span>',
}
var OPERATION_LEVEL = {
0: '助力模式',
1: '遥杆模式',
2: '跟随模式',
}
var MODE = {
0: '非 助力/遥控/跟随 模式',
1: '助力模式',
2: '摇杆模式',
3: '跟随模式',
}
var lon = 0
var lat = 0
$.each(res.data,function(key,val){
if(key == 'OPERATION_ENABLE'){
$('#'+key).html(OPERATION_ENABLE[val]);
return true
}
if(key == 'OPERATION_LEVEL'){
$('#'+key).html(OPERATION_LEVEL[val]);
return true
}
if(key == 'MODE'){
$('#'+key).html(MODE[val]);
return true
}
if(key == 'ELEC_PERCENT'){
element.progress('number_per', val+'%')
return true
}
if(key == 'error_info'){
var error_info = "";
$.each(val,function(k,v){
error_info += '<span style="margin-right: 5px" class="layui-badge">'+v.msg+' - '+v.time+'</span>';
})
$('#error_info_body').html(error_info);
return true
}
$('#'+key).html(val);
if(key == 'LAT'){
lat = val
}
if(key == 'LON'){
lon = val
}
})
markerLayer.updateGeometries([
{
"styleId":"marker",
"id": "1",
"position": new TMap.LatLng(lat,lon),
}
])
map.setCenter(new TMap.LatLng(lat,lon));
setTimeout(function(){
getData()
},10000)
},error:function(a,b,c){
element.progress('number_per', '0%')
$('.body-data').html('数据获取失败,数据接口网络错误');
setTimeout(function(){
getData()
},10000)
}
})
}
$('#handle_qc').click(function(){
var ball_number = $('#ball_number').val()
var OPERATION_ENABLE_select = $('#OPERATION_ENABLE_select').find("option:selected").text()
var OPERATION_LEVEL_select = $('#OPERATION_LEVEL_select').find("option:selected").text()
var OPERATION_ENABLE_res = $('#OPERATION_ENABLE_select').val()
var OPERATION_LEVEL_res = $('#OPERATION_LEVEL_select').val()
layer.alert("车辆编号:"+ball_number+"<br>操作:"+OPERATION_ENABLE_select+"<br>模式:"+OPERATION_LEVEL_select,{
title:'操作车辆',
btn:['操作','取消'],
yes:function(){
layer.closeAll();
layer.msg('请求中', {
icon: 16
,shade: 0.01,
time:0
});
$.ajax({
url: "<?=\Yii::$app->urlManager->createUrl(['admin/ball/qc-send-mqtt'])?>",
data: {
ball_number: ball_number,
OPERATION_ENABLE:OPERATION_ENABLE_res,
OPERATION_LEVEL:OPERATION_LEVEL_res,
},
success: function (res) {
layer.closeAll();
},error:function(){
layer.closeAll();
}
})
}
})
})
$('.handle_query').click(function(){
var type = $(this).attr('data')
var ball_number = $('#ball_number').val()
layer.msg('请求中', {
icon: 16
,shade: 0.01,
time:0
});
$.ajax({
url: "<?=\Yii::$app->urlManager->createUrl(['admin/ball/qc-get-info'])?>",
data: {
ball_number: ball_number,
type:type,
},
success: function (res) {
layer.closeAll();
},error:function(){
layer.closeAll();
}
})
})
});
function GetQueryString(name)
{
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if(r!=null)return unescape(r[2]); return null;
}
<?php $this->endBlock(); ?>
</script>
<?php $this->registerJs($this->blocks['js_script_wrap'], \yii\web\View::POS_END); ?>