From a4635e8a0457390b815e582fc9ff76b076e3baf6 Mon Sep 17 00:00:00 2001
From: llj <132905093+newwwwwwtree@users.noreply.github.com>
Date: 星期一, 18 八月 2025 12:47:03 +0800
Subject: [PATCH] 在工序出站汇报单维护模块研究下或与过滤条件,在高级自定义过滤中做就行。 现在条件过滤都是单一的,比如根据车间过滤一次性只能过滤查询一个车间的数据,通过添加或与查询方式实现同时过滤查询多个车间的数据。 同时评估下是否能把高级自定义过滤封装到js文件中,页面引用js文件就能实现高级自定义过滤的显示与过滤功能

---
 WebTM/filterRowTemplate.html                        |   99 +++++++++
 WebTM/layuiadmin/modules/dropdown-disable.js        |   40 ++++
 WebTM/views/车间管理/工序出站汇报单/Cj_StationOutBillList.html |  299 +++++++++--------------------
 WebTM/layuiadmin/SetColumn.js                       |  120 ++++++++++++
 4 files changed, 355 insertions(+), 203 deletions(-)

diff --git a/WebTM/filterRowTemplate.html b/WebTM/filterRowTemplate.html
new file mode 100644
index 0000000..f201119
--- /dev/null
+++ b/WebTM/filterRowTemplate.html
@@ -0,0 +1,99 @@
+锘�
+<div class="layui-row" style="margin-top:5px">
+    <div class="layui-inline">
+        <label class="layui-form-label" id="BT_ColName">杩囨护</label>
+        <div class="layui-input-block">
+            <select name="ColName" id="ColName" class="ForFilteringSchemes" lay-filter="ColName" style="width:190px;"></select>
+        </div>
+    </div>
+    <div class="layui-inline">
+        <select name="Comparator" id="Comparator" class="ForFilteringSchemes" 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>
+            <option value="涓虹┖">涓虹┖</option>
+        </select>
+    </div>
+    <div class="layui-inline">
+        <input type="text" class="layui-input ForFilteringSchemes" value="" name="ColContent" id="ColContent">
+    </div>
+    <div class="layui-inline">
+        <select name="Logical_judgement" id="Logical_judgement" class="ForFilteringSchemes" lay-filter="Logical_judgement" style="width:190px;">
+            <option value="0" selected="selected"></option>
+            <option value="涓�">骞朵笖</option>
+            <option value="鎴�">鎴栬��</option>
+        </select>
+    </div>
+</div>
+<div class="layui-row" style="margin-top:5px">
+    <div class="layui-inline">
+        <label class="layui-form-label" id="BT_ColName1">杩囨护</label>
+        <div class="layui-input-block">
+            <select name="ColName1" id="ColName1" class="ForFilteringSchemes" lay-filter="ColName1" style="width:190px;">
+            </select>
+        </div>
+    </div>
+    <div class="layui-inline">
+        <select name="Comparator1" id="Comparator1" class="ForFilteringSchemes" 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>
+            <option value="涓虹┖">涓虹┖</option>
+        </select>
+    </div>
+    <div class="layui-inline">
+        <input type="text" class="layui-input ForFilteringSchemes" value="" name="ColContent1" id="ColContent1">
+    </div>
+    <div class="layui-inline">
+        <select name="Logical_judgement1" id="Logical_judgement1" class="ForFilteringSchemes" lay-filter="Logical_judgement1" style="width:190px;">
+            <option value="0" selected="selected"></option>
+            <option value="涓�">骞朵笖</option>
+            <option value="鎴�">鎴栬��</option>
+        </select>
+    </div>
+</div>
+<div class="layui-row" style="margin-top:5px">
+    <div class="layui-inline">
+        <label class="layui-form-label" id="BT_ColName2">杩囨护</label>
+        <div class="layui-input-block">
+            <select name="ColName2" id="ColName2" class="ForFilteringSchemes" lay-filter="ColName2" style="width:190px;">
+            </select>
+        </div>
+    </div>
+    <div class="layui-inline">
+        <select name="Comparator2" id="Comparator2" class="ForFilteringSchemes" 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>
+            <option value="涓虹┖">涓虹┖</option>
+        </select>
+    </div>
+    <div class="layui-inline">
+        <input type="text" class="layui-input ForFilteringSchemes" value="" name="ColContent2" id="ColContent2">
+    </div>
+</div>
+
diff --git a/WebTM/layuiadmin/SetColumn.js b/WebTM/layuiadmin/SetColumn.js
index 44b79eb..2ca97ef 100644
--- a/WebTM/layuiadmin/SetColumn.js
+++ b/WebTM/layuiadmin/SetColumn.js
@@ -734,3 +734,123 @@
     }
     return count;
 }
