feat: 项目基础框架+配置+Kernel

This commit is contained in:
testadmin
2026-04-29 05:35:00 +08:00
parent 6ce7adcbfb
commit 9a6151fce3
5082 changed files with 437062 additions and 0 deletions
@@ -0,0 +1,91 @@
@extends('admin._layoutNew')
@section('page-head')
@stop
@section('page-content')
<header class="larry-personal-tit">
{{--<span>管理员</span>--}}
</header><!-- /header -->
<div class="larry-personal-body clearfix">
<form class="layui-form col-lg-5">
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
<input type="text" name="value" autocomplete="off" class="layui-input" value="" placeholder="">
</div>
</div>
{{--<div class="layui-form-item">--}}
{{--<label class="layui-form-label">初始密码</label>--}}
{{--<div class="layui-input-block">--}}
{{--<input type="password" name="password" autocomplete="off" class="layui-input" value="" placeholder="">--}}
{{--</div>--}}
{{--</div>--}}
<div class="layui-form-item">
<label class="layui-form-label">类型</label>
<div class="layui-input-block">
<select name="type" lay-filter="role_id">
<option value="">请选择</option>
<option value="1" selected >倍数</option>
<option value="2" >手数</option>
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">币类</label>
<div class="layui-input-block">
<select name="currency_id" lay-filter="role_id">
<option value="">请选择</option>
@foreach ($currency as $value)
<option value="{{$value->id}}" class="ww">{{$value->name}}</option>
@endforeach
{{--<option value="1" selected >倍数</option>--}}
{{--<option value="2" >手数</option>--}}
</select>
</div>
</div>
{{--<input type="hidden" name="id" value="{{$admin_user['id']}}">--}}
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="adminuser_submit">立即提交</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</div>
</form>
</div>
@stop
@section('scripts')
<script type="text/javascript">
layui.use(['form','upload','layer'], function () {
var layer = layui.layer;
var form = layui.form;
var $ = layui.$;
form.on('submit(adminuser_submit)', function (data) {
var data = data.field;
$.ajax({
url: '/admin/levermultiple/doadd',
type: 'post',
dataType: 'json',
data: data,
success: function (res) {
layer.msg(res.message);
if(res.type == 'ok') {
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
parent.window.location.reload();
}else{
return false;
}
}
});
return false;
});
});
</script>
@stop
@@ -0,0 +1,80 @@
@extends('admin._layoutNew')
@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="value" autocomplete="off" placeholder="" class="layui-input" value="{{$result->value}}" >
</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('upload', function(){
var upload = layui.upload;
//执行实例
var uploadInst = upload.render({
elem: '#upload_test' //绑定元素
,url: '{{URL("api/upload")}}' //上传接口
,done: function(res){
//上传完毕回调
if (res.type == "ok"){
$("#thumbnail").val(res.message)
$("#img_thumbnail").show()
$("#img_thumbnail").attr("src",res.message)
} else{
alert(res.message)
}
}
,error: function(){
//请求异常回调
}
});
});
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('admin/levermultiple/doedit')}}'
,type:'post'
,dataType:'json'
,data : data
,success:function(res){
if(res.type=='error'){
layer.msg(res.message);
}else{
parent.layer.close(index);
parent.window.location.reload();
}
}
});
return false;
});
});
</script>
@endsection
@@ -0,0 +1,150 @@
@extends('admin._layoutNew')
@section('page-head')
@endsection
@section('page-content')
<button class="layui-btn layui-btn-normal layui-btn-radius" id="add_admin">添加</button>
{{--<div class="layui-inline layui-row">--}}
{{--<label class="layui-form-label">用户帐号</label>--}}
{{--<div class="layui-input-inline">--}}
{{--<input type="text" name="account" placeholder="用户手机号或邮箱" autocomplete="off" class="layui-input" value="">--}}
{{--</div>--}}
{{--<button class="layui-btn btn-search" id="mobile_search" lay-submit lay-filter="mobile_search"> <i class="layui-icon">&#xe615;</i> </button>--}}
{{--</div>--}}
{{--<button class="layui-btn layui-btn-normal" onclick="javascrtpt:window.location.href='{{url('/admin/user/csv')}}'">导出用户</button>--}}
{{----}}
<table id="userlist" lay-filter="userlist"></table>
<script type="text/html" id="barDemo">
{{--<a class="layui-btn layui-btn-xs" lay-event="users_wallet">账户管理</a>--}}
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="edit">编辑</a>
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="delete">删除</a>
</script>
<script type="text/html" id="switchTpl">
<input type="checkbox" name="status" value="@{{d.id}}" lay-skin="switch" lay-text="是|否" lay-filter="sexDemo" @{{ d.status == 1 ? 'checked' : '' }}>
</script>
<script type="text/html" id="switchTpl2">
<input type="checkbox" name="blacklist" value="@{{d.id}}" lay-skin="switch" lay-text="是|否" lay-filter="blacklist" @{{ d.is_blacklist == 1 ? 'checked' : '' }}>
</script>
@endsection
@section('scripts')
<script>
window.onload = function() {
document.onkeydown=function(event){
var e = event || window.event || arguments.callee.caller.arguments[0];
if(e && e.keyCode==13){ // enter 键
$('#mobile_search').click();
}
};
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;
$('#add_admin').click(function() {
layer_show('添加', '/admin/levermultiple/add', 730, 320);
});
/*$('#add_user').click(function(){layer_show('添加会员', '/admin/user/add');});*/
form.on('submit(mobile_search)',function(obj){
var account = $("input[name='account']").val();
tbRend("{{url('/admin/levermultiple/list')}}?account="+account);
return false;
});
function tbRend(url) {
table.render({
elem: '#userlist'
, url: url
, page: true
,limit: 20
, cols: [[
{ field: 'id', title: 'ID', width: 100}
,{field:'type',title:'类型', width:100}
,{field:'value',title:'数值', width:150}
,{field:'currency_name',title:'币种', width:150}
,{fixed: 'right', title: '操作', width: 150, align: 'center', toolbar: '#barDemo'}
]]
});
}
tbRend("{{url('/admin/levermultiple/list')}}");
//监听锁定操作
form.on('switch(sexDemo)', function(obj){
var id = this.value;
$.ajax({
url:'{{url('admin/user/lock')}}',
type:'post',
dataType:'json',
data:{id:id},
success:function (res) {
layer.msg(res.message);
}
});
});
//监听加入黑名单
form.on('switch(blacklist)', function(obj){
var id = this.value;
$.ajax({
url:'{{url('admin/user/blacklist')}}',
type:'post',
dataType:'json',
data:{id:id},
success:function (res) {
layer.msg(res.message);
}
});
});
//监听工具条
table.on('tool(userlist)', function (obj) { //注:tool是工具条事件名,test是table原始容器的属性 lay-filter="对应的值"
var data = obj.data;
var layEvent = obj.event;
var tr = obj.tr;
if (layEvent === 'delete') { //删除
layer.confirm('真的要删除吗?', function (index) {
//向服务端发送删除指令
$.ajax({
url: "{{url('admin/levermultiple/del')}}",
type: 'post',
dataType: 'json',
data: {id: data.id},
success: function (res) {
if (res.type == 'ok') {
obj.del(); //删除对应行(tr)的DOM结构,并更新缓存
layer.close(index);
} else {
layer.close(index);
layer.alert(res.message);
}
}
});
});
}else if (layEvent === 'edit'){ //编辑
var index = layer.open({
title: '编辑'
,type: 2
,content: '{{url('/admin/levermultiple/edit')}}?id=' + data.id
,area: ['430px', '200px']
});
}
});
});
}
</script>
@endsection
@@ -0,0 +1,103 @@
@extends('admin._layoutNew')
@section('page-head')
@endsection
@section('page-content')
<table id="data_table" lay-filter="data_table"></table>
@endsection
@section('scripts')
<script type="text/html" id="is_display">
<input type="checkbox" name="is_display" value="@{{d.id}}" lay-skin="switch" lay-text="是|否" lay-filter="is_display" disabled @{{ d.is_display == 1 ? 'checked' : '' }}>
</script>
<script type="text/html" id="open_transaction">
<input type="checkbox" name="open_transaction" value="@{{d.id}}" lay-skin="switch" lay-text="开启|关闭" lay-filter="open_transaction" disabled @{{ d.open_transaction == 1 ? 'checked' : '' }}>
</script>
<script type="text/html" id="open_lever">
<input type="checkbox" name="open_lever" value="@{{d.id}}" lay-skin="switch" lay-text="开启|关闭" lay-filter="open_lever" disabled @{{ d.open_lever == 1 ? 'checked' : '' }}>
</script>
<script>
var legal_id = {{ Request::route('legal_id') }}
layui.use(['table', 'layer', 'form'], function() {
var table = layui.table
,layer = layui.layer
,form = layui.form
,$ = layui.$
var data_table = table.render({
elem: '#data_table'
,url: '/admin/currency/match_list/' + legal_id
,height: 'full'
,toolbar: 'default'
,page: true
,cols: [[
{type: 'radio'}
,{field: 'id', title: 'id', width: 70}
,{field: 'legal_name', title: '法币', width: 80}
,{field: 'currency_name', title: '交易币', width: 80}
,{field: 'is_display', title: '显示', width: 90, templet: '#is_display'}
,{field: 'open_transaction', title: '撮合交易', width: 100, templet: '#open_transaction'}
,{field: 'open_lever', title: '杠杆交易', width: 100, templet: '#open_lever'}
,{field: 'market_from_name', title: '行情来自', width: 110}
,{field: 'create_time', title: '创建时间', width: 180}
]]
});
table.on('toolbar(data_table)', function (obj) {
console.log(obj)
var id = 0
,selected = table.checkStatus('data_table')
switch (obj.event) {
case 'add':
layer.open({
title: '添加交易对'
,type: 2
,content: '/admin/currency/match_add/' + legal_id
,area: ['550px', '380px']
});
break;
case 'update':
if (selected.data.length != 1) {
layer.msg('只能编辑一个交易对');
return false;
}
id = selected.data[0].id
layer.open({
title: '编辑交易对'
,type: 2
,content: '/admin/currency/match_edit/' + id
,area: ['550px', '380px']
});
break;
case 'delete':
if (selected.data.length != 1) {
layer.msg('选择一个交易对才能删除');
return false;
}
id = selected.data[0].id
layer.confirm('真的确定要删除吗?', function (index) {
$.ajax({
url: '/admin/currency/match_del/' + id
,type: 'GET'
,success: function (res) {
layer.msg(res.message, {
time: 2000
,end: function () {
if (res.type == 'ok') {
data_table.reload();
}
}
});
}
,error: function (res) {
}
});
});
break;
default:
break;
}
});
});
</script>
@endsection
@@ -0,0 +1,118 @@
@extends('admin._layoutNew')
@section('page-head')
@endsection
@section('page-content')
<div class="layui-form">
<div class="layui-form-item">
<label for="currency_id" class="layui-form-label">币种</label>
<div class="layui-input-block">
<select name="currency_id" lay-verify="required" lay-search>
@foreach ($currencies as $currency)
<option value="{{ $currency->id }}" @if ((isset($currency_match) && $currency_match->currency_id == $currency->id)) selected @endif>{{ $currency->name }}</option>
@endforeach
</select>
</div>
</div>
<div class="layui-form-item">
<label for="currency_id" class="layui-form-label">显示</label>
<div class="layui-input-block">
<input type="radio" name="is_display" value="1" title="" @if (isset($currency_match)) {{ $currency_match->is_display == 1 ? 'checked' : '' }} @else checked @endif>
<input type="radio" name="is_display" value="0" title="" @if (isset($currency_match) && $currency_match->is_display == 0) checked @endif>
</div>
</div>
<div class="layui-form-item">
<label for="market_from" class="layui-form-label">行情</label>
<div class="layui-input-block">
<select name="market_from" lay-verify="required">
@foreach ($market_from_names as $key => $market_from_name)
<option value="{{ $key }}" @if ((isset($currency_match) && $currency_match->market_from == $key)) selected @endif>{{ $market_from_name }}</option>
@endforeach
</select>
</div>
</div>
<div class="layui-form-item">
<label for="currency_id" class="layui-form-label">交易功能</label>
<div class="layui-input-block">
<input type="checkbox" name="open_transaction" value="1" title="撮合交易" @if (isset($currency_match)) {{ $currency_match->open_transaction == 1 ? 'checked' : '' }} @else checked @endif>
<input type="checkbox" name="open_lever" value="1" title="杠杆开启" @if (isset($currency_match)) {{ $currency_match->open_lever == 1 ? 'checked' : '' }} @else checked @endif>
</div>
</div>
<div class="layui-form-item">
<label for="currency_id" class="layui-form-label">每手数量</label>
<div class="layui-input-block">
<input type="text" class="layui-input" name="lever_share_num" placeholder="杠杆交易每手数量" value="{{ $currency_match->lever_share_num ?? 1.00 }}" >
</div>
</div>
<div class="layui-form-item">
<label for="currency_id" class="layui-form-label">杠杆手续费</label>
<div class="layui-input-block">
<div class="layui-input-inline">
<input type="text" class="layui-input" name="lever_trade_fee" placeholder="杠杆交易手费续" value="{{ $currency_match->lever_trade_fee ?? 0.00 }}" >
</div>
<div class="layui-form-mid">%</div>
</div>
</div>
<div class="layui-form-item">
<label for="currency_id" class="layui-form-label">点差</label>
<div class="layui-input-block">
<div class="layui-input-inline">
<input type="text" class="layui-input" name="spread" placeholder="交易点差" value="{{ $currency_match->spread ?? 0.00 }}" >
</div>
<div class="layui-form-mid">%</div>
</div>
</div>
<div class="layui-form-item">
<label for="currency_id" class="layui-form-label">隔夜费</label>
<div class="layui-input-block">
<div class="layui-input-inline">
<input type="text" class="layui-input" name="overnight" placeholder="隔夜费" value="{{ $currency_match->overnight ?? 0.00 }}" >
</div>
<div class="layui-form-mid">%</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="form">提交</button>
</div>
</div>
</div>
@endsection
@section('scripts')
<script>
layui.use(['form', 'layer'], function () {
var form = layui.form
,layer = layui.layer
,$ = layui.$
form.on('submit(form)', function (data) {
console.log(data);
$.ajax({
url: '',
type: 'POST',
data: data.field,
success: function (res) {
layer.msg(res.message, {
time: 2000
,end: function () {
if (res.type == 'ok') {
var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
parent.layer.close(index); //再执行关闭
parent.layui.table.reload('data_table');
}
}
});
},
error: function (res) {
layer.msg('网络错误,请稍后重试');
}
});
});
});
</script>
@endsection