From fa73abee6209cd6f7c62c61c271826f7d413035d Mon Sep 17 00:00:00 2001
From: cuiqian2004 <cuiqian2004@163.com>
Date: 星期五, 01 八月 2025 11:32:17 +0800
Subject: [PATCH] event result_type

---
 pages/modal/3200.vue |  599 ++++++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 387 insertions(+), 212 deletions(-)

diff --git a/pages/modal/3200.vue b/pages/modal/3200.vue
index c5309ae..49a8ae3 100644
--- a/pages/modal/3200.vue
+++ b/pages/modal/3200.vue
@@ -1,5 +1,5 @@
 <template>
-	<view class="uni-page-modal-3200">
+	<view class="uni-page-modal-3200" :class="largeMode?'large-mode':''">
 		<view class="v-content">
 			<!-- 琛ㄥご鏍峰紡 -->
 			<OIForm ref="refBaseForm" class="v-headStyle" :form="head_styledef.form" @on-focus="ontap"
@@ -25,42 +25,8 @@
 							</div>
 							<div class="dv-panel-input" v-if="!ListHtml_Panel"
 								:style="param.ListPage.CheckBox==true && param.ListPage.Click_View==true?'width:85%;':param.ListPage.CheckBox==false && param.ListPage.Click_View==true?'width:91%;':param.ListPage.CheckBox==true && param.ListPage.Click_View==false?'width:88%;':'width:100%;'">
-								<uni-forms class="v-area dv-panel" label-align="right">
-									<view v-for="(item,index) in style.form.items" :key="index">
-										<!-- 鏍呮牸甯冨眬 -->
-										<uni-row v-if="item.name == 'Layout'" :gutter="item.setting.gutter">
-											<uni-col
-												:span="item.setting.spanList && item.setting.spanList[key]? item.setting.spanList[key] : 24 / item.setting.col"
-												v-for="(col,key) in item.setting.colList" :key="key">
-												<uni-forms-item v-if="col != null"
-													:label="col.labelWidth === 0 ? '' : col.label? col.label+'锛�:''"
-													:label-width="col.labelWidth || col.labelWidth === 0 ? col.labelWidth : 100+'px'">
-													<view v-if="col.disabled">{{col.value}}</view>
-													<input class="uni-input"
-														v-else-if="col.name=='Input' || col.name=='InputNumber'"
-														:type="col.name=='InputNumber'?'number':'text'"
-														v-model="col.value" :placeholder="col.placeholder"
-														:maxlength="-1" />
-													<view v-else>{{col.value}}</view>
+								<OIForm class="v-area dv-panel" :form="style.form.items" viewMode></OIForm>
 
-												</uni-forms-item>
-												<uni-forms-item v-else label=""></uni-forms-item>
-											</uni-col>
-										</uni-row>
-										<uni-forms-item v-else
-											:label="item.labelWidth === 0 ? '' : item.label? item.label+'锛�:''"
-											:label-width="item.labelWidth || item.labelWidth === 0 ? item.labelWidth : 100+'px'"
-											:style="{ textAlign: item.setting.align }">
-											<view v-if="item.disabled">{{item.value}}</view>
-											<input v-else-if="item.name=='Input' || item.name=='InputNumber' "
-												class="uni-input" :type="item.name=='InputNumber'?'number':'text'"
-												v-model="item.value" :disabled="item.disabled"
-												:placeholder="item.placeholder" :maxlength="-1" />
-											<view v-else>{{item.value}}</view>
-
-										</uni-forms-item>
-									</view>
-								</uni-forms>
 							</div>
 							<div class="dv-panel-button" v-if="param.ListPage.Click_View==true">
 								<a @click="onViewPageClick(style)"><i class="mobox-normal-right-arrow" /></a>
