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.vue | 1153 +++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 785 insertions(+), 368 deletions(-)

diff --git a/pages/modal/3202.vue b/pages/modal/3202.vue
index 3da57fa..44ef81f 100644
--- a/pages/modal/3202.vue
+++ b/pages/modal/3202.vue
@@ -1,5 +1,5 @@
 <template>
-	<view class="uni-page-modal-3202">
+	<view class="uni-page-modal-3202" :class="largeMode?'large-mode':''">
 		<view class="v-content">
 			<!-- 琛ㄥご鏍峰紡 -->
 			<OIForm ref="refBaseForm" class="v-headStyle" :form="head_styledef.form" @on-focus="ontap"
@@ -13,8 +13,16 @@
 							:class="activeItem == style?'bk-active':''">
 							<div class="dv-panel-input">
 								<OIForm class="v-area dv-panel" :form="style.form" viewMode></OIForm>
+								<div class="dv-panel-button" v-if="rowButtons.length > 0">
+
+									<button size="mini" v-for="(btn,btnIndex) in rowButtons" :key="btnIndex"
+										type="primary" @click="onRowBtnClick(btn, ii)">
+										<text v-if="btn.Style == 'img' || btn.Style == 'img_text'" class="img"></text>
+										{{btn.ShowName || ""}}
+									</button>
+								</div>
 							</div>
-							<div class="dv-panel-button" v-if="click_item_view">
+							<div class="dv-panel-right-button" v-if="click_item_view">
 								<a @click="onViewPageClick(style)"><i class="mobox-normal-right-arrow" /></a>
 							</div>
 						</view>
@@ -30,6 +38,12 @@
 		Base64
 	} from '@/js/Base64.js';
 	import classUtils from "@/js/utils.js"
+	import {
+		showInfo,
+		showError,
+		showLoading,
+		hideLoading
+	} from "@/js/Page.js"
 	import {
 		appGetInfo,
 		dictGetInfo
@@ -51,6 +65,7 @@
 		},
 		data() {
 			return {
+				largeMode: getApp().globalData.largeMode || false,
 				title: this.translateSys('add2'),
 				isFilter: true,
 				param: {},
@@ -77,7 +92,7 @@
 				old: {
 					scrollTop: 0
 				},
-				isScroll: true,
+				isScroll: false,
 				//鑾峰彇鏁版嵁绫荤殑HTML椤甸潰
 				click_item_view: false,
 				refreshing: false
@@ -90,31 +105,49 @@
 					id: this.param?.ClickItem_Event?.id,
 				};
 			},
+			rowButtons() {
+				return this.param?.ListItem_Button || [];
+			},
+			initialEvent() {
+				let event = (this.head_styledef.event || []).find((e) => e.event_id == "initial");
+				return {
+					id: event?.scrip_id || "",
+					name: event?.scrip_name || "",
+				};
+			},
 
 		},
 		async onLoad(options) {
-			// console.log(options);
-			uni.setNavigationBarTitle({
-				title: options.titlename
-			}); //璁剧疆椤堕儴鏍囬 
-			this.title = options.titlename;
-			this.param = JSON.parse(options.param);
-			this.styledef = {};
-			this.head_styledef = {
-				form: {
-					items: []
-				}
-			};
-			this.detail1_styledef = {};
-			this.detail1StyleDefList = [];
-			this.items = [];
-			this.active_id = '';
-			this.activeItem = {};
-			this.click_item_view = false
-			if (this.param?.ClickItem_Event?.id)
-				this.click_item_view = true
-			await this.Detail1_UIstyleGetInfo(this.param.ClsID, this.param.ListItem_Panel.id);
-			this.initial()
+			try {
+				showLoading("loading...")
+				// console.log(options);
+				uni.setNavigationBarTitle({
+					title: options.titlename
+				}); //璁剧疆椤堕儴鏍囬 
+				this.title = options.titlename;
+				this.param = JSON.parse(options.param);
+				const paramValue = options.paramValue ? JSON.parse(options.paramValue) : undefined
+				this.styledef = {};
+				this.head_styledef = {
+					form: {
+						items: []
+					}
+				};
+				this.detail1_styledef = {};
+				this.detail1StyleDefList = [];
+				this.items = [];
+				this.active_id = '';
+				this.activeItem = {};
+				this.click_item_view = false
+				if (this.param?.ClickItem_Event?.id)
+					this.click_item_view = true
+				await this.Detail1_UIstyleGetInfo(this.param.ClsID, this.param.ListItem_Panel.id);
+				this.initial(paramValue)
+				hideLoading()
+			} catch (ex) {
+				hideLoading()
+				showError(ex, this.translateSys("error"));
+			}
 
 		},
 		methods: {
@@ -141,7 +174,7 @@
 				});
 			},
 			//鍒濆鍖�-			async initial() {
