From 0ecc402885f332b21923bb12183dc072306f2b39 Mon Sep 17 00:00:00 2001
From: cuiqian2004 <cuiqian2004@163.com>
Date: 星期五, 21 三月 2025 18:36:15 +0800
Subject: [PATCH] vue3

---
 pages/modal/3200_view.vue |  775 +++++++++++++++++++++--------------------------------------
 1 files changed, 279 insertions(+), 496 deletions(-)

diff --git a/pages/modal/3200_view.vue b/pages/modal/3200_view.vue
index 224ea62..f8c0970 100644
--- a/pages/modal/3200_view.vue
+++ b/pages/modal/3200_view.vue
@@ -4,131 +4,12 @@
 			<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>
-								<!-- 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>
-										<!-- 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.items" viewMode></OIForm>
 
-									</view>
-								</uni-col>
-							</uni-row>
-						</div>
 					</div>
 				</div>
 			</view>
@@ -137,14 +18,14 @@
 		<view class="view-floor" v-if="param.ViewPage.Page_Button">
 			<!-- <button type="default" @click="cancel" class="btn_cancel" 
 		  :style="{'width':param.ViewPage.Page_Button.length>1?'39.5%':'48.5%'}">杩斿洖</button> -->
-			<button type="default" class="btn_refresh" v-for="(btn,index) in param.ViewPage.Page_Button" v-if="index<2"
-				@click="onBtnClick(btn)"
+			<button type="default" class="btn_refresh" :class="btn.disabled?'btn_disabled':''" :disabled="btn.disabled"
+				v-for="(btn,index) in param.ViewPage.Page_Button" v-if="index<2" @click="onBtnClick(btn)"
 				:style="{'width':param.ViewPage.Page_Button.length==1?'96%':param.ViewPage.Page_Button.length>2?'39.5%':'48%'}">{{btn.ShowName}}</button>
 
 			<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>
@@ -153,15 +34,30 @@
 </template>
 
 <script>
-	import Base64 from '../../components/js-base64/base64.js'
+	import {
+		Base64
+	} from  '@/js/Base64.js';
 	import classUtils from "@/js/utils.js"
