代码功能更新
This commit is contained in:
Executable
@@ -0,0 +1 @@
|
||||
open_basedir=/www/wwwroot/premium.konline.top/:/tmp/
|
||||
+1
@@ -0,0 +1 @@
|
||||
SpKNEX0jejnrTJi1_NymtC9xZyuh8RXkVb1U2Sj6yOE.KM2YZ6y0Z1O9uM4DHsmjpQBZ6hq3_mr3sLPFNMZJno0
|
||||
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>
|
||||
+1309
File diff suppressed because it is too large
Load Diff
Executable
BIN
Binary file not shown.
|
After Width: | Height: | Size: 8.4 KiB |
Executable
BIN
Binary file not shown.
|
After Width: | Height: | Size: 34 KiB |
Executable
+27
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2006-2019 http://thinkphp.cn All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: liu21st <liu21st@gmail.com>
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
// [ 应用入口文件 ]
|
||||
namespace think;
|
||||
|
||||
require __DIR__ . '/../vendor/autoload.php';
|
||||
|
||||
define('DS', DIRECTORY_SEPARATOR);
|
||||
define('LT_VERSION', '3.0.3');
|
||||
|
||||
// 执行HTTP应用并响应
|
||||
$http = (new App())->http;
|
||||
|
||||
$response = $http->run();
|
||||
|
||||
$response->send();
|
||||
|
||||
$http->end($response);
|
||||
Executable
+2
@@ -0,0 +1,2 @@
|
||||
User-agent: *
|
||||
Disallow:
|
||||
Executable
+19
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2006~2019 http://thinkphp.cn All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: liu21st <liu21st@gmail.com>
|
||||
// +----------------------------------------------------------------------
|
||||
// $Id$
|
||||
|
||||
if (is_file($_SERVER["DOCUMENT_ROOT"] . $_SERVER["SCRIPT_NAME"])) {
|
||||
return false;
|
||||
} else {
|
||||
$_SERVER["SCRIPT_FILENAME"] = __DIR__ . '/index.php';
|
||||
|
||||
require __DIR__ . "/index.php";
|
||||
}
|
||||
Executable
+572
@@ -0,0 +1,572 @@
|
||||
html,
|
||||
body,
|
||||
.layui-layout {
|
||||
/*height: 100%;*/
|
||||
}
|
||||
|
||||
.laytp-admin .layui-header,
|
||||
.laytp-admin .layui-body,
|
||||
.laytp-admin .layui-logo,
|
||||
.laytp-admin .layui-side,
|
||||
.laytp-admin .layui-header .layui-layout-left {
|
||||
transition: all .3s;
|
||||
}
|
||||
|
||||
.laytp-admin.banner-layout .layui-side {
|
||||
top: 60px!important;
|
||||
}
|
||||
|
||||
.laytp-admin.banner-layout .layui-side .layui-logo {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.laytp-admin.banner-layout .layui-header .layui-logo {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.laytp-admin.banner-layout .layui-side .layui-side-scroll {
|
||||
height: 100%!important;
|
||||
}
|
||||
|
||||
.laytp-admin.banner-layout .layui-side .layui-side-scroll {
|
||||
height: 100%!important;
|
||||
}
|
||||
|
||||
.laytp-admin .layui-header.dark-theme .layui-layout-control .layui-this *{
|
||||
background-color: rgba(0,0,0,.1)!important;
|
||||
}
|
||||
|
||||
.laytp-admin.banner-layout .layui-header {
|
||||
z-index: 99999;
|
||||
width: 100%;
|
||||
left: 0px;
|
||||
}
|
||||
|
||||
.laytp-admin.banner-layout .layui-header .layui-layout-left {
|
||||
left: 230px;
|
||||
}
|
||||
|
||||
.laytp-admin.banner-layout .layui-header .layui-logo .title {
|
||||
top: 2px;
|
||||
}
|
||||
|
||||
.laytp-admin.banner-layout .layui-header .layui-layout-control {
|
||||
display: inline-block;
|
||||
left: 370px;
|
||||
}
|
||||
|
||||
.laytp-admin.banner-layout .layui-header.dark-theme {
|
||||
box-shadow: 2px 0 6px rgb(0 21 41 / 35%);
|
||||
}
|
||||
|
||||
.laytp-admin .layui-header .layui-logo {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.laytp-admin .layui-logo .title {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
.laytp-admin .layui-layout-right .layui-nav-child {
|
||||
border: 1px solid whitesmoke;
|
||||
border-radius: 4px;
|
||||
width: auto;
|
||||
left: auto;
|
||||
right: -23px;
|
||||
}
|
||||
|
||||
.laytp-admin .layui-header {
|
||||
left: 230px;
|
||||
width: calc(100% - 230px);
|
||||
background-color: white;
|
||||
border-bottom: 1px solid whitesmoke;
|
||||
}
|
||||
|
||||
.laytp-admin .layui-layout-control {
|
||||
left: 140px;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.laytp-admin .layui-layout-control .layui-nav {
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
.laytp-admin .layui-logo {
|
||||
width: 230px;
|
||||
height: 59px;
|
||||
line-height: 59px;
|
||||
position: relative;
|
||||
background-color: #28333E;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, .12);
|
||||
}
|
||||
|
||||
.laytp-admin .layui-logo img {
|
||||
width: 34px;
|
||||
height: 34px;
|
||||
}
|
||||
|
||||
.laytp-admin .layui-logo .title {
|
||||
font-size: 21px;
|
||||
font-weight: 550;
|
||||
color: #5FB878;
|
||||
position: relative;
|
||||
top: 5px;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.laytp-admin .layui-logo .logo {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.laytp-admin .layui-side {
|
||||
top: 0px;
|
||||
width: 230px;
|
||||
box-shadow: 2px 0 6px rgba(0, 21, 41, .20);
|
||||
z-index: 9999;
|
||||
}
|
||||
|
||||
.laytp-admin .layui-side-scroll::-webkit-scrollbar {
|
||||
width: 0px;
|
||||
height: 0px;
|
||||
}
|
||||
|
||||
.laytp-admin .layui-side-scroll {
|
||||
height: calc(100% - 60px) !important;
|
||||
background-color: #28333E;
|
||||
width: 247px;
|
||||
|
||||
}
|
||||
|
||||
.laytp-admin .layui-header .layui-nav .layui-nav-item>a {
|
||||
color: black;
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
.laytp-admin .layui-body {
|
||||
left: 230px;
|
||||
bottom: 0px;
|
||||
padding-bottom: 0px;
|
||||
}
|
||||
|
||||
.laytp-admin .layui-layout-left {
|
||||
left: 0px;
|
||||
}
|
||||
|
||||
.laytp-admin .layui-footer {
|
||||
position: absolute;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
left: 230px;
|
||||
background: #fff;
|
||||
border-top: 1px solid #F2F2F2;
|
||||
box-shadow: none;
|
||||
-webkit-transition: left .3s;
|
||||
transition: left .3s;
|
||||
overflow: hidden;
|
||||
color: #3c3c3cb3;
|
||||
font-weight: 300;
|
||||
font-size: 13.6px;
|
||||
}
|
||||
|
||||
.laytp-admin .layui-footer.close {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 768px) {
|
||||
.laytp-admin.banner-layout .layui-header .layui-logo {
|
||||
display: none;
|
||||
}
|
||||
.laytp-admin.banner-layout .layui-header .layui-layout-left {
|
||||
left: 0px;
|
||||
}
|
||||
}
|
||||
|
||||
/** 收缩布局 */
|
||||
.laytp-mini .layui-side .layui-logo .title {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.laytp-mini .layui-side .layui-logo .logo {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.laytp-mini .layui-side {
|
||||
width: 60px;
|
||||
}
|
||||
|
||||
.laytp-mini .layui-header {
|
||||
left: 60px;
|
||||
width: calc(100% - 60px);
|
||||
}
|
||||
|
||||
.laytp-mini .layui-body {
|
||||
left: 60px;
|
||||
}
|
||||
|
||||
.laytp-mini .layui-side .layui-logo {
|
||||
width: 60px;
|
||||
}
|
||||
|
||||
.laytp-mini .layui-footer {
|
||||
left: 60px;
|
||||
}
|
||||
|
||||
.laytp-mini .layui-nav-tree .layui-nav-item span {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.laytp-mini .bottom-nav li {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
.laytp-mini .layui-side-scroll {
|
||||
height: calc(100% - 60px);
|
||||
}
|
||||
|
||||
.laytp-admin .layui-header .layui-nav .layui-nav-bar {
|
||||
top: 0px !important;
|
||||
height: 2px !important;
|
||||
background-color: #5FB878;
|
||||
}
|
||||
|
||||
.laytp-admin .layui-header .layui-nav .layui-this:after {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.laytp-admin .layui-header .layui-nav-more {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.laytp-collapsed-pe {
|
||||
display: none;
|
||||
width: 50px;
|
||||
position: absolute;
|
||||
z-index: 400000;
|
||||
bottom: 30px;
|
||||
right: 30px;
|
||||
background-color: #5FB878 !important;
|
||||
height: 50px;
|
||||
line-height: 50px;
|
||||
text-align: center;
|
||||
border-radius: 50px;
|
||||
box-shadow: 2px 0 6px rgba(0, 21, 41, .35);
|
||||
}
|
||||
|
||||
.laytp-collapsed-pe a {
|
||||
color: white !important;
|
||||
}
|
||||
|
||||
@media screen and (min-width: 768px) {
|
||||
.layui-hide-sm {
|
||||
display: inline-block !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: 769px) {
|
||||
.layui-hide-sm {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
/** 新增兼容 */
|
||||
@media screen and (max-width:768px) {
|
||||
.collapse {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.laytp-collapsed-pe {
|
||||
display: inline-block !important;
|
||||
}
|
||||
|
||||
.layui-layout-control {
|
||||
left: 45px !important;
|
||||
}
|
||||
|
||||
.layui-layout-left {
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
.laytp-mini .bottom-nav {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.laytp-mini .layui-side-scroll {
|
||||
height: calc(100% - 62px);
|
||||
}
|
||||
|
||||
.laytp-mini .layui-side {
|
||||
width: 0px;
|
||||
}
|
||||
|
||||
.laytp-mini .layui-header {
|
||||
left: 0px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.laytp-mini .layui-body {
|
||||
left: 0px;
|
||||
}
|
||||
|
||||
.laytp-mini .layui-footer {
|
||||
left: 0px;
|
||||
}
|
||||
|
||||
.laytp-mini .layui-logo {
|
||||
width: 0px;
|
||||
}
|
||||
|
||||
.laytp-admin .layui-body {
|
||||
left: 0px;
|
||||
}
|
||||
|
||||
.laytp-admin .layui-header {
|
||||
left: 0px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.laytp-admin .laytp-cover {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: #1E1E1E;
|
||||
display: block;
|
||||
position: absolute;
|
||||
z-index: 1000;
|
||||
opacity: 0;
|
||||
margin-top: -60px;
|
||||
}
|
||||
|
||||
.laytp-mini .laytp-cover {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes am-horizontal-roll_show {
|
||||
0% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateX(2000px);
|
||||
transform: translateX(2000px)
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateX(0);
|
||||
transform: translateX(0)
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes am-horizontal-roll_show {
|
||||
0% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateX(800px);
|
||||
-ms-transform: translateX(800px);
|
||||
transform: translateX(800px)
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateX(0);
|
||||
-ms-transform: translateX(0);
|
||||
transform: translateX(0)
|
||||
}
|
||||
}
|
||||
|
||||
.layer-anim-right {
|
||||
-webkit-animation: am-horizontal-roll_show .6s ease-out;
|
||||
animation: am-horizontal-roll_show .6s ease-out;
|
||||
|
||||
}
|
||||
|
||||
/** 侧边主题 (亮) */
|
||||
.light-theme.layui-side {
|
||||
box-shadow: 2px 0 8px 0 rgba(29, 35, 41, .05) !important;
|
||||
}
|
||||
|
||||
.light-theme.layui-side .layui-logo {
|
||||
background-color: white !important;
|
||||
color: black !important;
|
||||
border-bottom: 1px whitesmoke solid;
|
||||
}
|
||||
|
||||
.light-theme.layui-side .layui-side-scroll {
|
||||
background-color: white !important;
|
||||
color: black !important;
|
||||
}
|
||||
|
||||
.dark-theme.layui-header {
|
||||
border-bottom: none;
|
||||
background-color: #28333E;
|
||||
color: whitesmoke;
|
||||
}
|
||||
|
||||
.dark-theme.layui-header li>a{
|
||||
color: whitesmoke!important;
|
||||
}
|
||||
|
||||
.dark-theme.layui-header .layui-logo {
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
}
|
||||
|
||||
/** 顶部主题 (白) */
|
||||
.light-theme.layui-header .layui-logo {
|
||||
background-color: white;
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
/** 主题面板 */
|
||||
.laytpone-color .set-text {
|
||||
height: 42px;
|
||||
line-height: 42px;
|
||||
}
|
||||
|
||||
.laytpone-color .color-title {
|
||||
padding: 15px 0 0px 20px;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.laytpone-color .color-content {
|
||||
padding: 15px 10px 0 20px;
|
||||
}
|
||||
|
||||
.laytpone-color .color-content ul {
|
||||
list-style: none;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
.laytpone-color .color-content ul li {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
width: 70px;
|
||||
height: 50px;
|
||||
margin: 0 20px 20px 0;
|
||||
padding: 2px 2px 2px 2px;
|
||||
background-color: #f2f2f2;
|
||||
cursor: pointer;
|
||||
font-size: 12px;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.laytpone-color .color-content li.layui-this:after,
|
||||
.laytpone-color .color-content li:hover:after {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
padding: 4px;
|
||||
top: -5px;
|
||||
left: -5px;
|
||||
border: #5FB878 2px solid;
|
||||
opacity: 1;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.laytpone-color .color-content li:after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
z-index: 20;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
width: 1px;
|
||||
height: 0;
|
||||
border: 2px solid #F2F2F2;
|
||||
transition: all .3s;
|
||||
-webkit-transition: all .3s;
|
||||
opacity: 0;
|
||||
}
|
||||
@media screen and (max-width: 450px) {
|
||||
.laytpone-color .layui-form-item .layui-input-inline {
|
||||
float: left !important;
|
||||
width: 190px !important;
|
||||
margin: 0 10px 0 0!important;
|
||||
}
|
||||
}
|
||||
.select-color {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.select-color .select-color-title {
|
||||
padding: 15px 0 0px 20px;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.select-color .select-color-content {
|
||||
padding: 20px 0 0px 0px;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.select-color .select-color-content .select-color-item {
|
||||
background-color: gray;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
border-radius: 3px;
|
||||
float: left;
|
||||
margin-left: 20px;
|
||||
color: white;
|
||||
font-size: 18px;
|
||||
text-align: center;
|
||||
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, .15);
|
||||
line-height: 30px;
|
||||
}
|
||||
|
||||
.message .layui-tab-title li:not(:last-child) {
|
||||
border-right: 1px solid #eee;
|
||||
}
|
||||
|
||||
/* 搜索面板 */
|
||||
.menu-search-content .layui-input {
|
||||
padding-left: 30px;
|
||||
}
|
||||
|
||||
.menu-search-content {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.menu-search-input-wrapper {
|
||||
width: 100%;
|
||||
padding: 15px 15px;
|
||||
}
|
||||
|
||||
.menu-search-no-data {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
width: 100%;
|
||||
height: 122px;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.menu-search-list {
|
||||
width: 100%;
|
||||
padding: 5px 15px;
|
||||
}
|
||||
|
||||
.menu-search-list li {
|
||||
position: relative;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
flex-wrap: nowrap;
|
||||
height: 50px;
|
||||
margin-bottom: 8px;
|
||||
padding: 0px 10px;
|
||||
color: currentColor;
|
||||
font-size: 14px;
|
||||
border-radius: 4px;
|
||||
box-shadow: 0 1px 3px #d4d9e1;
|
||||
cursor: pointer;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.menu-search-list li:hover {
|
||||
background-color: #5FB878;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.menu-search-list li.this {
|
||||
background-color: #5FB878;
|
||||
color: white;
|
||||
}
|
||||
|
||||
/* 搜索面板结束 */
|
||||
Executable
+444
@@ -0,0 +1,444 @@
|
||||
html,
|
||||
body,
|
||||
.layui-layout {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.laytp-admin .layui-header,
|
||||
.laytp-admin .layui-body,
|
||||
.laytp-admin .layui-logo,
|
||||
.laytp-admin .layui-side,
|
||||
.laytp-admin .layui-header .layui-layout-left {
|
||||
transition: all .3s;
|
||||
}
|
||||
|
||||
.laytp-admin .layui-logo .title {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
.laytp-admin .layui-layout-right .layui-nav-child {
|
||||
border: 1px solid whitesmoke;
|
||||
border-radius: 6px;
|
||||
width: 150px;
|
||||
}
|
||||
|
||||
.laytp-admin .layui-header {
|
||||
left: 230px;
|
||||
width: calc(100% - 230px);
|
||||
background-color: white;
|
||||
border-bottom: 1px solid whitesmoke;
|
||||
}
|
||||
|
||||
.laytp-admin .layui-header .layui-nav-img {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
}
|
||||
|
||||
.laytp-admin .layui-layout-control {
|
||||
left: 60px;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.laytp-admin .layui-logo {
|
||||
width: 230px;
|
||||
height: 60px;
|
||||
line-height: 60px;
|
||||
position: relative;
|
||||
background-color: #28333E;
|
||||
|
||||
}
|
||||
|
||||
.laytp-admin .layui-logo img {
|
||||
width: 34px;
|
||||
height: 34px;
|
||||
}
|
||||
|
||||
.laytp-admin .layui-logo .title {
|
||||
font-size: 21px;
|
||||
font-weight: 550;
|
||||
color: #5FB878;
|
||||
position: relative;
|
||||
top: 5px;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.laytp-admin .layui-logo .logo {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.laytp-admin .layui-side {
|
||||
top: 0px;
|
||||
width: 230px;
|
||||
box-shadow: 2px 0 6px rgba(0, 21, 41, .35);
|
||||
z-index: 9999;
|
||||
}
|
||||
|
||||
.laytp-admin .layui-side-scroll::-webkit-scrollbar {
|
||||
width: 0px;
|
||||
height: 0px;
|
||||
}
|
||||
|
||||
.laytp-admin .layui-side-scroll {
|
||||
height: calc(100% - 116px) !important;
|
||||
background-color: #28333E;
|
||||
width: 247px;
|
||||
|
||||
}
|
||||
|
||||
.laytp-admin .layui-header .layui-nav .layui-nav-item>a {
|
||||
color: black;
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
.laytp-admin .layui-body {
|
||||
left: 230px;
|
||||
bottom: 0px;
|
||||
padding-bottom: 0px;
|
||||
}
|
||||
|
||||
.laytp-admin .layui-layout-left {
|
||||
left: 0px;
|
||||
}
|
||||
|
||||
/** 隐 藏 布 局 样 式 */
|
||||
.laytp-mini .layui-logo .title {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.laytp-mini .layui-logo .logo {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.laytp-mini .layui-side {
|
||||
width: 60px;
|
||||
}
|
||||
|
||||
.laytp-mini .layui-header {
|
||||
left: 60px;
|
||||
width: calc(100% - 60px);
|
||||
}
|
||||
|
||||
.laytp-mini .layui-body {
|
||||
left: 60px;
|
||||
}
|
||||
|
||||
.laytp-mini .layui-logo {
|
||||
width: 60px;
|
||||
}
|
||||
|
||||
.laytp-mini .layui-nav-tree .layui-nav-item span {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.laytp-mini .bottom-nav li {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
.laytp-mini .layui-side-scroll {
|
||||
height: calc(100% - 60px);
|
||||
}
|
||||
|
||||
.laytp-admin .layui-header .layui-nav .layui-nav-bar {
|
||||
top: 0px !important;
|
||||
height: 2px !important;
|
||||
background-color: #5FB878;
|
||||
}
|
||||
|
||||
.laytp-admin .layui-header .layui-nav .layui-this:after {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.laytp-admin .layui-header .layui-nav-more {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.laytp-collasped-pe {
|
||||
display: none;
|
||||
width: 50px;
|
||||
position: absolute;
|
||||
z-index: 400000;
|
||||
bottom: 30px;
|
||||
right: 30px;
|
||||
background-color: #5FB878 !important;
|
||||
height: 50px;
|
||||
line-height: 50px;
|
||||
text-align: center;
|
||||
border-radius: 50px;
|
||||
box-shadow: 2px 0 6px rgba(0, 21, 41, .35);
|
||||
}
|
||||
|
||||
.laytp-collasped-pe a {
|
||||
color: white !important;
|
||||
}
|
||||
|
||||
@media screen and (min-width: 768px) {
|
||||
.layui-hide-sm {
|
||||
display: inline-block !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: 769px) {
|
||||
.layui-hide-sm {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
/** 新增兼容 */
|
||||
@media screen and (max-width:768px) {
|
||||
.collaspe {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.laytp-collasped-pe {
|
||||
display: inline-block !important;
|
||||
}
|
||||
|
||||
.layui-layout-control {
|
||||
left: 45px !important;
|
||||
}
|
||||
|
||||
.layui-layout-left {
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
.laytp-mini .bottom-nav {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.laytp-mini .layui-side-scroll {
|
||||
height: calc(100% - 62px);
|
||||
}
|
||||
|
||||
/** 隐 藏 布 局 样 式 */
|
||||
.laytp-mini .layui-side {
|
||||
width: 0px;
|
||||
}
|
||||
|
||||
.laytp-mini .layui-header {
|
||||
left: 0px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.laytp-mini .layui-body {
|
||||
left: 0px;
|
||||
}
|
||||
|
||||
.laytp-mini .layui-logo {
|
||||
width: 0px;
|
||||
}
|
||||
|
||||
.laytp-admin .layui-body {
|
||||
left: 0px;
|
||||
}
|
||||
|
||||
.laytp-admin .layui-header {
|
||||
left: 0px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.laytp-admin .laytp-cover {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: #1E1E1E;
|
||||
display: block;
|
||||
position: absolute;
|
||||
z-index: 1000;
|
||||
opacity: 0;
|
||||
margin-top: -60px;
|
||||
}
|
||||
|
||||
.laytp-mini .laytp-cover {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes am-horizontal-roll_show {
|
||||
0% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateX(2000px);
|
||||
transform: translateX(2000px)
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateX(0);
|
||||
transform: translateX(0)
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes am-horizontal-roll_show {
|
||||
0% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateX(800px);
|
||||
-ms-transform: translateX(800px);
|
||||
transform: translateX(800px)
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateX(0);
|
||||
-ms-transform: translateX(0);
|
||||
transform: translateX(0)
|
||||
}
|
||||
}
|
||||
|
||||
.layer-anim-right {
|
||||
-webkit-animation: am-horizontal-roll_show .6s ease-out;
|
||||
animation: am-horizontal-roll_show .6s ease-out;
|
||||
|
||||
}
|
||||
|
||||
/** 亮色侧边风格 */
|
||||
.light-theme .layui-logo {
|
||||
background-color: white !important;
|
||||
color: black !important;
|
||||
}
|
||||
|
||||
.light-theme .layui-side-scroll {
|
||||
background-color: white !important;
|
||||
color: black !important;
|
||||
}
|
||||
|
||||
.light-theme .layui-side {
|
||||
box-shadow: 2px 0 8px 0 rgba(29, 35, 41, .05) !important;
|
||||
}
|
||||
|
||||
/** 主 题 选 择 界 面 样 式 */
|
||||
.laytpone-color .color-title {
|
||||
padding: 15px 0 0px 20px;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.laytpone-color .color-content {
|
||||
padding: 15px 10px 0 20px;
|
||||
}
|
||||
|
||||
.laytpone-color .color-content ul {
|
||||
list-style: none;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
.laytpone-color .color-content ul li {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
width: 70px;
|
||||
height: 50px;
|
||||
margin: 0 20px 20px 0;
|
||||
padding: 2px 2px 2px 2px;
|
||||
background-color: #f2f2f2;
|
||||
cursor: pointer;
|
||||
font-size: 12px;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.laytpone-color .color-content li.layui-this:after,
|
||||
.laytpone-color .color-content li:hover:after {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
padding: 4px;
|
||||
top: -5px;
|
||||
left: -5px;
|
||||
border: #5FB878 2px solid;
|
||||
opacity: 1;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.laytpone-color .color-content li:after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
z-index: 20;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
width: 1px;
|
||||
height: 0;
|
||||
border: 2px solid #F2F2F2;
|
||||
transition: all .3s;
|
||||
-webkit-transition: all .3s;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.select-color {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.select-color .select-color-title {
|
||||
padding: 15px 0 0px 20px;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.select-color .select-color-content {
|
||||
padding: 20px 0 0px 0px;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.select-color .select-color-content .select-color-item {
|
||||
background-color: gray;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
border-radius: 3px;
|
||||
float: left;
|
||||
margin-left: 20px;
|
||||
color: white;
|
||||
font-size: 18px;
|
||||
text-align: center;
|
||||
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, .15);
|
||||
line-height: 30px;
|
||||
}
|
||||
|
||||
/** 友情链接 */
|
||||
.more-setting {
|
||||
margin-top: 45px;
|
||||
}
|
||||
|
||||
.more-setting form {
|
||||
margin-top: 30px;
|
||||
}
|
||||
|
||||
.more-setting-title {
|
||||
padding: 15px 0 0px 20px;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.more-setting .layui-form-label {
|
||||
width: 60px;
|
||||
}
|
||||
|
||||
.more-menu-list {
|
||||
width: 100%;
|
||||
margin-top: 80px;
|
||||
}
|
||||
|
||||
.more-menu-item:first-child {
|
||||
border-top: 1px solid #e8e8e8;
|
||||
}
|
||||
|
||||
.more-menu-item .layui-icon {
|
||||
font-size: 18px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
.more-menu-item {
|
||||
color: #595959;
|
||||
height: 50px;
|
||||
line-height: 50px;
|
||||
font-size: 16px;
|
||||
padding: 0 25px;
|
||||
border-bottom: 1px solid #e8e8e8;
|
||||
font-style: normal;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.more-menu-item:hover {
|
||||
background-color: whitesmoke;
|
||||
}
|
||||
|
||||
.more-menu-item:after {
|
||||
color: #8c8c8c;
|
||||
right: 16px;
|
||||
content: "\e602";
|
||||
position: absolute;
|
||||
font-family: layui-icon !important;
|
||||
}
|
||||
|
||||
Executable
+105
@@ -0,0 +1,105 @@
|
||||
.loader-main{
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: whitesmoke;
|
||||
z-index: 9999999;
|
||||
}
|
||||
.loader {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
margin: 30px auto 40px;
|
||||
margin-top: 20%;
|
||||
position: relative;
|
||||
z-index: 999999;
|
||||
background-color: whitesmoke;
|
||||
}
|
||||
.loader:before {
|
||||
content: "";
|
||||
width: 50px;
|
||||
height: 7px;
|
||||
border-radius: 50%;
|
||||
background: #000;
|
||||
opacity: 0.1;
|
||||
position: absolute;
|
||||
top: 59px;
|
||||
left: 0;
|
||||
animation: shadow .5s linear infinite;
|
||||
}
|
||||
.loader:after {
|
||||
content: "";
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
border-radius: 3px;
|
||||
background-color: #5FB878;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
animation: loading .5s linear infinite;
|
||||
}
|
||||
@-webkit-keyframes loading {
|
||||
17% {
|
||||
border-bottom-right-radius: 3px;
|
||||
}
|
||||
|
||||
25% {
|
||||
transform: translateY(9px) rotate(22.5deg);
|
||||
}
|
||||
|
||||
50% {
|
||||
transform: translateY(18px) scale(1, 0.9) rotate(45deg);
|
||||
border-bottom-right-radius: 40px;
|
||||
}
|
||||
|
||||
75% {
|
||||
transform: translateY(9px) rotate(67.5deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: translateY(0) rotate(90deg);
|
||||
}
|
||||
}
|
||||
@keyframes loading {
|
||||
17% {
|
||||
border-bottom-right-radius: 3px;
|
||||
}
|
||||
|
||||
25% {
|
||||
transform: translateY(9px) rotate(22.5deg);
|
||||
}
|
||||
|
||||
50% {
|
||||
transform: translateY(18px) scale(1, 0.9) rotate(45deg);
|
||||
border-bottom-right-radius: 40px;
|
||||
}
|
||||
|
||||
75% {
|
||||
transform: translateY(9px) rotate(67.5deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: translateY(0) rotate(90deg);
|
||||
}
|
||||
}
|
||||
@-webkit-keyframes shadow {
|
||||
|
||||
0%,
|
||||
100% {
|
||||
transform: scale(1, 1);
|
||||
}
|
||||
|
||||
50% {
|
||||
transform: scale(1.2, 1);
|
||||
}
|
||||
}
|
||||
@keyframes shadow {
|
||||
|
||||
0%,
|
||||
100% {
|
||||
transform: scale(1, 1);
|
||||
}
|
||||
|
||||
50% {
|
||||
transform: scale(1.2, 1);
|
||||
}
|
||||
}
|
||||
Executable
+139
@@ -0,0 +1,139 @@
|
||||
.top-panel {
|
||||
border-radius: 4px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.top-panel>.layui-card-body {
|
||||
height: 60px;
|
||||
}
|
||||
|
||||
.top-panel-number {
|
||||
line-height: 60px;
|
||||
font-size: 30px;
|
||||
border-right: 1px solid #eceff9;
|
||||
}
|
||||
|
||||
.top-panel-tips {
|
||||
padding-left: 8px;
|
||||
padding-top: 16px;
|
||||
line-height: 30px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.laytp-container {
|
||||
background-color: whitesmoke;
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
.card {
|
||||
width: 100%;
|
||||
height: 160px;
|
||||
background-color: whitesmoke;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.card .header .avatar {
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
margin: 20px;
|
||||
border-radius: 50px;
|
||||
}
|
||||
|
||||
.card .header {
|
||||
color: dimgray;
|
||||
}
|
||||
|
||||
.card .body {
|
||||
color: gray;
|
||||
}
|
||||
|
||||
.card .body {
|
||||
margin-left: 20px;
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
.card .footer {
|
||||
margin-left: 20px;
|
||||
margin-right: 20px;
|
||||
margin-top: 20px;
|
||||
font-size: 13px;
|
||||
color: gray;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.custom-tab .layui-tab-title {
|
||||
border-bottom-width: 0px;
|
||||
border-bottom-style: none;
|
||||
}
|
||||
|
||||
.custom-tab .layui-tab-title li {
|
||||
margin-left: 10px;
|
||||
}
|
||||
.list .list-item {
|
||||
height: 32px;
|
||||
line-height: 32px;
|
||||
color: gray;
|
||||
padding: 5px;
|
||||
padding-left: 15px;
|
||||
border-radius: 4px;
|
||||
margin-top: 5.2px;
|
||||
}
|
||||
|
||||
.list .list-item:hover {
|
||||
background-color: whitesmoke;
|
||||
}
|
||||
|
||||
.list .list-item .title {
|
||||
font-size: 13px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.list .list-item .footer {
|
||||
position: absolute;
|
||||
right: 30px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.top-panel-tips i {
|
||||
font-size: 33px;
|
||||
}
|
||||
|
||||
.layuiadmin-card-status {
|
||||
padding: 0 10px 10px;
|
||||
}
|
||||
|
||||
.layuiadmin-card-status dd {
|
||||
padding: 15px 0;
|
||||
border-bottom: 1px solid #EEE;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.layuiadmin-card-status dd div.layui-status-img,
|
||||
.layuiadmin-card-team .layui-team-img {
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
border-radius: 50%;
|
||||
margin-right: 15px;
|
||||
}
|
||||
|
||||
.layuiadmin-card-status dd div.layui-status-img a {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: inline-block;
|
||||
text-align: center;
|
||||
line-height: 32px;
|
||||
}
|
||||
|
||||
.layuiadmin-card-status dd div span {
|
||||
color: #BBB;
|
||||
}
|
||||
|
||||
.layuiadmin-card-status dd div a {
|
||||
color: #01AAED;
|
||||
}
|
||||
|
||||
.top-panel-tips svg {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
}
|
||||
Executable
+18
@@ -0,0 +1,18 @@
|
||||
.laytp-container {background-color: whitesmoke;margin: 10px;}
|
||||
.laytp-card {width: 100%;height: 66px;background-color: #F8F8F8;display: inline-block;border-radius: 5px;text-align: center;margin-bottom: 3px;}
|
||||
.laytp-card:hover,.laytp-card2:hover{box-shadow: 2px 0 8px 0 lightgray!important;}.laytp-card2 {width: 100%;height: 90px;background-color: #F8F8F8;display: inline-block;border-radius: 5px;text-align: center;margin-bottom: 3px;}
|
||||
.laytp-card2 i {font-size: 30px;height: 90px;line-height: 90px;}
|
||||
.laytp-card i {font-size: 30px;height: 66px;line-height: 66px;}
|
||||
.layui-col-md3 {text-align: center;}
|
||||
.laytp-card-title {margin-top: 3px;}
|
||||
.person img {width: 90px;height: 90px;border-radius: 4px;margin-top: 8px;margin-left: 8px;}
|
||||
.laytp-card2 .count {color: #51A351;font-size: 30px;margin-top: 12px;}
|
||||
.laytp-card2 .title {color: gray;font-size: 14px;margin-top: 14px;}
|
||||
.laytp-card-status {padding: 0 10px 10px;}
|
||||
.laytp-card-status li {position: relative;padding: 10px 0;border-bottom: 1px solid #EEE;}
|
||||
.laytp-card-status li h3 {padding-bottom: 5px;font-weight: 700;}
|
||||
.laytp-card-status li p {padding-bottom: 10px;padding-top: 3px ;}
|
||||
.laytp-card-status li>span {color: #999;}
|
||||
.laytp-reply {position: absolute;right: 20px;}
|
||||
.person .title{font-size: 17px;font-weight: 600;margin-left: 18px;margin-top: 16px;position: absolute;display: inline-block;}
|
||||
.person .desc{font-size: 16px;font-weight: 600;margin-left: 115px;margin-top: -30px;position: absolute;display: inline-block;}
|
||||
Executable
+6
@@ -0,0 +1,6 @@
|
||||
.organizationTree {
|
||||
width: 100% !important;
|
||||
height: -webkit-calc(100vh - 130px);
|
||||
height: -moz-calc(100vh - 130px);
|
||||
height: calc(100vh - 130px);
|
||||
}
|
||||
Executable
+76
@@ -0,0 +1,76 @@
|
||||
* {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
font-size: 0.38rem;
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
-webkit-tap-highlight-color: transparent
|
||||
}
|
||||
|
||||
.clearfix:after {
|
||||
content: '';
|
||||
width: 0;
|
||||
height: 0;
|
||||
display: block;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
html {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
font-size: 0.28rem;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
position: relative;
|
||||
background-color: white !important;
|
||||
}
|
||||
|
||||
.content {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.content>img {
|
||||
height: 300px;
|
||||
max-width: 370px;
|
||||
margin-right: 180px;
|
||||
}
|
||||
|
||||
.content>* {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.content-r {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.content-r>h1 {
|
||||
font-size: 72px;
|
||||
color: #434e59;
|
||||
margin-bottom: 24px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.content-r>p {
|
||||
font-size: 20px;
|
||||
color: rgba(0, 0, 0, .45);
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
button {
|
||||
margin-top: 20px;
|
||||
}
|
||||
Executable
+539
@@ -0,0 +1,539 @@
|
||||
/* Logo 字体 */
|
||||
@font-face {
|
||||
font-family: "iconfont logo";
|
||||
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
|
||||
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'),
|
||||
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
|
||||
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
|
||||
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg');
|
||||
}
|
||||
|
||||
.logo {
|
||||
font-family: "iconfont logo";
|
||||
font-size: 160px;
|
||||
font-style: normal;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
/* tabs */
|
||||
.nav-tabs {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.nav-tabs .nav-more {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
height: 42px;
|
||||
line-height: 42px;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
#tabs {
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
|
||||
#tabs li {
|
||||
cursor: pointer;
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
text-align: center;
|
||||
font-size: 16px;
|
||||
border-bottom: 2px solid transparent;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
margin-bottom: -1px;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
|
||||
#tabs .active {
|
||||
border-bottom-color: #f00;
|
||||
color: #222;
|
||||
}
|
||||
|
||||
.tab-container .content {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* 页面布局 */
|
||||
.main {
|
||||
padding: 30px 100px;
|
||||
width: 960px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.main .logo {
|
||||
color: #333;
|
||||
text-align: left;
|
||||
margin-bottom: 30px;
|
||||
line-height: 1;
|
||||
height: 110px;
|
||||
margin-top: -50px;
|
||||
overflow: hidden;
|
||||
*zoom: 1;
|
||||
}
|
||||
|
||||
.main .logo a {
|
||||
font-size: 160px;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.helps {
|
||||
margin-top: 40px;
|
||||
}
|
||||
|
||||
.helps pre {
|
||||
padding: 20px;
|
||||
margin: 10px 0;
|
||||
border: solid 1px #e7e1cd;
|
||||
background-color: #fffdef;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.icon_lists {
|
||||
width: 100% !important;
|
||||
overflow: hidden;
|
||||
*zoom: 1;
|
||||
}
|
||||
|
||||
.icon_lists li {
|
||||
width: 100px;
|
||||
margin-bottom: 10px;
|
||||
margin-right: 20px;
|
||||
text-align: center;
|
||||
list-style: none !important;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.icon_lists li .code-name {
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
.icon_lists .icon {
|
||||
display: block;
|
||||
height: 100px;
|
||||
line-height: 100px;
|
||||
font-size: 42px;
|
||||
margin: 10px auto;
|
||||
color: #333;
|
||||
-webkit-transition: font-size 0.25s linear, width 0.25s linear;
|
||||
-moz-transition: font-size 0.25s linear, width 0.25s linear;
|
||||
transition: font-size 0.25s linear, width 0.25s linear;
|
||||
}
|
||||
|
||||
.icon_lists .icon:hover {
|
||||
font-size: 100px;
|
||||
}
|
||||
|
||||
.icon_lists .svg-icon {
|
||||
/* 通过设置 font-size 来改变图标大小 */
|
||||
width: 1em;
|
||||
/* 图标和文字相邻时,垂直对齐 */
|
||||
vertical-align: -0.15em;
|
||||
/* 通过设置 color 来改变 SVG 的颜色/fill */
|
||||
fill: currentColor;
|
||||
/* path 和 stroke 溢出 viewBox 部分在 IE 下会显示
|
||||
normalize.css 中也包含这行 */
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.icon_lists li .name,
|
||||
.icon_lists li .code-name {
|
||||
color: #666;
|
||||
}
|
||||
|
||||
/* markdown 样式 */
|
||||
.markdown {
|
||||
color: #666;
|
||||
font-size: 14px;
|
||||
line-height: 1.8;
|
||||
}
|
||||
|
||||
.highlight {
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
.markdown img {
|
||||
vertical-align: middle;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.markdown h1 {
|
||||
color: #404040;
|
||||
font-weight: 500;
|
||||
line-height: 40px;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
.markdown h2,
|
||||
.markdown h3,
|
||||
.markdown h4,
|
||||
.markdown h5,
|
||||
.markdown h6 {
|
||||
color: #404040;
|
||||
margin: 1.6em 0 0.6em 0;
|
||||
font-weight: 500;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.markdown h1 {
|
||||
font-size: 28px;
|
||||
}
|
||||
|
||||
.markdown h2 {
|
||||
font-size: 22px;
|
||||
}
|
||||
|
||||
.markdown h3 {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.markdown h4 {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.markdown h5 {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.markdown h6 {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.markdown hr {
|
||||
height: 1px;
|
||||
border: 0;
|
||||
background: #e9e9e9;
|
||||
margin: 16px 0;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.markdown p {
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
.markdown>p,
|
||||
.markdown>blockquote,
|
||||
.markdown>.highlight,
|
||||
.markdown>ol,
|
||||
.markdown>ul {
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
.markdown ul>li {
|
||||
list-style: circle;
|
||||
}
|
||||
|
||||
.markdown>ul li,
|
||||
.markdown blockquote ul>li {
|
||||
margin-left: 20px;
|
||||
padding-left: 4px;
|
||||
}
|
||||
|
||||
.markdown>ul li p,
|
||||
.markdown>ol li p {
|
||||
margin: 0.6em 0;
|
||||
}
|
||||
|
||||
.markdown ol>li {
|
||||
list-style: decimal;
|
||||
}
|
||||
|
||||
.markdown>ol li,
|
||||
.markdown blockquote ol>li {
|
||||
margin-left: 20px;
|
||||
padding-left: 4px;
|
||||
}
|
||||
|
||||
.markdown code {
|
||||
margin: 0 3px;
|
||||
padding: 0 5px;
|
||||
background: #eee;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.markdown strong,
|
||||
.markdown b {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.markdown>table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0px;
|
||||
empty-cells: show;
|
||||
border: 1px solid #e9e9e9;
|
||||
width: 95%;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
.markdown>table th {
|
||||
white-space: nowrap;
|
||||
color: #333;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.markdown>table th,
|
||||
.markdown>table td {
|
||||
border: 1px solid #e9e9e9;
|
||||
padding: 8px 16px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.markdown>table th {
|
||||
background: #F7F7F7;
|
||||
}
|
||||
|
||||
.markdown blockquote {
|
||||
font-size: 90%;
|
||||
color: #999;
|
||||
border-left: 4px solid #e9e9e9;
|
||||
padding-left: 0.8em;
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
.markdown blockquote p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.markdown .anchor {
|
||||
opacity: 0;
|
||||
transition: opacity 0.3s ease;
|
||||
margin-left: 8px;
|
||||
}
|
||||
|
||||
.markdown .waiting {
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
.markdown h1:hover .anchor,
|
||||
.markdown h2:hover .anchor,
|
||||
.markdown h3:hover .anchor,
|
||||
.markdown h4:hover .anchor,
|
||||
.markdown h5:hover .anchor,
|
||||
.markdown h6:hover .anchor {
|
||||
opacity: 1;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.markdown>br,
|
||||
.markdown>p>br {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
background: white;
|
||||
padding: 0.5em;
|
||||
color: #333333;
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-meta {
|
||||
color: #969896;
|
||||
}
|
||||
|
||||
.hljs-string,
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-strong,
|
||||
.hljs-emphasis,
|
||||
.hljs-quote {
|
||||
color: #df5000;
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-type {
|
||||
color: #a71d5d;
|
||||
}
|
||||
|
||||
.hljs-literal,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-attribute {
|
||||
color: #0086b3;
|
||||
}
|
||||
|
||||
.hljs-section,
|
||||
.hljs-name {
|
||||
color: #63a35c;
|
||||
}
|
||||
|
||||
.hljs-tag {
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
.hljs-title,
|
||||
.hljs-attr,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class,
|
||||
.hljs-selector-attr,
|
||||
.hljs-selector-pseudo {
|
||||
color: #795da3;
|
||||
}
|
||||
|
||||
.hljs-addition {
|
||||
color: #55a532;
|
||||
background-color: #eaffea;
|
||||
}
|
||||
|
||||
.hljs-deletion {
|
||||
color: #bd2c00;
|
||||
background-color: #ffecec;
|
||||
}
|
||||
|
||||
.hljs-link {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
/* 代码高亮 */
|
||||
/* PrismJS 1.15.0
|
||||
https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */
|
||||
/**
|
||||
* prism.js default theme for JavaScript, CSS and HTML
|
||||
* Based on dabblet (http://dabblet.com)
|
||||
* @author Lea Verou
|
||||
*/
|
||||
code[class*="language-"],
|
||||
pre[class*="language-"] {
|
||||
color: black;
|
||||
background: none;
|
||||
text-shadow: 0 1px white;
|
||||
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
|
||||
text-align: left;
|
||||
white-space: pre;
|
||||
word-spacing: normal;
|
||||
word-break: normal;
|
||||
word-wrap: normal;
|
||||
line-height: 1.5;
|
||||
|
||||
-moz-tab-size: 4;
|
||||
-o-tab-size: 4;
|
||||
tab-size: 4;
|
||||
|
||||
-webkit-hyphens: none;
|
||||
-moz-hyphens: none;
|
||||
-ms-hyphens: none;
|
||||
hyphens: none;
|
||||
}
|
||||
|
||||
pre[class*="language-"]::-moz-selection,
|
||||
pre[class*="language-"] ::-moz-selection,
|
||||
code[class*="language-"]::-moz-selection,
|
||||
code[class*="language-"] ::-moz-selection {
|
||||
text-shadow: none;
|
||||
background: #b3d4fc;
|
||||
}
|
||||
|
||||
pre[class*="language-"]::selection,
|
||||
pre[class*="language-"] ::selection,
|
||||
code[class*="language-"]::selection,
|
||||
code[class*="language-"] ::selection {
|
||||
text-shadow: none;
|
||||
background: #b3d4fc;
|
||||
}
|
||||
|
||||
@media print {
|
||||
|
||||
code[class*="language-"],
|
||||
pre[class*="language-"] {
|
||||
text-shadow: none;
|
||||
}
|
||||
}
|
||||
|
||||
/* Code blocks */
|
||||
pre[class*="language-"] {
|
||||
padding: 1em;
|
||||
margin: .5em 0;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
:not(pre)>code[class*="language-"],
|
||||
pre[class*="language-"] {
|
||||
background: #f5f2f0;
|
||||
}
|
||||
|
||||
/* Inline code */
|
||||
:not(pre)>code[class*="language-"] {
|
||||
padding: .1em;
|
||||
border-radius: .3em;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.token.comment,
|
||||
.token.prolog,
|
||||
.token.doctype,
|
||||
.token.cdata {
|
||||
color: slategray;
|
||||
}
|
||||
|
||||
.token.punctuation {
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.namespace {
|
||||
opacity: .7;
|
||||
}
|
||||
|
||||
.token.property,
|
||||
.token.tag,
|
||||
.token.boolean,
|
||||
.token.number,
|
||||
.token.constant,
|
||||
.token.symbol,
|
||||
.token.deleted {
|
||||
color: #905;
|
||||
}
|
||||
|
||||
.token.selector,
|
||||
.token.attr-name,
|
||||
.token.string,
|
||||
.token.char,
|
||||
.token.builtin,
|
||||
.token.inserted {
|
||||
color: #690;
|
||||
}
|
||||
|
||||
.token.operator,
|
||||
.token.entity,
|
||||
.token.url,
|
||||
.language-css .token.string,
|
||||
.style .token.string {
|
||||
color: #9a6e3a;
|
||||
background: hsla(0, 0%, 100%, .5);
|
||||
}
|
||||
|
||||
.token.atrule,
|
||||
.token.attr-value,
|
||||
.token.keyword {
|
||||
color: #07a;
|
||||
}
|
||||
|
||||
.token.function,
|
||||
.token.class-name {
|
||||
color: #DD4A68;
|
||||
}
|
||||
|
||||
.token.regex,
|
||||
.token.important,
|
||||
.token.variable {
|
||||
color: #e90;
|
||||
}
|
||||
|
||||
.token.important,
|
||||
.token.bold {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.token.italic {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.token.entity {
|
||||
cursor: help;
|
||||
}
|
||||
Executable
+90
@@ -0,0 +1,90 @@
|
||||
.layui-form {
|
||||
width: 320px !important;
|
||||
margin: auto !important;
|
||||
margin-top: 160px !important;
|
||||
}
|
||||
|
||||
.layui-form button {
|
||||
width: 100% !important;
|
||||
height: 44px !important;
|
||||
line-height: 44px !important;
|
||||
font-size: 16px !important;
|
||||
background-color: #5FB878;
|
||||
font-weight: 550 !important;
|
||||
}
|
||||
|
||||
.layui-form-checked[lay-skin=primary] i {
|
||||
border-color: #5FB878;
|
||||
background-color: #5FB878;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.layui-tab-content {
|
||||
margin-top: 15px !important;
|
||||
padding-left: 0px !important;
|
||||
padding-right: 0px !important;
|
||||
}
|
||||
|
||||
.layui-form-item.login-form-item {
|
||||
margin-top: 20px !important;
|
||||
}
|
||||
|
||||
.layui-input {
|
||||
height: 44px !important;
|
||||
line-height: 44px !important;
|
||||
padding-left: 15px !important;
|
||||
border-radius: 3px !important;
|
||||
}
|
||||
|
||||
.layui-form-danger:focus{
|
||||
box-shadow: 0px 0px 2px 1px #f56c6c;
|
||||
}
|
||||
|
||||
.logo {
|
||||
width: 60px !important;
|
||||
margin-top: 10px !important;
|
||||
margin-bottom: 10px !important;
|
||||
margin-left: 20px !important;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 30px !important;
|
||||
font-weight: 550 !important;
|
||||
margin-left: 20px !important;
|
||||
color: #5FB878;
|
||||
display: inline-block !important;
|
||||
height: 60px !important;
|
||||
line-height: 60px !important;
|
||||
margin-top: 10px !important;
|
||||
position: absolute !important;
|
||||
}
|
||||
|
||||
.desc {
|
||||
width: 100% !important;
|
||||
text-align: center !important;
|
||||
color: gray !important;
|
||||
height: 60px !important;
|
||||
line-height: 60px !important;
|
||||
}
|
||||
|
||||
body {
|
||||
background-repeat:no-repeat;
|
||||
background-color: whitesmoke;
|
||||
background-size: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.code {
|
||||
float: left;
|
||||
margin-right: 13px;
|
||||
margin: 0px !important;
|
||||
border: #e6e6e6 1px solid;
|
||||
display: inline-block!important;
|
||||
}
|
||||
|
||||
.codeImage {
|
||||
float: right;
|
||||
width: 115px;
|
||||
height: 42px;
|
||||
border: #e6e6e6 1px solid;
|
||||
}
|
||||
Executable
+80
@@ -0,0 +1,80 @@
|
||||
.laytp-container {
|
||||
background-color: whitesmoke;
|
||||
margin: 10px;
|
||||
}
|
||||
.layui-body {
|
||||
padding: 25px;
|
||||
}
|
||||
.text-center {
|
||||
text-align: center;
|
||||
}
|
||||
.user-info-head {
|
||||
width: 110px;
|
||||
height: 110px;
|
||||
line-height: 110px;
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
border-radius: 50%;
|
||||
overflow: hidden;
|
||||
cursor: pointer;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.layui-line-dash {
|
||||
border-bottom: 1px dashed #ccc;
|
||||
margin: 15px 0;
|
||||
}
|
||||
.comment {
|
||||
position: absolute;
|
||||
bottom: 3px;
|
||||
right: 10px;
|
||||
font-size: 12px;
|
||||
color: dimgray;
|
||||
}
|
||||
.content {
|
||||
padding-left: 13px;
|
||||
font-size: 13px;
|
||||
color: dimgray;
|
||||
}
|
||||
.title {
|
||||
padding-left: 13.5px;
|
||||
}
|
||||
.layui-tab-title {
|
||||
border-bottom: none;
|
||||
}
|
||||
.fl-item {
|
||||
height: 30px;
|
||||
font-size: 13.5;
|
||||
}
|
||||
.dot {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
border-radius: 50px;
|
||||
background-color: gray;
|
||||
display: inline-block;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.list .list-item {
|
||||
height: 32px;
|
||||
line-height: 32px;
|
||||
color: gray;
|
||||
padding: 5px;
|
||||
padding-left: 15px;
|
||||
border-radius: 4px;
|
||||
margin-top: 5.2px;
|
||||
}
|
||||
|
||||
.list .list-item:hover {
|
||||
background-color: whitesmoke;
|
||||
}
|
||||
|
||||
.list .list-item .title {
|
||||
font-size: 13px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.list .list-item .footer {
|
||||
position: absolute;
|
||||
right: 30px;
|
||||
font-size: 12px;
|
||||
}
|
||||
Executable
+39
@@ -0,0 +1,39 @@
|
||||
.result {
|
||||
text-align: center;
|
||||
|
||||
}
|
||||
.result .success svg {
|
||||
color: #32C682;
|
||||
text-align: center;
|
||||
margin-top: 40px;
|
||||
|
||||
}
|
||||
.result .error svg {
|
||||
color: #f56c6c;
|
||||
text-align: center;
|
||||
margin-top: 40px;
|
||||
|
||||
}
|
||||
.result .title {
|
||||
margin-top: 25px;
|
||||
|
||||
}
|
||||
.result .desc {
|
||||
margin-top: 25px;
|
||||
width: 60%;
|
||||
margin-left: 20%;
|
||||
color: rgba(0, 0, 0, .45);
|
||||
}
|
||||
.result .content {
|
||||
margin-top: 20px;
|
||||
width: 80%;
|
||||
border-radius: 10px;
|
||||
background-color: whitesmoke;
|
||||
height: 200px;
|
||||
margin-left: 10%;
|
||||
}
|
||||
.result .action {
|
||||
padding-top: 10px;
|
||||
border-top: 1px whitesmoke solid;
|
||||
margin-top: 25px;
|
||||
}
|
||||
Executable
+1
@@ -0,0 +1 @@
|
||||
!.gitignore
|
||||
Executable
+1
@@ -0,0 +1 @@
|
||||
[{"id":0,"title":"全局说明","docType":"meditor","children":[{"id":1,"title":"接口返回","docType":"meditor"}]},{"id":2,"title":"用户代开接口","docType":"api","children":[{"id":3,"title":"查询余额","docType":"api"},{"id":4,"title":"提交代开","docType":"api"},{"id":5,"title":"退单接口","docType":"api"},{"id":6,"title":"订单状态查询","docType":"api"}]}]
|
||||
+2155
File diff suppressed because it is too large
Load Diff
Executable
+418
@@ -0,0 +1,418 @@
|
||||
{
|
||||
"data": [
|
||||
{
|
||||
"name": "layui-icon layui-icon-rate-half"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-rate"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-rate-solid"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-cellphone"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-vercode"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-login-wechat"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-login-qq"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-login-weibo"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-password"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-username"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-refresh-3"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-auz"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-spread-left"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-snowflake"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-tips"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-note"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-home"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-senior"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-refresh"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-refresh-1"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-flag"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-theme"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-notice"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-console"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-face-surprised"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-set"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-template-1"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-app"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-template"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-praise"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-tread"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-male"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-female"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-camera"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-camera-fill"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-more"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-more-vertical"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-rmb"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-dollar"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-diamond"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-fire"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-return"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-location"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-read"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-survey"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-face-smile"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-face-cry"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-cart-simple"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-cart"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-next"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-prev"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-upload-drag"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-upload"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-download-circle"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-component"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-file-b"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-user"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-find-fill"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-loading"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-loading-1"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-add-1"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-play"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-pause"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-headset"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-video"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-voice"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-speaker"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-fonts-del"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-fonts-code"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-fonts-html"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-fonts-strong"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-unlink"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-picture"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-link"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-face-smile-b"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-align-left"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-align-right"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-align-center"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-fonts-u"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-fonts-i"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-tabs"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-radio"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-circle"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-edit"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-share"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-delete"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-form"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-cellphone-fine"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-dialogue"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-fonts-clear"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-layer"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-date"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-water"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-code-circle"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-carousel"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-prev-circle"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-layouts"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-util"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-templeate-1"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-upload-circle"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-tree"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-table"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-chart"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-chart-screen"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-engine"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-triangle-d"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-triangle-r"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-file"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-set-sm"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-add-circle"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-404"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-about"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-up"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-down"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-left"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-right"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-circle-dot"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-search"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-set-fill"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-group"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-friends"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-reply-fill"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-menu-fill"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-log"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-picture-fine"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-face-smile-fine"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-list"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-release"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-ok"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-help"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-chat"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-top"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-star"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-star-fill"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-close-fill"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-close"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-ok-circle"
|
||||
},
|
||||
{
|
||||
"name": "layui-icon layui-icon-add-circle-fine"
|
||||
}
|
||||
]
|
||||
}
|
||||
Executable
+88
@@ -0,0 +1,88 @@
|
||||
[{
|
||||
"id": 1,
|
||||
"title": "私信",
|
||||
"children": [{
|
||||
"id": 11,
|
||||
"avatar":"/static/admin/images/avatar.jpg",
|
||||
"title": "收到一条私人消息",
|
||||
"context": "这是消息内容。",
|
||||
"form": "超级管理员",
|
||||
"time": "2019-02-15"
|
||||
}, {
|
||||
"id": 12,
|
||||
"avatar":"/static/admin/images/avatar.jpg",
|
||||
"title": "收到一条私人消息",
|
||||
"context": "这是消息内容。",
|
||||
"form": "超级管理员",
|
||||
"time": "2019-02-15"
|
||||
}]
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"title": "消息",
|
||||
"children": [{
|
||||
"id": 11,
|
||||
"avatar":"/static/admin/images/avatar.jpg",
|
||||
"title": "收到一条紧急任务",
|
||||
"context": "这是消息内容。",
|
||||
"form": "超级管理员",
|
||||
"time": "2019-02-15"
|
||||
}, {
|
||||
"id": 12,
|
||||
"avatar":"/static/admin/images/avatar.jpg",
|
||||
"title": "收到一条紧急任务",
|
||||
"context": "这是消息内容。",
|
||||
"form": "超级管理员",
|
||||
"time": "2019-02-15"
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"avatar":"/static/admin/images/avatar.jpg",
|
||||
"title": "收到一条紧急任务",
|
||||
"context": "这是消息内容。",
|
||||
"form": "超级管理员",
|
||||
"time": "2019-02-15"
|
||||
}, {
|
||||
"id": 12,
|
||||
"avatar":"/static/admin/images/avatar.jpg",
|
||||
"title": "收到一条紧急任务",
|
||||
"context": "这是消息内容。",
|
||||
"form": "超级管理员",
|
||||
"time": "2019-02-15"
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"avatar":"/static/admin/images/avatar.jpg",
|
||||
"title": "收到一条紧急任务",
|
||||
"context": "这是消息内容。",
|
||||
"form": "超级管理员",
|
||||
"time": "2019-02-15"
|
||||
}, {
|
||||
"id": 12,
|
||||
"avatar":"/static/admin/images/avatar.jpg",
|
||||
"title": "收到一条紧急任务",
|
||||
"context": "这是消息内容。",
|
||||
"form": "超级管理员",
|
||||
"time": "2019-02-15"
|
||||
}]
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"title": "通知",
|
||||
"children": [{
|
||||
"id": 11,
|
||||
"avatar":"/static/admin/images/avatar.jpg",
|
||||
"title": "收到一条警告通知",
|
||||
"context": "这是消息内容。",
|
||||
"form": "超级管理员",
|
||||
"time": "2019-02-15"
|
||||
}, {
|
||||
"id": 12,
|
||||
"avatar":"/static/admin/images/avatar.jpg",
|
||||
"title": "收到一条警告通知",
|
||||
"context": "这是消息内容。",
|
||||
"form": "超级管理员",
|
||||
"time": "2019-02-15"
|
||||
}]
|
||||
}
|
||||
]
|
||||
Executable
+508
@@ -0,0 +1,508 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="227px" height="269px" viewBox="0 0 227 269" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Generator: Sketch 46.2 (44496) - http://www.bohemiancoding.com/sketch -->
|
||||
<title>Group 9</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<defs>
|
||||
<path d="M0,131.5 C1.52216317e-15,101.788282 2.0023434,70.3064817 6.0070302,37.054599 L6.00703147,37.0545992 C8.23177711,18.5819983 23.2321456,4.27478563 41.7892683,2.9258328 C68.6224469,0.975277594 91.0407969,-6.24317082e-09 109.044318,0 C127.133265,6.27279111e-09 149.842798,0.984554771 177.17292,2.9536643 L177.17292,2.95366535 C195.745345,4.29179116 210.761581,18.6099912 212.981582,37.0977487 C216.993859,70.5112465 218.999998,102.082949 219,131.812857 C219.000002,161.472158 217.003381,192.843579 213.010137,225.927119 L213.010136,225.927119 C210.780269,244.401296 195.772997,258.705423 177.213148,260.046888 C149.974602,262.015629 127.477504,263 109.721856,263 C91.927568,263 69.2911098,262.01134 41.8124813,260.034021 L41.8124814,260.03402 C23.2430488,258.697792 8.22697111,244.385384 6.00173205,225.9014 C2.00057735,192.665746 1.52149174e-15,161.198612 0,131.5 Z" id="path-1"></path>
|
||||
<filter x="-4.5%" y="-1.4%" width="106.2%" height="104.4%" filterUnits="objectBoundingBox" id="filter-2">
|
||||
<feMorphology radius="0.81" operator="dilate" in="SourceAlpha" result="shadowSpreadOuter1"></feMorphology>
|
||||
<feOffset dx="-6" dy="4" in="shadowSpreadOuter1" result="shadowOffsetOuter1"></feOffset>
|
||||
<feComposite in="shadowOffsetOuter1" in2="SourceAlpha" operator="out" result="shadowOffsetOuter1"></feComposite>
|
||||
<feColorMatrix values="0 0 0 0 0.639215686 0 0 0 0 0.694117647 0 0 0 0 0.749019608 0 0 0 0.3 0" type="matrix" in="shadowOffsetOuter1"></feColorMatrix>
|
||||
</filter>
|
||||
<path d="M39.654321,130.992298 C39.654321,110.09311 40.5351746,89.1940983 42.2968819,68.2952631 L42.2968835,68.2952632 C43.2666685,56.7908671 52.197293,47.5570778 63.6629191,46.2039222 C78.8424188,44.4124609 94.0195118,43.5167302 109.194198,43.5167302 C124.360772,43.5167302 139.527341,44.4115034 154.693904,46.2010498 L154.693904,46.2010495 C166.164025,47.5544421 175.09671,56.7944422 176.061501,68.3037662 C177.833381,89.4411461 178.719321,110.482698 178.719321,131.428422 C178.719321,152.307984 177.838969,173.187319 176.078265,194.066429 L176.078265,194.066429 C175.10807,205.571375 166.17633,214.805149 154.709997,216.157282 C139.486491,217.95247 124.287302,218.850064 109.112431,218.850064 C93.9666716,218.850064 78.8209665,217.95591 63.6753158,216.167604 L63.6753156,216.167605 C52.2067135,214.813462 43.275345,205.574785 42.309801,194.06695 C40.539481,172.967394 39.654321,151.94251 39.654321,130.992298 Z" id="path-3"></path>
|
||||
<filter x="-6.0%" y="-2.3%" width="108.6%" height="105.9%" filterUnits="objectBoundingBox" id="filter-4">
|
||||
<feMorphology radius="0.81" operator="dilate" in="SourceAlpha" result="shadowSpreadOuter1"></feMorphology>
|
||||
<feOffset dx="-5" dy="3" in="shadowSpreadOuter1" result="shadowOffsetOuter1"></feOffset>
|
||||
<feComposite in="shadowOffsetOuter1" in2="SourceAlpha" operator="out" result="shadowOffsetOuter1"></feComposite>
|
||||
<feColorMatrix values="0 0 0 0 0.639215686 0 0 0 0 0.694117647 0 0 0 0 0.749019608 0 0 0 0.3 0" type="matrix" in="shadowOffsetOuter1"></feColorMatrix>
|
||||
</filter>
|
||||
<path d="M161.510068,89.8583333 L176.8425,89.8583333 L176.8425,107.391667 L161.510068,107.391667 L161.510068,107.391667 C157.8829,107.391667 154.9425,104.451267 154.9425,100.824099 L154.9425,96.4259009 L154.9425,96.4259009 C154.9425,92.7987335 157.8829,89.8583333 161.510068,89.8583333 Z" id="path-5"></path>
|
||||
<filter x="-13.7%" y="-5.7%" width="118.3%" height="117.1%" filterUnits="objectBoundingBox" id="filter-6">
|
||||
<feOffset dx="-2" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
||||
<feComposite in="shadowOffsetOuter1" in2="SourceAlpha" operator="out" result="shadowOffsetOuter1"></feComposite>
|
||||
<feColorMatrix values="0 0 0 0 0.639215686 0 0 0 0 0.694117647 0 0 0 0 0.749019608 0 0 0 0.3 0" type="matrix" in="shadowOffsetOuter1"></feColorMatrix>
|
||||
</filter>
|
||||
<path d="M183.957568,89.8583333 L199.29,89.8583333 L199.29,107.391667 L183.957568,107.391667 L183.957568,107.391667 C180.3304,107.391667 177.39,104.451267 177.39,100.824099 L177.39,96.4259009 L177.39,96.4259009 C177.39,92.7987335 180.3304,89.8583333 183.957568,89.8583333 Z" id="path-7"></path>
|
||||
<filter x="-2.3%" y="-2.9%" width="109.1%" height="111.4%" filterUnits="objectBoundingBox" id="filter-8">
|
||||
<feOffset dx="1" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
||||
<feComposite in="shadowOffsetOuter1" in2="SourceAlpha" operator="out" result="shadowOffsetOuter1"></feComposite>
|
||||
<feColorMatrix values="0 0 0 0 0.639215686 0 0 0 0 0.694117647 0 0 0 0 0.749019608 0 0 0 0.3 0" type="matrix" in="shadowOffsetOuter1"></feColorMatrix>
|
||||
</filter>
|
||||
<filter x="-55.5%" y="-9.3%" width="177.5%" height="148.0%" filterUnits="objectBoundingBox" id="filter-9">
|
||||
<feOffset dx="-1" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
||||
<feColorMatrix values="0 0 0 0 0.639215686 0 0 0 0 0.694117647 0 0 0 0 0.749019608 0 0 0 0.3 0" type="matrix" in="shadowOffsetOuter1" result="shadowMatrixOuter1"></feColorMatrix>
|
||||
<feMerge>
|
||||
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
|
||||
<feMergeNode in="SourceGraphic"></feMergeNode>
|
||||
</feMerge>
|
||||
</filter>
|
||||
<filter x="-55.5%" y="-9.3%" width="177.5%" height="148.0%" filterUnits="objectBoundingBox" id="filter-10">
|
||||
<feOffset dx="-1" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
||||
<feColorMatrix values="0 0 0 0 0.639215686 0 0 0 0 0.694117647 0 0 0 0 0.749019608 0 0 0 0.3 0" type="matrix" in="shadowOffsetOuter1" result="shadowMatrixOuter1"></feColorMatrix>
|
||||
<feMerge>
|
||||
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
|
||||
<feMergeNode in="SourceGraphic"></feMergeNode>
|
||||
</feMerge>
|
||||
</filter>
|
||||
<path d="M8.86493515,17.2480344 C8.4007802,16.9327578 8.09567896,16.3993146 8.09567896,15.7943295 C8.09567896,14.82567 8.87784133,14.0404164 9.84268751,14.0404164 C10.8075337,14.0404164 11.5896961,14.82567 11.5896961,15.7943295 C11.5896961,16.3993146 11.2845948,16.9327578 10.8204399,17.2480344 L11.7961308,19.984547 C11.9101195,20.3042502 11.743355,20.6558271 11.4236517,20.7698158 C11.3574028,20.7934365 11.2875908,20.8055099 11.2172568,20.8055099 L8.46811816,20.8055099 L8.46811816,20.8055099 C8.1287016,20.8055099 7.85355011,20.5303584 7.85355011,20.1909418 C7.85355011,20.1206079 7.86562345,20.0507959 7.8892442,19.984547 L8.86493515,17.2480344 Z" id="path-11"></path>
|
||||
<filter x="-12.0%" y="-7.4%" width="124.1%" height="114.8%" filterUnits="objectBoundingBox" id="filter-12">
|
||||
<feOffset dx="-1" dy="1" in="SourceAlpha" result="shadowOffsetInner1"></feOffset>
|
||||
<feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
|
||||
<feColorMatrix values="0 0 0 0 0.639215686 0 0 0 0 0.694117647 0 0 0 0 0.749019608 0 0 0 1 0" type="matrix" in="shadowInnerInner1"></feColorMatrix>
|
||||
</filter>
|
||||
<filter x="-50.0%" y="-10.0%" width="160.0%" height="160.0%" filterUnits="objectBoundingBox" id="filter-13">
|
||||
<feOffset dx="-1" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
||||
<feColorMatrix values="0 0 0 0 0.639215686 0 0 0 0 0.694117647 0 0 0 0 0.749019608 0 0 0 0.3 0" type="matrix" in="shadowOffsetOuter1" result="shadowMatrixOuter1"></feColorMatrix>
|
||||
<feMerge>
|
||||
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
|
||||
<feMergeNode in="SourceGraphic"></feMergeNode>
|
||||
</feMerge>
|
||||
</filter>
|
||||
<filter x="-50.0%" y="-10.0%" width="160.0%" height="160.0%" filterUnits="objectBoundingBox" id="filter-14">
|
||||
<feOffset dx="-1" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
||||
<feColorMatrix values="0 0 0 0 0.639215686 0 0 0 0 0.694117647 0 0 0 0 0.749019608 0 0 0 0.3 0" type="matrix" in="shadowOffsetOuter1" result="shadowMatrixOuter1"></feColorMatrix>
|
||||
<feMerge>
|
||||
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
|
||||
<feMergeNode in="SourceGraphic"></feMergeNode>
|
||||
</feMerge>
|
||||
</filter>
|
||||
<filter x="-50.0%" y="-10.0%" width="160.0%" height="160.0%" filterUnits="objectBoundingBox" id="filter-15">
|
||||
<feOffset dx="-1" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
||||
<feColorMatrix values="0 0 0 0 0.639215686 0 0 0 0 0.694117647 0 0 0 0 0.749019608 0 0 0 0.3 0" type="matrix" in="shadowOffsetOuter1" result="shadowMatrixOuter1"></feColorMatrix>
|
||||
<feMerge>
|
||||
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
|
||||
<feMergeNode in="SourceGraphic"></feMergeNode>
|
||||
</feMerge>
|
||||
</filter>
|
||||
<filter x="-50.0%" y="-10.0%" width="160.0%" height="160.0%" filterUnits="objectBoundingBox" id="filter-16">
|
||||
<feOffset dx="-1" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
||||
<feColorMatrix values="0 0 0 0 0.639215686 0 0 0 0 0.694117647 0 0 0 0 0.749019608 0 0 0 0.3 0" type="matrix" in="shadowOffsetOuter1" result="shadowMatrixOuter1"></feColorMatrix>
|
||||
<feMerge>
|
||||
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
|
||||
<feMergeNode in="SourceGraphic"></feMergeNode>
|
||||
</feMerge>
|
||||
</filter>
|
||||
<filter x="-50.0%" y="-10.0%" width="160.0%" height="160.0%" filterUnits="objectBoundingBox" id="filter-17">
|
||||
<feOffset dx="-1" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
||||
<feColorMatrix values="0 0 0 0 0.639215686 0 0 0 0 0.694117647 0 0 0 0 0.749019608 0 0 0 0.3 0" type="matrix" in="shadowOffsetOuter1" result="shadowMatrixOuter1"></feColorMatrix>
|
||||
<feMerge>
|
||||
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
|
||||
<feMergeNode in="SourceGraphic"></feMergeNode>
|
||||
</feMerge>
|
||||
</filter>
|
||||
<filter x="-50.0%" y="-10.0%" width="160.0%" height="160.0%" filterUnits="objectBoundingBox" id="filter-18">
|
||||
<feOffset dx="-1" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
||||
<feColorMatrix values="0 0 0 0 0.639215686 0 0 0 0 0.694117647 0 0 0 0 0.749019608 0 0 0 0.3 0" type="matrix" in="shadowOffsetOuter1" result="shadowMatrixOuter1"></feColorMatrix>
|
||||
<feMerge>
|
||||
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
|
||||
<feMergeNode in="SourceGraphic"></feMergeNode>
|
||||
</feMerge>
|
||||
</filter>
|
||||
<filter x="-50.0%" y="-10.0%" width="160.0%" height="160.0%" filterUnits="objectBoundingBox" id="filter-19">
|
||||
<feOffset dx="-1" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
||||
<feColorMatrix values="0 0 0 0 0.639215686 0 0 0 0 0.694117647 0 0 0 0 0.749019608 0 0 0 0.3 0" type="matrix" in="shadowOffsetOuter1" result="shadowMatrixOuter1"></feColorMatrix>
|
||||
<feMerge>
|
||||
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
|
||||
<feMergeNode in="SourceGraphic"></feMergeNode>
|
||||
</feMerge>
|
||||
</filter>
|
||||
<filter x="-50.0%" y="-10.0%" width="160.0%" height="160.0%" filterUnits="objectBoundingBox" id="filter-20">
|
||||
<feOffset dx="-1" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
||||
<feColorMatrix values="0 0 0 0 0.639215686 0 0 0 0 0.694117647 0 0 0 0 0.749019608 0 0 0 0.3 0" type="matrix" in="shadowOffsetOuter1" result="shadowMatrixOuter1"></feColorMatrix>
|
||||
<feMerge>
|
||||
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
|
||||
<feMergeNode in="SourceGraphic"></feMergeNode>
|
||||
</feMerge>
|
||||
</filter>
|
||||
<filter x="-50.0%" y="-10.0%" width="160.0%" height="160.0%" filterUnits="objectBoundingBox" id="filter-21">
|
||||
<feOffset dx="-1" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
||||
<feColorMatrix values="0 0 0 0 0.639215686 0 0 0 0 0.694117647 0 0 0 0 0.749019608 0 0 0 0.3 0" type="matrix" in="shadowOffsetOuter1" result="shadowMatrixOuter1"></feColorMatrix>
|
||||
<feMerge>
|
||||
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
|
||||
<feMergeNode in="SourceGraphic"></feMergeNode>
|
||||
</feMerge>
|
||||
</filter>
|
||||
<filter x="-50.0%" y="-10.0%" width="160.0%" height="160.0%" filterUnits="objectBoundingBox" id="filter-22">
|
||||
<feOffset dx="-1" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
||||
<feColorMatrix values="0 0 0 0 0.639215686 0 0 0 0 0.694117647 0 0 0 0 0.749019608 0 0 0 0.3 0" type="matrix" in="shadowOffsetOuter1" result="shadowMatrixOuter1"></feColorMatrix>
|
||||
<feMerge>
|
||||
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
|
||||
<feMergeNode in="SourceGraphic"></feMergeNode>
|
||||
</feMerge>
|
||||
</filter>
|
||||
<filter x="-44.4%" y="-20.0%" width="166.7%" height="160.0%" filterUnits="objectBoundingBox" id="filter-23">
|
||||
<feOffset dx="-2" dy="2" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
||||
<feColorMatrix values="0 0 0 0 0.639215686 0 0 0 0 0.694117647 0 0 0 0 0.749019608 0 0 0 0.3 0" type="matrix" in="shadowOffsetOuter1" result="shadowMatrixOuter1"></feColorMatrix>
|
||||
<feMerge>
|
||||
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
|
||||
<feMergeNode in="SourceGraphic"></feMergeNode>
|
||||
</feMerge>
|
||||
</filter>
|
||||
<filter x="-44.4%" y="-20.0%" width="166.7%" height="160.0%" filterUnits="objectBoundingBox" id="filter-24">
|
||||
<feOffset dx="-2" dy="2" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
||||
<feColorMatrix values="0 0 0 0 0.639215686 0 0 0 0 0.694117647 0 0 0 0 0.749019608 0 0 0 0.3 0" type="matrix" in="shadowOffsetOuter1" result="shadowMatrixOuter1"></feColorMatrix>
|
||||
<feMerge>
|
||||
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
|
||||
<feMergeNode in="SourceGraphic"></feMergeNode>
|
||||
</feMerge>
|
||||
</filter>
|
||||
<filter x="-44.4%" y="-20.0%" width="166.7%" height="160.0%" filterUnits="objectBoundingBox" id="filter-25">
|
||||
<feOffset dx="-2" dy="2" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
||||
<feColorMatrix values="0 0 0 0 0.639215686 0 0 0 0 0.694117647 0 0 0 0 0.749019608 0 0 0 0.3 0" type="matrix" in="shadowOffsetOuter1" result="shadowMatrixOuter1"></feColorMatrix>
|
||||
<feMerge>
|
||||
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
|
||||
<feMergeNode in="SourceGraphic"></feMergeNode>
|
||||
</feMerge>
|
||||
</filter>
|
||||
<filter x="-44.4%" y="-20.0%" width="166.7%" height="160.0%" filterUnits="objectBoundingBox" id="filter-26">
|
||||
<feOffset dx="-2" dy="2" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
||||
<feColorMatrix values="0 0 0 0 0.639215686 0 0 0 0 0.694117647 0 0 0 0 0.749019608 0 0 0 0.3 0" type="matrix" in="shadowOffsetOuter1" result="shadowMatrixOuter1"></feColorMatrix>
|
||||
<feMerge>
|
||||
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
|
||||
<feMergeNode in="SourceGraphic"></feMergeNode>
|
||||
</feMerge>
|
||||
</filter>
|
||||
<filter x="-44.4%" y="-20.0%" width="166.7%" height="160.0%" filterUnits="objectBoundingBox" id="filter-27">
|
||||
<feOffset dx="-2" dy="2" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
||||
<feColorMatrix values="0 0 0 0 0.639215686 0 0 0 0 0.694117647 0 0 0 0 0.749019608 0 0 0 0.3 0" type="matrix" in="shadowOffsetOuter1" result="shadowMatrixOuter1"></feColorMatrix>
|
||||
<feMerge>
|
||||
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
|
||||
<feMergeNode in="SourceGraphic"></feMergeNode>
|
||||
</feMerge>
|
||||
</filter>
|
||||
<filter x="-44.4%" y="-20.0%" width="166.7%" height="160.0%" filterUnits="objectBoundingBox" id="filter-28">
|
||||
<feOffset dx="-2" dy="2" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
||||
<feColorMatrix values="0 0 0 0 0.639215686 0 0 0 0 0.694117647 0 0 0 0 0.749019608 0 0 0 0.3 0" type="matrix" in="shadowOffsetOuter1" result="shadowMatrixOuter1"></feColorMatrix>
|
||||
<feMerge>
|
||||
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
|
||||
<feMergeNode in="SourceGraphic"></feMergeNode>
|
||||
</feMerge>
|
||||
</filter>
|
||||
<filter x="-44.4%" y="-20.0%" width="166.7%" height="160.0%" filterUnits="objectBoundingBox" id="filter-29">
|
||||
<feOffset dx="-2" dy="2" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
||||
<feColorMatrix values="0 0 0 0 0.639215686 0 0 0 0 0.694117647 0 0 0 0 0.749019608 0 0 0 0.3 0" type="matrix" in="shadowOffsetOuter1" result="shadowMatrixOuter1"></feColorMatrix>
|
||||
<feMerge>
|
||||
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
|
||||
<feMergeNode in="SourceGraphic"></feMergeNode>
|
||||
</feMerge>
|
||||
</filter>
|
||||
<rect id="path-30" x="79.0833333" y="68.7939815" width="60.8333333" height="24.3518519"></rect>
|
||||
<filter x="-2.5%" y="-2.1%" width="103.3%" height="108.2%" filterUnits="objectBoundingBox" id="filter-31">
|
||||
<feOffset dx="-1" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
||||
<feComposite in="shadowOffsetOuter1" in2="SourceAlpha" operator="out" result="shadowOffsetOuter1"></feComposite>
|
||||
<feColorMatrix values="0 0 0 0 0.639215686 0 0 0 0 0.694117647 0 0 0 0 0.749019608 0 0 0 0.3 0" type="matrix" in="shadowOffsetOuter1"></feColorMatrix>
|
||||
</filter>
|
||||
<rect id="path-32" x="119.233333" y="71.2346165" width="18.2504951" height="19.5072939"></rect>
|
||||
<path d="M6.69173423,0.214583333 L15.4541667,0.214583333 L15.4541667,30.8979167 L6.69173423,30.8979167 L6.69173423,30.8979167 C3.06456682,30.8979167 0.124166667,27.9575165 0.124166667,24.3303491 L0.124166667,6.7821509 L0.124166667,6.7821509 C0.124166667,3.15498349 3.06456682,0.214583333 6.69173423,0.214583333 Z" id="path-34"></path>
|
||||
<filter x="-29.4%" y="-4.9%" width="139.1%" height="116.3%" filterUnits="objectBoundingBox" id="filter-35">
|
||||
<feOffset dx="-3" dy="2" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
||||
<feComposite in="shadowOffsetOuter1" in2="SourceAlpha" operator="out" result="shadowOffsetOuter1"></feComposite>
|
||||
<feColorMatrix values="0 0 0 0 0.866666667 0 0 0 0 0.890196078 0 0 0 0 0.909803922 0 0 0 1 0" type="matrix" in="shadowOffsetOuter1"></feColorMatrix>
|
||||
</filter>
|
||||
<filter x="-50.0%" y="-10.0%" width="160.0%" height="160.0%" filterUnits="objectBoundingBox" id="filter-36">
|
||||
<feOffset dx="-1" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
||||
<feColorMatrix values="0 0 0 0 0.639215686 0 0 0 0 0.694117647 0 0 0 0 0.749019608 0 0 0 0.3 0" type="matrix" in="shadowOffsetOuter1" result="shadowMatrixOuter1"></feColorMatrix>
|
||||
<feMerge>
|
||||
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
|
||||
<feMergeNode in="SourceGraphic"></feMergeNode>
|
||||
</feMerge>
|
||||
</filter>
|
||||
<filter x="-50.0%" y="-10.0%" width="160.0%" height="160.0%" filterUnits="objectBoundingBox" id="filter-37">
|
||||
<feOffset dx="-1" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
||||
<feColorMatrix values="0 0 0 0 0.639215686 0 0 0 0 0.694117647 0 0 0 0 0.749019608 0 0 0 0.3 0" type="matrix" in="shadowOffsetOuter1" result="shadowMatrixOuter1"></feColorMatrix>
|
||||
<feMerge>
|
||||
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
|
||||
<feMergeNode in="SourceGraphic"></feMergeNode>
|
||||
</feMerge>
|
||||
</filter>
|
||||
<path d="M42.8291667,11.875589 L42.8291667,19.236911 C42.8291667,19.9264853 42.3373793,20.5354959 41.738915,20.595957 L17.6441667,22.6791667 L17.6441667,8.43333333 L41.738915,10.516543 C42.3410444,10.5773757 42.8291667,11.185286 42.8291667,11.875589 Z" id="path-38"></path>
|
||||
<filter x="-50.0%" y="-10.0%" width="160.0%" height="160.0%" filterUnits="objectBoundingBox" id="filter-39">
|
||||
<feOffset dx="-1" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
||||
<feColorMatrix values="0 0 0 0 0.639215686 0 0 0 0 0.694117647 0 0 0 0 0.749019608 0 0 0 0.3 0" type="matrix" in="shadowOffsetOuter1" result="shadowMatrixOuter1"></feColorMatrix>
|
||||
<feMerge>
|
||||
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
|
||||
<feMergeNode in="SourceGraphic"></feMergeNode>
|
||||
</feMerge>
|
||||
</filter>
|
||||
<filter x="-50.0%" y="-10.0%" width="160.0%" height="160.0%" filterUnits="objectBoundingBox" id="filter-40">
|
||||
<feOffset dx="-1" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
||||
<feColorMatrix values="0 0 0 0 0.639215686 0 0 0 0 0.694117647 0 0 0 0 0.749019608 0 0 0 0.3 0" type="matrix" in="shadowOffsetOuter1" result="shadowMatrixOuter1"></feColorMatrix>
|
||||
<feMerge>
|
||||
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
|
||||
<feMergeNode in="SourceGraphic"></feMergeNode>
|
||||
</feMerge>
|
||||
</filter>
|
||||
<rect id="path-41" x="12.23" y="6.78958333" width="7.1175" height="17.5333333" rx="1.09459459"></rect>
|
||||
<filter x="-42.1%" y="-5.7%" width="156.2%" height="117.1%" filterUnits="objectBoundingBox" id="filter-42">
|
||||
<feOffset dx="-2" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
||||
<feComposite in="shadowOffsetOuter1" in2="SourceAlpha" operator="out" result="shadowOffsetOuter1"></feComposite>
|
||||
<feColorMatrix values="0 0 0 0 0.639215686 0 0 0 0 0.694117647 0 0 0 0 0.749019608 0 0 0 0.3 0" type="matrix" in="shadowOffsetOuter1"></feColorMatrix>
|
||||
</filter>
|
||||
<path d="M6.69173423,0.214583333 L15.4541667,0.214583333 L15.4541667,30.8979167 L6.69173423,30.8979167 L6.69173423,30.8979167 C3.06456682,30.8979167 0.124166667,27.9575165 0.124166667,24.3303491 L0.124166667,6.7821509 L0.124166667,6.7821509 C0.124166667,3.15498349 3.06456682,0.214583333 6.69173423,0.214583333 Z" id="path-43"></path>
|
||||
<filter x="-29.4%" y="-4.9%" width="139.1%" height="116.3%" filterUnits="objectBoundingBox" id="filter-44">
|
||||
<feOffset dx="-3" dy="2" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
||||
<feComposite in="shadowOffsetOuter1" in2="SourceAlpha" operator="out" result="shadowOffsetOuter1"></feComposite>
|
||||
<feColorMatrix values="0 0 0 0 0.866666667 0 0 0 0 0.890196078 0 0 0 0 0.909803922 0 0 0 1 0" type="matrix" in="shadowOffsetOuter1"></feColorMatrix>
|
||||
</filter>
|
||||
<filter x="-50.0%" y="-10.0%" width="160.0%" height="160.0%" filterUnits="objectBoundingBox" id="filter-45">
|
||||
<feOffset dx="-1" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
||||
<feColorMatrix values="0 0 0 0 0.639215686 0 0 0 0 0.694117647 0 0 0 0 0.749019608 0 0 0 0.3 0" type="matrix" in="shadowOffsetOuter1" result="shadowMatrixOuter1"></feColorMatrix>
|
||||
<feMerge>
|
||||
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
|
||||
<feMergeNode in="SourceGraphic"></feMergeNode>
|
||||
</feMerge>
|
||||
</filter>
|
||||
<filter x="-50.0%" y="-10.0%" width="160.0%" height="160.0%" filterUnits="objectBoundingBox" id="filter-46">
|
||||
<feOffset dx="-1" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
||||
<feColorMatrix values="0 0 0 0 0.639215686 0 0 0 0 0.694117647 0 0 0 0 0.749019608 0 0 0 0.3 0" type="matrix" in="shadowOffsetOuter1" result="shadowMatrixOuter1"></feColorMatrix>
|
||||
<feMerge>
|
||||
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
|
||||
<feMergeNode in="SourceGraphic"></feMergeNode>
|
||||
</feMerge>
|
||||
</filter>
|
||||
<path d="M42.8291667,11.875589 L42.8291667,19.236911 C42.8291667,19.9264853 42.3373793,20.5354959 41.738915,20.595957 L17.6441667,22.6791667 L17.6441667,8.43333333 L41.738915,10.516543 C42.3410444,10.5773757 42.8291667,11.185286 42.8291667,11.875589 Z" id="path-47"></path>
|
||||
<filter x="-50.0%" y="-10.0%" width="160.0%" height="160.0%" filterUnits="objectBoundingBox" id="filter-48">
|
||||
<feOffset dx="-1" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
||||
<feColorMatrix values="0 0 0 0 0.639215686 0 0 0 0 0.694117647 0 0 0 0 0.749019608 0 0 0 0.3 0" type="matrix" in="shadowOffsetOuter1" result="shadowMatrixOuter1"></feColorMatrix>
|
||||
<feMerge>
|
||||
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
|
||||
<feMergeNode in="SourceGraphic"></feMergeNode>
|
||||
</feMerge>
|
||||
</filter>
|
||||
<filter x="-50.0%" y="-10.0%" width="160.0%" height="160.0%" filterUnits="objectBoundingBox" id="filter-49">
|
||||
<feOffset dx="-1" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
||||
<feColorMatrix values="0 0 0 0 0.639215686 0 0 0 0 0.694117647 0 0 0 0 0.749019608 0 0 0 0.3 0" type="matrix" in="shadowOffsetOuter1" result="shadowMatrixOuter1"></feColorMatrix>
|
||||
<feMerge>
|
||||
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
|
||||
<feMergeNode in="SourceGraphic"></feMergeNode>
|
||||
</feMerge>
|
||||
</filter>
|
||||
<rect id="path-50" x="12.23" y="6.78958333" width="7.1175" height="17.5333333" rx="1.09459459"></rect>
|
||||
<filter x="-42.1%" y="-5.7%" width="156.2%" height="117.1%" filterUnits="objectBoundingBox" id="filter-51">
|
||||
<feOffset dx="-2" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
||||
<feComposite in="shadowOffsetOuter1" in2="SourceAlpha" operator="out" result="shadowOffsetOuter1"></feComposite>
|
||||
<feColorMatrix values="0 0 0 0 0.639215686 0 0 0 0 0.694117647 0 0 0 0 0.749019608 0 0 0 0.3 0" type="matrix" in="shadowOffsetOuter1"></feColorMatrix>
|
||||
</filter>
|
||||
<path d="M24.5975819,18.9156325 C22.7107005,18.6906938 20.1873316,18.3702571 18.5998357,18.0903387 C15.7716385,17.5916513 10.2254435,16.2267099 10.2254435,16.2267099 L9.43228672,20.7249253 C9.43228672,20.7249253 15.1331234,21.2766981 17.950402,21.7734603 C19.3152185,22.0141143 21.3273422,22.4758916 23.0359088,22.887195 C22.0718328,24.3735021 20.9147108,26.1229174 20.0932954,27.2534987 C18.405278,29.5768553 14.7471849,33.9633914 14.7471849,33.9633914 L18.4424572,36.6481639 C18.4424572,36.6481639 21.4374695,31.7661671 23.1189701,29.4517801 C23.9598468,28.2944125 25.3148663,26.6203912 26.4570264,25.2388063 C27.4382453,26.7462318 28.6051214,28.5736505 29.3214044,29.8142891 C30.7573178,32.301364 33.2767374,37.4273633 33.2767374,37.4273633 L37.2324017,35.1435594 C37.2324017,35.1435594 33.990657,30.4217925 32.5602872,27.9443193 C31.8079686,26.6412654 30.764866,24.5861738 29.94691,22.9346427 C31.7349883,22.451283 33.9931664,21.8608332 35.4733174,21.5462174 C38.2823878,20.9491311 43.9360463,20.1370415 43.9360463,20.1370415 L42.9863873,15.669247 C42.9863873,15.669247 37.4939659,17.2932232 34.6957402,17.8880045 C33.1431973,18.2180076 30.6947576,18.5971515 28.8277097,18.8686298 C28.722602,16.9801623 28.6032977,14.4864013 28.6032977,12.8962937 C28.6032977,10.024467 28.984416,4.32551158 28.984416,4.32551158 L24.4168083,4.32551158 C24.4168083,4.32551158 24.8633581,10.0355541 24.8633581,12.8962937 C24.8633581,14.5048733 24.7214143,17.0240015 24.5975819,18.9156325 Z" id="path-52"></path>
|
||||
<filter x="-14.6%" y="-6.2%" width="120.9%" height="121.4%" filterUnits="objectBoundingBox" id="filter-54">
|
||||
<feMorphology radius="0.547297297" operator="dilate" in="SourceAlpha" result="shadowSpreadOuter1"></feMorphology>
|
||||
<feOffset dx="-3" dy="3" in="shadowSpreadOuter1" result="shadowOffsetOuter1"></feOffset>
|
||||
<feComposite in="shadowOffsetOuter1" in2="SourceAlpha" operator="out" result="shadowOffsetOuter1"></feComposite>
|
||||
<feColorMatrix values="0 0 0 0 0.639215686 0 0 0 0 0.694117647 0 0 0 0 0.749019608 0 0 0 0.3 0" type="matrix" in="shadowOffsetOuter1"></feColorMatrix>
|
||||
</filter>
|
||||
<ellipse id="path-55" cx="26.802716" cy="22.6705733" rx="4.38" ry="4.38333333"></ellipse>
|
||||
<filter x="-34.2%" y="-11.4%" width="145.7%" height="134.2%" filterUnits="objectBoundingBox" id="filter-56">
|
||||
<feOffset dx="-2" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
|
||||
<feColorMatrix values="0 0 0 0 0.596078431 0 0 0 0 0.647058824 0 0 0 0 0.701960784 0 0 0 1 0" type="matrix" in="shadowOffsetOuter1"></feColorMatrix>
|
||||
</filter>
|
||||
</defs>
|
||||
<g id="Ant-Design-Pro-3.0" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="403" transform="translate(-592.000000, -260.000000)">
|
||||
<g id="Group-9" transform="translate(599.000000, 261.000000)">
|
||||
<g id="Group-11">
|
||||
<g id="Rectangle-355">
|
||||
<use fill="black" fill-opacity="1" filter="url(#filter-2)" xlink:href="#path-1"></use>
|
||||
<use stroke="#A3B1BF" stroke-width="1.62" fill="#F0F2F5" fill-rule="evenodd" xlink:href="#path-1"></use>
|
||||
</g>
|
||||
<g id="Rectangle-355">
|
||||
<use fill="black" fill-opacity="1" filter="url(#filter-4)" xlink:href="#path-3"></use>
|
||||
<use stroke="#A3B1BF" stroke-width="1.62" fill-opacity="0.15" fill="#A3B1BF" fill-rule="evenodd" xlink:href="#path-3"></use>
|
||||
</g>
|
||||
<g id="Rectangle-357">
|
||||
<use fill="black" fill-opacity="1" filter="url(#filter-6)" xlink:href="#path-5"></use>
|
||||
<use fill="#F0F2F5" fill-rule="evenodd" xlink:href="#path-5"></use>
|
||||
<path stroke="#A3B1BF" stroke-width="1.62" d="M176.0325,106.581667 L176.0325,90.6683333 L161.510068,90.6683333 C158.330251,90.6683333 155.7525,93.2460841 155.7525,96.4259009 L155.7525,100.824099 C155.7525,104.003916 158.330251,106.581667 161.510068,106.581667 L176.0325,106.581667 Z"></path>
|
||||
</g>
|
||||
<g id="Rectangle-357" transform="translate(188.340000, 98.625000) scale(-1, 1) translate(-188.340000, -98.625000) ">
|
||||
<use fill="black" fill-opacity="1" filter="url(#filter-8)" xlink:href="#path-7"></use>
|
||||
<use fill="#F0F2F5" fill-rule="evenodd" xlink:href="#path-7"></use>
|
||||
<path stroke="#A3B1BF" stroke-width="1.62" d="M198.48,106.581667 L198.48,90.6683333 L183.957568,90.6683333 C180.777751,90.6683333 178.2,93.2460841 178.2,96.4259009 L178.2,100.824099 C178.2,104.003916 180.777751,106.581667 183.957568,106.581667 L198.48,106.581667 Z"></path>
|
||||
</g>
|
||||
<path d="M169.537821,109.198898 L179.520726,109.198898 L179.520726,106.316665 C179.657239,106.659699 174.968976,106.316665 172.419859,106.316665 L174.153055,100.243742 C171.605657,100.243742 169.537821,102.294522 169.537821,104.822572 L169.537821,109.198898 Z M181.404585,106.764356 L181.334952,105.82938 C178.493277,106.319657 175.877716,105.82938 172.088276,105.82938 L174.153055,98.0162037 C170.365914,98.0162037 167.291667,101.063519 167.291667,104.822572 L167.291667,106.764356 L166.869647,106.764356 L166.869647,106.764356 C165.758829,106.764356 164.858333,107.664852 164.858333,108.775669 L164.858333,108.775669 L164.858333,115.540394 C164.858333,119.983665 168.460316,123.585648 172.903588,123.585648 L176.279745,123.585648 C180.723017,123.585648 184.325,119.983665 184.325,115.540394 L184.325,108.775669 C184.325,107.664852 183.424504,106.764356 182.313686,106.764356 L181.404585,106.764356 Z" id="Shape" fill="#D4DBE2" fill-rule="nonzero"></path>
|
||||
<g id="Group-6" filter="url(#filter-9)" transform="translate(160.419753, 95.472603)">
|
||||
<ellipse id="Oval-191" stroke="#D9D9D9" stroke-width="1.09459459" fill="#F5F5F5" cx="2.19" cy="2.73958333" rx="2.19" ry="2.19166667"></ellipse>
|
||||
<polygon id="Path-301" fill="#D9D9D9" points="3.78100727 4.39009284 1.17151744 0.497180523 0.223105786 2.08897836 0.101076918 4.39009284"></polygon>
|
||||
</g>
|
||||
<g id="Group-6" filter="url(#filter-10)" transform="translate(189.259259, 95.472603)">
|
||||
<ellipse id="Oval-191" stroke="#D9D9D9" stroke-width="1.09459459" fill="#F5F5F5" cx="2.19" cy="2.73958333" rx="2.19" ry="2.19166667"></ellipse>
|
||||
<polygon id="Path-301" fill="#D9D9D9" points="3.78100727 4.39009284 1.17151744 0.497180523 0.223105786 2.08897836 0.101076918 4.39009284"></polygon>
|
||||
</g>
|
||||
<g id="lock" transform="translate(166.683333, 96.798611)">
|
||||
<path d="M2.43333333,9.34812925 L2.43333333,7.750693 C2.43333333,4.33901358 4.64933408,1.45058816 7.70555556,0.476293029 L7.70555556,4.05203095 C6.57838885,4.84048413 5.84,6.15673686 5.84,7.64734194 L5.84,9.34812925 L14.4830461,9.34812925 C14.4830461,8.8280509 14.4830461,8.25372782 14.4830461,7.64734194 C14.4830461,6.44285214 14.0009139,5.352206 13.2211113,4.56188949 L13.2211113,0.864048014 C15.7633754,2.09038625 17.52,4.7131478 17.52,7.750693 C17.52,8.30041562 17.52,8.83504216 17.52,9.3491485 C18.6008993,9.38327886 19.4666667,10.2702555 19.4666667,11.3594429 L19.4666667,18.3317768 C19.4666667,22.7750482 15.8646835,26.3770314 11.4214121,26.3770314 L8.04525456,26.3770314 C3.60198316,26.3770314 5.4414381e-16,22.7750482 0,18.3317768 L0,11.3594429 C-1.36035952e-16,10.248625 0.900495789,9.34812925 2.01131364,9.34812925 L2.01131364,9.34812925 L2.43333333,9.34812925 Z" id="Combined-Shape" stroke="#A3B1BF" stroke-width="1.62" fill="#F0F2F5"></path>
|
||||
<g id="Oval-1115">
|
||||
<use fill-opacity="0.3" fill="#A3B1BF" fill-rule="evenodd" xlink:href="#path-11"></use>
|
||||
<use fill="black" fill-opacity="1" filter="url(#filter-12)" xlink:href="#path-11"></use>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group-6" filter="url(#filter-13)" transform="translate(64.000000, 75.000000)">
|
||||
<ellipse id="Oval-191" stroke="#A3B1BF" stroke-width="1.09459459" fill="#F5F5F5" cx="2.19" cy="2.73958333" rx="2.19" ry="2.19166667"></ellipse>
|
||||
<polygon id="Path-301" fill="#A3B1BF" points="3.78100727 4.39009284 1.17151744 0.497180523 0.223105786 2.08897836 0.101076918 4.39009284"></polygon>
|
||||
</g>
|
||||
<g id="Group-6-Copy-11" filter="url(#filter-14)" transform="translate(152.000000, 75.000000)">
|
||||
<ellipse id="Oval-191" stroke="#A3B1BF" stroke-width="1.09459459" fill="#F5F5F5" cx="2.19" cy="2.73958333" rx="2.19" ry="2.19166667"></ellipse>
|
||||
<polygon id="Path-301" fill="#A3B1BF" points="3.78100727 4.39009284 1.17151744 0.497180523 0.223105786 2.08897836 0.101076918 4.39009284"></polygon>
|
||||
</g>
|
||||
<g id="Group-6-Copy-2" filter="url(#filter-15)" transform="translate(57.000000, 120.000000)">
|
||||
<ellipse id="Oval-191" stroke="#A3B1BF" stroke-width="1.09459459" fill="#F5F5F5" cx="2.19" cy="2.73958333" rx="2.19" ry="2.19166667"></ellipse>
|
||||
<polygon id="Path-301" fill="#A3B1BF" points="3.78100727 4.39009284 1.17151744 0.497180523 0.223105786 2.08897836 0.101076918 4.39009284"></polygon>
|
||||
</g>
|
||||
<g id="Group-6-Copy-3" filter="url(#filter-16)" transform="translate(57.000000, 137.000000)">
|
||||
<ellipse id="Oval-191" stroke="#A3B1BF" stroke-width="1.09459459" fill="#F5F5F5" cx="2.19" cy="2.73958333" rx="2.19" ry="2.19166667"></ellipse>
|
||||
<polygon id="Path-301" fill="#A3B1BF" points="3.78100727 4.39009284 1.17151744 0.497180523 0.223105786 2.08897836 0.101076918 4.39009284"></polygon>
|
||||
</g>
|
||||
<g id="Group-6-Copy-4" filter="url(#filter-17)" transform="translate(64.000000, 186.000000)">
|
||||
<ellipse id="Oval-191" stroke="#A3B1BF" stroke-width="1.09459459" fill="#F5F5F5" cx="2.19" cy="2.73958333" rx="2.19" ry="2.19166667"></ellipse>
|
||||
<polygon id="Path-301" fill="#A3B1BF" points="3.78100727 4.39009284 1.17151744 0.497180523 0.223105786 2.08897836 0.101076918 4.39009284"></polygon>
|
||||
</g>
|
||||
<g id="Group-6-Copy-5" filter="url(#filter-18)" transform="translate(93.000000, 191.000000)">
|
||||
<ellipse id="Oval-191" stroke="#A3B1BF" stroke-width="1.09459459" fill="#F5F5F5" cx="2.19" cy="2.73958333" rx="2.19" ry="2.19166667"></ellipse>
|
||||
<polygon id="Path-301" fill="#A3B1BF" points="3.78100727 4.39009284 1.17151744 0.497180523 0.223105786 2.08897836 0.101076918 4.39009284"></polygon>
|
||||
</g>
|
||||
<g id="Group-6-Copy-6" filter="url(#filter-19)" transform="translate(122.000000, 191.000000)">
|
||||
<ellipse id="Oval-191" stroke="#A3B1BF" stroke-width="1.09459459" fill="#F5F5F5" cx="2.19" cy="2.73958333" rx="2.19" ry="2.19166667"></ellipse>
|
||||
<polygon id="Path-301" fill="#A3B1BF" points="3.78100727 4.39009284 1.17151744 0.497180523 0.223105786 2.08897836 0.101076918 4.39009284"></polygon>
|
||||
</g>
|
||||
<g id="Group-6-Copy-7" filter="url(#filter-20)" transform="translate(152.000000, 186.000000)">
|
||||
<ellipse id="Oval-191" stroke="#A3B1BF" stroke-width="1.09459459" fill="#F5F5F5" cx="2.19" cy="2.73958333" rx="2.19" ry="2.19166667"></ellipse>
|
||||
<polygon id="Path-301" fill="#A3B1BF" points="3.78100727 4.39009284 1.17151744 0.497180523 0.223105786 2.08897836 0.101076918 4.39009284"></polygon>
|
||||
</g>
|
||||
<g id="Group-6" filter="url(#filter-21)" transform="translate(160.419753, 95.472603)">
|
||||
<ellipse id="Oval-191" stroke="#A3B1BF" stroke-width="1.09459459" fill="#F5F5F5" cx="2.19" cy="2.73958333" rx="2.19" ry="2.19166667"></ellipse>
|
||||
<polygon id="Path-301" fill="#A3B1BF" points="3.78100727 4.39009284 1.17151744 0.497180523 0.223105786 2.08897836 0.101076918 4.39009284"></polygon>
|
||||
</g>
|
||||
<g id="Group-6" filter="url(#filter-22)" transform="translate(189.259259, 95.472603)">
|
||||
<ellipse id="Oval-191" stroke="#A3B1BF" stroke-width="1.09459459" fill="#F7FAFC" cx="2.19" cy="2.73958333" rx="2.19" ry="2.19166667"></ellipse>
|
||||
<polygon id="Path-301" fill="#A3B1BF" points="3.78100727 4.39009284 1.17151744 0.497180523 0.223105786 2.08897836 0.101076918 4.39009284"></polygon>
|
||||
</g>
|
||||
<g id="Group-6" filter="url(#filter-23)" transform="translate(25.000000, 38.000000)">
|
||||
<ellipse id="Oval-191" stroke="#A3B1BF" stroke-width="1.64189189" fill="#F7FAFC" cx="4.38" cy="4.93125" rx="4.38" ry="4.38333333"></ellipse>
|
||||
<polygon id="Path-301" fill="#A3B1BF" points="4.0041131 9.13310534 7.56201455 8.23226901 2.34303487 0.44644438 0.446211571 3.63004005 0.788921826 7.80592737"></polygon>
|
||||
</g>
|
||||
<g id="Group-6-Copy-8" filter="url(#filter-24)" transform="translate(25.000000, 218.000000)">
|
||||
<ellipse id="Oval-191" stroke="#A3B1BF" stroke-width="1.64189189" fill="#F7FAFC" cx="4.38" cy="4.93125" rx="4.38" ry="4.38333333"></ellipse>
|
||||
<polygon id="Path-301" fill="#A3B1BF" points="4.0041131 9.13310534 7.56201455 8.23226901 2.34303487 0.44644438 0.446211571 3.63004005 0.788921826 7.80592737"></polygon>
|
||||
</g>
|
||||
<g id="Group-6-Copy-9" filter="url(#filter-25)" transform="translate(106.000000, 237.000000)">
|
||||
<ellipse id="Oval-191" stroke="#A3B1BF" stroke-width="1.64189189" fill="#F7FAFC" cx="4.38" cy="4.93125" rx="4.38" ry="4.38333333"></ellipse>
|
||||
<polygon id="Path-301" fill="#A3B1BF" points="4.0041131 9.13310534 7.56201455 8.23226901 2.34303487 0.44644438 0.446211571 3.63004005 0.788921826 7.80592737"></polygon>
|
||||
</g>
|
||||
<g id="Group-6-Copy-10" filter="url(#filter-26)" transform="translate(185.000000, 219.000000)">
|
||||
<ellipse id="Oval-191" stroke="#A3B1BF" stroke-width="1.64189189" fill="#F7FAFC" cx="4.38" cy="4.93125" rx="4.38" ry="4.38333333"></ellipse>
|
||||
<polygon id="Path-301" fill="#A3B1BF" points="4.0041131 9.13310534 7.56201455 8.23226901 2.34303487 0.44644438 0.446211571 3.63004005 0.788921826 7.80592737"></polygon>
|
||||
</g>
|
||||
<g id="Group-6" filter="url(#filter-27)" transform="translate(14.419753, 129.698630)">
|
||||
<ellipse id="Oval-191" stroke="#A3B1BF" stroke-width="1.64189189" fill="#F7FAFC" cx="4.38" cy="4.93125" rx="4.38" ry="4.38333333"></ellipse>
|
||||
<polygon id="Path-301" fill="#A3B1BF" points="4.0041131 9.13310534 7.56201455 8.23226901 2.34303487 0.44644438 0.446211571 3.63004005 0.788921826 7.80592737"></polygon>
|
||||
</g>
|
||||
<g id="Group-6" filter="url(#filter-28)" transform="translate(105.444444, 20.715753)">
|
||||
<ellipse id="Oval-191" stroke="#A3B1BF" stroke-width="1.64189189" fill="#F7FAFC" cx="4.38" cy="4.93125" rx="4.38" ry="4.38333333"></ellipse>
|
||||
<polygon id="Path-301" fill="#A3B1BF" points="4.0041131 9.13310534 7.56201455 8.23226901 2.34303487 0.44644438 0.446211571 3.63004005 0.788921826 7.80592737"></polygon>
|
||||
</g>
|
||||
<g id="Group-6" filter="url(#filter-29)" transform="translate(185.055000, 37.806250)">
|
||||
<ellipse id="Oval-191" stroke="#A3B1BF" stroke-width="1.64189189" fill="#F5F5F5" cx="4.38" cy="4.93125" rx="4.38" ry="4.38333333"></ellipse>
|
||||
<polygon id="Path-301" fill="#A3B1BF" points="4.0041131 9.13310534 7.56201455 8.23226901 2.34303487 0.44644438 0.446211571 3.63004005 0.788921826 7.80592737"></polygon>
|
||||
</g>
|
||||
<g id="Rectangle-373">
|
||||
<use fill="black" fill-opacity="1" filter="url(#filter-31)" xlink:href="#path-30"></use>
|
||||
<use fill="#F0F2F5" fill-rule="evenodd" xlink:href="#path-30"></use>
|
||||
<rect stroke="#A3B1BF" stroke-width="2.43" x="80.2983333" y="70.0089815" width="58.4033333" height="21.9218519"></rect>
|
||||
</g>
|
||||
<mask id="mask-33" fill="white">
|
||||
<use xlink:href="#path-32"></use>
|
||||
</mask>
|
||||
<use id="Mask" fill-opacity="0.3" fill="#A3B1BF" xlink:href="#path-32"></use>
|
||||
<rect id="Rectangle-375" fill="#A3B1BF" x="114.366667" y="77.3171296" width="1.825" height="8.11728395" rx="0.9125"></rect>
|
||||
<rect id="Rectangle-375" fill="#A3B1BF" x="118.016667" y="72.6496914" width="2.43333333" height="16.2345679" rx="1.21666667"></rect>
|
||||
<g id="Group-4" transform="translate(25.000000, 88.000000)">
|
||||
<g id="Rectangle-369">
|
||||
<use fill="black" fill-opacity="1" filter="url(#filter-35)" xlink:href="#path-34"></use>
|
||||
<use fill="#EAEFF3" fill-rule="evenodd" xlink:href="#path-34"></use>
|
||||
<path stroke="#A3B1BF" stroke-width="1.62" d="M14.6441667,30.0879167 L14.6441667,1.02458333 L6.69173423,1.02458333 C3.51191747,1.02458333 0.934166667,3.60233414 0.934166667,6.7821509 L0.934166667,24.3303491 C0.934166667,27.5101659 3.51191747,30.0879167 6.69173423,30.0879167 L14.6441667,30.0879167 Z"></path>
|
||||
</g>
|
||||
<g id="Group-6" filter="url(#filter-36)" transform="translate(6.207500, 6.789583)">
|
||||
<ellipse id="Oval-191" stroke="#A3B1BF" stroke-width="1.09459459" fill="#F7FAFC" cx="2.19" cy="2.73958333" rx="2.19" ry="2.19166667"></ellipse>
|
||||
<polygon id="Path-301" fill="#A3B1BF" points="3.78100727 4.39009284 1.17151744 0.497180523 0.223105786 2.08897836 0.101076918 4.39009284"></polygon>
|
||||
</g>
|
||||
<g id="Group-6" filter="url(#filter-37)" transform="translate(6.543210, 19.181507)">
|
||||
<ellipse id="Oval-191" stroke="#A3B1BF" stroke-width="1.09459459" fill="#F7FAFC" cx="2.19" cy="2.73958333" rx="2.19" ry="2.19166667"></ellipse>
|
||||
<polygon id="Path-301" fill="#A3B1BF" points="3.78100727 4.39009284 1.17151744 0.497180523 0.223105786 2.08897836 0.101076918 4.39009284"></polygon>
|
||||
</g>
|
||||
<g id="Rectangle-371">
|
||||
<use fill="#F0F2F5" fill-rule="evenodd" xlink:href="#path-38"></use>
|
||||
<path stroke="#A3B1BF" stroke-width="1.62" d="M18.4541667,9.31638699 L18.4541667,21.7961161 L41.6574976,19.7900592 C41.8219325,19.7734468 42.0191667,19.5280875 42.0191667,19.236911 L42.0191667,11.875589 C42.0191667,11.5822335 41.824213,11.3392839 41.6691435,11.3235325 L18.4541667,9.31638699 Z"></path>
|
||||
</g>
|
||||
<g id="Group-6" filter="url(#filter-39)" transform="translate(23.000000, 13.000000)">
|
||||
<ellipse id="Oval-191" stroke="#A3B1BF" stroke-width="1.09459459" fill="#F7FAFC" cx="2.19" cy="2.73958333" rx="2.19" ry="2.19166667"></ellipse>
|
||||
<polygon id="Path-301" fill="#A3B1BF" points="3.78100727 4.39009284 1.17151744 0.497180523 0.223105786 2.08897836 0.101076918 4.39009284"></polygon>
|
||||
</g>
|
||||
<g id="Group-6-Copy" filter="url(#filter-40)" transform="translate(33.000000, 13.000000)">
|
||||
<ellipse id="Oval-191" stroke="#A3B1BF" stroke-width="1.09459459" fill="#F7FAFC" cx="2.19" cy="2.73958333" rx="2.19" ry="2.19166667"></ellipse>
|
||||
<polygon id="Path-301" fill="#A3B1BF" points="3.78100727 4.39009284 1.17151744 0.497180523 0.223105786 2.08897836 0.101076918 4.39009284"></polygon>
|
||||
</g>
|
||||
<g id="Rectangle-370">
|
||||
<use fill="black" fill-opacity="1" filter="url(#filter-42)" xlink:href="#path-41"></use>
|
||||
<use fill="#EAEFF3" fill-rule="evenodd" xlink:href="#path-41"></use>
|
||||
<rect stroke="#A3B1BF" stroke-width="1.62" x="13.04" y="7.59958333" width="5.4975" height="15.9133333" rx="1.09459459"></rect>
|
||||
</g>
|
||||
<path d="M13.59875,15.55625 L17.97875,15.55625" id="Line" stroke="#A3B1BF" stroke-width="2.18918919" stroke-linecap="square"></path>
|
||||
</g>
|
||||
<g id="Group-4-Copy" transform="translate(25.000000, 145.000000)">
|
||||
<g id="Rectangle-369">
|
||||
<use fill="black" fill-opacity="1" filter="url(#filter-44)" xlink:href="#path-43"></use>
|
||||
<use fill="#EAEFF3" fill-rule="evenodd" xlink:href="#path-43"></use>
|
||||
<path stroke="#A3B1BF" stroke-width="1.62" d="M14.6441667,30.0879167 L14.6441667,1.02458333 L6.69173423,1.02458333 C3.51191747,1.02458333 0.934166667,3.60233414 0.934166667,6.7821509 L0.934166667,24.3303491 C0.934166667,27.5101659 3.51191747,30.0879167 6.69173423,30.0879167 L14.6441667,30.0879167 Z"></path>
|
||||
</g>
|
||||
<g id="Group-6" filter="url(#filter-45)" transform="translate(6.207500, 6.789583)">
|
||||
<ellipse id="Oval-191" stroke="#A3B1BF" stroke-width="1.09459459" fill="#F7FAFC" cx="2.19" cy="2.73958333" rx="2.19" ry="2.19166667"></ellipse>
|
||||
<polygon id="Path-301" fill="#A3B1BF" points="3.78100727 4.39009284 1.17151744 0.497180523 0.223105786 2.08897836 0.101076918 4.39009284"></polygon>
|
||||
</g>
|
||||
<g id="Group-6" filter="url(#filter-46)" transform="translate(6.543210, 19.181507)">
|
||||
<ellipse id="Oval-191" stroke="#A3B1BF" stroke-width="1.09459459" fill="#F7FAFC" cx="2.19" cy="2.73958333" rx="2.19" ry="2.19166667"></ellipse>
|
||||
<polygon id="Path-301" fill="#A3B1BF" points="3.78100727 4.39009284 1.17151744 0.497180523 0.223105786 2.08897836 0.101076918 4.39009284"></polygon>
|
||||
</g>
|
||||
<g id="Rectangle-371">
|
||||
<use fill="#F0F2F5" fill-rule="evenodd" xlink:href="#path-47"></use>
|
||||
<path stroke="#A3B1BF" stroke-width="1.62" d="M18.4541667,9.31638699 L18.4541667,21.7961161 L41.6574976,19.7900592 C41.8219325,19.7734468 42.0191667,19.5280875 42.0191667,19.236911 L42.0191667,11.875589 C42.0191667,11.5822335 41.824213,11.3392839 41.6691435,11.3235325 L18.4541667,9.31638699 Z"></path>
|
||||
</g>
|
||||
<g id="Group-6" filter="url(#filter-48)" transform="translate(23.000000, 13.000000)">
|
||||
<ellipse id="Oval-191" stroke="#A3B1BF" stroke-width="1.09459459" fill="#F7FAFC" cx="2.19" cy="2.73958333" rx="2.19" ry="2.19166667"></ellipse>
|
||||
<polygon id="Path-301" fill="#A3B1BF" points="3.78100727 4.39009284 1.17151744 0.497180523 0.223105786 2.08897836 0.101076918 4.39009284"></polygon>
|
||||
</g>
|
||||
<g id="Group-6-Copy" filter="url(#filter-49)" transform="translate(33.000000, 13.000000)">
|
||||
<ellipse id="Oval-191" stroke="#A3B1BF" stroke-width="1.09459459" fill="#F7FAFC" cx="2.19" cy="2.73958333" rx="2.19" ry="2.19166667"></ellipse>
|
||||
<polygon id="Path-301" fill="#A3B1BF" points="3.78100727 4.39009284 1.17151744 0.497180523 0.223105786 2.08897836 0.101076918 4.39009284"></polygon>
|
||||
</g>
|
||||
<g id="Rectangle-370">
|
||||
<use fill="black" fill-opacity="1" filter="url(#filter-51)" xlink:href="#path-50"></use>
|
||||
<use fill="#EAEFF3" fill-rule="evenodd" xlink:href="#path-50"></use>
|
||||
<rect stroke="#A3B1BF" stroke-width="1.62" x="13.04" y="7.59958333" width="5.4975" height="15.9133333" rx="1.09459459"></rect>
|
||||
</g>
|
||||
<path d="M13.59875,15.55625 L17.97875,15.55625" id="Line" stroke="#A3B1BF" stroke-width="2.18918919" stroke-linecap="square"></path>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group-17" transform="translate(135.185185, 131.500000)">
|
||||
<path d="M22.4835494,46.23099 C10.0861375,46.23099 0.0360493827,36.1732534 0.0360493827,23.7664066 C0.0360493827,11.3595599 10.0861375,1.30182331 22.4835494,1.30182331 C34.8809613,1.30182331 44.9310494,11.3595599 44.9310494,23.7664066 C44.9310494,36.1732534 34.8809613,46.23099 22.4835494,46.23099 Z M22.4835494,39.65599 C31.2524505,39.65599 38.3610494,32.5419812 38.3610494,23.7664066 C38.3610494,14.9908321 31.2524505,7.87682331 22.4835494,7.87682331 C13.7146483,7.87682331 6.60604938,14.9908321 6.60604938,23.7664066 C6.60604938,32.5419812 13.7146483,39.65599 22.4835494,39.65599 Z" id="Oval-190" fill-opacity="0.3" fill="#A3B1BF"></path>
|
||||
<mask id="mask-53" fill="white">
|
||||
<use xlink:href="#path-52"></use>
|
||||
</mask>
|
||||
<g id="Mask">
|
||||
<use fill="black" fill-opacity="1" filter="url(#filter-54)" xlink:href="#path-52"></use>
|
||||
<use stroke="#A3B1BF" stroke-width="1.09459459" fill="#A3B1BF" fill-rule="evenodd" xlink:href="#path-52"></use>
|
||||
</g>
|
||||
<g id="Group-7" transform="translate(0.360494, 0.078598)" fill="#98A5B3">
|
||||
<path d="M20.5636489,0.927088888 C22.1113303,0.589405992 23.7186545,0.411496914 25.3675,0.411496914 C37.7649119,0.411496914 47.815,10.4692335 47.815,22.8760802 C47.815,33.7386653 40.1110508,42.8005273 29.8728116,44.8880725 L27.4696515,38.6276265 C35.2448963,37.5983622 41.245,30.9384541 41.245,22.8760802 C41.245,14.1005057 34.1364011,6.98649691 25.3675,6.98649691 C22.0362626,6.98649691 18.9446369,8.01317718 16.3913275,9.76760576 L15.30877,6.94744709 L20.5636489,0.927088888 Z" id="Oval-190"></path>
|
||||
</g>
|
||||
<path d="M26.802716,45.1351566 C14.4053041,45.1351566 4.35521605,35.0774201 4.35521605,22.6705733 C4.35521605,10.2637265 14.4053041,0.20598998 26.802716,0.20598998 C39.200128,0.20598998 49.250216,10.2637265 49.250216,22.6705733 C49.250216,35.0774201 39.200128,45.1351566 26.802716,45.1351566 Z M26.802716,38.5601566 C35.5716172,38.5601566 42.680216,31.4461479 42.680216,22.6705733 C42.680216,13.8949988 35.5716172,6.78098998 26.802716,6.78098998 C18.0338149,6.78098998 10.925216,13.8949988 10.925216,22.6705733 C10.925216,31.4461479 18.0338149,38.5601566 26.802716,38.5601566 Z" id="Oval-190" fill="#A3B1BF"></path>
|
||||
<path d="M37.5685802,6.47400902 C37.5685802,6.47400902 40.3560433,8.0639828 43.0005786,12.4958138 C45.6451139,16.9276447 45.9870813,21.4863845 45.9870813,21.4863845" id="Line" stroke="#F7FAFC" stroke-width="1.62" stroke-linecap="round"></path>
|
||||
<g id="Oval-199">
|
||||
<use fill="black" fill-opacity="1" filter="url(#filter-56)" xlink:href="#path-55"></use>
|
||||
<use fill="#A3B1BF" fill-rule="evenodd" xlink:href="#path-55"></use>
|
||||
</g>
|
||||
<path d="M27.0403924,24.1861178 C28.3842853,24.1861178 29.4737257,23.0958483 29.4737257,21.7509326 C29.4737257,20.406017 28.3842853,19.3157475 27.0403924,19.3157475 C27.0403924,19.3157475 27.6699621,20.406017 27.6699621,21.7509326 C27.6699621,23.0958483 27.0403924,24.1861178 27.0403924,24.1861178 Z" id="Oval-199" fill="#F7FAFC" transform="translate(28.257059, 21.750933) rotate(-43.000000) translate(-28.257059, -21.750933) "></path>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 54 KiB |
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user