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,108 @@
@extends('admin._layoutNew')
@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">
<button class="layui-btn layui-btn-normal layui-btn-radius" id="add_project">添加项目</button>
</div>
</div>
<table id="data_table" lay-filter="data_table"></table>
@endsection
@section('scripts')
<script type="text/html" id="barDemo">
<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>
$('#add_project').click(function() {
var index = layer.open({
title:'添加项目'
,type:2
,content: '/admin/deposit/config/add/view'
,area: ['100%', '100%']
,maxmin: true
,anim: 3
});
});
let url=window.location.href;
let configId="";
if(url.indexOf("id")!=-1){
configId=url.substr(url.lastIndexOf("/")+1);
}
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/deposit/config'
,height: 'full'
,toolbar: 'default'
,page: true
,cols: [[
{type: 'radio'}
,{field: 'id', title: 'id', width: 70}
,{field: 'currency_name', title: '交易币', width: 80}
,{field: 'day', title: '期限', width: 80}
,{field: 'interest_rate', title: '利息(%', width: 150}
,{field: 'intro', title: '文案', width: 150}
,{field: 'save_min', title: '最少存币数', width: 300}
,{field: 'created_at', title: '创建时间', width: 200}
,{fixed: 'right', title: '操作', width: 190, align: 'center', toolbar: '#barDemo'}
]]
});
table.on('tool(data_table)', function (obj) {
var data = obj.data;
var layEvent = obj.event;
var tr = obj.tr;
var selected = table.checkStatus('data_table')
if (layEvent === 'delete') { //删除
layer.confirm('真的要删除吗?', function (index) {
//向服务端发送删除指令
$.ajax({
url: "/admin/deposit/config/delete",
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);
}
}
});
});
}
if(layEvent === 'edit'){
if (selected.data.length != 1) {
layer.msg('只能编辑一个质押配置');
return false;
}
id = selected.data[0].id
var data=selected.data[0];
layer.open({
title: '编辑质押'
,type: 2
,content: '/admin/deposit/config/edit/view?id='+id
,area: ['600px', '380px']
});
}
});
});
</script>
@endsection
@@ -0,0 +1,94 @@
@extends('admin._layoutNew')
@section('page-head')
<style>
.layui-form-label {
width: 150px;
}
.layui-input-block {
margin-left: 180px;
}
</style>
@endsection
@section('page-content')
<form class="layui-form" action="">
<input type="hidden" id="id" data-type="0" >
<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" id="currency_id" lay-search>
@foreach ($currencies as $currency)
<option value="{{ $currency->id }}"> {{ $currency->name }}</option>
@endforeach
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">期限</label>
<div class="layui-input-block">
<input type="text" name="day" id="day" required autocomplete="off" placeholder="" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">利息(百分比)</label>
<div class="layui-input-block">
<input type="text" name="rate" id="rate" required autocomplete="off" placeholder="" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">文案</label>
<div class="layui-input-block">
<input type="text" name="intro" id="intro" required autocomplete="off" placeholder="" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">最小值</label>
<div class="layui-input-block">
<input type="text" name="save_min" id="save_min" autocomplete="off" placeholder="" class="layui-input">
</div>
</div>
<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>
let url=window.location.href;
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/deposit/add_deposit_config')}}'
,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,90 @@
@extends('admin._layoutNew')
@section('page-head')
<style>
.layui-form-label {
width: 150px;
}
.layui-input-block {
margin-left: 180px;
}
</style>
@endsection
@section('page-content')
<form class="layui-form" action="">
<input type="hidden" id="id" data-type="0" >
<div class="layui-form-item">
<label for="currency_id" class="layui-form-label">币种</label>
<div class="layui-input-block">
<input type="text" disabled="disabled" name="currency_name" id="name" value="{{$model->currency_name}}" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">期限</label>
<div class="layui-input-block">
<input type="text" name="day" id="day" required autocomplete="off" placeholder="" class="layui-input" value="{{$model->day}}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">利息(百分比)</label>
<div class="layui-input-block">
<input type="text" name="rate" id="rate" required autocomplete="off" placeholder="" class="layui-input" value="{{$model->interest_rate}}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">文案</label>
<div class="layui-input-block">
<input type="text" name="intro" id="intro" required autocomplete="off" placeholder="" class="layui-input" value="{{$model->intro}}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">最小值</label>
<div class="layui-input-block">
<input type="text" name="save_min" id="save_min" autocomplete="off" placeholder="" class="layui-input" value="{{$model->save_min}}">
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" lay-submit="" lay-filter="demo1">立即提交</button>
</div>
</div>
</form>
@endsection
@section('scripts')
<script>
// let url=window.location.href;
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){
// console.log(123);return;
var data = data.field;
$.ajax({
url:'{{url('admin/deposit/edit_deposit_config')}}?id='+{{$model->id}}
,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,123 @@
@extends('admin._layoutNew')
@section('page-head')
@stop
@section('page-content')
<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="account" id="account" autocomplete="off" class="layui-input layui-disabled" value="" placeholder="" disabled>
</div>
</div>
<!--<div class="layui-form-item">-->
<!-- <label class="layui-form-label">理财账户币种</label>-->
<!-- <div class="layui-input-block">-->
<!-- <select name="type" lay-verify="required" lay-filter="type" id="type">-->
<!-- <option value="1">AUTH</option>-->
<!-- <option value="2">USDT</option>-->
<!-- </select>-->
<!-- </div>-->
<!--</div>-->
<div class="layui-form-item">
<label class="layui-form-label">调节DF币种余额</label>
<div class="layui-input-block">
<input type="text" name="df_balance" id="df_balance" required lay-verify="required" placeholder="请输入要改成多少余额" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">调节USDT币种余额</label>
<div class="layui-input-block">
<input type="text" name="usdt_balance" id="usdt_balance" required lay-verify="required" placeholder="请输入要改成多少余额" 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="user_submit">立即提交</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</div>
</form>
</div>
@stop
@section('scripts')
<script type="text/javascript">
let url=window.location.href;
var account_id='';
var account='';
var df_balance='';
var usdt_balance='';
if(url.indexOf("?")!=-1){
url=url.substr(url.indexOf('?')+1);
url=url.split('&');
for(let i in url){
if(i==0){
user_id=url[i].split("=")[1]
}else{
account=url[i].split("=")[1]
}
}
$("#account").val(account);
$.ajax({
url:'{{url('admin/ybb/account')}}',
type: 'get',
dataType: 'json',
data: {
user_id:user_id
},
success: function (res) {
account_id=res.message.id;
df_balance = res.message.df_balance;
usdt_balance=res.message.usdt_balance
$("#df_balance").val(df_balance);
$("#usdt_balance").val(usdt_balance);
}
});
}
layui.use(['form','upload','layer'], function () {
var layer = layui.layer;
var form = layui.form;
var $ = layui.$;
form.on('select(type)', function (data) {
if(data.elem.value==1){
$("#balance").val(df_balance?df_balance:0)
}else if(data.elem.value==2){
$("#balance").val(usdt_balance?usdt_balance:0);
}
console.log(data);
});
form.on('submit(user_submit)', function (data) {
// var balance=$("#balance").val();
// var type=$("#type option:selected").val();
var data = data.field;
data.id=account_id;
// if(type==1){
// data.df_balance=balance;
// }else if(type==2){
// data.usdt_balance=balance;
// }
$.ajax({
url:'{{url('admin/ybb/account/edit')}}',
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,180 @@
@extends('admin._layoutNew')
@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="order_id" placeholder="请输入" 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="mobile" placeholder="请输入" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">状态</label>
<div class="layui-input-inline">
<select name="status" class="layui-input">
<option value="">选择状态</option>
<option value="1">进行中</option>
<option value="2">毁约</option>
<option value="3">到期</option>
</select>
</div>
</div>
<div class="layui-inline">
<button class="layui-btn layuiadmin-btn-useradmin" lay-submit lay-filter="searchtj">
<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
</button>
</div>
</div>
</div>
<div class="layui-card-body">
<table id="boss" lay-filter="boss"></table>
</div>
</div>
</div>
@endsection
@section('scripts')
<script type="text/html" id="barDemo">
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="cancelOrder" title='取消质押订单'><i class="layui-icon"></i>取消订单</a>
</script>
<script>
layui.use(['table','form'], function(){
// console.log(layui.setter.base)
var table = layui.table;
var $ = layui.jquery;
var form = layui.form;
//第一个实例
table.render({
elem: '#boss'
,url: '{{url('admin/ybb/list')}}' //数据接口
,page: true //开启分页
,id:'mobileSearch'
,cols: [[ //表头
{field: 'id', title: '订单ID', width:100, sort: true}
,{field: 'user_id', title: '用户ID', width:100}
,{field: 'account_number', title: '用户名', width:200}
,{field:'currency_name',title:'币种',width:100}
,{field:'day_rate',title: '日利率', width:100}
,{field: 'amount', title: '存币数量', width:200}
,{field: 'total_interest', title: '总利息', width:100}
,{field: 'start_at', title: '开始时间', width:120}
,{field: 'end_at', title: '到期时间',}
,{ title: '状态',templet:function(d){
if(d.is_cancel){
if(d.status==1){
return '<span style="color:#00c087">进行中</span>';
}else if(d.status==2){
return '<span style="color:#f00">毁约</span>';
}
}else{
if(d.status==1){
return '<span style="color:#00c087">进行中</span>';
}else if(d.status==2){
return '<span style="color:#f00">到期</span>';
}
}
}}
,{title:'操作',templet:function(d){
if(d.is_cancel){
if(d.status==1){
return '<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="cancelOrder" title="取消质押订单"><i class="layui-icon"></i>取消订单</a>' ;
}else if(d.status==2){
return '<span style="color:#f00">已毁约</span>';
}
}else{
if(d.status==1){
return '<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="cancelOrder" title="取消质押订单"><i class="layui-icon"></i>取消订单</a>' ;
}else if(d.status==2){
return '<span style="color:#f00">到期</span>';
}
}
}}
]]
});
//监听提交
form.on('submit(searchtj)', function(data){
// var seller_name = data.field.seller_name
var account_number = data.field.mobile,
order_id = data.field.order_id,
status= data.field.status,
is_cancel=0;
if(status==2){
is_cancel=1;
}
if(status==3){
status=2;
is_cancel=0;
}
if(status==1 || status==""){
is_cancel='';
}
// ,currency_id = $('#currency_id').val()
table.reload('mobileSearch',{
where:{
is_cancel:is_cancel,
order_id:order_id,
account_number:account_number,
status:status,
// currency_id:currency_id,
},
page: {curr: 1} //重新从第一页开始
});
return false;
});
table.on('tool(boss)', function(obj){
var data = obj.data;
if(obj.event === 'getsons'){
table.reload('mobileSearch',{
where:{
p_id:data.id,
// currency_id:currency_id,
},
page: {curr: 1} //重新从第一页开始
});
}else if(obj.event === 'cancelOrder'){
//管理员取消质押订单
$.ajax({
url:'{{url('admin/deposit/cancelOrder')}}'
,type:'post'
,dataType:'json'
,data : {id: obj.data.id,}
,success:function(res){
if(res.type=='error'){
layer.msg(res.message);
}else{
layer.msg(res.message);
window.location.reload();
}
}
});
return false;
}
});
});
</script>
@endsection
@@ -0,0 +1,161 @@
@extends('admin._layoutNew')
@section('page-head')
<style>
p.percent {
text-align: right;
margin-right: 10px;
}
p.percent::after {
content: '%';
}
</style>
@endsection
@section('page-content')
<form class="layui-form layui-form-pane layui-inline" action="">
<div class="layui-inline" style="margin-left: 50px;">
<label class="layui-form-label">账号</label>
<div class="layui-input-inline">
<input type="text" name="search" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<div class="layui-input-inline">
<button class="layui-btn" lay-submit="" lay-filter="mobile_search"><i class="layui-icon">&#xe615;</i></button>
</div>
</div>
</form>
<table id="demo" lay-filter="test"></table>
@endsection
@section('scripts')
<script type="text/html" id="barDemo">
@{{d.status==0 ? '<a class="layui-btn layui-btn-xs" lay-event="del">确认</a><a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="edit">驳回</a>' : '' }}
</script>
<script>
layui.use(['table','form','laydate'], function(){
var table = layui.table;
var $ = layui.jquery;
var form = layui.form;
var laydate = layui.laydate;
//第一个实例
table.render({
elem: '#demo'
,toolbar: '#toolbar'
,url: '{{url('admin/ybb/unlock/list')}}' //数据接口
,page: true //开启分页
,id:'mobileSearch'
,cols: [[ //表头
{field: 'id', title: 'ID', width:60, sort: true}
,{field: 'account_number', title: '账号', minWidth:80}
,{field: 'amount', title: '存款数量', minWidth:80}
,{field: 'total_interest', title: '已产生利息', minWidth:80}
,{field: 'status', title: '状态', minWidth:80,templet:function(d){
if(d.status==1){
return '<span style="color:#5fb878">进行中</span>';
}
if(d.status==2){
return '<span style="color:#f00">已结束</span>';
}
return '';
}}
,{field: 'start_at', title: '开始时间', minWidth:80}
,{field: 'end_at', title: '完成时间', minWidth:80}
,{field: 'last_settle_time', title: '上次派息时间', minWidth:80}
,{field: 'is_cancel', title: '是否取消', minWidth:80,templet:function(d){
if(d.is_cancel==1){
return '<span style="color:#5fb878">是</span>';
}else{
return '<span style="color:#f00">否</span>';
}
}}
//,{field: 'create_time', title: '添加时间', width:160}
// ,{title:'操作',width:240,toolbar: '#barDemo'}
]]
});
//监听提交
// form.on('submit(mobile_search)', function(data){
// var account_number = data.field.account_number;
// var start_time = $("#start_time").val()
// var end_time = $("#end_time").val()
// var status = $('#status').val()
// table.reload('mobileSearch',{
// where:{mobile:account_number,status:status,start_time:start_time,end_time:end_time},
// page: {curr: 1} //重新从第一页开始
// });
// return false;
// });
laydate.render({
elem: '#start_time'
});
laydate.render({
elem: '#end_time'
});
table.on('tool(test)', function(obj){
var data = obj.data;
if(obj.event === 'del'){
layer.confirm('真的确认么', function(index){
$.ajax({
url:'{{url('admin/flashagainst/affirm')}}',
type:'post',
dataType:'json',
data:{id:data.id},
success:function (res) {
if (res.type == 'error') {
layer.msg(res.message);
} else {
layer.msg(res.message);
setTimeout(function () {
location.reload()
}, 2000)
}
}
});
});
} else if(obj.event === 'edit'){
layer.confirm('是否驳回', function(index){
$.ajax({
url:'{{url('admin/flashagainst/reject')}}',
type:'post',
dataType:'json',
data:{id:data.id},
success:function (res) {
if(res.type == 'error'){
layer.msg(res.message);
}else{
layer.msg(res.message);
setTimeout(function () {
location.reload()
}, 2000)
}
}
});
});
}
});
//监听提交
form.on('submit(mobile_search)', function(data){
var search = data.field.search;
table.reload('mobileSearch',{
where:{search:search},
page: {curr: 1} //重新从第一页开始
});
return false;
});
});
</script>
@endsection