layui.use(['laytpl', 'table', 'jquery', 'form', 'miniTab', 'tree', 'xmSelect', 'laydate'], function () {
    let $ = layui.jquery,
        form = layui.form,
        table = layui.table,
        layer = layui.layer,
        laydate = layui.laydate,
        xmSelect = layui.xmSelect,
        miniTab = layui.miniTab;

    /**** index begin ***/
    //index页面
    if ($('.location-index-page').length > 0) {
        miniTab.listen();

        laydate.render({
            elem: '#publish-date',
        });

        // 渲染表格
        let listUrl = $('#table-container').data('url');
        let insTb = table.render({
            elem: '#table-container',
            toolbar: '#toolbar-tpl',
            defaultToolbar: ['filter', 'exports', { //自定义头部工具栏右侧图标。如无需自定义,去除该参数即可
                title: '搜索'
                , layEvent: 'search'
                , icon: 'layui-icon-search'
            }],
            url: listUrl,
            method: 'post',
            even: true,
            limits: [10,20,50,100,200,500,1000],
            request: {
                pageName: 'page',
                limitName: 'size',
            },
            parseData: function (res) {
                return {
                    "code": res.code, //解析接口状态
                    "msg": res.msg, //解析提示文本
                    "count": res.data.total, //解析数据长度
                    "data": res.data.list //解析数据列表
                };
            },
            page: true,
            cols: [[
                {type: 'checkbox'},
                {field: 'id', minWidth: 80, title: '编号ID'},
                {field: 'title', minWidth: 200, title: '标题'},
                {field: 'category', minWidth: 100, title: '栏目'},
                {field: 'published_at', minWidth: 200, title: '发布时间'},
                {field: 'sort', minWidth: 60, title: '排序', edit: 'text'},
                {templet: '#row-hot', field: 'hot', minWidth: 120,align: 'center', title: '热门'},
                {templet: '#row-top', field: 'top', minWidth: 120,align: 'center', title: '置顶'},
                {templet: '#row-operate', minWidth: 250, field: 'right', align: 'center', title: '操作', fixed: 'right'}
            ]],
            done: function () {
                Tools.setInsTb(insTb);
            }
        });

        let modifyUrl = $('#row-modify').data('url');

        // switch变更
        function changeSwitch(filter) {
            form.on('switch(' + filter + ')', function (obj) {
                let val = obj.elem.checked ? 1 : 0;
                $.post(modifyUrl, {id: this.value, field: this.name, value: val}, function (res) {
                    layer.msg(res.msg)
                    if (res.code !== 0) {
                        //操作不成功则刷新页面
                        insTb.reload();
                    }
                })
            });
        }

        // 监听搜索操作
        form.on('submit(data-search-btn)', function (data) {
            let categoryIds = [];
            let checkData = $('#ids-data').val();
            categoryIds = checkData.split(',');
            data.field.category_id = categoryIds;
            //执行搜索重载
            table.reload('table-container', {
                page: {curr: 1}
                , where: {searchParams: data.field}
            }, 'data');

            return false;
        });

        //监听行工具条
        table.on('tool(table-container)', function (obj) {
            let data = obj.data;
            let layEvent = obj.event;
            let url = $($(this).context).data('href');
            let title = $($(this).context).data('title');
            let width = $($(this).context).data('width') ? $($(this).context).data('width') : '100%';
            let height = $($(this).context).data('height') ? $($(this).context).data('height') : '100%';
            let insTb = Tools.getInsTb();

            switch (layEvent) {
                // 行 删除
                case 'del':
                    let ids = [data.id];
                    delRow(url, ids, insTb);
                    return false;
                //其他 默认为打开弹出层
                default:
                    openLayer(url, title, width, height);
                    return false;
            }
        });

        changeSwitch('changeRecommend');//监听推荐改变
        changeSwitch('changeTop');//监听置顶
        changeSwitch('changeHot');//监听热门
    }
    /*** index end ***/

    // add和edit页面
    if ($('.location-operate-page').length > 0) {
        let parentMenu = $('#parent-menu');
        let menuList = parentMenu.data('menu') ? parentMenu.data('menu') : [];
        let showList = parentMenu.data('show') ? parentMenu.data('show') : [];//各栏目 可展示字段列表
        let xmSelectDisabled = parentMenu.data('disabled') ? parentMenu.data('disabled') : false;//是否禁止选中
        xmSelect.render({
            el: '#parent-menu',
            paging: false,
            autoRow: true,
            radio: true,
            clickClose: true,
            name: 'category_id',
            tips: '请选择栏目',
            direction: 'auto',
            height: 'auto',
            disabled:xmSelectDisabled,
            model: {
                icon: 'hidden',
            },
            prop: {
                name: 'title',
                value: 'id',
            },
            tree: {
                show: true,
                strict: false,
                clickCheck: true,
                expandedKeys: true,
                clickExpand: false
            },
            theme: {
                color: '#1e84ff',
            },
            data: menuList,
            on: function (data) {
                //arr:  当前多选已选中的数据
                let arr = data.arr;
                //change, 此次选择变化的数据,数组
                let change = data.change;
                //isAdd, 此次操作是新增还是删除
                // let isAdd = data.isAdd;

                // console.log(arr, 'arr')
                // console.log(change, 'change')
                // console.log('已有: '+arr.length+' 变化: '+change.length+', 状态: ' + isAdd, 'desc')
                if (arr.length > 0 && change.length > 0) {
                    //切换
                    $('.field-div').hide();//全部隐藏
                    let currentCateId = arr[0].id;//当前栏目ID

                    // if(archiveCoverSize[currentCateId]!=undefined&&archiveCoverSize[currentCateId].archive_cover_size){
                    //     $('#archive_cover_size').text(archiveCoverSize[currentCateId].archive_cover_size)
                    // }else{
                    //     $('#archive_cover_size').text('请上传合适尺寸的图片')
                    // }

                    let showFields = showList[currentCateId] ? showList[currentCateId] : [];
                    // console.log(showFields, 'show current')
                    // 显示选择栏目的字段
                    $.each(showFields, function (index, val) {
                        $('.current-field-' + val).show();
                    })
                }
            },
        });
    }
});