| | |
| | | if (Cools.isEmpty(this.startTime)){ |
| | | return ""; |
| | | } |
| | | return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.startTime); |
| | | return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.startTime).substring(0, 10); |
| | | } |
| | | |
| | | public String getEndTime$(){ |
| | |
| | | |
| | | |
| | | var popupRight; |
| | | var sensorByDetl; |
| | | var issueByDetl; |
| | | var sensorByMap; |
| | | |
| | | |
| | |
| | | |
| | | /* 删除 */ |
| | | function doDel(obj) { |
| | | layer.confirm('确定要删除此单据类型吗?', { |
| | | layer.confirm('确定要删除此项目吗?', { |
| | | skin: 'layui-layer-admin', |
| | | shade: .1 |
| | | }, function (i) { |
| | |
| | | var pageCurr; |
| | | var tableData; |
| | | var insTb2; |
| | | layui.config({ |
| | | base: baseUrl + "/static/layui/lay/modules/" |
| | | }).use(['table','laydate', 'form', 'admin'], function(){ |
| | | }).extend({ |
| | | dropdown: 'dropdown/dropdown', |
| | | notice: 'notice/notice', |
| | | }).use(['table','laydate', 'form', 'util', 'admin', 'dropdown', 'notice', 'treeTable', 'xmSelect'], function(){ |
| | | var table = layui.table; |
| | | var $ = layui.jquery; |
| | | var layer = layui.layer; |
| | | var layDate = layui.laydate; |
| | | var form = layui.form; |
| | | var admin = layui.admin; |
| | | var util = layui.util; |
| | | var notice = layui.notice; |
| | | var treeTable = layui.treeTable; |
| | | var xmSelect = layui.xmSelect; |
| | | |
| | | // 数据渲染 |
| | | tableIns = table.render({ |
| | | elem: '#issue', |
| | | insTb2 = table.render({ |
| | | elem: '#issueTable', |
| | | headers: {token: localStorage.getItem('token')}, |
| | | url: baseUrl+'/issue/list/auth', |
| | | page: true, |
| | | limit: 16, |
| | | limits: [16, 30, 50, 100, 200, 500], |
| | | toolbar: '#toolbar', |
| | | cellMinWidth: 50, |
| | | limit: 15, |
| | | limits: [15, 30, 50, 100, 200, 500], |
| | | toolbar: '#issueToolbar', |
| | | height: 'full-100', |
| | | cols: [[ |
| | | {type: 'checkbox'} |
| | | ,{field: 'id', align: 'center',title: 'ID'} |
| | | ,{field: 'uuid', align: 'center',title: '故障编号'} |
| | | ,{field: 'hostId$', align: 'center',title: '所属项目'} |
| | | ,{field: 'issueType$', align: 'center',title: '故障类型'} |
| | | ,{field: 'hostId$', align: 'center',title: '所属项目', templet: '#hostTpl', width: 130} |
| | | ,{field: 'uuid', align: 'center',title: '故障编号', width: 180} |
| | | ,{field: 'issueType$', align: 'center',title: '故障类型', templet: '#issueTypeTpl', width: 110} |
| | | ,{field: 'title', align: 'center',title: '问题概述'} |
| | | ,{field: 'reason', align: 'center',title: '故障原因'} |
| | | ,{field: 'deal', align: 'center',title: '解决办法'} |
| | | ,{field: 'files', align: 'center',title: '文件列表'} |
| | | ,{field: 'img', align: 'center',title: '图片'} |
| | | ,{field: 'startTime$', align: 'center',title: '发生日期'} |
| | | ,{field: 'endTime$', align: 'center',title: '处理日期'} |
| | | ,{field: 'lastTime$', align: 'center',title: '更新日期'} |
| | | ,{field: 'discoverer', align: 'center',title: '发现人'} |
| | | ,{field: 'tel', align: 'center',title: '联系方式'} |
| | | ,{field: 'dealer', align: 'center',title: '供应商'} |
| | | ,{field: 'settle$', align: 'center',title: '流程'} |
| | | ,{field: 'status$', align: 'center',title: '状态'} |
| | | ,{field: 'createBy$', align: 'center',title: '添加人员'} |
| | | ,{field: 'createTime$', align: 'center',title: '添加时间'} |
| | | ,{field: 'updateBy$', align: 'center',title: '修改人员'} |
| | | ,{field: 'updateTime$', align: 'center',title: '修改时间'} |
| | | ,{field: 'memo', align: 'center',title: '备注'} |
| | | ,{field: 'reason', align: 'center',title: '故障原因', hide: true} |
| | | ,{field: 'deal', align: 'center',title: '解决办法', hide: true} |
| | | ,{field: 'files', align: 'center',title: '文件列表', hide: true} |
| | | ,{field: 'img', align: 'center',title: '图片', hide: true} |
| | | ,{field: 'startTime$', align: 'center',title: '发生日期', width: 120} |
| | | ,{field: 'endTime$', align: 'center',title: '处理日期', hide: true} |
| | | ,{field: 'lastTime$', align: 'center',title: '更新日期', hide: true} |
| | | ,{field: 'discoverer', align: 'center',title: '发现人', hide: true} |
| | | ,{field: 'tel', align: 'center',title: '联系方式', hide: true} |
| | | ,{field: 'dealer', align: 'center',title: '供应商', hide: true} |
| | | ,{field: 'settle$', align: 'center',title: '流程', templet: '#settleTpl', width: 110} |
| | | ,{field: 'status$', align: 'center',title: '状态', hide: true} |
| | | ,{field: 'createBy$', align: 'center',title: '添加人员', hide: true} |
| | | ,{field: 'createTime$', align: 'center',title: '添加时间', hide: true} |
| | | ,{field: 'updateBy$', align: 'center',title: '修改人员', hide: true} |
| | | ,{field: 'updateTime$', align: 'center',title: '修改时间', hide: true} |
| | | ,{field: 'memo', align: 'center',title: '备注', hide: true} |
| | | |
| | | ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width:150} |
| | | ]], |
| | |
| | | top.location.href = baseUrl+"/"; |
| | | } |
| | | pageCurr=curr; |
| | | limit(); |
| | | // limit(); |
| | | } |
| | | }); |
| | | |
| | | // 监听排序事件 |
| | | table.on('sort(issue)', function (obj) { |
| | | var searchData = {}; |
| | | $.each($('#search-box [name]').serializeArray(), function() { |
| | | searchData[this.name] = this.value; |
| | | }); |
| | | searchData['orderByField'] = obj.field; |
| | | searchData['orderByType'] = obj.type; |
| | | tableIns.reload({ |
| | | where: searchData, |
| | | page: {curr: 1} |
| | | }); |
| | | }); |
| | | |
| | | // 监听头工具栏事件 |
| | | table.on('toolbar(issue)', function (obj) { |
| | | table.on('toolbar(issueTable)', function (obj) { |
| | | var checkStatus = table.checkStatus(obj.config.id).data; |
| | | switch(obj.event) { |
| | | case 'addData': |
| | | showEditModel(); |
| | | break; |
| | | case 'deleteData': |
| | | case 'del': |
| | | if (checkStatus.length === 0) { |
| | | layer.msg('请选择要删除的数据', {icon: 2}); |
| | | return; |
| | |
| | | }); |
| | | del(ids); |
| | | break; |
| | | case 'exportData': |
| | | layer.confirm('确定导出Excel吗', {shadeClose: true}, function(){ |
| | | var titles=[]; |
| | | var fields=[]; |
| | | obj.config.cols[0].map(function (col) { |
| | | if (col.type === 'normal' && col.hide === false && col.toolbar == null) { |
| | | titles.push(col.title); |
| | | fields.push(col.field); |
| | | } |
| | | }); |
| | | var exportData = {}; |
| | | $.each($('#search-box [name]').serializeArray(), function() { |
| | | exportData[this.name] = this.value; |
| | | }); |
| | | var param = { |
| | | 'issue': exportData, |
| | | 'fields': fields |
| | | }; |
| | | $.ajax({ |
| | | url: baseUrl+"/issue/export/auth", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | data: JSON.stringify(param), |
| | | dataType:'json', |
| | | contentType:'application/json;charset=UTF-8', |
| | | method: 'POST', |
| | | success: function (res) { |
| | | layer.closeAll(); |
| | | if (res.code === 200) { |
| | | table.exportFile(titles,res.data,'xls'); |
| | | } else if (res.code === 403) { |
| | | top.location.href = baseUrl+"/"; |
| | | } else { |
| | | layer.msg(res.msg, {icon: 2}) |
| | | } |
| | | } |
| | | }); |
| | | }); |
| | | break; |
| | | } |
| | | }); |
| | | |
| | | // 监听行工具事件 |
| | | table.on('tool(issue)', function(obj){ |
| | | table.on('tool(issueTable)', function(obj){ |
| | | var data = obj.data; |
| | | switch (obj.event) { |
| | | case 'edit': |
| | |
| | | layer.close(loadIndex); |
| | | if (res.code === 200){ |
| | | layer.msg(res.msg, {icon: 1}); |
| | | tableReload(); |
| | | $(".layui-laypage-btn")[0].click(); |
| | | } else if (res.code === 403){ |
| | | top.location.href = baseUrl+"/"; |
| | | } else { |
| | |
| | | <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all"> |
| | | <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all"> |
| | | <link rel="stylesheet" href="../../static/css/cool.css" media="all"> |
| | | <link rel="stylesheet" href="../../static/css/common.css" media="all"> |
| | | <link rel="stylesheet" href="../../static/css/originTable.css" media="all"> |
| | | <style> |
| | | body { |
| | | color: #595959; |
| | | background-color: #f5f7f9; |
| | | } |
| | | |
| | | .admin-form { |
| | | padding: 25px 30px 0 0 !important; |
| | | margin: 0 !important; |
| | | } |
| | | |
| | | /*!* 权限控制 *!*/ |
| | | /*#btn-add {*/ |
| | | /* display: none;*/ |
| | | /*}*/ |
| | | /*#btn-delete {*/ |
| | | /* display: none;*/ |
| | | /*}*/ |
| | | /*.btn-edit {*/ |
| | | /* display: none;*/ |
| | | /*}*/ |
| | | /*.btn-more {*/ |
| | | /* display: none;*/ |
| | | /*}*/ |
| | | </style> |
| | | </head> |
| | | <body> |
| | | |
| | | <!-- 搜索栏 --> |
| | | <div id="search-box" class="layui-form layui-card-header"> |
| | | <div class="layui-inline"> |
| | | <div class="layui-input-inline"> |
| | | <input class="layui-input" type="text" name="id" placeholder="编号" autocomplete="off"> |
| | | <!-- 正文开始 --> |
| | | <div class="layui-fluid" style="padding-bottom: 0;"> |
| | | <div class="layui-row layui-col-space15"> |
| | | <!-- 左 --> |
| | | <div class="layui-col-md3" id="left-table"> |
| | | <div class="layui-card"> |
| | | <div class="layui-card-body" style="padding: 10px;"> |
| | | <form class="layui-form toolbar"> |
| | | <div class="layui-form-item"> |
| | | <div class="layui-inline" style="max-width: 140px;"> |
| | | <input name="name" class="layui-input" placeholder="输入项目名称"/> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <button class="layui-btn icon-btn" lay-filter="originTableSearch" lay-submit> |
| | | <i class="layui-icon"></i>搜索 |
| | | </button> |
| | | <button class="layui-btn icon-btn" lay-filter="originTbReset" lay-submit> |
| | | <i class="layui-icon"></i>重置 |
| | | </button> |
| | | </div> |
| | | </div> |
| | | </form> |
| | | <table id="originTable" lay-filter="originTable"></table> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- 右 --> |
| | | <div class="layui-col-md9"> |
| | | <div class="layui-card"> |
| | | <div class="layui-card-body" style="padding: 10px;"> |
| | | <form class="layui-form toolbar"> |
| | | <div class="layui-form-item"> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label">故障编号:</label> |
| | | <div class="layui-input-inline"> |
| | | <input name="uuid" class="layui-input" placeholder="故障编号"/> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline">  |
| | | <button class="layui-btn icon-btn" lay-filter="sensorTbSearch" lay-submit> |
| | | <i class="layui-icon"></i>搜索 |
| | | </button> |
| | | </div> |
| | | </div> |
| | | </form> |
| | | <table id="issueTable" lay-filter="issueTable"></table> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- 待添加 --> |
| | | <div id="data-search-btn" class="layui-btn-container layui-form-item"> |
| | | <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">搜索</button> |
| | | <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">重置</button> |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- 表格 --> |
| | | <div class="layui-form"> |
| | | <table class="layui-hide" id="issue" lay-filter="issue"></table> |
| | | </div> |
| | | <script type="text/html" id="toolbar"> |
| | | <!-- 头工具栏 --> |
| | | <script type="text/html" id="issueToolbar"> |
| | | <div class="layui-btn-container"> |
| | | <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">新增</button> |
| | | <button class="layui-btn layui-btn-sm" id="btn-delete" lay-event="deleteData">删除</button> |
| | | <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData">导出</button> |
| | | <button class="layui-btn layui-btn-sm layui-btn-danger" id="btn-delete" lay-event="del"><i class="layui-icon"></i>删除</button> |
| | | </div> |
| | | </script> |
| | | |
| | | <!-- 行工具栏 --> |
| | | <script type="text/html" id="operate"> |
| | | <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">修改</a> |
| | | <a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">删除</a> |
| | | <a class="layui-btn layui-btn-xs btn-edit" lay-event="detl" ew-event="popupRight" |
| | | data-type="1" data-window="top" data-area="1250px" data-url="issue/issue_detl.html"> |
| | | <i class="layui-icon"></i>查看</a> |
| | | <a class="layui-btn layui-btn-xs layui-btn-primary btn-edit" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>修改</a> |
| | | </script> |
| | | |
| | | <!-- 行样式 --> |
| | | <script type="text/html" id="hostTpl"> |
| | | <span name="hostId$" class="layui-badge layui-badge-gray">{{d.hostId$}}</span> |
| | | </script> |
| | | <script type="text/html" id="issueTypeTpl"> |
| | | <span name="issueType$" class="layui-badge layui-badge-gray">{{d.issueType$}}</span> |
| | | </script> |
| | | <script type="text/html" id="settleTpl"> |
| | | <span name="settle" |
| | | {{# if( d.settle === 1){ }} |
| | | class="layui-badge layui-badge-blue" |
| | | {{# }else if(d.settle === 2){ }} |
| | | class="layui-badge layui-badge-blue" |
| | | {{# }else if(d.settle === 3){ }} |
| | | class="layui-badge layui-badge-blue" |
| | | {{# }else if(d.settle === 4){ }} |
| | | class="layui-badge layui-badge-green" |
| | | {{# }else if(d.settle === 5){ }} |
| | | class="layui-badge layui-badge-red" |
| | | {{# }else if(d.settle === 6){ }} |
| | | class="layui-badge layui-badge-gray" |
| | | {{# } }} |
| | | >{{d.settle$}}</span> |
| | | </script> |
| | | |
| | | <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script> |
| | | <script type="text/javascript" src="../../static/js/handlebars/handlebars-v4.5.3.js"></script> |
| | | <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/hostTable.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="../../static/js/issue/issue.js" charset="utf-8"></script> |
| | | </body> |
| | | <!-- 表单弹窗 --> |
| | |
| | | </div> |
| | | </form> |
| | | </script> |
| | | |
| | | <!-- 项目编辑窗口 --> |
| | | <script type="text/html" id="hostEditDialog"> |
| | | <form id="hostEditForm" lay-filter="hostEditForm" class="layui-form model-form"> |
| | | <input name="id" type="hidden"/> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label layui-form-required">项目名称:</label> |
| | | <div class="layui-input-block"> |
| | | <input name="name" placeholder="请输入项目名称" class="layui-input" |
| | | lay-verType="tips" lay-verify="required" required/> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item text-right"> |
| | | <button class="layui-btn" lay-filter="hostEditSubmit" lay-submit>保存</button> |
| | | <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button> |
| | | </div> |
| | | </form> |
| | | </script> |
| | | </html> |
| | | |
New file |
| | |
| | | <meta name="viewport" content="initial-scale=1.0, user-scalable=no"> |
| | | <link rel="stylesheet" href="../static/css/jquery.upload.css" media="all"/> |
| | | <style> |
| | | #formAdvForm { |
| | | background-color: #f3f3f3; |
| | | } |
| | | #formAdvForm .layui-form-item { |
| | | margin-top: 20px; |
| | | margin-bottom: 0; |
| | | } |
| | | |
| | | #formAdvForm .layui-form-item .layui-inline { |
| | | margin-bottom: 25px; |
| | | margin-right: 0; |
| | | } |
| | | |
| | | .form-group-bottom { |
| | | position: fixed; |
| | | left: 0; |
| | | right: 0; |
| | | bottom: 0; |
| | | padding: 10px 20px; |
| | | background-color: #fff; |
| | | box-shadow: 0 -1px 2px 0 rgba(0, 0, 0, .05); |
| | | } |
| | | .cool-divider { |
| | | float: left; |
| | | margin: 4px 18px; |
| | | display: inline-block; |
| | | height: 32px; |
| | | width: 1px; |
| | | vertical-align: middle; |
| | | position: relative; |
| | | top: -.06em; |
| | | box-sizing: border-box; |
| | | -webkit-tap-highlight-color: transparent; |
| | | margin-top: 5px !important; |
| | | margin-bottom: 5px !important; |
| | | background: #c8d1dabd; |
| | | } |
| | | .sensor-label { |
| | | display: inline-block; |
| | | float: left; |
| | | font-size: 16px; |
| | | font-weight: bolder; |
| | | height: 40px; |
| | | line-height: 40px; |
| | | text-align: center; |
| | | white-space: nowrap; |
| | | vertical-align: baseline; |
| | | border-radius: .25em; |
| | | } |
| | | .online-info { |
| | | display: inline-block; |
| | | float: left; |
| | | font-weight: bold; |
| | | text-shadow: 0 1px 0 rgb(0 0 0 / 20%); |
| | | padding: .3em .6em; |
| | | font-size: 85%; |
| | | height: 30px; |
| | | line-height: 30px; |
| | | color: #fff; |
| | | text-align: center; |
| | | white-space: nowrap; |
| | | vertical-align: baseline; |
| | | border-radius: .25em; |
| | | } |
| | | .online-success { |
| | | background-color: #5cb85c; |
| | | } |
| | | .online-fail { |
| | | background-color: #d9534f; |
| | | } |
| | | </style> |
| | | <!-- 正文开始 --> |
| | | <form class="layui-form" id="formAdvForm" lay-filter="formAdvForm"> |
| | | <div class="layui-fluid" style="padding-bottom: 75px;"> |
| | | <!-- 定位 --> |
| | | <!-- <div class="layui-card">--> |
| | | <!-- <div class="layui-card-header">定位</div>--> |
| | | <!-- <div class="layui-card-body">--> |
| | | <!-- <div class="upload-box clear">--> |
| | | <!-- <div id="map" style="width: 100%; height: 200px"></div>--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | <!-- 图片 --> |
| | | <div class="layui-card"> |
| | | <div class="layui-card-header">图片</div> |
| | | <div class="layui-card-body"> |
| | | <div class="upload-box clear"> |
| | | <div class="image-box"></div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- 基本信息 --> |
| | | <div class="layui-card"> |
| | | <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">设备编号:</label> |
| | | <div class="layui-input-block"> |
| | | <input name="uuid" placeholder="请输入设备编号" class="layui-input"/> |
| | | </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"/> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline layui-col-md4"> |
| | | <label class="layui-form-label">ccid:</label> |
| | | <div class="layui-input-block"> |
| | | <input name="sim" placeholder="请输入sim卡号" class="layui-input"/> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline layui-col-md4"> |
| | | <label class="layui-form-label">系统状态:</label> |
| | | <div class="layui-input-block"> |
| | | <select name="status"> |
| | | <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 id="formAdvDateSel1" name="createTime$" 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 name="createBy$" placeholder="请输入添加人员" class="layui-input"/> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline layui-col-md12"> |
| | | <label class="layui-form-label ">地理位置:</label> |
| | | <div class="layui-input-block"> |
| | | <input name="locationMore" placeholder="未知" class="layui-input" disabled/> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline layui-col-md12"> |
| | | <label class="layui-form-label ">具体描述:</label> |
| | | <div class="layui-input-block"> |
| | | <input name="desc" placeholder="暂无" class="layui-input"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | <!-- 设备参数 --> |
| | | <div class="layui-card"> |
| | | <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-input-block"> |
| | | <input name="topic" placeholder="请输入主题" class="layui-input"/> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline layui-col-md4"> |
| | | <label class="layui-form-label">地址-ip:</label> |
| | | <div class="layui-input-block"> |
| | | <input name="ip" placeholder="请输入ip地址" class="layui-input"/> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline layui-col-md4"> |
| | | <label class="layui-form-label">端口-port:</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"/> |
| | | </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> |
| | | |
| | | <div class="form-group-bottom text-right"> |
| | | <div> |
| | | <span class="online-info">在线,可以进行远程操作</span> |
| | | <div class="cool-divider"></div> |
| | | <span class="sensor-label"></span> |
| | | </div> |
| | | <button class="layui-btn" lay-filter="refresh" lay-submit><i class="layui-icon"></i> 刷新 </button> |
| | | </div> |
| | | |
| | | </form> |
| | | <!--<script type="text/javascript" src="../static/js/tools/jquery.upload.min.js" charset="utf-8"></script>--> |
| | | <script type="text/javascript" src="../static/js/upload/jquery.upload.js" charset="utf-8"></script> |
| | | <script type="text/javascript" src="http://webapi.amap.com/maps?v=1.3&key=24c671d7d8365d7eaff888498538452f"></script> |
| | | <script> |
| | | var map; |
| | | var issueId = top.issueByDetl; |
| | | layui.config({ |
| | | base: baseUrl + "/static/layui/lay/modules/" |
| | | }).extend({ |
| | | notice: 'notice/notice', |
| | | }).use(['form', 'table', 'laydate', 'notice'], function () { |
| | | var $ = layui.jquery; |
| | | var form = layui.form; |
| | | var table = layui.table; |
| | | var laydate = layui.laydate; |
| | | var notice = layui.notice; |
| | | |
| | | form.render('select'); |
| | | |
| | | init(); |
| | | function init(){ |
| | | notice.msg('正在载入数据......', {icon: 4, position: "topRight"}); |
| | | $.ajax({ |
| | | url: baseUrl + "/issue/" + issueId + "/auth", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | method: 'GET', |
| | | success: function (res) { |
| | | notice.destroy(); |
| | | if (res.code === 200) { |
| | | var issue = res.data; |
| | | top.sensorByDetl = null; |
| | | // 地图 |
| | | // map = new AMap.Map('map', { |
| | | // resizeEnable: true, |
| | | // zoom: 13, |
| | | // center: [sensor.lon, sensor.lat] |
| | | // }); |
| | | // marker = new AMap.Marker({ |
| | | // icon: "https://dz-admin.oss-cn-hangzhou.aliyuncs.com/other/marker.png", |
| | | // position:[sensor.lon, sensor.lat] |
| | | // }); |
| | | // marker.setMap(map); |
| | | // 设备唯一码 |
| | | $('.sensor-label').text(issue.uuid); |
| | | // 设备明细 |
| | | form.val('formAdvForm', issue); |
| | | // 日志表格 |
| | | initLogTable(issue.id); |
| | | // 图片 |
| | | initImgs(sensor.id, issue.imgArr); |
| | | // 在线情况 |
| | | $('.online-info').attr("class", sensor.online?"online-info online-success":"online-info online-fail"); |
| | | $('.online-info').text(sensor.online?"在线,可以进行远程操作":"离线,不能进行远程操作"); |
| | | } else if (res.code === 403) { |
| | | top.location.href = baseUrl + "/"; |
| | | } else { |
| | | layer.msg(res.msg, {icon: 2}) |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | |
| | | /* 渲染表格 */ |
| | | 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) { |
| | | if (imgArr == null) { |
| | | imgArr = []; |
| | | } |
| | | // https://gitee.com/gouguoyin/ajax-image-upload?_from=gitee_search#http://www.gouguoyin.cn/ajax-image-upload |
| | | $(".image-box").ajaxImageUpload({ |
| | | fileInput : 'file', |
| | | postUrl : baseUrl + '/sensor/upload.action', //上传的服务器地址 |
| | | width : 180, |
| | | height : 180, |
| | | imageUrl: imgArr, |
| | | postData : { sensorId: sensorId }, |
| | | maxNum: 5, //允许上传图片数量 |
| | | allowZoom : true, //允许放大 |
| | | maxSize : 3, //允许上传图片的最大尺寸,单位M |
| | | appendMethod : 'after', |
| | | before : function () { |
| | | // layer.msg('上传前回调函数2'); |
| | | }, |
| | | success : function(json){ |
| | | }, |
| | | complete : function () { |
| | | layer.msg('上传成功', {icon: 1}); |
| | | }, |
| | | delete : function (src) { |
| | | $.ajax({ |
| | | url: baseUrl + "/sensor/remove.action", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | method: 'POST', |
| | | data: { |
| | | sensorId: sensorId, |
| | | src: src |
| | | }, |
| | | // async: false, |
| | | success: function (res) { |
| | | if (res.code === 200) { |
| | | layer.msg(res.msg, {icon: 1}) |
| | | } else if (res.code === 403) { |
| | | top.location.href = baseUrl + "/"; |
| | | } else { |
| | | layer.msg(res.msg, {icon: 2}) |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | error : function (e) { |
| | | layer.msg(e.msg + '(' + e.code + ')', {icon: 2}); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | /* 渲染laydate */ |
| | | laydate.render({ |
| | | elem: '#createTime\\$', |
| | | type: 'datetime' |
| | | }); |
| | | |
| | | /* 监听表单提交 */ |
| | | form.on('submit(refresh)', function (data) { |
| | | init(); |
| | | return false; |
| | | }); |
| | | |
| | | }); |
| | | </script> |