+
+
+function buildFilterWhere(colName, comparator, colContent, Logical_judgement, sWhere) {
+    if (!colName || !comparator || comparator === "0") return "";
+    else if (sWhere == "") {
+        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;
+        }
+        return " and " + "("+colName + " " + com ;
+    }
+    else if (sWhere != "")
+    {
+        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;
+        }
+        return Logical_judgement === "鎴�" ? " or " + colName + " " + com + ")" : " and " + colName + " " + com + ")";
+    }
+    else {
+
+        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;
+        }
+        return " and " + colName + " " + com;
+
+    }
+
+}
+function fixParenthesesMatching(swhere) {
+    const keywordEndPositions = [];
+    const keywordRegex = /\b(and|or)\b/gi;
+    let match;
+    while ((match = keywordRegex.exec(swhere)) !== null) {
+        keywordEndPositions.push(match.index + match[0].length);
+    }
+    keywordEndPositions.sort((a, b) => a - b); 
+
+ 
+    let leftCount = 0;
+    const insertPositions = [];
+    const workingKeywordPositions = [...keywordEndPositions]; 
+
+    for (let i = 0; i < swhere.length; i++) {
+        if (swhere[i] === '(') {
+            leftCount++;
+        } else if (swhere[i] === ')') {
+            leftCount--;
+ 
+            if (leftCount < 0) {
+
+                let insertIndex = -1;
+                for (let j = workingKeywordPositions.length - 1; j >= 0; j--) {
+                    if (workingKeywordPositions[j] < i) {
+                        insertIndex = workingKeywordPositions[j];
+                        workingKeywordPositions.splice(j, 1); 
+                        break;
+                    }
+                }
+  
+                insertPositions.push(insertIndex !== -1 ? insertIndex : 0);
+                leftCount = 0; 
+            }
+        }
+    }
+
+    let result = swhere;
+    insertPositions
+        .sort((a, b) => b - a) 
+        .forEach(pos => {
+            result = result.slice(0, pos) + '(' + result.slice(pos);
+        });
+
+    return result;
+}
+
+
diff --git a/WebTM/layuiadmin/modules/dropdown-disable.js b/WebTM/layuiadmin/modules/dropdown-disable.js
new file mode 100644
index 0000000..68cc434
--- /dev/null
+++ b/WebTM/layuiadmin/modules/dropdown-disable.js
@@ -0,0 +1,40 @@
+锘縧ayui.define(['jquery', 'form'], function (exports) {
+
+
+    var $ = layui.$;
+    var form = layui.form;
+
+    var DropdownDisable = {
+        init: function (options) {
+            var dropdownSelector = options.dropdown;
+            var inputSelector = options.input;
+            var filter = options.filter;
+            var disableValue = options.disableValue || "涓虹┖";
+
+            var $dropdown = $(dropdownSelector);
+            var $input = $(inputSelector);
+
+            if (!$dropdown.length || !$input.length || !filter) return;
+
+            form.on('select(' + filter + ')', function (data) {
+                DropdownDisable._updateInput($input, data.value === disableValue);
+            });
+
+            DropdownDisable._updateInput($input, $dropdown.val() === disableValue);
+        },
+
+        _updateInput: function ($input, disabled) {
+            if (disabled) {
+                $input.prop('disabled', true)
+                    .addClass('layui-disabled')
+                    .attr('placeholder', '宸茬鐢ㄨ緭鍏�');
+            } else {
+                $input.prop('disabled', false)
+                    .removeClass('layui-disabled')
+                    .attr('placeholder', '璇疯緭鍏ュ唴瀹�');
+            }
+        }
+    };
+
+    exports('dropdownDisable', DropdownDisable);
+});
\ No newline at end of file
diff --git "a/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\345\207\272\347\253\231\346\261\207\346\212\245\345\215\225/Cj_StationOutBillList.html" "b/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\345\207\272\347\253\231\346\261\207\346\212\245\345\215\225/Cj_StationOutBillList.html"
index 2ffd82e..5fca555 100644
--- "a/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\345\207\272\347\253\231\346\261\207\346\212\245\345\215\225/Cj_StationOutBillList.html"
+++ "b/WebTM/views/\350\275\246\351\227\264\347\256\241\347\220\206/\345\267\245\345\272\217\345\207\272\347\253\231\346\261\207\346\212\245\345\215\225/Cj_StationOutBillList.html"
@@ -141,87 +141,8 @@
                                             </div>
                                         </div>
                                     </div>
