WebTM/views/PublicPage/HSourceReportHtml.html
@@ -35,9 +35,24 @@
                                    </div>
                                </div>
                                <div class="layui-inline">
                                    <label class="layui-form-label">物料编码</label>
                                    <label class="layui-form-label">部门</label>
                                    <div class="layui-input-block">
                                        <input type="text" class="layui-input" name="PartNumber" id="PartNumber" style="width:190px;">
                                        <select name="HDeptName" id="HDeptName" lay-verify="required" lay-search class="layui-input">
                                            <!--动态渲染车间-->
                                        </select>
                                    </div>
                                </div>
                                <!--<div class="layui-inline">
        <label class="layui-form-label">部门</label>
        <div class="layui-input-block">
            <input type="text" class="layui-input" name="HDeptName" id="HDeptName" style="width:190px;">
        </div>
    </div>-->
                                <div class="layui-inline" id="HProcExchBillNoHidden" style="display:none;">
                                    <label class="layui-form-label">流转卡号</label>
                                    <div class="layui-input-block">
                                        <input type="text" class="layui-input" name="HProcExchBillNo" id="HProcExchBillNo" style="width:190px;">
                                    </div>
                                </div>
                                <div class="layui-inline">
@@ -51,9 +66,42 @@
                                </button>
                                <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnReSearch" id="btnReSearch" style="padding:0 5px">重置</button>
                                <div class="layui-colla-content">
                                    <div class="layui-inline">
                                    <div class="layui-row" style="margin-top:5px">
                                        <div class="layui-inline">
                                            <span>其他条件></span>
                                        </div>
                                        <div class="layui-inline">
                                            <label class="layui-form-label">物料编码</label>
                                            <div class="layui-input-block">
                                                <input type="text" class="layui-input" name="PartNumber" id="PartNumber" style="width:190px;">
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <label class="layui-form-label">过滤</label>
                                            <div class="layui-input-block">
                                                <select name="ColName" id="ColName" lay-filter="ColName" style="width:190px;">
                                                </select>
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <select name="Comparator" id="Comparator" lay-filter="Comparator" style="width:190px;">
                                                <option value="0" selected="selected"></option>
                                                <option value="=">=</option>
                                                <option value=">=">>=</option>
                                                <option value=">">></option>
                                                <option value="<="><=</option>
                                                <option value="<"><</option>
                                                <option value="<>"><></option>
                                                <option value="7">包含</option>
                                                <option value="8">左包含</option>
                                                <option value="9">右包含</option>
                                                <option value="10">不包含</option>
                                            </select>
                                        </div>
                                        <div class="layui-inline">
                                            <input type="text" class="layui-input" value="" name="ColContent" id="ColContent">
                                        </div>
                                    </div>
                                </div>
@@ -62,7 +110,8 @@
                        <table class="" id="layTable" lay-filter="layTable"></table>
                        <script type="text/html" id="toolbarDemo">
                            <div class="layui-btn-container">
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_AddNew"><i class="layui-icon layui-icon-add-1"></i>新增</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_HideColumn"><i class="layui-icon layui-icon-form"></i>列设置</button>
                                <!--<button type="button" class="layui-btn layui-btn-sm" lay-event="set_AddNew"><i class="layui-icon layui-icon-add-1"></i>新增</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_ShowBill"><i class="layui-icon layui-icon-edit"></i>编辑</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_DeleteBill"><i class="layui-icon layui-icon-delete"></i>删除</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-reload" style="display:none;"><i class="layui-icon layui-icon-refresh"></i>刷新</button>
@@ -70,7 +119,7 @@
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-back" id="btn_back" style="display:none;"><i class="layui-icon layui-icon-close-fill"></i>驳回</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-details" style="display:none;"><i class="layui-icon layui-icon-form"></i>详情</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-generate" style="display:none;"><i class="layui-icon layui-icon-file"></i>生成送货单</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-exit" style="display:none;"><i class="layui-icon layui-icon-return"></i>退出</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-exit" style="display:none;"><i class="layui-icon layui-icon-return"></i>退出</button>-->
                            </div>
                        </script>
