feat: 完善接口和后台

master
yin5th 2023-08-16 13:49:32 +08:00
parent cc9ad0f201
commit 56eb126cfb
15 changed files with 1149 additions and 7 deletions

View File

@ -133,6 +133,12 @@ class OrderLogic extends Logic
if (isset($get['pay_way']) && $get['pay_way'] != '') {
$where[] = ['o.pay_way', '=', $get['pay_way']];
}
// 前置订单
if (isset($get['is_frontend']) && $get['is_frontend'] != '') {
$where[] = ['o.is_frontend', '=', $get['is_frontend']];
}
//订单来源
if (isset($get['order_source']) && $get['order_source'] != '') {
$where[] = ['o.order_source', '=', $get['order_source']];

View File

@ -131,6 +131,17 @@
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">前置订单:</label>
<div class="layui-input-block">
<select name="is_frontend" id="is_frontend">
<option value="">全部</option>
<option value="0"></option>
<option value="1"></option>
</select>
</div>
</div>
</div>
<div class="layui-row">
@ -216,6 +227,13 @@
<div style="text-align: left">
<p>订单编号:{{d.order_sn}}</p>
<p>订单类型:{{d.order_type_text}}</p>
<p>前置订单:
{{# if(d.is_frontend == '1'){ }}
{{# } else { }}
{{# } }}
</p>
<p>下单时间:{{d.create_time}}</p>
<p>支付时间:
{{# if(d.pay_time == '0'){ }}
@ -427,8 +445,8 @@
, page: true
, text: {none: '暂无数据!'}
,response: {
statusCode: 1
}
statusCode: 1
}
, parseData: function (res) {
return {
"code": res.code,

View File

@ -0,0 +1,171 @@
{layout name="layout2" /}
<style>
.layui-form-label{
width: 90px;
}
.reqRed::before {
content: '*';
color: red;
margin-right: 5px;
}
</style>
<div class="layui-form" lay-filter="adjust" id="layuiadmin-form-user" style="padding: 20px 30px 0 0;">
<input type="hidden" value="{$info.id}" name="id">
<input type="hidden" value="money" name="type" id="type">
<div class="layui-fluid">
<div class="layui-card">
<div class="layui-tab layui-tab-card" lay-filter="adjust">
<ul class="layui-tab-title">
<li data-type="money" class="layui-this">不可提现金额调整</li>
<li data-type="growth" >成长值调整</li>
<li data-type="integral" >积分调整</li>
<li data-type="earnings" >佣金调整</li>
</ul>
<div class="layui-tab-content" >
<!--不可提现金额调整-->
<div class="layui-tab-item layui-show " >
<div class="layui-form-item">
<label class="layui-form-label">当前余额:</label>
<div class="layui-input-inline">
<label class="layui-form-mid">{$info.user_money}</label>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label reqRed">余额增减:</label>
<div class="layui-input-block">
<input type="radio" name="money_handle" value="1" title="增加余额">
<input type="radio" name="money_handle" value="0" title="扣减余额">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label reqRed">调整余额:</label>
<div class="layui-input-inline">
<input type="number" min="0" name="money" value="" lay-verify="" lay-vertype="tips" placeholder="" autocomplete="off" class="layui-input">
<label class="layui-form-mid layui-word-aux">请输入调整的余额金额</label>
</div>
<label class="layui-form-mid"></label>
</div>
<div class="layui-form-item">
<label class="layui-form-label reqRed">备注:</label>
<div class="layui-input-block">
<textarea type="text" name="money_remark" autocomplete="off" class="layui-textarea" style="width: 30%;"></textarea>
<label class="layui-form-mid layui-word-aux" style="margin-left: 10px;">不超过100字</label>
</div>
</div>
</div>
<!--成长值调整-->
<div class="layui-tab-item">
<div class="layui-form-item">
<label class="layui-form-label">当前成长值:</label>
<div class="layui-input-inline">
<label class="layui-form-mid">{$info.user_growth}</label>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label reqRed">成长值增减:</label>
<div class="layui-input-block">
<input type="radio" name="growth_handle" value="1" title="增加成长值">
<input type="radio" name="growth_handle" value="0" title="扣减成长值">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label reqRed">调整成长值:</label>
<div class="layui-input-inline">
<input type="number" min="0" name="growth" value="" lay-verify="" lay-vertype="tips" placeholder="" autocomplete="off" class="layui-input">
<label class="layui-form-mid layui-word-aux">请输入调整的成长值</label>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label reqRed">备注:</label>
<div class="layui-input-block">
<textarea type="text" name="growth_remark" autocomplete="off" class="layui-textarea" style="width: 30%;"></textarea>
<label class="layui-form-mid layui-word-aux" style="margin-left: 10px;">不超过100字</label>
</div>
</div>
</div>
<!--积分调整-->
<div class="layui-tab-item">
<div class="layui-form-item">
<label class="layui-form-label">当前积分:</label>
<div class="layui-input-inline">
<label class="layui-form-mid">{$info.user_integral}</label>
<input type="hidden" value="{$info.user_integral}" name="now_integral">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">积分增减:</label>
<div class="layui-input-block">
<input type="radio" name="integral_handle" value="1" title="增加积分">
<input type="radio" name="integral_handle" value="0" title="扣减积分">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">调整积分:</label>
<div class="layui-input-inline">
<input type="text" name="integral" value="" lay-verify="" lay-vertype="tips" placeholder="" autocomplete="off" class="layui-input">
<label class="layui-form-mid layui-word-aux">请输入调整的积分数量</label>
</div>
<label class="layui-form-mid"></label>
</div>
<div class="layui-form-item">
<label class="layui-form-label">备注:</label>
<div class="layui-input-block">
<textarea type="text" name="integral_remark" autocomplete="off" class="layui-textarea" style="width: 30%;"></textarea>
<label class="layui-form-mid layui-word-aux" style="margin-left: 10px;">不超过100字</label>
</div>
</div>
</div>
<!--佣金调整-->
<div class="layui-tab-item " >
<div class="layui-form-item">
<label class="layui-form-label">当前佣金:</label>
<div class="layui-input-inline">
<label class="layui-form-mid">{$info.earnings}</label>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">佣金增减:</label>
<div class="layui-input-block">
<input type="radio" name="earnings_handle" value="1" title="增加佣金">
<input type="radio" name="earnings_handle" value="0" title="扣减佣金">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">调整佣金:</label>
<div class="layui-input-inline">
<input type="text" name="earnings" value="" lay-verify="" lay-vertype="tips" placeholder="" autocomplete="off" class="layui-input">
<label class="layui-form-mid layui-word-aux">请输入调整的金额</label>
</div>
<label class="layui-form-mid"></label>
</div>
<div class="layui-form-item">
<label class="layui-form-label">备注:</label>
<div class="layui-input-block">
<textarea type="text" name="earnings_remark" autocomplete="off" class="layui-textarea" style="width: 30%;"></textarea>
<label class="layui-form-mid layui-word-aux" style="margin-left: 10px;">不超过100字</label>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="layui-form-item layui-hide">
<input type="button" lay-submit lay-filter="adjust_user-submit" id="adjust_user-submit" value="确认">
</div>
</div>
<script>
layui.config({
version:"{$front_version}",
base: '/static/lib/' //静态资源所在路径
}).use(['form', 'element'], function(){
var $ = layui.$,form = layui.form ;
var element = layui.element;
element.on('tab(adjust)', function(){
$('#type').val($(this).attr('data-type'));
});
})
</script>

View File

@ -0,0 +1,87 @@
{layout name="layout2" /}
<style>
.layui-form-label{
width: 120px;
text-align: left;
}
.reqRed::before {
content: '*';
color: red;
margin-right: 5px;
}
</style>
<div class="layui-form" style="padding: 20px 30px 0 0;">
<div class="layui-form-item">
<label class="layui-form-label">用户编号:</label>
<div class="layui-input-block">
<label class="layui-form-label">{$user.sn}</label>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">用户昵称:</label>
<div class="layui-input-block">
<label class="layui-form-label">{$user.nickname}</label>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">当前推荐人:</label>
<div class="layui-input-block">
{if is_array($first_leader)}
<label class="layui-form-label">{$first_leader.nickname}({$first_leader.sn})</label>
{else}
<label class="layui-form-label">{$first_leader}</label>
{/if}
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label reqRed">调整方式:</label>
<div class="layui-input-inline">
<input type="radio" name="type" value="assign" title="指定推荐人" checked>
</div>
<div class="layui-input-inline">
<input type="radio" name="type" value="system" title="设置推荐人为系统">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">选择推荐人:</label>
<div class="layui-inline">
<span id="user_selected"></span>
</div>
<div class="layui-inline">
<button class="layui-btn layui-btn-sm layui-bg-blue" id="show-user">选择用户</button>
</div>
</div>
<input type="hidden" value="{$user_id}" name="id">
<input type="hidden" name="first_id" id="first_id">
<div class="layui-form-item layui-hide">
<input type="button" lay-submit lay-filter="formSubmit" id="formSubmit" value="确认">
</div>
</div>
<script>
layui.config({
version:"{$front_version}",
base: '/static/lib/' //静态资源所在路径
}).use(['form', 'element'], function(){
var $ = layui.$,form = layui.form ;
var element = layui.element;
$('#show-user').click(function() {
layer.open({
type: 2
,title: "选择用户"
,content: "{:url('user.user/userLists')}"
,area: ["90%", "90%"]
,btn: ["确定", "取消"]
,yes: function(index, layero){
var iframeWindow = window["layui-layer-iframe" + index];
let user_selected = iframeWindow.user_selected();
$('#user_selected').html(user_selected.nickname + '(' + user_selected.sn + ')');
$('#first_id').val(user_selected.id);
layer.close(index);
}
});
return false;
});
})
</script>

View File

@ -0,0 +1,52 @@
{layout name="layout2" /}
<style>
.layui-form-label{
width: 90px;
text-align: left;
}
.reqRed::before {
content: '*';
color: red;
margin-right: 5px;
}
</style>
<div class="layui-form" style="padding: 20px 30px 0 0;">
<div class="layui-form-item">
<label class="layui-form-label">当前等级:</label>
<div class="layui-input-block">
<label class="layui-form-label">{$user_level_name}</label>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">调整等级:</label>
<div class="layui-input-inline">
<select name="level">
{foreach $levels as $item}
<option value="{$item.id}">{$item.name}</option>
{/foreach}
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">备注:</label>
<div class="layui-input-block">
<textarea type="text" name="remark" autocomplete="off" class="layui-textarea" style="width: 30%;"></textarea>
<label class="layui-form-mid layui-word-aux" style="margin-left: 10px;">不超过100字</label>
</div>
</div>
<input type="hidden" value="{$user_id}" name="id">
<div class="layui-form-item layui-hide">
<input type="button" lay-submit lay-filter="formSubmit" id="formSubmit" value="确认">
</div>
</div>
<script>
layui.config({
version:"{$front_version}",
base: '/static/lib/' //静态资源所在路径
}).use(['form', 'element'], function(){
var $ = layui.$,form = layui.form ;
var element = layui.element;
})
</script>

View File

@ -0,0 +1,130 @@
{layout name="layout2" /}
<style>
.reqRed::before {
content: '*';
color: red;
}
</style>
<div class="layui-form" lay-filter="layuiadmin-form-user" id="layuiadmin-form-user" style="padding: 20px 30px 0 0;">
<input type="hidden" name="id" value="{$info.id}">
<div class="layui-form-item">
<label class="layui-form-label">用户编号:</label>
<div class="layui-input-inline" style="margin-top:10px">
{$info.sn}
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label reqRed">用户昵称:</label>
<div class="layui-input-inline" style="width: 380px;">
<input class="layui-input" value="{$info.nickname}" name="nickname" type="text" placeholder="请输入会员昵称" >
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label reqRed">用户头像:</label>
<div class="layui-input-block">
<div class="like-upload-image">
{if $info.avatar}
<div class="upload-image-div">
<img src="{$info.avatar}" alt="img">
<input type="hidden" name="avatar" value="{$info.avatar}">
<div class="del-upload-btn">x</div>
</div>
<div class="upload-image-elem" style="display:none;"><a class="add-upload-image" id="avatar"> + 添加图片</a></div>
{else}
<div class="upload-image-elem"><a class="add-upload-image" id="avatar"> + 添加图片</a></div>
{/if}
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<span style="color: #a3a3a3;font-size: 9px">建议尺寸宽200像素*高200像素的jpgjpegpng图片</span>
</div>
<div class="layui-form-item">
<label class="layui-form-label">手机号码:</label>
<div class="layui-input-inline" style="width: 380px;">
<input class="layui-input" value="{$info.mobile}" name="mobile" type="text" placeholder="请输入手机号码" >
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">性别:</label>
<div class="layui-input-block">
<input type="radio" name="sex" value="0" title="未知" {if $info.sex == 0}checked{/if} >
<input type="radio" name="sex" value="1" title="男" {if $info.sex == 1}checked{/if} >
<input type="radio" name="sex" value="2" title="女" {if $info.sex == 2}checked{/if} >
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">禁用状态:</label>
<div class="layui-input-block">
<input type="radio" name="disable" value="0" title="启用" {if $info.disable == 0}checked{/if} >
<input type="radio" name="disable" value="1" title="禁用" {if $info.disable == 1}checked{/if} >
</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" style="width: 380px;">
<input class="layui-input" value="{$info.birthday}" autocomplete="off" name="birthday" id="birthday" type="text" placeholder="请输入生日" >
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">会员标签</label>
<div class="layui-input-block" style="width: 380px;">
<div id="tagList"></div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">备注</label>
<div class="layui-input-block" style="width: 380px">
<textarea name="remark" class="layui-textarea"></textarea>
</div>
</div>
<div class="layui-form-item layui-hide">
<input type="button" lay-submit lay-filter="edit-submit" id="edit-submit" value="确认">
</div>
</div>
</div>
<script>
layui.config({
version:"{$front_version}",
base: '/static/lib/' //静态资源所在路径
}).extend({
xmSelect: 'xmSelect/xm-select'
}).use(['form','laydate', 'xmSelect'], function(){
var $ = layui.$,form = layui.form,laydate = layui.laydate;
var xmSelect = layui.xmSelect;
var tag_list = '{$tag_list|raw}';
var initValue = '{$info.tag_ids | raw}';
laydate.render({
elem: '#birthday'
,format: 'yyyy-MM-dd'
,value: "{$info['birthday']}"
,trigger: 'click'
});
var xmIns = xmSelect.render({
el: '#tagList',
language: 'zn',
data: JSON.parse(tag_list),
prop: {
value: 'id'
},
initValue: JSON.parse(initValue)
})
// 图片上传
like.delUpload();
$(document).on("click", "#avatar", function () {
like.imageUpload({
limit: 1,
field: "avatar",
that: $(this)
});
})
})
</script>

View File

@ -0,0 +1,158 @@
{layout name="layout1" /}
<style>
.search {
margin-top: 15px;
}
.search .layui-form-label {
width: 80px;
text-align: left;
}
.btns {
margin-top: 15px;
}
</style>
<div class="layui-fluid">
<div class="layui-card">
<div class="layui-card-body">
<div class="layui-tab" lay-filter="fansTab">
<ul class="layui-tab-title">
<li class="layui-this" type="one">下一级</li>
<li type="two">下二级</li>
</ul>
</div>
<!--搜索区域-->
<div class="search layui-form">
<div class="layui-inline">
<div class="layui-form-label">用户信息</div>
<div class="layui-inline">
<select name="field" id="field" placeholder="请选择" >
<option value="sn">用户编号</option>
<option value="nickname">用户昵称</option>
</select>
</div>
<div class="layui-inline">
<input type="text" id="keyword" name="keyword" class="layui-input" />
</div>
<div class="layui-inline">
<button class="layui-btn layui-btn-primary layui-bg-blue" lay-submit lay-filter="search">搜索</button>
<button class="layui-btn layui-btn-primary" lay-submit lay-filter="reset">重置</button>
</div>
</div>
<!--数据表格-->
<table id="lists" lay-filter="lists"></table>
<!--自定义模板-->
<script type="text/html" id="user-info">
<img src="{{d.avatar}}" style="height:60px;width: 60px" class="image-show">
<div class="layui-input-inline" style="text-align: left;">
<p>用户编号:{{d.sn}}</p>
<p style="width: 300px;text-overflow:ellipsis;overflow: hidden">用户昵称:{{d.nickname}}</p>
</div>
</script>
<script type="text/html" id="first-info">
{{# if(d.first_leader_info != '系统'){}}
<img src="{{d.first_leader_info.avatar}}" style="height:80px;width: 80px;margin-right: 10px;" class="image-show">
<div class="layui-input-inline" style="text-align:left;width: 240px">
<p>用户编号:{{d.first_leader_info.sn}}</p>
<p style="width: 180px;text-overflow:ellipsis;overflow: hidden">用户昵称:{{d.first_leader_info.nickname}}</p>
</div>
{{# }else{ }}
{{d.first_leader_info}}
{{# } }}
</script>
</div>
</div>
</div>
<script>
layui.config({
version:"{$front_version}",
base: '/static/lib/'
}).use(['table', 'form'], function () {
let $ = layui.$
, form = layui.form
, element = layui.element
, table = layui.table;
let type = 'one';
//监听Tab切换
element.on('tab(fansTab)', function(data){
type = $(this).attr('type');
// 重载表格
table.reload('lists', {
where: {
"type": type,
id: "{$id}"
},
page: {curr: 1}
});
});
//监听搜索
form.on('submit(search)', function(data){
var field = data.field;
field.type = type;
field.id = "{$id}";
//执行重载
table.reload('lists', {
where: field,
page: {curr: 1}
});
});
//清空查询
form.on('submit(reset)', function(){
$('#keyword').val('');
$('#field').val('sn');
form.render('select');
//刷新列表
table.reload('lists', {
where: {
"type": type,
id: "{$id}"
}, page: {curr: 1}
});
});
// 数据表格渲染
table.render({
elem: '#lists'
,url: '{:url("user.user/fans")}' //数据接口
,where: {
type: type,
id: "{$id}"
}
,method: 'post'
,page: true //开启分页
,cols: [[ //表头
{title: '用户信息', width:380, templet: '#user-info'}
,{title: '上级推荐人', width:380, templet: '#first-info'}
,{field: 'fans', title: '推荐下级人数'}
]]
, text: {none: '暂无数据!'}
, parseData: function (res) { //将原始数据解析成 table 组件所规定的数据
return {
"code": res.code,
"msg": res.msg,
"count": res.data.count, //解析数据长度
"data": res.data.lists, //解析数据列表
};
},
response: {
statusCode: 1
}
,done: function(res, curr, count){
// 解决操作栏因为内容过多换行问题
$(".layui-table-main tr").each(function (index, val) {
$($(".layui-table-fixed-l .layui-table-body tbody tr")[index]).height($(val).height());
$($(".layui-table-fixed-r .layui-table-body tbody tr")[index]).height($(val).height());
});
}
});
});
</script>

View File

@ -0,0 +1,181 @@
{layout name="layout2" /}
<style>
.layui-form-label{
width: 120px;
}
.layui-card .layui-tab{
margin-left: 7px;
}
.layui-form-label{
margin-left: 20px;
width: 98px;
}
.layui-input-inline{
width:160px;
}
.layui-table-cell {
height: auto;
}
</style>
<div class="layui-form" lay-filter="layuiadmin-form-user_group" id="layuiadmin-form-user_group" style="padding: 20px 30px 0 0;">
<div class="layui-form-item div-flex">
<fieldset class="layui-elem-field layui-field-title">
<legend>基础信息</legend>
</fieldset>
</div>
<div class="layui-form-item">
<label class="layui-form-label">用户编号:</label>
<div class="layui-input-inline">
<label class="layui-form-mid">{$detail.sn}</label>
</div>
<label class="layui-form-label">用户昵称:</label>
<div class="layui-input-inline">
<label class="layui-form-mid">{$detail.nickname}</label>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">会员头像:</label>
<div class="layui-input-inline">
<label class="layui-form-mid">
<img class="image-show" src="{$detail.avatar}" width="80px" height="80px">
</label>
</div>
<label class="layui-form-label">手机号码:</label>
<div class="layui-input-inline">
<label class="layui-form-mid">{$detail.mobile}</label>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">用户标签:</label>
<div class="layui-input-inline">
<label class="layui-form-mid">{$detail.tag_str}</label>
</div>
<label class="layui-form-label">成长值:</label>
<div class="layui-input-inline">
<label class="layui-form-mid">{$detail.user_growth}</label>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">性别:</label>
<div class="layui-input-inline">
<label class="layui-form-mid">{$detail.sex}</label>
</div>
<label class="layui-form-label">生日:</label>
<div class="layui-input-inline">
<label class="layui-form-mid">{$detail.birthday}</label>
</div>
</div>
<div class="layui-input-item">
</div>
<div class="layui-form-item">
<label class="layui-form-label">注册来源:</label>
<div class="layui-input-inline">
<label class="layui-form-mid">{$detail.client_desc}</label>
</div>
<label class="layui-form-label">注册时间:</label>
<div class="layui-input-inline">
<label class="layui-form-mid">{$detail.create_time}</label>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">最后登录:</label>
<div class="layui-input-inline">
<label class="layui-form-mid">{$detail.login_time}</label>
</div>
<label class="layui-form-label">用户状态:</label>
<div class="layui-input-inline">
<label class="layui-form-mid">{$detail.disable ? '禁用' : '正常'}</label>
</div>
</div>
<div class="layui-form-item div-flex">
<fieldset class="layui-elem-field layui-field-title">
<legend>钱包信息</legend>
</fieldset>
</div>
<div class="layui-form-item">
<label class="layui-form-label">总资产:</label>
<div class="layui-input-inline">
<label class="layui-form-mid">¥ {$detail.assets}</label>
</div>
<label class="layui-form-label">不可提现余额:</label>
<div class="layui-input-inline">
<label class="layui-form-mid">¥ {$detail.user_money}</label>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">可提现余额:</label>
<div class="layui-input-inline">
<label class="layui-form-mid">¥ {$detail.earnings}</label>
</div>
</div>
<div class="layui-form-item div-flex">
<fieldset class="layui-elem-field layui-field-title">
<legend>消费能力</legend>
</fieldset>
</div>
<div class="layui-form-item">
<label class="layui-form-label">成交订单笔数:</label>
<div class="layui-input-inline">
<label class="layui-form-mid">{$detail.order_num}</label>
</div>
<label class="layui-form-label">消费金额:</label>
<div class="layui-input-inline">
<label class="layui-form-mid">¥ {$detail.total_amount}</label>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">客单价:</label>
<div class="layui-input-inline">
<label class="layui-form-mid">¥ {$detail.avg_amount}</label>
</div>
</div>
<div class="layui-form-item div-flex">
<fieldset class="layui-elem-field layui-field-title">
<legend>推荐信息</legend>
</fieldset>
</div>
<div class="layui-form-item">
<label class="layui-form-label">上级推荐人:</label>
<div class="layui-input-inline" style="width: 100px;">
{if $detail.first_leader_info != '系统'}
<label class="layui-form-mid" style="width:300px">{$detail.first_leader_info.nickname}({$detail.first_leader_info.sn})</label>
{else}
<label class="layui-form-mid">{$detail.first_leader_info}</label>
{/if}
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">推荐下级人数:</label>
<div class="layui-input-inline">
<label class="layui-form-mid">{$detail.fans}人</label>
</div>
<div class="layui-input-inline">
<button class="layui-btn layui-btn-sm layui-bg-blue" id="showFans" data-id="{$detail.id}">查看推荐下级</button>
</div>
</div>
</div>
<script>
layui.config({
version:"{$front_version}",
base: '/static/lib/' //静态资源所在路径
}).use(['jquery', 'layer'], function(){
let $ = layui.jquery;
let layer = layui.layer;
// 查看推荐下级
$('#showFans').click(function() {
let id = $(this).data('id');
// 弹窗显示添加页
layer.open({
type: 2
,title: "查看下级推荐"
,content: "{:url('user.user/fans')}?id=" + id
,area: ["90%", "90%"]
,btn: ["返回"]
});
});
});
</script>

View File

@ -0,0 +1,162 @@
{layout name="layout1" /}
<div class="wrapper">
<div class="layui-card">
<!-- <div class="layui-form layui-card-header layuiadmin-card-header-auto" style="height:auto !important;">-->
<!-- <div class="layui-form-item">-->
<!-- <div class="layui-inline">-->
<!-- <button class="layui-btn layui-btn-sm layuiadmin-btn-user {$view_theme_color}" lay-submit lay-filter="user-search">查询</button>-->
<!-- <button class="layui-btn layui-btn-sm layuiadmin-btn-user layui-btn-primary " lay-submit lay-filter="user-clear-search">重置</button>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<div class="layui-card-body">
<!-- <div style="padding-bottom: 10px;"></div>-->
<table id="user-lists" lay-filter="user-lists"></table>
<script type="text/html" id="user-operation">
<a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="edit">编辑</a>
</script>
</div>
</div>
</div>
<style>
.layui-table-cell {
/*height: auto;*/
}
</style>
<script>
layui.config({
version:"{$front_version}",
base: '/static/lib/' //静态资源所在路径
}).use(['table','laydate'], function(){
var $ = layui.$
,form = layui.form
,table = layui.table
, laydate = layui.laydate;
//监听搜索
form.on('submit(user-search)', function(data){
var field = data.field;
//执行重载
table.reload('user-lists', {
where: field,
page: {
curr: 1 //重新从第 1 页开始
}
});
});
//清空查询
form.on('submit(user-clear-search)', function(){
$('#keyword').val(''); //清空输入框
form.render('select');
//刷新列表
table.reload('user-lists', {
where: [],
page: {
curr: 1 //重新从第 1 页开始
}
});
});
});
layui.define(['table', 'form'], function(exports){
var $ = layui.$
,table = layui.table
,form = layui.form;
table.render({
id:'user-lists'
,elem: '#user-lists'
,url: '{:url("user.businessTeam/lists")}' //模拟接口
,cols: [[
{type: 'checkbox'}
,{field: 'name', title: '名称',width: 120,align: 'center'}
,{field: 'phone', title: '手机',width: 120,align: 'center'}
,{fixed: 'right', title: '操作', width: 420,toolbar: '#user-operation',align: 'center'}
]]
,page:true
,text: {none: '暂无数据!'}
,parseData: function(res){ //将原始数据解析成 table 组件所规定的数据
return {
"code":res.code,
"msg":res.msg,
"count": res.data.count, //解析数据长度
"data": res.data.lists, //解析数据列表
};
},
response: {
statusCode: 1
}
, done: function fix() {
$(".layui-table-main tr").each(function (index, val) {
$(".layui-table-fixed").each(function () {
$($(this).find(".layui-table-body tbody tr")[index]).height($(val).height());
});
});
$(".layui-table-header tr").each(function (index, val) {
$(".layui-table-fixed").each(function () {
$($(this).find(".layui-table-header thead tr")[index]).height($(val).height());
});
});
window.onresize = function () {
fix()
}
}
});
var moreShow = 0;
//监听工具条
table.on('tool(user-lists)', function(obj){
if(obj.event === 'edit'){
var id = obj.data.id;
layer.open({
type: 2
,title: '编辑'
,content: '{:url("user.businessTeam/edit")}?id='+id
,area: ['90%', '90%']
,btn: ['确定', '取消']
,yes: function(index, layero){
var iframeWindow = window['layui-layer-iframe'+ index]
,submit = layero.find('iframe').contents().find('#edit-submit');
//监听提交
iframeWindow.layui.form.on('submit(edit-submit)', function(data){
var field = data.field;
$.ajax({
url:'{:url("user.businessTeam/edit")}',
data:field,
type:"post",
success:function(res)
{
if(res.code == 1)
{
layui.layer.msg(res.msg, {
offset: '15px'
, icon: 1
, time: 1000
});
layer.close(index); //关闭弹层
table.reload('user-lists'); //数据刷新
}else{
layer.msg(res.msg, {
offset: '15px'
, icon: 2
, time: 1000
});
}
}
});
});
submit.trigger('click');
}
})
}
});
});
</script>

View File

@ -0,0 +1,34 @@
{layout name="layout2" /}
<div class="layui-form" lay-filter="layuiadmin-form-user" id="layuiadmin-form-user" style="padding: 20px 30px 0 0;">
<div class="layui-form-item">
<label class="layui-form-label" style="width: 180px">选择会员标签:</label>
<div class="layui-input-inline" style="width: 420px">
<div id="tagList"></div>
</div>
</div>
<div class="layui-form-item layui-hide">
<input type="button" lay-submit lay-filter="set_tag-submit" id="set_tag-submit" value="确认">
</div>
</div>
<script>
layui.config({
version:"{$front_version}",
base: '/static/lib/' //静态资源所在路径
}).extend({
xmSelect: 'xmSelect/xm-select'
}).use(['xmSelect', 'form'], function(){
var $ = layui.$,form = layui.form ;
var xmSelect = layui.xmSelect;
var tag_list = '{$tag_list|raw}';
var xmIns = xmSelect.render({
el: '#tagList',
language: 'zn',
data: JSON.parse(tag_list),
prop: {
value: 'id'
}
})
})
</script>

View File

@ -0,0 +1,121 @@
{layout name="layout1" /}
<style>
.search {
margin-top: 15px;
}
.search .layui-form-label {
width: 120px;
text-align: left;
}
.btns {
margin-top: 15px;
}
</style>
<div class="layui-fluid">
<div class="layui-card">
<div class="layui-card-body">
<!--搜索区域-->
<div class="search layui-form">
<div class="layui-inline">
<div class="layui-form-label">用户信息</div>
<div class="layui-input-inline">
<input type="text" id="keyword" name="keyword" class="layui-input" />
</div>
</div>
<div class="layui-inline">
<button class="layui-btn layui-btn-primary layui-bg-blue" lay-submit lay-filter="search">搜索</button>
<button class="layui-btn layui-btn-primary" lay-submit lay-filter="reset">重置</button>
</div>
</div>
<!--数据表格-->
<table id="lists" lay-filter="lists"></table>
<!--自定义模板-->
<script type="text/html" id="user-info">
<img src="{{d.avatar}}" style="height:60px;width: 60px" class="image-show">
<div class="layui-input-inline" style="text-align: left;">
<p>用户编号:{{d.user_sn}}</p>
<p style="width: 300px;text-overflow:ellipsis;overflow: hidden">用户昵称:{{d.nickname}}</p>
</div>
</script>
<script type="text/html" id="level-info">
{{d.level_name}}({{d.weights}})级
</script>
</div>
</div>
</div>
<script>
layui.config({
version:"{$front_version}",
base: '/static/lib/'
}).use(['table', 'form'], function () {
let $ = layui.$
, form = layui.form
, table = layui.table;
//监听搜索
form.on('submit(search)', function(data){
var field = data.field;
//执行重载
table.reload('lists', {
where: field,
page: {curr: 1}
});
});
// 获取选中的用户信息
window.user_selected = function user_selected()
{
var checkStatus = table.checkStatus('lists');
return checkStatus.data[0]; //获取选中行的数据
}
//清空查询
form.on('submit(reset)', function(){
$('#keyword').val('');
$('#is_distribution').val('all');
form.render('select');
//刷新列表
table.reload('lists', {
where: [], page: {curr: 1}
});
});
// 数据表格渲染
table.render({
elem: '#lists'
,url: '{:url("distribution.distribution_member/userLists")}' //数据接口
,method: 'post'
,page: true //开启分页
,cols: [[ //表头
{type: 'radio'}
,{field: 'sn', title: '用户编号', width:380}
,{field: 'nickname', title: '用户昵称', width:180}
]]
, text: {none: '暂无数据!'}
, parseData: function (res) { //将原始数据解析成 table 组件所规定的数据
return {
"code": res.code,
"msg": res.msg,
"count": res.data.count, //解析数据长度
"data": res.data.lists, //解析数据列表
};
},
response: {
statusCode: 1
}
,done: function(res, curr, count){
// 解决操作栏因为内容过多换行问题
$(".layui-table-main tr").each(function (index, val) {
$($(".layui-table-fixed-l .layui-table-body tbody tr")[index]).height($(val).height());
$($(".layui-table-fixed-r .layui-table-body tbody tr")[index]).height($(val).height());
});
}
});
});
</script>

View File

@ -1203,7 +1203,7 @@ class OrderLogic extends Logic
}
}
}
$lists[$k]['frontend_array'] = explode(',', $list['frontend_info']);
$lists[$k]['frontend_array'] = array_filter(explode(',', $list['frontend_info']));
}
$data = [
'list' => $lists,

View File

@ -20,7 +20,7 @@
namespace app\shop\controller\order;
use app\shop\logic\order\OrderExportLogic;
//use app\shop\logic\order\OrderExportLogic;
use app\common\basics\ShopBase;
use app\common\model\order\OrderLog;
use app\common\model\order\Order as OrderModel;

View File

@ -70,7 +70,7 @@ class OrderLogic extends Logic
* @author suny
* @date 2021/7/14 10:23 上午
*/
public static function statistics($get = [], $shop_id, $is_export = false)
public static function statistics($get = [], $shop_id = 0, $is_export = false)
{
$order = new Order();
@ -130,6 +130,10 @@ class OrderLogic extends Logic
$where[] = ['o.pay_way', '=', $get['pay_way']];
}
if (isset($get['is_frontend']) && $get['is_frontend'] != '') {
$where[] = ['o.is_frontend', '=', $get['is_frontend']];
}
if (isset($get['order_source']) && $get['order_source'] != '') {
$where[] = ['o.order_source', '=', $get['order_source']];
}

View File

@ -121,6 +121,17 @@
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">前置订单:</label>
<div class="layui-input-block">
<select name="is_frontend" id="is_frontend">
<option value="">全部</option>
<option value="0"></option>
<option value="1"></option>
</select>
</div>
</div>
</div>
<div class="layui-row">
@ -224,6 +235,13 @@
<div style="text-align: left">
<p>订单编号:{{d.order_sn}}</p>
<p>订单类型:{{d.order_type_text}}</p>
<p>前置订单:
{{# if(d.is_frontend == '1'){ }}
{{# } else { }}
{{# } }}
</p>
<p>下单时间:{{d.create_time}}</p>
<p>支付时间:
{{# if(d.pay_time == '0'){ }}
@ -430,8 +448,8 @@
, page: true
, text: {none: '暂无数据!'}
,response: {
statusCode: 1
}
statusCode: 1
}
, parseData: function (res) {
return {
"code": res.code,