+	import {
+		appGetInfo,
+		dictGetInfo
+	} from "@/api/mobox.js"
+	import {
+		getUIStyleInfo,
+		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({
@@ -200,11 +96,11 @@
 			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);
+			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椤甸潰
@@ -241,130 +137,138 @@
 						title: this.translateSys("error"),
 						content: tip,
 						showCancel: false,
-						confirmText: this.translateSys('cancel')
+						confirmText: this.translateSys('close')
 					});
 				}
 			}
 		},
 		methods: {
-			async Detail2_UIstyleGetInfo(class_id, style_id) { //鑾峰彇鑷畾涔夎〃鍗曟牱寮�-				var $this = this;
-				var dataInfo = {
-					class_id: class_id,
-					ui_style_id: style_id,
-				};
-				this.$store.dispatch('UIStyleGetInfo', dataInfo).then(ret => {
-					// console.log(ret);
-					if (ret.err_code == 0) {
-						var styledef = "";
-						if (ret.result.style_def) {
-							//mobox2鐨剆tyle_def鏄痡son瀛楃涓�-							styledef = ret.result.style_def.replace(/\\/g, "");
-							//mobox3鐨剆tyle_def鏄痓ase64瀛楃涓�-							if (!ret.result.style_def.includes('"')) styledef = Base64.decode(ret.result
-								.style_def);
+			setData(obj) {
+				let that = this;
+				let keys = [];
+				let val, data;
+
+				Object.keys(obj).forEach(function(key) {
+					keys = key.split(".");
+					val = obj[key];
+					data = that.$data;
+					keys.forEach(function(key2, index) {
+						if (index + 1 == keys.length) {
+							that.$set(data, key2, val);
+						} else {
+							if (!data[key2]) {
+								that.$set(data, key2, {});
+							}
 						}
-						$this.$data.detail2_styledef = ret.result.style_def ? JSON.parse(styledef) : {};
-						$this.$data.detail2_styledef.SelBut_Checked = false;
-						// console.log($this.$data.detail2_styledef);
-						if ($this.detail2_styledef.form?.items) {
-							$this.styleDef.form.attrs.forEach((attr) => {
-								// info[attr.name]=attr.value;
-								$this.detail2_styledef.form.items.forEach(async (ele, index) => {
-									if (ele.name != 'Layout') {
-										if (ele.fieldId == attr.name) {
-											ele.value = attr.value;
-										}
-									} else if (ele.name == 'Layout') {
-										ele.setting.colList.forEach(async (col, key) => {
-											if (col) {
-												if (col.fieldId == attr.name) {
-													col.value = attr.value;
-												}
-											}
-										});
-									}
-								});
-							});
-						}
-						setTimeout(function() {
-							var detail2_styledef = JSON.parse(JSON.stringify($this.detail2_styledef));
-							$this.detail2_styledef = [];
-							$this.detail2_styledef = detail2_styledef;
-						}, 100);
-					} else {
-						uni.showModal({
-							title: this.translateSys("error") + "1",
-							content: ret.err_msg,
-							showCancel: false,
-							confirmText: this.translateSys('cancel')
-						});
-					}
-				}).catch(ex => {
-					// console.log(ex);
-					uni.showModal({
-						title: this.translateSys("error") + "1.1",
-						content: ex.errMsg,
-						showCancel: false,
-						confirmText: this.translateSys('cancel')
+						data = data[key2];
 					});
 				});
+			},
+
+			async Detail2_UIstyleGetInfo(class_id, style_id) { //鑾峰彇鑷畾涔夎〃鍗曟牱寮�+				try {
+					var $this = this;
+					var dataInfo = {
+						class_id: class_id,
+						ui_style_id: style_id,
+					};
+					const result = await getUIStyleInfo(dataInfo)
+					var styledef = "";
+					if (result.style_def) {
+						//mobox2鐨剆tyle_def鏄痡son瀛楃涓�+						styledef = result.style_def.replace(/\\/g, "");
+						//mobox3鐨剆tyle_def鏄痓ase64瀛楃涓�+						if (!result.style_def.includes('"')) styledef = Base64.decode(result
+							.style_def);
+					}
+					$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;
+							$this.detail2_styledef.form.items.forEach(async (ele, index) => {
+								if (ele.name != 'Layout') {
+									if (ele.fieldId == attr.name) {
+										ele.value = attr.value;
+									}
+								} else if (ele.name == 'Layout') {
+									ele.setting.colList.forEach(async (col, key) => {
+										if (col) {
+											if (col.fieldId == attr.name) {
+												col.value = attr.value;
+											}
+										}
+									});
+								}
+							});
+						});
+					}
+					setTimeout(function() {
+						var detail2_styledef = JSON.parse(JSON.stringify($this.detail2_styledef));
+						$this.detail2_styledef = [];
+						$this.detail2_styledef = detail2_styledef;
+					}, 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('close')
+					});
+				}
 
 			},
 			async Html_UIstyleGetInfo(class_id, style_id) { //鑾峰彇鑷畾涔夎〃鍗曟牱寮�-				var $this = this;
-				var dataInfo = {
-					class_id: class_id,
-					ui_style_id: style_id,
-				};
-				this.$store.dispatch('UIStyleGetInfo', dataInfo).then(ret => {
-					// console.log(ret);
-					if (ret.err_code == 0) {
-						var styledef = "";
-						if (ret.result.style_def) {
-							//mobox2鐨剆tyle_def鏄痡son瀛楃涓�-							styledef = ret.result.style_def.replace(/\\/g, "");
-							//mobox3鐨剆tyle_def鏄痓ase64瀛楃涓�-							if (!ret.result.style_def.includes('"')) styledef = Base64.decode(ret.result
-								.style_def);
-						}
-						$this.ViewPageHtml_Show = ret.result.style_def ? JSON.parse(styledef) : {};
-						// console.log($this.ViewPageHtml_Show);
-						var obj_attr = {};
-						$this.styleDef.form.attrs.forEach((attr) => {
-							obj_attr[attr.name] = attr.value;
-						});
-						obj_attr['id'] = $this.styleDef.form.objId;
 
-						var eventid = $this.ViewPageHtml_Show.event.id;
-						if (!$this.ViewPageHtml_Show.event.id.includes('{'))
-							eventid = '{' + $this.ViewPageHtml_Show.event.id + '}';
-						//HTML椤甸潰浜嬩欢
-						$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,
-						});
-					} else {
-						uni.showModal({
-							title: this.translateSys("error") + "6",
-							content: ret.err_msg,
-							showCancel: false,
-							confirmText: this.translateSys('cancel')
-						});
+				try {
+					var $this = this;
+					var dataInfo = {
+						class_id: class_id,
+						ui_style_id: style_id,
+					};
+					const result = await getUIStyleInfo(dataInfo)
+					var styledef = "";
+					if (result.style_def) {
+						//mobox2鐨剆tyle_def鏄痡son瀛楃涓�+						styledef = result.style_def.replace(/\\/g, "");
+						//mobox3鐨剆tyle_def鏄痓ase64瀛楃涓�+						if (!result.style_def.includes('"')) styledef = Base64.decode(result
+							.style_def);
 					}
-				}).catch(ex => {
+					$this.ViewPageHtml_Show = result.style_def ? JSON.parse(styledef) : {};
+					// console.log($this.ViewPageHtml_Show);
+					var obj_attr = {};
+					$this.styleDef.form.attrs.forEach((attr) => {
+						obj_attr[attr.name] = attr.value;
+					});
+					obj_attr['id'] = $this.styleDef.form.objId;
+
+					var eventid = $this.ViewPageHtml_Show.event.id;
+					if (!$this.ViewPageHtml_Show.event.id.includes('{'))
+						eventid = '{' + $this.ViewPageHtml_Show.event.id + '}';
+					//HTML椤甸潰浜嬩欢
+					$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,
+					});
+				} catch (ex) {
 					// console.log(ex);
+					let tip = typeof ex.errMsg == "string" ? ex.errMsg : ex
 					uni.showModal({
 						title: this.translateSys("error") + "6.1",
-						content: ex.errMsg,
+						content: tip,
 						showCancel: false,
-						confirmText: this.translateSys('cancel')
+						confirmText: this.translateSys('close')
 					});
-				});
+				}
+
 
 			},
 			//鏌ヨ鏁版嵁绫绘暟鎹俊鎭�@@ -381,179 +285,53 @@
 						page: 1,
 						query_id: '',
 					};
