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/项目管理/工程项目/PM_ProjectBillList.html |  205 +++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 172 insertions(+), 33 deletions(-)

diff --git "a/WebTM/views/\351\241\271\347\233\256\347\256\241\347\220\206/\345\267\245\347\250\213\351\241\271\347\233\256/PM_ProjectBillList.html" "b/WebTM/views/\351\241\271\347\233\256\347\256\241\347\220\206/\345\267\245\347\250\213\351\241\271\347\233\256/PM_ProjectBillList.html"
index 7489ede..0be2646 100644
--- "a/WebTM/views/\351\241\271\347\233\256\347\256\241\347\220\206/\345\267\245\347\250\213\351\241\271\347\233\256/PM_ProjectBillList.html"
+++ "b/WebTM/views/\351\241\271\347\233\256\347\256\241\347\220\206/\345\267\245\347\250\213\351\241\271\347\233\256/PM_ProjectBillList.html"
@@ -14,13 +14,14 @@
     <script src="../../../layuiadmin/Scripts/jquery-1.4.1.js"></script>
     <script src="../../../layuiadmin/Scripts/webConfig.js"></script>-->
     <script src="../../../layuiadmin/layui/layui.js"></script>
+    <script src="../../../layuiadmin/HideButton_New.js"></script>
     <script src="../../../layuiadmin/Scripts/json2.js"></script>
     <script src="../../../layuiadmin/Scripts/jquery-1.4.1.js"></script>
     <script src="../../../layuiadmin/Scripts/webConfig.js"></script>
     <script src="../../../layuiadmin/PubCustom.js"></script>
     <script src="../../../layuiadmin/soulTable.slim.js"></script>
     <script src="../../../layuiadmin/PageTitle.js"></script>
-
+    <script src="../../../layuiadmin/SetColumn.js"></script>
 </head>
 <body>
     <div class="layui-fluid">
@@ -101,25 +102,28 @@
                             </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="set_AddNew"><i class="layui-icon layui-icon-file-b"></i>鏂板</button>
-                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_ShowBill"><i class="layui-icon layui-icon-form"></i>缂栬緫</button>
+                            <div class="layui-btn-container" id="toolbarDemo_ButtonSet">
+                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_AddNew" id="set_AddNew"><i class="layui-icon layui-icon-file-b"></i>鏂板</button>
+                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_ShowBill" id="set_ShowBill"><i class="layui-icon layui-icon-form"></i>缂栬緫</button>
                                 <!--<button type="button" class="layui-btn layui-btn-sm" lay-event="get_view"><i class="layui-icon layui-icon-form"></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="get_Refresh"><i class="layui-icon layui-icon-refresh-3"></i>鍒锋柊</button>
-                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Audit"><i class="layui-icon layui-icon-radio"></i>瀹℃牳</button>
-                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-DeAudit"><i class="layui-icon layui-icon-circle"></i>鍙嶅鏍�</button>
-                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Close"><i class="layui-icon layui-icon-radio"></i>鍏抽棴</button>
-                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-DeClose"><i class="layui-icon layui-icon-radio"></i>鍙嶅叧闂�</button>
-                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Drop"><i class="layui-icon layui-icon-radio"></i>浣滃簾</button>
-                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-DeDrop"><i class="layui-icon layui-icon-radio"></i>鍙嶄綔搴�</button>
-                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_ProjectReport"><i class="layui-icon layui-icon-radio"></i>涓嬫帹(闃舵姹囨姤)</button>
-                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_WorkTask"><i class="layui-icon layui-icon-radio"></i>涓嬫帹(宸ヤ綔浠诲姟)</button>
+                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_DeleteBill" id="set_DeleteBill"><i class="layui-icon layui-icon-delete"></i>鍒犻櫎</button>
+                                <button type="button" class="layui-btn layui-btn-sm" lay-event="get_Refresh" id="get_Refresh"><i class="layui-icon layui-icon-refresh-3"></i>鍒锋柊</button>
+                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Audit" id="Audit"><i class="layui-icon layui-icon-radio"></i>瀹℃牳</button>
+                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-DeAudit" id="DeAudit"><i class="layui-icon layui-icon-circle"></i>鍙嶅鏍�</button>
+                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-MoneyDeAudit" id="MoneyDeAudit"><i class="layui-icon layui-icon-circle"></i>璐圭敤鍙嶅鏍�</button>
+                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Close" id="Close"><i class="layui-icon layui-icon-radio"></i>鍏抽棴</button>
+                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-DeClose" id="DeClose"><i class="layui-icon layui-icon-radio"></i>鍙嶅叧闂�</button>
+                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Drop" id="Drop"><i class="layui-icon layui-icon-radio"></i>浣滃簾</button>
+                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-DeDrop" id="DeDrop"><i class="layui-icon layui-icon-radio"></i>鍙嶄綔搴�</button>
+                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_ProjectReport" id="set_ProjectReport"><i class="layui-icon layui-icon-radio"></i>涓嬫帹(闃舵姹囨姤)</button>
+                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_WorkTask" id="set_WorkTask"><i class="layui-icon layui-icon-radio"></i>涓嬫帹(宸ヤ綔浠诲姟)</button>
                                 <!--<button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Stop"><i class="layui-icon layui-icon-radio"></i>绂佺敤</button>
     <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-DeStop"><i class="layui-icon layui-icon-radio"></i>鍙嶇鐢�</button>-->
