admin/app/shop/view/notice/notice_select.html

165 lines
4.2 KiB
HTML

{extend name="app/shop/view/base.html"/}
{block name="resources"}
<style>
.notice-list {
padding: 0 20px;
}
</style>
{/block}
{block name="body"}
<div class="notice-list">
<!-- 列表 -->
<table id="notice_list" lay-filter="notice_list"></table>
</div>
{/block}
{block name="script"}
<script type="text/html" id="checkbox">
{{# if($.inArray(d.id.toString(), selected_id_arr) != -1){ }}
<input type="checkbox" data-notice-id="{{d.id}}" name="notice_checkbox" lay-skin="primary" lay-filter="notice_checkbox" checked>
{{# }else{ }}
<input type="checkbox" data-notice-id="{{d.id}}" name="notice_checkbox" lay-skin="primary" lay-filter="notice_checkbox">
{{# } }}
<input type="hidden" data-notice-id="{{d.id}}" name="notice_json" value='{{ JSON.stringify(d) }}' />
</script>
<script>
var table, form, laytpl,
select_id = "{$select_id}", //选中商品id
selected_id_arr = select_id.length ? select_id.split(',') : [],
select_list = [], //选中商品所有数据
goodsIdArr = selected_id_arr;
$(function () {
layui.use(['form', 'laytpl'], function () {
form = layui.form;
laytpl = layui.laytpl;
table = new Table({
elem: '#notice_list',
url: ns.url("shop/notice/index"),
cols: [
[
{
unresize: 'false',
width: '10%',
templet: '#checkbox'
}, {
width: '55%',
title: '公告标题',
unresize: 'false',
templet: function(data) {
var html = data.is_top ? '<span class="required">[ 置顶 ] </span>' : '';
html += data.title;
return html;
}
}, {
width: '35%',
title: '创建时间',
unresize: 'false',
templet: function(data) {
return ns.time_to_date(data.create_time);
}
}
]
],
callback : function () {
// 更新商品复选框状态
for (var i=0;i<goodsIdArr.length;i++) {
var selected_notices = $("input[name='notice_checkbox'][data-notice-id='" + goodsIdArr[i] + "']");
if (selected_notices.length) {
$("input[name='notice_checkbox'][data-notice-id='" + goodsIdArr[i] + "']").prop("checked", true);
}
}
form.render();
initData();
}
});
// 勾选商品
form.on('checkbox(notice_checkbox)', function(data) {
var notice_id = $(data.elem).attr("data-notice-id"), json = {};
form.render();
var noticeLen = $("input[name='notice_checkbox'][data-notice-id="+ notice_id +"]:checked").length;
if (noticeLen){
json = JSON.parse($("input[name='notice_json'][data-notice-id="+ notice_id +"]").val());
delete json.LAY_INDEX;
delete json.LAY_TABLE_INDEX;
delete json.create_time;
select_list.push(json);
goodsIdArr.push(notice_id);
} else{
select_list.remove(notice_id);
goodsIdArr.remove(notice_id);
}
});
//初始化数据
function initData(){
var noticeLen = $("input[name='notice_checkbox'][data-notice-id]:checked").length;
for (var i = 0; i < noticeLen; i++){
var noticeId = $("input[name='notice_checkbox'][data-notice-id]:checked").eq(i).attr("data-notice-id");
var ident = false;
for (var k = 0; k < select_list.length; k++){
if(select_list[k].id == noticeId){
ident = true;
break;
}
}
if (ident) return;
json = JSON.parse($("input[name='notice_json'][data-notice-id="+ noticeId +"]").val());
delete json.LAY_INDEX;
delete json.LAY_TABLE_INDEX;
delete json.create_time;
select_list.push(json);
}
}
});
});
function selectNotice(callback) {
var res = select_list;
callback(res);
}
Array.prototype.indexOf = function(val) {
for (var i = 0; i < this.length; i++) {
if (this[i].id){
if (this[i].id == parseInt(val)) return i;
} else {
if (this[i] == val) return i;
}
}
return -1;
};
Array.prototype.remove = function(val) {
var index = this.indexOf(val);
if (index > -1) {
this.splice(index, 1);
}
};
select_list.__proto__ = Array.prototype;
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}