243 lines
5.6 KiB
HTML
243 lines
5.6 KiB
HTML
{extend name="app/shop/view/base.html"/}
|
|
{block name="resources"}
|
|
{/block}
|
|
{block name="main"}
|
|
<div class="layui-collapse tips-wrap">
|
|
<div class="layui-colla-item">
|
|
<ul class="layui-colla-content layui-show">
|
|
<li>活动名称:{$topic_info.topic_name}</li>
|
|
<li>开始时间:{$topic_info.start_time|date='Y-m-d H:i:s'}</li>
|
|
<li>结束时间:{$topic_info.end_time|date='Y-m-d H:i:s'}</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- 搜索框 -->
|
|
<div class="single-filter-box">
|
|
<button class="layui-btn" onclick="addGoods()">添加商品</button>
|
|
|
|
<div class="layui-form">
|
|
<div class="layui-input-inline">
|
|
<input type="text" name="sku_name" placeholder="请输入商品名称" class="layui-input" autocomplete="off">
|
|
<button type="button" class="layui-btn layui-btn-primary" lay-filter="search" lay-submit>
|
|
<i class="layui-icon"></i>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- 列表 -->
|
|
<table id="good_list" lay-filter="good_list"></table>
|
|
|
|
<!-- 操作 -->
|
|
<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">
|
|
{{# if(d.sku_image){ }}
|
|
<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="editPrice">
|
|
<input name="sort" type="number" onchange="editPrice({{d.sku_id}}, this)" value="{{d.topic_price}}" placeholder="请输入价格" class="layui-input edit-sort len-short" autocomplete="off">
|
|
</script>
|
|
{/block}
|
|
{block name="script"}
|
|
<script>
|
|
var addGoods,form, table, laytpl;
|
|
layui.use(['form', 'laytpl'], function() {
|
|
|
|
form = layui.form;
|
|
laytpl = layui.laytpl;
|
|
var repeat_flag = false, //防重复标识
|
|
selectedGoodsSkuId = [];
|
|
form.render();
|
|
|
|
table = new Table({
|
|
elem: '#good_list',
|
|
url: '{:addon_url("topic://shop/topic/goods")}',
|
|
where: {"topic_id" : "{$topic_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: [
|
|
[{
|
|
title: '商品',
|
|
unresize: 'false',
|
|
width: '30%',
|
|
templet: '#goodIntro'
|
|
}, {
|
|
field: 'price',
|
|
title: '商品价格',
|
|
unresize: 'false',
|
|
width: '15%',
|
|
align: 'right',
|
|
templet: function(data) {
|
|
return '¥<span class="goods-price">'+ data.price +'</span>'
|
|
}
|
|
}, {
|
|
field: 'topic_price',
|
|
title: '价格(可编辑)',
|
|
unresize: 'false',
|
|
width: '22%',
|
|
align: 'center',
|
|
templet: '#editPrice'
|
|
}, {
|
|
title: '操作',
|
|
toolbar: '#operation',
|
|
unresize: 'false',
|
|
align:'right'
|
|
}]
|
|
]
|
|
});
|
|
|
|
/**
|
|
* 添加商品弹框
|
|
*/
|
|
addGoods = function() {
|
|
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({
|
|
url: '{:addon_url("topic://shop/topic/addTopicGoods")}',
|
|
type: 'POST',
|
|
dataType: "JSON",
|
|
data: {
|
|
'sku_ids': sku_ids.toString(),
|
|
'topic_id': "{$topic_id}"
|
|
},
|
|
success(res) {
|
|
layer.msg(res.message);
|
|
table.reload();
|
|
}
|
|
})
|
|
}, selectedGoodsSkuId, {mode: "sku"});
|
|
};
|
|
|
|
/**
|
|
* 搜索功能 控制器沒有增加名称搜索字段
|
|
*/
|
|
form.on('submit(search)', function(data) {
|
|
table.reload({
|
|
page: {
|
|
curr: 1
|
|
},
|
|
where: data.field
|
|
});
|
|
});
|
|
|
|
/**
|
|
* 监听工具栏操作
|
|
*/
|
|
table.tool(function(obj) {
|
|
var data = obj.data;
|
|
switch (obj.event) {
|
|
case 'delete': //删除
|
|
deleteGoods(data.sku_id);
|
|
break;
|
|
}
|
|
});
|
|
|
|
/**
|
|
* 删除
|
|
*/
|
|
function deleteGoods(sku_id) {
|
|
|
|
if (repeat_flag) return false;
|
|
repeat_flag = true;
|
|
|
|
layer.confirm('确定要删除该商品吗?', function() {
|
|
$.ajax({
|
|
url: '{:addon_url("topic://shop/topic/deleteTopicGoods")}',
|
|
data: {
|
|
"sku_id": sku_id,
|
|
"topic_id": "{$topic_id}"
|
|
},
|
|
dataType: 'JSON',
|
|
type: 'POST',
|
|
success: function(res) {
|
|
layer.msg(res.message);
|
|
repeat_flag = false;
|
|
|
|
if (res.code == 0) {
|
|
selectedGoodsSkuId.splice(selectedGoodsSkuId.indexOf(sku_id),1);
|
|
table.reload();
|
|
}
|
|
}
|
|
});
|
|
});
|
|
}
|
|
});
|
|
|
|
// 监听单元格编辑
|
|
function editPrice(id, event){
|
|
var data = $(event).val();
|
|
var goods_price = $(event).parents("tr").find(".goods-price").text();
|
|
if(data < 0){
|
|
layer.msg("活动价格不能小于0");
|
|
return;
|
|
}
|
|
if (data > Number(goods_price)) {
|
|
layer.msg("活动价格不能大于商品价格");
|
|
return;
|
|
}
|
|
$.ajax({
|
|
type: 'POST',
|
|
url: ns.url("topic://shop/topic/editTopicGoods"),
|
|
data: {
|
|
"sku_id": id,
|
|
"topic_id": "{$topic_id}",
|
|
"price": data
|
|
},
|
|
dataType: 'JSON',
|
|
success: function(res) {
|
|
layer.msg(res.message);
|
|
if(res.code==0){
|
|
table.reload();
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
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} |