-                                <button type="button" class="layui-btn layui-btn-sm" lay-event="get_Exit"><i class="layui-icon layui-icon-logout"></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="get_Exit" id="get_Exit"><i class="layui-icon layui-icon-logout"></i>閫�鍑�</button>
+                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_HideColumn" id="set_HideColumn"><i class="layui-icon layui-icon-form"></i>鍒楄缃�</button>
+                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_HideButton" id="HideButton"><i class="layui-icon layui-icon-form"></i>鎸夐挳璁剧疆</button>
                                 <button type="button" class="layui-btn layui-btn-sm" lay-event="set_SaveScheme" id="set_SaveScheme"><i class="layui-icon layui-icon-template"></i>淇濆瓨鏂规</button>
                                 <button type="button" class="layui-btn layui-btn-sm" lay-event="set_ReadScheme" id="set_ReadScheme"><i class="layui-icon layui-icon-set"></i>璇诲彇鏂规</button>
                             </div>
@@ -148,7 +152,9 @@
             var option = [];
             var sWhere = "";
             var HModName = "PM_ProjectBillList";
-
+            var optionPage = [];
+            var set_HideButton_ID = "toolbarDemo_ButtonSet";                    //闇�瑕佽缃殑鎸夐挳鐨勭埗绾ц妭鐐圭殑id
+            var HBillType = "4750";
             //#region 銆愬姩鎬佽幏鍙栨ā鍧楀悕绉般��
             var HModuleType = "4750";
             //閫氳繃鍗曟嵁绫诲瀷锛屼粠鏁版嵁搴撳姩鎬佽幏鍙栧崟鎹ā鍧楀懡鍚�,寮曠敤js鏂囦欢 PageTitle.js
@@ -175,7 +181,7 @@
             var params = getUrlVars();
             var UserName = params[params[2]];
             UserName = decodeURI(UserName);//瀵筓RI 杩涜瑙g爜
-
+            var HBillSubType="椤圭洰绫�";
 
             //#region 杩涘叆椤甸潰鍗冲姞杞�
 
@@ -212,6 +218,10 @@
                     //鍙嶅鏍告寜閽�
                     case 'btn-DeAudit':
                         set_CheckBill(2);
+                        break;
+                    //鍙嶅鏍告寜閽�
+                    case 'btn-MoneyDeAudit':
+                        set_CheckMoneyBill("UnCheck");
                         break;
                     //鍏抽棴鎸夐挳        锛�1:鍏抽棴銆�2:鍙嶅叧闂級
                     case 'btn-Close':
@@ -251,6 +261,10 @@
                     //鍒楄缃�
                     case 'set_HideColumn': get_HideColumn();
                         break;
+                    //鎸夐挳璁剧疆
+                    case 'set_HideButton':
+                        get_HideButton(set_HideButton_ID, HBillType, HModName, sessionStorage["HUserName"]);
+                        break;
                     //淇濆瓨鏂规
                     case 'set_SaveScheme': set_SaveScheme();
                         break;
@@ -284,12 +298,14 @@
 
             //#region 閲嶇疆鎸夐挳
             form.on('submit(btnReSearch)', function (data) {
+                optionPage.curr = 1;
                 set_ClearQuery();
             });
             //#endregion
 
             //#region 鏌ヨ鎸夐挳
             form.on('submit(btnSearch)', function (data) {
+                optionPage.curr = 1;
                 get_FastQuery(2);
             });
             //#endregion
