chenhaozhe
2026-03-30 cfa35ff1f39c2a7b69d624d45f8e05591f3375d4
WebTM/views/IpadIndex.html
@@ -49,13 +49,14 @@
        var HGroupName = "";      //班组
        var HProcID = 0;      //工序
        var HSBName = "";   //设备名称
        var HReportTotal = 0;      // 当前选中工单的汇报总数
        //注意:选项卡 依赖 element 模块,否则无法进行功能性操作
        layui.config({
            base: '../layuiadmin/' //静态资源所在路径
        }).extend({
            index: 'lib/index' //主入口模块
        }).use(['index', 'form', 'laydate', 'table', 'element'], function () {
        }).use(['index', 'form', 'laydate', 'table', 'element', "timerManager"], function () {
            var $ = layui.$
                , admin = layui.admin
                , layer = layui.layer
@@ -63,6 +64,7 @@
                , form = layui.form
                , laydate = layui.laydate
                , element = layui.element
                , timerManager = layui.timerManager
                ;
            //window 全局变量
            window.mychart1 = echarts.init(document.getElementById('mychart1'));
@@ -74,9 +76,67 @@
                mychart2.resize();
            })
            // 配置 弹出层 打开/关闭处理函数
            InitLayerConfig()
            TSLoad();
            fetchButtonsData();
            timerManager.createTimer(
                'Timer',  // 唯一标识
                function () {
                    TSLoad();
                },
                10000,       // 间隔3分钟
                'interval'  // 循环类型
            );
            $(window).on('beforeunload', function () {
                timerManager.clearAllTimers();
            });
        });
        function InitLayerConfig() {
            var _open = layer.open
                , _timerManager = layui.timerManager
            layer.open = function (opts) {
                // 合并默认配置
                var options = $.extend({}, layer.config, opts);
                var oldSuccess = options.success;
                var oldEnd = options.end;
                var needHideScroll = options.scrollbar === false;
                // 打开弹窗时
                options.success = function (layero, index) {
                    if (needHideScroll) {
                        $('body').css('overflow', 'hidden');
                    }
                    console.log("暂停定时器")
                    _timerManager.pauseTimer('Timer')
                    if (oldSuccess) oldSuccess.call(this, layero, index);
                };
                // 关闭弹窗时
                options.end = function () {
                    if (needHideScroll) {
                        // 只有最后一个弹窗关闭才恢复
                        if ($('.layui-layer:visible').length <= 1) {
                            $('body').css('overflow', '');
                        }
                    }
                    if ($('.layui-layer:visible').length <= 1) {
                        console.log("恢复定时器")
                        _timerManager.resumeTimer('Timer')
                    }
                    if (oldEnd) oldEnd.call(this);
                };
                return _open.call(this, options);
            };
        }
        function TSLoad() {
            $("#topleft").html("");
            var HUserName = sessionStorage["HUserName"];  //sessionStorage["HUserName"];     //默认当前登录人员
@@ -117,14 +177,14 @@
                                        case "生产":
                                            html1 += '<h1><span>当前状态:</span><span class="gj_icon color_border2"></span><span>' + LoadData[i - 1].HStatus + '</span></h1>';
                                            break;
                                        case "维修进行中":
                                            html1 += '<h1><span>当前状态:</span><span class="gj_icon color_border5"></span><span>' + LoadData[i - 1].HStatus + '</span></h1>';
                                            break;
                                        case "维修结束":
                                        case "待机":
                                            html1 += '<h1><span>当前状态:</span><span class="gj_icon color_border1"></span><span>' + LoadData[i - 1].HStatus + '</span></h1>';
                                            break;
                                        case "维修终止":
                                            html1 += '<h1><span>当前状态:</span><span class="gj_icon color_border1"></span><span>' + LoadData[i - 1].HStatus + '</span></h1>';
                                        case "故障":
                                            html1 += '<h1><span>当前状态:</span><span class="gj_icon color_border5 "></span><span>' + LoadData[i - 1].HStatus + '</span></h1>';
                                            break;
                                        case "维修完成":
                                            html1 += '<h1><span>当前状态:</span><span class="gj_icon color_border2"></span><span>' + LoadData[i - 1].HStatus + '</span></h1>';
                                            break;
                                        default:
                                    }
