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/3200_view.vue |  637 ++++++++++++++++++---------------------------------------
 1 files changed, 205 insertions(+), 432 deletions(-)

diff --git a/pages/modal/3200_view.vue b/pages/modal/3200_view.vue
index da83c89..ffb290d 100644
--- a/pages/modal/3200_view.vue
+++ b/pages/modal/3200_view.vue
@@ -1,152 +1,15 @@
 <template>
-	<view class="uni-page-modal-3200-view">
+	<view class="uni-page-modal-3200-view" :class="largeMode?'large-mode':''">
 		<view class="v-content">
 			<view class="dv-panel dv-panel-bkcolor">
 				<div class="dv-panel-input">
 					<!-- HTML椤甸潰绫诲瀷鏄剧ず -->
-					<div class="dv-viewHtml-Panel" v-if="ViewHtml_Panel" v-html="ViewHtml_Panel">
-						<!-- <div>
-						  <label class="item-label">浠诲姟缂栫爜:</label>
-						  <span class="item-span">TA240318-00005</span>
-						</div> -->
-					</div>
+					<view class="dv-viewHtml-Panel" v-if="ViewHtml_Panel" v-html="ViewHtml_Panel"></view>
+
 					<!-- 鑷畾涔夎〃鍗曠被鍨嬫樉绀�-->
 					<div v-if="!ViewHtml_Panel">