@@ -316,11 +332,7 @@
                 //鍒濆鍖栫粍缁�
                 Organ();
                 //鏌ヨ
-                if (addSWhereByOpenType()) {                        //addSWhereByOpenType()鏂规硶鍒ゆ柇鏄惁鍏跺畠椤甸潰鎵撳紑鏈〉闈紝鑻ユ槸鍒欏鐞嗚繃婊ゆ潯浠讹紝骞惰繑鍥瀟rue
-                    get_FastQuery(2);
-                } else {
-                    get_FastQuery(1);
-                }
+                get_FastQuery();
                 //鏌ヨ褰撳墠鐧诲綍鐢ㄦ埛鏈夋病鏈夊湪褰撳墠妯″潡璁剧疆榛樿杩囨护鏂规
                 get_DefaultModule();
             }
@@ -332,7 +344,7 @@
                     elem: '#mainTable'
                     , toolbar: '#toolbarDemo'
                     , height: 'full-50'
-                    , page: true
+                    , page: false
                     , totalRow: true
                     //, cellMinWidth: 90
                     , limit: 50
@@ -341,6 +353,26 @@
                         soulTable.render(this);
                     }
                 };
+                optionPage = {
+                    elem: 'page', //娉ㄦ剰锛岃繖閲岀殑 page 鏄� ID锛屼笉鐢ㄥ姞 # 鍙�
+                    count: 10000, //鏁版嵁鎬绘暟锛屼粠鏈嶅姟绔緱鍒�
+                    limit: 50,
+                    limits: [50, 500, 1000, 2000],
+                    layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'],
+                    jump: function (obj, first) {
+                        //console.log(obj)
+                        //obj鍖呭惈浜嗗綋鍓嶅垎椤电殑鎵�鏈夊弬鏁帮紝姣斿锛�
+                        //console.log(obj.curr); //寰楀埌褰撳墠椤碉紝浠ヤ究鍚戞湇鍔$璇锋眰瀵瑰簲椤电殑鏁版嵁銆�
+                        //console.log(obj.limit); //寰楀埌姣忛〉鏄剧ず鐨勬潯鏁�
+
+                        //棣栨涓嶆墽琛�
+                        if (!first) {
+                            //do something
+                            get_FastQuery();
+                        }
+                    }
+                }
+                laypage.render(optionPage);
             }
             //#endregion
 
@@ -431,6 +463,69 @@
                 });
 
             }
+            //鍒嗛〉
+            function get_DisplayPage(sWhere) {
+                var ajaxLoad = layer.load();
+                //杩涘叆椤甸潰鏄剧ず鐨勭紦瀛樺垪琛�
+                $.ajax({
+                    url: GetWEBURL() + '/PM_ProjectBill/page',
+                    type: "GET",
+                    async: false,
+                    data: { "sWhere": sWhere, "user": sessionStorage["HUserName"], "page": optionPage.curr, "size": optionPage.limit },
+                    success: function (data1) {
+                        option.limit = optionPage.limit;//鏀瑰彉琛ㄦ牸椤靛ぇ灏�
+                        if (data1.code == 1) {
+                            optionPage.count = data1.count;//鏀瑰彉鍒楄〃鏁版嵁鎬绘暟
+                            var totalArray = ["鍚堝悓鎬婚噾棰�", "浜у搧璐�", "瀹炴柦璐�", "鍏跺畠璐圭敤", "鍚堝悓瀹炴柦浜哄ぉ", "棰勪及浜屾寮�鍙戜汉澶�", "缁撶畻閲戦", "闃舵涓氱哗鍗犳瘮"];
+                            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 });
+                            }
+                            //鍦ㄥ垪琛ㄥ乏杈规坊鍔犲嬀閫夋
+                            col.push({ type: 'checkbox', fixed: 'left' });
+                            for (var i = 0; i < data.length; i++) {
+                                // if (data[i].name == 'HInterID' || data[i].name == 'HBillType' || data[i].name == 'hmainid') {
+                                if ($.inArray(data[i].name, titleData) > -1) {
+                                    col.push({ field: data[i].id, title: data[i].name, align: 'center', hide: true }); //闅愯棌id鍒�
+                                }
+                                else if ($.inArray(data[i].name, totalArray) > -1) {
+                                    col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, totalRow: true, width: 120 });
+                                } else {
+                                    switch (data[i].Type) {
+                                        //int
+                                        case 'DateTime':
+                                            col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, templet: "<div>{{d." + data[i].name + " ==null ?'':layui.util.toDateString(d." + data[i].name + ", 'yyyy-MM-dd')}}</div>", width: 120 });
+                                            break;
+                                        default:
+                                            col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 120 });
+                                    }
+                                }
+                            }
+                            option.cols = [col];
+                            option.data = data1.data;
+                            laypage.render(optionPage);
+                            table.render(option);
+                            //鍒锋柊琛ㄦ牸鏁版嵁
+                            DisPlay_HideColumn();
+                            if ($("#Comparator").val() == 0 && $("#ColContent").val() == "") {
+                                ColFilter();
+                            }
+                            Display_HideButton(set_HideButton_ID, HBillType, HModName, sessionStorage["HUserName"]);
+                            layer.close(ajaxLoad);
+                        } else {
+                            layer.close(ajaxLoad);
+                            layer.alert(data1.code + data1.Message, { icon: 5 });
+                        }
+                    }, error: function () {
+                        layer.close(ajaxLoad);
+                        layer.alert("鎺ュ彛璇锋眰澶辫触!", { icon: 5 });
+                    }
+                });
+            }
+
+
             //#endregion
 
             //#region 鍙屽嚮杩斿洖鏁版嵁