+			async initial(paramValue) {
 				this.refreshing = true
 				await this.Head_UIStyleGetInfo(this.param.ClsID, this.param.Input_Panel.id);
 				this.wheres = '';
@@ -150,7 +183,152 @@
 				this.query_id = "";
 				this.detail1StyleDefList = [];
 				this.refreshing = false
+				if (paramValue) {
 
+					this.setFormValues(paramValue)
+				}
+				await this.loadInitialEvent();
+			},
+			async loadInitialEvent() {
+
+				try {
+					const event = this.initialEvent
+					if (event.id) {
+						var obj_attr = this.head_styledef.form.model;
+						console.log(obj_attr);
+						var input_param = Base64.encode(
+							JSON.stringify({
+								id: "",
+								attrs: Object.keys(obj_attr).map((a) => ({
+									attr: a,
+									value: obj_attr[a] || "",
+								}))
+							})
+						);
+						var $this = this;
+						var dataInfo = {
+							ed_type: 0,
+							start_transaction: true,
+							class_id: this.head_styledef.form.clsId,
+							class_name: '',
+							event_id: event.id,
+							event_name: '',
+							data_obj_id: '',
+							obj_attr: obj_attr,
+							prj_id: '',
+							ref_cls_id: '',
+							rel_obj_id: '',
+							user_login: '',
+							data_json: '',
+							compose_info: '',
+							ext_info: '',
+							global_attr: '',
+							input_param: input_param,
+						};
+						runCustomEvent(dataInfo).then(result => {
+							console.log(result);
+
+							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) {
+
+									} else if (typeof result.result == 'string') {
+										showInfo(result.result)
+
+									}
+									try {
+										var actionlist = result.action || []
+										for (var j = 0; j < actionlist.length; j++) {
+											var action = actionlist[j];
+											var action_type = action.action_type;
+											var value = action.value;
+
+											if (action_type == "set_query_condition") {
+												$this.wheres = value.condition;
+												$this.orderby = value.order ? value.order : ""
+												$this.pageindex = 1;
+												$this.query_id = "";
+												$this.detail1StyleDefList = [];
+												$this.loadDataGetList();
+											} else if (action_type ==
+												"set_dlg_attr") {
+												$this.setFormValues(action.value)
+											} else if (action_type == "set_subtable_page_content") {
+												if (value.clear_confirm != false && value.clear == true &&
+													$this.detail1StyleDefList.length > 0
+												) { //鍒ゆ柇鏄惁娓呯┖椤电鍐呭,姝e湪鐮佺洏鏄惁鏈夋暟鎹�+													uni.showModal({
+														title: this.translateSys('tip'),
+														content: this.translate(
+															"are_you_sure_clear_data"),
+														cancelText: $this.translateSys('ok'),
+														confirmText: $this.translateSys('cancel'),
+														success: function(res) {
+															if (res.cancel) {
+																$this.detail1StyleDefList = [];
+																$this.viewAceionContent(value);
+															} else if (res.confirm) {
+																$this.detail1StyleDefList = [];
+																$this.viewAceionContent(value);
+															}
+														}
+													});
+												} else {
+													$this.detail1StyleDefList = [];
+													$this.viewAceionContent(value);
+												}
+											}
+										}
+
+									} 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);
+							showError(ex, this.translateSys("error") + "8.1")
+						});
+					}
+				} catch (ex) {
+					showError(ex, this.translateSys('error') + "8.2")
+
+				}
 			},
 
 			//婊氬姩鍒板簳閮ㄥ悗鎳掑姞杞芥暟鎹�@@ -240,13 +418,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")
 				}
 
 			},
