From ad99b3038e051a8524f506798fab88183c0fc3d2 Mon Sep 17 00:00:00 2001 From: chenhaozhe <cgz@hz-kingdee.com> Date: 星期二, 19 八月 2025 15:42:43 +0800 Subject: [PATCH] Merge branch 'master' of http://101.37.171.70:10101/r/MES-WEB-LayUI --- WebTM/layuiadmin/SetColumn.js | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 120 insertions(+), 0 deletions(-) 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; +} + + -- Gitblit v1.9.1