From 3d240d150e6e1a4e2df1a9f87d00ddd03ace4ee5 Mon Sep 17 00:00:00 2001
From: zrg <z18737863051@163.com>
Date: 星期五, 17 一月 2025 10:06:37 +0800
Subject: [PATCH] 增加 BOM层级展开报表,修复全程追溯报表 黑白标页签导出失败,工艺路线的表头查询优化页面排序

---
 WebTM/views/设备管理/Sb_EqpConkBookBillList.html |  320 ++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 277 insertions(+), 43 deletions(-)

diff --git "a/WebTM/views/\350\256\276\345\244\207\347\256\241\347\220\206/Sb_EqpConkBookBillList.html" "b/WebTM/views/\350\256\276\345\244\207\347\256\241\347\220\206/Sb_EqpConkBookBillList.html"
index c53c38f..7f19d83 100644
--- "a/WebTM/views/\350\256\276\345\244\207\347\256\241\347\220\206/Sb_EqpConkBookBillList.html"
+++ "b/WebTM/views/\350\256\276\345\244\207\347\256\241\347\220\206/Sb_EqpConkBookBillList.html"
@@ -10,8 +10,8 @@
     <link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all">
     <script src="../../layuiadmin/layui/layui.js"></script>
     <script src="../../layuiadmin/HideButton.js"></script>
-    <script src="../../../layuiadmin/soulTable.slim.js"></script>
-    <script src="../../../layuiadmin/PageTitle.js"></script>
+    <script src="../../layuiadmin/soulTable.slim.js"></script>
+    <script src="../../layuiadmin/PageTitle.js"></script>
 
     <style type="text/css">
         input.layui-input.layui-unselect {
@@ -30,6 +30,12 @@
                                 <div class="layui-colla-title layui-inline">
                                     <div class="layui-inline">
                                         <span>鏇村</span>
+                                    </div>
+                                </div>
+                                <div class="layui-inline">
+                                    <label class="layui-form-label">鍗曟嵁鍙�</label>
+                                    <div class="layui-input-block">
+                                        <input type="text" class="layui-input ForFilteringSchemes" name="HBillNo" id="HBillNo">
                                     </div>
                                 </div>
                                 <div class="layui-inline">
@@ -70,26 +76,11 @@
                                     <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
                                 </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-inline" style="margin-left:5px;">
                                     <div style="text-align:center;font-size:15px;font-weight:bold;color:#fc9393" id="HFilterScheme_Now"></div>
                                 </div>
                                 <div class="layui-colla-content">
-                                    <div class="layui-row">
-                                        <div class="layui-inline">
-                                            <div class="layui-inline">
-                                                <span>鍏朵粬鏉′欢></span>
-                                            </div>
-                                        </div>
-                                    </div>
-                                    <div class="layui-row">
-                                        <div class="layui-inline">
-                                            <label class="layui-form-label">鍗曟嵁鍙�</label>
-                                            <div class="layui-input-block">
-                                                <input type="text" class="layui-input ForFilteringSchemes" name="HBillNo" id="HBillNo">
-                                            </div>
-                                        </div>
-                                    </div>
                                     <div class="layui-row">
                                         <div class="layui-inline">
                                             <label class="layui-form-label">杩囨护</label>
@@ -117,10 +108,65 @@
                                             <input type="text" class="layui-input ForFilteringSchemes" value="" name="ColContent" id="ColContent">
                                         </div>
                                     </div>
+                                    <div class="layui-row" style="margin-top:5px">
+                                        <div class="layui-inline">
+                                            <label class="layui-form-label">杩囨护</label>
+                                            <div class="layui-input-block">
+                                                <select name="ColName1" id="ColName1" lay-filter="ColName1" style="width:190px;">
+                                                </select>
+                                            </div>
+                                        </div>
+                                        <div class="layui-inline">
+                                            <select name="Comparator1" id="Comparator1" lay-filter="Comparator1" 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="ColContent1" id="ColContent1">
+                                        </div>
+                                    </div>
+                                    <div class="layui-row" style="margin-top:5px">
+                                        <div class="layui-inline">
+                                            <label class="layui-form-label">杩囨护</label>
+                                            <div class="layui-input-block">
+                                                <select name="ColName2" id="ColName2" lay-filter="ColName2" style="width:190px;">
+                                                </select>
+                                            </div>
+                                        </div>
+                                        <div class="layui-inline">
+                                            <select name="Comparator2" id="Comparator2" lay-filter="Comparator2" 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="ColContent2" id="ColContent2">
+                                        </div>
+                                    </div>
                                 </div>
                             </div>
                         </div>
                         <table class="" id="mainTable" lay-filter="mainTable"></table>
+                        <div id="page" style="position: relative; bottom: 0;"></div>
                         <script type="text/html" id="toolbarDemo">
                             <div class="layui-btn-container">
                                 <!--<button type="button" class="layui-btn layui-btn-sm" lay-event="btn-getCheckData" id="getCheckData"><i class="layui-icon layui-icon-tips"></i>棰勮</button>-->
@@ -171,7 +217,8 @@
             var HModName = "Sb_EqpConkBookBillList";
             var option = [];
             var col = [];
-
+            var page = 1;//鍒嗛〉鏁版嵁
+            var size = 50;
 
             //#region 銆愬姩鎬佽幏鍙栨ā鍧楀悕绉般��
             var HModuleType = "3907";
@@ -180,11 +227,11 @@
         //#endregion
 
 
-            var titleData = ["hmainid", "鍗曟嵁绫诲瀷", "HEquipID", "HConkTypeID", "HEmpID", "HDeptID", "HManagerID", "hsubid", "HConkReasonID", "HManagerID1", "婧愬崟涓诲唴鐮�", "婧愬崟瀛愬唴鐮�", "HBillType"];//涓嶉渶瑕佹樉绀虹殑瀛楁 鍙墿灞�
+            var titleData = ["sorderid","hmainid", "鍗曟嵁绫诲瀷", "HEquipID", "HConkTypeID", "HEmpID", "HDeptID", "HManagerID", "hsubid", "HConkReasonID", "HManagerID1", "婧愬崟涓诲唴鐮�", "婧愬崟瀛愬唴鐮�", "HBillType"];//涓嶉渶瑕佹樉绀虹殑瀛楁 鍙墿灞�
             var index = layer.load(0);
             //#region 銆愯繃婊ゆ柟妗堛��
 
-            //杩囨护鏉′欢鐨刢lass绫� 
+            //杩囨护鏉′欢鐨刢lass绫�
             var HClassTag = "ForFilteringSchemes";
             //妯″潡鍚嶇О锛堜腑鏂囩増锛� 姣忎釜妯″潡椤甸潰閮介渶瑕佷慨鏀�
             window.HModuleName = "璁惧鏁呴殰鐧昏鍗曞垪琛�";
@@ -204,7 +251,7 @@
                     elem: '#mainTable'
                     , toolbar: '#toolbarDemo'
                     , height: 'full-50'
-                    , page: true
+                    , page: false
                     , cellMinWidth: 90
                     , limit: 50
                     , limits: [50, 500, 5000, 20000]
@@ -261,7 +308,25 @@
                         , { field: '鍏宠仈鏁伴噺', title: '鍏宠仈鏁伴噺', width: 200 }
                         , { field: 'HBillType', title: 'HBillType', width: 200, hide: true }
                     ]]