-					this.$store.dispatch('dataObjQuery', dataInfo).then(ret => {
-						// console.log(ret);
-						if (ret.err_code == 0) {
-							if (ret.result) {
-								$this.detail1StyleDefList = [];
-								ret.result.obj_list.forEach((obj) => {
-									var info = {
-										S_ID: obj.id,
-									};
-									obj.attr_list.forEach((attr) => {
-										info[attr.name] = attr.value;
-									});
-									if (key != -1)
-										$this.detail2_styledef.form.items[index].setting.colList[key]
-										.value2 = info.S_NAME;
-									else
-										$this.detail2_styledef.form.items[index].value2 = info.S_NAME;
-								});
-								// console.log($this.detail2_styledef);
-							}
-						} else {
-							uni.showModal({
-								title: this.translateSys("error") + "5",
-								content: ret.err_msg,
-								showCancel: false,
-								confirmText: this.translateSys('cancel')
+					const result = await dataObjQuery(dataInfo)
+					// console.log(result);
+					if (result) {
+						$this.detail1StyleDefList = [];
+						result.obj_list.forEach((obj) => {
+							var info = {
+								S_ID: obj.id,
+							};
+							obj.attr_list.forEach((attr) => {
+								info[attr.name] = attr.value;
 							});
-						}
-					}).catch(ex => {
-						// console.log(ex);
-						uni.showModal({
-							title: this.translateSys("error") + "5.1",
-							content: ex.errMsg,
-							showCancel: false,
-							confirmText: this.translateSys('cancel')
+							if (key != -1)
+								$this.detail2_styledef.form.items[index].setting.colList[key]
+								.value2 = info.S_NAME;
+							else
+								$this.detail2_styledef.form.items[index].value2 = info.S_NAME;
 						});
-					});
+						// 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')
+						confirmText: this.translateSys('close')
 					});
 				}
 			},
+			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,
-						};
-						this.$store.dispatch('runCustomEvent', dataInfo).then(ret => {
-							// console.log(ret);
-							if (ret.err_code == 0) {
-								var result = ret.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')
-											});
-										}
-									}
-								}
-
-							} else {
-								uni.showModal({
-									title: this.translateSys("error") + "8",
-									content: ret.err_msg,
-									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) {
@@ -562,15 +340,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() {
@@ -590,8 +378,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('鐢ㄦ埛鐐瑰嚮鍙栨秷');
@@ -605,7 +395,9 @@
 			//澶勭悊鐩稿叧鎸夐挳
 			async onButtonClicked(btn) {
 				var style = this.styleDef || '';
+
 				try {
+					btn.disabled = true
 					var enviroment = {
 						button: "top",
 						button_name: btn.ShowName,
@@ -614,28 +406,31 @@
 						master: {},
 					};
 					if (btn.FunCode == "TriggerEvent") {
-						this.triggerEvent(btn, style, enviroment);
+						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')
+							confirmText: this.translateSys('close')
 						});
 					}
 				} 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')
+						confirmText: this.translateSys('close')
 					});
 				}
 			},
 			//鎵ц瑙﹀彂浜嬩欢
 			async triggerEvent(btn, style, enviroment) {
 				try {
+					btn.disabled = true
 					var obj_attr = {
 						'S_ID': this.styleDef.form.objId
 					};
@@ -645,7 +440,7 @@
 					// console.log(obj_attr);
 					// let input_param = Base64.encode(JSON.stringify(obj_attr));
 					// return;
-					this.runCustomEvent({
+					await this.runCustomEvent({
 						ed_type: 0,
 						start_transaction: true,
 						class_id: btn.Cls_ID,
@@ -653,13 +448,14 @@
 						data_obj_id: this.styleDef.form.objId,
 						obj_attr: obj_attr,
 					});
+					btn.disabled = false
 				} 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')
+						confirmText: this.translateSys('close')
 					});
 				}
 			},
