| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512 |
- {extend name="app/shop/view/base.html"/}
- {block name="resources"}
- <style>
- .good-name, .good-price {
- line-height: 34px;
- }
- @media screen and (min-width: 1514px) {
- .len-short {
- display: inline-block;
- width: 80px !important;
- }
- }
- @media screen and (max-width: 1513px) {
- .len-short {
- display: inline-block;
- width: 58px !important;
- }
- }
- #rule_list .layui-input {
- display: inline-block;
- }
- .layui-table[lay-size=lg] td, .layui-table[lay-size=lg] th {
- padding: 0px;
- }
- input[disabled] {
- background-color: #F5F5F5;
- }
- .vip_type{
- background-color: #393D49;
- color:#F9F9A3 !important;
- padding:2px 4px;
- border-radius:3px;
- margin-right: 6px;
- }
- .layui-form-label{
- width: 150px;
- }
- .layui-form-label + .layui-input-block{
- margin-left: 150px;
- }
- .word-aux{
- margin-left: 150px;
- }
- </style>
- {/block}
- {block name="body"}
- <div class="layui-form">
- <div class="layui-card card-common">
- <div class="layui-card-body">
- <div class="layui-form-item goods-image-wrap">
- <label class="layui-form-label">是否参与:</label>
- <div class="layui-input-block">
- <input type="radio" name="is_consume_discount" lay-filter="is_consume_discount" value="0" title="不参与" {if $goods_info['is_consume_discount'] == 0 }checked{/if}>
- <input type="radio" name="is_consume_discount" lay-filter="is_consume_discount" value="1" title="参与" {if $goods_info['is_consume_discount'] == 1 }checked{/if}>
- </div>
- <div class="word-aux">商品参与会员价后指定会员等级会按照下面会员优惠设置价格购买。</div>
- </div>
-
- {if condition="$goods_info.is_consume_discount == 0"}
- <div class="layui-form-item discount_config layui-hide">
- {else/}
- <div class="layui-form-item discount_config">
- {/if}
- <label class="layui-form-label">优惠设置:</label>
- <div class="layui-input-inline good-name">
- <input type="radio" name="discount_config" lay-filter="discount_config" value="0" title="默认规则" {if $goods_info['discount_config'] == 0 }checked{/if}>
- <input type="radio" name="discount_config" lay-filter="discount_config" value="1" title="单独设置" {if $goods_info['discount_config'] == 1 }checked{/if}>
- </div>
- </div>
-
- {if condition="$goods_info.is_consume_discount == 0"}
- <div class="layui-form-item discount_config_rule layui-hide">
- {else/}
- {if condition="$goods_info.discount_config == 0"}
- <div class="layui-form-item discount_config_rule">
- {else/}
- <div class="layui-form-item discount_config_rule layui-hide">
- {/if}
- {/if}
- <label class="layui-form-label"></label>
- <div class="layui-input-block">
- <table id="discount_set"></table>
- </div>
- </div>
-
- {if condition="$goods_info.is_consume_discount == 0"}
- <div class="layui-form-item discount_method layui-hide">
- {else/}
- {if condition="$goods_info.discount_config == 0"}
- <div class="layui-form-item discount_method layui-hide">
- {else/}
- <div class="layui-form-item discount_method">
- {/if}
- {/if}
- <label class="layui-form-label">优惠方式:</label>
- <div class="layui-input-inline good-name">
- <input type="radio" name="discount_method" value="discount" lay-filter="discount_method" title="打折" checked>
- <input type="radio" name="discount_method" value="manjian" lay-filter="discount_method" title="减现" {if $goods_info['discount_method'] == "manjian" }checked{/if}>
- <input type="radio" name="discount_method" value="fixed_price" lay-filter="discount_method" title="指定价格" {if $goods_info['discount_method'] == "fixed_price" }checked{/if}>
- </div>
- </div>
-
- {if condition="$goods_info.is_consume_discount == 0"}
- <div class="layui-form-item member_price_table layui-hide" id="personal_rule">
- {else/}
- {if condition="$goods_info.discount_config == 0"}
- <div class="layui-form-item member_price_table layui-hide" id="personal_rule">
- {else/}
- <div class="layui-form-item member_price_table" id="personal_rule">
- {/if}
- {/if}
- <label class="layui-form-label"></label>
- <div class="layui-input-block">
- <table id="discount_type" lay-filter="discount_type"></table>
- </div>
- </div>
-
- <div class="form-row">
- <button class="layui-btn" lay-submit lay-filter="save" id="save_member_price">保存</button>
- <button class="layui-btn layui-btn-primary" onclick="back()" id="back_goods_list">返回</button>
- </div>
- <input type="hidden" name="goods_id" value="{$goods_info.goods_id}"/>
- </div>
- </div>
- <div class="single-filter-box">
- </div>
- </div>
- {/block}
- {block name="script"}
- <script type="text/html" id="toolbarOperation">
- {foreach $level_list as $k => $v}
- <button class="layui-btn layui-btn-primary" lay-event="member_price_{$v.level_id}">{$v.level_name}</button>
- {/foreach}
- </script>
- <script>
- var param = 0;
- var goods_id = "";
- var is_consume_discount = {$goods_info.is_consume_discount}; // 是否参与折扣
- var discount_config = {$goods_info.discount_config}; // 优惠规则设置
- var level = {:json_encode($level_list, JSON_UNESCAPED_UNICODE)}; // 等级
- var goods_info = {:json_encode($goods_info, JSON_UNESCAPED_UNICODE)}; // 商品信息
- var dis_type = goods_info.discount_method; // 优惠方式
- var sku_data = goods_info.sku_data; // sku列表
- var table, tableType, form, laydate, repeat_flag = false;
- layui.use(['form', 'laydate'], function () {
- form = layui.form;
- laydate = layui.laydate;
-
- table = new Table({
- elem: "#discount_set",
- cols: [
- [{
- field: 'goods_name',
- title: '会员等级',
- width: 120,
- unresize: 'false',
- fixed: 'left',
- templet: function(data) {
- return '会员享受折扣';
- }
- },
- {foreach $level_list as $k => $v}
- {
- title: '{if $v.level_type ==1}<span class="vip_type">SVIP</span>{/if}{$v.level_name}',
- unresize: 'false',
- width: 170,
- templet: function(data) {
- return {$v.consume_discount} + '%';
- }
- },
- {/foreach}
- ]],
- data: [{}],
- page: false
- });
-
- if (is_consume_discount == 1 && discount_config == 1) {
- sku_list = skuList(dis_type);
- renderTableType(sku_list);
- }
-
- $(".layui-input").each(function () {
- $(this).on('input', function () {
- var _this = $(this);
- if (_this.val() > 0) {
- $(this).siblings().attr('disabled', true);
- $(this).siblings().removeAttr("lay-verify");
- } else {
- $(this).siblings().attr('disabled', false);
- $(this).siblings().attr("lay-verify", "required|flnum");
- }
- });
- });
- /**
- * 表单提交
- */
- form.on('submit(save)', function (data) {
- if (repeat_flag) return;
- repeat_flag = true;
-
- $.ajax({
- type: 'POST',
- dataType: 'JSON',
- url: ns.url("memberprice://shop/goods/config"),
- data: data.field,
- async: false,
- success: function (res) {
- repeat_flag = false;
- layer.msg(res.message);
- if (res.code == 0) {
- param = 1;
- }
- }
- })
- });
- //监听是否参与会员等级折扣
- form.on('radio(is_consume_discount)', function(data){
- var value = data.value;
- is_consume_discount = value;
- if(value == 1){
- //获取优惠设置值
- var discount_config = $("input[name='discount_config']:checked").val();
- if(discount_config == 1){
- $(".discount_config").removeClass("layui-hide");
- $(".discount_config_rule").addClass("layui-hide");
- $(".discount_method").removeClass("layui-hide");
- $(".member_price_table").removeClass("layui-hide");
- } else {
- $(".discount_config").removeClass("layui-hide");
- $(".discount_config_rule").removeClass("layui-hide");
- }
- sku_list = skuList(dis_type);
- renderTableType(sku_list);
- }
-
- if(value == 0){
- $(".discount_config").addClass("layui-hide");
- $(".discount_config_rule").addClass("layui-hide");
- $(".discount_method").addClass("layui-hide");
- $(".member_price_table").addClass("layui-hide");
- }
- });
- //监听优惠设置
- form.on('radio(discount_config)', function(data){
- var value = data.value;
- if(value == 1){
- $(".discount_config_rule").addClass("layui-hide");
- $(".discount_method").removeClass("layui-hide");
- $(".member_price_table").removeClass("layui-hide");
- sku_list = skuList(dis_type);
- renderTableType(sku_list);
- }
- if(value == 0){
- $(".discount_config_rule").removeClass("layui-hide");
- $(".discount_method").addClass("layui-hide");
- $(".member_price_table").addClass("layui-hide");
- $("#personal_rule input").attr("lay-verify", "");
- }
- });
- //监听成为分销商条件选择
- form.on('radio(discount_method)', function(data){
- var value = data.value;
- if(value == "discount"){
- dis_type = "discount";
- sku_list = skuList(dis_type);
- renderTableType(sku_list);
- }
-
- if(value == 'manjian'){
- dis_type = "manjian";
- sku_list = skuList(dis_type);
- renderTableType(sku_list);
- }
-
- if(value == 'fixed_price'){
- dis_type = "fixed_price";
- sku_list = skuList(dis_type);
- renderTableType(sku_list);
- }
- });
-
- /**
- * 表单验证
- */
- form.verify({
- discount: function (value) {
- if (is_consume_discount == 1) {
- if (value.trim() == "") {
- return '会员等级折扣不能为空!';
- }
- if (parseFloat(value) <= 0) {
- return '会员等级折扣必须大于0!';
- }
- if (parseFloat(value) > 10) {
- return '会员等级折扣必须小于10!';
- }
-
- var arrMen = value.split(".");
- var val = 0;
- if (arrMen.length == 2) {
- val = arrMen[1];
- }
- if (val.length > 2) {
- return "会员等级折扣最多可保留两位小数";
- }
- }
- },
- manjian: function (value, item) {
- if (is_consume_discount == 1) {
- var price = $(item).parents("tr").find(".sku-price").text();
-
- if (value.trim() == "") {
- return '满减金额不能为空!';
- }
- if (parseFloat(value) < 0) {
- return '满减金额必须大于0!';
- }
- if (parseFloat(value) > Number(price)) {
- return '满减金额不能大于商品价格!';
- }
-
- var arrMen = value.split(".");
- var val = 0;
- if (arrMen.length == 2) {
- val = arrMen[1];
- }
- if (val.length > 2) {
- return "满减金额最多可保留两位小数";
- }
- }
- },
- fixed_price: function (value, item) {
- if (is_consume_discount == 1) {
- var price = $(item).parents("tr").find(".sku-price").text();
- if (value.trim() == "") {
- return '指定价格不能为空!';
- }
- if (parseFloat(value) <= 0) {
- return '指定价格必须大于0!';
- }
- if (parseFloat(value) > Number(price)) {
- return '指定价格不能大于商品价格!';
- }
-
- var arrMen = value.split(".");
- var val = 0;
- if (arrMen.length == 2) {
- val = arrMen[1];
- }
- if (val.length > 2) {
- return "指定价格最多可保留两位小数";
- }
- }
- }
- });
- });
-
- // 表格数据
- function skuList(dis_type) {
- var sku_list = [];
- $.each(sku_data, function(index, item) {
- var sku = {};
- sku.sku_id = item.sku_id;
- sku.sku_name = item.sku_name;
- sku.price = item.price;
- if (dis_type == "discount" || dis_type == "") {
- $.each(item.member_price.discount, function(key, value) {
- sku[key] = value;
- })
- } else if (dis_type == "fixed_price") {
- $.each(item.member_price.fixed_price, function(key, value) {
- sku[key] = value;
- })
- } else if (dis_type == "manjian") {
- $.each(item.member_price.manjian, function(key, value) {
- sku[key] = value;
- })
- }
- sku_list.push(sku);
- });
- return sku_list;
- }
-
- // 表格渲染
- function renderTableType(sku_list) {
- tableType = new Table({
- elem: "#discount_type",
- cols: [
- [
- {
- type: 'checkbox',
- unresize: 'false',
- fixed: 'left'
- },{
- field: 'sku_name',
- title: '商品规格',
- minWidth: 140,
- unresize: 'false',
- {if count($level_list) > 2}
- fixed: 'left',
- {/if}
- templet: function(data) {
- return '<p class="multi-line-hiding" title="'+ data.sku_name +'">'+ data.sku_name +'</p>';
- }
- }, {
- field: 'price',
- title: '价格',
- minWidth: 140,
- unresize: 'false',
- {if count($level_list) > 2}
- fixed: 'left',
- {/if}
- align: 'center',
- templet: function(data) {
- return '¥<span class="sku-price">' + data.price + '</span>';
- }
- },
- {foreach $level_list as $k => $v}
- {
- field: '{$v.level_id}',
- title: '{if $v.level_type ==1}<span class="vip_type">SVIP</span>{/if}<span title="{$v.level_name}">{$v.level_name}</span>',
- unresize: 'false',
- width: 130,
- templet: function(data) {
- var html = '';
- if (dis_type == "discount" || dis_type == "") {
- var num = data[{$v.level_id}] ? data[{$v.level_id}] : 10;
- html = `<input type="number" name="member_price[${data.sku_id}][discount][{$v.level_id}]" value="${num}" min="0" class="layui-input len-short member_price_{$v.level_id} member_sku_${data.sku_id}" lay-verify="discount" /> 折`
- } else if (dis_type == "fixed_price") {
- var num = data[{$v.level_id}] ? data[{$v.level_id}] : data.price;
- html = `<input type="number" name="member_price[${data.sku_id}][fixed_price][{$v.level_id}]" value="${num}" min="0" class="layui-input len-short member_price_{$v.level_id} member_sku_${data.sku_id}" lay-verify="fixed_price" /> 元`
- } else if (dis_type == "manjian") {
- var num = data[{$v.level_id}] ? data[{$v.level_id}] : 0;
- html = `减¥ <input type="number" name="member_price[${data.sku_id}][manjian][{$v.level_id}]" value="${num}" min="0" class="layui-input len-short member_price_{$v.level_id} member_sku_${data.sku_id}" lay-verify="manjian" />`
- }
- return html;
- }
- },
- {/foreach}
- ]
- ],
- data: sku_list,
- page: false,
- limit:sku_list.length,
- toolbar: '#toolbarOperation'
- });
- tableType.toolbar(function(obj) {
- if (obj.data.length < 1) {
- layer.msg('请选择要操作的数据');
- return;
- }
- var level_id = obj.event;
- var layerIndex = layer.open({
- type: 1,
- title:"修改会员价",
- shade: 0,
- area:['600px'],
- btn:["保存","返回"],
- content: `
- <div class="layui-form-item">
- <label class="layui-form-label"><span class="required">*</span>会员价:</label>
- <div class="layui-input-block">
- <input type="text" name="bargain_edit_input" lay-verify="required" autocomplete="off" class="layui-input len-mid" placeholder="请输入数值">
- </div>
- </div>
- `,
- yes: function(index, layero){
- var val = $("input[name='bargain_edit_input']").val();
- if (!val){
- layer.msg("请输入正确数值");
- return false;
- }
- if (obj.isAll){
- $("input.layui-input."+level_id).val(val);
- }else{
- obj.data.forEach(function (item,index) {
- $("input.layui-input."+level_id + ".member_sku_"+item.sku_id).val(val);
- })
- }
- layer.close(layerIndex);
- }
- });
- });
- }
- // 表单提交
- function formSubmit(callback) {
- callback(param);
- }
- function back() {
- param = 1;
- }
- </script>
- {/block}
|