其余文件

This commit is contained in:
2026-04-14 17:46:22 +08:00
parent 294b68fe37
commit 3691f4db22
1343 changed files with 189847 additions and 0 deletions

View File

@ -0,0 +1,94 @@
{layout name="layout2" /}
<style>
.layui-form-label {
color: #6a6f6c;
width: 100px;
}
.layui-input-block {
margin-left: 130px;
}
.tips{
color: red;
margin-right: 5px;
}
</style>
<div class="layui-form" lay-filter="layuiadmin-form-user_level" id="layuiadmin-form-user_level" style="padding: 20px 30px 0 0;">
<div class="layui-form-item">
<label class="layui-form-label"><span class="tips">*</span>等级名称:</label>
<div class="layui-input-inline">
<input type="text" name="name" lay-verify="required" lay-verType="tips" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span class="tips">*</span>成长值:</label>
<div class="layui-input-inline">
<input type="number" name="growth_value" min="0" lay-verify="required" lay-verType="tips" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span class="tips">*</span>等级图标:</label>
<div class="layui-input-inline">
<div class="like-upload-image">
<div class="upload-image-elem"><a class="add-upload-image" id="image"> + 添加图片</a></div>
</div>
<div class=" layui-form-mid layui-word-aux" style="white-space: nowrap">建议尺寸100*100像素jpgjpegpng图片类型</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span class="tips">*</span>等级背景图:</label>
<div class="layui-input-inline">
<div class="like-upload-image">
<div class="upload-image-elem"><a class="add-upload-image" id="background_image"> + 添加图片</a></div>
</div>
<div class=" layui-form-mid layui-word-aux" style="white-space: nowrap">建议尺寸800*500像素jpgjpegpng图片类型</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">会员折扣:</label>
<div class="layui-input-inline">
<input type="number" name="discount" min="0" max="10" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class=" layui-form-mid layui-word-aux" style="white-space: nowrap">等级享受的折扣填写0~10例如7.5折表示100元商品只需支付75元。留空或者填0表示不打折</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">等级说明:</label>
<div class="layui-input-block">
<textarea name="remark" class="layui-textarea"></textarea>
</div>
</div>
<div class="layui-form-item layui-hide">
<input type="button" lay-submit lay-filter="add-user_level-submit" id="add-user_level-submit" value="确认">
</div>
</div>
<script>
layui.config({
version:"{$front_version}",
base: '/static/lib/' //静态资源所在路径
}).use(['form'], function(){
var $ = layui.$
,form = layui.form;
// 图片上传
like.delUpload();
// 图标
$(document).on("click", "#image", function () {
like.imageUpload({
limit: 1,
field: "image",
that: $(this)
});
})
// 背景图
$(document).on("click", "#background_image", function () {
like.imageUpload({
limit: 1,
field: "background_image",
that: $(this)
});
})
})
</script>

View File

