You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
469 lines
20 KiB
469 lines
20 KiB
<!doctype html>
|
|
<html class="x-admin-sm">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title>物联网后台管理系统</title>
|
|
<meta name="renderer" content="webkit|ie-comp|ie-stand">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
|
<meta name="viewport"
|
|
content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi"/>
|
|
<meta http-equiv="Cache-Control" content="no-siteapp"/>
|
|
<link rel="stylesheet" href="/css/font.css">
|
|
<link rel="stylesheet" href="/css/xadmin.css">
|
|
<link rel="stylesheet" href="/dist/notice.css">
|
|
<!-- <link rel="stylesheet" href="./css/theme5.css"> -->
|
|
<script src="/lib/layui/layui.js" charset="utf-8"></script>
|
|
<script type="text/javascript" src="/js/xadmin.js"></script>
|
|
<!-- 让IE8/9支持媒体查询,从而兼容栅格 -->
|
|
<!--[if lt IE 9]>
|
|
<script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
|
|
<script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
|
|
<![endif]-->
|
|
<script>
|
|
// 是否开启刷新记忆tab功能
|
|
// var is_remember = false;
|
|
</script>
|
|
</head>
|
|
<body class="index">
|
|
<!-- 顶部开始 -->
|
|
<div class="container flag1" style="display: none">
|
|
<div class="logo">
|
|
<a href="./index.html">物联网云平台</a></div>
|
|
<div class="left_open">
|
|
<a><i title="展开左侧栏" class="iconfont"></i></a>
|
|
</div>
|
|
<!-- <ul class="layui-nav left fast-add" lay-filter="">-->
|
|
<!-- <li class="layui-nav-item">-->
|
|
<!-- <a href="javascript:;">+新增</a>-->
|
|
<!-- <dl class="layui-nav-child">-->
|
|
<!-- <!– 二级菜单 –>-->
|
|
<!-- <dd>-->
|
|
<!-- <a onclick="xadmin.open('最大化','http://www.baidu.com','','',true)">-->
|
|
<!-- <i class="iconfont"></i>弹出最大化</a></dd>-->
|
|
<!-- <dd>-->
|
|
<!-- <a onclick="xadmin.open('弹出自动宽高','http://www.baidu.com')">-->
|
|
<!-- <i class="iconfont"></i>弹出自动宽高</a></dd>-->
|
|
<!-- <dd>-->
|
|
<!-- <a onclick="xadmin.open('弹出指定宽高','http://www.baidu.com',500,300)">-->
|
|
<!-- <i class="iconfont"></i>弹出指定宽高</a></dd>-->
|
|
<!-- <dd>-->
|
|
<!-- <a onclick="xadmin.add_tab('在tab打开','member-list.html')">-->
|
|
<!-- <i class="iconfont"></i>在tab打开</a></dd>-->
|
|
<!-- <dd>-->
|
|
<!-- <a onclick="xadmin.add_tab('在tab打开刷新','member-del.html',true)">-->
|
|
<!-- <i class="iconfont"></i>在tab打开刷新</a></dd>-->
|
|
<!-- </dl>-->
|
|
<!-- </li>-->
|
|
<!-- </ul>-->
|
|
<ul class="layui-nav right" style="" lay-filter="">
|
|
<li class="layui-nav-item">
|
|
<a href="javascript:;">{$name}</a>
|
|
<dl class="layui-nav-child">
|
|
<!-- 二级菜单 -->
|
|
<dd>
|
|
<a href="https://www.bilibili.com/video/BV1uE411w77F/" target="_blank">云平台视频介绍</a>
|
|
</dd>
|
|
<dd>
|
|
<a href="/index/Administrator/quit">退出</a>
|
|
</dd>
|
|
</dl>
|
|
|
|
</li>
|
|
<img src="/images/handsome.ico" style="margin-top: auto;margin-left: 10px;width: 30px;border-radius:60px">
|
|
|
|
|
|
</ul>
|
|
</div>
|
|
<!-- 顶部结束 -->
|
|
<!-- 中部开始 -->
|
|
<!-- 左侧菜单开始 -->
|
|
<div class="left-nav flag2" style="margin-bottom: -10px;display: none">
|
|
<div id="side-nav">
|
|
<ul id="nav">
|
|
<!-- 统计页面-->
|
|
<!-- <li>-->
|
|
<!-- <a onclick="xadmin.add_tab('统计页面','/index/Administrator/statistics.html')">-->
|
|
<!-- <i class="layui-icon"></i>-->
|
|
<!-- <cite>统计页面</cite>-->
|
|
|
|
<!-- </a>-->
|
|
<!-- </li>-->
|
|
<!-- 管理员管理-->
|
|
<li>
|
|
<!-- admin-list.html-->
|
|
<a onclick="xadmin.add_tab('管理员管理','/index/Administrator/admin_list')">
|
|
<i class="iconfont"></i>
|
|
<cite>管理员管理</cite>
|
|
|
|
</a>
|
|
</li>
|
|
<!-- 用户管理-->
|
|
<li>
|
|
<a onclick="xadmin.add_tab('用户管理','/index/Administrator/user_list')">
|
|
<i class="iconfont left-nav-li" lay-tips="用户管理"></i>
|
|
<cite>用户管理</cite>
|
|
</a>
|
|
</li>
|
|
<!-- <!–测试–>-->
|
|
<!-- <li>-->
|
|
<!-- <a class="site-demo-active" id="test">-->
|
|
<!-- <i class="iconfont left-nav-li" lay-tips="测试"></i>-->
|
|
<!-- <cite>测试</cite>-->
|
|
<!-- </a>-->
|
|
<!-- </li>-->
|
|
|
|
<!-- 设备管理-->
|
|
<li>
|
|
<a href="javascript:;">
|
|
<i class="layui-icon left-nav-li" lay-tips="设备管理"></i>
|
|
<cite>设备管理</cite>
|
|
<i class="iconfont nav_right"></i></a>
|
|
<ul class="sub-menu">
|
|
<li>
|
|
<a onclick="xadmin.add_tab('设备信息总览','/index/Administrator/device')">
|
|
<i class="layui-icon"></i>
|
|
<cite>设备信息总览</cite>
|
|
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<!-- <a onclick="xadmin.open('增删设备','/index/Tools/device_add',800,'',window.screen.width)">-->
|
|
<a onclick="xadmin.add_tab('增删设备','/index/Tools/device_operation')">
|
|
<i class="layui-icon"></i>
|
|
<cite>增删设备</cite>
|
|
|
|
</a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="javascript:;">
|
|
<i class="layui-icon"></i>
|
|
<cite>设备列表</cite>
|
|
<i class="iconfont nav_right"></i></a>
|
|
<ul class="sub-menu">
|
|
{foreach $dev as $device}
|
|
<li>
|
|
<a onclick="xadmin.add_tab('{$device.chinese}','/index/Administrator/device_list?name='+'{$device.chinese}',true)">
|
|
<i class="layui-icon">{$device.icon}</i>
|
|
<cite>{$device.chinese}</cite></a>
|
|
</li>
|
|
{/foreach}
|
|
|
|
</ul>
|
|
</li>
|
|
|
|
</ul>
|
|
</li>
|
|
|
|
<li>
|
|
<a id="log">
|
|
<i class="layui-icon left-nav-li" lay-tips="日志"></i>
|
|
<cite>日志记录</cite>
|
|
</a>
|
|
</li>
|
|
|
|
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<!-- <div class="x-slide_left"></div> -->
|
|
<!-- 左侧菜单结束 -->
|
|
<!-- 右侧主体开始 -->
|
|
<div class="page-content">
|
|
<div class="layui-tab tab flag3" style="display: none" lay-filter="xbs_tab" lay-allowclose="false">
|
|
<ul class="layui-tab-title">
|
|
<li id="myHome" class="home" lay-id="Home">
|
|
<i class="layui-icon"></i>数据总览
|
|
</li>
|
|
|
|
</ul>
|
|
<div class="layui-tab-content ">
|
|
<div class="layui-tab-item layui-show layui-hide layui-anim layui-anim-fadein" id="showHome">
|
|
<iframe src='/index/Administrator/welcome' id="hom" frameborder="0" style="width:100%;height:100%;overflow:scroll;overflow-x:hidden"
|
|
class="x-iframe"></iframe>
|
|
</div>
|
|
</div>
|
|
<div id="tab_show"></div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="page-content-bg"></div>
|
|
<style id="theme_style"></style>
|
|
<!-- 右侧主体结束 -->
|
|
<!-- 中部结束 -->
|
|
<script id="logForm" type="text/html">
|
|
<div class="layui-fluid">
|
|
<input style="height: 45px" type="text" id="logInput" name="" placeholder="获取校验码后在此处输入定制的二级密码"
|
|
autocomplete="off"
|
|
class="layui-input">
|
|
</div>
|
|
</script>
|
|
<script>
|
|
|
|
//进入界面
|
|
var noticeOpt1 = {
|
|
showMethod: 'slideDown',
|
|
hideMethod: 'slideUp',
|
|
closeButton: false,//显示关闭按钮
|
|
positionClass: "toast-bottom-full-width",//弹出的位置,
|
|
showDuration: 300,//显示的时间
|
|
hideDuration: 400,//消失的时间
|
|
timeOut: 2000,//停留的时间
|
|
extendedTimeOut: 200,//控制时间
|
|
};
|
|
//二级密码校验码弹窗提示
|
|
var noticeOpt2 = {
|
|
showMethod: 'slideDown',
|
|
hideMethod: 'slideUp',
|
|
closeButton: false,//显示关闭按钮
|
|
positionClass: "toast-bottom-full-width",//弹出的位置,
|
|
showDuration: 300,//显示的时间
|
|
hideDuration: 300,//消失的时间
|
|
timeOut: 0,//停留的时间
|
|
extendedTimeOut: 0,//控制时间
|
|
};
|
|
//执行操作提示
|
|
var noticeOpt3 = {
|
|
showMethod: 'fadeIn',
|
|
hideMethod: 'fadeOut',
|
|
closeButton: false,//显示关闭按钮
|
|
positionClass: "toast-top-right",//弹出的位置,
|
|
showDuration: 300,//显示的时间
|
|
hideDuration: 300,//消失的时间
|
|
timeOut: 2000,//停留的时间
|
|
extendedTimeOut: 200,//控制时间
|
|
};
|
|
//操作成功提示
|
|
var noticeOpt4 = {
|
|
showMethod: 'slideDown',
|
|
hideMethod: 'fadeOut',
|
|
closeButton: false,//显示关闭按钮
|
|
positionClass: "toast-top-center",//弹出的位置,
|
|
showDuration: 300,//显示的时间
|
|
hideDuration: 300,//消失的时间
|
|
timeOut: 1900,//停留的时间
|
|
extendedTimeOut: 200,//控制时间
|
|
};
|
|
//操作失败提示
|
|
var noticeOpt5 = {
|
|
showMethod: 'slideDown',
|
|
hideMethod: 'slideUp',
|
|
closeButton: false,//显示关闭按钮
|
|
positionClass: "toast-top-full-width",//弹出的位置,
|
|
showDuration: 300,//显示的时间
|
|
hideDuration: 300,//消失的时间
|
|
timeOut: 1000,//停留的时间
|
|
extendedTimeOut: 200,//控制时间
|
|
};
|
|
//操作过程提示
|
|
var noticeOpt6 = {
|
|
showMethod: 'slideDown',
|
|
hideMethod: 'slideUp',
|
|
closeButton: false,//显示关闭按钮
|
|
positionClass: "toast-top-full-width",//弹出的位置,
|
|
showDuration: 300,//显示的时间
|
|
hideDuration: 300,//消失的时间
|
|
timeOut: 2000,//停留的时间
|
|
extendedTimeOut: 100,//控制时间
|
|
iconClass: 'layui-icon'
|
|
};
|
|
|
|
layui.config({
|
|
base: '/dist/'
|
|
}).extend({
|
|
notice: 'notice'
|
|
});
|
|
layui.use(['notice', 'jquery', 'element', 'layer'], function () {
|
|
var notice = layui.notice; // 允许别名 toastr
|
|
var element = layui.element;
|
|
var $ = layui.jquery;
|
|
var layer = layui.layer;
|
|
|
|
// 初始化通知配置,同一样式只需要配置一次,非必须初始化,有默认配置
|
|
notice.options = {
|
|
showMethod: 'slideDown',
|
|
hideMethod: 'slideUp',
|
|
closeButton: true,//显示关闭按钮
|
|
debug: false,//启用debug
|
|
positionClass: "toast-bottom-full-width",//弹出的位置,
|
|
showDuration: 300,//显示的时间
|
|
hideDuration: 300,//消失的时间
|
|
timeOut: 1000,//停留的时间
|
|
extendedTimeOut: 0,//控制时间
|
|
showEasing: "swing",//显示时的动画缓冲方式swing为变速
|
|
// showEasing: "linear",//显示时的动画缓冲方式
|
|
hideEasing: "linear",//消失时的动画缓冲方式linear为匀速
|
|
iconClass: 'toast-info', // 自定义图标,有内置,如不需要则传空 支持layui内置图标/自定义iconfont类名
|
|
onclick: null, // 点击关闭回调
|
|
};
|
|
|
|
notice.success("您已进入管理员操作界面", '欢迎管理员:{$name}', noticeOpt4);
|
|
|
|
//下滑出现操作界面
|
|
$(".flag1").slideDown("slow");
|
|
$(".flag2").delay(400).slideDown("slow");
|
|
$(".flag3").delay(1000).fadeIn("slow");
|
|
//浮现我的桌面
|
|
setTimeout(function () {
|
|
// $("#showHome").removeClass("layui-hide");
|
|
}, 1500);
|
|
|
|
// $('#test').click(function () {
|
|
// element.tabChange('xbs_tab', 'Home'); //切换到:用户管理
|
|
// });
|
|
|
|
//点击我的桌面
|
|
var myHome = document.querySelector('#myHome');
|
|
myHome.addEventListener('click', function () {
|
|
$("#showHome").removeClass("layui-hide");
|
|
// console.log(document.getElementById("hom").contentWindow);
|
|
notice.remove();
|
|
notice.success("可视化数据已校准", "<div class = 'layui-icon layui-icon-heart-fill'> 同步成功</div>", noticeOpt6);
|
|
setTimeout(function () {
|
|
document.getElementById("hom").contentWindow.echatsResize();
|
|
document.getElementById("hom").contentWindow.updateCards();
|
|
document.getElementById("hom").contentWindow.updateEcharts();
|
|
}, 300);
|
|
|
|
});
|
|
|
|
//打开日志记录
|
|
var str = '';
|
|
var num = [];
|
|
$('#log').click(function () {
|
|
|
|
layer.open({
|
|
type: 1
|
|
, title: '二级验证'
|
|
, content: $("#logForm").html()
|
|
, skin: 'layui-layer-lan'
|
|
, area: ['300px', '170px']
|
|
, btn: ['获取当前校验码', '确认']
|
|
, btnAlign: 'c'
|
|
, success: function (layero, index) {
|
|
//设置1提示内容
|
|
$(".layui-layer-btn1").text('请先获取校验码');
|
|
//禁用1鼠标点击
|
|
$(".layui-layer-btn1").attr("disabled", true);
|
|
$(".layui-layer-btn1").css("pointer-events", "none");
|
|
//设置0/1背景色
|
|
$(".layui-layer-btn0").css("background", "#d2ecff");
|
|
$(".layui-layer-btn1").css("background", "#ffb3b7");
|
|
$("#logInput").attr('disabled', true);
|
|
}
|
|
, btn1: function () {
|
|
//生成随机数
|
|
str = '';
|
|
num = [];
|
|
for (var i = 0; i < 3; i++) {
|
|
num.push(parseInt(Math.random() * 5));
|
|
str += num[i];
|
|
}
|
|
var btn0 = $(".layui-layer-btn0");
|
|
var btn1 = $(".layui-layer-btn1");
|
|
//设置0提示文字
|
|
btn0.text('当前校验码:' + str);
|
|
//禁用0鼠标点击
|
|
btn0.attr("disabled", true);
|
|
btn0.css("pointer-events", "none");
|
|
//设置0背景色
|
|
btn0.css("background", "#6eb7d5");
|
|
//设置0字体颜色
|
|
btn0.css("color", "#faffff");
|
|
//设置输入框提示内容
|
|
$("#logInput").attr('placeholder', '提示:w · yyyy · d · H · M');
|
|
//允许输入框输入内容
|
|
$("#logInput").attr('disabled', false);
|
|
//恢复1鼠标点击
|
|
btn1.attr("disabled", false);
|
|
btn1.css("pointer-events", "auto");
|
|
//设置1背景色
|
|
btn1.css("background", "#61b77d");
|
|
//设置1字体颜色
|
|
btn1.css("color", "#ffffff");
|
|
//设置1提示内容
|
|
$(".layui-layer-btn1").text('确认');
|
|
notice.options = noticeOpt2;
|
|
notice.info("<div class = 'layui-icon'> 当前时间: " + updateTime() + "</div>", "<span class='layui-icon layui-icon-tips'> 提示:w · yyyy · d · H · M</span>", {iconClass: 'layui-icon'});
|
|
}
|
|
, btn2: function (index) {
|
|
// console.log($("#logInput").val());
|
|
// notice.remove();
|
|
// notice.warning('正在检验二级密码是否正确','校验码审核',noticeOpt3);
|
|
var myDate = new Date();
|
|
var week = myDate.getDay();
|
|
var year = myDate.getFullYear();
|
|
var day = myDate.getDate();
|
|
var hour = myDate.getHours();
|
|
var month = (myDate.getMonth() + 1);
|
|
$.ajax({
|
|
type: "POST",
|
|
url: "/index/Administrator/log_verify",
|
|
data: {
|
|
logInput: $("#logInput").val(),
|
|
numArr: num,
|
|
week: week,
|
|
year: year,
|
|
day: day,
|
|
hour: hour,
|
|
month: month
|
|
},
|
|
success: function (msg) {
|
|
if (msg == 'ok') {
|
|
notice.remove();
|
|
notice.success('正在打开日志记录…………', '本次校验码审核通过', noticeOpt4);
|
|
layer.msg('校验成功', {time: 800, icon: 1});
|
|
setTimeout(function () {
|
|
layer.close(index);
|
|
// xadmin.open('日志记录', '/index/Administrator/log');
|
|
notice.remove();
|
|
xadmin.add_tab('日志记录', '/index/Administrator/log');
|
|
}, 1000);
|
|
} else {
|
|
layer.msg(msg, {icon: 4, time: 1000});
|
|
notice.remove();
|
|
notice.error('校验码错误,请检查后重新输入', '校验码未通过审核', noticeOpt5);
|
|
$("#logInput").val('');
|
|
$("#logInput").focus();
|
|
setTimeout(function () {
|
|
notice.info("<div class = 'layui-icon'> 当前时间: " + updateTime() + "</div>", "<span class='layui-icon layui-icon-tips'> 提示:w · yyyy · d · H · M</span>", {iconClass: 'layui-icon'});
|
|
}, 1500)
|
|
}
|
|
|
|
},
|
|
error: function () {
|
|
notice.remove();
|
|
layer.msg('数据传输错误,请联系后台管理员', {time: 800, icon: 5});
|
|
notice.error('请联系后台管理员', '数据传输错误', noticeOpt5);
|
|
layer.close(index);
|
|
},
|
|
|
|
});
|
|
return false;
|
|
}
|
|
, cancel: function () {
|
|
notice.clear();
|
|
}
|
|
}
|
|
);
|
|
|
|
});
|
|
|
|
function updateTime() {
|
|
var date = new Date();
|
|
this.year = date.getFullYear();
|
|
this.month = date.getMonth() + 1;
|
|
this.date = date.getDate();
|
|
this.day = new Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六")[date.getDay()];
|
|
this.hour = date.getHours();
|
|
var currentTime = this.year + " 年 " + this.month + " 月 " + this.date + " 日 " + this.day + " , " + this.hour + "点";
|
|
return currentTime;
|
|
}
|
|
});
|
|
|
|
</script>
|
|
</body>
|
|
|
|
|
|
</html>
|