From 49dfdd3bf265db28d38167f34e9aabfdd3e8e5db Mon Sep 17 00:00:00 2001
From: cuiqian2004 <cuiqian2004@163.com>
Date: 星期五, 17 十月 2025 10:16:58 +0800
Subject: [PATCH] imagebutton

---
 pages/modal/form/index.vue |  638 +++++++++++++++++++++++++--------------------------------
 1 files changed, 279 insertions(+), 359 deletions(-)

diff --git a/pages/modal/form/index.vue b/pages/modal/form/index.vue
index baa3869..4fa48e1 100644
--- a/pages/modal/form/index.vue
+++ b/pages/modal/form/index.vue
@@ -506,7 +506,16 @@
 				}
 			},
 			onClick(item) {
-				this.focusFieldId = item.fieldId
+				if (item.name == "Input" || item.name == "InputNumber" || item.name == "Textarea") {
+					this.focusFieldId = item.fieldId
+				} else if (item.name == "ImageButton") {
+					var onClickEvent = item.bind.onClickEvent; //鍚庡浘鏍囩偣鍑诲洖璋�+					if (!onClickEvent.id) {
+						showInfo(this.translate('icon_click_event_empty'))
+						return;
+					}
+					this.onChange(onClickEvent);
+				}
 			},
 			ontap(item) { //鎵爜鍔熻兘
 				// var $ele = e;
@@ -642,7 +651,7 @@
 				// open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦�uni-popup 缁勪欢涓婄粦瀹�type灞炴�
 				this.$refs.popup.open(this.popupType);
 
-				this.dataObjRunCustomEvent_Return(onSuffixClickEvent.id, '', onSuffixClickCallbackEvent.id,
+				this.dataObjRunCustomEvent_Return(onSuffixClickEvent.id, onSuffixClickCallbackEvent.id,
 					item);
 			},
 
@@ -697,85 +706,7 @@
 						};
 						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 (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 ==
-												"set_dlg_current_edit_attr"
-											) {
-
-												if ($this
-													.focusOldFieldId ==
-													item.value) {
-													$this.setData({
-														focusFieldId: ""
-													})
-												} else {
-													$this.setData({
-														focusFieldId: $this
-															.focusOldFieldId
-													})
-												}
-												$this.$nextTick(() => {
-													$this.setData({
-														focusFieldId: item
-															.value
-													})
-												});
-											} else if (item.action_type ==
-												"set_dlg_attr") {
-												// value = {"attr":"xxx", "value":"xxx"}
-												var data = item.value;
-												$this.setFormValues(data)
-											} else if (action.action_type ==
-												'set_dlg_attr_show') {
-												var data = action.value;
-
-												$this.setFormItemVisible(data)
-											}
-										});
-
-									} 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
-									}
-								}
-
-							}
+							$this.onFormEventResult(result, "")
 
 						}).catch(ex => {
 							// console.log(ex);
@@ -786,7 +717,268 @@
 					showError(ex, this.translateSys('tip') + "4.2")
 				}
 			},