@ -0,0 +1,148 @@
{layout name="layout2" /}
<style>
.layui-form-label {
color: #6a6f6c;
width: 100px;
}
.layui-input-block {
margin-left: 130px;
}
.tips{
color: red;
}
.goods-li {
float: left;
opacity: 1;
position: relative;
}
.goods-img {
width: 80px;
height: 80px;
padding: 4px;
}
.goods-img-del-x {
position: absolute;
z-index: 100;
top: -4px;
right: -2px;
width: 20px;
height: 20px;
font-size: 16px;
line-height: 16px;
color: #fff;
text-align: center;
cursor: pointer;
background: hsla(0, 0%, 60%, .6);
border-radius: 10px;
}
</style>
<div class="layui-form" lay-filter="layuiadmin-form-user_level" id="layuiadmin-form-user_level" style="padding: 20px 30px 0 0;">
<input type="hidden" name="id" value="{$detail.id}">
<div class="layui-form-item">
<label class="layui-form-label"><span class="tips">*</span>等级名称:</label>
<div class="layui-input-inline">
<input type="text" name="name" value="{$detail.name}" lay-verify="required" lay-verType="tips" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span class="tips">*</span>成长值:</label>
<div class="layui-input-inline">
<input type="text" name="growth_value" value="{$detail.growth_value}" lay-verify="required" lay-verType="tips" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item ">
<label class="layui-form-label"><span class="tips">*</span>等级图标:</label>
<div class="layui-inline" >
<div class="like-upload-image">
{if $detail.image}
<div class="upload-image-div">
<img src="{$detail.image}" alt="img">
<input type="hidden" name="image" value="{$detail.image}">
<div class="del-upload-btn">x</div>
</div>
<div class="upload-image-elem" style="display:none;"><a class="add-upload-image" id="image"> + 添加图片</a></div>
{else}
<div class="upload-image-elem"><a class="add-upload-image" id="image"> + 添加图片</a></div>
{/if}
</div>
<div class=" layui-form-mid layui-word-aux" style="white-space: nowrap">建议尺寸100*100像素jpgjpegpng图片类型</div>
</div>
</div>
<div class="layui-form-item ">
<label class="layui-form-label"><span class="tips">*</span>等级背景图片:</label>
<div class="layui-inline" >
<div class="like-upload-image">
{if $detail.background_image}
<div class="upload-image-div">
<img src="{$detail.background_image}" alt="img">
<input type="hidden" name="background_image" value="{$detail.background_image}">
<div class="del-upload-btn">x</div>
</div>
<div class="upload-image-elem" style="display:none;"><a class="add-upload-image" id="background_image"> + 添加图片</a></div>
{else}
<div class="upload-image-elem"><a class="add-upload-image" id="background_image"> + 添加图片</a></div>
{/if}
</div>
<div class=" layui-form-mid layui-word-aux" style="white-space: nowrap">建议尺寸800*500像素jpgjpegpng图片类型</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">会员折扣:</label>
<div class="layui-input-inline">
<input type="number" name="discount" value="{$detail.discount}" min="0" max="10" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class=" layui-form-mid layui-word-aux" style="white-space: nowrap">等级享受的折扣填写0~10例如7.5折表示100元商品只需支付75元。留空或者填0表示不打折</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">等级说明:</label>
<div class="layui-input-block">
<textarea name="remark" class="layui-textarea">{$detail.remark}</textarea>
</div>
</div>
<div class="layui-form-item layui-hide">
<input type="button" lay-submit lay-filter="edit-user_level-submit" id="edit-user_level-submit" value="确认">
</div>
</div>
<style>
.layui-form-label {
width: 100px;
}
.layui-input-block {
margin-left: 130px;
}
</style>
<script>
layui.config({
version:"{$front_version}",
base: '/static/lib/' //静态资源所在路径
}).use(['form'], function(){
var $ = layui.$
,form = layui.form;
// 图片上传
like.delUpload();
// 图标
$(document).on("click", "#image", function () {
like.imageUpload({
limit: 1,
field: "image",
that: $(this)
});
})
// 背景图
$(document).on("click", "#background_image", function () {
like.imageUpload({
limit: 1,
field: "background_image",
that: $(this)
});
})
})
</script>

View File