-						<div v-for="(item,index) in detail2_styledef.form.items">
-							<!-- 鏅�甯冨眬 -->
-							<view v-if="item.name!='Layout'">
-								<text class="txt_title" :style="{'width':item.labelWidth+'px'}">{{item.label}}锛�/text>
-								<span class="form-item-span"
-									v-if="item.disabled">{{item.value2?'#'+item.value+'#'+item.value2:item.value}}</span>
-								<!-- 鏂囨湰妗�鏁板瓧妗�-->
-								<view class="dv_input"
-									v-if="(item.name=='Input' || item.name=='InputNumber') && !item.disabled">
-									<text v-if="item.setting.prefix" class="uni-icon" :class="[item.setting.prefix]"
-										@change="onChange(item)">&#xe568;</text>
-									<input class="uni-input" :class="item.disabled?'input-disabled':''"
-										:type="item.name=='Input'?'text':item.name=='InputNumber'?'number':'text'"
-										v-model="item.value" :disabled="item.disabled" :placeholder="item.placeholder"
-										:style="{'width':item.setting.prefix && item.setting.suffix?'78%':item.setting.prefix || item.setting.suffix?'87%':'96%'}"
-										:focus="focusMateria" @focus="ontap(item)" @blur="onevent(item)" />
-									<text v-if="item.setting.suffix" class="uni-icon" :class="[item.setting.suffix]"
-										@click="onChange(item)">&#xe568;</text>
-								</view>
-								<!-- 涓嬫媺妗�鍗曢� item.useDict?item.dict:item.selections-->
-								<uni-data-select id="dv_select" v-if="item.name=='Select' && !item.disabled"
-									:class="item.disabled?'input-disabled':''" v-model="item.value"
-									:localdata="item.dict" @change="onChange(item)" :disabled="item.disabled"
-									:clear="false"></uni-data-select>
-								<!-- 澶氳鏂囨湰 -->
-								<view class="input-wrapper" v-if="item.name=='Textarea' && !item.disabled">
-									<textarea class="uni-input" :value="item.value"
-										:class="item.disabled?'input-disabled':''" :placeholder="item.placeholder"
-										@blur="onModelValue(item)" style="height:60px;" :style="{'width':'96%'}"
-										:disabled="item.disabled"></textarea>
-								</view>
-								<!-- 澶嶉�妗�-->
-								<checkbox-group class="check_rememberPwd" v-if="item.name=='Checkbox'"
-									:class="item.disabled?'input-disabled':''" @change="onModelValue(item)"
-									:data-ischeck="item.value" :disabled="item.disabled"
-									:style="{'margin-left':'10rpx'}">
-									<label>
-										<checkbox :value="item.value" :checked="item.value" />
-										<text>{{item.label}}</text>
-									</label>
-								</checkbox-group>
-								<!-- 鍗曢�妗�-->
-								<radio-group class="check_rememberPwd" v-if="item.name=='Radio'"
-									:class="item.disabled?'input-disabled':''" :disabled="item.disabled" :style="{'margin-left':'10rpx'}"
-									@change="onModelValue(item)">
-									<label v-for="(item2) in item.selections" :key="item2.value">
-										<radio :value="item2.value" :checked="item2.value === item.value" />
-										<text>{{item2.label}}</text>
-									</label>
-								</radio-group>
-								<!-- Switch寮�叧 -->
-								<switch v-if="item.name=='Switch'" :class="item.disabled?'input-disabled':''"
-									:disabled="item.disabled" v-model="item.value" @change="onModelValue(item)"
-									:style="{'margin-left':'10rpx'}" />
-								<!-- 鏃ユ湡鏃堕棿 -->
-								<view class="input-wrapper"
-									v-if="(item.name=='TimePicker' || item.name=='DatePicker') && !item.disabled">
-									<picker mode="date" class="date_iput" :class="item.disabled?'input-disabled':''"
-										:disabled="item.disabled" :value="item.value" @change="onModelValue(item)">
-										<view class="picker">{{item.value}}</view>
-									</picker>
-								</view>
-							</view>
-							<!-- 鏍呮牸甯冨眬 -->
-							<uni-row class="demo-uni-row" v-if="item.name=='Layout'">
-								<uni-col v-for="(cols,key) in item.setting.colList"
-									:span="item.setting.spanList?item.setting.spanList[key]:24 / item.setting.col">
-									<view v-if="cols!=null">
-										<text class="txt_title"
-											:style="{'width':cols.labelWidth+'px'}">{{cols.label}}锛�/text>
-										<span class="form-item-span"
-											v-if="cols.disabled">{{cols.value2?'#'+cols.value+'#'+cols.value2:cols.value}}</span>
-										<view class="dv_input"
-											v-if="(cols.name=='Input' || cols.name=='InputNumber') && !cols.disabled">
-											<text v-if="cols.setting.prefix" class="uni-icon"
-												:class="[cols.setting.prefix]" @change="onChange(cols)">&#xe568;</text>
-											<input class="uni-input" :class="cols.disabled?'input-disabled':''"
-												:type="cols.name=='Input'?'text':cols.name=='InputNumber'?'number':'text'"
-												v-model="cols.value" :disabled="cols.disabled"
-												:placeholder="cols.placeholder"
-												:style="{'width':cols.setting.prefix && cols.setting.suffix?'78%':cols.setting.prefix || cols.setting.suffix?'87%':'96%'}"
-												:focus="focusMateria" @focus="ontap(cols)" @blur="onevent(cols)" />
-											<text v-if="cols.setting.suffix" class="uni-icon"
-												:class="[cols.setting.suffix]" @click="onChange(cols)">&#xe568;</text>
-										</view>
-										<!-- 涓嬫媺妗�鍗曢� cols.useDict?cols.dict:cols.selections-->
-										<uni-data-select id="dv_select" v-if="cols.name=='Select' && !cols.disabled"
-											:class="cols.disabled?'input-disabled':''" v-model="cols.value"
-											:localdata="cols.dict" @change="onChange(cols)" :disabled="cols.disabled"
-											:clear="false"></uni-data-select>
-										<!-- 澶氳鏂囨湰 -->
-										<view class="input-wrapper" v-if="cols.name=='Textarea' && !cols.disabled">
-											<textarea class="uni-input" :value="cols.value"
-												:class="cols.disabled?'input-disabled':''"
-												:placeholder="cols.placeholder" @blur="onModelValue(cols)"
-												style="height:60px;" :style="{'width':'96%'}"
-												:disabled="cols.disabled"></textarea>
-										</view>
-										<!-- 澶嶉�妗�-->
-										<checkbox-group class="check_rememberPwd" v-if="cols.name=='Checkbox'"
-											:class="cols.disabled?'input-disabled':''" :disabled="item.disabled"
-											@change="onModelValue(cols)" :data-ischeck="cols.value"
-											:style="{'margin-left':'10rpx'}">
-											<label>
-												<checkbox :value="cols.value" :checked="cols.value" />
-												<text>{{cols.label}}</text>
-											</label>
-										</checkbox-group>
-										<!-- 鍗曢�妗�-->
-										<radio-group class="check_rememberPwd" v-if="cols.name=='Radio'"
-											:class="cols.disabled?'input-disabled':''" :disabled="cols.disabled" :style="{'margin-left':'10rpx'}"
-											@change="onModelValue(cols)">
-											<label v-for="(cols2) in cols.selections" :key="cols2.value">
-												<radio :value="cols2.value" :checked="cols2.value === cols.value" />
-												<text>{{cols2.label}}</text>
-											</label>
-										</radio-group>
-										<!-- Switch寮�叧 -->
-										<switch v-if="cols.name=='Switch'" :class="cols.disabled?'input-disabled':''"
-											:disabled="item.disabled" v-model="cols.value" @change="onModelValue(cols)"
-											:style="{'margin-left':'10rpx'}" />
-										<!-- 鏃ユ湡鏃堕棿 -->
-										<view class="input-wrapper"
-											v-if="(cols.name=='TimePicker' || cols.name=='DatePicker') && !cols.disabled">
-											<picker mode="date" class="date_iput"
-												:class="cols.disabled?'input-disabled':''" :disabled="item.disabled"
-												:value="cols.value" @change="onModelValue(cols)">
-												<view class="picker">{{cols.value}}</view>
-											</picker>
-										</view>
+						<OIForm :form="detail2_styledef.form" viewMode></OIForm>
 