@@ -91,8 +140,8 @@
            var OperationType = 1;//操作类型
        } else {
            var OperationType = params[params[0]];//操作类型
            var linterid = params[params[1]];//源单id
            var HSouceBillType =  decodeURI(params[params[2]]);//源单类型
            var HOrgID = params[params[1]];//源单id
            var HSouceBillType = decodeURI(params[params[2]]);//源单类型
        }
        var cols_arr = []; //存储表格头的数组
        var table = null;
@@ -114,6 +163,9 @@
            //查询条件
            var sWhere = "";
            var resultTableHead = []; //获取列表头字段自定义列数组
            var HModName = "";
            var option = [];
            var titleData = [];//不需要显示的字段 可扩展
            //#endregion
@@ -130,12 +182,35 @@
            else {
                layer.alert("未知操作类型!", { icon: 5 });
            }
            //获取部门列
            var HDeptName = '<option value="0" style="color:red;" selected>全部部门</option>';
            $.ajax({
                type: "get",
                url: GetWEBURL() + "/Sc_ICMOBill/GetHDeptList",
                data: { "HOrgID": HOrgID },
                success: function (result) {
                    if (result.count == 1) { // 说明验证成功了,
                        var data = result.data;
                        for (var i = 0; i < data.length; i++) {
                            if (i == 0)
                                HDeptName += '<option  style="color:blue;"  value="' + data[i].HItemID + '" >' + data[i].HName + '</option>';
                            else
                                HDeptName += '<option  style="color:blue;" value="' + data[i].HItemID + '">' + data[i].HName + '</option>';
                        }
                        $("#HDeptName").append(HDeptName);
                        form.render('select');
                    }
                    layer.closeAll("loading");
                }
            })
            //#endregion
            //#region 触发事件:包括form.on(){}格式的所有点击事件、选择事件等
            //#region 头工具栏事件
            table.on('toolbar(mainTable)', function (obj) {
            table.on('toolbar(layTable)', function (obj) {
                switch (obj.event) {
                    //新增
                    case 'set_AddNew': set_AddNew();
@@ -146,7 +221,10 @@
                    //删除
                    case 'set_DeleteBill': set_DeleteBill();
                        break;
                    //列设置
                    case 'set_HideColumn':
                        get_HideColumn();
                        break;
                };
            });
            //#endregion
@@ -154,6 +232,8 @@
            //#region 查询按钮
            form.on('submit(btnSearch)', function (data) {
                get_FastQuery(HSouceBillType);
                set_ClearBill(sWhere, HSouceBillType);
                sWhere = "";//调用接口后清空sWhere缓存
            });
            //#endregion
@@ -181,6 +261,36 @@
            // #region 初始化界面
            function set_ClearBill(sWhere, HSouceBillType) {
                resultTableHead = []; //清空表头列,防止重复渲染
                switch (HSouceBillType) {
                    case '生产订单':
                        HModName = "Sc_ICMOBill_3710";
                        break;
                    case '生产汇报单':
                        HModName = "Sc_ICMOReportBill_3711";
                        break;
                    case '采购订单':
                        HModName = "Cg_POOrderBill_1102";
                        break;
                    case '收料通知单':
                        HModName = "Cg_POInStockBill_1103";
                        break;
                    case '委外订单':
                        HModName = "WW_EntrustOrderBill_1601";
                        break;
                    case '生产入库单':
                        $("#HProcExchBillNoHidden").show();
                        HModName = "ProductInBill_1202";
                        break;
                    case '采购入库':
                        HModName = "POStockInBill_1201";
                        break;
                    case '销售退货':
                        HModName = "SellOutBackBill_1247";
                        break;
                    case '生产退料':
                        HModName = "MateOutBackBill_1244";
                        break;
                }
                //初始查询
                get_Display(sWhere, HSouceBillType);
@@ -195,7 +305,7 @@
                $.ajax({
                    url: GetWEBURL() + '/Sc_BarCode/ReportFromBillList',
                    type: "GET",
                    data: { "page": 1, "limit": 50, "sWhere": sWhere, "HSouceBillType": HSouceBillType, "HOrgID": linterid },
                    data: { "page": 1, "limit": 50, "sWhere": sWhere, "HSouceBillType": HSouceBillType, "HOrgID": HOrgID },
                    async: false,
                    dataType: "json",//数据类型可以为 text xml json  script  jsonp
                    success: function (data1) {
@@ -206,6 +316,7 @@
                        set_InitGrid(data1);
                    }, error: function (err) {
                        layer.alert(err.Message, { icon: 5 });
                        layer.close(ajaxLoad);
                    }
                });
            }
@@ -221,27 +332,28 @@
                for (var i = 0; i < data.length; i++) {
                    if (data[i].name.substr(0, 1) == 'H' || data[i].name.substr(0, 1) == 'h') {
                        cols_arr[0][i + 1] = { field: data[i].id, title: data[i].name, align: 'center', hide: true }; //隐藏id列
                        titleData.push(data[i].name);
                    }
                    else {
                        switch (data[i].Type) {
                            //int
                            case 'Int32':
                                cols_arr[0][i + 1] = { field: data[i].id, title: data[i].name, align: 'center', totalRow: true, sort: true,width:130 };
                                cols_arr[0][i + 1] = { field: data[i].id, title: data[i].name, align: 'center', totalRow: true, sort: true, width: 130 };
                                break;
                            //Decimal
                            case 'Decimal':
                                cols_arr[0][i + 1] = { field: data[i].id, title: data[i].name, align: 'center', totalRow: true, sort: true, width: 150};
                                cols_arr[0][i + 1] = { field: data[i].id, title: data[i].name, align: 'center', totalRow: true, sort: true, width: 150 };
                                break;
                            default:
                                cols_arr[0][i + 1] = { field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 200};
                                cols_arr[0][i + 1] = { field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 200 };
                        }
                    }
                }
                //填充表格数据
                table.render({
                option = {
                    id: 'layTable'
                    , elem: '#layTable'
                    //, toolbar: '#toolbarDemo'
                    , toolbar: '#toolbarDemo'
                    , cols: [cols_arr[0]]
                    , data: data1.data == null ? [] : data1.data
                    , title: '' + HSouceBillType + ''
@@ -257,7 +369,12 @@
                    , done: function (res, curr, count) {  //返回数据执行回调函数
                        layer.close(layer.index);    //返回数据关闭loading
                    }
                });
                };
                table.render(option);
                DisPlay_HideColumn();
                if ($("#Comparator").val() == 0 && $("#ColContent").val() == "") {
                    ColFilter();
                }
            }
            //endregion
@@ -266,7 +383,33 @@
                var HBillNo = $("#HBillNo").val();//单据编号
                var PartNumber = $("#PartNumber").val();//物料编码
                var PartName = $("#PartName").val();//物料名称
                var HDeptName = $("#HDeptName").val();//部门
                var HProcExchBillNo = $("#HProcExchBillNo").val();//流转卡
                var ColName = $("#ColName").val();//复选框
                var Comparator = $("#Comparator").val()
                var ColContent = $("#ColContent").val();
                if (ColName != 0 && Comparator != 0) {
                    var com = "";
                    switch (Comparator) {
                        case "7":
                            com = "like'%" + ColContent + "%'";
                            break;
                        case "8":
                            com = "like'%" + ColContent + "'";
                            break;
                        case "9":
                            com = "like'" + ColContent + "%'";
                            break;
                        case "10":
                            com = "not like'%" + ColContent + "%'";
                            break;
                        default:
                            com = "" + Comparator + "'" + ColContent + "'";
                            break;
                    }
                    sWhere += " and " + ColName + " " + com;
                }
                switch (HSouceBillType) {
                    case '生产订单':
                        if (HBillNo) {
@@ -277,6 +420,9 @@
                        }
                        if (PartName) {
                            sWhere += " and 物料名称 like '%" + PartName + "%'";
                        }
                        if (HDeptName && HDeptName != 0) {
                            sWhere += " and HDeptID = '" + HDeptName + "'";
                        }
                        return sWhere;
                        break;
@@ -290,6 +436,9 @@
                        if (PartName) {
                            sWhere += " and 物料名称 like '%" + PartName + "%'";
                        }
                        if (HDeptName && HDeptName != 0) {
                            sWhere += " and HDeptID = '" + HDeptName + "'";
                        }
                        return sWhere;
                        break;
                    case '采购订单':
@@ -301,6 +450,9 @@
                        }
                        if (PartName) {
                            sWhere += " and 物料名称 like '%" + PartName + "%'";
                        }
                        if (HDeptName && HDeptName != 0) {
                            sWhere += " and HDeptID = '" + HDeptName + "'";
                        }
                        return sWhere;
                        break;
@@ -314,6 +466,9 @@
                        if (PartName) {
                            sWhere += " and 物料名称 like '%" + PartName + "%'";
                        }
                        if (HDeptName && HDeptName != 0) {
                            sWhere += " and HDeptID = '" + HDeptName + "'";
                        }
                        return sWhere;
                        break;
                    case '委外订单':
@@ -325,6 +480,27 @@
                        }
                        if (PartName) {
                            sWhere += " and 物料名称 like '%" + PartName + "%'";
                        }
                        if (HDeptName && HDeptName != 0) {
                            sWhere += " and HDeptID = '" + HDeptName + "'";
                        }
                        return sWhere;
                        break;
                    case '生产入库单':
                        if (HBillNo) {
                            sWhere += " and 单据号 like '%" + HBillNo + "%'";
                        }
                        if (PartNumber) {
                            sWhere += " and 物料代码 like '%" + PartNumber + "%'";
                        }
                        if (PartName) {
                            sWhere += " and 物料名称 like '%" + PartName + "%'";
                        }
                        if (HDeptName && HDeptName != 0) {
                            sWhere += " and HDeptID = '" + HDeptName + "'";
                        }
                        if (HProcExchBillNo!="") {
                            sWhere += " and 流转卡号 like '" + HProcExchBillNo + "%'";
                        }
                        return sWhere;
                        break;
