let tableIns;
let tableCNT;
let tableSNB;
let tablePlayerLog;
let tree;
layui.use(['element', 'form', 'table', 'layer', 'laydate', 'tree', 'util'], function () {
    let table = layui.table;
    let form = layui.form;//select、单选、复选等依赖form
    form.verify({
        positiveNumberRequiredTrue: [/^(([0-9]+[\.]?[0-9]+)|[1-9])$/, '只能填写正数'],//必填，且只能输入正数
        positiveWholeNumberRequiredTrue: [/^[+]{0,1}(\d+)$/, '只能填写正整数'],//必填，且只能输入正整数
    });

    let element = layui.element; //导航的hover效果、二级菜单等功能，需要依赖element模块
    let laydate = layui.laydate;
    tree = layui.tree;
    let height = document.documentElement.clientHeight * 0.8; //随便设置下，和操作表单大概一样
    //用户列表
    tableIns = table.render({
        elem: '#userPlayerLandTable'
        , url: ctx + "/sys/sysComUsers/findPlayerLandByAddress"
        , 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 即为原始返回的数据
            var data = res.data;
            // console.log("返回的地址数据：", data);
            return {
                "flag": res.flag, //解析接口状态
                "msg": res.msg, //解析提示文本
                "records": data.records, //解析数据长度
                "rows": data.rows //解析数据列表
            };
        }
        , toolbar: '#userPlayerLandTableToolbarDemo'
        , title: '用户仓库列表'
        , cols: [[
            {field: 'id', title: 'ID', hide: true}
            , {field: 'userId', title: '用户id'}
            , {field: 'configLandId', title: '土地号',width:70}
            , {field: 'name', title: '土地名称'}
            , {
                field: 'isLease', title: '是否租赁',width:80, templet: function (d) {
                    if (d.isLease == 1) {
                        return '<span style="color: green">已租赁</span>';
                    } else if (d.isLease == 0) {
                        return '<span style="color: grey">未租赁</span>';
                    } else {
                        return '未添加:' + d.isLease;
                    }
                }
            }
            ,
            , {field: 'leaseTime', title: '租赁结束日期'}
            , {field: 'leaseMultiple', title: '倍数',width:70}
            ,{
                field: 'leaseDate', title: '类型',width:80, templet: function (d) {
                    //1是3个月，2是1年，3是5年
                    if (d.leaseDate == 1) {
                        return '<span style="color: red">三个月</span>';
                    } else if (d.leaseDate == 2) {
                        return '<span style="color: green">1年</span>';
                    } else if (d.leaseDate == 3) {
                        return '<span style="color: blue">5年</span>';
                    }{
                        return '未添加:' + d.goodsType;
                    }
                }
            }
            , {field: 'isPlant', title: '是否种植',width:80, templet: function (d) {
                    //1是3个月，2是1年，3是5年
                    if (d.isPlant == 0) {
                        return '<span style="color: red">未种植</span>';
                    } else if (d.isPlant == 1) {
                        return '<span style="color: green">已种植</span>';
                    }
                }}
            , {field: 'plantId', title: '种子id',width:70}
            , {field: 'plantStart', title: '开始种子时间'}
            , {fixed: 'right', title: '操作', toolbar: '#userPlayerLandTableBarDemo'}
        ]]
        , defaultToolbar: ['', 'exports', 'print']
        , page: true
        , height: height
        , cellMinWidth: 80
    });

    //头工具栏事件
    table.on('toolbar(test)', function (obj) {
        switch (obj.event) {
            case 'query':
                //根据用户地址查询
                findByUserAddress(form);
                break;
            case 'playerLogReload':
                playerLogReload();
                break;
        }
    });

    //监听行工具事件
    table.on('tool(test)', function (obj) {
        let data = obj.data;
        //编辑
        if (obj.event === 'edit') {
            console.log(data);
            //回显操作表单
            $("#comUsePlayerLandForm").form(data);
            form.render();
        }
    });


    //日期选择器
    laydate.render({
        elem: '#leaseTime',
        format: "yyyy-MM-dd HH:mm:ss"
    });
    laydate.render({
        elem: '#plantStart',
        format: "yyyy-MM-dd HH:mm:ss"
    });
    //监听提交
    form.on('submit(comUserPlayerLandFilter)', function (data) {
        comUserPlayerLandFormSave();
    });
});


function findByUserAddress(form) {
    //重置数据
    $("#comUsePlayerLandForm")[0].reset();
    form.render();
    let queryByAddress = $("#queryByAddress").val();
    //获取菜单数据
    if (queryByAddress.length <= 0) {
        layer.msg("输入用户钱包地址查询", {icon: 2, time: 1000}, function () {
        });
        return;
    }
    tableIns.reload({
        page: {
            curr: 1 //重新从第 1 页开始
            , limit: 10
        },
        method: 'POST'
        , url: ctx + "/sys/sysComUsers/findPlayerLandByAddress"
        , where: {address: queryByAddress, sidx: "desc", sord: "createTime"}
        , done: function (res, curr, count) {
            // console.log(res, curr, count);
            $("input[name='queryByAddress']").val(queryByAddress);
            //this.where={};
            //不清空，有问题：搜索条件会保留
            //清空，  有问题：分页的时候没有搜索条件了,分页会受到影响
        }
    });
}

/**
 * 提交保存
 */
function comUserPlayerLandFormSave() {
    let comUsePlayerLandForm = $("#comUsePlayerLandForm").serializeObject();
    if (!comUsePlayerLandForm.id) {
        layer.msg("选择编辑的土地对象", {icon: 2, time: 1000}, function () {
        });
        return;
    }
    $.post(ctx + "/sys/sysComUsers/playerLandSave", comUsePlayerLandForm, function (data) {
        if (!data.flag) {
            layer.msg(data.msg, {icon: 2, time: 2000}, function () {
            });
            return;
        }
        tableIns.reload();
    });
}