@@ -100,7 +66,7 @@
 <script>
 	import {
 		Base64
-	} from  '@/js/Base64.js';
+	} from '@/js/Base64.js';
 	import classUtils from "@/js/utils.js"
 	import {
 		appGetInfo,
@@ -142,6 +108,7 @@
 		},
 		data() {
 			return {
+				largeMode: getApp().globalData.largeMode || false,
 				title: this.translateSys('add2'),
 				isFilter: true,
 				param: {},
@@ -375,7 +342,8 @@
 										$this.head_styledef.form
 											.model[ele.fieldId] = itemName;
 									}
-									$this.head_styledef.form.items[index].dict = selections.map((a) => {
+									$this.head_styledef.form.items[index].selections = selections.map((
+										a) => {
 										return {
 											value: a.value,
 											text: a.label
@@ -386,6 +354,25 @@
 							}
 
 						});
+						const app = getApp()
+						if (app.globalData.bindClasses) {
+							$this.head_styledef.form.items.push({
+								name: "Input",
+								label: this.translate("classes"),
+								labelWidth: 100,
+								disabled: true,
+								value: app.globalData.classes,
+								setting: {
+									width: 100,
+									height: 50,
+								},
+								bind: {
+									attr: "",
+								},
+								fieldId: "S_CLASSES",
+							})
+							$this.head_styledef.form.model["S_CLASSES"] = app.globalData.classes
+						}
 
 					}
 				} catch (ex) {
@@ -546,35 +533,53 @@
 						} else {
 							var tip = result.info ? typeof result.info == 'string' ? result.info :
 								result.info.join('<br/>') : '';
+							tip = tip || result.err_info
 							if (tip) uni.showModal({
 								title: this.translateSys("tip"),
 								content: tip,
 								showCancel: false,
 								confirmText: this.translateSys('close')
 							});
+							if ([0, 2, 3, 4, -1].includes(result.result_type)) {
+								if (result.result_type == 2) {
 
-							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
-											.orderby;
-										$this.pageindex = 1;
-										$this.query_id = "";
-										$this.detail1StyleDefList = [];
-										$this.loadDataGetList();
+								} else if (typeof result.result == 'string') {
+									if (result.result) {
+										uni.showModal({
+											title: this.translateSys('tip'),
+											content: result.result,
+											showCancel: false,
+											confirmText: this.translateSys('close')
+										});
 									}
+								}
+								try {
+									var actionList = result.action || []
+									actionList.forEach(item => {
+										if (item.action_type == "set_query_condition") {
+											var value = item.value;
+											$this.wheres = value.condition;
+											$this.orderby = value.order ? value.order : $this
+												.orderby;
+											$this.pageindex = 1;
+											$this.query_id = "";
+											$this.detail1StyleDefList = [];
+											$this.loadDataGetList();
+										}
 
-								});
-							} else {
-								if (result.info) {
+									});
+								} catch (ex) {
+									let actionList = (result.action || []).map(a => a.action_type).join(';')
+									let tip = typeof ex == 'string' ? ex : ex.message
+									tip = `鎵ц鑴氭湰杩斿洖鐨�{actionList}鏃跺嚭鐜板紓甯革紝璇锋鏌ヨ剼鏈繑鍥炵殑鏁版嵁鏍煎紡鏄惁姝g‘銆�{tip}`
 									uni.showModal({
-										title: this.translateSys("tip"),
-										content: result.info,
+										title: this.translateSys('tip'),
+										content: tip,
 										showCancel: false,
 										confirmText: this.translateSys('close')
 									});
+									console.log(ex)
+									return
 								}
 							}
 						}
@@ -1089,6 +1094,7 @@
 							result
 							.info :
 							result.info.join('<br/>') : '';