@ -0,0 +1,262 @@
{layout name="layout1" /}
<div class="wrapper">
<div class="layui-card">
<div class="layui-card-body">
<div class="layui-collapse like-layui-collapse" lay-accordion="" style="border:1px dashed #c4c4c4">
<div class="layui-colla-item">
<h2 class="layui-colla-title like-layui-colla-title" style="background-color: #fff">操作提示</h2>
<div class="layui-colla-content layui-show">
<p>*会员根据设定好的等级成长值升级,等级成长值通过日常消费积累;</p>
<p>*删除会员等级时会重新调整对应会员的等级,请谨慎操作。</p>
</div>
</div>
</div>
</div>
<div class="layui-tab layui-tab-card" lay-filter="tab-all">
<div class="layui-card">
<div class="layui-card-body">
<div style="padding-bottom: 10px;" class="add">
<button class="layui-btn layui-btn-sm layuiadmin-btn-user_level {$view_theme_color}" data-type="add">新增会员等级</button>
<button class="layui-btn layui-btn-sm layuiadmin-btn-user_level layui-btn-primary" data-type="set">设置等级说明</button>
</div>
<table id="user_level-lists" lay-filter="user_level-lists"></table>
<script type="text/html" id="image">
<img src="{{d.image}}" style="height:auto;width: auto" class="image-show">
</script>
<script type="text/html" id="background">
<img src="{{d.background_image}}" style="height:auto;width: auto" class="image-show">
</script>
<script type="text/html" id="user_level-operation">
<a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="edit">编辑</a>
<a class="layui-btn layui-btn-danger layui-btn-sm" lay-event="del">删除</a>
</script>
</div>
</div>
</div>
</div>
</div>
<script type="text/html" id="discount-info">
{{d.discount}}
</script>
<style>
.layui-table-cell {
height: auto;
}
</style>
<script>
layui.config({
version:"{$front_version}",
base: '/static/lib/' //静态资源所在路径
}).use(['table','form'], function(){
var $ = layui.$
,form = layui.form
,table = layui.table
,element = layui.element;
//图片放大
$(document).on('click', '.image-show', function () {
var src = $(this).attr('src');
like.showImg(src,600);
});
$('.layui-btn.layuiadmin-btn-user_level').on('click', function(){
var type = $(this).data('type');
active[type] ? active[type].call(this) : '';
});
layui.define(['table', 'form'], function(exports){
var $ = layui.$
,table = layui.table
,form = layui.form;
table.render({
id:'user_level-lists'
,elem: '#user_level-lists'
,url: '{:url("user.level/lists")}' //模拟接口
,cols: [[
{field: 'name', title: '等级名称',width:160}
,{field: 'growth_value',width:160, title: '成长值'}
,{field: 'icon',width:160, title: '等级图标',toolbar:'#image'}
,{field: 'background_image',width:160, title: '等级背景图片',toolbar:'#background'}
,{width:160, title:'等级折扣', templet: '#discount-info'}
,{field: 'remark',width:160, title:'等级说明'}
,{fixed: 'right', title: '操作', width:160,align: 'center', toolbar: '#user_level-operation'}
]]
,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(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());
});
}
});
});
//事件
var active = {
add: function(){
var index = layer.open({
type: 2
,title: '新增等级'
,content: '{:url("user.level/add")}'
,area: ['90%', '90%']
,btn: ['保存', '取消']
,maxmin: true
,yes: function(index, layero){
var iframeWindow = window['layui-layer-iframe'+ index]
,submitID = 'add-user_level-submit'
,submit = layero.find('iframe').contents().find('#'+ submitID);
//监听提交
iframeWindow.layui.form.on('submit('+ submitID +')', function(data){
var field = data.field;
like.ajax({
url:'{:url("user.level/add")}',
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_level-lists'); //数据刷新
}
}
});
});
submit.trigger('click');
}
});
},
set: function() {
var index = layer.open({
type: 2
,title: '设置等级说明'
,content: '{:url("user.level/set")}'
,area: ['60%', '60%']
,btn: ['保存', '取消']
,maxmin: true
,yes: function(index, layero){
var iframeWindow = window['layui-layer-iframe'+ index]
,submitID = 'add-user_intro-submit'
,submit = layero.find('iframe').contents().find('#'+ submitID);
//监听提交
iframeWindow.layui.form.on('submit('+ submitID +')', function(data){
var field = data.field;
like.ajax({
url:'{:url("user.level/set")}',
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_level-lists'); //数据刷新
}
}
});
});
submit.trigger('click');
}
});
}
}
table.on('tool(user_level-lists)', function(obj) {
var id = obj.data.id;
if (obj.event === 'edit') {
var index = layer.open({
type: 2
, title: '编辑等级'
, content: '{:url("user.level/edit")}?id=' + id
, area: ['90%', '90%']
, btn: ['保存', '取消']
, maxmin: true
, yes: function (index, layero) {
var iframeWindow = window['layui-layer-iframe' + index]
, submitID = 'edit-user_level-submit'
, submit = layero.find('iframe').contents().find('#' + submitID);
//监听提交
iframeWindow.layui.form.on('submit(' + submitID + ')', function (data) {
var field = data.field;
like.ajax({
url: '{:url("user.level/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_level-lists'); //数据刷新
}
}
});
});
submit.trigger('click');
}
});
}
if (obj.event === 'del') {
var name = obj.data.name;
layer.confirm('确定删除会员等级:<span style="color: red">' + name + '</span>', function (index) {
like.ajax({
url: '{:url("user.level/del")}',
data: {id: id},
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_level-lists'); //数据刷新
}
}
});
layer.close(index);
})
}
})
});
</script>