@@ -271,13 +443,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")
 				}
 
 
@@ -315,12 +481,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")
 				}
 			},
 
@@ -422,21 +583,10 @@
 
 					}).catch(ex => {
 						// console.log(ex);
-						uni.showModal({
-							title: this.translateSys("error") + "5.1",
-							content: ex.errMsg,
-							showCancel: false,
-							confirmText: this.translateSys('close')
-						});
+						showError(ex, this.translateSys("error") + "5.1")
 					});
 				} catch (ex) {
-					var tip = typeof ex == "string" ? ex : ex.message;
-					uni.showModal({
-						title: this.translateSys("error") + "5.2",
-						content: tip,
-						showCancel: false,
-						confirmText: this.translateSys('close')
-					});
+					showError(ex, this.translateSys('error') + "5.2")
 				}
 			},
 			//鍒锋柊
@@ -444,10 +594,19 @@
 				this.initial()
 			},
 			//鐐瑰嚮鏄剧ず娴忚瀵硅薄鏄剧ず椤甸潰
-			async onViewPageClick(style) {
+			onViewPageClick(style) {
+				this.handleButtonClick((done) => {
+					this.viewPageClick(style);
+					setTimeout(() => {
+						done(); // 閲嶇疆鐘舵�
+					}, 1000);
+				});
+			},
+			async viewPageClick(style) {
 				if (!this.clickItemEvent.id) {
 					return;
 				}
+				showLoading("loading...")
 				const $this = this
 
 				var obj_attr = this.head_styledef.form.model;
@@ -488,109 +647,331 @@
 					data_json,
 				}).then(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/>') : '';
+					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);
-							}
-							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 == "jump_pda_page") {
-									// value = {"attr":"xxx", "value":"xxx"}
-									var data = item.value;
-									uni.navigateTo({
-										url: `../modal/3202_view?param=${JSON.stringify($this.param)}&titlename=${data.page?.page_name || ""}&dataObj=${JSON.stringify(data)}`,
-										events: {
-											// 涓烘寚瀹氫簨浠舵坊鍔犱竴涓洃鍚櫒锛岃幏鍙栬鎵撳紑椤甸潰浼犻�鍒板綋鍓嶉〉闈㈢殑鏁版嵁
-											ExitViewEvent: function(data) {
-												console.log(data);
-												this.runCustomEvent(data);
-											}
-										}
-									});
-								}
-							})
-						} else {
-							if (result.info) {
-								uni.showModal({
-									title: this
-										.translateSys(
-											"tip"),
-									content: result.info,
-									showCancel: false,
-									confirmText: this
-										.translateSys(
-											'close')
-								});
+								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) {
+
+							} else if (typeof result.result == 'string') {
+								showInfo(result.result)
+
+							}
+							try {
+								var actionList = result.action || []
+								actionList.forEach(item => {
+									if (item.action_type == "jump_pda_page") {
+										// value = {"attr":"xxx", "value":"xxx"}
+										var data = item.value;
+										uni.navigateTo({
+											url: `../modal/3202_view?param=${JSON.stringify($this.param)}&titlename=${data.page?.page_name || ""}&dataObj=${JSON.stringify(data)}`,
+											events: {
+												ExitViewPage: function() {
+
+													$this.loadInitialEvent()
+												}
+											}
+										});
+									}
+								})
+							} 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") +
-							"8.1",
-						content: ex.errMsg,
-						showCancel: false,
-						confirmText: this.translateSys(
-							'close')
-					});
+					hideLoading()
+					showError(ex, this.translateSys("error") + "8.1")
 				});
