$(document).ready(function () {
    //$('.input-daterange').datepicker({
    //    language: 'zh-CN',//显示中文
    //    format: 'yyyy-mm-dd HH:ii',
    //});
    //$('#txtEndtime').val(moment().format("YYYY-MM-DD") + "07:20:00");
    //$('#txtBegintime').val(moment().subtract(1, 'days').format("YYYY-MM-DD"));
    Daterangeini();
    //console.log($('#rangetime').val().split(' - ')[1]);
    //console.log($('#rangetime').val().substr(0, 19))
    QueryddlWorkshop();
    $('#ddlStation').val('');
    $('#ddlStation').select2({
        placeholder: "站点",
        allowClear: true
    });


    //1.初始化Table
})
function QueryddlWorkshop() {
    var promiseweld = $.ajax({
        url: '/api/Orders/QueryWorkshop',         //'/api/QC/QueryStatus'
        type: 'post',
        cache: true,
        async: true,
    });
    promiseweld.done(function (r) {
        console.log(r);
        $.each(r.info, function (index, value) {
            console.log(index);
            $("#ddlWorkshop").append("<option value='" + value.area_code + "'>" + value.descriptions + "</option>");
        })
        $('#ddlWorkshop').val('');
        $('#ddlWorkshop').select2({
            placeholder: "车间",
            allowClear: true
        });
        $('#ddlWorkshop').on('select2:select', function (e) {
            QueryddlStatus();
        });
    });
    promiseweld.fail(function (error) {
        console.log(error)
        alert(error);
    });
}
function Daterangeini() {
    $('#rangetime').val(moment().subtract('hours', 0).format('YYYY-MM-DD') + ' 07:20:00' + ' - ' + moment().format('YYYY-MM-DD') + ' 19:20:00');


    $('#rangetime').daterangepicker(
        {
            //autoUpdateInput: false,
            timePicker: true,
            timePicker24Hour: true,
            "opens": "center",
            'locale': {
                "format": 'YYYY-MM-DD HH:mm:ss',
                "separator": " - ",
                "applyLabel": "确定",
                "cancelLabel": "取消",
                "fromLabel": "起始时间",
                "toLabel": "结束时间'",
                "customRangeLabel": "自定义",
                "weekLabel": "W",
                "daysOfWeek": ["日", "一", "二", "三", "四", "五", "六"],
                "monthNames": ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
                "firstDay": 1,
                //"cancelLabel": '清除'
            }
        });
    //$('#rangetime').val('');
    $('#rangetime').on('cancel.daterangepicker', function (ev, picker) {
        $(this).val('');
    });
}
function QueryStorageMachineByStatus(processcode, areacode) {
    var promise = $.ajax({
        url: '/api/Orders/QueryMachineByStatus',
        type: 'post',
        cache: true,
        async: true,
        contentType: "application/json",
        data: JSON.stringify({
            processcode: processcode,
            areacode: areacode
        })
    });
    promise.done(function (r) {
        console.log(r)
        var options = '';
        $.each(r.info, function (index, v) {
            options += "<option value='" + v.wks_id + "'>" + v.wks_desc + "</option>";
        });
        $('#ddlMachine').html(options);
        $('#ddlMachine').val('');
        $('#ddlMachine').select2({
            placeholder: "选择机台号",
            allowClear: true
        });

    });
    promise.fail(function (error) {
        console.log(error)
        alert(error);
    });
}
function QueryddlStatus() {
    var promiseweld = $.ajax({
        url: '/api/PackOutput/QueryStatus',
        type: 'post',
        cache: true,
        async: true,
    });
    promiseweld.done(function (r) {
        $.each(r, function (index, value) {
            $("#ddlStatus").append("<option value='" + value.visit_type + "'>" + value.visit_type_desc + "</option>");
        })
        $('#ddlStatus').val('');
        $('#ddlStatus').select2({
            placeholder: "状态",
            allowClear: true
        });
        $('#ddlStation').on('select2:select', function (e) {
            console.log($(this).val());
            var selectvalue1 = $(this).val();
            var selectvalue2 = $('#ddlWorkshop').val()
            QueryStorageMachineByStatus(selectvalue1, selectvalue2);
        });
    });
    promiseweld.fail(function (error) {
        console.log(error)
        alert(error);
    });
}