View File

@ -0,0 +1,50 @@
{layout name="layout2" /}
<style>
.layui-form-label {
color: #6a6f6c;
width: 100px;
}
.layui-input-block {
margin-left: 130px;
}
.tips{
color: red;
margin-right: 5px;
}
</style>
<div class="layui-form" lay-filter="layuiadmin-form-user_level" id="layuiadmin-form-user_level" style="padding: 20px 30px 0 0;">
<input type="hidden" id="intro_default" value="{$intro_default}" />
<div class="layui-form-item">
<label class="layui-form-label">等级说明:</label>
<div class="layui-input-block">
<textarea name="intro" id="intro" class="layui-textarea" style="height:160px;">{$intro}</textarea>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label"></label>
<div class=" layui-form-mid layui-word-aux" style="white-space: nowrap">在会员中心显示的等级说明</div>
</div>
<div class="layui-inline">
<button class="layui-btn layui-btn-primary layui-btn-sm" id="use-default">使用默认说明</button>
</div>
</div>
<div class="layui-form-item layui-hide">
<input type="button" lay-submit lay-filter="add-user_intro-submit" id="add-user_intro-submit" value="确认">
</div>
</div>
<script>
layui.config({
version:"{$front_version}",
base: '/static/lib/' //静态资源所在路径
}).use(['form'], function(){
var $ = layui.$
,form = layui.form;
$('#use-default').click(function() {
var intro_default = $('#intro_default').val();
$('#intro').html(intro_default);
});
})
</script>

View File

@ -0,0 +1,63 @@
{layout name="layout1" /}
<style>
.reqRed::before {
content: '*';
color: red;
margin-right: 5px;
}
</style>
<div class="layui-form" style="margin-top: 15px;">
<div class="layui-form-item">
<label class="layui-form-label reqRed">标签名称</label>
<div class="layui-input-block" style="width: 380px;">
<input type="text" name="name" lay-verify="required" class="layui-input" />
</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">
<label class="layui-form-label"></label>
<div class="layui-input-block">
<button class="layui-btn layui-btn-normal" lay-submit lay-filter="add">确定</button>
<button class="layui-btn layui-btn-primary" id="back">返回</button>
</div>
</div>
</div>
<script>
layui.config({
version: "{$front_version}",
base: '/static/lib/'
}).use(['layer', 'table', 'form'], function () {
var $ = layui.jquery;
var layer = layui.layer;
var form = layui.form;
// 确定
form.on('submit(add)', function(data) {
like.ajax({
url:'{:url("user.tag/add")}',
type:'post',
data: data.field,
success:function (res) {
if(res.code == 1) {
layer.msg(res.msg,{time:1000}, function() {
var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
parent.layer.close(index); //再执行关闭
parent.location.reload(); // 重置父页面
});
}
}
})
});
// 返回
$('#back').click(function() {
var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
parent.layer.close(index); //再执行关闭
});
});
</script>

View File