-									</view>
-								</uni-col>
-							</uni-row>
-						</div>
 					</div>
 				</div>
 			</view>
@@ -162,7 +25,7 @@
 			<view class="uni-padding-wrap" v-if="param.ViewPage.Page_Button.length>2">
 				<view class="uni-btn-v">
 					<a @tap="actionSheetTap">
-						<Icon class="mobox-normal-more" />
+						<text class="mobox-normal-more" />
 					</a>
 				</view>
 			</view>
@@ -171,8 +34,16 @@
 </template>
 
 <script>
-	import Base64 from '../../components/js-base64/base64.js'
+	import {
+		Base64
+	} from '@/js/Base64.js';
 	import classUtils from "@/js/utils.js"
+	import {
+		showInfo,
+		showError,
+		showLoading,
+		hideLoading
+	} from "@/js/Page.js"
 	import {
 		appGetInfo,
 		dictGetInfo
@@ -182,14 +53,17 @@
 		runCustomEvent,
 		dataObjQuery
 	} from "@/api/data.js"
+	import OIForm from '@/components/oi-form/index.vue'
+	import buttonClickMixin from '@/mixins/button-click.js';
 
 	export default {
-		modules: {
-			Base64,
+		mixins: [buttonClickMixin],
+		components: {
+			OIForm
 		},
 		onBackPress(e) {
 			// console.log("鐩戝惉杩斿洖鎸夐挳浜嬩欢",e);
-			var eventChannel = this.$scope.eventChannel;
+			const eventChannel = this.getOpenerEventChannel();
 			// const eventChannel = this.getOpenerEventChannel();
 			eventChannel.emit('ExitViewEvent', "");
 			// uni.navigateBack({
@@ -199,6 +73,7 @@
 		},
 		data() {
 			return {
+				largeMode: getApp().globalData.largeMode || false,
 				title: this.translateSys('add2'),
 				param: {},
 				styleDef: {
@@ -225,53 +100,56 @@
 		},
 		async onLoad(options) {
 			// console.log(options);
-			uni.setNavigationBarTitle({
-				title: options.titlename
-			}); //璁剧疆椤堕儴鏍囬 
-			this.$data.title = options.titlename;
-			this.$data.param = JSON.parse(options.param);
-			console.log(this.$data.param);
-			this.$data.styleDef = JSON.parse(options.style);
-			// console.log(this.$data.styleDef);
-			if (this.param.ViewPage.View_UIDef.ui_type == "HTML椤甸潰") {
-				// HTML椤甸潰
-				//鑾峰彇鏁版嵁绫荤殑HTML椤甸潰
-				this.Html_UIstyleGetInfo(this.param.DataCls.id, this.param.ViewPage.View_UIDef.id, 'viewPage');
-			} else {
-				this.Detail2_UIstyleGetInfo(this.param.DataCls.id, this.param.ViewPage.View_UIDef.id);
-			}
-
-
-			//杩涘叆椤甸潰鍚庝簨浠�-			var eventid = this.param.ViewPage.Enter_View_Event?.id;
-			if (eventid) {
-				try {
-					var obj_attr = {
-						'S_ID': this.styleDef.form.objId
-					};
-					this.styleDef.form.attrs.forEach((attr) => {
-						obj_attr[attr.name] = attr.value;
-					});
-					// console.log(obj_attr);
-					var input_param = Base64.encode(JSON.stringify(obj_attr));
-					this.runCustomEvent({
-						ed_type: 0,
-						start_transaction: true,
-						class_id: this.param.DataCls.id,
-						event_id: eventid,
-						data_obj_id: this.styleDef.form.objId,
-						obj_attr,
-						input_param,
-					});
-				} catch (ex) {
-					var tip = typeof ex == "string" ? ex : ex.message;
-					uni.showModal({
-						title: this.translateSys("error"),
-						content: tip,
-						showCancel: false,
-						confirmText: this.translateSys('cancel')
-					});
+			try {
+				showLoading("loading...")
+				uni.setNavigationBarTitle({
+					title: options.titlename
+				}); //璁剧疆椤堕儴鏍囬 
+				this.title = options.titlename;
+				this.param = JSON.parse(options.param);
+				console.log(this.param);
+				this.styleDef = JSON.parse(options.style);
+				// console.log(this.styleDef);
+				if (this.param.ViewPage.View_UIDef.ui_type == "HTML椤甸潰") {
+					// HTML椤甸潰
+					//鑾峰彇鏁版嵁绫荤殑HTML椤甸潰
+					await this.Html_UIstyleGetInfo(this.param.DataCls.id, this.param.ViewPage.View_UIDef.id,
+						'viewPage');
+				} else {
+					await this.Detail2_UIstyleGetInfo(this.param.DataCls.id, this.param.ViewPage.View_UIDef.id);
 				}
+
+
+				//杩涘叆椤甸潰鍚庝簨浠�+				var eventid = this.param.ViewPage.Enter_View_Event?.id;
+				if (eventid) {
+					try {
+						var obj_attr = {
+							'S_ID': this.styleDef.form.objId
+						};
+						this.styleDef.form.attrs.forEach((attr) => {
+							obj_attr[attr.name] = attr.value;
+						});
+						// console.log(obj_attr);
+						var input_param = Base64.encode(JSON.stringify(obj_attr));
+						await this.runCustomEvent({
+							ed_type: 0,
+							start_transaction: true,
+							class_id: this.param.DataCls.id,
+							event_id: eventid,
+							data_obj_id: this.styleDef.form.objId,
+							obj_attr,
+							input_param,
+						});
+					} catch (ex) {
+						showError(ex, this.translateSys('error'))
+					}
+				}
+				hideLoading()
+			} catch (ex) {
+				
+				hideLoading()
+				showError(ex, this.translateSys("error"));
 			}
 		},
 		methods: {
@@ -313,9 +191,9 @@
 						if (!result.style_def.includes('"')) styledef = Base64.decode(result
 							.style_def);
 					}
-					$this.$data.detail2_styledef = result.style_def ? JSON.parse(styledef) : {};
-					$this.$data.detail2_styledef.SelBut_Checked = false;
-					// console.log($this.$data.detail2_styledef);
+					$this.detail2_styledef = result.style_def ? JSON.parse(styledef) : {};
+					$this.detail2_styledef.SelBut_Checked = false;
+					// console.log($this.detail2_styledef);
 					if ($this.detail2_styledef.form?.items) {
 						$this.styleDef.form.attrs.forEach((attr) => {
 							// info[attr.name]=attr.value;
@@ -343,13 +221,7 @@
 					}, 100);
 				} 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("cancel")
-					});
+					showError(ex, this.translateSys('error') + "1.1")
 				}
 
 			},
@@ -392,13 +264,7 @@
 					});
 				} catch (ex) {
 					// console.log(ex);
-					let tip = typeof ex.errMsg == "string" ? ex.errMsg : ex
-					uni.showModal({
-						title: this.translateSys("error") + "6.1",
-						content: tip,
-						showCancel: false,
-						confirmText: this.translateSys("cancel")
-					});
+					showError(ex, this.translateSys('error') + "6.1")
 				}
 
 
