feat: 项目基础框架+配置+Kernel
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
|
||||
|
||||
<div class="layui-form" lay-filter="layuiadmin-form-admin" style="padding: 20px 30px 0 0;">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">角色名称</label>
|
||||
<div class="layui-input-inline">
|
||||
<script type="text/html" template>
|
||||
<input type="text" name="name" value="" lay-verify="required" placeholder="请输入角色名称" autocomplete="off" class="layui-input">
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">是否为超级管理员</label>
|
||||
<div class="layui-input-inline">
|
||||
<script type="text/html" template>
|
||||
<select name="is_super">
|
||||
<option value="0" onselect="selected" >否</option>
|
||||
<option value="1" >是</option>
|
||||
</select>
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"></label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="button" lay-submit lay-filter="LAY-user-back-submit" value="确认" class="layui-btn">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
layui.use(['admin', 'form'], function(){
|
||||
var $ = layui.$
|
||||
,form = layui.form;
|
||||
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,138 @@
|
||||
|
||||
|
||||
<title>后台管理员</title>
|
||||
|
||||
<div class="layui-card layadmin-header">
|
||||
<div class="layui-breadcrumb" lay-filter="breadcrumb">
|
||||
<a lay-href="">主页</a>
|
||||
<a><cite>用户</cite></a>
|
||||
<a><cite>后台管理员</cite></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<div style="padding-bottom: 10px;">
|
||||
<!--<button class="layui-btn layuiadmin-btn-admin" data-type="batchdel">删除</button>-->
|
||||
<button class="layui-btn layuiadmin-btn-admin" data-type="add">添加代理商角色</button>
|
||||
</div>
|
||||
|
||||
<table id="LAY-user-back-agentrole" lay-filter="LAY-user-back-agentrole"></table>
|
||||
<!--<script type="text/html" id="table-useradmin-webuser">-->
|
||||
<!--<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit-role"></i>修改权限</a>-->
|
||||
<!--<!–<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="addsonagent"><i class="layui-icon layui-icon-add-1"></i>添加其下级代理</a>–>-->
|
||||
<!--<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="getsons"><i class="layui-icon layui-icon-edit"></i>修改</a>-->
|
||||
<!--<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="this-sons"><i class="layui-icon layui-icon-delete"></i>删除</a>-->
|
||||
<!--</script>-->
|
||||
<script type="text/html" id="buttonTpl">
|
||||
{{# if(d.check == true){ }}
|
||||
<button class="layui-btn layui-btn-xs">已审核</button>
|
||||
{{# } else { }}
|
||||
<button class="layui-btn layui-btn-primary layui-btn-xs">未审核</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
<script type="text/html" id="table-useradmin-admin">
|
||||
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a>
|
||||
{{# if(d.role == '超级管理员'){ }}
|
||||
<a class="layui-btn layui-btn-disabled layui-btn-xs"><i class="layui-icon layui-icon-delete"></i>删除</a>
|
||||
{{# } else { }}
|
||||
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>
|
||||
{{# } }}
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
layui.use('useradmin', layui.factory('useradmin')).use(['admin', 'useradmin', 'table'], function(){
|
||||
var $ = layui.$
|
||||
,admin = layui.admin
|
||||
,view = layui.view
|
||||
,table = layui.table
|
||||
,form = layui.form;
|
||||
|
||||
form.render(null, 'layadmin-useradmin-formlist');
|
||||
|
||||
//监听搜索
|
||||
form.on('submit(LAY-user-back-search)', function(data){
|
||||
var field = data.field;
|
||||
|
||||
//执行重载
|
||||
table.reload('LAY-user-back-agentrole', {
|
||||
where: field
|
||||
});
|
||||
});
|
||||
|
||||
//事件
|
||||
var active = {
|
||||
batchdel: function(){
|
||||
var checkStatus = table.checkStatus('LAY-user-back-agentrole')
|
||||
,checkData = checkStatus.data; //得到选中的数据
|
||||
|
||||
if(checkData.length === 0){
|
||||
return layer.msg('请选择数据');
|
||||
}
|
||||
|
||||
layer.prompt({
|
||||
formType: 1
|
||||
,title: '敏感操作,请验证口令'
|
||||
}, function(value, index){
|
||||
layer.close(index);
|
||||
|
||||
layer.confirm('确定删除吗?', function(index) {
|
||||
|
||||
//执行 Ajax 后重载
|
||||
/*
|
||||
admin.req({
|
||||
url: 'xxx'
|
||||
//,……
|
||||
});
|
||||
*/
|
||||
table.reload('LAY-user-back-agentrole');
|
||||
layer.msg('已删除');
|
||||
});
|
||||
});
|
||||
}
|
||||
,add: function(){
|
||||
admin.popup({
|
||||
title: '添加代理商角色'
|
||||
,area: ['420px', '450px']
|
||||
,id: 'LAY-popup-useradmin-add'
|
||||
,success: function(layero, index){
|
||||
view(this.id).render('authority/adminform').done(function(){
|
||||
form.render(null, 'layuiadmin-form-admin');
|
||||
|
||||
//监听提交
|
||||
form.on('submit(LAY-user-back-submit)', function(data){
|
||||
var field = data.field; //获取提交的字段
|
||||
|
||||
//提交 Ajax 成功后,关闭当前弹层并重载表格
|
||||
//$.ajax({});
|
||||
admin.req( {
|
||||
type : "POST",
|
||||
url : 'agent/manager/role_add',
|
||||
dataType : "json",
|
||||
data : field,
|
||||
done : function(result) { //返回数据根据结果进行相应的处理
|
||||
console.log(result);
|
||||
layui.layer.msg(result.msg, {icon: 6 });
|
||||
//提交 Ajax 成功后,关闭当前弹层并重载表格
|
||||
layui.table.reload('LAY-user-back-agentrole'); //重载表格
|
||||
layui.layer.close(index); //执行关闭
|
||||
}
|
||||
});
|
||||
layui.table.reload('LAY-user-back-agentrole'); //重载表格
|
||||
layer.close(index); //执行关闭
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
$('.layui-btn.layuiadmin-btn-admin').on('click', function(){
|
||||
var type = $(this).data('type');
|
||||
active[type] ? active[type].call(this) : '';
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,140 @@
|
||||
|
||||
|
||||
<title>角色管理</title>
|
||||
|
||||
<div class="layui-card layadmin-header">
|
||||
<div class="layui-breadcrumb" lay-filter="breadcrumb">
|
||||
<a lay-href="">主页</a>
|
||||
<a><cite>用户</cite></a>
|
||||
<a><cite>代理商角色管理</cite></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-card">
|
||||
<div class="layui-form layui-card-header layuiadmin-card-header-auto" lay-filter="layadmin-useradminrole-formlist">
|
||||
<div class="layui-form-item">
|
||||
<!--<div class="layui-inline">-->
|
||||
<!--角色筛选-->
|
||||
<!--</div>-->
|
||||
<!--<div class="layui-inline">-->
|
||||
<!--<select name="rolename" lay-filter="LAY-user-adminrole-type">-->
|
||||
<!--<option value="-1">全部角色</option>-->
|
||||
<!--<option value="0">管理员</option>-->
|
||||
<!--<option value="1">超级管理员</option>-->
|
||||
<!--<option value="2">纠错员</option>-->
|
||||
<!--<option value="3">采购员</option>-->
|
||||
<!--<option value="4">推销员</option>-->
|
||||
<!--<option value="5">运营人员</option>-->
|
||||
<!--<option value="6">编辑</option>-->
|
||||
<!--</select>-->
|
||||
<!--</div>-->
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-card-body">
|
||||
<div style="padding-bottom: 10px;">
|
||||
<!--<button class="layui-btn layuiadmin-btn-role" data-type="batchdel">删除</button>-->
|
||||
<button class="layui-btn layuiadmin-btn-role" data-type="add">添加</button>
|
||||
</div>
|
||||
|
||||
<table id="LAY-user-back-role" lay-filter="LAY-user-back-role"></table>
|
||||
<script type="text/html" id="buttonTpl">
|
||||
{{# if(d.check == true){ }}
|
||||
<button class="layui-btn layui-btn-xs">已审核</button>
|
||||
{{# } else { }}
|
||||
<button class="layui-btn layui-btn-primary layui-btn-xs">未审核</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
<script type="text/html" id="table-useradmin-admin">
|
||||
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a>
|
||||
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
layui.use('useradmin', layui.factory('useradmin')).use(['admin', 'useradmin', 'table'], function(){
|
||||
var $ = layui.$
|
||||
,admin = layui.admin
|
||||
,view = layui.view
|
||||
,table = layui.table
|
||||
,form = layui.form;
|
||||
|
||||
form.render(null, 'layadmin-useradminrole-formlist');
|
||||
|
||||
//搜索角色
|
||||
form.on('select(LAY-user-adminrole-type)', function(data){
|
||||
//执行重载
|
||||
table.reload('LAY-user-back-role', {
|
||||
where: {
|
||||
role: data.value
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
//事件
|
||||
var active = {
|
||||
batchdel: function(){
|
||||
var checkStatus = table.checkStatus('LAY-user-back-role')
|
||||
,checkData = checkStatus.data; //得到选中的数据
|
||||
|
||||
if(checkData.length === 0){
|
||||
return layer.msg('请选择数据');
|
||||
}
|
||||
|
||||
layer.confirm('确定删除吗?', function(index) {
|
||||
//执行 Ajax 后重载
|
||||
|
||||
/*
|
||||
admin.req({
|
||||
url: 'xxx'
|
||||
//,……
|
||||
});
|
||||
*/
|
||||
table.reload('LAY-user-back-role');
|
||||
layer.msg('已删除');
|
||||
});
|
||||
},
|
||||
add: function(){
|
||||
admin.popup({
|
||||
title: '添加新角色'
|
||||
,area: ['500px', '480px']
|
||||
,id: 'LAY-popup-user-add'
|
||||
,success: function(layero, index){
|
||||
view(this.id).render('authority/roleform1').done(function(){
|
||||
form.render(null, 'layuiadmin-form-role');
|
||||
|
||||
//监听提交
|
||||
form.on('submit(LAY-user-role-submit)', function(data){
|
||||
var field = data.field; //获取提交的字段
|
||||
|
||||
//提交 Ajax 成功后,关闭当前弹层并重载表格
|
||||
//$.ajax({});
|
||||
admin.req( {
|
||||
type : "POST",
|
||||
url : 'agent/manager/role_add',
|
||||
dataType : "json",
|
||||
data : field,
|
||||
done : function(result) { //返回数据根据结果进行相应的处理
|
||||
console.log(result);
|
||||
layui.layer.msg(result.msg, {icon: 6 });
|
||||
//提交 Ajax 成功后,关闭当前弹层并重载表格
|
||||
layui.table.reload('LAY-user-back-role'); //重载表格
|
||||
layui.layer.close(index); //执行关闭
|
||||
}
|
||||
});
|
||||
layui.table.reload('LAY-user-back-role'); //重载表格
|
||||
layer.close(index); //执行关闭
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
$('.layui-btn.layuiadmin-btn-role').on('click', function(){
|
||||
var type = $(this).data('type');
|
||||
active[type] ? active[type].call(this) : '';
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,163 @@
|
||||
|
||||
|
||||
<title>角色管理</title>
|
||||
|
||||
<div class="layui-card layadmin-header">
|
||||
<div class="layui-breadcrumb" lay-filter="breadcrumb">
|
||||
<a lay-href="">主页</a>
|
||||
<a><cite>用户</cite></a>
|
||||
<a><cite>代理商管理员管理</cite></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-card">
|
||||
<div class="layui-form layui-card-header layuiadmin-card-header-auto" lay-filter="layadmin-useradminrole-formlist">
|
||||
<div class="layui-form-item">
|
||||
<!--<div class="layui-inline">-->
|
||||
<!--角色筛选-->
|
||||
<!--</div>-->
|
||||
<!--<div class="layui-inline">-->
|
||||
<!--<select name="rolename" lay-filter="LAY-user-adminrole-type">-->
|
||||
<!--<option value="-1">全部角色</option>-->
|
||||
<!--<option value="0">管理员</option>-->
|
||||
<!--<option value="1">超级管理员</option>-->
|
||||
<!--<option value="2">纠错员</option>-->
|
||||
<!--<option value="3">采购员</option>-->
|
||||
<!--<option value="4">推销员</option>-->
|
||||
<!--<option value="5">运营人员</option>-->
|
||||
<!--<option value="6">编辑</option>-->
|
||||
<!--</select>-->
|
||||
<!--</div>-->
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-card-body">
|
||||
<div style="padding-bottom: 10px;">
|
||||
<!--<button class="layui-btn layuiadmin-btn-role" data-type="batchdel">删除</button>-->
|
||||
<button class="layui-btn layuiadmin-btn-role" data-type="add">添加代理商管理员</button>
|
||||
</div>
|
||||
|
||||
<table id="LAY-user-back-role_GLY" lay-filter="LAY-user-back-role_GLY"></table>
|
||||
<script type="text/html" id="buttonTpl">
|
||||
{{# if(d.check == true){ }}
|
||||
<button class="layui-btn layui-btn-xs">已审核</button>
|
||||
{{# } else { }}
|
||||
<button class="layui-btn layui-btn-primary layui-btn-xs">未审核</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
<script type="text/html" id="table-useradmin-admin">
|
||||
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a>
|
||||
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
layui.use('useradmin', layui.factory('useradmin')).use(['admin', 'useradmin', 'table'], function(){
|
||||
var $ = layui.$
|
||||
,admin = layui.admin
|
||||
,view = layui.view
|
||||
,table = layui.table
|
||||
,form = layui.form;
|
||||
|
||||
form.render(null, 'layadmin-useradminrole-formlist');
|
||||
|
||||
//搜索角色
|
||||
form.on('select(LAY-user-adminrole-type)', function(data){
|
||||
//执行重载
|
||||
table.reload('LAY-user-back-role_GLY', {
|
||||
where: {
|
||||
role: data.value
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
//事件
|
||||
var active = {
|
||||
batchdel: function(){
|
||||
var checkStatus = table.checkStatus('LAY-user-back-role_GLY')
|
||||
,checkData = checkStatus.data; //得到选中的数据
|
||||
|
||||
if(checkData.length === 0){
|
||||
return layer.msg('请选择数据');
|
||||
}
|
||||
|
||||
layer.confirm('确定删除吗?', function(index) {
|
||||
|
||||
//执行 Ajax 后重载
|
||||
/*
|
||||
admin.req({
|
||||
url: 'xxx'
|
||||
//,……
|
||||
});
|
||||
*/
|
||||
table.reload('LAY-user-back-role_GLY');
|
||||
layer.msg('已删除');
|
||||
});
|
||||
},
|
||||
add: function(){
|
||||
|
||||
admin.popup({
|
||||
title: '添加代理商管理员'
|
||||
,area: ['500px', '480px']
|
||||
,id: 'LAY-popup-user-add'
|
||||
,success: function(layero, index){
|
||||
var that = this;
|
||||
admin.req( {
|
||||
type : "POST",
|
||||
url : 'agent/agentadmin_add_show',
|
||||
dataType : "json",
|
||||
data : {},
|
||||
done : function(result) { //返回数据根据结果进行相应的处理
|
||||
// console.log(result);
|
||||
var data = result.data;
|
||||
view(that.id).render('authority/roleform2',data).done(function(res){
|
||||
|
||||
|
||||
|
||||
form.render(null, 'layuiadmin-form-role');
|
||||
console.log(data);//add tian
|
||||
|
||||
//监听提交
|
||||
form.on('submit(LAY-user-role-submit)', function(data){
|
||||
var field = data.field; //获取提交的字段
|
||||
console.log(data);//add tian
|
||||
|
||||
//提交 Ajax 成功后,关闭当前弹层并重载表格
|
||||
//$.ajax({});
|
||||
admin.req( {
|
||||
type : "POST",
|
||||
url : 'agent/agentadmin_add',
|
||||
dataType : "json",
|
||||
data : field,
|
||||
done : function(result) { //返回数据根据结果进行相应的处理
|
||||
console.log(result);
|
||||
layui.layer.msg(result.msg, {icon: 6 });
|
||||
//提交 Ajax 成功后,关闭当前弹层并重载表格
|
||||
layui.table.reload('LAY-user-back-role_GLY'); //重载表格
|
||||
layui.layer.close(index); //执行关闭
|
||||
}
|
||||
});
|
||||
layui.table.reload('LAY-user-back-role_GLY'); //重载表格
|
||||
layer.close(index); //执行关闭
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
$('.layui-btn.layuiadmin-btn-role').on('click', function(){
|
||||
var type = $(this).data('type');
|
||||
active[type] ? active[type].call(this) : '';
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,37 @@
|
||||
|
||||
|
||||
<div class="layui-form" lay-filter="layuiadmin-form-role" style="padding: 20px 30px 0 0;">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">角色名称</label>
|
||||
<div class="layui-input-inline">
|
||||
<script type="text/html" template>
|
||||
<input type="text" name="name" value="" lay-verify="required" placeholder="请输入角色名称" autocomplete="off" class="layui-input">
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">是否为超级管理员</label>
|
||||
<div class="layui-input-inline">
|
||||
<script type="text/html" template>
|
||||
<select name="is_super">
|
||||
<option value="0" onselect="selected" >否</option>
|
||||
<option value="1" >是</option>
|
||||
</select>
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"></label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="button" lay-submit lay-filter="LAY-user-role-submit" value="确认" class="layui-btn">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
layui.use(['admin', 'form'], function(){
|
||||
var $ = layui.$
|
||||
,form = layui.form;
|
||||
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,42 @@
|
||||
|
||||
|
||||
<div class="layui-form" lay-filter="layuiadmin-form-role" style="padding: 20px 30px 0 0;">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">角色名称</label>
|
||||
<div class="layui-input-inline">
|
||||
<script type="text/html" template>
|
||||
<input type="text" name="name" value="{{ d.params.name || '' }}" lay-verify="required" placeholder="请输入角色名称" autocomplete="off" class="layui-input">
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/html" template>
|
||||
<input type="text" name="id" value="{{ d.params.id}}" lay-verify="required" style="display: none;" autocomplete="off" class="layui-input">
|
||||
</script>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">是否为超级管理员</label>
|
||||
<div class="layui-input-inline">
|
||||
<script type="text/html" template>
|
||||
<select name="is_super">
|
||||
|
||||
<option value="0" {{# if(d.params.is_super == 0){ }} selected {{# } }} >否</option>
|
||||
<option value="1" {{# if(d.params.is_super == 1){ }} selected {{# } }} >是</option>
|
||||
</select>
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"></label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="button" lay-submit lay-filter="LAY-user-role-submit_edit" value="确认" class="layui-btn">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
layui.use(['admin', 'form'], function(){
|
||||
var $ = layui.$
|
||||
,form = layui.form;
|
||||
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,47 @@
|
||||
|
||||
|
||||
<div class="layui-form" lay-filter="layuiadmin-form-role" style="padding: 20px 30px 0 0;">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">用户名</label>
|
||||
<div class="layui-input-inline">
|
||||
<script type="text/html" template>
|
||||
<input type="text" name="username" value="" lay-verify="required" placeholder="请输入管理员用户名" autocomplete="off" class="layui-input">
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">密码</label>
|
||||
<div class="layui-input-inline">
|
||||
<script type="text/html" template>
|
||||
<input type="text" name="password" value="" lay-verify="required" placeholder="请输入密码" autocomplete="off" class="layui-input">
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">角色</label>
|
||||
<div class="layui-input-inline">
|
||||
<script type="text/html" template>
|
||||
<select name="role_id">
|
||||
{{# layui.each(d.params, function(index, item){ }}
|
||||
<option value="{{item.id}}" onselect="selected" >{{item.name}}</option>
|
||||
{{# }); }}
|
||||
</select>
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"></label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="button" lay-submit lay-filter="LAY-user-role-submit" value="确认" class="layui-btn">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
layui.use(['admin', 'form'], function(){
|
||||
var $ = layui.$
|
||||
,form = layui.form;
|
||||
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,47 @@
|
||||
|
||||
|
||||
<div class="layui-form" lay-filter="layuiadmin-form-role" style="padding: 20px 30px 0 0;">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">用户名</label>
|
||||
<div class="layui-input-inline">
|
||||
<script type="text/html" template>
|
||||
<input type="text" name="username" value="{{ d.params.username || '' }}" lay-verify="required" placeholder="请输入管理员用户名" autocomplete="off" class="layui-input">
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">密码</label>
|
||||
<div class="layui-input-inline">
|
||||
<script type="text/html" template>
|
||||
<input type="text" name="password" value="" lay-verify="required" placeholder="请输入密码" autocomplete="off" class="layui-input">
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">角色</label>
|
||||
<div class="layui-input-inline">
|
||||
<script type="text/html" template>
|
||||
<select name="role_id">
|
||||
{{# layui.each(d.params, function(index, item){ }}
|
||||
<option value="{{item.id}}" onselect="selected" >{{item.name}}</option>
|
||||
{{# }); }}
|
||||
</select>
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"></label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="button" lay-submit lay-filter="LAY-user-role-submit" value="确认" class="layui-btn">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
layui.use(['admin', 'form'], function(){
|
||||
var $ = layui.$
|
||||
,form = layui.form;
|
||||
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,165 @@
|
||||
<title>代理商</title>
|
||||
|
||||
<div class="layui-card layadmin-header">
|
||||
<div class="layui-breadcrumb" lay-filter="breadcrumb">
|
||||
<a lay-href="">主页</a>
|
||||
<a><cite>订单与结算</cite></a>
|
||||
<a><cite>出入金列表</cite></a>
|
||||
<a><cite>充币列表</cite></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-card">
|
||||
<div class="layui-form layui-card-header layuiadmin-card-header-auto" lay-filter="layadmin-userfront-formlist">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">币种</label>
|
||||
<div class="layui-input-block" id="currency_view" style="width: 90px;">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">用户名</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="account_number" placeholder="请输入" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">所属代理</label>
|
||||
<div class="layui-input-block" id="child_agent_view">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<button class="layui-btn layuiadmin-btn-useradmin" lay-submit lay-filter="LAY-user-front-search">
|
||||
<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-card-body">
|
||||
<table id="LAY-user-manage" lay-filter="LAY-user-manage"></table>
|
||||
<script type="text/html" id="table-useradmin-webuser">
|
||||
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="info">查看关联订单</a>
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/html" id="currency_templet">
|
||||
<select name="currency_id" lay-verify="">
|
||||
<option value="-1">全部</option>
|
||||
{{# layui.each(d.data, function (index, item) { }}
|
||||
<option value="{{item.id}}">{{item.name}}</option>
|
||||
{{# }); }}
|
||||
</select>
|
||||
</script>
|
||||
<script type="text/html" id="child_agent_templet">
|
||||
<select name="belong_agent" lay-verify="" lay-search>
|
||||
<option value="">全部</option>
|
||||
{{# layui.each(d.data, function (index, item) { }}
|
||||
<option value="{{item.username}}">{{item.username}}</option>
|
||||
{{# }); }}
|
||||
</select>
|
||||
</script>
|
||||
|
||||
|
||||
<script>
|
||||
layui.use(['admin', 'useradmin', 'table' , 'layer', 'laytpl'], function() {
|
||||
var $ = layui.$
|
||||
,admin = layui.admin
|
||||
,view = layui.view
|
||||
,table = layui.table
|
||||
,form = layui.form
|
||||
,laytpl = layui.laytpl
|
||||
|
||||
admin.req({
|
||||
url: "/agent/common/legal_currency"
|
||||
,method: 'GET'
|
||||
,done: function (res) {
|
||||
var currency_templet = $('#currency_templet').html();
|
||||
laytpl(currency_templet).render(res, function (html) {
|
||||
$('#currency_view').html(html);
|
||||
form.render('select');
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
admin.req({
|
||||
url: '/agent/user/all_child_agent'
|
||||
,method: 'GET'
|
||||
,done: function (res) {
|
||||
var child_agent_templet = $('#child_agent_templet').html();
|
||||
laytpl(child_agent_templet).render(res, function (html) {
|
||||
$('#child_agent_view').html(html);
|
||||
form.render('select');
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
//用户管理
|
||||
table.render({
|
||||
elem: '#LAY-user-manage'
|
||||
,method : 'get'
|
||||
,url: '/agent/capital/recharge'
|
||||
,toolbar: true
|
||||
,totalRow: true
|
||||
,cols: [[
|
||||
{type: 'checkbox', fixed: 'left'}
|
||||
,{field: 'id', width: 60, title: 'ID', sort: true }
|
||||
,{field: 'currency_name', title: '币种', width: 90}
|
||||
,{field: 'account_number', title: '用户名', width: 120, totalRowText: '小计'}
|
||||
,{field: 'belong_agent_name', title: '所属代理', width: 120}
|
||||
,{field: 'value', title: '充币数量', width: 150, totalRow: true}
|
||||
,{field: 'info', title: '说明', width: 200}
|
||||
,{field: 'created_time', title: '到账时间', width: 170}
|
||||
]]
|
||||
,page: true
|
||||
,limit: 30
|
||||
,height: 'full-240'
|
||||
,text: '对不起,加载出现异常!'
|
||||
,headers: {
|
||||
//通过 request 头传递
|
||||
access_token: layui.data('layuiAdmin').access_token
|
||||
}
|
||||
,where: {
|
||||
//通过参数传递
|
||||
access_token: layui.data('layuiAdmin').access_token
|
||||
}
|
||||
,done: function(res) { //这里要说明一下:done 是只有 response 的 code 正常才会执行。而 succese 则是只要 http 为 200 就会执行
|
||||
if (res !== 0 ){
|
||||
if (res.code === 1001) {
|
||||
//清空本地记录的 token,并跳转到登入页
|
||||
admin.exit();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
form.render(null, 'layadmin-userfront-formlist');
|
||||
|
||||
//监听搜索
|
||||
form.on('submit(LAY-user-front-search)', function(data){
|
||||
var field = data.field;
|
||||
|
||||
//执行重载
|
||||
table.reload('LAY-user-manage', {
|
||||
where: field
|
||||
,page: {
|
||||
curr: 1 //重新从第 1 页开始
|
||||
}
|
||||
,done: function(res){ //这里要说明一下:done 是只有 response 的 code 正常才会执行。而 succese 则是只要 http 为 200 就会执行
|
||||
|
||||
if (res.code === 1001) {
|
||||
//清空本地记录的 token,并跳转到登入页
|
||||
admin.exit();
|
||||
}
|
||||
|
||||
if (res.code === 1){
|
||||
layer.msg(res.msg ,{icon : 5});
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,167 @@
|
||||
<title>代理商</title>
|
||||
|
||||
<div class="layui-card layadmin-header">
|
||||
<div class="layui-breadcrumb" lay-filter="breadcrumb">
|
||||
<a lay-href="">主页</a>
|
||||
<a><cite>订单与结算</cite></a>
|
||||
<a><cite>出入金列表</cite></a>
|
||||
<a><cite>提币列表</cite></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-card">
|
||||
<div class="layui-form layui-card-header layuiadmin-card-header-auto" lay-filter="layadmin-userfront-formlist">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">币种</label>
|
||||
<div class="layui-input-block" id="currency_view" style="width: 90px;">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">用户名</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="account_number" placeholder="请输入" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">所属代理</label>
|
||||
<div class="layui-input-block" id="child_agent_view">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<button class="layui-btn layuiadmin-btn-useradmin" lay-submit lay-filter="LAY-user-front-search">
|
||||
<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-card-body">
|
||||
<table id="LAY-user-manage" lay-filter="LAY-user-manage"></table>
|
||||
<script type="text/html" id="table-useradmin-webuser">
|
||||
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="info">查看关联订单</a>
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/html" id="currency_templet">
|
||||
<select name="currency_id" lay-verify="">
|
||||
<option value="-1">全部</option>
|
||||
{{# layui.each(d.data, function (index, item) { }}
|
||||
<option value="{{item.id}}">{{item.name}}</option>
|
||||
{{# }); }}
|
||||
</select>
|
||||
</script>
|
||||
<script type="text/html" id="child_agent_templet">
|
||||
<select name="belong_agent" lay-verify="" lay-search>
|
||||
<option value="">全部</option>
|
||||
{{# layui.each(d.data, function (index, item) { }}
|
||||
<option value="{{item.username}}">{{item.username}}</option>
|
||||
{{# }); }}
|
||||
</select>
|
||||
</script>
|
||||
|
||||
|
||||
<script>
|
||||
layui.use(['admin', 'useradmin', 'table' , 'layer', 'laytpl'], function() {
|
||||
var $ = layui.$
|
||||
,admin = layui.admin
|
||||
,view = layui.view
|
||||
,table = layui.table
|
||||
,form = layui.form
|
||||
,laytpl = layui.laytpl
|
||||
|
||||
admin.req({
|
||||
url: "/agent/common/legal_currency"
|
||||
,method: 'GET'
|
||||
,done: function (res) {
|
||||
var currency_templet = $('#currency_templet').html();
|
||||
laytpl(currency_templet).render(res, function (html) {
|
||||
$('#currency_view').html(html);
|
||||
form.render('select');
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
admin.req({
|
||||
url: '/agent/user/all_child_agent'
|
||||
,method: 'GET'
|
||||
,done: function (res) {
|
||||
var child_agent_templet = $('#child_agent_templet').html();
|
||||
laytpl(child_agent_templet).render(res, function (html) {
|
||||
$('#child_agent_view').html(html);
|
||||
form.render('select');
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
//用户管理
|
||||
table.render({
|
||||
elem: '#LAY-user-manage'
|
||||
,method : 'get'
|
||||
,url: '/agent/capital/withdraw'
|
||||
,toolbar: true
|
||||
,totalRow: true
|
||||
,cols: [[
|
||||
{type: 'checkbox', fixed: 'left'}
|
||||
,{field: 'id', width: 60, title: 'ID', sort: true }
|
||||
,{field: 'currency_name', title: '币种', width: 90}
|
||||
,{field: 'account_number', title: '用户名', width: 120, totalRowText: '小计'}
|
||||
,{field: 'belong_agent_name', title: '所属代理', width: 120}
|
||||
,{field: 'number', title: '提币数量', width: 150, totalRow: true}
|
||||
,{field: 'real_number', title: '到账数量', width: 150, totalRow: true}
|
||||
,{field: 'notes', title: '说明', width: 200}
|
||||
,{field: 'create_time', title: '申请时间', width: 170}
|
||||
,{field: 'update_time', title: '通过时间', width: 170}
|
||||
]]
|
||||
,page: true
|
||||
,limit: 30
|
||||
,height: 'full-240'
|
||||
,text: '对不起,加载出现异常!'
|
||||
,headers: {
|
||||
//通过 request 头传递
|
||||
access_token: layui.data('layuiAdmin').access_token
|
||||
}
|
||||
,where: {
|
||||
//通过参数传递
|
||||
access_token: layui.data('layuiAdmin').access_token
|
||||
}
|
||||
,done: function(res) { //这里要说明一下:done 是只有 response 的 code 正常才会执行。而 succese 则是只要 http 为 200 就会执行
|
||||
if (res !== 0 ){
|
||||
if (res.code === 1001) {
|
||||
//清空本地记录的 token,并跳转到登入页
|
||||
admin.exit();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
form.render(null, 'layadmin-userfront-formlist');
|
||||
|
||||
//监听搜索
|
||||
form.on('submit(LAY-user-front-search)', function(data){
|
||||
var field = data.field;
|
||||
|
||||
//执行重载
|
||||
table.reload('LAY-user-manage', {
|
||||
where: field
|
||||
,page: {
|
||||
curr: 1 //重新从第 1 页开始
|
||||
}
|
||||
,done: function(res){ //这里要说明一下:done 是只有 response 的 code 正常才会执行。而 succese 则是只要 http 为 200 就会执行
|
||||
|
||||
if (res.code === 1001) {
|
||||
//清空本地记录的 token,并跳转到登入页
|
||||
admin.exit();
|
||||
}
|
||||
|
||||
if (res.code === 1){
|
||||
layer.msg(res.msg ,{icon : 5});
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,198 @@
|
||||
|
||||
<title>主页二</title>
|
||||
|
||||
<div class="layui-card layadmin-header">
|
||||
<div class="layui-breadcrumb" lay-filter="breadcrumb">
|
||||
<a lay-href="">主页</a>
|
||||
<a><cite>主页二</cite></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-row layui-col-space15">
|
||||
<script type="text/html" template lay-url="/agent/get_statistics">
|
||||
<div class="layui-col-sm6 layui-col-md4">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">
|
||||
杠杠订单结算量
|
||||
<span class="layui-badge layui-bg-blue layuiadmin-badge">总计</span>
|
||||
</div>
|
||||
<div class="layui-card-body layuiadmin-card-list">
|
||||
<p class="layuiadmin-big-font">{{ d.data.settlement }}</p>
|
||||
<!--<p>-->
|
||||
<!--总计访问量-->
|
||||
<!--<span class="layuiadmin-span-color">88万 <i class="layui-icon"></i></span>-->
|
||||
<!--</p>-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<input type="hidden" value="{{ d.data.invite_code }}" name="invite_code" id="invite_code">
|
||||
<div class="layui-col-sm6 layui-col-md4">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">
|
||||
代理商个数
|
||||
<span class="layui-badge layui-bg-cyan layuiadmin-badge">总计</span>
|
||||
</div>
|
||||
<div class="layui-card-body layuiadmin-card-list">
|
||||
<p class="layuiadmin-big-font">{{ d.data.subordinate_agent_num }}</p>
|
||||
<!--<p>-->
|
||||
<!--新下载-->
|
||||
<!--<span class="layuiadmin-span-color">10% <i class="layui-icon"></i></span>-->
|
||||
<!--</p>-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-sm6 layui-col-md4">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">
|
||||
会员总数
|
||||
<span class="layui-badge layui-bg-green layuiadmin-badge">总计</span>
|
||||
</div>
|
||||
<div class="layui-card-body layuiadmin-card-list">
|
||||
<p class="layuiadmin-big-font">{{ d.data.subordinate_user_num }}</p>
|
||||
<!--<p>-->
|
||||
<!--总收入-->
|
||||
<!--<span class="layuiadmin-span-color">*** <i class="layui-icon"></i></span>-->
|
||||
<!--</p>-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
<!--<div class="layui-col-sm6 layui-col-md3">-->
|
||||
<!--<div class="layui-card">-->
|
||||
<!--<div class="layui-card-header">-->
|
||||
<!--活跃用户-->
|
||||
<!--<span class="layui-badge layui-bg-orange layuiadmin-badge">月</span>-->
|
||||
<!--</div>-->
|
||||
<!--<div class="layui-card-body layuiadmin-card-list">-->
|
||||
|
||||
<!--<p class="layuiadmin-big-font">66,666</p>-->
|
||||
<!--<p>-->
|
||||
<!--最近一个月-->
|
||||
<!--<span class="layuiadmin-span-color">15% <i class="layui-icon"></i></span>-->
|
||||
<!--</p>-->
|
||||
<!--</div>-->
|
||||
<!--</div>-->
|
||||
<!--</div>-->
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="layui-col-sm12">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">
|
||||
日订单量
|
||||
</div>
|
||||
<div class="layui-card-body">
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-sm12">
|
||||
<div class="layui-carousel layadmin-carousel layadmin-dataview" data-anim="fade" lay-filter="LAY-index-pagetwo">
|
||||
<div carousel-item id="LAY-index-pagetwo">
|
||||
<div><i class="layui-icon layui-icon-loading1 layadmin-loading"></i></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="../../js/jquery-1.11.1.min.js"></script>
|
||||
<script src="../../js/jquery.qrcode.min.js"></script>
|
||||
<script src="../../js/qrcode.js"></script>
|
||||
|
||||
<script>
|
||||
|
||||
|
||||
layui.define(function(exports) {
|
||||
layui.use('useradmin', layui.factory('useradmin')).use(['admin', 'layer', 'laydate', 'form'], function () {
|
||||
var $ = layui.$
|
||||
, admin = layui.admin
|
||||
, laydate = layui.laydate
|
||||
, form = layui.form;
|
||||
|
||||
admin.req({
|
||||
type: "POST",
|
||||
url: '/agent/day',
|
||||
dataType: "json",
|
||||
data: {type: 'all'},
|
||||
done: function (result) { //返回数据根据结果进行相应的处理
|
||||
//提交 Ajax 成功后,关闭当前弹层并重载图表
|
||||
show_table(result.data);
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
function show_table(returnData) {
|
||||
//区块轮播切换
|
||||
layui.use(['admin', 'carousel'], function () {
|
||||
var $ = layui.$
|
||||
, admin = layui.admin
|
||||
, carousel = layui.carousel
|
||||
, element = layui.element
|
||||
, device = layui.device();
|
||||
|
||||
//轮播切换
|
||||
$('.layadmin-carousel').each(function () {
|
||||
var othis = $(this);
|
||||
carousel.render({
|
||||
elem: this
|
||||
, width: '100%'
|
||||
, arrow: 'none'
|
||||
, interval: othis.data('interval')
|
||||
, autoplay: othis.data('autoplay') === true
|
||||
, trigger: (device.ios || device.android) ? 'click' : 'hover'
|
||||
, anim: othis.data('anim')
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
//柱状图
|
||||
layui.use(['echarts'], function () {
|
||||
var $ = layui.$
|
||||
, echarts = layui.echarts;
|
||||
|
||||
//标准柱状图
|
||||
var echnormcol = [], normcol = [
|
||||
{
|
||||
|
||||
xAxis: {
|
||||
type: 'category',
|
||||
data: returnData.day
|
||||
},
|
||||
yAxis: {
|
||||
type: 'value'
|
||||
},
|
||||
color :["#c23531"],
|
||||
series: [{
|
||||
data: returnData.info,
|
||||
type: 'bar'
|
||||
}]
|
||||
}
|
||||
]
|
||||
, elemNormcol = $('#LAY-index-pagetwo').children('div')
|
||||
, renderNormcol = function (index) {
|
||||
echnormcol[index] = echarts.init(elemNormcol[index], layui.echartsTheme);
|
||||
echnormcol[index].setOption(normcol[index]);
|
||||
window.onresize = echnormcol[index].resize;
|
||||
};
|
||||
if (!elemNormcol[0]) return;
|
||||
renderNormcol(0);
|
||||
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
@@ -0,0 +1,172 @@
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
<div class="layui-header">
|
||||
<!-- 头部区域 -->
|
||||
<ul class="layui-nav layui-layout-left">
|
||||
<li class="layui-nav-item layadmin-flexible" lay-unselect>
|
||||
<a href="javascript:;" layadmin-event="flexible" title="侧边伸缩">
|
||||
<i class="layui-icon layui-icon-shrink-right" id="LAY_app_flexible"></i>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="layui-nav-item" lay-unselect>
|
||||
<a href="javascript:;" layadmin-event="refresh" title="刷新">
|
||||
<i class="layui-icon layui-icon-refresh-3"></i>
|
||||
</a>
|
||||
</li>
|
||||
<li class="layui-nav-item layui-hide-xs" lay-unselect>
|
||||
<input type="text" placeholder="搜索..." autocomplete="off" class="layui-input layui-input-search" layadmin-event="serach" lay-action="template/search/keywords=">
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="layui-nav layui-layout-right" lay-filter="layadmin-layout-right">
|
||||
|
||||
<li class="layui-nav-item layui-hide-xs" lay-unselect>
|
||||
<a href="javascript:;" layadmin-event="theme">
|
||||
<i class="layui-icon layui-icon-theme"></i>
|
||||
</a>
|
||||
</li>
|
||||
<li class="layui-nav-item layui-hide-xs" lay-unselect>
|
||||
<a href="javascript:;" layadmin-event="fullscreen">
|
||||
<i class="layui-icon layui-icon-screen-full"></i>
|
||||
</a>
|
||||
</li>
|
||||
<li class="layui-nav-item" lay-unselect>
|
||||
<script type="text/html" template lay-url="/agent/user_info"
|
||||
lay-done="layui.element.render('nav', 'layadmin-layout-right');">
|
||||
<a href="javascript:;">
|
||||
<cite>{{ d.data.username || ''}}</cite>
|
||||
</a>
|
||||
<dl class="layui-nav-child">
|
||||
<dd><a lay-href="set/info">基本资料</a></dd>
|
||||
<dd><a lay-href="set/password">修改密码</a></dd>
|
||||
<hr>
|
||||
<dd layadmin-event="logout" style="text-align: center;"><a>退出</a></dd>
|
||||
</dl>
|
||||
</script>
|
||||
</li>
|
||||
|
||||
<li class="layui-nav-item layui-hide-xs" lay-unselect>
|
||||
<a href="javascript:;" layadmin-event="about"><i class="layui-icon layui-icon-tabs"></i></a>
|
||||
</li>
|
||||
<li class="layui-nav-item layui-show-xs-inline-block layui-hide-sm" lay-unselect>
|
||||
<a href="javascript:;" layadmin-event="more"><i class="layui-icon layui-icon-more-vertical"></i></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- 侧边菜单 -->
|
||||
<div class="layui-side layui-side-menu">
|
||||
<div class="layui-side-scroll">
|
||||
<script type="text/html" template lay-url="/agent/menu?v={{ new Date().getTime() }}"
|
||||
lay-done="layui.element.render('nav', 'layadmin-system-side-menu');" id="TPL_layout">
|
||||
|
||||
<div class="layui-logo" lay-href="">
|
||||
<span>{{ layui.setter.name || 'layuiAdmin' }}</span>
|
||||
</div>
|
||||
|
||||
<ul class="layui-nav layui-nav-tree" lay-shrink="all" id="LAY-system-side-menu" lay-filter="layadmin-system-side-menu">
|
||||
{{#
|
||||
var path = layui.router().path
|
||||
,pathURL = layui.admin.correctRouter(path.join('/'))
|
||||
,dataName = layui.setter.response.dataName;
|
||||
|
||||
layui.each(d[dataName], function(index, item){
|
||||
var hasChildren = typeof item.list === 'object' && item.list.length > 0
|
||||
,classSelected = function(){
|
||||
var match = path[0] == item.name || (index == 0 && !path[0])
|
||||
|| (item.jump && pathURL == layui.admin.correctRouter(item.jump)) || item.spread;
|
||||
if(match){
|
||||
return hasChildren ? 'layui-nav-itemed' : 'layui-this';
|
||||
}
|
||||
return '';
|
||||
}
|
||||
,url = (item.jump && typeof item.jump === 'string') ? item.jump : item.name;
|
||||
}}
|
||||
<li data-name="{{ item.name || '' }}" data-jump="{{ item.jump || '' }}" class="layui-nav-item {{ classSelected() }}">
|
||||
<a href="javascript:;" {{ hasChildren ? '' : 'lay-href="'+ url +'"' }} lay-tips="{{ item.title }}" lay-direction="2">
|
||||
<i class="layui-icon {{ item.icon }}"></i>
|
||||
<cite>{{ item.title }}</cite>
|
||||
</a>
|
||||
{{# if(hasChildren){ }}
|
||||
<dl class="layui-nav-child">
|
||||
{{# layui.each(item.list, function(index2, item2){
|
||||
var hasChildren2 = typeof item2.list == 'object' && item2.list.length > 0
|
||||
,classSelected2 = function(){
|
||||
var match = (path[0] == item.name && path[1] == item2.name)
|
||||
|| (item2.jump && pathURL == layui.admin.correctRouter(item2.jump)) || item2.spread;
|
||||
if(match){
|
||||
return hasChildren2 ? 'layui-nav-itemed' : 'layui-this';
|
||||
}
|
||||
return '';
|
||||
}
|
||||
,url2 = (item2.jump && typeof item2.jump === 'string')
|
||||
? item2.jump
|
||||
: [item.name, item2.name, ''].join('/');
|
||||
}}
|
||||
<dd data-name="{{ item2.name || '' }}" data-jump="{{ item2.jump || '' }}"
|
||||
{{ classSelected2() ? ('class="'+ classSelected2() +'"') : '' }}>
|
||||
<a href="javascript:;" {{ hasChildren2 ? '' : 'lay-href="'+ url2 +'"' }}>{{ item2.title }}</a>
|
||||
{{# if(hasChildren2){ }}
|
||||
<dl class="layui-nav-child">
|
||||
{{# layui.each(item2.list, function(index3, item3){
|
||||
var match = (path[0] == item.name && path[1] == item2.name && path[2] == item3.name)
|
||||
|| (item3.jump && pathURL == layui.admin.correctRouter(item3.jump))
|
||||
,url3 = (item3.jump && typeof item3.jump === 'string')
|
||||
? item3.jump
|
||||
: [item.name, item2.name, item3.name].join('/')
|
||||
}}
|
||||
<dd data-name="{{ item3.name || '' }}" data-jump="{{ item3.jump || '' }}"
|
||||
{{ match ? 'class="layui-this"' : '' }}>
|
||||
<a href="javascript:;" lay-href="{{ url3 }}" {{ item3.iframe ? 'lay-iframe="true"' : '' }}>{{ item3.title }}</a>
|
||||
</dd>
|
||||
{{# }); }}
|
||||
</dl>
|
||||
{{# } }}
|
||||
</dd>
|
||||
{{# }); }}
|
||||
</dl>
|
||||
{{# } }}
|
||||
</li>
|
||||
{{# }); }}
|
||||
</ul>
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- 页面标签 -->
|
||||
<script type="text/html" template lay-done="layui.element.render('nav', 'layadmin-pagetabs-nav')">
|
||||
{{# if(layui.setter.pageTabs){ }}
|
||||
<div class="layadmin-pagetabs" id="LAY_app_tabs">
|
||||
<div class="layui-icon layadmin-tabs-control layui-icon-prev" layadmin-event="leftPage"></div>
|
||||
<div class="layui-icon layadmin-tabs-control layui-icon-next" layadmin-event="rightPage"></div>
|
||||
<div class="layui-icon layadmin-tabs-control layui-icon-down">
|
||||
<ul class="layui-nav layadmin-tabs-select" lay-filter="layadmin-pagetabs-nav">
|
||||
<li class="layui-nav-item" lay-unselect>
|
||||
<a href="javascript:;"></a>
|
||||
<dl class="layui-nav-child layui-anim-fadein">
|
||||
<dd layadmin-event="closeThisTabs"><a href="javascript:;">关闭当前标签页</a></dd>
|
||||
<dd layadmin-event="closeOtherTabs"><a href="javascript:;">关闭其它标签页</a></dd>
|
||||
<dd layadmin-event="closeAllTabs"><a href="javascript:;">关闭全部标签页</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="layui-tab" lay-unauto lay-allowClose="true" lay-filter="layadmin-layout-tabs">
|
||||
<ul class="layui-tab-title" id="LAY_app_tabsheader">
|
||||
<li lay-id="/"><i class="layui-icon layui-icon-home"></i></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
|
||||
<!-- 主体内容 -->
|
||||
<div class="layui-body" id="LAY_app_body">
|
||||
<div class="layadmin-tabsbody-item layui-show"></div>
|
||||
</div>
|
||||
|
||||
<!-- 辅助元素,一般用于移动设备下遮罩 -->
|
||||
<div class="layadmin-body-shade" layadmin-event="shade"></div>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,179 @@
|
||||
|
||||
|
||||
<title>代理商</title>
|
||||
|
||||
<div class="layui-card layadmin-header">
|
||||
<div class="layui-breadcrumb" lay-filter="breadcrumb">
|
||||
<a lay-href="">主页</a>
|
||||
<a><cite>代理商</cite></a>
|
||||
<a><cite>代理商用户</cite></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-card">
|
||||
<div class="layui-form layui-card-header layuiadmin-card-header-auto" lay-filter="layadmin-userfront-formlist">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">ID</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="id" placeholder="请输入" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">下级用户名</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="username" placeholder="请输入" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<button class="layui-btn layuiadmin-btn-useradmin" lay-submit lay-filter="LAY-user-front-search">
|
||||
<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-card-body">
|
||||
<table id="LAY-user-manage" lay-filter="LAY-user-manage"></table>
|
||||
<script type="text/html" id="table-useradmin-webuser">
|
||||
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="info">查看关联订单</a>
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="lockTpl">
|
||||
{{# if(d.type == 1){ }}
|
||||
<span class="layui-badge layui-bg-red">寸头统计</span>
|
||||
{{# } else { }}
|
||||
<span class="layui-badge layui-bg-blue">手续费统计</span>
|
||||
{{# } }}
|
||||
</script>
|
||||
<script type="text/html" id="addsonTpl">
|
||||
{{# if(d.status == 0){ }}
|
||||
<i class="layui-icon layui-icon-loading"style="font-size: 16px; color: #1E9FFF;">交易中</i>
|
||||
{{# } else if(d.status == 1) { }}
|
||||
<i class="layui-icon layui-icon-find-fill"style="font-size: 16px; color: #009688;">平仓中</i>
|
||||
{{# } else if(d.status == 2) { }}
|
||||
|
||||
<i class="layui-icon layui-icon-ok"style="font-size: 16px; color: red;">已平仓</i>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script>
|
||||
layui.use(['admin', 'useradmin', 'table' , 'layer'], function(){
|
||||
var $ = layui.$
|
||||
,admin = layui.admin
|
||||
,view = layui.view
|
||||
,table = layui.table
|
||||
,form = layui.form;
|
||||
|
||||
|
||||
//用户管理
|
||||
table.render({
|
||||
elem: '#LAY-user-manage'
|
||||
,method : 'post'
|
||||
,url: '/agent/jie/list'
|
||||
,cols: [[
|
||||
{type: 'checkbox', fixed: 'left'}
|
||||
,{field: 'id', width: 60, title: 'ID', sort: true }
|
||||
,{field: 'user_name', title: '下级用户名', minWidth: 150}
|
||||
,{field: 'agent_level', title: '下级用户等级', width: 150}
|
||||
,{field: 'type', title: '结算类型', width: 90, templet: '#lockTpl'}
|
||||
,{field: 'before', title: '初始账户金额',sort: true, width: 170,style:"color: #fff;background-color: #01AAED;"}
|
||||
,{field: 'change', title: '贡献收益', sort: true, width: 170,style:"color: #fff;background-color: #FF5722;"}
|
||||
,{field: 'after', title: '最终账户金额', sort: true, width: 170,style:"color: #fff;background-color: #01AAED;"}
|
||||
,{field: 'memo', title: '变动备注', width: 200}
|
||||
,{title: '操作', width: 120, align:'center', fixed: 'right', toolbar: '#table-useradmin-webuser'}
|
||||
]]
|
||||
,page: true
|
||||
,limit: 30
|
||||
,height: 'full-320'
|
||||
,text: '对不起,加载出现异常!'
|
||||
,headers: { //通过 request 头传递
|
||||
access_token: layui.data('layuiAdmin').access_token
|
||||
}
|
||||
,where: { //通过参数传递
|
||||
access_token: layui.data('layuiAdmin').access_token
|
||||
}
|
||||
,done: function(res){ //这里要说明一下:done 是只有 response 的 code 正常才会执行。而 succese 则是只要 http 为 200 就会执行
|
||||
if (res !== 0 ){
|
||||
if (res.code === 1001) {
|
||||
//清空本地记录的 token,并跳转到登入页
|
||||
admin.exit();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
form.render(null, 'layadmin-userfront-formlist');
|
||||
|
||||
//监听搜索
|
||||
form.on('submit(LAY-user-front-search)', function(data){
|
||||
var field = data.field;
|
||||
|
||||
//执行重载
|
||||
table.reload('LAY-user-manage', {
|
||||
where: field
|
||||
,page: {
|
||||
curr: 1 //重新从第 1 页开始
|
||||
}
|
||||
,done: function(res){ //这里要说明一下:done 是只有 response 的 code 正常才会执行。而 succese 则是只要 http 为 200 就会执行
|
||||
|
||||
if (res.code === 1001) {
|
||||
//清空本地记录的 token,并跳转到登入页
|
||||
admin.exit();
|
||||
}
|
||||
|
||||
if (res.code === 1){
|
||||
layer.msg(res.msg ,{icon : 5});
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
//监听工具条
|
||||
table.on('tool(LAY-user-manage)', function(obj) {
|
||||
var data = obj.data;
|
||||
if (obj.event === 'info') {
|
||||
admin.req( {
|
||||
type : "POST",
|
||||
url : 'agent/order/info',
|
||||
dataType : "json",
|
||||
data : {order_id : data.relate_id},
|
||||
done : function(returnData) { //返回数据根据结果进行相应的处理
|
||||
if (returnData.code == 0){
|
||||
admin.popup({
|
||||
title: '订单详情'
|
||||
, area: ['90%', '90%']
|
||||
, id: 'LAY-popup-user-add'
|
||||
, success: function () {
|
||||
admin.req({
|
||||
type: "POST",
|
||||
url: 'agent/order/info',
|
||||
dataType: "json",
|
||||
data: {order_id: data.relate_id},
|
||||
done: function (returnData) { //返回数据根据结果进行相应的处理
|
||||
view('LAY-popup-user-add').render('order/order/info', returnData.data.info).done(function () {
|
||||
form.render(null, 'layuiadmin-order-info'); //渲染表单
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
@@ -0,0 +1,328 @@
|
||||
<title>代理商</title>
|
||||
|
||||
<div class="layui-card layadmin-header">
|
||||
<div class="layui-breadcrumb" lay-filter="breadcrumb">
|
||||
<a lay-href="">主页</a>
|
||||
<a><cite>订单</cite></a>
|
||||
<a><cite>秒合约</cite></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-card">
|
||||
<div class="layui-form layui-card-header layuiadmin-card-header-auto" lay-filter="layadmin-userfront-formlist">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">ID</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="id" placeholder="请输入" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">用户账号</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="account" placeholder="请输入" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">代理用户名</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="agentusername" placeholder="请输入上级代理商" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">开始日期:</label>
|
||||
<div class="layui-input-block" style="width:170px;">
|
||||
<input type="text" class="layui-input" id="start_time" value="" name="start_time">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">结束日期:</label>
|
||||
<div class="layui-input-block" style="width:170px;">
|
||||
<input type="text" class="layui-input" id="end_time" value="" name="end_time">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
|
||||
<div class="layui-inline" style="margin-left: 10px;">
|
||||
<label class="layui-form-label">交易状态</label>
|
||||
<div class="layui-input-block">
|
||||
<select name="status">
|
||||
<option value="-1">不限</option>
|
||||
|
||||
<option value="1">交易中</option>
|
||||
<option value="2">平仓中</option>
|
||||
<option value="3">已平仓</option>
|
||||
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline" style="margin-left: 10px;">
|
||||
<label class="layui-form-label">买卖类型</label>
|
||||
<div class="layui-input-block">
|
||||
<select name="type">
|
||||
<option value="-1">不限</option>
|
||||
<option value="1">买涨</option>
|
||||
<option value="2">买跌</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<!--<div class="layui-inline" style="margin-left: 10px;">
|
||||
<label class="layui-form-label">预设</label>
|
||||
<div class="layui-input-block">
|
||||
<select name="pre_profit_result" id="pre_profit_result" class="layui-input">
|
||||
<option value="-2">所有</option>
|
||||
<option value="-1">亏</option>
|
||||
<option value="0">无</option>
|
||||
<option value="1">盈</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>-->
|
||||
<div class="layui-inline" style="margin-left: 10px;">
|
||||
<label class="layui-form-label">结果</label>
|
||||
<div class="layui-input-block">
|
||||
<select name="profit_result" id="profit_result" class="layui-input">
|
||||
<option value="-2">所有</option>
|
||||
<option value="-1">亏</option>
|
||||
<option value="0">无</option>
|
||||
<option value="1">盈</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline" style="margin-left: 10px;">
|
||||
<label class="layui-form-label">支付货币</label>
|
||||
<div class="layui-input-block">
|
||||
<select name="currency_id" id="currency_id" class="">
|
||||
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline" style="margin-left: 10px;">
|
||||
<label class="layui-form-label">交易对</label>
|
||||
<div class="layui-input-block">
|
||||
<select name="match_id" id="currency_match" class="">
|
||||
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-inline">
|
||||
<button class="layui-btn layuiadmin-btn-useradmin" lay-submit lay-filter="LAY-user-front-search">
|
||||
<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- <div class="layui-card-body">
|
||||
<div class="layui-carousel layadmin-backlog" style="background-color: #fff">
|
||||
<ul class="layui-row layui-col-space10 layui-this">
|
||||
<li class="layui-col-xs3">
|
||||
<a href="javascript:;" class="layadmin-backlog-body" style="color: #fff;background-color: #01AAED;">
|
||||
<h3>盈亏统计:</h3>
|
||||
<p><cite style="color:#fff" id="total_fact_profits">0.0000000</cite></p>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="layui-col-xs3">
|
||||
<a href="javascript:;" onclick="layer.tips('手续费统计', this, {tips: 3});" class="layadmin-backlog-body"
|
||||
style="color: #fff;background-color: #01AAED;">
|
||||
<h3>手续费统计:</h3>
|
||||
<p><cite style="color:#fff" id="total_fee">0.00000000</cite></p>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>-->
|
||||
|
||||
<div class="layui-card-body">
|
||||
<table id="LAY-user-manage" lay-filter="LAY-user-manage"></table>
|
||||
<script type="text/html" id="table-useradmin-webuser">
|
||||
<!-- <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event=""><i class="layui-icon layui-icon-edit"></i>查看详情</a> -->
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="status_name">
|
||||
<span class="layui-badge @{{d.status == 1 ? '' : 'layui-bg-gray'}}">{{d.status_name}}</span>
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="symbol_name">
|
||||
<span>{{d.symbol_name}}</span><span style="color: #848484dd; font-size: 10px;" title="收益率:{{d.profit_ratio}}%">-{{d.seconds}}S</span>
|
||||
</script>
|
||||
<script type="text/html" id="type_name">
|
||||
{{# if (d.type == 1) { }}
|
||||
<div class="order_type order_type_rise" style="color:#1aab65;">
|
||||
<span style="font-size: 13px; font-weight: bold;">{{d.type_name}}</span><span style="font-size: 18px; font-weight: bold;">↑</span>
|
||||
</div>
|
||||
{{# } else { }}
|
||||
<div class="order_type order_type_fall" style="color:#de1919;">
|
||||
<span style="font-size: 13px; font-weight: bold;">{{d.type_name}}</span><span style="font-size: 18px; font-weight: bold;">↓</span>
|
||||
</div>
|
||||
{{# } }}
|
||||
</script>
|
||||
<script type="text/html" id="pre_profit_result_name">
|
||||
{{# if (d.pre_profit_result == 1) { }}
|
||||
<span style="color:#89deb3;">{{d.pre_profit_result_name}}</span>
|
||||
{{# } else if (d.pre_profit_result == -1) { }}
|
||||
<span style="color:#d67a7a;">{{d.pre_profit_result_name}}</span>
|
||||
{{# } else { }}
|
||||
<span class="layui-badge-rim">{{d.pre_profit_result_name}}</span>
|
||||
{{# } }}
|
||||
</script>
|
||||
<script type="text/html" id="profit_result_name">
|
||||
<span class="layui-badge @{{d.profit_result == 1 ? 'layui-bg-green' : ''}}">{{d.profit_result_name}}</span>
|
||||
</script>
|
||||
<script type="text/html" id="fact_profits">
|
||||
<div style="text-align: right; margin-right: 10px;">
|
||||
{{# if (d.profit_result == 1) { }}
|
||||
<span style="color: #f00; font-weight: bolder;">{{Number(d.fact_profits).toFixed(2)}}</span>
|
||||
{{# } else { }}
|
||||
<span>{{Number(d.fact_profits).toFixed(2)}}</span>
|
||||
{{# } }}
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<script>
|
||||
|
||||
layui.use(['admin', 'useradmin', 'table', 'layer', 'laydate', 'form'], function () {
|
||||
var $ = layui.$
|
||||
, admin = layui.admin
|
||||
, view = layui.view
|
||||
, table = layui.table
|
||||
, laydate = layui.laydate
|
||||
, form = layui.form;
|
||||
|
||||
|
||||
laydate.render({
|
||||
elem: '#start_time',
|
||||
type: 'datetime'
|
||||
});
|
||||
laydate.render({
|
||||
elem: '#end_time',
|
||||
type: 'datetime'
|
||||
});
|
||||
|
||||
admin.req({
|
||||
type: "get",
|
||||
url: '/agent/micro/currency_show',
|
||||
dataType: "json",
|
||||
data: {},
|
||||
done: function (result) { //返回数据根据结果进行相应的处理
|
||||
//console.log(result);
|
||||
var data1 = result.data.currencies;
|
||||
var data2 = result.data.currency_matches;
|
||||
|
||||
var html1 = '<option value="-1">所有</option>';
|
||||
var html2 = '<option value="-1">所有</option>';
|
||||
|
||||
for (var i in data1) {
|
||||
//console.log(data1[i]);
|
||||
html1 += `<option value="${data1[i].id}">${data1[i].name}</option>`
|
||||
}
|
||||
|
||||
for (var i in data2) {
|
||||
//console.log(data1[i]);
|
||||
html2 += `<option value="${data2[i].id}">${data2[i].currency_name}/${data2[i].legal_name}</option>`
|
||||
}
|
||||
$('#currency_id').html(html1);
|
||||
$('#currency_match').html(html2);
|
||||
|
||||
layui.use('form', function () { var form = layui.form; form.render("select"); })
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
//秒合约订单管理
|
||||
var data_table = table.render({
|
||||
elem: '#LAY-user-manage'
|
||||
, method: 'post'
|
||||
, url: '/agent/micro/list'
|
||||
, cols: [[
|
||||
{ field: '', type: 'checkbox', width: 60 }
|
||||
, { field: '', title: '序号', type: "numbers", width: 90 }
|
||||
, { field: 'id', title: 'ID', width: 100 }
|
||||
, { field: 'account', title: '用户账号', width: 130, sort: true, totalRowText: '小计' }
|
||||
, { field: 'real_name', title: '真实姓名', width: 100 }
|
||||
, { field: 'symbol_name', title: '合约', width: 140, sort: true, templet: '#symbol_name' }
|
||||
, { field: 'currency_name', title: '币种', width: 80, sort: true }
|
||||
, { field: 'type_name', title: '类型', width: 80, templet: '#type_name', sort: true }
|
||||
, { field: 'seconds', title: '秒数', width: 80, templet: '#seconds', sort: true, hide: true }
|
||||
, { field: 'status_name', title: '交易状态', width: 100, sort: true, templet: '#status_name' }
|
||||
, { field: 'number', title: '数量', width: 90, templet: '<div><div style="text-align: right;">{{Number.parseInt(d.number)}}</div></div>', totalRow: true }
|
||||
, { field: 'fee', title: '手续费', width: 100, totalRow: true, templet: '<div><div style="text-align: right;"><span>{{Number(d.fee).toFixed(2)}}</span></div></div>' }
|
||||
// , { field: 'pre_profit_result_name', title: '预设', width: 90, sort: true, templet: '#pre_profit_result_name', hide: false }
|
||||
, { field: 'profit_result_name', title: '结果', width: 90, sort: true, templet: '#profit_result_name', hide: false }
|
||||
, { field: 'fact_profits', title: '盈利', width: 100, sort: true, totalRow: true, templet: '#fact_profits' }
|
||||
, { field: 'open_price', title: '开仓价', width: 100, templet: '<div><div style="text-align: right;"><span>{{Number(d.open_price).toFixed(4)}}</span></div></div>' }
|
||||
, { field: 'end_price', title: '平仓价', width: 100, templet: '<div><div style="text-align: right;"><span>{{Number(d.end_price).toFixed(4)}}</span></div></div>' }
|
||||
, { field: 'created_at', title: '下单时间', width: 170, sort: true }
|
||||
, { field: 'updated_at', title: '更新日期', width: 170, sort: true, hide: true }
|
||||
, { field: 'handled_at', title: '平仓时间', width: 170, sort: true, hide: true }
|
||||
, { field: 'complete_at', title: '完成时间', width: 170, sort: true, hide: true }
|
||||
//,{fixed: 'right', title: '操作', width: 100, align: 'center', toolbar: '#barDemo'}
|
||||
]]
|
||||
, page: true
|
||||
, limit: 20
|
||||
, limits: [20, 50, 100, 500, 1000]
|
||||
, toolbar: true
|
||||
, height: 'full-320'
|
||||
, totalRow: true
|
||||
, text: '对不起,加载出现异常!'
|
||||
, headers: { //通过 request 头传递
|
||||
access_token: layui.data('layuiAdmin').access_token
|
||||
}
|
||||
, where: { //通过参数传递
|
||||
access_token: layui.data('layuiAdmin').access_token
|
||||
}
|
||||
, done: function (res) { //这里要说明一下:done 是只有 response 的 code 正常才会执行。而 succese 则是只要 http 为 200 就会执行
|
||||
if (res !== 0) {
|
||||
|
||||
if (res.code === 1001) {
|
||||
//清空本地记录的 token,并跳转到登入页
|
||||
admin.exit();
|
||||
}
|
||||
var total = res.extra_data.total;
|
||||
$('#total_fee').text(total.total_fee);
|
||||
$('#total_fact_profits').text(total.total_fact_profits);
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
//定时刷新
|
||||
// setInterval(function(){
|
||||
// data_table.reload();
|
||||
// },100000)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//监听搜索
|
||||
form.on('submit(LAY-user-front-search)', function (data) {
|
||||
var a = layui.data('layuiAdmin').access_token;
|
||||
data.field.access_token = a;
|
||||
|
||||
var option = {
|
||||
where: data.field,
|
||||
page: { curr: 1 }
|
||||
}
|
||||
data_table.reload(option);
|
||||
return false;
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
@@ -0,0 +1,263 @@
|
||||
|
||||
<div>
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-row layui-col-space15">
|
||||
<div class="layui-col-sm12">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">订单编号 :20181209989979HGIF84354</div>
|
||||
<div class="layui-card-header">订单状态 :<span class="layui-badge">交易中</span></div>
|
||||
<div class="layui-card-header">最新进度 :<span class="layui-badge-rim">2018-12-09 12:36:09</span><span class="layui-badge layui-bg-blue">平仓</span></div>
|
||||
<br>
|
||||
<br>
|
||||
<!--<div class="layui-card-body">-->
|
||||
<!--<div class="layui-progress layui-progress-big">-->
|
||||
<!--<div class="layui-progress-bar" lay-percent="1/6"><span class="layui-progress-text">2 / 6</span></div>-->
|
||||
<!--</div>-->
|
||||
|
||||
<!--<div class="layui-row">-->
|
||||
<!--<div class="layui-col-sm2" style="text-align: center">-->
|
||||
<!--<h3><i class="layui-icon layui-icon-face-smile" style="font-size: 20px; color: #009688;"></i> <span class="layui-badge layui-bg-green">订单创建成功</span></h3>-->
|
||||
<!--<span>4月28日 00:00</span>-->
|
||||
<!--</div>-->
|
||||
<!--<div class="layui-col-sm2" style="text-align: center">-->
|
||||
<!--<h3><i class="layui-icon layui-icon-loading" style="font-size: 20px; color: #ff3331;"></i> <span class="layui-badge">交易中</span></h3>-->
|
||||
<!--<span>4月28日 00:00</span>-->
|
||||
<!--</div>-->
|
||||
<!--<div class="layui-col-sm2" style="text-align: center">-->
|
||||
<!--<h3><i class="layui-icon" style="font-size: 20px; color: #ff3331;"></i> <span class="layui-badge-rim">平仓中</span></h3>-->
|
||||
<!--<span>-/-</span>-->
|
||||
<!--</div>-->
|
||||
<!--<div class="layui-col-sm2" style="text-align: center">-->
|
||||
<!--<h3><i class="layui-icon" style="font-size: 20px; color: #ff3331;"></i> <span class="layui-badge-rim">已平仓</span></h3>-->
|
||||
<!--<span>-/-</span>-->
|
||||
<!--</div>-->
|
||||
<!--<div class="layui-col-sm2" style="text-align: center">-->
|
||||
<!--<h3><i class="layui-icon" style="font-size: 20px; color: #ff3331;"></i> <span class="layui-badge-rim">未结算</span></h3>-->
|
||||
<!--<span>-/-</span>-->
|
||||
<!--</div>-->
|
||||
<!--<div class="layui-col-sm2" style="text-align: center">-->
|
||||
<!--<h3><i class="layui-icon" style="font-size: 20px; color: #ff3331;"></i> <span class="layui-badge-rim">已结算</span></h3>-->
|
||||
<!--<span>-/-</span>-->
|
||||
<!--</div>-->
|
||||
<!--</div>-->
|
||||
|
||||
<!--</div>-->
|
||||
<br>
|
||||
<br>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="layui-col-sm12">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body" >
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-sm4">
|
||||
<div class="layui-card-header">交易信息</div>
|
||||
<ul class="layui-timeline">
|
||||
|
||||
<script type="text/html" template>
|
||||
<li class="layui-timeline-item">
|
||||
<i class="layui-icon layui-timeline-axis"></i>
|
||||
<div class="layui-timeline-content layui-text">
|
||||
<div class="layui-timeline-title">
|
||||
买卖类型 : {{ d.params.type }}
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</script>
|
||||
|
||||
<script type="text/html" template>
|
||||
<li class="layui-timeline-item">
|
||||
<i class="layui-icon layui-timeline-axis"></i>
|
||||
<div class="layui-timeline-content layui-text">
|
||||
<div class="layui-timeline-title">
|
||||
用户 : {{ d.params.user_id }}
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</script>
|
||||
|
||||
<script type="text/html" template>
|
||||
<li class="layui-timeline-item">
|
||||
<i class="layui-icon layui-timeline-axis"></i>
|
||||
<div class="layui-timeline-content layui-text">
|
||||
<div class="layui-timeline-title">
|
||||
交易货币 : {{ d.params.currency }}
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</script>
|
||||
<script type="text/html" template>
|
||||
<li class="layui-timeline-item">
|
||||
<i class="layui-icon layui-timeline-axis"></i>
|
||||
<div class="layui-timeline-content layui-text">
|
||||
<div class="layui-timeline-title">
|
||||
法币货币 : {{ d.params.legal }}
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</script>
|
||||
<script type="text/html" template>
|
||||
<li class="layui-timeline-item">
|
||||
<i class="layui-icon layui-timeline-axis"></i>
|
||||
<div class="layui-timeline-content layui-text">
|
||||
<div class="layui-timeline-title">
|
||||
手数 : {{ d.params.share }}
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</script>
|
||||
|
||||
<script type="text/html" template>
|
||||
<li class="layui-timeline-item">
|
||||
<i class="layui-icon layui-timeline-axis"></i>
|
||||
<div class="layui-timeline-content layui-text">
|
||||
<div class="layui-timeline-title">
|
||||
倍数 : {{ d.params.multiple }}
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</script>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="layui-col-sm4">
|
||||
<div class="layui-card-header">资金信息</div>
|
||||
<ul class="layui-timeline">
|
||||
|
||||
<script type="text/html" template>
|
||||
<li class="layui-timeline-item">
|
||||
<i class="layui-icon layui-timeline-axis"></i>
|
||||
<div class="layui-timeline-content layui-text">
|
||||
<div class="layui-timeline-title">
|
||||
初始保证金 : {{ d.params.origin_caution_money }}
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</script>
|
||||
|
||||
<script type="text/html" template>
|
||||
<li class="layui-timeline-item">
|
||||
<i class="layui-icon layui-timeline-axis"></i>
|
||||
<div class="layui-timeline-content layui-text">
|
||||
<div class="layui-timeline-title">
|
||||
当前可用保证金 : {{ d.params.caution_money }}
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</script>
|
||||
|
||||
<script type="text/html" template>
|
||||
<li class="layui-timeline-item">
|
||||
<i class="layui-icon layui-timeline-axis"></i>
|
||||
<div class="layui-timeline-content layui-text">
|
||||
<div class="layui-timeline-title">
|
||||
最终盈亏 : {{ d.params.fact_profits }}
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</script>
|
||||
|
||||
<script type="text/html" template>
|
||||
<li class="layui-timeline-item">
|
||||
<i class="layui-icon layui-timeline-axis"></i>
|
||||
<div class="layui-timeline-content layui-text">
|
||||
<div class="layui-timeline-title">
|
||||
交易手续费 : {{ d.params.trade_fee }}
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</script>
|
||||
|
||||
<script type="text/html" template>
|
||||
<li class="layui-timeline-item">
|
||||
<i class="layui-icon layui-timeline-axis"></i>
|
||||
<div class="layui-timeline-content layui-text">
|
||||
<div class="layui-timeline-title">
|
||||
隔夜费率 : {{ d.params.overnight }}
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</script>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="layui-col-sm4">
|
||||
<div class="layui-card-header">状态及时间</div>
|
||||
<ul class="layui-timeline">
|
||||
<script type="text/html" template>
|
||||
<li class="layui-timeline-item">
|
||||
<i class="layui-icon layui-timeline-axis"></i>
|
||||
<div class="layui-timeline-content layui-text">
|
||||
<div class="layui-timeline-title">
|
||||
交易状态 : {{ d.params.status }}
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</script>
|
||||
|
||||
<script type="text/html" template>
|
||||
<li class="layui-timeline-item">
|
||||
<i class="layui-icon layui-timeline-axis"></i>
|
||||
<div class="layui-timeline-content layui-text">
|
||||
<div class="layui-timeline-title">
|
||||
结算状态 : {{ d.params.settled }}
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</script>
|
||||
|
||||
<script type="text/html" template>
|
||||
<li class="layui-timeline-item">
|
||||
<i class="layui-icon layui-timeline-axis"></i>
|
||||
<div class="layui-timeline-content layui-text">
|
||||
<div class="layui-timeline-title">
|
||||
创建时间 : {{ d.params.create_time }}
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</script>
|
||||
|
||||
<script type="text/html" template>
|
||||
<li class="layui-timeline-item">
|
||||
<i class="layui-icon layui-timeline-axis"></i>
|
||||
<div class="layui-timeline-content layui-text">
|
||||
<div class="layui-timeline-title">
|
||||
价格刷新时间 : {{ d.params.update_time }}
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</script>
|
||||
|
||||
<script type="text/html" template>
|
||||
<li class="layui-timeline-item">
|
||||
<i class="layui-icon layui-timeline-axis"></i>
|
||||
<div class="layui-timeline-content layui-text">
|
||||
<div class="layui-timeline-title">
|
||||
平仓时间 : {{ d.params.handle_time }}
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</script>
|
||||
|
||||
<script type="text/html" template>
|
||||
<li class="layui-timeline-item">
|
||||
<i class="layui-icon layui-timeline-axis"></i>
|
||||
<div class="layui-timeline-content layui-text">
|
||||
<div class="layui-timeline-title">
|
||||
完成时间 : {{ d.params.complete_time }}
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</script>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
layui.use('sample', layui.factory('sample'));
|
||||
</script>
|
||||
@@ -0,0 +1,515 @@
|
||||
|
||||
|
||||
<title>代理商</title>
|
||||
|
||||
<div class="layui-card layadmin-header">
|
||||
<div class="layui-breadcrumb" lay-filter="breadcrumb">
|
||||
<a lay-href="">主页</a>
|
||||
<a><cite>代理商</cite></a>
|
||||
<a><cite>代理商用户</cite></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-card">
|
||||
<div class="layui-form layui-card-header layuiadmin-card-header-auto" lay-filter="layadmin-userfront-formlist">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">ID</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="id" placeholder="请输入" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">用户名</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="username" placeholder="请输入" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">代理用户名</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="agentusername" placeholder="请输入上级代理商" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">开始日期</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="start" id="datestart" placeholder="yyyy-MM-dd" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">结束日期</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="end" id="dateend" placeholder="yyyy-MM-dd" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">订单状态</label>
|
||||
<div class="layui-input-block">
|
||||
<select name="status">
|
||||
<option value="10">不限</option>
|
||||
<option value="0">挂单中</option>
|
||||
<option value="1">交易中</option>
|
||||
<option value="2">平仓中</option>
|
||||
<option value="3">已平仓</option>
|
||||
<option value="4">已撤单</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">交易类型</label>
|
||||
<div class="layui-input-block">
|
||||
<select name="type">
|
||||
<option value="0">不限</option>
|
||||
<option value="1">买入</option>
|
||||
<option value="2">卖出</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<button class="layui-btn layuiadmin-btn-useradmin" lay-submit lay-filter="LAY-user-front-search">
|
||||
<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<button class="layui-btn layui-btn-normal dao" lay-event="excel">导出表格</button>
|
||||
<!--<button class="layui-btn layui-btn-normal dao" lay-event="excel" onclick="javascrtpt:window.location.href='{{url('/admin/agent/order/order_excel')}}'">导出表格</button>-->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-card-body">
|
||||
<div class="layui-carousel layadmin-backlog" style="background-color: #fff">
|
||||
<ul class="layui-row layui-col-space10 layui-this">
|
||||
<li class="layui-col-xs3">
|
||||
<a href="javascript:;" onclick="layer.tips('团队总收益 = 头寸收益 + 手续费收益', this, {tips: 3});" class="layadmin-backlog-body" style="color: #fff;background-color: #01AAED;">
|
||||
<h3>盈亏统计:</h3>
|
||||
<p><cite style="color:#fff" id="all">0.0000000</cite></p>
|
||||
</a>
|
||||
</li>
|
||||
<li class="layui-col-xs3">
|
||||
<a href="javascript:;" onclick="layer.tips('头寸统计', this, {tips: 3});" class="layadmin-backlog-body" style="color: #fff;background-color: #01AAED;">
|
||||
<h3>头寸统计:</h3>
|
||||
<p><cite style="color:#fff" id="toucun">0.00000000</cite></p>
|
||||
</a>
|
||||
</li>
|
||||
<li class="layui-col-xs3">
|
||||
<a href="javascript:;" onclick="layer.tips('手续费统计', this, {tips: 3});" class="layadmin-backlog-body" style="color: #fff;background-color: #01AAED;">
|
||||
<h3>手续费统计:</h3>
|
||||
<p><cite style="color:#fff" id="shouxu">0.00000000</cite></p>
|
||||
</a>
|
||||
</li>
|
||||
<li class="layui-col-xs3">
|
||||
<a href="javascript:;" onclick="layer.tips('订单总量', this, {tips: 3});" class="layadmin-backlog-body" style="color: #fff;background-color: #01AAED;">
|
||||
<h3>订单总量</h3>
|
||||
<p><cite style="color:#fff" id="num">0</cite></p>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="layui-card-body">
|
||||
<table id="LAY-user-manage" lay-filter="LAY-user-manage"></table>
|
||||
<script type="text/html" id="table-useradmin-webuser">
|
||||
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event=""><i class="layui-icon layui-icon-edit"></i>查看详情</a>
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
// function excel()
|
||||
// {
|
||||
// $.ajax({
|
||||
// url:'/agent/order/order_excel'
|
||||
// type:'get',
|
||||
// header:{
|
||||
// access_token: layui.data('layuiAdmin').access_token
|
||||
// }
|
||||
//
|
||||
// })
|
||||
// window.location.href='/agent/order/order_excel'
|
||||
// }
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="lockTpl">
|
||||
{{# if(d.type == 1){ }}
|
||||
<span class="layui-badge layui-bg-red">买入</span>
|
||||
{{# } else { }}
|
||||
<span class="layui-badge layui-bg-blue">卖出</span>
|
||||
{{# } }}
|
||||
</script>
|
||||
<script type="text/html" id="addsonTpl">
|
||||
{{# if(d.status == 0){ }}
|
||||
<i class="layui-icon layui-icon-rate"style="font-size: 16px; color: #1E9FFF;">挂单中</i>
|
||||
{{# } else if(d.status == 1) { }}
|
||||
<i class="layui-icon layui-icon-rate-half"style="font-size: 16px; color: #FFB800;">交易中</i>
|
||||
{{# } else if(d.status == 2) { }}
|
||||
|
||||
<i class="layui-icon layui-icon-refresh-3"style="font-size: 16px; color: red;">平仓中</i>
|
||||
{{# } else if(d.status == 3) { }}
|
||||
|
||||
<i class="layui-icon layui-icon-rate-solid"style="font-size: 16px; color: #009688;">已平仓</i>
|
||||
{{# } else if(d.status == 4) { }}
|
||||
|
||||
<i class="layui-icon layui-icon-close-fill"style="font-size: 16px; color: #FF5722;">已撤单</i>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script>
|
||||
layui.use(['admin', 'useradmin', 'table' , 'layer' , 'laydate'], function(){
|
||||
var $ = layui.$
|
||||
,admin = layui.admin
|
||||
,view = layui.view
|
||||
,table = layui.table
|
||||
,laydate = layui.laydate
|
||||
,form = layui.form;
|
||||
|
||||
|
||||
//日期
|
||||
laydate.render({
|
||||
elem: '#datestart'
|
||||
});
|
||||
laydate.render({
|
||||
elem: '#dateend'
|
||||
});
|
||||
|
||||
admin.req( {
|
||||
type : "POST",
|
||||
url : '/agent/get_order_account',
|
||||
dataType : "json",
|
||||
data : {all : 1},
|
||||
done : function(result) { //返回数据根据结果进行相应的处理
|
||||
$("#all").html(result.data._all);
|
||||
$("#toucun").html(result.data._toucun);
|
||||
$("#shouxu").html(result.data._shouxu);
|
||||
$("#num").html(result.data._num);
|
||||
|
||||
// $("#chujin").html(result.data.chujin);
|
||||
// $("#rujin").html(result.data.rujin);
|
||||
// $("#lock").html(result.data.lock);
|
||||
// $("#locklage").html(result.data.locklage);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
//用户管理
|
||||
table.render({
|
||||
elem: '#LAY-user-manage'
|
||||
,method : 'post'
|
||||
,url: '/agent/order/list'
|
||||
,cols: [[
|
||||
{type: 'checkbox', fixed: 'left'}
|
||||
,{field: 'id', width: 60, title: 'ID', sort: true }
|
||||
,{field: 'user_name', title: '用户名', minWidth: 150 , event : "getsons",style:"color: #fff;background-color: #5FB878;"}
|
||||
,{field: 'userreal_name', title: '姓名', minWidth: 150 }
|
||||
,{field: 'parent_agent_name', title: '上级代理商', width: 120}
|
||||
,{field: 'agent_level', title: '等级', width: 100}
|
||||
,{field: 'currency_name', title: '币种', width: 100}
|
||||
,{field: 'type', title: '交易类型', width: 90, templet: '#lockTpl'}
|
||||
,{field: 'status', title: '当前状态', sort: true, width: 170, templet: '#addsonTpl'}
|
||||
// ,{field: 'origin_price', title: '原始价格', width: 120}
|
||||
,{field: 'price', title: '开仓价格', width: 120}
|
||||
// ,{field: 'update_price', title: '当前价格', width: 120}
|
||||
,{field: 'fact_profits', title: '最终盈亏', width: 120}
|
||||
,{field: 'profits', title: '当前盈亏', width: 120}
|
||||
,{field: 'share', title: '手数', sort: true, width: 90}
|
||||
,{field: 'multiple', title: '倍数', sort: true, width: 90}
|
||||
,{field: 'origin_caution_money', title: '初始保证金', width: 120}
|
||||
// ,{field: 'caution_money', title: '当前可用保证金', sort: true, width: 170}
|
||||
,{field: 'create_time', title: '创建时间', width: 170}
|
||||
// ,{field: 'update_time', title: '价格刷新时间', sort: true, width: 170}
|
||||
// ,{field: 'handle_time', title: '平仓时间', sort: true, width: 170}
|
||||
,{field: 'complete_time', title: '完成时间', width: 170}
|
||||
]]
|
||||
,page: true
|
||||
,limit: 30
|
||||
,height: 'full-320'
|
||||
,text: '对不起,加载出现异常!'
|
||||
,headers: { //通过 request 头传递
|
||||
access_token: layui.data('layuiAdmin').access_token
|
||||
}
|
||||
,where: { //通过参数传递
|
||||
access_token: layui.data('layuiAdmin').access_token
|
||||
}
|
||||
,done: function(res){ //这里要说明一下:done 是只有 response 的 code 正常才会执行。而 succese 则是只要 http 为 200 就会执行
|
||||
if (res !== 0 ){
|
||||
|
||||
if (res.code === 1001) {
|
||||
//清空本地记录的 token,并跳转到登入页
|
||||
admin.exit();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
// setInterval(function(){
|
||||
// table.render({
|
||||
// elem: '#LAY-user-manage'
|
||||
// ,method : 'post'
|
||||
// ,url: '/agent/order/list'
|
||||
// ,cols: [[
|
||||
// {type: 'checkbox', fixed: 'left'}
|
||||
// ,{field: 'id', width: 60, title: 'ID', sort: true }
|
||||
// ,{field: 'user_name', title: '用户名', minWidth: 150 , event : "getsons",style:"color: #fff;background-color: #5FB878;"}
|
||||
// ,{field: 'userreal_name', title: '姓名', minWidth: 150 }
|
||||
// ,{field: 'parent_agent_name', title: '上级代理商', width: 120}
|
||||
// ,{field: 'agent_level', title: '等级', width: 100}
|
||||
// ,{field: 'currency_name', title: '币种', width: 100}
|
||||
// ,{field: 'type', title: '交易类型', width: 90, templet: '#lockTpl'}
|
||||
// ,{field: 'status', title: '当前状态', sort: true, width: 170, templet: '#addsonTpl'}
|
||||
// // ,{field: 'origin_price', title: '原始价格', width: 120}
|
||||
// ,{field: 'price', title: '开仓价格', width: 120}
|
||||
// // ,{field: 'update_price', title: '当前价格', width: 120}
|
||||
// ,{field: 'fact_profits', title: '最终盈亏', width: 120}
|
||||
// ,{field: 'profits', title: '当前盈亏', width: 120}
|
||||
// ,{field: 'share', title: '手数', sort: true, width: 90}
|
||||
// ,{field: 'multiple', title: '倍数', sort: true, width: 90}
|
||||
// ,{field: 'origin_caution_money', title: '初始保证金', width: 120}
|
||||
// // ,{field: 'caution_money', title: '当前可用保证金', sort: true, width: 170}
|
||||
// ,{field: 'create_time', title: '创建时间', width: 170}
|
||||
// // ,{field: 'update_time', title: '价格刷新时间', sort: true, width: 170}
|
||||
// // ,{field: 'handle_time', title: '平仓时间', sort: true, width: 170}
|
||||
// ,{field: 'complete_time', title: '完成时间', width: 170}
|
||||
// ]]
|
||||
// ,page: true
|
||||
// ,limit: 30
|
||||
// ,height: 'full-320'
|
||||
// ,text: '对不起,加载出现异常!'
|
||||
// ,headers: { //通过 request 头传递
|
||||
// access_token: layui.data('layuiAdmin').access_token
|
||||
// }
|
||||
// ,where: { //通过参数传递
|
||||
// access_token: layui.data('layuiAdmin').access_token
|
||||
// }
|
||||
// ,done: function(res){ //这里要说明一下:done 是只有 response 的 code 正常才会执行。而 succese 则是只要 http 为 200 就会执行
|
||||
// if (res !== 0 ){
|
||||
|
||||
// if (res.code === 1001) {
|
||||
// //清空本地记录的 token,并跳转到登入页
|
||||
// admin.exit();
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }); },60000)
|
||||
|
||||
|
||||
//导出表格
|
||||
|
||||
// table.on('tool(userlist)', function (obj) { //注:tool是工具条事件名,test是table原始容器的属性 lay-filter="对应的值"
|
||||
//// var data = obj.data;
|
||||
// var layEvent = obj.event;
|
||||
// var tr = obj.tr;
|
||||
// if (layEvent === 'excel')
|
||||
// {
|
||||
// layer_show('编辑会员','{{url('agent/order/order_excel')}}');
|
||||
// }
|
||||
//
|
||||
// });
|
||||
|
||||
|
||||
//监听工具条
|
||||
table.on('tool(LAY-user-manage)', function(obj){
|
||||
var data = obj.data;
|
||||
if(obj.event === 'getsons'){
|
||||
|
||||
admin.req( {
|
||||
type : "POST",
|
||||
url : '/agent/get_order_account',
|
||||
dataType : "json",
|
||||
data : {username : data.phone},
|
||||
done : function(result) { //返回数据根据结果进行相应的处理
|
||||
$("#all").html(result.data._all);
|
||||
$("#toucun").html(result.data._toucun);
|
||||
$("#shouxu").html(result.data._shouxu);
|
||||
$("#num").html(result.data._num);
|
||||
|
||||
// $("#chujin").html(result.data.chujin);
|
||||
// $("#rujin").html(result.data.rujin);
|
||||
// $("#lock").html(result.data.lock);
|
||||
// $("#locklage").html(result.data.locklage);
|
||||
}
|
||||
});
|
||||
|
||||
//执行重载
|
||||
table.reload('LAY-user-manage', {
|
||||
where: {
|
||||
username : data.phone
|
||||
}
|
||||
,page: {
|
||||
curr: 1 //重新从第 1 页开始
|
||||
}
|
||||
,done: function(res){ //这里要说明一下:done 是只有 response 的 code 正常才会执行。而 succese 则是只要 http 为 200 就会执行
|
||||
if (res !== 0 ){
|
||||
if (res.code === 1001) {
|
||||
//清空本地记录的 token,并跳转到登入页
|
||||
admin.exit();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
form.render(null, 'layadmin-userfront-formlist');
|
||||
|
||||
//监听搜索
|
||||
form.on('submit(LAY-user-front-search)', function(data){
|
||||
var field = data.field;
|
||||
|
||||
admin.req( {
|
||||
type : "POST",
|
||||
url : '/agent/get_order_account',
|
||||
dataType : "json",
|
||||
data : field,
|
||||
done : function(result) { //返回数据根据结果进行相应的处理
|
||||
$("#all").html(result.data._all);
|
||||
$("#toucun").html(result.data._toucun);
|
||||
$("#shouxu").html(result.data._shouxu);
|
||||
$("#num").html(result.data._num);
|
||||
|
||||
// $("#chujin").html(result.data.chujin);
|
||||
// $("#rujin").html(result.data.rujin);
|
||||
// $("#lock").html(result.data.lock);
|
||||
// $("#locklage").html(result.data.locklage);
|
||||
}
|
||||
});
|
||||
|
||||
//执行重载
|
||||
table.reload('LAY-user-manage', {
|
||||
where: field
|
||||
,page: {
|
||||
curr: 1 //重新从第 1 页开始
|
||||
}
|
||||
,done: function(res){ //这里要说明一下:done 是只有 response 的 code 正常才会执行。而 succese 则是只要 http 为 200 就会执行
|
||||
|
||||
if (res.code === 1001) {
|
||||
//清空本地记录的 token,并跳转到登入页
|
||||
admin.exit();
|
||||
}
|
||||
|
||||
if (res.code === 1){
|
||||
layer.msg(res.msg ,{icon : 5});
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
//事件
|
||||
var active = {
|
||||
batchdel: function(){
|
||||
var checkStatus = table.checkStatus('LAY-user-manage')
|
||||
,checkData = checkStatus.data; //得到选中的数据
|
||||
|
||||
if(checkData.length === 0){
|
||||
return layer.msg('请选择数据');
|
||||
}
|
||||
|
||||
layer.prompt({
|
||||
formType: 1
|
||||
,title: '敏感操作,请验证口令'
|
||||
}, function(value, index){
|
||||
layer.close(index);
|
||||
|
||||
layer.confirm('确定删除吗?', function(index) {
|
||||
|
||||
//执行 Ajax 后重载
|
||||
/*
|
||||
admin.req({
|
||||
url: 'xxx'
|
||||
//,……
|
||||
});
|
||||
*/
|
||||
table.reload('LAY-user-manage');
|
||||
layer.msg('已删除');
|
||||
});
|
||||
});
|
||||
}
|
||||
,add: function(){
|
||||
layer.prompt({title: '请输入下级代理商帐号', formType: 0, btn :['查询该用户' , '取消']}, function(value, index){
|
||||
layer.close(index);
|
||||
if (value.length == 0) {
|
||||
layer.msg('用户名不能位空', {icon: 5 });
|
||||
}else{
|
||||
admin.req( {
|
||||
type : "POST",
|
||||
url : '/agent/searchuser',
|
||||
dataType : "json",
|
||||
data : {username : value},
|
||||
done : function(result) { //返回数据根据结果进行相应的处理
|
||||
admin.popup({
|
||||
title: '添加代理商'
|
||||
,area: ['800px', '650px']
|
||||
,id: 'LAY-popup-user-add'
|
||||
,success: function(layer, index){
|
||||
view(this.id).render('user/user/userform' , result.data).done(function(){
|
||||
form.render(null, 'layuiadmin-form-useradmin'); //渲染表单
|
||||
//监听提交
|
||||
form.on('submit(LAY-user-front-submit)', function(data){
|
||||
var field = data.field; //获取提交的字段
|
||||
admin.req( {
|
||||
type : "POST",
|
||||
url : '/agent/addagent',
|
||||
dataType : "json",
|
||||
data : field,
|
||||
done : function(result) { //返回数据根据结果进行相应的处理
|
||||
console.log(result);
|
||||
layui.layer.msg(result.msg, {icon: 6 });
|
||||
//提交 Ajax 成功后,关闭当前弹层并重载表格
|
||||
layui.table.reload('LAY-user-manage'); //重载表格
|
||||
layui.layer.close(index); //执行关闭
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
$('.layui-btn.layuiadmin-btn-useradmin').on('click', function(){
|
||||
var type = $(this).data('type');
|
||||
active[type] ? active[type].call(this) : '';
|
||||
});
|
||||
$('.dao').click(function(){
|
||||
let token = localStorage.getItem('layuiAdmin');
|
||||
token = JSON.parse(token);
|
||||
let tokens = token.access_token;
|
||||
console.log(window.location)
|
||||
window.location.href= "/order/order_excel?access_token" + tokens;
|
||||
|
||||
// $.ajax({
|
||||
// url:'/order/order_excel',
|
||||
// type:'get',
|
||||
// data:{
|
||||
// access_token:tokens
|
||||
// },
|
||||
// headers:{"access_token": tokens},
|
||||
// success: function (res) {
|
||||
// alert(55);
|
||||
// window.location.href="/order/order_excel"
|
||||
// }
|
||||
//
|
||||
// })
|
||||
})
|
||||
|
||||
});
|
||||
//function excel() {
|
||||
//
|
||||
//
|
||||
//}
|
||||
</script>
|
||||
@@ -0,0 +1,392 @@
|
||||
|
||||
|
||||
<title>代理商</title>
|
||||
|
||||
<div class="layui-card layadmin-header">
|
||||
<div class="layui-breadcrumb" lay-filter="breadcrumb">
|
||||
<a lay-href="">主页</a>
|
||||
<a><cite>代理商</cite></a>
|
||||
<a><cite>代理商用户</cite></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-row layui-col-space15">
|
||||
<div class="layui-col-md12">
|
||||
<div class="layui-card">
|
||||
<!--<div class="layui-card-header">标准柱状图</div>-->
|
||||
<div class="layui-card-body">
|
||||
|
||||
<div class="layui-carousel layadmin-carousel layadmin-dataview" data-anim="fade" lay-filter="LAY-index-normcol">
|
||||
<div carousel-item id="LAY-index-normcol">
|
||||
<div><i class="layui-icon layui-icon-loading1 layadmin-loading"></i></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md6">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
|
||||
<div class="layui-carousel layadmin-carousel layadmin-dataview" data-anim="fade" lay-filter="LAY-index-money">
|
||||
<div carousel-item id="LAY-index-money">
|
||||
<div><i class="layui-icon layui-icon-loading1 layadmin-loading"></i></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md6">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
|
||||
<div class="layui-carousel layadmin-carousel layadmin-dataview" data-anim="fade" lay-filter="LAY-index-bin">
|
||||
<div carousel-item id="LAY-index-bin">
|
||||
<div><i class="layui-icon layui-icon-loading1 layadmin-loading"></i></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
layui.define(function(exports){
|
||||
layui.use('useradmin', layui.factory('useradmin')).use(['admin', 'layer' , 'laydate' , 'form'], function(){
|
||||
var $ = layui.$
|
||||
,admin = layui.admin
|
||||
,laydate = layui.laydate
|
||||
,form = layui.form;
|
||||
|
||||
//日期
|
||||
laydate.render({
|
||||
elem: '#datestart'
|
||||
});
|
||||
laydate.render({
|
||||
elem: '#dateend'
|
||||
});
|
||||
|
||||
//监听搜索
|
||||
form.on('submit(LAY-user-front-search)', function(data){
|
||||
var field = data.field;
|
||||
field.type = 'search';
|
||||
|
||||
admin.req( {
|
||||
type : "POST",
|
||||
url : '/agent/dojie',
|
||||
dataType : "json",
|
||||
data : field,
|
||||
done : function(result) { //返回数据根据结果进行相应的处理
|
||||
layui.layer.msg(result.msg, {icon: 6 });
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
admin.req( {
|
||||
type : "POST",
|
||||
url : '/agent/user',
|
||||
dataType : "json",
|
||||
data : {type : 'all'},
|
||||
done : function(result) { //返回数据根据结果进行相应的处理
|
||||
//提交 Ajax 成功后,关闭当前弹层并重载图表
|
||||
show_table(result.data);
|
||||
}
|
||||
});
|
||||
|
||||
admin.req( {
|
||||
type : "POST",
|
||||
url : '/agent/user_num',
|
||||
dataType : "json",
|
||||
data : {type : 'all'},
|
||||
done : function(result) { //返回数据根据结果进行相应的处理
|
||||
//提交 Ajax 成功后,关闭当前弹层并重载图表
|
||||
show_bin(result.data);
|
||||
}
|
||||
});
|
||||
|
||||
admin.req( {
|
||||
type : "POST",
|
||||
url : '/agent/user_money',
|
||||
dataType : "json",
|
||||
data : {type : 'all'},
|
||||
done : function(result) { //返回数据根据结果进行相应的处理
|
||||
//提交 Ajax 成功后,关闭当前弹层并重载图表
|
||||
show_money(result.data);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
function show_table (returnData){
|
||||
//区块轮播切换
|
||||
layui.use(['admin', 'carousel'], function(){
|
||||
var $ = layui.$
|
||||
,admin = layui.admin
|
||||
,carousel = layui.carousel
|
||||
,element = layui.element
|
||||
,device = layui.device();
|
||||
|
||||
//轮播切换
|
||||
$('.layadmin-carousel').each(function(){
|
||||
var othis = $(this);
|
||||
carousel.render({
|
||||
elem: this
|
||||
,width: '100%'
|
||||
,arrow: 'none'
|
||||
,interval: othis.data('interval')
|
||||
,autoplay: othis.data('autoplay') === true
|
||||
,trigger: (device.ios || device.android) ? 'click' : 'hover'
|
||||
,anim: othis.data('anim')
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
//柱状图
|
||||
layui.use(['echarts'], function(){
|
||||
var $ = layui.$
|
||||
,echarts = layui.echarts;
|
||||
|
||||
//标准柱状图
|
||||
var echnormcol = [], normcol = [
|
||||
{
|
||||
title : {
|
||||
text: '最近52周用户统计',
|
||||
subtext: '单位:个'
|
||||
},
|
||||
tooltip : {
|
||||
trigger: 'axis'
|
||||
},
|
||||
color:['#c23531', '#d48265'],
|
||||
legend: {
|
||||
data:['注册用户','活跃用户']
|
||||
},
|
||||
calculable : true,
|
||||
xAxis : [
|
||||
{
|
||||
type : 'category',
|
||||
data : returnData.xAxis //['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月']
|
||||
}
|
||||
],
|
||||
yAxis : [
|
||||
{
|
||||
type : 'value'
|
||||
}
|
||||
],
|
||||
series : [
|
||||
{
|
||||
name:'注册用户',
|
||||
type:'bar',
|
||||
data: returnData.reg, //[2.0, 4.9, 7.0, 23.2, 245.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
|
||||
markPoint : {
|
||||
data : [
|
||||
{type : 'max', name: '最大值'},
|
||||
{type : 'min', name: '最小值'}
|
||||
]
|
||||
},
|
||||
markLine : {
|
||||
data : [{type : 'average', name: '平均值'}]
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
name:'活跃用户',
|
||||
type:'bar',
|
||||
data: returnData.huoyue, //[2.0, 4.9, 7.0, 23.2, 245.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
|
||||
markPoint : {
|
||||
data : [
|
||||
{type : 'max', name: '最大值'},
|
||||
{type : 'min', name: '最小值'}
|
||||
]
|
||||
},
|
||||
markLine : {
|
||||
data : [{type : 'average', name: '平均值'}]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
,elemNormcol = $('#LAY-index-normcol').children('div')
|
||||
,renderNormcol = function(index){
|
||||
echnormcol[index] = echarts.init(elemNormcol[index], layui.echartsTheme);
|
||||
echnormcol[index].setOption(normcol[index]);
|
||||
window.onresize = echnormcol[index].resize;
|
||||
};
|
||||
if(!elemNormcol[0]) return;
|
||||
renderNormcol(0);
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
function show_bin (returnData) {
|
||||
//区块轮播切换
|
||||
layui.use(['admin', 'carousel'], function(){
|
||||
var $ = layui.$
|
||||
,admin = layui.admin
|
||||
,carousel = layui.carousel
|
||||
,element = layui.element
|
||||
,device = layui.device();
|
||||
|
||||
//轮播切换
|
||||
$('.layadmin-carousel').each(function(){
|
||||
var othis = $(this);
|
||||
carousel.render({
|
||||
elem: this
|
||||
,width: '100%'
|
||||
,arrow: 'none'
|
||||
,interval: othis.data('interval')
|
||||
,autoplay: othis.data('autoplay') === true
|
||||
,trigger: (device.ios || device.android) ? 'click' : 'hover'
|
||||
,anim: othis.data('anim')
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
//柱状图
|
||||
layui.use(['echarts'], function () {
|
||||
var $ = layui.$
|
||||
, echarts = layui.echarts;
|
||||
|
||||
var echheapcol = [], heapcol = [
|
||||
{
|
||||
title : {
|
||||
text: '用户身份饼状图',
|
||||
subtext: '单位:个',
|
||||
x:'center'
|
||||
},
|
||||
tooltip : {
|
||||
trigger: 'item',
|
||||
formatter: "{a} <br/>{b} : {c} ({d}%)"
|
||||
},
|
||||
legend: {
|
||||
orient: 'vertical',
|
||||
x: 'left',
|
||||
data: ['普通用户','一级代理商','二级代理商','三级代理商','四级代理商']
|
||||
},
|
||||
series : [
|
||||
{
|
||||
name: '访问来源',
|
||||
type: 'pie',
|
||||
radius : '55%',
|
||||
center: ['50%', '60%'],
|
||||
data:[
|
||||
{value:returnData.san, name:'普通用户'},
|
||||
{value:returnData.one, name:'一级代理商'},
|
||||
{value:returnData.two, name:'二级代理商'},
|
||||
{value:returnData.three, name:'三级代理商'},
|
||||
{value:returnData.four, name:'四级代理商'}
|
||||
],
|
||||
itemStyle: {
|
||||
emphasis: {
|
||||
shadowBlur: 10,
|
||||
shadowOffsetX: 0,
|
||||
shadowColor: 'rgba(0, 0, 0, 0.5)'
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
, elemHeapcol = $('#LAY-index-bin').children('div')
|
||||
, renderHeapcol = function (index) {
|
||||
echheapcol[index] = echarts.init(elemHeapcol[index], layui.echartsTheme);
|
||||
echheapcol[index].setOption(heapcol[index]);
|
||||
window.onresize = echheapcol[index].resize;
|
||||
};
|
||||
if (!elemHeapcol[0]) return;
|
||||
renderHeapcol(0);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
function show_money (returnData) {
|
||||
//区块轮播切换
|
||||
layui.use(['admin', 'carousel'], function(){
|
||||
var $ = layui.$
|
||||
,admin = layui.admin
|
||||
,carousel = layui.carousel
|
||||
,element = layui.element
|
||||
,device = layui.device();
|
||||
|
||||
//轮播切换
|
||||
$('.layadmin-carousel').each(function(){
|
||||
var othis = $(this);
|
||||
carousel.render({
|
||||
elem: this
|
||||
,width: '100%'
|
||||
,arrow: 'none'
|
||||
,interval: othis.data('interval')
|
||||
,autoplay: othis.data('autoplay') === true
|
||||
,trigger: (device.ios || device.android) ? 'click' : 'hover'
|
||||
,anim: othis.data('anim')
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
//柱状图
|
||||
layui.use(['echarts'], function () {
|
||||
var $ = layui.$
|
||||
, echarts = layui.echarts;
|
||||
|
||||
var echheapcol = [], heapcol = [
|
||||
{
|
||||
title : {
|
||||
text: '贡献收益',
|
||||
subtext: '单位:元',
|
||||
x:'center'
|
||||
},
|
||||
tooltip : {
|
||||
trigger: 'item',
|
||||
formatter: "{a} <br/>{b} : {c} ({d}%)"
|
||||
},
|
||||
legend: {
|
||||
orient: 'vertical',
|
||||
x: 'left',
|
||||
data: ['普通用户','一级代理商','二级代理商','三级代理商','四级代理商']
|
||||
},
|
||||
series : [
|
||||
{
|
||||
name: '访问来源',
|
||||
type: 'pie',
|
||||
radius : '55%',
|
||||
center: ['50%', '60%'],
|
||||
data:[
|
||||
{value:returnData.san, name:'普通用户'},
|
||||
{value:returnData.one, name:'一级代理商'},
|
||||
{value:returnData.two, name:'二级代理商'},
|
||||
{value:returnData.three, name:'三级代理商'},
|
||||
{value:returnData.four, name:'四级代理商'}
|
||||
],
|
||||
itemStyle: {
|
||||
emphasis: {
|
||||
shadowBlur: 10,
|
||||
shadowOffsetX: 0,
|
||||
shadowColor: 'rgba(0, 0, 0, 0.5)'
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
, elemHeapcol = $('#LAY-index-money').children('div')
|
||||
, renderHeapcol = function (index) {
|
||||
echheapcol[index] = echarts.init(elemHeapcol[index], layui.echartsTheme);
|
||||
echheapcol[index].setOption(heapcol[index]);
|
||||
window.onresize = echheapcol[index].resize;
|
||||
};
|
||||
if (!elemHeapcol[0]) return;
|
||||
renderHeapcol(0);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
@@ -0,0 +1,395 @@
|
||||
|
||||
|
||||
<title>代理商</title>
|
||||
|
||||
<div class="layui-card layadmin-header">
|
||||
<div class="layui-breadcrumb" lay-filter="breadcrumb">
|
||||
<a lay-href="">主页</a>
|
||||
<a><cite>代理商</cite></a>
|
||||
<a><cite>代理商用户</cite></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-row layui-col-space15">
|
||||
<div class="layui-col-md12">
|
||||
<div class="layui-card">
|
||||
<!--<div class="layui-card-header">标准柱状图</div>-->
|
||||
<div class="layui-card-body">
|
||||
|
||||
<div class="layui-carousel layadmin-carousel layadmin-dataview" data-anim="fade" lay-filter="LAY-index-normcol">
|
||||
<div carousel-item id="LAY-index-normcol">
|
||||
<div><i class="layui-icon layui-icon-loading1 layadmin-loading"></i></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md6">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
|
||||
<div class="layui-carousel layadmin-carousel layadmin-dataview" data-anim="fade" lay-filter="LAY-index-money">
|
||||
<div carousel-item id="LAY-index-money">
|
||||
<div><i class="layui-icon layui-icon-loading1 layadmin-loading"></i></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md6">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
|
||||
<div class="layui-carousel layadmin-carousel layadmin-dataview" data-anim="fade" lay-filter="LAY-index-bin">
|
||||
<div carousel-item id="LAY-index-bin">
|
||||
<div><i class="layui-icon layui-icon-loading1 layadmin-loading"></i></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
layui.define(function(exports){
|
||||
layui.use('useradmin', layui.factory('useradmin')).use(['admin', 'layer' , 'laydate' , 'form'], function(){
|
||||
var $ = layui.$
|
||||
,admin = layui.admin
|
||||
,laydate = layui.laydate
|
||||
,form = layui.form;
|
||||
|
||||
//日期
|
||||
laydate.render({
|
||||
elem: '#datestart'
|
||||
});
|
||||
laydate.render({
|
||||
elem: '#dateend'
|
||||
});
|
||||
|
||||
//监听搜索
|
||||
form.on('submit(LAY-user-front-search)', function(data){
|
||||
var field = data.field;
|
||||
field.type = 'search';
|
||||
|
||||
admin.req( {
|
||||
type : "POST",
|
||||
url : '/agent/dojie',
|
||||
dataType : "json",
|
||||
data : field,
|
||||
done : function(result) { //返回数据根据结果进行相应的处理
|
||||
layui.layer.msg(result.msg, {icon: 6 });
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
//订单图表
|
||||
admin.req( {
|
||||
type : "POST",
|
||||
url : '/agent/order',
|
||||
dataType : "json",
|
||||
data : {type : 'all'},
|
||||
done : function(result) { //返回数据根据结果进行相应的处理
|
||||
//提交 Ajax 成功后,关闭当前弹层并重载图表
|
||||
show_table(result.data);
|
||||
}
|
||||
});
|
||||
|
||||
//订单数量饼状图
|
||||
admin.req( {
|
||||
type : "POST",
|
||||
url : '/agent/order_num',
|
||||
dataType : "json",
|
||||
data : {type : 'all'},
|
||||
done : function(result) { //返回数据根据结果进行相应的处理
|
||||
//提交 Ajax 成功后,关闭当前弹层并重载图表
|
||||
console.log(result);
|
||||
|
||||
show_bin(result.data);
|
||||
}
|
||||
});
|
||||
|
||||
//订单金额饼状图
|
||||
admin.req( {
|
||||
type : "POST",
|
||||
url : '/agent/order_money',
|
||||
dataType : "json",
|
||||
data : {type : 'all'},
|
||||
done : function(result) { //返回数据根据结果进行相应的处理
|
||||
//提交 Ajax 成功后,关闭当前弹层并重载图表
|
||||
show_money(result.data);
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
function show_table (returnData){
|
||||
//区块轮播切换
|
||||
layui.use(['admin', 'carousel'], function(){
|
||||
var $ = layui.$
|
||||
,admin = layui.admin
|
||||
,carousel = layui.carousel
|
||||
,element = layui.element
|
||||
,device = layui.device();
|
||||
|
||||
//轮播切换
|
||||
$('.layadmin-carousel').each(function(){
|
||||
var othis = $(this);
|
||||
carousel.render({
|
||||
elem: this
|
||||
,width: '100%'
|
||||
,arrow: 'none'
|
||||
,interval: othis.data('interval')
|
||||
,autoplay: othis.data('autoplay') === true
|
||||
,trigger: (device.ios || device.android) ? 'click' : 'hover'
|
||||
,anim: othis.data('anim')
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
//柱状图
|
||||
layui.use(['echarts'], function(){
|
||||
var $ = layui.$
|
||||
,echarts = layui.echarts;
|
||||
|
||||
//标准柱状图
|
||||
var echnormcol = [], normcol = [
|
||||
{
|
||||
title : {
|
||||
text: '最近52周订单图表',
|
||||
subtext: '单位:个'
|
||||
},
|
||||
tooltip : {
|
||||
trigger: 'axis'
|
||||
},
|
||||
legend: {
|
||||
data:['已平仓','交易中']
|
||||
},
|
||||
calculable : true,
|
||||
xAxis : [
|
||||
{
|
||||
type : 'category',
|
||||
data : returnData.xAxis //['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月']
|
||||
}
|
||||
],
|
||||
yAxis : [
|
||||
{
|
||||
type : 'value'
|
||||
}
|
||||
],
|
||||
series : [
|
||||
{
|
||||
name:'已平仓',
|
||||
type:'bar',
|
||||
data: returnData.series, //[2.0, 4.9, 7.0, 23.2, 245.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
|
||||
markPoint : {
|
||||
data : [
|
||||
{type : 'max', name: '最大值'},
|
||||
{type : 'min', name: '最小值'}
|
||||
]
|
||||
},
|
||||
markLine : {
|
||||
data : [{type : 'average', name: '平均值'}]
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
name:'交易中',
|
||||
type:'bar',
|
||||
data: returnData.selling, //[2.0, 4.9, 7.0, 23.2, 245.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
|
||||
markPoint : {
|
||||
data : [
|
||||
{type : 'max', name: '最大值'},
|
||||
{type : 'min', name: '最小值'}
|
||||
]
|
||||
},
|
||||
markLine : {
|
||||
data : [{type : 'average', name: '平均值'}]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
,elemNormcol = $('#LAY-index-normcol').children('div')
|
||||
,renderNormcol = function(index){
|
||||
echnormcol[index] = echarts.init(elemNormcol[index], layui.echartsTheme);
|
||||
echnormcol[index].setOption(normcol[index]);
|
||||
window.onresize = echnormcol[index].resize;
|
||||
};
|
||||
if(!elemNormcol[0]) return;
|
||||
renderNormcol(0);
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
function show_bin (returnData) {
|
||||
//区块轮播切换
|
||||
layui.use(['admin', 'carousel'], function(){
|
||||
var $ = layui.$
|
||||
,admin = layui.admin
|
||||
,carousel = layui.carousel
|
||||
,element = layui.element
|
||||
,device = layui.device();
|
||||
|
||||
//轮播切换
|
||||
$('.layadmin-carousel').each(function(){
|
||||
var othis = $(this);
|
||||
carousel.render({
|
||||
elem: this
|
||||
,width: '100%'
|
||||
,arrow: 'none'
|
||||
,interval: othis.data('interval')
|
||||
,autoplay: othis.data('autoplay') === true
|
||||
,trigger: (device.ios || device.android) ? 'click' : 'hover'
|
||||
,anim: othis.data('anim')
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
//柱状图
|
||||
layui.use(['echarts'], function () {
|
||||
var $ = layui.$
|
||||
, echarts = layui.echarts;
|
||||
|
||||
var echheapcol = [], heapcol = [
|
||||
{
|
||||
title : {
|
||||
text: '订单统计【订单数量】',
|
||||
subtext: '单位:个',
|
||||
x:'center'
|
||||
},
|
||||
tooltip : {
|
||||
trigger: 'item',
|
||||
formatter: "{a} <br/>{b} : {c} ({d}%)"
|
||||
},
|
||||
color:['#c23531', '#d48265','#6ab0b8'],
|
||||
legend: {
|
||||
orient: 'vertical',
|
||||
x: 'left',
|
||||
data: ['交易中','平仓中','已平仓']
|
||||
},
|
||||
series : [
|
||||
{
|
||||
name: '访问来源',
|
||||
type: 'pie',
|
||||
radius : '55%',
|
||||
center: ['50%', '60%'],
|
||||
data:[
|
||||
{value:returnData.a, name:'交易中'},
|
||||
{value:returnData.b, name:'平仓中'},
|
||||
{value:returnData.c, name:'已平仓'}
|
||||
],
|
||||
itemStyle: {
|
||||
emphasis: {
|
||||
shadowBlur: 10,
|
||||
shadowOffsetX: 0,
|
||||
shadowColor: 'rgba(0, 0, 0, 0.5)'
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
, elemHeapcol = $('#LAY-index-bin').children('div')
|
||||
, renderHeapcol = function (index) {
|
||||
echheapcol[index] = echarts.init(elemHeapcol[index], layui.echartsTheme);
|
||||
echheapcol[index].setOption(heapcol[index]);
|
||||
window.onresize = echheapcol[index].resize;
|
||||
};
|
||||
if (!elemHeapcol[0]) return;
|
||||
renderHeapcol(0);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
function show_money (returnData) {
|
||||
//区块轮播切换
|
||||
layui.use(['admin', 'carousel'], function(){
|
||||
var $ = layui.$
|
||||
,admin = layui.admin
|
||||
,carousel = layui.carousel
|
||||
,element = layui.element
|
||||
,device = layui.device();
|
||||
|
||||
//轮播切换
|
||||
$('.layadmin-carousel').each(function(){
|
||||
var othis = $(this);
|
||||
carousel.render({
|
||||
elem: this
|
||||
,width: '100%'
|
||||
,arrow: 'none'
|
||||
,interval: othis.data('interval')
|
||||
,autoplay: othis.data('autoplay') === true
|
||||
,trigger: (device.ios || device.android) ? 'click' : 'hover'
|
||||
,anim: othis.data('anim')
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
//柱状图
|
||||
layui.use(['echarts'], function () {
|
||||
var $ = layui.$
|
||||
, echarts = layui.echarts;
|
||||
|
||||
var echheapcol = [], heapcol = [
|
||||
{
|
||||
title : {
|
||||
text: '团队总订单【订单金额】',
|
||||
subtext: '单位:元',
|
||||
x:'center'
|
||||
},
|
||||
tooltip : {
|
||||
trigger: 'item',
|
||||
formatter: "{a} <br/>{b} : {c} ({d}%)"
|
||||
},
|
||||
color:['#c23531', '#d48265','#6ab0b8'],
|
||||
legend: {
|
||||
orient: 'vertical',
|
||||
x: 'left',
|
||||
data: ['交易中','平仓中','已平仓']
|
||||
},
|
||||
series : [
|
||||
{
|
||||
name: '访问来源',
|
||||
type: 'pie',
|
||||
radius : '55%',
|
||||
center: ['50%', '60%'],
|
||||
data:[
|
||||
{value:returnData.a, name:'交易中'},
|
||||
{value:returnData.b, name:'平仓中'},
|
||||
{value:returnData.c, name:'已平仓'}
|
||||
],
|
||||
itemStyle: {
|
||||
emphasis: {
|
||||
shadowBlur: 10,
|
||||
shadowOffsetX: 0,
|
||||
shadowColor: 'rgba(0, 0, 0, 0.5)'
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
, elemHeapcol = $('#LAY-index-money').children('div')
|
||||
, renderHeapcol = function (index) {
|
||||
echheapcol[index] = echarts.init(elemHeapcol[index], layui.echartsTheme);
|
||||
echheapcol[index].setOption(heapcol[index]);
|
||||
window.onresize = echheapcol[index].resize;
|
||||
};
|
||||
if (!elemHeapcol[0]) return;
|
||||
renderHeapcol(0);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
@@ -0,0 +1,420 @@
|
||||
|
||||
|
||||
<title>代理商</title>
|
||||
|
||||
<div class="layui-card layadmin-header">
|
||||
<div class="layui-breadcrumb" lay-filter="breadcrumb">
|
||||
<a lay-href="">主页</a>
|
||||
<a><cite>代理商</cite></a>
|
||||
<a><cite>代理商用户</cite></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-row layui-col-space15">
|
||||
<div class="layui-col-md12">
|
||||
<div class="layui-card">
|
||||
<!--<div class="layui-card-header">标准柱状图</div>-->
|
||||
<div class="layui-card-body">
|
||||
|
||||
<div class="layui-carousel layadmin-carousel layadmin-dataview" data-anim="fade" lay-filter="LAY-index-normcol">
|
||||
<div carousel-item id="LAY-index-normcol">
|
||||
<div><i class="layui-icon layui-icon-loading1 layadmin-loading"></i></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md6">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
|
||||
<div class="layui-carousel layadmin-carousel layadmin-dataview" data-anim="fade" lay-filter="LAY-index-money">
|
||||
<div carousel-item id="LAY-index-money">
|
||||
<div><i class="layui-icon layui-icon-loading1 layadmin-loading"></i></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md6">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
|
||||
<div class="layui-carousel layadmin-carousel layadmin-dataview" data-anim="fade" lay-filter="LAY-index-bin">
|
||||
<div carousel-item id="LAY-index-bin">
|
||||
<div><i class="layui-icon layui-icon-loading1 layadmin-loading"></i></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
layui.define(function(exports){
|
||||
layui.use('useradmin', layui.factory('useradmin')).use(['admin', 'layer' , 'laydate' , 'form'], function(){
|
||||
var $ = layui.$
|
||||
,admin = layui.admin
|
||||
,laydate = layui.laydate
|
||||
,form = layui.form;
|
||||
|
||||
//日期
|
||||
laydate.render({
|
||||
elem: '#datestart'
|
||||
});
|
||||
laydate.render({
|
||||
elem: '#dateend'
|
||||
});
|
||||
|
||||
//监听搜索
|
||||
form.on('submit(LAY-user-front-search)', function(data){
|
||||
var field = data.field;
|
||||
field.type = 'search';
|
||||
|
||||
admin.req( {
|
||||
type : "POST",
|
||||
url : '/agent/dojie',
|
||||
dataType : "json",
|
||||
data : field,
|
||||
done : function(result) { //返回数据根据结果进行相应的处理
|
||||
layui.layer.msg(result.msg, {icon: 6 });
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
admin.req( {
|
||||
type : "POST",
|
||||
url : '/agent/agental',
|
||||
dataType : "json",
|
||||
data : {type : 'all'},
|
||||
done : function(result) { //返回数据根据结果进行相应的处理
|
||||
//提交 Ajax 成功后,关闭当前弹层并重载图表
|
||||
show_table(result.data);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
admin.req( {
|
||||
type : "POST",
|
||||
url : '/agent/agental_t',
|
||||
dataType : "json",
|
||||
data : {type : 'all'},
|
||||
done : function(result) { //返回数据根据结果进行相应的处理
|
||||
//提交 Ajax 成功后,关闭当前弹层并重载图表
|
||||
show_bin(result.data);
|
||||
}
|
||||
});
|
||||
|
||||
admin.req( {
|
||||
type : "POST",
|
||||
url : '/agent/agental_s',
|
||||
dataType : "json",
|
||||
data : {type : 'all'},
|
||||
done : function(result) { //返回数据根据结果进行相应的处理
|
||||
//提交 Ajax 成功后,关闭当前弹层并重载图表
|
||||
show_money(result.data);
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
function show_table (returnData){
|
||||
//区块轮播切换
|
||||
layui.use(['admin', 'carousel'], function(){
|
||||
var $ = layui.$
|
||||
,admin = layui.admin
|
||||
,carousel = layui.carousel
|
||||
,element = layui.element
|
||||
,device = layui.device();
|
||||
|
||||
//轮播切换
|
||||
$('.layadmin-carousel').each(function(){
|
||||
var othis = $(this);
|
||||
carousel.render({
|
||||
elem: this
|
||||
,width: '100%'
|
||||
,arrow: 'none'
|
||||
,interval: othis.data('interval')
|
||||
,autoplay: othis.data('autoplay') === true
|
||||
,trigger: (device.ios || device.android) ? 'click' : 'hover'
|
||||
,anim: othis.data('anim')
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
var xAxisData = [];
|
||||
var data1 = [];
|
||||
var data2 = [];
|
||||
var data3 = [];
|
||||
var data4 = [];
|
||||
|
||||
for (var i = 0; i < 10; i++) {
|
||||
xAxisData.push('Class' + i);
|
||||
data1.push((Math.random() * 2).toFixed(2));
|
||||
data2.push(-Math.random().toFixed(2));
|
||||
data3.push((Math.random() * 5).toFixed(2));
|
||||
data4.push((Math.random() + 0.3).toFixed(2));
|
||||
}
|
||||
|
||||
var itemStyle = {
|
||||
normal: {
|
||||
},
|
||||
emphasis: {
|
||||
barBorderWidth: 1,
|
||||
shadowBlur: 10,
|
||||
shadowOffsetX: 0,
|
||||
shadowOffsetY: 0,
|
||||
shadowColor: 'rgba(0,0,0,0.5)'
|
||||
}
|
||||
};
|
||||
//柱状图
|
||||
layui.use(['echarts'], function(){
|
||||
var $ = layui.$
|
||||
,echarts = layui.echarts;
|
||||
|
||||
//标准柱状图
|
||||
var echnormcol = [], normcol = [
|
||||
{
|
||||
title : {
|
||||
text: '最近52周收益统计',
|
||||
subtext: '单位:元'
|
||||
},
|
||||
tooltip : {
|
||||
trigger: 'axis'
|
||||
},
|
||||
color:['#c23531', '#d48265'],
|
||||
legend: {
|
||||
data:['头寸统计','手续费统计']
|
||||
},
|
||||
calculable : true,
|
||||
xAxis : [
|
||||
{
|
||||
type : 'category',
|
||||
data : returnData.xAxis //['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月']
|
||||
}
|
||||
],
|
||||
yAxis : [
|
||||
{
|
||||
type : 'value'
|
||||
}
|
||||
],
|
||||
series : [
|
||||
{
|
||||
name:'头寸统计',
|
||||
type:'bar',
|
||||
data: returnData.tocufy, //[2.0, 4.9, 7.0, 23.2, 245.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
|
||||
markPoint : {
|
||||
data : [
|
||||
{type : 'max', name: '最大值'},
|
||||
{type : 'min', name: '最小值'}
|
||||
]
|
||||
},
|
||||
markLine : {
|
||||
data : [{type : 'average', name: '平均值'}]
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
name:'手续费统计',
|
||||
type:'bar',
|
||||
data: returnData.sxuf, //[2.0, 4.9, 7.0, 23.2, 245.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
|
||||
markPoint : {
|
||||
data : [
|
||||
{type : 'max', name: '最大值'},
|
||||
{type : 'min', name: '最小值'}
|
||||
]
|
||||
},
|
||||
markLine : {
|
||||
data : [{type : 'average', name: '平均值'}]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
,elemNormcol = $('#LAY-index-normcol').children('div')
|
||||
,renderNormcol = function(index){
|
||||
echnormcol[index] = echarts.init(elemNormcol[index], layui.echartsTheme);
|
||||
echnormcol[index].setOption(normcol[index]);
|
||||
window.onresize = echnormcol[index].resize;
|
||||
};
|
||||
if(!elemNormcol[0]) return;
|
||||
renderNormcol(0);
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
function show_bin (returnData) {
|
||||
//区块轮播切换
|
||||
layui.use(['admin', 'carousel'], function(){
|
||||
var $ = layui.$
|
||||
,admin = layui.admin
|
||||
,carousel = layui.carousel
|
||||
,element = layui.element
|
||||
,device = layui.device();
|
||||
|
||||
//轮播切换
|
||||
$('.layadmin-carousel').each(function(){
|
||||
var othis = $(this);
|
||||
carousel.render({
|
||||
elem: this
|
||||
,width: '100%'
|
||||
,arrow: 'none'
|
||||
,interval: othis.data('interval')
|
||||
,autoplay: othis.data('autoplay') === true
|
||||
,trigger: (device.ios || device.android) ? 'click' : 'hover'
|
||||
,anim: othis.data('anim')
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
//柱状图
|
||||
layui.use(['echarts'], function () {
|
||||
var $ = layui.$
|
||||
, echarts = layui.echarts;
|
||||
|
||||
var echheapcol = [], heapcol = [
|
||||
{
|
||||
title : {
|
||||
text: '头寸统计',
|
||||
subtext: '单位:元',
|
||||
x:'center'
|
||||
},
|
||||
tooltip : {
|
||||
trigger: 'item',
|
||||
formatter: "{a} <br/>{b} : {c} ({d}%)"
|
||||
},
|
||||
legend: {
|
||||
orient: 'vertical',
|
||||
x: 'left',
|
||||
data: ['普通用户','一级代理商','二级代理商','三级代理商','四级代理商']
|
||||
},
|
||||
series : [
|
||||
{
|
||||
name: '访问来源',
|
||||
type: 'pie',
|
||||
radius : '55%',
|
||||
center: ['50%', '60%'],
|
||||
data:[
|
||||
{value:returnData.san, name:'普通用户'},
|
||||
{value:returnData.one, name:'一级代理商'},
|
||||
{value:returnData.two, name:'二级代理商'},
|
||||
{value:returnData.three, name:'三级代理商'},
|
||||
{value:returnData.four, name:'四级代理商'}
|
||||
],
|
||||
itemStyle: {
|
||||
emphasis: {
|
||||
shadowBlur: 10,
|
||||
shadowOffsetX: 0,
|
||||
shadowColor: 'rgba(0, 0, 0, 0.5)'
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
, elemHeapcol = $('#LAY-index-bin').children('div')
|
||||
, renderHeapcol = function (index) {
|
||||
echheapcol[index] = echarts.init(elemHeapcol[index], layui.echartsTheme);
|
||||
echheapcol[index].setOption(heapcol[index]);
|
||||
window.onresize = echheapcol[index].resize;
|
||||
};
|
||||
if (!elemHeapcol[0]) return;
|
||||
renderHeapcol(0);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
function show_money (returnData) {
|
||||
//区块轮播切换
|
||||
layui.use(['admin', 'carousel'], function(){
|
||||
var $ = layui.$
|
||||
,admin = layui.admin
|
||||
,carousel = layui.carousel
|
||||
,element = layui.element
|
||||
,device = layui.device();
|
||||
|
||||
//轮播切换
|
||||
$('.layadmin-carousel').each(function(){
|
||||
var othis = $(this);
|
||||
carousel.render({
|
||||
elem: this
|
||||
,width: '100%'
|
||||
,arrow: 'none'
|
||||
,interval: othis.data('interval')
|
||||
,autoplay: othis.data('autoplay') === true
|
||||
,trigger: (device.ios || device.android) ? 'click' : 'hover'
|
||||
,anim: othis.data('anim')
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
//柱状图
|
||||
layui.use(['echarts'], function () {
|
||||
var $ = layui.$
|
||||
, echarts = layui.echarts;
|
||||
|
||||
var echheapcol = [], heapcol = [
|
||||
{
|
||||
title : {
|
||||
text: '手续费统计',
|
||||
subtext: '单位:元',
|
||||
x:'center'
|
||||
},
|
||||
tooltip : {
|
||||
trigger: 'item',
|
||||
formatter: "{a} <br/>{b} : {c} ({d}%)"
|
||||
},
|
||||
legend: {
|
||||
orient: 'vertical',
|
||||
x: 'left',
|
||||
data: ['普通用户','一级代理商','二级代理商','三级代理商','四级代理商']
|
||||
},
|
||||
series : [
|
||||
{
|
||||
name: '访问来源',
|
||||
type: 'pie',
|
||||
radius : '55%',
|
||||
center: ['50%', '60%'],
|
||||
data:[
|
||||
{value:returnData.san, name:'普通用户'},
|
||||
{value:returnData.one, name:'一级代理商'},
|
||||
{value:returnData.two, name:'二级代理商'},
|
||||
{value:returnData.three, name:'三级代理商'},
|
||||
{value:returnData.four, name:'四级代理商'}
|
||||
],
|
||||
itemStyle: {
|
||||
emphasis: {
|
||||
shadowBlur: 10,
|
||||
shadowOffsetX: 0,
|
||||
shadowColor: 'rgba(0, 0, 0, 0.5)'
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
, elemHeapcol = $('#LAY-index-money').children('div')
|
||||
, renderHeapcol = function (index) {
|
||||
echheapcol[index] = echarts.init(elemHeapcol[index], layui.echartsTheme);
|
||||
echheapcol[index].setOption(heapcol[index]);
|
||||
window.onresize = echheapcol[index].resize;
|
||||
};
|
||||
if (!elemHeapcol[0]) return;
|
||||
renderHeapcol(0);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
@@ -0,0 +1,96 @@
|
||||
|
||||
<title>设置我的资料</title>
|
||||
|
||||
<div class="layui-card layadmin-header">
|
||||
<div class="layui-breadcrumb" lay-filter="breadcrumb">
|
||||
<a lay-href="">主页</a>
|
||||
<a><cite>设置</cite></a>
|
||||
<a><cite>我的资料</cite></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-row layui-col-space15">
|
||||
<div class="layui-col-md12">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">设置我的资料</div>
|
||||
<div class="layui-card-body" pad15>
|
||||
|
||||
<div class="layui-form" lay-filter="">
|
||||
<script type="text/html" template lay-url="/agent/user_info" >
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">我的角色</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" value="{{ d.data.self_info }}" readonly class="layui-input">
|
||||
<input type="hidden" name="user_id" value="{{ d.data.user_id }}" readonly >
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">当前角色不可更改为其它角色</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">用户名</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="username" value="{{ d.data.username }}" readonly class="layui-input">
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">不可修改。一般用于后台登入名</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">昵称</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="nickname" value="{{ d.data.user.nickname }}" lay-verify="nickname" 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="sex" value="男" title="男">
|
||||
<input type="radio" name="sex" value="女" title="女" checked>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">头像</label>
|
||||
<div class="layui-input-inline">
|
||||
<input name="avatar" lay-verify="required" id="LAY_avatarSrc" placeholder="图片地址" value="http://cdn.layui.com/avatar/168.jpg" class="layui-input">
|
||||
</div>
|
||||
<div class="layui-input-inline layui-btn-container" style="width: auto;">
|
||||
<button type="button" class="layui-btn layui-btn-primary" id="LAY_avatarUpload">
|
||||
<i class="layui-icon"></i>上传图片
|
||||
</button>
|
||||
<button class="layui-btn layui-btn-primary" layadmin-event="avartatPreview">查看图片</button >
|
||||
</div>
|
||||
</div>-->
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">手机</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="phone" value="{{ d.data.user.phone }}" lay-verify="phone" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">邮箱</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="email" value="{{ d.data.user.email }}" lay-verify="email" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="layui-form-item layui-form-text">
|
||||
<label class="layui-form-label">备注</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="remarks" placeholder="请输入内容" class="layui-textarea">{{ d.data.user.extension_code }}</textarea>
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block">
|
||||
<button class="layui-btn" lay-submit lay-filter="setmyinfo">确认修改</button>
|
||||
<button type="reset" class="layui-btn layui-btn-primary">重新填写</button>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
layui.use('set', layui.factory('set'));
|
||||
</script>
|
||||
@@ -0,0 +1,63 @@
|
||||
<title>设置我的密码</title>
|
||||
|
||||
<div class="layui-card layadmin-header">
|
||||
<div class="layui-breadcrumb" lay-filter="breadcrumb">
|
||||
<a lay-href="">主页</a>
|
||||
<a><cite>设置</cite></a>
|
||||
<a><cite>我的密码</cite></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-row layui-col-space15">
|
||||
<div class="layui-col-md12">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">修改密码</div>
|
||||
<div class="layui-card-body" pad15>
|
||||
|
||||
<div class="layui-form" lay-filter="">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">当前密码</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="password" name="oldPassword" lay-verify="required" lay-verType="tips" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">新密码</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="password" name="password" lay-verify="pass" lay-verType="tips" autocomplete="off" id="LAY_password" class="layui-input">
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">6到16个字符</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">确认新密码</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="password" name="repassword" lay-verify="repass" lay-verType="tips" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">是否同步用户密码</label>
|
||||
|
||||
<div class="layui-input-inline">
|
||||
<input type="radio" name="is_tong" value="1" title="同步" >
|
||||
<input type="radio" name="is_tong" value="0" title="不同步" checked >
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block">
|
||||
<button class="layui-btn" lay-submit lay-filter="setmypass">确认修改</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
layui.use('set', layui.factory('set'));
|
||||
</script>
|
||||
@@ -0,0 +1,68 @@
|
||||
|
||||
<div class="layui-card-header">我的邀请二维码</div>
|
||||
<div class="layui-card-body layui-text layadmin-about">
|
||||
<div class="layui-card-body">
|
||||
<div id="code" class="flex alcenter jscenter"></div>
|
||||
</div>
|
||||
<p id="url"></p>
|
||||
</div>
|
||||
|
||||
|
||||
<script src="../../js/jquery-1.11.1.min.js"></script>
|
||||
<script src="../../js/jquery.qrcode.min.js"></script>
|
||||
<script src="../../js/qrcode.js"></script>
|
||||
|
||||
<script>
|
||||
|
||||
|
||||
layui.use(['admin', 'table', 'layer' , 'laydate'], function () {
|
||||
var $ = layui.$
|
||||
, admin = layui.admin
|
||||
, view = layui.view
|
||||
, table = layui.table
|
||||
, layer = layui.layer
|
||||
, laydate = layui.laydate
|
||||
, form = layui.form;
|
||||
|
||||
|
||||
//日期
|
||||
laydate.render({
|
||||
elem: '#datestart'
|
||||
});
|
||||
laydate.render({
|
||||
elem: '#dateend'
|
||||
});
|
||||
|
||||
|
||||
admin.req({
|
||||
type: "POST",
|
||||
url: '/agent/get_my_invite_code',
|
||||
dataType: "json",
|
||||
data: {all: 1},
|
||||
done: function (result) { //返回数据根据结果进行相应的处理
|
||||
|
||||
var invite_code = result.data.invite_code;
|
||||
var moblie_h5_url = result.data.moblie_h5_url;
|
||||
|
||||
var qr = new QRCode('code',{
|
||||
width: 240, //宽度
|
||||
height:240, //高度
|
||||
colorDark:'#000',
|
||||
colorLight:'#fff',
|
||||
correctLevel:QRCode.CorrectLevel.H
|
||||
});
|
||||
qr.clear();
|
||||
|
||||
if (result.data.is_admin == 1){
|
||||
qr.makeCode( moblie_h5_url +'/mobile/register.html?code=' + invite_code);
|
||||
$("#url").html( moblie_h5_url +'/mobile/register.html?code='+ invite_code);
|
||||
}else{
|
||||
qr.makeCode( moblie_h5_url +'/mobile/register.html?code=' + invite_code);
|
||||
$("#url").html( moblie_h5_url +'/mobile/register.html?code=' + invite_code);
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
@@ -0,0 +1,3 @@
|
||||
|
||||
<title>授权</title>
|
||||
<iframe src="//www.layui.com/admin/#get" frameborder="0" class="layadmin-iframe"></iframe>
|
||||
@@ -0,0 +1,22 @@
|
||||
|
||||
<!-- 更多面板的模板 -->
|
||||
<div class="layadmin-menu-list">
|
||||
<div class="layui-card-header" layadmin-event="about">
|
||||
<a href="javascript:;">
|
||||
<i class="layui-icon layui-icon-about" style="font-size: 20px;"></i>
|
||||
获得产品
|
||||
</a>
|
||||
</div>
|
||||
<div class="layui-card-header" layadmin-event="theme">
|
||||
<a href="javascript:;">
|
||||
<i class="layui-icon layui-icon-theme"></i>
|
||||
设置主题
|
||||
</a>
|
||||
</div>
|
||||
<div class="layui-card-header" layadmin-event="note">
|
||||
<a href="javascript:;">
|
||||
<i class="layui-icon layui-icon-note"></i>
|
||||
本地便签
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,43 @@
|
||||
|
||||
<!-- 主题设置模板 -->
|
||||
|
||||
<script type="text/html" template lay-done="layui.data.theme();">
|
||||
{{#
|
||||
var local = layui.data(layui.setter.tableName)
|
||||
,theme = local.theme || {}
|
||||
,themeColorIndex = parseInt((theme && theme.color) ? theme.color.index : 0) || 0;
|
||||
}}
|
||||
|
||||
<div class="layui-card-header">
|
||||
配色方案
|
||||
</div>
|
||||
<div class="layui-card-body layadmin-setTheme">
|
||||
<ul class="layadmin-setTheme-color">
|
||||
{{# layui.each(layui.setter.theme.color, function(index, item){ }}
|
||||
<li layadmin-event="setTheme" data-index="{{ index }}" data-alias="{{ item.alias }}"
|
||||
{{ index === themeColorIndex ? 'class="layui-this"' : '' }} title="{{ item.alias }}">
|
||||
<div class="layadmin-setTheme-header" style="background-color: {{ item.header }};"></div>
|
||||
<div class="layadmin-setTheme-side" style="background-color: {{ item.main }};">
|
||||
<div class="layadmin-setTheme-logo" style="background-color: {{ item.logo }};"></div>
|
||||
</div>
|
||||
</li>
|
||||
{{# }); }}
|
||||
</ul>
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<script>
|
||||
layui.data.theme = function(){
|
||||
layui.use('form', function(){
|
||||
var form = layui.form
|
||||
,admin = layui.admin;
|
||||
|
||||
//监听隐藏开关
|
||||
form.on('switch(system-theme-sideicon)', function(){
|
||||
admin.theme({
|
||||
hideSideIcon: this.checked
|
||||
})
|
||||
});
|
||||
});
|
||||
};
|
||||
</script>
|
||||
@@ -0,0 +1,3 @@
|
||||
|
||||
注意:
|
||||
该目录存放的是 layuiAdmin 的系统模板碎片,很多界面需要依赖到它,请勿剔除。
|
||||
@@ -0,0 +1,51 @@
|
||||
|
||||
<title>标题</title>
|
||||
|
||||
<div class="layui-card layadmin-header">
|
||||
<div class="layui-breadcrumb" lay-filter="breadcrumb">
|
||||
<a lay-href="">主页</a>
|
||||
<a><cite>组件</cite></a>
|
||||
<a><cite>XXX</cite></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
/* 这段样式只是用于演示 */
|
||||
|
||||
</style>
|
||||
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-row layui-col-space15">
|
||||
<div class="layui-col-md12">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">YYY</div>
|
||||
<div class="layui-card-body">
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md12">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">ZZZ</div>
|
||||
<div class="layui-card-body">
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
layui.use(['admin'], function(){
|
||||
var $ = layui.$
|
||||
,admin = layui.admin
|
||||
,element = layui.element
|
||||
,router = layui.router();
|
||||
|
||||
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,239 @@
|
||||
|
||||
<title>散户管理</title>
|
||||
|
||||
<div class="layui-card layadmin-header">
|
||||
<div class="layui-breadcrumb" lay-filter="breadcrumb">
|
||||
<a lay-href="">主页</a>
|
||||
<a><cite>出入金管理</cite></a>
|
||||
<a><cite>出入金管理</cite></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-card">
|
||||
<div class="layui-form layui-card-header layuiadmin-card-header-auto" lay-filter="layadmin-userfront-formlist">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">开始日期</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="start" id="datestart" placeholder="yyyy-MM-dd" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">结束日期</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="end" id="dateend" placeholder="yyyy-MM-dd" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">ID</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="id" placeholder="请输入" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">用户名</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="account_number" placeholder="请输入" autocomplete="off"
|
||||
class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<button class="layui-btn layuiadmin-btn-useradmin" lay-submit lay-filter="san-user-search">
|
||||
<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
|
||||
</button>
|
||||
<button class="layui-btn layuiadmin-btn-useradmin" onclick="javascript:window.location.href='order/churu_excel'">导出Excel</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--<div class="layui-card-body">-->
|
||||
<!--<div class="layui-carousel layadmin-backlog" style="background-color: #fff">-->
|
||||
<!--<ul class="layui-row layui-col-space10 layui-this">-->
|
||||
<!--<li class="layui-col-xs3">-->
|
||||
<!--<a href="javascript:;" onclick="layer.tips('总用户数', this, {tips: 3});" class="layadmin-backlog-body" style="color: #fff;background-color: #01AAED;">-->
|
||||
<!--<h3>总用户数:</h3>-->
|
||||
<!--<p><cite style="color:#fff" id="_num">0</cite></p>-->
|
||||
<!--</a>-->
|
||||
<!--</li>-->
|
||||
<!--<li class="layui-col-xs3">-->
|
||||
<!--<a href="javascript:;" onclick="layer.tips('代理商用户数', this, {tips: 3});" class="layadmin-backlog-body" style="color: #fff;background-color: #01AAED;">-->
|
||||
<!--<h3>代理商用户数</h3>-->
|
||||
<!--<p><cite style="color:#fff" id="_daili">0</cite></p>-->
|
||||
<!--</a>-->
|
||||
<!--</li>-->
|
||||
<!--<li class="layui-col-xs3">-->
|
||||
<!--<a href="javascript:;" onclick="layer.tips('可用总USDT', this, {tips: 3});" class="layadmin-backlog-body" style="color: #fff;background-color: #01AAED;">-->
|
||||
<!--<h3>可用总USDT:</h3>-->
|
||||
<!--<p><cite style="color:#fff" id="_usdt">0.00000000</cite></p>-->
|
||||
<!--</a>-->
|
||||
<!--</li>-->
|
||||
<!--<li class="layui-col-xs3">-->
|
||||
<!--<a href="javascript:;" onclick="layer.tips('可用总保证金', this, {tips: 3});" class="layadmin-backlog-body" style="color: #fff;background-color: #01AAED;">-->
|
||||
<!--<h3>可用总保证金:</h3>-->
|
||||
<!--<p><cite style="color:#fff" id="_caution_money">0.00000000</cite></p>-->
|
||||
<!--</a>-->
|
||||
<!--</li>-->
|
||||
<!--</ul>-->
|
||||
<!--</div>-->
|
||||
<!--</div>-->
|
||||
|
||||
|
||||
<div class="layui-card-body">
|
||||
<div style="padding-bottom: 10px;">
|
||||
<!--<button class="layui-btn layuiadmin-btn-useradmin" data-type="batchdel">删除</button>-->
|
||||
<!--<button class="layui-btn layuiadmin-btn-useradmin" data-type="add">用户</button>-->
|
||||
</div>
|
||||
|
||||
<table id="san-user-manage" lay-filter="san-user-manage"></table>
|
||||
<!--<script type="text/html" id="imgTpl"> -->
|
||||
<!--<img style="display: inline-block; width: 50%; height: 100%;" src= {{ d.avatar }}>-->
|
||||
<!--</script> -->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="table-useradmin-webuser">
|
||||
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="order">查看订单</a>
|
||||
</script>
|
||||
|
||||
<script>
|
||||
layui.use(['useradmin'] ,layui.factory('useradmin')).use(['admin', 'table', 'layer' , 'laydate'], function () {
|
||||
var $ = layui.$
|
||||
, admin = layui.admin
|
||||
, view = layui.view
|
||||
, table = layui.table
|
||||
, layer = layui.layer
|
||||
, laydate = layui.laydate
|
||||
, form = layui.form;
|
||||
|
||||
|
||||
//日期
|
||||
laydate.render({
|
||||
elem: '#datestart'
|
||||
,type: 'datetime'
|
||||
});
|
||||
laydate.render({
|
||||
elem: '#dateend'
|
||||
,type: 'datetime'
|
||||
});
|
||||
|
||||
|
||||
var router = layui.router();
|
||||
parent_id = router.search.parent_id || 0;
|
||||
|
||||
|
||||
admin.req( {
|
||||
type : "POST",
|
||||
url : '/agent/get_user_num',
|
||||
dataType : "json",
|
||||
data : {all : 1 , parent_id : parent_id},
|
||||
done : function(result) { //返回数据根据结果进行相应的处理
|
||||
$("#_num").html(result.data._num);
|
||||
$("#_daili").html(result.data._daili);
|
||||
$("#_usdt").html(result.data._usdt);
|
||||
$("#_caution_money").html(result.data._caution_money);
|
||||
}
|
||||
});
|
||||
|
||||
var router = layui.router();
|
||||
parent_id = router.search.parent_id || 0;
|
||||
|
||||
console.log(parent_id);
|
||||
|
||||
load(parent_id);
|
||||
|
||||
function load(parent_id) {
|
||||
parent_id = parent_id || 0;
|
||||
|
||||
table.render({
|
||||
elem: '#san-user-manage'
|
||||
, url: '/agent/user/huazhuan_lists?parent_id=' + parent_id //模拟接口
|
||||
, cols: [[
|
||||
{type: 'checkbox', fixed: 'left'}
|
||||
, {field: 'id', width: 60, title: 'ID', sort: true}
|
||||
, {field: 'account_number', title: '用户名', minWidth: 150}
|
||||
, {field: 'number', title: '划转数量', minWidth: 150}
|
||||
, {field: 'type', title: '划转类型', minWidth: 150}
|
||||
, {field: 'add_time', title: '划转时间', sort: true, width: 170}
|
||||
// , {title: '操作', width: 100, align: 'center', fixed: 'right', toolbar: '#table-useradmin-webuser'}
|
||||
]]
|
||||
, page: true
|
||||
, limit: 30
|
||||
, height: 'full-320'
|
||||
, text: '对不起,加载出现异常!'
|
||||
, headers: { //通过 request 头传递
|
||||
access_token: layui.data('layuiAdmin').access_token
|
||||
}
|
||||
, where: { //通过参数传递
|
||||
access_token: layui.data('layuiAdmin').access_token
|
||||
,parent_id : parent_id
|
||||
}
|
||||
, done: function (res) { //这里要说明一下:done 是只有 response 的 code 正常才会执行。而 succese 则是只要 http 为 200 就会执行
|
||||
if (res !== 0) {
|
||||
if (res.code === 1001) {
|
||||
//清空本地记录的 token,并跳转到登入页
|
||||
admin.exit();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
table.on('tool(san-user-manage)', function (obj) {
|
||||
var event = obj.event;
|
||||
var data = obj.data;
|
||||
|
||||
if (event == 'order') {
|
||||
location.hash = '/user/san/order_list/user_id=' + data.id;
|
||||
}
|
||||
|
||||
if (event == 'son') {
|
||||
load(data.id);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
form.render(null, 'layadmin-userfront-formlist');
|
||||
|
||||
//监听搜索
|
||||
form.on('submit(san-user-search)', function (data) {
|
||||
var field = data.field;
|
||||
|
||||
|
||||
admin.req( {
|
||||
type : "POST",
|
||||
url : '/agent/get_user_num',
|
||||
dataType : "json",
|
||||
data : field,
|
||||
done : function(result) { //返回数据根据结果进行相应的处理
|
||||
$("#_num").html(result.data._num);
|
||||
$("#_daili").html(result.data._daili);
|
||||
$("#_usdt").html(result.data._usdt);
|
||||
$("#_caution_money").html(result.data._caution_money);
|
||||
}
|
||||
});
|
||||
|
||||
//执行重载
|
||||
table.reload('san-user-manage', {
|
||||
where: field
|
||||
, page: {
|
||||
curr: 1 //重新从第 1 页开始
|
||||
}
|
||||
, done: function (res) { //这里要说明一下:done 是只有 response 的 code 正常才会执行。而 succese 则是只要 http 为 200 就会执行
|
||||
|
||||
if (res.code === 1001) {
|
||||
//清空本地记录的 token,并跳转到登入页
|
||||
admin.exit();
|
||||
}
|
||||
if (res.code === 1) {
|
||||
layer.msg(res.msg, {icon: 5});
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
@@ -0,0 +1,134 @@
|
||||
<title>订单管理</title>
|
||||
|
||||
<div class="layui-card layadmin-header">
|
||||
<div class="layui-breadcrumb" lay-filter="breadcrumb">
|
||||
<a lay-href="">主页</a>
|
||||
<a><cite>用户管理</cite></a>
|
||||
<a><cite>散户管理</cite></a>
|
||||
<a><cite>下单列表</cite></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-card">
|
||||
<div class="layui-form layui-card-header layuiadmin-card-header-auto" lay-filter="layadmin-userfront-formlist">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">状态</label>
|
||||
<div class="layui-input-block">
|
||||
<select name="status">
|
||||
<option value="-1">全部</option>
|
||||
<option value="0">挂单中</option>
|
||||
<option value="1">交易中</option>
|
||||
<option value="2">平仓中</option>
|
||||
<option value="3">已平仓</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">类型</label>
|
||||
<div class="layui-input-block">
|
||||
<select name="type">
|
||||
<option value="-1">全部</option>
|
||||
<option value="1">买入</option>
|
||||
<option value="2">卖出</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<button class="layui-btn layuiadmin-btn-useradmin" lay-submit lay-filter="order-search">
|
||||
<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="layui-card-body">
|
||||
<div style="padding-bottom: 10px;">
|
||||
<!--<button class="layui-btn layuiadmin-btn-useradmin" data-type="batchdel">删除</button>-->
|
||||
<!--<button class="layui-btn layuiadmin-btn-useradmin" data-type="add">用户</button>-->
|
||||
</div>
|
||||
|
||||
<table id="order-list" lay-filter="order-list"></table>
|
||||
<!--<script type="text/html" id="imgTpl"> -->
|
||||
<!--<img style="display: inline-block; width: 50%; height: 100%;" src= {{ d.avatar }}>-->
|
||||
<!--</script> -->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
layui.use('useradmin', layui.factory('useradmin')).use(['admin', 'useradmin', 'table', 'layer'], function () {
|
||||
var $ = layui.$
|
||||
, admin = layui.admin
|
||||
, view = layui.view
|
||||
, table = layui.table
|
||||
, form = layui.form;
|
||||
|
||||
var router = layui.router();
|
||||
|
||||
form.render();
|
||||
|
||||
//用户管理
|
||||
table.render({
|
||||
elem: '#order-list'
|
||||
, url: '/agent/lever_transaction/lists?user_id=' + router.search.user_id //模拟接口
|
||||
, cols: [[
|
||||
{field: 'id', width: 60, title: 'ID', sort: true}
|
||||
, {field: 'price', title: '价格', minWidth: 150,}
|
||||
, {field: 'status_name', title: '状态', minWidth: 150,}
|
||||
, {field: 'type_name', title: '交易类型', minWidth: 150,}
|
||||
, {field: 'symbol', title: '交易对', minWidth: 150,}
|
||||
, {field: 'share', title: '手数', minWidth: 150}
|
||||
, {field: 'multiple', title: '倍数', minWidth: 150}
|
||||
, {field: 'number', title: '数量', minWidth: 150}
|
||||
, {field: 'trade_fee', title: '手续费', minWidth: 150}
|
||||
, {field: 'time', title: '创建时间', sort: true, width: 170}
|
||||
]]
|
||||
, page: true
|
||||
, limit: 30
|
||||
, height: 'full-320'
|
||||
, text: '对不起,加载出现异常!'
|
||||
, headers: { //通过 request 头传递
|
||||
access_token: layui.data('layuiAdmin').access_token
|
||||
}
|
||||
, where: { //通过参数传递
|
||||
access_token: layui.data('layuiAdmin').access_token
|
||||
}
|
||||
, done: function (res) { //这里要说明一下:done 是只有 response 的 code 正常才会执行。而 succese 则是只要 http 为 200 就会执行
|
||||
if (res !== 0) {
|
||||
if (res.code === 1001) {
|
||||
//清空本地记录的 token,并跳转到登入页
|
||||
admin.exit();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
//监听搜索
|
||||
form.on('submit(order-search)', function (data) {
|
||||
var field = data.field;
|
||||
|
||||
//执行重载
|
||||
table.reload('order-list', {
|
||||
where: field
|
||||
, page: {
|
||||
curr: 1 //重新从第 1 页开始
|
||||
}
|
||||
, done: function (res) { //这里要说明一下:done 是只有 response 的 code 正常才会执行。而 succese 则是只要 http 为 200 就会执行
|
||||
|
||||
if (res.code === 1001) {
|
||||
//清空本地记录的 token,并跳转到登入页
|
||||
admin.exit();
|
||||
}
|
||||
if (res.code === 1) {
|
||||
layer.msg(res.msg, {icon: 5});
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,141 @@
|
||||
|
||||
|
||||
<div class="layui-form" lay-filter="layuiadmin-form-useradmin" style="padding: 20px 0 0 0;">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">用户名</label>
|
||||
<div class="layui-input-inline">
|
||||
<script type="text/html" template>
|
||||
{{# if(d.params.username){ }}
|
||||
<input type="text" name="username" value="{{ d.params.username || '' }}" lay-verify="required" placeholder="请输入用户名" autocomplete="off" class="layui-input" disabled="">
|
||||
{{# }else{ }}
|
||||
<input type="text" name="username" value="{{ d.params.username || '' }}" lay-verify="required" placeholder="请输入用户名" autocomplete="off" class="layui-input">
|
||||
{{# } }}
|
||||
<input type="hidden" name="user_id" value="{{ d.params.user_id || 0 }}">
|
||||
<input type="hidden" name="id" value="{{ d.params.id || 0 }}">
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">下级身份</label>
|
||||
<div class="layui-input-inline">
|
||||
<script type="text/html" template>
|
||||
{{# if(d.params.son_level == 1 && !d.params.id){ }}
|
||||
<button class="layui-btn layui-btn-normal layui-btn-radius">一级代理商</button>
|
||||
{{# }else if(d.params.son_level == 2 && !d.params.id){ }}
|
||||
<button class="layui-btn layui-btn-normal layui-btn-radius">二级代理商</button>
|
||||
{{# }else if(d.params.son_level == 3 && !d.params.id){ }}
|
||||
<button class="layui-btn layui-btn-normal layui-btn-radius">三级代理商</button>
|
||||
{{# }else if(d.params.son_level == 4 && !d.params.id){ }}
|
||||
<button class="layui-btn layui-btn-normal layui-btn-radius">四级代理商</button>
|
||||
{{# }else if (d.params.id && d.params.id>0) { }}
|
||||
<button class="layui-btn layui-btn-normal layui-btn-radius">{{d.params.self_info}}</button>
|
||||
{{# }else{ }}
|
||||
<button class="layui-btn layui-btn-danger layui-btn-radius">不能添加代理商</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"> 比例(%)</label>
|
||||
<div class="layui-input-inline">
|
||||
<script type="text/html" template>
|
||||
<input type="text" name="pro_loss" value="{{ d.params.pro_loss || '' }}" lay-verify="pro_loss" placeholder="请输入该代理商的 比例,不超过{{ d.params.max_pro_loss || '100' }}" autocomplete="off" class="layui-input">
|
||||
</script>
|
||||
</div>
|
||||
<script type="text/html" template>
|
||||
<div class="layui-form-mid layui-word-aux">设置下级代理商的 比例,该值不能超过<span class="layui-badge">{{ d.params.max_pro_loss || '100' }}</span>。只需要输入数字,如20.85%,则输入20.85</div>
|
||||
</script>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">手续费比例(%)</label>
|
||||
<div class="layui-input-inline">
|
||||
<script type="text/html" template>
|
||||
<input type="text" name="pro_ser" value="{{ d.params.pro_ser || '' }}" lay-verify="pro_ser" placeholder="请输入该代理商的手续费比例,不超过{{ d.params.max_pro_ser || '100' }}" autocomplete="off" class="layui-input">
|
||||
</script>
|
||||
</div>
|
||||
<script type="text/html" template>
|
||||
<div class="layui-form-mid layui-word-aux">设置下级代理商的手续费比例,该值不能超过<span class="layui-badge">{{ d.params.max_pro_ser || '100' }}</span>。只需要输入数字,如20.85%,则输入20.85</div>
|
||||
</script>
|
||||
</div>
|
||||
<div class="layui-form-item" lay-filter="sex">
|
||||
<label class="layui-form-label">是否锁定</label>
|
||||
<div class="layui-input-block">
|
||||
<script type="text/html" template>
|
||||
{{# if(d.params.is_lock){ }}
|
||||
<input type="radio" name="is_lock" value="0" title="开启" {{ d.params.is_lock == '0' ? 'checked' : '' }}>
|
||||
<input type="radio" name="is_lock" value="1" title="锁定" {{ d.params.is_lock == '1' ? 'checked' : '' }}>
|
||||
{{# }else{ }}
|
||||
<input type="radio" name="is_lock" value="0" title="开启" checked>
|
||||
<input type="radio" name="is_lock" value="1" title="锁定">
|
||||
{{# } }}
|
||||
</script>
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">当锁定时,该用户不能登录代理商管理平台</div>
|
||||
</div>
|
||||
<div class="layui-form-item" lay-filter="sex">
|
||||
<label class="layui-form-label">是否拉新</label>
|
||||
<div class="layui-input-block">
|
||||
<script type="text/html" template>
|
||||
{{# if(d.params.is_lock){ }}
|
||||
<input type="radio" name="is_addson" value="0" title="禁止" {{ d.params.is_addson == '0' ? 'checked' : '' }}>
|
||||
<input type="radio" name="is_addson" value="1" title="允许" {{ d.params.is_addson == '1' ? 'checked' : '' }}>
|
||||
{{# }else{ }}
|
||||
<input type="radio" name="is_addson" value="1" title="允许" checked>
|
||||
<input type="radio" name="is_addson" value="0" title="禁止">
|
||||
{{# } }}
|
||||
</script>
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">当禁止填加新代理商时,该用户不能添加自己的下级代理商</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"></label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="button" lay-submit lay-filter="LAY-user-front-submit" value="确认" class="layui-btn">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
layui.use(['admin', 'form', 'upload' ,'layer'], function(){
|
||||
var $ = layui.$
|
||||
,form = layui.form
|
||||
,upload = layui.upload;
|
||||
|
||||
|
||||
//自定义验证
|
||||
form.verify({
|
||||
nickname: function(value, item){ //value:表单的值、item:表单的DOM对象
|
||||
if(!new RegExp("^[a-zA-Z0-9_\u4e00-\u9fa5\\s·]+$").test(value)){
|
||||
return '用户名不能有特殊字符';
|
||||
}
|
||||
if(/(^\_)|(\__)|(\_+$)/.test(value)){
|
||||
return '用户名首尾不能出现下划线\'_\'';
|
||||
}
|
||||
if(/^\d+\d+\d$/.test(value)){
|
||||
return '用户名不能全为数字';
|
||||
}
|
||||
}
|
||||
|
||||
//我们既支持上述函数式的方式,也支持下述数组的形式
|
||||
//数组的两个值分别代表:[正则匹配、匹配不符时的提示文字]
|
||||
,pass: [
|
||||
/^[\S]{6,12}$/
|
||||
,'密码必须6到12位,且不能出现空格'
|
||||
]
|
||||
});
|
||||
|
||||
//上传头像
|
||||
upload.render({
|
||||
elem: '#layuiadmin-upload-useradmin'
|
||||
,url: './json/upload/demo.js'
|
||||
,accept: 'images'
|
||||
,method: 'get'
|
||||
,acceptMime: 'image/*'
|
||||
,done: function(res){
|
||||
$(this.item).prev("div").children("input").val(res.data.src)
|
||||
}
|
||||
});
|
||||
})
|
||||
</script>
|
||||
@@ -0,0 +1,196 @@
|
||||
|
||||
|
||||
<title>代理商</title>
|
||||
|
||||
<div class="layui-card layadmin-header">
|
||||
<div class="layui-breadcrumb" lay-filter="breadcrumb">
|
||||
<a lay-href="">主页</a>
|
||||
<a><cite>代理商</cite></a>
|
||||
<a><cite>代理商用户</cite></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-card">
|
||||
|
||||
<div class="layui-form layui-card-header layuiadmin-card-header-auto" lay-filter="layadmin-userfront-formlist">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">开始日期</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="start" id="datestart" lay-verify="date" placeholder="yyyy-MM-dd" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">结束日期</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="end" id="dateend" lay-verify="date" placeholder="yyyy-MM-dd" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<button class="layui-btn layuiadmin-btn-useradmin" lay-submit lay-filter="LAY-user-front-search">
|
||||
结算订单
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-card-body">
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-row layui-col-space15">
|
||||
<div class="layui-col-md12">
|
||||
<div class="layui-card">
|
||||
<!--<div class="layui-card-header">标准柱状图</div>-->
|
||||
<div class="layui-card-body">
|
||||
|
||||
<div class="layui-carousel layadmin-carousel layadmin-dataview" data-anim="fade" lay-filter="LAY-index-normcol">
|
||||
<div carousel-item id="LAY-index-normcol">
|
||||
<div><i class="layui-icon layui-icon-loading1 layadmin-loading"></i></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
layui.define(function(exports){
|
||||
|
||||
|
||||
layui.use('useradmin', layui.factory('useradmin')).use(['admin', 'layer' , 'laydate' , 'form'], function(){
|
||||
var $ = layui.$
|
||||
,admin = layui.admin
|
||||
,laydate = layui.laydate
|
||||
,form = layui.form;
|
||||
|
||||
//日期
|
||||
laydate.render({
|
||||
elem: '#datestart'
|
||||
});
|
||||
laydate.render({
|
||||
elem: '#dateend'
|
||||
});
|
||||
|
||||
//监听搜索
|
||||
form.on('submit(LAY-user-front-search)', function(data){
|
||||
var field = data.field;
|
||||
|
||||
admin.req( {
|
||||
type : "POST",
|
||||
url : '/agent/dojie',
|
||||
dataType : "json",
|
||||
data : field,
|
||||
done : function(result) { //返回数据根据结果进行相应的处理
|
||||
layui.layer.msg(result.msg, {icon: 6 });
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
admin.req( {
|
||||
type : "POST",
|
||||
url : '/agent/jie',
|
||||
dataType : "json",
|
||||
data : {type : 'all'},
|
||||
done : function(result) { //返回数据根据结果进行相应的处理
|
||||
//提交 Ajax 成功后,关闭当前弹层并重载图表
|
||||
show_table(result.data);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
//区块轮播切换
|
||||
layui.use(['admin', 'carousel'], function(){
|
||||
var $ = layui.$
|
||||
,admin = layui.admin
|
||||
,carousel = layui.carousel
|
||||
,element = layui.element
|
||||
,device = layui.device();
|
||||
|
||||
//轮播切换
|
||||
$('.layadmin-carousel').each(function(){
|
||||
var othis = $(this);
|
||||
carousel.render({
|
||||
elem: this
|
||||
,width: '100%'
|
||||
,arrow: 'none'
|
||||
,interval: othis.data('interval')
|
||||
,autoplay: othis.data('autoplay') === true
|
||||
,trigger: (device.ios || device.android) ? 'click' : 'hover'
|
||||
,anim: othis.data('anim')
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
function show_table (returnData){
|
||||
//柱状图
|
||||
layui.use(['echarts'], function(){
|
||||
var $ = layui.$
|
||||
,echarts = layui.echarts;
|
||||
|
||||
|
||||
|
||||
//标准柱状图
|
||||
var echnormcol = [], normcol = [
|
||||
{
|
||||
title : {
|
||||
text: '最近52周【未结算订单】图表',
|
||||
subtext: '单位:个'
|
||||
},
|
||||
tooltip : {
|
||||
trigger: 'axis'
|
||||
},
|
||||
legend: {
|
||||
data:['订单数量']
|
||||
},
|
||||
calculable : true,
|
||||
xAxis : [
|
||||
{
|
||||
type : 'category',
|
||||
data : returnData.xAxis //['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月']
|
||||
}
|
||||
],
|
||||
yAxis : [
|
||||
{
|
||||
type : 'value'
|
||||
}
|
||||
],
|
||||
series : [
|
||||
{
|
||||
name:'订单数量',
|
||||
type:'bar',
|
||||
data: returnData.series, //[2.0, 4.9, 7.0, 23.2, 245.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
|
||||
markPoint : {
|
||||
data : [
|
||||
{type : 'max', name: '最大值'},
|
||||
{type : 'min', name: '最小值'}
|
||||
]
|
||||
},
|
||||
markLine : {
|
||||
data : [{type : 'average', name: '平均值'}]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
,elemNormcol = $('#LAY-index-normcol').children('div')
|
||||
,renderNormcol = function(index){
|
||||
echnormcol[index] = echarts.init(elemNormcol[index], layui.echartsTheme);
|
||||
echnormcol[index].setOption(normcol[index]);
|
||||
window.onresize = echnormcol[index].resize;
|
||||
};
|
||||
if(!elemNormcol[0]) return;
|
||||
renderNormcol(0);
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
</script>
|
||||
@@ -0,0 +1,141 @@
|
||||
|
||||
|
||||
<div class="layui-form" lay-filter="layuiadmin-form-useradmin" style="padding: 20px 0 0 0;">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">用户名</label>
|
||||
<div class="layui-input-inline">
|
||||
<script type="text/html" template>
|
||||
{{# if(d.params.username){ }}
|
||||
<input type="text" name="username" value="{{ d.params.username || '' }}" lay-verify="required" placeholder="请输入用户名" autocomplete="off" class="layui-input" disabled="">
|
||||
{{# }else{ }}
|
||||
<input type="text" name="username" value="{{ d.params.username || '' }}" lay-verify="required" placeholder="请输入用户名" autocomplete="off" class="layui-input">
|
||||
{{# } }}
|
||||
<input type="hidden" name="user_id" value="{{ d.params.user_id || 0 }}">
|
||||
<input type="hidden" name="id" value="{{ d.params.id || 0 }}">
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">下级身份</label>
|
||||
<div class="layui-input-inline">
|
||||
<script type="text/html" template>
|
||||
{{# if(d.params.son_level == 1 && !d.params.id){ }}
|
||||
<button class="layui-btn layui-btn-normal layui-btn-radius">一级代理商</button>
|
||||
{{# }else if(d.params.son_level == 2 && !d.params.id){ }}
|
||||
<button class="layui-btn layui-btn-normal layui-btn-radius">二级代理商</button>
|
||||
{{# }else if(d.params.son_level == 3 && !d.params.id){ }}
|
||||
<button class="layui-btn layui-btn-normal layui-btn-radius">三级代理商</button>
|
||||
{{# }else if(d.params.son_level == 4 && !d.params.id){ }}
|
||||
<button class="layui-btn layui-btn-normal layui-btn-radius">四级代理商</button>
|
||||
{{# }else if (d.params.id && d.params.id>0) { }}
|
||||
<button class="layui-btn layui-btn-normal layui-btn-radius">{{d.params.self_info}}</button>
|
||||
{{# }else{ }}
|
||||
<button class="layui-btn layui-btn-danger layui-btn-radius">不能添加代理商</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"> 比例(%)</label>
|
||||
<div class="layui-input-inline">
|
||||
<script type="text/html" template>
|
||||
<input type="text" name="pro_loss" value="{{ d.params.pro_loss || '' }}" lay-verify="pro_loss" placeholder="请输入该代理商的 比例,不超过{{ d.params.max_pro_loss || '100' }}" autocomplete="off" class="layui-input">
|
||||
</script>
|
||||
</div>
|
||||
<script type="text/html" template>
|
||||
<div class="layui-form-mid layui-word-aux">设置下级代理商的 比例,该值不能超过<span class="layui-badge">{{ d.params.max_pro_loss || '100' }}</span>。只需要输入数字,如20.85%,则输入20.85</div>
|
||||
</script>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">手续费比例(%)</label>
|
||||
<div class="layui-input-inline">
|
||||
<script type="text/html" template>
|
||||
<input type="text" name="pro_ser" value="{{ d.params.pro_ser || '' }}" lay-verify="pro_ser" placeholder="请输入该代理商的手续费比例,不超过{{ d.params.max_pro_ser || '100' }}" autocomplete="off" class="layui-input">
|
||||
</script>
|
||||
</div>
|
||||
<script type="text/html" template>
|
||||
<div class="layui-form-mid layui-word-aux">设置下级代理商的手续费比例,该值不能超过<span class="layui-badge">{{ d.params.max_pro_ser || '100' }}</span>。只需要输入数字,如20.85%,则输入20.85</div>
|
||||
</script>
|
||||
</div>
|
||||
<div class="layui-form-item" lay-filter="sex">
|
||||
<label class="layui-form-label">是否锁定</label>
|
||||
<div class="layui-input-block">
|
||||
<script type="text/html" template>
|
||||
{{# if(d.params.is_lock){ }}
|
||||
<input type="radio" name="is_lock" value="0" title="开启" {{ d.params.is_lock == '0' ? 'checked' : '' }}>
|
||||
<input type="radio" name="is_lock" value="1" title="锁定" {{ d.params.is_lock == '1' ? 'checked' : '' }}>
|
||||
{{# }else{ }}
|
||||
<input type="radio" name="is_lock" value="0" title="开启" checked>
|
||||
<input type="radio" name="is_lock" value="1" title="锁定">
|
||||
{{# } }}
|
||||
</script>
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">当锁定时,该用户不能登录代理商管理平台</div>
|
||||
</div>
|
||||
<div class="layui-form-item" lay-filter="sex">
|
||||
<label class="layui-form-label">是否拉新</label>
|
||||
<div class="layui-input-block">
|
||||
<script type="text/html" template>
|
||||
{{# if(d.params.is_lock){ }}
|
||||
<input type="radio" name="is_addson" value="0" title="禁止" {{ d.params.is_addson == '0' ? 'checked' : '' }}>
|
||||
<input type="radio" name="is_addson" value="1" title="允许" {{ d.params.is_addson == '1' ? 'checked' : '' }}>
|
||||
{{# }else{ }}
|
||||
<input type="radio" name="is_addson" value="1" title="允许" checked>
|
||||
<input type="radio" name="is_addson" value="0" title="禁止">
|
||||
{{# } }}
|
||||
</script>
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">当禁止填加新代理商时,该用户不能添加自己的下级代理商</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"></label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="button" lay-submit lay-filter="LAY-user-front-submit" value="确认" class="layui-btn">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
layui.use(['admin', 'form', 'upload' ,'layer'], function(){
|
||||
var $ = layui.$
|
||||
,form = layui.form
|
||||
,upload = layui.upload;
|
||||
|
||||
|
||||
//自定义验证
|
||||
form.verify({
|
||||
nickname: function(value, item){ //value:表单的值、item:表单的DOM对象
|
||||
if(!new RegExp("^[a-zA-Z0-9_\u4e00-\u9fa5\\s·]+$").test(value)){
|
||||
return '用户名不能有特殊字符';
|
||||
}
|
||||
if(/(^\_)|(\__)|(\_+$)/.test(value)){
|
||||
return '用户名首尾不能出现下划线\'_\'';
|
||||
}
|
||||
if(/^\d+\d+\d$/.test(value)){
|
||||
return '用户名不能全为数字';
|
||||
}
|
||||
}
|
||||
|
||||
//我们既支持上述函数式的方式,也支持下述数组的形式
|
||||
//数组的两个值分别代表:[正则匹配、匹配不符时的提示文字]
|
||||
,pass: [
|
||||
/^[\S]{6,12}$/
|
||||
,'密码必须6到12位,且不能出现空格'
|
||||
]
|
||||
});
|
||||
|
||||
//上传头像
|
||||
upload.render({
|
||||
elem: '#layuiadmin-upload-useradmin'
|
||||
,url: './json/upload/demo.js'
|
||||
,accept: 'images'
|
||||
,method: 'get'
|
||||
,acceptMime: 'image/*'
|
||||
,done: function(res){
|
||||
$(this.item).prev("div").children("input").val(res.data.src)
|
||||
}
|
||||
});
|
||||
})
|
||||
</script>
|
||||
@@ -0,0 +1,115 @@
|
||||
|
||||
<script type="text/html" template>
|
||||
<link rel="stylesheet" href="{{ layui.setter.base }}style/login.css?v={{ layui.admin.v }}-1" media="all">
|
||||
</script>
|
||||
|
||||
|
||||
<div class="layadmin-user-login layadmin-user-display-show" id="LAY-user-login" style="display: none;">
|
||||
|
||||
<div class="layadmin-user-login-main">
|
||||
<div class="layadmin-user-login-box layadmin-user-login-body layui-form">
|
||||
<div class="layui-form-item">
|
||||
<label class="layadmin-user-login-icon layui-icon layui-icon-username" for="LAY-user-login-username"></label>
|
||||
<input type="text" name="username" id="LAY-user-login-username" lay-verify="required" placeholder="用户名" class="layui-input">
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layadmin-user-login-icon layui-icon layui-icon-password" for="LAY-user-login-password"></label>
|
||||
<input type="password" name="password" id="LAY-user-login-password" lay-verify="required" placeholder="密码" class="layui-input">
|
||||
</div>
|
||||
<!--<div class="layui-form-item">-->
|
||||
<!--<div class="layui-row">-->
|
||||
<!--<div class="layui-col-xs7">-->
|
||||
<!--<label class="layadmin-user-login-icon layui-icon layui-icon-vercode" for="LAY-user-login-vercode"></label>-->
|
||||
<!--<input type="text" name="vercode" id="LAY-user-login-vercode" lay-verify="required" placeholder="图形验证码" class="layui-input">-->
|
||||
<!--</div>-->
|
||||
<!--<div class="layui-col-xs5">-->
|
||||
<!--<div style="margin-left: 10px;">-->
|
||||
<!--<img src="https://www.oschina.net/action/user/captcha" class="layadmin-user-login-codeimg" id="LAY-user-get-vercode">-->
|
||||
<!--</div>-->
|
||||
<!--</div>-->
|
||||
<!--</div>-->
|
||||
<!--</div>-->
|
||||
<div class="layui-form-item" style="margin-bottom: 20px;">
|
||||
<input type="checkbox" name="remember" lay-skin="primary" title="记住密码">
|
||||
<a lay-tips="忘记密码需要上级代理找回密码" class="layadmin-user-jump-change layadmin-link" style="margin-top: 7px;" lay-offset="5">忘记密码?</a>
|
||||
<!--<i class="layui-icon layui-icon-tips" lay-tips="要支持的噢" lay-offset="5">忘记密码?</i> lay-href="/user/forget"-->
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<button class="layui-btn layui-btn-fluid" lay-submit lay-filter="LAY-user-login-submit">登 入</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-trans layadmin-user-login-footer">
|
||||
|
||||
<!--<p>© 2017-2022 <a href="http://lever.mobile369.com/" target="_blank">lever.mobile369.com</a></p>
|
||||
<p>
|
||||
<span><a href="http://lever.mobile369.com" target="_blank">获取授权</a></span>
|
||||
<span><a href="http://lever.mobile369.com" target="_blank">在线演示</a></span>
|
||||
<span><a href="http://lever.mobile369.com" target="_blank">前往官网</a></span>
|
||||
</p>-->
|
||||
</div>
|
||||
|
||||
<!--<div class="ladmin-user-login-theme">
|
||||
<script type="text/html" template>
|
||||
<ul>
|
||||
<li data-theme=""><img src="{{ layui.setter.base }}style/res/bg-none.jpg"></li>
|
||||
<li data-theme="#03152A" style="background-color: #03152A;"></li>
|
||||
<li data-theme="#2E241B" style="background-color: #2E241B;"></li>
|
||||
<li data-theme="#50314F" style="background-color: #50314F;"></li>
|
||||
<li data-theme="#344058" style="background-color: #344058;"></li>
|
||||
<li data-theme="#20222A" style="background-color: #20222A;"></li>
|
||||
</ul>
|
||||
</script>
|
||||
</div>-->
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
layui.use(['admin', 'form', 'user'], function(){
|
||||
var $ = layui.$
|
||||
,setter = layui.setter
|
||||
,admin = layui.admin
|
||||
,form = layui.form
|
||||
,router = layui.router()
|
||||
,search = router.search;
|
||||
|
||||
form.render();
|
||||
|
||||
//提交
|
||||
form.on('submit(LAY-user-login-submit)', function(obj){
|
||||
|
||||
//请求登入接口
|
||||
admin.req({
|
||||
url: '/agent/login' //实际使用请改成服务端真实接口
|
||||
,data: obj.field
|
||||
,type :"post"
|
||||
,done: function(res){
|
||||
console.log(res);
|
||||
if (res.code == 0){
|
||||
//请求成功后,写入 access_token
|
||||
layui.data(setter.tableName, {
|
||||
key: setter.request.tokenName
|
||||
,value: res.data.access_token
|
||||
});
|
||||
|
||||
//登入成功的提示与跳转
|
||||
layer.msg('登入成功', {
|
||||
offset: '15px'
|
||||
,icon: 1
|
||||
,time: 1000
|
||||
}, function(){
|
||||
location.hash = search.redirect ? decodeURIComponent(search.redirect) : '/';
|
||||
});
|
||||
}else{
|
||||
layer.msg(res.msg, {
|
||||
offset: '15px'
|
||||
,icon: 5
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,304 @@
|
||||
|
||||
<title>散户管理</title>
|
||||
|
||||
<div class="layui-card layadmin-header">
|
||||
<div class="layui-breadcrumb" lay-filter="breadcrumb">
|
||||
<a lay-href="">主页</a>
|
||||
<a><cite>用户管理</cite></a>
|
||||
<a><cite>散户管理</cite></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-card">
|
||||
<div class="layui-form layui-card-header layuiadmin-card-header-auto" lay-filter="layadmin-userfront-formlist">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">开始日期</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="start" id="datestart" placeholder="yyyy-MM-dd" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">结束日期</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="end" id="dateend" placeholder="yyyy-MM-dd" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">ID</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="id" placeholder="请输入" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">用户名</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="account_number" placeholder="请输入" autocomplete="off"
|
||||
class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">上级代理用户名</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="agentusername" placeholder="请输入上级代理用户名" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<button class="layui-btn layuiadmin-btn-useradmin" lay-submit lay-filter="san-user-search">
|
||||
<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
|
||||
</button>
|
||||
<button class="layui-btn layuiadmin-btn-useradmin" onclick="javascript:window.location.href='order/users_excel'">导出Excel</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-card-body">
|
||||
<div class="layui-carousel layadmin-backlog" style="background-color: #fff">
|
||||
<ul class="layui-row layui-col-space10 layui-this">
|
||||
<li class="layui-col-xs3">
|
||||
<a href="javascript:;" onclick="layer.tips('总用户数', this, {tips: 3});" class="layadmin-backlog-body" style="color: #fff;background-color: #01AAED;">
|
||||
<h3>总用户数:</h3>
|
||||
<p><cite style="color:#fff" id="_num">0</cite></p>
|
||||
</a>
|
||||
</li>
|
||||
<li class="layui-col-xs3">
|
||||
<a href="javascript:;" onclick="layer.tips('代理商用户数', this, {tips: 3});" class="layadmin-backlog-body" style="color: #fff;background-color: #01AAED;">
|
||||
<h3>代理商用户数</h3>
|
||||
<p><cite style="color:#fff" id="_daili">0</cite></p>
|
||||
</a>
|
||||
</li>
|
||||
<li class="layui-col-xs3">
|
||||
<a href="javascript:;" onclick="layer.tips('可用总USDT', this, {tips: 3});" class="layadmin-backlog-body" style="color: #fff;background-color: #01AAED;">
|
||||
<h3>永续合约账户USDT余额:</h3>
|
||||
<p><cite style="color:#fff" id="_usdt">0.00000000</cite></p>
|
||||
</a>
|
||||
</li>
|
||||
<li class="layui-col-xs3">
|
||||
<a href="javascript:;" onclick="layer.tips('可用总保证金', this, {tips: 3});" class="layadmin-backlog-body" style="color: #fff;background-color: #01AAED;">
|
||||
<h3>秒合约账户USDT余额:</h3>
|
||||
<p><cite style="color:#fff" id="_usdt_mic">0.00000000</cite></p>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="layui-carousel layadmin-backlog" style="background-color: #fff">
|
||||
<ul class="layui-row layui-col-space10 layui-this">
|
||||
<!-- <li class="layui-col-xs3 chujin">
|
||||
<a href="javascript:;" onclick="layer.tips('出金总额', this, {tips: 3});" class="layadmin-backlog-body" style="color: #fff;background-color: #01AAED;">
|
||||
<h3>出金总额:</h3>
|
||||
<p><cite style="color:#fff" id="chujin">0.0000000</cite></p>
|
||||
</a>
|
||||
</li>
|
||||
<li class="layui-col-xs3 rujin">
|
||||
<a href="javascript:;" onclick="layer.tips('入金总额', this, {tips: 3});" class="layadmin-backlog-body" style="color: #fff;background-color: #01AAED;">
|
||||
<h3>入金总额:</h3>
|
||||
<p><cite style="color:#fff" id="rujin">0.00000000</cite></p>
|
||||
</a>
|
||||
</li> -->
|
||||
<li class="layui-col-xs3">
|
||||
<a href="javascript:;" onclick="layer.tips('锁定保证金', this, {tips: 3});" class="layadmin-backlog-body" style="color: #fff;background-color: #01AAED;">
|
||||
<h3>当前交易锁定订单保证金:</h3>
|
||||
<p><cite style="color:#fff" id="lock">0.00000000</cite></p>
|
||||
</a>
|
||||
</li>
|
||||
<li class="layui-col-xs3">
|
||||
<a href="javascript:;" onclick="layer.tips('客户法币锁定余额', this, {tips: 3});" class="layadmin-backlog-body" style="color: #fff;background-color: #01AAED;">
|
||||
<h3>客户锁定法币余额USDT</h3>
|
||||
<p><cite style="color:#fff" id="locklage">0</cite></p>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="layui-card-body">
|
||||
<div style="padding-bottom: 10px;">
|
||||
<!--<button class="layui-btn layuiadmin-btn-useradmin" data-type="batchdel">删除</button>-->
|
||||
<!--<button class="layui-btn layuiadmin-btn-useradmin" data-type="add">用户</button>-->
|
||||
</div>
|
||||
|
||||
<table id="san-user-manage" lay-filter="san-user-manage"></table>
|
||||
<!--<script type="text/html" id="imgTpl"> -->
|
||||
<!--<img style="display: inline-block; width: 50%; height: 100%;" src= {{ d.avatar }}>-->
|
||||
<!--</script> -->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="table-useradmin-webuser">
|
||||
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="order">查看订单</a>
|
||||
</script>
|
||||
|
||||
<script>
|
||||
layui.use(['useradmin'] ,layui.factory('useradmin')).use(['admin', 'table', 'layer' , 'laydate'], function () {
|
||||
var $ = layui.$
|
||||
, admin = layui.admin
|
||||
, view = layui.view
|
||||
, table = layui.table
|
||||
, layer = layui.layer
|
||||
, laydate = layui.laydate
|
||||
, form = layui.form;
|
||||
|
||||
|
||||
//日期
|
||||
laydate.render({
|
||||
elem: '#datestart'
|
||||
,type: 'datetime'
|
||||
});
|
||||
laydate.render({
|
||||
elem: '#dateend'
|
||||
,type: 'datetime'
|
||||
});
|
||||
|
||||
|
||||
var router = layui.router();
|
||||
parent_id = router.search.parent_id || 0;
|
||||
|
||||
|
||||
admin.req( {
|
||||
type : "POST",
|
||||
url : '/agent/get_user_num',
|
||||
dataType : "json",
|
||||
data : {all : 1 , parent_id : parent_id},
|
||||
done : function(result) { //返回数据根据结果进行相应的处理
|
||||
$("#_num").html(result.data._num);
|
||||
$("#_daili").html(result.data._daili);
|
||||
$("#_usdt").html(result.data._usdt);//合约
|
||||
$("#_usdt_mic").html(result.data._usdt_mic);//秒合约
|
||||
|
||||
$("#_caution_money").html(result.data._caution_money);
|
||||
|
||||
if(!result.data.chujin && !result.data.rujin)
|
||||
{
|
||||
$(".chujin").hide();
|
||||
$(".rujin").hide();
|
||||
}
|
||||
$("#chujin").html(result.data.chujin);
|
||||
$("#rujin").html(result.data.rujin);
|
||||
|
||||
|
||||
$("#lock").html(result.data.lock);
|
||||
$("#locklage").html(result.data.locklage);
|
||||
}
|
||||
});
|
||||
|
||||
var router = layui.router();
|
||||
parent_id = router.search.parent_id || 0;
|
||||
|
||||
console.log(parent_id);
|
||||
|
||||
load(parent_id);
|
||||
|
||||
function load(parent_id) {
|
||||
parent_id = parent_id || 0;
|
||||
|
||||
table.render({
|
||||
elem: '#san-user-manage'
|
||||
, url: '/agent/user/lists?parent_id=' + parent_id //模拟接口
|
||||
, cols: [[
|
||||
{type: 'checkbox', fixed: 'left'}
|
||||
, {field: 'id', width: 60, title: 'ID', sort: true}
|
||||
, {field: 'account_number', title: '用户名', minWidth: 150}
|
||||
,{field: 'my_agent_level', title: '用户身份' , width : 120}
|
||||
, {field: 'userreal_name', title: '姓名', minWidth: 150}
|
||||
// , {field: 'my_agent_level', title: '用户身份' , width : 120}
|
||||
// , {field: 'card_id', title: '身份证号' , width : 180}
|
||||
, {field: 'parent_name', title: '上级代理商' , width : 120}
|
||||
, {field: 'usdt', title: 'USDT永续合约余额' , width:170}
|
||||
, {field: 'usdt_mic', title: 'USDT秒合约余额' , width:170}
|
||||
// , {field: 'rujin', title: '入金' , width:170}
|
||||
// , {field: 'chujin', title: '出金' , width:170}
|
||||
//, {field: 'caution_money', title: '保证金', width:170}
|
||||
, {field: 'email', title: '邮箱', minWidth: 150}
|
||||
, {field: 'extension_code', title: '邀请码', minWidth: 150}
|
||||
, {field: 'create_date', title: '加入时间', sort: true, width: 170}
|
||||
, {title: '操作', width: 100, align: 'center', fixed: 'right', toolbar: '#table-useradmin-webuser'}
|
||||
]]
|
||||
, page: true
|
||||
, limit: 30
|
||||
, height: 'full-320'
|
||||
, text: '对不起,加载出现异常!'
|
||||
, headers: { //通过 request 头传递
|
||||
access_token: layui.data('layuiAdmin').access_token
|
||||
}
|
||||
, where: { //通过参数传递
|
||||
access_token: layui.data('layuiAdmin').access_token
|
||||
,parent_id : parent_id
|
||||
}
|
||||
, done: function (res) { //这里要说明一下:done 是只有 response 的 code 正常才会执行。而 succese 则是只要 http 为 200 就会执行
|
||||
if (res !== 0) {
|
||||
if (res.code === 1001) {
|
||||
//清空本地记录的 token,并跳转到登入页
|
||||
admin.exit();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
table.on('tool(san-user-manage)', function (obj) {
|
||||
var event = obj.event;
|
||||
var data = obj.data;
|
||||
|
||||
if (event == 'order') {
|
||||
location.hash = '/user/san/order_list/user_id=' + data.id;
|
||||
}
|
||||
|
||||
if (event == 'son') {
|
||||
load(data.id);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
form.render(null, 'layadmin-userfront-formlist');
|
||||
|
||||
//监听搜索
|
||||
form.on('submit(san-user-search)', function (data) {
|
||||
var field = data.field;
|
||||
|
||||
|
||||
admin.req( {
|
||||
type : "POST",
|
||||
url : '/agent/get_user_num',
|
||||
dataType : "json",
|
||||
data : field,
|
||||
done : function(result) { //返回数据根据结果进行相应的处理
|
||||
$("#_num").html(result.data._num);
|
||||
$("#_daili").html(result.data._daili);
|
||||
$("#_usdt").html(result.data._usdt);
|
||||
$("#_usdt_mic").html(result.data._usdt_mic);//秒合约
|
||||
$("#_caution_money").html(result.data._caution_money);
|
||||
|
||||
|
||||
$("#chujin").html(result.data.chujin);
|
||||
$("#rujin").html(result.data.rujin);
|
||||
$("#lock").html(result.data.lock);
|
||||
$("#locklage").html(result.data.locklage);
|
||||
}
|
||||
});
|
||||
|
||||
//执行重载
|
||||
table.reload('san-user-manage', {
|
||||
where: field
|
||||
, page: {
|
||||
curr: 1 //重新从第 1 页开始
|
||||
}
|
||||
, done: function (res) { //这里要说明一下:done 是只有 response 的 code 正常才会执行。而 succese 则是只要 http 为 200 就会执行
|
||||
|
||||
if (res.code === 1001) {
|
||||
//清空本地记录的 token,并跳转到登入页
|
||||
admin.exit();
|
||||
}
|
||||
if (res.code === 1) {
|
||||
layer.msg(res.msg, {icon: 5});
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
@@ -0,0 +1,134 @@
|
||||
<title>订单管理</title>
|
||||
|
||||
<div class="layui-card layadmin-header">
|
||||
<div class="layui-breadcrumb" lay-filter="breadcrumb">
|
||||
<a lay-href="">主页</a>
|
||||
<a><cite>用户管理</cite></a>
|
||||
<a><cite>散户管理</cite></a>
|
||||
<a><cite>下单列表</cite></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-card">
|
||||
<div class="layui-form layui-card-header layuiadmin-card-header-auto" lay-filter="layadmin-userfront-formlist">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">状态</label>
|
||||
<div class="layui-input-block">
|
||||
<select name="status">
|
||||
<option value="-1">全部</option>
|
||||
<option value="0">挂单中</option>
|
||||
<option value="1">交易中</option>
|
||||
<option value="2">平仓中</option>
|
||||
<option value="3">已平仓</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">类型</label>
|
||||
<div class="layui-input-block">
|
||||
<select name="type">
|
||||
<option value="-1">全部</option>
|
||||
<option value="1">买入</option>
|
||||
<option value="2">卖出</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<button class="layui-btn layuiadmin-btn-useradmin" lay-submit lay-filter="order-search">
|
||||
<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="layui-card-body">
|
||||
<div style="padding-bottom: 10px;">
|
||||
<!--<button class="layui-btn layuiadmin-btn-useradmin" data-type="batchdel">删除</button>-->
|
||||
<!--<button class="layui-btn layuiadmin-btn-useradmin" data-type="add">用户</button>-->
|
||||
</div>
|
||||
|
||||
<table id="order-list" lay-filter="order-list"></table>
|
||||
<!--<script type="text/html" id="imgTpl"> -->
|
||||
<!--<img style="display: inline-block; width: 50%; height: 100%;" src= {{ d.avatar }}>-->
|
||||
<!--</script> -->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
layui.use('useradmin', layui.factory('useradmin')).use(['admin', 'useradmin', 'table', 'layer'], function () {
|
||||
var $ = layui.$
|
||||
, admin = layui.admin
|
||||
, view = layui.view
|
||||
, table = layui.table
|
||||
, form = layui.form;
|
||||
|
||||
var router = layui.router();
|
||||
|
||||
form.render();
|
||||
|
||||
//用户管理
|
||||
table.render({
|
||||
elem: '#order-list'
|
||||
, url: '/agent/lever_transaction/lists?user_id=' + router.search.user_id //模拟接口
|
||||
, cols: [[
|
||||
{field: 'id', width: 60, title: 'ID', sort: true}
|
||||
, {field: 'price', title: '价格', minWidth: 150,}
|
||||
, {field: 'status_name', title: '状态', minWidth: 150,}
|
||||
, {field: 'type_name', title: '交易类型', minWidth: 150,}
|
||||
, {field: 'symbol', title: '交易对', minWidth: 150,}
|
||||
, {field: 'share', title: '手数', minWidth: 150}
|
||||
, {field: 'multiple', title: '倍数', minWidth: 150}
|
||||
, {field: 'number', title: '数量', minWidth: 150}
|
||||
, {field: 'trade_fee', title: '手续费', minWidth: 150}
|
||||
, {field: 'time', title: '创建时间', sort: true, width: 170}
|
||||
]]
|
||||
, page: true
|
||||
, limit: 30
|
||||
, height: 'full-320'
|
||||
, text: '对不起,加载出现异常!'
|
||||
, headers: { //通过 request 头传递
|
||||
access_token: layui.data('layuiAdmin').access_token
|
||||
}
|
||||
, where: { //通过参数传递
|
||||
access_token: layui.data('layuiAdmin').access_token
|
||||
}
|
||||
, done: function (res) { //这里要说明一下:done 是只有 response 的 code 正常才会执行。而 succese 则是只要 http 为 200 就会执行
|
||||
if (res !== 0) {
|
||||
if (res.code === 1001) {
|
||||
//清空本地记录的 token,并跳转到登入页
|
||||
admin.exit();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
//监听搜索
|
||||
form.on('submit(order-search)', function (data) {
|
||||
var field = data.field;
|
||||
|
||||
//执行重载
|
||||
table.reload('order-list', {
|
||||
where: field
|
||||
, page: {
|
||||
curr: 1 //重新从第 1 页开始
|
||||
}
|
||||
, done: function (res) { //这里要说明一下:done 是只有 response 的 code 正常才会执行。而 succese 则是只要 http 为 200 就会执行
|
||||
|
||||
if (res.code === 1001) {
|
||||
//清空本地记录的 token,并跳转到登入页
|
||||
admin.exit();
|
||||
}
|
||||
if (res.code === 1) {
|
||||
layer.msg(res.msg, {icon: 5});
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,141 @@
|
||||
|
||||
|
||||
<div class="layui-form" lay-filter="layuiadmin-form-useradmin" style="padding: 20px 0 0 0;">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">用户名</label>
|
||||
<div class="layui-input-inline">
|
||||
<script type="text/html" template>
|
||||
{{# if(d.params.username){ }}
|
||||
<input type="text" name="username" value="{{ d.params.username || '' }}" lay-verify="required" placeholder="请输入用户名" autocomplete="off" class="layui-input" disabled="">
|
||||
{{# }else{ }}
|
||||
<input type="text" name="username" value="{{ d.params.username || '' }}" lay-verify="required" placeholder="请输入用户名" autocomplete="off" class="layui-input">
|
||||
{{# } }}
|
||||
<input type="hidden" name="user_id" value="{{ d.params.user_id || 0 }}">
|
||||
<input type="hidden" name="id" value="{{ d.params.id || 0 }}">
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">下级身份</label>
|
||||
<div class="layui-input-inline">
|
||||
<script type="text/html" template>
|
||||
{{# if(d.params.son_level == 1 && !d.params.id){ }}
|
||||
<button class="layui-btn layui-btn-normal layui-btn-radius">一级代理商</button>
|
||||
{{# }else if(d.params.son_level == 2 && !d.params.id){ }}
|
||||
<button class="layui-btn layui-btn-normal layui-btn-radius">二级代理商</button>
|
||||
{{# }else if(d.params.son_level == 3 && !d.params.id){ }}
|
||||
<button class="layui-btn layui-btn-normal layui-btn-radius">三级代理商</button>
|
||||
{{# }else if(d.params.son_level == 4 && !d.params.id){ }}
|
||||
<button class="layui-btn layui-btn-normal layui-btn-radius">四级代理商</button>
|
||||
{{# }else if (d.params.id && d.params.id>0) { }}
|
||||
<button class="layui-btn layui-btn-normal layui-btn-radius">{{d.params.self_info}}</button>
|
||||
{{# }else{ }}
|
||||
<button class="layui-btn layui-btn-danger layui-btn-radius">不能添加代理商</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"> 比例(%)</label>
|
||||
<div class="layui-input-inline">
|
||||
<script type="text/html" template>
|
||||
<input type="text" name="pro_loss" value="{{ d.params.pro_loss || '' }}" lay-verify="pro_loss" placeholder="请输入该代理商的 比例,不超过{{ d.params.max_pro_loss || '100' }}" autocomplete="off" class="layui-input">
|
||||
</script>
|
||||
</div>
|
||||
<script type="text/html" template>
|
||||
<div class="layui-form-mid layui-word-aux">设置下级代理商的 比例,该值不能超过<span class="layui-badge">{{ d.params.max_pro_loss || '100' }}</span>。只需要输入数字,如20.85%,则输入20.85</div>
|
||||
</script>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">手续费比例(%)</label>
|
||||
<div class="layui-input-inline">
|
||||
<script type="text/html" template>
|
||||
<input type="text" name="pro_ser" value="{{ d.params.pro_ser || '' }}" lay-verify="pro_ser" placeholder="请输入该代理商的手续费比例,不超过{{ d.params.max_pro_ser || '100' }}" autocomplete="off" class="layui-input">
|
||||
</script>
|
||||
</div>
|
||||
<script type="text/html" template>
|
||||
<div class="layui-form-mid layui-word-aux">设置下级代理商的手续费比例,该值不能超过<span class="layui-badge">{{ d.params.max_pro_ser || '100' }}</span>。只需要输入数字,如20.85%,则输入20.85</div>
|
||||
</script>
|
||||
</div>
|
||||
<div class="layui-form-item" lay-filter="sex">
|
||||
<label class="layui-form-label">是否锁定</label>
|
||||
<div class="layui-input-block">
|
||||
<script type="text/html" template>
|
||||
{{# if(d.params.is_lock){ }}
|
||||
<input type="radio" name="is_lock" value="0" title="开启" {{ d.params.is_lock == '0' ? 'checked' : '' }}>
|
||||
<input type="radio" name="is_lock" value="1" title="锁定" {{ d.params.is_lock == '1' ? 'checked' : '' }}>
|
||||
{{# }else{ }}
|
||||
<input type="radio" name="is_lock" value="0" title="开启" checked>
|
||||
<input type="radio" name="is_lock" value="1" title="锁定">
|
||||
{{# } }}
|
||||
</script>
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">当锁定时,该用户不能登录代理商管理平台</div>
|
||||
</div>
|
||||
<div class="layui-form-item" lay-filter="sex">
|
||||
<label class="layui-form-label">是否拉新</label>
|
||||
<div class="layui-input-block">
|
||||
<script type="text/html" template>
|
||||
{{# if(d.params.is_lock){ }}
|
||||
<input type="radio" name="is_addson" value="0" title="禁止" {{ d.params.is_addson == '0' ? 'checked' : '' }}>
|
||||
<input type="radio" name="is_addson" value="1" title="允许" {{ d.params.is_addson == '1' ? 'checked' : '' }}>
|
||||
{{# }else{ }}
|
||||
<input type="radio" name="is_addson" value="1" title="允许" checked>
|
||||
<input type="radio" name="is_addson" value="0" title="禁止">
|
||||
{{# } }}
|
||||
</script>
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">当禁止填加新代理商时,该用户不能添加自己的下级代理商</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"></label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="button" lay-submit lay-filter="LAY-user-front-submit" value="确认" class="layui-btn">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
layui.use(['admin', 'form', 'upload' ,'layer'], function(){
|
||||
var $ = layui.$
|
||||
,form = layui.form
|
||||
,upload = layui.upload;
|
||||
|
||||
|
||||
//自定义验证
|
||||
form.verify({
|
||||
nickname: function(value, item){ //value:表单的值、item:表单的DOM对象
|
||||
if(!new RegExp("^[a-zA-Z0-9_\u4e00-\u9fa5\\s·]+$").test(value)){
|
||||
return '用户名不能有特殊字符';
|
||||
}
|
||||
if(/(^\_)|(\__)|(\_+$)/.test(value)){
|
||||
return '用户名首尾不能出现下划线\'_\'';
|
||||
}
|
||||
if(/^\d+\d+\d$/.test(value)){
|
||||
return '用户名不能全为数字';
|
||||
}
|
||||
}
|
||||
|
||||
//我们既支持上述函数式的方式,也支持下述数组的形式
|
||||
//数组的两个值分别代表:[正则匹配、匹配不符时的提示文字]
|
||||
,pass: [
|
||||
/^[\S]{6,12}$/
|
||||
,'密码必须6到12位,且不能出现空格'
|
||||
]
|
||||
});
|
||||
|
||||
//上传头像
|
||||
upload.render({
|
||||
elem: '#layuiadmin-upload-useradmin'
|
||||
,url: './json/upload/demo.js'
|
||||
,accept: 'images'
|
||||
,method: 'get'
|
||||
,acceptMime: 'image/*'
|
||||
,done: function(res){
|
||||
$(this.item).prev("div").children("input").val(res.data.src)
|
||||
}
|
||||
});
|
||||
})
|
||||
</script>
|
||||
@@ -0,0 +1,212 @@
|
||||
|
||||
|
||||
<title>代理商</title>
|
||||
|
||||
<div class="layui-card layadmin-header">
|
||||
<div class="layui-breadcrumb" lay-filter="breadcrumb">
|
||||
<a lay-href="">主页</a>
|
||||
<a><cite>代理商</cite></a>
|
||||
<a><cite>代理商用户</cite></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-card">
|
||||
<div class="layui-form layui-card-header layuiadmin-card-header-auto" lay-filter="layadmin-userfront-formlist">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">ID</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="id" placeholder="请输入" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">用户名</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="username" placeholder="请输入" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">是否锁定</label>
|
||||
<div class="layui-input-block">
|
||||
<select name="is_lock">
|
||||
<option value="2">不限</option>
|
||||
<option value="1">锁定</option>
|
||||
<option value="0">未锁定</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">是否拉新</label>
|
||||
<div class="layui-input-block">
|
||||
<select name="is_addson">
|
||||
<option value="2">不限</option>
|
||||
<option value="1">允许拉新</option>
|
||||
<option value="0">禁止拉新</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<button class="layui-btn layuiadmin-btn-useradmin" lay-submit lay-filter="LAY-user-front-search">
|
||||
<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-card-body">
|
||||
<div style="padding-bottom: 10px;">
|
||||
<!--<button class="layui-btn layuiadmin-btn-useradmin" data-type="batchdel">删除</button>-->
|
||||
<button class="layui-btn layuiadmin-btn-useradmin" data-type="add">添加下级代理商</button>
|
||||
</div>
|
||||
|
||||
<table id="LAY-user-manage" lay-filter="LAY-user-manage"></table>
|
||||
<!--<script type="text/html" id="imgTpl"> -->
|
||||
<!--<img style="display: inline-block; width: 50%; height: 100%;" src= {{ d.avatar }}>-->
|
||||
<!--</script> -->
|
||||
<script type="text/html" id="table-useradmin-webuser">
|
||||
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a>
|
||||
<!--<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="addsonagent"><i class="layui-icon layui-icon-add-1"></i>添加其下级代理</a>-->
|
||||
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="getsons"><i class="layui-icon layui-icon-friends"></i>查看其下级代理</a>
|
||||
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="this-sons"><i class="layui-icon layui-icon-group"></i>查看其所有会员</a>
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="lockTpl">
|
||||
{{# if(d.is_lock == 1){ }}
|
||||
<i class="layui-icon layui-icon-ok" style="font-size: 21px; color: green;" lay-event="lock"></i>
|
||||
{{# } else { }}
|
||||
<i class="layui-icon layui-icon-close" style="font-size: 21px; color: red;" lay-event="lock"></i>
|
||||
{{# } }}
|
||||
</script>
|
||||
<script type="text/html" id="addsonTpl">
|
||||
{{# if(d.is_addson == 1){ }}
|
||||
<i class="layui-icon layui-icon-ok" style="font-size: 21px; color: green;" lay-event="addson"></i>
|
||||
{{# } else { }}
|
||||
<i class="layui-icon layui-icon-close" style="font-size: 21px; color: red;" lay-event="addson"></i>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script>
|
||||
layui.use('useradmin', layui.factory('useradmin')).use(['admin', 'useradmin', 'table' , 'layer'], function(){
|
||||
var $ = layui.$
|
||||
,admin = layui.admin
|
||||
,view = layui.view
|
||||
,table = layui.table
|
||||
,form = layui.form;
|
||||
|
||||
form.render(null, 'layadmin-userfront-formlist');
|
||||
|
||||
//监听搜索
|
||||
form.on('submit(LAY-user-front-search)', function(data){
|
||||
var field = data.field;
|
||||
|
||||
//执行重载
|
||||
table.reload('LAY-user-manage', {
|
||||
where: field
|
||||
,page: {
|
||||
curr: 1 //重新从第 1 页开始
|
||||
}
|
||||
,done: function(res){ //这里要说明一下:done 是只有 response 的 code 正常才会执行。而 succese 则是只要 http 为 200 就会执行
|
||||
|
||||
if (res.code === 1001) {
|
||||
//清空本地记录的 token,并跳转到登入页
|
||||
admin.exit();
|
||||
}
|
||||
|
||||
if (res.code === 1){
|
||||
layer.msg(res.msg ,{icon : 5});
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
//事件
|
||||
var active = {
|
||||
batchdel: function(){
|
||||
var checkStatus = table.checkStatus('LAY-user-manage')
|
||||
,checkData = checkStatus.data; //得到选中的数据
|
||||
|
||||
if(checkData.length === 0){
|
||||
return layer.msg('请选择数据');
|
||||
}
|
||||
|
||||
layer.prompt({
|
||||
formType: 1
|
||||
,title: '敏感操作,请验证口令'
|
||||
}, function(value, index){
|
||||
layer.close(index);
|
||||
|
||||
layer.confirm('确定删除吗?', function(index) {
|
||||
|
||||
//执行 Ajax 后重载
|
||||
/*
|
||||
admin.req({
|
||||
url: 'xxx'
|
||||
//,……
|
||||
});
|
||||
*/
|
||||
table.reload('LAY-user-manage');
|
||||
layer.msg('已删除');
|
||||
});
|
||||
});
|
||||
}
|
||||
,add: function(){
|
||||
layer.prompt({title: '请输入下级代理商帐号', formType: 0, btn :['查询该用户' , '取消']}, function(value, index){
|
||||
layer.close(index);
|
||||
if (value.length == 0) {
|
||||
layer.msg('用户名不能位空', {icon: 5 });
|
||||
}else{
|
||||
admin.req( {
|
||||
type : "POST",
|
||||
url : '/agent/searchuser',
|
||||
dataType : "json",
|
||||
data : {username : value},
|
||||
done : function(result) { //返回数据根据结果进行相应的处理
|
||||
admin.popup({
|
||||
title: '添加代理商'
|
||||
,area: ['800px', '650px']
|
||||
,id: 'LAY-popup-user-add'
|
||||
,success: function(layer, index){
|
||||
view(this.id).render('user/user/userform' , result.data).done(function(){
|
||||
form.render(null, 'layuiadmin-form-useradmin'); //渲染表单
|
||||
//监听提交
|
||||
form.on('submit(LAY-user-front-submit)', function(data){
|
||||
var field = data.field; //获取提交的字段
|
||||
admin.req( {
|
||||
type : "POST",
|
||||
url : '/agent/addagent',
|
||||
dataType : "json",
|
||||
data : field,
|
||||
done : function(result) { //返回数据根据结果进行相应的处理
|
||||
console.log(result);
|
||||
layui.layer.msg(result.msg, {icon: 6 });
|
||||
//提交 Ajax 成功后,关闭当前弹层并重载表格
|
||||
layui.table.reload('LAY-user-manage'); //重载表格
|
||||
layui.layer.close(index); //执行关闭
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
$('.layui-btn.layuiadmin-btn-useradmin').on('click', function(){
|
||||
var type = $(this).data('type');
|
||||
active[type] ? active[type].call(this) : '';
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
<div id="this_all_sons">
|
||||
<table id="LAY-user-sons" lay-filter="LAY-user-sons"></table>
|
||||
</div>
|
||||
@@ -0,0 +1,142 @@
|
||||
|
||||
|
||||
<div class="layui-form" lay-filter="layuiadmin-form-useradmin" style="padding: 20px 0 0 0;">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">用户名</label>
|
||||
<div class="layui-input-inline">
|
||||
<script type="text/html" template>
|
||||
{{# if(d.params.username){ }}
|
||||
<input type="text" name="username" value="{{ d.params.username || '' }}" lay-verify="required" placeholder="请输入用户名" autocomplete="off" class="layui-input" disabled="">
|
||||
{{# }else{ }}
|
||||
<input type="text" name="username" value="{{ d.params.username || '' }}" lay-verify="required" placeholder="请输入用户名" autocomplete="off" class="layui-input">
|
||||
{{# } }}
|
||||
<input type="hidden" name="user_id" value="{{ d.params.user_id || 0 }}">
|
||||
<input type="hidden" name="agent_id" value="{{ d.params.agent_id || 0 }}">
|
||||
<input type="hidden" name="id" value="{{ d.params.id || 0 }}">
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">下级身份</label>
|
||||
<div class="layui-input-inline">
|
||||
<script type="text/html" template>
|
||||
{{# if(d.params.son_level == 1 && !d.params.id){ }}
|
||||
<button class="layui-btn layui-btn-normal layui-btn-radius">一级代理商</button>
|
||||
{{# }else if(d.params.son_level == 2 && !d.params.id){ }}
|
||||
<button class="layui-btn layui-btn-normal layui-btn-radius">二级代理商</button>
|
||||
{{# }else if(d.params.son_level == 3 && !d.params.id){ }}
|
||||
<button class="layui-btn layui-btn-normal layui-btn-radius">三级代理商</button>
|
||||
{{# }else if(d.params.son_level == 4 && !d.params.id){ }}
|
||||
<button class="layui-btn layui-btn-normal layui-btn-radius">四级代理商</button>
|
||||
{{# }else if (d.params.id && d.params.id>0) { }}
|
||||
<button class="layui-btn layui-btn-normal layui-btn-radius">{{d.params.self_info}}</button>
|
||||
{{# }else{ }}
|
||||
<button class="layui-btn layui-btn-danger layui-btn-radius">不能添加代理商</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"> 比例(%)</label>
|
||||
<div class="layui-input-inline">
|
||||
<script type="text/html" template>
|
||||
<input type="text" name="pro_loss" value="{{ d.params.pro_loss || '' }}" lay-verify="pro_loss" placeholder="请输入该代理商的 比例,不超过{{ d.params.max_pro_loss || '100' }}" autocomplete="off" class="layui-input">
|
||||
</script>
|
||||
</div>
|
||||
<script type="text/html" template>
|
||||
<div class="layui-form-mid layui-word-aux">设置下级代理商的 比例,该值不能超过<span class="layui-badge">{{ d.params.max_pro_loss || '100' }}</span>。只需要输入数字,如20.85%,则输入20.85</div>
|
||||
</script>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">手续费比例(%)</label>
|
||||
<div class="layui-input-inline">
|
||||
<script type="text/html" template>
|
||||
<input type="text" name="pro_ser" value="{{ d.params.pro_ser || '' }}" lay-verify="pro_ser" placeholder="请输入该代理商的手续费比例,不超过{{ d.params.max_pro_ser || '100' }}" autocomplete="off" class="layui-input">
|
||||
</script>
|
||||
</div>
|
||||
<script type="text/html" template>
|
||||
<div class="layui-form-mid layui-word-aux">设置下级代理商的手续费比例,该值不能超过<span class="layui-badge">{{ d.params.max_pro_ser || '100' }}</span>。只需要输入数字,如20.85%,则输入20.85</div>
|
||||
</script>
|
||||
</div>
|
||||
<div class="layui-form-item" lay-filter="sex">
|
||||
<label class="layui-form-label">是否锁定</label>
|
||||
<div class="layui-input-block">
|
||||
<script type="text/html" template>
|
||||
{{# if(d.params.is_lock){ }}
|
||||
<input type="radio" name="is_lock" value="0" title="开启" {{ d.params.is_lock == '0' ? 'checked' : '' }}>
|
||||
<input type="radio" name="is_lock" value="1" title="锁定" {{ d.params.is_lock == '1' ? 'checked' : '' }}>
|
||||
{{# }else{ }}
|
||||
<input type="radio" name="is_lock" value="0" title="开启" checked>
|
||||
<input type="radio" name="is_lock" value="1" title="锁定">
|
||||
{{# } }}
|
||||
</script>
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">当锁定时,该用户不能登录代理商管理平台</div>
|
||||
</div>
|
||||
<div class="layui-form-item" lay-filter="sex">
|
||||
<label class="layui-form-label">是否拉新</label>
|
||||
<div class="layui-input-block">
|
||||
<script type="text/html" template>
|
||||
{{# if(d.params.is_lock){ }}
|
||||
<input type="radio" name="is_addson" value="0" title="禁止" {{ d.params.is_addson == '0' ? 'checked' : '' }}>
|
||||
<input type="radio" name="is_addson" value="1" title="允许" {{ d.params.is_addson == '1' ? 'checked' : '' }}>
|
||||
{{# }else{ }}
|
||||
<input type="radio" name="is_addson" value="1" title="允许" checked>
|
||||
<input type="radio" name="is_addson" value="0" title="禁止">
|
||||
{{# } }}
|
||||
</script>
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">当禁止填加新代理商时,该用户不能添加自己的下级代理商</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"></label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="button" lay-submit lay-filter="LAY-user-front-submit" value="确认" class="layui-btn">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
layui.use(['admin', 'form', 'upload' ,'layer'], function(){
|
||||
var $ = layui.$
|
||||
,form = layui.form
|
||||
,upload = layui.upload;
|
||||
|
||||
|
||||
//自定义验证
|
||||
form.verify({
|
||||
nickname: function(value, item){ //value:表单的值、item:表单的DOM对象
|
||||
if(!new RegExp("^[a-zA-Z0-9_\u4e00-\u9fa5\\s·]+$").test(value)){
|
||||
return '用户名不能有特殊字符';
|
||||
}
|
||||
if(/(^\_)|(\__)|(\_+$)/.test(value)){
|
||||
return '用户名首尾不能出现下划线\'_\'';
|
||||
}
|
||||
if(/^\d+\d+\d$/.test(value)){
|
||||
return '用户名不能全为数字';
|
||||
}
|
||||
}
|
||||
|
||||
//我们既支持上述函数式的方式,也支持下述数组的形式
|
||||
//数组的两个值分别代表:[正则匹配、匹配不符时的提示文字]
|
||||
,pass: [
|
||||
/^[\S]{6,12}$/
|
||||
,'密码必须6到12位,且不能出现空格'
|
||||
]
|
||||
});
|
||||
|
||||
//上传头像
|
||||
upload.render({
|
||||
elem: '#layuiadmin-upload-useradmin'
|
||||
,url: './json/upload/demo.js'
|
||||
,accept: 'images'
|
||||
,method: 'get'
|
||||
,acceptMime: 'image/*'
|
||||
,done: function(res){
|
||||
$(this.item).prev("div").children("input").val(res.data.src)
|
||||
}
|
||||
});
|
||||
})
|
||||
</script>
|
||||
Reference in New Issue
Block a user