var selectedSkuId = [], sku_list = [], time_list = [], form, laydate, timeTable, minDate, currentDate = new Date(), repeat_flag = false; //防重复标识; layui.use(['form', 'laydate'], function () { form = layui.form; laydate = layui.laydate; minDate = ""; form.render(); currentDate.setDate(currentDate.getDate() + 30); if ($("input[name='id']").val()) { time_list = JSON.parse($('input[name="time_list"]').val()); sku_list = JSON.parse($('input[name="sku_list"]').val()); laydate.render({ elem: '#start_time', type: 'datetime', done: function (value) { minDate = value; reRender(); } }); laydate.render({ elem: '#end_time', type: 'datetime' }); } else { 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) }); } renderTimeTable(); initTimeList(); renderTable(); form.on('submit(save)', function (data) { if (verify()) { var goods_data = []; if (data.field.id) { for (var i in sku_list) { if (sku_list[i]['is_select'] == 1) { goods_data.push(sku_list[i]); } } data.field.sku_list = goods_data; } else { for (var i in sku_list) { var goods = {}; goods.goods_id = sku_list[i]['goods_id']; if (goods_data.length == 0) { goods_data.push(goods); } else { $.each(goods_data, function (index, event) { if (goods_data.length == index + 1 && event.goods_id != goods.goods_id) { goods_data.push(goods); } }) } } $.each(goods_data, function (i, e) { goods_data[i]['sku_list'] = []; $.each(sku_list, function (index, event) { if (event.goods_id == e.goods_id) { goods_data[i]['sku_list'].push(event); } }) }); data.field.goods_data = goods_data; } var goods_ids = []; goods_data.forEach(function (item) { goods_ids.push(item.goods_id); }); data.field.goods_ids = goods_ids.toString(); if (repeat_flag) return; repeat_flag = true; $.ajax({ url: data.field.id ? ns.url("seckill://shop/seckill/updateGoods") : ns.url("seckill://shop/seckill/addGoods"), data: data.field, dataType: 'JSON', type: 'POST', success: function (res) { repeat_flag = false; if (res.code == 0) { layer.confirm(data.field.id ? '编辑成功' : '添加成功', { title: '操作提示', btn: ['返回列表', data.field.id ? '继续操作' : '继续添加'], closeBtn: 0, yes: function (index, layero) { location.hash = ns.hash("seckill://shop/seckill/goodslist") layer.close(index); }, btn2: function (index, layero) { listenerHash(); // 刷新页面 layer.close(index); } }); } else { layer.msg(res.message); } } }); } }); 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 = $("#old_end_time").val(); if (now_time > end_time) { return '结束时间不能小于当前时间!' } if (start_time > end_time) { return '结束时间不能小于开始时间!'; } if (old_end_time && old_end_time > end_time) { return '结束时间不能小于之前设置的结束时间!'; } }, seckilltime: function (value, item) { if (value == "" || value == 0) { return '请选择时间段'; } } }); $("body").off("click", ".no-participation").on("click", ".no-participation", function () { $(this).text("参与"); $(this).parents("tr").find("input").each(function (index, item) { $(item).attr("readonly", true); $(item).attr("disabled", true); $(item).addClass("forbidden"); $(item).attr("lay-verify", ""); }); $(this).addClass("participation").removeClass("no-participation"); sku_list[$(this).parents("tr").attr("data-index")].is_select = 0; }); $("body").off("click", ".participation").on("click", ".participation", function () { $(this).text("不参与"); $(this).parents("tr").find("input").each(function (index, item) { $(item).attr("readonly", false); $(item).attr("disabled", false); $(item).removeClass("forbidden"); }); $(this).removeClass("participation").addClass("no-participation"); sku_list[$(this).parents("tr").attr("data-index")].is_select = 1; }); }); // 重新渲染结束时间 function reRender() { $("#end_time").remove(); $(".end-time").html(' '); laydate.render({ elem: '#end_time', type: 'datetime', min: minDate }); } function verify() { if ($('input[name="seckill_time_id"]').val() == '') { layer.msg('请选择场次', {icon: 5, anim: 6}); return false; } if (sku_list.length == 0) { layer.msg('请选择商品', {icon: 5, anim: 6}); return false; } for (var i in sku_list) { if (sku_list[i]['max_buy'] < 0) { layer.msg('商品限购不可小于0', {icon: 5, anim: 6}); return false; } if (sku_list[i]['seckill_price'] <= 0) { layer.msg('秒杀价不可小于等于0', {icon: 5, anim: 6}); return false; } if (sku_list[i]['seckill_stock'] > sku_list[i]['stock']) { layer.msg('秒杀库存不能大于商品库存', {icon: 5, anim: 6}); return false; } } return true; } function delGoods(obj, id) { var sku_ids = []; for (let i = 0; i < sku_list.length; i++) { if (sku_list[i].sku_id == parseInt(id)) { sku_list.splice(i, 1); } } for (let i = 0; i < sku_list.length; i++) { sku_ids.push(sku_list[i].sku_id); } $(obj).parents("tr").remove(); $("#goods_num").html(sku_list.length); selectedSkuId = sku_ids.toString(); } // 表格渲染 function renderTable() { //展示已知数据 table = new Table({ elem: '#selected_goods_list', page: false, limit: Number.MAX_VALUE, cols: [ [ { width: "3%", type: 'checkbox', unresize: 'false' }, { field: 'sku_name', title: '商品名称', width: '22%', unresize: 'false', templet: function (data) { var html = ''; html += `
${data.sku_name}
¥' + data.price + '
'; } }, { field: 'stock', title: '库存', unresize: 'false', width: '9%', templet: function (data) { return '' + data.stock + '
'; } }, { field: 'max_buy', title: '限购(0为不限购)', unresize: 'false', width: '14%', templet: '#maxBuy' }, { title: '秒杀价', unresize: 'false', width: '15%', templet: '#seckillPrice' }, { title: '秒杀库存', unresize: 'false', width: '12%', templet: '#seckillStock' }, { title: '操作', toolbar: '#operation', unresize: 'false', }] ], data: sku_list, toolbar: '#toolbarOperation' }); table.toolbar(function (obj) { if (obj.data.length < 1) { layer.msg('请选择要操作的数据'); return; } switch (obj.event) { case "seckill-purchase": editInput(0, obj); break; case "seckill-price": editInput(1, obj); break; case "seckill-stock": editInput(2, obj); break; } }); } function editInput(textIndex = 0, data) { var text = [{ name: '限购', value: 'max_buy' }, { name: '秒杀价', value: 'seckill_price' }, { name: '秒杀库存', value: 'seckill_stock' }]; console.log(text[textIndex].value) if(text[textIndex].value == 'seckill_price'){ var html =`