-                                    <div class="layui-row" style="margin-top:5px">
-                                        <div class="layui-inline">
-                                            <label class="layui-form-label" id="BT_ColName">杩囨护</label>
-                                            <div class="layui-input-block">
-                                                <select name="ColName" id="ColName" class="ForFilteringSchemes" lay-filter="ColName" style="width:190px;">
-                                                </select>
-                                            </div>
-                                        </div>
-                                        <div class="layui-inline">
-                                            <select name="Comparator" id="Comparator" class="ForFilteringSchemes" 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 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" id="BT_ColName1">杩囨护</label>
-                                            <div class="layui-input-block">
-                                                <select name="ColName1" id="ColName1" class="ForFilteringSchemes" lay-filter="ColName1" style="width:190px;">
-                                                </select>
-                                            </div>
-                                        </div>
-                                        <div class="layui-inline">
-                                            <select name="Comparator1" id="Comparator1" class="ForFilteringSchemes" 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 ForFilteringSchemes" value="" name="ColContent1" id="ColContent1">
-                                        </div>
-                                    </div>
-                                    <div class="layui-row" style="margin-top:5px">
-                                        <div class="layui-inline">
-                                            <label class="layui-form-label" id="BT_ColName2">杩囨护</label>
-                                            <div class="layui-input-block">
-                                                <select name="ColName2" id="ColName2" class="ForFilteringSchemes" lay-filter="ColName2" style="width:190px;">
-                                                </select>
-                                            </div>
-                                        </div>
-                                        <div class="layui-inline">
-                                            <select name="Comparator2" id="Comparator2" class="ForFilteringSchemes" 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 ForFilteringSchemes" value="" name="ColContent2" id="ColContent2">
-                                        </div>
-                                    </div>
+                                    <div id="filter-row"> <!--杩囨护妗唄tml-->                                       
+                                    </div>  
                                 </div>
                             </div>
                         </div>
@@ -326,7 +247,8 @@
             base: '../../../layuiadmin/' //闈欐�佽祫婧愭墍鍦ㄨ矾寰�
         }).extend({
             index: 'lib/index', //涓诲叆鍙fā鍧�
-        }).use(['index', 'form', 'table', 'element', 'laypage', 'laydate', 'soulTable','tableFilter'], function () {
+            dropdownDisable: 'dropdown-disable'//涓嬫媺妗嗙鐢ㄨ仈鍔ㄦā鍧�
+        }).use(['index', 'form', 'table', 'element', 'laypage', 'laydate', 'soulTable', 'tableFilter'], function () {
             var $ = layui.$
                 , admin = layui.admin
                 , layer = layui.layer
@@ -361,7 +283,7 @@
             var set_HideButton_ID = "toolbarDemo_ButtonSet";//闇�瑕佽缃殑鎸夐挳鐨勭埗绾ц妭鐐圭殑id
 
 
-            var titleData = ["HMaterID", "HUnitID", "HSourceID", "hmainid", "HProcExchInterID", "HProcID", "HunitID", "HEmpID", "HGroupID", "HProcExchEntryID", "HSubID", "HICMOInterID", "閫夋嫨", "鏌ヨ鏃ユ湡", "鎴愭湰瀵硅薄", "鎴愭湰瀵硅薄鍚嶇О", "HBillStatus", "HBillType", "娴佽浆鍗$粍缁�", "HCenterID", "HbillSubType", "HPRDORGID", "鐢熶骇璁㈠崟涓氬姟绫诲瀷", "宸ュ簭宸ヤ环", "宸ヤ环","閲戦","璁惧娓呭崟","鍗曟嵁绫诲瀷"];//涓嶉渶瑕佹樉绀虹殑瀛楁 鍙墿灞�
+            var titleData = ["HMaterID", "HUnitID", "HSourceID", "hmainid", "HProcExchInterID", "HProcID", "HunitID", "HEmpID", "HGroupID", "HProcExchEntryID", "HSubID", "HICMOInterID", "閫夋嫨", "鏌ヨ鏃ユ湡", "鎴愭湰瀵硅薄", "鎴愭湰瀵硅薄鍚嶇О", "HBillStatus", "HBillType", "娴佽浆鍗$粍缁�", "HCenterID", "HbillSubType", "HPRDORGID", "鐢熶骇璁㈠崟涓氬姟绫诲瀷", "宸ュ簭宸ヤ环", "宸ヤ环", "閲戦", "璁惧娓呭崟", "鍗曟嵁绫诲瀷"];//涓嶉渶瑕佹樉绀虹殑瀛楁 鍙墿灞�
 
             //#region 銆愯繃婊ゆ柟妗堛��
 
@@ -389,7 +311,28 @@
 
             //鍒濆鍖栫晫闈�
             set_ClearBill();
-
+            //涓嬫媺妗嗙鐢ㄨ仈鍔�
+            layui.use(['form', 'dropdownDisable'], function () {
+                var dropdownDisable = layui.dropdownDisable;
+                dropdownDisable.init({
+                    dropdown: '#Comparator',
+                    input: '#ColContent',
+                    filter: 'Comparator', // lay-filter 鍚嶇О
+                    disableValue: '涓虹┖'
+                });
+                dropdownDisable.init({
+                    dropdown: '#Comparator1',
+                    input: '#ColContent1',
+                    filter: 'Comparator1', // lay-filter 鍚嶇О
+                    disableValue: '涓虹┖'
+                });
+                dropdownDisable.init({
+                    dropdown: '#Comparator2',
+                    input: '#ColContent2',
+                    filter: 'Comparator2', // lay-filter 鍚嶇О
+                    disableValue: '涓虹┖'
+                });
+            });
             //鏃ユ湡闂撮殧涓嬫媺鍒楄〃鐩戝惉
             form.on('select(HInitTimeCycle)', function (data) {
                 var HInitTimeCycle = $("#HInitTimeCycle").val() * 1;
@@ -430,7 +373,7 @@
                     get_FastQuery();
                 }
                 //initFunction(1, HModName, sessionStorage["HTranSlate"]);
-            });            
+            });
 
             //#region 鍥炶溅鏌ヨ
 