@@ -475,7 +570,7 @@
                     }
                     sWhere += " and " + ColName + " " + com;
                 }
-                if (number == 1) {
+                if (addSWhereByOpenType()) {
                     HOrgID = sessionStorage["OrganizationID"];
                 }
                 else {
@@ -499,7 +594,8 @@
                         sWhere += " and 椤圭洰缁忕悊 = '" + UserName + "'  and  鍗曟嵁鐘舵�� != '宸插叧闂�' ";
                     }
                 }
-                get_Display(sWhere);
+                //addSWhereByOpenType();
+                get_DisplayPage(sWhere);
                 sWhere = "";//璋冪敤鎺ュ彛鍚庢竻绌簊Where缂撳瓨
             }
             //#endregion
@@ -527,7 +623,7 @@
                     , area: ['100%', '100%']
                     , title: '鏂板' + HPageTitle
                     , shift: 0//寮瑰嚭鍔ㄧ敾
-                    , content: '../../椤圭洰绠$悊/宸ョ▼椤圭洰/PM_ProjectBill.html?OperationType=1&linterid=0&HSouceBillType='
+                    , content: '../../椤圭洰绠$悊/宸ョ▼椤圭洰/PM_ProjectBill.html?OperationType=1&linterid=0&HSouceBillType=&HBillSubType=' + HBillSubType
                     ,btn: ['纭畾'],
                     // 鎸夐挳1 鐨勫洖璋�
                     btn1: function (index, layero, that) {
@@ -550,7 +646,7 @@
                         , area: ['100%', '100%']
                         , title: '缂栬緫' + HPageTitle
                         , shift: 0//寮瑰嚭鍔ㄧ敾
-                        , content: '../../椤圭洰绠$悊/宸ョ▼椤圭洰/PM_ProjectBill.html?OperationType=3&linterid=' + linterid + '&HSouceBillType='
+                        , content: '../../椤圭洰绠$悊/宸ョ▼椤圭洰/PM_ProjectBill.html?OperationType=3&linterid=' + linterid + '&HSouceBillType=&HBillSubType=' + HBillSubType
                         , btn: ['纭畾'],
                         // 鎸夐挳1 鐨勫洖璋�
                         btn1: function (index, layero, that) {
@@ -650,6 +746,42 @@
                         type: "GET",
                         url: GetWEBURL() + "/PM_ProjectBill/AuditPM_ProjectBill", //鏂规硶鎵�鍦ㄩ〉闈㈠拰鏂规硶鍚�
                         data: { "HInterID": InterID, "Type": num, "user": sessionStorage["HUserName"] },
+                        success: function (result) {
+                            if (result.count == 1) {
+                                layer.msg(result.Message, { time: 1 * 1000, icon: 1 }, function () {
+                                    // 寰楀埌frame绱㈠紩
+                                    var index = layer.getFrameIndex(window.name);
+                                    //鍏抽棴褰撳墠frame
+                                    layer.close(index);
+                                    //淇敼涓哄姛鍚庡埛鏂扮晫闈�
+                                    $("#btnSearch").trigger('click');
+                                });
+
+                            } else {
+                                layer.alert(result.code + result.Message, { icon: 5 });
+                            }
+                        }, error: function () {
+                            layer.alert("鎺ュ彛璇锋眰澶辫触!", { icon: 5 });
+                        }
+                    });
+                }
+                else {
+                    layer.msg('璇烽�夋嫨涓�琛屾暟鎹鏍革紒');
+                }
+            }
+            //#endregion
+
+            //#region 璐圭敤鍙嶅鏍�/瀹℃牳鏁版嵁
+            function set_CheckMoneyBill(type) {
+                var checkStatus = table.checkStatus('mainTable')
+                    , data = checkStatus.data;
+                if (checkStatus.data.length === 1) {
+                    var InterID = data[0].HInterID.toString();
+                    //閫昏緫瀹℃牳鏂规硶
+                    $.ajax({
+                        type: "GET",
+                        url: GetWEBURL() + "/PM_ProjectBill/AuditTaskMoney", //鏂规硶鎵�鍦ㄩ〉闈㈠拰鏂规硶鍚�
+                        data: { "HInterID": InterID, "Type": type, "user": sessionStorage["HUserName"] },
                         success: function (result) {
                             if (result.count == 1) {
                                 layer.msg(result.Message, { time: 1 * 1000, icon: 1 }, function () {
@@ -890,7 +1022,11 @@
                             dataCol = data1.data[0].HGridString.split(',');
 
                             for (var i = 0; i < option.cols[0].length - 1; i++) {
+                                if (dataCol.length <= i) {
+                                    break;
+                                }
                                 var dataCols = dataCol[i].split('|');
+
                                 //闅愯棌鍒�
                                 if (dataCols[1] == 1) {
                                     option.cols[0][i + 1]["hide"] = true;
@@ -990,12 +1126,19 @@
                 var params = getUrlVars();
                 var openType = params[params[0]]; //浠庡弬鏁颁腑鑾峰彇 鎵撳紑鏂瑰紡  1鐩存帴鎵撳紑 2鍏跺畠椤甸潰閫氳繃閫夋嫨鎸夐挳鎵撳紑  
                 var HOrgID = params[params[1]];
+                HBillSubType = (decodeURI(params[params[2]]) != "宸ョ▼绫�" && decodeURI(params[params[2]]) != "浠诲姟绫�") ? "椤圭洰绫�" : decodeURI(params[params[2]]);//鑻ヨВ鐮佸悗type涓嶄负宸ョ▼鎴栦换鍔″己鍒跺彉涓洪」鐩�
+                if (HBillSubType == "宸ョ▼绫�") {
+                    sWhere += " and 鍗曟嵁瀛愮被鍨�='宸ョ▼绫�' "
+                } else if (HBillSubType == "浠诲姟绫�") {
+                    sWhere += " and 鍗曟嵁瀛愮被鍨�='浠诲姟绫�' "
+                }
                 if (openType == 2) {
                     sWhere += " and ISNULL(鍏抽棴浜�,'') = '' and ISNULL(浣滃簾浜�,'') = '' ";
                     $("#HOrgID").val(HOrgID);
                     form.render("select");
                     return true;
                 }
+                
                 return false;
             }
             //#endregion
@@ -1038,11 +1181,7 @@
                             //闅愯棌鏄剧ず杩囨护鏂规鐨勬爣绛句俊鎭�
                             document.getElementById("HFilterScheme_Now").style.display = "none";
                             //鎵ц鏌ヨ鏂规硶
-                            if (addSWhereByOpenType()) {                        //addSWhereByOpenType()鏂规硶鍒ゆ柇鏄惁鍏跺畠椤甸潰鎵撳紑鏈〉闈紝鑻ユ槸鍒欏鐞嗚繃婊ゆ潯浠讹紝骞惰繑鍥瀟rue
-                                get_FastQuery(2);
-                            } else {
-                                get_FastQuery(1);
-                            }
+                            //get_FastQuery();
                             form.render("select");
                         }
                     }, error: function () {

--
Gitblit v1.9.1