fix: API路由补齐+后台全面中文化

This commit is contained in:
testadmin
2026-04-29 03:33:00 +08:00
parent 664d4d9572
commit 6ce7adcbfb
267 changed files with 47059 additions and 0 deletions
@@ -0,0 +1,135 @@
@extends('agent.layadmin')
@section('title', '充币列表')
@section('page-head')
@endsection
@section('page-content')
<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" style="width:130px;">
<select name="currency_id" >
<option value="-1" class="ww">全部</option>
@foreach ($legal_currencies as $currency)
<option value="{{$currency->id}}" class="ww">{{$currency->name}}</option>
@endforeach
</select>
</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" style="width:130px;">
<select name="belong_agent" >
<option value="" >全部</option>
@foreach ($son_agents as $son)
<option value="{{$son->username}}">{{$son->username}}</option>
@endforeach
</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">
<table id="LAY-user-manage" lay-filter="LAY-user-manage"></table>
</div>
</div>
</div>
@endsection
@section('scripts')
<script>
layui.use(['index','table' , 'layer'], function() {
var $ = layui.$
,admin = layui.admin
,view = layui.view
,table = layui.table
,form = layui.form
//充币管理
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: '对不起,加载出现异常!'
,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>
@endsection
@@ -0,0 +1,58 @@
@extends('agent.layadmin')
@section('page-head')
@endsection
@section('page-content')
<!-- <div class="layui-form"> -->
<table id="userlist" lay-filter="userlist">
<input type="hidden" name="user_id" value="{{$user_id}}">
</table>
@endsection
@section('scripts')
<script>
window.onload = function() {
layui.use(['element', 'form', 'layer', 'table'], function () {
var element = layui.element;
var layer = layui.layer;
var table = layui.table;
var $ = layui.$;
var form = layui.form;
function tbRend(url) {
table.render({
elem: '#userlist'
,url: url
,page: true
,limit: 20
,toolbar: true
,totalRow: true
,height: 'full-100'
,cols: [[
{field: 'id', title: '币种id', width: 70}
,{field: 'name', title: '币种', width: 100, totalRowText: '小计'}
,{field: '_ru', title: '入金', width: 150, totalRow: true}
,{field: '_chu', title: '出金', width: 150, totalRow: true}
,{field: '_caution_money', title: '杠杆可用保证金', width: 150, totalRow: true}
,{field: '_zongyue', title: '总余额', width: 150, totalRow: true}
// ,{field: '_zongyue', title: '总余额', width: 150,templet:function(d){
// return d._zongyue.change_balance*1+d._zongyue.lock_change_balance*1+d._zongyue.legal_balance*1+d._zongyue.lock_legal_balance*1+d._zongyue.lever_balance+d._zongyue.lock_lever_balance+d._zongyue.lock_micro_balance*1+d._zongyue.micro_balance*1;
// }}
]]
});
}
var user_id = $("input[name='user_id']").val();
tbRend("{{url('/agent/users_wallet_total')}}?user_id=" + user_id);
});
}
</script>
@endsection
@@ -0,0 +1,133 @@
@extends('agent.layadmin')
@section('title', '提币列表')
@section('page-head')
@endsection
@section('page-content')
<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" style="width:130px;">
<select name="currency_id" >
<option value="-1" class="ww">全部</option>
@foreach ($legal_currencies as $currency)
<option value="{{$currency->id}}" class="ww">{{$currency->name}}</option>
@endforeach
</select>
</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" style="width:130px;">
<select name="belong_agent" >
<option value="" >全部</option>
@foreach ($son_agents as $son)
<option value="{{$son->username}}">{{$son->username}}</option>
@endforeach
</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">
<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>
@endsection
@section('scripts')
<script>
layui.use(['index', 'table' , 'layer'], function() {
var $ = layui.$
,admin = layui.admin
,view = layui.view
,table = layui.table
,form = layui.form
//提币管理
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: '对不起,加载出现异常!'
,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>
@endsection
+170
View File
@@ -0,0 +1,170 @@
@extends('agent.layadmin')
@section('page-head')
@endsection
@section('page-content')
<div class="layui-fluid">
<div class="layui-row layui-col-space15">
<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">{{$settlement }}</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-cyan layuiadmin-badge">总计</span>
</div>
<div class="layui-card-body layuiadmin-card-list">
<p class="layuiadmin-big-font">{{$subordinate_agent_num }}</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">{{$subordinate_user_num }}</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>
@endsection
@section('scripts')
<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(['index','layer', 'laydate', 'form'], function () {
var $ = layui.$
, admin = layui.admin
, laydate = layui.laydate
, form = layui.form;
$.ajax({
url: '/agent/day',
type: 'post',
dataType: "json",
data: {type: 'all'},
success: function(res) {
//console.log('aa');
// console.log(res);
show_table(res.data);
},
error: function() {
layer.msg('网络错误');
}
});
});
function show_table(returnData) {
//区块轮播切换
layui.use(['carousel','admin'], 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>
@endsection
+118
View File
@@ -0,0 +1,118 @@
@extends('agent.layadmin')
@section('title', '代理商后台')
@section('page-head')
@endsection
@section('page-content')
<div id="LAY_app">
<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.html?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="note">
<i class="layui-icon layui-icon-note"></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>
<a href="javascript:;">
<cite>代理商</cite>
</a>
<dl class="layui-nav-child">
<dd><a lay-href="/agent/set_info">基本资料</a></dd>
<dd><a lay-href="/agent/set_password">修改密码</a></dd>
<hr>
<dd layadmin-event="logout" style="text-align: center;"><a>退出</a></dd>
</dl>
</li>
<li class="layui-nav-item layui-hide-xs" lay-unselect>
<a href="javascript:;" layadmin-event="about"><i class="layui-icon layui-icon-more-vertical"></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>
<!-- 侧边菜单 -->
@component('agent.layui_side_menu')
@endcomponent
<!-- 侧边菜单 -->
<!-- 页面标签 -->
<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="" lay-attr="" class="layui-this"><i class="layui-icon layui-icon-home"></i></li>
</ul>
</div>
</div>
<!-- 主体内容 -->
<div class="layui-body" id="LAY_app_body">
<div class="layadmin-tabsbody-item layui-show">
<iframe src="/agent/home" frameborder="0" class="layadmin-iframe"></iframe>
</div>
</div>
<!-- 辅助元素,一般用于移动设备下遮罩 -->
<div class="layadmin-body-shade" layadmin-event="shade"></div>
</div>
</div>
@endsection
@section('scripts')
@endsection
+28
View File
@@ -0,0 +1,28 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>代理商管理总后台asdfadf</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
<link rel="stylesheet" href="../layui/css/layui.css" media="all">
<script>
/^http(s*):\/\//.test(location.href) || alert('请先部署到 localhost 下再访问');
</script>
</head>
<body>
<div id="LAY_app"></div>
<script src="../layui/layui.js"></script>
<script>
layui.config({
base: '../agents/' //指定 layuiAdmin 项目路径,本地开发用 src,线上用 dist
,version: new Date().getTime()//'1.2.1'
}).use('index');
</script>
</body>
</html>
+28
View File
@@ -0,0 +1,28 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>管理系统</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
<link rel="stylesheet" href="../layui/css/layui.css" media="all">
<script>
/^http(s*):\/\//.test(location.href) || alert('请先部署到 localhost 下再访问');
</script>
</head>
<body>
<div id="LAY_app"></div>
<script src="../layui/layui.js"></script>
<script>
layui.config({
base: '../agents/' //指定 layuiAdmin 项目路径,本地开发用 src,线上用 dist
,version: new Date().getTime()//'1.2.1'
}).use('index');
</script>
</body>
</html>
+35
View File
@@ -0,0 +1,35 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>@yield('title')</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
<link rel="stylesheet" href="/layuiadmin/layui/css/layui.css" media="all">
<link rel="stylesheet" href="/layuiadmin/style/admin.css" media="all">
@yield('page-head')
</head>
<body class="">
@yield('page-content')
</body>
<script src="/layuiadmin/layui/layui.js"></script>
<script>
/^http(s*):\/\//.test(location.href) || alert('请先部署到 localhost 下再访问');
</script>
<script>
layui.config({
version: true //一般用于更新模块缓存,默认不开启。设为true即让浏览器不缓存。也可以设为一个固定的值,如:201610
,debug: true //用于开启调试模式,默认false,如果设为true,则JS模块的节点会保留在页面
,base: '/layuiadmin/' //静态资源所在路径
}).extend({
index: 'lib/index' //主入口模块
}).use('index');
</script>
@yield('scripts')
</html>
@@ -0,0 +1,129 @@
<div class="layui-side layui-side-menu">
<div class="layui-side-scroll">
<div class="layui-logo" lay-href="/agent/index">
<span style="color:#ffffff">代理商后台系统</span>
</div>
<ul class="layui-nav layui-nav-tree" lay-shrink="all" id="LAY-system-side-menu" lay-filter="layadmin-system-side-menu">
<li data-name="home" class="layui-nav-item layui-nav-itemed">
<a href="javascript:;" lay-tips="主页" lay-direction="2">
<i class="layui-icon layui-icon-home"></i>
<cite>主页</cite>
</a>
<dl class="layui-nav-child">
<dd data-name="console" class="layui-this">
<a lay-href="/agent/home">控制台</a>
</dd>
</dl>
</li>
<li data-name="user" class="layui-nav-item">
<a href="javascript:;" lay-tips="用户管理" lay-direction="2">
<i class="layui-icon layui-icon-user"></i>
<cite>用户管理</cite>
</a>
<dl class="layui-nav-child">
<dd data-name="button">
<a lay-href="/agent/user/index">用户管理</a>
</dd>
<dd data-name="button">
<a lay-href="/agent/salesmen/index">代理商管理</a>
</dd>
</dl>
</li>
<li data-name="template" class="layui-nav-item">
<a href="javascript:;" lay-tips="订单管理" lay-direction="2">
<i class="layui-icon layui-icon-template"></i>
<cite>订单管理</cite>
</a>
<dl class="layui-nav-child">
<dd data-name="button">
<a lay-href="/agent/order/lever_index">杠杆订单列表</a>
</dd>
</dl>
<!-- <dl class="layui-nav-child">
<dd data-name="button">
<a lay-href="/agent/order/transaction_index">币币完成单列表</a>
</dd>
</dl> -->
<dl class="layui-nav-child">
<dd data-name="button">
<a lay-href="/agent/order/micro_index">期权订单列表</a>
</dd>
</dl>
<dl class="layui-nav-child">
<dd data-name="button">
<a lay-href="/agent/order/jie_index">杠杆结算/对账</a>
</dd>
</dl>
</li>
<li data-name="template" class="layui-nav-item">
<a href="javascript:;" lay-tips="出入金管理" lay-direction="2">
<i class="layui-icon layui-icon-template"></i>
<cite>出入金管理</cite>
</a>
<dl class="layui-nav-child">
<dd data-name="button">
<a lay-href="/agent/recharge/index">充币列表</a>
</dd>
</dl>
<dl class="layui-nav-child">
<dd data-name="button">
<a lay-href="/agent/withdraw/index">提币列表</a>
</dd>
</dl>
</li>
<li data-name="template" class="layui-nav-item" style="display:none">
<a href="javascript:;" lay-tips="统计报表" lay-direction="2">
<i class="layui-icon layui-icon-chart"></i>
<cite>统计报表</cite>
</a>
<dl class="layui-nav-child">
<dd data-name="button">
<a lay-href="/agent/order_statistics">订单统计</a>
</dd>
</dl>
<dl class="layui-nav-child">
<dd data-name="button">
<a lay-href="/agent/user_statistics">用户统计</a>
</dd>
</dl>
<dl class="layui-nav-child">
<dd data-name="button">
<a lay-href="/agent/money_statistics">收益统计</a>
</dd>
</dl>
</li>
<li data-name="template" class="layui-nav-item">
<a href="javascript:;" lay-tips="设置" lay-direction="2">
<i class="layui-icon layui-icon-set"></i>
<cite>设置</cite>
</a>
<dl class="layui-nav-child">
<dd data-name="button">
<a lay-href="/agent/set_password">修改密码</a>
</dd>
</dl>
<dl class="layui-nav-child">
<dd data-name="button">
<a lay-href="/agent/set_info">基本资料</a>
</dd>
</dl>
</li>
</ul>
</div>
</div>
+120
View File
@@ -0,0 +1,120 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>登入 - 代理商后台</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
<link rel="stylesheet" href="/layuiadmin/layui/css/layui.css" media="all">
<link rel="stylesheet" href="/layuiadmin/style/admin.css" media="all">
<link rel="stylesheet" href="/layuiadmin/style/login.css" media="all">
</head>
<body>
<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-header">
<h2>代理商后台管理</h2>
<!-- <p>代理商管理模板系统</p> -->
</div>
<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" style="display:none">
<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" 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;">忘记密码?</a>
</div>
<div class="layui-form-item">
<button class="layui-btn layui-btn-fluid" lay-submit lay-filter="LAY-user-login-submit"> </button>
</div>
<!-- <div class="layui-trans layui-form-item layadmin-user-login-other">
<label>社交账号登入</label>
<a href="javascript:;"><i class="layui-icon layui-icon-login-qq"></i></a>
<a href="javascript:;"><i class="layui-icon layui-icon-login-wechat"></i></a>
<a href="javascript:;"><i class="layui-icon layui-icon-login-weibo"></i></a>
<a href="reg.html" class="layadmin-user-jump-change layadmin-link">注册帐号</a>
</div> -->
</div>
</div>
<!-- <div class="layui-trans layadmin-user-login-footer">
<p>© 2018 <a href="http://www.layui.com/" target="_blank">layui.com</a></p>
<p>
<span><a href="http://www.layui.com/admin/#get" target="_blank">获取授权</a></span>
<span><a href="http://www.layui.com/admin/pro/" target="_blank">在线演示</a></span>
<span><a href="http://www.layui.com/admin/" target="_blank">前往官网</a></span>
</p>
</div> -->
</div>
<script src="/layuiadmin/layui/layui.js"></script>
<script>
layui.config({
base: '/layuiadmin/' //静态资源所在路径
}).extend({
index: 'lib/index' //主入口模块
}).use(['index', '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'
,type: 'POST'
,data: obj.field
,done: function (res) {
//登入成功的提示与跳转
layer.msg('登入成功', {
offset: '15px'
,icon: 1
,time: 1000
}, function () {
location.href = '/agent/index'; //
});
}
});
});
});
</script>
</body>
</html>
+174
View File
@@ -0,0 +1,174 @@
@extends('agent.layadmin')
@section('page-head')
@endsection
@section('page-content')
<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">订单编号 {{$info['id']}}</div>
<div class="layui-card-header">订单状态 <span class="layui-badge">已平仓</span></div>
<div class="layui-card-header">最新进度 <span class="layui-badge-rim">{{$info['complete_time']}}</span><span class="layui-badge layui-bg-blue">平仓</span></div>
<br>
<br>
<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">
<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">
买卖类型 {{$info['type_name']}}
</div>
</div>
</li>
<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">
用户 {{$info['account_number']}}
</div>
</div>
</li>
<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">
交易对 {{$info['symbol'] }}
</div>
</div>
</li>
<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">
手数 {{$info['share'] }}
</div>
</div>
</li>
<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">
倍数 {{$info['multiple'] }}
</div>
</div>
</li>
</ul>
</div>
<div class="layui-col-sm4">
<div class="layui-card-header">资金信息</div>
<ul class="layui-timeline">
<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">
初始保证金 {{$info['origin_caution_money'] }}
</div>
</div>
</li>
<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">
当前可用保证金 {{$info['caution_money'] }}
</div>
</div>
</li>
<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">
最终盈亏 {{$info['fact_profits'] }}
</div>
</div>
</li>
<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">
交易手续费 {{$info['trade_fee'] }}
</div>
</div>
</li>
<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">
隔夜费率 {{$info['overnight'] }}
</div>
</div>
</li>
</ul>
</div>
<div class="layui-col-sm4">
<div class="layui-card-header">状态及时间</div>
<ul class="layui-timeline">
<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">
交易状态 {{$info['status_name'] }}
</div>
</div>
</li>
<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">
创建时间 {{$info['time'] }}
</div>
</div>
</li>
<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">
平仓时间 {{$info['complete_time'] }}
</div>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection
@@ -0,0 +1,272 @@
@extends('agent.layadmin')
@section('page-head')
@endsection
@section('page-content')
<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" style="width:130px;">
<select name="belong_agent" >
<option value="" >全部</option>
@foreach ($son_agents as $son)
<option value="{{$son->username}}">{{$son->username}}</option>
@endforeach
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">结算类型</label>
<div class="layui-input-inline" style="width:130px;">
<select name="type">
<option value="-1" class="ww">全部</option>
<option value="1" class="ww">头寸</option>
<option value="2" class="ww">手续费</option>
</select>
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">法币</label>
<div class="layui-input-inline" style="width:130px;">
<select name="legal_id" id="type_type">
<option value="-1" class="ww">全部</option>
@foreach ($legal_currencies as $currency)
<option value="{{$currency->id}}" class="ww">{{$currency->name}}</option>
@endforeach
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">开始日期:</label>
<div class="layui-input-inline" style="width:120px;">
<input type="text" class="layui-input" id="start_time" value="" name="start">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">结束日期:</label>
<div class="layui-input-inline" style="width:120px;">
<input type="text" class="layui-input" id="end_time" value="" name="end">
</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>
@if($is_admin== 1 )
<button class="layui-btn layuiadmin-btn-useradmin" lay-submit lay-filter="dojie">结算(对账)</button>
@endif
</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>
@{{# if (d.status == 0) { }}
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="money_out">提现到账</a>
@{{# } }}
</script>
</div>
</div>
</div>
@endsection
@section('scripts')
<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="statusTpl">
@{{# if(d.status == 1){ }}
<span class="layui-badge layui-bg-red">已提现</span>
@{{# } else { }}
<span class="layui-badge layui-bg-blue">未提现</span>
@{{# } }}
</script>
<script>
layui.use(['index','admin', 'table' , 'layer', 'laydate'], function(){
var $ = layui.$
,admin = layui.admin
,view = layui.view
,table = layui.table
, laydate = layui.laydate
,form = layui.form;
//日期
laydate.render({
elem: '#start_time'
});
laydate.render({
elem: '#end_time'
});
//结算管理
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: 'jie_agent_name', title: '代理商', minWidth: 100}
,{field: 'jie_agent_level', title: '代理商等级', minWidth: 100}
,{field: 'user_name', title: '用户名', minWidth: 100}
//,{field: 'agent_level', title: '用户等级', width: 150}
,{field: 'relate_id', title: '杠杆订单id', width: 100}
,{field: 'type', title: '结算类型', width: 90, templet: '#lockTpl'}
,{field: 'status', title: '是否到账', width: 90, templet: '#statusTpl'}
,{field: 'legal_name', title: '结算币种', width: 100}
//,{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:150}
,{title: '操作', width: 220, align:'center', fixed: 'right', toolbar: '#table-useradmin-webuser'}
]]
,page: true
,limit: 30
,height: 'full-320'
,text: '对不起,加载出现异常!'
,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});
}
}
});
});
//结算
form.on('submit(dojie)', function(data){
var field = data.field;
//console.log(field);
admin.req( {
type : "POST",
url : '/agent/dojie',
dataType : "json",
data : field,
done : function(result) {
//console.log(result);
//返回数据根据结果进行相应的处理
layer.msg(result.msg, {icon: 6 });
}
});
});
//监听工具条
table.on('tool(LAY-user-manage)', function(obj) {
var data = obj.data;
if (obj.event === 'info') {
layer.open({
title: '查看订单详情'
, type: 2
, content: '{{url('/agent/order/info')}}?order_id=' + data.relate_id
// , maxmin: true
,area: ['800px', '600px']
});
}else if(obj.event === 'money_out'){
//结算 提现到账 到用户的钱包
layer.confirm('确定代理商收益划转到账?', function(index) {
layer.close(index);
$.ajax({
url: '/agent/wallet_out/done'
,type: 'post'
,dataType: 'json'
,data:{id:data.id}
,success: function(res) {
console.log(res);
layer.msg(res.msg ,{icon : 5});
if (res.code ===0){
layer.close(index);
window.location.reload();
}
}
});
});
return false;
}
});
});
</script>
@endsection
@@ -0,0 +1,361 @@
@extends('agent.layadmin')
@section('page-head')
@endsection
@section('page-content')
<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 class="layui-inline">
<label class="layui-form-label">法币</label>
<div class="layui-input-inline" style="width:130px;">
<select name="legal_id" >
<option value="-1" class="ww">全部</option>
@foreach ($legal_currencies as $currency)
<option value="{{$currency->id}}" class="ww">{{$currency->name}}</option>
@endforeach
</select>
</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>
</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 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="lock">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>
</div>
</div>
</div>
@endsection
@section('scripts')
<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(['index','element', 'form','table', 'layer', 'laydate'], function () {
var $ = layui.$
,element = layui.element
,layer = layui.layer
, table = layui.table
, laydate = layui.laydate
, form = layui.form
, admin = layui.admin
//日期
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);
$("#lock").html(result.data._lock);
}
});
//订单管理
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: 'parent_agent_name', title: '所属代理商', width: 120 }
, { field: 'agent_level', title: '用户等级', width: 100 }
, { field: 'type', title: '交易类型', width: 90, templet: '#lockTpl' }
,{field: 'symbol', title: '交易对', width: 100}
, { 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: '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'
,toolbar:true
, text: '对不起,加载出现异常!'
, done: function (res) { //这里要说明一下:done 是只有 response 的 code 正常才会执行。而 succese 则是只要 http 为 200 就会执行
if (res !== 0) {
if (res.code === 1001) {
//清空本地记录的 token,并跳转到登入页
admin.exit();
}
}
}
});
//监听搜索
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);
$("#lock").html(result.data._lock);
}
});
//执行重载
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 === '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);
$("#lock").html(result.data._lock);
}
});
//执行重载
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');
$('.dao').click(function () {
var id = $('input[name="id"]').val();
var username = $('input[name="username"]').val();
var agentusername = $('input[name="agentusername"]').val();
var start = $('input[name="start"]').val();
var end = $('input[name="end"]').val();
var status = $("select[name='status']").val();
var type = $("select[name='type']").val();
var legal_id = $("select[name='legal_id']").val();
var url='/order/order_excel?id='+id+'&username='+username+'&agentusername='+agentusername+'&start='+start+'&end='+end+'&status='+status+'&type='+type+'&legal_id='+legal_id;
window.open(url);
})
});
</script>
@endsection
@@ -0,0 +1,303 @@
@extends('agent.layadmin')
@section('page-head')
@endsection
@section('page-content')
<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="">
<option value="-1" class="ww">全部</option>
@foreach ($currencies as $currency)
<option value="{{$currency->id}}" class="ww">{{$currency->name}}</option>
@endforeach
</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="">
<option value="-1" class="ww">全部</option>
@foreach ($currency_matches as $match)
<option value="{{$match->id}}" class="ww">{{$match->currency_name}}/{{$match->legal_name}}</option>
@endforeach
</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>
@endsection
@section('scripts')
<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">
<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">
<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(['index','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'
});
//期权订单管理
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: 'parent_agent_name', title: '所属代理商', width: 120 }
, { 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);
}
}
});
//监听搜索
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>
@endsection
@@ -0,0 +1,139 @@
@extends('agent.layadmin')
@section('page-head')
@endsection
@section('page-content')
<div class="layui-fluid">
<div class="layui-card">
<div class="layui-form layui-card-header layuiadmin-card-header-auto"
lay-filter="layadmin-userfront-formlist">
<form class="layui-form layui-inline" action="">
<div class="layui-inline">
<label class="layui-form-label">用户账号</label>
<div class="layui-input-block">
<input type="text" name="account_number" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">法币</label>
<div class="layui-input-inline" style="width:130px;">
<select name="legal" id="type_type">
<option value="-1" class="ww">全部</option>
@foreach ($legal_currencies as $currency)
<option value="{{$currency->id}}" class="ww">{{$currency->name}}</option>
@endforeach
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">交易币</label>
<div class="layui-input-inline" style="width:130px;">
<select name="currency" id="type_type">
<option value="-1" class="ww">全部</option>
@foreach ($currencies as $currency)
<option value="{{$currency->id}}" class="ww">{{$currency->name}}</option>
@endforeach
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">开始日期:</label>
<div class="layui-input-inline" style="width:120px;">
<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-inline" style="width:120px;">
<input type="text" class="layui-input" id="end_time" value="" name="end_time">
</div>
</div>
<div class="layui-inline">
<button class="layui-btn" lay-submit="" lay-filter="mobile_search">
<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
</button>
</div>
</form>
</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="sum">0.0000000</cite></p>
</a>
</li>
</ul>
</div>
</div>
<div class="layui-card-body">
<table id="demo" lay-filter="test"></table>
</div>
</div>
</div>
@endsection
@section('scripts')
<script>
layui.use(['table','form','laydate'], function(){
var table = layui.table;
var $ = layui.jquery;
var form = layui.form;
var laydate = layui.laydate;
laydate.render({
elem: '#start_time'
});
laydate.render({
elem: '#end_time'
});
//第一个实例
table.render({
elem: '#demo'
,url: '{{url('agent/order/transaction_list')}}' //数据接口
,page: true //开启分页
,id:'mobileSearch'
,cols: [[ //表头
{field: 'id', title: 'ID', width: 90, sort: true}
,{field: 'currency_name', title: '交易币', width: 90}
,{field: 'legal_name', title: '法币', width: 90}
,{field: 'account_number', title: '买家', width: 120}
,{field: 'from_number', title: '卖家', width: 120}
,{field: 'price', title: '价格', width: 120}
,{field: 'number', title: '数量', width: 100}
,{field: 'time', title: '创建时间', width: 180}
]], done: function(res){
$("#sum").text(res.extra_data);
}
});
//监听提交
form.on('submit(mobile_search)', function(data){
table.reload('mobileSearch',{
where: data.field,
page: {curr: 1} //重新从第一页开始
});
return false;
});
});
</script>
@endsection
@@ -0,0 +1,249 @@
@extends('agent.layadmin')
@section('page-head')
<style>
.layui-form-label {
width: 120px;
}
.layui-form-mid {
float: none;
margin-left: 150px;
}
.layui-input-block {
margin-left: 150px;
}
</style>
@endsection
@section('page-content')
<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>
<div class="layui-card-body">
<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-block">
@if(isset($d['username']))
<input type="text" name="username" value="{{$d['username']}}"
lay-verify="required" placeholder="请输入用户名1" autocomplete="off"
class="layui-input"
readonly>
@else
<input type="text" name="username" value=""
lay-verify="required" placeholder="请输入用户名2" autocomplete="off"
class="layui-input">
@endif
<input type="hidden" name="user_id" value="{{ isset($d['user_id'])?$d['user_id']:0 }}">
<input type="hidden" name="agent_id" value="{{ isset($d['agent_id'])?$d['agent_id']:0 }}">
<input type="hidden" name="id" value="{{ isset($d['id'])?$d['id']:0 }}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">下级身份</label>
<div class="layui-input-inline">
@if( (!isset($d['id']) || !$d['id']) && isset($d['son_level']))
<button class="layui-btn layui-btn-normal layui-btn-radius">{{$d['son_level']}}级代理商
</button>
@elseif(isset($d['id']) && $d['id'])
<button class="layui-btn layui-btn-normal layui-btn-radius">{{$d['self_info']}}</button>
@else
<button class="layui-btn layui-btn-danger layui-btn-radius">不能添加代理商</button>
@endif
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">头寸比例(%</label>
<div class="layui-input-block">
<script type="text/html" template>
<input type="text" name="pro_loss" value="{{ isset($d['pro_loss']) ? $d['pro_loss'] : 0 }}"
lay-verify="pro_loss" placeholder="代理商的头寸比例" autocomplete="off"
class="layui-input">
</script>
</div>
<script type="text/html" template>
<div class="layui-form-mid layui-word-aux">设置下级代理商的头寸比例,该值不能超过<span
class="layui-badge">{{isset($d['max_pro_loss']) ? $d['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-block">
<script type="text/html" template>
<input type="text" name="pro_ser" value="{{isset($d['pro_ser']) ? $d['pro_ser'] : 0}}"
lay-verify="pro_ser" placeholder="手续费比例" autocomplete="off" class="layui-input">
</script>
</div>
<script type="text/html" template>
<div class="layui-form-mid layui-word-aux">设置下级代理商的手续费比例,该值不能超过<span
class="layui-badge">{{isset($d['max_pro_ser']) ? $d['max_pro_ser'] : '100'}}</span>。如20.85%,则输入20.85
</div>
</script>
</div>
@if(!isset($d['id']))
<!-- <div class="layui-form-item">
<label class="layui-form-label">授权码</label>
<div class="layui-input-block">
<script type="text/html" template>
<input type="text" name="authorization_code" value=""
lay-verify="authorization_code" placeholder="请输入授权码" autocomplete="off" class="layui-input">
</script>
</div>
<script type="text/html" template>
<div class="layui-form-mid layui-word-aux">添加用户为代理商时需要填写用户的授权码(安全中心的授权码)
</div>
</script>
</div> -->
@endif
<div class="layui-form-item" lay-filter="sex">
<label class="layui-form-label">是否锁定</label>
<div class="layui-input-block">
@if(isset($d['is_lock']))
<input type="radio" name="is_lock" value="0"
title="" {{ isset($d['is_lock']) && $d['is_lock'] == 0 ? 'checked' : '' }} >
<input type="radio" name="is_lock" value="1"
title=""{{ isset($d['is_lock']) && $d['is_lock'] == 1 ? 'checked' : '' }}>
@else
<input type="radio" name="is_lock" value="0" title="" checked>
<input type="radio" name="is_lock" value="1" title="" >
@endif
</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">
@if(isset($d['is_addson']))
<input type="radio" name="is_addson" value="0"
title="禁止" {{ $d['is_addson'] == 0 ? 'checked' : '' }} >
<input type="radio" name="is_addson" value="1"
title="允许"{{ $d['is_addson'] == 1 ? 'checked' : '' }}>
@else
<input type="radio" name="is_addson" value="0" title="禁止">
<input type="radio" name="is_addson" value="1" title="允许" checked>
@endif
</div>
<div class="layui-form-mid layui-word-aux">当禁止填加新代理商时,该用户不能添加自己的下级代理商</div>
</div>
@if(isset($d['id']))
<div class="layui-form-item">
<label class="layui-form-label">代理商密码</label>
<div class="layui-input-block">
<script type="text/html" template>
<input type="text" name="agent_password" value=""
lay-verify="authorization_code" placeholder="修改代理商密码" autocomplete="off" class="layui-input">
</script>
</div>
<script type="text/html" template>
<div class="layui-form-mid layui-word-aux">只限修改下级代理商的密码
</div>
</script>
</div>
@endif
<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>
</div>
</div>
</div>
@endsection
@section('scripts')
<script>
layui.use(['index', 'form', 'upload', 'layer'], function () {
var $ = layui.$
, form = layui.form
, upload = layui.upload
, admin = layui.admin
, view = layui.view
var index = parent.layer.getFrameIndex(window.name)//当前ifarm索引
//自定义验证
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位,且不能出现空格'
]
});
/*var jsObject = @json($d);
form.val("layuiadmin-form-useradmin", jsObject)*/
form.on('submit(LAY-user-front-submit)', function (data) {
var field = data.field; //获取提交的字段
console.log(field);
if(field.agent_id == 0){
var post_url = '/agent/addagent';
}else{
var post_url = '/agent/addsonagent';
}
admin.req({
type: "POST",
url: post_url,
dataType: "json",
data: field,
done: function (result) { //返回数据根据结果进行相应的处理
layer.msg(result.msg, {
icon: 1,
time: 2000 //2秒关闭(如果不配置,默认是3秒)
}, function () {
parent.layer.close(index);
//parent.window.location.reload();
parent.layui.table.reload('LAY-user-manage' , {
done: function(res){ //这里要说明一下:done 是只有 response 的 code 正常才会执行。而 succese 则是只要 http 为 200 就会执行
if (res !== 0 ){
if (res.code === 1001) {
//清空本地记录的 token,并跳转到登入页
admin.exit();
}
}
}
}); //重载表格
}
);
}
});
});
})
</script>
@endsection
<div id="this_all_sons">
<table id="LAY-user-sons" lay-filter="LAY-user-sons"></table>
</div>
@@ -0,0 +1,184 @@
@extends('agent.layadmin')
@section('page-head')
@endsection
@section('page-content')
<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="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>
@endsection
@section('scripts')
<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(['index','salesmen','table' ,'layer'], function(){
// console.log(layui.setter.base)
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) { //返回数据根据结果进行相应的处理
layer.show('添加代理商', '/agent/salesmen/add', result.data);
}
});
}
});
}
};
$('.layui-btn.layuiadmin-btn-useradmin').on('click', function(){
var type = $(this).data('type');
active[type] ? active[type].call(this) : '';
});
});
</script>
@endsection
<div id="this_all_sons">
<table id="LAY-user-sons" lay-filter="LAY-user-sons"></table>
</div>
+115
View File
@@ -0,0 +1,115 @@
@extends('agent.layadmin')
@section('title', '设置资料')
@section('page-head')
@endsection
@section('page-content')
<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="text" value="{{$agent->self_info}}" 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="username" value="{{$agent->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="{{$agent->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-inline">
<input type="text" name="phone" value="{{$agent->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="{{$agent->email}}" lay-verify="email" autocomplete="off" class="layui-input">
</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>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection
@section('scripts')
<script>
layui.use(['index','form','layer','admin'], function(){
var $ = layui.jquery;
var form = layui.form;
var admin = layui.admin;
//设置我的资料
form.on('submit(setmyinfo)', function(obj){
//layer.msg(JSON.stringify(obj.field));
//提交修改
admin.req({
url: '/agent/save_user_info'
,data: obj.field
,type:'post'
,success: function(res){
console.log(res);
if (res.code == 0){
//登入成功的提示与跳转
layer.msg(res.msg, {
icon: 1
,time: 2000
});
}else{
layer.msg(res.msg, {
icon: 5
});
}
}
});
return false;
});
});
</script>
@endsection
@@ -0,0 +1,105 @@
@extends('agent.layadmin')
@section('title', '设置密码')
@section('page-head')
@endsection
@section('page-content')
<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>
@endsection
@section('scripts')
<script>
layui.use(['index','form','layer','admin'], function(){
var $ = layui.jquery;
var form = layui.form;
var admin = layui.admin;
//设置密码
form.on('submit(setmypass)', function(obj){
//console.log(obj);
//提交修改
admin.req({
url: '/agent/change_password'
,data: obj.field
,type:'post'
,success: function(res){
console.log(res);
if (res.code == 0){
//登入成功的提示与跳转
layer.msg(res.msg, {
icon: 1
,time: 2000
});
window.location.reload();
}else{
layer.msg(res.msg, {
icon: 5
});
}
}
});
return false;
});
});
</script>
@endsection
@@ -0,0 +1,406 @@
@extends('agent.layadmin')
@section('title', '收益统计')
@section('page-head')
@endsection
@section('page-content')
<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>
@endsection
@section('scripts')
<script>
layui.use(['index','admin', 'layer' , 'laydate' , 'form'], function(){
var $ = layui.$
,admin = layui.admin
,laydate = layui.laydate
,form = layui.form;
//日期
laydate.render({
elem: '#datestart'
});
laydate.render({
elem: '#dateend'
});
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>
@endsection
@@ -0,0 +1,396 @@
@extends('agent.layadmin')
@section('title', '订单统计')
@section('page-head')
@endsection
@section('page-content')
<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>
@endsection
@section('scripts')
<script>
layui.use(['index','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>
@endsection
@@ -0,0 +1,377 @@
@extends('agent.layadmin')
@section('title', '用户统计')
@section('page-head')
@endsection
@section('page-content')
<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>
@endsection
@section('scripts')
<script>
layui.use(['index', 'layer' , 'laydate' , 'form'], function(){
var $ = layui.$
,admin = layui.admin
,laydate = layui.laydate
,form = layui.form;
//日期
laydate.render({
elem: '#datestart'
});
laydate.render({
elem: '#dateend'
});
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>
@endsection
+280
View File
@@ -0,0 +1,280 @@
@extends('agent.layadmin')
@section('page-head')
@endsection
@section('page-content')
<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" style="width:130px;">
<select name="currency_id" >
<option value="-1" class="ww">全部</option>
@foreach ($legal_currencies as $currency)
<option value="{{$currency->id}}" class="ww">{{$currency->name}}</option>
@endforeach
</select>
</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> -->
<button class="layui-btn layui-btn-normal dao" lay-event="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('总入金', this, {tips: 3});" class="layadmin-backlog-body" style="color: #fff;background-color: #01AAED;">
<h3>总入金</h3>
<p><cite style="color:#fff" id="_ru">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="_chu">0</cite></p>
</a>
</li>
</ul>
</div>
</div>
<div class="layui-card-body">
<div class="layui-carousel layadmin-backlog" style="background-color: #fff">
<table id="san-user-manage" lay-filter="san-user-manage"></table>
</div>
</div>
</div>
</div>
@endsection
@section('scripts')
<script type="text/html" id="table-useradmin-webuser">
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="wallet_info">查看资金</a>
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="order">查看合约订单</a>
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="micro_risk">期权点控</a>
</script>
<script>
layui.use(['index','laydate','form','table'], function () {
var $ = layui.$
,admin = layui.admin
, table = layui.table
, layer = layui.layer
, laydate = layui.laydate
, form = layui.form;
//日期
laydate.render({
elem: '#datestart'
});
laydate.render({
elem: '#dateend'
});
var parent_id = {{ $parent_id }};
// console.log(parent_id);
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);
$("#_ru").html(result.data._ru);
$("#_chu").html(result.data._chu);
}
});
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: 'phone', title: '手机号', minWidth: 150}
, {field: 'email', title: '邮箱', minWidth: 150}
, {field: 'extension_code', title: '邀请码', minWidth: 150}
, {field: 'create_date', title: '加入时间', sort: true, width: 170}
, {title: '操作', width: 300, align: 'center', fixed: 'right', toolbar: '#table-useradmin-webuser'}
]]
, page: true
, limit: 30
, height: 'full-320'
, text: '对不起,加载出现异常!'
, 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') {
//查看订单
layer.open({
title: '查看合约订单'
, type: 2
, content: '{{url('/agent/user/lever_order')}}?id=' + data.id
// , maxmin: true
,area: ['1000px', '600px']
});
}
if (event == 'wallet_info') {
//查看资金
layer.open({
title: '查看资金'
, type: 2
, content: '{{url('/agent/user/users_wallet')}}?id=' + data.id
// , maxmin: true
,area: ['800px', '600px']
});
}else if(event == 'micro_risk'){
layer.open({
title: '用户点控'
, type: 2
, content: '{{url('/agent/user/risk')}}?id=' + data.id
// , maxmin: true
,area: ['400px', '300px']
});
}
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);
$("#_ru").html(result.data._ru);
$("#_chu").html(result.data._chu);
}
});
//执行重载
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});
}
}
});
});
//导出表格
$('.dao').click(function () {
var id = $('input[name="id"]').val();
var account_number = $('input[name="account_number"]').val();
var start = $('input[name="start"]').val();
var end = $('input[name="end"]').val();
var url='/agent/users_excel?id='+id+'&account_number='+account_number+'&start='+start+'&end='+end;
window.open(url);
})
});
</script>
@endsection
@@ -0,0 +1,195 @@
@extends('agent.layadmin')
@section('page-head')
@endsection
@section('page-content')
<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">订单状态</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>
</div>
</div>
<div class="layui-card-body">
<table id="LAY-user-manage" lay-filter="LAY-user-manage"></table>
</div>
</div>
</div>
@endsection
@section('scripts')
<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(['index','element', 'form','table', 'layer', 'laydate'], function () {
var $ = layui.$
,element = layui.element
,layer = layui.layer
, table = layui.table
, laydate = layui.laydate
, form = layui.form
, admin = layui.admin
//日期
laydate.render({
elem: '#datestart'
});
laydate.render({
elem: '#dateend'
});
var user_id={{$user_id}};
// console.log(user_id);
//订单管理
table.render({
elem: '#LAY-user-manage'
, method: 'get'
, url: '/agent/user/lever_order_list?user_id='+user_id
, cols: [[
{ type: 'checkbox', fixed: 'left' }
, { field: 'id', width: 60, title: 'ID', sort: true }
, { field: 'user_name', title: '用户名', minWidth: 150, style: "color: #fff;background-color: #5FB878;" }
, { field: 'parent_agent_name', title: '上级代理商', width: 120 }
, { field: 'agent_level', title: '用户等级', width: 100 }
, { field: 'type', title: '交易类型', width: 90, templet: '#lockTpl' }
,{field: 'symbol', title: '交易对', width: 100}
, { 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: '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'
,toolbar:true
, text: '对不起,加载出现异常!'
, done: function (res) { //这里要说明一下:done 是只有 response 的 code 正常才会执行。而 succese 则是只要 http 为 200 就会执行
if (res !== 0) {
if (res.code === 1001) {
//清空本地记录的 token,并跳转到登入页
admin.exit();
}
}
}
});
//监听搜索
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 });
}
}
});
});
form.render(null, 'layadmin-userfront-formlist');
});
</script>
@endsection
+73
View File
@@ -0,0 +1,73 @@
@extends('agent.layadmin')
@section('page-head')
@endsection
@section('page-content')
<form class="layui-form" action="">
<div class="layui-form-item">
<label class="layui-form-label">用户账号</label>
<div class="layui-input-block">
<input type="text" name="account_number" autocomplete="off" placeholder="" class="layui-input" value="{{$result->account_number}}" disabled>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">输赢类型</label>
<div class="layui-input-block">
<select name="risk" lay-verify="required" lay-filter="risk_mode">
<option value=""></option>
<option value="0" {{ ($result->risk ?? 0) == 0 ? 'selected' : '' }} ></option>
<option value="1" {{ ($result->risk ?? 1) == 1 ? 'selected' : '' }} >盈利</option>
<option value="-1" {{ ($result->risk ?? 2) == -1 ? 'selected' : '' }} >亏损</option>
</select>
</div>
</div>
<input type="hidden" name="id" value="{{$result->id}}">
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" lay-submit="" lay-filter="demo1">立即提交</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</div>
</form>
@endsection
@section('scripts')
<script>
layui.use(['form','laydate'],function () {
var form = layui.form
,$ = layui.jquery
,laydate = layui.laydate
,index = parent.layer.getFrameIndex(window.name);
//监听提交
form.on('submit(demo1)', function(data){
var data = data.field;
$.ajax({
url:'{{url('/agent/user/risk')}}'
,type:'post'
,dataType:'json'
,data : data
,success:function(res){
console.log(res);
if(res.code==1){
layer.msg(res.msg);
}else{
layer.msg(res.msg);
parent.layer.close(index);
parent.window.location.reload();
}
}
});
return false;
});
});
</script>
@endsection
@@ -0,0 +1,168 @@
@extends('agent.layadmin')
@section('page-head')
@endsection
@section('page-content')
<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 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>
</div>
</div>
</div>
@endsection
@section('scripts')
<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>
layui.use(['index','table', 'layer' , 'laydate','form'], 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;
//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, templet: '#lockTpl'}
, {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();
}
}
}
});
}
form.render(null, 'layadmin-userfront-formlist');
//监听搜索
form.on('submit(san-user-search)', function (data) {
var field = data.field;
//console.log(field);
//执行重载
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>
@endsection