@@ -522,9 +465,9 @@
                 check_row(obj);
                 var datas = obj.data; //鑾峰緱褰撳墠琛屾暟鎹�
                 var HMainID = datas.hmainid;
-             
-                SelectTechParam(HMainID,"TechParam");//宸ヨ壓鍙傛暟
-                SelectTechParam(HMainID,"Note");    //鎿嶄綔鏃ュ織
+
+                SelectTechParam(HMainID, "TechParam");//宸ヨ壓鍙傛暟
+                SelectTechParam(HMainID, "Note");    //鎿嶄綔鏃ュ織
                 SelectTechParam(HMainID, "SN");    //SN搴忓垪鐮�
                 SelectTechParam(HMainID, "Emp");    //鎿嶄綔鍛樻竻鍗�
                 SelectTechParam(HMainID, "Sup");    //渚涘簲鍟嗘竻鍗�
@@ -583,7 +526,7 @@
                 switch (obj.event) {
                     //鍒犻櫎
                     case 'btn-Delete5': btn_Delete5();
-                        break;                   
+                        break;
                 };
             });
 
@@ -617,16 +560,16 @@
             });
 
             //鏌ヨ宸ヨ壓鍙傛暟
-            function SelectTechParam(HMainID,TableName) {
+            function SelectTechParam(HMainID, TableName) {
                 var wait = layer.load();
                 $.ajax({
                     url: GetWEBURL() + '/Cj_StationOutBill/get_SubDisplay',
                     type: "GET",
-                    data: { "sWhere": HMainID, "TableName": TableName},
+                    data: { "sWhere": HMainID, "TableName": TableName },
                     async: false,
                     success: function (data1) {
                         if (data1.count == 1) {
-                            var totalArray = ["鐢熶骇鏁伴噺", "宸ヤ环", "閲戦", "浠诲姟鏁伴噺", "鏁伴噺", "鍑虹珯鏁伴噺", "鎶ュ簾鏁伴噺", "涓嶈壇鏁伴噺", "宸ユ椂", "娴佽浆鍗℃暟閲�","浠诲姟鍗曟暟閲�"];
+                            var totalArray = ["鐢熶骇鏁伴噺", "宸ヤ环", "閲戦", "浠诲姟鏁伴噺", "鏁伴噺", "鍑虹珯鏁伴噺", "鎶ュ簾鏁伴噺", "涓嶈壇鏁伴噺", "宸ユ椂", "娴佽浆鍗℃暟閲�", "浠诲姟鍗曟暟閲�"];
                             var data = [];
                             var col = [];
                             //缁欑┖鐨勬暟缁勮祴鍊�
@@ -680,14 +623,14 @@
                                 case "Note":
 
                                     //鍔ㄦ�佹樉绀哄垪鍚�
-                                      option2 = {
+                                    option2 = {
                                         elem: '#mainTable2'
                                         , toolbar: '#toolbarDemo2'
                                         , cols: [col]
                                         , data: data1.data
                                         , height: 550
-                                          , page: true
-                                          , totalRow: true
+                                        , page: true
+                                        , totalRow: true
                                         , cellMinWidth: 90
                                         , limit: 50
                                         , limits: [50, 500, 5000, 20000]
@@ -699,14 +642,14 @@
                                 case "SN":
 
                                     //鍔ㄦ�佹樉绀哄垪鍚�
-                                      option3 = {
+                                    option3 = {
                                         elem: '#mainTable3'
                                         , toolbar: '#toolbarDemo3'
                                         , cols: [col]
                                         , data: data1.data
                                         , height: 550
-                                          , page: true
-                                          , totalRow: true
+                                        , page: true
+                                        , totalRow: true
                                         , cellMinWidth: 90
                                         , limit: 50
                                         , limits: [50, 500, 5000, 20000]
@@ -719,14 +662,14 @@
                                 case "Emp":
 
                                     //鍔ㄦ�佹樉绀哄垪鍚�
-                                     option4 = {
+                                    option4 = {
                                         elem: '#mainTable4'
                                         , toolbar: '#toolbarDemo4'
                                         , cols: [col]
                                         , data: data1.data
                                         , height: 550
-                                         , page: true
-                                         , totalRow: true
+                                        , page: true
+                                        , totalRow: true
                                         , cellMinWidth: 90
                                         , limit: 50
                                         , limits: [50, 500, 5000, 20000]
@@ -785,9 +728,13 @@
                     }
                 });
             }
-
             //#region 鍒濆鍖栫晫闈�
             function set_ClearBill() {
+                $.get("../../../filterRowTemplate.html", function (data) {
+                    $("#filter-row").html(data);
+                    ColFilter(); // 閲嶆柊鐢熸垚涓嬫媺閫夐」
+                    layui.form.render(); // 娓叉煋琛ㄥ崟鎺т欢
+                });
                 //鍒濆鍖栨棩鏈熼棿闅斻�佸紑濮嬫棩鏈熴�佺粨鏉熸棩鏈�
                 setSelect_HInitTimeCycle();
                 //鑻ユ棩鏈熼棿闅斾笉涓� 浠绘剰闂撮殧锛屽垯绂佺敤寮�濮嬫棩鏈熶笌缁撴潫鏃ユ湡鐨勯�夋嫨
@@ -841,9 +788,9 @@
                         , { field: '浜у搧浠g爜', title: '浜у搧浠g爜' }
                         , { field: '浜у搧鍚嶇О', title: '浜у搧鍚嶇О', width: 125 }
                         , { field: '瑙勬牸鍨嬪彿', title: '瑙勬牸鍨嬪彿' }
-                        , { field: '鍑虹珯鏁伴噺', title: '鍑虹珯鏁伴噺', totalRow: true}
-                        , { field: '涓嶈壇鏁伴噺', title: '涓嶈壇鏁伴噺', totalRow: true}
-                        , { field: '鎶ュ簾鏁伴噺', title: '鎶ュ簾鏁伴噺', totalRow: true}
+                        , { field: '鍑虹珯鏁伴噺', title: '鍑虹珯鏁伴噺', totalRow: true }
+                        , { field: '涓嶈壇鏁伴噺', title: '涓嶈壇鏁伴噺', totalRow: true }
+                        , { field: '鎶ュ簾鏁伴噺', title: '鎶ュ簾鏁伴噺', totalRow: true }
                         , { field: '鍖呰鏍囪瘑浠g爜', title: '鍖呰鏍囪瘑浠g爜', width: 115 }
                         , { field: '鍖呰鏍囪瘑', title: '鍖呰鏍囪瘑', width: 115 }
                         , {
@@ -876,7 +823,7 @@
                     limit: 50,
                     limits: [50, 500, 5000, 50000],
                     layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'],
-                    jump: function (obj, first) {                       
+                    jump: function (obj, first) {
                         //棣栨涓嶆墽琛�
                         if (!first) {
                             //do something
@@ -889,7 +836,7 @@
                 }
                 laypage.render(optionPage);
             }
-          
+
             //鍔熻兘鎸夐挳鏄惁绂佺敤鏂规硶锛屾瘡娆″姞杞借〃鏍奸兘瑕佽皟鐢�
             function btnIs() {
                 //$('#btn-Add').addClass("layui-btn-disabled").attr("disabled", true);//鏂板鎸夐挳
@@ -900,7 +847,7 @@
                 $('#btn-Cell').addClass("layui-btn-disabled").attr("disabled", true);//淇濆瓨鍒楀鎸夐挳
                 $('#btn-RefreshCell').addClass("layui-btn-disabled").attr("disabled", true);//榛樿鍒楀鎸夐挳
                 //$('#btn-Exit').addClass("layui-btn-disabled").attr("disabled", true);//閫�鍑烘寜閽�        
-               
+
             }
 
 
@@ -943,10 +890,10 @@
                     //涓嬫帹PPM鏁版嵁褰曞叆鍗�
                     case 'btn-SupReport': set_SupReport();
                         break;
-                  
+
                     //閫�鍑�
                     case 'btn-Exit': get_Exit();
-                        break;                
+                        break;
                     //瀵煎嚭excel
                     case 'get_export':
                         get_Export();
@@ -967,10 +914,10 @@
                     //缈昏瘧
                     case 'set_FY': initFunction(1, HModName, sessionStorage["HTranSlate"]);
                         break;
-                        
+
                 };
             });
-           
+
 
             //鏉$爜鍒犻櫎
             function btn_Delete3() {
@@ -1013,13 +960,13 @@
                     , data = checkStatus.data;
                 if (checkStatus.data.length === 1) {
                     layer.confirm(get_MessageError('[0000-1-003]纭畾鍒犻櫎鍚楋紵', sessionStorage["HTranSlate"]), function (index) {
-                        var HInterID = data[0].HInterID;                    
+                        var HInterID = data[0].HInterID;
                         var ajaxLoad = layer.load();
                         //閫昏緫鍒犻櫎鏂规硶
                         $.ajax({
                             url: GetWEBURL() + '/Cj_StationOutBill/PPMSupDelete',
                             type: "GET",
-                            data: { "HInterID": HInterID, "user": sessionStorage["HUserName"]},
+                            data: { "HInterID": HInterID, "user": sessionStorage["HUserName"] },
                             success: function (result) {
                                 if (result.count == 1) {
                                     SelectTechParam(HInterID, "Sup");
@@ -1253,10 +1200,10 @@
                         layer.alert(get_MessageError("[0000-1-002]鎺ュ彛璇锋眰澶辫触!", sessionStorage["HTranSlate"]), { icon: 5 });
                     }
                 })
-            //#endregion
-            }           
+                //#endregion
+            }
 
-             //闅愯棌鍒楄缃� 宸ヨ壓鍙傛暟
+            //闅愯棌鍒楄缃� 宸ヨ壓鍙傛暟
             function get_HideColumn_TechParam() {
                 var colName = "";
                 for (var i = 1; i < option1.cols[0].length; i++) {
@@ -1371,10 +1318,10 @@
                 })
             }
 
-              //闅愯棌鍒楄缃� 鎿嶄綔鏃ュ織
+            //闅愯棌鍒楄缃� 鎿嶄綔鏃ュ織
             function get_HideColumn_Note() {
                 var colName = "";
-                for (var i = 1; i < option2.cols[0].length  ; i++) {
+                for (var i = 1; i < option2.cols[0].length; i++) {
                     colName += option2.cols[0][i]["title"] + ",";
                 }
 
@@ -1486,7 +1433,7 @@
                 })
             }
 
-             //闅愯棌鍒楄缃� SN搴忓垪鐮�
+            //闅愯棌鍒楄缃� SN搴忓垪鐮�
             function get_HideColumn_SN() {
                 var colName = "";
                 for (var i = 1; i < option3.cols[0].length; i++) {
@@ -1730,7 +1677,7 @@
                     $.ajax({
                         type: "GET",
                         url: GetWEBURL() + "/Cj_StationOutBill/set_CheckBill", //鏂规硶鎵�鍦ㄩ〉闈㈠拰鏂规硶鍚�
-                        data: { "HInterID": InterID.toString(), "CurUserName": sessionStorage["HUserName"], "HBillSubType":"3791"},
+                        data: { "HInterID": InterID.toString(), "CurUserName": sessionStorage["HUserName"], "HBillSubType": "3791" },
                         success: function (result) {
                             if (result.count == 1) {
                                 layer.msg(get_MessageError(result.Message, sessionStorage["HTranSlate"]), { icon: 1 });
@@ -1764,7 +1711,7 @@
                     $.ajax({
                         type: "GET",
                         url: GetWEBURL() + "/Cj_StationOutBill/set_AbandonCheck", //鏂规硶鎵�鍦ㄩ〉闈㈠拰鏂规硶鍚�
-                        data: { "HInterID": InterID.toString(), "CurUserName": sessionStorage["HUserName"], "HBillSubType": "3791"},
+                        data: { "HInterID": InterID.toString(), "CurUserName": sessionStorage["HUserName"], "HBillSubType": "3791" },
                         success: function (result) {
                             if (result.count == 1) {
                                 layer.msg(get_MessageError(result.Message, sessionStorage["HTranSlate"]), { icon: 1 });
@@ -1796,7 +1743,7 @@
                         $.ajax({
                             url: GetWEBURL() + '/Cj_StationOutBill/CloseCj_StationOutBill',
                             type: "GET",
-                            data: { "HInterID": HInterID, "Type": num, "user": sessionStorage["HUserName"], "HBillSubType": "3791"},
+                            data: { "HInterID": HInterID, "Type": num, "user": sessionStorage["HUserName"], "HBillSubType": "3791" },
                             success: function (result) {
                                 if (result.count == 1) {
                                     layer.msg(get_MessageError(result.Message, sessionStorage["HTranSlate"]), { icon: 1 });
@@ -1823,7 +1770,7 @@
                 var checkStatus = table.checkStatus('mainTable')
                     , data = checkStatus.data;
                 if (checkStatus.data.length === 1) {
-                    var linterid = data[0].hmainid.toString(); 
+                    var linterid = data[0].hmainid.toString();
                     //var HICMOEntryID = data[0].HICMOEntryID.toString();
                     var OperationType = 2;
                     layer.open({
@@ -1888,17 +1835,17 @@
 
                     for (var i = 0; i < checkStatus.data.length; i++) {
                         if (data[i].HGroupID != HGroupID_JY || data[i].HDeptID || HDeptID_JY) {
-                            HERR += "绗�" + (i+1) + "琛岋紝鐢熶骇鐝粍鎴栬�呯敓浜ц溅闂达紝涓庡叾浣欒涓嶄竴鑷达紝涓嶅厑璁稿悎骞朵笅鎺紒"
+                            HERR += "绗�" + (i + 1) + "琛岋紝鐢熶骇鐝粍鎴栬�呯敓浜ц溅闂达紝涓庡叾浣欒涓嶄竴鑷达紝涓嶅厑璁稿悎骞朵笅鎺紒"
                         }
 
                         linterid.push(data[i].hmainid.toString());
                     }
 
                     if (HERR != "") {
-                        layer.msg(HERR,{ time: 3000, })
+                        layer.msg(HERR, { time: 3000, })
                         return;
                     }
-                   
+
                     layer.open({
                         type: 2
                         , area: ['100%', '100%']
@@ -1924,7 +1871,7 @@
             function set_SupReport() {
                 var checkStatus = table.checkStatus('mainTable')
                     , data = checkStatus.data;
-                if (checkStatus.data.length ==1) {               
+                if (checkStatus.data.length == 1) {
                     var linterid = data[0].hmainid.toString();
                     layer.open({
                         type: 2
@@ -1937,7 +1884,7 @@
                         , resize: false
                         , cancel: function () {
                             btnIs();
-                        }                        
+                        }
                     })
                 } else {
                     layer.msg(get_MessageError('[0000-1-015]璇烽�夋嫨鏁版嵁涓嬫帹锛�', sessionStorage["HTranSlate"]));
@@ -2054,23 +2001,26 @@
             function set_ClearQuery() {
                 $("#HOrgID").val(sessionStorage["OrganizationID"])
                 $("#HWorkBillNo").val("");
-                $("#HBillNo").val("");              
-                $("#HProcExchBillNo").val("");              
+                $("#HBillNo").val("");
+                $("#HProcExchBillNo").val("");
                 $("#HNumber").val("");
                 $("#HName").val("");
                 $("#HEmpNumber").val("");
                 $("#HEmpName").val("");
                 var HInitTimeCycle = $("#HInitTimeCycle").val() * 1;
                 $("#HBeginDate").val(Format(new Date(new Date() - 1000 * 60 * 60 * 24 * HInitTimeCycle), "yyyy-MM-dd"));
-                $("#HEndDate").val(Format(new Date(), "yyyy-MM-dd"));           
+                $("#HEndDate").val(Format(new Date(), "yyyy-MM-dd"));
                 $("#ColContent").val("");
                 $("#ColName").val("0");
                 $("#Comparator").val("0"); $("#ColContent1").val("");
+                $("#Logical_judgement").val("0");
                 $("#ColName1").val("0");
                 $("#Comparator1").val("0"); $("#ColContent2").val("");
+                $("#Logical_judgement1").val("0");
                 $("#ColName2").val("0");
                 $("#Comparator2").val("0");
-               
+                $("#Logical_judgement2").val("0");
+
                 form.render('select');
                 sWhere = "";
             }
@@ -2095,83 +2045,26 @@
                 var checkHWasterQty = $("input[name='checkHWasterQty']").prop("checked");//澶嶉�夋
                 var ColName = $("#ColName").val();//澶嶉�夋
                 var Comparator = $("#Comparator").val();
+                var Logical_judgement = $("#Logical_judgement").val();
                 var ColContent = $("#ColContent").val();
                 var ColName1 = $("#ColName1").val();//澶嶉�夋
                 var Comparator1 = $("#Comparator1").val();
                 var ColContent1 = $("#ColContent1").val();
+                var Logical_judgement1 = $("#Logical_judgement1").val();
                 var ColName2 = $("#ColName2").val();//澶嶉�夋
                 var Comparator2 = $("#Comparator2").val()
                 var ColContent2 = $("#ColContent2").val();
+                var Logical_judgement2 = $("#Logical_judgement2").val();
                 var HNumber = $("#HNumber").val(); //浜у搧浠g爜 鍗崇墿鏂欑紪鐮�
                 var HName = $("#HName").val(); //褰撳墠宸ュ簭
                 var HEmpNumber = $("#HEmpNumber").val(); //鎿嶄綔鍛樹唬鐮�
                 var HEmpName = $("#HEmpName").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;
-                }
-
-                if (ColName1 != 0 && Comparator1 != 0) {
-                    var com = "";
-                    switch (Comparator1) {
-                        case "7":
-                            com = "like''%" + ColContent1 + "%''";
-                            break;
-                        case "8":
-                            com = "like''%" + ColContent1 + "''";
-                            break;
-                        case "9":
-                            com = "like''" + ColContent1 + "%''";
-                            break;
-                        case "10":
-                            com = "not like''%" + ColContent1 + "%''";
-                            break;
-                        default:
-                            com = "" + Comparator1 + "''" + ColContent1 + "''";
-                            break;
-                    }
-                    sWhere += " and " + ColName1 + " " + com;
-                }
-                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 = "" + Comparator2 + "'" + ColContent2 + "'";
-                            break;
-                    }
-                    sWhere += " and " + ColName2 + " " + com2;
-                }
-
+                //杩囨护妗嗚繃婊�
+                sWhere += buildFilterWhere(ColName, Comparator, ColContent, Logical_judgement, sWhere);
+                sWhere += buildFilterWhere(ColName1, Comparator1, ColContent1, Logical_judgement, sWhere);
+                sWhere += buildFilterWhere(ColName2, Comparator2, ColContent2, Logical_judgement1, sWhere);
+                //鎷彿鍖归厤
+                sWhere=fixParenthesesMatching(sWhere);
                 if (HBeginDate) {
                     sWhere += " and CONVERT(varchar(100),鍑虹珯鏃堕棿, 23) >= ''" + HBeginDate + "''";
                 }
@@ -2222,7 +2115,7 @@
                         default:
                     }
                 }
-                sWhere += "  and HBillSubType<>''SUB''";            
+                sWhere += "  and HBillSubType<>''SUB''";
 
                 sWhere += getOrgIDByUser();//鐢ㄦ埛鍏宠仈缁勭粐鏌ヨ杩囨护     
 
@@ -2235,7 +2128,7 @@
             //鍔犺浇缃戞牸
             function get_Display(sWhere) {
                 //杩涘叆椤甸潰鏄剧ず鐨勭紦瀛樺垪琛�
-                var ajaxLoad = layer.load();    
+                var ajaxLoad = layer.load();
                 var wait = layer.load();
                 $.ajax({
                     url: GetWEBURL() + '/Cj_StationOutBill/get_Display',
@@ -2284,7 +2177,7 @@
                                                 col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: false, width: 200, totalRow: true });
                                             } else {
                                                 col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: false, width: 200 });
-                                            }                                            
+                                            }
                                     }
                                 }
                             }
@@ -2330,7 +2223,7 @@
                 });
                 layer.close(wait);
             }
-
+           
             //#region 鏌ヨ-鍒嗛〉
             function get_DisplayPage(sWhere) {
                 var wait = layer.load();//閬僵

--
Gitblit v1.9.1