From 7662665a4f88da0f8afa804bd4a34dfbefc1fb56 Mon Sep 17 00:00:00 2001
From: cuiqian2004 <cuiqian2004@163.com>
Date: 星期五, 29 八月 2025 15:17:59 +0800
Subject: [PATCH] get_pre_page_subtable_next_row

---
 pages/modal/3202_view.vue |  873 +++++++++++++++++++++++++++------------------------------
 1 files changed, 409 insertions(+), 464 deletions(-)

diff --git a/pages/modal/3202_view.vue b/pages/modal/3202_view.vue
index 0ab4c7e..b6ab647 100644
--- a/pages/modal/3202_view.vue
+++ b/pages/modal/3202_view.vue
@@ -33,6 +33,10 @@
 	import {
 		Base64
 	} from '@/js/Base64.js';
+	import {
+		showInfo,
+		showError
+	} from "@/js/Page.js"
 	import classUtils from "@/js/utils.js"
 	import {
 		appGetInfo,
@@ -55,7 +59,7 @@
 		},
 		data() {
 			return {
-					largeMode: getApp().globalData.largeMode || false,
+				largeMode: getApp().globalData.largeMode || false,
 				title: this.translateSys('add2'),
 				param: {},
 				styledef: {},
@@ -234,13 +238,7 @@
 					}
 				} catch (ex) {
 					// console.log(ex);
-					let tip = typeof ex.errMsg == "string" ? ex.errMsg : ex
-					uni.showModal({
-						title: this.translateSys("error") + "1.1",
-						content: tip,
-						showCancel: false,
-						confirmText: this.translateSys('close')
-					});
+					showError(ex, this.translateSys('error') + "1.1")
 				}
 
 			},
@@ -265,13 +263,7 @@
 					$this.detail1_styledef.SelBut_Checked = false;
 				} catch (ex) {
 					// console.log(ex);
-					let tip = typeof ex.errMsg == "string" ? ex.errMsg : ex
-					uni.showModal({
-						title: this.translateSys("error") + "1.1",
-						content: tip,
-						showCancel: false,
-						confirmText: this.translateSys('close')
-					});
+					showError(ex, this.translateSys('error') + "1.1")
 				}
 
 
@@ -309,12 +301,7 @@
 					}
 				} catch (ex) {
 					// console.log(ex);
-					uni.showModal({
-						title: this.translateSys("error") + "3",
-						content: ex.errMsg,
-						showCancel: false,
-						confirmText: this.translateSys('close')
-					});
+					showError(ex, this.translateSys('error') + "3")
 				}
 			},
 			viewAceionContent(list) {
@@ -322,9 +309,10 @@
 					return;
 				}
 				let styleStr = JSON.stringify(this.detail1_styledef); //宸茬爜鐩�-				let detailStyle = JSON.parse(styleStr);