+						tip = tip || result.err_info
 						if (tip) uni.showModal({
 							title: this.translateSys("tip"),
 							content: tip,
@@ -1232,8 +1238,8 @@
 				// 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);
@@ -1386,6 +1392,7 @@
 									.info == 'string' ? result
 									.info :
 									result.info.join('<br/>') : '';
+								tip = tip || result.err_info
 								if (tip) uni.showModal({
 									title: this.translateSys(
 										"tip"),
@@ -1394,51 +1401,69 @@
 									confirmText: this.translateSys(
 										'close')
 								});
+								if ([0, 2, 3, 4, -1].includes(result.result_type)) {
+									if (result.result_type == 2) {
 
-								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
-												.head_styledef.form
-												.items
-												.forEach(
-													async (
-														ele,
-														index
-													) => {
-														data.forEach(
-															async (ele2,
-																index
-															) => {
-																if (ele
-																	.fieldId ==
-																	ele2
-																	.attr
-																) {
-																	ele.value =
-																		ele2
-																		.value;
-																}
-															});
-													});
+									} else if (typeof result.result == 'string') {
+										if (result.result) {
+											uni.showModal({
+												title: this.translateSys('tip'),
+												content: result.result,
+												showCancel: false,
+												confirmText: this.translateSys('close')
+											});
 										}
-									});
-								} else {
-									if (result.info) {
+									}
+									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_dlg_attr") {
+												if (value) {
+													this.setFormValues(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}`
 										uni.showModal({
-											title: this
-												.translateSys(
-													"tip"),
-											content: result.info,
+											title: this.translateSys('tip'),
+											content: tip,
 											showCancel: false,
-											confirmText: this
-												.translateSys(
-													'close')
+											confirmText: this.translateSys('close')
 										});
+										console.log(ex)
+										return
 									}
 								}
 							}
@@ -1472,6 +1497,159 @@
 
 				}
 			},
+			setFormValues(attrs) {
+				const head_styledef = this.head_styledef
+				if (JSON.stringify(attrs) == '{}') {
+					return;
+				}
+				attrs.forEach(async (attr, key) => {
+					if (attr.choice_list) {
+						var dictItemList = [];
+						attr.choice_list.forEach(async (val, index) => {
+							dictItemList.push({
+								text: val,
+								value: val
+							});
+						});
+						head_styledef.form.items.forEach(async (attr_item, index) => {
+							if (attr_item.name != "Layout") {
+								if (attr_item.fieldId == attr.attr) {
+									if (attr_item.useDict) {
+										attr_item.dict = dictItemList;
+									} else {
+										attr_item.selections = dictItemList;
+									}
+								}
+							} else if (attr_item.name == "Layout") {
+								attr_item.setting.colList.forEach((col) => {
+									if (col) {
+										if (col.fieldId == attr.attr) {
+											if (col.useDict) {
+												col.dict = dictItemList;
+											} else {
+												col.selections = dictItemList;
+											}
+										}
+									}
+								});
+							}
+						});
+					}
+					if (!head_styledef.form.model[attr.attr]) {
+						head_styledef.form.model[attr.attr] = attr.value;
+					}
+					head_styledef.form.items.forEach(async (ele) => {
+						if (ele.name != "Layout") {
+							if (ele.fieldId == attr.attr) {
+								ele.value = attr.value;
+								ele.oldvalue = attr.value;
+								if (ele.name == "Input") {
+									if (attr.prompt) ele.placeholder = attr.prompt;
+								}
+								if (attr.enable !== undefined) {
+									if (attr.enable) ele.disabled = false;
+									else ele.disabled = true;
+								}
+							}
+						} else if (ele.name == "Layout") {
+							ele.setting.colList.forEach((col) => {
+								if (col) {
+									if (col.fieldId == attr.attr) {
+										col.value = attr.value;
+										col.oldvalue = attr.value;
+										if (col.name == "Input") {
+											if (attr.prompt) col.placeholder = attr.prompt;
+										}
+										if (attr.enable !== undefined) {
+											if (attr.enable) col.disabled = false;
+											else col.disabled = true;
+										}
+									}
+								}
+							});
+						}
+
+					})
+					//鍒ゆ柇琛ㄥ崟閲屾槸鍚︽湁杩斿洖瀛楁锛屾病鏈夊氨瑁呰浇鍒癿odel閲岋紝鐐瑰嚮纭畾鎻愪氦鐨勬椂鍊欏甫涓婅繖浜涙暟鎹�+				})
+				console.log(head_styledef)
+				this.setData({
+					head_styledef: head_styledef
+				})
+			},
+			//鍔犺浇宸茬爜鐩樺唴瀹�+			viewAceionContent(data) {
+				var $this = this;
+				if (JSON.stringify(data.content) == '{}') {
+					return;
+				}
+				var styleStr = JSON.stringify($this.detail1_styledef);
+				data.content.forEach(cont => {
+					let 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); //寰呭垎鎷�+						}
+					}
+				});
+
+			},
+
 			onDetail1EnterChange() {},
 			//鐐逛腑琛ㄥ崟
 			onPanelClick(value) { //鐐瑰嚮闈㈡澘楂樹寒鏄剧ず
@@ -1530,6 +1708,7 @@
 								.info == 'string' ? result
 								.info : result
 								.info.join('<br/>') : '';
+							tip = tip || result.err_info
 							if (tip) uni.showModal({
 								title: this.translateSys(
 									"tip"),
@@ -1538,99 +1717,113 @@
 								confirmText: this.translateSys(
 									'close')
 							});
+							if ([0, 2, 3, 4, -1].includes(result.result_type)) {
+								if (result.result_type == 2) {
 
-							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 if (item
-										.action_type ==
-										"hidden_button"
-									) { //闅愯棌鎸夐挳
-										var value = item.value;
-										value.forEach(btn => {
-											var index =
-												$this
-												.param
-												.ListPage
-												.Page_Button
-												.findIndex(
-													button =>
-													button
-													.ShowName ==
-													btn
-												)
-											if (index >
-												-1)
-												$this
-												.param
-												.ListPage
-												.Page_Button
-												.splice(
-													index,
-													1)
-										})
-										// } else if(item.action_type == "refresh_cur_row"){ //
-										// 	var value = item.value;
-									} else if (item
-										.action_type ==
-										"set_panel_html"
-									) { //鏄剧ずHtml椤甸潰
-										// var value = item.value;
-										$this.ListHtml_Panel =
-											item.value;
-										// $this.detail1StyleDefList.forEach((ele,index)=>{
-										// 	ele.ListHtml_Panel = item.value[index];
-										// });
-
-									} else {
+								} else if (typeof result.result == 'string') {
+									if (result.result) {
 										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"
-												),
+											title: this.translateSys('tip'),
+											content: result.result,
 											showCancel: false,
-											confirmText: this
-												.translateSys(
-													'close'
-												)
+											confirmText: this.translateSys('close')
 										});
 									}
-								});
-							} else {
-								if (result.info) {
-									uni.showModal({
-										title: this
-											.translateSys(
-												"tip"),
-										content: result.info,
-										showCancel: false,
-										confirmText: this
-											.translateSys(
-												'close')
+								}
+								try {
+									var actionList = result.action || []
+									actionList.forEach(item => {
+										if (item.action_type ==
+											"goback_to_pre_page"
+										) { //杩斿洖涓婁竴椤�+											var value = item.value;
+											uni.navigateBack({
+												delta: 1, //杩斿洖灞傛暟锛�鍒欎笂涓婇〉
+											});
+										} else if (item
+											.action_type ==
+											"hidden_button"
+										) { //闅愯棌鎸夐挳
+											var value = item.value;
+											value.forEach(btn => {
+												var index =
+													$this
+													.param
+													.ListPage
+													.Page_Button
+													.findIndex(
+														button =>
+														button
+														.ShowName ==
+														btn
+													)
+												if (index >
+													-1)
+													$this
+													.param
+													.ListPage
+													.Page_Button
+													.splice(
+														index,
+														1)
+											})
+											// } else if(item.action_type == "refresh_cur_row"){ //
+											// 	var value = item.value;
+										} else if (item
+											.action_type ==
+											"set_panel_html"
+										) { //鏄剧ずHtml椤甸潰
+											// var value = item.value;
+											$this.ListHtml_Panel =
+												item.value;
+											// $this.detail1StyleDefList.forEach((ele,index)=>{
+											// 	ele.ListHtml_Panel = item.value[index];
+											// });
+
+										} 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'
+													)
+											});
+										}
 									});
+
+								} catch (ex) {
+									let actionList = (result.action || []).map(a => a.action_type).join(';')
+									let tip = typeof ex == 'string' ? ex : ex.message
+									tip = `鎵ц鑴氭湰杩斿洖鐨�{actionList}鏃跺嚭鐜板紓甯革紝璇锋鏌ヨ剼鏈繑鍥炵殑鏁版嵁鏍煎紡鏄惁姝g‘銆�{tip}`
+									uni.showModal({
+										title: this.translateSys('tip'),
+										content: tip,
+										showCancel: false,
+										confirmText: this.translateSys('close')
+									});
+									console.log(ex)
+									return
 								}
 							}
+
 						}
 
 
@@ -1958,37 +2151,9 @@
 		.dv-panel {
 			background-color: #efefef;
 			padding: 20rpx 20rpx 20rpx 0px;
-			
-			.uni-forms-item {
-				padding-bottom: 5rpx;
-				margin-bottom: 0;
-			
-				.uni-forms-item__label {
-					height: 20px !important;
-					padding: 0 10rpx 0 0 !important;
-				}
-			
-				.uni-input {
-					width: calc(100% - 12rpx);
-					padding: 5rpx;
-					border: 1px solid #d5d5d5;
-					color: #2d8cf0;
-					height: 20px;
-					background: #FFF;
-					line-height: 20px;
-					border-radius: 6px !important;
-					font-size: 14px;
-					font-family: inherit;
-					box-shadow: none !important;
-					transition-duration: 0.1s;
-					vertical-align: middle;
-				}
-			
-				.uni-input:hover {
-					border: 1px solid rgb(41, 121, 255);
-				}
-			}
-			
+			border-radius: 12rpx;
+			margin-bottom: 20rpx;
+			text-align: right;
 		}
 
 		.dv-listHtml-Panel,
@@ -1997,6 +2162,16 @@
 			width: 91%;
 			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 {

--
Gitblit v1.9.1