@@ -667,101 +463,82 @@
 			async runCustomEvent(dataInfo) {
 				try {
 					var $this = this;
-					this.$store.dispatch('runCustomEvent', dataInfo).then(ret => {
-						console.log(ret);
-						if (ret.err_code == 0) {
-							var result = ret.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')
-								});
+					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('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;
-											// 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;
-
-										}
-
+						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.getOpenerEventChannel();
+									// // const eventChannel = this.getOpenerEventChannel();
+									// eventChannel.emit('ExitViewEvent',"");
+									uni.navigateBack({
+										delta: 1, //杩斿洖灞傛暟锛�鍒欎笂涓婇〉
 									});
-								} 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')
-									});
+								} 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 {
-							uni.showModal({
-								title: this.translateSys("error") + "4",
-								content: ret.err_msg,
+							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')
+								confirmText: this.translateSys('close')
 							});
 						}
-					}).catch(ex => {
-						// console.log(ex);
-						uni.showModal({
-							title: this.translateSys("error") + "4.1",
-							content: ex.errMsg,
-							showCancel: false,
-							confirmText: this.translateSys('cancel')
-						});
-					});
+					}
+
 				} catch (ex) {
-					var tip = typeof ex == "string" ? ex : ex.message;
+					var tip = typeof ex == "string" ? ex : ex.errMsg;
 					uni.showModal({
-						title: this.translateSys("error") + "4.2",
+						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')
+						confirmText: this.translateSys('close')
 					});
 
 				}
@@ -928,7 +705,7 @@
 			},
 
 			cancel(e) { //鍙栨秷
-				var eventChannel = this.$scope.eventChannel;
+				const eventChannel = this.getOpenerEventChannel();
 				// const eventChannel = this.getOpenerEventChannel();
 				eventChannel.emit('ExitViewEvent', "");
 				uni.navigateBack({
@@ -998,7 +775,8 @@
 
 		.uni-icon {
 			/* border: 1px solid red; */
-			width: 8%;
+			width: 30rpx;
+			padding: 10rpx 5rpx;
 			font-family: uniicons;
 			font-size: 40rpx;
 			font-weight: 400;
@@ -1133,7 +911,7 @@
 			margin-top: 25rpx;
 			padding: 20rpx;
 			line-height: 1.5;
-			background: #4D6AF4;
+			background: #27A6E1;
 			border: none;
 			color: #fff;
 			font-size: 38rpx;
@@ -1143,14 +921,19 @@
 			margin: 0 3px;
 		}
 
+		button.btn_disabled {
+			background-color: #ddd;
+			color: #888;
+		}
+
 		button.btn_cancel {
 			width: 49.5%;
 			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