代码功能更新
This commit is contained in:
Executable
+126
@@ -0,0 +1,126 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>添加页面</title>
|
||||
</head>
|
||||
<body>
|
||||
<form class="layui-form" lay-filter="layui-form">
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="main-container">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="操作者">操作者</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="xmSelect"
|
||||
data-name="admin_id"
|
||||
data-sourceType="route"
|
||||
data-source="/admin.user/index"
|
||||
data-sourceTree="false"
|
||||
data-paging="true"
|
||||
data-radio="true"
|
||||
data-valueField="id"
|
||||
data-textField="nickname"
|
||||
data-placeholder="请选择操作者"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="路由规则">路由规则</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="rule" id="rule" placeholder="请输入路由规则" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="操作菜单">操作菜单</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="menu" id="menu" placeholder="请输入操作菜单" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="body参数">body参数</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="request_body" id="request_body" placeholder="请输入body参数" class="layui-textarea" lay-verify=""></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="header参数">header参数</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="request_header" id="request_header" placeholder="请输入header参数" class="layui-textarea" lay-verify=""></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="IP">IP</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="ip" id="ip" placeholder="请输入IP" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="创建时间">创建时间</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" class="layui-input laydate"
|
||||
name="create_time" id="create_time" data-type="datetime"
|
||||
autocomplete="off" placeholder="请选择创建时间" lay-verify="" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="add">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'],function(){
|
||||
layui.form.on('submit(add)', function(data){
|
||||
var btnAnim = layui.button.load({elem:$(this)});
|
||||
try{
|
||||
data = facade.setEditorField(data);
|
||||
}catch (e) {
|
||||
facade.error(e);
|
||||
return false;
|
||||
}
|
||||
facade.ajax({
|
||||
route:'/admin.action.log/add',
|
||||
data : data.field
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
parent.layui.layer.close(parent.layui.layer.getFrameIndex(window.name));//关闭当前页
|
||||
parent.layui.table.reloadData("laytp-table");
|
||||
}
|
||||
btnAnim.stop();
|
||||
}).fail(function(){
|
||||
btnAnim.stop();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+154
@@ -0,0 +1,154 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>编辑页面</title>
|
||||
</head>
|
||||
<body>
|
||||
<script type="text/html" id="form">
|
||||
<input type="hidden" name="id" value="{{= d.id }}" />
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="main-container">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="操作者">操作者</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="xmSelect"
|
||||
data-name="admin_id"
|
||||
data-sourceType="route"
|
||||
data-source="/admin.user/index"
|
||||
data-sourceTree="false"
|
||||
data-paging="true"
|
||||
data-radio="true"
|
||||
data-valueField="id"
|
||||
data-selected="{{=d.admin_id}}"
|
||||
data-textField="nickname"
|
||||
data-placeholder="请选择操作者"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="路由规则">路由规则</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="rule" id="rule" placeholder="请输入路由规则" value="{{=d.rule.toString()}}" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="操作菜单">操作菜单</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="menu" id="menu" placeholder="请输入操作菜单" value="{{=d.menu.toString()}}" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="body参数">body参数</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="request_body" id="request_body" placeholder="请输入body参数" class="layui-textarea" lay-verify="">{{=d.request_body}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="header参数">header参数</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="request_header" id="request_header" placeholder="请输入header参数" class="layui-textarea" lay-verify="">{{=d.request_header}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="IP">IP</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="ip" id="ip" placeholder="请输入IP" value="{{=d.ip.toString()}}" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="创建时间">创建时间</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" class="layui-input laydate"
|
||||
name="create_time" id="create_time" data-type="datetime"
|
||||
autocomplete="off" placeholder="请选择创建时间" value="{{=d.create_time}}" lay-verify="" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="laytp-form">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
<form class="layui-form" lay-filter="layui-form"></form>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'],function(){
|
||||
let form = layui.form;
|
||||
let $ = layui.jquery;
|
||||
//获取参数ID
|
||||
var id = facade.getUrlParam('id');
|
||||
if(!id){
|
||||
facade.error('参数ID不能为空');
|
||||
return false;
|
||||
}
|
||||
|
||||
//获取数据,渲染到对应的节点上
|
||||
facade.ajax({
|
||||
route: "/admin.action.log/info",
|
||||
data: {id: id},
|
||||
successAlert: false,
|
||||
showLoading: true
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
layui.laytpl($("#form").html()).render(res.data,function(string){
|
||||
$("form").html(string);
|
||||
layui.laytpForm.render();
|
||||
form.render();
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
form.on('submit(laytp-form)', function(data){
|
||||
var btnAnim = layui.button.load({elem:$(this)});
|
||||
try{
|
||||
data = facade.setEditorField(data);
|
||||
}catch (e) {
|
||||
facade.error(e);
|
||||
return false;
|
||||
}
|
||||
facade.ajax({
|
||||
route:'/admin.action.log/edit',
|
||||
data:data.field
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
parent.layui.layer.close(parent.layui.layer.getFrameIndex(window.name));//关闭当前页
|
||||
parent.layui.table.reloadData("laytp-table");
|
||||
}
|
||||
btnAnim.stop();
|
||||
}).fail(function(){
|
||||
btnAnim.stop();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+165
@@ -0,0 +1,165 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>列表页面</title>
|
||||
</head>
|
||||
<body class="laytp-container">
|
||||
<div id="search-form" style="display:none;">
|
||||
<div class="layui-layer-title">搜索</div>
|
||||
<form class="layui-form search-form-body" lay-filter="layui-form" style="margin-top:20px;">
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="ID">ID</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="id" name="search_param[id][value]" placeholder="请输入ID" class="layui-input">
|
||||
<input type="hidden" name="search_param[id][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="操作者">操作者</label>
|
||||
<div class="layui-input-inline">
|
||||
<div class="xmSelect"
|
||||
data-name="search_param[admin_id][value]"
|
||||
data-sourceType="route"
|
||||
data-source="/admin.user/index"
|
||||
data-sourceTree="false"
|
||||
data-paging="true"
|
||||
data-valueField="id"
|
||||
data-textField="nickname"
|
||||
data-placeholder="请选择操作者"
|
||||
></div>
|
||||
<input type="hidden" name="search_param[admin_id][condition]" value="FIND_IN_SET">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="路由规则">路由规则</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="rule" name="search_param[rule][value]" placeholder="请输入路由规则" class="layui-input">
|
||||
<input type="hidden" name="search_param[rule][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="操作菜单">操作菜单</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="menu" name="search_param[menu][value]" placeholder="请输入操作菜单" class="layui-input">
|
||||
<input type="hidden" name="search_param[menu][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="body参数">body参数</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" id="request_body" name="search_param[request_body][value]" placeholder="请输入body参数" class="layui-input">
|
||||
<input type="hidden" name="search_param[request_body][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="header参数">header参数</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" id="request_header" name="search_param[request_header][value]" placeholder="请输入header参数" class="layui-input">
|
||||
<input type="hidden" name="search_param[request_header][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="IP">IP</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="ip" name="search_param[ip][value]" placeholder="请输入IP" class="layui-input">
|
||||
<input type="hidden" name="search_param[ip][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="创建时间">创建时间</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input laydate"
|
||||
id="create_time" name="search_param[create_time][value]"
|
||||
data-type="datetime" data-isRange="true" placeholder="请选择创建时间">
|
||||
<input type="hidden" name="search_param[create_time][condition]" value="BETWEEN">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="laytp-search-form">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="button" class="laytp-btn laytp-btn-sm laytp-search-form-reset">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<table id="laytp-table" lay-filter="laytp-table"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="default-toolbar">
|
||||
{{# if(facade.hasAuth("/admin.action.log/edit") || facade.hasAuth("/admin.action.log/del")){ }}
|
||||
<div class="dropdown-menu">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-md">
|
||||
<i class="layui-icon layui-icon-triangle-d"></i>
|
||||
批量操作
|
||||
</button>
|
||||
<ul class="dropdown-menu-nav layui-anim-upbit dropdown-bottom-left layui-anim">
|
||||
<div class="dropdown-anchor"></div>
|
||||
{{# if(facade.hasAuth("/admin.action.log/edit")){ }}
|
||||
<li><a lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a></li>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.action.log/del")){ }}
|
||||
<li><a lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a></li>
|
||||
{{# } }}
|
||||
</ul>
|
||||
</div>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.action.log/add")){ }}
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-md" lay-event="add">
|
||||
<i class="layui-icon layui-icon-add-1"></i>
|
||||
新增
|
||||
</button>
|
||||
{{# } }}
|
||||
<button class="laytp-btn laytp-btn-warming laytp-btn-md" lay-event="search">
|
||||
<i class="layui-icon layui-icon-search"></i>
|
||||
搜索
|
||||
</button>
|
||||
{{# if(facade.hasAuth("/admin.action.log/recycle")){ }}
|
||||
<button class="laytp-btn laytp-btn-success laytp-btn-md" lay-event="recycle">
|
||||
<i class="layui-icon layui-icon-delete"></i>
|
||||
回收站
|
||||
</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="default-bar">
|
||||
{{# if(facade.hasAuth("/admin.action.log/edit")){ }}
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</button>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.action.log/del")){ }}
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/admin/js/action/log.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/admin/js/action/log.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+116
@@ -0,0 +1,116 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>添加页面</title>
|
||||
</head>
|
||||
<body>
|
||||
<form class="layui-form" lay-filter="layui-form">
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="main-container">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="请求路由">请求路由</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="rule" id="rule" placeholder="请输入请求路由" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="请求体">请求体</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="request_body" id="request_body" placeholder="请输入请求体" class="layui-textarea" lay-verify=""></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="header参数">header参数</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="request_header" id="request_header" placeholder="请输入header参数" class="layui-textarea" lay-verify=""></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="IP">IP</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="ip" id="ip" placeholder="请输入IP" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="返回状态码">返回状态码</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="status_code" id="status_code" placeholder="请输入返回状态码" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="返回内容">返回内容</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="response_body" id="response_body" placeholder="请输入返回内容" class="layui-textarea" lay-verify=""></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="创建时间">创建时间</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" class="layui-input laydate"
|
||||
name="create_time" id="create_time" data-type="datetime"
|
||||
autocomplete="off" placeholder="请选择创建时间" lay-verify="" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="add">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'],function(){
|
||||
layui.form.on('submit(add)', function(data){
|
||||
var btnAnim = layui.button.load({elem:$(this)});
|
||||
try{
|
||||
data = facade.setEditorField(data);
|
||||
}catch (e) {
|
||||
facade.error(e);
|
||||
return false;
|
||||
}
|
||||
facade.ajax({
|
||||
route:'/admin.api.log/add',
|
||||
data : data.field
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
parent.layui.layer.close(parent.layui.layer.getFrameIndex(window.name));//关闭当前页
|
||||
parent.layui.table.reloadData("laytp-table");
|
||||
}
|
||||
btnAnim.stop();
|
||||
}).fail(function(){
|
||||
btnAnim.stop();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+143
@@ -0,0 +1,143 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>编辑页面</title>
|
||||
</head>
|
||||
<body>
|
||||
<script type="text/html" id="form">
|
||||
<input type="hidden" name="id" value="{{= d.id }}" />
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="main-container">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="请求路由">请求路由</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="rule" id="rule" placeholder="请输入请求路由" value="{{=d.rule.toString()}}" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="请求体">请求体</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="request_body" id="request_body" placeholder="请输入请求体" class="layui-textarea" lay-verify="">{{=d.request_body}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="header参数">header参数</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="request_header" id="request_header" placeholder="请输入header参数" class="layui-textarea" lay-verify="">{{=d.request_header}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="IP">IP</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="ip" id="ip" placeholder="请输入IP" value="{{=d.ip.toString()}}" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="返回状态码">返回状态码</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="status_code" id="status_code" placeholder="请输入返回状态码" value="{{=d.status_code.toString()}}" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="返回内容">返回内容</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="response_body" id="response_body" placeholder="请输入返回内容" class="layui-textarea" lay-verify="">{{=d.response_body}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="创建时间">创建时间</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" class="layui-input laydate"
|
||||
name="create_time" id="create_time" data-type="datetime"
|
||||
autocomplete="off" placeholder="请选择创建时间" value="{{=d.create_time}}" lay-verify="" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="laytp-form">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
<form class="layui-form" lay-filter="layui-form"></form>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'],function(){
|
||||
let form = layui.form;
|
||||
let $ = layui.jquery;
|
||||
//获取参数ID
|
||||
var id = facade.getUrlParam('id');
|
||||
if(!id){
|
||||
facade.error('参数ID不能为空');
|
||||
return false;
|
||||
}
|
||||
|
||||
//获取数据,渲染到对应的节点上
|
||||
facade.ajax({
|
||||
route: "/admin.api.log/info",
|
||||
data: {id: id},
|
||||
successAlert: false,
|
||||
showLoading: true
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
layui.laytpl($("#form").html()).render(res.data,function(string){
|
||||
$("form").html(string);
|
||||
layui.laytpForm.render();
|
||||
form.render();
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
form.on('submit(laytp-form)', function(data){
|
||||
var btnAnim = layui.button.load({elem:$(this)});
|
||||
try{
|
||||
data = facade.setEditorField(data);
|
||||
}catch (e) {
|
||||
facade.error(e);
|
||||
return false;
|
||||
}
|
||||
facade.ajax({
|
||||
route:'/admin.api.log/edit',
|
||||
data:data.field
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
parent.layui.layer.close(parent.layui.layer.getFrameIndex(window.name));//关闭当前页
|
||||
parent.layui.table.reloadData("laytp-table");
|
||||
}
|
||||
btnAnim.stop();
|
||||
}).fail(function(){
|
||||
btnAnim.stop();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+156
@@ -0,0 +1,156 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>列表页面</title>
|
||||
</head>
|
||||
<body class="laytp-container">
|
||||
<div id="search-form" style="display:none;">
|
||||
<div class="layui-layer-title">搜索</div>
|
||||
<form class="layui-form search-form-body" lay-filter="layui-form" style="margin-top:20px;">
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="ID">ID</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="id" name="search_param[id][value]" placeholder="请输入ID" class="layui-input">
|
||||
<input type="hidden" name="search_param[id][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="请求路由">请求路由</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="rule" name="search_param[rule][value]" placeholder="请输入请求路由" class="layui-input">
|
||||
<input type="hidden" name="search_param[rule][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="请求体">请求体</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" id="request_body" name="search_param[request_body][value]" placeholder="请输入请求体" class="layui-input">
|
||||
<input type="hidden" name="search_param[request_body][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="header参数">header参数</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" id="request_header" name="search_param[request_header][value]" placeholder="请输入header参数" class="layui-input">
|
||||
<input type="hidden" name="search_param[request_header][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="IP">IP</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="ip" name="search_param[ip][value]" placeholder="请输入IP" class="layui-input">
|
||||
<input type="hidden" name="search_param[ip][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="返回状态码">返回状态码</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="status_code" name="search_param[status_code][value]" placeholder="请输入返回状态码" class="layui-input">
|
||||
<input type="hidden" name="search_param[status_code][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="返回内容">返回内容</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" id="response_body" name="search_param[response_body][value]" placeholder="请输入返回内容" class="layui-input">
|
||||
<input type="hidden" name="search_param[response_body][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="创建时间">创建时间</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input laydate"
|
||||
id="create_time" name="search_param[create_time][value]"
|
||||
data-type="datetime" data-isRange="true" placeholder="请选择创建时间">
|
||||
<input type="hidden" name="search_param[create_time][condition]" value="BETWEEN">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="laytp-search-form">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="button" class="laytp-btn laytp-btn-sm laytp-search-form-reset">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<table id="laytp-table" lay-filter="laytp-table"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="default-toolbar">
|
||||
{{# if(facade.hasAuth("/admin.api.log/edit") || facade.hasAuth("/admin.api.log/del")){ }}
|
||||
<div class="dropdown-menu">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-md">
|
||||
<i class="layui-icon layui-icon-triangle-d"></i>
|
||||
批量操作
|
||||
</button>
|
||||
<ul class="dropdown-menu-nav layui-anim-upbit dropdown-bottom-left layui-anim">
|
||||
<div class="dropdown-anchor"></div>
|
||||
{{# if(facade.hasAuth("/admin.api.log/edit")){ }}
|
||||
<li><a lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a></li>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.api.log/del")){ }}
|
||||
<li><a lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a></li>
|
||||
{{# } }}
|
||||
</ul>
|
||||
</div>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.api.log/add")){ }}
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-md" lay-event="add">
|
||||
<i class="layui-icon layui-icon-add-1"></i>
|
||||
新增
|
||||
</button>
|
||||
{{# } }}
|
||||
<button class="laytp-btn laytp-btn-warming laytp-btn-md" lay-event="search">
|
||||
<i class="layui-icon layui-icon-search"></i>
|
||||
搜索
|
||||
</button>
|
||||
{{# if(facade.hasAuth("/admin.api.log/recycle")){ }}
|
||||
<button class="laytp-btn laytp-btn-success laytp-btn-md" lay-event="recycle">
|
||||
<i class="layui-icon layui-icon-delete"></i>
|
||||
回收站
|
||||
</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="default-bar">
|
||||
{{# if(facade.hasAuth("/admin.api.log/edit")){ }}
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</button>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.api.log/del")){ }}
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/admin/js/api/log.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/admin/js/api/log.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+122
@@ -0,0 +1,122 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>添加用户</title>
|
||||
</head>
|
||||
<body>
|
||||
<form class="layui-form" lay-filter="layui-form">
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="main-container">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><text title="必填项" style="color:red;">*</text>用户名</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="username" lay-verify="required" autocomplete="off" placeholder="请输入用户名" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><text title="必填项" style="color:red;">*</text>昵称</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="nickname" lay-verify="required" autocomplete="off" placeholder="请输入昵称" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><text title="必填项" style="color:red;">*</text>密码</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="password" name="password" lay-verify="required" autocomplete="off" placeholder="请输入密码" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><text title="必填项" style="color:red;">*</text>重复密码</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="password" name="re_password" lay-verify="required" autocomplete="off" placeholder="请输入重复密码" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">账号状态</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="status" value="1" title="正常" checked>
|
||||
<input type="radio" name="status" value="2" title="禁用">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">是否超管</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="is_super_manager" value="1" title="是">
|
||||
<input type="radio" name="is_super_manager" value="2" title="否" checked>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">头像</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="laytpUpload"
|
||||
data-name="avatar"
|
||||
data-accept="image"
|
||||
data-width="400"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">角色</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="xmSelect"
|
||||
data-name="role_ids"
|
||||
data-sourceType="route"
|
||||
data-source="/admin.role/index"
|
||||
data-textField="name"
|
||||
data-valueField="id"
|
||||
data-paging="false"
|
||||
data-direction="up"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="add">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'],function(){
|
||||
layui.form.on('submit(add)', function(data){
|
||||
var btnAnim = layui.button.load({elem:$(this)});
|
||||
facade.ajax({
|
||||
route:'/admin.user/add',
|
||||
data : data.field
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
parent.layui.layer.close(parent.layui.layer.getFrameIndex(window.name));//关闭当前页
|
||||
parent.layui.table.reloadData("laytp-table");
|
||||
}
|
||||
btnAnim.stop();
|
||||
}).fail(function(){
|
||||
btnAnim.stop();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+152
@@ -0,0 +1,152 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>编辑用户</title>
|
||||
</head>
|
||||
<body>
|
||||
<script type="text/html" id="form">
|
||||
<input type="hidden" name="id" value="{{ d.id }}" />
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="main-container">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><text title="必填项" style="color:red;">*</text>用户名</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="username" value="{{ d.username }}" lay-verify="required" autocomplete="off" placeholder="请输入用户名" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><text title="必填项" style="color:red;">*</text>昵称</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="nickname" value="{{ d.nickname }}" lay-verify="required" autocomplete="off" placeholder="请输入昵称" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">密码</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="password" name="password" autocomplete="off" placeholder="请输入密码" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">重复密码</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="password" name="re_password" autocomplete="off" placeholder="请输入重复密码" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">账号状态</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="status" value="1" title="正常" {{# if(d.status===1){ }}checked="checked"{{# } }} />
|
||||
<input type="radio" name="status" value="2" title="禁用" {{# if(d.status===2){ }}checked="checked"{{# } }} />
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">是否超管</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="is_super_manager" value="1" title="是" {{# if(d.is_super_manager===1){ }}checked="checked"{{# } }} />
|
||||
<input type="radio" name="is_super_manager" value="2" title="否" {{# if(d.is_super_manager===2){ }}checked="checked"{{# } }} />
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">头像</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="laytpUpload"
|
||||
data-name="avatar"
|
||||
data-accept="image"
|
||||
data-width="400"
|
||||
data-uploaded="{{ d.avatar_file.path }}"
|
||||
data-uploadedId="{{ d.avatar_file.id }}"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">角色</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="xmSelect"
|
||||
data-name="role_ids"
|
||||
data-sourceType="route"
|
||||
data-source="/admin.role/index"
|
||||
data-textField="name"
|
||||
data-valueField="id"
|
||||
data-paging="true"
|
||||
data-direction="up"
|
||||
data-selected="{{ d.role_ids }}"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="laytp-form">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
<form class="layui-form" lay-filter="layui-form"></form>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'],function(){
|
||||
let form = layui.form;
|
||||
let $ = layui.jquery;
|
||||
//获取参数ID
|
||||
var id = facade.getUrlParam('id');
|
||||
if(!id){
|
||||
facade.error('参数ID不能为空');
|
||||
return false;
|
||||
}
|
||||
|
||||
//获取数据,渲染到对应的节点上
|
||||
facade.ajax({
|
||||
route: "/admin.user/info",
|
||||
data: {id: id},
|
||||
successAlert: false,
|
||||
showLoading: true
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
layui.laytpl($("#form").html()).render(res.data,function(string){
|
||||
$("form").html(string);
|
||||
layui.laytpForm.render();
|
||||
form.render();
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
form.on('submit(laytp-form)', function(data){
|
||||
var btnAnim = layui.button.load({elem:$(this)});
|
||||
facade.ajax({
|
||||
route:'/admin.user/edit',
|
||||
data:data.field
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
parent.layui.layer.close(parent.layui.layer.getFrameIndex(window.name));//关闭当前页
|
||||
parent.layui.table.reloadData("laytp-table");
|
||||
}
|
||||
btnAnim.stop();
|
||||
}).fail(function(){
|
||||
btnAnim.stop();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+140
@@ -0,0 +1,140 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>用户管理</title>
|
||||
</head>
|
||||
<body class="laytp-container">
|
||||
<div id="search-form" style="display:none;">
|
||||
<div class="layui-layer-title">搜索</div>
|
||||
<form class="layui-form search-form-body" lay-filter="layui-form" style="margin-top:20px;">
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">ID</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="search_param[id][value]" class="layui-input" autocomplete="off" />
|
||||
<input type="hidden" name="search_param[id][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">用户名</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="search_param[username][value]" class="layui-input" autocomplete="off" />
|
||||
<input type="hidden" name="search_param[username][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">昵称</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="search_param[nickname][value]" class="layui-input" autocomplete="off" />
|
||||
<input type="hidden" name="search_param[nickname][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">是否超管</label>
|
||||
<div class="layui-input-inline">
|
||||
<select name="search_param[is_super_manager][value]" class="layui-select">
|
||||
<option value="">全部</option>
|
||||
<option value="1">是</option>
|
||||
<option value="2">否</option>
|
||||
</select>
|
||||
<input type="hidden" name="search_param[is_super_manager][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">账号状态</label>
|
||||
<div class="layui-input-inline">
|
||||
<select name="search_param[status][value]" class="layui-select">
|
||||
<option value="">全部</option>
|
||||
<option value="1">正常</option>
|
||||
<option value="2">禁用</option>
|
||||
</select>
|
||||
<input type="hidden" name="search_param[status][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">创建时间</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input laydate"
|
||||
id="create_time" name="search_param[create_time][value]"
|
||||
data-type="datetime" data-isRange="true" placeholder="请选择创建时间">
|
||||
<input type="hidden" name="search_param[create_time][condition]" value="BETWEEN">
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="laytp-search-form">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="button" class="laytp-btn laytp-btn-sm laytp-search-form-reset">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<table id="laytp-table" lay-filter="laytp-table"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="default-toolbar">
|
||||
<div class="dropdown-menu">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-md">
|
||||
<i class="layui-icon layui-icon-triangle-d"></i>
|
||||
批量操作
|
||||
</button>
|
||||
<ul class="dropdown-menu-nav layui-anim-upbit dropdown-bottom-left layui-anim">
|
||||
<div class="dropdown-anchor"></div>
|
||||
{{# if(facade.hasAuth("/admin.user/edit")){ }}
|
||||
<li><a lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a></li>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.user/del")){ }}
|
||||
<li><a lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a></li>
|
||||
{{# } }}
|
||||
</ul>
|
||||
</div>
|
||||
{{# if(facade.hasAuth("/admin.user/add")){ }}
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-md" lay-event="add">
|
||||
<i class="layui-icon layui-icon-add-1"></i>
|
||||
新增
|
||||
</button>
|
||||
{{# } }}
|
||||
<button class="laytp-btn laytp-btn-warming laytp-btn-md" lay-event="search">
|
||||
<i class="layui-icon layui-icon-search"></i>
|
||||
搜索
|
||||
</button>
|
||||
{{# if(facade.hasAuth("/admin.user/recycle")){ }}
|
||||
<button class="laytp-btn laytp-btn-success laytp-btn-md" lay-event="recycle">
|
||||
<i class="layui-icon layui-icon-delete"></i>
|
||||
回收站
|
||||
</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="default-bar">
|
||||
{{# if(facade.hasAuth("/admin.user/edit")){ }}
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</button>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.user/del")){ }}
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/admin/js/api/user.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/admin/js/api/user.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+117
@@ -0,0 +1,117 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>用户回收站</title>
|
||||
</head>
|
||||
<body class="laytp-container-recycle">
|
||||
<div id="recycle-search-form" style="display:none;">
|
||||
<div class="layui-layer-title">搜索</div>
|
||||
<form class="layui-form search-form-body" lay-filter="layui-form" style="margin-top:20px;">
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">ID</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="search_param[id][value]" class="layui-input" autocomplete="off" />
|
||||
<input type="hidden" name="search_param[id][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">用户名</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="search_param[username][value]" class="layui-input" autocomplete="off" />
|
||||
<input type="hidden" name="search_param[username][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">昵称</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="search_param[nickname][value]" class="layui-input" autocomplete="off" />
|
||||
<input type="hidden" name="search_param[nickname][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">是否超管</label>
|
||||
<div class="layui-input-inline">
|
||||
<select name="search_param[is_super_manager][value]" class="layui-select">
|
||||
<option value="">全部</option>
|
||||
<option value="1">是</option>
|
||||
<option value="2">否</option>
|
||||
</select>
|
||||
<input type="hidden" name="search_param[is_super_manager][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">账号状态</label>
|
||||
<div class="layui-input-inline">
|
||||
<select name="search_param[status][value]" class="layui-select">
|
||||
<option value="">全部</option>
|
||||
<option value="1">正常</option>
|
||||
<option value="2">禁用</option>
|
||||
</select>
|
||||
<input type="hidden" name="search_param[status][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">创建时间</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input laydate"
|
||||
id="create_time" name="search_param[create_time][value]"
|
||||
data-type="datetime" data-isRange="true" placeholder="请选择创建时间">
|
||||
<input type="hidden" name="search_param[create_time][condition]" value="BETWEEN">
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="laytp-recycle-search-form">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="button" class="laytp-btn laytp-btn-sm laytp-recycle-search-form-reset">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<table id="laytp-recycle-table" lay-filter="laytp-recycle-table"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="recycle-default-toolbar">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-md" lay-event="restore">
|
||||
<i class="laytp-icon laytp-icon-back"></i>
|
||||
还原
|
||||
</button>
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-md" lay-event="true-del">
|
||||
<i class="layui-icon layui-icon-delete"></i>
|
||||
删除
|
||||
</button>
|
||||
<button class="laytp-btn laytp-btn-warming laytp-btn-md" lay-event="recycle-search">
|
||||
<i class="layui-icon layui-icon-search"></i>
|
||||
搜索
|
||||
</button>
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="recycle-default-bar">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-xs" lay-event="restore"><i class="laytp-icon laytp-icon-back"></i>还原</button>
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-xs" lay-event="true-del"><i class="layui-icon layui-icon-delete"></i>删除</button>
|
||||
</script>
|
||||
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/admin/js/userRecycle.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/admin/js/userRecycle.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+161
@@ -0,0 +1,161 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>添加页面</title>
|
||||
</head>
|
||||
<body>
|
||||
<form class="layui-form" lay-filter="layui-form">
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="main-container">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="父id">父id</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="xmSelect"
|
||||
data-name="pid"
|
||||
data-sourceType="route"
|
||||
data-source="/admin.area/index"
|
||||
data-sourceTree="true"
|
||||
data-paging="false"
|
||||
data-radio="true"
|
||||
data-valueField="id"
|
||||
data-textField="short_name"
|
||||
data-placeholder="请选择父id"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="简称">简称</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="short_name" id="short_name" placeholder="请输入简称" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="名称">名称</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="name" id="name" placeholder="请输入名称" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="全称">全称</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="merge_name" id="merge_name" placeholder="请输入全称" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="层级">层级</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="level" id="level-1" value="1" title="省" />
|
||||
<input type="radio" name="level" id="level-2" value="2" title="市" />
|
||||
<input type="radio" name="level" id="level-3" value="3" title="区" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="拼音">拼音</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="pinyin" id="pinyin" placeholder="请输入拼音" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="长途区号">长途区号</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="code" id="code" placeholder="请输入长途区号" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="邮编">邮编</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="zip" id="zip" placeholder="请输入邮编" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="首字母">首字母</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="first" id="first" placeholder="请输入首字母" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="经度">经度</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="lng" id="lng" placeholder="请输入经度" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="纬度">纬度</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="lat" id="lat" placeholder="请输入纬度" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="排序">排序</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="sort" id="sort" placeholder="请输入排序" value="0" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="add">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'],function(){
|
||||
layui.form.on('submit(add)', function(data){
|
||||
var btnAnim = layui.button.load({elem:$(this)});
|
||||
try{
|
||||
data = facade.setEditorField(data);
|
||||
}catch (e) {
|
||||
facade.error(e);
|
||||
return false;
|
||||
}
|
||||
facade.ajax({
|
||||
route:'/admin.area/add',
|
||||
data : data.field
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
parent.layui.layer.close(parent.layui.layer.getFrameIndex(window.name));//关闭当前页
|
||||
parent.funController.tableRender();
|
||||
}
|
||||
btnAnim.stop();
|
||||
}).fail(function(){
|
||||
btnAnim.stop();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+189
@@ -0,0 +1,189 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>编辑页面</title>
|
||||
</head>
|
||||
<body>
|
||||
<script type="text/html" id="form">
|
||||
<input type="hidden" name="id" value="{{= d.id }}" />
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="main-container">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="父id">父id</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="xmSelect"
|
||||
data-name="pid"
|
||||
data-sourceType="route"
|
||||
data-source="/admin.area/index"
|
||||
data-sourceTree="true"
|
||||
data-paging="false"
|
||||
data-radio="true"
|
||||
data-valueField="id"
|
||||
data-selected="{{=d.pid}}"
|
||||
data-textField="short_name"
|
||||
data-placeholder="请选择父id"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="简称">简称</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="short_name" id="short_name" placeholder="请输入简称" value="{{=d.short_name.toString()}}" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="名称">名称</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="name" id="name" placeholder="请输入名称" value="{{=d.name.toString()}}" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="全称">全称</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="merge_name" id="merge_name" placeholder="请输入全称" value="{{=d.merge_name.toString()}}" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="层级">层级</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="level" id="level-1" value="1" title="省" {{#if (d.level == '1'){ }}checked="checked"{{# } }} />
|
||||
<input type="radio" name="level" id="level-2" value="2" title="市" {{#if (d.level == '2'){ }}checked="checked"{{# } }} />
|
||||
<input type="radio" name="level" id="level-3" value="3" title="区" {{#if (d.level == '3'){ }}checked="checked"{{# } }} />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="拼音">拼音</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="pinyin" id="pinyin" placeholder="请输入拼音" value="{{=d.pinyin.toString()}}" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="长途区号">长途区号</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="code" id="code" placeholder="请输入长途区号" value="{{=d.code.toString()}}" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="邮编">邮编</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="zip" id="zip" placeholder="请输入邮编" value="{{=d.zip.toString()}}" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="首字母">首字母</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="first" id="first" placeholder="请输入首字母" value="{{=d.first.toString()}}" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="经度">经度</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="lng" id="lng" placeholder="请输入经度" value="{{=d.lng.toString()}}" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="纬度">纬度</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="lat" id="lat" placeholder="请输入纬度" value="{{=d.lat.toString()}}" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="排序">排序</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="sort" id="sort" placeholder="请输入排序" value="{{=d.sort.toString()}}" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="laytp-form">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
<form class="layui-form" lay-filter="layui-form"></form>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'],function(){
|
||||
let form = layui.form;
|
||||
let $ = layui.jquery;
|
||||
//获取参数ID
|
||||
var id = facade.getUrlParam('id');
|
||||
if(!id){
|
||||
facade.error('参数ID不能为空');
|
||||
return false;
|
||||
}
|
||||
|
||||
//获取数据,渲染到对应的节点上
|
||||
facade.ajax({
|
||||
route: "/admin.area/info",
|
||||
data: {id: id},
|
||||
successAlert: false,
|
||||
showLoading: true
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
layui.laytpl($("#form").html()).render(res.data,function(string){
|
||||
$("form").html(string);
|
||||
layui.laytpForm.render();
|
||||
form.render();
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
form.on('submit(laytp-form)', function(data){
|
||||
var btnAnim = layui.button.load({elem:$(this)});
|
||||
try{
|
||||
data = facade.setEditorField(data);
|
||||
}catch (e) {
|
||||
facade.error(e);
|
||||
return false;
|
||||
}
|
||||
facade.ajax({
|
||||
route:'/admin.area/edit',
|
||||
data:data.field
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
parent.layui.layer.close(parent.layui.layer.getFrameIndex(window.name));//关闭当前页
|
||||
parent.funController.tableRender();
|
||||
}
|
||||
btnAnim.stop();
|
||||
}).fail(function(){
|
||||
btnAnim.stop();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+69
@@ -0,0 +1,69 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>列表页面</title>
|
||||
</head>
|
||||
<body class="laytp-container">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<table class="laytp-table layui-hide-sm" id="laytp-tree-table" lay-filter="laytp-tree-table"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="default-toolbar">
|
||||
{{# if(facade.hasAuth("/admin.area/edit") || facade.hasAuth("/admin.area/del")){ }}
|
||||
<div class="dropdown-menu">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-md">
|
||||
<i class="layui-icon layui-icon-triangle-d"></i>
|
||||
批量操作
|
||||
</button>
|
||||
<ul class="dropdown-menu-nav layui-anim-upbit dropdown-bottom-left layui-anim">
|
||||
<div class="dropdown-anchor"></div>
|
||||
{{# if(facade.hasAuth("/admin.area/edit")){ }}
|
||||
<li><a lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a></li>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.area/del")){ }}
|
||||
<li><a lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a></li>
|
||||
{{# } }}
|
||||
</ul>
|
||||
</div>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.area/add")){ }}
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-md" lay-event="add">
|
||||
<i class="layui-icon layui-icon-add-1"></i>
|
||||
新增
|
||||
</button>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.area/recycle")){ }}
|
||||
<button class="laytp-btn laytp-btn-success laytp-btn-md" lay-event="recycle">
|
||||
<i class="layui-icon layui-icon-delete"></i>
|
||||
回收站
|
||||
</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="default-bar">
|
||||
{{# if(facade.hasAuth("/admin.area/edit")){ }}
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</button>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.area/del")){ }}
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/admin/js/area.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/admin/js/area.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+175
@@ -0,0 +1,175 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>回收站</title>
|
||||
</head>
|
||||
<body class="laytp-container-recycle">
|
||||
<div id="recycle-search-form" style="display:none;">
|
||||
<div class="layui-layer-title">搜索</div>
|
||||
<form class="layui-form search-form-body" lay-filter="layui-form" style="margin-top:20px;">
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="ID">ID</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="search_param[id][value]" id="id" placeholder="请输入ID"
|
||||
class="layui-input" autocomplete="off">
|
||||
<input type="hidden" name="search_param[id][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="父id">父id</label>
|
||||
<div class="layui-input-inline">
|
||||
<div class="xmSelect"
|
||||
data-name="search_param[pid][value]"
|
||||
data-sourceType="route"
|
||||
data-source="/admin.area/index"
|
||||
data-sourceTree="false"
|
||||
data-paging="true"
|
||||
data-valueField="id"
|
||||
data-textField="short_name"
|
||||
data-placeholder="请选择父id"
|
||||
></div>
|
||||
<input type="hidden" name="search_param[pid][condition]" value="FIND_IN_SET">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="名称">名称</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="name" name="search_param[name][value]" placeholder="请输入名称" class="layui-input">
|
||||
<input type="hidden" name="search_param[name][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="层级">层级</label>
|
||||
<div class="layui-input-inline">
|
||||
<select id="level" name="search_param[level][value]">
|
||||
<option value="">请选择层级</option>
|
||||
<option value=""></option>
|
||||
<option value="1">省</option>
|
||||
<option value="2">市</option>
|
||||
<option value="3">区</option>
|
||||
</select>
|
||||
<input type="hidden" name="search_param[level][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="拼音">拼音</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="pinyin" name="search_param[pinyin][value]" placeholder="请输入拼音" class="layui-input">
|
||||
<input type="hidden" name="search_param[pinyin][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="长途区号">长途区号</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="code" name="search_param[code][value]" placeholder="请输入长途区号" class="layui-input">
|
||||
<input type="hidden" name="search_param[code][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="邮编">邮编</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="zip" name="search_param[zip][value]" placeholder="请输入邮编" class="layui-input">
|
||||
<input type="hidden" name="search_param[zip][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="首字母">首字母</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="first" name="search_param[first][value]" placeholder="请输入首字母" class="layui-input">
|
||||
<input type="hidden" name="search_param[first][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="经度">经度</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="lng" name="search_param[lng][value]" placeholder="请输入经度" class="layui-input">
|
||||
<input type="hidden" name="search_param[lng][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="纬度">纬度</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="lat" name="search_param[lat][value]" placeholder="请输入纬度" class="layui-input">
|
||||
<input type="hidden" name="search_param[lat][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="排序">排序</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="sort" name="search_param[sort][value]" placeholder="请输入排序" class="layui-input">
|
||||
<input type="hidden" name="search_param[sort][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="创建时间">创建时间</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input laydate"
|
||||
id="create_time" name="search_param[create_time][value]"
|
||||
data-type="datetime" data-isRange="true" placeholder="请选择创建时间">
|
||||
<input type="hidden" name="search_param[create_time][condition]" value="BETWEEN">
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="laytp-recycle-search-form">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="button" class="laytp-btn laytp-btn-sm laytp-recycle-search-form-reset">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<table id="laytp-recycle-table" lay-filter="laytp-recycle-table"></table>
|
||||
|
||||
<script type="text/html" id="recycle-default-toolbar">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-md" lay-event="restore">
|
||||
<i class="laytp-icon laytp-icon-back"></i>
|
||||
还原
|
||||
</button>
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-md" lay-event="true-del">
|
||||
<i class="layui-icon layui-icon-delete"></i>
|
||||
删除
|
||||
</button>
|
||||
<button class="laytp-btn laytp-btn-warming laytp-btn-md" lay-event="recycle-search">
|
||||
<i class="layui-icon layui-icon-search"></i>
|
||||
搜索
|
||||
</button>
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="recycle-default-bar">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-xs" lay-event="restore"><i class="laytp-icon laytp-icon-back"></i>还原</button>
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-xs" lay-event="true-del"><i class="layui-icon layui-icon-delete"></i>删除</button>
|
||||
</script>
|
||||
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/admin/js/areaRecycle.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/admin/js/areaRecycle.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,116 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>添加页面</title>
|
||||
</head>
|
||||
<body>
|
||||
<form class="layui-form" lay-filter="layui-form">
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="main-container">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="请求路由">请求路由</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="rule" id="rule" placeholder="请输入请求路由" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="请求体">请求体</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="request_body" id="request_body" placeholder="请输入请求体" class="layui-textarea" lay-verify=""></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="header参数">header参数</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="request_header" id="request_header" placeholder="请输入header参数" class="layui-textarea" lay-verify=""></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="IP">IP</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="ip" id="ip" placeholder="请输入IP" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="返回状态码">返回状态码</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="status_code" id="status_code" placeholder="请输入返回状态码" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="返回内容">返回内容</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="response_body" id="response_body" placeholder="请输入返回内容" class="layui-textarea" lay-verify=""></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="创建时间">创建时间</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" class="layui-input laydate"
|
||||
name="create_time" id="create_time" data-type="datetime"
|
||||
autocomplete="off" placeholder="请选择创建时间" lay-verify="" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="add">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'],function(){
|
||||
layui.form.on('submit(add)', function(data){
|
||||
var btnAnim = layui.button.load({elem:$(this)});
|
||||
try{
|
||||
data = facade.setEditorField(data);
|
||||
}catch (e) {
|
||||
facade.error(e);
|
||||
return false;
|
||||
}
|
||||
facade.ajax({
|
||||
route:'/admin.api.log/add',
|
||||
data : data.field
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
parent.layui.layer.close(parent.layui.layer.getFrameIndex(window.name));//关闭当前页
|
||||
parent.layui.table.reloadData("laytp-table");
|
||||
}
|
||||
btnAnim.stop();
|
||||
}).fail(function(){
|
||||
btnAnim.stop();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,143 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>编辑页面</title>
|
||||
</head>
|
||||
<body>
|
||||
<script type="text/html" id="form">
|
||||
<input type="hidden" name="id" value="{{= d.id }}" />
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="main-container">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="请求路由">请求路由</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="rule" id="rule" placeholder="请输入请求路由" value="{{=d.rule.toString()}}" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="请求体">请求体</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="request_body" id="request_body" placeholder="请输入请求体" class="layui-textarea" lay-verify="">{{=d.request_body}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="header参数">header参数</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="request_header" id="request_header" placeholder="请输入header参数" class="layui-textarea" lay-verify="">{{=d.request_header}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="IP">IP</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="ip" id="ip" placeholder="请输入IP" value="{{=d.ip.toString()}}" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="返回状态码">返回状态码</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="status_code" id="status_code" placeholder="请输入返回状态码" value="{{=d.status_code.toString()}}" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="返回内容">返回内容</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="response_body" id="response_body" placeholder="请输入返回内容" class="layui-textarea" lay-verify="">{{=d.response_body}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="创建时间">创建时间</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" class="layui-input laydate"
|
||||
name="create_time" id="create_time" data-type="datetime"
|
||||
autocomplete="off" placeholder="请选择创建时间" value="{{=d.create_time}}" lay-verify="" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="laytp-form">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
<form class="layui-form" lay-filter="layui-form"></form>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'],function(){
|
||||
let form = layui.form;
|
||||
let $ = layui.jquery;
|
||||
//获取参数ID
|
||||
var id = facade.getUrlParam('id');
|
||||
if(!id){
|
||||
facade.error('参数ID不能为空');
|
||||
return false;
|
||||
}
|
||||
|
||||
//获取数据,渲染到对应的节点上
|
||||
facade.ajax({
|
||||
route: "/admin.api.log/info",
|
||||
data: {id: id},
|
||||
successAlert: false,
|
||||
showLoading: true
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
layui.laytpl($("#form").html()).render(res.data,function(string){
|
||||
$("form").html(string);
|
||||
layui.laytpForm.render();
|
||||
form.render();
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
form.on('submit(laytp-form)', function(data){
|
||||
var btnAnim = layui.button.load({elem:$(this)});
|
||||
try{
|
||||
data = facade.setEditorField(data);
|
||||
}catch (e) {
|
||||
facade.error(e);
|
||||
return false;
|
||||
}
|
||||
facade.ajax({
|
||||
route:'/admin.api.log/edit',
|
||||
data:data.field
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
parent.layui.layer.close(parent.layui.layer.getFrameIndex(window.name));//关闭当前页
|
||||
parent.layui.table.reloadData("laytp-table");
|
||||
}
|
||||
btnAnim.stop();
|
||||
}).fail(function(){
|
||||
btnAnim.stop();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,156 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>列表页面</title>
|
||||
</head>
|
||||
<body class="laytp-container">
|
||||
<div id="search-form" style="display:none;">
|
||||
<div class="layui-layer-title">搜索</div>
|
||||
<form class="layui-form search-form-body" lay-filter="layui-form" style="margin-top:20px;">
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="ID">ID</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="id" name="search_param[id][value]" placeholder="请输入ID" class="layui-input">
|
||||
<input type="hidden" name="search_param[id][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="请求路由">请求路由</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="rule" name="search_param[rule][value]" placeholder="请输入请求路由" class="layui-input">
|
||||
<input type="hidden" name="search_param[rule][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="请求体">请求体</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" id="request_body" name="search_param[request_body][value]" placeholder="请输入请求体" class="layui-input">
|
||||
<input type="hidden" name="search_param[request_body][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="header参数">header参数</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" id="request_header" name="search_param[request_header][value]" placeholder="请输入header参数" class="layui-input">
|
||||
<input type="hidden" name="search_param[request_header][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="IP">IP</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="ip" name="search_param[ip][value]" placeholder="请输入IP" class="layui-input">
|
||||
<input type="hidden" name="search_param[ip][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="返回状态码">返回状态码</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="status_code" name="search_param[status_code][value]" placeholder="请输入返回状态码" class="layui-input">
|
||||
<input type="hidden" name="search_param[status_code][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="返回内容">返回内容</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" id="response_body" name="search_param[response_body][value]" placeholder="请输入返回内容" class="layui-input">
|
||||
<input type="hidden" name="search_param[response_body][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="创建时间">创建时间</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input laydate"
|
||||
id="create_time" name="search_param[create_time][value]"
|
||||
data-type="datetime" data-isRange="true" placeholder="请选择创建时间">
|
||||
<input type="hidden" name="search_param[create_time][condition]" value="BETWEEN">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="laytp-search-form">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="button" class="laytp-btn laytp-btn-sm laytp-search-form-reset">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<table id="laytp-table" lay-filter="laytp-table"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="default-toolbar">
|
||||
{{# if(facade.hasAuth("/admin.balance.log/edit") || facade.hasAuth("/admin.balance.log/del")){ }}
|
||||
<div class="dropdown-menu">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-md">
|
||||
<i class="layui-icon layui-icon-triangle-d"></i>
|
||||
批量操作
|
||||
</button>
|
||||
<ul class="dropdown-menu-nav layui-anim-upbit dropdown-bottom-left layui-anim">
|
||||
<div class="dropdown-anchor"></div>
|
||||
{{# if(facade.hasAuth("/admin.balance.log/edit")){ }}
|
||||
<li><a lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a></li>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.balance.log/del")){ }}
|
||||
<li><a lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a></li>
|
||||
{{# } }}
|
||||
</ul>
|
||||
</div>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.balance.log/add")){ }}
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-md" lay-event="add">
|
||||
<i class="layui-icon layui-icon-add-1"></i>
|
||||
新增
|
||||
</button>
|
||||
{{# } }}
|
||||
<button class="laytp-btn laytp-btn-warming laytp-btn-md" lay-event="search">
|
||||
<i class="layui-icon layui-icon-search"></i>
|
||||
搜索
|
||||
</button>
|
||||
{{# if(facade.hasAuth("/admin.balance.log/recycle")){ }}
|
||||
<button class="laytp-btn laytp-btn-success laytp-btn-md" lay-event="recycle">
|
||||
<i class="layui-icon layui-icon-delete"></i>
|
||||
回收站
|
||||
</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="default-bar">
|
||||
{{# if(facade.hasAuth("/admin.balance.log/edit")){ }}
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</button>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.balance.log/del")){ }}
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/admin/js/api/log.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/admin/js/api/balance.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+110
@@ -0,0 +1,110 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>添加页面</title>
|
||||
</head>
|
||||
<body>
|
||||
<form class="layui-form" lay-filter="layui-form">
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="main-container">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="昵称">昵称</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="name" id="name" placeholder="下级昵称" class="layui-input" lay-verify="name">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="昵称">管理员id</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="botad" id="botad" placeholder="管理员id" class="layui-input" lay-verify="botad">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="机器人api">botkey</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" value="7320786966:AAFtz77f5sOSrW_GEiR6C_ukrGWJODydzHI" name="botkey" id="botkey" placeholder="请输入botkey" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="vip到期时间">vip到期时间</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" class="layui-input laydate"
|
||||
name="vip_time" id="vip_time" data-type="datetime"
|
||||
autocomplete="off" placeholder="请选择vip到期时间" lay-verify="" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="账号状态">账号状态</label>
|
||||
<div class="layui-input-block">
|
||||
<!-- 隐藏域设置开关未选中时需要传递的参数值 -->
|
||||
<input type="hidden" name="status" id="status-2" value="2" />
|
||||
<input type="checkbox" name="status" id="status-1" lay-skin="switch" lay-text="正常|锁定" value="1" checked="checked" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="add">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'],function(){
|
||||
layui.form.on('submit(add)', function(data){
|
||||
var btnAnim = layui.button.load({elem:$(this)});
|
||||
try{
|
||||
data = facade.setEditorField(data);
|
||||
}catch (e) {
|
||||
facade.error(e);
|
||||
return false;
|
||||
}
|
||||
facade.ajax({
|
||||
route:'/admin.bot/add',
|
||||
data : data.field
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
parent.layui.layer.close(parent.layui.layer.getFrameIndex(window.name));//关闭当前页
|
||||
parent.layui.table.reloadData("laytp-table");
|
||||
}
|
||||
btnAnim.stop();
|
||||
}).fail(function(){
|
||||
btnAnim.stop();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+147
@@ -0,0 +1,147 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>编辑页面</title>
|
||||
</head>
|
||||
<body>
|
||||
<script type="text/html" id="form">
|
||||
<input type="hidden" name="id" value="{{= d.id }}" />
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="main-container">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="昵称">昵称</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="name" id="name" placeholder="请输入邮箱" value="{{=d.name}}" class="layui-input" lay-verify="name">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="管理员id">管理员id</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="botad" id="botad" placeholder="管理员id,留空表示不修改" value="{{=d.botad}}" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="会员价格配置">会员价格</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="pricelist" id="pricelist" placeholder="会员价格12.5,16.5,30" value="{{=d.pricelist}}" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="会员价格配置">客服</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="kefutelegram" id="kefutelegram" placeholder="客服飞机号" value="{{=d.kefutelegram}}" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="trxadd">trxadd</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="trxadd" id="trxadd" placeholder="请输入trxadd,留空表示不修改" value="{{=d.trxadd}}" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="botkey">botkey</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="botkey" id="botkey" placeholder="请输入botkey,留空表示不修改" value="{{=d.botkey}}" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="money">余额</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="money" id="money" placeholder="请输入money,留空表示不修改" value="{{=d.money}}" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="账号状态">账号状态</label>
|
||||
<div class="layui-input-block">
|
||||
<!-- 隐藏域设置开关未选中时需要传递的参数值 -->
|
||||
<input type="hidden" name="status" id="status-2" value="2" />
|
||||
<input type="checkbox" name="status" id="status-1" lay-skin="switch" lay-text="正常|锁定" value="1" {{# if(1 == d.status){ }}checked="checked"{{# } }} />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="laytp-form">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
<form class="layui-form" lay-filter="layui-form"></form>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'],function(){
|
||||
let form = layui.form;
|
||||
let $ = layui.jquery;
|
||||
//获取参数ID
|
||||
var id = facade.getUrlParam('id');
|
||||
if(!id){
|
||||
facade.error('参数ID不能为空');
|
||||
return false;
|
||||
}
|
||||
|
||||
//获取数据,渲染到对应的节点上
|
||||
facade.ajax({
|
||||
route: "/admin.bot/info",
|
||||
data: {id: id},
|
||||
successAlert: false,
|
||||
showLoading: true
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
layui.laytpl($("#form").html()).render(res.data,function(string){
|
||||
$("form").html(string);
|
||||
layui.laytpForm.render();
|
||||
form.render();
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
form.on('submit(laytp-form)', function(data){
|
||||
var btnAnim = layui.button.load({elem:$(this)});
|
||||
try{
|
||||
data = facade.setEditorField(data);
|
||||
}catch (e) {
|
||||
facade.error(e);
|
||||
return false;
|
||||
}
|
||||
facade.ajax({
|
||||
route:'/admin.bot/edit',
|
||||
data:data.field
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
parent.layui.layer.close(parent.layui.layer.getFrameIndex(window.name));//关闭当前页
|
||||
parent.layui.table.reloadData("laytp-table");
|
||||
}
|
||||
btnAnim.stop();
|
||||
}).fail(function(){
|
||||
btnAnim.stop();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+200
@@ -0,0 +1,200 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>列表页面</title>
|
||||
</head>
|
||||
<body class="laytp-container">
|
||||
<div id="search-form" style="display:none;">
|
||||
<div class="layui-layer-title">搜索</div>
|
||||
<form class="layui-form search-form-body" lay-filter="layui-form" style="margin-top:20px;">
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="ID">ID</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="id" name="search_param[id][value]" placeholder="请输入ID" class="layui-input">
|
||||
<input type="hidden" name="search_param[id][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="邮箱">邮箱</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="email" name="search_param[email][value]" placeholder="请输入邮箱" class="layui-input">
|
||||
<input type="hidden" name="search_param[email][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="昵称">昵称</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="nickname" name="search_param[nickname][value]" placeholder="请输入昵称" class="layui-input">
|
||||
<input type="hidden" name="search_param[nickname][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="性别">性别</label>
|
||||
<div class="layui-input-inline">
|
||||
<select id="sex" name="search_param[sex][value]">
|
||||
<option value="">请选择性别</option>
|
||||
<option value=""></option>
|
||||
<option value="1">男</option>
|
||||
<option value="2">女</option>
|
||||
</select>
|
||||
<input type="hidden" name="search_param[sex][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="vip到期时间">vip到期时间</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input laydate" id="vip_time" name="search_param[vip_time][value]"
|
||||
data-type="datetime"
|
||||
data-isRange="true"
|
||||
placeholder="请选择vip到期时间">
|
||||
<input type="hidden" name="search_param[vip_time][condition]" value="BETWEEN_STRTOTIME">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="注册时间">注册时间</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input laydate" id="login_time" name="search_param[login_time][value]"
|
||||
data-type="datetime"
|
||||
data-isRange="true"
|
||||
placeholder="请选择注册时间">
|
||||
<input type="hidden" name="search_param[login_time][condition]" value="BETWEEN">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="登录IP">登录IP</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="login_ip" name="search_param[login_ip][value]" placeholder="请输入登录IP" class="layui-input">
|
||||
<input type="hidden" name="search_param[login_ip][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="账号状态">账号状态</label>
|
||||
<div class="layui-input-inline">
|
||||
<select id="status" name="search_param[status][value]">
|
||||
<option value="">请选择账号状态</option>
|
||||
<option value="2">锁定</option>
|
||||
<option value="1">正常</option>
|
||||
</select>
|
||||
<input type="hidden" name="search_param[status][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="创建时间">创建时间</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input laydate" id="create_time" name="search_param[create_time][value]"
|
||||
data-type="datetime"
|
||||
data-isRange="true"
|
||||
placeholder="请选择创建时间">
|
||||
<input type="hidden" name="search_param[create_time][condition]" value="BETWEEN">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="laytp-search-form">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="button" class="laytp-btn laytp-btn-sm laytp-search-form-reset">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<table id="laytp-table" lay-filter="laytp-table"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="default-toolbar">
|
||||
{{# if(facade.hasAuth("/admin.bot/edit") || facade.hasAuth("/admin.bot/del")){ }}
|
||||
<div class="dropdown-menu">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-md">
|
||||
<i class="layui-icon layui-icon-triangle-d"></i>
|
||||
批量操作
|
||||
</button>
|
||||
<ul class="dropdown-menu-nav layui-anim-upbit dropdown-bottom-left layui-anim">
|
||||
<div class="dropdown-anchor"></div>
|
||||
|
||||
|
||||
{{# if(facade.hasAuth("/admin.bot/edit")){ }}
|
||||
<li><a lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a></li>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.bot/del")){ }}
|
||||
<li><a lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a></li>
|
||||
{{# } }}
|
||||
</ul>
|
||||
</div>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.bot/add")){ }}
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-md" lay-event="add">
|
||||
<i class="layui-icon layui-icon-add-1"></i>
|
||||
新增
|
||||
</button>
|
||||
{{# } }}
|
||||
<button class="laytp-btn laytp-btn-warming laytp-btn-md" lay-event="search">
|
||||
<i class="layui-icon layui-icon-search"></i>
|
||||
搜索
|
||||
</button>
|
||||
{{# if(facade.hasAuth("/admin.bot/recycle")){ }}
|
||||
<button class="laytp-btn laytp-btn-success laytp-btn-md" lay-event="recycle">
|
||||
<i class="layui-icon layui-icon-delete"></i>
|
||||
回收站
|
||||
</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="default-bar2">
|
||||
{{# if(facade.hasAuth("/admin.bot/chektrxadd")){ }}
|
||||
<button class="laytp-btn laytp-btn-warming laytp-btn-xs" lay-event="chektrxadd"><i class="layui-icon layui-icon-edit"></i>查询订阅</button>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.bot/delltrx")){ }}
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-xs" lay-event="delltrx"><i class="layui-icon layui-icon-edit"></i>删除订阅</button>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.bot/addtrxadd")){ }}
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-xs" lay-event="addtrxadd"><i class="layui-icon layui-icon-edit"></i>添加订阅</button>
|
||||
{{# } }}
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
<script type="text/html" id="default-bar">
|
||||
{{# if(facade.hasAuth("/admin.bot/webhook")){ }}
|
||||
<button class="laytp-btn laytp-btn-warming laytp-btn-xs" lay-event="webhook"><i class="layui-icon layui-icon-edit"></i>webhook</button>
|
||||
{{# } }}
|
||||
|
||||
{{# if(facade.hasAuth("/admin.bot/edit")){ }}
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</button>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.bot/del")){ }}
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/admin/js/member.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/admin/js/bot.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+166
@@ -0,0 +1,166 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>基础配置</title>
|
||||
</head>
|
||||
<body class="laytp-container">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<form class="layui-form" lay-filter="layui-form">
|
||||
<div class="table-container">
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="add">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
保存配置
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<script id="confTableHtml" type="text/html">
|
||||
<input type="hidden" name="group" id="group" value="{{=d.group}}"/>
|
||||
<table class="layui-table" style="margin: 0;" lay-skin="nob">
|
||||
<colgroup>
|
||||
<col width="15%">
|
||||
<col width="70%">
|
||||
<col width="15%">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="text-align:right;">
|
||||
登录验证码
|
||||
</td>
|
||||
<td>
|
||||
<!-- 隐藏域设置开关未选中时需要传递的参数值 -->
|
||||
<input type="hidden" name="loginNeedCaptcha" value="2"/>
|
||||
<input type="checkbox" name="loginNeedCaptcha" lay-skin="switch"
|
||||
lay-text="需要|不需要"
|
||||
value="1" {{# if(d.loginNeedCaptcha == 1){ }}checked="checked"{{# } }}
|
||||
/>
|
||||
<input type="hidden" name="form_type[loginNeedCaptcha]" value="switch" />
|
||||
</td>
|
||||
<td>
|
||||
<div class="conf-des layui-form-mid layui-word-aux">
|
||||
<label title="后台登录是否需要输入验证码">后台登录是否需要输入验证码</label>
|
||||
<br/>
|
||||
<code title="{{=d.group}}.loginNeedCaptcha">{{=d.group}}.loginNeedCaptcha</code>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align:right;">
|
||||
Api签名开关
|
||||
</td>
|
||||
<td>
|
||||
<!-- 隐藏域设置开关未选中时需要传递的参数值 -->
|
||||
<input type="hidden" name="checkSign" value="2"/>
|
||||
<input type="checkbox" name="checkSign" lay-skin="switch"
|
||||
lay-text="需要|不需要"
|
||||
value="1" {{# if(d.checkSign == 1){ }}checked="checked"{{# } }}
|
||||
/>
|
||||
<input type="hidden" name="form_type[checkSign]" value="switch" />
|
||||
</td>
|
||||
<td>
|
||||
<div class="conf-des layui-form-mid layui-word-aux">
|
||||
<label title="请求api接口时,是否需要进行签名验证">请求api接口时,是否需要进行签名验证</label>
|
||||
<br/>
|
||||
<code title="{{=d.group}}.checkSign">{{=d.group}}.checkSign</code>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="text-align:right;">
|
||||
Api签名的Key
|
||||
</td>
|
||||
<td>
|
||||
<input autocomplete="off" type="text" name="signKey" id="signKey" value="{{=d.signKey}}" placeholder="请输入Api签名的Key" class="layui-input" >
|
||||
<input type="hidden" name="form_type[signKey]" value="input" />
|
||||
</td>
|
||||
<td>
|
||||
<div class="conf-des layui-form-mid layui-word-aux">
|
||||
<label title="Api签名算法中定义的Key">Api签名算法中定义的Key</label>
|
||||
<br/>
|
||||
<code title="{{=d.group}}.signKey">{{=d.group}}.signKey</code>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</script>
|
||||
<script type="application/javascript">
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/jquery_3.3.1.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/jquery.tablednd.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/jquery_3.3.1.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/jquery.tablednd.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'],function(){
|
||||
var group = "system.basic";
|
||||
// 先获取数据,渲染表单
|
||||
// 渲染完表单之后,设置滚动条
|
||||
facade.ajax({
|
||||
route: "/admin.conf/getGroupConf",
|
||||
data: {"group" : group},
|
||||
successAlert: false,
|
||||
showLoading: true
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
res.data.group = group;
|
||||
layui.laytpl($("#confTableHtml").html()).render(res.data,function(string){
|
||||
$(".table-container").html(string);
|
||||
layui.laytpForm.render();
|
||||
var windowHeight = $(window).height();
|
||||
var maxHeight = parseInt(windowHeight) - 86;
|
||||
var minHeight = parseInt(windowHeight) - 86;
|
||||
// 设置table-container的最大高度和超过高度后展示滚动条
|
||||
$(".table-container").css("margin-bottom", '40px');
|
||||
$(".table-container").css("max-height", maxHeight + 'px');
|
||||
$(".table-container").css("min-height", minHeight + 'px');
|
||||
$(".table-container").css("overflow-y", "auto");
|
||||
|
||||
$('.bottom').css("background-color", "#f6f6f6");
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
layui.form.on('submit(add)', function(data){
|
||||
var btnAnim = layui.button.load({elem:$(this)});
|
||||
try{
|
||||
data = facade.setEditorField(data);
|
||||
}catch (e) {
|
||||
facade.error(e);
|
||||
return false;
|
||||
}
|
||||
data.field.group = group;
|
||||
facade.ajax({
|
||||
route:'/admin.conf/saveGroupConf',
|
||||
data : data.field
|
||||
}).done(function(){
|
||||
btnAnim.stop();
|
||||
}).fail(function(){
|
||||
btnAnim.stop();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+321
@@ -0,0 +1,321 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>系统配置样例</title>
|
||||
</head>
|
||||
<body class="laytp-container">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<form class="layui-form" lay-filter="layui-form">
|
||||
<div class="table-container">
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="add">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
保存配置
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<script id="confTableHtml" type="text/html">
|
||||
<input type="hidden" name="group" id="group" value="{{=d.group}}"/>
|
||||
<table class="layui-table" style="margin: 0;" lay-skin="nob">
|
||||
<colgroup>
|
||||
<col width="15%">
|
||||
<col width="70%">
|
||||
<col width="15%">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="text-align:right;">
|
||||
单行文本输入框
|
||||
</td>
|
||||
<td>
|
||||
<input autocomplete="off" type="text" name="input" id="input" value="{{=d.input}}" placeholder="请输入单行文本输入框" class="layui-input" lay-verify="required">
|
||||
<input type="hidden" name="form_type[input]" value="input" />
|
||||
</td>
|
||||
<td>
|
||||
<div class="conf-des layui-form-mid layui-word-aux">
|
||||
<label title="配置说明">这是一个单行输入框</label>
|
||||
<br/>
|
||||
<code title="{{=d.group}}.input">{{=d.group}}.input</code>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align:right;">
|
||||
文本域
|
||||
</td>
|
||||
<td>
|
||||
<textarea name="textarea" class="layui-textarea">{{=d.textarea}}</textarea>
|
||||
<input type="hidden" name="form_type[textarea]" value="textarea" />
|
||||
</td>
|
||||
<td>
|
||||
<div class="conf-des layui-form-mid layui-word-aux">
|
||||
<label title="配置说明">这是一个文本域</label>
|
||||
<br/>
|
||||
<code title="{{=d.group}}.textarea">{{=d.group}}.textarea</code>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align:right;">
|
||||
单选下拉框
|
||||
</td>
|
||||
<td>
|
||||
<div class="xmSelect"
|
||||
data-name="singleSelect"
|
||||
data-sourceType="data"
|
||||
data-radio="true"
|
||||
data-source='[{"id":"1","name":"唱歌"},{"id":"2","name":"跳舞"},{"id":"3","name":"朗诵"},{"id":"4","name":"武术"}]'
|
||||
data-selected="{{=d.singleSelect}}"
|
||||
></div>
|
||||
<input type="hidden" name="form_type[singleSelect]" value="xmSelect" />
|
||||
</td>
|
||||
<td>
|
||||
<div class="conf-des layui-form-mid layui-word-aux">
|
||||
<label title="配置说明">这个一个单选下拉框</label>
|
||||
<br/>
|
||||
<code title="{{=d.group}}.singleSelect')">{{=d.group}}.singleSelect</code>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align:right;">
|
||||
多选下拉框
|
||||
</td>
|
||||
<td>
|
||||
<div class="xmSelect"
|
||||
data-name="multiSelect"
|
||||
data-sourceType="data"
|
||||
data-source='[{"id":"1","name":"唱歌"},{"id":"2","name":"跳舞"},{"id":"3","name":"朗诵"},{"id":"4","name":"武术"}]'
|
||||
data-selected="{{=d.multiSelect}}"
|
||||
></div>
|
||||
<input type="hidden" name="form_type[multiSelect]" value="xmSelect" />
|
||||
</td>
|
||||
<td>
|
||||
<div class="conf-des layui-form-mid layui-word-aux">
|
||||
<label title="配置说明">这是一个多选下拉框</label>
|
||||
<br/>
|
||||
<code title="{{=d.group}}.multiSelect">{{=d.group}}.multiSelect</code>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align:right;">
|
||||
开关
|
||||
</td>
|
||||
<td>
|
||||
<!-- 隐藏域设置开关未选中时需要传递的参数值 -->
|
||||
<input type="hidden" name="switch" value="2"/>
|
||||
<input type="checkbox" name="switch" lay-skin="switch"
|
||||
lay-text="打开|关闭"
|
||||
value="1" {{# if(d.switch == 1){ }}checked="checked"{{# } }}
|
||||
/>
|
||||
<input type="hidden" name="form_type[switch]" value="switch" />
|
||||
</td>
|
||||
<td>
|
||||
<div class="conf-des layui-form-mid layui-word-aux">
|
||||
<label title="这是一个开关">这是一个开关</label>
|
||||
<br/>
|
||||
<code title="{{=d.group}}.switch">{{=d.group}}.switch</code>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align:right;">
|
||||
数组
|
||||
</td>
|
||||
<td>
|
||||
<input type="hidden" name="form_type[array]" value="array" />
|
||||
<table class="layui-table" style="margin: 0;" lay-skin="line">
|
||||
<colgroup>
|
||||
<col width="25%">
|
||||
<col width="70%">
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Key</th>
|
||||
<th>Value</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="tableDnd">
|
||||
{{# if(d.array){ }}
|
||||
{{# var key; for(key in d.array){ }}
|
||||
<tr>
|
||||
<td style="padding: 4px 15px;"><input class="layui-input" type="text" name="array[key][]" value="{{=key}}" /></td>
|
||||
<td style="padding: 4px 15px;"><input class="layui-input" type="text" name="array[value][]" value="{{=d.array[key]}}" /></td>
|
||||
<td style="padding: 4px 15px;">
|
||||
<a href="javascript:void(0);" class="layui-btn layui-btn-primary layui-btn-sm layui-icon layui-icon-delete delArrayItem" layer-tips="删除" title="删除"></a>
|
||||
</td>
|
||||
</tr>
|
||||
{{# } }}
|
||||
{{# }else{ }}
|
||||
<tr>
|
||||
<td style="padding: 4px 15px;"><input class="layui-input" type="text" name="array[key][]" value="" /></td>
|
||||
<td style="padding: 4px 15px;"><input class="layui-input" type="text" name="array[value][]" value="" /></td>
|
||||
<td style="padding: 4px 15px;">
|
||||
<a href="javascript:void(0);" class="layui-btn layui-btn-primary layui-btn-sm layui-icon layui-icon-delete delArrayItem" layer-tips="删除" title="删除"></a>
|
||||
</td>
|
||||
</tr>
|
||||
{{# } }}
|
||||
<tr class='nodrop nodrag'>
|
||||
<td colspan="3" style="padding: 4px 15px;">
|
||||
<a href="javascript:void(0);" class="layui-btn layui-btn-primary layui-btn-sm layui-icon layui-icon-add-1 addArrayItem" title="追加">追加</a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
<td>
|
||||
<div class="conf-des layui-form-mid layui-word-aux">
|
||||
配置说明
|
||||
<br/>
|
||||
<code title="{{=d.group}}.array">{{=d.group}}.array</code>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align:right;">
|
||||
多个图片
|
||||
</td>
|
||||
<td>
|
||||
<div class="laytpUpload"
|
||||
data-name="imgs"
|
||||
data-accept="image"
|
||||
data-multi="true"
|
||||
data-uploadedId="{{d.imgs}}"
|
||||
data-uploaded="{{d.imgs_path}}"
|
||||
data-uploadedFilename="{{d.imgs_filename}}"
|
||||
></div>
|
||||
<input type="hidden" name="form_type[imgs]" value="upload" />
|
||||
</td>
|
||||
<td>
|
||||
<div class="conf-des layui-form-mid layui-word-aux">
|
||||
<label title="配置说明">配置说明</label>
|
||||
<br/>
|
||||
<code title="{{=d.group}}.imgs">{{=d.group}}.imgs</code>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align:right;">
|
||||
单个图片
|
||||
</td>
|
||||
<td>
|
||||
<div class="laytpUpload"
|
||||
data-name="img"
|
||||
data-accept="image"
|
||||
data-uploadedId="{{d.imgs}}"
|
||||
data-uploaded="{{d.imgs_path}}"
|
||||
data-uploadedFilename="{{d.imgs_filename}}"
|
||||
></div>
|
||||
<input type="hidden" name="form_type[img]" value="upload" />
|
||||
</td>
|
||||
<td>
|
||||
<div class="conf-des layui-form-mid layui-word-aux">
|
||||
<label title="配置说明">配置说明</label>
|
||||
<br/>
|
||||
<code title="{{=d.group}}.img">{{=d.group}}.img</code>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align:right;">
|
||||
编辑器
|
||||
</td>
|
||||
<td>
|
||||
<iframe src="/admin/ueditor.html?id=ueditor" class="editor" data-type="ueditor" data-id="ueditor" style="width:100%;height:530px;border: 0"></iframe>
|
||||
<textarea class="editorContent" data-id="ueditor" style="display:none;">{{=d.ueditor}}</textarea>
|
||||
</td>
|
||||
<td>
|
||||
<div class="conf-des layui-form-mid layui-word-aux">
|
||||
<label title="配置说明">配置说明</label>
|
||||
<br/>
|
||||
<code title="{{=d.group}}.ueditor">{{=d.group}}.ueditor</code>
|
||||
</div>
|
||||
</td>
|
||||
<input type="hidden" name="form_type[ueditor]" value="ueditor" />
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</script>
|
||||
<script type="application/javascript">
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/jquery_3.3.1.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/jquery.tablednd.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/jquery_3.3.1.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/jquery.tablednd.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'],function(){
|
||||
var group = "system.demo";
|
||||
// 先获取数据,渲染表单
|
||||
// 渲染完表单之后,设置滚动条
|
||||
facade.ajax({
|
||||
route: "/admin.conf/getGroupConf",
|
||||
data: {"group" : group},
|
||||
successAlert: false,
|
||||
showLoading: true
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
res.data.group = group;
|
||||
layui.laytpl($("#confTableHtml").html()).render(res.data,function(string){
|
||||
$(".table-container").html(string);
|
||||
layui.laytpForm.render();
|
||||
layui.form.render();
|
||||
var windowHeight = $(window).height();
|
||||
var maxHeight = parseInt(windowHeight) - 86;
|
||||
var minHeight = parseInt(windowHeight) - 86;
|
||||
// 设置table-container的最大高度和超过高度后展示滚动条
|
||||
$(".table-container").css("margin-bottom", '40px');
|
||||
$(".table-container").css("max-height", maxHeight + 'px');
|
||||
$(".table-container").css("min-height", minHeight + 'px');
|
||||
$(".table-container").css("overflow-y", "auto");
|
||||
|
||||
$('.bottom').css("background-color", "#f6f6f6");
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
layui.form.on('submit(add)', function(data){
|
||||
var btnAnim = layui.button.load({elem:$(this)});
|
||||
try{
|
||||
data = facade.setEditorField(data);
|
||||
}catch (e) {
|
||||
facade.error(e);
|
||||
return false;
|
||||
}
|
||||
data.field.group = group;
|
||||
facade.ajax({
|
||||
route:'/admin.conf/saveGroupConf',
|
||||
data : data.field
|
||||
}).done(function(res){
|
||||
btnAnim.stop();
|
||||
}).fail(function(){
|
||||
btnAnim.stop();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+179
@@ -0,0 +1,179 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>系统配置样例</title>
|
||||
</head>
|
||||
<body class="laytp-container">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<form class="layui-form" lay-filter="layui-form">
|
||||
<div class="table-container">
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="add">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
保存配置
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<script id="confTableHtml" type="text/html">
|
||||
<input type="hidden" name="group" id="group" value="{{=d.group}}"/>
|
||||
<table class="layui-table" style="margin: 0;" lay-skin="nob">
|
||||
<colgroup>
|
||||
<col width="15%">
|
||||
<col width="70%">
|
||||
<col width="15%">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="text-align:right;">
|
||||
TMTCUID
|
||||
</td>
|
||||
<td>
|
||||
<input autocomplete="off" type="text" name="tmuid" id="tmuid" value="{{=d.tmuid}}" placeholder="请输入tmt uid" class="layui-input" >
|
||||
<input type="hidden" name="form_type[tmuid]" value="input" />
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align:right;">
|
||||
TMTCUID
|
||||
</td>
|
||||
<td>
|
||||
<input autocomplete="off" type="text" name="tmkey" id="tmkey" value="{{=d.tmkey}}" placeholder="请输入tmt key" class="layui-input" >
|
||||
<input type="hidden" name="form_type[tmkey]" value="input" />
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align:right;">
|
||||
系统收款
|
||||
</td>
|
||||
<td>
|
||||
<input autocomplete="off" type="text" name="system" id="system" value="{{=d.system}}" placeholder="请输入系统收款地址" class="layui-input" >
|
||||
<input type="hidden" name="form_type[system]" value="input" />
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align:right;">
|
||||
会员成本
|
||||
</td>
|
||||
<td>
|
||||
<input autocomplete="off" type="text" name="pricelist" id="pricelist" value="{{=d.pricelist}}" placeholder="请输入会员成本" class="layui-input" >
|
||||
<input type="hidden" name="form_type[pricelist]" value="input" />
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align:right;">
|
||||
机器人key
|
||||
</td>
|
||||
<td>
|
||||
<input autocomplete="off" type="text" name="botkey" id="botkey" value="{{=d.botkey}}" placeholder="请输入系统botkey 用户系统通知信息" class="layui-input" >
|
||||
<input type="hidden" name="form_type[botkey]" value="input" />
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align:right;">
|
||||
机器人key
|
||||
</td>
|
||||
<td>
|
||||
<input autocomplete="off" type="text" name="masterid" id="masterid" value="{{=d.masterid}}" placeholder="请输入系统管理员id" class="layui-input" >
|
||||
<input type="hidden" name="form_type[masterid]" value="input" />
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align:right;">
|
||||
系统客服
|
||||
</td>
|
||||
<td>
|
||||
<input autocomplete="off" type="text" name="syskefu" id="syskefu" value="{{=d.syskefu}}" placeholder="请输入系统客服" class="layui-input" >
|
||||
<input type="hidden" name="form_type[syskefu]" value="input" />
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</script>
|
||||
<script type="application/javascript">
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/jquery_3.3.1.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/jquery.tablednd.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/jquery_3.3.1.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/jquery.tablednd.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'],function(){
|
||||
var group = "system.upload";
|
||||
// 先获取数据,渲染表单
|
||||
// 渲染完表单之后,设置滚动条
|
||||
facade.ajax({
|
||||
route: "/admin.conf/getGroupConf",
|
||||
data: {"group" : group},
|
||||
successAlert: false,
|
||||
showLoading: true
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
res.data.group = group;
|
||||
layui.laytpl($("#confTableHtml").html()).render(res.data,function(string){
|
||||
$(".table-container").html(string);
|
||||
layui.laytpForm.render();
|
||||
layui.form.render();
|
||||
var windowHeight = $(window).height();
|
||||
var maxHeight = parseInt(windowHeight) - 86;
|
||||
var minHeight = parseInt(windowHeight) - 86;
|
||||
// 设置table-container的最大高度和超过高度后展示滚动条
|
||||
$(".table-container").css("margin-bottom", '40px');
|
||||
$(".table-container").css("max-height", maxHeight + 'px');
|
||||
$(".table-container").css("min-height", minHeight + 'px');
|
||||
$(".table-container").css("overflow-y", "auto");
|
||||
|
||||
$('.bottom').css("background-color", "#f6f6f6");
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
layui.form.on('submit(add)', function(data){
|
||||
var btnAnim = layui.button.load({elem:$(this)});
|
||||
try{
|
||||
data = facade.setEditorField(data);
|
||||
}catch (e) {
|
||||
facade.error(e);
|
||||
return false;
|
||||
}
|
||||
data.field.group = group;
|
||||
facade.ajax({
|
||||
route:'/admin.conf/saveGroupConf',
|
||||
data : data.field
|
||||
}).done(function(res){
|
||||
btnAnim.stop();
|
||||
}).fail(function(){
|
||||
btnAnim.stop();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+360
@@ -0,0 +1,360 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>控制面板</title>
|
||||
<meta name="renderer" content="webkit">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<!-- 主 题 更 换 -->
|
||||
<style id="laytpadmin-bg-color"></style>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v="+localStorage.getItem("version")+"'>");
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/admin/css/other/console.css?v="+localStorage.getItem("version")+"'>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v="+localStorage.getItem("version")+"'>");
|
||||
document.write("<link rel='stylesheet' href='/static/admin/css/other/console.css?v="+localStorage.getItem("version")+"'>");
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body class="laytp-container" style="display:none;">
|
||||
<div>
|
||||
<div class="layui-row layui-col-space10">
|
||||
<div class="layui-col-xs6 layui-col-md3">
|
||||
<div class="layui-card top-panel">
|
||||
<div class="layui-card-header">平台总用户</div>
|
||||
<div class="layui-card-body">
|
||||
<div class="layui-row layui-col-space5">
|
||||
<div class="layui-col-xs8 layui-col-md8 top-panel-number" style="color: #28333E;" id="value1">
|
||||
0
|
||||
</div>
|
||||
<div class="layui-col-xs4 layui-col-md4 top-panel-tips">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="icon" viewBox="0 0 1024 1024" width="200" height="200" t="1591462258798"
|
||||
p-id="942" version="1.1">
|
||||
<path fill="#fcc66f" d="M 262.7 835 c -15.3 0 -28.1 -11.4 -29.8 -26.6 L 174.1 291 c -0.6 -5.1 1 -10.2 4.5 -14 s 8.3 -6 13.4 -6 h 640 c 5.1 0 10 2.2 13.4 6 s 5 8.9 4.5 14 l -58.8 517.4 c -1.7 15.2 -14.5 26.6 -29.8 26.6 H 262.7 Z"
|
||||
p-id="943" />
|
||||
<path fill="#ffd79c" d="M 802 289 l -58.8 517.4 c -0.7 6.1 -5.8 10.6 -11.9 10.6 h 30 c 6.1 0 11.2 -4.6 11.9 -10.6 L 832 289 h -30 Z"
|
||||
p-id="944" />
|
||||
<path fill="#f56e73" d="M 164 307 c -16.5 0 -30 -13.5 -30 -30 v -58 c 0 -16.5 13.5 -30 30 -30 h 696 c 16.5 0 30 13.5 30 30 v 58 c 0 16.5 -13.5 30 -30 30 H 164 Z"
|
||||
p-id="945" />
|
||||
<path fill="#ffa1a8" d="M 860 207 h -30 c 6.6 0 12 5.4 12 12 v 58 c 0 6.6 -5.4 12 -12 12 h 30 c 6.6 0 12 -5.4 12 -12 v -58 c 0 -6.6 -5.4 -12 -12 -12 Z"
|
||||
p-id="946" />
|
||||
<path fill="#65c8ff" d="M 190.9 651.5 c -31.4 0 -56.9 -25.5 -56.9 -56.9 V 219 c 0 -16.5 13.5 -30 30 -30 h 466.2 c 9.9 0 18 8.1 18 18 v 301.1 c 0 34.7 -28.2 62.9 -62.9 62.9 s -62.9 -28.2 -62.9 -62.9 V 393.5 c 0 -23.2 -18.8 -42 -42 -42 s -42 18.8 -42 42 v 68.1 c 0 29.4 -23.9 53.4 -53.4 53.4 s -53.4 -23.9 -53.4 -53.4 v -68.1 c 0 -23.2 -18.8 -42 -42 -42 s -42 18.8 -42 42 v 201.1 c 0.1 31.4 -25.4 56.9 -56.7 56.9 Z"
|
||||
p-id="947" />
|
||||
<path fill="#b3eaff" d="M 277.8 321.5 c -33.1 0 -60 26.9 -60 60 v 201.1 c 0 21.5 -17.4 38.9 -38.9 38.9 c -7.7 0 -14.8 -2.2 -20.8 -6.1 c 6.9 10.9 19 18.1 32.8 18.1 c 21.5 0 38.9 -17.4 38.9 -38.9 V 393.5 c 0 -33.1 26.9 -60 60 -60 c 13.5 0 25.9 4.5 36 12 c -11 -14.5 -28.4 -24 -48 -24 Z M 618.3 207 v 289.1 c 0 24.8 -20.1 44.9 -44.9 44.9 c -9.3 0 -18 -2.8 -25.2 -7.7 c 8.1 11.9 21.7 19.7 37.2 19.7 c 24.8 0 44.9 -20.1 44.9 -44.9 V 207 h -12 Z M 468.5 321.5 c -33.1 0 -60 26.9 -60 60 v 68.1 c 0 19.5 -15.8 35.4 -35.4 35.4 c -6.7 0 -12.9 -1.9 -18.3 -5.1 c 6.2 10.2 17.4 17.1 30.3 17.1 c 19.5 0 35.4 -15.8 35.4 -35.4 v -68.1 c 0 -33.1 26.9 -60 60 -60 c 13.5 0 25.9 4.5 36 12 c -11 -14.5 -28.4 -24 -48 -24 Z"
|
||||
p-id="948" />
|
||||
<path fill="#453b56" d="M 698 729.4 m -18 0 a 18 18 0 1 0 36 0 a 18 18 0 1 0 -36 0 Z" p-id="949" />
|
||||
<path fill="#453b56" d="M 860 171 H 632.5 v 0.1 c -0.7 0 -1.5 -0.1 -2.2 -0.1 H 164 c -26.5 0 -48 21.5 -48 48 v 375.6 c 0 41.3 33.6 74.9 74.9 74.9 c 2.7 0 5.4 -0.2 8.1 -0.5 l 16 141.4 c 2.8 24.3 23.3 42.6 47.7 42.6 h 498.6 c 24.4 0 44.9 -18.3 47.7 -42.6 l 55.2 -485.6 c 24.5 -2.1 43.8 -22.7 43.8 -47.8 v -58 c 0 -26.5 -21.5 -48 -48 -48 Z M 190.9 633.5 c -21.5 0 -38.9 -17.4 -38.9 -38.9 V 219 c 0 -6.6 5.4 -12 12 -12 h 466.3 v 301.1 c 0 24.8 -20.1 44.9 -44.9 44.9 c -24.8 0 -44.9 -20.1 -44.9 -44.9 V 393.5 c 0 -33.1 -26.9 -60 -60 -60 s -60 26.9 -60 60 v 68.1 c 0 19.5 -15.8 35.4 -35.4 35.4 c -19.5 0 -35.4 -15.8 -35.4 -35.4 v -68.1 c 0 -33.1 -26.9 -60 -60 -60 s -60 26.9 -60 60 v 201.1 c 0.1 21.5 -17.4 38.9 -38.8 38.9 Z m 582.3 172.9 c -0.7 6.1 -5.8 10.6 -11.9 10.6 H 262.7 c -6.1 0 -11.2 -4.6 -11.9 -10.6 l -6.7 -59 h 396.6 c 9.9 0 18 -8.1 18 -18 s -8.1 -18 -18 -18 H 240 l -6.3 -55.4 c 19.3 -13.6 32.1 -36 32.1 -61.3 V 393.5 c 0 -13.2 10.8 -24 24 -24 s 24 10.8 24 24 v 68.1 c 0 39.4 32 71.4 71.4 71.4 s 71.4 -32 71.4 -71.4 v -68.1 c 0 -13.2 10.8 -24 24 -24 s 24 10.8 24 24 v 114.6 c 0 44.6 36.3 80.9 80.9 80.9 c 44.6 0 80.9 -36.3 80.9 -80.9 V 325 h 161.7 l -54.9 481.4 Z M 872 277 c 0 6.6 -5.4 12 -12 12 H 666.3 v -82 H 860 c 6.6 0 12 5.4 12 12 v 58 Z"
|
||||
p-id="950" /></svg>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-xs6 layui-col-md3">
|
||||
<div class="layui-card top-panel">
|
||||
<div class="layui-card-header">平台机器人</div>
|
||||
<div class="layui-card-body">
|
||||
<div class="layui-row layui-col-space5">
|
||||
<div class="layui-col-xs8 layui-col-md8 top-panel-number" style="color: #28333E;" id="value2">
|
||||
0
|
||||
</div>
|
||||
<div class="layui-col-xs4 layui-col-md4 top-panel-tips">
|
||||
<svg t="1591462430908" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
|
||||
p-id="3170" width="200" height="200">
|
||||
<path d="M532 784.2c0 24.4-19.8 44.3-44.3 44.3s-44.3-19.8-44.3-44.3c0-24.4 44.3-80.3 44.3-80.3s44.3 55.8 44.3 80.3zM766 784.2c0 24.4 19.8 44.3 44.3 44.3 24.4 0 44.3-19.8 44.3-44.3 0-24.4-44.3-80.3-44.3-80.3S766 759.7 766 784.2z"
|
||||
fill="#97DCFF" p-id="3171"></path>
|
||||
<path d="M123.5 471.3c-9.9 0-18-8.1-18-18v-302c0-9.9 8.1-18 18-18h58c9.9 0 18 8.1 18 18v302c0 9.9-8.1 18-18 18h-58z"
|
||||
fill="#FCC66F" p-id="3172"></path>
|
||||
<path d="M181.5 151.3v302h-58v-302h58m0-36h-58c-19.9 0-36 16.1-36 36v302c0 19.9 16.1 36 36 36h58c19.9 0 36-16.1 36-36v-302c0-19.8-16.1-36-36-36z"
|
||||
fill="#453B56" p-id="3173"></path>
|
||||
<path d="M266.4 210.7m-18 0a18 18 0 1 0 36 0 18 18 0 1 0-36 0Z" fill="#453B56" p-id="3174"></path>
|
||||
<path d="M430.8 641.1c-9.9 0-18-8.1-18-18v-21.6c0-130.3 106-236.3 236.3-236.3s236.3 106 236.3 236.3v21.6c0 9.9-8.1 18-18 18H430.8z"
|
||||
fill="#FCC66F" p-id="3175"></path>
|
||||
<path d="M649 383.2c-5 0-10 0.2-15 0.6 113.5 7.7 203.3 102.2 203.3 217.7v21.6h30v-21.6c0-120.6-97.7-218.3-218.3-218.3z"
|
||||
fill="#FFD79C" p-id="3176"></path>
|
||||
<path d="M419.6 694.4c-22.1 0-40.1-18-40.1-40.1s18-40.1 40.1-40.1h458.8c22.1 0 40.1 18 40.1 40.1s-18 40.1-40.1 40.1H419.6z"
|
||||
fill="#F56E73" p-id="3177"></path>
|
||||
<path d="M878.4 632.3h-30c12.2 0 22.1 9.9 22.1 22.1s-9.9 22.1-22.1 22.1h30c12.2 0 22.1-9.9 22.1-22.1s-9.9-22.1-22.1-22.1z"
|
||||
fill="#FFA1A8" p-id="3178"></path>
|
||||
<path d="M693.3 846.4c0 24.4-19.8 44.3-44.3 44.3-24.4 0-44.3-19.8-44.3-44.3s44.3-80.3 44.3-80.3 44.3 55.9 44.3 80.3z"
|
||||
fill="#97DCFF" p-id="3179"></path>
|
||||
<path d="M649 908.7c-34.3 0-62.3-27.9-62.3-62.3 0-28.5 36.9-77.2 48.1-91.4 3.4-4.3 8.6-6.8 14.1-6.8s10.7 2.5 14.1 6.8c11.3 14.2 48.1 62.9 48.1 91.4 0.2 34.3-27.8 62.3-62.1 62.3z m0-112.3c-14.1 20.4-26.3 41.9-26.3 50 0 14.5 11.8 26.3 26.3 26.3s26.3-11.8 26.3-26.3c0-8.1-12.1-29.6-26.3-50z"
|
||||
fill="#453B56" p-id="3180"></path>
|
||||
<path d="M903.3 601.9v-0.5c0-134.1-104.4-244.3-236.3-253.6v-30.7c0-68.7-55.9-124.6-124.6-124.6H326.5c-9.9 0-18 8.1-18 18s8.1 18 18 18h215.9c48.8 0 88.6 39.7 88.6 88.6v30.7c-131.8 9.3-236.3 119.4-236.3 253.6v0.5c-19.6 9.3-33.2 29.3-33.2 52.4 0 32 26 58.1 58.1 58.1H459c-14.8 21-33.5 51.5-33.5 71.8 0 34.3 27.9 62.3 62.3 62.3 34.3 0 62.2-27.9 62.2-62.3 0-20.3-18.6-50.7-33.5-71.8h264.9c-14.8 21-33.5 51.5-33.5 71.8 0 34.3 27.9 62.3 62.3 62.3 34.3 0 62.3-27.9 62.3-62.3 0-20.3-18.6-50.7-33.5-71.8h39.4c32 0 58.1-26 58.1-58.1 0-23.1-13.6-43-33.2-52.4zM487.8 810.4c-14.5 0-26.3-11.8-26.3-26.3 0-8.1 12.1-29.6 26.3-50 14.1 20.4 26.2 41.9 26.2 50 0 14.5-11.8 26.3-26.2 26.3z m322.5 0c-14.5 0-26.3-11.8-26.3-26.3 0-8.1 12.1-29.6 26.3-50 14.1 20.4 26.3 41.9 26.3 50-0.1 14.5-11.9 26.3-26.3 26.3zM649 383.2c118.8 0 215.4 94.9 218.1 213.1H430.9c2.8-118.1 99.3-213.1 218.1-213.1z m251.5 271.1c0 12.2-9.9 22.1-22.1 22.1H419.6c-12.2 0-22.1-9.9-22.1-22.1 0-12.2 9.9-22.1 22.1-22.1h458.8c12.2 0.1 22.1 10 22.1 22.1z"
|
||||
fill="#453B56" p-id="3181"></path>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-xs6 layui-col-md3">
|
||||
<div class="layui-card top-panel">
|
||||
<div class="layui-card-header">总余额</div>
|
||||
<div class="layui-card-body">
|
||||
<div class="layui-row layui-col-space5">
|
||||
<div class="layui-col-xs8 layui-col-md8 top-panel-number" style="color: #28333E;" id="value3">
|
||||
0
|
||||
</div>
|
||||
<div class="layui-col-xs4 layui-col-md4 top-panel-tips">
|
||||
<svg t="1591462464512" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
|
||||
p-id="3311" width="200" height="200">
|
||||
<path d="M750.4 216.5h-130v-15.3c0-32.9-26.8-59.7-59.7-59.7h-97.3c-32.9 0-59.7 26.8-59.7 59.7v15.3h-130c-30.7 0-55.6 25-55.6 55.6v72.4c0 9.9 8.1 18 18 18h31.5v478c0 23.2 18.8 42 42 42h405c23.2 0 42-18.8 42-42v-478H788c9.9 0 18-8.1 18-18v-72.4c0-30.6-25-55.6-55.6-55.6z"
|
||||
fill="#FCC66F" p-id="3312"></path>
|
||||
<path d="M708.5 344.5v496c0 13.3-10.7 24-24 24h30c13.3 0 24-10.7 24-24v-496h-30z" fill="#FFD79C" p-id="3313"></path>
|
||||
<path d="M309.5 882.5c-23.2 0-42-18.8-42-42V596c0-9.9 8.1-18 18-18h36.8c30.2 0 54.8 24.6 54.8 54.8v231.7c0 9.9-8.1 18-18 18h-49.6zM664.9 882.5c-9.9 0-18-8.1-18-18V632.8c0-30.2 24.6-54.8 54.8-54.8h36.8c9.9 0 18 8.1 18 18v244.5c0 23.2-18.8 42-42 42h-49.6z"
|
||||
fill="#F56E73" p-id="3314"></path>
|
||||
<path d="M708.5 596v244.5c0 13.3-10.7 24-24 24h30c13.3 0 24-10.7 24-24V596h-30z" fill="#FFA1A8" p-id="3315"></path>
|
||||
<path d="M475.2 882.5c-9.9 0-18-8.1-18-18V632.8c0-30.2 24.6-54.8 54.8-54.8 30.2 0 54.8 24.6 54.8 54.8v231.7c0 9.9-8.1 18-18 18h-73.6z"
|
||||
fill="#F56E73" p-id="3316"></path>
|
||||
<path d="M560.7 159.5h-18c23 0 41.7 18.7 41.7 41.7V221h18v-19.8c-0.1-23-18.7-41.7-41.7-41.7zM750.4 234.5h-30c20.8 0 37.6 16.8 37.6 37.6v72.4h30v-72.4c0-20.8-16.8-37.6-37.6-37.6z"
|
||||
fill="#FFD79C" p-id="3317"></path>
|
||||
<path d="M750.4 198.5H638.2c-1.4-41.6-35.6-75-77.5-75h-97.3c-41.9 0-76.1 33.4-77.5 75H273.6c-40.6 0-73.6 33-73.6 73.6v72.4c0 19.9 16.1 36 36 36h13.5v460c0 33.1 26.9 60 60 60H714.7c33.1 0 60-26.9 60-60v-460H788c19.9 0 36-16.1 36-36v-72.4c0-40.6-33-73.6-73.6-73.6z m-287.1-39h97.3c22.1 0 40.2 17.2 41.5 39H421.8c1.4-21.8 19.4-39 41.5-39z m-104.2 705h-49.6c-13.3 0-24-10.7-24-24V596h36.8c20.3 0 36.8 16.5 36.8 36.8v231.7z m189.7 0h-73.6V632.8c0-20.3 16.5-36.8 36.8-36.8 20.3 0 36.8 16.5 36.8 36.8v231.7z m189.7-24c0 13.3-10.7 24-24 24h-49.6V632.8c0-20.3 16.5-36.8 36.8-36.8h36.8v244.5z m0-280.5h-36.8c-40.1 0-72.8 32.6-72.8 72.8v231.7h-44.2V632.8c0-40.1-32.6-72.8-72.8-72.8-40.1 0-72.8 32.6-72.8 72.8v231.7h-44.2V632.8c0-40.1-32.6-72.8-72.8-72.8h-36.8v-74.5h279c9.9 0 18-8.1 18-18s-8.1-18-18-18h-279v-69h453V560zM788 344.5H236v-72.4c0-20.8 16.8-37.6 37.6-37.6h476.8c20.8 0 37.6 16.8 37.6 37.6v72.4z"
|
||||
fill="#453B56" p-id="3318"></path>
|
||||
<path d="M621.8 467.5m-18 0a18 18 0 1 0 36 0 18 18 0 1 0-36 0Z" fill="#453B56" p-id="3319"></path>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-xs6 layui-col-md3">
|
||||
<div class="layui-card top-panel">
|
||||
<div class="layui-card-header">总利润</div>
|
||||
<div class="layui-card-body">
|
||||
<div class="layui-row layui-col-space5">
|
||||
<div class="layui-col-xs8 layui-col-md8 top-panel-number" style="color: #28333E;" id="value4">
|
||||
0
|
||||
</div>
|
||||
<div class="layui-col-xs4 layui-col-md4 top-panel-tips">
|
||||
<svg t="1591462491887" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
|
||||
p-id="3449" width="200" height="200">
|
||||
<path d="M363.2 807c-9.9 0-18-8.1-18-18v-75.5c0-9.9 8.1-18 18-18h108.5c9.9 0 18 8.1 18 18V789c0 9.9-8.1 18-18 18H363.2z"
|
||||
fill="#F56E73" p-id="3450"></path>
|
||||
<path d="M441.7 713.5h30V789h-30z" fill="#FFA1A8" p-id="3451"></path>
|
||||
<path d="M259.6 398c-9.9 0-18-8.1-18-18V178.6c0-23.8 19.3-43.1 43.1-43.1s43.1 19.3 43.1 43.1V380c0 9.9-8.1 18-18 18h-50.2zM525.1 398c-9.9 0-18-8.1-18-18V178.6c0-23.8 19.3-43.1 43.1-43.1s43.1 19.3 43.1 43.1V380c0 9.9-8.1 18-18 18h-50.2z"
|
||||
fill="#65C8FF" p-id="3452"></path>
|
||||
<path d="M550.2 153.5c-3.2 0-6.2 0.7-9 1.7 9.4 3.6 16.1 12.7 16.1 23.4V380h18V178.6c0.1-13.9-11.2-25.1-25.1-25.1z"
|
||||
fill="#97DCFF" p-id="3453"></path>
|
||||
<path d="M686 330.5H149c-9.9 0-18 8.1-18 18v63c0 9.9 8.1 18 18 18h33.2l45 225c8.7 43.4 47.1 75 91.4 75h197.6c44.3 0 82.7-31.5 91.4-75l45-225H686c9.9 0 18-8.1 18-18v-63c0-9.9-8.1-18-18-18z"
|
||||
fill="#FCC66F" p-id="3454"></path>
|
||||
<path d="M608 411.5L560.1 651c-7 35.2-37.9 60.5-73.8 60.5h30c35.9 0 66.7-25.3 73.8-60.5L638 411.5h-30zM656 348.5h30v63h-30z"
|
||||
fill="#FFD79C" p-id="3455"></path>
|
||||
<path d="M474.2 543.5m-18 0a18 18 0 1 0 36 0 18 18 0 1 0-36 0Z" fill="#453B56" p-id="3456"></path>
|
||||
<path d="M416.9 525.5h-125c-9.9 0-18 8.1-18 18s8.1 18 18 18h125c9.9 0 18-8.1 18-18s-8.1-18-18-18zM893 543.5h-33.4c-65.2 0-118.2 53-118.2 118.2v19.6c0 9.9 8.1 18 18 18s18-8.1 18-18v-19.6c0-45.3 36.9-82.2 82.2-82.2H893c9.9 0 18-8.1 18-18s-8-18-18-18zM772.2 744.2c7-7 7-18.4 0-25.5-7-7-18.4-7-25.5 0s-7 18.4 0 25.5 18.4 7.1 25.5 0z"
|
||||
fill="#453B56" p-id="3457"></path>
|
||||
<path d="M759.5 761.6c-9.9 0-18 8.1-18 18v11.6c0 43.7-35.6 79.3-79.3 79.3H487.3c-26.4 0-48.3-19.9-51.4-45.5h35.8c19.9 0 36-16.1 36-36v-41.5h8.6c52.8 0 98.7-37.6 109.1-89.4l42.1-210.6H686c19.9 0 36-16.1 36-36v-63c0-19.9-16.1-36-36-36h-74.6V178.6c0-33.7-27.4-61.1-61.1-61.1s-61.1 27.4-61.1 61.1v133.9H345.9V178.6c0-33.7-27.4-61.1-61.1-61.1s-61.1 27.4-61.1 61.1v133.9H149c-19.9 0-36 16.1-36 36v63c0 19.9 16.1 36 36 36h18.5l42.1 210.6c10.4 51.8 56.2 89.4 109.1 89.4h8.6V789c0 19.9 16.1 36 36 36h36.6c3.3 45.5 41.2 81.5 87.5 81.5h174.8c63.6 0 115.3-51.7 115.3-115.3v-11.6c0-10-8.1-18-18-18z m-234.4-583c0-13.9 11.2-25.1 25.1-25.1s25.1 11.2 25.1 25.1v133.9H525V178.6z m-265.5 0c0-13.9 11.2-25.1 25.1-25.1s25.1 11.2 25.1 25.1v133.9h-50.3V178.6zM149 411.5v-63h537v63H149z m169.7 300c-35.9 0-66.7-25.3-73.8-60.5l-40.7-203.5h426.6L590.1 651c-7 35.2-37.9 60.5-73.8 60.5H318.7z m44.5 77.5v-41.5h108.5V789H363.2z"
|
||||
fill="#453B56" p-id="3458"></path>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-row layui-col-space10">
|
||||
<div class="layui-col-md9">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<div class="layui-tab custom-tab layui-tab-brief" lay-filter="docDemoTabBrief">
|
||||
<div id="echarts-records" style="background-color:#ffffff;min-height:400px;padding: 10px"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="layui-col-md3">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">最近更新</div>
|
||||
<div class="layui-card-body">
|
||||
<ul class="list" id="uplist">
|
||||
<li class="list-item"><span class="title">优化代码格式</span></li>
|
||||
<li class="list-item"><span class="title">新增消息组件</span></li>
|
||||
<li class="list-item"><span class="title">移动端兼容</span></li>
|
||||
<li class="list-item"><span class="title">系统布局优化</span></li>
|
||||
<li class="list-item"><span class="title">兼容多系统菜单模式</span></li>
|
||||
<li class="list-item"><span class="title">兼容多标签页切换</span></li>
|
||||
<li class="list-item"><span class="title">扩展下拉组件</span></li>
|
||||
<li class="list-item"><span class="title">扩展卡片样式</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">
|
||||
链接
|
||||
</div>
|
||||
<div class="layui-card-body">
|
||||
<a target="_blank" href="https://t.me/xiaotouadmin" class="laytp-btn laytp-btn-primary layui-btn-fluid" style="margin-top: 8px;height: 50px;line-height: 50px;">官 网</a>
|
||||
<br/>
|
||||
<a target="_blank" href="http://git.zf789.life/kaifa/premium" class="laytp-btn laytp-btn-warming layui-btn-fluid" style="margin-top: 8px;height: 50px;line-height: 50px;">下 载</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['layer', 'echarts', 'element', 'count'], function() {
|
||||
var $ = layui.jquery,
|
||||
layer = layui.layer,
|
||||
element = layui.element,
|
||||
count = layui.count,
|
||||
echarts = layui.echarts;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
$('body').show();
|
||||
|
||||
var echartsRecords = echarts.init(document.getElementById('echarts-records'), 'walden');
|
||||
|
||||
var option = {
|
||||
tooltip: {
|
||||
trigger: 'axis'
|
||||
},
|
||||
xAxis: [{
|
||||
type: 'category',
|
||||
data: ['2019-01', '2019-02', '2019-03', '2019-04', '2019-05', '2019-06'],
|
||||
axisLine: {
|
||||
lineStyle: {
|
||||
color: "#999"
|
||||
}
|
||||
}
|
||||
}],
|
||||
yAxis: [{
|
||||
type: 'value',
|
||||
splitNumber: 4,
|
||||
splitLine: {
|
||||
lineStyle: {
|
||||
type: 'dashed',
|
||||
color: '#DDD'
|
||||
}
|
||||
},
|
||||
axisLine: {
|
||||
show: false,
|
||||
lineStyle: {
|
||||
color: "#333"
|
||||
},
|
||||
},
|
||||
nameTextStyle: {
|
||||
color: "#999"
|
||||
},
|
||||
splitArea: {
|
||||
show: false
|
||||
}
|
||||
}],
|
||||
series: [{
|
||||
name: '课时',
|
||||
type: 'line',
|
||||
data: [23, 60, 20, 36, 23, 85],
|
||||
lineStyle: {
|
||||
normal: {
|
||||
width: 8,
|
||||
color: {
|
||||
type: 'linear',
|
||||
|
||||
colorStops: [{
|
||||
offset: 0,
|
||||
color: '#A9F387' // 0% 处的颜色
|
||||
}, {
|
||||
offset: 1,
|
||||
color: '#48D8BF' // 100% 处的颜色
|
||||
}],
|
||||
globalCoord: false // 缺省为 false
|
||||
},
|
||||
shadowColor: 'rgba(72,216,191, 0.3)',
|
||||
shadowBlur: 10,
|
||||
shadowOffsetY: 20
|
||||
}
|
||||
},
|
||||
itemStyle: {
|
||||
normal: {
|
||||
color: '#fff',
|
||||
borderWidth: 10,
|
||||
/*shadowColor: 'rgba(72,216,191, 0.3)',
|
||||
shadowBlur: 100,*/
|
||||
borderColor: "#A9F387"
|
||||
}
|
||||
},
|
||||
smooth: true
|
||||
}]
|
||||
};
|
||||
echartsRecords.setOption(option);
|
||||
|
||||
window.onresize = function() {
|
||||
echartsRecords.resize();
|
||||
}
|
||||
|
||||
|
||||
$.ajax({
|
||||
url: '/Index/getnumber', // 请求的URL
|
||||
type: 'GET', // 请求方法 (GET, POST, etc.)
|
||||
dataType: 'json', // 期望的响应数据类型
|
||||
success: function(response) {
|
||||
// 请求成功时的处理
|
||||
count.up("value1", {
|
||||
time: 4000,
|
||||
num: response.data.ptzuser,
|
||||
bit: 2,
|
||||
regulator: 50
|
||||
})
|
||||
|
||||
count.up("value2", {
|
||||
|
||||
time: 4000,
|
||||
num: response.data.ptzbot,
|
||||
bit: 2,
|
||||
regulator: 50
|
||||
})
|
||||
|
||||
count.up("value3", {
|
||||
time: 4000,
|
||||
num:response.data.ptzbotmoney,
|
||||
bit: 2,
|
||||
regulator: 50
|
||||
})
|
||||
|
||||
count.up("value4", {
|
||||
time: 4000,
|
||||
bit: 2,
|
||||
num: response.data.ptlirun,
|
||||
regulator: 50
|
||||
})
|
||||
|
||||
//uplist
|
||||
var uplisthtml="";
|
||||
for (const item of response.data.uplist) {
|
||||
uplisthtml+=' <li class="list-item"><span class="title">'+item+'</span></li>';
|
||||
|
||||
}
|
||||
// 修改 id 为 'your-id' 的元素的 HTML
|
||||
$('#uplist').html(uplisthtml);
|
||||
console.log(uplisthtml);
|
||||
console.log('成功:', response.data.ptzuser);
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
// 请求失败时的处理
|
||||
console.error('失败:', error);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+123
@@ -0,0 +1,123 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>添加页面</title>
|
||||
</head>
|
||||
<body>
|
||||
<form class="layui-form" lay-filter="layui-form">
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="main-container">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="所属分类"> <text title="必填项" style="color:red;">*</text> 所属分类</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="xmSelect"
|
||||
data-name="category_id"
|
||||
data-sourceType="route"
|
||||
data-source="/admin.files.category/index"
|
||||
data-sourceTree="true"
|
||||
data-paging="false"
|
||||
data-radio="true"
|
||||
data-valueField="id"
|
||||
data-textField="name"
|
||||
data-placeholder="请选择所属分类"
|
||||
data-layVerify="required"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="文件名称"> <text title="必填项" style="color:red;">*</text> 文件名称</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="name" id="name" placeholder="请输入文件名称" class="layui-input" lay-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="文件类型"> <text title="必填项" style="color:red;">*</text> 文件类型</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="file_type" id="file_type-image" value="image" title="图片" checked="checked" />
|
||||
<input type="radio" name="file_type" id="file_type-video" value="video" title="视频" checked="checked" />
|
||||
<input type="radio" name="file_type" id="file_type-music" value="music" title="音频" checked="checked" />
|
||||
<input type="radio" name="file_type" id="file_type-file" value="file" title="文件" checked="checked" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="文件路径">文件路径</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="laytpUpload"
|
||||
data-name="path"
|
||||
data-accept="file"
|
||||
data-multi="false"
|
||||
data-showChoiceBtn="false"
|
||||
data-type="ali-oss"
|
||||
data-viaServer="unVia"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="上传方式"> <text title="必填项" style="color:red;">*</text> 上传方式</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="upload_type" id="upload_type-local" value="local" title="本地上传" checked="checked" />
|
||||
<input type="radio" name="upload_type" id="upload_type-ali-oss" value="ali-oss" title="阿里云OSS" checked="checked" />
|
||||
<input type="radio" name="upload_type" id="upload_type-qiniu-kodo" value="qiniu-kodo" title="七牛云KODO" checked="checked" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="add">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'],function(){
|
||||
layui.form.on('submit(add)', function(data){
|
||||
var btnAnim = layui.button.load({elem:$(this)});
|
||||
try{
|
||||
data = facade.setEditorField(data);
|
||||
}catch (e) {
|
||||
facade.error(e);
|
||||
return false;
|
||||
}
|
||||
facade.ajax({
|
||||
route:'/admin.files/add',
|
||||
data : data.field
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
parent.layui.layer.close(parent.layui.layer.getFrameIndex(window.name));//关闭当前页
|
||||
parent.layui.table.reloadData("laytp-table");
|
||||
}
|
||||
btnAnim.stop();
|
||||
}).fail(function(){
|
||||
btnAnim.stop();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+97
@@ -0,0 +1,97 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>添加页面</title>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<form class="layui-form" lay-filter="layui-form">
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="main-container">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="分类名称">分类名称 <text title="必填项" style="color:red;">*</text></label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="name" id="name" placeholder="请输入分类名称" class="layui-input" lay-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="父级">父级</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="xmSelect"
|
||||
data-name="pid"
|
||||
data-sourceType="route"
|
||||
data-source="/admin.files.category/index"
|
||||
data-sourceTree="true"
|
||||
data-paging="false"
|
||||
data-radio="true"
|
||||
data-valueField="id"
|
||||
data-textField="name"
|
||||
data-placeholder="请选择父级"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="排序">排序</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="sort" id="sort" placeholder="请输入排序" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="add">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'],function(){
|
||||
layui.form.on('submit(add)', function(data){
|
||||
var btnAnim = layui.button.load({elem:$(this)});
|
||||
try{
|
||||
data = facade.setEditorField(data);
|
||||
}catch (e) {
|
||||
facade.error(e);
|
||||
return false;
|
||||
}
|
||||
facade.ajax({
|
||||
route:'/admin.files.category/add',
|
||||
data : data.field
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
parent.layui.layer.close(parent.layui.layer.getFrameIndex(window.name));//关闭当前页
|
||||
parent.funController.tableRender();
|
||||
}
|
||||
btnAnim.stop();
|
||||
}).fail(function(){
|
||||
btnAnim.stop();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+125
@@ -0,0 +1,125 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>编辑页面</title>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<script type="text/html" id="form">
|
||||
<input type="hidden" name="id" value="{{= d.id }}" />
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="main-container">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="分类名称">分类名称 <text title="必填项" style="color:red;">*</text></label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="name" id="name" placeholder="请输入分类名称" value="{{=d.name}}" class="layui-input" lay-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="父级">父级</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="xmSelect"
|
||||
data-name="pid"
|
||||
data-sourceType="route"
|
||||
data-source="/admin.files.category/index"
|
||||
data-sourceTree="true"
|
||||
data-paging="false"
|
||||
data-radio="true"
|
||||
data-valueField="id"
|
||||
data-selected="{{=d.pid}}"
|
||||
data-textField="name"
|
||||
data-placeholder="请选择父级"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="排序">排序</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="sort" id="sort" placeholder="请输入排序" value="{{=d.sort}}" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="laytp-form">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
<form class="layui-form" lay-filter="layui-form"></form>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'],function(){
|
||||
let form = layui.form;
|
||||
let $ = layui.jquery;
|
||||
//获取参数ID
|
||||
var id = facade.getUrlParam('id');
|
||||
if(!id){
|
||||
facade.error('参数ID不能为空');
|
||||
return false;
|
||||
}
|
||||
|
||||
//获取数据,渲染到对应的节点上
|
||||
facade.ajax({
|
||||
route: "/admin.files.category/info",
|
||||
data: {id: id},
|
||||
successAlert: false,
|
||||
showLoading: true
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
layui.laytpl($("#form").html()).render(res.data,function(string){
|
||||
$("form").html(string);
|
||||
layui.laytpForm.render();
|
||||
form.render();
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
form.on('submit(laytp-form)', function(data){
|
||||
var btnAnim = layui.button.load({elem:$(this)});
|
||||
try{
|
||||
data = facade.setEditorField(data);
|
||||
}catch (e) {
|
||||
facade.error(e);
|
||||
return false;
|
||||
}
|
||||
facade.ajax({
|
||||
route:'/admin.files.category/edit',
|
||||
data:data.field
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
parent.layui.layer.close(parent.layui.layer.getFrameIndex(window.name));//关闭当前页
|
||||
parent.funController.tableRender();
|
||||
}
|
||||
btnAnim.stop();
|
||||
}).fail(function(){
|
||||
btnAnim.stop();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+70
@@ -0,0 +1,70 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>列表页面</title>
|
||||
|
||||
</head>
|
||||
<body class="laytp-container">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<table class="laytp-table layui-hide-sm" id="laytp-tree-table" lay-filter="laytp-tree-table"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="default-toolbar">
|
||||
{{# if(facade.hasAuth("/admin.files.category/edit") || facade.hasAuth("/admin.files.category/del")){ }}
|
||||
<div class="dropdown-menu">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-md">
|
||||
<i class="layui-icon layui-icon-triangle-d"></i>
|
||||
批量操作
|
||||
</button>
|
||||
<ul class="dropdown-menu-nav layui-anim-upbit dropdown-bottom-left layui-anim">
|
||||
<div class="dropdown-anchor"></div>
|
||||
{{# if(facade.hasAuth("/admin.files.category/edit")){ }}
|
||||
<li><a lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a></li>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.files.category/del")){ }}
|
||||
<li><a lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a></li>
|
||||
{{# } }}
|
||||
</ul>
|
||||
</div>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.files.category/add")){ }}
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-md" lay-event="add">
|
||||
<i class="layui-icon layui-icon-add-1"></i>
|
||||
新增
|
||||
</button>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.files.category/recycle")){ }}
|
||||
<button class="laytp-btn laytp-btn-success laytp-btn-md" lay-event="recycle">
|
||||
<i class="layui-icon layui-icon-delete"></i>
|
||||
回收站
|
||||
</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="default-bar">
|
||||
{{# if(facade.hasAuth("/admin.files.category/edit")){ }}
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</button>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.files.category/del")){ }}
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/admin/js/files/category.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/admin/js/files/category.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+115
@@ -0,0 +1,115 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>回收站</title>
|
||||
|
||||
</head>
|
||||
<body class="laytp-container-recycle">
|
||||
<div id="recycle-search-form" style="display:none;">
|
||||
<div class="layui-layer-title">搜索</div>
|
||||
<form class="layui-form search-form-body" lay-filter="layui-form" style="margin-top:20px;">
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="ID">ID</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="search_param[id][value]" id="id" placeholder="请输入ID"
|
||||
class="layui-input" autocomplete="off">
|
||||
<input type="hidden" name="search_param[id][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="分类名称">分类名称</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="name" name="search_param[name][value]" placeholder="请输入分类名称" class="layui-input">
|
||||
<input type="hidden" name="search_param[name][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="父级">父级</label>
|
||||
<div class="layui-input-inline">
|
||||
<div class="xmSelect"
|
||||
data-name="search_param[pid][value]"
|
||||
data-sourceType="route"
|
||||
data-source="/admin.files.category/index"
|
||||
data-sourceTree="false"
|
||||
data-paging="true"
|
||||
data-valueField="id"
|
||||
data-textField="name"
|
||||
data-placeholder="请选择父级"
|
||||
></div>
|
||||
<input type="hidden" name="search_param[pid][condition]" value="FIND_IN_SET">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="创建时间">创建时间</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input laydate"
|
||||
id="create_time" name="search_param[create_time][value]"
|
||||
data-type="datetime" data-isRange="true" placeholder="请选择创建时间">
|
||||
<input type="hidden" name="search_param[create_time][condition]" value="BETWEEN">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="排序">排序</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="sort" name="search_param[sort][value]" placeholder="请输入排序" class="layui-input">
|
||||
<input type="hidden" name="search_param[sort][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="laytp-recycle-search-form">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="button" class="laytp-btn laytp-btn-sm laytp-recycle-search-form-reset">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<table id="laytp-recycle-table" lay-filter="laytp-recycle-table"></table>
|
||||
|
||||
<script type="text/html" id="recycle-default-toolbar">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-md" lay-event="restore">
|
||||
<i class="laytp-icon laytp-icon-back"></i>
|
||||
还原
|
||||
</button>
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-md" lay-event="true-del">
|
||||
<i class="layui-icon layui-icon-delete"></i>
|
||||
删除
|
||||
</button>
|
||||
<button class="laytp-btn laytp-btn-warming laytp-btn-md" lay-event="recycle-search">
|
||||
<i class="layui-icon layui-icon-search"></i>
|
||||
搜索
|
||||
</button>
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="recycle-default-bar">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-xs" lay-event="restore"><i class="laytp-icon laytp-icon-back"></i>还原</button>
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-xs" lay-event="true-del"><i class="layui-icon layui-icon-delete"></i>删除</button>
|
||||
</script>
|
||||
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/admin/js/files/categoryRecycle.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/admin/js/files/categoryRecycle.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+353
@@ -0,0 +1,353 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>列表页面</title>
|
||||
</head>
|
||||
<body class="laytp-container">
|
||||
<div id="search-form" style="display:none;">
|
||||
<div class="layui-layer-title">搜索</div>
|
||||
<form class="layui-form search-form-body" lay-filter="layui-form" style="margin-top:20px;">
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="ID">ID</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="id" name="search_param[id][value]" placeholder="请输入ID" class="layui-input">
|
||||
<input type="hidden" name="search_param[id][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="所属分类">所属分类</label>
|
||||
<div class="layui-input-inline">
|
||||
<div class="xmSelect"
|
||||
data-name="search_param[category_id][value]"
|
||||
data-sourceType="route"
|
||||
data-source="/admin.files.category/index"
|
||||
data-sourceTree="true"
|
||||
data-paging="false"
|
||||
data-valueField="id"
|
||||
data-textField="name"
|
||||
data-placeholder="请选择所属分类"
|
||||
data-selected="{{=d.category_id}}"
|
||||
></div>
|
||||
<input type="hidden" name="search_param[category_id][condition]" value="FIND_IN_SET">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="文件名称">文件名称</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="name" name="search_param[name][value]" placeholder="请输入文件名称" class="layui-input">
|
||||
<input type="hidden" name="search_param[name][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="文件类型">文件类型</label>
|
||||
<div class="layui-input-inline">
|
||||
<select id="file_type" name="search_param[file_type][value]">
|
||||
<option value="">请选择文件类型</option>
|
||||
<option value=""></option>
|
||||
<option value="image" {{# if(d.file_type === 'image'){ }}selected="selected"{{# } }}>图片</option>
|
||||
<option value="video" {{# if(d.file_type === 'video'){ }}selected="selected"{{# } }}>视频</option>
|
||||
<option value="music" {{# if(d.file_type === 'audio'){ }}selected="selected"{{# } }}>音频</option>
|
||||
<option value="file">文件</option>
|
||||
</select>
|
||||
<input type="hidden" name="search_param[file_type][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="上传方式">上传方式</label>
|
||||
<div class="layui-input-inline">
|
||||
<select id="upload_type" name="search_param[upload_type][value]">
|
||||
<option value="">请选择上传方式</option>
|
||||
<option value=""></option>
|
||||
<option value="local">本地上传</option>
|
||||
<option value="ali-oss">阿里云OSS</option>
|
||||
<option value="qiniu-kodo">七牛云KODO</option>
|
||||
</select>
|
||||
<input type="hidden" name="search_param[upload_type][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="创建者">创建者</label>
|
||||
<div class="layui-input-inline">
|
||||
<div class="xmSelect"
|
||||
data-name="search_param[create_admin_user_id][value]"
|
||||
data-sourceType="route"
|
||||
data-source="/admin.user/index"
|
||||
data-sourceTree="false"
|
||||
data-paging="true"
|
||||
data-valueField="id"
|
||||
data-textField="nickname"
|
||||
data-placeholder="请选择创建者"
|
||||
></div>
|
||||
<input type="hidden" name="search_param[create_admin_user_id][condition]" value="FIND_IN_SET">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="最后更新者">最后更新者</label>
|
||||
<div class="layui-input-inline">
|
||||
<div class="xmSelect"
|
||||
data-name="search_param[update_admin_user_id][value]"
|
||||
data-sourceType="route"
|
||||
data-source="/admin.user/index"
|
||||
data-sourceTree="false"
|
||||
data-paging="true"
|
||||
data-valueField="id"
|
||||
data-textField="nickname"
|
||||
data-placeholder="请选择最后更新者"
|
||||
></div>
|
||||
<input type="hidden" name="search_param[update_admin_user_id][condition]" value="FIND_IN_SET">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="创建时间">创建时间</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input laydate"
|
||||
id="create_time" name="search_param[create_time][value]"
|
||||
data-type="datetime" data-isRange="true" placeholder="请选择创建时间">
|
||||
<input type="hidden" name="search_param[create_time][condition]" value="BETWEEN">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="laytp-search-form">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="button" class="laytp-btn laytp-btn-sm laytp-search-form-reset">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<table id="laytp-table" lay-filter="laytp-table"></table>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/html" id="default-toolbar">
|
||||
<button class="laytp-btn laytp-btn-warming laytp-btn-md" lay-event="search">
|
||||
<i class="layui-icon layui-icon-search"></i>
|
||||
搜索
|
||||
</button>
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-md" lay-event="finishChoice">
|
||||
<i class="layui-icon layui-icon-ok-circle"></i>
|
||||
完成选择
|
||||
</button>
|
||||
</script>
|
||||
|
||||
<script>
|
||||
if (localStorage.getItem("staticDomain")) {
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v=" + localStorage.getItem("version") + "'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v=" + localStorage.getItem("version") + "'><\/script>");
|
||||
} else {
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v=" + localStorage.getItem("version") + "'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v=" + localStorage.getItem("version") + "'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'], function () {
|
||||
const
|
||||
facade = layui.facade
|
||||
;
|
||||
|
||||
// 选择右侧数据表格,展示某分类下的附件列表
|
||||
const funController = {};
|
||||
//静态页面地址前缀
|
||||
window.htmlPrefix = facade.compatibleHtmlPath("/admin/files/");
|
||||
//后端接口地址前缀
|
||||
window.apiPrefix = facade.compatibleApiRoute("/admin.files/");
|
||||
|
||||
//表格渲染
|
||||
funController.tableRender = function (where, page) {
|
||||
layui.table.render({
|
||||
elem: "#laytp-table"
|
||||
, id: "laytp-table"
|
||||
, url: facade.url("/admin.files/index",{paging:1})
|
||||
, toolbar: "#default-toolbar"
|
||||
, defaultToolbar: [{
|
||||
title: '刷新',
|
||||
layEvent: 'refresh',
|
||||
icon: 'layui-icon-refresh',
|
||||
}, 'filter', 'print', 'exports']
|
||||
, where: where
|
||||
, method: "GET"
|
||||
, cellMinWidth: 120
|
||||
, skin: 'line'
|
||||
, loading: false
|
||||
, page: {
|
||||
curr: page
|
||||
}
|
||||
, parseData: function (res) { //res 即为原始返回的数据
|
||||
return facade.parseTableData(res, true);
|
||||
}
|
||||
, done: function(res){
|
||||
layui.laytpTable.done();
|
||||
var checkedIdsArr = checkedIds.split(", ");
|
||||
// 已经选中的数据,设置选中复选框或者单选框
|
||||
for(let k in res.data){
|
||||
for(let id in checkedIdsArr){
|
||||
if(res.data[k].id === parseInt(checkedIdsArr[id])){
|
||||
checkedItems[id] = res.data[k];
|
||||
//这句才是真正选中,通过设置关键字LAY_CHECKED为true选中
|
||||
res.data[k]["LAY_CHECKED"]='true';
|
||||
//下面三句是通过更改css来实现选中的效果
|
||||
var index= res.data[k]['LAY_TABLE_INDEX'];
|
||||
$('tr[data-index=' + index + '] input[type="checkbox"]').prop('checked', true);
|
||||
$('tr[data-index=' + index + '] input[type="checkbox"]').next().addClass('layui-form-checked');
|
||||
|
||||
//单选框选中
|
||||
$(".layui-table-view[lay-id='laytp-table'] .layui-table-body tr[data-index="+index+"] .layui-form-radio").click();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
, cols: [[
|
||||
{type:colsType, fixed:'left', checked:true}
|
||||
,{field:'id',title:'ID',align:'center',width:80,fixed:'left'}
|
||||
,{field:'category_id',title:'所属分类',align:'center',templet:'<div>{{# if(d.category){ }}{{d.category.name}}{{# }else{ }}-{{# } }}</div>'}
|
||||
,{field:'name',title:'文件名称',align:'center',templet:function(d){
|
||||
return layui.laytpl('{{=d.name}}').render({name:d.name});
|
||||
}}
|
||||
,{field:'file_type',title:'文件类型',align:'center',templet:function(d){
|
||||
return laytp.tableFormatter.status('file_type',d.file_type,{"value":["image","video","audio","file"],"text":["图片","视频","音频","文件"]});
|
||||
}}
|
||||
,{field:'path',title:'文件预览',align:'center',templet:function(d){
|
||||
if(d.file_type === "image"){
|
||||
return laytp.tableFormatter.images(d.path);
|
||||
}else if(d.file_type === "video"){
|
||||
return laytp.tableFormatter.video(d.path);
|
||||
}else if(d.file_type === "audio"){
|
||||
return laytp.tableFormatter.audio(d.path);
|
||||
}else if(d.file_type === "file"){
|
||||
return laytp.tableFormatter.file(d.path);
|
||||
}
|
||||
}}
|
||||
,{field:'upload_type',title:'上传方式',align:'center',templet:function(d){
|
||||
return laytp.tableFormatter.status('upload_type',d.upload_type,{"value":["local","ali-oss","qiniu-kodo"],"text":["本地上传","阿里云OSS","七牛云KODO"]});
|
||||
}}
|
||||
,{field:'create_admin_user_id',title:'创建者',align:'center',templet:'<div>{{# if(d.createAdminUser){ }}{{d.createAdminUser.nickname}}{{# }else{ }}-{{# } }}</div>'}
|
||||
,{field:'create_time',title:'创建时间',align:'center'}
|
||||
]]
|
||||
});
|
||||
|
||||
//监听数据表格顶部左侧按钮点击事件
|
||||
layui.table.on("toolbar(laytp-table)", function (obj) {
|
||||
//默认按钮点击事件,包括添加按钮和回收站按钮
|
||||
var defaultTableToolbar = layui.context.get("defaultTableToolbar");
|
||||
if (defaultTableToolbar.indexOf(obj.event) !== -1) {
|
||||
laytp.tableToolbar(obj);
|
||||
} else {
|
||||
//自定义按钮点击事件
|
||||
switch(obj.event){
|
||||
//完成选择
|
||||
case "finishChoice":
|
||||
var name = facade.getUrlParam("name");
|
||||
layui.laytpUpload.choiceAfter(name, multi, fileType, checkedItems);
|
||||
parent.layui.layer.close(parent.layui.layer.getFrameIndex(window.name));//关闭当前页
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
//监听数据表格[操作列]按钮点击事件
|
||||
layui.table.on("tool(laytp-table)", function (obj) {
|
||||
var defaultTableTool = layui.context.get("defaultTableTool");
|
||||
if (defaultTableTool.indexOf(obj.event) !== -1) {
|
||||
laytp.tableTool(obj);
|
||||
} else {
|
||||
// //自定义按钮点击事件
|
||||
// switch(obj.event){
|
||||
// //自定义按钮点击事件
|
||||
// case "":
|
||||
//
|
||||
// break;
|
||||
// }
|
||||
}
|
||||
});
|
||||
|
||||
//监听表头排序事件
|
||||
layui.table.on('sort(laytp-table)', function(obj){
|
||||
layui.table.reloadData('laytp-table', {
|
||||
initSort: obj //记录初始排序,如果不设的话,将无法标记表头的排序状态。
|
||||
, where: {
|
||||
"order_param" : {
|
||||
"field" : obj.field,
|
||||
"type" : obj.type
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// 监听复选框选择事件
|
||||
layui.table.on('checkbox(laytp-table)', function(obj){
|
||||
if(obj.checked){
|
||||
if(obj.type === 'one'){
|
||||
checkedItems[obj.data.id] = obj.data;
|
||||
}else if(obj.type === 'all'){
|
||||
allData = layui.table.getData("laytp-table");
|
||||
for(let k in allData){
|
||||
checkedItems[allData[k].id] = allData[k];
|
||||
}
|
||||
}
|
||||
}else{
|
||||
if(obj.type === 'one'){
|
||||
delete checkedItems[obj.data.id];
|
||||
}else if(obj.type === 'all'){
|
||||
allData = layui.table.getData("laytp-table");
|
||||
for(let k in allData){
|
||||
delete checkedItems[allData[k].id];
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// 监听单选框选择事件
|
||||
layui.table.on('radio(laytp-table)', function(obj){ //test 是 table 标签对应的 lay-filter 属性
|
||||
checkedItems = {};
|
||||
checkedItems[obj.data.id] = obj.data;
|
||||
});
|
||||
};
|
||||
|
||||
// 全局定义一个存储已选择项的对象
|
||||
var checkedItems = {};
|
||||
// 全局定义一个变量,用来存储当前页的所有数据
|
||||
var allData;
|
||||
|
||||
window.funController = funController;
|
||||
|
||||
// 根据参数,设置搜索表单的值并执行一次搜索
|
||||
var multi = (facade.getUrlParam('multi') === 'true');
|
||||
var colsType = multi ? 'checkbox' : 'radio';
|
||||
|
||||
var categoryId = facade.getUrlParam('category_id') ? facade.getUrlParam('category_id') : 0;
|
||||
var fileType = facade.getUrlParam('file_type') ? facade.getUrlParam('file_type') : "";
|
||||
|
||||
var checkedIds = facade.getUrlParam('checked_ids') ? decodeURI(facade.getUrlParam('checked_ids')) : "";
|
||||
|
||||
funController.tableRender();
|
||||
// if(checkedIds){
|
||||
// console.log(checkedIds);
|
||||
// var checkedIdsArr = checkedIds.split(", ");
|
||||
// for(let k in checkedIdsArr){
|
||||
// checkedItems[checkedIdsArr[k]] = checkedIdsArr[k];
|
||||
// }
|
||||
// funController.tableRender();
|
||||
// }else{
|
||||
// funController.tableRender();
|
||||
// }
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+155
@@ -0,0 +1,155 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>编辑页面</title>
|
||||
</head>
|
||||
<body>
|
||||
<script type="text/html" id="form">
|
||||
<input type="hidden" name="id" value="{{= d.id }}" />
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="main-container">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="所属分类"> <text title="必填项" style="color:red;">*</text> 所属分类</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="xmSelect"
|
||||
data-name="category_id"
|
||||
data-sourceType="route"
|
||||
data-source="/admin.files.category/index"
|
||||
data-sourceTree="true"
|
||||
data-paging="false"
|
||||
data-radio="true"
|
||||
data-valueField="id"
|
||||
data-selected="{{=d.category_id}}"
|
||||
data-textField="name"
|
||||
data-placeholder="请选择所属分类"
|
||||
data-layVerify="required"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="文件名称"> <text title="必填项" style="color:red;">*</text> 文件名称</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="name" id="name" placeholder="请输入文件名称" value="{{=d.name}}" class="layui-input" lay-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="文件类型"> <text title="必填项" style="color:red;">*</text> 文件类型</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="file_type" id="file_type-image" value="image" title="图片" {{#if (d.file_type == 'image'){ }}checked="checked"{{# } }} />
|
||||
<input type="radio" name="file_type" id="file_type-video" value="video" title="视频" {{#if (d.file_type == 'video'){ }}checked="checked"{{# } }} />
|
||||
<input type="radio" name="file_type" id="file_type-music" value="audio" title="音频" {{#if (d.file_type == 'audio'){ }}checked="checked"{{# } }} />
|
||||
<input type="radio" name="file_type" id="file_type-file" value="file" title="文件" {{#if (d.file_type == 'file'){ }}checked="checked"{{# } }} />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="文件路径">文件路径</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="laytpUpload"
|
||||
data-name="path"
|
||||
data-accept="file"
|
||||
data-multi="false"
|
||||
data-max="0"
|
||||
data-dir=""
|
||||
data-url=""
|
||||
data-mime=""
|
||||
data-size=""
|
||||
data-layVerify=""
|
||||
data-uploaded="{{=d.path}}"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="上传方式"> <text title="必填项" style="color:red;">*</text> 上传方式</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="upload_type" id="upload_type-local" value="local" title="本地上传" {{#if (d.upload_type == 'local'){ }}checked="checked"{{# } }} />
|
||||
<input type="radio" name="upload_type" id="upload_type-ali-oss" value="ali-oss" title="阿里云OSS" {{#if (d.upload_type == 'ali-oss'){ }}checked="checked"{{# } }} />
|
||||
<input type="radio" name="upload_type" id="upload_type-qiniu-kodo" value="qiniu-kodo" title="七牛云KODO" {{#if (d.upload_type == 'qiniu-kodo'){ }}checked="checked"{{# } }} />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="laytp-form">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
<form class="layui-form" lay-filter="layui-form"></form>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'],function(){
|
||||
let form = layui.form;
|
||||
let $ = layui.jquery;
|
||||
//获取参数ID
|
||||
var id = facade.getUrlParam('id');
|
||||
if(!id){
|
||||
facade.error('参数ID不能为空');
|
||||
return false;
|
||||
}
|
||||
|
||||
//获取数据,渲染到对应的节点上
|
||||
facade.ajax({
|
||||
route: "/admin.files/info",
|
||||
data: {id: id},
|
||||
successAlert: false,
|
||||
showLoading: true
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
layui.laytpl($("#form").html()).render(res.data,function(string){
|
||||
$("form").html(string);
|
||||
layui.laytpForm.render();
|
||||
form.render();
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
form.on('submit(laytp-form)', function(data){
|
||||
var btnAnim = layui.button.load({elem:$(this)});
|
||||
try{
|
||||
data = facade.setEditorField(data);
|
||||
}catch (e) {
|
||||
facade.error(e);
|
||||
return false;
|
||||
}
|
||||
facade.ajax({
|
||||
route:'/admin.files/edit',
|
||||
data:data.field
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
parent.layui.layer.close(parent.layui.layer.getFrameIndex(window.name));//关闭当前页
|
||||
parent.layui.table.reloadData("laytp-table");
|
||||
}
|
||||
btnAnim.stop();
|
||||
}).fail(function(){
|
||||
btnAnim.stop();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+175
@@ -0,0 +1,175 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>列表页面</title>
|
||||
</head>
|
||||
<body class="laytp-container">
|
||||
<div id="search-form" style="display:none;">
|
||||
<div class="layui-layer-title">搜索</div>
|
||||
<form class="layui-form search-form-body" lay-filter="layui-form" style="margin-top:20px;">
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="ID">ID</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="id" name="search_param[id][value]" placeholder="请输入ID" class="layui-input">
|
||||
<input type="hidden" name="search_param[id][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="所属分类">所属分类</label>
|
||||
<div class="layui-input-inline">
|
||||
<div class="xmSelect"
|
||||
data-name="search_param[category_id][value]"
|
||||
data-sourceType="route"
|
||||
data-source="/admin.files.category/index"
|
||||
data-sourceTree="true"
|
||||
data-paging="false"
|
||||
data-valueField="id"
|
||||
data-textField="name"
|
||||
data-placeholder="请选择所属分类"
|
||||
></div>
|
||||
<input type="hidden" name="search_param[category_id][condition]" value="FIND_IN_SET">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="文件名称">文件名称</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="name" name="search_param[name][value]" placeholder="请输入文件名称" class="layui-input">
|
||||
<input type="hidden" name="search_param[name][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="文件类型">文件类型</label>
|
||||
<div class="layui-input-inline">
|
||||
<select id="file_type" name="search_param[file_type][value]">
|
||||
<option value="">请选择文件类型</option>
|
||||
<option value=""></option>
|
||||
<option value="image">图片</option>
|
||||
<option value="video">视频</option>
|
||||
<option value="audio">音频</option>
|
||||
<option value="file">文件</option>
|
||||
</select>
|
||||
<input type="hidden" name="search_param[file_type][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="上传方式">上传方式</label>
|
||||
<div class="layui-input-inline">
|
||||
<select id="upload_type" name="search_param[upload_type][value]">
|
||||
<option value="">请选择上传方式</option>
|
||||
<option value=""></option>
|
||||
<option value="local">本地上传</option>
|
||||
<option value="ali-oss">阿里云OSS</option>
|
||||
<option value="qiniu-kodo">七牛云KODO</option>
|
||||
</select>
|
||||
<input type="hidden" name="search_param[upload_type][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="创建者">创建者</label>
|
||||
<div class="layui-input-inline">
|
||||
<div class="xmSelect"
|
||||
data-name="search_param[create_admin_user_id][value]"
|
||||
data-sourceType="route"
|
||||
data-source="/admin.user/index"
|
||||
data-sourceTree="false"
|
||||
data-paging="true"
|
||||
data-valueField="id"
|
||||
data-textField="nickname"
|
||||
data-placeholder="请选择创建者"
|
||||
></div>
|
||||
<input type="hidden" name="search_param[create_admin_user_id][condition]" value="FIND_IN_SET">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="创建时间">创建时间</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input laydate"
|
||||
id="create_time" name="search_param[create_time][value]"
|
||||
data-type="datetime" data-isRange="true" placeholder="请选择创建时间">
|
||||
<input type="hidden" name="search_param[create_time][condition]" value="BETWEEN">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="laytp-search-form">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="button" class="laytp-btn laytp-btn-sm laytp-search-form-reset">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<table id="laytp-card" lay-filter="laytp-card" style="width:100%"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="default-toolbar">
|
||||
<button class="laytp-btn laytp-btn-warming laytp-btn-md" lay-event="search">
|
||||
<i class="layui-icon layui-icon-search"></i>
|
||||
搜索
|
||||
</button>
|
||||
{{# if(facade.hasAuth("/admin.files/recycle")){ }}
|
||||
<button class="laytp-btn laytp-btn-success laytp-btn-md" lay-event="recycle">
|
||||
<i class="layui-icon layui-icon-delete"></i>
|
||||
回收站
|
||||
</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="default-bar">
|
||||
<div class="layui-row">
|
||||
{{# if(facade.hasAuth("/admin.files/del")){ }}
|
||||
<div class="layui-col-md4">
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-xs" lay-event="del">
|
||||
<i class="layui-icon layui-icon-delete"></i> 删除
|
||||
</button>
|
||||
</div>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.files/preview")){ }}
|
||||
<div class="layui-col-md4">
|
||||
{{# if(d.file_type!="file"){ }}
|
||||
<button class="laytp-btn laytp-btn-normal laytp-btn-xs" lay-event="preview">
|
||||
<i class="layui-icon layui-icon-eye"></i> 预览
|
||||
</button>
|
||||
{{# } }}
|
||||
</div>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.files/download")){ }}
|
||||
<div class="layui-col-md4">
|
||||
<button class="laytp-btn laytp-btn-warming laytp-btn-xs" lay-event="download">
|
||||
<i class="layui-icon layui-icon-download-circle"></i> 下载
|
||||
</button>
|
||||
</div>
|
||||
{{# } }}
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/admin/js/files.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/admin/js/files.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+189
@@ -0,0 +1,189 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>回收站</title>
|
||||
</head>
|
||||
<body class="laytp-container-recycle">
|
||||
<div id="recycle-search-form" style="display:none;">
|
||||
<div class="layui-layer-title">搜索</div>
|
||||
<form class="layui-form search-form-body" lay-filter="layui-form" style="margin-top:20px;">
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="ID">ID</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="search_param[id][value]" id="id" placeholder="请输入ID"
|
||||
class="layui-input" autocomplete="off">
|
||||
<input type="hidden" name="search_param[id][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="所属分类">所属分类</label>
|
||||
<div class="layui-input-inline">
|
||||
<div class="xmSelect"
|
||||
data-name="search_param[category_id][value]"
|
||||
data-sourceType="route"
|
||||
data-source="/admin.files.category/index"
|
||||
data-sourceTree="true"
|
||||
data-paging="false"
|
||||
data-valueField="id"
|
||||
data-textField="name"
|
||||
data-placeholder="请选择所属分类"
|
||||
></div>
|
||||
<input type="hidden" name="search_param[category_id][condition]" value="FIND_IN_SET">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="文件名称">文件名称</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="name" name="search_param[name][value]" placeholder="请输入文件名称" class="layui-input">
|
||||
<input type="hidden" name="search_param[name][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="文件类型">文件类型</label>
|
||||
<div class="layui-input-inline">
|
||||
<select id="file_type" name="search_param[file_type][value]">
|
||||
<option value="">请选择文件类型</option>
|
||||
<option value=""></option>
|
||||
<option value="image">图片</option>
|
||||
<option value="video">视频</option>
|
||||
<option value="audio">音频</option>
|
||||
<option value="file">文件</option>
|
||||
</select>
|
||||
<input type="hidden" name="search_param[file_type][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="上传方式">上传方式</label>
|
||||
<div class="layui-input-inline">
|
||||
<select id="upload_type" name="search_param[upload_type][value]">
|
||||
<option value="">请选择上传方式</option>
|
||||
<option value=""></option>
|
||||
<option value="local">本地上传</option>
|
||||
<option value="ali-oss">阿里云OSS</option>
|
||||
<option value="qiniu-kodo">七牛云KODO</option>
|
||||
</select>
|
||||
<input type="hidden" name="search_param[upload_type][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="创建者">创建者</label>
|
||||
<div class="layui-input-inline">
|
||||
<div class="xmSelect"
|
||||
data-name="search_param[create_admin_user_id][value]"
|
||||
data-sourceType="route"
|
||||
data-source="/admin.user/index"
|
||||
data-sourceTree="false"
|
||||
data-paging="true"
|
||||
data-valueField="id"
|
||||
data-textField="nickname"
|
||||
data-placeholder="请选择创建者"
|
||||
></div>
|
||||
<input type="hidden" name="search_param[create_admin_user_id][condition]" value="FIND_IN_SET">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="最后更新者">最后更新者</label>
|
||||
<div class="layui-input-inline">
|
||||
<div class="xmSelect"
|
||||
data-name="search_param[update_admin_user_id][value]"
|
||||
data-sourceType="route"
|
||||
data-source="/admin.user/index"
|
||||
data-sourceTree="false"
|
||||
data-paging="true"
|
||||
data-valueField="id"
|
||||
data-textField="nickname"
|
||||
data-placeholder="请选择最后更新者"
|
||||
></div>
|
||||
<input type="hidden" name="search_param[update_admin_user_id][condition]" value="FIND_IN_SET">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="创建时间">创建时间</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input laydate"
|
||||
id="create_time" name="search_param[create_time][value]"
|
||||
data-type="datetime" data-isRange="true" placeholder="请选择创建时间">
|
||||
<input type="hidden" name="search_param[create_time][condition]" value="BETWEEN">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="更新时间">更新时间</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input laydate"
|
||||
id="update_time" name="search_param[update_time][value]"
|
||||
data-type="datetime" data-isRange="true" placeholder="请选择更新时间">
|
||||
<input type="hidden" name="search_param[update_time][condition]" value="BETWEEN">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="删除时间">删除时间</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input laydate"
|
||||
id="delete_time" name="search_param[delete_time][value]"
|
||||
data-type="datetime" data-isRange="true" placeholder="请选择删除时间">
|
||||
<input type="hidden" name="search_param[delete_time][condition]" value="BETWEEN">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="laytp-recycle-search-form">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="button" class="laytp-btn laytp-btn-sm laytp-recycle-search-form-reset">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<table id="laytp-recycle-table" lay-filter="laytp-recycle-table"></table>
|
||||
|
||||
<script type="text/html" id="recycle-default-toolbar">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-md" lay-event="restore">
|
||||
<i class="laytp-icon laytp-icon-back"></i>
|
||||
还原
|
||||
</button>
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-md" lay-event="true-del">
|
||||
<i class="layui-icon layui-icon-delete"></i>
|
||||
删除
|
||||
</button>
|
||||
<button class="laytp-btn laytp-btn-warming laytp-btn-md" lay-event="recycle-search">
|
||||
<i class="layui-icon layui-icon-search"></i>
|
||||
搜索
|
||||
</button>
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="recycle-default-bar">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-xs" lay-event="restore"><i class="laytp-icon laytp-icon-back"></i>还原</button>
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-xs" lay-event="true-del"><i class="layui-icon layui-icon-delete"></i>删除</button>
|
||||
</script>
|
||||
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/admin/js/filesRecycle.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/admin/js/filesRecycle.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+199
@@ -0,0 +1,199 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
|
||||
<meta http-equiv="Cache" content="no-cache">
|
||||
<meta http-equiv="Pragma" content="no-cache" />
|
||||
<meta http-equiv="Expires" content="0" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title> Laytp Admin </title>
|
||||
<!-- 让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>
|
||||
localStorage.setItem("version","3.0.3.Release");//静态资源版本号
|
||||
// localStorage.setItem("adminDomainModel","true");// /public/admin目录是否独立绑定域名模式
|
||||
// localStorage.setItem("adminApiDomain","http://localadminapi.laytp.com");// 请求后台接口的域名
|
||||
// localStorage.setItem("staticDomain","http://localstatic.laytp.com");// 请求静态资源的域名
|
||||
localStorage.setItem("adminDomainModel","false");// /public/admin目录是否独立绑定域名模式
|
||||
localStorage.setItem("adminApiDomain","");// 请求后台接口的域名
|
||||
localStorage.setItem("staticDomain","");// 请求静态资源的域名
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v="+localStorage.getItem("version")+"'>");
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/admin/css/load.css?v="+localStorage.getItem("version")+"'>");
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/admin/css/admin.css?v="+localStorage.getItem("version")+"'>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v="+localStorage.getItem("version")+"'>");
|
||||
document.write("<link rel='stylesheet' href='/static/admin/css/load.css?v="+localStorage.getItem("version")+"'>");
|
||||
document.write("<link rel='stylesheet' href='/static/admin/css/admin.css?v="+localStorage.getItem("version")+"'>");
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<!-- 结 构 代 码 -->
|
||||
<body class="layui-layout-body laytp-admin" style="display: none;">
|
||||
<!-- 布 局 框 架 -->
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
<div class="layui-header">
|
||||
<!-- 菜 单 顶 部 -->
|
||||
<div class="layui-logo">
|
||||
<!-- 图 标 -->
|
||||
<img class="logo">
|
||||
<!-- 标 题 -->
|
||||
<span class="title"></span>
|
||||
</div>
|
||||
<!-- 顶 部 左 侧 功 能 -->
|
||||
<ul class="layui-nav layui-layout-left">
|
||||
<li class="collapse layui-nav-item"><a href="javascript:void(0);" class="layui-icon layui-icon-shrink-right"></a></li>
|
||||
<li class="refresh layui-nav-item"><a href="javascript:void(0);" class="layui-icon layui-icon-refresh-1" loading=600></a></li>
|
||||
</ul>
|
||||
<!-- 多 系 统 菜 单 -->
|
||||
<div id="control" class="layui-layout-control"></div>
|
||||
<!-- 顶 部 右 侧 菜 单 -->
|
||||
<ul class="layui-nav layui-layout-right">
|
||||
<li class="layui-nav-item layui-hide-xs"><a href="javascript:void(0);" class="menuSearch layui-icon layui-icon-search"></a></li>
|
||||
<li class="layui-nav-item layui-hide-xs"><a href="javascript:void(0);" class="fullScreen layui-icon layui-icon-screen-full"></a></li>
|
||||
<li class="layui-nav-item layui-hide-xs"><a href="http://www.laytp.com" class="layui-icon layui-icon-website"></a></li>
|
||||
<li class="layui-nav-item layui-hide-xs message"></li>
|
||||
<li class="layui-nav-item user">
|
||||
<!-- 头 像 -->
|
||||
<a href="javascript:;">
|
||||
<img class="layui-nav-img">
|
||||
</a>
|
||||
<!-- 功 能 菜 单 -->
|
||||
<dl class="layui-nav-child">
|
||||
<dd><a user-menu-url="/admin/user/single.html" user-menu-id="999999999" user-menu-title="基本资料">基本资料</a></dd>
|
||||
<dd><a href="javascript:void(0);" class="logout">退出登录</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
<!-- 主 题 配 置 -->
|
||||
<li class="layui-nav-item setting"><a href="javascript:void(0);" class="layui-icon layui-icon-more-vertical"></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- 侧 边 区 域 -->
|
||||
<div class="layui-side layui-bg-black">
|
||||
<!-- 菜 单 顶 部 -->
|
||||
<div class="layui-logo">
|
||||
<!-- 图 标 -->
|
||||
<img class="logo" />
|
||||
<!-- 标 题 -->
|
||||
<span class="title"></span>
|
||||
</div>
|
||||
<!-- 菜 单 内 容 -->
|
||||
<div class="layui-side-scroll">
|
||||
<div id="sideMenu"></div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 视 图 页 面 -->
|
||||
<div class="layui-body">
|
||||
<!-- 内 容 页 面 -->
|
||||
<div id="content"></div>
|
||||
</div>
|
||||
<!-- 遮 盖 层 -->
|
||||
<div class="laytp-cover"></div>
|
||||
<!-- 加 载 动 画-->
|
||||
<div class="loader-main">
|
||||
<div class="loader"></div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 移 动 端 便 捷 操 作 -->
|
||||
<div class="laytp-collasped-pe collaspe" style="display:none;">
|
||||
<a href="javascript:void(0);" class="layui-icon layui-icon-shrink-right"></a>
|
||||
</div>
|
||||
<!-- 依 赖 脚 本 -->
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<!-- 框 架 初 始 化 -->
|
||||
<script>
|
||||
window.ltVersion = '3.0.0';
|
||||
layui.use(['laytp','admin','popup','context'], function() {
|
||||
var context = layui.context;
|
||||
// ajax请求,更新缓存
|
||||
facade.ajax({route: '/admin.user/loginInfo',successAlert:false}).done(function(res){
|
||||
if (res['code'] === 0) {
|
||||
ltVersion = res.data.ltVersion;
|
||||
context.put("user", res.data.user);
|
||||
context.put("authList", res.data.authList);
|
||||
context.put("pluginConf", res.data.pluginConf);
|
||||
|
||||
// 初始化顶部用户信息
|
||||
var user = res.data.user;
|
||||
if(user){
|
||||
layui.admin.setAvatar(user.avatar_file.path,user.nickname);
|
||||
layui.admin.setConfigType("yml");
|
||||
var laytpConfigYmlPath= '';
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
laytpConfigYmlPath = localStorage.getItem("staticDomain") + "/component/laytp/config/laytp.config.yml?v=" + localStorage.getItem("version");
|
||||
}else{
|
||||
laytpConfigYmlPath = "/static/component/laytp/config/laytp.config.yml?v=" + localStorage.getItem("version")
|
||||
}
|
||||
layui.admin.setConfigPath(laytpConfigYmlPath);
|
||||
layui.admin.render();
|
||||
$('body').show();
|
||||
}else{
|
||||
facade.redirect("/admin/login.html");
|
||||
return false;
|
||||
}
|
||||
// 登出逻辑
|
||||
layui.admin.logout(function(){
|
||||
layui.popup.success("退出成功",function(){
|
||||
facade.ajax({
|
||||
route: "/admin.user/logout"
|
||||
}).done(function(){
|
||||
facade.redirect("/admin/login.html");
|
||||
});
|
||||
});
|
||||
// 退出逻辑 返回 true / false
|
||||
return true;
|
||||
});
|
||||
// 重写消息回调 [消息列表点击事件]
|
||||
// admin.message(function(id, title, context, form) {});
|
||||
}else{
|
||||
$('.layui-layout-admin').html('');
|
||||
$('body').show();
|
||||
}
|
||||
}).fail(function(){
|
||||
$('.layui-layout-admin').html('');
|
||||
$('body').show();
|
||||
});
|
||||
|
||||
// 重新渲染菜单
|
||||
window.renderMenu = function(){
|
||||
layui.admin.setConfigType("yml");
|
||||
var laytpConfigYmlPath= '';
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
laytpConfigYmlPath = localStorage.getItem("staticDomain") + "/component/laytp/config/laytp.config.yml?v=" + localStorage.getItem("version");
|
||||
}else{
|
||||
laytpConfigYmlPath = "/static/component/laytp/config/laytp.config.yml?v=" + localStorage.getItem("version")
|
||||
}
|
||||
layui.admin.setConfigPath(laytpConfigYmlPath);
|
||||
var config = layui.admin.readConfig();
|
||||
layui.admin.menuRender(config);
|
||||
};
|
||||
});
|
||||
</script>
|
||||
<script type="text/html" id="default-toolbar">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-md" lay-event="add">
|
||||
<i class="layui-icon layui-icon-add-1"></i>
|
||||
新增
|
||||
</button>
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-md" lay-event="batchRemove">
|
||||
<i class="layui-icon layui-icon-delete"></i>
|
||||
删除
|
||||
</button>
|
||||
<button class="laytp-btn laytp-btn-warming laytp-btn-md" lay-event="batchRemove">
|
||||
<i class="layui-icon layui-icon-search"></i>
|
||||
搜索
|
||||
</button>
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+180
@@ -0,0 +1,180 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>登录 - 会员分销系统</title>
|
||||
<!-- 资 源 引 入 -->
|
||||
<!-- 让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>
|
||||
localStorage.setItem("version","3.0.3.Release");//静态资源版本号
|
||||
// localStorage.setItem("adminDomainModel","true");// /public/admin目录是否独立绑定域名模式
|
||||
// localStorage.setItem("adminApiDomain","http://localadminapi.laytp.com");// 请求后台接口的域名
|
||||
// localStorage.setItem("staticDomain","http://localstatic.laytp.com");// 请求静态资源的域名
|
||||
localStorage.setItem("adminDomainModel","false");// /public/admin目录是否独立绑定域名模式
|
||||
localStorage.setItem("adminApiDomain","");// 请求后台接口的域名
|
||||
localStorage.setItem("staticDomain","");// 请求静态资源的域名
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v="+localStorage.getItem("version")+"'>");
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/admin/css/other/login.css?v="+localStorage.getItem("version")+"'>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v="+localStorage.getItem("version")+"'>");
|
||||
document.write("<link rel='stylesheet' href='/static/admin/css/other/login.css?v="+localStorage.getItem("version")+"'>");
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<!-- 代 码 结 构 -->
|
||||
<body style="background-size: cover;display:none;">
|
||||
<form class="layui-form" lay-filter="layui-form" action="javascript:void(0);">
|
||||
<div class="layui-form-item">
|
||||
<img class="logo" />
|
||||
<div class="title">会员分销系统</div>
|
||||
<div class="desc">
|
||||
premium会员分销系统
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<input name="username" placeholder="账 户 : " lay-verify="required" hover class="layui-input" autocomplete="off" />
|
||||
</div>
|
||||
<div class="layui-form-item login-form-item">
|
||||
<input type="password" name="password" placeholder="密 码 : " lay-verify="required" hover class="layui-input" />
|
||||
</div>
|
||||
<div class="layui-form-item login-form-item verifyCodeItem">
|
||||
<input name="verify_code" placeholder="验证码 : " hover lay-verify="required" class="code layui-input layui-input-inline" autocomplete="off" />
|
||||
<img class="codeImage" />
|
||||
</div>
|
||||
<div class="layui-form-item login-form-item">
|
||||
<input type="checkbox" name="remember" title="记住密码" lay-skin="primary" checked>
|
||||
</div>
|
||||
<div class="layui-form-item login-form-item">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary login" lay-submit lay-filter="login">
|
||||
登 入
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</body>
|
||||
<!-- 依 赖 脚 本 -->
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<!-- 框 架 初 始 化 -->
|
||||
<script>
|
||||
let tokenCookieKey = "laytpAdminToken";//Header中传递的token的key名称
|
||||
let tokenKey = "LayTp-Admin-Token";//Header中传递的token的key名称
|
||||
let ajaxHeaders = {
|
||||
"LayTp-Admin-Token": getCookie(tokenCookieKey),
|
||||
"Cache-Control": "no-cache"
|
||||
};//ajax请求默认发送的Header部分
|
||||
|
||||
function getCookie(name) {
|
||||
let arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
|
||||
if (arr != null) {
|
||||
return (arr[2]);
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
layui.use(['laytp','button'], function() {
|
||||
var form = layui.form;
|
||||
var $ = layui.$;
|
||||
var context = layui.context;
|
||||
if(localStorage.getItem("staticDomain")) {
|
||||
$('body').attr('background', localStorage.getItem("staticDomain") + '/admin/images/background.svg');
|
||||
$('.logo').attr('src', localStorage.getItem("staticDomain") + '/admin/images/logo.png');
|
||||
}else{
|
||||
$('body').attr('background', '/static/admin/images/background.svg');
|
||||
$('.logo').attr('src', '/static/admin/images/logo.png');
|
||||
}
|
||||
if(localStorage.getItem("adminApiDomain")) {
|
||||
$('.codeImage').attr('src', localStorage.getItem("adminApiDomain") + '/captcha/login');
|
||||
}else{
|
||||
$('.codeImage').attr('src', '/captcha/login');
|
||||
}
|
||||
|
||||
//获取是否需要验证码配置项
|
||||
facade.ajax({
|
||||
route: "/admin.common/getLoginNeedCaptchaConf",
|
||||
successAlert: false
|
||||
}).done(function (res) {
|
||||
if (res.code === 0) {
|
||||
if(res.data == 1){
|
||||
if(localStorage.getItem("adminApiDomain")) {
|
||||
$('.codeImage').attr('src', localStorage.getItem("adminApiDomain") + '/captcha/login');
|
||||
}else{
|
||||
$('.codeImage').attr('src', '/captcha/login');
|
||||
}
|
||||
}else{
|
||||
$(".verifyCodeItem").remove();
|
||||
}
|
||||
}
|
||||
// 背景图,验证码都是使用js动态加载的,因此需要先隐藏整个body层,然后执行加载背景图和验证码,然后显示body层,如果不这么做,页面加载时会闪烁
|
||||
$('body').show();
|
||||
});
|
||||
|
||||
//点击验证码图片,获取新的验证码图片地址
|
||||
layui.$(document).off("click", ".codeImage").on("click", ".codeImage", function () {
|
||||
if(localStorage.getItem("adminApiDomain")) {
|
||||
this.src = localStorage.getItem("adminApiDomain") + "/captcha/login?v=" + Math.random();
|
||||
}else{
|
||||
this.src = "/captcha/login?v=" + Math.random();
|
||||
}
|
||||
});
|
||||
|
||||
// 登 录 提 交
|
||||
form.on('submit(login)', function(data) {
|
||||
var buttonAnim = layui.button.load({elem: '.login'});
|
||||
data.field.session_id = facade.getCookie('PHPSESSID');
|
||||
facade.ajax({route: '/admin.user/login', data: data.field, successAlert: false}).done(function(res){
|
||||
if (res['code'] === 0) {
|
||||
layui.popup.success("登录成功",function(){
|
||||
var isAdminDomainModel = facade.isAdminDomainModel();
|
||||
facade.clearCache();
|
||||
let days = 0;
|
||||
if (data.field.remember === 'on') {
|
||||
days = 365;
|
||||
}
|
||||
context.put("user", res.data.user);
|
||||
context.put("authList", res.data.authList);
|
||||
context.put("pluginConf", res.data.pluginConf);
|
||||
facade.setCookie(tokenCookieKey, res['data']['user']['token'], days);
|
||||
context.put("tokenCookieKey",tokenCookieKey);
|
||||
context.put("tokenKey",tokenKey);
|
||||
//ajaxHeaders
|
||||
var ajaxHeaders = {};
|
||||
ajaxHeaders[context.get("tokenKey")] = facade.getCookie(context.get("tokenCookieKey"));
|
||||
ajaxHeaders["Cache-Control"] = "no-cache";
|
||||
context.put("ajaxHeaders", ajaxHeaders);
|
||||
//数据表格顶部按钮,默认的按钮监听事件,lay-event的值,包括添加、编辑、删除、搜索、刷新、回收站、回收站刷新、回收站搜索、还原、真实删除
|
||||
context.put("defaultTableToolbar",['add', 'edit', 'del', 'search', 'recycle', 'refresh', 'recycle-refresh', 'recycle-search', 'restore', 'true-del']);
|
||||
//数据表格每行的操作列按钮
|
||||
context.put("defaultTableTool",['detail', 'edit', 'del', 'restore', 'true-del']);
|
||||
if(isAdminDomainModel){
|
||||
window.location.href = '/index.html';
|
||||
}else{
|
||||
window.location.href = '/admin/index.html';
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$(".codeImage").click();
|
||||
}
|
||||
buttonAnim.stop();
|
||||
}).fail(function(){
|
||||
buttonAnim.stop();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</html>
|
||||
Executable
+67
@@ -0,0 +1,67 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>添加页面</title>
|
||||
</head>
|
||||
<body>
|
||||
<form class="layui-form" lay-filter="layui-form">
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="main-container">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="add">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'],function(){
|
||||
layui.form.on('submit(add)', function(data){
|
||||
var btnAnim = layui.button.load({elem:$(this)});
|
||||
try{
|
||||
data = facade.setEditorField(data);
|
||||
}catch (e) {
|
||||
facade.error(e);
|
||||
return false;
|
||||
}
|
||||
facade.ajax({
|
||||
route:'/admin.login.log/add',
|
||||
data : data.field
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
parent.layui.layer.close(parent.layui.layer.getFrameIndex(window.name));//关闭当前页
|
||||
parent.layui.table.reloadData("laytp-table");
|
||||
}
|
||||
btnAnim.stop();
|
||||
}).fail(function(){
|
||||
btnAnim.stop();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+94
@@ -0,0 +1,94 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>编辑页面</title>
|
||||
</head>
|
||||
<body>
|
||||
<script type="text/html" id="form">
|
||||
<input type="hidden" name="id" value="{{= d.id }}" />
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="main-container">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="laytp-form">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
<form class="layui-form" lay-filter="layui-form"></form>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'],function(){
|
||||
let form = layui.form;
|
||||
let $ = layui.jquery;
|
||||
//获取参数ID
|
||||
var id = facade.getUrlParam('id');
|
||||
if(!id){
|
||||
facade.error('参数ID不能为空');
|
||||
return false;
|
||||
}
|
||||
|
||||
//获取数据,渲染到对应的节点上
|
||||
facade.ajax({
|
||||
route: "/admin.login.log/info",
|
||||
data: {id: id},
|
||||
successAlert: false,
|
||||
showLoading: true
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
layui.laytpl($("#form").html()).render(res.data,function(string){
|
||||
$("form").html(string);
|
||||
layui.laytpForm.render();
|
||||
form.render();
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
form.on('submit(laytp-form)', function(data){
|
||||
var btnAnim = layui.button.load({elem:$(this)});
|
||||
try{
|
||||
data = facade.setEditorField(data);
|
||||
}catch (e) {
|
||||
facade.error(e);
|
||||
return false;
|
||||
}
|
||||
facade.ajax({
|
||||
route:'/admin.login.log/edit',
|
||||
data:data.field
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
parent.layui.layer.close(parent.layui.layer.getFrameIndex(window.name));//关闭当前页
|
||||
parent.layui.table.reloadData("laytp-table");
|
||||
}
|
||||
btnAnim.stop();
|
||||
}).fail(function(){
|
||||
btnAnim.stop();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+162
@@ -0,0 +1,162 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>列表页面</title>
|
||||
</head>
|
||||
<body class="laytp-container">
|
||||
<div id="search-form" style="display:none;">
|
||||
<div class="layui-layer-title">搜索</div>
|
||||
<form class="layui-form search-form-body" lay-filter="layui-form" style="margin-top:20px;">
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="ID">ID</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="id" name="search_param[id][value]" placeholder="请输入ID" class="layui-input">
|
||||
<input type="hidden" name="search_param[id][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="登录状态">登录状态</label>
|
||||
<div class="layui-input-inline">
|
||||
<select id="login_status" name="search_param[login_status][value]">
|
||||
<option value="">请选择登录状态</option>
|
||||
<option value=""></option>
|
||||
<option value="1">成功</option>
|
||||
<option value="2">失败</option>
|
||||
</select>
|
||||
<input type="hidden" name="search_param[login_status][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="登录者">登录者</label>
|
||||
<div class="layui-input-inline">
|
||||
<div class="xmSelect"
|
||||
data-name="search_param[admin_id][value]"
|
||||
data-sourceType="route"
|
||||
data-source="/admin.user/index"
|
||||
data-sourceTree="false"
|
||||
data-paging="true"
|
||||
data-valueField="id"
|
||||
data-textField="nickname"
|
||||
data-placeholder="请选择登录者"
|
||||
></div>
|
||||
<input type="hidden" name="search_param[admin_id][condition]" value="FIND_IN_SET">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="请求体">请求体</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" id="request_body" name="search_param[request_body][value]" placeholder="请输入请求体" class="layui-input">
|
||||
<input type="hidden" name="search_param[request_body][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="请求头">请求头</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" id="request_header" name="search_param[request_header][value]" placeholder="请输入请求头" class="layui-input">
|
||||
<input type="hidden" name="search_param[request_header][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="IP">IP</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="ip" name="search_param[ip][value]" placeholder="请输入IP" class="layui-input">
|
||||
<input type="hidden" name="search_param[ip][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="创建时间">创建时间</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input laydate"
|
||||
id="create_time" name="search_param[create_time][value]"
|
||||
data-type="datetime" data-isRange="true" placeholder="请选择创建时间">
|
||||
<input type="hidden" name="search_param[create_time][condition]" value="BETWEEN">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="laytp-search-form">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="button" class="laytp-btn laytp-btn-sm laytp-search-form-reset">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<table id="laytp-table" lay-filter="laytp-table"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="default-toolbar">
|
||||
{{# if(facade.hasAuth("/admin.login.log/edit") || facade.hasAuth("/admin.login.log/del")){ }}
|
||||
<div class="dropdown-menu">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-md">
|
||||
<i class="layui-icon layui-icon-triangle-d"></i>
|
||||
批量操作
|
||||
</button>
|
||||
<ul class="dropdown-menu-nav layui-anim-upbit dropdown-bottom-left layui-anim">
|
||||
<div class="dropdown-anchor"></div>
|
||||
{{# if(facade.hasAuth("/admin.login.log/edit")){ }}
|
||||
<li><a lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a></li>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.login.log/del")){ }}
|
||||
<li><a lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a></li>
|
||||
{{# } }}
|
||||
</ul>
|
||||
</div>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.login.log/add")){ }}
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-md" lay-event="add">
|
||||
<i class="layui-icon layui-icon-add-1"></i>
|
||||
新增
|
||||
</button>
|
||||
{{# } }}
|
||||
<button class="laytp-btn laytp-btn-warming laytp-btn-md" lay-event="search">
|
||||
<i class="layui-icon layui-icon-search"></i>
|
||||
搜索
|
||||
</button>
|
||||
{{# if(facade.hasAuth("/admin.login.log/recycle")){ }}
|
||||
<button class="laytp-btn laytp-btn-success laytp-btn-md" lay-event="recycle">
|
||||
<i class="layui-icon layui-icon-delete"></i>
|
||||
回收站
|
||||
</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="default-bar">
|
||||
{{# if(facade.hasAuth("/admin.login.log/edit")){ }}
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</button>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.login.log/del")){ }}
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/admin/js/login/log.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/admin/js/login/log.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+118
@@ -0,0 +1,118 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>LayTp极速后台开发框架MEditor编辑器</title>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/plugin/meditor/css/editormd.css?v="+localStorage.getItem("version")+"'>");
|
||||
document.write("<script type=\"text/javascript\" src='" + localStorage.getItem("staticDomain") + "/component/jquery_3.3.1.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script type=\"text/javascript\" src='" + localStorage.getItem("staticDomain") + "/plugin/meditor/editormd.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/plugin/meditor/css/editormd.css?v="+localStorage.getItem("version")+"'>");
|
||||
document.write("<script type=\"text/javascript\" src='/static/component/jquery_3.3.1.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script type=\"text/javascript\" src='/static/plugin/meditor/editormd.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<style>
|
||||
body {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="editor" id="meditorMeditor" name="meditorMeditor"></div>
|
||||
<script>
|
||||
/**
|
||||
* 获取Url中传递的参数值
|
||||
* @param name 参数名
|
||||
* @returns {string}
|
||||
*/
|
||||
function getUrlParam(name) {
|
||||
let sear = window.location.search.substr(1);
|
||||
let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
|
||||
let r = sear.match(reg);
|
||||
return r ? sear.match(reg)[2] : "";
|
||||
}
|
||||
|
||||
/**
|
||||
* 如下两句为了渲染编辑页面,编辑器的内容
|
||||
*/
|
||||
let id = getUrlParam('id');
|
||||
// 得到url中传递的val,val的值就是编辑页面需要渲染编辑器内容的值
|
||||
let editorVal = $('.editorContent[data-id="'+id+'"]', window.parent.document).text();
|
||||
|
||||
// 得到url中传递的upload_type,upload_type的值就是编辑器的文件上传方式
|
||||
let uploadType = getUrlParam('upload_type');
|
||||
|
||||
// 编辑器的文件上传方式如果没有设置,默认使用local,本地上传方式
|
||||
if(!uploadType){
|
||||
uploadType = 'local';
|
||||
}
|
||||
|
||||
// 验证upload_type的值,目前仅允许设置成local ali-oss qiniu-kodo三种中的一种
|
||||
if(uploadType !== 'local' && uploadType !== 'ali-oss' && uploadType !== 'qiniu-kodo'){
|
||||
console.log('编辑器的文件上传方式错误');
|
||||
}
|
||||
|
||||
// 根据上传方式和是否多域名配置的不同,设置编辑器的配置 imageUploadURL
|
||||
var imageUploadURL = '';
|
||||
if(uploadType === 'local'){
|
||||
if(localStorage.getItem("adminApiDomain")){
|
||||
imageUploadURL = localStorage.getItem("adminApiDomain") + '/plugin/meditor/common/upload/accept/file/dir/meditor';
|
||||
}else{
|
||||
imageUploadURL = '/plugin/meditor/common/upload/accept/file/dir/meditor';
|
||||
}
|
||||
}else if(uploadType === 'ali-oss'){
|
||||
if(localStorage.getItem("adminApiDomain")){
|
||||
imageUploadURL = localStorage.getItem("adminApiDomain") + '/plugin/meditor/common/upload/accept/file/dir/meditor/upload_type/ali-oss';
|
||||
}else{
|
||||
imageUploadURL = '/plugin/meditor/common/upload/accept/file/dir/meditor/upload_type/ali-oss';
|
||||
}
|
||||
}else if(uploadType === 'qiniu-kodo'){
|
||||
if(localStorage.getItem("adminApiDomain")){
|
||||
imageUploadURL = localStorage.getItem("adminApiDomain") + '/plugin/meditor/common/upload/accept/file/dir/meditor/upload_type/qiniu-kodo';
|
||||
}else{
|
||||
imageUploadURL = '/plugin/meditor/common/upload/accept/file/dir/meditor/upload_type/qiniu-kodo';
|
||||
}
|
||||
}
|
||||
|
||||
// 根据是否多域名配置,设置编辑器的配置 path
|
||||
var path = '';
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
path = localStorage.getItem("staticDomain") + '/plugin/meditor/lib/';
|
||||
}else{
|
||||
path = '/static/plugin/meditor/lib/';
|
||||
}
|
||||
|
||||
window.me = editormd("meditorMeditor", {
|
||||
autoFocus: false,
|
||||
saveHTMLToTextarea: true,
|
||||
name: name,
|
||||
value: editorVal,
|
||||
width: "99%",
|
||||
zIndex: 0,
|
||||
height: 558,
|
||||
syncScrolling: "single",
|
||||
path: path,
|
||||
taskList: true,
|
||||
tex: true, // 默认不解析
|
||||
flowChart: true, // 默认不解析
|
||||
sequenceDiagram: true, // 默认不解析
|
||||
imageUpload: true,
|
||||
imageFormats: ["jpg", "jpeg", "gif", "png", "bmp", "webp", "JPG", "JPEG", "GIF", "PNG", "BMP", "WEBP"],
|
||||
imageUploadURL: imageUploadURL,
|
||||
});
|
||||
|
||||
window.getEditorContent = function () {
|
||||
return window.me.getMarkdown();
|
||||
}
|
||||
|
||||
window.getHtmlContent = function(){
|
||||
return $("#meditorMeditor .markdown-body.editormd-preview-container").html();
|
||||
// return window.me.getHTML();
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+130
@@ -0,0 +1,130 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>添加页面</title>
|
||||
</head>
|
||||
<body>
|
||||
<form class="layui-form" lay-filter="layui-form">
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="main-container">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="邮箱">邮箱</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="email" id="email" placeholder="请输入邮箱" class="layui-input" lay-verify="email">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="密码">密码</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="password" name="password" id="password" placeholder="请输入密码" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="重复密码">重复密码</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="password" name="re_password" id="re_password" placeholder="请输入密码" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="昵称">昵称</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="nickname" id="nickname" placeholder="请输入昵称" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="性别">性别</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="sex" id="sex-1" value="1" title="男" />
|
||||
<input type="radio" name="sex" id="sex-2" value="2" title="女" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="vip到期时间">vip到期时间</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" class="layui-input laydate"
|
||||
name="vip_time" id="vip_time" data-type="datetime"
|
||||
autocomplete="off" placeholder="请选择vip到期时间" lay-verify="" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="头像">头像</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="laytpUpload"
|
||||
data-name="avatar_pic"
|
||||
data-accept="image"
|
||||
data-multi="false"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="账号状态">账号状态</label>
|
||||
<div class="layui-input-block">
|
||||
<!-- 隐藏域设置开关未选中时需要传递的参数值 -->
|
||||
<input type="hidden" name="status" id="status-2" value="2" />
|
||||
<input type="checkbox" name="status" id="status-1" lay-skin="switch" lay-text="正常|锁定" value="1" checked="checked" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="add">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'],function(){
|
||||
layui.form.on('submit(add)', function(data){
|
||||
var btnAnim = layui.button.load({elem:$(this)});
|
||||
try{
|
||||
data = facade.setEditorField(data);
|
||||
}catch (e) {
|
||||
facade.error(e);
|
||||
return false;
|
||||
}
|
||||
facade.ajax({
|
||||
route:'/admin.member/add',
|
||||
data : data.field
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
parent.layui.layer.close(parent.layui.layer.getFrameIndex(window.name));//关闭当前页
|
||||
parent.layui.table.reloadData("laytp-table");
|
||||
}
|
||||
btnAnim.stop();
|
||||
}).fail(function(){
|
||||
btnAnim.stop();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+160
@@ -0,0 +1,160 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>编辑页面</title>
|
||||
</head>
|
||||
<body>
|
||||
<script type="text/html" id="form">
|
||||
<input type="hidden" name="id" value="{{= d.id }}" />
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="main-container">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="邮箱">邮箱</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="email" id="email" placeholder="请输入邮箱" value="{{=d.email}}" class="layui-input" lay-verify="email">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="密码">密码</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="password" name="password" id="password" placeholder="请输入密码,留空表示不修改" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="重复密码">重复密码</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="password" name="re_password" id="re_password" placeholder="请输入密码,留空表示不修改" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="昵称">昵称</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="nickname" id="nickname" placeholder="请输入昵称" value="{{=d.nickname}}" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="性别">性别</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="sex" id="sex-1" value="1" title="男" {{#if (d.sex == '1'){ }}checked="checked"{{# } }} />
|
||||
<input type="radio" name="sex" id="sex-2" value="2" title="女" {{#if (d.sex == '2'){ }}checked="checked"{{# } }} />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="vip到期时间">vip到期时间</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" class="layui-input laydate"
|
||||
name="vip_time" id="vip_time" data-type="datetime"
|
||||
autocomplete="off" placeholder="请选择vip到期时间" value="{{=d.vip_time}}" lay-verify="" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="头像">头像</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="laytpUpload"
|
||||
data-name="avatar_pic"
|
||||
data-accept="image"
|
||||
data-multi="false"
|
||||
data-uploaded="{{# if(d.avatar_pic_file){ }}{{=d.avatar_pic_file.path}}{{# } }}"
|
||||
data-uploadedId="{{=d.avatar_pic}}"
|
||||
data-uploadedFilename="{{# if(d.avatar_pic_file){ }}{{=d.avatar_pic_file.name}}{{# } }}"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="账号状态">账号状态</label>
|
||||
<div class="layui-input-block">
|
||||
<!-- 隐藏域设置开关未选中时需要传递的参数值 -->
|
||||
<input type="hidden" name="status" id="status-2" value="2" />
|
||||
<input type="checkbox" name="status" id="status-1" lay-skin="switch" lay-text="正常|锁定" value="1" {{# if(1 == d.status){ }}checked="checked"{{# } }} />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="laytp-form">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
<form class="layui-form" lay-filter="layui-form"></form>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'],function(){
|
||||
let form = layui.form;
|
||||
let $ = layui.jquery;
|
||||
//获取参数ID
|
||||
var id = facade.getUrlParam('id');
|
||||
if(!id){
|
||||
facade.error('参数ID不能为空');
|
||||
return false;
|
||||
}
|
||||
|
||||
//获取数据,渲染到对应的节点上
|
||||
facade.ajax({
|
||||
route: "/admin.member/info",
|
||||
data: {id: id},
|
||||
successAlert: false,
|
||||
showLoading: true
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
layui.laytpl($("#form").html()).render(res.data,function(string){
|
||||
$("form").html(string);
|
||||
layui.laytpForm.render();
|
||||
form.render();
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
form.on('submit(laytp-form)', function(data){
|
||||
var btnAnim = layui.button.load({elem:$(this)});
|
||||
try{
|
||||
data = facade.setEditorField(data);
|
||||
}catch (e) {
|
||||
facade.error(e);
|
||||
return false;
|
||||
}
|
||||
facade.ajax({
|
||||
route:'/admin.member/edit',
|
||||
data:data.field
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
parent.layui.layer.close(parent.layui.layer.getFrameIndex(window.name));//关闭当前页
|
||||
parent.layui.table.reloadData("laytp-table");
|
||||
}
|
||||
btnAnim.stop();
|
||||
}).fail(function(){
|
||||
btnAnim.stop();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+180
@@ -0,0 +1,180 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>列表页面</title>
|
||||
</head>
|
||||
<body class="laytp-container">
|
||||
<div id="search-form" style="display:none;">
|
||||
<div class="layui-layer-title">搜索</div>
|
||||
<form class="layui-form search-form-body" lay-filter="layui-form" style="margin-top:20px;">
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="ID">ID</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="id" name="search_param[id][value]" placeholder="请输入ID" class="layui-input">
|
||||
<input type="hidden" name="search_param[id][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="邮箱">邮箱</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="email" name="search_param[email][value]" placeholder="请输入邮箱" class="layui-input">
|
||||
<input type="hidden" name="search_param[email][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="昵称">昵称</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="nickname" name="search_param[nickname][value]" placeholder="请输入昵称" class="layui-input">
|
||||
<input type="hidden" name="search_param[nickname][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="性别">性别</label>
|
||||
<div class="layui-input-inline">
|
||||
<select id="sex" name="search_param[sex][value]">
|
||||
<option value="">请选择性别</option>
|
||||
<option value=""></option>
|
||||
<option value="1">男</option>
|
||||
<option value="2">女</option>
|
||||
</select>
|
||||
<input type="hidden" name="search_param[sex][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="vip到期时间">vip到期时间</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input laydate" id="vip_time" name="search_param[vip_time][value]"
|
||||
data-type="datetime"
|
||||
data-isRange="true"
|
||||
placeholder="请选择vip到期时间">
|
||||
<input type="hidden" name="search_param[vip_time][condition]" value="BETWEEN_STRTOTIME">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="注册时间">注册时间</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input laydate" id="login_time" name="search_param[login_time][value]"
|
||||
data-type="datetime"
|
||||
data-isRange="true"
|
||||
placeholder="请选择注册时间">
|
||||
<input type="hidden" name="search_param[login_time][condition]" value="BETWEEN">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="登录IP">登录IP</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="login_ip" name="search_param[login_ip][value]" placeholder="请输入登录IP" class="layui-input">
|
||||
<input type="hidden" name="search_param[login_ip][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="账号状态">账号状态</label>
|
||||
<div class="layui-input-inline">
|
||||
<select id="status" name="search_param[status][value]">
|
||||
<option value="">请选择账号状态</option>
|
||||
<option value="2">锁定</option>
|
||||
<option value="1">正常</option>
|
||||
</select>
|
||||
<input type="hidden" name="search_param[status][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="创建时间">创建时间</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input laydate" id="create_time" name="search_param[create_time][value]"
|
||||
data-type="datetime"
|
||||
data-isRange="true"
|
||||
placeholder="请选择创建时间">
|
||||
<input type="hidden" name="search_param[create_time][condition]" value="BETWEEN">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="laytp-search-form">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="button" class="laytp-btn laytp-btn-sm laytp-search-form-reset">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<table id="laytp-table" lay-filter="laytp-table"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="default-toolbar">
|
||||
{{# if(facade.hasAuth("/admin.member/edit") || facade.hasAuth("/admin.member/del")){ }}
|
||||
<div class="dropdown-menu">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-md">
|
||||
<i class="layui-icon layui-icon-triangle-d"></i>
|
||||
批量操作
|
||||
</button>
|
||||
<ul class="dropdown-menu-nav layui-anim-upbit dropdown-bottom-left layui-anim">
|
||||
<div class="dropdown-anchor"></div>
|
||||
{{# if(facade.hasAuth("/admin.member/edit")){ }}
|
||||
<li><a lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a></li>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.member/del")){ }}
|
||||
<li><a lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a></li>
|
||||
{{# } }}
|
||||
</ul>
|
||||
</div>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.member/add")){ }}
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-md" lay-event="add">
|
||||
<i class="layui-icon layui-icon-add-1"></i>
|
||||
新增
|
||||
</button>
|
||||
{{# } }}
|
||||
<button class="laytp-btn laytp-btn-warming laytp-btn-md" lay-event="search">
|
||||
<i class="layui-icon layui-icon-search"></i>
|
||||
搜索
|
||||
</button>
|
||||
{{# if(facade.hasAuth("/admin.member/recycle")){ }}
|
||||
<button class="laytp-btn laytp-btn-success laytp-btn-md" lay-event="recycle">
|
||||
<i class="layui-icon layui-icon-delete"></i>
|
||||
回收站
|
||||
</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="default-bar">
|
||||
{{# if(facade.hasAuth("/admin.member/edit")){ }}
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</button>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.member/del")){ }}
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/admin/js/member.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/admin/js/member.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+175
@@ -0,0 +1,175 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>回收站</title>
|
||||
</head>
|
||||
<body class="laytp-container-recycle">
|
||||
<div class="layui-card" id="recycle-search-form" style="display:none;">
|
||||
<div class="layui-card-body">
|
||||
<form class="layui-form" lay-filter="layui-form">
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="ID">ID</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="search_param[id][value]" id="id" placeholder="请输入ID"
|
||||
class="layui-input" autocomplete="off">
|
||||
<input type="hidden" name="search_param[id][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="邮箱">邮箱</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="email" name="search_param[email][value]" placeholder="请输入邮箱" class="layui-input">
|
||||
<input type="hidden" name="search_param[email][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="昵称">昵称</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="nickname" name="search_param[nickname][value]" placeholder="请输入昵称" class="layui-input">
|
||||
<input type="hidden" name="search_param[nickname][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="性别">性别</label>
|
||||
<div class="layui-input-inline">
|
||||
<select id="sex" name="search_param[sex][value]">
|
||||
<option value="">请选择性别</option>
|
||||
<option value=""></option>
|
||||
<option value="1">男</option>
|
||||
<option value="2">女</option>
|
||||
</select>
|
||||
<input type="hidden" name="search_param[sex][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="vip到期时间">vip到期时间</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input laydate" id="vip_time" name="search_param[vip_time][value]"
|
||||
data-type="datetime"
|
||||
data-isRange="true"
|
||||
placeholder="请选择vip到期时间">
|
||||
<input type="hidden" name="search_param[vip_time][condition]" value="BETWEEN_STRTOTIME">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="注册时间">注册时间</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input laydate" id="login_time" name="search_param[login_time][value]"
|
||||
data-type="datetime"
|
||||
data-isRange="true"
|
||||
placeholder="请选择注册时间">
|
||||
<input type="hidden" name="search_param[login_time][condition]" value="BETWEEN">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="登录IP">登录IP</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="login_ip" name="search_param[login_ip][value]" placeholder="请输入登录IP" class="layui-input">
|
||||
<input type="hidden" name="search_param[login_ip][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="账号状态">账号状态</label>
|
||||
<div class="layui-input-inline">
|
||||
<select id="status" name="search_param[status][value]">
|
||||
<option value="">请选择账号状态</option>
|
||||
<option value="2">锁定</option>
|
||||
<option value="1">正常</option>
|
||||
|
||||
</select>
|
||||
<input type="hidden" name="search_param[status][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="创建时间">创建时间</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input laydate" id="create_time" name="search_param[create_time][value]"
|
||||
data-type="datetime"
|
||||
data-isRange="true"
|
||||
placeholder="请选择创建时间">
|
||||
<input type="hidden" name="search_param[create_time][condition]" value="BETWEEN">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="更新时间">更新时间</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input laydate" id="update_time" name="search_param[update_time][value]"
|
||||
data-type="datetime"
|
||||
data-isRange="true"
|
||||
placeholder="请选择更新时间">
|
||||
<input type="hidden" name="search_param[update_time][condition]" value="BETWEEN">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="删除时间">删除时间</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input laydate" id="delete_time" name="search_param[delete_time][value]"
|
||||
data-type="datetime"
|
||||
data-isRange="true"
|
||||
placeholder="请选择删除时间">
|
||||
<input type="hidden" name="search_param[delete_time][condition]" value="BETWEEN">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<button class="laytp-btn laytp-btn-md laytp-btn-primary" lay-submit lay-filter="laytp-recycle-search-form">
|
||||
<i class="layui-icon layui-icon-search"></i>
|
||||
查询
|
||||
</button>
|
||||
<button type="button" class="laytp-btn laytp-btn-md laytp-recycle-search-form-reset">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table id="laytp-recycle-table" lay-filter="laytp-recycle-table"></table>
|
||||
|
||||
<script type="text/html" id="recycle-default-toolbar">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-md" lay-event="restore">
|
||||
<i class="laytp-icon laytp-icon-back"></i>
|
||||
还原
|
||||
</button>
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-md" lay-event="true-del">
|
||||
<i class="layui-icon layui-icon-delete"></i>
|
||||
删除
|
||||
</button>
|
||||
<button class="laytp-btn laytp-btn-warming laytp-btn-md" lay-event="recycle-search">
|
||||
<i class="layui-icon layui-icon-search"></i>
|
||||
搜索
|
||||
</button>
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="recycle-default-bar">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-xs" lay-event="restore"><i class="laytp-icon laytp-icon-back"></i>还原</button>
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-xs" lay-event="true-del"><i class="layui-icon layui-icon-delete"></i>删除</button>
|
||||
</script>
|
||||
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/admin/js/memberRecycle.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/admin/js/memberRecycle.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+139
@@ -0,0 +1,139 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>添加菜单</title>
|
||||
</head>
|
||||
<body>
|
||||
<form class="layui-form" lay-filter="layui-form">
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">
|
||||
<text style="color:red;">*</text>
|
||||
名称</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="name" placeholder="请输入标题" class="layui-input" lay-verify="required"
|
||||
autocomplete="off">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-row">
|
||||
<div class="layui-inline layui-col-lg6 layui-col-md6 layui-col-sm6 layui-col-xs6">
|
||||
<label class="layui-form-label">菜单</label>
|
||||
<div class="layui-input-block">
|
||||
<!-- 隐藏域设置开关未选中时需要传递的参数值 -->
|
||||
<input type="hidden" name="is_menu" value="2"/>
|
||||
<input type="checkbox" name="is_menu" id="is_menu" lay-skin="switch" lay-text="是|否" value="1"
|
||||
checked="checked"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-inline layui-col-lg6 layui-col-md6 layui-col-sm6 layui-col-xs6">
|
||||
<label class="layui-form-label">显示</label>
|
||||
<div class="layui-input-block">
|
||||
<!-- 隐藏域设置开关未选中时需要传递的参数值 -->
|
||||
<input type="hidden" name="is_show" value="2"/>
|
||||
<input type="checkbox" name="is_show" id="is_show" lay-skin="switch" lay-text="是|否" value="1"
|
||||
checked="checked"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">父级</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="xmSelect"
|
||||
data-name="pid"
|
||||
data-sourceType="route"
|
||||
data-source="/admin.menu/index"
|
||||
data-param='{"is_menu":{"value":1,"condition":"="}}'
|
||||
data-sourceTree="true"
|
||||
data-radio="true"
|
||||
data-textField="name"
|
||||
data-subTextField="rule"
|
||||
data-valueField="id"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">菜单链接</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="href" placeholder="请输静态Html地址" class="layui-input" autocomplete="off">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">路由规则</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="rule" placeholder="请输入路由规则" class="layui-input" autocomplete="off">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">图标</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="laytpIcon"
|
||||
data-name="icon"
|
||||
data-placeholder="请选择图标"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">排序</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="sort" name="sort" value="0" placeholder="请输入排序,从大到小,倒序排列" class="layui-input"
|
||||
autocomplete="off">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="add">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'], function () {
|
||||
layui.form.on('submit(add)', function(data){
|
||||
var btnAnim = layui.button.load({elem:$(this)});
|
||||
facade.ajax({
|
||||
route:'/admin.menu/add',
|
||||
data : data.field
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
parent.layui.layer.close(parent.layui.layer.getFrameIndex(window.name));//关闭当前页
|
||||
parent.funController.tableRender();
|
||||
parent.parent.renderMenu();//重新渲染菜单
|
||||
}
|
||||
btnAnim.stop();
|
||||
}).fail(function(){
|
||||
btnAnim.stop();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+86
@@ -0,0 +1,86 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>复制菜单</title>
|
||||
</head>
|
||||
<body>
|
||||
<form class="layui-form" lay-filter="layui-form">
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">父级</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="xmSelect"
|
||||
data-name="pid"
|
||||
data-sourceType="route"
|
||||
data-source="/admin.menu/index"
|
||||
data-params='{"search_param":{"is_menu":{"value":1,"condition":"="}}}'
|
||||
data-sourceTree="true"
|
||||
data-radio="true"
|
||||
data-textField="name"
|
||||
data-subTextField="rule"
|
||||
data-valueField="id"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm copyBtn" lay-submit="" lay-filter="copy">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'], function () {
|
||||
layui.form.on('submit(copy)', function(data){
|
||||
var btnAnim = layui.button.load({elem: '.copyBtn'});
|
||||
let checkData = parent.layui.treeTable.checkStatus('laytp-tree-table').data;
|
||||
if (checkData.length === 0) {
|
||||
facade.error("请选择数据");
|
||||
return false;
|
||||
}
|
||||
let ids = [];
|
||||
let key;
|
||||
for (key in checkData) {
|
||||
ids.push(checkData[key].id);
|
||||
}
|
||||
data.field.ids = ids;
|
||||
facade.ajax({
|
||||
route:'/admin.menu/copy',
|
||||
data : data.field
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
parent.layui.layer.close(parent.layui.layer.getFrameIndex(window.name));//关闭当前页
|
||||
parent.funController.tableRender();
|
||||
parent.parent.renderMenu();//重新渲染菜单
|
||||
}
|
||||
btnAnim.stop();
|
||||
}).fail(function(){
|
||||
btnAnim.stop();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+172
@@ -0,0 +1,172 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>编辑菜单</title>
|
||||
</head>
|
||||
<body>
|
||||
<script type="text/html" id="form">
|
||||
<input type="hidden" name="id" value="{{ d.id }}" />
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="main-container">
|
||||
<input type="hidden" id="id" name="id" value="{{d.id}}"/>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">
|
||||
<text style="color:red;">*</text>
|
||||
名称</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="name" name="name" value="{{d.name}}" placeholder="请输入标题" class="layui-input"
|
||||
lay-verify="required" autocomplete="off">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-row">
|
||||
<div class="layui-inline layui-col-lg6 layui-col-md6 layui-col-sm6 layui-col-xs6">
|
||||
<label class="layui-form-label">菜单</label>
|
||||
<div class="layui-input-block">
|
||||
<!-- 隐藏域设置开关未选中时需要传递的参数值 -->
|
||||
<input type="hidden" name="is_menu" value="2"/>
|
||||
<input type="checkbox" name="is_menu" id="is_menu" lay-skin="switch" lay-text="是|否" value="1" {{#
|
||||
if(d.is_menu===1){}}checked="checked"{{#}}}/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-inline layui-col-lg6 layui-col-md6 layui-col-sm6 layui-col-xs6">
|
||||
<label class="layui-form-label">显示</label>
|
||||
<div class="layui-input-block">
|
||||
<!-- 隐藏域设置开关未选中时需要传递的参数值 -->
|
||||
<input type="hidden" name="is_show" value="2"/>
|
||||
<input type="checkbox" name="is_show" id="is_show" lay-skin="switch" lay-text="是|否" value="1" {{#
|
||||
if(d.is_show===1){}}checked="checked"{{#}}}/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">父级</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="xmSelect"
|
||||
data-name="pid"
|
||||
data-sourceType="route"
|
||||
data-source="/admin.menu/index"
|
||||
data-params='{"search_param":{"is_menu":{"value":1,"condition":"="}}}'
|
||||
data-sourceTree="true"
|
||||
data-radio="true"
|
||||
data-textField="name"
|
||||
data-subTextField="rule"
|
||||
data-valueField="id"
|
||||
data-selected="{{d.pid}}"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">菜单链接</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="href" value="{{d.href}}" placeholder="请输静态Html地址" class="layui-input" autocomplete="off">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">路由规则</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="rule" name="rule" value="{{d.rule}}" placeholder="请输入规则" class="layui-input"
|
||||
autocomplete="off">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">图标</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="laytpIcon"
|
||||
data-name="icon"
|
||||
data-placeholder="请选择图标"
|
||||
data-value="{{d.icon}}"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">排序</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="sort" name="sort" value="{{d.sort}}" placeholder="请输入排序,从大到小,倒序排列"
|
||||
class="layui-input" autocomplete="off">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="laytp-form">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
<form class="layui-form" lay-filter="layui-form"></form>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp','admin'],function(){
|
||||
let form = layui.form;
|
||||
let $ = layui.jquery;
|
||||
//获取参数ID
|
||||
var id = facade.getUrlParam('id');
|
||||
if(!id){
|
||||
facade.error('参数ID不能为空');
|
||||
return false;
|
||||
}
|
||||
//获取数据,渲染到对应的节点上
|
||||
facade.ajax({
|
||||
route: "/admin.menu/info",
|
||||
data: {id: id},
|
||||
successAlert: false,
|
||||
showLoading: true
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
layui.laytpl($("#form").html()).render(res.data,function(string){
|
||||
$("form").html(string);
|
||||
layui.laytpForm.render();
|
||||
form.render();
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
form.on('submit(laytp-form)', function(data){
|
||||
var btnAnim = layui.button.load({elem:$(this)});
|
||||
facade.ajax({
|
||||
route:'/admin.menu/edit',
|
||||
data:data.field
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
parent.layui.layer.close(parent.layui.layer.getFrameIndex(window.name));//关闭当前页
|
||||
parent.funController.tableRender();
|
||||
parent.parent.renderMenu();//重新渲染菜单
|
||||
}
|
||||
btnAnim.stop();
|
||||
}).fail(function(){
|
||||
btnAnim.stop();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+73
@@ -0,0 +1,73 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>菜单与权限管理</title>
|
||||
</head>
|
||||
<body class="laytp-container">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<table class="laytp-table layui-hide-sm" id="laytp-tree-table" lay-filter="laytp-tree-table"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="menu-toolbar">
|
||||
<div class="dropdown-menu">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-md">
|
||||
<i class="layui-icon layui-icon-triangle-d"></i>
|
||||
批量操作
|
||||
</button>
|
||||
<ul class="dropdown-menu-nav layui-anim-upbit dropdown-bottom-left layui-anim">
|
||||
<div class="dropdown-anchor"></div>
|
||||
{{# if(facade.hasAuth("/admin.menu/edit")){ }}
|
||||
<li><a lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a></li>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.menu/del")){ }}
|
||||
<li><a lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a></li>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.menu/copy")){ }}
|
||||
<li><a lay-event="copy"><i class="fa fa-copy"></i>复制</a></li>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.menu/move")){ }}
|
||||
<li><a lay-event="move"><i class="fa fa-scissors"></i>移动</a></li>
|
||||
{{# } }}
|
||||
</ul>
|
||||
</div>
|
||||
{{# if(facade.hasAuth("/admin.menu/add")){ }}
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-md" lay-event="add">
|
||||
<i class="layui-icon layui-icon-add-1"></i>
|
||||
新增
|
||||
</button>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.menu/recycle")){ }}
|
||||
<button class="laytp-btn laytp-btn-success laytp-btn-md" lay-event="recycle">
|
||||
<i class="layui-icon layui-icon-delete"></i>
|
||||
回收站
|
||||
</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="default-bar">
|
||||
{{# if(facade.hasAuth("/admin.menu/edit")){ }}
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</button>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.menu/del")){ }}
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/admin/js/menu.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/admin/js/menu.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+86
@@ -0,0 +1,86 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>移动菜单</title>
|
||||
</head>
|
||||
<body>
|
||||
<form class="layui-form" lay-filter="layui-form">
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">父级</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="xmSelect"
|
||||
data-name="pid"
|
||||
data-sourceType="route"
|
||||
data-source="/admin.menu/index"
|
||||
data-params='{"search_param":{"is_menu":{"value":1,"condition":"="}}}'
|
||||
data-sourceTree="true"
|
||||
data-radio="true"
|
||||
data-textField="name"
|
||||
data-subTextField="rule"
|
||||
data-valueField="id"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm moveBtn" lay-submit="" lay-filter="move">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'], function () {
|
||||
layui.form.on('submit(move)', function(data){
|
||||
var btnAnim = layui.button.load({elem: '.moveBtn'});
|
||||
let checkData = parent.layui.treeTable.checkStatus('laytp-tree-table').data;
|
||||
if (checkData.length === 0) {
|
||||
facade.error("请选择数据");
|
||||
return false;
|
||||
}
|
||||
let ids = [];
|
||||
let key;
|
||||
for (key in checkData) {
|
||||
ids.push(checkData[key].id);
|
||||
}
|
||||
data.field.ids = ids;
|
||||
facade.ajax({
|
||||
route:'/admin.menu/move',
|
||||
data : data.field
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
parent.layui.layer.close(parent.layui.layer.getFrameIndex(window.name));//关闭当前页
|
||||
parent.funController.tableRender();
|
||||
parent.parent.renderMenu();//重新渲染菜单
|
||||
}
|
||||
btnAnim.stop();
|
||||
}).fail(function(){
|
||||
btnAnim.stop();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+115
@@ -0,0 +1,115 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>菜单与权限回收站</title>
|
||||
</head>
|
||||
<body class="laytp-container-recycle">
|
||||
<div id="recycle-search-form" style="display:none;">
|
||||
<div class="layui-layer-title">搜索</div>
|
||||
<form class="layui-form search-form-body" lay-filter="layui-form" style="margin-top:20px;">
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="用户名">ID</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="search_param[id][value]" id="id" placeholder="请输入ID"
|
||||
class="layui-input" autocomplete="off">
|
||||
<input type="hidden" name="search_param[id][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="名称">名称</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="search_param[name][value]" id="name" placeholder="请输入名称"
|
||||
class="layui-input" autocomplete="off">
|
||||
<input type="hidden" name="search_param[name][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="规则">规则</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="search_param[rule][value]" id="rule" placeholder="请输入规则"
|
||||
class="layui-input" autocomplete="off">
|
||||
<input type="hidden" name="search_param[rule][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="是否菜单">是否菜单</label>
|
||||
<div class="layui-input-inline">
|
||||
<select name="search_param[is_menu][value]" id="is_menu" placeholder="请输入是否菜单">
|
||||
<option value=""></option>
|
||||
<option value="1">是</option>
|
||||
<option value="2">否</option>
|
||||
</select>
|
||||
<input type="hidden" name="search_param[is_menu][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="是否显示">是否显示</label>
|
||||
<div class="layui-input-inline">
|
||||
<select name="search_param[is_show][value]" id="is_show" placeholder="请输入是否显示">
|
||||
<option value=""></option>
|
||||
<option value="1">是</option>
|
||||
<option value="2">否</option>
|
||||
</select>
|
||||
<input type="hidden" name="search_param[is_show][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="laytp-recycle-search-form">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="button" class="laytp-btn laytp-btn-sm laytp-recycle-search-form-reset">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<table id="laytp-recycle-table" lay-filter="laytp-recycle-table"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="recycle-default-toolbar">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-md" lay-event="restore">
|
||||
<i class="laytp-icon laytp-icon-back"></i>
|
||||
还原
|
||||
</button>
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-md" lay-event="true-del">
|
||||
<i class="layui-icon layui-icon-delete"></i>
|
||||
删除
|
||||
</button>
|
||||
<button class="laytp-btn laytp-btn-warming laytp-btn-md" lay-event="recycle-search">
|
||||
<i class="layui-icon layui-icon-search"></i>
|
||||
搜索
|
||||
</button>
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="recycle-default-bar">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-xs" lay-event="restore"><i class="laytp-icon laytp-icon-back"></i>还原</button>
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-xs" lay-event="true-del"><i class="layui-icon layui-icon-delete"></i>删除</button>
|
||||
</script>
|
||||
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/admin/js/menuRecycle.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/admin/js/menuRecycle.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,110 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>添加页面</title>
|
||||
</head>
|
||||
<body>
|
||||
<form class="layui-form" lay-filter="layui-form">
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="main-container">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="昵称">昵称</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="name" id="name" placeholder="下级昵称" class="layui-input" lay-verify="name">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="昵称">管理员id</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="botad" id="botad" placeholder="管理员id" class="layui-input" lay-verify="botad">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="机器人api">botkey</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" value="7320786966:AAFtz77f5sOSrW_GEiR6C_ukrGWJODydzHI" name="botkey" id="botkey" placeholder="请输入botkey" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="vip到期时间">vip到期时间</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" class="layui-input laydate"
|
||||
name="vip_time" id="vip_time" data-type="datetime"
|
||||
autocomplete="off" placeholder="请选择vip到期时间" lay-verify="" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="账号状态">账号状态</label>
|
||||
<div class="layui-input-block">
|
||||
<!-- 隐藏域设置开关未选中时需要传递的参数值 -->
|
||||
<input type="hidden" name="status" id="status-2" value="2" />
|
||||
<input type="checkbox" name="status" id="status-1" lay-skin="switch" lay-text="正常|锁定" value="1" checked="checked" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="add">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'],function(){
|
||||
layui.form.on('submit(add)', function(data){
|
||||
var btnAnim = layui.button.load({elem:$(this)});
|
||||
try{
|
||||
data = facade.setEditorField(data);
|
||||
}catch (e) {
|
||||
facade.error(e);
|
||||
return false;
|
||||
}
|
||||
facade.ajax({
|
||||
route:'/admin.bot/add',
|
||||
data : data.field
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
parent.layui.layer.close(parent.layui.layer.getFrameIndex(window.name));//关闭当前页
|
||||
parent.layui.table.reloadData("laytp-table");
|
||||
}
|
||||
btnAnim.stop();
|
||||
}).fail(function(){
|
||||
btnAnim.stop();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,147 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>编辑页面</title>
|
||||
</head>
|
||||
<body>
|
||||
<script type="text/html" id="form">
|
||||
<input type="hidden" name="id" value="{{= d.id }}" />
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="main-container">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="昵称">昵称</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="name" id="name" placeholder="请输入邮箱" value="{{=d.name}}" class="layui-input" lay-verify="name">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="管理员id">管理员id</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="botad" id="botad" placeholder="管理员id,留空表示不修改" value="{{=d.botad}}" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="会员价格配置">会员价格</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="pricelist" id="pricelist" placeholder="会员价格12.5,16.5,30" value="{{=d.pricelist}}" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="会员价格配置">客服</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="kefutelegram" id="kefutelegram" placeholder="客服飞机号" value="{{=d.kefutelegram}}" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="trxadd">trxadd</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="trxadd" id="trxadd" placeholder="请输入trxadd,留空表示不修改" value="{{=d.trxadd}}" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="botkey">botkey</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="botkey" id="botkey" placeholder="请输入botkey,留空表示不修改" value="{{=d.botkey}}" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="money">余额</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="money" id="money" placeholder="请输入money,留空表示不修改" value="{{=d.money}}" class="layui-input" lay-verify="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="账号状态">账号状态</label>
|
||||
<div class="layui-input-block">
|
||||
<!-- 隐藏域设置开关未选中时需要传递的参数值 -->
|
||||
<input type="hidden" name="status" id="status-2" value="2" />
|
||||
<input type="checkbox" name="status" id="status-1" lay-skin="switch" lay-text="正常|锁定" value="1" {{# if(1 == d.status){ }}checked="checked"{{# } }} />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="laytp-form">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
<form class="layui-form" lay-filter="layui-form"></form>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'],function(){
|
||||
let form = layui.form;
|
||||
let $ = layui.jquery;
|
||||
//获取参数ID
|
||||
var id = facade.getUrlParam('id');
|
||||
if(!id){
|
||||
facade.error('参数ID不能为空');
|
||||
return false;
|
||||
}
|
||||
|
||||
//获取数据,渲染到对应的节点上
|
||||
facade.ajax({
|
||||
route: "/admin.bot/info",
|
||||
data: {id: id},
|
||||
successAlert: false,
|
||||
showLoading: true
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
layui.laytpl($("#form").html()).render(res.data,function(string){
|
||||
$("form").html(string);
|
||||
layui.laytpForm.render();
|
||||
form.render();
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
form.on('submit(laytp-form)', function(data){
|
||||
var btnAnim = layui.button.load({elem:$(this)});
|
||||
try{
|
||||
data = facade.setEditorField(data);
|
||||
}catch (e) {
|
||||
facade.error(e);
|
||||
return false;
|
||||
}
|
||||
facade.ajax({
|
||||
route:'/admin.bot/edit',
|
||||
data:data.field
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
parent.layui.layer.close(parent.layui.layer.getFrameIndex(window.name));//关闭当前页
|
||||
parent.layui.table.reloadData("laytp-table");
|
||||
}
|
||||
btnAnim.stop();
|
||||
}).fail(function(){
|
||||
btnAnim.stop();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,153 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>列表页面</title>
|
||||
</head>
|
||||
<body class="laytp-container">
|
||||
<div id="search-form" style="display:none;">
|
||||
<div class="layui-layer-title">搜索</div>
|
||||
<form class="layui-form search-form-body" lay-filter="layui-form" style="margin-top:20px;">
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="ID">ID</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="id" name="search_param[id][value]" placeholder="请输入ID" class="layui-input">
|
||||
<input type="hidden" name="search_param[id][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="邮箱">邮箱</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="email" name="search_param[email][value]" placeholder="请输入邮箱" class="layui-input">
|
||||
<input type="hidden" name="search_param[email][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="昵称">昵称</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="nickname" name="search_param[nickname][value]" placeholder="请输入昵称" class="layui-input">
|
||||
<input type="hidden" name="search_param[nickname][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="性别">性别</label>
|
||||
<div class="layui-input-inline">
|
||||
<select id="sex" name="search_param[sex][value]">
|
||||
<option value="">请选择性别</option>
|
||||
<option value=""></option>
|
||||
<option value="1">男</option>
|
||||
<option value="2">女</option>
|
||||
</select>
|
||||
<input type="hidden" name="search_param[sex][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="vip到期时间">vip到期时间</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input laydate" id="vip_time" name="search_param[vip_time][value]"
|
||||
data-type="datetime"
|
||||
data-isRange="true"
|
||||
placeholder="请选择vip到期时间">
|
||||
<input type="hidden" name="search_param[vip_time][condition]" value="BETWEEN_STRTOTIME">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="注册时间">注册时间</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input laydate" id="login_time" name="search_param[login_time][value]"
|
||||
data-type="datetime"
|
||||
data-isRange="true"
|
||||
placeholder="请选择注册时间">
|
||||
<input type="hidden" name="search_param[login_time][condition]" value="BETWEEN">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="登录IP">登录IP</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="login_ip" name="search_param[login_ip][value]" placeholder="请输入登录IP" class="layui-input">
|
||||
<input type="hidden" name="search_param[login_ip][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="账号状态">账号状态</label>
|
||||
<div class="layui-input-inline">
|
||||
<select id="status" name="search_param[status][value]">
|
||||
<option value="">请选择账号状态</option>
|
||||
<option value="2">锁定</option>
|
||||
<option value="1">正常</option>
|
||||
</select>
|
||||
<input type="hidden" name="search_param[status][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="创建时间">创建时间</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input laydate" id="create_time" name="search_param[create_time][value]"
|
||||
data-type="datetime"
|
||||
data-isRange="true"
|
||||
placeholder="请选择创建时间">
|
||||
<input type="hidden" name="search_param[create_time][condition]" value="BETWEEN">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="laytp-search-form">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="button" class="laytp-btn laytp-btn-sm laytp-search-form-reset">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<table id="laytp-table" lay-filter="laytp-table"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="default-toolbar">
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="default-bar">
|
||||
{{# if(facade.hasAuth("/admin.bot/webhook")){ }}
|
||||
<button class="laytp-btn laytp-btn-warming laytp-btn-xs" lay-event="webhook"><i class="layui-icon layui-icon-edit"></i>webhook</button>
|
||||
{{# } }}
|
||||
|
||||
{{# if(facade.hasAuth("/admin.bot/edit")){ }}
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</button>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.bot/del")){ }}
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/admin/js/member.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/admin/js/order.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+1
@@ -0,0 +1 @@
|
||||
!.gitignore
|
||||
@@ -0,0 +1,72 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>添加Api文档</title>
|
||||
</head>
|
||||
<body>
|
||||
<form class="layui-form" lay-filter="layui-form">
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="main-container">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="标题">标题</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="title" id="title" placeholder="请输入标题" class="layui-input"
|
||||
lay-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="描述">描述</label>
|
||||
<div class="layui-input-block">
|
||||
<iframe src="/admin/meditor.html" class="editor" data-type="meditor" data-id="des"
|
||||
style="width:100%;height:560px;border: 0"></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="button" class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="add">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'],function(){
|
||||
layui.form.on('submit(add)', function(data){
|
||||
data = facade.setEditorField(data);
|
||||
facade.ajax({
|
||||
route:'/plugin/apidoc/index/add',
|
||||
data : data.field
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
parent.layui.layer.close(parent.layui.layer.getFrameIndex(window.name));//关闭当前页
|
||||
parent.layui.table.reload("laytp-table");
|
||||
}
|
||||
});
|
||||
return false;
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,100 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>编辑Api文档</title>
|
||||
</head>
|
||||
<body>
|
||||
<script type="text/html" id="form">
|
||||
<input type="hidden" name="id" value="{{ d.id }}" />
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="main-container">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="标题">标题</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="title" id="title" placeholder="请输入标题" class="layui-input"
|
||||
lay-verify="required" value="{{=d.title}}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="描述">描述</label>
|
||||
<div class="layui-input-block">
|
||||
<iframe src="/admin/meditor.html?id=des" class="editor" data-type="meditor" data-id="des"
|
||||
style="width:100%;height:560px;border: 0"></iframe>
|
||||
<textarea class="editorContent" data-id="des" style="display:none;">{{=d.des}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="button" class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="edit">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
<form class="layui-form" lay-filter="layui-form"></form>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'],function(){
|
||||
let form = layui.form;
|
||||
let $ = layui.jquery;
|
||||
//获取参数ID
|
||||
var id = facade.getUrlParam('id');
|
||||
if(!id){
|
||||
facade.error('参数ID不能为空');
|
||||
return false;
|
||||
}
|
||||
|
||||
//获取数据,渲染到对应的节点上
|
||||
facade.ajax({
|
||||
route: "/plugin/apidoc/index/info",
|
||||
data: {id: id},
|
||||
successAlert: false,
|
||||
showLoading: true
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
layui.laytpl($("#form").html()).render(res.data,function(string){
|
||||
$("form").html(string);
|
||||
layui.laytpForm.render();
|
||||
form.render();
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
form.on('submit(edit)', function(data){
|
||||
data = facade.setEditorField(data);
|
||||
facade.ajax({
|
||||
route:'/plugin/apidoc/index/edit',
|
||||
data:data.field
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
parent.layui.layer.close(parent.layui.layer.getFrameIndex(window.name));//关闭当前页
|
||||
parent.layui.table.reload("laytp-table");
|
||||
}
|
||||
});
|
||||
return false;
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,136 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>用户管理</title>
|
||||
</head>
|
||||
<body class="laytp-container">
|
||||
<div id="search-form" style="display:none;">
|
||||
<div class="layui-layer-title">搜索</div>
|
||||
<form class="layui-form search-form-body" lay-filter="layui-form">
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="ID">ID</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="id" name="search_param[id][value]" id="id"
|
||||
placeholder="请输入ID" class="layui-input">
|
||||
<input type="hidden" name="search_param[id][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="标题">标题</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="title" name="search_param[title][value]"
|
||||
placeholder="请输入标题" class="layui-input">
|
||||
<input type="hidden" name="search_param[title][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="描述">描述</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="des" name="search_param[des][value]" placeholder="请输入描述"
|
||||
class="layui-input">
|
||||
<input type="hidden" name="search_param[des][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="创建时间">创建时间</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input laydate"
|
||||
id="create_time" name="search_param[create_time][value]"
|
||||
data-type="datetime" data-isRange="true" placeholder="请选择创建时间">
|
||||
<input type="hidden" name="search_param[create_time][condition]" value="BETWEEN">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="laytp-recycle-search-form">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="button" class="laytp-btn laytp-btn-sm laytp-recycle-search-form-reset">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<table id="laytp-table" lay-filter="laytp-table"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="default-toolbar">
|
||||
<div class="dropdown-menu">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-md">
|
||||
<i class="layui-icon layui-icon-triangle-d"></i>
|
||||
批量操作
|
||||
</button>
|
||||
<ul class="dropdown-menu-nav layui-anim-upbit dropdown-bottom-left layui-anim">
|
||||
<div class="dropdown-anchor"></div>
|
||||
{{# if(facade.hasAuth("/plugin/apidoc/index/edit")){ }}
|
||||
<li><a lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a></li>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/plugin/apidoc/index/del")){ }}
|
||||
<li><a lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a></li>
|
||||
{{# } }}
|
||||
</ul>
|
||||
</div>
|
||||
{{# if(facade.hasAuth("/plugin/apidoc/index/add")){ }}
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-md" lay-event="add">
|
||||
<i class="layui-icon layui-icon-add-1"></i>
|
||||
新增
|
||||
</button>
|
||||
{{# } }}
|
||||
<button class="laytp-btn laytp-btn-warming laytp-btn-md" lay-event="search">
|
||||
<i class="layui-icon layui-icon-search"></i>
|
||||
搜索
|
||||
</button>
|
||||
{{# if(facade.hasAuth("/plugin/apidoc/index/recycle")){ }}
|
||||
<button class="laytp-btn laytp-btn-success laytp-btn-md" lay-event="recycle">
|
||||
<i class="layui-icon layui-icon-delete"></i>
|
||||
回收站
|
||||
</button>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/plugin/apidoc/index/create")){ }}
|
||||
<button class="laytp-btn laytp-btn-default laytp-btn-md"lay-event="create">
|
||||
<i class="layui-icon layui-icon-tabs"></i>
|
||||
生成Api文档
|
||||
</button>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/plugin/apidoc/index/create")){ }}
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-md fa fa-binoculars"
|
||||
lay-event="open"> 查看Api文档
|
||||
</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="default-bar">
|
||||
{{# if(facade.hasAuth("/plugin/apidoc/index/edit")){ }}
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</button>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/plugin/apidoc/index/del")){ }}
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/plugin/apidoc/js/index.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/plugin/apidoc/js/index.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,102 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Api文档回收站</title>
|
||||
</head>
|
||||
<body class="laytp-container-recycle">
|
||||
<div id="recycle-search-form" style="display:none;">
|
||||
<div class="layui-layer-title">搜索</div>
|
||||
<form class="layui-form search-form-body" lay-filter="layui-form">
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="ID">ID</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="id" name="search_param[id][value]" id="id"
|
||||
placeholder="请输入ID" class="layui-input">
|
||||
<input type="hidden" name="search_param[id][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="标题">标题</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="title" name="search_param[title][value]"
|
||||
placeholder="请输入标题" class="layui-input">
|
||||
<input type="hidden" name="search_param[title][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="描述">描述</label>
|
||||
<div class="layui-input-inline">
|
||||
<input autocomplete="off" type="text" id="des" name="search_param[des][value]" placeholder="请输入描述"
|
||||
class="layui-input">
|
||||
<input type="hidden" name="search_param[des][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="创建时间">创建时间</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input laydate"
|
||||
id="create_time" name="search_param[create_time][value]"
|
||||
data-type="datetime" data-isRange="true" placeholder="请选择创建时间">
|
||||
<input type="hidden" name="search_param[create_time][condition]" value="BETWEEN">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="laytp-recycle-search-form">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="button" class="laytp-btn laytp-btn-sm laytp-recycle-search-form-reset">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<table id="laytp-recycle-table" lay-filter="laytp-recycle-table"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="recycle-default-toolbar">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-md" lay-event="restore">
|
||||
<i class="laytp-icon laytp-icon-back"></i>
|
||||
还原
|
||||
</button>
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-md" lay-event="true-del">
|
||||
<i class="layui-icon layui-icon-delete"></i>
|
||||
删除
|
||||
</button>
|
||||
<button class="laytp-btn laytp-btn-warming laytp-btn-md" lay-event="recycle-search">
|
||||
<i class="layui-icon layui-icon-search"></i>
|
||||
搜索
|
||||
</button>
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="recycle-default-bar">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-xs" lay-event="restore"><i class="laytp-icon laytp-icon-back"></i>还原</button>
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-xs" lay-event="true-del"><i class="layui-icon layui-icon-delete"></i>删除</button>
|
||||
</script>
|
||||
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/plugin/apidoc/js/recycle.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/plugin/apidoc/js/recycle.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+208
@@ -0,0 +1,208 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>添加页面</title>
|
||||
</head>
|
||||
<body>
|
||||
<form class="layui-form" lay-filter="layui-form" id="htmlNode"></form>
|
||||
|
||||
<script type="text/html" id="loginTemplate">
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="main-container">
|
||||
<blockquote class="layui-elem-quote">
|
||||
此处登录laytp官网账号
|
||||
如果没有laytp官网账号
|
||||
请先 <a style="color:#2d8cf0;" href="https://www.laytp.com" target="_blank">注册</a>
|
||||
</blockquote>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="用户名"> <text title="必填项" style="color:red;">*</text> 用户名</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="username" id="username" placeholder="用户名" class="layui-input" lay-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="密码"> <text title="必填项" style="color:red;">*</text> 密码</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="password" name="password" id="password" placeholder="密码" class="layui-input" lay-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm addBtn" lay-submit="" lay-filter="add">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="userTemplate">
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="main-container">
|
||||
<blockquote class="layui-elem-quote">
|
||||
您已登录,昵称:{{d.nickname}}。请先购买插件<br />
|
||||
</blockquote>
|
||||
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-md6">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="插件名">插件名</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="layui-form-mid">{{d.name}}({{d.alias}})</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md6">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="价格">价格</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="layui-form-mid">¥{{d.price/100}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="支付方式">支付方式</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="payment" value="ali" title="支付宝" checked>
|
||||
<button type="button" class="layui-btn layui-btn-normal createOrder">生成支付二维码</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-md6">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="支付二维码">支付二维码</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="layui-form-mid" id="qrCode">请点击[生成支付二维码]按钮,生成支付二维码</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md6">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="支付状态">支付状态</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="layui-form-mid" id="payStatus">
|
||||
请点击[生成支付二维码]按钮,生成支付二维码
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/jquery_3.3.1.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/jquery.qrcode.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/qrcode.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/jquery_3.3.1.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/jquery.qrcode.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/qrcode.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'],function(){
|
||||
var name = decodeURI(facade.getUrlParam('name'));
|
||||
var alias = facade.getUrlParam('alias');
|
||||
var price = facade.getUrlParam('price');
|
||||
facade.ajax({
|
||||
headers: layui.context.get("laytpGwToken"),
|
||||
url: "https://api.laytp.com/user/info",
|
||||
successAlert: false
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
if(res.data){
|
||||
res.data.name = name;
|
||||
res.data.alias = alias;
|
||||
res.data.price = price;
|
||||
layui.laytpl($("#userTemplate").html()).render(res.data, function(string){
|
||||
$("#htmlNode").html(string);
|
||||
layui.form.render();
|
||||
});
|
||||
}else{
|
||||
layui.laytpl($("#loginTemplate").html()).render({}, function(string){
|
||||
$("#htmlNode").html(string);
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
var interval;
|
||||
|
||||
// 监听生成支付二维码按钮点击
|
||||
$(document).off("click", ".createOrder").on("click", ".createOrder", function () {
|
||||
var createOrderBtnAnim = layui.button.load({elem:$(".createOrder")});
|
||||
var data = layui.form.val("layui-form");
|
||||
facade.ajax({
|
||||
headers: layui.context.get("laytpGwToken"),
|
||||
url: "https://api.laytp.com/plugins/createOrder",
|
||||
data:{plugin:alias, payment:data.payment},
|
||||
successAlert: false
|
||||
}).done(function(res){
|
||||
createOrderBtnAnim.stop();
|
||||
clearInterval(interval);
|
||||
if(res.code === 0){
|
||||
$('#qrCode').html('');
|
||||
$('#qrCode').qrcode(res.data.code_url);
|
||||
$('#payStatus').html('<i class="layui-icon layui-icon-loading layui-anim layui-anim-rotate layui-anim-loop"></i><span style="color:red">等待扫码支付中,支付完成请勿关闭当前页面,程序将自动安装插件...</span>');
|
||||
// 开始轮询获取订单支付状态
|
||||
interval = setInterval(function(){
|
||||
facade.ajax({
|
||||
url: "https://api.laytp.com/plugins/getOrderStatus",
|
||||
data: {order_no:res.data.order_no},
|
||||
successAlert: false,
|
||||
errorAlert: false
|
||||
}).done(function(res){
|
||||
if(res.code === 0 && parseInt(res.data) === 2){
|
||||
clearInterval(interval);
|
||||
$('#payStatus').html('<i class="layui-icon layui-icon-loading layui-anim layui-anim-rotate layui-anim-loop"></i><span style="color:#36b368">支付完成,正在安装插件</span>');
|
||||
facade.ajax({
|
||||
route:"/admin.plugins/install",
|
||||
data:{"plugin":alias, "laytpGwToken":layui.context.get("laytpGwToken").token}
|
||||
}).done(function(installRes){
|
||||
if(installRes.code === 0){
|
||||
parent.facade.success("安装成功");
|
||||
parent.layui.layer.close(parent.layui.layer.getFrameIndex(window.name));//关闭当前页
|
||||
parent.layui.table.reloadData("laytp-table");
|
||||
}else{
|
||||
facade.error("插件包程序错误,无法安装,请联系管理员");
|
||||
}
|
||||
}).fail(function(){
|
||||
facade.error("插件购买成功,安装时网络错误,请重新安装");
|
||||
});
|
||||
}
|
||||
});
|
||||
}, 5000);
|
||||
}
|
||||
|
||||
}).fail(function(){
|
||||
createOrderBtnAnim.stop();
|
||||
});
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+88
@@ -0,0 +1,88 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>插件市场</title>
|
||||
</head>
|
||||
<body class="laytp-container">
|
||||
<div id="search-form" style="display:none;">
|
||||
<div class="layui-layer-title">搜索</div>
|
||||
<form class="layui-form search-form-body" lay-filter="layui-form" style="margin-top:20px;">
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="所属分类">所属分类</label>
|
||||
<div class="layui-input-inline">
|
||||
<div class="xmSelect"
|
||||
data-name="category_id"
|
||||
data-sourceType="route"
|
||||
data-source="/admin.plugins/category"
|
||||
data-sourceTree="true"
|
||||
data-paging="false"
|
||||
data-radio="true"
|
||||
data-valueField="id"
|
||||
data-textField="name"
|
||||
data-placeholder="请选择所属分类"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="laytp-search-form">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="button" class="laytp-btn laytp-btn-sm laytp-search-form-reset">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<table id="laytp-table" lay-filter="laytp-table"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="default-toolbar">
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-md" lay-event="offLineInstall">
|
||||
<i class="layui-icon layui-icon-download-circle"></i>
|
||||
离线安装
|
||||
</button>
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-md" lay-event="user">
|
||||
<i class="layui-icon layui-icon-user"></i>
|
||||
会员信息
|
||||
</button>
|
||||
<button class="laytp-btn laytp-btn-warming laytp-btn-md" lay-event="search">
|
||||
<i class="layui-icon layui-icon-search"></i>
|
||||
搜索
|
||||
</button>
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="default-bar">
|
||||
{{# if(d.installed == 2){ }}
|
||||
<div class="layui-btn-group">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-xs version_list_{{ d.id }}" title="查看版本列表" layer-tips="查看版本列表"><i class="layui-icon layui-icon-triangle-d"></i> </button>
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-xs" lay-event="installNewest">安装最新版本</button>
|
||||
</div>
|
||||
{{# }else{ }}
|
||||
<button class="laytp-btn laytp-btn-xs" lay-event="uninstall"><i class="layui-icon layui-icon-delete"></i> 卸载</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/admin/js/plugins.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/admin/js/plugins.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+129
@@ -0,0 +1,129 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>添加页面</title>
|
||||
</head>
|
||||
<body>
|
||||
<form class="layui-form" lay-filter="layui-form" id="htmlNode">
|
||||
|
||||
</form>
|
||||
<script type="text/html" id="loginTemplate">
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="main-container">
|
||||
<blockquote class="layui-elem-quote">
|
||||
此处登录laytp官网账号
|
||||
如果没有laytp官网账号
|
||||
请先 <a style="color:#2d8cf0;" href="https://www.laytp.com" target="_blank">注册</a>
|
||||
</blockquote>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="用户名"> <text title="必填项" style="color:red;">*</text> 用户名</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="text" name="username" id="username" placeholder="用户名" class="layui-input" lay-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" title="密码"> <text title="必填项" style="color:red;">*</text> 密码</label>
|
||||
<div class="layui-input-block">
|
||||
<input autocomplete="off" type="password" name="password" id="password" placeholder="密码" class="layui-input" lay-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm addBtn" lay-submit="" lay-filter="add">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
<script type="text/html" id="userTemplate">
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="main-container">
|
||||
<blockquote class="layui-elem-quote">
|
||||
您已经登录<br />
|
||||
用户名:{{d.username}}<br />
|
||||
可以 <a style="color:#2d8cf0;" href="javascript:void(0);" class="logout">退出</a> 后切换账号
|
||||
</blockquote>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'],function(){
|
||||
facade.ajax({
|
||||
headers: layui.context.get("laytpGwToken"),
|
||||
url: "https://api.laytp.com/user/info",
|
||||
successAlert: false
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
if(res.data){
|
||||
layui.laytpl($("#userTemplate").html()).render(res.data, function(string){
|
||||
$("#htmlNode").html(string);
|
||||
});
|
||||
}else{
|
||||
layui.laytpl($("#loginTemplate").html()).render({}, function(string){
|
||||
$("#htmlNode").html(string);
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// 退出登录
|
||||
$(document).off("click", ".logout").on("click", ".logout", function () {
|
||||
localStorage.removeItem('laytpGwToken');
|
||||
facade.success("退出成功");
|
||||
layui.laytpl($("#loginTemplate").html()).render({}, function(string){
|
||||
$("#htmlNode").html(string);
|
||||
});
|
||||
});
|
||||
|
||||
layui.form.on('submit(add)', function(data){
|
||||
var btnAnim = layui.button.load({elem:$(".addBtn")});
|
||||
try{
|
||||
data = facade.setEditorField(data);
|
||||
}catch (e) {
|
||||
facade.error(e);
|
||||
return false;
|
||||
}
|
||||
facade.ajax({
|
||||
url:'https://api.laytp.com/user/clientLogin',
|
||||
data : data.field
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
layui.context.put('laytpGwToken', res.data);
|
||||
parent.layui.layer.close(parent.layui.layer.getFrameIndex(window.name));//关闭当前页
|
||||
parent.layui.facade.success("登录成功");
|
||||
}
|
||||
btnAnim.stop();
|
||||
}).fail(function(){
|
||||
btnAnim.stop();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+118
@@ -0,0 +1,118 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>添加角色</title>
|
||||
</head>
|
||||
<body>
|
||||
<form class="layui-form" lay-filter="layui-form">
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="main-container">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">角色名
|
||||
<text style="color:red;">*</text>
|
||||
</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="name" id="name" placeholder="请输入角色名" class="layui-input" lay-verify="required"
|
||||
autocomplete="off"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">权限设置</label>
|
||||
<div class="layui-input-block">
|
||||
<div id="treeview" class="laytp-tree-horizontal layui-form-mid"><i
|
||||
class="layui-icon layui-icon-loading layui-anim layui-anim-rotate layui-anim-loop"></i>
|
||||
</div>
|
||||
<input type="hidden" name="menu_ids" id="node_list"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="add">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(["laytp"], function () {
|
||||
const
|
||||
$ = layui.$,
|
||||
tree = layui.tree,
|
||||
facade = layui.facade
|
||||
;
|
||||
|
||||
facade.ajax({
|
||||
route: "/admin.menu/getTree",
|
||||
successAlert: false
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
let treeData = getTreeData(res.data);
|
||||
tree.render({
|
||||
elem: '#treeview'
|
||||
, data: treeData
|
||||
, showCheckbox: true
|
||||
, accordion: false
|
||||
, showLine: false
|
||||
, id: 'auth_node'
|
||||
, oncheck: function () {
|
||||
var ids = facade.getTreeCheckedIds(tree.getChecked('auth_node'));
|
||||
$('#node_list').val(ids);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
function getTreeData(data) {
|
||||
let key;
|
||||
for (key in data) {
|
||||
data[key].title = data[key].name;
|
||||
data[key].spread = false;
|
||||
if (data[key].children != null && data[key].children.length > 0) {
|
||||
data[key].children = getTreeData(data[key].children);
|
||||
}
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
layui.form.on('submit(add)', function(data){
|
||||
var btnAnim = layui.button.load({elem:$(this)});
|
||||
facade.ajax({
|
||||
route:'/admin.role/add',
|
||||
data : data.field
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
parent.layui.layer.close(parent.layui.layer.getFrameIndex(window.name));//关闭当前页
|
||||
parent.layui.table.reloadData("laytp-table");
|
||||
}
|
||||
btnAnim.stop();
|
||||
}).fail(function(){
|
||||
btnAnim.stop();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+148
@@ -0,0 +1,148 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>编辑角色</title>
|
||||
</head>
|
||||
<body>
|
||||
<script type="text/html" id="form">
|
||||
<input type="hidden" name="id" value="{{ d.id }}" />
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="main-container">
|
||||
<input type="hidden" id="id" name="id" value="{{d.id}}"/>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">角色名
|
||||
<text style="color:red;">*</text>
|
||||
</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="name" id="name" value="{{d.name}}" placeholder="请输入角色名" class="layui-input"
|
||||
lay-verify="required" autocomplete="off"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">权限设置</label>
|
||||
<div class="layui-input-block">
|
||||
<div id="treeview" class="laytp-tree-horizontal layui-form-mid"><i
|
||||
class="layui-icon layui-icon-loading layui-icon layui-anim layui-anim-rotate layui-anim-loop"></i>
|
||||
</div>
|
||||
<input type="hidden" name="menu_ids" id="node_list"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="laytp-form">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
<form class="layui-form" lay-filter="layui-form"></form>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'],function(){
|
||||
let form = layui.form;
|
||||
let $ = layui.jquery;
|
||||
let layer = layui.layer;
|
||||
let tree = layui.tree;
|
||||
//获取参数ID
|
||||
var id = facade.getUrlParam('id');
|
||||
if(!id){
|
||||
facade.error('参数ID不能为空');
|
||||
return false;
|
||||
}
|
||||
//获取数据,渲染到对应的节点上
|
||||
facade.ajax({
|
||||
route: "/admin.role/info",
|
||||
data: {id: id},
|
||||
successAlert: false,
|
||||
showLoading: true
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
layui.laytpl($("#form").html()).render(res.data,function(string){
|
||||
$("form").html(string);
|
||||
layui.laytpForm.render();
|
||||
form.render();
|
||||
facade.ajax({
|
||||
route: "/admin.menu/getTree",
|
||||
successAlert: false
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
let treeData = getTreeData(res.data);
|
||||
tree.render({
|
||||
elem: '#treeview'
|
||||
, data: treeData
|
||||
, showCheckbox: true
|
||||
, accordion: false
|
||||
, showLine: false
|
||||
, id: 'auth_node'
|
||||
, oncheck: function () {
|
||||
var ids = facade.getTreeCheckedIds(tree.getChecked('auth_node'));
|
||||
$('#node_list').val(ids);
|
||||
}
|
||||
});
|
||||
facade.ajax({
|
||||
route: '/admin.role/getMenuIds',
|
||||
data: {id: id},
|
||||
successAlert: false,
|
||||
async: false
|
||||
}).done(function (res) {
|
||||
tree.setChecked('auth_node', res.data);
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
function getTreeData(data) {
|
||||
let key;
|
||||
for (key in data) {
|
||||
data[key].title = data[key].name;
|
||||
data[key].spread = false;
|
||||
if (data[key].children != null && data[key].children.length > 0) {
|
||||
data[key].children = getTreeData(data[key].children);
|
||||
}
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
form.on('submit(laytp-form)', function(data){
|
||||
var btnAnim = layui.button.load({elem:$(this)});
|
||||
facade.ajax({
|
||||
route:'/admin.role/edit',
|
||||
data:data.field
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
parent.layer.close(parent.layer.getFrameIndex(window.name));//关闭当前页
|
||||
parent.layui.table.reloadData("laytp-table");
|
||||
}
|
||||
btnAnim.stop();
|
||||
}).fail(function(){
|
||||
btnAnim.stop();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+106
@@ -0,0 +1,106 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>角色管理</title>
|
||||
</head>
|
||||
<body class="laytp-container">
|
||||
<div id="search-form" style="display:none;">
|
||||
<div class="layui-layer-title">搜索</div>
|
||||
<form class="layui-form search-form-body" lay-filter="layui-form" style="margin-top:20px;">
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="ID">ID</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="search_param[id][value]" id="id" placeholder="请输入ID"
|
||||
class="layui-input" autocomplete="off">
|
||||
<input type="hidden" name="search_param[id][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="角色名">角色名</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="search_param[name][value]" id="name" placeholder="请输入角色名"
|
||||
class="layui-input" autocomplete="off">
|
||||
<input type="hidden" name="search_param[name][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="laytp-search-form">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="button" class="laytp-btn laytp-btn-sm laytp-search-form-reset">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<table id="laytp-table" lay-filter="laytp-table"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="default-toolbar">
|
||||
<div class="dropdown-menu">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-md">
|
||||
<i class="layui-icon layui-icon-triangle-d"></i>
|
||||
批量操作
|
||||
</button>
|
||||
<ul class="dropdown-menu-nav layui-anim-upbit dropdown-bottom-left layui-anim">
|
||||
<div class="dropdown-anchor"></div>
|
||||
{{# if(facade.hasAuth("/admin.role/edit")){ }}
|
||||
<li><a lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a></li>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.role/del")){ }}
|
||||
<li><a lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a></li>
|
||||
{{# } }}
|
||||
</ul>
|
||||
</div>
|
||||
{{# if(facade.hasAuth("/admin.role/add")){ }}
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-md" lay-event="add">
|
||||
<i class="layui-icon layui-icon-add-1"></i>
|
||||
新增
|
||||
</button>
|
||||
{{# } }}
|
||||
<button class="laytp-btn laytp-btn-warming laytp-btn-md" lay-event="search">
|
||||
<i class="layui-icon layui-icon-search"></i>
|
||||
搜索
|
||||
</button>
|
||||
{{# if(facade.hasAuth("/admin.role/recycle")){ }}
|
||||
<button class="laytp-btn laytp-btn-success laytp-btn-md" lay-event="recycle">
|
||||
<i class="layui-icon layui-icon-delete"></i>
|
||||
回收站
|
||||
</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="default-bar">
|
||||
{{# if(facade.hasAuth("/admin.role/edit")){ }}
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</button>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.role/del")){ }}
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/admin/js/role.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/admin/js/role.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+82
@@ -0,0 +1,82 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>角色回收站</title>
|
||||
</head>
|
||||
<body class="laytp-container-recycle">
|
||||
<div id="recycle-search-form" style="display:none;">
|
||||
<div class="layui-layer-title">搜索</div>
|
||||
<form class="layui-form search-form-body" lay-filter="layui-form" style="margin-top:20px;">
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="ID">ID</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="search_param[id][value]" id="id" placeholder="请输入ID"
|
||||
class="layui-input" autocomplete="off">
|
||||
<input type="hidden" name="search_param[id][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label" title="角色名">角色名</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="search_param[name][value]" id="username" placeholder="请输入角色名"
|
||||
class="layui-input" autocomplete="off">
|
||||
<input type="hidden" name="search_param[name][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="laytp-recycle-search-form">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="button" class="laytp-btn laytp-btn-sm laytp-recycle-search-form-reset">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<table id="laytp-recycle-table" lay-filter="laytp-recycle-table"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="recycle-default-toolbar">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-md" lay-event="restore">
|
||||
<i class="laytp-icon laytp-icon-back"></i>
|
||||
还原
|
||||
</button>
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-md" lay-event="true-del">
|
||||
<i class="layui-icon layui-icon-delete"></i>
|
||||
删除
|
||||
</button>
|
||||
<button class="laytp-btn laytp-btn-warming laytp-btn-md" lay-event="recycle-search">
|
||||
<i class="layui-icon layui-icon-search"></i>
|
||||
搜索
|
||||
</button>
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="recycle-default-bar">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-xs" lay-event="restore"><i class="laytp-icon laytp-icon-back"></i>还原</button>
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-xs" lay-event="true-del"><i class="layui-icon layui-icon-delete"></i>删除</button>
|
||||
</script>
|
||||
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/admin/js/roleRecycle.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/admin/js/roleRecycle.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+35
@@ -0,0 +1,35 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>播放音频页面</title>
|
||||
<link rel="stylesheet" href="/static/component/laytp/css/laytp.css" />
|
||||
</head>
|
||||
<body>
|
||||
<div style="display: grid;place-items: center" id="parentDiv">
|
||||
<audio id="audio" width="100%" height="50%" controls="controls"></audio>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm" onclick="parent.layui.layer.close(parent.layui.layer.getFrameIndex(window.name));">
|
||||
<i class="layui-icon layui-icon-close"></i>
|
||||
关闭
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'],function(){
|
||||
var audioUrl = facade.getUrlParam('audio_url');
|
||||
layui.$("#audio").attr('src',window.atob(audioUrl));
|
||||
var iframeIndex = parent.layui.layer.getFrameIndex(window.name);
|
||||
var iframeHeight = parent.$("#layui-layer-iframe" + iframeIndex).css('height');
|
||||
var audioHeight = parseInt(facade.rtrim(iframeHeight, 'px')) - 100;
|
||||
layui.$("#parentDiv").css('height', audioHeight);
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+35
@@ -0,0 +1,35 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>播放音频页面</title>
|
||||
<link rel="stylesheet" href="/static/component/laytp/css/laytp.css" />
|
||||
</head>
|
||||
<body>
|
||||
<div style="display: grid;place-items: center" id="parentDiv">
|
||||
<img id="img" />
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm" onclick="parent.layui.layer.close(parent.layui.layer.getFrameIndex(window.name));">
|
||||
<i class="layui-icon layui-icon-close"></i>
|
||||
关闭
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'],function(){
|
||||
var imgUrl = facade.getUrlParam('img_url');
|
||||
layui.$("#img").attr('src',window.atob(imgUrl));
|
||||
var iframeIndex = parent.layui.layer.getFrameIndex(window.name);
|
||||
var iframeHeight = parent.$("#layui-layer-iframe" + iframeIndex).css('height');
|
||||
var audioHeight = parseInt(facade.rtrim(iframeHeight, 'px')) - 100;
|
||||
layui.$("#parentDiv").css('height', audioHeight);
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+35
@@ -0,0 +1,35 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>播放视频页面</title>
|
||||
<link rel="stylesheet" href="/static/component/laytp/css/laytp.css" />
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin:0 auto;text-align:center">
|
||||
<video controls="controls" id="video"></video>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm" onclick="parent.layui.layer.close(parent.layui.layer.getFrameIndex(window.name));">
|
||||
<i class="layui-icon layui-icon-close"></i>
|
||||
关闭
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'],function(){
|
||||
var videoUrl = facade.getUrlParam('video_url');
|
||||
layui.$("#video").attr('src',window.atob(videoUrl));
|
||||
var iframeIndex = parent.layui.layer.getFrameIndex(window.name);
|
||||
var iframeHeight = parent.$("#layui-layer-iframe" + iframeIndex).css('height');
|
||||
var videoHeight = parseInt(facade.rtrim(iframeHeight, 'px')) - 50;
|
||||
layui.$("#video").attr('height', videoHeight);
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+2
@@ -0,0 +1,2 @@
|
||||
<p style="color:blue">请先到插件市场安装ueditor编辑器。</p>
|
||||
<p style="color:red">注意:安装或卸载编辑器后,需要清空浏览器缓存才能生效</p>
|
||||
Executable
+107
@@ -0,0 +1,107 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>个人资料</title>
|
||||
</head>
|
||||
<body>
|
||||
<script type="text/html" id="formTemplate">
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="main-container">
|
||||
<input type="hidden" name="id" value="{{d.id}}" />
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">用户名</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="layui-form-mid">{{d.username}}</div>
|
||||
<div class="layui-form-mid layui-word-aux"> 建议尺寸,宽:400px,高:不限制;文件大小上限:不限制 </div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">点击更新</label>
|
||||
<div class="layui-input-block">
|
||||
<button id="dianjigengx" class="layui-btn layui-btn-primary layui-btn-sm">
|
||||
<i class="layui-icon layui-icon-upload-drag"></i> 上传图片
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
<form class="layui-form" lay-filter="layui-form"></form>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'],function(){
|
||||
var user = layui.context.get("user");
|
||||
layui.laytpl($("#formTemplate").html()).render(user,function(string){
|
||||
$("form").html(string);
|
||||
layui.laytpForm.render();
|
||||
layui.form.render();
|
||||
});
|
||||
// 监听按钮点击事件
|
||||
$('#dianjigengx').on('click', function(){
|
||||
// 处理点击事件
|
||||
console.log('按钮被点击');
|
||||
facade.ajax({
|
||||
route:'/admin.updata/updata.html',
|
||||
data : {up:'ok'},
|
||||
successAlert: false
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
layui.popup.success("操作成功,请稍后。。。。");
|
||||
}
|
||||
btnAnim.stop();
|
||||
}).fail(function(){
|
||||
btnAnim.stop();
|
||||
});
|
||||
return false;
|
||||
|
||||
|
||||
});
|
||||
layui.form.on('submit(dianjigengx)', function(data){
|
||||
alert("sb")
|
||||
var btnAnim = layui.button.load({elem:$(this)});
|
||||
facade.ajax({
|
||||
route:'/admin.user/singleEdit',
|
||||
data : data.field,
|
||||
successAlert: false
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
layui.popup.success("操作成功,请重新登录",function(){
|
||||
facade.ajax({
|
||||
route: "/admin.user/logout",
|
||||
successAlert: false
|
||||
}).done(function(){
|
||||
facade.redirect("/admin/login.html");
|
||||
});
|
||||
});
|
||||
}
|
||||
btnAnim.stop();
|
||||
}).fail(function(){
|
||||
btnAnim.stop();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+122
@@ -0,0 +1,122 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>添加用户</title>
|
||||
</head>
|
||||
<body>
|
||||
<form class="layui-form" lay-filter="layui-form">
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="main-container">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><text title="必填项" style="color:red;">*</text>用户名</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="username" lay-verify="required" autocomplete="off" placeholder="请输入用户名" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><text title="必填项" style="color:red;">*</text>昵称</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="nickname" lay-verify="required" autocomplete="off" placeholder="请输入昵称" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><text title="必填项" style="color:red;">*</text>密码</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="password" name="password" lay-verify="required" autocomplete="off" placeholder="请输入密码" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><text title="必填项" style="color:red;">*</text>重复密码</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="password" name="re_password" lay-verify="required" autocomplete="off" placeholder="请输入重复密码" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">账号状态</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="status" value="1" title="正常" checked>
|
||||
<input type="radio" name="status" value="2" title="禁用">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">是否超管</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="is_super_manager" value="1" title="是">
|
||||
<input type="radio" name="is_super_manager" value="2" title="否" checked>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">头像</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="laytpUpload"
|
||||
data-name="avatar"
|
||||
data-accept="image"
|
||||
data-width="400"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">角色</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="xmSelect"
|
||||
data-name="role_ids"
|
||||
data-sourceType="route"
|
||||
data-source="/admin.role/index"
|
||||
data-textField="name"
|
||||
data-valueField="id"
|
||||
data-paging="false"
|
||||
data-direction="up"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="add">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'],function(){
|
||||
layui.form.on('submit(add)', function(data){
|
||||
var btnAnim = layui.button.load({elem:$(this)});
|
||||
facade.ajax({
|
||||
route:'/admin.user/add',
|
||||
data : data.field
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
parent.layui.layer.close(parent.layui.layer.getFrameIndex(window.name));//关闭当前页
|
||||
parent.layui.table.reloadData("laytp-table");
|
||||
}
|
||||
btnAnim.stop();
|
||||
}).fail(function(){
|
||||
btnAnim.stop();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+152
@@ -0,0 +1,152 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>编辑用户</title>
|
||||
</head>
|
||||
<body>
|
||||
<script type="text/html" id="form">
|
||||
<input type="hidden" name="id" value="{{ d.id }}" />
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="main-container">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><text title="必填项" style="color:red;">*</text>用户名</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="username" value="{{ d.username }}" lay-verify="required" autocomplete="off" placeholder="请输入用户名" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><text title="必填项" style="color:red;">*</text>昵称</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="nickname" value="{{ d.nickname }}" lay-verify="required" autocomplete="off" placeholder="请输入昵称" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">密码</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="password" name="password" autocomplete="off" placeholder="请输入密码" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">重复密码</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="password" name="re_password" autocomplete="off" placeholder="请输入重复密码" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">账号状态</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="status" value="1" title="正常" {{# if(d.status===1){ }}checked="checked"{{# } }} />
|
||||
<input type="radio" name="status" value="2" title="禁用" {{# if(d.status===2){ }}checked="checked"{{# } }} />
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">是否超管</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="is_super_manager" value="1" title="是" {{# if(d.is_super_manager===1){ }}checked="checked"{{# } }} />
|
||||
<input type="radio" name="is_super_manager" value="2" title="否" {{# if(d.is_super_manager===2){ }}checked="checked"{{# } }} />
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">头像</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="laytpUpload"
|
||||
data-name="avatar"
|
||||
data-accept="image"
|
||||
data-width="400"
|
||||
data-uploaded="{{ d.avatar_file.path }}"
|
||||
data-uploadedId="{{ d.avatar_file.id }}"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">角色</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="xmSelect"
|
||||
data-name="role_ids"
|
||||
data-sourceType="route"
|
||||
data-source="/admin.role/index"
|
||||
data-textField="name"
|
||||
data-valueField="id"
|
||||
data-paging="true"
|
||||
data-direction="up"
|
||||
data-selected="{{ d.role_ids }}"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="laytp-form">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
<form class="layui-form" lay-filter="layui-form"></form>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'],function(){
|
||||
let form = layui.form;
|
||||
let $ = layui.jquery;
|
||||
//获取参数ID
|
||||
var id = facade.getUrlParam('id');
|
||||
if(!id){
|
||||
facade.error('参数ID不能为空');
|
||||
return false;
|
||||
}
|
||||
|
||||
//获取数据,渲染到对应的节点上
|
||||
facade.ajax({
|
||||
route: "/admin.user/info",
|
||||
data: {id: id},
|
||||
successAlert: false,
|
||||
showLoading: true
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
layui.laytpl($("#form").html()).render(res.data,function(string){
|
||||
$("form").html(string);
|
||||
layui.laytpForm.render();
|
||||
form.render();
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
form.on('submit(laytp-form)', function(data){
|
||||
var btnAnim = layui.button.load({elem:$(this)});
|
||||
facade.ajax({
|
||||
route:'/admin.user/edit',
|
||||
data:data.field
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
parent.layui.layer.close(parent.layui.layer.getFrameIndex(window.name));//关闭当前页
|
||||
parent.layui.table.reloadData("laytp-table");
|
||||
}
|
||||
btnAnim.stop();
|
||||
}).fail(function(){
|
||||
btnAnim.stop();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+140
@@ -0,0 +1,140 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>管理员管理</title>
|
||||
</head>
|
||||
<body class="laytp-container">
|
||||
<div id="search-form" style="display:none;">
|
||||
<div class="layui-layer-title">搜索</div>
|
||||
<form class="layui-form search-form-body" lay-filter="layui-form" style="margin-top:20px;">
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">ID</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="search_param[id][value]" class="layui-input" autocomplete="off" />
|
||||
<input type="hidden" name="search_param[id][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">用户名</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="search_param[username][value]" class="layui-input" autocomplete="off" />
|
||||
<input type="hidden" name="search_param[username][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">昵称</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="search_param[nickname][value]" class="layui-input" autocomplete="off" />
|
||||
<input type="hidden" name="search_param[nickname][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">是否超管</label>
|
||||
<div class="layui-input-inline">
|
||||
<select name="search_param[is_super_manager][value]" class="layui-select">
|
||||
<option value="">全部</option>
|
||||
<option value="1">是</option>
|
||||
<option value="2">否</option>
|
||||
</select>
|
||||
<input type="hidden" name="search_param[is_super_manager][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">账号状态</label>
|
||||
<div class="layui-input-inline">
|
||||
<select name="search_param[status][value]" class="layui-select">
|
||||
<option value="">全部</option>
|
||||
<option value="1">正常</option>
|
||||
<option value="2">禁用</option>
|
||||
</select>
|
||||
<input type="hidden" name="search_param[status][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">创建时间</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input laydate"
|
||||
id="create_time" name="search_param[create_time][value]"
|
||||
data-type="datetime" data-isRange="true" placeholder="请选择创建时间">
|
||||
<input type="hidden" name="search_param[create_time][condition]" value="BETWEEN">
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="laytp-search-form">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="button" class="laytp-btn laytp-btn-sm laytp-search-form-reset">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<table id="laytp-table" lay-filter="laytp-table"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="default-toolbar">
|
||||
<div class="dropdown-menu">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-md">
|
||||
<i class="layui-icon layui-icon-triangle-d"></i>
|
||||
批量操作
|
||||
</button>
|
||||
<ul class="dropdown-menu-nav layui-anim-upbit dropdown-bottom-left layui-anim">
|
||||
<div class="dropdown-anchor"></div>
|
||||
{{# if(facade.hasAuth("/admin.user/edit")){ }}
|
||||
<li><a lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a></li>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.user/del")){ }}
|
||||
<li><a lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a></li>
|
||||
{{# } }}
|
||||
</ul>
|
||||
</div>
|
||||
{{# if(facade.hasAuth("/admin.user/add")){ }}
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-md" lay-event="add">
|
||||
<i class="layui-icon layui-icon-add-1"></i>
|
||||
新增
|
||||
</button>
|
||||
{{# } }}
|
||||
<button class="laytp-btn laytp-btn-warming laytp-btn-md" lay-event="search">
|
||||
<i class="layui-icon layui-icon-search"></i>
|
||||
搜索
|
||||
</button>
|
||||
{{# if(facade.hasAuth("/admin.user/recycle")){ }}
|
||||
<button class="laytp-btn laytp-btn-success laytp-btn-md" lay-event="recycle">
|
||||
<i class="layui-icon layui-icon-delete"></i>
|
||||
回收站
|
||||
</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="default-bar">
|
||||
{{# if(facade.hasAuth("/admin.user/edit")){ }}
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</button>
|
||||
{{# } }}
|
||||
{{# if(facade.hasAuth("/admin.user/del")){ }}
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/admin/js/user.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/admin/js/user.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+117
@@ -0,0 +1,117 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>用户回收站</title>
|
||||
</head>
|
||||
<body class="laytp-container-recycle">
|
||||
<div id="recycle-search-form" style="display:none;">
|
||||
<div class="layui-layer-title">搜索</div>
|
||||
<form class="layui-form search-form-body" lay-filter="layui-form" style="margin-top:20px;">
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">ID</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="search_param[id][value]" class="layui-input" autocomplete="off" />
|
||||
<input type="hidden" name="search_param[id][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">用户名</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="search_param[username][value]" class="layui-input" autocomplete="off" />
|
||||
<input type="hidden" name="search_param[username][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">昵称</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="search_param[nickname][value]" class="layui-input" autocomplete="off" />
|
||||
<input type="hidden" name="search_param[nickname][condition]" value="LIKE">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">是否超管</label>
|
||||
<div class="layui-input-inline">
|
||||
<select name="search_param[is_super_manager][value]" class="layui-select">
|
||||
<option value="">全部</option>
|
||||
<option value="1">是</option>
|
||||
<option value="2">否</option>
|
||||
</select>
|
||||
<input type="hidden" name="search_param[is_super_manager][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">账号状态</label>
|
||||
<div class="layui-input-inline">
|
||||
<select name="search_param[status][value]" class="layui-select">
|
||||
<option value="">全部</option>
|
||||
<option value="1">正常</option>
|
||||
<option value="2">禁用</option>
|
||||
</select>
|
||||
<input type="hidden" name="search_param[status][condition]" value="=">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">创建时间</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input laydate"
|
||||
id="create_time" name="search_param[create_time][value]"
|
||||
data-type="datetime" data-isRange="true" placeholder="请选择创建时间">
|
||||
<input type="hidden" name="search_param[create_time][condition]" value="BETWEEN">
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="laytp-recycle-search-form">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="button" class="laytp-btn laytp-btn-sm laytp-recycle-search-form-reset">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<table id="laytp-recycle-table" lay-filter="laytp-recycle-table"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="recycle-default-toolbar">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-md" lay-event="restore">
|
||||
<i class="laytp-icon laytp-icon-back"></i>
|
||||
还原
|
||||
</button>
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-md" lay-event="true-del">
|
||||
<i class="layui-icon layui-icon-delete"></i>
|
||||
删除
|
||||
</button>
|
||||
<button class="laytp-btn laytp-btn-warming laytp-btn-md" lay-event="recycle-search">
|
||||
<i class="layui-icon layui-icon-search"></i>
|
||||
搜索
|
||||
</button>
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="recycle-default-bar">
|
||||
<button class="laytp-btn laytp-btn-primary laytp-btn-xs" lay-event="restore"><i class="laytp-icon laytp-icon-back"></i>还原</button>
|
||||
<button class="laytp-btn laytp-btn-danger laytp-btn-xs" lay-event="true-del"><i class="layui-icon layui-icon-delete"></i>删除</button>
|
||||
</script>
|
||||
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/admin/js/userRecycle.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/admin/js/userRecycle.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+118
@@ -0,0 +1,118 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>个人资料</title>
|
||||
</head>
|
||||
<body>
|
||||
<script type="text/html" id="formTemplate">
|
||||
<div class="mainBox">
|
||||
<div class="main-container">
|
||||
<div class="main-container">
|
||||
<input type="hidden" name="id" value="{{d.id}}" />
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">用户名</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="layui-form-mid">{{d.username}}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">昵称</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="nickname" value="{{d.nickname}}" lay-verify="require" autocomplete="off" placeholder="请输入昵称" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">旧密码</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="password" name="old_password" autocomplete="off" placeholder="请输入旧密码,留空表示不修改密码" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">新密码</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="password" name="password" autocomplete="off" placeholder="请输入新密码,留空表示不修改密码" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">重复新密码</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="password" name="re_password" autocomplete="off" placeholder="请输入重复新密码,留空表示不修改密码" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">头像</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="laytpUpload"
|
||||
data-name="avatar"
|
||||
data-accept="image"
|
||||
data-width="400"
|
||||
data-uploaded="{{ d.avatar_file.path }}"
|
||||
data-uploadedId="{{ d.avatar_file.id }}"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="button-container">
|
||||
<button type="submit" class="laytp-btn laytp-btn-primary laytp-btn-sm" lay-submit="" lay-filter="singleEdit">
|
||||
<i class="layui-icon layui-icon-ok"></i>
|
||||
提交
|
||||
</button>
|
||||
<button type="reset" class="laytp-btn laytp-btn-sm">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
<form class="layui-form" lay-filter="layui-form"></form>
|
||||
<script>
|
||||
if(localStorage.getItem("staticDomain")){
|
||||
document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}else{
|
||||
document.write("<link rel='stylesheet' href='/static/component/laytp/css/laytp.css?v=" + localStorage.getItem("version") + "'>");
|
||||
document.write("<script src='/static/component/layui/layui.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
document.write("<script src='/static/component/laytp/layuiConfig.js?v="+localStorage.getItem("version")+"'><\/script>");
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['laytp'],function(){
|
||||
var user = layui.context.get("user");
|
||||
layui.laytpl($("#formTemplate").html()).render(user,function(string){
|
||||
$("form").html(string);
|
||||
layui.laytpForm.render();
|
||||
layui.form.render();
|
||||
});
|
||||
|
||||
layui.form.on('submit(singleEdit)', function(data){
|
||||
var btnAnim = layui.button.load({elem:$(this)});
|
||||
facade.ajax({
|
||||
route:'/admin.user/singleEdit',
|
||||
data : data.field,
|
||||
successAlert: false
|
||||
}).done(function(res){
|
||||
if(res.code === 0){
|
||||
layui.popup.success("操作成功,请重新登录",function(){
|
||||
facade.ajax({
|
||||
route: "/admin.user/logout",
|
||||
successAlert: false
|
||||
}).done(function(){
|
||||
facade.redirect("/admin/login.html");
|
||||
});
|
||||
});
|
||||
}
|
||||
btnAnim.stop();
|
||||
}).fail(function(){
|
||||
btnAnim.stop();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user