$('#btnAllQuery').click(function () {
    if ($('#ddlWorkshop').val() == null && $('#rangetime').val() == '' && $('#ddlStation').val() == null) {
        alert('请输入查询参数');
        return;
    }
    $("#tbqj").bootstrapTable('destroy');//消失各机台
    $("#tbqc").bootstrapTable('destroy');
    var oTable1 = new TableInit1();
    oTable1.Init();
    //修改条件同时进行获取数据
    //$('#ddlWorkshop').on('change', function () {
    //    $("#tbqc").bootstrapTable('destroy');
    //    var oTable1 = new TableInit1();
    //    oTable1.Init();
    //})
    //$('#ddlStation').on('change', function () {
    //    $("#tbqc").bootstrapTable('destroy');
    //    var oTable1 = new TableInit1();
    //    oTable1.Init();
    //})
})

//var TableInit1 = function () {
//    var oTableInit = new Object();
//    //初始化Table
//    oTableInit.Init = function () {
//        $('#tbqc').bootstrapTable({
//            url: '/api/ProductionReport/StationDetailed',         //请求后台的URL(*)
//            method: 'post',                      //请求方式(*)
//            toolbar: '#toolbar',                //工具按钮用哪个容器
//            striped: true,                      //是否显示行间隔色
//            cache: false,                       //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
//            pagination: true,                   //是否显示分页(*)
//            sortable: false,                     //是否启用排序
//            sortOrder: "asc",                   //排序方式
//            queryParams: oTableInit.queryParams,//传递参数(*)
//            sidePagination: "client",           //分页方式:client客户端分页,server服务端分页(*)
//            contentType: 'application/json',
//            pageNumber: 1,                       //初始化加载第一页,默认第一页
//            pageSize: 15,                       //每页的记录行数(*)
//            pageList: [10, 25, 50, 100],        //可供选择的每页的行数(*)
//            search: true,                       //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
//            strictSearch: true,
//            showColumns: true,                  //是否显示所有的列
//            showRefresh: true,                  //是否显示刷新按钮
//            minimumCountColumns: 2,             //最少允许的列数
//            clickToSelect: true,                //是否启用点击选中行
//            //height: 500,                        //行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度
//            //uniqueId: "aiid",                     //每一行的唯一标识,一般为主键列
//            showToggle: true,                    //是否显示详细视图和列表视图的切换按钮
//            cardView: false,                    //是否显示详细视图
//            detailView: false,                   //是否显示父子表
//            showExport: true,                     //是否显示导出
//            exportDataType: "all",              //basic', 'all', 'selected'.
//            exportTypes: ['json', 'xml', 'csv', 'txt', 'sql', 'excel'],

//            onClickRow: function (row) {
//                if (template.defaults.imports.hasPermission('/payment_manager/payment_detail')) {
//                    EditBook(row.id);
//                }
//            },

//            onLoadSuccess: function (data) {
//                //var data = $('#tbqc').bootstrapTable('getData', true);
//                ////合并单元格
//                //mergeCells(data, "serial_nbr", 1, $('#tbqc'));
//                //mergeCells(data, "schedule_nbr", 1, $('#tbqc'));

//            },
//            columns: [{
//                checkbox: true
//            },
//            {
//                field: 'descriptions',
//                title: '车间'
//            }, {
//                field: 'process_code',
//                title: '站点'
//            }, {
//                field: 'serial_nbr',
//                title: '序列号'
//            }, {
//                field: 'workorder',
//                title: '工单'
//            }, {
//                field: 'wks_id',
//                title: '机台'
//            }
//                , {
//                field: 'el_grade',
//                title: 'EL等级'
//            }, {
//                field: 'final_grade',
//                title: '最终等级'
//            }, {
//                field: 'wks_visit_date',
//                title: '过站时间'
//            }, {
//                field: 'operator',
//                title: '操作人员'
//            }, {
//                field: 'ZT',
//                title: '状态'
//            }, {
//                field: 'MS',
//                title: '不良描述'
//            }

//            ]
//        });
//    };

//    ////表格超链接方法
//    //function aFormatter(value, row, index) {
//    //    return [
//    //        '<a href="#" >链接</a>'
//    //    ].join("")
//    //}

    //得到查询的参数
//    oTableInit.queryParams = function (params) {
//        var temp = {   //这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的
//            limit: params.limit,   //页面大小
//            offset: params.offset,  //页码
//            //departmentname: $("#txt_search_departmentname").val(),
//            //statu: $("#txt_search_statu").val()
//            //behintime: $('#txtBegintime').val(),
//            //endtime: $('#txtEndtime').val(),
//            behintime: $('#rangetime').val().substr(0, 19),//$('#txtBegintime').val(),
//            endtime: $('#rangetime').val().split(' - ')[1],
//            workshop: $('#ddlWorkshop').val(),
//            station: $('#ddlStation').val(),
//           // wks_id: $('#ddlMachine').val(),
//            workorder: $('#workorder').val(),
//          //  saleorder: $('#saleorder').val(),

