From 9ae83a12c2b9c764e28760fb9c3c09fe697c8990 Mon Sep 17 00:00:00 2001
From: cuiqian2004 <cuiqian2004@163.com>
Date: 星期一, 22 七月 2024 14:56:00 +0800
Subject: [PATCH] 3018 按钮修改

---
 pages/modal/3200.vue |  250 ++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 214 insertions(+), 36 deletions(-)

diff --git a/pages/modal/3200.vue b/pages/modal/3200.vue
index a8f7bac..1df943b 100644
--- a/pages/modal/3200.vue
+++ b/pages/modal/3200.vue
@@ -273,7 +273,40 @@
 			}); //璁剧疆椤堕儴鏍囬 
 			this.$data.title = options.titlename;
 			this.$data.param = JSON.parse(options.param);
-			this.initial();
+
+
+			this.styledef = {};
+			this.head_styledef = {
+				form: {
+					items: []
+				}
+			};
+			this.detail1_styledef = {};
+			this.detail1StyleDefList = [];
+			this.detail2_styledef = {};
+			this.detail2StyleDefList = [];
+			this.ListHtml_Panel = "";
+			this.ListPageHtml_Show = {
+				name: "",
+				event: {
+					id: "",
+					name: ""
+				}
+			};
+			this.items = [];
+			this.active_id = '';
+			this.activelist = [];
+
+			if (this.param.ListPage.ListItem_UIDef?.ui_type == "HTML椤甸潰") {
+				// HTML椤甸潰
+				//鑾峰彇鏁版嵁绫荤殑HTML椤甸潰
+				await this.Html_UIstyleGetInfo(this.param.DataCls.id, this.param.ListPage.ListItem_UIDef.id, options
+					.paramValue);
+			} else {
+				await this.Detail1_UIstyleGetInfo(this.param.DataCls.id, this.param.ListPage.ListItem_UIDef.id);
+
+				await this.initial(options.paramValue);
+			}
 			// this.isFilter=true;
 			// if(this.param.ShowFilter)
 			//   this.isFilter=false;
@@ -303,43 +336,61 @@
 			// this.focusMateria=true; 
 		},
 		methods: {
-			//鍒濆鍖�-			async initial() {
-				this.styledef = {};
-				this.head_styledef = {
-					form: {
-						items: []
-					}
-				};
-				this.detail1_styledef = {};
-				this.detail1StyleDefList = [];
-				this.detail2_styledef = {};
-				this.detail2StyleDefList = [];
-				this.items = [];
-				this.active_id = '';
-				this.activelist = [];
-				this.ListHtml_Panel = "";
-				this.ListPageHtml_Show = {
-					name: "",
-					event: {
-						id: "",
-						name: ""
-					}
-				};
+			//
+			setData: function(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, {});
+							}
+						}
+						data = data[key2];
+					});
+				});
+			},
+
+			//鍒濆鍖�+			async initial(paramValue) {
 				this.isFilter = true;
 				if (this.param.ShowFilter)
 					this.isFilter = false;
 				//鑾峰彇鏁版嵁绫荤殑鑷畾涔夎〃鍗曞弬鏁� 				if (this.param.Query_Panel) {
-					this.Head_UIStyleGetInfo(this.param.DataCls.id, this.param.Query_Panel.id);
-				}
-				if (this.param.ListPage.ListItem_UIDef?.ui_type == "HTML椤甸潰") {
-					// HTML椤甸潰
-					//鑾峰彇鏁版嵁绫荤殑HTML椤甸潰
-					await this.Html_UIstyleGetInfo(this.param.DataCls.id, this.param.ListPage.ListItem_UIDef.id);
-				} else {
-					await this.Detail1_UIstyleGetInfo(this.param.DataCls.id, this.param.ListPage.ListItem_UIDef.id);
+					await this.Head_UIStyleGetInfo(this.param.DataCls.id, this.param.Query_Panel.id);
+					//浼犲叆鍙傛暟鍊�+					if (paramValue) {
+						const attrs = paramValue.attrs || [];
+						(this.$data.head_styledef?.form?.items || []).forEach(async (ele, index) => {
+							if (ele.name != "Layout") {
+								attrs.forEach(async (ele2, index2) => {
+									if (ele.fieldId == ele2.name) {
+										ele.value = ele2.value;
+									}
+								});
+							} else {
+								ele.setting.colList.forEach(async (col) => {
+									if (col) {
+										attrs.forEach(async (ele2,
+											index2) => {
+											if (col.fieldId == ele2.name) {
+												col.value = ele2.value;
+											}
+										});
+									}
+								});
+							}
+						})
+					}
 				}
 				this.orderby = this.param.Order ? this.param.Order : 'T_CREATE Desc';
 				if (this.param.Query_Event) {
@@ -351,6 +402,7 @@
 					this.query_id = "";
 					await this.loadDataGetList();
 				}
+
 			},
 			//婊氬姩鍒板簳閮ㄥ悗鎳掑姞杞芥暟鎹� 			async scrolltolower(e) {