@@ -347,21 +523,170 @@
                        return sWhere;
                        break;
                }
                set_ClearBill(sWhere);
                sWhere = "";//调用接口后清空sWhere缓存
            }
            //#endregion
            //隐藏列设置
            function get_HideColumn() {
                var colName = "";
                for (var i = 1; i < option.cols[0].length - 1; i++) {
                    colName += option.cols[0][i]["title"] + ",";
                }
                var contentUrl = "";
                var urlStr = window.document.location.pathname;//获取文件路径
                var urlLen = urlStr.split('/');
                for (var i = 0; i < urlLen.length - 4; i++) {
                    contentUrl += "../";
                }
                colName = encodeURI(colName.substring(0, colName.length - 1));//对 URI 进行编码
                contentUrl += '基础资料/隐藏列设置/Gy_GridView_Hide.html?HModName=' + HModName + '&colName=' + colName;
                layer.open({
                    type: 2
                    , skin: "layui-layer-rim" //加上边框
                    , title: "隐藏列设置"  //标题
                    , closeBtn: 1  //窗体右上角关闭 的 样式
                    , shift: 2 //弹出动画
                    , area: ["50%", "90%"] //窗体大小
                    , maxmin: true //设置最大最小按钮是否显示
                    , content: [contentUrl, "yes"]
                    , btn: ["确定", "取消"]
                    , btn1: function (index, laero) {
                        //刷新表格数据
                        DisPlay_HideColumn();
                        layer.close(index);//关闭弹窗
                    }
                })
            }
            //显示列数据 物料信息
            function DisPlay_HideColumn() {
                $.ajax({
                    url: GetWEBURL() + '/Xt_grdAlignment_WMES/grdAlignmentWMESList',
                    type: "GET",
                    data: { "HModName": HModName, "user": sessionStorage["HUserName"] },
                    async: false,
                    success: function (data1) {
                        if (data1.data.length != 0) {
                            var dataCol = [];//数据库查询出的列数据
                            dataCol = data1.data[0].HGridString.split(',');
                            for (var i = 0; i < option.cols[0].length - 2; i++) {
                                var dataCols = dataCol[i].split('|');
                                //隐藏列
                                if (dataCols[1] == 1) {
                                    option.cols[0][i + 1]["hide"] = true;
                                }
                                //设置列宽
                                if (dataCols[3] > 0) {
                                    option.cols[0][i + 1]["width"] = dataCols[3];
                                }
                                //设置内容字体大小
                                if (data1.data[0].HFontSize != 0) {
                                    option.cols[0][i + 1]["style"] = "font-size:" + data1.data[0].HFontSize + "px;";
                                } else {
                                    option.cols[0][i + 1]["style"] = "font-size:100%";
                                }
                                //设置列宽
                                //if (data1.data[0].HColumnWidth != 0) {
                                //    option.cols[0][i + 1]["width"] = data1.data[0].HColumnWidth + "px;";
                                //} else {
                                //    option.cols[0][i + 1]["width"] = "";
                                //}
                                //显示列
                                if (dataCols[1] == 0 && $.inArray(option.cols[0][i + 1]["title"], titleData) == -1) {
                                    option.cols[0][i + 1]["hide"] = false;
                                }
                                //字体所在位置(左 居中 右)
                                switch (dataCols[2]) {
                                    case "L":
                                        option.cols[0][i + 1]["align"] = "left";
                                        break;
                                    case "M":
                                        option.cols[0][i + 1]["align"] = "center";
                                        break;
                                    case "R":
                                        option.cols[0][i + 1]["align"] = "right";
                                        break;
                                }
                            }
                            //取消冻结列
                            for (var i = 1; i < option.cols[0].length - 1; i++) {
                                if (option.cols[0][i]["fixed"] != null) {
                                    option.cols[0][i]["fixed"] = null;
                                }
                                else {
                                    break;
                                }
                            }
                            //冻结列
                            if (data1.data[0].HFixCols != 0) {
                                for (var i = 0; i < data1.data[0].HFixCols; i++) {
                                    if ($.inArray(option.cols[0][i + 1]["title"], titleData) != -1) {
                                        data1.data[0].HFixCols += 1;
                                    }
                                    option.cols[0][i + 1]["fixed"] = "left";
                                }
                            }
                            table.render(option);
                        } else {
                            table.render(option);
                        }
                    }, error: function () {
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                })
            }
            //#region 重置过滤条件方法
            function set_ClearQuery() {
                $("#HBillNo").val("");//单据号
                $("#PartNumber").val("");//物料编码
                $("#PartName").val("");//物料名称
                $("#HDeptName").val("");//单据号
                $("#ColContent").val("");
                $("#ColName").val("0");
                $("#Comparator").val("0");
                form.render('select');
                get_FastQuery(HSouceBillType);
                sWhere = "";
            }
            //#endregion
            //#region 列明显示下拉框
            function ColFilter() {
                var Organization = '<option  value="0" selected="selected" ></option>';
                for (var i = 1; i < option.cols[0].length; i++) {
                    if (option.cols[0][i].hide != true) {
                        Organization += '<option  style="color:blue;" value="' + option.cols[0][i].field + '">' + option.cols[0][i].field + '</option>';
                    }
                }
                $("#ColName").empty();
                $("#ColName").append(Organization);
                form.render('select');
            }
            //#endregion
            //获取参数
            function getUrlVars() {
                var vars = [], hash;
                var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
                for (var i = 0; i < hashes.length; i++) {
                    hash = hashes[i].split('=');
                    vars.push(hash[0]);
                    vars[hash[0]] = hash[1];
                }
                return vars;
            }
            //#endregion
            //#endregion