+			async onFormEventResult(data, button_callback, item) {
+				try {
+					const $this = this
+					var enviroment = {
+						'function': '3000', // 鍔熻兘鐐圭紪鍙�+						cls_id: $this.clsId, // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇�+						'button': 'top', // top/bottom
+						button_name: $this.translateSys('add2'),
+						master: {
+							cls_id: $this.clsId, // button=bottom鏃�master鐨刢ls_id
+							//obj_id: ''  // button=bottom鏃�master鐨刼bj_id
+						}
+					};
+					if (data.ret != 0 && data.ret != 1) {
+						let cls_name = data.event_info?.cls_name
+						let event_name = data.event_info?.event_name
+						tip = data.err_info ? typeof data.err_info == 'string' ? data.err_info : data.err_info
+							.join('\n') : ''
 
+						if (cls_name && event_name) tip = `鎵ц鈥�{cls_name}鈥濇暟鎹被鐨勨�${event_name}鈥濊剼鏈椂杩斿洖閿欒锛�{tip}`
+						if (data.ret == 801) showInfo(tip)
+						else showError(`${tip}锛屾彁绀猴細${data.ret}`, this.translateSys('tip'))
+						this.saving = false
+						return false
+					} else {
+						var tip = data.info ? typeof data.info == 'string' ? data.info :
+							data.info.join('\n') : '';
+						tip = tip || data.err_info
+						let time = data.info_time || 0
+						if (time)
+							showError(tip, this.translateSys('tip'))
+						else
+							showInfo(tip)
+						showInfo(tip)
+						if ([0, 2, 3, 4, -1].includes(data.result_type)) {
+							if (data.result_type == 2) {
+
+							} else if (typeof data.result == 'string') {
+								showInfo(data.result)
+
+							}
+							try {
+								var enviroment = JSON.stringify(enviroment);
+								var actions = data.action || []
+								for (var i = 0; i < actions.length; i++) {
+									var action = actions[i];
+									console.log(action)
+									var val = action.value;
+									if (action.action_type ==
+										"set_dlg_current_edit_attr"
+									) {
+
+										if ($this
+											.focusOldFieldId ==
+											action.value) {
+											$this.setData({
+												focusFieldId: ""
+											})
+										} else {
+											$this.setData({
+												focusFieldId: $this
+													.focusOldFieldId
+											})
+										}
+										$this.$nextTick(() => {
+											$this.setData({
+												focusFieldId: action
+													.value
+											})
+										});
+									} else if (action.action_type ==
+										"set_dlg_attr") {
+										// value = {"attr":"xxx", "value":"xxx"}
+										var data = action.value;
+										$this.setFormValues(data)
+									} else if (action.action_type ==
+										'set_dlg_attr_show') {
+										var data = action.value;
+
+										$this.setFormItemVisible(data)
+									} else if (action.action_type == 'set_global_attr') {
+										$this.global_attr = action.value || [];
+									} else if (action.action_type == 'open_panel') {
+										var d = dialog({
+											title: '<i class="ace-icon fa fa-info-circle"></i> ' +
+												$this.translateSys("tip"),
+											content: $this.translateSys(
+													"quotation_mark_left") +
+												action
+												.action_type + $this.translateSys(
+													"quotation_mark_right") + $this
+												.translate(
+													"tip_action_unprocessed")
+										});
+										d.show();
+									} else if (action.action_type == 'open_select_userdlg') {
+										var style = val.style;
+										// style == 'user' ? '閫夋嫨浜哄憳' : style == 'department' ? '閫夋嫨閮ㄩ棬' : style == 'role' ? '閫夋嫨瑙掕壊' : ''
+										var param = {
+											item: item,
+											button_callback: button_callback,
+											req: req,
+											data_attr: ""
+										}
+										uni.navigateTo({
+											url: '../selpsn/index?mulit=false&param=' +
+												JSON
+												.stringify(
+													param),
+											events: {
+												AddPer(data, param) {
+													// console.log(param);
+													console.log(data);
+													var callback_eventid = param
+														.button_callback
+														.trim();
+													var info = {
+														eventid: callback_eventid,
+														edtype: "0",
+														projectid: '',
+														rclsid: '',
+														robjid: '',
+														userlogin: '',
+														clsid: $this.clsId,
+														objid: "",
+														attr: param.req,
+														inputparameter: data,
+														dataJson: [],
+													}
+													$this.DataObjRunCustomEvent(info,
+														param
+														.data_attr);
+												}
+											}
+										});
+									} else if (action.action_type == 'open_data_query_dlg') {
+										var d = dialog({
+											title: '<i class="ace-icon fa fa-info-circle"></i> ' +
+												$this.translateSys("tip"),
+											content: $this.translateSys(
+													"quotation_mark_left") +
+												action
+												.action_type + $this.translateSys(
+													"quotation_mark_right") + $this
+												.translate(
+													"tip_action_unprocessed")
+										});
+										d.show();
+									} else if (action.action_type == 'open_common_dlg') {
+
+										if (val.common_dlg_id == 'check_list') {
+											$this.setData({
+												check_list: val.config
+											})
+											if (val.config.appear_style ==
+												'sideslip') //鍒ゆ柇鏄惁鏄晶婊�+												$this.setData({
+													popupType: "right"
+												})
+											else
+												$this.setData({
+													popupType: "center"
+												})
+											// open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦�uni-popup 缁勪欢涓婄粦瀹�type灞炴�
+											$this.$refs.popup.open($this.popupType);
+											var popupParam = {
+												item: item,
+												button_callback: button_callback,
+												req: req,
+												data_attr: ""
+											}
+											$this.setData({
+												popupParam: popupParam
+											})
+										}
+									} else if (action.action_type ==
+										'open_project_query_dlg') {
+										//console.log(action.value.select_range);
+										//console.log(action.value.mulit_select);
+										var priRel = '-1';
+										if (action.value.select_range == '鍏ㄩ儴鐩稿叧')
+											priRel = '0';
+										else if (action.value.select_range == '鎴戣礋璐g殑椤圭洰')
+											priRel = '1';
+										else if (action.value.select_range == '鎴戝垱寤虹殑')
+											priRel = '2';
+										else if (action.value.select_range == '鎴戝弬涓庣殑' || action
+											.value
+											.select_range == '鎴戝弬鍔犵殑')
+											priRel = '3';
+										else if (action.value.select_range == '鎴戝叧娉ㄧ殑')
+											priRel = '4';
+										else if (action.value.select_range == '鎴戜笅灞炵殑椤圭洰')
+											priRel = '5';
+										var param_ = {
+											item: item,
+											button_callback: button_callback,
+											req: req
+										}
+										uni.navigateTo({
+											url: '../selPrj/index?relation=' + priRel +
+												'&param=' +
+												JSON.stringify(param_),
+											events: {
+												AddPer(data, param) {
+													var attr = param.item.fieldId;
+													$this.head_styledef.form.model[
+															attr] =
+														data[0].ID +
+														';' + data[0].Name;
+
+													// $this.classAttrList[param.index].Attr[param.iindex].Value=data[0].Name;
+													// $this.classAttrList[param.index].Attr[param.iindex].ValID=data[0].ID+';'+data[0].Name;
+													var callback_eventid = param
+														.button_callback
+														.trim();
+													if (callback_eventid) {
+														var info = {
+															eventid: callback_eventid,
+															edtype: "2",
+															projectid: data[0].ID,
+															rclsid: "",
+															robjid: "",
+															userlogin: "",
+															clsid: $this.clsId,
+															objid: "",
+															attr: param.req,
+															dataJson: [],
+														}
+
+														$this.DataObjRunCustomEvent(
+															info);
+													}
+												}
+											}
+										});
+									} else {
+										showInfo($this.translateSys(
+												"quotation_mark_left") +
+											action.action_type + $this
+											.translateSys(
+												"quotation_mark_right") + $this
+											.translate(
+												"tip_action_unprocessed"))
+
+									}
+								}
+
+							} catch (ex) {
+								let actionList = (data.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) {
+					showError(ex, this.translateSys("error") + "10.1")
+				}
+			},
 			setFormValues(attrs) {
 				console.log(attrs)
 				const head_styledef = this.head_styledef
@@ -944,6 +1136,8 @@
 
 			async DataObjRunCustomEvent(info, data_attr) {
 				var $this = this;
+				if (!info.eventid)
+					return
 				var enviroment = {
 					'function': '3000', // 鍔熻兘鐐圭紪鍙� 					cls_id: this.clsId, // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇�@@ -1003,79 +1197,15 @@
 				console.log(dataInfo);
 				// return;
 				runCustomEvent(dataInfo).then(data => {
-					if (data.ret != 0 && data.ret != 1) {
-						let cls_name = data.event_info?.cls_name
-						let event_name = data.event_info?.event_name
-						tip = data.err_info ? typeof data.err_info == 'string' ? data.err_info : data.err_info
-							.join('\n') : ''
-
-						if (cls_name && event_name) tip = `鎵ц鈥�{cls_name}鈥濇暟鎹被鐨勨�${event_name}鈥濊剼鏈椂杩斿洖閿欒锛�{tip}`
-						if (data.ret == 801) showInfo(tip)
-						else showError(`${tip}锛屾彁绀猴細${data.ret}`, this.translateSys('tip'))
-						this.saving = false
-						return false
-					} else {
-						var tip = data.info ? typeof data.info == 'string' ? data.info :
-							data.info.join('\n') : '';
-						tip = tip || data.err_info
-						let time = data.info_time || 0
-						if (time)
-							showError(tip, this.translateSys('tip'))
-						else
-							showInfo(tip)
-						if ([0, 2, 3, 4, -1].includes(data.result_type)) {
-							if (data.result_type == 2) {
-								$this.setFormValues(data.result || [])
-							} else if (typeof data.result == 'string') {
-								showInfo(data.result)
-
-							}
-							try {
-								var actionlist = data.action || []
-								for (var i = 0; i < actionlist.length; i++) {
-									var action = actionlist[i];
-									if (action.action_type == 'set_dlg_attr') {
-										var result = action.value;
-										$this.setFormValues(result)
-									} else if (action.action_type == 'set_dlg_attr_show') {
-										var result = action.value;
-
-										$this.setFormItemVisible(result)
-									} else if (action.action_type == 'set_global_attr') {
-										$this.global_attr = action.value || [];
-									} else {
-										uni.showModal({
-											title: this.translateSys("tip"),
-											content: this.translateSys(
-													"quotation_mark_left") +
-												action
-												.action_type + this.translateSys(
-													"quotation_mark_right") + this
-												.translate(
-													"tip_action_unprocessed")
-										});
-									}
-								}
-
-							} catch (ex) {
-								let actionList = (data.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
-							}
-						}
-
-
-					}
+					$this.onFormEventResult(data, "")
 
 				}).catch(ex => {
 					// console.log(ex);
 					showError(ex, this.translateSys('error') + "3.1")
 				});
 			},
-			dataObjRunCustomEvent_Return(eventid, data_attr, button_callback, item) {
-				console.log("dataObjRunCustomEvent_Return", eventid, data_attr, button_callback)
+			dataObjRunCustomEvent_Return(eventid, button_callback, item) {
+				console.log("dataObjRunCustomEvent_Return", eventid, button_callback)
 				const $this = this
 				var enviroment = {
 					'function': '3000', // 鍔熻兘鐐圭紪鍙�@@ -1132,217 +1262,7 @@
 				console.log(dataInfo);
 				// return;
 				runCustomEvent(dataInfo).then(data => {
-					if (data.ret != 0 && data.ret != 1) {
-						let cls_name = data.event_info?.cls_name
-						let event_name = data.event_info?.event_name
-						tip = data.err_info ? typeof data.err_info == 'string' ? data.err_info : data.err_info
-							.join('\n') : ''
-
-						if (cls_name && event_name) tip = `鎵ц鈥�{cls_name}鈥濇暟鎹被鐨勨�${event_name}鈥濊剼鏈椂杩斿洖閿欒锛�{tip}`
-						if (data.ret == 801) showInfo(tip)
-						else showError(`${tip}锛屾彁绀猴細${data.ret}`, this.translateSys('tip'))
-						this.saving = false
-						return false
-					} else {
-						var tip = data.info ? typeof data.info == 'string' ? data.info :
-							data.info.join('\n') : '';
-						tip = tip || data.err_info
-						let time = data.info_time || 0
-						if (time)
-							showError(tip, this.translateSys('tip'))
-						else
-							showInfo(tip)
-						showInfo(tip)
-						if ([0, 2, 3, 4, -1].includes(data.result_type)) {
-							if (data.result_type == 2) {
-
-							} else if (typeof data.result == 'string') {
-								showInfo(data.result)
-
-							}
-							try {
-								var actions = data.action || []
-								for (var i = 0; i < actions.length; i++) {
-									var action = actions[i];
-									console.log(action)
-									var val = action.value;
-									var enviroment = JSON.stringify(enviroment);
-
-									if (action.action_type == 'open_panel') {
-										var d = dialog({
-											title: '<i class="ace-icon fa fa-info-circle"></i> ' +
-												$this.translateSys("tip"),
-											content: $this.translateSys(
-													"quotation_mark_left") +
-												action
-												.action_type + $this.translateSys(
-													"quotation_mark_right") + $this
-												.translate(
-													"tip_action_unprocessed")
-										});
-										d.show();
-									} else if (action.action_type == 'open_select_userdlg') {
-										var style = val.style;
-										// style == 'user' ? '閫夋嫨浜哄憳' : style == 'department' ? '閫夋嫨閮ㄩ棬' : style == 'role' ? '閫夋嫨瑙掕壊' : ''
-										var param = {
-											item: item,
-											button_callback: button_callback,
-											req: req,
-											data_attr: data_attr
-										}
-										uni.navigateTo({
-											url: '../selpsn/index?mulit=false&param=' +
-												JSON
-												.stringify(
-													param),
-											events: {
-												AddPer(data, param) {
-													// console.log(param);
-													console.log(data);
-													var callback_eventid = param
-														.button_callback
-														.trim();
-													var info = {
-														eventid: callback_eventid,
-														edtype: "0",
-														projectid: '',
-														rclsid: '',
-														robjid: '',
-														userlogin: '',
-														clsid: $this.clsId,
-														objid: "",
-														attr: param.req,
-														inputparameter: data,
-														dataJson: [],
-													}
-													$this.DataObjRunCustomEvent(info,
-														param
-														.data_attr);
-												}
-											}
-										});
-									} else if (action.action_type == 'open_data_query_dlg') {
-										var d = dialog({
-											title: '<i class="ace-icon fa fa-info-circle"></i> ' +
-												$this.translateSys("tip"),
-											content: $this.translateSys(
-													"quotation_mark_left") +
-												action
-												.action_type + $this.translateSys(
-													"quotation_mark_right") + $this
-												.translate(
-													"tip_action_unprocessed")
-										});
-										d.show();
-									} else if (action.action_type == 'open_common_dlg') {
-
-										if (val.common_dlg_id == 'check_list') {
-											$this.setData({
-												check_list: val.config
-											})
-											if (val.config.appear_style ==
-												'sideslip') //鍒ゆ柇鏄惁鏄晶婊�-												$this.setData({
-													popupType: "right"
-												})
-											else
-												$this.setData({
-													popupType: "center"
-												})
-											// open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦�uni-popup 缁勪欢涓婄粦瀹�type灞炴�
-											$this.$refs.popup.open($this.popupType);
-											var popupParam = {
-												item: item,
-												button_callback: button_callback,
-												req: req,
-												data_attr: data_attr
-											}
-											$this.setData({
-												popupParam: popupParam
-											})
-										}
-									} else if (action.action_type ==
-										'open_project_query_dlg') {
-										//console.log(action.value.select_range);
-										//console.log(action.value.mulit_select);
-										var priRel = '-1';
-										if (action.value.select_range == '鍏ㄩ儴鐩稿叧')
-											priRel = '0';
-										else if (action.value.select_range == '鎴戣礋璐g殑椤圭洰')
-											priRel = '1';
-										else if (action.value.select_range == '鎴戝垱寤虹殑')
-											priRel = '2';
-										else if (action.value.select_range == '鎴戝弬涓庣殑' || action
-											.value
-											.select_range == '鎴戝弬鍔犵殑')
-											priRel = '3';
-										else if (action.value.select_range == '鎴戝叧娉ㄧ殑')
-											priRel = '4';
-										else if (action.value.select_range == '鎴戜笅灞炵殑椤圭洰')
-											priRel = '5';
-										var param_ = {
-											item: item,
-											button_callback: button_callback,
-											req: req
-										}
-										uni.navigateTo({
-											url: '../selPrj/index?relation=' + priRel +
-												'&param=' +
-												JSON.stringify(param_),
-											events: {
-												AddPer(data, param) {
-													var attr = param.item.fieldId;
-													$this.head_styledef.form.model[
-															attr] =
-														data[0].ID +
-														';' + data[0].Name;
-
-													// $this.classAttrList[param.index].Attr[param.iindex].Value=data[0].Name;
-													// $this.classAttrList[param.index].Attr[param.iindex].ValID=data[0].ID+';'+data[0].Name;
-													var callback_eventid = param
-														.button_callback
-														.trim();
-													if (callback_eventid) {
-														var info = {
-															eventid: callback_eventid,
-															edtype: "2",
-															projectid: data[0].ID,
-															rclsid: "",
-															robjid: "",
-															userlogin: "",
-															clsid: $this.clsId,
-															objid: "",
-															attr: param.req,
-															dataJson: [],
-														}
-
-														$this.DataObjRunCustomEvent(
-															info);
-													}
-												}
-											}
-										});
-									} else {
-										showInfo($this.translateSys(
-												"quotation_mark_left") +
-											action.action_type + $this
-											.translateSys(
-												"quotation_mark_right") + $this
-											.translate(
-												"tip_action_unprocessed"))
-
-									}
-								}
-
-							} catch (ex) {
-								let actionList = (data.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
-							}
-						}
-					}
+					$this.onFormEventResult(data, button_callback, item)
 
 				}).catch(ex => {
 					showError(ex, this.translateSys('tip') + "5.1")

--
Gitblit v1.9.1