-                };               
+                };
+                optionPage = {
+                    elem: 'page', //娉ㄦ剰锛岃繖閲岀殑 page 鏄� ID锛屼笉鐢ㄥ姞 # 鍙�
+                    count: 10000, //鏁版嵁鎬绘暟锛屼粠鏈嶅姟绔緱鍒�
+                    limit: 50,
+                    limits: [50, 500, 5000, 50000],
+                    layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'],
+                    jump: function (obj, first) {
+
+                        //棣栨涓嶆墽琛�
+                        if (!first) {
+                            //do something
+                            page = obj.curr;
+                            size = obj.limit;
+                            get_FastQuery();
+                        }
+                    }
+                }
+                laypage.render(optionPage);
             }
 
             //鍒濆鍖栬〃鏍�
@@ -281,7 +346,7 @@
                             shift: 2,
                             area: ['100%', '100%'],
                             maxmin: true,
-                            content: '../璁惧绠$悊/Sb_Add_EqpConkBookBillList.html?hID=0',
+                            content: '../璁惧绠$悊/Sb_Add_EqpConkBookBillList.html?OperationType=1&hID=0',
                             end: function () {
                                 //鍒锋柊椤甸潰,
                                 location.reload();
@@ -305,7 +370,7 @@
                                 , shade: 0.6 //閬僵閫忔槑搴�
                                 , maxmin: true //鍏佽鍏ㄥ睆鏈�灏忓寲
                                 , anim: 0 //0-6鐨勫姩鐢诲舰寮忥紝-1涓嶅紑鍚�
-                                , content: '../璁惧绠$悊/Sb_Add_EqpConkBookBillList.html?hID=' + hID
+                                , content: '../璁惧绠$悊/Sb_Add_EqpConkBookBillList.html?OperationType=3&hID=' + hID
                                 , resize: false,
                                 end: function () {
                                     //鍒锋柊椤甸潰,
@@ -416,10 +481,17 @@
                 $("#HDate1").val(Format(new Date(), "yyyy-MM-dd"));//缁撴潫鏃ユ湡
                 //鍒濆鍖栬〃鏍�
                 set_InitGrid();
+
                 //鏌ヨ
-                //get_Display(sWhere);
+                if (addSWhereByOpenType()) {          //addSWhereByOpenType()鏂规硶鍒ゆ柇鏄惁鍏跺畠椤甸潰鎵撳紑鏈〉闈紝鑻ユ槸鍒欏鐞嗚繃婊ゆ潯浠讹紝骞惰繑鍥瀟rue
+                    get_DefaultModule();
+
+                } else {
+                    get_DefaultModule();
+                }
+
                 //鏌ヨ褰撳墠鐧诲綍鐢ㄦ埛鏈夋病鏈夊湪褰撳墠妯″潡璁剧疆榛樿杩囨护鏂规
-                get_DefaultModule();
+
             }
 
             //杩涘叆椤甸潰鏄剧ず鐨勭紦瀛樺垪琛�
@@ -457,13 +529,13 @@
                                         case 'double':
                                         case 'Decimal':
                                             col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 120, totalRow: true });