@ -0,0 +1,64 @@
{layout name="layout1" /}
<style>
.reqRed::before {
content: '*';
color: red;
margin-right: 5px;
}
</style>
<div class="layui-form" style="margin-top: 15px;">
<input type="hidden" name="id" value="{$detail.id}" />
<div class="layui-form-item">
<label class="layui-form-label reqRed">标签名称</label>
<div class="layui-input-block" style="width: 380px;">
<input type="text" name="name" lay-verify="required" value="{$detail.name}" class="layui-input" />
</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">{$detail.remark}</textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
<button class="layui-btn layui-btn-normal" lay-submit lay-filter="edit">确定</button>
<button class="layui-btn layui-btn-primary" id="back">返回</button>
</div>
</div>
</div>
<script>
layui.config({
version: "{$front_version}",
base: '/static/lib/'
}).use(['layer', 'table', 'form'], function () {
var $ = layui.jquery;
var layer = layui.layer;
var form = layui.form;
// 确定
form.on('submit(edit)', function(data) {
like.ajax({
url:'{:url("user.tag/edit")}',
type:'post',
data: data.field,
success:function (res) {
if(res.code == 1) {
layer.msg(res.msg,{time:1000}, function() {
var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
parent.layer.close(index); //再执行关闭
parent.location.reload(); // 重置父页面
});
}
}
})
});
// 返回
$('#back').click(function() {
var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
parent.layer.close(index); //再执行关闭
});
});
</script>

View File

