init: 从宝塔同步到 Gitea
This commit is contained in:
@@ -0,0 +1,145 @@
|
||||
{include file="public/header"}
|
||||
<style>
|
||||
.x-body .layui-row{ margin-top:-10px; line-height:25px; background:#f5f5f5; border-radius:10px; }
|
||||
.x-body .layui-row .xblock button{ margin-top:-20px; }
|
||||
.x-body .layui-form{ margin-top:15px; margin-bottom:12px; }
|
||||
.x-body .layui-form .layui-input-block{ display:inline-block; width:150px; margin-left:0; }
|
||||
.x-body .layui-form .layui-form-item{ display:inline-block; margin-left:0; }
|
||||
.x-body .layui-form .layui-form-item .layui-form-label{ width:48px; }
|
||||
.x-body .layui-form .layui-form-item .layui-input-block{ margin-left:-10px; width:100px; }
|
||||
.x-body .layui-form .layui-form-item .layui-input-block .layui-form-radio i{ margin-right:4px; }
|
||||
.x-body .layui-form .layui-form-item .layui-form-radio{ margin-top:6px; margin-right:-8px; }
|
||||
.layui-input-block dl{ text-align:left; }
|
||||
.x-so{ margin:0; }
|
||||
.x-so input.layui-input{ width:150px; }
|
||||
.x-nav{overflow: inherit; } .x-nav .refresh{margin-right: 20px; }
|
||||
.change_box .actived{border-right:1px solid #e5e5e5;border-left:1px solid #e5e5e5;border-top:1px solid #e5e5e5; position: relative; color: #3daae9; }
|
||||
.change_box .actived:after{content: ""; bottom: -2px; background: #fff; width: 100%; height: 5px; position: absolute; left: 0; }
|
||||
.change_box a{font-size: 14px;padding: 10.5px 10px;}
|
||||
</style>
|
||||
<body>
|
||||
<div class="x-nav" style="padding: 0px;">
|
||||
<span class="change_box">
|
||||
<a href="javascript:;" class="list-one actived" data-id="1">操作日志列表</a>
|
||||
<!--<a href="javascript:;" class="list-two" data-id="2">添加代理</a>-->
|
||||
</span>
|
||||
<a class="layui-btn layui-btn-small refresh" style="line-height:1.6em;margin-top:3px;float:right"
|
||||
href="javascript:location.replace(location.href);" title="刷新">
|
||||
<i class="layui-icon" style="line-height:30px">ဂ</i></a>
|
||||
</div>
|
||||
<br>
|
||||
<div class="x-body">
|
||||
<div class="layui-row">
|
||||
<form class="layui-form layui-col-md12 x-so float-left" action="/log/admin" method="get">
|
||||
<input class="layui-input" placeholder="开始时间" name="startDate" id="start" value="<?php if(isset($get['startDate'])) {echo $get['startDate'];} ?>">
|
||||
<input class="layui-input" placeholder="结束时间" name="endDate" id="end" value="<?php if(isset($get['endDate'])) {echo $get['endDate'];} ?>">
|
||||
<input type="text" name="username" id="username" placeholder="请输入操作人" autocomplete="off" class="layui-input" value="<?php if(isset($get['username'])) {echo $get['username'];} ?>">
|
||||
<button class="layui-btn" lay-submit="" lay-filter="sreach"><i class="layui-icon"></i></button>
|
||||
<span class="layui-btn" id="export">导出excel</span>
|
||||
<!-- <span class="layui-btn" id="print">打印</span> -->
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<table class="layui-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>编号</th>
|
||||
<th>操作人</th>
|
||||
<th>操作类型</th>
|
||||
<th>操作描述</th>
|
||||
<th>操作时间</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach name="log_list" item="vo"}
|
||||
<tr>
|
||||
<td>{$vo.id}</td>
|
||||
<td>{$vo.space_admin}</td>
|
||||
<td>{$vo.control}</td>
|
||||
<td>{$vo.remake}</td>
|
||||
<td>{$vo.control_time}</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
{$log_list->render()}
|
||||
</div>
|
||||
</body>
|
||||
<script>
|
||||
// 代理列表和添加代理切换
|
||||
$('.x-nav .change_box a').click(function(){
|
||||
// 样式切换
|
||||
$('.x-nav .change_box a').removeClass('actived');
|
||||
$(this).addClass('actived');
|
||||
// 页面切换
|
||||
var id = $(this).attr('data-id');
|
||||
if(id == "1") location.href = '/log/admin';
|
||||
// if(id == "2") location.href = '/agent/agent_add';
|
||||
});
|
||||
// 时间选择器
|
||||
layui.use('laydate', function () {
|
||||
var laydate = layui.laydate;
|
||||
|
||||
// 开始时间
|
||||
laydate.render({
|
||||
elem: '#start',
|
||||
type: 'datetime'
|
||||
});
|
||||
|
||||
// 结束时间
|
||||
laydate.render({
|
||||
elem: '#end',
|
||||
type: 'datetime'
|
||||
});
|
||||
});
|
||||
$('#print').click(function(){
|
||||
var qs = getQueryString();
|
||||
var startDate = qs["startDate"];
|
||||
var endDate = qs["endDate"];
|
||||
var username = qs["username"];
|
||||
if(startDate == undefined){
|
||||
startDate = '';
|
||||
}
|
||||
if(endDate == undefined){
|
||||
endDate = '';
|
||||
}
|
||||
if(username == undefined){
|
||||
username = '';
|
||||
}
|
||||
layer.open({
|
||||
type: 2,
|
||||
title:'操作日志列表打印',
|
||||
content: '/log/admin_print?startDate='+startDate+'&endDate='+endDate+'&username='+username,
|
||||
area: ['95%', '95%']
|
||||
});
|
||||
});
|
||||
function getQueryString() {
|
||||
var qs = location.search.substr(1), // 获取url中"?"符后的字串
|
||||
args = {}, // 保存参数数据的对象
|
||||
items = qs.length ? qs.split("&") : [], // 取得每一个参数项,
|
||||
item = null,
|
||||
len = items.length;
|
||||
|
||||
for(var i = 0; i < len; i++) {
|
||||
item = items[i].split("=");
|
||||
var name = decodeURIComponent(item[0]),
|
||||
value = decodeURIComponent(item[1]);
|
||||
if(name) {
|
||||
args[name] = value;
|
||||
}
|
||||
}
|
||||
return args;
|
||||
}
|
||||
|
||||
// 导出excel
|
||||
$('#export').click(function(){
|
||||
var startDate = $('#start').val();
|
||||
var endDate = $('#end').val();
|
||||
var username = $('#username').val();
|
||||
layer.confirm('确定导出 excel 吗?',function(index){
|
||||
location.href = "/log/admin?export=1&&startDate="+startDate+"&&endDate="+endDate+"&&username="+username;
|
||||
layer.close(index);
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</html>
|
||||
@@ -0,0 +1,30 @@
|
||||
{include file="public/header"}
|
||||
<body>
|
||||
<div class="x-body">
|
||||
<div class="layui-btn no-print" onclick="jQuery('html').print()">打印</div>
|
||||
<table class="layui-table">
|
||||
<div style="text-align: center;font-size: 18px;font-weight:bold;">操作日志列表</div>
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="text-align: center;">编号</th>
|
||||
<th style="text-align: center;">操作人</th>
|
||||
<th style="text-align: center;">操作类型</th>
|
||||
<th style="text-align: center;">操作描述</th>
|
||||
<th style="text-align: center;">操作时间</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach name="log_list" item="vo"}
|
||||
<tr>
|
||||
<td>{$vo.id}</td>
|
||||
<td>{$vo.space_admin}</td>
|
||||
<td>{$vo.control}</td>
|
||||
<td>{$vo.remake}</td>
|
||||
<td>{$vo.control_time}</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,148 @@
|
||||
{include file="public/header"}
|
||||
<style>
|
||||
.x-body .layui-row{ margin-top:-10px; line-height:25px; background:#f5f5f5; border-radius:10px; }
|
||||
.x-body .layui-row .xblock button{ margin-top:-20px; }
|
||||
.x-body .layui-form{ margin-top:15px; margin-bottom:10px; }
|
||||
.x-body .layui-form .layui-input-block{ display:inline-block; width:150px; margin-left:0; }
|
||||
.x-body .layui-form .layui-form-item{ display:inline-block; margin-left:0; }
|
||||
.x-body .layui-form .layui-form-item .layui-form-label{ width:48px; }
|
||||
.x-body .layui-form .layui-form-item .layui-input-block{ margin-left:-10px; width:100px; }
|
||||
.x-body .layui-form .layui-form-item .layui-input-block .layui-form-radio i{ margin-right:4px; }
|
||||
.x-body .layui-form .layui-form-item .layui-form-radio{ margin-top:6px; margin-right:-8px; }
|
||||
.layui-input-block dl{ text-align:left; }
|
||||
.x-so{ margin:0; }
|
||||
.x-so input.layui-input{ width:150px; }
|
||||
.x-nav{overflow: inherit; } .x-nav .refresh{margin-right: 20px; }
|
||||
.change_box .actived{border-right:1px solid #e5e5e5;border-left:1px solid #e5e5e5;border-top:1px solid #e5e5e5; position: relative; color: #3daae9; }
|
||||
.change_box .actived:after{content: ""; bottom: -2px; background: #fff; width: 100%; height: 5px; position: absolute; left: 0; }
|
||||
.change_box a{font-size: 14px;padding: 10.5px 10px;}
|
||||
</style>
|
||||
<body>
|
||||
<div class="x-nav" style="padding: 0px;">
|
||||
<span class="change_box">
|
||||
<a href="javascript:;" class="list-one actived" data-id="1">用户列表</a>
|
||||
<a href="javascript:;" class="list-two" data-id="2">用户添加</a>
|
||||
</span>
|
||||
<a class="layui-btn layui-btn-small refresh" style="line-height:1.6em;margin-top:3px;float:right"
|
||||
href="javascript:location.replace(location.href);" title="刷新">
|
||||
<i class="layui-icon" style="line-height:30px">ဂ</i></a>
|
||||
</div>
|
||||
<br>
|
||||
<div class="x-body">
|
||||
<table class="layui-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>编号</th>
|
||||
<th>appid</th>
|
||||
<th>秘钥</th>
|
||||
<th>状态</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach name="admin_list" item="vo"}
|
||||
<tr>
|
||||
<td>{$vo.id}</td>
|
||||
<td>{$vo.appid}</td>
|
||||
<td>{$vo.appsecret}</td>
|
||||
<td><?php if($vo['status'] == 1){echo '<span style="color:#43A72D">生效</span>';}else{echo '<span style="color:#f00">禁用</span>';} ?></td>
|
||||
<td class="td-manage">
|
||||
<a href="/log/api_admin_edit?id={$vo.id}">
|
||||
<span class="layui-btn layui-btn-normal layui-btn-mini" style="background:#009688;">修改</span>
|
||||
</a>
|
||||
<a onclick="change_status(this,'{$vo.id}')" href="javascript:;">
|
||||
<span class="layui-btn layui-btn-normal layui-btn-mini" style="background:#ADB6FF;">状态</span>
|
||||
</a>
|
||||
<a onclick="member_del(this,'{$vo.id}')" href="javascript:;">
|
||||
<span class="layui-btn layui-btn-normal layui-btn-mini" style="background:#ff5050;">删除</span>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
{$admin_list->render()}
|
||||
</div>
|
||||
<script>
|
||||
// 代理列表和添加代理切换
|
||||
$('.x-nav .change_box a').click(function(){
|
||||
// 样式切换
|
||||
$('.x-nav .change_box a').removeClass('actived');
|
||||
$(this).addClass('actived');
|
||||
// 页面切换
|
||||
var id = $(this).attr('data-id');
|
||||
if(id == "1") location.href = '/log/api_admin';
|
||||
if(id == "2") location.href = '/log/api_admin_add';
|
||||
});
|
||||
/*用户-删除*/
|
||||
function member_del(obj, id) {
|
||||
layer.confirm('确认要删除吗?',function () {
|
||||
// 数据验证
|
||||
if(id <= 0){
|
||||
layer.msg('删除用户出错!');
|
||||
return false;
|
||||
}
|
||||
|
||||
// 拼装数据
|
||||
var query = new Object;
|
||||
query.id = id;
|
||||
|
||||
// 发送数据到后台删除会员
|
||||
var result = ajax('/log/api_admin_del',query);
|
||||
if(result.code == 1){
|
||||
layer.msg(result.msg, {icon: 1, time: 1000},function(){
|
||||
location.reload();
|
||||
});
|
||||
}else if(result.code == 0){
|
||||
layer.msg(result.msg, {icon: 2, time: 1000});
|
||||
}
|
||||
});
|
||||
}
|
||||
function change_status(obj, id) {
|
||||
layer.confirm('确认要更改状态吗?',function () {
|
||||
// 数据验证
|
||||
if(id <= 0){
|
||||
layer.msg('更改用户出错!');
|
||||
return false;
|
||||
}
|
||||
|
||||
// 拼装数据
|
||||
var query = new Object;
|
||||
query.id = id;
|
||||
|
||||
// 发送数据到后台删除会员
|
||||
var result = ajax('/log/api_admin_status',query);
|
||||
if(result.code == 1){
|
||||
layer.msg(result.msg, {icon: 1, time: 1000},function(){
|
||||
location.reload();
|
||||
});
|
||||
}else if(result.code == 0){
|
||||
layer.msg(result.msg, {icon: 2, time: 1000});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 封装 AJAX 函数
|
||||
* @param url 目标地址
|
||||
* @param query 参数
|
||||
* @returns {string}
|
||||
*/
|
||||
function ajax(url, query) {
|
||||
var returnData = "";
|
||||
$.ajax({
|
||||
url: url,
|
||||
data: query,
|
||||
type: 'POST',
|
||||
dataType: 'JSON',
|
||||
async: false,
|
||||
success: function (data) {
|
||||
returnData = data;
|
||||
}
|
||||
});
|
||||
return returnData;
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,143 @@
|
||||
{include file="public/header"}
|
||||
<style type="text/css">
|
||||
textarea, input[type="text"], input[type="password"],
|
||||
.uneditable-input{border: 1px solid #ccc;background-color: #fff; }
|
||||
.change_box a{font-size: 14px;padding: 10.5px 10px;}
|
||||
.change_box .actived{border-right:1px solid #e5e5e5;border-left:1px solid #e5e5e5;border-top:1px solid #e5e5e5; position: relative; color: #3daae9; }
|
||||
.change_box .actived:after{content: ""; bottom: -2px; background: #fff; width: 100%; height: 5px; position: absolute; left: 0; }
|
||||
.x-nav{overflow: inherit; }
|
||||
.x-nav .refresh{margin-right: 20px; }
|
||||
.control-group{overflow: hidden; margin-bottom: 15px; padding-bottom: 15px; border-bottom: 1px dotted #dddddd; }
|
||||
.control-label{float: left; padding-top: 3px; width: 160px; text-align: right; font-size: 14px; }
|
||||
.controls{text-align: left; overflow-x: auto; overflow-y: hidden; margin-left: 180px; }
|
||||
.controls input{width: 300px; height: 24px; font-size: 14px; border-radius: 4px; padding-left:6px; }
|
||||
.controls select{width: 300px; height: 24px; font-size: 14px; border-radius: 4px; padding-left:6px; }
|
||||
.controls textarea{width: 400px; height: 90px; border-radius: 4px; } .form-horizontal{margin: 0 10px; }
|
||||
.bottom-buttom{border-top: 1px solid #e5e5e5; margin-top: 20px; background-color: #f5f5f5; padding: 30px 0; }
|
||||
.submit{width: 50px; text-align: center; background-color:#3daae9; color: #fff; padding: 5px 10px; font-size: 16px; border-radius: 4px; cursor:pointer; }
|
||||
</style>
|
||||
<body>
|
||||
<div class="x-nav" style="padding: 0px;">
|
||||
<span class="change_box">
|
||||
<a href="javascript:;" class="list-one" data-id="1">用户列表</a>
|
||||
<a href="javascript:;" class="list-two actived" data-id="2">用户添加</a>
|
||||
</span>
|
||||
<a class="layui-btn layui-btn-small refresh" style="line-height:1.6em;margin-top:3px;float:right"
|
||||
href="javascript:location.replace(location.href);" title="刷新">
|
||||
<i class="layui-icon" style="line-height:30px">ဂ</i></a>
|
||||
</div>
|
||||
<br>
|
||||
<div class="info_from form-horizontal">
|
||||
<div class="control-group">
|
||||
<label class="control-label">appid:</label>
|
||||
<div class="controls">
|
||||
<input id="L_username" name="L_username" type="text" value maxlength="50" minlength="3" class="required">
|
||||
<span class="help-inline">
|
||||
<font color="red"> * </font>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">秘钥:</label>
|
||||
<div class="controls">
|
||||
<input id="L_pass" name="L_pass" type="text" value maxlength="50" minlength="3" class="required">
|
||||
<span class="help-inline">
|
||||
<font color="red"> * </font>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">确认秘钥:</label>
|
||||
<div class="controls">
|
||||
<input id="L_repass" name="L_repass" type="text" value maxlength="50" minlength="3" class="required">
|
||||
<span class="help-inline">
|
||||
<font color="red"> * 与秘钥保持一致</font>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">名称:</label>
|
||||
<div class="controls">
|
||||
<input id="L_name" name="L_name" type="text" value maxlength="50" minlength="3" class="required"><span class="help-inline">
|
||||
<font color="red"> *</font>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom-buttom">
|
||||
<label class="control-label"></label>
|
||||
<div class="controls">
|
||||
<div class='submit'>保存</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
// 代理列表和添加代理切换
|
||||
$('.x-nav .change_box a').click(function(){
|
||||
// 样式切换
|
||||
$('.x-nav .change_box a').removeClass('actived');
|
||||
$(this).addClass('actived');
|
||||
// 页面切换
|
||||
var id = $(this).attr('data-id');
|
||||
if(id == "1") location.href = '/log/api_admin';
|
||||
if(id == "2") location.href = '/log/api_admin_add';
|
||||
});
|
||||
|
||||
//监听提交
|
||||
$('.submit').click(function (data) {
|
||||
// 获取和拼装添加代理的数据
|
||||
var query = new Object();
|
||||
query.appid = $('#L_username').val();
|
||||
query.pass = $('#L_pass').val();
|
||||
query.repass = $('#L_repass').val();
|
||||
query.name = $('#L_name').val();
|
||||
|
||||
// 验证数据
|
||||
if(query.appid.length == 0){
|
||||
layer.alert("请填写APPID");
|
||||
return false;
|
||||
}
|
||||
if(query.pass.length < 6){
|
||||
layer.alert("请填写超过6个字符串的秘钥");
|
||||
return false;
|
||||
}
|
||||
if(query.pass != query.repass){
|
||||
layer.alert("两次秘钥不一致!");
|
||||
return false;
|
||||
}
|
||||
if(query.name.length <= 0){
|
||||
layer.alert("请填写名称!");
|
||||
return false;
|
||||
}
|
||||
|
||||
// 发送数据到后台添加会员
|
||||
var result = ajax('/log/do_api_admin_add',query);
|
||||
if(result.code == 1){
|
||||
layer.alert(result.msg, {icon: 6}, function () {
|
||||
location.href = "/log/api_admin";
|
||||
});
|
||||
}else{
|
||||
layer.alert(result.msg,{icon:2});
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
// AJAX函数封装
|
||||
function ajax(url,query){
|
||||
var returnData = 0;
|
||||
$.ajax({
|
||||
url:url,
|
||||
data:query,
|
||||
type:'POST',
|
||||
dataType:'JSON',
|
||||
async:false,
|
||||
success:function(data){
|
||||
returnData = data;
|
||||
}
|
||||
});
|
||||
return returnData;
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,137 @@
|
||||
{include file="public/header"}
|
||||
<style type="text/css">
|
||||
textarea, input[type="text"], input[type="password"],.uneditable-input{border: 1px solid #ccc;background-color: #fff; }
|
||||
.change_box a{font-size: 14px;padding: 10.5px 10px;}
|
||||
.change_box .actived{border-right:1px solid #e5e5e5;border-left:1px solid #e5e5e5;border-top:1px solid #e5e5e5; position: relative; color: #3daae9; }
|
||||
.change_box .actived:after{content: ""; bottom: -2px; background: #fff; width: 100%; height: 5px; position: absolute; left: 0; }
|
||||
.x-nav{overflow: inherit; } .x-nav .refresh{margin-right: 20px; }
|
||||
.control-group{overflow: hidden; margin-bottom: 15px; padding-bottom: 15px; border-bottom: 1px dotted #dddddd; }
|
||||
.control-label{float: left; padding-top: 3px; width: 160px; text-align: right; font-size: 14px; }
|
||||
.controls{text-align: left; overflow-x: auto; overflow-y: hidden; margin-left: 180px; }
|
||||
.controls input{width: 300px; height: 24px; font-size: 14px; border-radius: 4px; padding-left:6px; }
|
||||
.controls select{width: 300px; height: 24px; font-size: 14px; border-radius: 4px; padding-left:6px; }
|
||||
.controls textarea{width: 400px; height: 90px; border-radius: 4px; } .form-horizontal{margin: 0 10px; }
|
||||
.bottom-buttom{border-top: 1px solid #e5e5e5; margin-top: 20px; background-color: #f5f5f5; padding: 30px 0; }
|
||||
.submit{width: 50px; text-align: center; background-color:#3daae9; color: #fff; padding: 5px 10px; font-size: 16px; border-radius: 4px; cursor:pointer; }
|
||||
</style>
|
||||
<body>
|
||||
<div class="x-nav" style="padding: 0px;">
|
||||
<span class="change_box">
|
||||
<a href="javascript:;" class="list-one" data-id="1">用户列表</a>
|
||||
<a href="javascript:;" class="list-two actived" data-id="2">用户修改</a>
|
||||
</span>
|
||||
<a class="layui-btn layui-btn-small refresh" style="line-height:1.6em;margin-top:3px;float:right"
|
||||
href="javascript:location.replace(location.href);" title="刷新">
|
||||
<i class="layui-icon" style="line-height:30px">ဂ</i></a>
|
||||
</div>
|
||||
<br>
|
||||
<div class="info_from form-horizontal">
|
||||
<div class="control-group">
|
||||
<label class="control-label">appid:</label>
|
||||
<div class="controls">
|
||||
<input id="L_username" name="L_username" type="text" value="{$admin.appid}" readonly maxlength="50" minlength="3" class="required">
|
||||
<span class="help-inline">
|
||||
<font color="red"> * </font>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">秘钥:</label>
|
||||
<div class="controls">
|
||||
<input id="L_pass" name="L_pass" type="text" value="{$admin.appsecret}" maxlength="50" minlength="3" class="required">
|
||||
<span class="help-inline">
|
||||
<font color="red"> * </font>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">确认密码:</label>
|
||||
<div class="controls">
|
||||
<input id="L_repass" name="L_repass" type="text" value="{$admin.appsecret}" maxlength="50" minlength="3" class="required"><span class="help-inline">
|
||||
<font color="red"> * 与秘钥保持一致</font>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">名称:</label>
|
||||
<div class="controls">
|
||||
<input id="L_name" name="L_name" type="text" value="{$admin.name}" maxlength="50" minlength="3" class="required"><span class="help-inline">
|
||||
<font color="red"> *</font>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom-buttom">
|
||||
<label class="control-label"></label>
|
||||
<div class="controls">
|
||||
<div class='submit'>保存</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 隐藏参数 -->
|
||||
<input type="hidden" id="id" value="{$admin.id}">
|
||||
<script>
|
||||
// 代理列表和添加代理切换
|
||||
$('.x-nav .change_box a').click(function(){
|
||||
// 样式切换
|
||||
$('.x-nav .change_box a').removeClass('actived');
|
||||
$(this).addClass('actived');
|
||||
// 页面切换
|
||||
var id = $(this).attr('data-id');
|
||||
if(id == "1") location.href = '/log/api_admin';
|
||||
if(id == "2") location.href = '/log/api_admin_edit';
|
||||
});
|
||||
|
||||
//监听提交
|
||||
$('.submit').click(function () {
|
||||
// 获取和拼装添加代理的数据
|
||||
var query = new Object();
|
||||
query.id = $('#id').val();
|
||||
query.appid = $('#L_username').val();
|
||||
query.pass = $('#L_pass').val();
|
||||
query.repass = $('#L_repass').val();
|
||||
query.name = $('#L_name').val();
|
||||
|
||||
// 验证数据
|
||||
if(query.pass.length > 0){
|
||||
if(query.pass.length >= 6){
|
||||
if(query.pass != query.repass){
|
||||
layer.msg("两次密码不一致!");
|
||||
return false;
|
||||
}
|
||||
}else{
|
||||
layer.msg("密码不能少于6位字符!");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 发送数据到后台添加会员
|
||||
var result = ajax('/log/do_api_admin_edit',query);
|
||||
if(result.code == 1){
|
||||
layer.alert(result.msg, {icon: 6}, function () {
|
||||
location.href = '/log/api_admin';
|
||||
});
|
||||
}else{
|
||||
layer.msg(result.msg,{icon:2});
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
// AJAX函数封装
|
||||
function ajax(url,query){
|
||||
var returnData = 0;
|
||||
$.ajax({
|
||||
url:url,
|
||||
data:query,
|
||||
type:'POST',
|
||||
dataType:'JSON',
|
||||
async:false,
|
||||
success:function(data){
|
||||
returnData = data;
|
||||
}
|
||||
});
|
||||
return returnData;
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,145 @@
|
||||
{include file="public/header"}
|
||||
<style>
|
||||
.x-body .layui-row{ margin-top:-10px; line-height:25px; background:#f5f5f5; border-radius:10px; }
|
||||
.x-body .layui-row .xblock button{ margin-top:-20px; }
|
||||
.x-body .layui-form{ margin-top:15px; margin-bottom:12px; }
|
||||
.x-body .layui-form .layui-input-block{ display:inline-block; width:150px; margin-left:0; }
|
||||
.x-body .layui-form .layui-form-item{ display:inline-block; margin-left:0; }
|
||||
.x-body .layui-form .layui-form-item .layui-form-label{ width:48px; }
|
||||
.x-body .layui-form .layui-form-item .layui-input-block{ margin-left:-10px; width:100px; }
|
||||
.x-body .layui-form .layui-form-item .layui-input-block .layui-form-radio i{ margin-right:4px; }
|
||||
.x-body .layui-form .layui-form-item .layui-form-radio{ margin-top:6px; margin-right:-8px; }
|
||||
.layui-input-block dl{ text-align:left; }
|
||||
.x-so{ margin:0; }
|
||||
.x-so input.layui-input{ width:150px; }
|
||||
.x-nav{overflow: inherit; } .x-nav .refresh{margin-right: 20px; }
|
||||
.change_box .actived{border-right:1px solid #e5e5e5;border-left:1px solid #e5e5e5;border-top:1px solid #e5e5e5; position: relative; color: #3daae9; }
|
||||
.change_box .actived:after{content: ""; bottom: -2px; background: #fff; width: 100%; height: 5px; position: absolute; left: 0; }
|
||||
.change_box a{font-size: 14px;padding: 10.5px 10px;}
|
||||
</style>
|
||||
<body>
|
||||
<div class="x-nav" style="padding: 0px;">
|
||||
<span class="change_box">
|
||||
<a href="javascript:;" class="list-one actived" data-id="1">操作日志列表</a>
|
||||
<!--<a href="javascript:;" class="list-two" data-id="2">添加代理</a>-->
|
||||
</span>
|
||||
<a class="layui-btn layui-btn-small refresh" style="line-height:1.6em;margin-top:3px;float:right"
|
||||
href="javascript:location.replace(location.href);" title="刷新">
|
||||
<i class="layui-icon" style="line-height:30px">ဂ</i></a>
|
||||
</div>
|
||||
<br>
|
||||
<div class="x-body">
|
||||
<div class="layui-row">
|
||||
<form class="layui-form layui-col-md12 x-so float-left" action="/log/index" method="get">
|
||||
<input class="layui-input" placeholder="开始时间" name="startDate" id="start" value="<?php if(isset($get['startDate'])) {echo $get['startDate'];} ?>">
|
||||
<input class="layui-input" placeholder="结束时间" name="endDate" id="end" value="<?php if(isset($get['endDate'])) {echo $get['endDate'];} ?>">
|
||||
<input type="text" name="username" id="username" placeholder="请输入操作人" autocomplete="off" class="layui-input" value="<?php if(isset($get['username'])) {echo $get['username'];} ?>">
|
||||
<button class="layui-btn" lay-submit="" lay-filter="sreach"><i class="layui-icon"></i></button>
|
||||
<span class="layui-btn" id="export">导出 excel</span>
|
||||
<!-- <span class="layui-btn" id="print">打印</span> -->
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<table class="layui-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>编号</th>
|
||||
<th>操作人</th>
|
||||
<th>操作类型</th>
|
||||
<th>操作描述</th>
|
||||
<th>操作时间</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach name="log_list" item="vo"}
|
||||
<tr>
|
||||
<td>{$vo.id}</td>
|
||||
<td>{$vo.username}</td>
|
||||
<td>{$vo.control}</td>
|
||||
<td>{$vo.remake}</td>
|
||||
<td>{$vo.control_time}</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
{$log_list->render()}
|
||||
</div>
|
||||
</body>
|
||||
<script>
|
||||
// 代理列表和添加代理切换
|
||||
$('.x-nav .change_box a').click(function(){
|
||||
// 样式切换
|
||||
$('.x-nav .change_box a').removeClass('actived');
|
||||
$(this).addClass('actived');
|
||||
// 页面切换
|
||||
var id = $(this).attr('data-id');
|
||||
if(id == "1") location.href = '/log/index';
|
||||
// if(id == "2") location.href = '/agent/agent_add';
|
||||
});
|
||||
// 时间选择器
|
||||
layui.use('laydate', function () {
|
||||
var laydate = layui.laydate;
|
||||
|
||||
// 开始时间
|
||||
laydate.render({
|
||||
elem: '#start',
|
||||
type: 'datetime'
|
||||
});
|
||||
|
||||
// 结束时间
|
||||
laydate.render({
|
||||
elem: '#end',
|
||||
type: 'datetime'
|
||||
});
|
||||
});
|
||||
|
||||
// 导出excel
|
||||
$('#export').click(function(){
|
||||
var startDate = $('#start').val();
|
||||
var endDate = $('#end').val();
|
||||
var username = $('#username').val();
|
||||
layer.confirm('确定导出 excel 吗?',function(index){
|
||||
location.href = "/log/index?export=1&&startDate="+startDate+"&&endDate="+endDate+"&&username="+username;
|
||||
layer.close(index);
|
||||
});
|
||||
})
|
||||
$('#print').click(function(){
|
||||
var qs = getQueryString();
|
||||
var startDate = qs["startDate"];
|
||||
var endDate = qs["endDate"];
|
||||
var username = qs["username"];
|
||||
if(startDate == undefined){
|
||||
startDate = '';
|
||||
}
|
||||
if(endDate == undefined){
|
||||
endDate = '';
|
||||
}
|
||||
if(username == undefined){
|
||||
username = '';
|
||||
}
|
||||
layer.open({
|
||||
type: 2,
|
||||
title:'操作日志列表打印',
|
||||
content: '/log/user_print?startDate='+startDate+'&endDate='+endDate+'&username='+username,
|
||||
area: ['95%', '95%']
|
||||
});
|
||||
});
|
||||
function getQueryString() {
|
||||
var qs = location.search.substr(1), // 获取url中"?"符后的字串
|
||||
args = {}, // 保存参数数据的对象
|
||||
items = qs.length ? qs.split("&") : [], // 取得每一个参数项,
|
||||
item = null,
|
||||
len = items.length;
|
||||
|
||||
for(var i = 0; i < len; i++) {
|
||||
item = items[i].split("=");
|
||||
var name = decodeURIComponent(item[0]),
|
||||
value = decodeURIComponent(item[1]);
|
||||
if(name) {
|
||||
args[name] = value;
|
||||
}
|
||||
}
|
||||
return args;
|
||||
}
|
||||
</script>
|
||||
</html>
|
||||
@@ -0,0 +1,176 @@
|
||||
{include file="public/header"}
|
||||
<style>
|
||||
.x-body .layui-row{ margin-top:-10px; line-height:25px; background:#f5f5f5; border-radius:10px; }
|
||||
.x-body .layui-row .xblock button{ margin-top:-20px; }
|
||||
.x-body .layui-form{ margin-top:15px; margin-bottom:10px; }
|
||||
.x-body .layui-form .layui-input-block{ display:inline-block; width:150px; margin-left:0; }
|
||||
.x-body .layui-form .layui-form-item{ display:inline-block; margin-left:0; }
|
||||
.x-body .layui-form .layui-form-item .layui-form-label{ width:48px; }
|
||||
.x-body .layui-form .layui-form-item .layui-input-block{ margin-left:-10px; width:100px; }
|
||||
.x-body .layui-form .layui-form-item .layui-input-block .layui-form-radio i{ margin-right:4px; }
|
||||
.x-body .layui-form .layui-form-item .layui-form-radio{ margin-top:6px; margin-right:-8px; }
|
||||
.layui-input-block dl{ text-align:left; }
|
||||
.x-so{ margin:0; }
|
||||
.x-so input.layui-input{ width:150px; }
|
||||
.x-nav{overflow: inherit; } .x-nav .refresh{margin-right: 20px; }
|
||||
.change_box .actived{border-right:1px solid #e5e5e5;border-left:1px solid #e5e5e5;border-top:1px solid #e5e5e5; position: relative; color: #3daae9; }
|
||||
.change_box .actived:after{content: ""; bottom: -2px; background: #fff; width: 100%; height: 5px; position: absolute; left: 0; }
|
||||
.change_box a{font-size: 14px;padding: 10.5px 10px;}
|
||||
</style>
|
||||
<body>
|
||||
<div class="x-nav" style="padding: 0px;">
|
||||
<span class="change_box">
|
||||
<a href="javascript:;" class="list-one actived" data-id="1">用户列表</a>
|
||||
<a href="javascript:;" class="list-two" data-id="2">用户添加</a>
|
||||
</span>
|
||||
<a class="layui-btn layui-btn-small refresh" style="line-height:1.6em;margin-top:3px;float:right"
|
||||
href="javascript:location.replace(location.href);" title="刷新">
|
||||
<i class="layui-icon" style="line-height:30px">ဂ</i></a>
|
||||
</div>
|
||||
<br>
|
||||
<div class="x-body">
|
||||
<table class="layui-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>编号</th>
|
||||
<th>appid</th>
|
||||
<th>名称</th>
|
||||
<th>备注</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach name="admin_list" item="vo"}
|
||||
<tr>
|
||||
<td>{$vo.id}</td>
|
||||
<td>{$vo.appid}</td>
|
||||
<td>{$vo.name}</td>
|
||||
<td>{$vo.remake}</td>
|
||||
<td class="td-manage">
|
||||
<a href="/log/scan_admin_edit?id={$vo.id}">
|
||||
<span class="layui-btn layui-btn-normal layui-btn-mini" style="background:#009688;">修改</span>
|
||||
</a>
|
||||
<a onclick="member_del(this,'{$vo.id}')" href="javascript:;">
|
||||
<span class="layui-btn layui-btn-normal layui-btn-mini" style="background:#ff5050;">删除</span>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
{$admin_list->render()}
|
||||
</div>
|
||||
<script>
|
||||
// 代理列表和添加代理切换
|
||||
$('.x-nav .change_box a').click(function(){
|
||||
// 样式切换
|
||||
$('.x-nav .change_box a').removeClass('actived');
|
||||
$(this).addClass('actived');
|
||||
// 页面切换
|
||||
var id = $(this).attr('data-id');
|
||||
if(id == "1") location.href = '/log/scan_admin';
|
||||
if(id == "2") location.href = '/log/scan_admin_add';
|
||||
});
|
||||
/*用户-删除*/
|
||||
function member_del(obj, id) {
|
||||
layer.confirm('确认要删除吗?',function () {
|
||||
// 数据验证
|
||||
if(id <= 0){
|
||||
layer.msg('删除用户出错!');
|
||||
return false;
|
||||
}
|
||||
|
||||
// 拼装数据
|
||||
var query = new Object;
|
||||
query.scan_admin_id = id;
|
||||
|
||||
// 发送数据到后台删除会员
|
||||
var result = ajax('/log/scan_admin_del',query);
|
||||
if(result.code == 1){
|
||||
layer.msg(result.msg, {icon: 1, time: 1000},function(){
|
||||
location.reload();
|
||||
});
|
||||
}else if(result.code == 0){
|
||||
layer.msg(result.msg, {icon: 2, time: 1000});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 封装 AJAX 函数
|
||||
* @param url 目标地址
|
||||
* @param query 参数
|
||||
* @returns {string}
|
||||
*/
|
||||
function ajax(url, query) {
|
||||
var returnData = "";
|
||||
$.ajax({
|
||||
url: url,
|
||||
data: query,
|
||||
type: 'POST',
|
||||
dataType: 'JSON',
|
||||
async: false,
|
||||
success: function (data) {
|
||||
returnData = data;
|
||||
}
|
||||
});
|
||||
return returnData;
|
||||
}
|
||||
$('#print').click(function(){
|
||||
var qs = getQueryString();
|
||||
var startDate = qs["startDate"];
|
||||
var endDate = qs["endDate"];
|
||||
var status = qs["status"];
|
||||
var username = qs["username"];
|
||||
if(startDate == undefined){
|
||||
startDate = '';
|
||||
}
|
||||
if(endDate == undefined){
|
||||
endDate = '';
|
||||
}
|
||||
if(status == undefined){
|
||||
status = '';
|
||||
}
|
||||
if(username == undefined){
|
||||
username = '';
|
||||
}
|
||||
layer.open({
|
||||
type: 2,
|
||||
title:'用户列表打印',
|
||||
content: '/log/admin_print?startDate='+startDate+'&endDate='+endDate+'&status='+status+'&username='+username,
|
||||
area: ['95%', '95%']
|
||||
});
|
||||
});
|
||||
function getQueryString() {
|
||||
var qs = location.search.substr(1), // 获取url中"?"符后的字串
|
||||
args = {}, // 保存参数数据的对象
|
||||
items = qs.length ? qs.split("&") : [], // 取得每一个参数项,
|
||||
item = null,
|
||||
len = items.length;
|
||||
|
||||
for(var i = 0; i < len; i++) {
|
||||
item = items[i].split("=");
|
||||
var name = decodeURIComponent(item[0]),
|
||||
value = decodeURIComponent(item[1]);
|
||||
if(name) {
|
||||
args[name] = value;
|
||||
}
|
||||
}
|
||||
return args;
|
||||
}
|
||||
|
||||
// 导出excel
|
||||
$('#export').click(function(){
|
||||
var startDate = $('#start').val();
|
||||
var endDate = $('#end').val();
|
||||
var status = $('#status').val();
|
||||
var username = $('#username').val();
|
||||
layer.confirm('确定导出 excel 吗?',function(index){
|
||||
location.href = "/log/index?export=1&&startDate="+startDate+"&&endDate="+endDate+"&&status="+status+"&&username="+username;
|
||||
layer.close(index);
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,154 @@
|
||||
{include file="public/header"}
|
||||
<style type="text/css">
|
||||
textarea, input[type="text"], input[type="password"],
|
||||
.uneditable-input{border: 1px solid #ccc;background-color: #fff; }
|
||||
.change_box a{font-size: 14px;padding: 10.5px 10px;}
|
||||
.change_box .actived{border-right:1px solid #e5e5e5;border-left:1px solid #e5e5e5;border-top:1px solid #e5e5e5; position: relative; color: #3daae9; }
|
||||
.change_box .actived:after{content: ""; bottom: -2px; background: #fff; width: 100%; height: 5px; position: absolute; left: 0; }
|
||||
.x-nav{overflow: inherit; }
|
||||
.x-nav .refresh{margin-right: 20px; }
|
||||
.control-group{overflow: hidden; margin-bottom: 15px; padding-bottom: 15px; border-bottom: 1px dotted #dddddd; }
|
||||
.control-label{float: left; padding-top: 3px; width: 160px; text-align: right; font-size: 14px; }
|
||||
.controls{text-align: left; overflow-x: auto; overflow-y: hidden; margin-left: 180px; }
|
||||
.controls input{width: 300px; height: 24px; font-size: 14px; border-radius: 4px; padding-left:6px; }
|
||||
.controls select{width: 300px; height: 24px; font-size: 14px; border-radius: 4px; padding-left:6px; }
|
||||
.controls textarea{width: 400px; height: 90px; border-radius: 4px; } .form-horizontal{margin: 0 10px; }
|
||||
.bottom-buttom{border-top: 1px solid #e5e5e5; margin-top: 20px; background-color: #f5f5f5; padding: 30px 0; }
|
||||
.submit{width: 50px; text-align: center; background-color:#3daae9; color: #fff; padding: 5px 10px; font-size: 16px; border-radius: 4px; cursor:pointer; }
|
||||
</style>
|
||||
<body>
|
||||
<div class="x-nav" style="padding: 0px;">
|
||||
<span class="change_box">
|
||||
<a href="javascript:;" class="list-one" data-id="1">用户列表</a>
|
||||
<a href="javascript:;" class="list-two actived" data-id="2">用户添加</a>
|
||||
</span>
|
||||
<a class="layui-btn layui-btn-small refresh" style="line-height:1.6em;margin-top:3px;float:right"
|
||||
href="javascript:location.replace(location.href);" title="刷新">
|
||||
<i class="layui-icon" style="line-height:30px">ဂ</i></a>
|
||||
</div>
|
||||
<br>
|
||||
<div class="info_from form-horizontal">
|
||||
<div class="control-group">
|
||||
<label class="control-label">appid:</label>
|
||||
<div class="controls">
|
||||
<input id="L_username" name="L_username" type="text" value maxlength="50" minlength="3" class="required">
|
||||
<span class="help-inline">
|
||||
<font color="red"> * 将会成为您唯一的登入名</font>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">密码:</label>
|
||||
<div class="controls">
|
||||
<input id="L_pass" name="L_pass" type="password" value maxlength="50" minlength="3" class="required">
|
||||
<span class="help-inline">
|
||||
<font color="red"> * 6到16个字符</font>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">确认密码:</label>
|
||||
<div class="controls">
|
||||
<input id="L_repass" name="L_repass" type="password" value maxlength="50" minlength="3" class="required"><span class="help-inline">
|
||||
<font color="red"> * 与密码保持一致</font>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">名称:</label>
|
||||
<div class="controls">
|
||||
<input id="L_name" name="L_name" type="text" value maxlength="50" minlength="3" class="required"><span class="help-inline">
|
||||
<font color="red"> *</font>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">备注:</label>
|
||||
<div class="controls">
|
||||
<textarea id="L_remake" name="L_remake" type="text" value maxlength="50" minlength="3" class="required"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom-buttom">
|
||||
<label class="control-label"></label>
|
||||
<div class="controls">
|
||||
<div class='submit'>保存</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
// 代理列表和添加代理切换
|
||||
$('.x-nav .change_box a').click(function(){
|
||||
// 样式切换
|
||||
$('.x-nav .change_box a').removeClass('actived');
|
||||
$(this).addClass('actived');
|
||||
// 页面切换
|
||||
var id = $(this).attr('data-id');
|
||||
if(id == "1") location.href = '/log/scan_admin';
|
||||
if(id == "2") location.href = '/log/scan_admin_add';
|
||||
});
|
||||
|
||||
//监听提交
|
||||
$('.submit').click(function (data) {
|
||||
// 获取和拼装添加代理的数据
|
||||
var query = new Object();
|
||||
query.appid = $('#L_username').val();
|
||||
query.pass = $('#L_pass').val();
|
||||
query.repass = $('#L_repass').val();
|
||||
query.name = $('#L_name').val();
|
||||
query.remake = $('#L_remake').val();
|
||||
|
||||
// 验证数据
|
||||
if(query.appid.length == 0){
|
||||
layer.alert("请填写账号!");
|
||||
return false;
|
||||
}
|
||||
if(query.pass.length <= 0){
|
||||
layer.alert("请填写密码!");
|
||||
return false;
|
||||
}
|
||||
if(query.pass.length > 0 && query.pass.length < 6){
|
||||
layer.alert("密码长度为6到16个字符!");
|
||||
return false;
|
||||
}
|
||||
if(query.pass != query.repass){
|
||||
layer.alert("两次密码不一致!");
|
||||
return false;
|
||||
}
|
||||
if(query.name.length <= 0){
|
||||
layer.alert("请填写名称!");
|
||||
return false;
|
||||
}
|
||||
// console.log(query);return false;
|
||||
|
||||
// 发送数据到后台添加会员
|
||||
var result = ajax('/log/do_scan_admin_add',query);
|
||||
if(result.code == 1){
|
||||
layer.alert(result.msg, {icon: 6}, function () {
|
||||
location.href = "/log/scan_admin";
|
||||
});
|
||||
}else{
|
||||
layer.alert(result.msg,{icon:2});
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
// AJAX函数封装
|
||||
function ajax(url,query){
|
||||
var returnData = 0;
|
||||
$.ajax({
|
||||
url:url,
|
||||
data:query,
|
||||
type:'POST',
|
||||
dataType:'JSON',
|
||||
async:false,
|
||||
success:function(data){
|
||||
returnData = data;
|
||||
}
|
||||
});
|
||||
return returnData;
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,144 @@
|
||||
{include file="public/header"}
|
||||
<style type="text/css">
|
||||
textarea, input[type="text"], input[type="password"],.uneditable-input{border: 1px solid #ccc;background-color: #fff; }
|
||||
.change_box a{font-size: 14px;padding: 10.5px 10px;}
|
||||
.change_box .actived{border-right:1px solid #e5e5e5;border-left:1px solid #e5e5e5;border-top:1px solid #e5e5e5; position: relative; color: #3daae9; }
|
||||
.change_box .actived:after{content: ""; bottom: -2px; background: #fff; width: 100%; height: 5px; position: absolute; left: 0; }
|
||||
.x-nav{overflow: inherit; } .x-nav .refresh{margin-right: 20px; }
|
||||
.control-group{overflow: hidden; margin-bottom: 15px; padding-bottom: 15px; border-bottom: 1px dotted #dddddd; }
|
||||
.control-label{float: left; padding-top: 3px; width: 160px; text-align: right; font-size: 14px; }
|
||||
.controls{text-align: left; overflow-x: auto; overflow-y: hidden; margin-left: 180px; }
|
||||
.controls input{width: 300px; height: 24px; font-size: 14px; border-radius: 4px; padding-left:6px; }
|
||||
.controls select{width: 300px; height: 24px; font-size: 14px; border-radius: 4px; padding-left:6px; }
|
||||
.controls textarea{width: 400px; height: 90px; border-radius: 4px; } .form-horizontal{margin: 0 10px; }
|
||||
.bottom-buttom{border-top: 1px solid #e5e5e5; margin-top: 20px; background-color: #f5f5f5; padding: 30px 0; }
|
||||
.submit{width: 50px; text-align: center; background-color:#3daae9; color: #fff; padding: 5px 10px; font-size: 16px; border-radius: 4px; cursor:pointer; }
|
||||
</style>
|
||||
<body>
|
||||
<div class="x-nav" style="padding: 0px;">
|
||||
<span class="change_box">
|
||||
<a href="javascript:;" class="list-one" data-id="1">用户列表</a>
|
||||
<a href="javascript:;" class="list-two actived" data-id="2">用户修改</a>
|
||||
</span>
|
||||
<a class="layui-btn layui-btn-small refresh" style="line-height:1.6em;margin-top:3px;float:right"
|
||||
href="javascript:location.replace(location.href);" title="刷新">
|
||||
<i class="layui-icon" style="line-height:30px">ဂ</i></a>
|
||||
</div>
|
||||
<br>
|
||||
<div class="info_from form-horizontal">
|
||||
<div class="control-group">
|
||||
<label class="control-label">appid:</label>
|
||||
<div class="controls">
|
||||
<input id="L_username" name="L_username" type="text" value="{$admin.appid}" readonly maxlength="50" minlength="3" class="required">
|
||||
<span class="help-inline">
|
||||
<font color="red"> * 将会成为您唯一的登入名</font>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">密码:</label>
|
||||
<div class="controls">
|
||||
<input id="L_pass" name="L_pass" type="password" value maxlength="50" minlength="3" class="required">
|
||||
<span class="help-inline">
|
||||
<font color="red"> * 6到16个字符</font>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">确认密码:</label>
|
||||
<div class="controls">
|
||||
<input id="L_repass" name="L_repass" type="password" value maxlength="50" minlength="3" class="required"><span class="help-inline">
|
||||
<font color="red"> * 与密码保持一致</font>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">名称:</label>
|
||||
<div class="controls">
|
||||
<input id="L_name" name="L_name" type="text" value="{$admin.name}" maxlength="50" minlength="3" class="required"><span class="help-inline">
|
||||
<font color="red"> *</font>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label">备注:</label>
|
||||
<div class="controls">
|
||||
<textarea id="L_remake" name="L_remake" type="text" maxlength="50" minlength="3" class="required">{$admin.remake}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom-buttom">
|
||||
<label class="control-label"></label>
|
||||
<div class="controls">
|
||||
<div class='submit'>保存</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 隐藏参数 -->
|
||||
<input type="hidden" id="scan_admin_id" value="{$admin.id}">
|
||||
<script>
|
||||
// 代理列表和添加代理切换
|
||||
$('.x-nav .change_box a').click(function(){
|
||||
// 样式切换
|
||||
$('.x-nav .change_box a').removeClass('actived');
|
||||
$(this).addClass('actived');
|
||||
// 页面切换
|
||||
var id = $(this).attr('data-id');
|
||||
if(id == "1") location.href = '/log/scan_admin';
|
||||
if(id == "2") location.href = '/log/scan_admin_edit';
|
||||
});
|
||||
|
||||
//监听提交
|
||||
$('.submit').click(function () {
|
||||
// 获取和拼装添加代理的数据
|
||||
var query = new Object();
|
||||
query.scan_admin_id = $('#scan_admin_id').val();
|
||||
query.appid = $('#L_username').val();
|
||||
query.pass = $('#L_pass').val();
|
||||
query.repass = $('#L_repass').val();
|
||||
query.name = $('#L_name').val();
|
||||
query.remake = $('#L_remake').val();
|
||||
|
||||
// 验证数据
|
||||
if(query.pass.length > 0){
|
||||
if(query.pass.length >= 6){
|
||||
if(query.pass != query.repass){
|
||||
layer.msg("两次密码不一致!");
|
||||
return false;
|
||||
}
|
||||
}else{
|
||||
layer.msg("密码不能少于6位字符!");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 发送数据到后台添加会员
|
||||
var result = ajax('/log/do_scan_admin_edit',query);
|
||||
if(result.code == 1){
|
||||
layer.alert(result.msg, {icon: 6}, function () {
|
||||
location.href = '/log/scan_admin';
|
||||
});
|
||||
}else{
|
||||
layer.msg(result.msg,{icon:2});
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
// AJAX函数封装
|
||||
function ajax(url,query){
|
||||
var returnData = 0;
|
||||
$.ajax({
|
||||
url:url,
|
||||
data:query,
|
||||
type:'POST',
|
||||
dataType:'JSON',
|
||||
async:false,
|
||||
success:function(data){
|
||||
returnData = data;
|
||||
}
|
||||
});
|
||||
return returnData;
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,162 @@
|
||||
{include file="public/header"}
|
||||
<style>
|
||||
.x-body .layui-row{ margin-top:-10px; line-height:25px; background:#f5f5f5; border-radius:10px; }
|
||||
.x-body .layui-row .xblock button{ margin-top:-20px; }
|
||||
.x-body .layui-form{ margin-top:15px; margin-bottom:12px; }
|
||||
.x-body .layui-form .layui-input-block{ display:inline-block; width:150px; margin-left:0; }
|
||||
.x-body .layui-form .layui-form-item{ display:inline-block; margin-left:0; }
|
||||
.x-body .layui-form .layui-form-item .layui-form-label{ width:48px; }
|
||||
.x-body .layui-form .layui-form-item .layui-input-block{ margin-left:-10px; width:100px; }
|
||||
.x-body .layui-form .layui-form-item .layui-input-block .layui-form-radio i{ margin-right:4px; }
|
||||
.x-body .layui-form .layui-form-item .layui-form-radio{ margin-top:6px; margin-right:-8px; }
|
||||
.layui-input-block dl{ text-align:left; }
|
||||
.x-so{ margin:0; }
|
||||
.x-so input.layui-input{ width:150px; }
|
||||
.x-nav{overflow: inherit; } .x-nav .refresh{margin-right: 20px; }
|
||||
.change_box .actived{border-right:1px solid #e5e5e5;border-left:1px solid #e5e5e5;border-top:1px solid #e5e5e5; position: relative; color: #3daae9; }
|
||||
.change_box .actived:after{content: ""; bottom: -2px; background: #fff; width: 100%; height: 5px; position: absolute; left: 0; }
|
||||
.change_box a{font-size: 14px;padding: 10.5px 10px;}
|
||||
</style>
|
||||
<body>
|
||||
<div class="x-nav" style="padding: 0px;">
|
||||
<span class="change_box">
|
||||
<a href="javascript:;" class="list-one actived" data-id="1">用户登录日志列表</a>
|
||||
<!--<a href="javascript:;" class="list-two" data-id="2">添加代理</a>-->
|
||||
</span>
|
||||
<a class="layui-btn layui-btn-small refresh" style="line-height:1.6em;margin-top:3px;float:right"
|
||||
href="javascript:location.replace(location.href);" title="刷新">
|
||||
<i class="layui-icon" style="line-height:30px">ဂ</i></a>
|
||||
</div>
|
||||
<br>
|
||||
<div class="x-body">
|
||||
<div class="layui-row">
|
||||
<form class="layui-form layui-col-md12 x-so float-left" action="/log/user_login" method="get">
|
||||
<input class="layui-input" placeholder="开始时间" name="startDate" id="start" value="<?php if(isset($get['startDate'])) {echo $get['startDate'];} ?>">
|
||||
<input class="layui-input" placeholder="结束时间" name="endDate" id="end" value="<?php if(isset($get['endDate'])) {echo $get['endDate'];} ?>">
|
||||
<input type="text" name="username" id="username" placeholder="请输入账号" autocomplete="off" class="layui-input" value="<?php if(isset($get['username'])) {echo $get['username'];} ?>">
|
||||
<div class="layui-input-block" >
|
||||
<select name="remark" id="remark">
|
||||
<option value="" selected>请选择操作类型</option>
|
||||
<option value="登录" <?php if(isset($get['remark']) && $get['remark'] == '登录') {echo 'selected';} ?>>登录</option>
|
||||
<option value="退出登录" <?php if(isset($get['remark']) && $get['remark'] == '退出登录') {echo 'selected';} ?>>退出登录</option>
|
||||
<option value="强制退出登录" <?php if(isset($get['remark']) && $get['remark'] == '强制退出登录') {echo 'selected';} ?>>强制退出登录</option>
|
||||
</select>
|
||||
</div>
|
||||
<button class="layui-btn" lay-submit="" lay-filter="sreach"><i class="layui-icon"></i></button>
|
||||
<span class="layui-btn" id="export">导出excel</span>
|
||||
<!-- <span class="layui-btn" id="print">打印</span> -->
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<table class="layui-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>账号</th>
|
||||
<th>姓名</th>
|
||||
<th>IP</th>
|
||||
<th>IP所属国家/地区</th>
|
||||
<th>登录客户端</th>
|
||||
<th>操作类型</th>
|
||||
<th>操作时间</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach name="log_list" item="vo"}
|
||||
<tr>
|
||||
<td>{$vo.username}</td>
|
||||
<td>{$vo.nickname}</td>
|
||||
<td>{$vo.ip}</td>
|
||||
<td>{$vo.ip_location}</td>
|
||||
<td>{$vo.client}</td>
|
||||
<td>{$vo.remark}</td>
|
||||
<td>{$vo.create_time}</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
{$log_list->render()}
|
||||
</div>
|
||||
</body>
|
||||
<script>
|
||||
// 代理列表和添加代理切换
|
||||
$('.x-nav .change_box a').click(function(){
|
||||
// 样式切换
|
||||
$('.x-nav .change_box a').removeClass('actived');
|
||||
$(this).addClass('actived');
|
||||
// 页面切换
|
||||
var id = $(this).attr('data-id');
|
||||
if(id == "1") location.href = '/log/user_login';
|
||||
// if(id == "2") location.href = '/agent/agent_add';
|
||||
});
|
||||
// 时间选择器
|
||||
layui.use('laydate', function () {
|
||||
var laydate = layui.laydate;
|
||||
|
||||
// 开始时间
|
||||
laydate.render({
|
||||
elem: '#start',
|
||||
type: 'datetime'
|
||||
});
|
||||
|
||||
// 结束时间
|
||||
laydate.render({
|
||||
elem: '#end',
|
||||
type: 'datetime'
|
||||
});
|
||||
});
|
||||
$('#print').click(function(){
|
||||
var qs = getQueryString();
|
||||
var startDate = qs["startDate"];
|
||||
var endDate = qs["endDate"];
|
||||
var username = qs["username"];
|
||||
var remark = qs["remark"];
|
||||
if(startDate == undefined){
|
||||
startDate = '';
|
||||
}
|
||||
if(endDate == undefined){
|
||||
endDate = '';
|
||||
}
|
||||
if(username == undefined){
|
||||
username = '';
|
||||
}
|
||||
if(remark == undefined){
|
||||
remark = '';
|
||||
}
|
||||
layer.open({
|
||||
type: 2,
|
||||
title:'用户登录日志列表打印',
|
||||
content: '/log/user_login_print?startDate='+startDate+'&endDate='+endDate+'&username='+username+'&remark='+remark,
|
||||
area: ['95%', '95%']
|
||||
});
|
||||
});
|
||||
function getQueryString() {
|
||||
var qs = location.search.substr(1), // 获取url中"?"符后的字串
|
||||
args = {}, // 保存参数数据的对象
|
||||
items = qs.length ? qs.split("&") : [], // 取得每一个参数项,
|
||||
item = null,
|
||||
len = items.length;
|
||||
|
||||
for(var i = 0; i < len; i++) {
|
||||
item = items[i].split("=");
|
||||
var name = decodeURIComponent(item[0]),
|
||||
value = decodeURIComponent(item[1]);
|
||||
if(name) {
|
||||
args[name] = value;
|
||||
}
|
||||
}
|
||||
return args;
|
||||
}
|
||||
|
||||
// 导出excel
|
||||
$('#export').click(function(){
|
||||
var startDate = $('#start').val();
|
||||
var endDate = $('#end').val();
|
||||
var username = $('#username').val();
|
||||
var remark = $('#remark').val();
|
||||
layer.confirm('确定导出 excel 吗?',function(index){
|
||||
location.href = "/log/user_login?export=1&&startDate="+startDate+"&&endDate="+endDate+"&&username="+username+"&remark="+remark;
|
||||
layer.close(index);
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</html>
|
||||
@@ -0,0 +1,34 @@
|
||||
{include file="public/header"}
|
||||
<body>
|
||||
<div class="x-body">
|
||||
<div class="layui-btn no-print" onclick="jQuery('html').print()">打印</div>
|
||||
<table class="layui-table">
|
||||
<div style="text-align: center;font-size: 18px;font-weight:bold;">用户登录列表</div>
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="text-align: center;">账号</th>
|
||||
<th style="text-align: center;">姓名</th>
|
||||
<th style="text-align: center;">IP</th>
|
||||
<th style="text-align: center;">IP所属国家/地区</th>
|
||||
<th style="text-align: center;">登录客户端</th>
|
||||
<th style="text-align: center;">操作类型</th>
|
||||
<th style="text-align: center;">操作时间</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach name="log_list" item="vo"}
|
||||
<tr>
|
||||
<td>{$vo.username}</td>
|
||||
<td>{$vo.nickname}</td>
|
||||
<td>{$vo.ip}</td>
|
||||
<td>{$vo.ip_location}</td>
|
||||
<td>{$vo.client}</td>
|
||||
<td>{$vo.remark}</td>
|
||||
<td>{$vo.create_time}</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,30 @@
|
||||
{include file="public/header"}
|
||||
<body>
|
||||
<div class="x-body">
|
||||
<div class="layui-btn no-print" onclick="jQuery('html').print()">打印</div>
|
||||
<table class="layui-table">
|
||||
<div style="text-align: center;font-size: 18px;font-weight:bold;">操作日志列表</div>
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="text-align: center;">编号</th>
|
||||
<th style="text-align: center;">操作人</th>
|
||||
<th style="text-align: center;">操作类型</th>
|
||||
<th style="text-align: center;">操作描述</th>
|
||||
<th style="text-align: center;">操作时间</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach name="log_list" item="vo"}
|
||||
<tr>
|
||||
<td>{$vo.id}</td>
|
||||
<td>{$vo.username}</td>
|
||||
<td>{$vo.control}</td>
|
||||
<td>{$vo.remake}</td>
|
||||
<td>{$vo.control_time}</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
Reference in New Issue
Block a user