-                                            break;  
+                                            break;
                                         default:
                                             col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 200 });
                                     }
                                 }
                             }
-                           
+
                             //鍔ㄦ�佹樉绀哄垪鍚�
                             option = {
                                 elem: '#mainTable'
@@ -504,7 +576,79 @@
                         layer.alert("鎺ュ彛璇锋眰澶辫触!", { icon: 5 });
                     }
                 });
-            }            
+            }
+
+            //#region 鍒嗛〉鏌ヨ
+            function get_DisplayPage(sWhere) {
+                var ajaxLoad = layer.load();
+                $.ajax({
+                    url: GetWEBURL() + '/Sb_EqpRepairWorkBill/GetEqpConkBookBillListPage',
+                    type: "GET",
+                    data: { "sWhere": sWhere, "user": sessionStorage["HUserName"], "page": page, "size": size },
+                    success: function (data1) {
+                        option.limit = size;//鏀瑰彉琛ㄦ牸椤靛ぇ灏�
+                        if (data1.code == 1) {
+                            optionPage.count = data1.count;//鏀瑰彉鍒楄〃鏁版嵁鎬绘暟
+                            var data = [];
+                            var col = [];
+                            //缁欑┖鐨勬暟缁勮祴鍊�
+                            for (var key in data1.list) {
+                                //鍔ㄦ�佽幏鍙栧垪琛ㄦ墍鏈夊垪鍚�
+                                data.push({ "id": data1.list[key].ColmCols, "name": data1.list[key].ColmCols, "Type": data1.list[key].ColmType });
+                                //鑾峰彇涓嶉渶瑕佹樉绀虹殑鍒楋紙H寮�澶寸殑鍒椾笉鏄剧ず锛�
+                                var patrn = new RegExp(/^h/i);
+                                if (patrn.test(data1.list[key].ColmCols)) {
+                                    titleData[key] = data1.list[key].ColmCols;
+                                }
+                            }
+                            //鍦ㄥ垪琛ㄥ乏杈规坊鍔犲嬀閫夋
+                            col.push({ type: 'checkbox', fixed: 'left', totalRowText: '鍚堣' });
+                            for (var i = 0; i < data.length; i++) {
+                                if ($.inArray(data[i].name, titleData) > -1) {
+                                    col.push({ field: data[i].id, title: data[i].name, align: 'center', hide: true }); //闅愯棌id鍒�
+                                }
+                                else {
+                                    switch (data[i].Type) {
+                                        //int
+                                        case 'DateTime':
+                                            col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: false, templet: "<div>{{d." + data[i].name + " ==null ?'':layui.util.toDateString(d." + data[i].name + ", 'yyyy-MM-dd HH:mm:ss')}}</div>", width: 160 });
+                                            break;
+                                        case 'Decimal':
+                                            col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: false, width: 140, totalRow: true });
+                                            break;
+                                        case 'Int32':
+                                            col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: false, width: 140, totalRow: true });
+                                            break;
+                                        default:
+                                            col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: false, width: 140 });
+                                    }
+                                }
+                            }
+
+                            columns = col;
+                            option.cols = [col];
+                            option.data = data1.data;
+                            option.totalRow = true;
+                            laypage.render(optionPage);
+                            //鍒锋柊琛ㄦ牸鏁版嵁
+                            DisPlay_HideColumn();
+
+                            layer.close(ajaxLoad);
+                            if ($("#ColName option").length < 1) {
+                                ColFilter();
+                            }
+
+                        } else {
+                            layer.close(ajaxLoad);
+                            layer.alert(data1.code + data1.Message, { icon: 5 });
+                        }
+                    }, error: function () {
+                        layer.close(ajaxLoad);
+                        layer.alert("鎺ュ彛璇锋眰澶辫触!", { icon: 5 });
+                    }
+                });
+            }
+            //#endregion
 
             //閲嶇疆鎸夐挳
             form.on('submit(btnReSearch)', function (data) {
@@ -515,13 +659,23 @@
                 $("#ColContent").val("");
                 $("#ColName").val("0");
                 $("#Comparator").val("0");
+                $("#ColContent2").val("");
+                $("#ColName2").val("0");
+                $("#Comparator2").val("0");
+                $("#ColContent1").val("");
+                $("#ColName1").val("0");
+                $("#Comparator1").val("0");
                 form.render('select');
                 sWhere = "";
             });
 
             //鏌ヨ鎸夐挳
             form.on('submit(btnSearch)', function (data) {//
-                get_FastQuery();
+                if (page != 1) {
+                    $("#page a:eq(1)").get(0).click();//鐐瑰嚮鍒嗛〉鏍忕涓�椤�
+                } else {
+                    get_FastQuery();
+                }
             });
 
             //鐩戝惉琛屽弻鍑讳簨浠�
@@ -530,13 +684,20 @@
             });
 
             //蹇�熻繃婊�
-            function get_FastQuery() {
+            function get_FastQuery(number) {
                 var HDate = $("#HDate").val();//寮�濮嬫棩鏈�
                 var HDate1 = $("#HDate1").val();//缁撴潫鏃ユ湡
                 var HBillNo = $("#HBillNo").val();//鍗曟嵁鍙�
                 var ColName = $("#ColName").val();//澶嶉�夋
                 var Comparator = $("#Comparator").val()
                 var ColContent = $("#ColContent").val();
+
+                var ColName1 = $("#ColName1").val();//澶嶉�夋
+                var Comparator1 = $("#Comparator1").val()
+                var ColContent1 = $("#ColContent1").val();
+                var ColName2 = $("#ColName2").val();//澶嶉�夋
+                var Comparator2 = $("#Comparator2").val()
+                var ColContent2 = $("#ColContent2").val();
 
                 if (ColName != 0 && Comparator != 0) {
                     var com = "";
@@ -559,6 +720,48 @@
                     }
                     sWhere += " and " + ColName + " " + com;
                 }
+                if (ColName1 != 0 && Comparator1 != 0) {
+                    var com1 = "";
+                    switch (Comparator1) {
+                        case "7":
+                            com1 = "like'%" + ColContent1 + "%'";
+                            break;
+                        case "8":
+                            com1 = "like'%" + ColContent1 + "'";
+                            break;
+                        case "9":
+                            com1 = "like'" + ColContent1 + "%'";
+                            break;
+                        case "10":
+                            com1 = "not like'%" + ColContent1 + "%'";
+                            break;
+                        default:
+                            com1 = "" + Comparator1 + "'" + ColContent1 + "'";
+                            break;
+                    }
+                    sWhere += " and " + ColName1 + " " + com1;
+                }
+                if (ColName2 != 0 && Comparator2 != 0) {
+                    var com2 = "";
+                    switch (Comparator2) {
+                        case "7":
+                            com2 = "like'%" + ColContent2 + "%'";
+                            break;
+                        case "8":
+                            com2 = "like'%" + ColContent2 + "'";
+                            break;
+                        case "9":
+                            com2 = "like'" + ColContent2 + "%'";
+                            break;
+                        case "10":
+                            com2 = "not like'%" + ColContent2 + "%'";
+                            break;
+                        default:
+                            com2 = "" + Comparator + "'" + ColContent + "'";
+                            break;
+                    }
+                    sWhere += " and " + ColName2 + " " + com2;
+                }
                 if (HDate) {
                     sWhere += " and CONVERT(varchar(100),鏃ユ湡, 23) >= '" + HDate + "'";
                 }
@@ -568,7 +771,9 @@
                 if (HBillNo) {
                     sWhere += " and 鍗曟嵁鍙� like '%" + HBillNo + "%'";
                 }
-                get_Display(sWhere);
+                //get_Display(sWhere);
+                //鏁版嵁搴撳垎椤�
+                get_DisplayPage(sWhere);
                 //璋冪敤鎺ュ彛鍚庢竻绌簊Where缂撳瓨
                 sWhere = "";
             }