@@ -437,132 +303,27 @@
 						// console.log($this.detail2_styledef);
 					}
 				} 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('cancel')
-					});
+					showError(ex, this.translateSys('error') + "5.2")
 				}
 			},
+			onCheckBoxValue(e) { //缁戝畾Model鍊�+				let values = e.detail.value || []
+				var attr = item.fieldId;
+				this.detail2_styledef.form.model[attr] = values;
 
-			// 鍐呭鍙樺寲鍚庝簨浠�-			async onChange(event) {
-				try {
-					if (event.id) {
-						var obj_attr = this.detail2_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] || "",
-								}))
-							)
-						);
-						var $this = this;
-						var dataInfo = {
-							ed_type: 0,
-							start_transaction: true,
-							class_id: this.$data.detail2_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) {
-								var tip = result.err_info ? typeof result.err_info == 'string' ? result
-									.err_info : result.err_info.join('<br/>') : '';
-								if (result.ret == 801) uni.showModal({
-									title: this.translateSys("tip"),
-									content: tip,
-									showCancel: false,
-									confirmText: this.translateSys('cancel')
-								});
-								else uni.showModal({
-									title: this.translateSys("tip"),
-									content: tip + ',' + this.translateSys('tip') + ':' + result
-										.ret,
-									showCancel: false,
-									confirmText: this.translateSys('cancel')
-								});
-								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('cancel')
-								});
-
-								if (result.result_type == 0 && result.action) {
-									result.action.forEach(item => {
-										if (item.action_type == "set_dlg_attr") {
-											// value = {"attr":"xxx", "value":"xxx"}
-											var data = item.value;
-											$this.$data.detail2_styledef.form.items.forEach(async (
-												ele, index) => {
-												data.forEach(async (ele2, index) => {
-													if (ele.fieldId == ele2
-														.attr) {
-														ele.value = ele2
-															.value;
-													}
-												});
-											});
-										}
-									});
-								} else {
-									// this.detail2StyleDefList=[];
-									if (result.info) {
-										uni.showModal({
-											title: this.translateSys("tip"),
-											content: result.info,
-											showCancel: false,
-											confirmText: this.translateSys('cancel')
-										});
-									}
-								}
-							}
-
-
-						}).catch(ex => {
-							// console.log(ex);
-							uni.showModal({
-								title: this.translateSys("error") + "8.1",
-								content: ex.errMsg,
-								showCancel: false,
-								confirmText: this.translateSys('cancel')
-							});
-						});
-					}
-				} 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('cancel')
-					});
-
-				}
+			},
+			onRadioBoxValue(e) { //缁戝畾Model鍊�+				let values = e.detail.value || ""
+				var attr = item.fieldId;
+				this.detail2_styledef.form.model[attr] = values;
+			},
+			onModelValue(item) {
+				var attr = item.fieldId;
+				this.detail2_styledef.form.model[attr] = item.value;
+			},
+			onEnterChange(item) {
+				var attr = item.fieldId;
+				this.detail2_styledef.form.model[attr] = item.value;
 			},
 			//鐐瑰嚮鎸夐挳
 			onBtnClick(btn) {
@@ -571,15 +332,25 @@
 					uni.showModal({
 						title: this.translateSys("tip"),
 						content: btn.PromptContent || this.translate("are_you_sure"),
+						cancelText: this.translateSys('ok'),
+						confirmText: this.translateSys('cancel'),
 						success: function(res) {
-							if (res.confirm) {
+							if (res.cancel) {
 								that.onButtonClicked(btn);
 								// } else if (res.cancel) {
 								// 	console.log('鐢ㄦ埛鐐瑰嚮鍙栨秷');
 							}
 						}
 					});
-				} else that.onButtonClicked(btn);
+				} else {
+					this.handleButtonClick((done) => {
+						that.onButtonClicked(btn);
+						setTimeout(() => {
+							done(); // 閲嶇疆鐘舵�
+						}, 1000);
+					});
+
+				}
 			},
 			//鐐瑰嚮鎸夐挳鍒楄〃
 			actionSheetTap() {
@@ -599,8 +370,10 @@
 							uni.showModal({
 								title: this.translateSys("tip"),
 								content: btn.PromptContent || this.translate("are_you_sure"),
+								cancelText: this.translateSys('ok'),
+								confirmText: this.translateSys('cancel'),
 								success: function(res) {
-									if (res.confirm) {
+									if (res.cancel) {
 										that.onButtonClicked(btn);
 										// } else if (res.cancel) {
 										// 	console.log('鐢ㄦ埛鐐瑰嚮鍙栨秷');
@@ -628,27 +401,18 @@
 						await this.triggerEvent(btn, style, enviroment);
 					} else {
 						btn.disabled = false
-						uni.showModal({
-							title: this.translateSys("tip"),
-							content: this.translateSys("unrealized"),
-							showCancel: false,
-							confirmText: this.translateSys('cancel')
-						});
+						showInfo(this.translateSys("unrealized"))
+
 					}
 				} catch (ex) {
 					btn.disabled = false
-					var tip = typeof ex == "string" ? ex : ex.message;
-					uni.showModal({
-						title: this.translateSys("error") + "2",
-						content: tip,
-						showCancel: false,
-						confirmText: this.translateSys('cancel')
-					});
+					showError(ex, this.translateSys('error') + "2")
 				}
 			},
 			//鎵ц瑙﹀彂浜嬩欢
 			async triggerEvent(btn, style, enviroment) {
 				try {
+					showLoading("loading...")
 					btn.disabled = true
 					var obj_attr = {
 						'S_ID': this.styleDef.form.objId
@@ -659,6 +423,7 @@
 					// console.log(obj_attr);
 					// let input_param = Base64.encode(JSON.stringify(obj_attr));
 					// return;
+					
 					await this.runCustomEvent({
 						ed_type: 0,
 						start_transaction: true,
@@ -668,14 +433,10 @@
 						obj_attr: obj_attr,
 					});
 					btn.disabled = false
+					hideLoading()
 				} catch (ex) {
-					var tip = typeof ex == "string" ? ex : ex.message;
-					uni.showModal({
-						title: this.translateSys("error") + "3",
-						content: tip,
-						showCancel: false,
-						confirmText: this.translateSys('cancel')
-					});
+					hideLoading()
+					showError(ex, this.translateSys('error') + "3")
 				}
 			},
 			//浜嬩欢
@@ -684,81 +445,82 @@
 					var $this = this;
 					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) uni.showModal({
-							title: this.translateSys("tip"),
-							content: tip,
-							showCancel: false,
-							confirmText: this.translateSys('cancel')
-						});
-						else uni.showModal({
-							title: this.translateSys("tip"),
-							content: tip + ',' + this.translateSys('tip') + ':' + result.ret,
-							showCancel: false,
-							confirmText: this.translateSys('cancel')
-						});
-						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('cancel')
-						});
-
-						if (result.result_type == 0 && result.action) {
-							result.action.forEach(item => {
-								if (item.action_type == "goback_to_pre_page") { //杩斿洖涓婁竴椤�-									var value = item.value;
-									// const eventChannel = this.$scope.eventChannel;
-									// // const eventChannel = this.getOpenerEventChannel();
-									// eventChannel.emit('ExitViewEvent',"");
-									uni.navigateBack({
-										delta: 1, //杩斿洖灞傛暟锛�鍒欎笂涓婇〉
-									});
-								} else if (item.action_type == "hidden_button") { //闅愯棌鎸夐挳
-									var value = item.value;
-									value.forEach(btn => {
-										var index = $this.param.ViewPage.Page_Button
-											.findIndex(button => button.ShowName ==
-												btn)
-										if (index > -1)
-											$this.param.ViewPage.Page_Button.splice(
-												index, 1)
-									})
-								} else if (item.action_type == "set_panel_html") { //鏄剧ずHtml椤甸潰
-									// var value = item.value;
-									$this.ViewHtml_Panel = item.value;
-
-								}
-
-							});
-						} 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('cancel')
-							});
+					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 == "goback_to_pre_page") { //杩斿洖涓婁竴椤�+										var value = item.value;
+										// const eventChannel = this.getOpenerEventChannel();
+										// // const eventChannel = this.getOpenerEventChannel();
+										// eventChannel.emit('ExitViewEvent',"");
+										uni.navigateBack({
+											delta: 1, //杩斿洖灞傛暟锛�鍒欎笂涓婇〉
+										});
+									} else if (item.action_type == "hidden_button") { //闅愯棌鎸夐挳
+										var value = item.value;
+										value.forEach(btn => {
+											var index = $this.param.ViewPage.Page_Button
+												.findIndex(button => button.ShowName ==
+													btn)
+											if (index > -1)
+												$this.param.ViewPage.Page_Button.splice(
+													index, 1)
+										})
+									} else if (item.action_type == "set_panel_html") { //鏄剧ずHtml椤甸潰
+										// var value = item.value;
+										$this.ViewHtml_Panel = item.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) {
-					var tip = typeof ex == "string" ? ex : ex.errMsg;
-					uni.showModal({
-						title: this.translateSys("error") + "4.1",
-						content: this.translate('execute_after_change_event_failed') + this.translateSys(
-								"comma") +
-							this.translate('reason') + this.translateSys("colon") + tip,
-						showCancel: false,
-						confirmText: this.translateSys('cancel')
-					});
+					showError(ex, this.translateSys('error') + "4.1")
 
 				}
 			},