@ -0,0 +1,118 @@
{layout name="layout1" /}
<!-- 样式 -->
<style>
.layui-table-cell {
height: auto;
}
</style>
<!-- 操作提示 -->
<div class="layui-fluid">
<div class="layui-card" style="margin-top: 15px;">
<div class="layui-card-body">
<div class="layui-collapse like-layui-collapse" lay-accordion="" style="border:1px dashed #c4c4c4">
<div class="layui-colla-item">
<h2 class="layui-colla-title like-layui-colla-title" style="background-color: #fff">操作提示</h2>
<div class="layui-colla-content layui-show">
<p>*平台可以根据会员特征、消费行为等要素给会员分配标签,进行针对性管理;</p>
<p>*会员可以同时打上多个标签;</p>
</div>
</div>
</div>
</div>
<!-- 功能按钮 -->
<div class="layui-card-header layuiadmin-card-header-auto">
<button class="layui-btn layui-btn-sm {$view_theme_color}"
id="add-user-tag">新增会员标签</button>
</div>
<div class="layui-card-body">
<!-- 树形表格 -->
<table id="user-tag-lists" lay-filter="user-tag-lists"></table>
</div>
</div>
</div>
<script type="text/html" id="operate">
<button class="layui-btn layui-btn-normal layui-btn-sm" lay-event="edit">编辑</button>
<button class="layui-btn layui-btn-danger layui-btn-sm" lay-event="del">删除</button>
</script>
<script>
layui.config({
version: "{$front_version}",
base: '/static/lib/'
}).use(['layer', 'table'], function () {
var $ = layui.jquery;
var layer = layui.layer;
var table = layui.table;
table.render({
id: 'user-tag-lists'
,elem: '#user-tag-lists'
,url: "{:url('user.tag/lists')}"
, parseData: function(res) { // res 原始返回数据
return {
'code' : res.code // 0 代表正常返回
, 'msg' : res.msg // 提示消息
, 'count' : res.data.count // 数据长度
, 'data' : res.data.lists // 数据列表
}
}
, response: { // 重新设定返回的数据格式
statusCode: 1, // 成功的状态码默认0
}
, page: true // 开启分页
, limit: 10
, limits: [10, 20, 30, 40, 50]
, text: {
none: '暂无数据'
}
, cols: [[ // 设置表头,二维数组,方法渲染必填
{ field: 'name', title: '标签名称', width: 200, align: 'center' },
{ field: 'remark', title: '备注', width: 380, align: 'center' },
{ title: '操作', width: 380, align: 'center', toolbar: '#operate'}
]]
});
// 添加
$('#add-user-tag').click(function() {
layer.open({
type: 2,
title: '新增',
content: "{:url('user.tag/add')}",
area: ['60%', '60%']
});
});
table.on('tool(user-tag-lists)', function(obj) {
var id = obj.data.id;
switch(obj.event) {
case 'edit':
layer.open({
type: 2,
title: '编辑',
content: "{:url('user.tag/edit')}?id=" + id,
area: ['60%', '60%']
});
break;
case 'del':
layer.confirm('确定删除会员标签?<span style="color:red;">' + obj.data.name + '</span>', {icon: 3, title:'提示'}, function(index){
like.ajax({
url:'{:url("user.tag/del")}',
type:'post',
data: {id:id},
success:function (res) {
if(res.code == 1) {
layer.msg(res.msg,{time:1000}, function() {
layer.close(index);
window.location.reload();
});
}
}
})
});
break;
}
});
});
</script>

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,184 @@
{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 ? '禁用' : '正常'}
{$detail.user_delete ? '<span style="color: red">已注销</span>' : ''}
</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,604 @@
{layout name="layout1" /}
<div class="wrapper">
<div class="layui-card">
<div class="layui-card-body">
<div class="layui-collapse like-layui-collapse" lay-accordion="" style="border:1px dashed #c4c4c4">
<div class="layui-colla-item">
<h2 class="layui-colla-title like-layui-colla-title" style="background-color: #fff">操作提示</h2>
<div class="layui-colla-content layui-show">
<p>*平台管理会员信息,平台可对会员进行编辑,账户调整,等级调整和资料查看等操作</p>
</div>
</div>
</div>
</div>
<div class="layui-form layui-card-header layuiadmin-card-header-auto" style="height:auto !important;">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">会员信息:</label>
<div class="layui-input-inline" style="width: 200px;">
<select name="keyword_type" id="keyword_type">
<option value="sn">会员编号</option>
<option value="nickname">会员昵称</option>
</select>
</div>
<div class="layui-input-inline" style="width: 200px;">
<input type="text" id="keyword" name="keyword" placeholder="请输入关键词" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">会员等级:</label>
<div class="layui-input-inline">
<select id="level" name="level" style="height:80px;width: 80px" >
<option value="">全部</option>
{foreach $level_list as $item }
<option value="{$item.id}">{$item.name}</option>
{/foreach}
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">会员标签:</label>
<div class="layui-input-inline">
<select id="tag" name="tag" style="height:80px;width: 80px" >
<option value="">全部</option>
{foreach $tag_list as $item }
<option value="{$item.id}">{$item.name}</option>
{/foreach}
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">注册来源:</label>
<div class="layui-input-inline">
<select id="client" name="client" style="height:80px;width: 80px" >
<option value="">全部</option>
{foreach $client_list as $key => $value }
<option value="{$key}">{$value}</option>
{/foreach}
</select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">用户状态:</label>
<div class="layui-input-inline">
<select id="disable" name="disable" style="height:80px;width: 80px" >
<option value="">全部</option>
<option value="0">正常</option>
<option value="1">禁用</option>
</select>
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">消费金额:</label>
<div class="layui-input-inline">
<input type="text" class="layui-input" id="total_amount_start" name="total_amount_start" autocomplete="off">
</div>
<div class="layui-input-inline" style="margin-right: 5px;width: 10px;">
<label class="layui-form-mid">-</label>
</div>
<div class="layui-input-inline">
<input type="text" class="layui-input" id="total_amount_end" name="total_amount_end" autocomplete="off">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">注册时间:</label>
<div class="layui-input-inline">
<input type="text" class="layui-input" id="start_time" name="start_time" autocomplete="off">
</div>
<div class="layui-input-inline" style="margin-right: 5px;width: 10px;">
<label class="layui-form-mid">-</label>
</div>
<div class="layui-input-inline">
<input type="text" class="layui-input" id="end_time" name="end_time" autocomplete="off">
</div>
</div>
<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;">
<!-- <button class="layui-btn layui-btn-sm layuiadmin-btn-user {$view_theme_color}" data-type="send_coupon">发放优惠券</button>-->
<button class="layui-btn layui-btn-sm layuiadmin-btn-user {$view_theme_color}" data-type="set_tag">设置会员标签</button>
</div>
<table id="user-lists" lay-filter="user-lists"></table>
<script type="text/html" id="user-info">
<img src="{{d.abs_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.sn}}</p>
<p style="width: 180px;text-overflow:ellipsis;overflow: hidden">用户昵称{{d.nickname}}</p>
<p>用户状态
{{# if(d.disable){}}
禁用
{{# }else{ }}
正常
{{# } }}
{{# if(d.user_delete==1){ }}
<span style="color: red">已注销</span>
{{# } }}
</p>
</div>
</script>
<script type="text/html" id="wallet-info">
<div class="layui-input-inline" style="text-align:left;width: 240px">
<p>总资产{{d.total_amount}}</p>
<p>可提现金额{{d.earnings}}</p>
<p>不可提现金额{{d.user_money}}</p>
</div>
</script>
<script type="text/html" id="register-info">
<div class="layui-input-inline" style="text-align:left;width: 240px">
<p>注册来源{{d.client_desc}}</p>
<p>注册时间{{d.create_time}}</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>
<script type="text/html" id="account">
<div class="layui-input-inline">
<label>余额{{d.user_money}}</label>
<br/>
<label>积分{{d.user_integral}}</label>
</div>
</script>
<script type="text/html" id="user-operation">
<a class="layui-btn layui-btn-primary layui-btn-sm" lay-event="info">资料</a>
<a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="edit">编辑</a>
<a class="layui-btn layui-btn-normal layui-btn-sm" id="adjust_user" lay-event="adjust_user">账户调整</a>
<a class="layui-btn layui-btn-normal layui-btn-sm" id="adjust_level" lay-event="adjust_level">等级调整</a>
<a class="layui-btn layui-btn-normal layui-btn-sm" id="adjust_first_leader" lay-event="adjust_first_leader">推荐人调整</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 页开始
}
});
});
//日期时间范围
laydate.render({
elem: '#start_time'
,type: 'datetime'
,trigger: 'click'
});
//日期时间范围
laydate.render({
elem: '#end_time'
,type: 'datetime'
,trigger: 'click'
});
//清空查询
form.on('submit(user-clear-search)', function(){
$('#keyword_type').val('sn');
$('#keyword').val(''); //清空输入框
$('#level').val(''); //清空输入框
$('#tag').val(''); //清空输入框
$('#client').val(''); //清空输入框
$('#disable').val(''); //清空禁用状态
$('#total_amount_start').val(''); //清空输入框
$('#total_amount_end').val(''); //清空输入框
$('#start_time').val(''); //清空输入框
$('#end_time').val(''); //清空输入框
form.render('select');
//刷新列表
table.reload('user-lists', {
where: [],
page: {
curr: 1 //重新从第 1 页开始
}
});
});
//事件
var active = {
send_coupon:function() { //发放优惠券
var check_status = table.checkStatus('user-lists')
,user_list = check_status.data; //得到选中的数据
//是否已选数据
if(0 === user_list.length ){
return layer.msg('请选择用户');
}
//获取所选id
ids = [];
for (var i in user_list){
ids.push(user_list[i]['id']);
}
layer.open({
type: 2
,title: '发放优惠券'
,content: '{:url("coupon/sendCouponList")}'
,area: ['90%','90%']
,btn: ['确定发放', '取消']
,yes: function(index, layero){
var iframeWindow = window['layui-layer-iframe'+ index]
,submitID = 'send-submit'
,submit = layero.find('iframe').contents().find('#'+ submitID);
//监听提交
iframeWindow.layui.form.on('submit('+ submitID +')', function(data){
var coupon_list = window["layui-layer-iframe" + index].callbackdata();
if(coupon_list.length === 0){
return layer.msg('请选择优惠券');
}
coupon_ids = [];
for (var i in coupon_list){
coupon_ids.push(coupon_list[i]['id']);
}
like.ajax({
url:'{:url("coupon/sendCoupon")}',
data:{coupon_ids:coupon_ids,user_ids:ids},
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('goods_brand-lists'); //数据刷新
}
}
});
});
submit.trigger('click');
}
});
}
,set_tag:function() { //设置会员标签
var check_status = table.checkStatus('user-lists')
,user_list = check_status.data; //得到选中的数据
//是否已选数据
if( user_list.length === 0){
return layer.msg('请选择用户');
}
//获取所选id
ids = [];
for (var i in user_list){
ids.push(user_list[i]['id']);
}
layer.open({
type: 2
,title: '设置会员标签'
,content: '{:url("user.user/setTag")}'
,area: ['60%', '60%']
,btn: ['确定', '取消']
,yes: function(index, layero){
var iframeWindow = window['layui-layer-iframe'+ index]
,submitID = 'set_tag-submit'
,submit = layero.find('iframe').contents().find("#set_tag-submit");
//监听提交
iframeWindow.layui.form.on('submit(set_tag-submit)', function(data){
$.ajax({
url:'{:url("user.user/setTag")}',
data:{tag_ids:data.field.select,user_ids:ids},
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'); //数据刷新
}
}
});
});
submit.trigger('click');
}
});
}
}
$('.layui-btn.layuiadmin-btn-user').on('click', function(){
var type = $(this).data('type');
active[type] ? active[type].call(this) : '';
});
$(document).on('click', '.image-show', function () {
var src = $(this).attr('src');
like.showImg(src,600);
});
});
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.user/lists")}' //模拟接口
,cols: [[
{type: 'checkbox'}
,{title: '用户信息',width: 370,align: 'center', templet: '#user-info'}
,{field: 'level_name', title: '用户等级',width: 120,align: 'center'}
,{field: 'tag_str', title: '用户标签',width: 220,align: 'center'}
,{field: 'user_growth', title: '成长值',width: 120,align: 'center'}
,{title: '钱包信息',width: 350,align: 'center', templet: '#wallet-info'}
,{field: 'total_order_amount', title: '消费金额',width: 90,align: 'center'}
,{title: '上级推荐人',width: 90,align: 'center',width: 350, templet: '#first-info'}
,{field: 'fans', title: '推荐下级人数',width: 120,align: 'center'}
,{title: '注册信息',width: 300,align: 'center', templet: '#register-info'}
,{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.user/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.user/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');
}
})
}
if(obj.event === 'info'){
var id = obj.data.id;
layer.open({
type: 2
,title: '会员资料'
,content: '{:url("user.user/info")}?id='+id
,area: ['90%','90%']
,btn: ['返回']
})
}
if(obj.event === 'adjust_user'){
var id = obj.data.id;
layer.open({
type: 2
,title: '账户调整'
,content: '{:url("user.user/adjustAccount")}?id='+id
,area: ['90%', '90%']
,btn: ['确定', '取消']
,yes: function(index, layero){
var iframeWindow = window['layui-layer-iframe'+ index]
,submit = layero.find('iframe').contents().find('#adjust_user-submit');
//监听提交
iframeWindow.layui.form.on('submit(adjust_user-submit)', function(data){
var field = data.field;
$.ajax({
url:'{:url("user.user/adjustAccount")}',
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');
}
})
}
if(obj.event === 'adjust_level'){
var id = obj.data.id;
layer.open({
type: 2
,title: '等级调整'
,content: '{:url("user.user/adjustLevel")}?id='+ id
,area: ['90%', '90%']
,btn: ['确定', '取消']
,yes: function(index, layero){
var iframeWindow = window['layui-layer-iframe'+ index]
,submit = layero.find('iframe').contents().find('#formSubmit');
//监听提交
iframeWindow.layui.form.on('submit(formSubmit)', function(data){
var field = data.field;
$.ajax({
url:'{:url("user.user/adjustLevel")}',
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');
}
})
}
if(obj.event === 'adjust_first_leader'){
var id = obj.data.id;
layer.open({
type: 2
,title: '推荐人调整'
,content: '{:url("user.user/adjustFirstLeader")}?id='+ id
,area: ['90%', '90%']
,btn: ['确定', '取消']
,yes: function(index, layero){
var iframeWindow = window['layui-layer-iframe'+ index]
,submit = layero.find('iframe').contents().find('#formSubmit');
//监听提交
iframeWindow.layui.form.on('submit(formSubmit)', function(data){
var field = data.field;
$.ajax({
url:'{:url("user.user/adjustFirstLeader")}',
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>