@@ -638,7 +843,7 @@
                 else {
                     layer.msg("璇烽�夋嫨涓�鏉℃暟鎹�!");
                 }
-            } 
+            }
 
             //闅愯棌鍒楄缃�
             function get_HideColumn() {
@@ -759,7 +964,38 @@
                 })
             }
 
-            //鍒楁槑鏄剧ず涓嬫媺妗�
+            //#region 鑾峰彇鍙傛暟
+            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
+
+            //#region 鍒ゆ柇鏄洿鎺ユ墦寮�椤甸潰杩樻槸鍏跺畠椤甸潰閫氳繃閫夋嫨鎸夐挳鎵撳紑锛屽苟鏄剧ず鐩稿簲鏁版嵁
+            function addSWhereByOpenType() {
+                //鑾峰彇鍙傛暟
+                var params = getUrlVars();
+                var openType = params[params[0]]; //浠庡弬鏁颁腑鑾峰彇 鎵撳紑鏂瑰紡  1鐩存帴鎵撳紑 2鍏跺畠椤甸潰閫氳繃閫夋嫨鎸夐挳鎵撳紑
+                var HNumber = params[params[1]]; //浠庡弬鏁颁腑鑾峰彇  璁惧浠g爜
+                if (openType == 2) {
+                    sWhere += " and  瀹℃牳浜� IS NOT NULL and 瀹℃牳浜� <> '' and (鍏抽棴浜� IS NULL OR 鍏抽棴浜� = '')  ";
+                    form.render("select");
+                    return true;
+                } else if (openType==3) {
+                    sWhere += " and  瀹℃牳浜� IS NOT NULL and 瀹℃牳浜� <> '' and (鍏抽棴浜� IS NULL OR 鍏抽棴浜� = '') and 璁惧浠g爜 like '%" + HNumber+"%'  ";
+                    form.render("select");
+                    return true;
+                }
+            }
+            //#endregion
+
+            //#region 鍒楁槑鏄剧ず涓嬫媺妗�
             function ColFilter() {
                 var Organization = '<option  value="0" selected="selected" ></option>';
                 for (var i = 1; i < option.cols[0].length; i++) {
@@ -769,8 +1005,13 @@
                 }
                 $("#ColName").empty();
                 $("#ColName").append(Organization);
+                $("#ColName1").empty();
+                $("#ColName1").append(Organization);
+                $("#ColName2").empty();
+                $("#ColName2").append(Organization);
                 form.render('select');
             }
+            //#endregion
 
             //#region 銆愯繃婊ゆ柟妗堛��
 
@@ -835,7 +1076,7 @@
                 for (var i = 0; i < Filter.length; i++) {
                     HFilterIdList = Filter[i].id; //杩囨护鏉′欢ID
                     HFilterIdLists += Filter[i].id + ","; //杩囨护鏉′欢ID(鎷兼帴)
-                    HValue += $("#" + HFilterIdList).val() + ","; //杩囨护鏉′欢涓緭鍏ョ殑鍊�                    
+                    HValue += $("#" + HFilterIdList).val() + ","; //杩囨护鏉′欢涓緭鍏ョ殑鍊�
                     HElement_type += document.getElementById(HFilterIdList).tagName + ",";//閫氳繃鏍囩id鑾峰彇鏍囩绫诲瀷
                 }
 
@@ -979,13 +1220,6 @@
             }
 
             //#endregion
-
-            //laydate.render({
-            //    elem: '#HDate'
-            //    , type: 'datetime'
-            //    , trigger: 'click'
-            //    , format:'yyyy-MM-dd HH:mm'
-            //});
 
 
             //浠ヤ笂鏄痩ayui妯″潡

--
Gitblit v1.9.1