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,73 @@
@extends('admin._layoutNew')
@section('page-head')
@endsection
@section('page-content')
<div class="layui-form">
<div class="layui-form-item">
<input type="hidden" name="id" value="{{Request::get('id')}}">
<label for="price" class="layui-form-label">发送价格</label>
<div class="layui-input-block">
<input type="text" class="layui-input" name="update_price" placeholder="请输入价格" value="" >
</div>
</div>
<div class="layui-form-item">
<label for="write_market" class="layui-form-label">写入行情</label>
<div class="layui-input-block">
<input type="radio" name="write_market" value="1" title="" checked>
<input type="radio" name="write_market" value="0" title="">
</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);
if (data.field.update_price <= 0 || data.field.update_price == '' || data.field.update_price == null || data.field.update_price == undefined) {
layer.msg('价格必须大于0');
return false;
}
layer.confirm('您确定要向该笔交易发送价格吗?', {
title: '操作确认'
}, function (index) {
$.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
@@ -0,0 +1,125 @@
@extends('admin._layoutNew')
@section('page-head')
<style>
.number {
text-align: right;
margin-right: 10px;
}
.layui-form-label {
width: unset;
}
</style>
@endsection
@section('page-content')
<div class="layui-form">
<div class="layui-form-item">
<input name="user_id" type="hidden" value="{{Request::get('user_id')}}">
<div class="layui-inline">
<label class="layui-form-label">法币</label>
<div class="layui-input-inline" style="width:90px;">
<select name="legal_id" lay-verify="required">
<option value="-1"></option>
@foreach ($currencies as $key => $currency)
<option value="{{$currency->id}}">{{$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;">
<select name="type" lay-verify="required">
<option value="-1">全部</option>
<option value="1">买入(做多)</option>
<option value="2">卖出(做空)</option>
</select>
</div>
</div>
<!--
<div class="layui-inline">
<label class="layui-form-label">风险率</label>
<div class="layui-input-inline" style="width:90px; margin-right: 0px">
<select name="operate" lay-verify="required">
<option value="-1">范围</option>
<option value="1">&gt;=</option>
<option value="2">&lt;=</option>
</select>
</div>
<div class="layui-input-inline" style="width:80px; margin-right: 0px">
<input type="text" class="layui-input" name="hazard_rate" placeholder="输入数值">
</div>
<div class="layui-form-mid layui-word-aux">%</div>
</div>
-->
<div class="layui-inline">
<button class="layui-btn" lay-submit lay-filter="submit">查询</button>
</div>
</div>
</div>
<table id="data_table" lay-filter="data_table"></table>
@endsection
@section('scripts')
<script id="operate_bar" type="text/html">
<button class="layui-btn layui-btn-danger layui-btn-xs" lay-event="handle">处理交易</button>
</script>
<script>
layui.use(['table', 'layer', 'form'], function() {
var table = layui.table
,layer = layui.layer
,form = layui.form
,$ = layui.$
var user_id = $('input[name=user_id]').val();
var data_table = table.render({
elem: '#data_table'
,url: '/admin/hazard/lists'
,height: 'full'
,toolbar: true
,page: true
,totalRow: true
,cols: [[
{field: 'id', title: 'id', width: 80, totalRowText: '小计:'}
,{field: 'symbol', title: '交易对', width: 110}
,{field: 'type_name', title: '方式', width: 80}
,{field: 'account_number', title: '交易账号', width: 130}
,{field: 'price', title: '开仓价格', width: 130, templet: '<div><p class="number"><span>@{{ Number(d.price).toFixed(6) }}</span></p></div>'}
,{field: 'update_price', title: '当前价格', width: 130, templet: '<div><p class="number"><span>@{{ Number(d.update_price).toFixed(6) }}</span></p></div>'}
,{field: 'share', title: '手数', width: 90, hide: true}
,{field: 'multiple', title: '倍数', width: 90}
,{field: 'number', title: '数量', width: 90}
,{field: 'caution_money', title: '保证金', width: 130, totalRow: true}
,{field: 'profits', title: '盈亏', width: 150, sort: true, totalRow: true, templet: '<div><p class=""><span>@{{ Number(d.profits).toFixed(4) }}</span></p></div>'}
,{fixed: 'right', title: '操作', toolbar: '#operate_bar'}
//,{field: 'profits_total', title: '盈亏总额', width: 150, sort: true, totalRow: true, templet: '<div><p class=""><span>@{{ Number(d.profits_total).toFixed(4) }}</span></p></div>'}
//,{field: 'caution_money_total', title: '保证金总额', width: 150, sort: true, totalRow: true, templet: '<div><p class=""><span>@{{ Number(d.caution_money_total).toFixed(4) }}</span></p></div>'}
//,{field: 'hazard_rate', title: '风险率', width: 150, sort: true, templet: '<div><p class="number"><span>@{{ d.hazard_rate }}</span><span>%</span></p></div>'}
//,{field: '', title: '爆仓价', width: 120}
//,{fixed: 'right', title: '操作', width: 120}
]]
,where : {
user_id: user_id
}
});
table.on('tool(data_table)', function (obj) {
var layEvent = obj.event
,data = obj.data
if (layEvent == 'handle') {
layer.open({
type: 2
,title: '交易处理'
,content: '/admin/hazard/handle' + '?id=' + data.id
,area: ['380px', '220px']
});
}
});
form.on('submit(submit)', function (data) {
var option = {
where: data.field
}
data_table.reload(option);
});
});
</script>
@endsection
@@ -0,0 +1,116 @@
@extends('admin._layoutNew')
@section('page-head')
<style>
.number {
text-align: right;
margin-right: 10px;
}
.layui-form-label {
width: unset;
}
.percent:after {
content: '%';
}
</style>
@endsection
@section('page-content')
<div class="layui-form">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">币种</label>
<div class="layui-input-inline" style="width:100px;">
<select name="legal_id" lay-verify="required">
<option value="-1"></option>
@foreach ($currencies as $key => $currency)
<option value="{{$currency->id}}">{{$currency->name}}</option>
@endforeach
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">方向</label>
<div class="layui-input-inline" style="width:100px;">
<select name="type" lay-verify="required">
<option value="-1">全部</option>
<option value="1">买入(做多)</option>
<option value="2">卖出(做空)</option>
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">风险率</label>
<div class="layui-input-inline" style="width:90px; margin-right: 0px">
<select name="operate" lay-verify="required">
<option value="-1">范围</option>
<option value="1">&gt;=</option>
<option value="2">&lt;=</option>
</select>
</div>
<div class="layui-input-inline" style="width:80px; margin-right: 0px">
<input type="text" class="layui-input" name="hazard_rate" placeholder="输入数值">
</div>
<div class="layui-form-mid layui-word-aux">%</div>
</div>
<div class="layui-inline">
<button class="layui-btn" lay-submit lay-filter="submit">查询</button>
</div>
</div>
</div>
<table id="data_table" lay-filter="data_table"></table>
@endsection
@section('scripts')
<script id="operate_bar" type="text/html">
<button class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">查看交易</button>
</script>
<script>
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/hazard/total_lists'
,height: 'full'
,toolbar: true
,page: true
,totalRow: true
,cols: [[
{field: 'user_id', title: 'id', width: 80, totalRowText: '小计:'}
,{field: 'mobile', title: '电话', width: 120}
,{field: 'account_number', title: '交易账号', width: 150}
,{field: 'lever_balance', title: '余额', width: 150, sort: true, totalRow: true, templet: '<div><p class=""><span>@{{ Number(d.lever_balance).toFixed(4) }}</span></p></div>'}
,{field: 'profits_total', title: '盈亏总额', width: 150, sort: true, totalRow: true, templet: '<div><p class=""><span>@{{ Number(d.profits_total).toFixed(4) }}</span></p></div>'}
,{field: 'caution_money_total', title: '保证金总额', width: 150, sort: true, totalRow: true, templet: '<div><p class=""><span>@{{ Number(d.caution_money_total).toFixed(4) }}</span></p></div>'}
,{field: 'hazard_rate', title: '风险率', width: 150, sort: true, templet: '<div><p class="number"><span class="percent">@{{ d.hazard_rate }}</span></p></div>'}
//,{field: '', title: '爆仓价', width: 120}
,{fixed: 'right', title: '操作', width: 120, toolbar: '#operate_bar'}
]]
});
form.on('submit(submit)', function (data) {
var option = {
where: data.field
}
data_table.reload(option);
});
table.on('tool(data_table)', function (obj) {
var data = obj.data //获得当前行数据
,layEvent = obj.event //获得 lay-event 对应的值(也可以是表头的 event 参数对应的值)
,tr = obj.tr //获得当前行 tr 的DOM对象
if (layEvent == 'detail') {
parent.layer.open({
type: 2
,title: '交易记录'
,content: '/admin/hazard/index' + '?user_id=' + data.user_id
,zIndex: parent.layer.zIndex
,area: ['1240px', '768px']
});
}
});
});
</script>
@endsection
@@ -0,0 +1,101 @@
@extends('admin._layoutNew')
@section('page-head')
<style>
.number {
text-align: right;
margin-right: 10px;
}
.layui-form-label {
width: unset;
}
</style>
@endsection
@section('page-content')
<div class="layui-form">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">币种</label>
<div class="layui-input-inline" style="width:100px;">
<select name="legal_id" lay-verify="required">
<option value="-1"></option>
@foreach ($currencies as $key => $currency)
<option value="{{$currency->id}}">{{$currency->name}}</option>
@endforeach
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">方向</label>
<div class="layui-input-inline" style="width:100px;">
<select name="type" lay-verify="required">
<option value="-1">全部</option>
<option value="1">买入(做多)</option>
<option value="2">卖出(做空)</option>
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">风险率</label>
<div class="layui-input-inline" style="width:90px; margin-right: 0px">
<select name="operate" lay-verify="required">
<option value="-1">全部</option>
<option value="1">&gt;=</option>
<option value="2">&lt;=</option>
</select>
</div>
<div class="layui-input-inline" style="width:80px; margin-right: 0px">
<input type="text" class="layui-input" name="hazard_rate" placeholder="输入数值">
</div>
<div class="layui-form-mid layui-word-aux">%</div>
</div>
<div class="layui-inline">
<button class="layui-btn" lay-submit lay-filter="submit">查询</button>
</div>
</div>
</div>
<table id="data_table" lay-filter="data_table"></table>
@endsection
@section('scripts')
<script>
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/hazard/lists'
,height: 'full'
,toolbar: true
,page: true
,totalRow: true
,cols: [[
{type: 'checkbox'}
,{field: 'id', title: 'id', width: 80, totalRowText: '小计:'}
,{field: 'type_name', title: '方式', width: 150}
,{field: 'mobile', title: '电话', width: 120}
,{field: 'account_number', title: '交易账号', width: 150}
,{field: 'symbol', title: '交易账号', width: 150}
,{field: 'price', title: '价格', width: 150}
,{field: 'share', title: '手数', width: 90}
,{field: 'multiple', title: '倍数', width: 90}
,{field: 'caution_money', title: '保证金', width: 130}
,{field: 'profits', title: '盈亏', width: 150, sort: true, totalRow: true, templet: '<div><p class=""><span>@{{ Number(d.profits).toFixed(4) }}</span></p></div>'}
,{field: 'profits_total', title: '盈亏总额', width: 150, sort: true, totalRow: true, templet: '<div><p class=""><span>@{{ Number(d.profits_total).toFixed(4) }}</span></p></div>'}
,{field: 'caution_money_total', title: '保证金总额', width: 150, sort: true, totalRow: true, templet: '<div><p class=""><span>@{{ Number(d.caution_money_total).toFixed(4) }}</span></p></div>'}
,{field: 'hazard_rate', title: '风险率', width: 150, sort: true, templet: '<div><p class="number"><span>@{{ d.hazard_rate }}</span><span>%</span></p></div>'}
//,{field: '', title: '爆仓价', width: 120}
//,{fixed: 'right', title: '操作', width: 120}
]]
});
form.on('submit(submit)', function (data) {
var option = {
where: data.field
}
data_table.reload(option);
});
});
</script>
@endsection