From e92aeae89a7430b326ab2157ed5004cc5c87d659 Mon Sep 17 00:00:00 2001
From: cuiqian2004 <cuiqian2004@163.com>
Date: 星期五, 28 十一月 2025 18:21:56 +0800
Subject: [PATCH] 75

---
 pages/modal/3202_view.vue |  478 ++++++++++++++++++++++++++++++-----------------------------
 1 files changed, 242 insertions(+), 236 deletions(-)

diff --git a/pages/modal/3202_view.vue b/pages/modal/3202_view.vue
index f78d925..2d21a57 100644
--- a/pages/modal/3202_view.vue
+++ b/pages/modal/3202_view.vue
@@ -33,6 +33,12 @@
 	import {
 		Base64
 	} from '@/js/Base64.js';
+	import {
+		showInfo,
+		showError,
+		showLoading,
+		hideLoading
+	} from "@/js/Page.js"
 	import classUtils from "@/js/utils.js"
 	import {
 		appGetInfo,
@@ -109,58 +115,64 @@
 			},
 		},
 		onBackPress(e) {
-			this.navigateBackEvent()
+			this.beforeNavigateBack()
 		},
 		async onLoad(options) {
-			console.log(options);
-			uni.setNavigationBarTitle({
-				title: options.titlename
-			}); //璁剧疆椤堕儴鏍囬 
-			this.title = options.titlename;
-			this.param = JSON.parse(options.param);
-			this.head_styledef = {
-				form: {
-					items: []
-				}
-			};
-			this.detail1_styledef = {};
-			this.detail1StyleDefList = [];
-			this.active_id = '';
-			this.activeItem = {};
-			await this.Head_UIStyleGetInfo(this.param.ClsID, this.param.MasterView_Panel.id);
-			await this.Detail1_UIstyleGetInfo(this.param.ClsID, this.param.ViewItem_Panel.id);
-			const dataObj = options.dataObj ? JSON.parse(options.dataObj) : {};
-			if (dataObj) {
-				let attrs = [];
-				let master_view = dataObj?.master_view;
-				Object.keys(master_view).forEach((a) => {
-					attrs.push({
-						attr: a,
-						value: master_view[a]
+			try {
+				showLoading("loading...")
+				console.log(options);
+				uni.setNavigationBarTitle({
+					title: options.titlename
+				}); //璁剧疆椤堕儴鏍囬 
+				this.title = options.titlename;
+				this.param = JSON.parse(options.param);
+				this.head_styledef = {
+					form: {
+						items: []
+					}
+				};
+				this.detail1_styledef = {};
+				this.detail1StyleDefList = [];
+				this.active_id = '';
+				this.activeItem = {};
+				await this.Head_UIStyleGetInfo(this.param.ClsID, this.param.MasterView_Panel.id);
+				await this.Detail1_UIstyleGetInfo(this.param.ClsID, this.param.ViewItem_Panel.id);
+				const dataObj = options.dataObj ? JSON.parse(options.dataObj) : {};
+				if (dataObj) {
+					let attrs = [];
+					let master_view = dataObj?.master_view;
+					Object.keys(master_view).forEach((a) => {
+						attrs.push({
+							attr: a,
+							value: master_view[a]
+						});
 					});
-				});
-				attrs.forEach((attr) => {
-					this.head_styledef.form.items.forEach((ele2) => {
-						if (ele2.name != "Layout") {
-							if (ele2.fieldId == attr.attr) {
-								ele2.value = attr.value;
-							}
-						} else if (ele2.name == "Layout") {
-							ele2.setting.colList.forEach((col) => {
-								if (col) {
-									if (col.fieldId == attr.attr) {
-										col.value = attr.value;
-									}
+					attrs.forEach((attr) => {
+						this.head_styledef.form.items.forEach((ele2) => {
+							if (ele2.name != "Layout") {
+								if (ele2.fieldId == attr.attr) {
+									ele2.value = attr.value;
 								}
-							});
-						}
+							} else if (ele2.name == "Layout") {
+								ele2.setting.colList.forEach((col) => {
+									if (col) {
+										if (col.fieldId == attr.attr) {
+											col.value = attr.value;
+										}
+									}
+								});
+							}
+						});
 					});
-				});
-				this.viewAceionContent(dataObj.page.list);
+					this.viewAceionContent(dataObj.page.list);
+				}
+				if (this.enter_view_event.id)
+					this.enterAfterEvent(this.enter_view_event);
+				hideLoading()
+			} catch (ex) {
+				hideLoading()
+				showError(ex, this.translateSys("error"));
 			}
-			if (this.enter_view_event.id)
-				this.enterAfterEvent(this.enter_view_event);
-
 		},
 		methods: {
 			//
@@ -234,13 +246,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 +271,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 +309,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) {
@@ -360,6 +355,7 @@
 			//椤甸潰杩涘叆鍚庝簨浠� 			async enterAfterEvent(event) {
 				try {
+					showLoading("loading...")
 					let data_json = [];
 					let jsonlist = [];
 					let detailStyleList = this.detail1StyleDefList;
@@ -385,7 +381,7 @@
 						} else input_param[item.fieldId] = item.value;
 					});
 					input_param = Base64.encode(JSON.stringify(input_param));
-					this.runCustomEvent({
+					await this.runCustomEvent({
 						ed_type: 0,
 						start_transaction: true,
 						class_id: this.param.ClsID,
@@ -393,9 +389,11 @@
 						input_param,
 						data_json,
 					})
+					hideLoading()
 
 				} catch (ex) {
-					this.showError(ex);
+					hideLoading()
+					showError(ex, this.translateSys('tip'));
 				}
 			},
 
@@ -408,65 +406,40 @@
 					runCustomEvent(dataInfo).then(result => {
 						console.log(result);
 
-						if (result.ret != 0&& result.ret != 1) {
-							var tip = result.err_info ? typeof result
-								.err_info ==
-								'string' ?
+						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 : result.err_info.join(
-									'<br/>') : '';
+								.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 (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;
+							}
+							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 {
-							var tip = result.info ? typeof result
-								.info == 'string' ? result
-								.info : result
-								.info.join('<br/>') : '';
+							var tip = result.info ? typeof result.info == 'string' ? result.info :
+								result.info.join('\n') : '';
 							tip = tip || result.err_info
-							if (tip) uni.showModal({
-								title: this.translateSys(
-									"tip"),
-								content: tip,
-								showCancel: false,
-								confirmText: this.translateSys(
-									'close')
-							});
+							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') {
-									if (result.result) {
-										uni.showModal({
-											title: this.translateSys('tip'),
-											content: result.result,
-											showCancel: false,
-											confirmText: this.translateSys('close')
-										});
-									}
+									showInfo(result.result)
+
 								}
 								try {
 									var actionList = result.action || []
@@ -477,31 +450,21 @@
 												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'
-													)
-											});
+											showInfo(this
+												.translateSys(
+													"quotation_mark_left"
+												) +
+												item
+												.action_type +
+												this
+												.translateSys(
+													"quotation_mark_right"
+												) +
+												this
+												.translate(
+													"tip_action_unprocessed"
+												))
+
 										}
 									});
 
@@ -509,13 +472,7 @@
 									let actionList = (result.action || []).map(a => a.action_type).join(';')
 									let tip = typeof ex == 'string' ? ex : ex.message
 									tip = `鎵ц鑴氭湰杩斿洖鐨�{actionList}鏃跺嚭鐜板紓甯革紝璇锋鏌ヨ剼鏈繑鍥炵殑鏁版嵁鏍煎紡鏄惁姝g‘銆�{tip}`
-									uni.showModal({
-										title: this.translateSys('tip'),
-										content: tip,
-										showCancel: false,
-										confirmText: this.translateSys('close')
-									});
-									console.log(ex)
+									showError(tip, this.translateSys('tip'))
 									return
 								}
 							}
@@ -523,27 +480,11 @@
 						}
 					}).catch(ex => {
 						console.log(ex);
-						uni.showModal({
-							title: this.translateSys("error") +
-								"9.1",
-							content: ex.errMsg,
-							showCancel: false,
-							confirmText: this.translateSys(
-								'close')
-						});
+						showError(ex, this.translateSys("error") + "9.1")
+
 					});
 				} 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')
