feat: 项目基础框架+配置+Kernel
This commit is contained in:
@@ -0,0 +1,237 @@
|
||||
|
||||
<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/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>可用总保证金:</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'
|
||||
});
|
||||
laydate.render({
|
||||
elem: '#dateend'
|
||||
});
|
||||
|
||||
|
||||
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,244 @@
|
||||
|
||||
<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/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>可用总保证金:</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(['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'
|
||||
});
|
||||
|
||||
|
||||
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/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: 'card_id', title: '身份证号' , width : 180}
|
||||
, {field: 'parent_name', title: '上级代理商' , width : 120}
|
||||
, {field: 'usdt', 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);
|
||||
$("#_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,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