文件

685 行
32 KiB
HTML
可执行文件

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

<!DOCTYPE html>
<html>
<!--[1.4.36]-->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
<link rel="stylesheet" type="text/css" href="__PUBLIC__/layui/css/layui.css"/>
<link rel="stylesheet" type="text/css" href="__PUBLIC__/Retail/css/goodsList.css"/>
<style>
.layui-form-label {
width: 120px;
}
.layui-card-body {
margin-top: -15px;
}
span {
color: #313131;
}
div {
color: #313131;
}
</style>
</head>
<body>
<div>
<fieldset class="layui-elem-field layui-field-title">
<legend>商品</legend>
</fieldset>
<form class="layui-form" style="margin:10px 30px;">
<input type="hidden" id="gid" value="">
<input type="hidden" id="attribute" value="">
<div class="layui-card">
<div class="layui-card-body layui-row layui-col-space10">
<label class="layui-form-label" style="margin:5px auto;">
<span style="color:red;">*&nbsp;</span>
<span>选择商品:</span>
</label>
<div class="layui-col-md6">
<div class="layui-upload">
<div class="layui-upload-list">
<img class="layui-upload-img" src="__PUBLIC__/Group/add.png" id="_image"
style="width: 100px;height: 100px;border: 1px dashed #c2ccd1;">
<p id="demoText"></p>
</div>
</div>
</div>
</div>
<div class="layui-card-body layui-row layui-col-space10">
<label class="layui-form-label" style="margin:5px auto;">
<span style="color:red;">*&nbsp;</span>
<span>商品名称:</span>
</label>
<div class="layui-col-md6">
<input type="text" name="goods_name" id="goods_name" readonly autocomplete="off" class="layui-input"
style="width:500px;">
</div>
</div>
<div class="layui-card-body layui-row layui-col-space10">
<label class="layui-form-label" style="margin:5px auto;">
<span style="color:red;">*&nbsp;</span>
<span>商城售价:</span>
</label>
<div class="layui-col-md6">
<input type="text" name="goods_price" id="goods_price" readonly autocomplete="off"
class="layui-input" style="width:500px;">
</div>
</div>
<div class="layui-card-body layui-row layui-col-space10">
<label class="layui-form-label" style="margin:5px auto;">
<span style="color:red;">*&nbsp;</span>
<span style="">商品库存:</span>
</label>
<div class="layui-col-md6">
<input type="text" name="goods_num" id="goods_num" readonly autocomplete="off" class="layui-input"
style="width:500px;">
</div>
</div>
</div>
</form>
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 50px;">
<legend>活动</legend>
</fieldset>
<form class="layui-form" style="margin:10px 30px;">
<div class="layui-card">
<div class="layui-card-body layui-row layui-col-space10">
<label class="layui-form-label" style="margin:5px auto;">
<span style="color:red;">*&nbsp;</span>
<span>拼团活动标题</span>
</label>
<div class="layui-col-md6">
<input class="layui-input" style="width:500px;" type="text" name="actname" id="actname"
placeholder="请输入拼团活动标题" autocomplete="off">
</div>
</div>
<div class="layui-card-body layui-row layui-col-space10" id="actpricediv">
<label class="layui-form-label" style="margin:5px auto;">
<span style="color:red;">*&nbsp;</span>
<span>活动售价:</span>
</label>
<div class="layui-col-md2">
<input type="text" name="actprice" id="actprice" placeholder="请输入拼团出售价格" autocomplete="off"
class="layui-input" onkeyup="value=value.replace(/[^\d\.]/g,'')">
</div>
<div class="layui-col-md1"></div>
<div class="layui-col-md5" style="margin-top: 5px;">
<span style="color:red;font-size:12px;">规格商品只作为展示作用。</span>
</div>
</div>
<div class="layui-card-body layui-row layui-col-space10" id="actnumdiv" style="display: block;">
<label class="layui-form-label" style="margin:5px auto;">
<span style="color:red;">*&nbsp;</span>
<span>活动库存:</span>
</label>
<div class="layui-col-md2">
<input type="text" name="actnum" id="actnum" placeholder="请输入拼团活动库存" autocomplete="off"
class="layui-input" onkeyup="value=value.replace(/[^\d]/g,'')">
</div>
</div>
<div class="layui-card-body layui-row layui-col-space10" id="skudiv" style="display: none;">
<label class="layui-form-label" style="margin:5px auto;">
<span style="color:red;">*&nbsp;</span>
<span>规格选择:</span>
</label>
<div class="layui-col-md8">
<table class="layui-hide" id="skuTest" lay-filter="skudemo"></table>
</div>
</div>
<div class="layui-card-body layui-row layui-col-space10">
<label class="layui-form-label" style="margin:5px auto;">
<span style="color:red;">*&nbsp;</span>
<span>起止日期:</span>
</label>
<div style="display: flex;align-items: center;">
<div class="layui-col-md3">
<input type="text" class="layui-input" id="starttime" placeholder="起始日期" autocomplete="off">
</div>
<div style="text-align: center;margin: 5px;">-</div>
<div class="layui-col-md3">
<input type="text" class="layui-input" id="endtime" placeholder="截止日期" autocomplete="off">
</div>
</div>
</div>
<div style="display: flex;">
<label class="layui-form-label" style="margin: 5px 5px 5px 10px;;white-space: nowrap;">
<span style="color:red;">*&nbsp;</span>
<span>有效时间:</span>
</label>
<select name="day" id="day" lay-verify="">
<option value=""></option>
<option value="1">01</option>
<option value="2">02</option>
<option value="3">03</option>
<option value="4">04</option>
<option value="5">05</option>
<option value="6">06</option>
<option value="7">07</option>
<option value="8">08</option>
<option value="9">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="28">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
</select>
<span style="text-align: center;margin: 10px;">天</span>
<select name="hour" id="hour" lay-verify="">
<option value=""></option>
<option value="1">01</option>
<option value="2">02</option>
<option value="3">03</option>
<option value="4">04</option>
<option value="5">05</option>
<option value="6">06</option>
<option value="7">07</option>
<option value="8">08</option>
<option value="9">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
</select>
<span style="text-align: center;margin: 10px;">时</span>
<select name="min" id="min" lay-verify="">
<option value=""></option>
<option value="1">01</option>
<option value="2">02</option>
<option value="3">03</option>
<option value="4">04</option>
<option value="5">05</option>
<option value="6">06</option>
<option value="7">07</option>
<option value="8">08</option>
<option value="9">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
<option value="32">32</option>
<option value="33">33</option>
<option value="34">34</option>
<option value="35">35</option>
<option value="36">36</option>
<option value="37">37</option>
<option value="38">38</option>
<option value="39">39</option>
<option value="40">40</option>
<option value="41">41</option>
<option value="42">42</option>
<option value="43">43</option>
<option value="44">44</option>
<option value="45">45</option>
<option value="46">46</option>
<option value="47">47</option>
<option value="48">48</option>
<option value="49">49</option>
<option value="50">50</option>
<option value="51">51</option>
<option value="52">52</option>
<option value="53">53</option>
<option value="54">54</option>
<option value="55">55</option>
<option value="56">56</option>
<option value="57">57</option>
<option value="58">58</option>
<option value="59">59</option>
</select>
<span style="text-align: center;margin: 10px;">分</span>
</div>
<div class="layui-card-body layui-row layui-col-space10">
<label class="layui-form-label" style="margin:5px auto;">
<span style="color:red;">*&nbsp;</span>
<span>最少拼团人数:</span>
</label>
<div class="layui-col-md2">
<input type="text" name="number" value="2" id="number" autocomplete="off" class="layui-input"
onkeyup="value=value.replace(/[^\d]/g,'')">
</div>
<div class="layui-col-md1"></div>
<div class="layui-col-md5" style="margin-top: 5px;">
<span style="color:red;font-size:12px;">最少2人,当足两人时可成团,在确认成团前下单可参与该团,即最大人数不限</span>
</div>
</div>
<div class="layui-card-body layui-row layui-col-space10">
<label class="layui-form-label" style="margin:5px auto;">
<span style="color:red;">*&nbsp;</span>
<span>限制购买次数:</span>
</label>
<div class="layui-col-md2">
<input type="text" name="join_time" value="1" id="join_time" autocomplete="off" class="layui-input"
onkeyup="value=value.replace(/[^\d]/g,'')">
</div>
<div class="layui-col-md1"></div>
<div class="layui-col-md5" style="margin-top: 5px;">
<span style="color:red;font-size:12px;">每人限制购买次数,默认1次。0为不限制</span>
</div>
</div>
<div class="layui-card-body layui-row layui-col-space10">
<label class="layui-form-label" style="margin:5px auto;">
<span style="color:red;">*&nbsp;</span>
<span>单次商品限购:</span>
</label>
<div class="layui-col-md2">
<input type="text" name="item" id="item" placeholder="单次限购几件" autocomplete="off" class="layui-input"
onkeyup="value=value.replace(/[^\d]/g,'')">
</div>
<div class="layui-col-md1"></div>
<div class="layui-col-md5" style="margin-top: 5px;">
<span style="color:red;font-size:12px;">单次购买限制最大数量,最大10件</span>
</div>
</div>
<div class="layui-card-body layui-row layui-col-space10">
<label class="layui-form-label" style="margin:5px auto;">
<span style="color:red;">*&nbsp;</span>
<span>起购数量:</span>
</label>
<div class="layui-col-md2">
<input type="text" name="rise_num" id="rise_num" placeholder="起购数量" autocomplete="off" class="layui-input"
onkeyup="value=value.replace(/[^\d]/g,'')">
</div>
<div class="layui-col-md1"></div>
<div class="layui-col-md5" style="margin-top: 5px;">
<span style="color:red;font-size:12px;">单次购买起购数量,最大10件</span>
</div>
</div>
<div class="layui-card-body layui-row layui-col-space10">
<label class="layui-form-label"><span style="color:red;">*&nbsp;</span><span>配送方式:</span></label>
<div style="display: flex;align-items: center;margin-top: 5px;">
<input type="checkbox" lay-filter="send_type" lay-skin="primary" name="send_type"
value="1" title="自提">
<input type="checkbox" lay-filter="send_type" lay-skin="primary" name="send_type"
value="2" title="配送">
<input type="checkbox" lay-filter="send_type" lay-skin="primary" name="send_type"
value="3" title="快递">
</div>
</div>
<div id="template" class="layui-card-body layui-row layui-col-space10">
<label class="layui-form-label"><span style="color:red;">*&nbsp;</span><span>配送模板:</span></label>
<div style="display: flex;align-items: center;">
<select name="delivery_template_id" lay-filter="delivery_template" lay-search>
<option value=""></option>
<volist name="delivery_template" id="vo">
<option value="{$vo.id}">{$vo.title}</option>
</volist>
</select>
</div>
</div>
<div class="layui-card-body layui-row layui-col-space10">
<label class="layui-form-label"><span>推荐:</span></label>
<div style="display: flex;align-items: center;margin-top: -5px;">
<input type="checkbox" name="is_recommend" lay-skin="switch">
</div>
</div>
</div>
</form>
</div>
<form class="layui-form" action="">
<div class="layui-form-item" style="margin-top:2%;">
<label class="layui-form-label"></label>
<div class="layui-input-block" style="margin-left:30%;">
<button class="layui-btn" type="button" id="submit">创建拼团</button>
</div>
</div>
</form>
<div id="goodsList" style="display: none;">
<div style="width:90%;margin: 10px 20px;">
<div style="display: flex;">
<input type="text" name="title" placeholder="商品名称" class="layui-input" id="keyword"
style="width:250px;margin-right:10px;">
<button type="button" class="layui-btn" id="search">搜索</button>
</div>
<script type="text/html" id="barDemo">
<a class="layui-btn layui-btn-sm choose" lay-event="choose">选择</a>
</script>
<table class="layui-hide" id="test" lay-filter="demo"></table>
</div>
</div>
<script src="__PUBLIC__/jquery/js/jquery-3.2.1.min.js"></script>
<script type="text/javascript" src="__PUBLIC__/layui/layui.js"></script>
<!-- 注意:如果你直接复制所有代码到本地,上述js路径需要改成你本地的 -->
<script>
layui.use(['form', 'layedit', 'laydate', 'table'], function () {
var form = layui.form;
var layer = layui.layer;
var laydate = layui.laydate;
var table = layui.table;
// layer日期选择器
laydate.render({
elem: '#starttime',
type: 'datetime'
});
laydate.render({
elem: '#endtime',
type: 'datetime'
});
// 选择商品
$('#_image').click(function () {
layer.open({
type: 1,
title: '选择商品',
area: ["1000px", '80%'],
shadeClose: true,
content: $("#goodsList"),
});
});
// 获取商品
table.render({
elem: '#test',
url: "{:U('getGoodsOnlineList')}",
method: 'post',
width: 900,
limit: 10,
cols:
[[
{type: 'numbers', title: '序号'},
{field: 'goods_name', title: '商品名称', width: 180},
{field: 'goods_num', title: '商品库存', width: 180},
{field: 'online_price', title: '零售价', width: 180},
{field: 'add_time', title: '创建时间', width: 180},
{fixed: 'right', title: '操作', toolbar: '#barDemo'}
]],
page: {
layout: ['count', 'prev', 'page', 'next', 'skip'] //自定义分页布局
}, //是否开启分页
id: 'test_goods',
});
// 商品查询
$('#search').click(function () {
//执行重载
table.reload('test_goods', {
page: {
curr: 1 //重新从第 1 页开始
}
, where: {
keyword: $('#keyword').val(),
}
});
})
//选择商品
table.on('tool(demo)', function (obj) {
var data = obj.data;
if (obj.event === 'choose') {
var gid = data.id;
var attribute = data.attribute_state;
var image = data.image;
var goods_num = parseInt(data.goods_num);
var goods_name = data.goods_name;
var goods_price = data.online_price;
if (goods_num < 0 || goods_num == 0) {
layer.msg('库存不足', {icon: 7, time: 1500});
return;
}
if (gid && goods_name && goods_price && attribute) {
layer.closeAll();
$('#gid').val(gid);
$('#goods_num').val(goods_num);
$('#attribute').val(attribute);
$('#_image').attr('src', image);
$('#goods_name').val(goods_name);
$('#goods_price').val(goods_price);
}
// 判断规格
if (attribute == 2) {
$('#actnumdiv').css('display', 'none');
$('#skudiv').css('display', 'block');
table.render({
elem: '#skuTest',
url: "{:U('getGoodsSku')}",
where: {goods_id: gid},
method: 'post',
cols:
[[
{checkbox: true, LAY_CHECKED: true, title: '全选'},
{field: 'sku_name', title: '规格'},
{field: 'goods_num', title: '库存'},
{field: 'sku_num', title: '基数'},
{field: 'online_price', title: '规格售价'},
{field: 'actnum', title: '设置库存', edit: 'text'},
{field: 'actprice', title: '设置价格', edit: 'text'}
]],
});
} else {
$('#actnumdiv').css('display', 'block');
$('#skudiv').css('display', 'none');
}
}
});
$('#template').hide();
var send_type = [];
form.on('checkbox(send_type)', function (data) {
var obj = data.elem;
var index = send_type.indexOf(obj.value);
if (obj.checked) {
if (index == -1) {
send_type.push(obj.value);
}
if (obj.value == 3) {
$('#template').show();
}
} else {
if (index != -1) {
send_type.splice(index, 1);
}
if (obj.value == 3) {
$('#template').hide();
}
}
})
form.on('select(delivery_template)', function (data) {
console.log(data);
})
// 创建活动
$("#submit").click(function () {
// 判断是否选择商品
if (!$('#goods_name').val() || !$('#gid').val()) {
layer.msg('请选择商品', {icon: 7, time: 1500});
return;
}
// 判断是否输入活动名称
if (!$('#actname').val()) {
layer.msg('请输入拼团活动标题', {icon: 7, time: 1500});
return;
}
// 判断售价
if (!$('#actprice').val() || parseFloat($('#actprice').val()) <= 0) {
layer.msg('活动售价设置有误', {icon: 7, time: 1500});
return;
}
// 判断规格
if ($('#attribute').val() == 1) {
// 判断库存
if (!$('#actnum').val()) {
layer.msg('请设置活动库存', {icon: 7, time: 1500});
return;
} else if (parseInt($('#goods_num').val()) <= 0 || parseInt($('#actnum').val()) > parseInt($('#goods_num').val())) {
layer.msg('活动库存不能大于原库存,不能为0', {icon: 7, time: 1500});
return;
}
} else {
// 判断规格
var checkStatus = table.checkStatus('skuTest'); //test 即为基础参数 id 对应的值
var skuarr = checkStatus.data;
if (skuarr.length <= 0) {
layer.msg('请选择规格,如果未设置,请先设置规格', {icon: 7, time: 1500});
return;
}
for (var i = 0; i < skuarr.length; i++) {
var act_num = parseInt(skuarr[i].actnum);
var _num = parseInt(skuarr[i].goods_num);
var sku_num = skuarr[i].sku_num;
if (!act_num) {
layer.msg('请为每个规格商品设置拼团库存', {icon: 7, time: 1500});
return;
} else if (act_num <= 0) {
layer.msg('请为每个规格商品设置活动库存', {icon: 7, time: 1500});
return;
} else if (act_num > _num) {
layer.msg('活动库存不能大于该规格库存,不能为0', {icon: 7, time: 1500});
return;
}
if (!skuarr[i].actprice || skuarr[i].actprice <= 0) {
layer.msg('请为每个规格商品设置拼团售价,拼团售价大于等于0元', {icon: 7, time: 1500});
return;
}
}
}
// 判断活动时间
var starttime = $('#starttime').val();
var d_starttime = Date.parse(new Date(starttime));
if (!starttime) {
layer.msg('请选择活动起始日期', {icon: 7, time: 1500});
return;
}
var endtime = $('#endtime').val();
var d_endtime = Date.parse(new Date(endtime));
if (!endtime) {
layer.msg('请选择活动截日期', {icon: 7, time: 1500});
return;
} else if (d_endtime <= d_starttime) {
layer.msg('截止日期必须晚于起始日期', {icon: 7, time: 1500});
return;
}
// 判断有效时间
if (!$('#day').val() && !$('#hour').val() && !$('#min').val()) {
layer.msg('请选择有效时间,最少1分钟!', {icon: 7, time: 1500});
return;
}
// 判断人数
if (!$('#number').val() || $('#number').val() < 2 || parseInt($('#number').val()) != $('#number').val()) {
layer.msg('拼团人数至少两人', {icon: 7, time: 1500});
return;
}
// 判断限制购买
if (!$('#join_time').val() || $('#join_time').val() < 0 || parseInt($('#join_time').val()) != $('#join_time').val()) {
layer.msg('限制购买次数', {icon: 7, time: 1500});
return;
}
// 判断单次限购
if (!$('#item').val() || parseInt($('#item').val()) != $('#item').val() || $('#item').val() < 1 || $('#item').val() > 10) {
layer.msg('请输入单件限购数量,最少一件,最多不能超过十件!', {icon: 7, time: 1500});
return;
}
// 判断单次限购
if (!$('#rise_num').val() || parseInt($('#rise_num').val()) != $('#rise_num').val() || $('#rise_num').val() < 1 || $('#rise_num').val() > 10) {
layer.msg('请输入单件起购数量,最多不能超过十件!', {icon: 7, time: 1500});
return;
}
if(parseFloat($('#rise_num').val()) > parseFloat($('#item').val())){
layer.msg('起购数量不能大于限购数量', {icon: 7, time: 1500});
return;
}
if (!send_type.length) {
layer.msg('请选择配送方式');
return;
}
if (!$("select[name='delivery_template_id']").val() && send_type.indexOf('3') != -1) {
layer.msg('请选择配送模板');
return;
}
$.ajax({
url: "{:U('add')}",
type: "post",
data: {
gid: $('#gid').val(),
actname: $('#actname').val(),
actprice: $('#actprice').val(),
actnum: $('#actnum').val(),
starttime: starttime,
endtime: endtime,
day: $('#day').val(),
hour: $('#hour').val(),
min: $('#min').val(),
number: $('#number').val(),
join_time: $('#join_time').val(),
item: $('#item').val(),
rise_num: $('#rise_num').val(),
send_type: send_type.join(','),
delivery_template_id: $("select[name='delivery_template_id']").val(),
skuarr: skuarr ? skuarr : '',
is_recommend: $('[name="is_recommend"]').prop('checked') ? 1 : 0
},
success: function (res) {
if (res.status == 1) {
layer.msg(res.msg, {time: 1000, icon: 1}, function () {
var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
parent.layer.close(index); //再执行关闭
});
} else {
layer.msg(res.msg, {icon: 2, time: 1500});
}
}
})
})
//监听提交
form.on('submit(demo1)', function (data) {
layer.alert(JSON.stringify(data.field), {
title: '最终的提交信息'
})
return false;
});
});
function back() {
var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
parent.layer.close(index); //再执行关闭
}
</script>
</body>
</html>