//        };
//        return temp;
//    };
//    return oTableInit;
//}
//查询按钮

$('#btnQuery').click(function ()
{
    if ($('#ddlWorkshop').val() == null && $('#rangetime').val() == '' && $('#ddlStation').val() == null && $('#workorder').val() == '') {
        alert('请输入查询参数');
        return;
    } else if ($('#ddlStation').val() == null) {
        alert('请优先输入站站点信息')
        return;
    }
    console.log($('#ddlWorkshop').val())
   $("#tbqc").bootstrapTable('destroy');
    var oTable = new TableInit();
    oTable.Init();
    //var $workshop = $('#ddlWorkshop').val();
    //var $station = $('#ddlStation').val();
    //console.log($workshop);
    //if ($workshop != null && $station != null) {
    //    $("#tbqj").bootstrapTable('refresh');
    //    var oTable2 = new TableInit2();
    //    oTable2.Init();
    //} else {
    //    $("#tbqj").bootstrapTable('destroy');
    //}
    //修改值
    //$('#ddlWorkshop').on('change', function () {changes()})
    //$('#ddlStation').on('change', function () { changes() })
})
//按条件来进行刷新
//var changes = function () {
//    var $workshop = $('#ddlWorkshop').val();
//    var $station = $('#ddlStation').val();
//    if ($workshop != null || $station != null) {
//        $("#tbqj").bootstrapTable('destroy');
//        var oTable2 = new TableInit2();
//        oTable2.Init();
//        $("#tbqc").bootstrapTable('destroy');
//        var oTable = new TableInit();
//        oTable.Init();
//    } else {
//        $("#tbqj").bootstrapTable('destroy');
//        $("#tbqc").bootstrapTable('destroy');
//        var oTable = new TableInit();
//        oTable.Init();
//    }


//}
//查询按钮
var TableInit = function () {
    var oTableInit = new Object();
    //初始化Table
    oTableInit.Init = function () {
        $('#tbqc').bootstrapTable({
            url: '/api/ShiftProduction/ShiftProduction',         //请求后台的URL(*)
            method: 'post',                      //请求方式(*)
            toolbar: '#toolbar',                //工具按钮用哪个容器
            striped: true,                      //是否显示行间隔色
            cache: false,                       //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
            pagination: false,                   //是否显示分页(*)
            sortable: false,                     //是否启用排序
            sortOrder: "asc",                   //排序方式
            queryParams: oTableInit.queryParams,//传递参数(*)
            sidePagination: "client",           //分页方式:client客户端分页,server服务端分页(*)
            contentType: 'application/json',
            pageNumber: 1,                       //初始化加载第一页,默认第一页
            pageSize: 20,                       //每页的记录行数(*)
            pageList: [10, 25, 50, 100],        //可供选择的每页的行数(*)
            search: true,                       //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
            strictSearch: true,
            showColumns: true,                  //是否显示所有的列
            showRefresh: true,                  //是否显示刷新按钮
            minimumCountColumns: 2,             //最少允许的列数
            clickToSelect: true,                //是否启用点击选中行
            //height: 500,                        //行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度
            //uniqueId: "aiid",                     //每一行的唯一标识,一般为主键列
            showToggle: true,                    //是否显示详细视图和列表视图的切换按钮
            cardView: false,                    //是否显示详细视图
            detailView: false,                   //是否显示父子表
            showExport: true,                     //是否显示导出
            exportDataType: "all",              //basic', 'all', 'selected'.
            exportTypes: ['json', 'xml', 'csv', 'txt', 'sql', 'excel'],
            onLoadSuccess: function (data) {
                //var data = $('#tbqc').bootstrapTable('getData', true);
                ////合并单元格
                //mergeCells(data, "serial_nbr", 1, $('#tbqc'));
                //for (var i = 0; i < 2; i++) {
                //    mergeCells(data, Object.keys(data[0])[i], 1, $('#tbqc'));
                //}
                //console.log(data);
            },
            columns: [{
                checkbox: true
            }, {
                field: 'shift_type',
                title: '班组编号',
                align:'center'
                //formatter: aFormatter //添加超链接的方法
            },
            {
                field: 'shift_name',
                title: '班组名称',
                align: 'center'
            }, {
                field: 'mod_spec_value',
                title: '计划规格',
                align: 'center'
            }, {
                field: 'qty',
                title: '数量',
                align: 'center',
                cellStyle: { css: { 'background-color': '#dcdcdc' } }
            }

            ],
            onClickRow: function (row, $element, field) {
                index = $element.data('index');
                console.log(index);
                console.log(field);
                console.log(row);
                if (field == 'qty') {
                    //var workorder = row.workorder;
                    var station = null;
                    switch (field) {
                        case 'qty': station = '数量'
                            break; 
                    }

                } else {
                    return;
                }
                console.log(field);
                console.log(row[field]);
                var value = row[field];
                if (value != 0) {
                    var workorder = $('#workorder').val();
                    var workshop = $('#ddlWorkshop').val();
                    //var saleorder = $('#saleorder').val();
                    var type = row.shift_type;
                    var mod = row.mod_spec_value;
                    var begintime = $('#rangetime').val().substr(0, 19);
                    var endtime = $('#rangetime').val().split(' - ')[1];
                    var station = $('#ddlStation').val();
                    if (begintime == "") {
                        begintime = "";
                        endtime = "";
                    }
                    //console.log(workorder + '--' + workshop + '--' + field);
                    $('#RoleModal').modal({ backdrop: 'static', keyboard: false });
                    dataline(workshop, workorder,station, begintime, endtime, type,mod);
                    $('#detaInfoExcel').on('click', function () { excel(workshop, workorder, station, begintime, endtime,type,mod) });


                }
            }
        });
    };

    ////表格超链接方法
    //function aFormatter(value, row, index) {
    //    return [
    //        '<a href="#" >链接</a>'
    //    ].join("")
    //}

    //得到查询的参数
    oTableInit.queryParams = function (params) {
        var temp = {   //这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的
            limit: params.limit,   //页面大小
            offset: params.offset,  //页码
            //departmentname: $("#txt_search_departmentname").val(),
            //statu: $("#txt_search_statu").val()
            //behintime: $('#txtBegintime').val(),
            //endtime: $('#txtEndtime').val(),
            begintime: $('#rangetime').val().substr(0, 19),//$('#txtBegintime').val(),
            endtime: $('#rangetime').val().split(' - ')[1],
            workshop: $('#ddlWorkshop').val(),
            station: $('#ddlStation').val(),
            workorder: $('#workorder').val(),
            //state: $('#state').val(),

        };
        return temp;
    };
    return oTableInit;
};