+			},
+			onRowBtnClick(btn, index) {
+				const $this = this
+				if (btn.Prompt) {
+					const sContent = btn.PromptContent || this.translate("confirm")
+					uni.showModal({
+						title: this.translateSys("tip"),
+						content: btn.PromptContent || this.translate("confirm"),
+						cancelText: this.translateSys('ok'),
+						confirmText: this.translateSys('cancel'),
+						success: function(res) {
+							if (res.cancel) {
+								$this.onButtonClicked(btn, index);
+							}
+
+						},
+					})
+
+				} else {
+					this.handleButtonClick((done) => {
+						this.onButtonClicked(btn, index);
+						setTimeout(() => {
+							done(); // 閲嶇疆鐘舵�
+						}, 1000);
+					});
+
+				}
+			},
+			onButtonClicked(btn, index) {
+
+				let enviroment = {
+					button: "row",
+					button_name: btn.ShowName,
+					cls_id: btn.Cls_ID,
+					function: "3022",
+					master: {},
+				};
+				if (btn.FunCode == "TriggerEvent") {
+					const style = this.detail1StyleDefList[index];
+					this.triggerEvent(btn, style, enviroment);
+				} else if (btn.FunCode == "RelatedFunction") {
+					const style = this.detail1StyleDefList[index];
+					this.relatedFunction(btn, style, enviroment);
+				} else {
+					showInfo(this.translateSys("unrealized"))
+
+				}
+			},
+			//鎵ц瑙﹀彂浜嬩欢
+			async triggerEvent(btn, style, enviroment) {
+				const $this = this
+				showLoading("loading...")
+				var obj_attr = this.head_styledef.form.model;
+				// console.log(obj_attr);
+				var input_param = Base64.encode(
+					JSON.stringify(
+						Object.keys(obj_attr).map((a) => ({
+							attr: a,
+							value: obj_attr[a] || "",
+						}))
+					)
+				);
+				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;
+				});
+				detail_attr["id"] = style.form.objId;
+
+				const attrs = Object.keys(detail_attr)
+					.map((a) => ({
+						attr: a,
+						value: detail_attr[a] || "",
+					}))
+					.filter((a) => {
+						return a.attr != "id";
+					});
+				let data_json = Base64.encode(JSON.stringify(attrs));
+				runCustomEvent({
+					ed_type: 0,
+					start_transaction: true,
+					class_id: btn.Cls_ID,
+					event_id: btn.Event.ID,
+					input_param,
+					data_json,
+				}).then(result => {
+					hideLoading()
+					// console.log(result);
+					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) {
+
+							} else if (typeof result.result == 'string') {
+								showInfo(result.result)
+
+							}
+							try {
+								var actionList = result.action || []
+								actionList.forEach(item => {
+									if (item.action_type == "jump_pda_page") {
+										// value = {"attr":"xxx", "value":"xxx"}
+										var data = item.value;
+										uni.navigateTo({
+											url: `../modal/3202_view?param=${JSON.stringify($this.param)}&titlename=${data.page?.page_name || ""}&dataObj=${JSON.stringify(data)}`,
+											events: {
+												// 涓烘寚瀹氫簨浠舵坊鍔犱竴涓洃鍚櫒锛岃幏鍙栬鎵撳紑椤甸潰浼犻�鍒板綋鍓嶉〉闈㈢殑鏁版嵁
+												ExitViewPage: function() {
+
+													$this.loadInitialEvent()
+												}
+											}
+										});
+									} else if (item.action_type == "goback_to_pre_page") {
+										//杩斿洖涓婁竴椤�+										uni.navigateBack({
+											delta: 1, //杩斿洖灞傛暟锛�鍒欎笂涓婇〉
+										});
+									}
+								})
+							} 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);
+					hideLoading()
+					showError(ex, this.translateSys("error") + "8.1")
+				});
+			},
+			async relatedFunction(btn, style, enviroment) {
+				//璺宠浆鍔熻兘鐐�+				try {
+					const defCode = btn.Related_Function?.Def_Code
+					var $this = this;
+					if (
+						defCode == "3018" ||
+						defCode == "3037" ||
+						defCode == "3200" ||
+						defCode == "3201" ||
+						defCode == "3202" ||
+						defCode == "5600" ||
+						defCode == "5601" ||
+						defCode == "5602"
+					) {
 
+						let name = defCode
+						if (defCode == "3018" || defCode == "3037")
+							name = defCode + "_2"
+						var json = {
+							app_id: [btn.Related_Function.ID],
+						};
+						const result = await appGetInfo(json)
+						if ((result || []).length > 0) {
+							var app = result[0];
+							var param = "";
+							var appName = app.list_name || app.name
+								.Name;
+							var paramStr = app.param
+							if (paramStr) {
+								//mobox2鐨刾aram鏄痡son瀛楃涓�+								param = paramStr.replace(/\\/g, "");
+								//mobox3鐨刾aram鏄痓ase64瀛楃涓�+								if (!paramStr.includes('"')) param = Base64.decode(
+									paramStr);
+							}
+							if (!param) {
+								showInfo(this.translate("tip_no_app_param"))
+
+								return;
+							}
+							const attrValues = []
+
+							style.form.items.forEach(item => {
+								if (item.name == "Layout") { //鍒ゆ柇鏄惁鏄爡鏍忔牸寮�+									item.setting.colList.forEach(col => {
+										if (col != null) {
+											attrValues.push({
+												attr: col.fieldId,
+												value: col.value || ""
+											})
+										}
+
+									});
+								} else
+									attrValues.push({
+										attr: item.fieldId,
+										value: item.value || ""
+									})
+							});
+							uni.navigateTo({
+								url: '../modal/' + name + '?param=' +
+									param + "&titlename=" +
+									appName +
+									"&type=relatedFunction&paramValue=" +
+									JSON.stringify(attrValues),
+								events: {
+
+								}
+							});
+						} else {
+							showInfo(this.translate("function_not_exist"))
+
+						}
+
+					} else {
+						showInfo(this.translate("cannot_related_function"))
+
+
+					}
+				} catch (ex) {
+					showError(ex, this.translateSys('error'))
+					return undefined
+				}
 			},
 			ontap(item) { //鎵爜鍔熻兘
 				// var $ele = e;
 				//console.log(e.target)
 				getApp().onScan((result) => {
-					console.log(result.decodedata);
-					item.value = result.decodedata;
+					console.log(result);
+					item.value = result;
 					uni.hideKeyboard();
 					var $this = this;
 					console.log(item);
@@ -626,7 +1007,7 @@
 			},
 
 			onEnterChange(item) { //鍥炶溅锛岀偣鍑绘寜閽紝鍙栨秷鑺傜偣浜嬩欢
-				// console.log(item);
+				console.log(item);
 				let newVal = item.value
 				if (typeof item.value == "string") {
 					newVal = item.value.trim()
@@ -659,8 +1040,9 @@
 			async onChange(event) {
 				try {
 					if (event.id) {
+						showLoading("loading...")
 						var obj_attr = this.head_styledef.form.model;
-						// console.log(obj_attr);
+						console.log(obj_attr);
 						var input_param = Base64.encode(
 							JSON.stringify(
 								Object.keys(obj_attr).map((a) => ({
@@ -690,118 +1072,116 @@
 							input_param: input_param,
 						};
 						runCustomEvent(dataInfo).then(result => {
-							// console.log(result);
-							if (result.ret != 0) {
-								var tip = result.err_info ? typeof result
-									.err_info ==
-									'string' ?
+							console.log(result);
+							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 : 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);
-									}
-									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 ==
-											"set_query_condition") {
-											var value = item.value;
-											$this.wheres = value.condition;
-											$this.orderby = value.order ? value.order :
-												""
-											$this.pageindex = 1;
-											$this.query_id = "";
-											$this.detail1StyleDefList = [];
-											$this.loadDataGetList();
-										}
-									})
-								} else {
-									if (result.info) {
-										uni.showModal({
-											title: this
-												.translateSys(
-													"tip"),
-											content: result.info,
-											showCancel: false,
-											confirmText: this
-												.translateSys(
-													'close')
-										});
+										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) {
+
+									} else if (typeof result.result == 'string') {
+										showInfo(result.result)
+
+									}
+									try {
+										var actionlist = result.action || []
+										for (var j = 0; j < actionlist.length; j++) {
+											var action = actionlist[j];
+											var action_type = action.action_type;
+											var value = action.value;
+
+											if (action_type == "set_query_condition") {
+												$this.wheres = value.condition;
+												$this.orderby = value.order ? value.order : ""
+												$this.pageindex = 1;
+												$this.query_id = "";
+												$this.detail1StyleDefList = [];
+												$this.loadDataGetList();
+											} else if (action_type ==
+												"set_dlg_attr") {
+												$this.setFormValues(action.value)
+											} else if (action_type == "set_subtable_page_content") {
+												if (value.clear_confirm != false && value.clear == true &&
+													$this.detail1StyleDefList.length > 0
+												) { //鍒ゆ柇鏄惁娓呯┖椤电鍐呭,姝e湪鐮佺洏鏄惁鏈夋暟鎹�+													uni.showModal({
+														title: this.translateSys('tip'),
+														content: this.translate(
+															"are_you_sure_clear_data"),
+														cancelText: $this.translateSys('ok'),
+														confirmText: $this.translateSys('cancel'),
+														success: function(res) {
+															if (res.cancel) {
+																$this.detail1StyleDefList = [];
+																$this.viewAceionContent(value);
+															} else if (res.confirm) {
+																$this.detail1StyleDefList = [];
+																$this.viewAceionContent(value);
+															}
+														}
+													});
+												} else {
+													$this.detail1StyleDefList = [];
+													$this.viewAceionContent(value);
+												}
+											}
+										}
+
+									} 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") +
-									"8.1",
-								content: ex.errMsg,
-								showCancel: false,
-								confirmText: this.translateSys(
-									'close')
-							});
+							hideLoading()
+							showError(ex, this.translateSys("error") + "8.1")
 						});
 					}
 				} catch (ex) {
-					var tip = typeof ex == "string" ? ex : ex.message;
-					uni.showModal({
-						title: this.translateSys("error") + "8.2",
-						content: this.translate(
-								'execute_after_change_event_failed') + this
-							.translateSys(
-								"comma") +
-							this.translate('reason') + this.translateSys(
-								"colon") + tip,
-						showCancel: false,
-						confirmText: this.translateSys('close')
-					});
+					hideLoading()
+					showError(ex, this.translateSys('error') + "8.2")
 
 				}
 			},
 			setFormValues(attrs) {
 				const head_styledef = this.head_styledef
-				if (JSON.stringify(attrs) == '{}') {
-					return;
+				if (!Array.isArray(attrs)) {
+					return
 				}
 				console.log(attrs)
 				attrs.forEach(async (attr, key) => {
@@ -888,6 +1268,79 @@
 					head_styledef: head_styledef
 				})
 			},
+			//鍔犺浇宸茬爜鐩樺唴瀹�+			viewAceionContent(data) {
+				var $this = this;
+				if (JSON.stringify(data.content) == '{}') {
+					return;
+				}
+				var styleStr = JSON.stringify($this.detail1_styledef);
+				var detailStyle = JSON.parse(styleStr);
+
+				data.content.forEach(cont => {
+					var detailStyle = JSON.parse(styleStr);
+					if (detailStyle.form) {
+						detailStyle.SelBut_Checked = data.checkbox ?? true;
+
+						detailStyle.form.objId = cont.id;
+						detailStyle.form.htmlobjId = cont.id ? cont.id.replace(/-/g,
+								'')
+							.replace('{', '').replace('}',
+								'') : 'null';
+						detailStyle.form.attrs = cont.attrs;
+						cont.attrs.forEach(attr => {
+							detailStyle.form.items.forEach(ele => {
+								if (ele.name != 'Layout') {
+									if (ele.fieldId == attr.attr)
+										ele.value = attr.value;
+								} else if (ele.name == 'Layout') {
+									ele.setting.colList.forEach(
+										col => {
+											if (col) {
+												if (col.fieldId ==
+													attr.attr)
+													col.value = attr.value;
+											}
+										});
+								}
+							});
+						});
+						//濡傛灉 clear = false 鍒欎笉闇�娓呴櫎锛屾牴鎹甶d鍒ゆ柇鏄惁瀛樺湪锛屼笉瀛樺湪鎻掑叆鍒伴〉闈紝濡傛灉瀛樺湪鐢ㄦ柊鐨勫睘鎬ц鐩�+						if (data.clear == false) {
+							var isflag = true;
+							$this.detail1StyleDefList.forEach((style, index) => {
+								if (style.form.objId == detailStyle.form.objId) {
+									cont.attrs.forEach(attr => {
+										style.form.items.forEach(ele => {
+											if (ele.name != 'Layout') {
+												if (ele.fieldId == attr.attr)
+													ele.value = attr.value;
+											} else if (ele.name == 'Layout') {
+												ele.setting.colList.forEach(
+													col => {
+														if (col) {
+															if (col.fieldId ==
+																attr
+																.attr)
+																col.value =
+																attr.value;
+														}
+													});
+											}
+										});
+									});
+									isflag = false;
+								}
+							});
+							if (isflag) $this.detail1StyleDefList.push(detailStyle); //寰呭垎鎷�+						} else {
+							$this.detail1StyleDefList.push(detailStyle); //寰呭垎鎷�+						}
+					}
+				});
+
+
+			},
 			//鐐逛腑琛ㄥ崟
 			onPanelClick(value) { //鐐瑰嚮闈㈡澘楂樹寒鏄剧ず
 				// console.log(value);
@@ -901,130 +1354,78 @@
 			async runCustomEvent(dataInfo) {
 				try {
 					var $this = this;
-					runCustomEvent(dataInfo).then(result => {
-						console.log(result);
+					const result = await runCustomEvent(dataInfo)
+					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'
-												)
-										});
-									}
-								});
-							} else {
-								if (result.info) {
-									uni.showModal({
-										title: this
-											.translateSys(
-												"tip"),
-										content: result.info,
-										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);
 							}
 						}
-					}).catch(ex => {
-						// console.log(ex);
-						uni.showModal({
-							title: this.translateSys("error") +
-								"9.1",
-							content: ex.errMsg,
-							showCancel: false,
-							confirmText: this.translateSys(
-								'close')
-						});
-					});
+						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) {
+
+							} else if (typeof result.result == 'string') {
+								showInfo(result.result)
+
+							}
+
+							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) {
-					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")
 
 				}
 			},
@@ -1320,7 +1721,7 @@
 		.dv-panel-bkcolor {
 			border: 1px solid #ccc;
 			border-radius: 5px;
-			background-color: #F5F5F5;
+			background-color: #F8F8F8;
 		}
 
 		.dv-panel {
@@ -1349,17 +1750,33 @@
 
 
 		.dv-panel-button {
+			width: 100%;
+			min-height: 16px;
+			padding-bottom: 10rpx;
+			display: flex;
+			flex-direction: row;
+			// justify-content: right;
+
+			button {
+				line-height: 1.6;
+				// border: none;
+				// margin-right: 10rpx;
+				// text-align: center;
+			}
+		}
+
+		.dv-panel-right-button {
 			display: inline-block;
-		}
 
-		.dv-panel-button a i {
-			font-size: 36rpx;
-		}
+			a i {
+				font-size: 36rpx;
+			}
 
-		.dv-panel-button button {
-			height: 50rpx;
-			font-size: 26rpx;
-			padding: 0 24rpx;
+			button {
+				height: 50rpx;
+				font-size: 26rpx;
+				padding: 0 24rpx;
+			}
 		}
 
 		.bk-active {

--
Gitblit v1.9.1