-					});
+					showError(ex, this.translateSys('error') + "9.2")
 
 				}
 			},
@@ -565,7 +506,6 @@
 				})
 			},
 			onButtonClicked(btn) {
-
 				let enviroment = {
 					button: "top",
 					button_name: btn.ShowName,
@@ -573,93 +513,159 @@
 					function: "3202",
 					master: {},
 				};
-				if (btn.FunCode == "TriggerEvent") {
-					this.onTriggerEvent(btn, enviroment);
-				} else {
-					this.$Message.warning(this.$t("sys.unrealized"));
-				}
+				this.handleButtonClick((done) => {
+					if (btn.FunCode == "TriggerEvent") {
+						this.onTriggerEvent(btn, enviroment);
+					} else {
+						this.$Message.warning(this.$t("sys.unrealized"));
+					}
+					setTimeout(() => {
+						done(); // 閲嶇疆鐘舵�
+					}, 1000);
+				});
 
 			},
 			async onTriggerEvent(btn, enviroment) {
-				let data_json = [];
-				let jsonlist = [];
+				try {
+					showLoading("loading...")
 
-				let detailStyleList = this.detail1StyleDefList;
-				detailStyleList.forEach((style) => {
-					let detail_attr = {};
-					style.form.items.forEach((item) => {
+					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));
+
+					let input_param = {};
+					this.head_styledef.form.items.forEach((item) => {
 						if (item.name == "Layout") {
 							item.setting.colList.forEach((cols) => {
-								if (cols != null) detail_attr[cols.fieldId] = cols.value;
+								if (cols != null) input_param[cols.fieldId] = cols.value;
 							});
-						} else detail_attr[item.fieldId] = item.value;
+						} else input_param[item.fieldId] = item.value;
 					});
-					jsonlist.push(detail_attr);
-				});
-				data_json = Base64.encode(JSON.stringify(jsonlist));
-
-				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,
-				});
+					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,
+					});
+					hideLoading()
+				} catch (ex) {
+					hideLoading()
+					showError(ex, this.translateSys("error"));
+				}
 			},