//站点各机台



var ButtonInit = function () {
    var oInit = new Object();
    var postdata = {};

    oInit.Init = function () {
        //初始化页面上面的按钮事件
    };

    return oInit;
};

/**
 * 合并单元格
 * @param data  原始数据(在服务端完成排序)
 * @param fieldName 合并属性名称
 * @param colspan   合并列
 * @param target    目标表格对象
 */
function mergeCells(data, fieldName, colspan, target) {
    //声明一个map计算相同属性值在data对象出现的次数和
    var sortMap = {};
    for (var i = 0; i < data.length; i++) {
        for (var prop in data[i]) {
            if (prop == fieldName) {
                var key = data[i][prop]
                if (sortMap.hasOwnProperty(key)) {
                    sortMap[key] = sortMap[key] * 1 + 1;
                } else {
                    sortMap[key] = 1;
                }
                break;
            }
        }
    }
    for (var prop in sortMap) {
        console.log(prop, sortMap[prop])
    }
    var index = 0;
    for (var prop in sortMap) {
        var count = sortMap[prop] * 1;
        $(target).bootstrapTable('mergeCells', { index: index, field: fieldName, colspan: colspan, rowspan: count });
        index += count;
    }
}
//弹框查明细以及导出

function dataline(workshop, workorder, station, begintime, endtime,type,mod) {
    //console.log(workorder + '--' + workshop + '--' + field)
    $('#smalltable').bootstrapTable('destroy').bootstrapTable({
        striped: true,
        url: '/api/ShiftProduction/ShiftProduction',
        method: 'post',                      //请求方式(*)
        toolbar: '#toolbar',                //工具按钮用哪个容器
        striped: true,                      //是否显示行间隔色
        cache: false,                       //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
        sortable: false,                     //是否启用排序
        sortOrder: "asc",                   //排序方式
        height: 500,
        queryParams: queryParams,//传递参数(*)
        sidePagination: "client",           //分页方式:client客户端分页,server服务端分页(*)
        contentType: 'application/json',
        search: true,                       //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
        strictSearch: true,
        minimumCountColumns: 2,             //最少允许的列数
        clickToSelect: false,                //是否启用点击选中行
        exportDataType: "all",              //basic', 'all', 'selected'.
        exportTypes: ['json', 'xml', 'csv', 'txt', 'sql', 'excel'],
        onLoadSuccess: function (data) { console.log(data) },
        columns: [{
            title: '序号',
            align: 'center',
            formatter: function (value, row, index) {
                return ++index;
            }
        },
        {
            field: 'descriptions',
            title: '车间',
            align: 'center'
        }, {
            field: 'shift_name',
            title: '班组',
            align: 'center'
        }, {
            field: 'serial_nbr',
            title: '序列号',
            align: 'center'
        }, {
            field: 'mod_spec_value',
            title: '版型',
            align: 'center'
        }, {
            field: 'process_desc',
            title: '站点',
            align: 'center'
        }, {
            field: 'wks_desc',
            title: '机台号',
            align: 'center'
        }, {
            field: 'wks_visit_date',
            title: '过站时间',
            align: 'center'
            },
            {
                field: 'workorder',
                title: '工单号',
                align: 'center'
            },
            {
                field: 'product_code',
                title: '产品型号',
                align: 'center'
            },
            {
                field: 'lot_nbr',
                title: '批号',
                align: 'center'
            },
            {
                field: 'supplier_code',
                title: '供应商编号',
                align: 'center'
            },
            {
                field: 'supplier_desc',
                title: '供应商名称',
                align: 'center'
            },
            {
                field: 'final_grade',
                title: '最终等级',
                align: 'center'
            }

        ]
    });
    //queryParams(workshop, workorder, field);
    function queryParams(params) {
        var temp = {   //这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的
            limit: params.limit,   //页面大小
            offset: params.offset,  //页码
            workshop: workshop,
            workorder: workorder,
            //worktime:worktime,
            station: station,
            begintime: begintime,
            endtime: endtime,
            type: type,
            mod:mod

        };
        return temp;
    };

}

