<script type="text/html" template lay-done="layui.data.done(d);">
    <div class="layui-form coreshop-search-form">
        <div class="layui-form-item">
            <div class="layui-inline">
                <label class="layui-form-label" for="title">公告标题</label>
                <div class="layui-input-inline">
                    <input type="text" name="title" id="title" placeholder="请输入公告标题" class="layui-input">
                </div>
            </div>
            <div class="layui-inline">
                <button class="layui-btn layui-btn-sm" lay-submit lay-filter="LAY-app-CoreCmsNotice-search"><i class="layui-icon layui-icon-search"></i>筛选</button>
            </div>
            <div class="layui-inline"><div class="layui-form-mid">您选择了:<span id="tagNoticeNum">0</span>个商品</div></div>
            <button class="layui-btn layui-btn-sm" lay-submit lay-filter="LAY-app-CoreCmsCommon-GetNoticeIds-submit" style="float: right"><i class="layui-icon layui-icon-add-1"></i>提交选项</button>
        </div>
    </div>
</script>
<div class="table-body">
    <table id="LAY-app-CoreCmsNotice-tableBox" lay-filter="LAY-app-CoreCmsNotice-tableBox"></table>
</div>

<script>
    var ids = {};
    var table_data = new Array();
    var debug = layui.setter.debug;
    layui.data.done = function (d) {
        //开启调试情况下获取接口赋值数据
        if (debug) { console.log(d); }

        layui.use(['index', 'table', 'laydate', 'util', 'coreHelper'],
            function () {
                var $ = layui.$
                    , admin = layui.admin
                    , table = layui.table
                    , form = layui.form
                    , laydate = layui.laydate
                    , setter = layui.setter
                    , coreHelper = layui.coreHelper
                    , util = layui.util
                    , view = layui.view;
                //重载form
                form.render();
                var searchwhere;
                //监听搜索
                form.on('submit(LAY-app-CoreCmsNotice-search)',
                    function (data) {
                        var field = data.field;
                        searchwhere = field;
                        //执行重载
                        table.reload('LAY-app-CoreCmsNotice-tableBox', { where: field });
                    });
                //数据绑定
                table.render({
                    elem: '#LAY-app-CoreCmsNotice-tableBox',
                    url: layui.setter.apiUrl + 'Api/Tools/GetNotices',
                    method: 'POST',
                    defaultToolbar: ['filter', 'print', 'exports'],
                    height: '380px',//无面包屑127,搜索框189,1行62
                    page: true,
                    limit: 30,
                    limits: [10, 15, 20, 25, 30, 50, 100, 200],
                    text: { none: '暂无相关数据' },
                    cols: [
                        [
                            { type: "checkbox", fixed: "left" },
                            { field: 'id', title: '序列', width: 60, sort: false },
                            { field: 'title', title: '公告标题', sort: false },
                            { field: 'createTime', title: '创建时间', width: 130, sort: false },
                        ]
                    ],
                    done: function (res, curr, count) {
                        //数据表格加载完成时调用此函数
                        //如果是异步请求数据方式，res即为你接口返回的信息。
                        //如果是直接赋值的方式，res即为：{data: [], count: 99} data为当前页数据、count为数据总长度

                        //设置全部数据到全局变量
                        table_data = res.data;

                        //在缓存中找到id ,然后设置data表格中的选中状态
                        //循环所有数据，找出对应关系，设置checkbox选中状态
                        for (var i = 0; i < res.data.length; i++) {
                            if (ids[res.data[i].id]) {
                                //这里才是真正的有效勾选
                                res.data[i]["LAY_CHECKED"] = 'true';
                                //找到对应数据改变勾选样式，呈现出选中效果
                                var index = res.data[i]['LAY_TABLE_INDEX'];
                                $('#LAY-app-CoreCmsNotice-tableBox + div .layui-table-body tr[data-index=' + index + '] input[type="checkbox"]').prop('checked', true);
                                $('#LAY-app-CoreCmsNotice-tableBox + div .layui-table-body tr[data-index=' + index + '] input[type="checkbox"]').next().addClass('layui-form-checked');
                            }
                        }
                        //设置全选checkbox的选中状态，只有改变LAY_CHECKED的值， table.checkStatus才能抓取到选中的状态
                        var checkStatus = layui.table.checkStatus('LAY-app-CoreCmsNotice-tableBox');
                        if (checkStatus.isAll) {
                            $('#LAY-app-CoreCmsNotice-tableBox + div .layui-table-header th[data-field="0"] input[type="checkbox"]').prop('checked', true);
                            $('#LAY-app-CoreCmsNotice-tableBox + div .layui-table-header th[data-field="0"] input[type="checkbox"]').next().addClass('layui-form-checked');
                        }
                    }
                });
                //监听表格复选框选择
                layui.table.on('checkbox(LAY-app-CoreCmsNotice-tableBox)', function (obj) {
                    if (obj.checked) {
                        if (obj.type == 'one') {
                            ids[obj.data.id] = obj.data;
                        } else {
                            for (var i = 0; i < table_data.length; i++) {
                                ids[table_data[i].id] = table_data[i];
                            }
                        }
                        //the_val[obj.data.id] = obj.data;
                    } else {
                        if (obj.type == 'one') {
                            delete ids[obj.data.id];
                        } else {
                            for (var i = 0; i < table_data.length; i++) {
                                delete ids[table_data[i].id];
                            }
                        }
                    }
                    $('#tagNoticeNum').html(Object.getOwnPropertyNames(ids).length);
                });
            });
    };
</script>