jh-admin/addon/discount/shop/view/discount/manage.html

249 lines
5.5 KiB
HTML

{extend name="app/shop/view/base.html"/}
{block name="resources"}
<style>
.shop-account {
display: flex;
align-items: center;
position: relative;
padding: 15px;
box-sizing: border-box;
}
.shop-detail p {
display: inline-block;
width: 300px;
line-height: 30px;
}
.shop-account>a {
position: absolute;
right: 15px;
bottom: 15px;
cursor: pointer;
}
</style>
{/block}
{block name="main"}
<!-- 搜索框 -->
<div class="single-filter-box">
<button class="layui-btn" onclick="addGoods()" data-num="{$discount_info.discount_id}">添加商品</button>
</div>
<!-- 列表 -->
<table id="good_list" lay-filter="good_list"></table>
<input type="hidden" value="{$discount_info.discount_id}" name="discount_id" id="discount_id" />
<!-- 操作 -->
<script type="text/html" id="operation">
<div class="table-btn">
<a class="layui-btn" lay-event="delete">删除商品</a>
</div>
</script>
<!-- 商品 -->
<script type="text/html" id="goodIntro">
<div class="table-title">
<div class="title-pic">
<img layer-src src="{{ns.img(d.sku_image.split(',')[0],'small')}}" />
</div>
<div class="title-content">
<a href="javascript:;" class="multi-line-hiding text-color">{{ d.sku_name }}</a>
</div>
</div>
</script>
<!-- 编辑价格 -->
<script type="text/html" id="editSort">
<input name="sort" type="number" onchange="editSort({{d.sku_id}}, this)" value="{{d.discount_price}}" autocomplete="off" placeholder="请输入价格" class="layui-input edit-sort len-short">
</script>
{/block}
{block name="script"}
<script>
var form, table, laytpl, selectedGoodsSkuId = [], repeat_flag = false, //防重复标识
discount_id = $("#discount_id").val();
layui.use(['form', 'laytpl'], function() {
form = layui.form;
laytpl = layui.laytpl;
form.render();
table = new Table({
elem: '#good_list',
url: '{:addon_url("discount://shop/discount/manage")}',
async : false,
where: {discount_id},
parseData: function(res) {
for (var i in res.data.list) {
selectedGoodsSkuId.push(res.data.list[i].sku_id);
}
removeDuplicates(selectedGoodsSkuId);
return {
"code": res.code,
"msg": res.message,
"count": res.data.count,
"data": res.data.list
};
},
cols: [
[{
type: 'checkbox',
unresize: 'false',
width: '3%'
}, {
title: '商品',
unresize: 'false',
width: '38%',
templet: '#goodIntro'
}, {
field: 'price',
title: '商品价格',
unresize: 'false',
width: '14%',
align: 'right',
templet: function(data) {
return '¥<span class="goods-price">'+ data.price +'</span>';
}
}, {
title: '折扣价格(可编辑)',
unresize: 'false',
width: '18%',
align: 'center',
templet: '#editSort'
}, {
field: 'discount_rate',
title: '折扣率(%)',
unresize: 'false',
width: '14%'
}, {
title: '操作',
toolbar: '#operation',
align: 'right',
unresize: 'false',
}]
]
});
/**
* 监听工具栏操作
*/
table.tool(function(obj) {
var data = obj.data;
switch (obj.event) {
case 'delete': //删除
delMember(data.sku_id);
break;
}
});
/**
* 删除
*/
function delMember(sku_id) {
if (repeat_flag) return false;
repeat_flag = true;
layer.confirm('确定要删除该商品吗?', function() {
$.ajax({
url: '{:addon_url("discount://shop/discount/deleteGoods")}',
data: {sku_id,discount_id},
dataType: 'JSON',
type: 'POST',
success: function(res) {
layer.msg(res.message);
repeat_flag = false;
if (res.code == 0) {
for (var i in selectedGoodsSkuId){
if(selectedGoodsSkuId[i] == sku_id){
selectedGoodsSkuId.splice(i,1);
}
}
table.reload();
}
}
});
}, function() {
repeat_flag = false;
});
}
});
// 监听单元格编辑
function editSort(sku_id, event){
var data = $(event).val();
if(data <= 0){
layer.msg("折扣价格必须大于0");
$(event).val(1);
return;
}
var goods_price = $(event).parents("tr").find(".goods-price").text();
if (data > Number(goods_price)) {
layer.msg("折扣价格不能大于商品价格");
$(event).val(Number(goods_price));
return;
}
$.ajax({
type: 'POST',
dataType: 'JSON',
url: ns.url("discount://shop/discount/updateGoods"),
data: {
sku_id,
discount_id,
"discount_price": data
},
success: function(res) {
layer.msg(res.message);
table.reload();
}
});
}
/**
* 添加商品
*/
function addGoods () {
goodsSelect(function (res) {
if (!res.length) return false;
var sku_ids = [];
for (var i = 0; i < res.length; i++) {
for (var k = 0; k < res[i].selected_sku_list.length; k++) {
sku_ids.push(res[i].selected_sku_list[k].sku_id);
}
}
$.ajax({
type: 'POST',
async: false,
url: '{:addon_url("discount://shop/discount/addGoods")}',
data: {
'sku_ids': sku_ids.toString(),
discount_id
},
dataType: 'JSON',
success: function (res) {
layer.msg(res.message);
table.reload();
}
});
}, selectedGoodsSkuId, {mode: "sku", disabled: 1});
}
function removeDuplicates(arr){
if (!Array.isArray(arr)) {
console.log('type error!');
return
}
var array = [];
for (var i = 0; i < arr.length; i++) {
if (array.indexOf(arr[i]) === -1) {
array.push(arr[i])
}
}
return array;
}
</script>
{/block}