@@ -924,7 +686,7 @@
 			},
 
 			cancel(e) { //鍙栨秷
-				var eventChannel = this.$scope.eventChannel;
+				const eventChannel = this.getOpenerEventChannel();
 				// const eventChannel = this.getOpenerEventChannel();
 				eventChannel.emit('ExitViewEvent', "");
 				uni.navigateBack({
@@ -994,7 +756,8 @@
 
 		.uni-icon {
 			/* border: 1px solid red; */
-			width: 8%;
+			width: 30rpx;
+			padding: 10rpx 5rpx;
 			font-family: uniicons;
 			font-size: 40rpx;
 			font-weight: 400;
@@ -1030,6 +793,16 @@
 			width: 100%;
 			display: inline-block;
 			text-align: left;
+
+			.uni-forms-item {
+				padding-bottom: 5rpx;
+				margin-bottom: 0;
+
+				.uni-forms-item__label {
+					height: 20px !important;
+					padding: 0 10rpx 0 0 !important;
+				}
+			}
 		}
 
 		.dv-panel-buticon {
@@ -1129,7 +902,7 @@
 			margin-top: 25rpx;
 			padding: 20rpx;
 			line-height: 1.5;
-			background: #4D6AF4;
+			background: #27A6E1;
 			border: none;
 			color: #fff;
 			font-size: 38rpx;
@@ -1149,9 +922,9 @@
 			margin-top: 25rpx;
 			padding: 20rpx;
 			line-height: 1.5;
-			background: #fff;
-			border: none;
-			color: #000;
+			// background: #fff;
+			// border: none;
+			// color: #000;
 			font-size: 38rpx;
 			font-weight: bold;
 			float: left;

--
Gitblit v1.9.1