+
 				list.forEach((cont) => {
 					let attrs = [];
+					let detailStyle = JSON.parse(styleStr);
 					Object.keys(cont).forEach((a) => {
 						attrs.push({
 							attr: a,
@@ -394,7 +382,7 @@
 					})
 
 				} catch (ex) {
-					this.showError(ex);
+					showError(ex, this.translateSys('tip'));
 				}
 			},
 
@@ -403,469 +391,299 @@
 			async runCustomEvent(dataInfo) {
 				try {
 					var $this = this;
-				
+
 					runCustomEvent(dataInfo).then(result => {
-						console.log(result);
+							console.log(result);
 
-						if (result.ret != 0) {
-							var tip = result.err_info ? typeof result
-								.err_info ==
-								'string' ?
-								result
-								.err_info : result.err_info.join(
-									'<br/>') : '';
-							if (result.ret == 801) {
-								if (this.param.Only_Script_Error) {
-									let pos = tip.indexOf("锛�);
-									if (pos > -1) tip = tip.substring(
-										pos + 1);
-								}
-								uni.showModal({
-									title: this.translateSys(
-										"tip"),
-									content: tip,
-									showCancel: false,
-									confirmText: this
-										.translateSys('close')
-								});
-							} else uni.showModal({
-								title: this.translateSys(
-									"tip"),
-								content: tip + ',' + this
-									.translateSys('tip') +
-									':' +
-									result.ret,
-								showCancel: false,
-								confirmText: this.translateSys(
-									'close')
-							});
-							return false;
-						} else {
-							var tip = result.info ? typeof result
-								.info == 'string' ? result
-								.info : result
-								.info.join('<br/>') : '';
-							if (tip) uni.showModal({
-								title: this.translateSys(
-									"tip"),
-								content: tip,
-								showCancel: false,
-								confirmText: this.translateSys(
-									'close')
-							});
-
-							if (result.result_type == 0 && result.action) {
-								result.action.forEach(item => {
-									if (item.action_type == "goback_to_pre_page") { //杩斿洖涓婁竴椤�-										var value = item.value;
-										uni.navigateBack({
-											delta: 1, //杩斿洖灞傛暟锛�鍒欎笂涓婇〉
-										});
-									} else {
-										uni.showModal({
-											title: this
-												.translateSys(
-													"tip"
-												),
-											content: this
-												.translateSys(
-													"quotation_mark_left"
-												) +
-												item
-												.action_type +
-												this
-												.translateSys(
-													"quotation_mark_right"
-												) +
-												this
-												.translate(
-													"tip_action_unprocessed"
-												),
-											showCancel: false,
-											confirmText: this
-												.translateSys(
-													'close'
-												)
-										});
+							if (result.ret != 0 && result.ret != 1) {
+								let cls_name = result.event_info?.cls_name
+								let event_name = result.event_info?.event_name
+								tip = result.err_info ? typeof result.err_info == 'string' ? result.err_info : result
+									.err_info
+									.join('\n') : ''
+								if (result.ret == 801) {
+									if (this.param.Only_Script_Error) {
+										let pos = tip.indexOf("锛�);
+										if (pos > -1) tip = tip.substring(pos + 1);
 									}
-								});
+								}
+								if (cls_name && event_name) tip = `鎵ц鈥�{cls_name}鈥濇暟鎹被鐨勨�${event_name}鈥濊剼鏈椂杩斿洖閿欒锛�{tip}`
+								if (result.ret == 801) showInfo(tip)
+								else showError(`${tip}锛屾彁绀猴細${result.ret}`, this.translateSys('tip'))
+								this.saving = false
+								return false
 							} else {
-								if (result.info) {
-									uni.showModal({
-										title: this
-											.translateSys(
-												"tip"),
-										content: result.info,
-										showCancel: false,
-										confirmText: this
-											.translateSys(
-												'close')
-									});
+								var tip = result.info ? typeof result.info == 'string' ? result.info :
+									result.info.join('\n') : '';
+								tip = tip || result.err_info
+								let time = result.info_time || 0
+								if (time)
+									showError(tip, this.translateSys('tip'))
+								else
+								showInfo(tip)
+								if ([0, 2, 3, 4, -1].includes(result.result_type)) {
+									if (result.result_type == 2) {
+
+									} else if (typeof result.result == 'string') {
+										showInfo(result.result)
+										
+									}
+									try {
+										var actionList = result.action || []
+										actionList.forEach(item => {
+												if (item.action_type == "goback_to_pre_page") { //杩斿洖涓婁竴椤�+													var value = item.value;
+													uni.navigateBack({
+														delta: 1, //杩斿洖灞傛暟锛�鍒欎笂涓婇〉
+													});
+												} else {
+													showInfo(this
+														.translateSys(
+															"quotation_mark_left"
+														) +
+														item
+														.action_type +
+														this
+														.translateSys(
+															"quotation_mark_right"
+														) +
+														this
+														.translate(
+															"tip_action_unprocessed"
+														))
+
+											}
+										});
+
+								} catch (ex) {
+									let actionList = (result.action || []).map(a => a.action_type).join(';')
+									let tip = typeof ex == 'string' ? ex : ex.message
+									tip = `鎵ц鑴氭湰杩斿洖鐨�{actionList}鏃跺嚭鐜板紓甯革紝璇锋鏌ヨ剼鏈繑鍥炵殑鏁版嵁鏍煎紡鏄惁姝g‘銆�{tip}`
+									showError(tip, this.translateSys('tip'))
+									return
 								}
 							}
+
 						}
 					}).catch(ex => {
-						console.log(ex);
-						uni.showModal({
-							title: this.translateSys("error") +
-								"9.1",
-							content: ex.errMsg,
-							showCancel: false,
-							confirmText: this.translateSys(
-								'close')
-						});
-					});
-				} catch (ex) {
-					var tip = typeof ex == "string" ? ex : ex.message;
-					uni.showModal({
-						title: this.translateSys("error") + "9.2",
-						content: this.translate('execute_event_failed') +
-							this.translateSys(
-								"comma") +
-							this.translate('reason') + this.translateSys(
-								"colon") + tip,
-						showCancel: false,
-						confirmText: this.translateSys('close')
-					});
+					console.log(ex);
+					showError(ex, this.translateSys("error") + "9.1")
 
-				}
-			},
-			//鐐瑰嚮鎸夐挳鍒楄〃
-			clickDropdownBtns() {
-				var that = this
-				var itemlist = [];
-				this.dropdownBtns.forEach((btn) => {
-					itemlist.push(btn.ShowName);
 				});
-				uni.showActionSheet({
-					// title: '鎸夐挳鍒楄〃',
-					itemList: itemlist,
-					success: (e) => {
-						console.log(e.tapIndex);
-						var btn = that.dropdownBtns[e.tapIndex];
-						that.onButtonClicked(btn);
-					}
-				})
-			},
-			onButtonClicked(btn) {
-				
-				let enviroment = {
-					button: "top",
-					button_name: btn.ShowName,
-					cls_id: btn.Cls_ID,
-					function: "3202",
-					master: {},
-				};
-				if (btn.FunCode == "TriggerEvent") {
-					this.onTriggerEvent(btn, enviroment);
-				} else {
-					this.$Message.warning(this.$t("sys.unrealized"));
-				}
-				
-			},
-			async onTriggerEvent(btn, enviroment) {
-				let data_json = [];
-				let jsonlist = [];
-				
-				let detailStyleList = this.detail1StyleDefList;
-				detailStyleList.forEach((style) => {
-					let detail_attr = {};
-					style.form.items.forEach((item) => {
-						if (item.name == "Layout") {
-							item.setting.colList.forEach((cols) => {
-								if (cols != null) detail_attr[cols.fieldId] = cols.value;
-							});
-						} else detail_attr[item.fieldId] = item.value;
-					});
-					jsonlist.push(detail_attr);
-				});
-				data_json = Base64.encode(JSON.stringify(jsonlist));
+			} catch (ex) {
+				showError(ex, this.translateSys('error') + "9.2")
 
-				let input_param = {};
-				this.head_styledef.form.items.forEach((item) => {
+			}
+		},
+		//鐐瑰嚮鎸夐挳鍒楄〃
+		clickDropdownBtns() {
+			var that = this
+			var itemlist = [];
+			this.dropdownBtns.forEach((btn) => {
+				itemlist.push(btn.ShowName);
+			});
+			uni.showActionSheet({
+				// title: '鎸夐挳鍒楄〃',
+				itemList: itemlist,
+				success: (e) => {
+					console.log(e.tapIndex);
+					var btn = that.dropdownBtns[e.tapIndex];
+					that.onButtonClicked(btn);
+				}
+			})
+		},
+		onButtonClicked(btn) {
+
+			let enviroment = {
+				button: "top",
+				button_name: btn.ShowName,
+				cls_id: btn.Cls_ID,
+				function: "3202",
+				master: {},
+			};
+			if (btn.FunCode == "TriggerEvent") {
+				this.onTriggerEvent(btn, enviroment);
+			} else {
+				this.$Message.warning(this.$t("sys.unrealized"));
+			}
+
+		},
+		async onTriggerEvent(btn, enviroment) {
+			let data_json = [];
+			let jsonlist = [];
+
+			let detailStyleList = this.detail1StyleDefList;
+			detailStyleList.forEach((style) => {
+				let detail_attr = {};
+				style.form.items.forEach((item) => {
 					if (item.name == "Layout") {
 						item.setting.colList.forEach((cols) => {
-							if (cols != null) input_param[cols.fieldId] = cols.value;
+							if (cols != null) detail_attr[cols.fieldId] = cols.value;
 						});
-					} else input_param[item.fieldId] = item.value;
+					} else detail_attr[item.fieldId] = item.value;
 				});
-				input_param = Base64.encode(JSON.stringify(input_param));
-				await this.runCustomEvent({
-					ed_type: 0,
-					start_transaction: true,
-					class_id: btn.Cls_ID,
-					event_id: btn.Event.ID,
-					input_param,
-					data_json,
-				});
-			},
-			navigateBackEvent() {
-				if (!this.exit_view_event.id)
-					return
-				let data_json = [];
-				let jsonlist = [];
-				let detailStyleList = this.detail1StyleDefList;
-				detailStyleList.forEach((style) => {
-					let detail_attr = {};
-					style.form.items.forEach((item) => {
-						if (item.name == "Layout") {
-							item.setting.colList.forEach((cols) => {
-								if (cols != null) detail_attr[cols.fieldId] = cols.value;
-							});
-						} else detail_attr[item.fieldId] = item.value;
-					});
-					jsonlist.push(detail_attr);
-				});
-				data_json = Base64.encode(JSON.stringify(jsonlist));
+				jsonlist.push(detail_attr);
+			});
+			data_json = Base64.encode(JSON.stringify(jsonlist));
 
-				let input_param = {};
-				this.head_styledef.form.items.forEach((item) => {
+			let input_param = {};
+			this.head_styledef.form.items.forEach((item) => {
+				if (item.name == "Layout") {
+					item.setting.colList.forEach((cols) => {
+						if (cols != null) input_param[cols.fieldId] = cols.value;
+					});
+				} else input_param[item.fieldId] = item.value;
+			});
+			input_param = Base64.encode(JSON.stringify(input_param));
+			await this.runCustomEvent({
+				ed_type: 0,
+				start_transaction: true,
+				class_id: btn.Cls_ID,
+				event_id: btn.Event.ID,
+				input_param,
+				data_json,
+			});
+		},
+		navigateBackEvent() {
+			if (!this.exit_view_event.id)
+				return
+			let data_json = [];
+			let jsonlist = [];
+			let detailStyleList = this.detail1StyleDefList;
+			detailStyleList.forEach((style) => {
+				let detail_attr = {};
+				style.form.items.forEach((item) => {
 					if (item.name == "Layout") {
 						item.setting.colList.forEach((cols) => {
-							if (cols != null) input_param[cols.fieldId] = cols.value;
+							if (cols != null) detail_attr[cols.fieldId] = cols.value;
 						});
-					} else input_param[item.fieldId] = item.value;
+					} else detail_attr[item.fieldId] = item.value;
 				});
-				input_param = Base64.encode(JSON.stringify(input_param));
-				const eventChannel = this.getOpenerEventChannel();
+				jsonlist.push(detail_attr);
+			});
+			data_json = Base64.encode(JSON.stringify(jsonlist));
 
-				eventChannel.emit('ExitViewEvent', {
-					ed_type: 0,
-					start_transaction: true,
-					class_id: this.param.ClsID,
-					event_id: this.exit_view_event.id,
-					input_param,
-					data_json,
-				});
-			},
-			cancel(e) { //鍙栨秷
-				this.navigateBackEvent()
-				uni.navigateBack({
-					delta: 1, //杩斿洖灞傛暟锛�鍒欎笂涓婇〉
-				});
-			},
-			/**
-			 * 鍙敮鎸乕"column1='A' or column2='B'", "column3='C' and column4='D'", "column5='E'"]杩欑鏍煎紡
-			 * {
-			 *     "model": 0 / 1,
-			 *     "condition":
-			 *     [
-			 *         [
-			 *             { },
-			 *             { },
-			 *             { }
-			 *         ],
-			 *         [
-			 *             { }
-			 *         ],
-			 *         [
-			 *             { }
-			 *         ]
-			 *     ]
-			 * }
-			 */
+			let input_param = {};
+			this.head_styledef.form.items.forEach((item) => {
+				if (item.name == "Layout") {
+					item.setting.colList.forEach((cols) => {
+						if (cols != null) input_param[cols.fieldId] = cols.value;
+					});
+				} else input_param[item.fieldId] = item.value;
+			});
+			input_param = Base64.encode(JSON.stringify(input_param));
+			const eventChannel = this.getOpenerEventChannel();
 
-			toWhereBase64String(list) {
-				if (typeof list == 'string') list = [list]
-				var sql = []
-				var seps = [' not in', ' in', '<>', '!=', '<=', '>=', '<', '=',
-					'>', ' like'
-				]
-				list.forEach(ls => {
-					var where = ls.trim()
-					if (where.startsWith('(') && where.endsWith(')'))
-						where = where.replace(
+			eventChannel.emit('ExitViewEvent', {
+				ed_type: 0,
+				start_transaction: true,
+				class_id: this.param.ClsID,
+				event_id: this.exit_view_event.id,
+				input_param,
+				data_json,
+			});
+		},
+		cancel(e) { //鍙栨秷
+			this.navigateBackEvent()
+			uni.navigateBack({
+				delta: 1, //杩斿洖灞傛暟锛�鍒欎笂涓婇〉
+			});
+		},
+		/**
+		 * 鍙敮鎸乕"column1='A' or column2='B'", "column3='C' and column4='D'", "column5='E'"]杩欑鏍煎紡
+		 * {
+		 *     "model": 0 / 1,
+		 *     "condition":
+		 *     [
+		 *         [
+		 *             { },
+		 *             { },
+		 *             { }
+		 *         ],
+		 *         [
+		 *             { }
+		 *         ],
+		 *         [
+		 *             { }
+		 *         ]
+		 *     ]
+		 * }
+		 */
+
+		toWhereBase64String(list) {
+			if (typeof list == 'string') list = [list]
+			var sql = []
+			var seps = [' not in', ' in', '<>', '!=', '<=', '>=', '<', '=',
+				'>', ' like'
+			]
+			list.forEach(ls => {
+				var where = ls.trim()
+				if (where.startsWith('(') && where.endsWith(')'))
+					where = where.replace(
+						/^\(/,
+						'').replace(
+						/\)$/, '')
+				if (where.toLowerCase().includes(' and ')) {
+					// 浜岀骇and鏀惧湪绗竴绾ф暟缁勪腑
+					where.split(/ and /i).forEach(li => {
+						var l = li.trim()
+						if (l.startsWith('(') && l.endsWith(
+								')')) l = l.replace(
 							/^\(/,
 							'').replace(
 							/\)$/, '')
-					if (where.toLowerCase().includes(' and ')) {
-						// 浜岀骇and鏀惧湪绗竴绾ф暟缁勪腑
-						where.split(/ and /i).forEach(li => {
-							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.toLowerCase().includes(seps[
-										i])) {
-									sep = seps[i]
-									break
-								}
-							}
-							if (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]
-									?.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(/\'$/, '')
-											)
-									}
-								}
-								sql.push([{
-									field,
-									value,
-									op
-								}])
-							}
-						})
-					} else if (where.toLowerCase().includes(' or ')) {
-						// 浜岀骇or鏀惧湪绗簩绾у悓涓�粍鏁扮粍涓�-						var s = []
-						where.split(/ or /i).forEach(li => {
-							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.toLowerCase().includes(seps[
-										i])) {
-									sep = seps[i]
-									break
-								}
-							}
-							if (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]
-									?.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(/\'$/, '')
-											)
-									}
-								}
-								sql.push([{
-									field,
-									value,
-									op
-								}])
-							}
-						})
-						sql.push(s)
-					} 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.toLowerCase().includes(seps[i])) {
+							if (l.toLowerCase().includes(seps[
+									i])) {
 								sep = seps[i]
 								break
 							}
 						}
 						if (sep) {
-							var values = l.split(new RegExp(sep, 'i'))
-							var field = values[0]?.trim().replace(/^\[/,
-								'').replace(/\]$/, '')
+							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]?.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
+							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(/\'$/, '')
+								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(/\'$/,
-											''))
+								if (['in', 'not in'].includes(
+										op)) {
+									value = value.replace(
+										/^\(/, '').replace(
+										/\)$/,
+										'')
+									value = value.split(',')
+										.map(v => v.trim()
+											.replace(
+												/^\'/, '')
+											.replace(/\'$/, '')
+										)
 								}
 							}
 							sql.push([{
@@ -874,27 +692,154 @@
 								op
 							}])
 						}
+					})
+				} else if (where.toLowerCase().includes(' or ')) {
+					// 浜岀骇or鏀惧湪绗簩绾у悓涓�粍鏁扮粍涓�+					var s = []
+					where.split(/ or /i).forEach(li => {
+						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.toLowerCase().includes(seps[
+									i])) {
+								sep = seps[i]
+								break
+							}
+						}
+						if (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]
+								?.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(/\'$/, '')
+										)
+								}
+							}
+							sql.push([{
+								field,
+								value,
+								op
+							}])
+						}
+					})
+					sql.push(s)
+				} 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.toLowerCase().includes(seps[i])) {
+							sep = seps[i]
+							break
+						}
 					}
