初始上传
This commit is contained in:
173
addon/scenefestival/shop/view/record/lists.html
Executable file
173
addon/scenefestival/shop/view/record/lists.html
Executable file
@@ -0,0 +1,173 @@
|
||||
<div class="layui-collapse tips-wrap">
|
||||
<div class="layui-colla-item">
|
||||
<ul class="layui-colla-content layui-show">
|
||||
<li>活动名称:{$game_info.activity_name} ({:date('Y-m-d H:i:s',$game_info.start_time)} -- {:date('Y-m-d H:i:s',$game_info.end_time)}) </li>
|
||||
<li>参与条件:{if $game_info.level_id != 0} {$game_info.level_name} {else/}全体会员 {/if}</li>
|
||||
<li>奖励发放时间:{if $game_info.join_type == 1} 节日当天{else/} 节日前{$game_info.join_frequency}天{/if}</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 搜索框 -->
|
||||
<div class="single-filter-box">
|
||||
|
||||
<div class="layui-form">
|
||||
<div class="layui-inline">
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="member_nick_name" placeholder="会员昵称" class="layui-input" autocomplete="off">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="start_time" id="start_time" placeholder="开始时间" class="layui-input" autocomplete="off" readonly>
|
||||
<i class=" iconrili iconfont calendar"></i>
|
||||
</div>
|
||||
<div class="layui-input-inline end-time">
|
||||
<input type="text" name="end_time" id="end_time" placeholder="结束时间" class="layui-input" autocomplete="off" readonly>
|
||||
<i class=" iconrili iconfont calendar"></i>
|
||||
</div>
|
||||
<button class="layui-btn layui-btn-primary" lay-submit lay-filter="search">搜索</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="layui-tab table-tab" lay-filter="record_tab">
|
||||
<!-- <ul class="layui-tab-title">-->
|
||||
<!-- <li class="layui-this" data-status="">全部</li>-->
|
||||
<!-- <li data-status="1">中奖</li>-->
|
||||
<!-- <li data-status="0">未中奖</li>-->
|
||||
<!-- </ul>-->
|
||||
<div class="layui-tab-content">
|
||||
<!-- 列表 -->
|
||||
<table id="record_list" lay-filter="record_list"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var game_id = "{$festival_id}";
|
||||
layui.use(['form', 'element','laydate'], function() {
|
||||
var table,
|
||||
form = layui.form,
|
||||
laydate = layui.laydate,
|
||||
element = layui.element;
|
||||
form.render();
|
||||
|
||||
//开始时间
|
||||
laydate.render({
|
||||
elem: '#start_time' //指定元素
|
||||
});
|
||||
//结束时间
|
||||
laydate.render({
|
||||
elem: '#end_time' //指定元素
|
||||
});
|
||||
|
||||
element.on('tab(record_tab)', function() {
|
||||
table.reload({
|
||||
page: {
|
||||
curr: 1
|
||||
},
|
||||
where: {
|
||||
'status': this.getAttribute('data-status')
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
table = new Table({
|
||||
elem: '#record_list',
|
||||
url: ns.url("scenefestival://shop/record/lists"),
|
||||
where:{
|
||||
'festival_id':game_id
|
||||
},
|
||||
cols: [
|
||||
[{
|
||||
field:'member_nick_name',
|
||||
title: '会员昵称',
|
||||
unresize: 'false',
|
||||
width:'20%'
|
||||
},
|
||||
{
|
||||
field: '',
|
||||
title: '奖励积分',
|
||||
width:'20%',
|
||||
unresize: 'false',
|
||||
templet: function(data){
|
||||
var str = data.award_type;
|
||||
if(str.search("point") != -1 ){
|
||||
return '奖励积分' + "【"+data.point+"积分】";
|
||||
}else {
|
||||
return '--';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
field: '',
|
||||
title: '奖励红包',
|
||||
width:'20%',
|
||||
unresize: 'false',
|
||||
templet: function(data){
|
||||
var str = data.award_type;
|
||||
if(str.search("balance") != -1 ){
|
||||
if(data.balance_type == 0){
|
||||
return '奖励储值余额' + "【"+data.balance+"元】";
|
||||
}else{
|
||||
return '奖励现金余额' + "【"+data.balance_money+"元】";
|
||||
}
|
||||
}else {
|
||||
return '--';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
field: '',
|
||||
title: '奖励优惠券',
|
||||
width:'20%',
|
||||
unresize: 'false',
|
||||
templet: function(data){
|
||||
var str = data.award_type;
|
||||
if(str.search("coupon") != -1 ){
|
||||
return '奖励优惠券' + "【"+data.coupon_name+"】";
|
||||
}else {
|
||||
return '--';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
title: '领取时间',
|
||||
unresize: 'false',
|
||||
templet: function(data){
|
||||
return ns.time_to_date(data.receive_time);
|
||||
}
|
||||
}]
|
||||
]
|
||||
|
||||
});
|
||||
|
||||
/**
|
||||
* 搜索功能
|
||||
*/
|
||||
form.on('submit(search)', function(data) {
|
||||
table.reload({
|
||||
page: {
|
||||
curr: 1
|
||||
},
|
||||
where: data.field
|
||||
});
|
||||
});
|
||||
|
||||
//监听Tab切换
|
||||
element.on('tab(status)', function(data) {
|
||||
var status = $(this).attr("data-status");
|
||||
table.reload({
|
||||
page: {
|
||||
curr: 1
|
||||
},
|
||||
where: {
|
||||
'status': status
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
587
addon/scenefestival/shop/view/scenefestival/add.html
Executable file
587
addon/scenefestival/shop/view/scenefestival/add.html
Executable file
@@ -0,0 +1,587 @@
|
||||
<link rel="stylesheet" href="SHOP_CSS/game.css">
|
||||
<style>
|
||||
.choose-item > span {
|
||||
display: inline-block;
|
||||
padding: 0 10px;
|
||||
height: 36px;
|
||||
line-height: 36px;
|
||||
text-align: center;
|
||||
border-radius: 4px;
|
||||
border: 1px solid #ededed;
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
margin: 5px 0;
|
||||
margin-right: 11px;
|
||||
}
|
||||
.choose-item > span i {
|
||||
position: absolute;
|
||||
bottom: -5px;
|
||||
right: -6px;
|
||||
border-radius: 50%;
|
||||
color: #FFF;
|
||||
font-size: 14px;
|
||||
line-height: 1;
|
||||
}
|
||||
.holiday-active {
|
||||
color: #fff;
|
||||
}
|
||||
.holiday-hidden {
|
||||
border: none;
|
||||
width: .1px;
|
||||
}
|
||||
|
||||
.coupon-box .layui-form{
|
||||
padding: 0!important;
|
||||
}
|
||||
|
||||
.layui-layer-page .layui-layer-content{
|
||||
overflow: auto !important;
|
||||
}
|
||||
|
||||
.del-btn {
|
||||
cursor: pointer;
|
||||
}
|
||||
.level-equity .layui-input {
|
||||
display: inline-block;
|
||||
}
|
||||
.gods-box table:first-of-type{
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.gods-box table:last-of-type{
|
||||
margin-top: 0;
|
||||
display: block;
|
||||
max-height: 323px;
|
||||
overflow: auto;
|
||||
}
|
||||
.coupon-box .single-filter-box{
|
||||
padding-top: 0;
|
||||
}
|
||||
.coupon-box .select-coupon-btn{
|
||||
margin-top: 10px;
|
||||
}
|
||||
.layui-layer-page .layui-layer-content{
|
||||
overflow-y: scroll!important;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div class="layui-form">
|
||||
<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="activity_name" lay-verify="required" maxlength="15" placeholder="最多可填写15个字" autocomplete="off" class="layui-input len-long">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="required">*</span>活动时间:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="join_time" value="1" lay-verify="required" lay-filter="join_time" title="传统节日" checked>
|
||||
<input type="radio" name="join_time" value="0" lay-verify="required" lay-filter="join_time" title="自定义节日">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-hide" id="festival_name">
|
||||
<label class="layui-form-label"><span class="required">*</span>节日名称:</label>
|
||||
<div class="layui-inline">
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" maxlength="15" placeholder="最多可填写15个字" name="festival_name" class="layui-input len-mid" autocomplete="off">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-hide" id="self_time">
|
||||
<label class="layui-form-label"><span class="required">*</span>节日日期:</label>
|
||||
<div class="layui-inline">
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" id="start_time" name="start_time" lay-verify="required" class="layui-input len-mid" autocomplete="off" readonly>
|
||||
<i class=" iconrili iconfont calendar"></i>
|
||||
</div>
|
||||
<span class="layui-form-mid">-</span>
|
||||
<div class="layui-input-inline end-time">
|
||||
<input type="text" id="end_time" name="end_time" lay-verify="required|time" class="layui-input len-mid" autocomplete="off" readonly>
|
||||
<i class=" iconrili iconfont calendar"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item" id="join_time">
|
||||
<label class="layui-form-label"><span class="required">*</span>节日日期:</label>
|
||||
<div class="layui-input-block">
|
||||
<span class="holiday-name"></span>
|
||||
<input type="hidden" class="holiday-hidden" lay-verify='holiday'>
|
||||
<button class="layui-btn" type="button" onclick="choose()">重新选择</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">祝福语:</label>
|
||||
<div class="layui-input-inline">
|
||||
<textarea name="remark" class="layui-textarea len-long" maxlength="150"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item participation-condition">
|
||||
<label class="layui-form-label">参与条件:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="level_id" value="0" lay-filter="participation" title="全部会员" checked>
|
||||
<input type="radio" name="level_id" value="1" lay-filter="participation" title="部分会员">
|
||||
</div>
|
||||
<div class="layui-inline layui-hide">
|
||||
<label class="layui-form-label"></label>
|
||||
<div class="layui-input-block">
|
||||
{foreach $member_level_list as $k =>$v}
|
||||
<input type="checkbox" class="level-id" value="{$v.level_id}" title="{$v.level_name}" lay-skin="primary">
|
||||
{/foreach}
|
||||
</div>
|
||||
</div>
|
||||
<div class="word-aux">选择参与的会员等级,默认为所有会员都可参与</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="required">*</span>奖励发放时间:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="join_type" value="1" lay-verify="required" lay-filter="join_type" title="活动时间内" checked>
|
||||
<input type="radio" name="join_type" value="0" lay-verify="required" lay-filter="join_type" title="活动开始前">
|
||||
<span id="time" class="layui-hide">
|
||||
<input type="number" name="join_frequency" min="0" max="7" lay-verify="required|join_frequency" onchange="detectionNumType(this,'positiveInteger')" autocomplete="off" class="layui-input len-short" value="1">天
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- <div class="layui-form-item layui-hide" id="time">
|
||||
<label class="layui-form-label"></label>
|
||||
<div class="layui-input-block">
|
||||
<input type="number" name="join_frequency" min="0" max="7" lay-verify="required|join_frequency" onchange="detectionNumType(this,'positiveInteger')" autocomplete="off" class="layui-input len-short" value="1">天
|
||||
</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">-->
|
||||
<!-- <table id="award_list"></table>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="word-aux">-->
|
||||
<!-- <span class="aux-title">注意:</span>-->
|
||||
<!-- <div class="aux-item">1、奖项设置包含优惠券时,请保证优惠券数量充足</div>-->
|
||||
<!-- <div class="aux-item">2、奖品奖项不能少于1项且不能超过7项。</div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="word-aux">-->
|
||||
<!-- <button class="layui-btn" onclick="addAward()">添加奖品</button>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
|
||||
<!-- </div>-->
|
||||
|
||||
<div class="layui-card-body reward-wrap">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="required">*</span>奖励内容:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="checkbox" name="type" value="point" title="积分" lay-skin="primary" lay-filter="type" lay-verify="type" checked>
|
||||
<input type="checkbox" name="type" value="balance" title="余额" lay-skin="primary" lay-filter="type" lay-verify="type">
|
||||
<input type="checkbox" name="type" value="coupon" title="优惠券" lay-skin="primary" lay-filter="type" lay-verify="type">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="point-wrap">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="required">*</span>奖励积分:</label>
|
||||
<div class="layui-input-block">
|
||||
<input name="point" value="1" type="number" onchange="detectionNumType(this,'positiveInteger')" lay-verify="required|mum" class="layui-input len-short">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="balance-wrap layui-hide">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="required">*</span>奖励红包:</label>
|
||||
<div class="layui-input-block len-long">
|
||||
<input type="radio" name="balance_type" value="0" checked title="不可提现" lay-verify="balance_type"><input name="balance" onchange="detectionNumType(this,'positiveNumber')" value="1" type="number" lay-verify="" class="layui-input len-short">元
|
||||
</div>
|
||||
<!--<label class="layui-form-label"></label>-->
|
||||
<!--<div class="layui-input-block len-long">-->
|
||||
<!--<input type="radio" value="1" name="balance_type" title="可提现" lay-verify="balance_type"><input name="balance_money" onchange="detectionNumType(this,'positiveInteger')" value="1" type="number" lay-verify="" class="layui-input len-short" style="margin-left: 14px;">元-->
|
||||
<!--</div>-->
|
||||
</div>
|
||||
<!-- <div class="word-aux"><p>红包为储值余额,仅在消费时可用</p></div>-->
|
||||
</div>
|
||||
|
||||
<div class="coupon-wrap layui-hide">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="required">*</span>奖励优惠券:</label>
|
||||
<div class="layui-input-block">
|
||||
<div id="coupon_list"></div>
|
||||
<div class="word-aux text-color" style="margin-left: 0">
|
||||
<p>活动优惠券发放,不受优惠券自身数量和领取数量的限制</p>
|
||||
</div>
|
||||
<button class="layui-btn" id="select_coupon">选择优惠券</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<button class="layui-btn" lay-submit lay-filter="save">保存</button>
|
||||
<button class="layui-btn layui-btn-primary" onclick="backScenefestivalList()">返回</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 添加奖品 -->
|
||||
{include file="scenefestival/award_select"/}
|
||||
<script type="text/javascript" src="STATIC_JS/coupon_select.js"></script>
|
||||
<script>
|
||||
var form,laydate,laytpl,upload,tableData = [],
|
||||
repeat_flag = false,
|
||||
awardId = 0,
|
||||
currentDate = new Date(),
|
||||
minDate = "",
|
||||
coupon_id = [], addCoupon;
|
||||
|
||||
var coupon_select = new CouponSelect({
|
||||
tableElem:'#coupon_list',
|
||||
selectElem:'#select_coupon',
|
||||
})
|
||||
|
||||
layui.use(['form', 'laydate', 'laytpl'], function() {
|
||||
|
||||
form = layui.form;
|
||||
laydate = layui.laydate;
|
||||
laytpl = layui.laytpl;
|
||||
|
||||
currentDate.setDate(currentDate.getDate() + 30);
|
||||
form.render();
|
||||
|
||||
//开始时间
|
||||
laydate.render({
|
||||
elem: '#start_time', //指定元素
|
||||
type: 'datetime',
|
||||
value: new Date(),
|
||||
done: function(value) {
|
||||
minDate = value;
|
||||
reRender();
|
||||
}
|
||||
});
|
||||
|
||||
//结束时间
|
||||
laydate.render({
|
||||
elem: '#end_time', //指定元素
|
||||
type: 'datetime',
|
||||
value: new Date(currentDate)
|
||||
});
|
||||
|
||||
/**
|
||||
* 重新渲染结束时间
|
||||
* */
|
||||
function reRender() {
|
||||
$("#end_time").remove();
|
||||
$(".end-time").html('<input type="text" id="end_time" name="end_time" placeholder="请输入结束时间" lay-verify="required|time" class = "layui-input len-mid" autocomplete="off"> ');
|
||||
laydate.render({
|
||||
elem: '#end_time',
|
||||
type: 'datetime',
|
||||
min: minDate
|
||||
});
|
||||
}
|
||||
|
||||
//参与条件
|
||||
form.on('radio(participation)', function(data){
|
||||
if (parseInt(data.value))
|
||||
$('.participation-condition .layui-inline').removeClass('layui-hide');
|
||||
else
|
||||
$('.participation-condition .layui-inline').addClass('layui-hide');
|
||||
});
|
||||
|
||||
form.on('radio(join_type)', function(data){
|
||||
if (data.value == 1 ) {
|
||||
$("#time").addClass('layui-hide');
|
||||
}else {
|
||||
$("#time").removeClass('layui-hide');
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
form.on('radio(join_time)', function(data){
|
||||
if (data.value == 1 ) {
|
||||
$("#join_time").removeClass('layui-hide');
|
||||
$("#self_time").addClass('layui-hide');
|
||||
$("#festival_name").addClass('layui-hide');
|
||||
}else {
|
||||
$("#join_time").addClass('layui-hide');
|
||||
$("#self_time").removeClass('layui-hide');
|
||||
$("#festival_name").removeClass('layui-hide');
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
/**
|
||||
* 表单验证
|
||||
*/
|
||||
form.verify({
|
||||
time: function(value) {
|
||||
var now_time = (new Date()).getTime();
|
||||
var start_time = (new Date($("#start_time").val())).getTime();
|
||||
var end_time = (new Date(value)).getTime();
|
||||
var time_type = $('input[name="join_time"]:checked').val();
|
||||
if(time_type == 0){
|
||||
if (now_time > end_time) {
|
||||
return '结束时间不能小于当前时间!'
|
||||
}
|
||||
if (start_time > end_time) {
|
||||
return '结束时间不能小于开始时间!';
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
holiday:function(){
|
||||
if($('input[name = "join_time"]:checked').val() == 1 && $('.holiday-hidden').val() != 1){
|
||||
return "请选择节日日期";
|
||||
}
|
||||
},
|
||||
type: function(){
|
||||
if ($('.reward-wrap [name="type"]:checked').length == 0) {
|
||||
return '请选择领奖励内容';
|
||||
}
|
||||
},
|
||||
mum: function(value, item){
|
||||
if (/^\d{0,10}$/.test(value) === false) {
|
||||
return '请输入大于0的整数';
|
||||
}
|
||||
|
||||
if (parseInt(value) <= 0) {
|
||||
return '请输入大于0的整数';
|
||||
}
|
||||
},
|
||||
// float: function(value, item){
|
||||
// if (/^\d{0,10}$/.test(value) === false) {
|
||||
// return '请输入大于0的数字,支持小数点后两位';
|
||||
// }
|
||||
// if (parseInt(value) <= 0) {
|
||||
// return '请输入大于0的数字,支持小数点后两位';
|
||||
// }
|
||||
// },
|
||||
join_frequency: function(value){
|
||||
if(value > 7){
|
||||
return '不得超过7天'
|
||||
}
|
||||
}
|
||||
});
|
||||
form.on('checkbox(type)', function(data) {
|
||||
$('[name="type"]').each(function(){
|
||||
var type = $(this).val();
|
||||
if ($(this).is(':checked')) {
|
||||
$('.reward-wrap .' + type + '-wrap').removeClass('layui-hide');
|
||||
if (type == 'point' || type == 'coupon') {
|
||||
$('.reward-wrap .' + type + '-wrap [lay-verify]').attr('lay-verify', 'required|mum');
|
||||
}
|
||||
if (type == 'balance') {
|
||||
$('.reward-wrap .' + type + '-wrap [lay-verify]').attr('lay-verify', 'required|float');
|
||||
}
|
||||
} else {
|
||||
$('.reward-wrap .' + type + '-wrap').addClass('layui-hide');
|
||||
$('.reward-wrap .' + type + '-wrap [lay-verify]').attr('lay-verify', '');
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
/**
|
||||
* 表单提交
|
||||
*/
|
||||
form.on('submit(save)', function(data){
|
||||
let coupon_selected_ids = coupon_select.getSelectedData().selectedIds;
|
||||
var type = [];
|
||||
$('.reward-wrap [name="type"]:checked').each(function(){
|
||||
type.push($(this).val());
|
||||
});
|
||||
if ($.inArray('coupon', type) != -1 && coupon_selected_ids.length == 0) {
|
||||
layer.msg('请选择优惠券', {icon: 5});
|
||||
return;
|
||||
}
|
||||
if(data.field.join_time == 0 && data.field.festival_name == '') {
|
||||
layer.msg('请输入节日名称');
|
||||
return;
|
||||
}
|
||||
|
||||
if(data.field.max_fetch == ''){
|
||||
layer.msg('请输入邀请奖励上限', {icon: 5});
|
||||
return;
|
||||
}else if (data.field.max_fetch < 0){
|
||||
layer.msg('请输入大于或等于0的整数', {icon: 5});
|
||||
return;
|
||||
}
|
||||
|
||||
data.field.type = type.toString();
|
||||
data.field.coupon = coupon_selected_ids.toString();
|
||||
|
||||
if (parseInt(data.field.level_id)){
|
||||
var levelId = [],
|
||||
levelName = [];
|
||||
$('.level-id').each(function(){
|
||||
if($(this).prop('checked')){
|
||||
levelId.push($(this).val());
|
||||
levelName.push($(this).attr("title"));
|
||||
}
|
||||
});
|
||||
data.field.level_id = levelId.toString();
|
||||
data.field.level_name = levelName.toString();
|
||||
}
|
||||
|
||||
if($("input[name='level_id']:checked").val() == 1 && data.field.level_id.length == 0){
|
||||
layer.msg('请选择会员等级', {icon: 5});
|
||||
return;
|
||||
}
|
||||
|
||||
if (!data.field.no_winning_img && upload.path != 'public/uniapp/game/no_winning.png') upload.delete();
|
||||
|
||||
if(repeat_flag) return;
|
||||
repeat_flag = true;
|
||||
|
||||
if($('.holiday-name').html()){
|
||||
data.field.holiday_name = $('.holiday-name').html();
|
||||
data.field.holiday_time =$('.holiday-name').attr('date-time')
|
||||
}else{
|
||||
data.field.holiday_name = '';
|
||||
data.field.holiday_time = '';
|
||||
}
|
||||
|
||||
// console.log($('input[name = "join_time"]:checked').val())
|
||||
// console.log($('.holiday-hidden').val())
|
||||
|
||||
// console.log($('input[name = "join_time"]:checked').val() == 1 && $('.holiday-hidden').val() > 0)
|
||||
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
dataType: 'JSON',
|
||||
url: ns.url("scenefestival://shop/scenefestival/add"),
|
||||
data: data.field,
|
||||
async: false,
|
||||
success: function(res){
|
||||
repeat_flag = false;
|
||||
|
||||
if (res.code == 0) {
|
||||
layer.confirm('添加成功', {
|
||||
title:'操作提示',
|
||||
btn: ['返回列表', '继续添加'],
|
||||
closeBtn: 0,
|
||||
yes: function(index, layero){
|
||||
location.hash = ns.hash("scenefestival://shop/scenefestival/lists");
|
||||
layer.close(index);
|
||||
},
|
||||
btn2: function(index, layero) {
|
||||
listenerHash(); // 刷新页面
|
||||
layer.close(index);
|
||||
}
|
||||
});
|
||||
}else{
|
||||
layer.msg(res.message);
|
||||
}
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
var upload = new Upload({
|
||||
elem: '#no_winning_img'
|
||||
});
|
||||
});
|
||||
|
||||
function backScenefestivalList() {
|
||||
location.hash = ns.hash("scenefestival://shop/scenefestival/lists");
|
||||
}
|
||||
|
||||
//检测数据类型
|
||||
function detectionNumType(el,type){
|
||||
var value = $(el).val();
|
||||
|
||||
//大于零 且 不是小数
|
||||
if (value < 0 && type == 'integral')
|
||||
$(el).val(0);
|
||||
else if(type == 'integral')
|
||||
$(el).val(Math.round(value));
|
||||
|
||||
//大于1 且 不是小数
|
||||
if (value < 1 && type == 'positiveInteger'){
|
||||
$(el).val(1);
|
||||
} else if (type == 'positiveInteger'){
|
||||
var val = Math.round(value);
|
||||
if(Object.is(val,NaN)){
|
||||
$(el).val(1);
|
||||
}else{
|
||||
$(el).val(val);
|
||||
}
|
||||
}
|
||||
|
||||
//大于零可以是小数
|
||||
if (type == 'positiveNumber'){
|
||||
value = parseFloat(value).toFixed(2);
|
||||
if (value < 0)
|
||||
$(el).val(0);
|
||||
else
|
||||
$(el).val(value);
|
||||
}
|
||||
//大于零可以是小数
|
||||
if (type == 'positiveMoney'){
|
||||
value = parseFloat(value).toFixed(2);
|
||||
if (value < 0)
|
||||
$(el).val(0);
|
||||
else
|
||||
$(el).val(value);
|
||||
}
|
||||
}
|
||||
|
||||
// 选择节日日期
|
||||
function choose() {
|
||||
var data = {};
|
||||
laytpl($("#choose_time").html()).render(data, function(html) {
|
||||
coupon_list = layer.open({
|
||||
title: '选择节日',
|
||||
skin: 'layer-tips-class',
|
||||
type: 1,
|
||||
area: ['520px', 'auto'],
|
||||
btn:['确定','取消'],
|
||||
content: html,
|
||||
});
|
||||
form.render();
|
||||
|
||||
$('.holiday').each(function(){
|
||||
if($(this).html() == $('.holiday-name').html()){
|
||||
$(this).addClass('holiday-active bg-color')
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
function holiday(data){
|
||||
$('.holiday').removeClass('holiday-active bg-color');
|
||||
$(data).addClass('holiday-active bg-color');
|
||||
$('.holiday-name').html($(data).html());
|
||||
$('.holiday-hidden').val(1);
|
||||
$('.holiday-name').attr('date-time' , $(data).attr('date-time'))
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="choose_time">
|
||||
<div class="choose-time">
|
||||
<div class="choose-item">
|
||||
<p>传统节日</p>
|
||||
{foreach $jieri_list as $jieri_list_k => $jieri_list_v}
|
||||
<span class="border-color holiday" date-time="{$jieri_list_v.date}" onclick = "holiday(this)">{$jieri_list_v.holiday_cn}</span>
|
||||
{/foreach}
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
276
addon/scenefestival/shop/view/scenefestival/award_select.html
Executable file
276
addon/scenefestival/shop/view/scenefestival/award_select.html
Executable file
@@ -0,0 +1,276 @@
|
||||
<script type="text/html" id="add_award">
|
||||
<div class="layui-form form-wrap add-award">
|
||||
{{# if($.isEmptyObject(d)){ }}
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="required">*</span>名称:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" maxlength="6" placeholder="最多可输入6个字" value="" name="award_name" lay-verify="required" autocomplete="off" class="layui-input len-mid">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item award-type">
|
||||
<label class="layui-form-label">奖品:</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="layui-input-block coupon">
|
||||
<input type="radio" name="award_type" value="3" title="优惠券" checked>
|
||||
<div class="len-mid coupon-box">
|
||||
<span class="coupon-title">请选择</span>
|
||||
<div class="coupon-option layui-hide">
|
||||
<div class="coupon-search">
|
||||
<i class="layui-icon"></i>
|
||||
<input type="text" class="layui-input" placeholder="请输入搜索内容">
|
||||
</div>
|
||||
<div class="coupon-item-box">
|
||||
<div class="coupon-item">内容</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<input type="hidden" name="relate_name">
|
||||
<input type="hidden" name="relate_id">
|
||||
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="award_type" value="1" title="积分">
|
||||
<input type="text" name="point" value="1" class="layui-input len-mid">
|
||||
<div class="layui-word-aux">积分</div>
|
||||
</div>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="award_type" value="2" title="红包">
|
||||
<input type="text" name="balance" value="1" class="layui-input len-mid" onchange="detectionNumType(this,'positiveMoney')">
|
||||
<div class="layui-word-aux">元</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="required">*</span>数量:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="award_num" value="1" onchange="detectionNumType(this,'positiveInteger')" lay-verify="required" autocomplete="off" class="layui-input len-mid">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="required">*</span>奖项权重:</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="award_winning_rate" value="1" onchange="detectionNumType(this,'positiveInteger')" lay-verify="required" autocomplete="off" class="layui-input len-mid">
|
||||
</div>
|
||||
</div>
|
||||
{{# }else{ }}
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="required">*</span>名称:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" maxlength="6" placeholder="最多可输入6个字" value="{{d.award_name}}" name="award_name" lay-verify="required" autocomplete="off" class="layui-input len-mid">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item award-type">
|
||||
<label class="layui-form-label">奖品:</label>
|
||||
<div class="layui-input-block">
|
||||
|
||||
<!-- 红包 -->
|
||||
{{# if(d.award_type == 3){ }}
|
||||
<div class="layui-input-block coupon">
|
||||
<input type="radio" name="award_type" value="3" title="优惠券" checked>
|
||||
<div class="len-mid coupon-box">
|
||||
<span class="coupon-title">{{d.relate_name}}</span>
|
||||
<div class="coupon-option layui-hide">
|
||||
<div class="coupon-search">
|
||||
<i class="layui-icon"></i>
|
||||
<input type="text" class="layui-input" placeholder="请输入搜索内容">
|
||||
</div>
|
||||
<div class="coupon-item-box"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<input type="hidden" name="relate_name" value="{{d.relate_name}}">
|
||||
<input type="hidden" name="relate_id" value="{{d.relate_id}}">
|
||||
{{# }else{ }}
|
||||
<div class="layui-input-block coupon">
|
||||
<input type="radio" name="award_type" value="3" title="优惠券" checked>
|
||||
<div class="len-mid coupon-box">
|
||||
<span class="coupon-title">请选择</span>
|
||||
<div class="coupon-option layui-hide">
|
||||
<div class="coupon-search">
|
||||
<i class="layui-icon"></i>
|
||||
<input type="text" class="layui-input" placeholder="请输入搜索内容">
|
||||
</div>
|
||||
<div class="coupon-item-box"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<input type="hidden" name="relate_name">
|
||||
<input type="hidden" name="relate_id">
|
||||
{{# } }}
|
||||
|
||||
<!-- 积分 -->
|
||||
{{# if(d.award_type == 1){ }}
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="award_type" value="1" title="积分" checked>
|
||||
<input type="text" name="point" value="{{d.point}}" class="layui-input len-mid">
|
||||
<div class="layui-word-aux">积分</div>
|
||||
</div>
|
||||
{{# }else{ }}
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="award_type" value="1" title="积分">
|
||||
<input type="text" name="point" value="1" class="layui-input len-mid">
|
||||
<div class="layui-word-aux">积分</div>
|
||||
</div>
|
||||
{{# } }}
|
||||
|
||||
<!-- 红包 -->
|
||||
{{# if(d.award_type == 2){ }}
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="award_type" value="2" title="红包" checked>
|
||||
<input type="text" name="balance" value="{{d.balance}}" onchange="detectionNumType(this,'positiveMoney')" class="layui-input len-mid">
|
||||
<div class="layui-word-aux">元</div>
|
||||
</div>
|
||||
{{# }else{ }}
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="award_type" value="2" title="红包">
|
||||
<input type="text" name="balance" value="1" class="layui-input len-mid" onchange="detectionNumType(this,'positiveMoney')">
|
||||
<div class="layui-word-aux">元</div>
|
||||
</div>
|
||||
{{# } }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="required">*</span>数量:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="award_num" value="{{d.award_num}}" onchange="detectionNumType(this,'positiveInteger')" lay-verify="required" autocomplete="off" class="layui-input len-mid">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="required">*</span>奖项权重:</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="award_winning_rate" value="{{d.award_winning_rate}}" onchange="detectionNumType(this,'positiveInteger')" lay-verify="required" autocomplete="off" class="layui-input len-mid">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<input type="hidden" name="ident" value="{{d.ident}}">
|
||||
{{# } }}
|
||||
<input type="hidden" name="award_id" value="{{d.award_id}}">
|
||||
|
||||
<div class="form-row">
|
||||
<button class="layui-btn" lay-submit lay-filter="addAwardSave">确定</button>
|
||||
<button class="layui-btn layui-btn-primary" onclick="cancelAward()">取消</button>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<script>
|
||||
/*
|
||||
* 奖品弹框
|
||||
* */
|
||||
function awardPop(data = {}){
|
||||
laytpl($('#add_award').html()).render(data,function(html){
|
||||
layer.open({
|
||||
type: 1,
|
||||
title: '添加奖品',
|
||||
area:['650px','auto'],
|
||||
content: html,
|
||||
success: function(layero, index){
|
||||
form.render();
|
||||
form.on('submit(addAwardSave)', function(data) {
|
||||
if (data.field.award_type == 3 && !data.field.relate_name){
|
||||
layer.msg("请选择优惠券");
|
||||
return false;
|
||||
}
|
||||
if (data.field.award_type == 1 && data.field.point <=0){
|
||||
layer.msg("积分必须大于0");
|
||||
return false;
|
||||
}
|
||||
if (data.field.award_type == 2 && data.field.balance <=0){
|
||||
layer.msg("红包必须大于0");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (tableData.length > 0 && data.field.ident){
|
||||
for (var i = 0; i < tableData.length; i++){
|
||||
if(tableData[i].ident == data.field.ident){
|
||||
tableData[i] = data.field;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}else{
|
||||
data.field.ident = ++awardId;
|
||||
tableData.push(data.field);
|
||||
}
|
||||
renderTable(tableData);
|
||||
layer.closeAll();
|
||||
})
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
getCouponData({'status': 1});
|
||||
//选择框效果
|
||||
$(".award-type .coupon-title").click(function (e) {
|
||||
e.stopPropagation(); //阻止事件冒泡
|
||||
if (!$(this).hasClass("focus")){
|
||||
|
||||
$(this).addClass("focus border-color");
|
||||
$(this).parents(".coupon-box").find(".coupon-option").removeClass("layui-hide");
|
||||
|
||||
} else{
|
||||
$(this).removeClass("focus border-color");
|
||||
$(this).parents(".coupon-box").find(".coupon-option").addClass("layui-hide");
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/*
|
||||
* 获取优惠券数据
|
||||
* */
|
||||
var getCouponIdent = false;
|
||||
function getCouponData(data = ''){
|
||||
if (getCouponIdent) return false;
|
||||
getCouponIdent = true;
|
||||
|
||||
$.ajax({
|
||||
url: ns.url("coupon://shop/coupon/lists"),
|
||||
dataType: 'json',
|
||||
data: data,
|
||||
type: 'post',
|
||||
success : function(res) {
|
||||
getCouponIdent = false;
|
||||
$(".coupon-search input").val();
|
||||
var data = res.data.list,
|
||||
html = '';
|
||||
if (res.code >= 0){
|
||||
for(var i = 0; i < data.length; i++){
|
||||
html += '<div class="coupon-item layui-elip" data-coupon_id="'+data[i].coupon_type_id+'">'+ data[i].coupon_name +'</div>';
|
||||
}
|
||||
$(".add-award .coupon .coupon-item-box").html(html);
|
||||
}else {
|
||||
layer.msg(res.message);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//点击搜素对应优惠券
|
||||
$("body").off("click",".coupon-search i").on("click",".coupon-search i",function (e) {
|
||||
e.stopPropagation(); //阻止事件冒泡
|
||||
var data = {'coupon_name': $(".coupon-search input").val(),'status': 1};
|
||||
getCouponData(data);
|
||||
});
|
||||
|
||||
//选择具体优惠券
|
||||
$("body").off("click",".add-award .coupon .coupon-item").on("click",".add-award .coupon .coupon-item",function (e) {
|
||||
e.stopPropagation(); //阻止事件冒泡
|
||||
$("input[name='relate_name']").val($(this).text());
|
||||
$("input[name='relate_id']").val($(this).attr('data-coupon_id'));
|
||||
$(this).parents(".coupon-box").find(".coupon-title").text($(this).text());
|
||||
$(".coupon-option").addClass("layui-hide");
|
||||
$(".award-type .coupon-title").removeClass("focus border-color");
|
||||
});
|
||||
|
||||
$("body").off("click",".add-award .coupon-search").on("click",".add-award .coupon-search", function (e) {
|
||||
e.stopPropagation(); //阻止事件冒泡
|
||||
});
|
||||
|
||||
function cancelAward (){
|
||||
layer.closeAll();
|
||||
}
|
||||
</script>
|
||||
153
addon/scenefestival/shop/view/scenefestival/detail.html
Executable file
153
addon/scenefestival/shop/view/scenefestival/detail.html
Executable file
@@ -0,0 +1,153 @@
|
||||
<link rel="stylesheet" href="STATIC_CSS/promotion_detail.css">
|
||||
|
||||
<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="promotion-view">
|
||||
<div class="promotion-view-item">
|
||||
<label>活动名称:</label>
|
||||
<span>{$info.activity_name}</span>
|
||||
</div>
|
||||
<div class="promotion-view-item">
|
||||
<label>活动状态:</label>
|
||||
<span>{$info.status_name}</span>
|
||||
</div>
|
||||
<div class="promotion-view-item">
|
||||
<label>开始时间:</label>
|
||||
<span>{:date('Y-m-d H:i:s',$info.start_time)}</span>
|
||||
</div>
|
||||
<div class="promotion-view-item">
|
||||
<label>节日:</label>
|
||||
<span>{$info.festival_name}</span>
|
||||
</div>
|
||||
<div class="promotion-view-item">
|
||||
<label>结束时间:</label>
|
||||
<span>{:date('Y-m-d H:i:s',$info.end_time)}</span>
|
||||
</div>
|
||||
|
||||
<div class="promotion-view-item">
|
||||
<label>添加时间:</label>
|
||||
<span>{:date('Y-m-d H:i:s',$info.create_time)}</span>
|
||||
</div>
|
||||
<div class="promotion-view-item">
|
||||
<label>参与条件:</label>
|
||||
<span>{if $info.level_id == 0} 全部会员 {else/} {$info.level_name} {/if}</span>
|
||||
</div>
|
||||
<div class="promotion-view-item">
|
||||
<label>奖励发放时间:</label>
|
||||
<span>{if $info.join_type == 1} 活动时间内{else/} 活动开始前{$info.join_frequency}天{/if}</span>
|
||||
</div>
|
||||
{if in_array('point', $info['award_type'])}
|
||||
<div class="promotion-view-item">
|
||||
<label>奖励积分:</label>
|
||||
<span>{$info.point}</span>
|
||||
</div>
|
||||
{/if}
|
||||
{if in_array('balance', $info['award_type'])}
|
||||
<div class="layui-form-item">
|
||||
<label>奖励红包:</label>
|
||||
<span>{$info.balance}</span>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
</div>
|
||||
{if !empty($info.remark)}
|
||||
<div class="promotion-view">
|
||||
<div class="promotion-view-item-line">
|
||||
<label class="promotion-view-item-custom-label">祝福语:</label>
|
||||
<div class="promotion-view-item-custom-box">{$info.remark}</div>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
{if in_array('coupon', $info['award_type']) && !empty($info['coupon_list'])}
|
||||
<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='promotion-view-list'>
|
||||
<table id="promotion_list"></table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<script type='text/html' id="promotion_list_item_box_html">
|
||||
<div class="promotion-list-item-title">
|
||||
<div class="promotion-list-item-title-icon">
|
||||
{{# if(d.image != ''){ }}
|
||||
<img src="{{ ns.img(d.image) }}">
|
||||
{{# }else{ }}
|
||||
<img src="__ROOT__/public/uniapp/game/coupon.png">
|
||||
{{# } }}
|
||||
</div>
|
||||
<p class="promotion-list-item-title-name multi-line-hiding">{{ d.coupon_name }}</p>
|
||||
</div>
|
||||
</script>
|
||||
<script>
|
||||
var promotion_list = {if !empty($info.coupon_list)}{:json_encode($info.coupon_list, JSON_UNESCAPED_UNICODE)}{/if};
|
||||
|
||||
layui.use('table', function() {
|
||||
new Table({
|
||||
elem: '#promotion_list',
|
||||
cols: [
|
||||
[{
|
||||
title: '优惠券名称',
|
||||
width: '30%',
|
||||
unresize: 'false',
|
||||
templet: '#promotion_list_item_box_html'
|
||||
}, {
|
||||
title: '类型',
|
||||
templet: function(data) {
|
||||
return data.type == 'reward' ? '满减': '折扣';
|
||||
}
|
||||
}, {
|
||||
title: '优惠金额/折扣',
|
||||
templet: function(data) {
|
||||
return data.type == 'reward' ? data.money : data.discount;
|
||||
}
|
||||
}, {
|
||||
title: '适用商品',
|
||||
templet: function (data) {
|
||||
return data.goods_type_name;
|
||||
}
|
||||
}, {
|
||||
field: 'max_fetch',
|
||||
title: '领取人限制',
|
||||
|
||||
}, {
|
||||
field: 'price',
|
||||
title: '已领取/发放数',
|
||||
templet: function(data) {
|
||||
return data.count == -1 ? data.lead_count+'/不限量': data.lead_count+'/'+data.count;
|
||||
}
|
||||
}, {
|
||||
field: 'stock',
|
||||
title: '结束时间',
|
||||
unresize: 'false',
|
||||
width:'20%',
|
||||
templet: function(data) {
|
||||
var str = '';
|
||||
switch(data.validity_type) {
|
||||
case 0:
|
||||
str = ns.time_to_date(data.end_time);
|
||||
break;
|
||||
case 1:
|
||||
str = '领取之日起' + data.fixed_term + '天有效';
|
||||
break;
|
||||
default:
|
||||
str = '长期有效';
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
}]
|
||||
],
|
||||
data: promotion_list
|
||||
});
|
||||
});
|
||||
</script>
|
||||
596
addon/scenefestival/shop/view/scenefestival/edit.html
Executable file
596
addon/scenefestival/shop/view/scenefestival/edit.html
Executable file
@@ -0,0 +1,596 @@
|
||||
<link rel="stylesheet" href="SHOP_CSS/game.css">
|
||||
<style>
|
||||
.choose-item > span {
|
||||
display: inline-block;
|
||||
padding: 0 10px;
|
||||
height: 36px;
|
||||
line-height: 36px;
|
||||
text-align: center;
|
||||
border-radius: 4px;
|
||||
border: 1px solid #ededed;
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
margin: 5px 0;
|
||||
margin-right: 11px;
|
||||
}
|
||||
.choose-item > span i {
|
||||
position: absolute;
|
||||
bottom: -5px;
|
||||
right: -6px;
|
||||
border-radius: 50%;
|
||||
color: #FFF;
|
||||
font-size: 14px;
|
||||
line-height: 1;
|
||||
}
|
||||
.holiday-active {
|
||||
color: #fff;
|
||||
}
|
||||
.holiday-hidden {
|
||||
border: none;
|
||||
width: .1px;
|
||||
}
|
||||
|
||||
.coupon-box .layui-form{
|
||||
padding: 0!important;
|
||||
}
|
||||
|
||||
.layui-layer-page .layui-layer-content{
|
||||
overflow: auto !important;
|
||||
}
|
||||
|
||||
.del-btn {
|
||||
cursor: pointer;
|
||||
}
|
||||
.level-equity .layui-input {
|
||||
display: inline-block;
|
||||
}
|
||||
.gods-box table:first-of-type{
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.gods-box table:last-of-type{
|
||||
margin-top: 0;
|
||||
display: block;
|
||||
max-height: 323px;
|
||||
overflow: auto;
|
||||
}
|
||||
.coupon-box .single-filter-box{
|
||||
padding-top: 0;
|
||||
}
|
||||
.coupon-box .select-coupon-btn{
|
||||
margin-top: 10px;
|
||||
}
|
||||
.layui-layer-page .layui-layer-content{
|
||||
overflow-y: scroll!important;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div class="layui-form">
|
||||
|
||||
<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="activity_name" lay-verify="required" maxlength="15" placeholder="最多可填写15个字" autocomplete="off" class="layui-input len-long" value="{$info.activity_name}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="required">*</span>活动时间:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="join_time" {if($info.join_time) == 1}checked {/if} value="1" lay-verify="required" lay-filter="join_time" title="传统节日">
|
||||
<input type="radio" name="join_time"{if($info.join_time) == 0}checked {/if} value="0" lay-verify="required" lay-filter="join_time" title="自定义节日">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item {if($info.join_time) == 0}layui-hide {/if}" id="join_time">
|
||||
<label class="layui-form-label">节日日期:</label>
|
||||
<div class="layui-input-block">
|
||||
<span class="holiday-name">{$info.festival_name}</span>
|
||||
<input type="hidden" class="holiday-hidden" lay-verify='holiday' value="">
|
||||
<button class="layui-btn" type="button" onclick="choose()">重新选择</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">祝福语:</label>
|
||||
<div class="layui-input-inline">
|
||||
<textarea name="remark" class="layui-textarea len-long" value="{$info.remark}" maxlength="150">{$info.remark}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item {if($info.join_time) == 1}layui-hide {/if}" id="festival_name">
|
||||
<label class="layui-form-label"><span class="required">*</span>节日名称:</label>
|
||||
<div class="layui-inline">
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" maxlength="15" placeholder="最多可填写15个字" name="festival_name" value="{$info.festival_name}" class="layui-input len-mid" autocomplete="off">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item {if($info.join_time) == 1}layui-hide {/if}" id="self_time">
|
||||
<label class="layui-form-label"><span class="required">*</span>节日日期:</label>
|
||||
<div class="layui-inline">
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" value="{:date('Y-m-d H:i:s', $info.start_time)}" id="start_time" name="start_time" lay-verify="required" class="layui-input len-mid" autocomplete="off" readonly>
|
||||
<i class=" iconrili iconfont calendar"></i>
|
||||
</div>
|
||||
<span class="layui-form-mid">-</span>
|
||||
<div class="layui-input-inline end-time">
|
||||
<input type="hidden" value="{:date('Y-m-d H:i:s', $info.end_time)}" id="old_end_time">
|
||||
<input type="text" id="end_time" value="{:date('Y-m-d H:i:s', $info.end_time)}" name="end_time" lay-verify="required|time" class="layui-input len-mid" autocomplete="off" readonly>
|
||||
<i class=" iconrili iconfont calendar"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item participation-condition">
|
||||
<label class="layui-form-label">参与条件:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="level_id" value="0" lay-filter="participation" title="全部会员" {if $info.level_id == 0}checked{/if}>
|
||||
<input type="radio" name="level_id" value="1" lay-filter="participation" title="部分会员" {if $info.level_id != 0}checked{/if}>
|
||||
</div>
|
||||
<div class="layui-inline {if $info.level_id == 0}layui-hide{/if}">
|
||||
<label class="layui-form-label"></label>
|
||||
<div class="layui-input-block">
|
||||
{foreach $member_level_list as $k =>$v}
|
||||
<input type="checkbox" class="level-id" value="{$v.level_id}" title="{$v.level_name}" lay-skin="primary">
|
||||
{/foreach}
|
||||
</div>
|
||||
</div>
|
||||
<div class="word-aux">选择参与的会员等级,默认为所有会员都可参与</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="required">*</span>奖励发放时间:</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="radio" name="join_type" value="1" lay-verify="required" lay-filter="join_type" title="活动时间内" {if $info.join_type == 1} checked{/if}>
|
||||
<input type="radio" name="join_type" value="0" lay-verify="required" lay-filter="join_type" title="活动开始前" {if $info.join_type == 0} checked{/if}>
|
||||
<span id="time" class="{if $info.join_type == 1} layui-hide{/if}">
|
||||
<input type="number" name="join_frequency" min="0" value="{$info.join_frequency}" onchange="detectionNumType(this,'positiveInteger')" lay-verify="required" autocomplete="off" class="layui-input len-short"> 天
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="layui-form-item layui-hide" id="time">
|
||||
<label class="layui-form-label"></label>
|
||||
<div class="layui-input-block">
|
||||
<input type="number" name="join_frequency" min="0" value="{$info.join_frequency}" onchange="detectionNumType(this,'positiveInteger')" lay-verify="required" autocomplete="off" class="layui-input len-short"> 次
|
||||
</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 reward-wrap">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="required">*</span>奖励内容:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="checkbox" name="type" value="point" title="积分" lay-skin="primary" lay-filter="type" lay-verify="type" {if in_array('point', $info['award_type']) }checked{/if}>
|
||||
<input type="checkbox" name="type" value="balance" title="余额" lay-skin="primary" lay-filter="type" lay-verify="type" {if in_array('balance', $info['award_type']) }checked{/if}>
|
||||
<input type="checkbox" name="type" value="coupon" title="优惠券" lay-skin="primary" lay-filter="type" lay-verify="type" {if in_array('coupon', $info['award_type']) }checked{/if}>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="point-wrap {if !in_array('point', $info['award_type']) }layui-hide{/if}">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="required">*</span>奖励积分:</label>
|
||||
<div class="layui-input-block">
|
||||
<input name="point" value="{$info.point}" onchange="detectionNumType(this,'positiveInteger')" type="number" id="point" lay-verify="{if in_array('point', $info['award_type']) }required|num{/if}" class="layui-input len-short">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- <div class="balance-wrap {if !in_array('balance', $info['award_type']) }layui-hide{/if}">-->
|
||||
<!-- <div class="layui-form-item">-->
|
||||
<!-- <label class="layui-form-label"><span class="required">*</span>奖励红包:</label>-->
|
||||
<!-- <div class="layui-input-block len-long">-->
|
||||
<!-- <input name="balance" value="{$info.balance}" type="number" lay-verify="{if in_array('balance', $info['award_type']) }required|float{/if}" class="layui-input len-short">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="word-aux"><p>红包为储值余额,仅在消费时可用</p></div>-->
|
||||
<!-- </div>-->
|
||||
|
||||
<div class="balance-wrap {if !in_array('balance', $info['award_type']) }layui-hide{/if}">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="required">*</span>奖励红包:</label>
|
||||
<div class="layui-input-block len-long">
|
||||
<input type="radio" name="balance_type" lay-verify="balance_type" value="0" {if $info.balance_type == 0} checked {/if} title="不可提现"><input name="balance" onchange="detectionNumType(this,'positiveNumber')" value="{$info.balance}" type="number" lay-verify="" class="layui-input len-short">元
|
||||
</div>
|
||||
<!--<label class="layui-form-label"></label>-->
|
||||
<!--<div class="layui-input-block len-long">-->
|
||||
<!--<input type="radio" name="balance_type" lay-verify="balance_type" value="1" {if $info.balance_type == 1} checked {/if} title="可提现">    <input name="balance_money" onchange="detectionNumType(this,'positiveInteger')" value="{$info.balance_money}" type="number" lay-verify="" class="layui-input len-short">元-->
|
||||
<!--</div>-->
|
||||
</div>
|
||||
<!-- <div class="word-aux"><p>红包为储值余额,仅在消费时可用</p></div>-->
|
||||
</div>
|
||||
|
||||
<div class="coupon-wrap {if !in_array('coupon', $info['award_type']) }layui-hide{/if}">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="required">*</span>奖励优惠券:</label>
|
||||
<div class="layui-input-block">
|
||||
<div id="coupon_list"></div>
|
||||
<div class="word-aux text-color" style="margin-left: 0">
|
||||
<p>活动优惠券发放,不受优惠券自身数量和领取数量的限制</p>
|
||||
</div>
|
||||
<button class="layui-btn" id="select_coupon">选择优惠券</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<input type="hidden" name="festival_id" value="{$info.festival_id}">
|
||||
<div class="form-row">
|
||||
<button class="layui-btn" lay-submit lay-filter="save">保存</button>
|
||||
<button class="layui-btn layui-btn-primary" onclick="backScenefestivalList()">返回</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 添加奖品 -->
|
||||
{include file="scenefestival/award_select" /}
|
||||
<script type="text/javascript" src="STATIC_JS/coupon_select.js"></script>
|
||||
<script>
|
||||
var form,laydate,upload,laytpl,repeat_flag = false,
|
||||
awardId = 0,
|
||||
minDate = "",
|
||||
coupon_id = [], addCoupon;
|
||||
var coupon_select = new CouponSelect({
|
||||
tableElem:'#coupon_list',
|
||||
selectElem:'#select_coupon',
|
||||
selectedIds:'{$info.coupon}',
|
||||
})
|
||||
|
||||
layui.use(['form', 'laydate', 'laytpl'], function() {
|
||||
|
||||
form = layui.form;
|
||||
laydate = layui.laydate;
|
||||
laytpl = layui.laytpl;
|
||||
|
||||
form.render();
|
||||
initTableData();
|
||||
var time = "{$info.time}",
|
||||
start_time = "{$info.start_time}";
|
||||
if (time < start_time){
|
||||
//开始时间
|
||||
laydate.render({
|
||||
elem: '#start_time', //指定元素
|
||||
type: 'datetime',
|
||||
done: function(value) {
|
||||
minDate = value;
|
||||
reRender();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//结束时间
|
||||
laydate.render({
|
||||
elem: '#end_time', //指定元素
|
||||
type: 'datetime',
|
||||
});
|
||||
|
||||
/**
|
||||
* 重新渲染结束时间
|
||||
* */
|
||||
function reRender() {
|
||||
$("#end_time").remove();
|
||||
$(".end-time").html('<input type="text" id="end_time" name="end_time" placeholder="请输入结束时间" lay-verify="required|time" class = "layui-input len-mid" autocomplete="off"> ');
|
||||
laydate.render({
|
||||
elem: '#end_time',
|
||||
type: 'datetime',
|
||||
min: minDate
|
||||
});
|
||||
}
|
||||
//参与条件
|
||||
form.on('radio(participation)', function(data){
|
||||
if (parseInt(data.value))
|
||||
$('.participation-condition .layui-inline').removeClass('layui-hide');
|
||||
else
|
||||
$('.participation-condition .layui-inline').addClass('layui-hide');
|
||||
});
|
||||
|
||||
form.on('radio(join_type)', function(data){
|
||||
if (data.value == 1 ) {
|
||||
$("#time").addClass('layui-hide');
|
||||
}else {
|
||||
$("#time").removeClass('layui-hide');
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
form.on('radio(join_time)', function(data){
|
||||
if (data.value == 1 ) {
|
||||
$("#join_time").removeClass('layui-hide');
|
||||
$("#self_time").addClass('layui-hide');
|
||||
$("#festival_name").addClass('layui-hide');
|
||||
}else {
|
||||
$("#join_time").addClass('layui-hide');
|
||||
$("#self_time").removeClass('layui-hide');
|
||||
$("#festival_name").removeClass('layui-hide');
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
/**
|
||||
* 表单验证
|
||||
*/
|
||||
form.verify({
|
||||
time: function(value) {
|
||||
var now_time = (new Date()).getTime();
|
||||
var start_time = (new Date($("#start_time").val())).getTime();
|
||||
var end_time = (new Date(value)).getTime();
|
||||
var old_end_time = (new Date($("#old_end_time").val())).getTime();
|
||||
var time_type = $('input[name="join_time"]:checked').val();
|
||||
if(time_type == 0){
|
||||
if (now_time > end_time) {
|
||||
return '结束时间不能小于当前时间!'
|
||||
}
|
||||
if (start_time > end_time) {
|
||||
return '结束时间不能小于开始时间!';
|
||||
}
|
||||
if (old_end_time > end_time){
|
||||
return '结束时间不能小于之前设置的时间!';
|
||||
}
|
||||
}
|
||||
},
|
||||
holiday:function(){
|
||||
if($('input[name = "join_time"]:checked').val() == 1 && $('.holiday-hidden').val() != 1){
|
||||
return "请选择节日日期";
|
||||
}
|
||||
},
|
||||
type: function(){
|
||||
if ($('.reward-wrap [name="type"]:checked').length == 0) {
|
||||
return '请选择领奖励内容';
|
||||
}
|
||||
},
|
||||
mum: function(value, item){
|
||||
if (/^\d{0,10}$/.test(value) === false) {
|
||||
return '请输入大于0的整数';
|
||||
}
|
||||
|
||||
if (parseInt(value) <= 0) {
|
||||
return '请输入大于0的整数';
|
||||
}
|
||||
},
|
||||
float: function(value, item){
|
||||
if (/^\d{0,10}$/.test(value) === false) {
|
||||
return '请输入大于0的数字,支持小数点后两位';
|
||||
}
|
||||
if (parseInt(value) <= 0) {
|
||||
return '请输入大于0的数字,支持小数点后两位';
|
||||
}
|
||||
},
|
||||
join_frequency: function(value){
|
||||
if(value > 7){
|
||||
return '不得超过7天'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
form.on('checkbox(type)', function(data) {
|
||||
$('[name="type"]').each(function(){
|
||||
var type = $(this).val();
|
||||
if ($(this).is(':checked')) {
|
||||
$('.reward-wrap .' + type + '-wrap').removeClass('layui-hide');
|
||||
if (type == 'point' || type == 'coupon') {
|
||||
$('.reward-wrap .' + type + '-wrap [lay-verify]').attr('lay-verify', 'required|mum');
|
||||
}
|
||||
if (type == 'balance') {
|
||||
$('.reward-wrap .' + type + '-wrap [lay-verify]').attr('lay-verify', 'required|float');
|
||||
}
|
||||
} else {
|
||||
$('.reward-wrap .' + type + '-wrap').addClass('layui-hide');
|
||||
$('.reward-wrap .' + type + '-wrap [lay-verify]').attr('lay-verify', '');
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
/**
|
||||
* 表单提交
|
||||
*/
|
||||
form.on('submit(save)', function(data){
|
||||
let coupon_selected_ids = coupon_select.getSelectedData().selectedIds;
|
||||
if (parseInt(data.field.level_id)){
|
||||
var levelId = [],
|
||||
levelName = [];
|
||||
$('.level-id').each(function(){
|
||||
if($(this).prop('checked')){
|
||||
levelId.push($(this).val());
|
||||
levelName.push($(this).attr("title"));
|
||||
}
|
||||
});
|
||||
data.field.level_id = levelId.toString();
|
||||
data.field.level_name = levelName.toString();
|
||||
}
|
||||
var type = [];
|
||||
$('.reward-wrap [name="type"]:checked').each(function(){
|
||||
type.push($(this).val());
|
||||
})
|
||||
|
||||
if ($.inArray('coupon', type) != -1 && coupon_selected_ids.length == 0) {
|
||||
layer.msg('请选择优惠券', {icon: 5});
|
||||
return;
|
||||
}
|
||||
|
||||
if ($.inArray('point', type) != -1 ) {
|
||||
if($('#point').val() <= 0){
|
||||
layer.msg('积分请输入正整数', {icon: 5});
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
var end_time = (new Date($("#end_time").val())).getTime();
|
||||
var old_end_time = (new Date($("#old_end_time").val())).getTime();
|
||||
if(old_end_time > end_time){
|
||||
layer.msg('结束时间不能小于之前设置的时间!', {icon: 5});
|
||||
return;
|
||||
}
|
||||
|
||||
data.field.type = type.toString();
|
||||
data.field.coupon = coupon_selected_ids.toString();
|
||||
|
||||
if($("input[name='level_id']:checked").val() == 1 && data.field.level_id.length == 0){
|
||||
layer.msg('请选择会员等级', {icon: 5});
|
||||
return;
|
||||
}
|
||||
|
||||
if($('.holiday-name').html()){
|
||||
data.field.holiday_name = $('.holiday-name').html();
|
||||
data.field.holiday_time =$('.holiday-name').attr('date-time')
|
||||
}else{
|
||||
data.field.holiday_name = '';
|
||||
data.field.holiday_time = '';
|
||||
}
|
||||
|
||||
if(repeat_flag) return;
|
||||
repeat_flag = true;
|
||||
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
dataType: 'JSON',
|
||||
url: ns.url("scenefestival://shop/scenefestival/edit"),
|
||||
data: data.field,
|
||||
async: false,
|
||||
success: function(res){
|
||||
repeat_flag = false;
|
||||
|
||||
if (res.code == 0) {
|
||||
layer.confirm('编辑成功', {
|
||||
title:'操作提示',
|
||||
btn: ['返回列表', '继续编辑'],
|
||||
yes: function(index, layero){
|
||||
location.hash = ns.hash("scenefestival://shop/scenefestival/lists");
|
||||
layer.close(index);
|
||||
},
|
||||
btn2: function(index, layero) {
|
||||
layer.close(index);
|
||||
}
|
||||
});
|
||||
}else{
|
||||
layer.msg(res.message);
|
||||
}
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
var upload = new Upload({
|
||||
elem: '#no_winning_img'
|
||||
});
|
||||
|
||||
//参与条件
|
||||
form.on('radio(participation)', function(data){
|
||||
if (parseInt(data.value))
|
||||
$('.participation-condition .layui-inline').removeClass('layui-hide');
|
||||
else
|
||||
$('.participation-condition .layui-inline').addClass('layui-hide');
|
||||
});
|
||||
|
||||
form.on('radio(join_type)', function(data){
|
||||
if (data.value == 1 ) {
|
||||
$("#time").addClass('layui-hide');
|
||||
}else {
|
||||
$("#time").removeClass('layui-hide');
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
//初始化数据
|
||||
function initTableData(){
|
||||
var levelIdStr = '{$info.level_id}',
|
||||
levelIdArr = levelIdStr.split(",");
|
||||
if (levelIdArr.length >= 1){
|
||||
$(".participation-condition input.level-id").each(function (index,item) {
|
||||
for (var i = 0; i < levelIdArr.length; i++){
|
||||
if (parseInt($(item).val()) == levelIdArr[i]){
|
||||
$(item).prop('checked',true);
|
||||
}
|
||||
}
|
||||
});
|
||||
form.render();
|
||||
}
|
||||
}
|
||||
|
||||
function backScenefestivalList() {
|
||||
location.hash = ns.hash("scenefestival://shop/scenefestival/lists");
|
||||
}
|
||||
|
||||
// 选择节日日期
|
||||
function choose() {
|
||||
var data = {};
|
||||
laytpl($("#choose_time").html()).render(data, function(html) {
|
||||
layer.open({
|
||||
title: '选择节日',
|
||||
skin: 'layer-tips-class',
|
||||
type: 1,
|
||||
area: ['520px', 'auto'],
|
||||
btn:['确定','取消'],
|
||||
content: html,
|
||||
success: function (layero, index) {
|
||||
$('.holiday').each(function(){
|
||||
if($(this).html() == $('.holiday-name').html()){
|
||||
$(this).addClass('holiday-active bg-color')
|
||||
}
|
||||
});
|
||||
form.render();
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
function holiday(data){
|
||||
$('.holiday').removeClass('holiday-active bg-color');
|
||||
$(data).addClass('holiday-active bg-color');
|
||||
$('.holiday-name').html($(data).html());
|
||||
$('.holiday-hidden').val(1);
|
||||
$('.holiday-name').attr('date-time' , $(data).attr('date-time'))
|
||||
}
|
||||
|
||||
//检测数据类型
|
||||
function detectionNumType(el,type){
|
||||
var value = $(el).val();
|
||||
|
||||
//大于零 且 不是小数
|
||||
if (value < 0 && type == 'integral')
|
||||
$(el).val(0);
|
||||
else if(type == 'integral')
|
||||
$(el).val(Math.round(value));
|
||||
|
||||
//大于1 且 不是小数
|
||||
if (value < 1 && type == 'positiveInteger'){
|
||||
$(el).val(1);
|
||||
} else if (type == 'positiveInteger'){
|
||||
var val = Math.round(value);
|
||||
if(Object.is(val,NaN)){
|
||||
$(el).val(1);
|
||||
}else{
|
||||
$(el).val(val);
|
||||
}
|
||||
}
|
||||
|
||||
//大于零可以是小数
|
||||
if (type == 'positiveNumber'){
|
||||
value = parseFloat(value);
|
||||
if (value < 0)
|
||||
$(el).val(0);
|
||||
else
|
||||
$(el).val(value);
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="choose_time">
|
||||
<div class="choose-time">
|
||||
<div class="choose-item">
|
||||
<p>传统节日</p>
|
||||
{foreach $jieri_list as $jieri_list_k => $jieri_list_v}
|
||||
<span class="border-color holiday" date-time="{$jieri_list_v.date}" onclick = "holiday(this)">{$jieri_list_v.holiday_cn}</span>
|
||||
{/foreach}
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
403
addon/scenefestival/shop/view/scenefestival/lists.html
Executable file
403
addon/scenefestival/shop/view/scenefestival/lists.html
Executable file
@@ -0,0 +1,403 @@
|
||||
<style>
|
||||
.layui-table-view td:last-child>div{overflow: inherit;}
|
||||
.operation-wrap{position: relative;}
|
||||
.layui-table-box{overflow: inherit;}
|
||||
.layui-table-body{overflow: inherit;}
|
||||
.popup-qrcode-wrap{text-align: center;background: #fff;border-radius: 2px;box-shadow: 0 2px 8px 0 rgba(200,201,204,.5);padding: 10px;position: absolute;z-index: 1;top: -70px;left: -190px;display: none;width: 170px;height: 230px;}
|
||||
.popup-qrcode-wrap:before, .popup-qrcode-wrap:after {left: 100%;top: 50%;border: solid transparent;content: " ";height: 0;width: 0;position: absolute;pointer-events: none;}
|
||||
.popup-qrcode-wrap:before {border-color: transparent;border-left-color: #e5e5e5;border-width: 8px;margin-top: -29px;}
|
||||
.popup-qrcode-wrap:after {border-color: transparent;border-left-color: #ffffff;border-width: 7px;margin-top: -31px;}
|
||||
.popup-qrcode-wrap img{width: 150px;height: 150px;max-width: initial;}
|
||||
.popup-qrcode-wrap p{font-size: 12px;margin: 5px 0;line-height: 1.8!important;}
|
||||
.popup-qrcode-wrap a{font-size: 12px;}
|
||||
.popup-qrcode-wrap input{opacity: 0;position: absolute;}
|
||||
.popup-qrcode-wrap .popup-qrcode-loadimg {width: 16px!important; height: 16px!important; margin-top: 107px;}
|
||||
.layui-layout-admin .layui-form-item .layui-input-inline{background-color: #fff;}
|
||||
.layui-layout-admin .table-tab .layui-tab-title{margin-bottom: 15px;}
|
||||
</style>
|
||||
|
||||
<div class="single-filter-box">
|
||||
<button class="layui-btn" onclick="add()">添加节日有礼活动</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="activity_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_time" placeholder="开始时间" id="start_time" readonly>
|
||||
<i class=" iconrili iconfont calendar"></i>
|
||||
</div>
|
||||
<div class="layui-form-mid">-</div>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input" name="end_time" placeholder="结束时间" id="end_time" readonly>
|
||||
<i class=" iconrili iconfont calendar"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<button type="button" class="layui-btn" lay-filter="search" lay-submit>筛选</button>
|
||||
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-tab table-tab" lay-filter="cards_tab">
|
||||
<ul class="layui-tab-title">
|
||||
<li class="layui-this" data-status="">全部</li>
|
||||
<li data-status="0">未开始</li>
|
||||
<li data-status="1">进行中</li>
|
||||
<li data-status="2">已结束</li>
|
||||
<li data-status="3">已关闭</li>
|
||||
</ul>
|
||||
<div class="layui-tab-content">
|
||||
<!-- 列表 -->
|
||||
<table id="festival_list" lay-filter="festival_list"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 时间 -->
|
||||
<script id="time" type="text/html">
|
||||
<div class="layui-elip">开始: {{ns.time_to_date(d.start_time)}}</div>
|
||||
<div class="layui-elip">结束:{{ns.time_to_date(d.end_time)}}</div>
|
||||
</script>
|
||||
|
||||
<!-- 状态 -->
|
||||
<script type="text/html" id="status">
|
||||
{{# if(d.status == 0){ }}
|
||||
未开始
|
||||
{{# }else if(d.status == 1){ }}
|
||||
进行中
|
||||
{{# }else if(d.status == 2){ }}
|
||||
已结束
|
||||
{{# }else if(d.status == 3){ }}
|
||||
已关闭
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<!-- 操作 -->
|
||||
<script type="text/html" id="operation">
|
||||
<div class="operation-wrap" data-game-id="{{d.game_id}}">
|
||||
<div class="popup-qrcode-wrap"><img class="popup-qrcode-loadimg" src="__STATIC__/loading/loading.gif" /></div>
|
||||
<div class="table-btn">
|
||||
<!-- <a class="layui-btn" lay-event="select">推广</a>-->
|
||||
<a class="layui-btn" lay-event="detail">详情</a>
|
||||
{{# if(d.status == 0){ }}
|
||||
<a class="layui-btn" lay-event="edit">编辑</a>
|
||||
<a class="layui-btn" lay-event="del">删除</a>
|
||||
{{# }else if(d.status == 1){ }}
|
||||
<a class="layui-btn" lay-event="close">关闭</a>
|
||||
<a class="layui-btn" lay-event="edit">编辑</a>
|
||||
<a class="layui-btn" lay-event="record">领取记录</a>
|
||||
{{# }else if(d.status == 2){ }}
|
||||
|
||||
<a class="layui-btn" lay-event="del">删除</a>
|
||||
<a class="layui-btn" lay-event="record">领取记录</a>
|
||||
{{# }else if(d.status == 3){ }}
|
||||
|
||||
<a class="layui-btn" lay-event="del">删除</a>
|
||||
<a class="layui-btn" lay-event="record">领取记录</a>
|
||||
{{# } }}
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<!-- 游戏推广 -->
|
||||
<script type="text/html" id="game_url">
|
||||
{{# if(d.path.h5.status == 1){ }}
|
||||
<img src="{{ ns.img(d.path.h5.img) }}" alt="推广二维码">
|
||||
<p class="qrcode-item-description">扫码后直接访问</p>
|
||||
<a class="text-color" href="javascript:ns.copy('h5_url_{{ d.game_id }}');">复制链接</a>
|
||||
<a class="text-color" href="{{ ns.img(d.path.h5.img) }}" download>下载二维码</a>
|
||||
<input class="layui-input" type="text" value="{{ d.path.h5.url }}" id="h5_url_{{ d.game_id }}" readonly>
|
||||
{{# } }}
|
||||
</script>
|
||||
<script>
|
||||
layui.use(['form', 'element','laytpl','laydate'], function() {
|
||||
var table,
|
||||
form = layui.form,
|
||||
laytpl = layui.laytpl,
|
||||
element = layui.element,
|
||||
laydate = layui.laydate,
|
||||
repeat_flag = false; //防重复标识
|
||||
form.render();
|
||||
|
||||
element.on('tab(cards_tab)', function() {
|
||||
table.reload({
|
||||
page: {
|
||||
curr: 1
|
||||
},
|
||||
where: {
|
||||
'status': this.getAttribute('data-status')
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
table = new Table({
|
||||
elem: '#festival_list',
|
||||
url: ns.url("scenefestival://shop/scenefestival/lists"),
|
||||
cols: [
|
||||
[{
|
||||
field:'activity_name',
|
||||
title: '活动名称',
|
||||
unresize: 'false',
|
||||
width:'15%'
|
||||
},
|
||||
{
|
||||
field:'festival_name',
|
||||
title: '节日名称',
|
||||
unresize: 'false',
|
||||
width:'15%'
|
||||
},{
|
||||
title: '参与条件',
|
||||
unresize: 'false',
|
||||
width:'15%',
|
||||
templet: function(data) {
|
||||
if(data.level_id == 0){
|
||||
return '全部会员';
|
||||
}else{
|
||||
return data.level_name;
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
title: '奖励发放时间',
|
||||
unresize: 'false',
|
||||
width:'15%',
|
||||
templet: function(data) {
|
||||
if(data.join_type == 1){
|
||||
return '活动时间内';
|
||||
}else{
|
||||
return '活动开始前'+data.join_frequency + '天';
|
||||
}
|
||||
}
|
||||
},
|
||||
// {
|
||||
// field:'winning_num',
|
||||
// title: '领取人数',
|
||||
// unresize: 'false',
|
||||
// width:'15%'
|
||||
// },
|
||||
{
|
||||
title: '状态',
|
||||
unresize: 'false',
|
||||
templet: '#status'
|
||||
}, {
|
||||
title: '活动时间',
|
||||
unresize: 'false',
|
||||
width: '14%',
|
||||
templet: '#time'
|
||||
}, {
|
||||
title: '操作',
|
||||
toolbar: '#operation',
|
||||
unresize: 'false',
|
||||
align:'right'
|
||||
}]
|
||||
]
|
||||
|
||||
});
|
||||
|
||||
//开始时间
|
||||
laydate.render({
|
||||
elem: '#start_time', //指定元素
|
||||
type: 'datetime'
|
||||
});
|
||||
//结束时间
|
||||
laydate.render({
|
||||
elem: '#end_time', //指定元素
|
||||
type: 'datetime'
|
||||
});
|
||||
|
||||
/**
|
||||
* 搜索功能
|
||||
*/
|
||||
form.on('submit(search)', function(data) {
|
||||
table.reload({
|
||||
page: {
|
||||
curr: 1
|
||||
},
|
||||
where: data.field
|
||||
});
|
||||
});
|
||||
|
||||
//监听Tab切换
|
||||
element.on('tab(status)', function(data) {
|
||||
var status = $(this).attr("data-status");
|
||||
table.reload({
|
||||
page: {
|
||||
curr: 1
|
||||
},
|
||||
where: {
|
||||
'status': status
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* 监听工具栏操作
|
||||
*/
|
||||
table.tool(function(obj) {
|
||||
var data = obj.data;
|
||||
switch (obj.event) {
|
||||
case 'detail': //详情
|
||||
location.hash = ns.hash("scenefestival://shop/scenefestival/detail", {"festival_id": data.festival_id});
|
||||
break;
|
||||
case 'edit': //编辑
|
||||
location.hash = ns.hash("scenefestival://shop/scenefestival/edit", {"festival_id": data.festival_id});
|
||||
break;
|
||||
case 'del': //删除
|
||||
deleteFestival(data.festival_id);
|
||||
break;
|
||||
case 'close': // 结束
|
||||
closeFestival(data.festival_id);
|
||||
break;
|
||||
case 'record': //领取记录
|
||||
location.hash = ns.hash("scenefestival://shop/record/lists", {"festival_id": data.festival_id});
|
||||
break;
|
||||
case 'select'://推广
|
||||
gameUrl(data);
|
||||
break;
|
||||
case 'start'://重启
|
||||
start(data.festival_id);
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*/
|
||||
function deleteFestival(festival_id) {
|
||||
layer.confirm('确定要删除该节日有礼活动吗?', function(index) {
|
||||
if (repeat_flag) return;
|
||||
repeat_flag = true;
|
||||
layer.close(index);
|
||||
|
||||
$.ajax({
|
||||
url: ns.url("scenefestival://shop/scenefestival/delete"),
|
||||
data: {
|
||||
festival_id: festival_id
|
||||
},
|
||||
dataType: 'JSON',
|
||||
type: 'POST',
|
||||
success: function(res) {
|
||||
layer.msg(res.message);
|
||||
repeat_flag = false;
|
||||
if (res.code == 0) {
|
||||
table.reload({
|
||||
page: {
|
||||
curr: 1
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}, function() {
|
||||
layer.close();
|
||||
repeat_flag = false;
|
||||
});
|
||||
}
|
||||
|
||||
// 结束
|
||||
function closeFestival(festival_id) {
|
||||
|
||||
layer.confirm('确定要关闭该节日有礼活动吗?', function(index) {
|
||||
if (repeat_flag) return;
|
||||
repeat_flag = true;
|
||||
layer.close(index);
|
||||
|
||||
$.ajax({
|
||||
url: ns.url("scenefestival://shop/scenefestival/finish"),
|
||||
data: {
|
||||
festival_id: festival_id
|
||||
},
|
||||
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 start(festival_id) {
|
||||
|
||||
layer.confirm('确定要重启该节日有礼活动吗?', function(index) {
|
||||
if (repeat_flag) return;
|
||||
repeat_flag = true;
|
||||
layer.close(index);
|
||||
|
||||
$.ajax({
|
||||
url: ns.url("scenefestival://shop/scenefestival/start"),
|
||||
data: {
|
||||
festival_id:festival_id
|
||||
},
|
||||
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 gameUrl(data) {
|
||||
$(".operation-wrap[data-game-id='" + data.game_id + "'] .popup-qrcode-wrap").css("display", "block");
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: ns.url("turntable://shop/turntable/gameUrl"),
|
||||
data: {
|
||||
'game_id': data.game_id
|
||||
},
|
||||
dataType: 'JSON',
|
||||
success: function (res) {
|
||||
if (res.data.path.h5.status == 1) {
|
||||
res.data.game_id = data.game_id;
|
||||
laytpl($("#game_url").html()).render(res.data, function (html) {
|
||||
$(".operation-wrap[data-game-id='" + data.game_id + "'] .popup-qrcode-wrap").html(html).show();
|
||||
|
||||
$("body").bind('click',function (e) {
|
||||
if (!$(e.target).closest(".popup-qrcode-wrap").length) {
|
||||
$(".operation-wrap[data-game-id='" + data.game_id + "'] .popup-qrcode-wrap").hide();
|
||||
$("body").unbind('click');
|
||||
}
|
||||
});
|
||||
});
|
||||
} else {
|
||||
layer.msg(res.data.path.h5.message);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
function add() {
|
||||
location.hash = ns.hash("scenefestival://shop/scenefestival/add");
|
||||
}
|
||||
</script>
|
||||
Reference in New Issue
Block a user