wtt
2025-11-10 1c3ca496cc700359ea7b85fc4eae9b20be52cb80
WebTM/views/°¸Àý´úÂë/»ªÔ¶/HY_HistogramReport.html
@@ -15,6 +15,26 @@
    <script src="../../../layuiadmin/PubCustom.js"></script>
    <script src="../../../layuiadmin/zgqCustom/zgqCustom.js"></script>
    <script src="../../../layuiadmin/HideButton.js"></script>
    <style>
        .loader {
            border: 8px solid #f3f3f3; /* Light grey */
            border-top: 8px solid #3498db; /* Blue */
            border-radius: 50%;
            width: 50px;
            height: 50px;
            animation: spin 2s linear infinite;
        }
        @keyframes spin {
            0% {
                transform: rotate(0deg);
            }
            100% {
                transform: rotate(360deg);
            }
        }
    </style>
</head>
<body>
    <div class="layui-fluid">
@@ -41,10 +61,17 @@
                                        <input type="text" class="layui-input" name="HBarCode_Set" id="HBarCode_Set">
                                    </div>
                                </div>
                                <div class="layui-inline">
                                <div class="layui-inline" style="display:none;">
                                    <div class="layui-input-block" style="margin-left: 0px;">
                                        <input type="checkbox" name="checkbox_isAVI" id="checkbox_isAVI" lay-skin="primary" lay-filter="checkbox_isAVI" checked title="AVI">
                                        <input type="hidden" value="true" name="isAVI" id="isAVI" lay-verify="isAVI">
                                    </div>
                                </div>
                                <div class="layui-inline">
                                    <div class="layui-input-block" style="margin-left: 0px;">
                                        <input type="checkbox" name="checkbox_HBatchDeleteFlag" id="checkbox_HBatchDeleteFlag" lay-skin="primary" lay-filter="checkbox_HBatchDeleteFlag" title="批量划废启动标记">
                                        <input type="hidden" value="false" name="HBatchDeleteFlag" id="HBatchDeleteFlag" lay-verify="HBatchDeleteFlag">
                                        <button type="button" id="HBatchDelete_submit" class="layui-btn layui-btn-normal layui-btn-radius" lay-submit="" lay-filter="HBatchDelete_submit">批量划废</button>
                                    </div>
                                </div>
                                <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnSearch" id="btnSearch">
@@ -84,6 +111,8 @@
            var HLayOut_PNL = [];                                   //PNL布局信息数据
            var HPCSNoList = [];                                    //记录布局上已经加入的PCS号
            var HBatchDeletePCSList = [];                           //批量划废PCS列表
            var HBadLabelNameList = ["AOI1", "AOI2", "AOI3", "AOI4", "AVI", "MRB", "电测"];                           //检验站别标签名称数组
            var HBadInfo = {};                                                                                        //检验站别对应不良数量
            for (var i = 0; i < HBadLabelNameList.length; i++) {
@@ -110,11 +139,32 @@
            });
            //#endregion
            //#region æ‰¹é‡åˆ’废
            form.on('submit(HBatchDelete_submit)', function (data) {
                batchDelete();
            });
            //#endregion
            //#region AVI复选框
            form.on('checkbox(checkbox_isAVI)', function (data) {
                $("#isAVI").val(data.elem.checked);
            });
            //#endregion
            //#region æ‰¹é‡åˆ’废启动标记 å¤é€‰æ¡†
            form.on('checkbox(checkbox_HBatchDeleteFlag)', function (data) {
                $("#HBatchDeleteFlag").val(data.elem.checked);
                if (data.elem.checked) {
                    $('#HBatchDelete_submit').removeClass("layui-btn-disabled").attr("disabled", false);
                } else {
                    HBatchDeletePCSList = [];
                    $("#btnSearch").trigger('click');
                    $('#HBatchDelete_submit').addClass("layui-btn-disabled").attr("disabled", true);
                }
            });
            //#endregion
            //#endregion
            //#region æœ¬é¡µé¢æ‰€æœ‰è¢«è°ƒç”¨çš„æ–¹æ³•
@@ -123,6 +173,8 @@
                //查询
                get_FastQuery(1);
                //Organ();
                $('#HBatchDelete_submit').addClass("layui-btn-disabled").attr("disabled", true);
            }
            //#endregion
            
@@ -190,6 +242,9 @@
                //清空PNL布局数据
                HLayOut_PNL = [];
                //清空批量划废PCS清单
                HBatchDeletePCSList = [];
                //关闭加载遮罩
                layer.close(ajaxLoad);