-				})
+					if (sep) {
+						var values = l.split(new RegExp(sep, 'i'))
+						var field = values[0]?.trim().replace(/^\[/,
+							'').replace(/\]$/, '')
+						var value = ''
+						var op = sep.trim()
 
-				if (sql.length > 0)
-					return Base64.encode(JSON.stringify({
-						model: 1,
-						condition: sql
-					}))
-				else
-					return ''
-			},
-			translate(t) {
-				if (typeof this.$t == "function") return this.$t(`page.${t}`)
-				else return t;
-			},
-			translateSys(t) {
-				if (typeof this.$t == "function") return this.$t(`sys.${t}`)
-				else return t;
-			},
+						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(/\'$/,
+										''))
+							}
+						}
+						sql.push([{
+							field,
+							value,
+							op
+						}])
+					}
+				}
+			})
+
+			if (sql.length > 0)
+				return Base64.encode(JSON.stringify({
+					model: 1,
+					condition: sql
+				}))
+			else
+				return ''
 		},
+		translate(t) {
+			if (typeof this.$t == "function") return this.$t(`page.${t}`)
+			else return t;
+		},
+		translateSys(t) {
+			if (typeof this.$t == "function") return this.$t(`sys.${t}`)
+			else return t;
+		},
+
+	},
 	};
 </script>
 <style lang="scss">

--
Gitblit v1.9.1