| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617 |
- <%--
- Created by IntelliJ IDEA.
- User: SamRichard
- Date: 2019/7/19
- Time: 14:28
- To change this template use File | Settings | File Templates.
- --%>
- <%@ page language="java" import="java.util.*" pageEncoding="utf-8" %>
- <%
- String strAdmin = (String)request.getParameter("admin");
- %>
- <!DOCTYPE html>
- <html lang="ch">
- <head>
- <title>阻力监控后台管理系统-设备管理</title>
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta content="width=device-width, initial-scale=1.0" name="viewport"/>
- <meta content="" name="description"/>
- <meta content="" name="author"/>
- <!-- BEGIN GLOBAL MANDATORY STYLES -->
- <link href="css/gfonts1.css" rel="stylesheet" type="text/css">
- <link href="css/font-awesome.min.css" rel="stylesheet" type="text/css">
- <link href="css/simple-line-icons.min.css" rel="stylesheet">
- <link href="css/bootstrap-editable.css" rel="stylesheet">
- <link href="css/bootstrap.min.css" rel="stylesheet">
- <!-- END GLOBAL MANDATORY STYLES -->
- <!-- BEGIN PAGE LEVEL STYLES -->
- <!-- BEGIN THEME STYLES -->
- <link href="css/components.css" id="style_components" rel="stylesheet">
- <link href="css/plugins.css" rel="stylesheet" type="text/css">
- <link href="css/layout.css" rel="stylesheet" type="text/css">
- <link href="css/default.css" rel="stylesheet" id="style_color">
- <link href="css/sweetalert.css" rel="stylesheet">
- <link href="css/bootstrap-table.min.css" rel="stylesheet">
- <!-- END THEME STYLES -->
- <!-- js -->
- <!-- Load jQuery -->
- <script src="js/jquery.min.js"></script>
- <script src="js/jquery-migrate.min.js" type="text/javascript"></script>
- <!-- IMPORTANT! Load jquery-ui-1.10.3.custom.min.js before bootstrap.js to fix bootstrap tooltip conflict with jquery ui tooltip -->
- <script src="js/jquery-ui-1.10.3.custom.min.js" type="text/javascript"></script>
- <script src="js/bootstrap.min.js" type="text/javascript"></script>
- <!-- BEGIN PAGE LEVEL SCRIPTS -->
- <script src="js/metronic.js"></script>
- <script src="js/scripts/layout.js"></script>
- <script src="js/bootstrap-hover-dropdown.min.js" type="text/javascript"></script>
- <script src="js/jquery.slimscroll.min.js" type="text/javascript"></script>
- <script src="js/jquery.blockui.min.js" type="text/javascript"></script>
- <script src="js/jquery.cokie.min.js" type="text/javascript"></script>
- <script src="js/jquery.uniform.min.js" type="text/javascript"></script>
- <script src="js/morris.min.js" type="text/javascript"></script>
- <script src="js/raphael-min.js" type="text/javascript"></script>
- <script src="js/jquery.sparkline.min.js" type="text/javascript"></script>
- <!--<script src="js/bootstrap-editable.js" type="text/javascript"></script>-->
- <!-- END CORE PLUGINS -->
- <script src="js/sweetalert.min.js"></script>
- <script src="js/jBox.min.js"></script>
- <!-- END PAGE LEVEL PLUGINS -->
- <!-- test -->
- <link rel="shortcut icon" href="favicon.ico">
- </head>
- <!-- END HEAD -->
- <!-- BEGIN BODY -->
- <!-- DOC: Apply "page-header-menu-fixed" class to set the mega menu fixed -->
- <!-- DOC: Apply "page-header-top-fixed" class to set the top menu fixed -->
- <body>
- <!-- BEGIN PAGE CONTAINER -->
- <div class="page-container">
- <!-- BEGIN PAGE HEAD -->
- <jsp:include page="frame_head.jsp" flush="false"></jsp:include>
- <!-- END PAGE HEAD -->
- <!-- BEGIN PAGE CONTENT -->
- <div class="page-content">
- <div class="container">
- <div style="margin: 15px;">
- <table id="table"
- data-sort-order="desc" data-sort-name="updatetime"
- data-sort-field="updatetime" data-unique-id="IMEI"
- data-detail-view="true" data-detail-formatter="detailFormatter"
- data-minimum-count-columns="2" data-show-pagination-switch="false"
- data-pagination="true" data-id-field="IMEI" data-id-table="advancedTable"
- data-page-list="[50, 100, 200, 500, 1000]" data-show-footer="false"
- data-query-params="queryParam" data-search-on-enter-key="true"
- data-side-pagination="server" data-url="getdeviceinfo.cpp?<%=request.getQueryString() + "×tamp=" + System.currentTimeMillis()%>"
- data-response-handler="responseHandler">
- </table>
- </div>
- </div>
- </div>
- <!-- END PAGE CONTENT -->
- <!-- END PAGE CONTENT -->
- <jsp:include page="frame_tail.jsp" flush="false"></jsp:include>
- <!-- END PAGE CONTAINER -->
- </div>
- <!--
- <script src="js/jquery-3.1.1.min.js"></script>
- <script src="js/bootstrap.min.js"></script>
- <script src="js/sweetalert2.min.js"></script>
- -->
- <!-- for IE support -->
- <!--
- <script src="js/es6-promise.auto.min.js"></script>
- -->
- <script>
- (function($){
- Date.prototype.format = function(fmt) {
- var o = {
- "M+" : this.getMonth()+1, //月份
- "d+" : this.getDate(), //日
- "h+" : this.getHours(), //小时
- "m+" : this.getMinutes(), //分
- "s+" : this.getSeconds(), //秒
- "q+" : Math.floor((this.getMonth()+3)/3), //季度
- "S" : this.getMilliseconds() //毫秒
- };
- if(/(y+)/.test(fmt)) {
- fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
- }
- for(var k in o) {
- if(new RegExp("("+ k +")").test(fmt)){
- fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
- }
- }
- return fmt;
- }
- }(jQuery));
- jQuery(document).ready(function () {
- //Metronic.init(); // init metronic core components
- //Layout.init(); // init current layout
- // IE8 Fix: function.bind polyfill
- if (Metronic.isIE8() && !Function.prototype.bind) {
- Function.prototype.bind = function (oThis) {
- if (typeof this !== "function") {
- // closest thing possible to the ECMAScript 5 internal IsCallable function
- throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");
- }
- var aArgs = Array.prototype.slice.call(arguments, 1),
- fToBind = this,
- fNOP = function () {
- },
- fBound = function () {
- return fToBind.apply(this instanceof fNOP && oThis ? this : oThis,
- aArgs.concat(Array.prototype.slice.call(arguments)));
- };
- fNOP.prototype = this.prototype;
- fBound.prototype = new fNOP();
- return fBound;
- };
- }
- });
- //表格
- var $table = $('#table');
- function initTable() {
- $table.bootstrapTable({
- height: getHeight(),
- //exportDataType: "basic",
- columns: [{
- field: 'IMEI',
- title: "IMEI",
- align: 'center',
- visible: true,
- }, {
- title: '名称',
- field: 'name',
- align: 'center',
- //valign: 'middle',
- sortable: true,
- visible: true,
- formatter: function (value, row, inde){
- if (value == undefined)
- return "";
- return value;
- },
- <% if (strAdmin != null) {%>
- editable: {
- type: 'text',
- title: '修改名称',
- placement: 'right',
- validate: function(v) {
- if (!v) return '名称不能为空';
- },
- },
- <%}%>
- }, {
- field: 'groupid',
- title: '组ID',
- searchable: true,
- visible: false,
- align: 'center',
- sortable: true
- }, {
- field: 'CCID',
- title: 'CCID',
- searchable: true,
- visible: false,
- align: 'center',
- filterControl:"select",
- }, {
- field: 'type',
- title: 'type',
- searchable: true,
- visible: false,
- align: 'center',
- filterControl:"select",
- }, {
- field: 'version',
- title: 'version',
- searchable: true,
- visible: false,
- align: 'center',
- filterControl:"select",
- }, {
- field: 'longitude',
- title: 'longitude',
- align: 'center',
- visible: false,
- }, {
- field: 'latitude',
- title: 'latitude',
- align: 'center',
- visible: false,
- }, {
- field: 'updatetime',
- title: '最后在线时间',
- align: 'center',
- visible: true,
- sortable: true,
- formatter: function (value, row, inde) {
- return new Date(value).format("yyyy-MM-dd hh:mm:ss");
- },
- }, {
- field: 'mo',
- title: "设备位置",
- align: 'center',
- }, {
- field: 'view',
- title: '查看阻力',
- align: 'center',
- width: 25,
- formatter: function (value, row, inde){
- return [
- row.group0name,
- ' ',
- '<a class="handle" title="查询阻力曲线" data-imei="' + row.IMEI + '" data-name="' + row.name + '" data-idxname= "' + row.group0name + '" onclick="view(this)">',
- '<i class="glyphicon glyphicon-picture"></i>', '</a>',
- ' ',
- row.mp0]
- .join('');
- },
- }, {
- title: '1机名称',
- field: 'group0name',
- align: 'center',
- <% if (strAdmin == null) {%>
- visible: false,
- <%} %>
- formatter: function (value, row, inde){
- if (value == undefined)
- return "";
- return value;
- },
- editable: {
- type: 'text',
- title: '修改名称',
- placement: 'right',
- validate: function(v) {
- if (!v) return '名称不能为空';
- },
- },
- }, {
- field: 'view2',
- title: '查看阻力',
- align: 'center',
- width: 25,
- formatter: function (value, row, inde){
- return [
- row.group1name,
- ' ',
- '<a class="handle" title="查询阻力曲线" data-imei="' + row.IMEI + '" data-name="' + row.name + '" data-idxname= "' + row.group1name + '" onclick="view2(this)">',
- '<i class="glyphicon glyphicon-picture"></i>', '</a>',
- ' ',
- row.mp1]
- .join('');
- },
- }, {
- title: '2机名称',
- field: 'group1name',
- align: 'center',
- //valign: 'middle',
- <% if (strAdmin == null) {%>
- visible: false,
- <%} %>
- formatter: function (value, row, inde){
- if (value == undefined)
- return "";
- return value;
- },
- editable: {
- type: 'text',
- title: '修改名称',
- placement: 'right',
- validate: function(v) {
- if (!v) return '名称不能为空';
- },
- },
- }, {
- field: 'view3',
- title: '查看阻力',
- align: 'center',
- width: 25,
- formatter: function (value, row, inde){
- return [
- row.group2name,
- ' ',
- '<a class="handle" title="查询阻力曲线" data-imei="' + row.IMEI + '" data-name="' + row.name + '" data-idxname= "' + row.group2name + '" onclick="view3(this)">',
- '<i class="glyphicon glyphicon-picture"></i>', '</a>',
- ' ',
- row.mp2]
- .join('');
- },
- }, {
- title: '3机名称',
- field: 'group2name',
- align: 'center',
- //valign: 'middle',
- <% if (strAdmin == null) {%>
- visible: false,
- <%} %>
- formatter: function (value, row, inde){
- if (value == undefined)
- return "";
- return value;
- },
- editable: {
- type: 'text',
- title: '修改名称',
- placement: 'right',
- validate: function(v) {
- if (!v) return '名称不能为空';
- },
- },
- }, {
- field: 'temphumi',
- title: '查看温湿度',
- align: 'center',
- width: 25,
- formatter: function (value, row, inde){
- return [
- '<a class="handle" title="查询温湿度曲线" data-imei="' + row.IMEI + '" data-name="' + row.name + '" onclick="view4(this)">',
- '<i class="glyphicon glyphicon-tint"></i>', '</a>']
- .join('');
- },
- }, {
- field: 'del',
- title: '删除设备',
- align: 'center',
- <% if (strAdmin == null) {%>
- visible: false,
- <%} %>
- width: 25,
- formatter: function(value, row, index)
- {
- return [
- '<a class="handle" title="删除记录" data-imei="' + row.IMEI + '" onclick="removealarm(this)">',
- '<i class="glyphicon glyphicon-remove"></i>', '</a>']
- .join('');
- },
- }],
- responseHandler: function (res) {
- return res;
- },
- //编辑时触发
- onEditableSave: function (field, row, oldValue, $el) {
- var reqUrl = "";
- if (field === "name")
- reqUrl = "updatedeviceinfo.cpp?IMEI=" + row.IMEI + "&updatefield=" + field + "&updatevalue=" + row.name;
- else if (field === "group0name")
- reqUrl = "updatedeviceinfo.cpp?IMEI=" + row.IMEI + "&updatefield=" + field + "&updatevalue=" + row.group0name;
- else if (field === "group1name")
- reqUrl = "updatedeviceinfo.cpp?IMEI=" + row.IMEI + "&updatefield=" + field + "&updatevalue=" + row.group1name;
- else if (field === "group2name")
- reqUrl = "updatedeviceinfo.cpp?IMEI=" + row.IMEI + "&updatefield=" + field + "&updatevalue=" + row.group2name;
- else
- return ;
- $table.bootstrapTable("resetView");
- $.ajax({
- type: "post",
- url: reqUrl,
- //data: row,
- //dataType: 'JSON',
- success: function (data, status) {
- if (status == "success") {
- swal({
- title: 'success',
- text: '提交数据成功.',
- type: 'success',
- timer: 1500,
- confirmButtonText: "确定"
- }).then(
- function (dismiss) {
- if (dismiss === 'timer') {
- console.log('I was closed by the timer')
- }
- }
- );
- }
- },
- error: function () {
- alert('编辑失败');
- swal({
- title: 'error',
- text: '提交数据失败.',
- type: 'success',
- timer: 1500,
- confirmButtonText: "确定"
- }).then(
- function (dismiss) {
- if (dismiss === 'timer') {
- console.log('I was closed by the timer')
- }
- }
- );
- },
- complete: function () {
- }
- });
- },
- });
- // sometimes footer render error.
- setTimeout(function () {
- $table.bootstrapTable('resetView');
- }, 200);
- $table.on('expand-row.bs.table', function (e, index, row, $detail) {
- });
- $table.on('all.bs.table', function (e, name, args) {
- console.log(name, args);
- });
- $(window).resize(function () {
- $table.bootstrapTable('resetView', {
- height: getHeight()
- });
- });
- }
- function queryParam(params) {
- return params;
- }
- window.operateEvents = {};
- function getHeight() {
- var h = $(window).height();
- return h - 75 - 102 - 30;
- }
- function view(t){
- if (t.dataset.imei)
- {
- window.location.href='resistance.cpp?IMEI=' + t.dataset.imei + '&name=' + t.dataset.name + '&idx=0' + "&src=1&idxname=" + t.dataset.idxname;
- }
- }
- function view2(t){
- if (t.dataset.imei)
- {
- window.location.href='resistance.cpp?IMEI=' + t.dataset.imei + '&name=' + t.dataset.name + '&idx=1' + "&src=1&idxname=" + t.dataset.idxname;
- }
- }
- function view3(t){
- if (t.dataset.imei)
- {
- window.location.href='resistance.cpp?IMEI=' + t.dataset.imei + '&name=' + t.dataset.name + '&idx=2' + "&src=1&idxname=" + t.dataset.idxname;
- }
- }
- function view4(t){
- if (t.dataset.imei)
- {
- window.location.href='temphumi.cpp?IMEI=' + t.dataset.imei + '&name=' + t.dataset.name;
- }
- }
- function detailFormatter(index, row) {
- var html = [];
- html.push('<div class="well well-sm">');
- html.push('<ul>');
- html.push('<li>CCID:' + row.CCID);
- html.push('<li>经度:' + row.longitude);
- html.push('<li>纬度:' + row.latitude);
- if (row.type)
- html.push('<li>type:' + row.type);
- if (row.version)
- html.push('<li>版本:' + row.version);
- if (row.model == 0)
- html.push('<li>模式:数据模式');
- else if (row.model == 1)
- html.push('<li>模式:升级模式');
- html.push('</ul>');
- html.push('</div>');
- return html.join('');
- }
- function removealarm(t) {
- if (t.dataset.guid){
- $.post("deletealarm.cpp", {IMEI : t.dataset.guid}, function (data, status) {
- if (data)
- {
- swal({
- title: 'success',
- text: '删除成功.',
- type: 'success',
- timer: 2500,
- confirmButtonText: "确定"
- }).then(
- function () {},
- // handling the promise rejection
- function (dismiss) {
- if (dismiss === 'timer') {
- console.log('I was closed by the timer')
- }
- }
- );
- var obj = $table.bootstrapTable('removeByUniqueId', t.dataset.guid);
- return ;
- }
- swal({
- title: 'error!',
- text: '删除失败.',
- timer: 2500,
- type: 'error',
- confirmButtonText: "确定"
- }).then(
- function () {},
- // handling the promise rejection
- function (dismiss) {
- if (dismiss === 'timer') {
- console.log('I was closed by the timer')
- }
- }
- );
- });
- }
- }
- $(function () {
- var scripts = [
- //location.search.substring(1) ||
- 'js/bootstrap-table.min.js', 'js/bootstrap-table-zh-CN.min.js',
- //'js/bootstrap-table-export.min.js', 'js/tableExport.js',
- 'js/bootstrap-table-editable.min.js',
- //"js/bootstrap-table-filter-control.js",
- 'js/bootstrap-editable.min.js',
- //'js/bootstrap-table-toolbar.min.js'
- ], eachSeries = function (arr, iterator, callback) {
- callback = callback || function () {
- };
- if (!arr.length) {
- return callback();
- }
- var completed = 0;
- var iterate = function () {
- iterator(arr[completed], function (err) {
- if (err) {
- callback(err);
- callback = function () {
- };
- } else {
- completed += 1;
- if (completed >= arr.length) {
- callback(null);
- } else {
- iterate();
- }
- }
- });
- };
- iterate();
- };
- eachSeries(scripts, getScript, initTable);
- });
- function getScript(url, callback) {
- var head = document.getElementsByTagName('head')[0];
- var script = document.createElement('script');
- script.src = url;
- var done = false;
- // Attach handlers for all browsers
- script.onload = script.onreadystatechange = function () {
- if (!done
- && (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete')) {
- done = true;
- if (callback)
- callback();
- // Handle memory leak in IE
- script.onload = script.onreadystatechange = null;
- }
- };
- head.appendChild(script);
- // We handle everything using the script element injection
- return undefined;
- }
- </script>
- </body>
- <!-- END BODY -->
- </html>
|