let tableSumCNT;
let tableDateSumCNT;
let tableSumSNB;
let tableDateSumSNB;
let tree;
let startDate = new Date(new Date(new Date().toLocaleDateString()).getTime()),
    endDate = new Date(new Date(new Date().toLocaleDateString()).getTime() + 24 * 60 * 60 * 1000 - 1);
let snbStartDate = startDate, snbEndDate = endDate;

layui.use(['element', 'form', 'table', 'layer', 'laydate', 'tree', 'util'], function () {
    let table = layui.table;
    let form = layui.form;//select、单选、复选等依赖form
    let element = layui.element; //导航的hover效果、二级菜单等功能，需要依赖element模块
    let laydate = layui.laydate;
    tree = layui.tree;
    let height = document.documentElement.clientHeight * 0.4;
    tableSumCNT = table.render({
        elem: '#cntTable'
        , url: ctx + "/sys/sysProperty/findAllCNTGroupByPayType"
        , method: 'POST'
        //请求前参数处理
        , request: {
            pageName: 'page' //页码的参数名称，默认：page
            , limitName: 'rows' //每页数据量的参数名，默认：limit
        }
        , 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: '#cntTableToolbarDemo'
        , title: 'CNT消费统计'
        , cols: [[
            {
                field: 'payType', title: '交易类型', templet: function (d) {
                    if (d.payType == 1) {  // 自定义内容
                        return '<span style="color: red">土地租赁</span>';
                    } else if (d.payType == 4) {
                        return '<span style="color: red">购买种子</span>';
                    } else {
                        return '待添加：' + d.payType;
                    }
                }
            }
            , {field: 'cntSum', title: '消费的CNT总量'}
        ]]
        , defaultToolbar: ['', 'exports', 'print']
        , page: false
        , height: height
        , cellMinWidth: 80
    });

    tableDateSumCNT = table.render({
        elem: '#cntDateTable'
        , url: ctx + "/sys/sysProperty/findAllCNTSumGroupByPayTypeFromDate"
        , method: 'POST'
        , where: {
            startTime: commonUtil.parseTime(startDate),
            endTime: commonUtil.parseTime(endDate)
        }
        //请求前参数处理
        , request: {
            pageName: 'page' //页码的参数名称，默认：page
            , limitName: 'rows' //每页数据量的参数名，默认：limit
        }
        , 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: '#cntDateTableToolbarDemo'
        , title: 'CNT日期消费统计'
        , cols: [[
            {
                field: 'payType', title: '交易类型', templet: function (d) {
                    if (d.payType == 1) {  // 自定义内容
                        return '<span style="color: red">土地租赁</span>';
                    } else if (d.payType == 4) {
                        return '<span style="color: red">购买种子</span>';
                    } else {
                        return '待添加：' + d.payType;
                    }
                }
            }
            , {field: 'cntSum', title: '消费的CNT总量'}
        ]]
        , defaultToolbar: ['', 'exports', 'print']
        , page: false
        , height: height
        , cellMinWidth: 80
    });


    tableSumSNB = table.render({
        elem: '#snbTable'
        , url: ctx + "/sys/sysProperty/findAllSNBGroupByPayType"
        , method: 'POST'
        //请求前参数处理
        , request: {
            pageName: 'page' //页码的参数名称，默认：page
            , limitName: 'rows' //每页数据量的参数名，默认：limit
        }
        , 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: '#snbTableToolbarDemo'
        , title: 'SNB消费统计'
        , cols: [[
            {
                field: 'tranType', title: '交易类型', templet: function (d) {
                    if (d.tranType == 3) {  // 自定义内容
                        return '<span style="color: red">购买种子</span>';
                    } else if (d.tranType == 0) {
                        return '<span style="color: green">出售水果</span>';
                    } else if (d.tranType == 1) {
                        return '<span style="color: red">SNB兑换CNT冻结</span>';
                    } else if (d.tranType == 2) {
                        return '<span style="color: green">SNB兑换CNT解冻</span>';
                    } else {
                        return '待添加：' + d.payType;
                    }
                }
            }
            , {field: 'snbSum', title: '消费的Snb总量'}
        ]]
        , defaultToolbar: ['', 'exports', 'print']
        , page: false
        , height: height
        , cellMinWidth: 80
    });

    tableDateSumSNB = table.render({
        elem: '#snbDateTable'
        , url: ctx + "/sys/sysProperty/findAllSNBSumGroupByPayTypeFromDate"
        , method: 'POST'
        //请求前参数处理
        , request: {
            pageName: 'page' //页码的参数名称，默认：page
            , limitName: 'rows' //每页数据量的参数名，默认：limit
        }
        , where: {
            startTime: commonUtil.parseTime(snbStartDate),
            endTime: commonUtil.parseTime(snbEndDate)
        }
        , 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: '#snbDateTableToolbarDemo'
        , title: 'SNB日消费日期'
        , cols: [
            [{
                field: 'tranType', title: '交易类型', templet: function (d) {
                    if (d.tranType == 3) {  // 自定义内容
                        return '<span style="color: red">购买种子</span>';
                    } else if (d.tranType == 0) {
                        return '<span style="color: green">出售水果</span>';
                    } else if (d.tranType == 1) {
                        return '<span style="color: red">SNB兑换CNT冻结</span>';
                    } else if (d.tranType == 2) {
                        return '<span style="color: green">SNB兑换CNT解冻</span>';
                    } else {
                        return '待添加：' + d.payType;
                    }
                }
            }
                , {field: 'snbSum', title: '消费的Snb总量'}
            ]]
        , defaultToolbar: ['', 'exports', 'print']
        , page: false
        , height: height
        , cellMinWidth: 80
    });


    //头工具栏事件
    table.on('toolbar(test)', function (obj) {
        switch (obj.event) {
            case 'snbReload':
                sumSnbReload();
                break;
            case 'cntReload':
                sumCntReload();
                break;
            case 'cntDateReload':
                searchFromDate();
                break;
            case 'snbDateReload':
                searchSNBFromDate();
                break;

        }
    });

    //监听行工具事件
    table.on('tool(test)', function (obj) {
        let data = obj.data;
        //编辑
        if (obj.event === 'edit') {
            console.log("edit");
            //回显操作表单
            $("#comUserForm").form(data);
            form.render();
        }
    });
    laydate.render({
        elem: '#cntDate'
        , type: 'datetime'
        , value: commonUtil.parseTime(startDate) + ' - ' + commonUtil.parseTime(endDate)
        , isInitValue: true
        , range: true
        , done: function (_value, _date, _endDate) {
            // console.log(_value, _date, _endDate)
            let _array = _value.split(' - ');
            startDate = _array[0];
            endDate = _array[1];
            // console.log(startDate, endDate)
            searchFromDate();
        }
    });

    laydate.render({
        elem: '#snbDate'
        , type: 'datetime'
        , value: commonUtil.parseTime(snbStartDate) + ' - ' + commonUtil.parseTime(snbEndDate)
        , isInitValue: true
        , range: true
        , done: function (_value, _date, _endDate) {
            // console.log(_value, _date, _endDate)
            let _array = _value.split(' - ');
            snbStartDate = _array[0];
            snbEndDate = _array[1];
            // console.log(snbStartDate, snbEndDate)
            searchSNBFromDate();
        }
    });
});