-			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) => {
+			async navigateBackEvent() {
+				try {
+					var $this = this;
+					if (!this.exit_view_event.id)
+						return
+					showLoading("loading...")
+					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));
+
+					let input_param = {};
+					this.head_styledef.form.items.forEach((item) => {
 						if (item.name == "Layout") {
 							item.setting.colList.forEach((cols) => {
-								if (cols != null) detail_attr[cols.fieldId] = cols.value;
+								if (cols != null) input_param[cols.fieldId] = cols.value;
 							});
-						} else detail_attr[item.fieldId] = item.value;
+						} else input_param[item.fieldId] = item.value;
 					});
-					jsonlist.push(detail_attr);
-				});
-				data_json = Base64.encode(JSON.stringify(jsonlist));
+					input_param = Base64.encode(JSON.stringify(input_param));
+					const result = await runCustomEvent({
+						ed_type: 0,
+						start_transaction: true,
+						class_id: this.param.ClsID,
+						event_id: this.exit_view_event.id,
+						input_param,
+						data_json,
+					})
+					hideLoading()
+					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 {
+						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) {
 
-				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();
+							} else if (typeof result.result == 'string') {
+								showInfo(result.result)
+							}
 
-				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,
-				});
+						}
+
+					}
+
+				} catch (ex) {
+					hideLoading()
+					showError(ex, this.translateSys('error') + "9.2")
+
+				}
+
 			},
 			cancel(e) { //鍙栨秷
-				this.navigateBackEvent()
+
+				this.beforeNavigateBack()
 				uni.navigateBack({
 					delta: 1, //杩斿洖灞傛暟锛�鍒欎笂涓婇〉
 				});
+			},
+			async beforeNavigateBack() {
+				await this.navigateBackEvent()
+				const eventChannel = this.getOpenerEventChannel();
+				eventChannel.emit('ExitViewPage');
 			},
 			/**
 			 * 鍙敮鎸乕"column1='A' or column2='B'", "column3='C' and column4='D'", "column5='E'"]杩欑鏍煎紡
@@ -999,8 +1005,8 @@
 
 		.v-scroll-view {
 			flex: 1;
-			overflow: hidden;
 			width: 98%;
+			overflow: auto;
 		}
 
 		.view-bottom {

--
Gitblit v1.9.1