初始上传
This commit is contained in:
710
app/shop/view/membercluster/add_cluster.html
Executable file
710
app/shop/view/membercluster/add_cluster.html
Executable file
@@ -0,0 +1,710 @@
|
||||
<style>
|
||||
.layui-btn+.layui-btn {margin-left: 0;}
|
||||
.layui-btn {margin-right: 10px; margin-bottom: 15px;}
|
||||
.weight-list span{display: inline-block;width: 60px;line-height: 30px;border:1px solid #eee;border-radius: 4px;text-align: center;font-size: 12px;cursor: pointer;}
|
||||
.weight-list span.active{border-color: var(--base-color); }
|
||||
.weight-list span.disabled{background:#f1f1f1;cursor: not-allowed; }
|
||||
.form-wrap{padding-top: 0;}
|
||||
</style>
|
||||
|
||||
<div class="layui-form form-wrap">
|
||||
<!-- 基础上传 -->
|
||||
<div class="layui-card card-common card-brief">
|
||||
<div class="layui-card-header">
|
||||
<span class="card-title">基础设置</span>
|
||||
</div>
|
||||
<div class="layui-card-body">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="required">*</span>群体名称:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="cluster_name" lay-verify="required" autocomplete="off" class="layui-input len-mid">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-card card-common card-brief">
|
||||
<div class="layui-card-header">
|
||||
<span class="card-title">选项设置</span>
|
||||
</div>
|
||||
<div class="layui-card-body">
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">会员基本信息</label>
|
||||
<div class="layui-input-block">
|
||||
<button class="layui-btn layui-btn-primary cluster-btn">会员等级<input type="hidden" value="0" /></button>
|
||||
<button class="layui-btn layui-btn-primary cluster-btn">会员标签<input type="hidden" value="1" /></button>
|
||||
<button class="layui-btn layui-btn-primary cluster-btn">性别<input type="hidden" value="2" /></button>
|
||||
<button class="layui-btn layui-btn-primary cluster-btn">生日<input type="hidden" value="3" /></button>
|
||||
<button class="layui-btn layui-btn-primary cluster-btn">注册时间<input type="hidden" value="4" /></button>
|
||||
<button class="layui-btn layui-btn-primary cluster-btn">当前积分<input type="hidden" value="5" /></button>
|
||||
<button class="layui-btn layui-btn-primary cluster-btn">当前余额<input type="hidden" value="6" /></button>
|
||||
<button class="layui-btn layui-btn-primary cluster-btn">当前成长值<input type="hidden" value="7" /></button>
|
||||
<button class="layui-btn layui-btn-primary cluster-btn">连续签到次数<input type="hidden" value="8" /></button>
|
||||
<button class="layui-btn layui-btn-primary cluster-btn">会员手机<input type="hidden" value="9" /></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">会员消费情况</label>
|
||||
<div class="layui-input-block">
|
||||
<button class="layui-btn layui-btn-primary cluster-btn">付款金额<input type="hidden" value="10" /></button>
|
||||
<button class="layui-btn layui-btn-primary cluster-btn">消费金额<input type="hidden" value="11" /></button>
|
||||
<button class="layui-btn layui-btn-primary cluster-btn">付款次数<input type="hidden" value="12" /></button>
|
||||
<button class="layui-btn layui-btn-primary cluster-btn">消费次数<input type="hidden" value="13" /></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-card card-common card-brief">
|
||||
<div class="layui-card-header">
|
||||
<span class="card-title">群体设置</span>
|
||||
</div>
|
||||
<div class="layui-card-body">
|
||||
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block">
|
||||
<table class="layui-table" id="goods" lay-skin="line" lay-size="lg">
|
||||
<colgroup>
|
||||
<col width="15%">
|
||||
<col width="20%">
|
||||
<col width="50%">
|
||||
<col width="10%">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>选项</th>
|
||||
<th>范围</th>
|
||||
<th>条件</th>
|
||||
<th class="operation">操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="cluster-content layui-hide">
|
||||
<td>会员等级</td>
|
||||
<td>
|
||||
<input type="radio" class="include" name="basic[member_level][include]" value="1" title="包含" checked>
|
||||
<input type="radio" class="include" name="basic[member_level][include]" value="2" title="不包含">
|
||||
</td>
|
||||
<td>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" autocomplete="off" class="layui-input member-level-con" readonly onclick="settinglevel()">
|
||||
<input type="hidden" name="basic[member_level][content]">
|
||||
</div>
|
||||
<input type="hidden" class="is-show" name="basic[member_level][is_show]" value="0">
|
||||
</td>
|
||||
<td class='operation'>
|
||||
<div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="cluster-content layui-hide">
|
||||
<td>会员标签</td>
|
||||
<td>
|
||||
<input type="radio" class="include" name="basic[member_label][include]" value="1" title="包含" checked>
|
||||
<input type="radio" class="include" name="basic[member_label][include]" value="2" title="不包含">
|
||||
</td>
|
||||
<td>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" autocomplete="off" class="layui-input member-label-con" readonly onclick="settinglabel()">
|
||||
<input type="hidden" name="basic[member_label][content]">
|
||||
</div>
|
||||
<input type="hidden" class="is-show" name="basic[member_label][is_show]" value="0">
|
||||
</td>
|
||||
<td class='operation'>
|
||||
<div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="cluster-content layui-hide">
|
||||
<td>会员性别</td>
|
||||
<td>
|
||||
<input type="radio" class="include" name="basic[sex][include]" value="1" title="包含" checked>
|
||||
<input type="radio" class="include" name="basic[sex][include]" value="2" title="不包含">
|
||||
</td>
|
||||
<td>
|
||||
<input type="checkbox" class="input-checkbox" lay-skin="primary" lay-filter="sex" name="basic[sex][content]" value="0" title="保密">
|
||||
<input type="checkbox" class="input-checkbox" lay-skin="primary" lay-filter="sex" name="basic[sex][content]" value="1" title="男">
|
||||
<input type="checkbox" class="input-checkbox" lay-skin="primary" lay-filter="sex" name="basic[sex][content]" value="2" title="女">
|
||||
<input type="hidden" class="is-show" name="basic[sex][is_show]" value="0">
|
||||
</td>
|
||||
<td class='operation'>
|
||||
<div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="cluster-content layui-hide">
|
||||
<td>会员生日</td>
|
||||
<td>
|
||||
<input type="radio" class="include" name="basic[birthday][include]" value="1" title="包含" checked>
|
||||
<input type="radio" class="include" name="basic[birthday][include]" value="2" title="不包含">
|
||||
</td>
|
||||
<td>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input layui-input-start" name="basic[birthday][start]" id="birthday_start_date" placeholder="请输入开始时间" autocomplete="off" readonly>
|
||||
</div>
|
||||
<div class="layui-input-inline split">-</div>
|
||||
<div class="layui-input-inline end-time">
|
||||
<input type="text" class="layui-input layui-input-end" name="basic[birthday][end]" id="birthday_end_date" placeholder="请输入结束时间" autocomplete="off" readonly>
|
||||
</div>
|
||||
<input type="hidden" class="is-show" name="basic[birthday][is_show]" value="0">
|
||||
</td>
|
||||
<td class='operation'>
|
||||
<div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="cluster-content layui-hide">
|
||||
<td>注册时间</td>
|
||||
<td>
|
||||
<input type="radio" class="include" name="basic[reg_time][include]" value="1" title="包含" checked>
|
||||
<input type="radio" class="include" name="basic[reg_time][include]" value="2" title="不包含">
|
||||
</td>
|
||||
<td>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input layui-input-start" name="basic[reg_time][start]" id="reg_start_date" placeholder="请输入开始时间" autocomplete="off" readonly>
|
||||
</div>
|
||||
<div class="layui-input-inline split">-</div>
|
||||
<div class="layui-input-inline end-time">
|
||||
<input type="text" class="layui-input layui-input-end" name="basic[reg_time][end]" id="reg_end_date" placeholder="请输入结束时间" autocomplete="off" readonly>
|
||||
</div>
|
||||
<input type="hidden" class="is-show" name="basic[reg_time][is_show]" value="0">
|
||||
</td>
|
||||
<td class='operation'>
|
||||
<div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="cluster-content layui-hide">
|
||||
<td>当前积分</td>
|
||||
<td>
|
||||
<input type="radio" class="include" name="basic[point][include]" value="1" title="包含" checked>
|
||||
<input type="radio" class="include" name="basic[point][include]" value="2" title="不包含">
|
||||
</td>
|
||||
<td>
|
||||
<div class="layui-input-inline">
|
||||
<input type="number" class="layui-input layui-input-start layui-input-int" name="basic[point][start]" placeholder="请输入积分最小值" autocomplete="off" min="0">
|
||||
</div>
|
||||
<div class="layui-input-inline split">-</div>
|
||||
<div class="layui-input-inline end-time">
|
||||
<input type="number" class="layui-input layui-input-end layui-input-int" name="basic[point][end]" placeholder="请输入积分最大值" autocomplete="off" min="0">
|
||||
</div>
|
||||
<input type="hidden" class="is-show" name="basic[point][is_show]" value="0">
|
||||
</td>
|
||||
<td class='operation'>
|
||||
<div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="cluster-content layui-hide">
|
||||
<td>当前余额</td>
|
||||
<td>
|
||||
<input type="radio" class="include" name="basic[balance][include]" value="1" title="包含" checked>
|
||||
<input type="radio" class="include" name="basic[balance][include]" value="2" title="不包含">
|
||||
</td>
|
||||
<td>
|
||||
<div class="layui-input-inline">
|
||||
<input type="number" class="layui-input layui-input-start layui-input-flo" name="basic[balance][start]" placeholder="请输入当前余额最小值" autocomplete="off" min="0">
|
||||
</div>
|
||||
<div class="layui-input-inline split">-</div>
|
||||
<div class="layui-input-inline end-time">
|
||||
<input type="number" class="layui-input layui-input-end layui-input-flo" name="basic[balance][end]" placeholder="请输入当前余额最大值" autocomplete="off" min="0">
|
||||
</div>
|
||||
<input type="hidden" class="is-show" name="basic[balance][is_show]" value="0">
|
||||
</td>
|
||||
<td class='operation'>
|
||||
<div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="cluster-content layui-hide">
|
||||
<td>当前成长值</td>
|
||||
<td>
|
||||
<input type="radio" class="include" name="basic[growth][include]" value="1" title="包含" checked>
|
||||
<input type="radio" class="include" name="basic[growth][include]" value="2" title="不包含">
|
||||
</td>
|
||||
<td>
|
||||
<div class="layui-input-inline">
|
||||
<input type="number" class="layui-input layui-input-start layui-input-flo" name="basic[growth][start]" placeholder="请输入当前成长值最小值" autocomplete="off" min="0">
|
||||
</div>
|
||||
<div class="layui-input-inline split">-</div>
|
||||
<div class="layui-input-inline end-time">
|
||||
<input type="number" class="layui-input layui-input-end layui-input-flo" name="basic[growth][end]" placeholder="请输入当前成长值最大值" autocomplete="off" min="0">
|
||||
</div>
|
||||
<input type="hidden" class="is-show" name="basic[growth][is_show]" value="0">
|
||||
</td>
|
||||
<td class='operation'>
|
||||
<div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="cluster-content layui-hide">
|
||||
<td>签到次数</td>
|
||||
<td>
|
||||
<input type="radio" class="include" name="basic[sign_days_series][include]" value="1" title="包含" checked>
|
||||
<input type="radio" class="include" name="basic[sign_days_series][include]" value="2" title="不包含">
|
||||
</td>
|
||||
<td>
|
||||
<div class="layui-input-inline">
|
||||
<input type="number" class="layui-input layui-input-start layui-input-int" name="basic[sign_days_series][start]" placeholder="请输入签到次数最小值" autocomplete="off" min="0">
|
||||
</div>
|
||||
<div class="layui-input-inline split">-</div>
|
||||
<div class="layui-input-inline end-time">
|
||||
<input type="number" class="layui-input layui-input-end layui-input-int" name="basic[sign_days_series][end]" placeholder="请输入签到次数最大值" autocomplete="off" min="0">
|
||||
</div>
|
||||
<input type="hidden" class="is-show" name="basic[sign_days_series][is_show]" value="0">
|
||||
</td>
|
||||
<td class='operation'>
|
||||
<div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="cluster-content layui-hide">
|
||||
<td>会员手机</td>
|
||||
<td>
|
||||
<input type="radio" class="include" name="basic[mobile][include]" value="1" title="包含" checked>
|
||||
<input type="radio" class="include" name="basic[mobile][include]" value="2" title="不包含">
|
||||
</td>
|
||||
<td>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="basic[mobile][content]" autocomplete="off" class="layui-input member-mobile">
|
||||
</div>
|
||||
<input type="hidden" class="is-show" name="basic[mobile][is_show]" value="0">
|
||||
</td>
|
||||
<td class='operation'>
|
||||
<div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="cluster-content layui-hide">
|
||||
<td>付款金额</td>
|
||||
<td>
|
||||
<input type="radio" class="include" name="consume[order_money][include]" value="1" title="包含" checked>
|
||||
<input type="radio" class="include" name="consume[order_money][include]" value="2" title="不包含">
|
||||
</td>
|
||||
<td>
|
||||
<div class="layui-input-inline">
|
||||
<input type="number" class="layui-input layui-input-start layui-input-flo" name="consume[order_money][start]" placeholder="请输入付款金额最小值" autocomplete="off" min="0">
|
||||
</div>
|
||||
<div class="layui-input-inline split">-</div>
|
||||
<div class="layui-input-inline end-time">
|
||||
<input type="number" class="layui-input layui-input-end layui-input-flo" name="consume[order_money][end]" placeholder="请输入付款金额最大值" autocomplete="off" min="0">
|
||||
</div>
|
||||
<input type="hidden" class="is-show" name="consume[order_money][is_show]" value="0">
|
||||
</td>
|
||||
<td class='operation'>
|
||||
<div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="cluster-content layui-hide">
|
||||
<td>消费金额</td>
|
||||
<td>
|
||||
<input type="radio" class="include" name="consume[order_complete_money][include]" value="1" title="包含" checked>
|
||||
<input type="radio" class="include" name="consume[order_complete_money][include]" value="2" title="不包含">
|
||||
</td>
|
||||
<td>
|
||||
<div class="layui-input-inline">
|
||||
<input type="number" class="layui-input layui-input-start layui-input-flo" name="consume[order_complete_money][start]" placeholder="请输入消费金额最小值" autocomplete="off" min="0">
|
||||
</div>
|
||||
<div class="layui-input-inline split">-</div>
|
||||
<div class="layui-input-inline end-time">
|
||||
<input type="number" class="layui-input layui-input-end layui-input-flo" name="consume[order_complete_money][end]" placeholder="请输入消费金额最大值" autocomplete="off" min="0">
|
||||
</div>
|
||||
<input type="hidden" class="is-show" name="consume[order_complete_money][is_show]" value="0">
|
||||
</td>
|
||||
<td class='operation'>
|
||||
<div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="cluster-content layui-hide">
|
||||
<td>付款次数</td>
|
||||
<td>
|
||||
<input type="radio" class="include" name="consume[order_num][include]" value="1" title="包含" checked>
|
||||
<input type="radio" class="include" name="consume[order_num][include]" value="2" title="不包含">
|
||||
</td>
|
||||
<td>
|
||||
<div class="layui-input-inline">
|
||||
<input type="number" class="layui-input layui-input-start layui-input-int" name="consume[order_num][start]" placeholder="请输入付款次数最小值" autocomplete="off" min="0">
|
||||
</div>
|
||||
<div class="layui-input-inline split">-</div>
|
||||
<div class="layui-input-inline end-time">
|
||||
<input type="number" class="layui-input layui-input-end layui-input-int" name="consume[order_num][end]" placeholder="请输入付款次数最大值" autocomplete="off" min="0">
|
||||
</div>
|
||||
<input type="hidden" class="is-show" name="consume[order_num][is_show]" value="0">
|
||||
</td>
|
||||
<td class='operation'>
|
||||
<div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="cluster-content layui-hide">
|
||||
<td>消费次数</td>
|
||||
<td>
|
||||
<input type="radio" class="include" name="consume[order_complete_num][include]" value="1" title="包含" checked>
|
||||
<input type="radio" class="include" name="consume[order_complete_num][include]" value="2" title="不包含">
|
||||
</td>
|
||||
<td>
|
||||
<div class="layui-input-inline">
|
||||
<input type="number" class="layui-input layui-input-start layui-input-int" name="consume[order_complete_num][start]" placeholder="请输入消费次数最小值" autocomplete="off" min="0">
|
||||
</div>
|
||||
<div class="layui-input-inline split">-</div>
|
||||
<div class="layui-input-inline end-time">
|
||||
<input type="number" class="layui-input layui-input-end layui-input-int" name="consume[order_complete_num][end]" placeholder="请输入消费次数最大值" autocomplete="off" min="0">
|
||||
</div>
|
||||
<input type="hidden" class="is-show" name="consume[order_complete_num][is_show]" value="0">
|
||||
</td>
|
||||
<td class='operation'>
|
||||
<div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row" style="margin-left: 110px;">
|
||||
<button class="layui-btn" lay-submit lay-filter="calculate">计算会员数</button>
|
||||
<div>符合条件的群体人数: <span class="member_num text-color">0</span> 人,点击计算按钮可查看符合条件的群体人数。</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-card-body">
|
||||
|
||||
<div class="form-row">
|
||||
<button class="layui-btn" lay-submit lay-filter="save">保存</button>
|
||||
<button class="layui-btn layui-btn-primary" onclick="backMemberClusterList()">返回</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(function(){
|
||||
$('.weight-list span').not('.disabled').eq(0).addClass("active");
|
||||
})
|
||||
|
||||
var form, laytpl, laydate, isClick = false, member_num = 0, member_ids = '', sexVal = [];
|
||||
|
||||
layui.use(['form', 'laytpl', 'laydate'], function() {
|
||||
form = layui.form;
|
||||
laytpl = layui.laytpl;
|
||||
laydate = layui.laydate;
|
||||
form.render();
|
||||
|
||||
//生日开始时间
|
||||
laydate.render({
|
||||
elem: '#birthday_start_date',
|
||||
type: 'datetime'
|
||||
});
|
||||
|
||||
//生日结束时间
|
||||
laydate.render({
|
||||
elem: '#birthday_end_date',
|
||||
type: 'datetime'
|
||||
});
|
||||
|
||||
//注册开始时间
|
||||
laydate.render({
|
||||
elem: '#reg_start_date',
|
||||
type: 'datetime'
|
||||
});
|
||||
|
||||
//注册结束时间
|
||||
laydate.render({
|
||||
elem: '#reg_end_date',
|
||||
type: 'datetime'
|
||||
});
|
||||
|
||||
$(".weight-list span").click(function() {
|
||||
if (!$(this).hasClass("disabled")) {
|
||||
$(this).addClass("active");
|
||||
$(this).siblings().removeClass("active");
|
||||
}
|
||||
});
|
||||
|
||||
$(".cluster-btn").click(function() {
|
||||
var _index = $(this).children().val();
|
||||
|
||||
if (!$(this).hasClass("border-color")) {
|
||||
$(this).addClass("border-color");
|
||||
$(".cluster-content").eq(_index).removeClass("layui-hide");
|
||||
$(".cluster-content").eq(_index).find(".is-show").val(1);
|
||||
$(".cluster-content").eq(_index).find(".layui-input-inline input.layui-input").attr("lay-verify", "notnull");
|
||||
$(".cluster-content").eq(_index).find(".layui-input-inline input.layui-input-start").attr("lay-verify", "notnull|start");
|
||||
$(".cluster-content").eq(_index).find(".layui-input-inline input.layui-input-end").attr("lay-verify", "notnull|end");
|
||||
$(".cluster-content").eq(_index).find(".layui-input-inline input[type='number']").attr("lay-verify", "notnull|end|num");
|
||||
$(".cluster-content").eq(_index).find(".layui-input-inline input.member-mobile").attr("lay-verify", "notnull|len");
|
||||
$(".cluster-content").eq(_index).find(".layui-input-inline input.layui-input-int.layui-input-start").attr("lay-verify", "notnull|start|num|int");
|
||||
$(".cluster-content").eq(_index).find(".layui-input-inline input.layui-input-flo.layui-input-end").attr("lay-verify", "notnull|end|num|flo");
|
||||
}
|
||||
//点击了需要重新计算
|
||||
// isClick = false;
|
||||
|
||||
form.render();
|
||||
});
|
||||
|
||||
form.on('submit(calculate)', function(data) {
|
||||
// isClick = true;
|
||||
var rule_json = resetData(data.field);
|
||||
|
||||
if (rule_json.basic.sex.is_show == 1) {
|
||||
var flag = false;
|
||||
$(".input-checkbox").each(function() {
|
||||
var isChecked = $(this).is(":checked");
|
||||
if (isChecked) {
|
||||
flag = true;
|
||||
}
|
||||
});
|
||||
if (!flag) {
|
||||
layer.msg("请选择性别", {icon: 5, anim: 6});
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url: ns.url("shop/membercluster/calculate"),
|
||||
type: "POST",
|
||||
dataType: "JSON",
|
||||
data: {
|
||||
rule_json: JSON.stringify(rule_json)
|
||||
},
|
||||
success: function(res) {
|
||||
if (res.code >= 0) {
|
||||
member_num = res.data.member_num;
|
||||
member_ids = res.data.member_ids;
|
||||
$(".member_num").html(member_num);
|
||||
}
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
form.on('submit(save)', function(data) {
|
||||
// if (isClick) {
|
||||
var rule_json = resetData(data.field);
|
||||
$.ajax({
|
||||
url: ns.url("shop/membercluster/addCluster"),
|
||||
type: "POST",
|
||||
dataType: "JSON",
|
||||
data: {
|
||||
cluster_name: data.field.cluster_name,
|
||||
rule_json: JSON.stringify(rule_json),
|
||||
},
|
||||
success: function(res) {
|
||||
if (res.code >= 0) {
|
||||
layer.confirm('添加成功', {
|
||||
title:'操作提示',
|
||||
btn: ['返回列表', '继续添加'],
|
||||
closeBtn: 0,
|
||||
yes: function(index, layero) {
|
||||
location.hash = ns.hash("shop/membercluster/clusterList")
|
||||
layer.close(index);
|
||||
},
|
||||
btn2: function(index, layero) {
|
||||
listenerHash(); // 刷新页面
|
||||
layer.close(index);
|
||||
}
|
||||
});
|
||||
}else{
|
||||
layer.msg(res.message);
|
||||
}
|
||||
}
|
||||
})
|
||||
// } else {
|
||||
// layer.msg("请先计算会员数", {icon: 5, anim: 6});
|
||||
// }
|
||||
});
|
||||
|
||||
form.on('submit(setlabel)', function(obj) {
|
||||
var field = obj.field;
|
||||
var arr_id = [], temp = [];
|
||||
|
||||
for (var prop in field) {
|
||||
arr_id.push(field[prop]);
|
||||
$("#set_label").find("input").each(function() {
|
||||
var label_id = $(this).attr("data-id");
|
||||
if (field[prop] == label_id) {
|
||||
temp.push($(this).attr("title"))
|
||||
}
|
||||
})
|
||||
}
|
||||
$(".member-label-con").val(temp);
|
||||
$("input[name='basic[member_label][content]']").val(arr_id);
|
||||
layer.closeAll('page');
|
||||
});
|
||||
|
||||
form.on('submit(setlevel)', function(obj) {
|
||||
var field = obj.field;
|
||||
var arr_id = [], temp = [];
|
||||
|
||||
for (var prop in field) {
|
||||
arr_id.push(field[prop]);
|
||||
$("#set_level").find("input").each(function() {
|
||||
var level_id = $(this).attr("data-id");
|
||||
if (field[prop] == level_id) {
|
||||
temp.push($(this).attr("title"))
|
||||
}
|
||||
})
|
||||
}
|
||||
$(".member-level-con").val(temp);
|
||||
$("input[name='basic[member_level][content]']").val(arr_id);
|
||||
layer.closeAll('page');
|
||||
});
|
||||
|
||||
/**
|
||||
* 表单验证
|
||||
*/
|
||||
form.verify({
|
||||
notnull: function(value, item) {
|
||||
var str = $(item).parents(".cluster-content").find("td").eq(0).text();
|
||||
if (value == '') {
|
||||
return str + '不能为空';
|
||||
}
|
||||
},
|
||||
end: function(value, item) {
|
||||
var start = $(item).parents(".cluster-content").find(".layui-input-start").val();
|
||||
var str1 = $(item).attr("placeholder").slice(3);
|
||||
var str2 = $(item).parents(".cluster-content").find(".layui-input-start").attr("placeholder").slice(3);
|
||||
if (Number(value) < Number(start)) {
|
||||
return str1 + "不能小于" + str2;
|
||||
}
|
||||
},
|
||||
num: function(value, item) {
|
||||
var str = $(item).parents(".cluster-content").find("td").eq(0).text();
|
||||
if (value < 0) {
|
||||
return str + "不能小于0";
|
||||
}
|
||||
},
|
||||
len: function(value, item) {
|
||||
if (value.length > 11) {
|
||||
return "手机号为11位";
|
||||
}
|
||||
},
|
||||
int: function(value, item) {
|
||||
var str = $(item).parents(".cluster-content").find("td").eq(0).text();
|
||||
if (value % 1 != 0) {
|
||||
return str + "不能为小数";
|
||||
}
|
||||
},
|
||||
flo: function(value, item) {
|
||||
var str = $(item).parents(".cluster-content").find("td").eq(0).text();
|
||||
if (value * 100 % 1 != 0) {
|
||||
return str + "最多保留两位小数";
|
||||
}
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
/**
|
||||
* 设置标签
|
||||
*/
|
||||
function settinglabel() {
|
||||
|
||||
laytpl($("#label_change").html()).render({}, function(html) {
|
||||
layer_label = layer.open({
|
||||
title: '设置标签',
|
||||
skin: 'layer-tips-class',
|
||||
type: 1,
|
||||
area: ['450px','260px'],
|
||||
content: html,
|
||||
});
|
||||
});
|
||||
|
||||
form.render();
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置等级
|
||||
*/
|
||||
function settinglevel() {
|
||||
laytpl($("#level_change").html()).render({}, function(html) {
|
||||
layer_level = layer.open({
|
||||
title: '设置等级',
|
||||
skin: 'layer-tips-class',
|
||||
type: 1,
|
||||
area: ['450px','260px'],
|
||||
content: html,
|
||||
});
|
||||
});
|
||||
|
||||
form.render();
|
||||
}
|
||||
|
||||
function delDiv(e) {
|
||||
var _len = $(e).parents(".cluster-content").index();
|
||||
$(e).parents(".cluster-content").addClass("layui-hide");
|
||||
$(e).parents(".cluster-content").find("input").removeAttr("lay-verify");
|
||||
$(e).parents(".cluster-content").find(".layui-input-inline input").val("");
|
||||
$(e).parents(".cluster-content").find(".is-show").val(0);
|
||||
$(e).parents(".cluster-content").find("input[name='basic[sex][content]']").prop("checked",false);
|
||||
$(".cluster-btn").eq(_len).removeClass("border-color");
|
||||
}
|
||||
|
||||
function closeLabel() {
|
||||
layer.close(layer_label);
|
||||
}
|
||||
|
||||
function closeLevel() {
|
||||
layer.close(layer_level);
|
||||
}
|
||||
|
||||
function backMemberClusterList() {
|
||||
location.hash = ns.hash("shop/membercluster/clusterList");
|
||||
}
|
||||
|
||||
// 数据结构
|
||||
function resetData(data) {
|
||||
var rule_json = {};
|
||||
|
||||
$.each(data, function(index, item) {
|
||||
if (index.indexOf("[") != -1) {
|
||||
var arr = index.split("[");
|
||||
if (rule_json[arr[0]] == undefined) {
|
||||
rule_json[arr[0]] = {};
|
||||
}
|
||||
var name = arr[1].slice(0, arr[1].length - 1);
|
||||
if (rule_json[arr[0]][name] == undefined) {
|
||||
rule_json[arr[0]][name] = {};
|
||||
}
|
||||
var attr = arr[2].slice(0, arr[2].length - 1);
|
||||
rule_json[arr[0]][name][attr] = item;
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
sexVal = [];
|
||||
$("input[name='basic[sex][content]']:checked").each(function (index, item) {
|
||||
sexVal.push($(this).val());
|
||||
});
|
||||
|
||||
rule_json.basic.sex.content = sexVal.toString();
|
||||
return rule_json;
|
||||
}
|
||||
</script>
|
||||
|
||||
<!-- 设置标签弹框html -->
|
||||
<script type="text/html" id="label_change">
|
||||
<div class="layui-form member-form" id="set_label" lay-filter="form">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label sm">标签:</label>
|
||||
<div class="layui-input-block">
|
||||
{foreach $member_label_list as $member_label_list_k => $member_label_list_v}
|
||||
<input type="checkbox" name="label_id{$member_label_list_v.label_id}" data-id="{$member_label_list_v.label_id}" value="{$member_label_list_v.label_id}" title="{$member_label_list_v.label_name}" lay-skin="primary">
|
||||
{/foreach}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row sm">
|
||||
<button class="layui-btn" lay-submit lay-filter="setlabel">确定</button>
|
||||
<button class="layui-btn layui-btn-primary" onclick="closeLabel()">返回</button>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<!-- 设置标签弹框html -->
|
||||
<script type="text/html" id="level_change">
|
||||
<div class="layui-form member-form" id="set_level" lay-filter="form">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label sm">等级:</label>
|
||||
<div class="layui-input-block">
|
||||
{foreach $member_level_list as $member_level_list_k => $member_level_list_v}
|
||||
<input type="checkbox" name="level_id{$member_level_list_v.level_id}" data-id="{$member_level_list_v.level_id}" value="{$member_level_list_v.level_id}" title="{$member_level_list_v.level_name}" lay-skin="primary">
|
||||
{/foreach}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row sm">
|
||||
<button class="layui-btn" lay-submit lay-filter="setlevel">确定</button>
|
||||
<button class="layui-btn layui-btn-primary" onclick="closeLevel()">返回</button>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
405
app/shop/view/membercluster/cluster_list.html
Executable file
405
app/shop/view/membercluster/cluster_list.html
Executable file
@@ -0,0 +1,405 @@
|
||||
<link rel="stylesheet" type="text/css" href="SHOP_CSS/member_cluster.css" />
|
||||
<style>
|
||||
.layui-layout-admin .screen{margin-bottom: 15px;}
|
||||
</style>
|
||||
|
||||
<!-- 添加会员群体 -->
|
||||
<div class="single-filter-box">
|
||||
<button type="button" class="layui-btn" onclick="location.hash = '{:hash_url("shop/membercluster/addCluster")}'">添加群体</button>
|
||||
</div>
|
||||
|
||||
<div class="screen layui-collapse" lay-filter="selection_panel">
|
||||
<div class="layui-colla-item">
|
||||
<form class="layui-colla-content layui-form layui-show">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">群体名称</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="cluster_name" placeholder="群体名称" autocomplete="off" class="layui-input ">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">更新时间</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input" name="start_date" id="start_date" placeholder="请输入开始时间" autocomplete="off" readonly>
|
||||
</div>
|
||||
<div class="layui-input-inline split">-</div>
|
||||
<div class="layui-input-inline end-time">
|
||||
<input type="text" class="layui-input" name="end_date" id="end_date" placeholder="请输入结束时间" autocomplete="off" readonly>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<button class="layui-btn" lay-submit lay-filter="search">筛选</button>
|
||||
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 列表 -->
|
||||
<table id="cluster_list" lay-filter="cluster_list"></table>
|
||||
|
||||
<!-- 工具栏操作 -->
|
||||
<script type="text/html" id="operation">
|
||||
<div class="table-btn">
|
||||
<a class="layui-btn" lay-event="member">查看会员</a>
|
||||
<a class="layui-btn" lay-event="info">编辑</a>
|
||||
<a class="layui-btn" lay-event="delete">删除</a>
|
||||
<a class="layui-btn" lay-event="more">批量处理</a>
|
||||
<div class="more-operation">
|
||||
<a class="operation" lay-event="recive_coupon">发放优惠券</a>
|
||||
<a class="operation" lay-event="adjust_balance">调整余额</a>
|
||||
<a class="operation" lay-event="adjust_integral">调整积分</a>
|
||||
<a class="operation" lay-event="export_cluster_member">导出</a>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<!-- 积分弹框html -->
|
||||
<script type="text/html" id="point">
|
||||
<div class="layui-form integral-bounced">
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">调整数额:</label>
|
||||
<div class="layui-input-block amount">
|
||||
<input type="number" value="0" placeholder="请输入调整数额" name="adjust_num" lay-verify="num" class="layui-input len-short">
|
||||
</div>
|
||||
<span class="word-aux">调整数额与当前积分数相加不能小于0</span>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">备注:</label>
|
||||
<div class="layui-input-block len-long">
|
||||
<textarea class="layui-textarea" name="remark" placeholder="请输入备注" maxlength="150"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<button class="layui-btn" lay-submit lay-filter="savePoint">确定</button>
|
||||
</div>
|
||||
|
||||
<input type="hidden" name="cluster_id" value="{{d.cluster_id}}" />
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<!-- 余额弹框html -->
|
||||
<script type="text/html" id="balance">
|
||||
<div class="layui-form">
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">调整数额(不可提现):</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="number" value="0" placeholder="请输入调整数额" name="adjust_num" lay-verify="num" class="layui-input len-short">
|
||||
</div>
|
||||
<span class="word-aux">调整数额与当前储值余额相加不能小于0</span>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">备注:</label>
|
||||
<div class="layui-input-block len-long">
|
||||
<textarea class="layui-textarea" name="remark" placeholder="请输入备注" maxlength="150"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<button class="layui-btn" lay-submit lay-filter="saveBalance">确定</button>
|
||||
</div>
|
||||
|
||||
<input type="hidden" name="cluster_id" value="{{d.cluster_id}}" />
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<script type='text/javascript' src='SHOP_JS/member_cluster.js'></script>
|
||||
<script type="text/javascript">
|
||||
var table, form, laytpl, laydate,
|
||||
repeat_flag = false,
|
||||
currentDate = new Date(),
|
||||
minDate = "";
|
||||
|
||||
layui.use(['form', 'laytpl', 'laydate'], function() {
|
||||
form = layui.form;
|
||||
laytpl = layui.laytpl;
|
||||
laydate = layui.laydate;
|
||||
currentDate.setDate(currentDate.getDate() - 7);
|
||||
form.render();
|
||||
|
||||
//注册开始时间
|
||||
laydate.render({
|
||||
elem: '#start_date',
|
||||
type: 'datetime'
|
||||
});
|
||||
|
||||
//注册结束时间
|
||||
laydate.render({
|
||||
elem: '#end_date',
|
||||
type: 'datetime'
|
||||
});
|
||||
|
||||
/**
|
||||
* 加载表格
|
||||
*/
|
||||
table = new Table({
|
||||
elem: '#cluster_list',
|
||||
url: ns.url("shop/membercluster/clusterList"),
|
||||
cols: [
|
||||
[
|
||||
{
|
||||
field: 'cluster_name',
|
||||
title: '群体名称',
|
||||
width: '25%',
|
||||
unresize: 'false'
|
||||
}, {
|
||||
field: 'member_num',
|
||||
title: '人数',
|
||||
width: '25%',
|
||||
unresize: 'false',
|
||||
templet: function (data) {
|
||||
return "<a href='"+ns.href("shop/member/memberList?cluster_id=" + data.cluster_id)+"'>"+"<span class='text-color'>"+data.member_num+"</span>"+"</a>";
|
||||
}
|
||||
}, {
|
||||
field: 'update_time',
|
||||
title: '更新时间',
|
||||
width: '25%',
|
||||
unresize: 'false',
|
||||
templet: function (data) {
|
||||
return ns.time_to_date(data.update_time);
|
||||
}
|
||||
}, {
|
||||
title: '操作',
|
||||
unresize: 'false',
|
||||
toolbar: '#operation',
|
||||
align : 'right'
|
||||
}
|
||||
]
|
||||
],
|
||||
});
|
||||
|
||||
/**
|
||||
* 监听工具栏操作
|
||||
*/
|
||||
table.tool(function(obj) {
|
||||
var data = obj.data;
|
||||
switch (obj.event) {
|
||||
case 'info': //编辑
|
||||
location.hash = ns.hash("shop/membercluster/editCluster?cluster_id=" + data.cluster_id);
|
||||
break;
|
||||
case 'delete': //删除
|
||||
delCluster(data.cluster_id);
|
||||
break;
|
||||
case 'adjust_balance': //调整余额
|
||||
adjustBalance(data);
|
||||
break;
|
||||
case 'adjust_integral': //调整积分
|
||||
adjustIntegral(data);
|
||||
break;
|
||||
case 'more': //更多
|
||||
$('.more-operation').css('display', 'none');
|
||||
$(obj.tr).find('.more-operation').css('display', 'block');
|
||||
break;
|
||||
case 'recive_coupon': //发放优惠券
|
||||
selectCoupon(data);
|
||||
break;
|
||||
case 'export_cluster_member': //导出相应会员
|
||||
exportClusterMember(data.cluster_id);
|
||||
break;
|
||||
case 'member': //查看会员
|
||||
window.open(ns.href("shop/member/memberList?cluster_id=" + data.cluster_id));
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
$(document).click(function(event) {
|
||||
if ($(event.target).attr('lay-event') != 'more' && $('.more-operation').not(':hidden').length) {
|
||||
$('.more-operation').css('display', 'none');
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*/
|
||||
function delCluster(cluster_ids) {
|
||||
|
||||
if (repeat_flag) return false;
|
||||
repeat_flag = true;
|
||||
|
||||
layer.confirm('确认删除会员群体?', function(index) {
|
||||
layer.close(index);
|
||||
$.ajax({
|
||||
url: ns.url("shop/membercluster/deleteCluster"),
|
||||
data: {cluster_ids},
|
||||
dataType: 'JSON',
|
||||
type: 'POST',
|
||||
success: function(res) {
|
||||
layer.msg(res.message);
|
||||
repeat_flag = false;
|
||||
|
||||
if (res.code == 0) {
|
||||
table.reload();
|
||||
}
|
||||
}
|
||||
});
|
||||
}, function () {
|
||||
layer.close();
|
||||
repeat_flag = false;
|
||||
});
|
||||
}
|
||||
|
||||
// 调整余额
|
||||
function adjustBalance(e){
|
||||
laytpl($("#balance").html()).render(e, function(html) {
|
||||
layer.open({
|
||||
title: '调整储值余额',
|
||||
skin: 'layer-tips-class',
|
||||
type: 1,
|
||||
area: ['800px'],
|
||||
content: html
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
//调整积分
|
||||
function adjustIntegral(e){
|
||||
laytpl($("#point").html()).render(e, function(html) {
|
||||
layer.open({
|
||||
title: '调整积分',
|
||||
skin: 'layer-tips-class',
|
||||
type: 1,
|
||||
area: ['800px'],
|
||||
content: html
|
||||
});
|
||||
});
|
||||
}
|
||||
var repeat_flag_point = false;
|
||||
form.on('submit(savePoint)', function(data) {
|
||||
if (repeat_flag_point) return false;
|
||||
repeat_flag_point = true;
|
||||
|
||||
if (data.field.adjust_num == 0) {
|
||||
layer.msg('调整数值不能为0');
|
||||
repeat_flag_point = false;
|
||||
return ;
|
||||
}
|
||||
if (data.field.adjust_num < 0) {
|
||||
layer.msg('积分不可以为负数');
|
||||
repeat_flag_point = false;
|
||||
return ;
|
||||
}
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: ns.url("shop/membercluster/sendPoint"),
|
||||
data: data.field,
|
||||
dataType: 'JSON',
|
||||
success: function(res) {
|
||||
layer.msg(res.message);
|
||||
repeat_flag_point = false;
|
||||
|
||||
if (res.code == 0) {
|
||||
layer.closeAll('page');
|
||||
table.reload();
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
var repeat_flag_balance = false;
|
||||
form.on('submit(saveBalance)', function(data) {
|
||||
if (repeat_flag_balance) return false;
|
||||
repeat_flag_balance = true;
|
||||
|
||||
if (data.field.adjust_num == 0) {
|
||||
layer.msg('调整数值不能为0');
|
||||
repeat_flag_balance = false;
|
||||
return ;
|
||||
}
|
||||
if (data.field.adjust_num < 0) {
|
||||
layer.msg('当前储值余额不可以为负数');
|
||||
repeat_flag_balance = false;
|
||||
return ;
|
||||
}
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: ns.url("shop/membercluster/sendBalance"),
|
||||
data: data.field,
|
||||
dataType: 'JSON',
|
||||
success: function(res) {
|
||||
layer.msg(res.message);
|
||||
repeat_flag_balance = false;
|
||||
|
||||
if (res.code == 0) {
|
||||
layer.closeAll('page');
|
||||
table.reload();
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* 导出群体内会员信息
|
||||
*/
|
||||
function exportClusterMember(cluster_id) {
|
||||
location.href = ns.url("shop/membercluster/exportClusterMember",{request_mode: 'download',"cluster_id":cluster_id});
|
||||
}
|
||||
|
||||
/**
|
||||
* 搜索功能
|
||||
*/
|
||||
form.on('submit(search)', function(data) {
|
||||
table.reload({
|
||||
page: {
|
||||
curr: 1
|
||||
},
|
||||
where: data.field
|
||||
});
|
||||
return false;
|
||||
});
|
||||
|
||||
$(".search-form").click(function() {
|
||||
$(".layui-form-search").show();
|
||||
$(this).hide();
|
||||
});
|
||||
|
||||
$(".form-hide-btn").click(function() {
|
||||
$(".layui-form-search").hide();
|
||||
$(".search-form").show();
|
||||
});
|
||||
|
||||
/**
|
||||
* 发放优惠券
|
||||
*/
|
||||
function selectCoupon(data) {
|
||||
laytpl($("#recive_coupon").html()).render(data, function(html) {
|
||||
layer_coupon = layer.open({
|
||||
title: '选择优惠券',
|
||||
skin: 'layer-tips-class',
|
||||
type: 1,
|
||||
area: ['700px', '542px'],
|
||||
content: html,
|
||||
});
|
||||
renderCoupon("", data.cluster_id);
|
||||
});
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- 发放优惠券弹框 -->
|
||||
<script type="text/html" id="recive_coupon">
|
||||
<div class="recive-coupon">
|
||||
<div class="coupon-modal">
|
||||
<div class="coupon-list all-coupon">
|
||||
<div class="title bg-color-gray">可选优惠券</div>
|
||||
<div class="box"></div>
|
||||
</div>
|
||||
<button class="add">添加</button>
|
||||
<div class="coupon-list selected-coupon">
|
||||
<div class="title bg-color-gray">已选优惠券</div>
|
||||
<div class="box"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-operation">
|
||||
<button class="layui-btn save-btn">确定</button>
|
||||
<button class="layui-btn layui-btn-primary" onclick="back()">返回</button>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
712
app/shop/view/membercluster/edit_cluster.html
Executable file
712
app/shop/view/membercluster/edit_cluster.html
Executable file
@@ -0,0 +1,712 @@
|
||||
<style>
|
||||
.layui-btn+.layui-btn {margin-left: 0;}
|
||||
.layui-btn {margin-right: 10px; margin-bottom: 15px;}
|
||||
.weight-list span{display: inline-block;width: 60px;line-height: 30px;border:1px solid #eee;border-radius: 4px;text-align: center;font-size: 12px;cursor: pointer;}
|
||||
.weight-list span.active{border-color: var(--base-color); }
|
||||
.weight-list span.disabled{background:#f1f1f1;cursor: not-allowed; }
|
||||
.form-wrap{padding-top: 0;}
|
||||
</style>
|
||||
|
||||
<div class="layui-form form-wrap">
|
||||
<!-- 基础上传 -->
|
||||
<div class="layui-card card-common card-brief">
|
||||
<div class="layui-card-header">
|
||||
<span class="card-title">基础设置</span>
|
||||
</div>
|
||||
<div class="layui-card-body">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="required">*</span>群体名称:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="cluster_name" lay-verify="required" autocomplete="off" value="{$cluster_info['cluster_name']}" class="layui-input len-mid">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-card card-common card-brief">
|
||||
<div class="layui-card-header">
|
||||
<span class="card-title">选项设置</span>
|
||||
</div>
|
||||
<div class="layui-card-body">
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">会员基本信息</label>
|
||||
<div class="layui-input-block">
|
||||
<button class="layui-btn layui-btn-primary cluster-btn {if $cluster_info['rule_arr']['basic']['member_level']['is_show'] == 1} border-color {/if}">会员等级<input type="hidden" value="0" /></button>
|
||||
<button class="layui-btn layui-btn-primary cluster-btn {if $cluster_info['rule_arr']['basic']['member_label']['is_show'] == 1} border-color {/if}">会员标签<input type="hidden" value="1" /></button>
|
||||
<button class="layui-btn layui-btn-primary cluster-btn {if $cluster_info['rule_arr']['basic']['sex']['is_show'] == 1} border-color {/if}">性别<input type="hidden" value="2" /></button>
|
||||
<button class="layui-btn layui-btn-primary cluster-btn {if $cluster_info['rule_arr']['basic']['birthday']['is_show'] == 1} border-color {/if}">生日<input type="hidden" value="3" /></button>
|
||||
<button class="layui-btn layui-btn-primary cluster-btn {if $cluster_info['rule_arr']['basic']['reg_time']['is_show'] == 1} border-color {/if}">注册时间<input type="hidden" value="4" /></button>
|
||||
<button class="layui-btn layui-btn-primary cluster-btn {if $cluster_info['rule_arr']['basic']['point']['is_show'] == 1} border-color {/if}">当前积分<input type="hidden" value="5" /></button>
|
||||
<button class="layui-btn layui-btn-primary cluster-btn {if $cluster_info['rule_arr']['basic']['balance']['is_show'] == 1} border-color {/if}">当前余额<input type="hidden" value="6" /></button>
|
||||
<button class="layui-btn layui-btn-primary cluster-btn {if $cluster_info['rule_arr']['basic']['growth']['is_show'] == 1} border-color {/if}">当前成长值<input type="hidden" value="7" /></button>
|
||||
<button class="layui-btn layui-btn-primary cluster-btn {if $cluster_info['rule_arr']['basic']['sign_days_series']['is_show'] == 1} border-color {/if}">连续签到次数<input type="hidden" value="8" /></button>
|
||||
<button class="layui-btn layui-btn-primary cluster-btn {if $cluster_info['rule_arr']['basic']['mobile']['is_show'] == 1} border-color {/if}">会员手机<input type="hidden" value="9" /></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">会员消费情况</label>
|
||||
<div class="layui-input-block">
|
||||
<button class="layui-btn layui-btn-primary cluster-btn {if $cluster_info['rule_arr']['consume']['order_money']['is_show'] == 1} border-color {/if}">付款金额<input type="hidden" value="10" /></button>
|
||||
<button class="layui-btn layui-btn-primary cluster-btn {if $cluster_info['rule_arr']['consume']['order_complete_money']['is_show'] == 1} border-color {/if}">消费金额<input type="hidden" value="11" /></button>
|
||||
<button class="layui-btn layui-btn-primary cluster-btn {if $cluster_info['rule_arr']['consume']['order_num']['is_show'] == 1} border-color {/if}">付款次数<input type="hidden" value="12" /></button>
|
||||
<button class="layui-btn layui-btn-primary cluster-btn {if $cluster_info['rule_arr']['consume']['order_complete_num']['is_show'] == 1} border-color {/if}">消费次数<input type="hidden" value="13" /></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-card card-common card-brief">
|
||||
<div class="layui-card-header">
|
||||
<span class="card-title">群体设置</span>
|
||||
</div>
|
||||
<div class="layui-card-body">
|
||||
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block">
|
||||
<table class="layui-table" id="goods" lay-skin="line" lay-size="lg">
|
||||
<colgroup>
|
||||
<col width="15%">
|
||||
<col width="20%">
|
||||
<col width="50%">
|
||||
<col width="10%">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>选项</th>
|
||||
<th>范围</th>
|
||||
<th>条件</th>
|
||||
<th class="operation">操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="cluster-content {if $cluster_info['rule_arr']['basic']['member_level']['is_show'] == 0} layui-hide {/if}">
|
||||
<td>会员等级</td>
|
||||
<td>
|
||||
<input type="radio" class="include" name="basic[member_level][include]" value="1" title="包含" {if condition="$cluster_info['rule_arr']['basic']['member_level']['include'] == 1"} checked {/if}>
|
||||
<input type="radio" class="include" name="basic[member_level][include]" value="2" title="不包含" {if condition="$cluster_info['rule_arr']['basic']['member_level']['include'] == 2"} checked {/if}>
|
||||
</td>
|
||||
<td>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" autocomplete="off" class="layui-input member-level-con" readonly onclick="settinglevel()" value="{$cluster_info['rule_arr']['basic']['member_level']['content_name']}">
|
||||
<input type="hidden" name="basic[member_level][content]" value="{$cluster_info['rule_arr']['basic']['member_level']['content']}">
|
||||
</div>
|
||||
<input type="hidden" class="is-show" name="basic[member_level][is_show]" value="{$cluster_info['rule_arr']['basic']['member_level']['is_show']}">
|
||||
</td>
|
||||
<td class='operation'>
|
||||
<div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="cluster-content {if $cluster_info['rule_arr']['basic']['member_label']['is_show'] == 0} layui-hide {/if}">
|
||||
<td>会员标签</td>
|
||||
<td>
|
||||
<input type="radio" class="include" name="basic[member_label][include]" value="1" title="包含" {if condition="$cluster_info['rule_arr']['basic']['member_label']['include'] == 1"} checked {/if}>
|
||||
<input type="radio" class="include" name="basic[member_label][include]" value="2" title="不包含" {if condition="$cluster_info['rule_arr']['basic']['member_label']['include'] == 2"} checked {/if}>
|
||||
</td>
|
||||
<td>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" autocomplete="off" class="layui-input member-label-con" readonly onclick="settinglabel()" value="{$cluster_info['rule_arr']['basic']['member_label']['content_name']}">
|
||||
<input type="hidden" name="basic[member_label][content]" value="{$cluster_info['rule_arr']['basic']['member_label']['content']}">
|
||||
</div>
|
||||
<input type="hidden" class="is-show" name="basic[member_label][is_show]" value="{$cluster_info['rule_arr']['basic']['member_label']['is_show']}">
|
||||
</td>
|
||||
<td class='operation'>
|
||||
<div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="cluster-content {if $cluster_info['rule_arr']['basic']['sex']['is_show'] == 0} layui-hide {/if}">
|
||||
<td>会员性别</td>
|
||||
<td>
|
||||
<input type="radio" class="include" name="basic[sex][include]" value="1" title="包含" {if condition="$cluster_info['rule_arr']['basic']['sex']['include'] == 1"} checked {/if}>
|
||||
<input type="radio" class="include" name="basic[sex][include]" value="2" title="不包含" {if condition="$cluster_info['rule_arr']['basic']['sex']['include'] == 2"} checked {/if}>
|
||||
</td>
|
||||
<td>
|
||||
<input type="checkbox" class="input-checkbox" lay-skin="primary" lay-filter="sex" name="basic[sex][content]" value="0" title="保密" {if in_array(0, $cluster_info['rule_arr']['basic']['sex']['content_arr'])}checked{/if}>
|
||||
<input type="checkbox" class="input-checkbox" lay-skin="primary" lay-filter="sex" name="basic[sex][content]" value="1" title="男" {if in_array(1, $cluster_info['rule_arr']['basic']['sex']['content_arr'])}checked{/if}>
|
||||
<input type="checkbox" class="input-checkbox" lay-skin="primary" lay-filter="sex" name="basic[sex][content]" value="2" title="女" {if in_array(2, $cluster_info['rule_arr']['basic']['sex']['content_arr'])}checked{/if}>
|
||||
<input type="hidden" class="is-show" name="basic[sex][is_show]" value="{$cluster_info['rule_arr']['basic']['sex']['is_show']}">
|
||||
</td>
|
||||
<td class='operation'>
|
||||
<div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="cluster-content {if $cluster_info['rule_arr']['basic']['birthday']['is_show'] == 0} layui-hide {/if}">
|
||||
<td>会员生日</td>
|
||||
<td>
|
||||
<input type="radio" class="include" name="basic[birthday][include]" value="1" title="包含" {if condition="$cluster_info['rule_arr']['basic']['birthday']['include'] == 1"} checked {/if}>
|
||||
<input type="radio" class="include" name="basic[birthday][include]" value="2" title="不包含" {if condition="$cluster_info['rule_arr']['basic']['birthday']['include'] == 2"} checked {/if}>
|
||||
</td>
|
||||
<td>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input layui-input-start" name="basic[birthday][start]" id="birthday_start_date" placeholder="请输入开始时间" autocomplete="off" readonly value="{$cluster_info['rule_arr']['basic']['birthday']['start']}">
|
||||
</div>
|
||||
<div class="layui-input-inline split">-</div>
|
||||
<div class="layui-input-inline end-time">
|
||||
<input type="text" class="layui-input layui-input-end" name="basic[birthday][end]" id="birthday_end_date" placeholder="请输入结束时间" autocomplete="off" readonly value="{$cluster_info['rule_arr']['basic']['birthday']['end']}">
|
||||
</div>
|
||||
<input type="hidden" class="is-show" name="basic[birthday][is_show]" value="{$cluster_info['rule_arr']['basic']['birthday']['is_show']}">
|
||||
</td>
|
||||
<td class='operation'>
|
||||
<div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="cluster-content {if $cluster_info['rule_arr']['basic']['reg_time']['is_show'] == 0} layui-hide {/if}">
|
||||
<td>注册时间</td>
|
||||
<td>
|
||||
<input type="radio" class="include" name="basic[reg_time][include]" value="1" title="包含" {if condition="$cluster_info['rule_arr']['basic']['reg_time']['include'] == 1"} checked {/if}>
|
||||
<input type="radio" class="include" name="basic[reg_time][include]" value="2" title="不包含" {if condition="$cluster_info['rule_arr']['basic']['reg_time']['include'] == 2"} checked {/if}>
|
||||
</td>
|
||||
<td>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input layui-input-start" name="basic[reg_time][start]" id="reg_start_date" placeholder="请输入开始时间" autocomplete="off" readonly value="{$cluster_info['rule_arr']['basic']['reg_time']['start']}">
|
||||
</div>
|
||||
<div class="layui-input-inline split">-</div>
|
||||
<div class="layui-input-inline end-time">
|
||||
<input type="text" class="layui-input layui-input-end" name="basic[reg_time][end]" id="reg_end_date" placeholder="请输入结束时间" autocomplete="off" readonly value="{$cluster_info['rule_arr']['basic']['reg_time']['end']}">
|
||||
</div>
|
||||
<input type="hidden" class="is-show" name="basic[reg_time][is_show]" value="{$cluster_info['rule_arr']['basic']['reg_time']['is_show']}">
|
||||
</td>
|
||||
<td class='operation'>
|
||||
<div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="cluster-content {if $cluster_info['rule_arr']['basic']['point']['is_show'] == 0} layui-hide {/if}">
|
||||
<td>当前积分</td>
|
||||
<td>
|
||||
<input type="radio" class="include" name="basic[point][include]" value="1" title="包含" {if condition="$cluster_info['rule_arr']['basic']['point']['include'] == 1"} checked {/if}>
|
||||
<input type="radio" class="include" name="basic[point][include]" value="2" title="不包含" {if condition="$cluster_info['rule_arr']['basic']['point']['include'] == 2"} checked {/if}>
|
||||
</td>
|
||||
<td>
|
||||
<div class="layui-input-inline">
|
||||
<input type="number" class="layui-input layui-input-start layui-input-int" name="basic[point][start]" placeholder="请输入积分最小值" autocomplete="off" min="0" value="{$cluster_info['rule_arr']['basic']['point']['start']}">
|
||||
</div>
|
||||
<div class="layui-input-inline split">-</div>
|
||||
<div class="layui-input-inline end-time">
|
||||
<input type="number" class="layui-input layui-input-end layui-input-int" name="basic[point][end]" placeholder="请输入积分最大值" autocomplete="off" min="0" value="{$cluster_info['rule_arr']['basic']['point']['end']}">
|
||||
</div>
|
||||
<input type="hidden" class="is-show" name="basic[point][is_show]" value="{$cluster_info['rule_arr']['basic']['point']['is_show']}">
|
||||
</td>
|
||||
<td class='operation'>
|
||||
<div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="cluster-content {if $cluster_info['rule_arr']['basic']['balance']['is_show'] == 0} layui-hide {/if}">
|
||||
<td>当前余额</td>
|
||||
<td>
|
||||
<input type="radio" class="include" name="basic[balance][include]" value="1" title="包含" {if condition="$cluster_info['rule_arr']['basic']['balance']['include'] == 1"} checked {/if}>
|
||||
<input type="radio" class="include" name="basic[balance][include]" value="2" title="不包含" {if condition="$cluster_info['rule_arr']['basic']['balance']['include'] == 2"} checked {/if}>
|
||||
</td>
|
||||
<td>
|
||||
<div class="layui-input-inline">
|
||||
<input type="number" class="layui-input layui-input-start layui-input-flo" name="basic[balance][start]" placeholder="请输入当前余额最小值" autocomplete="off" min="0" value="{$cluster_info['rule_arr']['basic']['balance']['start']}">
|
||||
</div>
|
||||
<div class="layui-input-inline split">-</div>
|
||||
<div class="layui-input-inline end-time">
|
||||
<input type="number" class="layui-input layui-input-end layui-input-flo" name="basic[balance][end]" placeholder="请输入当前余额最大值" autocomplete="off" min="0" value="{$cluster_info['rule_arr']['basic']['balance']['end']}">
|
||||
</div>
|
||||
<input type="hidden" class="is-show" name="basic[balance][is_show]" value="{$cluster_info['rule_arr']['basic']['balance']['is_show']}">
|
||||
</td>
|
||||
<td class='operation'>
|
||||
<div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="cluster-content {if $cluster_info['rule_arr']['basic']['growth']['is_show'] == 0} layui-hide {/if}">
|
||||
<td>当前成长值</td>
|
||||
<td>
|
||||
<input type="radio" class="include" name="basic[growth][include]" value="1" title="包含" {if condition="$cluster_info['rule_arr']['basic']['growth']['include'] == 1"} checked {/if}>
|
||||
<input type="radio" class="include" name="basic[growth][include]" value="2" title="不包含" {if condition="$cluster_info['rule_arr']['basic']['growth']['include'] == 2"} checked {/if}>
|
||||
</td>
|
||||
<td>
|
||||
<div class="layui-input-inline">
|
||||
<input type="number" class="layui-input layui-input-start layui-input-flo" name="basic[growth][start]" placeholder="请输入当前成长值最小值" autocomplete="off" min="0" value="{$cluster_info['rule_arr']['basic']['growth']['start']}">
|
||||
</div>
|
||||
<div class="layui-input-inline split">-</div>
|
||||
<div class="layui-input-inline end-time">
|
||||
<input type="number" class="layui-input layui-input-end layui-input-flo" name="basic[growth][end]" placeholder="请输入当前成长值最大值" autocomplete="off" min="0" value="{$cluster_info['rule_arr']['basic']['growth']['end']}">
|
||||
</div>
|
||||
<input type="hidden" class="is-show" name="basic[growth][is_show]" value="{$cluster_info['rule_arr']['basic']['growth']['is_show']}">
|
||||
</td>
|
||||
<td class='operation'>
|
||||
<div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="cluster-content {if $cluster_info['rule_arr']['basic']['sign_days_series']['is_show'] == 0} layui-hide {/if}">
|
||||
<td>签到次数</td>
|
||||
<td>
|
||||
<input type="radio" class="include" name="basic[sign_days_series][include]" value="1" title="包含" {if condition="$cluster_info['rule_arr']['basic']['sign_days_series']['include'] == 1"} checked {/if}>
|
||||
<input type="radio" class="include" name="basic[sign_days_series][include]" value="2" title="不包含" {if condition="$cluster_info['rule_arr']['basic']['sign_days_series']['include'] == 2"} checked {/if}>
|
||||
</td>
|
||||
<td>
|
||||
<div class="layui-input-inline">
|
||||
<input type="number" class="layui-input layui-input-start layui-input-int" name="basic[sign_days_series][start]" placeholder="请输入签到次数最小值" autocomplete="off" min="0" value="{$cluster_info['rule_arr']['basic']['sign_days_series']['start']}">
|
||||
</div>
|
||||
<div class="layui-input-inline split">-</div>
|
||||
<div class="layui-input-inline end-time">
|
||||
<input type="number" class="layui-input layui-input-end layui-input-int" name="basic[sign_days_series][end]" placeholder="请输入签到次数最大值" autocomplete="off" min="0" value="{$cluster_info['rule_arr']['basic']['sign_days_series']['end']}">
|
||||
</div>
|
||||
<input type="hidden" class="is-show" name="basic[sign_days_series][is_show]" value="{$cluster_info['rule_arr']['basic']['sign_days_series']['is_show']}">
|
||||
</td>
|
||||
<td class='operation'>
|
||||
<div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="cluster-content {if $cluster_info['rule_arr']['basic']['mobile']['is_show'] == 0} layui-hide {/if}">
|
||||
<td>会员手机</td>
|
||||
<td>
|
||||
<input type="radio" class="include" name="basic[mobile][include]" value="1" title="包含" {if condition="$cluster_info['rule_arr']['basic']['mobile']['include'] == 1"} checked {/if}>
|
||||
<input type="radio" class="include" name="basic[mobile][include]" value="2" title="不包含" {if condition="$cluster_info['rule_arr']['basic']['mobile']['include'] == 2"} checked {/if}>
|
||||
</td>
|
||||
<td>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="basic[mobile][content]" lay-verify="flo" autocomplete="off" class="layui-input member-mobile" value="{$cluster_info['rule_arr']['basic']['mobile']['content']}">
|
||||
</div>
|
||||
<input type="hidden" class="is-show" name="basic[mobile][is_show]" value="{$cluster_info['rule_arr']['basic']['mobile']['is_show']}">
|
||||
</td>
|
||||
<td class='operation'>
|
||||
<div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="cluster-content {if $cluster_info['rule_arr']['consume']['order_money']['is_show'] == 0} layui-hide {/if}">
|
||||
<td>付款金额</td>
|
||||
<td>
|
||||
<input type="radio" class="include" name="consume[order_money][include]" value="1" title="包含" {if condition="$cluster_info['rule_arr']['consume']['order_money']['include'] == 1"} checked {/if}>
|
||||
<input type="radio" class="include" name="consume[order_money][include]" value="2" title="不包含" {if condition="$cluster_info['rule_arr']['consume']['order_money']['include'] == 2"} checked {/if}>
|
||||
</td>
|
||||
<td>
|
||||
<div class="layui-input-inline">
|
||||
<input type="number" class="layui-input layui-input-start layui-input-flo" name="consume[order_money][start]" placeholder="请输入付款金额最小值" autocomplete="off" min="0" value="{$cluster_info['rule_arr']['consume']['order_money']['start']}">
|
||||
</div>
|
||||
<div class="layui-input-inline split">-</div>
|
||||
<div class="layui-input-inline end-time">
|
||||
<input type="number" class="layui-input layui-input-end layui-input-flo" name="consume[order_money][end]" placeholder="请输入付款金额最大值" autocomplete="off" min="0" value="{$cluster_info['rule_arr']['consume']['order_money']['end']}">
|
||||
</div>
|
||||
<input type="hidden" class="is-show" name="consume[order_money][is_show]" value="{$cluster_info['rule_arr']['consume']['order_money']['is_show']}">
|
||||
</td>
|
||||
<td class='operation'>
|
||||
<div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="cluster-content {if $cluster_info['rule_arr']['consume']['order_complete_money']['is_show'] == 0} layui-hide {/if}">
|
||||
<td>消费金额</td>
|
||||
<td>
|
||||
<input type="radio" class="include" name="consume[order_complete_money][include]" value="1" title="包含" {if condition="$cluster_info['rule_arr']['consume']['order_complete_money']['include'] == 1"} checked {/if}>
|
||||
<input type="radio" class="include" name="consume[order_complete_money][include]" value="2" title="不包含" {if condition="$cluster_info['rule_arr']['consume']['order_complete_money']['include'] == 2"} checked {/if}>
|
||||
</td>
|
||||
<td>
|
||||
<div class="layui-input-inline">
|
||||
<input type="number" class="layui-input layui-input-start layui-input-flo" name="consume[order_complete_money][start]" placeholder="请输入消费金额最小值" autocomplete="off" min="0" value="{$cluster_info['rule_arr']['consume']['order_complete_money']['start']}">
|
||||
</div>
|
||||
<div class="layui-input-inline split">-</div>
|
||||
<div class="layui-input-inline end-time">
|
||||
<input type="number" class="layui-input layui-input-end layui-input-flo" name="consume[order_complete_money][end]" placeholder="请输入消费金额最大值" autocomplete="off" min="0" value="{$cluster_info['rule_arr']['consume']['order_complete_money']['end']}">
|
||||
</div>
|
||||
<input type="hidden" class="is-show" name="consume[order_complete_money][is_show]" value="{$cluster_info['rule_arr']['consume']['order_complete_money']['is_show']}">
|
||||
</td>
|
||||
<td class='operation'>
|
||||
<div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="cluster-content {if $cluster_info['rule_arr']['consume']['order_num']['is_show'] == 0} layui-hide {/if}">
|
||||
<td>付款次数</td>
|
||||
<td>
|
||||
<input type="radio" class="include" name="consume[order_num][include]" value="1" title="包含" {if condition="$cluster_info['rule_arr']['consume']['order_num']['include'] == 1"} checked {/if}>
|
||||
<input type="radio" class="include" name="consume[order_num][include]" value="2" title="不包含" {if condition="$cluster_info['rule_arr']['consume']['order_num']['include'] == 2"} checked {/if}>
|
||||
</td>
|
||||
<td>
|
||||
<div class="layui-input-inline">
|
||||
<input type="number" class="layui-input layui-input-start layui-input-int" name="consume[order_num][start]" placeholder="请输入付款次数最小值" autocomplete="off" min="0" value="{$cluster_info['rule_arr']['consume']['order_num']['start']}">
|
||||
</div>
|
||||
<div class="layui-input-inline split">-</div>
|
||||
<div class="layui-input-inline end-time">
|
||||
<input type="number" class="layui-input layui-input-end layui-input-int" name="consume[order_num][end]" placeholder="请输入付款次数最大值" autocomplete="off" min="0" value="{$cluster_info['rule_arr']['consume']['order_num']['end']}">
|
||||
</div>
|
||||
<input type="hidden" class="is-show" name="consume[order_num][is_show]" value="{$cluster_info['rule_arr']['consume']['order_num']['is_show']}">
|
||||
</td>
|
||||
<td class='operation'>
|
||||
<div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="cluster-content {if $cluster_info['rule_arr']['consume']['order_complete_num']['is_show'] == 0} layui-hide {/if}">
|
||||
<td>消费次数</td>
|
||||
<td>
|
||||
<input type="radio" class="include" name="consume[order_complete_num][include]" value="1" title="包含" {if condition="$cluster_info['rule_arr']['consume']['order_complete_num']['include'] == 1"} checked {/if}>
|
||||
<input type="radio" class="include" name="consume[order_complete_num][include]" value="2" title="不包含" {if condition="$cluster_info['rule_arr']['consume']['order_complete_num']['include'] == 2"} checked {/if}>
|
||||
</td>
|
||||
<td>
|
||||
<div class="layui-input-inline">
|
||||
<input type="number" class="layui-input layui-input-start layui-input-int" name="consume[order_complete_num][start]" placeholder="请输入消费次数最小值" autocomplete="off" min="0" value="{$cluster_info['rule_arr']['consume']['order_complete_num']['start']}">
|
||||
</div>
|
||||
<div class="layui-input-inline split">-</div>
|
||||
<div class="layui-input-inline end-time">
|
||||
<input type="number" class="layui-input layui-input-end layui-input-int" name="consume[order_complete_num][end]" placeholder="请输入消费次数最大值" autocomplete="off" min="0" value="{$cluster_info['rule_arr']['consume']['order_complete_num']['end']}">
|
||||
</div>
|
||||
<input type="hidden" class="is-show" name="consume[order_complete_num][is_show]" value="{$cluster_info['rule_arr']['consume']['order_complete_num']['is_show']}">
|
||||
</td>
|
||||
<td class='operation'>
|
||||
<div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row" style="margin-left: 110px;">
|
||||
<button class="layui-btn" lay-submit lay-filter="calculate">计算会员数</button>
|
||||
<div>符合条件的群体人数: <span class="member_num text-color">{$cluster_info['member_num']}</span> 人,点击计算按钮可查看符合条件的群体人数。</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-card-body">
|
||||
|
||||
<div class="form-row">
|
||||
<!-- 获取cluster_id -->
|
||||
<input type="hidden" name="cluster_id" id="cluster_id" lay-verify="required" value="{$cluster_info.cluster_id}" class="layui-input">
|
||||
<button class="layui-btn" lay-submit lay-filter="save">保存</button>
|
||||
<button class="layui-btn layui-btn-primary" onclick="backMemberClusterList()">返回</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(function(){
|
||||
$('.weight-list span').not('.disabled').eq(0).addClass("active");
|
||||
|
||||
$(".cluster-content").each(function() {
|
||||
if ($(this).hasClass("layui-hide")) {
|
||||
$(this).find("input").removeAttr("lay-verify");
|
||||
} else {
|
||||
$(this).find(".layui-input-inline input.layui-input").attr("lay-verify", "notnull");
|
||||
$(this).find(".layui-input-inline input.layui-input-start").attr("lay-verify", "notnull|start");
|
||||
$(this).find(".layui-input-inline input.layui-input-end").attr("lay-verify", "notnull|end");
|
||||
$(this).find(".layui-input-inline input[type='number']").attr("lay-verify", "notnull|end|num");
|
||||
$(this).find(".layui-input-inline input.member-mobile").attr("lay-verify", "notnull|len");
|
||||
$(this).find(".layui-input-inline input.layui-input-int").attr("lay-verify", "notnull|end|num|int");
|
||||
$(this).find(".layui-input-inline input.layui-input-flo").attr("lay-verify", "notnull|end|num|flo");
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
var form, laytpl, laydate, isClick = false, member_num = 0, member_ids = '', sexVal = [];
|
||||
|
||||
layui.use(['form', 'laytpl', 'laydate'], function() {
|
||||
form = layui.form;
|
||||
laytpl = layui.laytpl;
|
||||
laydate = layui.laydate;
|
||||
form.render();
|
||||
|
||||
//生日开始时间
|
||||
laydate.render({
|
||||
elem: '#birthday_start_date',
|
||||
type: 'datetime'
|
||||
});
|
||||
|
||||
//生日结束时间
|
||||
laydate.render({
|
||||
elem: '#birthday_end_date',
|
||||
type: 'datetime'
|
||||
});
|
||||
|
||||
//注册开始时间
|
||||
laydate.render({
|
||||
elem: '#reg_start_date',
|
||||
type: 'datetime'
|
||||
});
|
||||
|
||||
//注册结束时间
|
||||
laydate.render({
|
||||
elem: '#reg_end_date',
|
||||
type: 'datetime'
|
||||
});
|
||||
|
||||
$(".weight-list span").click(function() {
|
||||
if (!$(this).hasClass("disabled")) {
|
||||
$(this).addClass("active");
|
||||
$(this).siblings().removeClass("active");
|
||||
}
|
||||
});
|
||||
|
||||
$(".cluster-btn").click(function() {
|
||||
var _index = $(this).children().val();
|
||||
|
||||
if (!$(this).hasClass("border-color")) {
|
||||
$(this).addClass("border-color");
|
||||
$(".cluster-content").eq(_index).removeClass("layui-hide");
|
||||
$(".cluster-content").eq(_index).find(".is-show").val(1);
|
||||
$(".cluster-content").eq(_index).find(".layui-input-inline input.layui-input").attr("lay-verify", "notnull");
|
||||
$(".cluster-content").eq(_index).find(".layui-input-inline input.layui-input-start").attr("lay-verify", "notnull|start");
|
||||
$(".cluster-content").eq(_index).find(".layui-input-inline input.layui-input-end").attr("lay-verify", "notnull|end");
|
||||
$(".cluster-content").eq(_index).find(".layui-input-inline input[type='number']").attr("lay-verify", "notnull|end|num");
|
||||
$(".cluster-content").eq(_index).find(".layui-input-inline input.member-mobile").attr("lay-verify", "notnull|len");
|
||||
$(".cluster-content").eq(_index).find(".layui-input-inline input.layui-input-int.layui-input-start").attr("lay-verify", "notnull|start|num|int");
|
||||
$(".cluster-content").eq(_index).find(".layui-input-inline input.layui-input-flo.layui-input-end").attr("lay-verify", "notnull|end|num|flo");
|
||||
}
|
||||
//点击了需要重新计算
|
||||
// isClick = false;
|
||||
|
||||
form.render();
|
||||
});
|
||||
|
||||
form.on('submit(calculate)', function(data) {
|
||||
// isClick = true;
|
||||
var rule_json = resetData(data.field);
|
||||
|
||||
if (rule_json.basic.sex.is_show == 1) {
|
||||
var flag = false;
|
||||
$(".input-checkbox").each(function() {
|
||||
var isChecked = $(this).is(":checked");
|
||||
if (isChecked) {
|
||||
flag = true;
|
||||
}
|
||||
});
|
||||
if (!flag) {
|
||||
layer.msg("请选择性别", {icon: 5, anim: 6});
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url: ns.url("shop/membercluster/calculate"),
|
||||
type: "POST",
|
||||
dataType: "JSON",
|
||||
data: {
|
||||
rule_json: JSON.stringify(rule_json)
|
||||
},
|
||||
success: function(res) {
|
||||
if (res.code >= 0) {
|
||||
member_num = res.data.member_num;
|
||||
member_ids = res.data.member_ids;
|
||||
$(".member_num").html(member_num);
|
||||
}
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
form.on('submit(save)', function(data) {
|
||||
// if (isClick) {
|
||||
var rule_json = resetData(data.field);
|
||||
$.ajax({
|
||||
url: ns.url("shop/membercluster/editCluster"),
|
||||
type: "POST",
|
||||
dataType: "JSON",
|
||||
data: {
|
||||
cluster_name: data.field.cluster_name,
|
||||
rule_json: JSON.stringify(rule_json),
|
||||
cluster_id: $("#cluster_id").val()
|
||||
},
|
||||
success: function(res) {
|
||||
layer.msg(res.message);
|
||||
if (res.code >= 0) {
|
||||
location.hash = ns.hash("shop/membercluster/clusterList")
|
||||
}
|
||||
}
|
||||
})
|
||||
// } else {
|
||||
// layer.msg("请先计算会员数", {icon: 5, anim: 6});
|
||||
// }
|
||||
});
|
||||
|
||||
form.on('submit(setlabel)', function(obj) {
|
||||
var field = obj.field;
|
||||
var arr_id = [], temp = [];
|
||||
|
||||
for (var prop in field) {
|
||||
arr_id.push(field[prop]);
|
||||
$("#set_label").find("input").each(function() {
|
||||
var label_id = $(this).attr("data-id");
|
||||
if (field[prop] == label_id) {
|
||||
temp.push($(this).attr("title"))
|
||||
}
|
||||
})
|
||||
}
|
||||
$(".member-label-con").val(temp);
|
||||
$("input[name='basic[member_label][content]']").val(arr_id);
|
||||
layer.closeAll('page');
|
||||
});
|
||||
|
||||
form.on('submit(setlevel)', function(obj) {
|
||||
var field = obj.field;
|
||||
var arr_id = [], temp = [];
|
||||
|
||||
for (var prop in field) {
|
||||
arr_id.push(field[prop]);
|
||||
$("#set_level").find("input").each(function() {
|
||||
var level_id = $(this).attr("data-id");
|
||||
if (field[prop] == level_id) {
|
||||
temp.push($(this).attr("title"))
|
||||
}
|
||||
})
|
||||
}
|
||||
$(".member-level-con").val(temp);
|
||||
$("input[name='basic[member_level][content]']").val(arr_id);
|
||||
layer.closeAll('page');
|
||||
});
|
||||
|
||||
/**
|
||||
* 表单验证
|
||||
*/
|
||||
form.verify({
|
||||
notnull: function(value, item) {
|
||||
var str = $(item).parents(".cluster-content").find("td").eq(0).text();
|
||||
if (value == '') {
|
||||
return str + '不能为空';
|
||||
}
|
||||
},
|
||||
end: function(value, item) {
|
||||
var start = $(item).parents(".cluster-content").find(".layui-input-start").val();
|
||||
var str1 = $(item).attr("placeholder").slice(3);
|
||||
var str2 = $(item).parents(".cluster-content").find(".layui-input-start").attr("placeholder").slice(3);
|
||||
if (Number(value) < Number(start)) {
|
||||
return str1 + "不能小于" + str2;
|
||||
}
|
||||
},
|
||||
num: function(value, item) {
|
||||
var str = $(item).parents(".cluster-content").find("td").eq(0).text();
|
||||
if (value < 0) {
|
||||
return str + "不能小于0";
|
||||
}
|
||||
},
|
||||
len: function(value, item) {
|
||||
if (value.length > 11) {
|
||||
return "手机号为11位";
|
||||
}
|
||||
},
|
||||
int: function(value, item) {
|
||||
var str = $(item).parents(".cluster-content").find("td").eq(0).text();
|
||||
if (value % 1 != 0) {
|
||||
return str + "不能为小数";
|
||||
}
|
||||
},
|
||||
flo: function(value, item) {
|
||||
var str = $(item).parents(".cluster-content").find("td").eq(0).text();
|
||||
if (value * 100 % 1 != 0) {
|
||||
return str + "最多保留两位小数";
|
||||
}
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
/**
|
||||
* 设置标签
|
||||
*/
|
||||
function settinglabel() {
|
||||
|
||||
laytpl($("#label_change").html()).render({}, function(html) {
|
||||
layer_label = layer.open({
|
||||
title: '设置标签',
|
||||
skin: 'layer-tips-class',
|
||||
type: 1,
|
||||
area: ['450px','260px'],
|
||||
content: html,
|
||||
});
|
||||
});
|
||||
|
||||
form.render();
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置等级
|
||||
*/
|
||||
function settinglevel() {
|
||||
laytpl($("#level_change").html()).render({}, function(html) {
|
||||
layer_level = layer.open({
|
||||
title: '设置等级',
|
||||
skin: 'layer-tips-class',
|
||||
type: 1,
|
||||
area: ['450px','260px'],
|
||||
content: html,
|
||||
});
|
||||
});
|
||||
|
||||
form.render();
|
||||
}
|
||||
|
||||
function delDiv(e) {
|
||||
var _len = $(e).parents(".cluster-content").index();
|
||||
$(e).parents(".cluster-content").addClass("layui-hide");
|
||||
$(e).parents(".cluster-content").find("input").removeAttr("lay-verify");
|
||||
$(e).parents(".cluster-content").find(".layui-input-inline input").val("");
|
||||
$(e).parents(".cluster-content").find(".is-show").val(0);
|
||||
$(e).parents(".cluster-content").find("input[name='basic[sex][content]']").prop("checked",false);
|
||||
$(".cluster-btn").eq(_len).removeClass("border-color");
|
||||
}
|
||||
|
||||
function closeLabel() {
|
||||
layer.close(layer_label);
|
||||
}
|
||||
|
||||
function closeLevel() {
|
||||
layer.close(layer_level);
|
||||
}
|
||||
|
||||
function backMemberClusterList() {
|
||||
location.hash = ns.hash("shop/membercluster/clusterList");
|
||||
}
|
||||
|
||||
// 数据结构
|
||||
function resetData(data) {
|
||||
var rule_json = {};
|
||||
|
||||
$.each(data, function(index, item) {
|
||||
if (index.indexOf("[") != -1) {
|
||||
var arr = index.split("[");
|
||||
if (rule_json[arr[0]] == undefined) {
|
||||
rule_json[arr[0]] = {};
|
||||
}
|
||||
var name = arr[1].slice(0, arr[1].length - 1);
|
||||
if (rule_json[arr[0]][name] == undefined) {
|
||||
rule_json[arr[0]][name] = {};
|
||||
}
|
||||
var attr = arr[2].slice(0, arr[2].length - 1);
|
||||
rule_json[arr[0]][name][attr] = item;
|
||||
}
|
||||
})
|
||||
|
||||
sexVal = [];
|
||||
$("input[name='basic[sex][content]']:checked").each(function (index, item) {
|
||||
sexVal.push($(this).val());
|
||||
});
|
||||
|
||||
rule_json.basic.sex.content = sexVal.toString();
|
||||
return rule_json;
|
||||
}
|
||||
</script>
|
||||
|
||||
<!-- 设置标签弹框html -->
|
||||
<script type="text/html" id="label_change">
|
||||
<div class="layui-form member-form" id="set_label" lay-filter="form">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label sm">标签:</label>
|
||||
<div class="layui-input-block">
|
||||
{foreach $member_label_list as $member_label_list_k => $member_label_list_v}
|
||||
<input type="checkbox" name="label_id{$member_label_list_v.label_id}" data-id="{$member_label_list_v.label_id}" value="{$member_label_list_v.label_id}" title="{$member_label_list_v.label_name}" lay-skin="primary">
|
||||
{/foreach}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row sm">
|
||||
<button class="layui-btn" lay-submit lay-filter="setlabel">确定</button>
|
||||
<button class="layui-btn layui-btn-primary" onclick="closeLabel()">返回</button>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<!-- 设置标签弹框html -->
|
||||
<script type="text/html" id="level_change">
|
||||
<div class="layui-form member-form" id="set_level" lay-filter="form">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label sm">等级:</label>
|
||||
<div class="layui-input-block">
|
||||
{foreach $member_level_list as $member_level_list_k => $member_level_list_v}
|
||||
<input type="checkbox" name="level_id{$member_level_list_v.level_id}" data-id="{$member_level_list_v.level_id}" value="{$member_level_list_v.level_id}" title="{$member_level_list_v.level_name}" lay-skin="primary">
|
||||
{/foreach}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row sm">
|
||||
<button class="layui-btn" lay-submit lay-filter="setlevel">确定</button>
|
||||
<button class="layui-btn layui-btn-primary" onclick="closeLevel()">返回</button>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
Reference in New Issue
Block a user