From 4889b8de1c676fa1c2298c6d54b433c271ecd0fb Mon Sep 17 00:00:00 2001
From: jt <jt@activesoft.com.cn>
Date: 星期二, 09 四月 2024 15:20:48 +0800
Subject: [PATCH] 1.toWhereBase64String方法需要支持Orcale数据库,取消固定小写值查询改进 2.调用runCustomEvent时给了obj_attr数据就要给data_obj_id数据改进

---
 pages/modal/3200_view.vue |  118 +++++++++++++++++++++++++---------------------------------
 1 files changed, 51 insertions(+), 67 deletions(-)

diff --git a/pages/modal/3200_view.vue b/pages/modal/3200_view.vue
index fed0f15..62dda0c 100644
--- a/pages/modal/3200_view.vue
+++ b/pages/modal/3200_view.vue
@@ -494,6 +494,7 @@
 						start_transaction: true,
 						class_id: this.param.DataCls.id,
 						event_id: eventid,
+						data_obj_id:this.styleDef.form.objId,
 						obj_attr,
 						input_param,
 					});
@@ -605,6 +606,7 @@
 							start_transaction: true,
 							class_id: $this.param.DataCls.id,
 							event_id: eventid,
+							data_obj_id:$this.styleDef.form.objId,
 							obj_attr,
 						});
 					} else {
@@ -710,7 +712,7 @@
 							class_name: '',
 							event_id: event.id,
 							event_name: '',
-							data_obj_id: '',
+							data_obj_id:"",
 							obj_attr: obj_attr,
 							prj_id: '',
 							ref_cls_id: '',
@@ -906,6 +908,7 @@
 						start_transaction: true,
 						class_id: btn.Cls_ID,
 						event_id: btn.Event.ID,
+						data_obj_id:this.styleDef.form.objId,
 						obj_attr: obj_attr,
 					});
 				} catch (ex) {
@@ -1045,141 +1048,122 @@
 				var sql = []
 				var seps = [' not in', ' in', '<>', '!=', '<=', '>=', '<', '=', '>', ' like']
 				list.forEach(ls => {
-					var where = ls.trim().toLowerCase()
-					if (where.startsWith('(') && where.endsWith(')')) where = where.replace(/^\(/, '').replace(
-						/\)$/, '')
-					if (where.includes(' and ')) {
+					var where = ls.trim()
+					if (where.startsWith('(') && where.endsWith(')')) where = where.replace(/^\(/, '').replace(/\)$/, '')
+					if (where.toLowerCase().includes(' and ')) {
 						// 浜岀骇and鏀惧湪绗竴绾ф暟缁勪腑
-						where.split(' and ').forEach(li => {
+						where.split(/ and /i).forEach(li => {
 							var l = li.trim()
-							if (l.startsWith('(') && l.endsWith(')')) l = l.replace(/^\(/, '').replace(
-								/\)$/, '')
+							if (l.startsWith('(') && l.endsWith(')')) l = l.replace(/^\(/, '').replace(/\)$/, '')
 							var sep = ''
 							for (var i = 0; i < seps.length; i++) {
-								if (l.includes(seps[i])) {
+								if (l.toLowerCase().includes(seps[i])) {
 									sep = seps[i]
 									break
 								}
 							}
 							if (sep) {
-								var values = l.split(sep)
+								var values = l.split(new RegExp(sep, 'i'))
 								var field = values[0]?.trim().replace(/^\[/, '').replace(/\]$/, '')
 								var value = ''
 								var op = sep.trim()
-
-								if ([' in', ' not in'].includes(sep) && values[1].includes('select ') &&
-									values[1].includes(' from ')) {
-									value = l.replace(field, '').replace(/^\s*(in|not in)\s*/, '').trim()
-									if (value.startsWith('(') && value.endsWith(')')) value = value
-										.replace(/^\(/, '').replace(/\)$/, '').trim()
-								} else {
+			
+								if ([' in', ' not in'].includes(sep) && values[1]?.toLowerCase().includes('select ') && values[1]?.toLowerCase().includes(' from ')) {
+									value = l.replace(field, '').replace(/^\s*(in|not in)\s*/i, '').trim()
+									if (value.startsWith('(') && value.endsWith(')')) value = value.replace(/^\(/, '').replace(/\)$/, '').trim()
+								}
+								else {
 									value = values[1]?.trim().replace(/^\'/, '').replace(/\'$/, '')
-
+			
 									if (['in', 'not in'].includes(op)) {
 										value = value.replace(/^\(/, '').replace(/\)$/, '')
-										value = value.split(',').map(v => v.trim().replace(/^\'/, '')
-											.replace(/\'$/, ''))
+										value = value.split(',').map(v => v.trim().replace(/^\'/, '').replace(/\'$/, ''))
 									}
 								}
-								sql.push([{
-									field,
-									value,
-									op
-								}])
+								sql.push([{ field, value, op }])
 							}
 						})
-					} else if (where.includes(' or ')) {
+					}
+					else if (where.toLowerCase().includes(' or ')) {
 						// 浜岀骇or鏀惧湪绗簩绾у悓涓�粍鏁扮粍涓� 						var s = []
-						where.split(' or ').forEach(li => {
+						where.split(/ or /i).forEach(li => {
 							var l = li.trim()
-							if (l.startsWith('(') && l.endsWith(')')) l = l.replace(/^\(/, '').replace(
-								/\)$/, '')
+							if (l.startsWith('(') && l.endsWith(')')) l = l.replace(/^\(/, '').replace(/\)$/, '')
 							var sep = ''
 							for (var i = 0; i < seps.length; i++) {
-								if (l.includes(seps[i])) {
+								if (l.toLowerCase().includes(seps[i])) {
 									sep = seps[i]
 									break
 								}
 							}
 							if (sep) {
-								var values = l.split(sep)
+								var values = l.split(new RegExp(sep, 'i'))
 								var field = values[0]?.trim().replace(/^\[/, '').replace(/\]$/, '')
 								var value = ''
 								var op = sep.trim()
-
-								if ([' in', ' not in'].includes(sep) && values[1].includes('select ') &&
-									values[1].includes(' from ')) {
-									value = l.replace(field, '').replace(/^\s*(in|not in)\s*/, '').trim()
-									if (value.startsWith('(') && value.endsWith(')')) value = value
-										.replace(/^\(/, '').replace(/\)$/, '').trim()
-								} else {
+			
+								if ([' in', ' not in'].includes(sep) && values[1]?.toLowerCase().includes('select ') && values[1]?.toLowerCase().includes(' from ')) {
+									value = l.replace(field, '').replace(/^\s*(in|not in)\s*/i, '').trim()
+									if (value.startsWith('(') && value.endsWith(')')) value = value.replace(/^\(/, '').replace(/\)$/, '').trim()
+								}
+								else {
 									value = values[1]?.trim().replace(/^\'/, '').replace(/\'$/, '')
-
+			
 									if (['in', 'not in'].includes(op)) {
 										value = value.replace(/^\(/, '').replace(/\)$/, '')
-										value = value.split(',').map(v => v.trim().replace(/^\'/, '')
-											.replace(/\'$/, ''))
+										value = value.split(',').map(v => v.trim().replace(/^\'/, '').replace(/\'$/, ''))
 									}
 								}
-								sql.push([{
-									field,
-									value,
-									op
-								}])
+								sql.push([{ field, value, op }])
 							}
 						})
 						sql.push(s)
-					} else {
+					}
+					else {
 						var li = where
 						// 鍗曚竴鏌ヨ鏉′欢鐩存帴鏀惧湪绗竴绾ф暟缁勪腑
 						var l = li.trim()
 						if (l.startsWith('(') && l.endsWith(')')) l = l.replace(/^\(/, '').replace(/\)$/, '')
 						var sep = ''
 						for (var i = 0; i < seps.length; i++) {
-							if (l.includes(seps[i])) {
+							if (l.toLowerCase().includes(seps[i])) {
 								sep = seps[i]
 								break
 							}
 						}
 						if (sep) {
-							var values = l.split(sep)
+							var values = l.split(new RegExp(sep,'i'))
 							var field = values[0]?.trim().replace(/^\[/, '').replace(/\]$/, '')
 							var value = ''
 							var op = sep.trim()
-
-							if ([' in', ' not in'].includes(sep) && values[1].includes('select ') && values[1]
-								.includes(' from ')) {
-								value = l.replace(field, '').replace(/^\s*(in|not in)\s*/, '').trim()
-								if (value.startsWith('(') && value.endsWith(')')) value = value.replace(/^\(/, '')
-									.replace(/\)$/, '').trim()
-							} else {
+			
+							if ([' in', ' not in'].includes(sep) && values[1]?.toLowerCase().includes('select ') && values[1]?.toLowerCase().includes(' from ')) {
+								value = l.replace(field, '').replace(/^\s*(in|not in)\s*/i, '').trim()
+								if (value.startsWith('(') && value.endsWith(')')) value = value.replace(/^\(/, '').replace(/\)$/, '').trim()
+							}
+							else {
 								value = values[1]?.trim().replace(/^\'/, '').replace(/\'$/, '')
-
+			
 								if (['in', 'not in'].includes(op)) {
 									value = value.replace(/^\(/, '').replace(/\)$/, '')
-									value = value.split(',').map(v => v.trim().replace(/^\'/, '').replace(/\'$/,
-										''))
+									value = value.split(',').map(v => v.trim().replace(/^\'/, '').replace(/\'$/, ''))
 								}
 							}
-							sql.push([{
-								field,
-								value,
-								op
-							}])
+							sql.push([{ field, value, op }])
 						}
 					}
 				})
-
+			
 				if (sql.length > 0)
 					return Base64.encode(JSON.stringify({
 						model: 1,
 						condition: sql
 					}))
 				else
-					return ''
+				return ''
 			},
-
+			
 			cancel(e) { //鍙栨秷
 				var eventChannel = this.$scope.eventChannel;
 				// const eventChannel = this.getOpenerEventChannel();

--
Gitblit v1.9.1