@@ -435,23 +490,24 @@
                                var title = "PNL条码编号:" + HBarCode_PNL_Note + ";set号:" + SetNo + ";PCS号:" + PCSNo;
                                var isAVI = $("#isAVI").val();
                                var HBatchDeleteFlag = $("#HBatchDeleteFlag").val();
                                if (isAVI=="true") {
                                    layer.open({
                                        type: 2,
                                        skin: 'layui-layer-rim', //加上边框
                                        title: 'AVI新增(' + title + ')',
                                        closeBtn: 1,
                                        shift: 2,
                                        area: ['100%', '100%'],
                                        maxmin: true,
                                        content: '../../质量管理/PNL检验信息/QC_CheckNote_PNL_TempEdit.html?OperationType=6&linterid=&HSouceBillType=10004&HBarCode_PNL=' + HBarCode_PNL_Note + "&HSetNo=" + SetNo + "&HPCSNo=" + PCSNo,
                                        end: function () {
                                            //刷新页面,
                                            get_FastQuery();
                                if (HBatchDeleteFlag == "true") {
                                    var temp = {
                                        "HBarCode": HBarCode_PNL_Note
                                        , "HSetNo": SetNo
                                        , "HPCSNo": PCSNo
                                        , "title": "PNL条码编号:" + HBarCode_PNL_Note + ";set号:" + SetNo + ";PCS号:" + PCSNo
                                    }
                                    for (var i = 0; i < HBatchDeletePCSList.length; i++) {
                                        if (temp.title == HBatchDeletePCSList[i].title) {
                                            HBatchDeletePCSList.splice(i, 1);
                                            $('#' + PCSNo_Button).removeClass("layui-btn-disabled");
                                            return;
                                        }
                                    });
                                    }
                                    HBatchDeletePCSList.push(temp);
                                    $('#' + PCSNo_Button).addClass("layui-btn-disabled");
                                } else {
                                    layer.open({
                                        type: 2
@@ -508,6 +564,15 @@
                                selectElement.addEventListener('change', function () {
                                    var HBadReason = $("#HBadReason").val();
                                    if (HBadReason == "") {
                                        var HSelectElement = document.getElementById("HBadReason");
                                        if (HSelectElement != null) {
                                            document.body.removeChild(HSelectElement);
                                        }
                                        return;
                                    }
                                    if (!judgeRepeatDataByPNLAndPCS(HBarCode_PNL_Note, PCSNo)) {
                                        layer.msg("该PCS已经存在不良记录,禁止重复标记!!", { icon: 5 });
                                        var HSelectElement = document.getElementById("HBadReason");
                                        if (HSelectElement != null) {
                                            document.body.removeChild(HSelectElement);
@@ -607,6 +672,200 @@
            }
        //#endregion
            //#region æ‰¹é‡åˆ’废
            function batchDelete() {
                if (HBatchDeletePCSList.length > 0) {
                    ////多次批量划废时,去除上一次的select组件
                    //var HSelectElement_old = document.getElementById("HBadReason");
                    //if (HSelectElement_old != null) {
                    //    document.body.removeChild(HSelectElement_old);
                    //}
                    // ä¾‹å¦‚,创建一个自定义菜单
                    var HSelectElement = document.createElement('select');
                    HSelectElement.style.width = "100px";
                    HSelectElement.style.height = "20px";
                    HSelectElement.style.position = 'absolute';
                    HSelectElement.style.left = event.pageX + 'px';
                    HSelectElement.style.top = event.pageY + 'px';
                    HSelectElement.id = "HBadReason";
                    HSelectElement.name = "HBadReason";
                    HSelectElement.setAttribute('lay-filter', 'HBadReason');
                    HSelectElement.className = "layui-fluid layui-col-md12 layui-card-body layui-form layui-collapse layui-colla-item ayui-input-inline";
                    document.body.appendChild(HSelectElement);
                    setInitSelect_BadReason();
                    //不良原因选择控件 å€¼å˜åŒ–监听
                    const selectElement = document.getElementById('HBadReason');
                    selectElement.addEventListener('change', function () {
                        var HBadReason = $("#HBadReason").val();
                        if (HBadReason == "") {
                            var HSelectElement = document.getElementById("HBadReason");
                            if (HSelectElement != null) {
                                document.body.removeChild(HSelectElement);
                            }
                            layer.alert("批量作废失败,未选择不良项目!!!", { icon: 5 });
                            return;
                        }
                        for (var i = 0; i < HBatchDeletePCSList.length; i++) {
                            var HBarCode_PNL_Note = HBatchDeletePCSList[i].HBarCode;
                            var PCSNo = HBatchDeletePCSList[i].HPCSNo;
                            if (!judgeRepeatDataByPNLAndPCS(HBarCode_PNL_Note, PCSNo)) {
                                layer.msg("PCS【" + PCSNo + "】已经存在不良记录,禁止重复标记!!", { icon: 5 });
                                var HSelectElement = document.getElementById("HBadReason");
                                if (HSelectElement != null) {
                                    document.body.removeChild(HSelectElement);
                                }
                                return;
                            }
                        }
                        //获取需要上传的检验信息列表
                        var HDataList_submit = [];
                        for (var i = 0; i < HBatchDeletePCSList.length; i++) {
                            var title = HBatchDeletePCSList[i].title;
                            var HBarCode_PNL_Note = HBatchDeletePCSList[i].HBarCode;
                            var SetNo = HBatchDeletePCSList[i].HSetNo;
                            var PCSNo = HBatchDeletePCSList[i].HPCSNo;
                            var data = {
                                HBarCode: HBarCode_PNL_Note
                                , HSetNo: SetNo
                                , HPCSNo: PCSNo
                                , HCheckProc: "MRB"
                                , HPageIndex: "L4"
                                , HBadReason: HBadReason
                                , HPosition_x: "0"
                                , HPosition_y: "0"
                                , HItemID: "0"
                                , HMakeDate: Format(new Date(), "yyyy-MM-dd")
                                , HMaker: sessionStorage["HUserName"]
                            }
                            HDataList_submit.push(data);
                        }
                        batchDelete_Submit(HDataList_submit);
                        HBatchDeletePCSList = [];
                        $("#btnSearch").trigger('click');
                        var HSelectElement = document.getElementById("HBadReason");
                        if (HSelectElement != null) {
                            document.body.removeChild(HSelectElement);
                        }
                    });
                    //不良原因选择控件 å¤±ç„¦æ—¶ç§»é™¤æŽ§ä»¶
                    selectElement.focus();
                    selectElement.addEventListener('blur', function () {
                        var HSelectElement = document.getElementById("HBadReason");
                        if (HSelectElement != null) {
                            document.body.removeChild(HSelectElement);
                        }
                    });
                } else {
                    layer.alert("当前未选中需要划废的PCS!!!", { icon: 5 });
                }
            }
            //#endregion
            //#region æ‰¹é‡åˆ’废-上传检验信息记录
            function batchDelete_Submit(HDataList_submit) {
                var msg = "";                                               //返回信息
                //遍历上传
                var submitList = [];                                        //上传数据列表
                var submitCount = 100;                                      //单次可上传数量+1
                for (var i = 0; i < HDataList_submit.length; i++) {
                    if ((i + 1) % submitCount > 0 && i + 1 != HDataList_submit.length) {
                        submitList.push(HDataList_submit[i]);
                    } else {
                        //打开加载遮罩
                        var index = layer.open({
                            type: 1, // page å±‚类型
                            area: ['20%', '20%'],
                            shade: 0.6, // é®ç½©é€æ˜Žåº¦
                            shadeClose: false, // ç‚¹å‡»é®ç½©åŒºåŸŸï¼Œä¸å…³é—­å¼¹å±‚
                            maxmin: false, // ä¸å…è®¸å…¨å±æœ€å°åŒ–
                            anim: 0, // 0-6 çš„动画形式,-1 ä¸å¼€å¯
                            content: '<div style="padding: 12px;">正在运算,请耐心等待!!!<div class="loader" style="height:10px;width:10px;"></div></div>'
                        });
                        submitList.push(HDataList_submit[i]);
                        var sMainStr = JSON.stringify(submitList) + ';' + sessionStorage["HUserName"];
                        $.ajax({
                            type: "POST",
                            url: GetWEBURL() + "/QC_CheckNote_PNL_TempController/BatchAddBill", //方法所在页面和方法名
                            async: false,
                            data: { "oMain": sMainStr },
                            dataType: "json",
                            success: function (data) {
                                if (data.count == 1) {
                                    //关闭加载遮罩
                                    layer.close(index);
                                }
                                else {
                                    for (var j = 0; j < submitList.length; j++) {
                                        msg += "【" + submitList.HPCSNo + "】";
                                    }
                                    msg += "上传失败,原因:" + data.Message + ";";
                                    //关闭加载遮罩
                                    layer.close(index);
                                }
                            },
                            error: function (err) {
                                for (var j = 0; j < submitList.length; j++) {
                                    msg += "【" + submitList.HPCSNo + "】";
                                }
                                msg += "上传失败,原因:" + err.Message + ";";
                                //关闭加载遮罩
                                layer.close(index);
                            }
                        });
                        submitList = [];
                    }
                }
                if (msg.length > 0) {
                    layer.alert(msg, { icon: 5 });
                    return false;
                } else {
                    return true;
                }
            }
            //#endregion
            //#region åˆ¤æ–­è¯¥PNL下的该PCS是否已经存在不良记录。若存在,则不允许继续生成。
            function judgeRepeatDataByPNLAndPCS(HBarCode_Temp, HPCSNo_Temp) {
                var flag = true;
                var sql = "select HBarCode from QC_CheckNote_PNL_Temp where HBarCode = '" + HBarCode_Temp + "' and HPCSNo = '" + HPCSNo_Temp + "' ";
                sql += " union select HBarCode from QC_CheckNote_PNL_His where HBarCode = '" + HBarCode_Temp + "' and HPCSNo = '" + HPCSNo_Temp + "' ";
                var ModRightNameCheck = "";
                $.ajax({
                    url: GetWEBURL() + '/CommonModel/searchMethod',
                    async: false,
                    type: "GET",
                    data: { "sql": sql, "user": sessionStorage["HUserName"], "ModRightNameCheck": ModRightNameCheck },
                    success: function (data1) {
                        if (data1.count == 1) {
                            if (data1.data.length > 0) {
                                flag = false;
                            }
                        } else {
                            flag = false;
                        }
                    }, error: function (e) {
                        flag = false;
                    }
                });
                return flag;
            }
            //#endregion
            //#endregion
        });
    </script>