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
+196
View File
@@ -0,0 +1,196 @@
<title>代理商</title>
<div class="layui-card layadmin-header">
<div class="layui-breadcrumb" lay-filter="breadcrumb">
<a lay-href="">主页</a>
<a><cite>代理商</cite></a>
<a><cite>代理商用户</cite></a>
</div>
</div>
<div class="layui-fluid">
<div class="layui-card">
<div class="layui-form layui-card-header layuiadmin-card-header-auto" lay-filter="layadmin-userfront-formlist">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">开始日期</label>
<div class="layui-input-block">
<input type="text" name="start" id="datestart" lay-verify="date" placeholder="yyyy-MM-dd" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">结束日期</label>
<div class="layui-input-block">
<input type="text" name="end" id="dateend" lay-verify="date" placeholder="yyyy-MM-dd" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<button class="layui-btn layuiadmin-btn-useradmin" lay-submit lay-filter="LAY-user-front-search">
结算订单
</button>
</div>
</div>
</div>
<div class="layui-card-body">
<div class="layui-fluid">
<div class="layui-row layui-col-space15">
<div class="layui-col-md12">
<div class="layui-card">
<!--<div class="layui-card-header">标准柱状图</div>-->
<div class="layui-card-body">
<div class="layui-carousel layadmin-carousel layadmin-dataview" data-anim="fade" lay-filter="LAY-index-normcol">
<div carousel-item id="LAY-index-normcol">
<div><i class="layui-icon layui-icon-loading1 layadmin-loading"></i></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
layui.define(function(exports){
layui.use('useradmin', layui.factory('useradmin')).use(['admin', 'layer' , 'laydate' , 'form'], function(){
var $ = layui.$
,admin = layui.admin
,laydate = layui.laydate
,form = layui.form;
//日期
laydate.render({
elem: '#datestart'
});
laydate.render({
elem: '#dateend'
});
//监听搜索
form.on('submit(LAY-user-front-search)', function(data){
var field = data.field;
admin.req( {
type : "POST",
url : '/agent/dojie',
dataType : "json",
data : field,
done : function(result) { //返回数据根据结果进行相应的处理
layui.layer.msg(result.msg, {icon: 6 });
}
});
});
admin.req( {
type : "POST",
url : '/agent/jie',
dataType : "json",
data : {type : 'all'},
done : function(result) { //返回数据根据结果进行相应的处理
//提交 Ajax 成功后,关闭当前弹层并重载图表
show_table(result.data);
}
});
});
//区块轮播切换
layui.use(['admin', 'carousel'], function(){
var $ = layui.$
,admin = layui.admin
,carousel = layui.carousel
,element = layui.element
,device = layui.device();
//轮播切换
$('.layadmin-carousel').each(function(){
var othis = $(this);
carousel.render({
elem: this
,width: '100%'
,arrow: 'none'
,interval: othis.data('interval')
,autoplay: othis.data('autoplay') === true
,trigger: (device.ios || device.android) ? 'click' : 'hover'
,anim: othis.data('anim')
});
});
});
function show_table (returnData){
//柱状图
layui.use(['echarts'], function(){
var $ = layui.$
,echarts = layui.echarts;
//标准柱状图
var echnormcol = [], normcol = [
{
title : {
text: '最近52周【未结算订单】图表',
subtext: '单位:个'
},
tooltip : {
trigger: 'axis'
},
legend: {
data:['订单数量']
},
calculable : true,
xAxis : [
{
type : 'category',
data : returnData.xAxis //['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月']
}
],
yAxis : [
{
type : 'value'
}
],
series : [
{
name:'订单数量',
type:'bar',
data: returnData.series, //[2.0, 4.9, 7.0, 23.2, 245.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
markPoint : {
data : [
{type : 'max', name: '最大值'},
{type : 'min', name: '最小值'}
]
},
markLine : {
data : [{type : 'average', name: '平均值'}]
}
}
]
}
]
,elemNormcol = $('#LAY-index-normcol').children('div')
,renderNormcol = function(index){
echnormcol[index] = echarts.init(elemNormcol[index], layui.echartsTheme);
echnormcol[index].setOption(normcol[index]);
window.onresize = echnormcol[index].resize;
};
if(!elemNormcol[0]) return;
renderNormcol(0);
});
}
});
</script>
+141
View File
@@ -0,0 +1,141 @@
<div class="layui-form" lay-filter="layuiadmin-form-useradmin" style="padding: 20px 0 0 0;">
<div class="layui-form-item">
<label class="layui-form-label">用户名</label>
<div class="layui-input-inline">
<script type="text/html" template>
{{# if(d.params.username){ }}
<input type="text" name="username" value="{{ d.params.username || '' }}" lay-verify="required" placeholder="请输入用户名" autocomplete="off" class="layui-input" disabled="">
{{# }else{ }}
<input type="text" name="username" value="{{ d.params.username || '' }}" lay-verify="required" placeholder="请输入用户名" autocomplete="off" class="layui-input">
{{# } }}
<input type="hidden" name="user_id" value="{{ d.params.user_id || 0 }}">
<input type="hidden" name="id" value="{{ d.params.id || 0 }}">
</script>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">下级身份</label>
<div class="layui-input-inline">
<script type="text/html" template>
{{# if(d.params.son_level == 1 && !d.params.id){ }}
<button class="layui-btn layui-btn-normal layui-btn-radius">一级代理商</button>
{{# }else if(d.params.son_level == 2 && !d.params.id){ }}
<button class="layui-btn layui-btn-normal layui-btn-radius">二级代理商</button>
{{# }else if(d.params.son_level == 3 && !d.params.id){ }}
<button class="layui-btn layui-btn-normal layui-btn-radius">三级代理商</button>
{{# }else if(d.params.son_level == 4 && !d.params.id){ }}
<button class="layui-btn layui-btn-normal layui-btn-radius">四级代理商</button>
{{# }else if (d.params.id && d.params.id>0) { }}
<button class="layui-btn layui-btn-normal layui-btn-radius">{{d.params.self_info}}</button>
{{# }else{ }}
<button class="layui-btn layui-btn-danger layui-btn-radius">不能添加代理商</button>
{{# } }}
</script>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">头寸比例(%</label>
<div class="layui-input-inline">
<script type="text/html" template>
<input type="text" name="pro_loss" value="{{ d.params.pro_loss || '' }}" lay-verify="pro_loss" placeholder="请输入该代理商的头寸比例,不超过{{ d.params.max_pro_loss || '100' }}" autocomplete="off" class="layui-input">
</script>
</div>
<script type="text/html" template>
<div class="layui-form-mid layui-word-aux">设置下级代理商的头寸比例该值不能超过<span class="layui-badge">{{ d.params.max_pro_loss || '100' }}</span>20.85%20.85</div>
</script>
</div>
<div class="layui-form-item">
<label class="layui-form-label">手续费比例(%</label>
<div class="layui-input-inline">
<script type="text/html" template>
<input type="text" name="pro_ser" value="{{ d.params.pro_ser || '' }}" lay-verify="pro_ser" placeholder="请输入该代理商的手续费比例,不超过{{ d.params.max_pro_ser || '100' }}" autocomplete="off" class="layui-input">
</script>
</div>
<script type="text/html" template>
<div class="layui-form-mid layui-word-aux">设置下级代理商的手续费比例该值不能超过<span class="layui-badge">{{ d.params.max_pro_ser || '100' }}</span>20.85%20.85</div>
</script>
</div>
<div class="layui-form-item" lay-filter="sex">
<label class="layui-form-label">是否锁定</label>
<div class="layui-input-block">
<script type="text/html" template>
{{# if(d.params.is_lock){ }}
<input type="radio" name="is_lock" value="0" title="开启" {{ d.params.is_lock == '0' ? 'checked' : '' }}>
<input type="radio" name="is_lock" value="1" title="锁定" {{ d.params.is_lock == '1' ? 'checked' : '' }}>
{{# }else{ }}
<input type="radio" name="is_lock" value="0" title="开启" checked>
<input type="radio" name="is_lock" value="1" title="锁定">
{{# } }}
</script>
</div>
<div class="layui-form-mid layui-word-aux">当锁定时,该用户不能登录代理商管理平台</div>
</div>
<div class="layui-form-item" lay-filter="sex">
<label class="layui-form-label">是否拉新</label>
<div class="layui-input-block">
<script type="text/html" template>
{{# if(d.params.is_lock){ }}
<input type="radio" name="is_addson" value="0" title="禁止" {{ d.params.is_addson == '0' ? 'checked' : '' }}>
<input type="radio" name="is_addson" value="1" title="允许" {{ d.params.is_addson == '1' ? 'checked' : '' }}>
{{# }else{ }}
<input type="radio" name="is_addson" value="1" title="允许" checked>
<input type="radio" name="is_addson" value="0" title="禁止">
{{# } }}
</script>
</div>
<div class="layui-form-mid layui-word-aux">当禁止填加新代理商时,该用户不能添加自己的下级代理商</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-inline">
<input type="button" lay-submit lay-filter="LAY-user-front-submit" value="确认" class="layui-btn">
</div>
</div>
</div>
<script>
layui.use(['admin', 'form', 'upload' ,'layer'], function(){
var $ = layui.$
,form = layui.form
,upload = layui.upload;
//自定义验证
form.verify({
nickname: function(value, item){ //value:表单的值、item:表单的DOM对象
if(!new RegExp("^[a-zA-Z0-9_\u4e00-\u9fa5\\s·]+$").test(value)){
return '用户名不能有特殊字符';
}
if(/(^\_)|(\__)|(\_+$)/.test(value)){
return '用户名首尾不能出现下划线\'_\'';
}
if(/^\d+\d+\d$/.test(value)){
return '用户名不能全为数字';
}
}
//我们既支持上述函数式的方式,也支持下述数组的形式
//数组的两个值分别代表:[正则匹配、匹配不符时的提示文字]
,pass: [
/^[\S]{6,12}$/
,'密码必须6到12位,且不能出现空格'
]
});
//上传头像
upload.render({
elem: '#layuiadmin-upload-useradmin'
,url: './json/upload/demo.js'
,accept: 'images'
,method: 'get'
,acceptMime: 'image/*'
,done: function(res){
$(this.item).prev("div").children("input").val(res.data.src)
}
});
})
</script>