//弹框
//弹框导出
function excel(workshop, workorder, station, bt, et, type,mod) {
    //console.log(workorder + '--' + workshop + '--' + field);
    doPost('/Report/ShiftDataExcel', [
        workshop = workshop,
        workorder = workorder,
        //saleorder = saleorder,
        station = station,
        bt = bt,
        et = et,
        type = type,
        mod=mod
    ])
}
//各站点机台过站数弹框导出
function excel2(workshop, workorder, saleorder, station, wksid, bt, et, field) {
    console.log(workorder + '--' + workshop + '--' + field);
    doPost('/Report/WksDataExcel', [
        workshop = workshop,
        workorder = workorder,
        saleorder = saleorder,
        station = station,
        wksid = wksid,
        bt = bt,
        et = et,
        field = field])
}
function doPost(to, p) { // to:提交动作(action),p:参数 
    var myForm = document.createElement("form");
    myForm.method = "post";
    myForm.action = to;
    for (var i in p) {
        var myInput = document.createElement("input");
        myInput.setAttribute("name", "para"); // 为input对象设置name 
        myInput.setAttribute("value", p[i]); // 为input对象设置value 
        myForm.appendChild(myInput);
    }
    document.body.appendChild(myForm);
    myForm.submit();
    document.body.removeChild(myForm); // 提交后移除创建的form 
}

//导出excel
$('#btnExportExcel').click(function () {
    console.log("clicked");
    if ($('#ddlWorkshop').val() == null && $('#rangetime').val() == '' && $('#ddlStation').val() == null && $('#workorder').val() == '' && $('#saleorder').val() == '') {
        alert('请输入查询参数');
        return;
    }
    var bt = $('#rangetime').val().substr(0, 19);
    var et = $('#rangetime').val().split(' - ')[1];
    if (bt == '') {
        et = '';
    } else {
        et = $('#rangetime').val().split(' - ')[1];
    }
    var a = $("<a href='/Report/ShiftProductionExcel/"
        + (!$('#ddlWorkshop').val() ? "Null" : $('#ddlWorkshop').val()) + "/"
        + (bt == '' ? 'Null' : encodeURI(bt)) + "/"
        + (et == '' ? 'Null' : encodeURI(et)) + "/"
        + (!$('#ddlStation').val() ? "Null" : $('#ddlStation').val()) + "/"
        + (!$('#workorder').val() ? "Null" : $('#workorder').val()) 
        + "'target='_blank'></a>").get(0);
    var e = document.createEvent('MouseEvents');
    e.initEvent('click', true, true);
    a.dispatchEvent(e);
})