let tableIns;
let openIndex;
let multiSelectTag;

let mainTableUrl = "/backstage_userDeleteLog/findAll";
let mainRestoreUrl = "/backstage_user/restoreUser";

layui.config({
    base: ctx + '/common/'
}).extend({
    dragMove: 'dragMove/dragMove'
})
layui.use(['element', 'form', 'table', 'layer', 'laydate', 'util', 'upload',  'dragMove'], function () {
    let element = layui.element; //导航的hover效果、二级菜单等功能，需要依赖element模块
    let laydate = layui.laydate;
    let table = layui.table, form = layui.form;//select、单选、复选等依赖form
    let dragMove = layui.dragMove;//引入工具
    let layer = layui.layer;
    form.verify({
        // positiveInteger: [/^(([0-9]+[\.]?[0-9]+)|[1-9])$/, '只能填写正整数'],//必填，且只能输入正整数
        positiveInteger: [/^[1-9]\d*$/, '只能填写正整数'],//必填，且只能输入正整数
    });
    /**
     * 渲染图片查看
     */
    dragMove.render({
        elem: "#cardBody", //指向图片的父容器
        layerArea: ["960px", "720px"], //弹窗的宽高，同layer的area，默认["960px","720px"]
        layerShade: 0.6, //遮罩的透明度，同layer的shade，默认0.6
        layerMove: false, //触发拖动的元素，同layer的move，这里默认禁止，可设置为'.layui-layer-title'
        maxZoom: 1 //图片能放大的最大倍数，默认1倍
    });
    //主列表渲染
    tableIns = table.render({
        elem: '#mainTable'
        , url: ctx + mainTableUrl
        , method: 'POST'
        //请求前参数处理
        , request: {
            pageName: 'page' //页码的参数名称，默认：page
            , limitName: 'rows' //每页数据量的参数名，默认：limit
        }
        , where: {sidx: "desc", sord: "createTime"}
        , response: {
            statusName: 'flag' //规定数据状态的字段名称，默认：code
            , statusCode: true //规定成功的状态码，默认：0
            , msgName: 'msg' //规定状态信息的字段名称，默认：msg
            , countName: 'records' //规定数据总数的字段名称，默认：count
            , dataName: 'rows' //规定数据列表的字段名称，默认：data
        }
        //响应后数据处理
        , parseData: function (res) { //res 即为原始返回的数据
            let data = res.data;
            console.log("返回的地址数据：", data);
            // if (data.rows && data.rows.length > 0) {
            // }
            return {
                "flag": res.flag, //解析接口状态
                "msg": res.msg, //解析提示文本
                "records": data.records, //解析数据长度
                "rows": data.rows //解析数据列表
            };
        }
        , toolbar: '#mainTableToolbarDemo'
        , title: '列表'
        , cols: [[
            {field: 'userId', title: '用户ID', sort: true}
            , {field: 'telephoneNumber', title: '用户电话', sort: true}
            , {field: 'email', title: '用户邮箱', sort: true}
            , {field: 'openid', title: 'openid', sort: true}
            , {field: 'unionid', title: 'unionid', sort: true}
            , {field: 'appleId', title: 'appleId', sort: true }
            , {
                field: 'status', title: '状态', templet: function (d) {
                    if (d.status == 0) { //PENDING
                        return '<span style="color: green">挂起</span>';
                    } else if (d.status == 1) { //DELETE
                        return '<span style="color: red">删除</span>';
                    } else if (d.status == 2) { //RESTORE
                        return '<span style="color: red">已恢复</span>';
                    } else {
                        return '未添加:' + d.status;
                    }
                }, sort: true
            }
            , {field: 'createTime', title: '创建时间',  sort: true}
            , {field: 'updateTime', title: '更新时间',  sort: true}
            , {fixed: 'right', title: '操作', width: 140, toolbar: '#mainTableBarDemo'}
        ]]
        , defaultToolbar: ['', 'exports', 'print']
        , page: true
        // , height: height
        , cellMinWidth: 80
    });

    //头工具栏事件
    table.on('toolbar(test)', function (obj) {
        switch (obj.event) {
            case 'addNewRow':
                break;
            case 'query':
                let queryByLoginName = $("#queryByLoginName").val();
                let query = {
                    page: {
                        curr: 1 //重新从第 1 页开始
                    }
                    , done: function (res, curr, count) {
                        //完成后重置where，解决下一次请求携带旧数据
                        this.where = {};
                    }
                };
                if (!queryByLoginName) {
                    queryByLoginName = "";
                }else{
                    if (!~queryByLoginName.indexOf('@')) {
                        if (!commonUtil.checkPhone(queryByLoginName)) {
                            layer.msg('请输入正确手机号');
                            return;
                        }
                        //设定异步数据接口的额外参数
                        query.where = {telephoneNumber: queryByLoginName};
                    } else {
                        if (!commonUtil.checkEMail(queryByLoginName)) {
                            layer.msg('请输入正确邮箱号');
                            return;
                        }
                        //设定异步数据接口的额外参数
                        query.where = {email: queryByLoginName};
                    }
                }
                tableIns.reload(query);
                $("#queryByLoginName").val(queryByLoginName);
                break;
        }
    });

    //监听行工具事件
    table.on('tool(test)', function (obj) {
        let data = obj.data;
        console.log("data:", data);
        //恢复
        if (obj.event === 'restore') {
            layer.confirm('是否恢复这个用户数据?', function (index) {
                $.post(ctx + mainRestoreUrl, {userId: data.userId}, function (data) {
                    if (!data.flag) {
                        layer.msg(data.msg, {icon: 2, time: 2000}, function () {
                        });
                        return;
                    }
                    tableIns.reload();
                });
                layer.close(index);
            });
        }
    });

});