|  |  |  | 
|---|
|  |  |  | float: left; | 
|---|
|  |  |  | font-weight: bold; | 
|---|
|  |  |  | text-shadow: 0 1px 0 rgb(0 0 0 / 20%); | 
|---|
|  |  |  | padding: .3em .6em; | 
|---|
|  |  |  | padding: .3em 1em; | 
|---|
|  |  |  | font-size: 85%; | 
|---|
|  |  |  | height: 30px; | 
|---|
|  |  |  | line-height: 30px; | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <div class="layui-form-item layui-row"> | 
|---|
|  |  |  | <div class="layui-inline layui-col-md4"> | 
|---|
|  |  |  | <label class="layui-form-label">设备编号:</label> | 
|---|
|  |  |  | <label class="layui-form-label">故障编号:</label> | 
|---|
|  |  |  | <div class="layui-input-block"> | 
|---|
|  |  |  | <input name="uuid" placeholder="请输入设备编号" class="layui-input"/> | 
|---|
|  |  |  | <input name="uuid" placeholder="未知" class="layui-input" disabled /> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="layui-inline layui-col-md4"> | 
|---|
|  |  |  | <label class="layui-form-label">所属项目:</label> | 
|---|
|  |  |  | <div class="layui-input-block"> | 
|---|
|  |  |  | <input name="hostId$" placeholder="请输入所属项目" class="layui-input"/> | 
|---|
|  |  |  | <input name="hostId$" placeholder="请输入所属项目" class="layui-input" disabled/> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="layui-inline layui-col-md4"> | 
|---|
|  |  |  | <label class="layui-form-label">ccid:</label> | 
|---|
|  |  |  | <label class="layui-form-label">故障类型:</label> | 
|---|
|  |  |  | <div class="layui-input-block"> | 
|---|
|  |  |  | <input name="sim" placeholder="请输入sim卡号" class="layui-input"/> | 
|---|
|  |  |  | <input name="issueType$" placeholder="未知" class="layui-input" disabled /> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="layui-inline layui-col-md4"> | 
|---|
|  |  |  | <label class="layui-form-label">系统状态:</label> | 
|---|
|  |  |  | <label class="layui-form-label">巡检人员:</label> | 
|---|
|  |  |  | <div class="layui-input-block"> | 
|---|
|  |  |  | <select name="status"> | 
|---|
|  |  |  | <option value="1">启用</option> | 
|---|
|  |  |  | <option value="0">禁用</option> | 
|---|
|  |  |  | </select> | 
|---|
|  |  |  | <input name="discoverer" placeholder="未知" class="layui-input" disabled /> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="layui-inline layui-col-md4"> | 
|---|
|  |  |  | <label class="layui-form-label">添加时间:</label> | 
|---|
|  |  |  | <label class="layui-form-label">联系方式:</label> | 
|---|
|  |  |  | <div class="layui-input-block"> | 
|---|
|  |  |  | <input id="formAdvDateSel1" name="createTime$" placeholder="请选择日期" | 
|---|
|  |  |  | class="layui-input icon-date" autocomplete="off"/> | 
|---|
|  |  |  | <input name="tel" placeholder="未知" class="layui-input" disabled /> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="layui-inline layui-col-md4"> | 
|---|
|  |  |  | <label class="layui-form-label ">添加人员:</label> | 
|---|
|  |  |  | <label class="layui-form-label">解决人员:</label> | 
|---|
|  |  |  | <div class="layui-input-block"> | 
|---|
|  |  |  | <input name="createBy$" placeholder="请输入添加人员" class="layui-input"/> | 
|---|
|  |  |  | <input name="dealer" placeholder="请输入..." class="layui-input" /> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="layui-inline layui-col-md12"> | 
|---|
|  |  |  | <label class="layui-form-label ">地理位置:</label> | 
|---|
|  |  |  | <div class="layui-inline layui-col-md4"> | 
|---|
|  |  |  | <label class="layui-form-label">发生日期:</label> | 
|---|
|  |  |  | <div class="layui-input-block"> | 
|---|
|  |  |  | <input name="locationMore" placeholder="未知" class="layui-input" disabled/> | 
|---|
|  |  |  | <input name="startTime$" placeholder="请选择时间" class="layui-input icon-date" autocomplete="off" disabled/> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="layui-inline layui-col-md12"> | 
|---|
|  |  |  | <label class="layui-form-label ">具体描述:</label> | 
|---|
|  |  |  | <div class="layui-inline layui-col-md4"> | 
|---|
|  |  |  | <label class="layui-form-label">处理日期:</label> | 
|---|
|  |  |  | <div class="layui-input-block"> | 
|---|
|  |  |  | <input name="desc" placeholder="暂无" class="layui-input"/> | 
|---|
|  |  |  | <input id="endTime" name="endTime$" placeholder="请选择时间" class="layui-input icon-date" autocomplete="off"/> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="layui-inline layui-col-md4"> | 
|---|
|  |  |  | <label class="layui-form-label">更新日期:</label> | 
|---|
|  |  |  | <div class="layui-input-block"> | 
|---|
|  |  |  | <input id="lastTime" name="lastTime$" placeholder="请选择时间" class="layui-input icon-date" autocomplete="off"/> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <!-- 设备参数 --> | 
|---|
|  |  |  | <!-- 巡检明细 --> | 
|---|
|  |  |  | <div class="layui-card"> | 
|---|
|  |  |  | <div class="layui-card-header">设备参数</div> | 
|---|
|  |  |  | <div class="layui-card-header">巡检明细</div> | 
|---|
|  |  |  | <div class="layui-card-body"> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <div class="layui-form-item layui-row"> | 
|---|
|  |  |  | <div class="layui-inline layui-col-md4"> | 
|---|
|  |  |  | <label class="layui-form-label">主题-topic:</label> | 
|---|
|  |  |  | <div class="layui-inline layui-col-md12"> | 
|---|
|  |  |  | <label class="layui-form-label">问题概述:</label> | 
|---|
|  |  |  | <div class="layui-input-block"> | 
|---|
|  |  |  | <input name="topic" placeholder="请输入主题" class="layui-input"/> | 
|---|
|  |  |  | <textarea name="title" placeholder="未知" class="layui-textarea" disabled></textarea> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="layui-inline layui-col-md4"> | 
|---|
|  |  |  | <label class="layui-form-label">地址-ip:</label> | 
|---|
|  |  |  | <div class="layui-inline layui-col-md12"> | 
|---|
|  |  |  | <label class="layui-form-label">故障原因:</label> | 
|---|
|  |  |  | <div class="layui-input-block"> | 
|---|
|  |  |  | <input name="ip" placeholder="请输入ip地址" class="layui-input"/> | 
|---|
|  |  |  | <textarea name="reason" placeholder="请输入..." class="layui-textarea"></textarea> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="layui-inline layui-col-md4"> | 
|---|
|  |  |  | <label class="layui-form-label">端口-port:</label> | 
|---|
|  |  |  | <div class="layui-inline layui-col-md12"> | 
|---|
|  |  |  | <label class="layui-form-label">解决办法:</label> | 
|---|
|  |  |  | <div class="layui-input-block"> | 
|---|
|  |  |  | <input type="number" name="port" placeholder="请输入端口" class="layui-input" | 
|---|
|  |  |  | lay-verType="tips" lay-verify="number" required/> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="layui-inline layui-col-md4"> | 
|---|
|  |  |  | <label class="layui-form-label">信号值:</label> | 
|---|
|  |  |  | <div class="layui-input-block"> | 
|---|
|  |  |  | <input type="number" name="signal" placeholder="请输入信号值" class="layui-input" | 
|---|
|  |  |  | lay-verType="tips" lay-verify="number" required/> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="layui-inline layui-col-md4"> | 
|---|
|  |  |  | <label class="layui-form-label">电池电量:</label> | 
|---|
|  |  |  | <div class="layui-input-block"> | 
|---|
|  |  |  | <input type="number" name="battery" placeholder="请输入电量" class="layui-input" | 
|---|
|  |  |  | lay-verType="tips" lay-verify="number" required/> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="layui-inline layui-col-md4"> | 
|---|
|  |  |  | <label class="layui-form-label">环境温度-℃:</label> | 
|---|
|  |  |  | <div class="layui-input-block"> | 
|---|
|  |  |  | <input type="number" name="tempe" placeholder="请输入温度" class="layui-input" | 
|---|
|  |  |  | lay-verType="tips" lay-verify="number" required/> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="layui-inline layui-col-md4"> | 
|---|
|  |  |  | <label class="layui-form-label">充电状态:</label> | 
|---|
|  |  |  | <div class="layui-input-block"> | 
|---|
|  |  |  | <select name="charge"> | 
|---|
|  |  |  | <option value="1">充电中</option> | 
|---|
|  |  |  | <option value="0">不在充电</option> | 
|---|
|  |  |  | </select> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="layui-inline layui-col-md4"> | 
|---|
|  |  |  | <label class="layui-form-label">倾斜角度-°:</label> | 
|---|
|  |  |  | <div class="layui-input-block"> | 
|---|
|  |  |  | <input type="number" name="tiltZ" placeholder="倾斜角度" class="layui-input" | 
|---|
|  |  |  | lay-verType="tips" lay-verify="number" required/> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="layui-inline layui-col-md4"> | 
|---|
|  |  |  | <label class="layui-form-label">破损状态:</label> | 
|---|
|  |  |  | <div class="layui-input-block"> | 
|---|
|  |  |  | <select name="worn"> | 
|---|
|  |  |  | <option value="1">已破损</option> | 
|---|
|  |  |  | <option value="0">未破损</option> | 
|---|
|  |  |  | </select> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="layui-inline layui-col-md4"> | 
|---|
|  |  |  | <label class="layui-form-label">水位情况:</label> | 
|---|
|  |  |  | <div class="layui-input-block"> | 
|---|
|  |  |  | <select name="overflow"> | 
|---|
|  |  |  | <option value="0">水位正常</option> | 
|---|
|  |  |  | <option value="1">水位超标</option> | 
|---|
|  |  |  | </select> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="layui-inline layui-col-md4"> | 
|---|
|  |  |  | <label class="layui-form-label">光伏功能:</label> | 
|---|
|  |  |  | <div class="layui-input-block"> | 
|---|
|  |  |  | <select name="agc"> | 
|---|
|  |  |  | <option value="1">有</option> | 
|---|
|  |  |  | <option value="0">没有</option> | 
|---|
|  |  |  | </select> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="layui-inline layui-col-md4"> | 
|---|
|  |  |  | <label class="layui-form-label">形状:</label> | 
|---|
|  |  |  | <div class="layui-input-block"> | 
|---|
|  |  |  | <select name="shape"> | 
|---|
|  |  |  | <option value="1">圆形</option> | 
|---|
|  |  |  | <option value="2">长方形</option> | 
|---|
|  |  |  | <option value="3">正方形</option> | 
|---|
|  |  |  | </select> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div class="layui-inline layui-col-md4"> | 
|---|
|  |  |  | <label class="layui-form-label">尺寸:</label> | 
|---|
|  |  |  | <div class="layui-input-block"> | 
|---|
|  |  |  | <input type="number" name="size" placeholder="请输入尺寸" class="layui-input"/> | 
|---|
|  |  |  | <textarea name="deal" placeholder="请输入..." class="layui-textarea"></textarea> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <!-- 报文日志 --> | 
|---|
|  |  |  | <div class="layui-card"> | 
|---|
|  |  |  | <div class="layui-card-header">报文日志</div> | 
|---|
|  |  |  | <div class="layui-card-body"> | 
|---|
|  |  |  | <table id="sensorLogTable" lay-filter="sensorLogTable"></table> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | 
|---|
|  |  |  | <span class="issue-label"></span> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <button class="layui-btn" lay-filter="refresh" lay-submit><i class="layui-icon"></i> 刷新 </button> | 
|---|
|  |  |  | <button class="layui-btn layui-btn-normal" lay-filter="save" lay-submit><i class="layui-icon"></i> 保存 </button> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | </form> | 
|---|
|  |  |  | 
|---|
|  |  |  | $('.issue-label').text(issue.uuid); | 
|---|
|  |  |  | // 设备明细 | 
|---|
|  |  |  | form.val('formAdvForm', issue); | 
|---|
|  |  |  | // 日志表格 | 
|---|
|  |  |  | initLogTable(issue.id); | 
|---|
|  |  |  | // 图片 | 
|---|
|  |  |  | initImgs(issue.id, issue.imgArr); | 
|---|
|  |  |  | // 在线情况 | 
|---|
|  |  |  | $('.online-info').attr("class", issue.online?"online-info online-success":"online-info online-fail"); | 
|---|
|  |  |  | $('.online-info').text(issue.online?"已完成":"作业中"); | 
|---|
|  |  |  | $('.online-info').text(issue.settle$); | 
|---|
|  |  |  | layDateRender(); | 
|---|
|  |  |  | } else if (res.code === 403) { | 
|---|
|  |  |  | top.location.href = baseUrl + "/"; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /* 渲染表格 */ | 
|---|
|  |  |  | var LogTb; | 
|---|
|  |  |  | function initLogTable(sensorId){ | 
|---|
|  |  |  | if (sensorId == null) { | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (typeof LogTb === "undefined") { | 
|---|
|  |  |  | LogTb = table.render({ | 
|---|
|  |  |  | elem: '#sensorLogTable', | 
|---|
|  |  |  | headers: {token: localStorage.getItem('token')}, | 
|---|
|  |  |  | url: baseUrl+'/sensorLog/list/auth', | 
|---|
|  |  |  | where: {sensor_id: sensorId}, | 
|---|
|  |  |  | page: true, | 
|---|
|  |  |  | limit: 10, | 
|---|
|  |  |  | limits: [10, 30, 50, 100, 200, 500], | 
|---|
|  |  |  | cols: [[ | 
|---|
|  |  |  | {type: 'numbers', title: '#'} | 
|---|
|  |  |  | // ,{field: 'id', align: 'center',title: 'ID'} | 
|---|
|  |  |  | // ,{field: 'hostId$', align: 'center',title: '授权商户', templet: '#hostTpl', width: 140} | 
|---|
|  |  |  | // ,{field: 'sensorId$', align: 'center',title: '设备编号'} | 
|---|
|  |  |  | // ,{field: 'senserType$', align: 'center',title: '设备类型'} | 
|---|
|  |  |  | ,{field: 'data', align: 'center',title: '报文'} | 
|---|
|  |  |  | ,{field: 'createTime$', align: 'center',title: '时间', minWidth: 200, width: 200} | 
|---|
|  |  |  | // ,{field: 'memo', align: 'center',title: '备注'} | 
|---|
|  |  |  | ]], | 
|---|
|  |  |  | request: { | 
|---|
|  |  |  | pageName: 'curr', | 
|---|
|  |  |  | pageSize: 'limit' | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | parseData: function (res) { | 
|---|
|  |  |  | return { | 
|---|
|  |  |  | 'code': res.code, | 
|---|
|  |  |  | 'msg': res.msg, | 
|---|
|  |  |  | 'count': res.data.total, | 
|---|
|  |  |  | 'data': res.data.records | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | response: { | 
|---|
|  |  |  | statusCode: 200 | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | done: function(res, curr, count) { | 
|---|
|  |  |  | $('#sensorLogTable').next().find('.layui-table-body').find("table" ).find("tbody").children("tr").on('dblclick', function(){ | 
|---|
|  |  |  | var id = JSON.stringify($('#sensorLogTable').next().find('.layui-table-body').find("table").find("tbody").find(".layui-table-hover").data('index')); | 
|---|
|  |  |  | layer.open({ | 
|---|
|  |  |  | type: 1, | 
|---|
|  |  |  | shade: false, | 
|---|
|  |  |  | area: '500px', | 
|---|
|  |  |  | title: false, | 
|---|
|  |  |  | content: "<div style='color: #ffffff;font-size: 18px;overflow: hidden;" + | 
|---|
|  |  |  | "background-color: #5FB878;padding: 15px 10px;word-break:break-all;'>" + res.data[id].data + "</div>" | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | LogTb.reload(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /* 渲染图片 */ | 
|---|
|  |  |  | function initImgs(sensorId, imgArr) { | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /* 渲染laydate */ | 
|---|
|  |  |  | laydate.render({ | 
|---|
|  |  |  | elem: '#createTime\\$', | 
|---|
|  |  |  | type: 'datetime' | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | function layDateRender() { | 
|---|
|  |  |  | laydate.render({ | 
|---|
|  |  |  | elem: '#endTime', | 
|---|
|  |  |  | type: 'datetime' | 
|---|
|  |  |  | }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | laydate.render({ | 
|---|
|  |  |  | elem: '#lastTime', | 
|---|
|  |  |  | type: 'datetime' | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | layDateRender(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /* 监听表单提交 */ | 
|---|
|  |  |  | form.on('submit(refresh)', function (data) { | 
|---|
|  |  |  | init(); | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | form.on('submit(save)', function (data) { | 
|---|
|  |  |  | alert(1) | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | </script> | 
|---|