437 lines
19 KiB
HTML
437 lines
19 KiB
HTML
{include file="public/header" /}
|
|
|
|
|
|
|
|
<div class="page">
|
|
<div class="fixed-bar">
|
|
<div class="item-title">
|
|
<div class="subject">
|
|
<h3>抢购管理</h3>
|
|
<h5></h5>
|
|
</div>
|
|
{include file="public/admin_items" /}
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="dssc-form-default">
|
|
<form id="add_form" action="" method="post" enctype="multipart/form-data">
|
|
<dl>
|
|
<dt><i class="required">*</i>{$Think.lang.group_name}{$Think.lang.ds_colon}</dt>
|
|
<dd>
|
|
<input class="w400 text" name="groupbuy_name" type="text" id="groupbuy_name" value="" maxlength="30" />
|
|
<span></span>
|
|
<p class="hint">{$Think.lang.group_name_tip}</p>
|
|
</dd>
|
|
</dl>
|
|
<dl>
|
|
<dt>{$Think.lang.snap_up_subtitles}{$Think.lang.ds_colon}</dt>
|
|
<dd>
|
|
<input class="w400 text" name="remark" type="text" id="remark" value="" maxlength="30" />
|
|
<span></span>
|
|
<p class="hint">{$Think.lang.snap_up_subtitle_word_limit}</p>
|
|
</dd>
|
|
</dl>
|
|
<dl>
|
|
<dt><i class="required">*</i>{$Think.lang.start_time}{$Think.lang.ds_colon}</dt>
|
|
<dd>
|
|
<input id="start_time" name="start_time" type="text" class="text w130" /><em class="add-on"><i class="iconfont"></i></em><span></span>
|
|
<p class="hint">{$Think.lang.start_time_cannot_less_than}</p>
|
|
</dd>
|
|
</dl>
|
|
<dl>
|
|
<dt><i class="required">*</i>{$Think.lang.end_time}{$Think.lang.ds_colon}</dt>
|
|
<dd>
|
|
<input id="end_time" name="end_time" type="text" class="text w130"/><em class="add-on"><i class="iconfont"></i></em><span></span>
|
|
<p class="hint">
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<dl>
|
|
<dt><i class="required">*</i>{$Think.lang.groupbuy_goods}{$Think.lang.ds_colon}</dt>
|
|
<dd>
|
|
<div dstype="groupbuy_goods_info" class="selected-group-goods " style="display:none;">
|
|
<div class="goods-thumb"><img id="groupbuy_goods_image" src=""/></div>
|
|
<div class="goods-name">
|
|
<a dstype="groupbuy_goods_href" id="groupbuy_goods_name" href="" target="_blank"></a>
|
|
</div>
|
|
<div class="goods-price">{$Think.lang.shop_price}:¥<span dstype="groupbuy_goods_price"></span></div>
|
|
</div>
|
|
<a href="javascript:void(0);" id="btn_show_search_goods" class="dssc-btn dssc-btn-acidblue">{$Think.lang.groupbuy_index_choose_goods}</a>
|
|
<input id="groupbuy_goods_id" name="groupbuy_goods_id" type="hidden" value=""/>
|
|
<span></span>
|
|
<div id="div_search_goods" class="div-goods-select mt10" style="display: none;">
|
|
<table class="search-form">
|
|
<tr>
|
|
<th class="w150">
|
|
<strong>{$Think.lang.search_items}</strong>
|
|
</th>
|
|
<td class="w160">
|
|
<input id="search_goods_name" type="text w150" class="text" name="goods_name" value=""/>
|
|
</td>
|
|
<td class="w70 tc">
|
|
<a href="javascript:void(0);" id="btn_search_goods" class="dssc-btn"/><i class="iconfont"></i>{$Think.lang.ds_search}</a></td>
|
|
<td class="w10"></td>
|
|
<td>
|
|
<p class="hint">{$Think.lang.special_goods_not_allowed}</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<div id="div_goods_search_result" class="search-result" style="width:739px;"></div>
|
|
<a id="btn_hide_search_goods" class="close" href="javascript:void(0);">X</a>
|
|
</div>
|
|
<p class="hint">{$Think.lang.groupbuy_goods_explain}</br><span class="red">{$Think.lang.implement_uniform_purchase_prices}</span></p>
|
|
</dd>
|
|
</dl>
|
|
<dl dstype="groupbuy_goods_info" style="display:none;">
|
|
<dt>{$Think.lang.groupbuy_index_price}{$Think.lang.ds_colon}</dt>
|
|
<dd> {$Think.lang.currency}<span dstype="groupbuy_goods_price"></span><input id="input_groupbuy_goods_price" type="hidden"></dd>
|
|
</dl>
|
|
<dl>
|
|
<dt><i class="required">*</i>{$Think.lang.groupbuy_price}{$Think.lang.ds_colon}</dt>
|
|
<dd>
|
|
<input class="w70 text" id="groupbuy_price" name="groupbuy_price" type="text" value=""/><em class="add-on"><i class="iconfont"></i></em> <span></span>
|
|
<p class="hint">{$Think.lang.groupbuy_price_tip|raw}</p>
|
|
</dd>
|
|
</dl>
|
|
<dl>
|
|
<dt><i class="required">*</i>{$Think.lang.snap_up_photos}{$Think.lang.ds_colon}</dt>
|
|
<dd>
|
|
<div class="dssc-upload-thumb groupbuy-pic">
|
|
<p><i class="iconfont"></i>
|
|
<img dstype="img_groupbuy_image" style="display:none;" src=""/></p>
|
|
</div>
|
|
<input dstype="groupbuy_image" name="groupbuy_image" type="hidden" value="">
|
|
<div class="dssc-upload-btn">
|
|
<a href="javascript:void(0);">
|
|
<span>
|
|
<input type="file" hidefocus="true" size="1" class="input-file" name="groupbuy_image" dstype="btn_upload_image"/>
|
|
</span>
|
|
<p><i class="iconfont"></i>{$Think.lang.image_upload}</p>
|
|
</a>
|
|
</div>
|
|
<span></span>
|
|
<p class="hint">{$Think.lang.group_pic_explain|raw}</p>
|
|
</dd>
|
|
</dl>
|
|
<dl>
|
|
<dt>{$Think.lang.snap_recommended_images}{$Think.lang.ds_colon}</dt>
|
|
<dd>
|
|
<div class="dssc-upload-thumb groupbuy-commend-pic">
|
|
<p><i class="iconfont"></i>
|
|
<img dstype="img_groupbuy_image" style="display:none;" src=""/></p>
|
|
</div>
|
|
<input dstype="groupbuy_image" name="groupbuy_image1" type="hidden" value="">
|
|
<span></span>
|
|
<div class="dssc-upload-btn">
|
|
<a href="javascript:void(0);">
|
|
<span>
|
|
<input type="file" hidefocus="true" size="1" class="input-file" name="groupbuy_image" dstype="btn_upload_image"/>
|
|
</span>
|
|
<p><i class="iconfont"></i>{$Think.lang.image_upload}</p>
|
|
</a>
|
|
</div>
|
|
<p class="hint">{$Think.lang.group_pic_explain2|raw}</p>
|
|
</dd>
|
|
</dl>
|
|
<dl>
|
|
<dt>{$Think.lang.groupbuy_class}{$Think.lang.ds_colon}</dt>
|
|
<dd>
|
|
<select id="gclass_id" name="gclass_id" class="w80">
|
|
<option value="0">{$Think.lang.text_no_limit}</option>
|
|
</select>
|
|
<select id="s_gclass_id" name="s_gclass_id" class="w80">
|
|
<option value="0">{$Think.lang.text_no_limit}</option>
|
|
</select>
|
|
<span></span>
|
|
<p class="hint">{$Think.lang.groupbuy_class_tip}</p>
|
|
</dd>
|
|
</dl>
|
|
<dl>
|
|
<dt>{$Think.lang.virtual_quantity}{$Think.lang.ds_colon}</dt>
|
|
<dd>
|
|
<input class="w70 text" id="virtual_quantity" name="virtual_quantity" type="text" value="0"/>
|
|
<span></span>
|
|
<p class="hint">{$Think.lang.virtual_quantity_explain}</p>
|
|
</dd>
|
|
</dl>
|
|
<dl>
|
|
<dt>{$Think.lang.sale_quantity}{$Think.lang.ds_colon}</dt>
|
|
<dd>
|
|
<input class="w70 text" id="upper_limit" name="upper_limit" type="text" value="0"/>
|
|
<span></span>
|
|
<p class="hint">{$Think.lang.sale_quantity_explain}</p>
|
|
</dd>
|
|
</dl>
|
|
<dl>
|
|
<dt>{$Think.lang.group_intro}{$Think.lang.ds_colon}</dt>
|
|
<dd>
|
|
{:build_editor(['name'=>'content','content'=>''])}
|
|
<textarea name="groupbuy_intro" id="content"></textarea>
|
|
<p class="hr8"><a class="des_demo dssc-btn" href="{:url('Goodsalbum/pic_list',['item'=>'groupbuy'])}"><i class="iconfont"></i>{$Think.lang.goods_album_insert_users_photo}</a></p>
|
|
<p id="des_demo" style="display:none;"></p>
|
|
</dd>
|
|
</dl>
|
|
<div class="bottom">
|
|
<input type="submit" class="btn" value="{$Think.lang.ds_submit}">
|
|
</div>
|
|
</form>
|
|
</div>
|
|
<link rel="stylesheet" href="{$Think.PLUGINS_SITE_ROOT}/js/jquery-ui-timepicker/jquery-ui-timepicker-addon.min.css">
|
|
<script src="{$Think.PLUGINS_SITE_ROOT}/js/jquery-ui-timepicker/jquery-ui-timepicker-addon.min.js"></script>
|
|
<script src="{$Think.PLUGINS_SITE_ROOT}/js/jquery-ui-timepicker/i18n/jquery-ui-timepicker-zh-CN.js"></script>
|
|
<script src="{$Think.PLUGINS_SITE_ROOT}/js/jquery-file-upload/jquery.fileupload.js"></script>
|
|
<script src="{$Think.PLUGINS_SITE_ROOT}/jquery.ajaxContent.pack.js"></script>
|
|
<script type="text/javascript">
|
|
$(document).ready(function(){
|
|
$('#start_time').datetimepicker({dateFormat: 'yy-mm-dd'});
|
|
$('#end_time').datetimepicker({dateFormat: 'yy-mm-dd'});
|
|
|
|
$('#btn_show_search_goods').on('click', function() {
|
|
$('#div_search_goods').show();
|
|
});
|
|
|
|
$('#btn_hide_search_goods').on('click', function() {
|
|
$('#div_search_goods').hide();
|
|
});
|
|
|
|
//搜索商品
|
|
$('#btn_search_goods').on('click', function() {
|
|
var url = "{:url('Groupbuy/search_goods')}";
|
|
var datas = $.param({goods_name: $('#search_goods_name').val()});
|
|
$('#div_goods_search_result').load(url,datas);
|
|
});
|
|
|
|
$('#div_goods_search_result').on('click', '.pagination li a', function() {
|
|
$('#div_goods_search_result').load($(this).attr('href'));
|
|
return false;
|
|
});
|
|
|
|
//选择商品
|
|
$('#div_goods_search_result').on('click', '[dstype="btn_add_groupbuy_goods"]', function() {
|
|
var goods_commonid = $(this).attr('data-goods-commonid');
|
|
$.get("{:url('Groupbuy/groupbuy_goods_info')}", {goods_commonid: goods_commonid}, function(data) {
|
|
if(data.result) {
|
|
$('#groupbuy_goods_id').val(data.goods_id);
|
|
$('#groupbuy_goods_image').attr('src', data.goods_image);
|
|
$('#groupbuy_goods_name').text(data.goods_name);
|
|
$('[dstype="groupbuy_goods_price"]').text(data.goods_price);
|
|
$('#input_groupbuy_goods_price').val(data.goods_price);
|
|
$('[dstype="groupbuy_goods_href"]').attr('href', data.goods_href);
|
|
$('[dstype="groupbuy_goods_info"]').show();
|
|
$('#div_search_goods').hide();
|
|
} else {
|
|
layer.msg(data.message);
|
|
}
|
|
}, 'json');
|
|
});
|
|
|
|
//图片上传
|
|
$('[dstype="btn_upload_image"]').fileupload({
|
|
dataType: 'json',
|
|
url: "{:url('Groupbuy/image_upload')}",
|
|
add: function(e, data) {
|
|
$parent = $(this).parents('dd');
|
|
$input = $parent.find('[dstype="groupbuy_image"]');
|
|
$img = $parent.find('[dstype="img_groupbuy_image"]');
|
|
data.formData = {old_groupbuy_image:$input.val()};
|
|
$img.attr('src', "{$Think.HOME_SITE_ROOT}/images/loading.gif");
|
|
data.submit();
|
|
},
|
|
done: function (e,data) {
|
|
var result = data.result;
|
|
$parent = $(this).parents('dd');
|
|
$input = $parent.find('[dstype="groupbuy_image"]');
|
|
$img = $parent.find('[dstype="img_groupbuy_image"]');
|
|
if(result.result) {
|
|
$img.prev('i').hide();
|
|
$img.attr('src', result.file_url);
|
|
$img.show();
|
|
$input.val(result.file_name);
|
|
} else {
|
|
layer.msg(data.message);
|
|
}
|
|
}
|
|
});
|
|
|
|
jQuery.validator.methods.greaterThanDate = function(value, element, param) {
|
|
var date1 = new Date(Date.parse(param.replace(/-/g, "/")));
|
|
var date2 = new Date(Date.parse(value.replace(/-/g, "/")));
|
|
return date1 < date2;
|
|
};
|
|
|
|
jQuery.validator.methods.lessThanDate = function(value, element, param) {
|
|
var date1 = new Date(Date.parse(param.replace(/-/g, "/")));
|
|
var date2 = new Date(Date.parse(value.replace(/-/g, "/")));
|
|
return date1 > date2;
|
|
};
|
|
|
|
jQuery.validator.methods.greaterThanStartDate = function(value, element) {
|
|
var start_date = $("#start_time").val();
|
|
var date1 = new Date(Date.parse(start_date.replace(/-/g, "/")));
|
|
var date2 = new Date(Date.parse(value.replace(/-/g, "/")));
|
|
return date1 < date2;
|
|
};
|
|
|
|
jQuery.validator.methods.lessThanGoodsPrice= function(value, element) {
|
|
var goods_price = $("#input_groupbuy_goods_price").val();
|
|
return Number(value) < Number(goods_price);
|
|
};
|
|
|
|
jQuery.validator.methods.checkGroupbuyGoods = function(value, element) {
|
|
var start_time = $("#start_time").val();
|
|
var result = true;
|
|
$.ajax({
|
|
type:"GET",
|
|
url:"{:url('Groupbuy/check_groupbuy_goods')}",
|
|
async:false,
|
|
data:{start_time: start_time, goods_id: value},
|
|
dataType: 'json',
|
|
success: function(data){
|
|
if(!data.result) {
|
|
result = false;
|
|
}
|
|
}
|
|
});
|
|
return result;
|
|
};
|
|
|
|
//页面输入内容验证
|
|
$("#add_form").validate({
|
|
errorPlacement: function(error, element){
|
|
var error_td = element.parent('dd').children('span');
|
|
error_td.append(error);
|
|
},
|
|
onfocusout: false,
|
|
submitHandler:function(form){
|
|
ds_ajaxpost('add_form', 'url', "{:url('Groupbuy/index')}");
|
|
},
|
|
rules : {
|
|
groupbuy_name: {
|
|
required : true
|
|
},
|
|
start_time : {
|
|
required : true
|
|
},
|
|
end_time : {
|
|
required : true,
|
|
greaterThanStartDate : true
|
|
},
|
|
groupbuy_goods_id: {
|
|
required : true,
|
|
checkGroupbuyGoods: true
|
|
},
|
|
groupbuy_price: {
|
|
required : true,
|
|
number : true,
|
|
lessThanGoodsPrice: false,
|
|
min : 0.01,
|
|
max : 1000000
|
|
},
|
|
virtual_quantity: {
|
|
required : true,
|
|
digits : true
|
|
},
|
|
upper_limit: {
|
|
required : true,
|
|
digits : true
|
|
},
|
|
groupbuy_image1: {
|
|
required : true
|
|
}
|
|
},
|
|
messages : {
|
|
groupbuy_name: {
|
|
required : '<i class="iconfont"></i>{$Think.lang.group_name_error}'
|
|
},
|
|
start_time : {
|
|
required : '<i class="iconfont"></i>{$Think.lang.start_time_cannot_empty}'
|
|
},
|
|
end_time : {
|
|
required : '<i class="iconfont"></i>{$Think.lang.end_snap_time_cannot_empty}',
|
|
greaterThanStartDate : '<i class="iconfont"></i>{$Think.lang.must_greater_start_time}'
|
|
},
|
|
groupbuy_goods_id: {
|
|
required : '<i class="iconfont"></i>{$Think.lang.group_goods_error}',
|
|
checkGroupbuyGoods: '{$Think.lang.product_participated_simultaneous_events}'
|
|
},
|
|
groupbuy_price: {
|
|
required : '<i class="iconfont"></i>{$Think.lang.groupbuy_price_error}',
|
|
number : '<i class="iconfont"></i>{$Think.lang.groupbuy_price_error}',
|
|
lessThanGoodsPrice: '<i class="iconfont"></i>{$Think.lang.price_must_less_price_goods}',
|
|
min : '<i class="iconfont"></i>{$Think.lang.groupbuy_price_error}',
|
|
max : '<i class="iconfont"></i>{$Think.lang.groupbuy_price_error}'
|
|
},
|
|
virtual_quantity: {
|
|
required : '<i class="iconfont"></i>{$Think.lang.virtual_quantity_error}',
|
|
digits : '<i class="iconfont"></i>{$Think.lang.virtual_quantity_error}'
|
|
},
|
|
upper_limit: {
|
|
required : '<i class="iconfont"></i>{$Think.lang.sale_quantity_error}',
|
|
digits : '<i class="iconfont"></i>{$Think.lang.sale_quantity_error}'
|
|
},
|
|
groupbuy_image1: {
|
|
required : '<i class="iconfont"></i>{$Think.lang.snap_images_cannot_empty}'
|
|
}
|
|
}
|
|
});
|
|
|
|
$('#li_1').click(function(){
|
|
$('#li_1').attr('class','active');
|
|
$('#li_2').attr('class','');
|
|
$('#demo').hide();
|
|
});
|
|
|
|
$('#goods_demo').click(function(){
|
|
$('#li_1').attr('class','');
|
|
$('#li_2').attr('class','active');
|
|
$('#demo').show();
|
|
});
|
|
|
|
$('.des_demo').click(function(){
|
|
if($('#des_demo').css('display') == 'none'){
|
|
$('#des_demo').show();
|
|
}else{
|
|
$('#des_demo').hide();
|
|
}
|
|
});
|
|
|
|
$('.des_demo').ajaxContent({
|
|
event:'click', //mouseover
|
|
loaderType:"img",
|
|
loadingMsg:"{$Think.HOME_SITE_ROOT}/images/loading.gif",
|
|
target:'#des_demo'
|
|
});
|
|
});
|
|
|
|
function insert_editor(file_path){
|
|
ue.execCommand('insertimage', {src:file_path});
|
|
}
|
|
|
|
(function(data) {
|
|
var s = '<option value="0">{$Think.lang.text_no_limit}</option>';
|
|
if (typeof data.children != 'undefined') {
|
|
if (data.children[0]) {
|
|
$.each(data.children[0], function(k, v) {
|
|
s += '<option value="'+v+'">'+data['name'][v]+'</option>';
|
|
});
|
|
}
|
|
}
|
|
$('#gclass_id').html(s).change(function() {
|
|
var ss = '<option value="0">{$Think.lang.text_no_limit}</option>';
|
|
var v = this.value;
|
|
if (parseInt(v) && data.children[v]) {
|
|
$.each(data.children[v], function(kk, vv) {
|
|
ss += '<option value="'+vv+'">'+data['name'][vv]+'</option>';
|
|
});
|
|
}
|
|
$('#s_gclass_id').html(ss);
|
|
});
|
|
})($.parseJSON('{:json_encode($groupbuy_classes)}'));
|
|
</script>
|
|
|
|
|
|
|
|
</div>
|
|
|