@@ -462,7 +514,7 @@
 				});
 
 			},
-			async Html_UIstyleGetInfo(class_id, style_id) { //鑾峰彇鑷畾涔夎〃鍗曟牱寮�+			async Html_UIstyleGetInfo(class_id, style_id, paramValue) { //鑾峰彇鑷畾涔夎〃鍗曟牱寮� 				var $this = this;
 				var dataInfo = {
 					class_id: class_id,
@@ -479,8 +531,11 @@
 							if (!ret.result.style_def.includes('"')) styledef = Base64.decode(ret.result
 								.style_def);
 						}
+						// console.log(styledef);
 						$this.ListPageHtml_Show = ret.result.style_def ? JSON.parse(styledef) : {};
 						// console.log($this.ListPageHtml_Show);
+
+						$this.initial(paramValue);
 					} else {
 						uni.showModal({
 							title: this.translateSys("error") + "10",
@@ -695,6 +750,7 @@
 							if (ret.result) {
 								$this.page_count = ret.result.page_count;
 								if (ret.result.page_count > 1) $this.query_id = ret.result.query_id;
+								// console.log($this.ListPageHtml_Show.event);
 								if ($this.ListPageHtml_Show.event.id) {
 									ret.result.obj_list.forEach((obj) => {
 										var info = {
@@ -938,6 +994,13 @@
 					if (btn.FunCode == "Add" || btn.FunCode == "Modify") {
 						if (btn.Edit_dlg.Model == "small") {
 							this.showAddSmallDialog(btn, style, enviroment);
+						} else {
+							uni.showModal({
+								title: this.translateSys("tip"),
+								content: this.translateSys("unrealized"),
+								showCancel: false,
+								confirmText: this.translateSys("cancel")
+							});
 						}
 					} else if (btn.FunCode == "Delete") {
 						this.DeleteObj(btn, style, enviroment);
@@ -1053,7 +1116,114 @@
 
 			},
 			//鎵ц浜嬩欢
-			TriggerEvent(btn, style, enviroment) {},
+			async TriggerEvent(btn, style, enviroment) { //鎵ц瑙﹀彂浜嬩欢
+				try {
+					let obj_attr = {
+						S_ID: this.styledef.form.objId
+					};
+					style.form.attrs.forEach((attr) => {
+						obj_attr[attr.name] = attr.value;
+					});
+
+					if (!this.ListPageHtml_Show.event.id) {
+						//鍒ゆ柇娌℃湁HTML椤甸潰浜嬩欢
+						// console.log(this.detail2_styledef);
+						this.detail2_styledef.form.items.forEach(async (ele, index) => {
+							if (ele.name != "Layout") {
+								if (!obj_attr[ele.fieldId]) {
+									obj_attr[ele.fieldId] = ele.value;
+								}
+							} else if (ele.name == "Layout") {
+								ele.setting.colList.forEach(async (col, key) => {
+									if (col) {
+										if (!obj_attr[col.fieldId]) {
+											obj_attr[col.fieldId] = col.value;
+										}
+									}
+								});
+							}
+						});
+					}
+
+					const dataInfo = {
+						ed_type: 0,
+						start_transaction: true,
+						class_id: btn.clsId,
+						event_id: btn.event.id,
+						data_obj_id: this.styledef.form.objId,
+						obj_attr: obj_attr,
+					}
+					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) {
+									if (this.param.Only_Script_Error) {
+										let pos = tip.indexOf("锛�);
+										if (pos > -1) tip = tip.substring(pos + 1);
+									}
+									uni.showModal({
+										title: this.translateSys("tip"),
+										content: tip,
+										showCancel: false,
+										confirmText: this.translateSys("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")
+								});
+
+							}
+						} 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"),
+						content: tip,
+						showCancel: false,
+						confirmText: this.translateSys("cancel")
+					});
+					this.showError(ex);
+				}
+			},
 			//璺宠浆
 			async RelatedFunction(btn, style, enviroment) {
 
@@ -1080,7 +1250,7 @@
 							if ((success.result || []).length > 0) {
 								const app = success.result[0]
 								var param = "";
-								var appName = app.name || app.list_name
+								var appName = app.list_name || app.name 
 									.Name;
 								var paramStr = app.param
 								if (paramStr) {
@@ -1102,7 +1272,7 @@
 								uni.navigateTo({
 									url: '../modal/' + name + '?param=' + param + "&titlename=" +
 										appName +
-										"&type=relatedFunction&attrValue=" + JSON.stringify(style
+										"&type=relatedFunction&paramValue=" + JSON.stringify(style
 											.form),
 									events: {
 										relatedFunction: function(data) {
@@ -1136,6 +1306,14 @@
 							confirmText: this.translateSys("cancel")
 						});
 					});
+				} else {
+					uni.showModal({
+						title: this.translateSys("error"),
+						content: this.translate("cannot_related_function"),
+						showCancel: false,
+						confirmText: this.translateSys("cancel")
+					});
+
 				}
 			},
 			//鎵ц鍚庡鐞嗕簨浠�
--
Gitblit v1.9.1