function sumSnbReload() {
    tableSumSNB.reload({
        page: false
        , method: 'POST'
        , url: ctx + "/sys/sysProperty/findAllSNBGroupByPayType"
        , done: function (res, curr, count) {
            // console.log(res, curr, count);
            //this.where={};
            //不清空，有问题：搜索条件会保留
            //清空，  有问题：分页的时候没有搜索条件了,分页会受到影响
        }
    });
}

function sumCntReload() {
    tableSumCNT.reload({
        page: false
        , method: 'POST'
        , url: ctx + "/sys/sysProperty/findAllCNTGroupByPayType"
        , done: function (res, curr, count) {
            // console.log(res, curr, count);
            // this.where={};
            //不清空，有问题：搜索条件会保留
            //清空，  有问题：分页的时候没有搜索条件了,分页会受到影响
        }
    });
}


function searchFromDate() {
    tableDateSumCNT.reload({
        page: false
        , method: 'POST'
        , url: ctx + "/sys/sysProperty/findAllCNTSumGroupByPayTypeFromDate"
        , where: {
            startTime: commonUtil.parseTime(startDate),
            endTime: commonUtil.parseTime(endDate)
        }
        , done: function (res, curr, count) {
            // console.log(res, curr, count);
            // this.where={};
            //不清空，有问题：搜索条件会保留
            //清空，  有问题：分页的时候没有搜索条件了,分页会受到影响
        }
    });
}

function searchSNBFromDate() {
    tableDateSumSNB.reload({
        page: false
        , method: 'POST'
        , url: ctx + "/sys/sysProperty/findAllSNBSumGroupByPayTypeFromDate"
        , where: {
            startTime: commonUtil.parseTime(snbStartDate),
            endTime: commonUtil.parseTime(snbEndDate)
        }
        , done: function (res, curr, count) {
            // console.log(res, curr, count);
            // this.where={};
            //不清空，有问题：搜索条件会保留
            //清空，  有问题：分页的时候没有搜索条件了,分页会受到影响
        }
    });
}