【优化】优化全局营销,团购,秒杀优惠模式结算策略,增加了优惠是否针对单个数量或者批量购买的情况。

This commit is contained in:
jianweie code
2023-11-08 17:02:08 +08:00
parent daa7bc371f
commit 685a9a39f1
5 changed files with 259 additions and 6 deletions

View File

@@ -78,7 +78,7 @@
</div>
</div>
<blockquote class="layui-elem-quote layui-quote-nm">
1优惠券结果为多条叠加请注意设置了商品减免20元又设置了订单减免50元那么一个优惠券将优惠了70元
1优惠券结果只能为一个结果但是优惠券可以和全局促销一起使用请注意合理规避计算风险
</blockquote>
<div class="layui-form-item">
<label class="layui-form-label">

View File

@@ -185,18 +185,21 @@
return false;
}
parameters.money = field.money;
parameters.isApplyToNum = field.isApplyToNum;
} else if (field.code === 'GOODS_DISCOUNT') { //指定商品打X折
if (!!!field.discount) {
layer.msg("请输入折扣");
return false;
}
parameters.discount = field.discount;
parameters.isApplyToNum = field.isApplyToNum;
} else if (field.code === 'GOODS_ONE_PRICE') {//指定商品一口价
if (!!!field.money) {
layer.msg("请输入金额");
return false;
}
parameters.money = field.money;
parameters.isApplyToNum = field.isApplyToNum;
} else if (field.code === 'ORDER_REDUCE') {//订单减指定金额
if (!!!field.money) {
layer.msg("请输入金额");
@@ -257,7 +260,7 @@
area: ['600px', '400px'],
id: 'LAY-popup-CoreCmsPromotionResult-edit',
success: function (layero, index) {
view(this.id).render('promotion/promotion/resultedit', { data: e.data }).done(function () {
view(this.id).render('promotion/group/resultedit', { data: e.data }).done(function () {
//监听提交
form.on('submit(LAY-app-CoreCmsPromotionResult-editForm-submit)',
function (data) {
@@ -278,18 +281,21 @@
return false;
}
parameters.money = field.money;
parameters.isApplyToNum = field.isApplyToNum;
} else if (field.code === 'GOODS_DISCOUNT') { //指定商品打X折
if (!!!field.discount) {
layer.msg("请输入折扣");
return false;
}
parameters.discount = field.discount;
parameters.isApplyToNum = field.isApplyToNum;
} else if (field.code === 'GOODS_ONE_PRICE') {//指定商品一口价
if (!!!field.money) {
layer.msg("请输入金额");
return false;
}
parameters.money = field.money;
parameters.isApplyToNum = field.isApplyToNum;
} else if (field.code === 'ORDER_REDUCE') {//订单减指定金额
if (!!!field.money) {
layer.msg("请输入金额");

View File

@@ -37,6 +37,14 @@
</div>
<div class="layui-form-mid layui-word-aux">商品优惠的金额</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">商品范围</label>
<div class="layui-input-inline layui-inline-4">
<input type="radio" name="isApplyToNum" value="1" title="一个数量" checked>
<input type="radio" name="isApplyToNum" value="2" title="所有数量">
</div>
<div class="layui-form-mid layui-word-aux">是否针对所有数量都计算优惠</div>
</div>
</script>
<script id="goods_discount_tpl" type="text/html">
<div class="layui-form-item">
@@ -50,6 +58,14 @@
</div>
<div class="layui-form-mid layui-word-aux">大于0小于10的数字</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">商品范围</label>
<div class="layui-input-inline layui-inline-4">
<input type="radio" name="isApplyToNum" value="1" title="一个数量" checked>
<input type="radio" name="isApplyToNum" value="2" title="所有数量">
</div>
<div class="layui-form-mid layui-word-aux">是否针对所有数量都计算优惠</div>
</div>
</script>
<script id="goods_one_price_tpl" type="text/html">
<div class="layui-form-item">
@@ -63,6 +79,14 @@
</div>
<div class="layui-form-mid layui-word-aux">商品的固定价格</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">商品范围</label>
<div class="layui-input-inline layui-inline-4">
<input type="radio" name="isApplyToNum" value="1" title="一个数量" checked>
<input type="radio" name="isApplyToNum" value="2" title="所有数量">
</div>
<div class="layui-form-mid layui-word-aux">是否针对所有数量都计算优惠</div>
</div>
</script>
<script id="order_reduce_tpl" type="text/html">
<div class="layui-form-item">
@@ -100,7 +124,7 @@
<div class="layui-input-inline seller-inline-2">
<input name="num" lay-verType="tips" lay-verify="required|number" autocomplete="off" value="1" placeholder="" class="layui-input" type="text">
</div>
<div class="layui-form-mid layui-word-aux">每第几件商品</div>
<div class="layui-form-mid layui-word-aux">如设置2下单10那么就5*优惠金额</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">优惠金额</label>

View File

@@ -0,0 +1,198 @@
<script type="text/html" template lay-done="layui.data.done(d);">
<div class="layui-form coreshop-form" lay-filter="LAY-app-CoreCmsPromotionResult-editForm" id="LAY-app-CoreCmsPromotionResult-editForm">
<input type="hidden" name="promotionId" id="promotionId" value="{{d.params.data.promotionModel.promotionId}}" />
<input type="hidden" name="id" id="id" value="{{d.params.data.promotionModel.id}}" />
<div class="layui-form-item" style="display:none;">
<label class="layui-form-label">促销结果</label>
<div class="layui-input-block">
<select name="code" id="code" lay-filter="resultCode">
<option value="">请选择促销结果</option>
{{# layui.each(d.params.data.resultCodes, function(index, item){ }}
<option value="{{ item.sKey }}" {{d.params.data.promotionModel.code==item.sKey?'selected="selected"':''}}>{{ item.sDescription }}</option>
{{# }); }}
</select>
</div>
</div>
<div id="ResultBox"></div>
<div class="layui-form-item core-hidden">
<div class="layui-input-block">
<div class="layui-footer">
<input type="button" class="layui-btn" lay-submit lay-filter="LAY-app-CoreCmsPromotionResult-editForm-submit" id="LAY-app-CoreCmsPromotionResult-editForm-submit" value="确认添加">
</div>
</div>
</div>
</div>
</script>
<script id="goods_reduce_tpl" type="text/html">
<div class="layui-form-item">
<label class="layui-form-label">结果名称</label>
<div class="layui-form-mid">指定商品减固定金额</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">金额</label>
<div class="layui-input-inline seller-inline-2">
<input name="money" lay-verType="tips" lay-verify="required|money" autocomplete="off" value="{{d.money}}" placeholder="金额" class="layui-input" type="text">
</div>
<div class="layui-form-mid layui-word-aux">商品优惠的金额</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">商品范围</label>
<div class="layui-input-inline layui-inline-4">
<input type="radio" name="isApplyToNum" value="1" title="一个数量" {{d.isApplyToNum=="1"?'checked':''}}>
<input type="radio" name="isApplyToNum" value="2" title="所有数量" {{d.isApplyToNum=="2"?'checked':''}}>
</div>
<div class="layui-form-mid layui-word-aux">是否针对所有数量都计算优惠</div>
</div>
</script>
<script id="goods_discount_tpl" type="text/html">
<div class="layui-form-item">
<label class="layui-form-label">结果名称</label>
<div class="layui-form-mid">指定商品打X折</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">折扣</label>
<div class="layui-input-inline seller-inline-2">
<input name="discount" lay-verType="tips" lay-verify="required|discount" autocomplete="off" value="{{d.discount}}" placeholder="折扣" class="layui-input" type="text">
</div>
<div class="layui-form-mid layui-word-aux">大于0小于10的数字</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">商品范围</label>
<div class="layui-input-inline layui-inline-4">
<input type="radio" name="isApplyToNum" value="1" title="一个数量" {{d.isApplyToNum=="1"?'checked':''}}>
<input type="radio" name="isApplyToNum" value="2" title="所有数量" {{d.isApplyToNum=="2"?'checked':''}}>
</div>
<div class="layui-form-mid layui-word-aux">是否针对所有数量都计算优惠</div>
</div>
</script>
<script id="goods_one_price_tpl" type="text/html">
<div class="layui-form-item">
<label class="layui-form-label">结果名称</label>
<div class="layui-form-mid">指定商品一口价</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">金额</label>
<div class="layui-input-inline seller-inline-2">
<input name="money" lay-verType="tips" lay-verify="required|money" autocomplete="off" value="{{d.money}}" placeholder="金额" class="layui-input" type="text">
</div>
<div class="layui-form-mid layui-word-aux">商品的固定价格</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">商品范围</label>
<div class="layui-input-inline layui-inline-4">
<input type="radio" name="isApplyToNum" value="1" title="一个数量" {{d.isApplyToNum=="1"?'checked':''}}>
<input type="radio" name="isApplyToNum" value="2" title="所有数量" {{d.isApplyToNum=="2"?'checked':''}}>
</div>
<div class="layui-form-mid layui-word-aux">是否针对所有数量都计算优惠</div>
</div>
</script>
<script id="order_reduce_tpl" type="text/html">
<div class="layui-form-item">
<label class="layui-form-label">结果名称</label>
<div class="layui-form-mid">订单减指定金额</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">金额</label>
<div class="layui-input-inline seller-inline-2">
<input name="money" lay-verType="tips" lay-verify="required|money" autocomplete="off" value="{{d.money}}" placeholder="金额" class="layui-input" type="text">
</div>
<div class="layui-form-mid layui-word-aux">订单总价减XX钱</div>
</div>
</script>
<script id="order_discount_tpl" type="text/html">
<div class="layui-form-item">
<label class="layui-form-label">结果名称</label>
<div class="layui-form-mid">订单打X折</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">折扣</label>
<div class="layui-input-inline seller-inline-2">
<input name="discount" lay-verType="tips" lay-verify="required|discount" autocomplete="off" value="{{d.discount}}" placeholder="折扣" class="layui-input" type="text">
</div>
<div class="layui-form-mid layui-word-aux">大于0小于10的数字</div>
</div>
</script>
<script id="goods_half_price_tpl" type="text/html">
<div class="layui-form-item">
<label class="layui-form-label">结果名称</label>
<div class="layui-form-mid">指定商品每第几件减去指定金额</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">每第几件</label>
<div class="layui-input-inline seller-inline-2">
<input name="num" lay-verType="tips" lay-verify="required|number" autocomplete="off" value="{{d.num}}" placeholder="" class="layui-input" type="number">
</div>
<div class="layui-form-mid layui-word-aux">如设置2下单10那么就5*优惠金额</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">优惠金额</label>
<div class="layui-input-inline seller-inline-2">
<input name="money" lay-verType="tips" lay-verify="required|money" autocomplete="off" value="{{d.money}}" placeholder="金额" class="layui-input" type="text">
</div>
<div class="layui-form-mid layui-word-aux">减去的固定价格</div>
</div>
</script>
<script>
var debug = layui.setter.debug;
layui.data.done = function (d) {
//开启调试情况下获取接口赋值数据
if (debug) { console.log(d.params.data); }
layui.use(['admin', 'form', 'coreHelper', 'laytpl', 'view', 'util'],
function () {
var $ = layui.$
, form = layui.form
, admin = layui.admin
, view = layui.view
, laytpl = layui.laytpl
, util = layui.util
, coreHelper = layui.coreHelper;
var code = d.params.data.promotionModel.code;
var obj = JSON.parse(d.params.data.promotionModel.parameters);
var view = document.getElementById('ResultBox');
$("#ResultBox").empty();
if (code === 'GOODS_REDUCE') {//指定商品减固定金额
laytpl(goods_reduce_tpl.innerHTML).render(obj, function (html) { view.innerHTML = html; });
} else if (code === 'GOODS_DISCOUNT') { //指定商品打X折
laytpl(goods_discount_tpl.innerHTML).render(obj, function (html) { view.innerHTML = html; });
} else if (code === 'GOODS_ONE_PRICE') {//指定商品一口价
laytpl(goods_one_price_tpl.innerHTML).render(obj, function (html) { view.innerHTML = html; });
} else if (code === 'ORDER_REDUCE') {//订单减指定金额
laytpl(order_reduce_tpl.innerHTML).render(obj, function (html) { view.innerHTML = html; });
} else if (code === 'ORDER_DISCOUNT') {//订单打X折
laytpl(order_discount_tpl.innerHTML).render(obj, function (html) { view.innerHTML = html; });
} else if (code === 'GOODS_HALF_PRICE') {//指定商品每第几件减指定金额
laytpl(goods_half_price_tpl.innerHTML).render(obj, function (html) { view.innerHTML = html; });
}
form.on('select(resultCode)', function (data) {
$('#code').val(data.value);
var view = document.getElementById('ResultBox');
$("#ResultBox").empty();
if (data.value === 'GOODS_REDUCE') {//指定商品减固定金额
laytpl(goods_reduce_tpl.innerHTML).render(d.params.data.promotionModel, function (html) { view.innerHTML = html; });
} else if (data.value === 'GOODS_DISCOUNT') { //指定商品打X折
laytpl(goods_discount_tpl.innerHTML).render(d.params.data.promotionModel, function (html) { view.innerHTML = html; });
} else if (data.value === 'GOODS_ONE_PRICE') {//指定商品一口价
laytpl(goods_one_price_tpl.innerHTML).render(d.params.data.promotionModel, function (html) { view.innerHTML = html; });
} else if (data.value === 'ORDER_REDUCE') {//订单减指定金额
laytpl(order_reduce_tpl.innerHTML).render(d.params.data.promotionModel, function (html) { view.innerHTML = html; });
} else if (data.value === 'ORDER_DISCOUNT') {//订单打X折
laytpl(order_discount_tpl.innerHTML).render(d.params.data.promotionModel, function (html) { view.innerHTML = html; });
} else if (data.value === 'GOODS_HALF_PRICE') {//指定商品每第几件减指定金额
laytpl(goods_half_price_tpl.innerHTML).render(d.params.data.promotionModel, function (html) { view.innerHTML = html; });
}
form.render();
});
form.verify({
money: [/((^[1-9]\d*)|^0)(\.\d{0,2}){0,1}$/, '请输入金额'],
discount: [/^(?:([1-9](?:\.[\d]{0,2})?)|(?:0\.[1-9]{1,2})|10)$/, '请输入折扣'],
});
//重载form
form.render(null, 'LAY-app-CoreCmsPromotionResult-editForm');
})
};
</script>