@@ -194,14 +254,14 @@
                                        case "生产":
                                            html1 += '<h1><span>当前状态:</span><span class="gj_icon color_border2"></span><span>' + LoadData[i - 1].HStatus + '</span></h1>';
                                            break;
                                        case "维修进行中":
                                            html1 += '<h1><span>当前状态:</span><span class="gj_icon color_border5"></span><span>' + LoadData[i - 1].HStatus + '</span></h1>';
                                            break;
                                        case "维修结束":
                                        case "待机":
                                            html1 += '<h1><span>当前状态:</span><span class="gj_icon color_border1"></span><span>' + LoadData[i - 1].HStatus + '</span></h1>';
                                            break;
                                        case "维修终止":
                                            html1 += '<h1><span>当前状态:</span><span class="gj_icon color_border1"></span><span>' + LoadData[i - 1].HStatus + '</span></h1>';
                                        case "故障":
                                            html1 += '<h1><span>当前状态:</span><span class="gj_icon color_border5 "></span><span>' + LoadData[i - 1].HStatus + '</span></h1>';
                                            break;
                                        case "维修完成":
                                            html1 += '<h1><span>当前状态:</span><span class="gj_icon color_border2"></span><span>' + LoadData[i - 1].HStatus + '</span></h1>';
                                            break;
                                        default:
                                    }
@@ -238,6 +298,7 @@
                        if (sessionStorage["Organization"] == "宁波市华舟包装有限公司") {
                            // 华舟 使用分组标签
                            console.log("分组标签", LoadingTabsContact)
                            var divParent = document.createElement("div")
                            divParent.classList.add("layui-tab")
                            divParent.classList.add("layui-tab-card")
@@ -551,7 +612,7 @@
                                html1 += '<h1><span>产品名称:</span><span id="ptn' + (i + 1) + '">[' + LoadData1[i].HMaterNumber + ']-[' + LoadData1[i].HMaterName + ']</span></h1>';
                                html1 += '<h1><span>产品型号:</span><span id="pts' + (i + 1) + '">' + LoadData1[i].HModel + '</span></h1>';
                                html1 += '<h1><span>计划数量:</span><span>' + LoadData1[i].HDatePlanQty + '</span><span style="margin-left:20px;">数采总数:</span><span>' + LoadData1[i].HDateFinishQty + '</span></h1>';
                                html1 += '<h1><span>汇报总数:</span><span id="pts' + (i + 1) + '">' + LoadData1[i].HWCHQty + '</span></h1>';
                                html1 += '<h1><span>汇报总数:</span><span id="qty' + (i + 1) + '">' + LoadData1[i].HWCHQty + '</span></h1>';
                                switch (LoadData1[i].HICMOStatus) {
                                    case "待生产":
                                        html1 += '<h1><span>当前状态:</span><span class="gj_icon color_border3"></span><span>' + LoadData1[i].HICMOStatus + '</span><span style="margin-left:5px;">领料状态:</span><span>' + LoadData1[i].领料状态 + '</span></h1>';
@@ -787,6 +848,7 @@
            HMaterName = $("#ptn" + i + "").html();     //产品名称
            HMaterID = $("#materid" + i + "").html();     //产品ID
            HProcID = $("#procid" + i + "").html();     //工序ID
            HReportTotal = $("#qty" + i + "").html();//获取汇报总数
            if (workcode != "" && workcode != null) {
                $('.cns').removeClass('check1');  //删除不同父级clss样式相同的所有元素
@@ -1529,9 +1591,24 @@
                layer.alert("请选择工单列表", { icon: 5 });
                return false;
            }
            if (WorkStaus(HSourceID1, workcode, HSourceInterID, "斯莫尔汇报")) {
                layer.alert("单据状态不满足汇报条件!", { icon: 5 });
                return false;
            // 判断是否为华舟组织
            if (sessionStorage["Organization"] == "宁波市华舟包装有限公司") {
                // 华舟组织:若汇报总数不为0则跳过状态检查,否则执行检查
                if (parseFloat(HReportTotal) !== 0) {
                    // 汇报总数不为0,直接打开(不执行 WorkStaus 检查)
                } else {
                    // 汇报总数等于0,执行原有的状态检查
                    if (WorkStaus(HSourceID1, workcode, HSourceInterID, "斯莫尔汇报")) {
                        layer.alert("单据状态不满足汇报条件!", { icon: 5 });
                        return false;
                    }
                }
            } else {
                // 非华舟组织:保持原有逻辑,直接执行 WorkStaus 检查
                if (WorkStaus(HSourceID1, workcode, HSourceInterID, "斯莫尔汇报")) {
                    layer.alert("单据状态不满足汇报条件!", { icon: 5 });
                    return false;
                }
            }
            layer.open({
                type: 2,