From 368dbde6b3ee39a3ac0cdac5089a9ce56ef525f8 Mon Sep 17 00:00:00 2001
From: cuiqian2004 <cuiqian2004@163.com>
Date: 星期一, 04 十一月 2024 12:42:51 +0800
Subject: [PATCH] 5601 open comm_dlg

---
 pages/modal/3018_2.vue |  672 +++++-------
 pages/modal/5602.vue   |  761 ++++++++++++++
 pages/modal/5601.vue   |  756 ++++++++++++++
 manifest.json          |    4 
 pages/modal/5600.vue   |  756 ++++++++++++++
 5 files changed, 2,515 insertions(+), 434 deletions(-)

diff --git a/manifest.json b/manifest.json
index 71b1217..26bcdab 100644
--- a/manifest.json
+++ b/manifest.json
@@ -2,8 +2,8 @@
     "name" : "MoboxPDA",
     "appid" : "__UNI__56D451E",
     "description" : "",
-    "versionName" : "1131",
-    "versionCode" : 1131,
+    "versionName" : "1133",
+    "versionCode" : 1133,
     "transformPx" : false,
     /* 5+App鐗规湁鐩稿叧 */
     "app-plus" : {
diff --git a/pages/modal/3018_2.vue b/pages/modal/3018_2.vue
index 487f7c5..f91a918 100644
--- a/pages/modal/3018_2.vue
+++ b/pages/modal/3018_2.vue
@@ -14,8 +14,7 @@
 							: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=='Input' || item.name=='InputNumber')">
+						<view class="input-wrapper" v-if="(item.name=='Input' || item.name=='InputNumber')">
 							<text v-if="item.setting.prefix" class="uni-icon" :class="[item.setting.prefix]"
 								@change="classAttr_extButton(item)">&#xe568;</text>
 							<input class="uni-input" :class="item.disabled?'input-disabled':''"
@@ -23,7 +22,7 @@
 								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="focusFieldId == item.fieldId" @focus="ontap(item)" @click="onClick(item)"
-								@blur="onevent(item)"  :maxlength="-1"/>
+								@blur="onevent(item)" :maxlength="-1" />
 							<text v-if="item.setting.suffix" class="uni-icon" :class="[item.setting.suffix]"
 								@click="classAttr_extButton(item)">&#xe568;</text>
 						</view>
@@ -58,8 +57,7 @@
 							:class="item.disabled?'input-disabled':''" :disabled="item.disabled" v-model="item.value"
 							@change="onModelValue(item)" />
 						<!-- 鏃ユ湡鏃堕棿 -->
-						<view class="input-wrapper"
-							v-if="(item.name=='TimePicker' || item.name=='DatePicker')">
+						<view class="input-wrapper" v-if="(item.name=='TimePicker' || item.name=='DatePicker')">
 							<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>
@@ -72,8 +70,7 @@
 							:span="item.setting.spanList?item.setting.spanList[key]:24 / item.setting.col">
 							<uni-forms-item v-if="cols!=null  && cols.show==true" :label="cols.label +'锛�"
 								:label-width="cols.labelWidth+'px'">
-								<view class="input-wrapper"
-									v-if="(cols.name=='Input' || cols.name=='InputNumber') ">
+								<view class="input-wrapper" v-if="(cols.name=='Input' || cols.name=='InputNumber') ">
 									<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':''"
@@ -81,7 +78,7 @@
 										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="focusFieldId == cols.fieldId" @focus="ontap(cols)"
-										@click="onClick(cols)" @blur="onevent(cols)"  :maxlength="-1"/>
+										@click="onClick(cols)" @blur="onevent(cols)" :maxlength="-1" />
 									<text v-if="cols.setting.suffix" class="uni-icon" :class="[cols.setting.suffix]"
 										@click="onchange(cols)">&#xe568;</text>
 								</view>
@@ -146,7 +143,8 @@
 			</view>
 			<button type="default" @tap="sava" class="btn_add" v-if="dropdownBtns.length==0 && btnName != ''"
 				:class="saving?'btn_disabled':''" :disabled="saving">{{btnName}}</button>
-			<button type="default" @tap="cancel" :class="(dropdownBtns.length> 0 || btnName != '')?'btn_cancel':'btn_cancel2'">{{translateSys('cancel')}}</button>
+			<button type="default" @tap="cancel"
+				:class="(dropdownBtns.length> 0 || btnName != '')?'btn_cancel':'btn_cancel2'">{{translateSys('cancel')}}</button>
 
 		</view>
 		<!-- 鏅�寮圭獥 top bottom center left right -->
@@ -475,7 +473,7 @@
 							text: item.value ? item.value : item.name,
 							value: item.name,
 						});
-					});						
+					});
 					//鏈夐粯璁ゅ�锛屾樉绀洪粯璁ゅ�
 					if (itemName) {
 						formItem.value = itemName;
@@ -547,159 +545,11 @@
 								var action = actionlist[i];
 								if (action.action_type == 'set_dlg_attr') {
 									var result = action.value;
-									for (var i = 0; i < result.length; i++) {
-										if (result[i].choice_list) {
-											for (var c = 0; c < $this.head_styledef.form.items
-												.length; c++) {
-												var attr = $this.head_styledef.form.items[c];
-												if (attr.name != 'Layout') {
-													if (attr.fieldId == result[i].attr) {
-														var dictItemList = [];
-														for (var d in result[i].choice_list) {
-															var val = result[i].choice_list[d];
-															dictItemList.push({
-																"CN_S_NAME": val,
-																"CN_S_VALUE": val,
-																"text": val,
-																"value": val
-															});
-														}
-														attr.dict = dictItemList;
-													}
-												} else if (attr.name == 'Layout') {
-													attr.setting.colList.forEach(col => {
-														if (col) {
-															if (col.fieldId == result[
-																	i]
-																.attr) {
-																var dictItemList = [];
-																for (var d in result[i]
-																		.choice_list) {
-																	var val = result[i]
-																		.choice_list[
-																			d];
-																	dictItemList.push({
-																		"CN_S_NAME": val,
-																		"CN_S_VALUE": val,
-																		"text": val,
-																		"value": val
-																	});
-																}
-																col.dict =
-																	dictItemList;
-															}
-														}
-													});
-												}
-
-											}
-										}
-										for (var c = 0; c < $this.$data.head_styledef.form
-											.items
-											.length; c++) {
-											var attr = $this.$data.head_styledef.form.items[c];
-											// console.log(attr[j].Name+'=='+result[i].attr);
-											//鍒ゆ柇琛ㄥ崟閲屾槸鍚︽湁杩斿洖瀛楁锛屾病鏈夊氨瑁呰浇鍒癿odel閲岋紝鐐瑰嚮纭畾鎻愪氦鐨勬椂鍊欏甫涓婅繖浜涙暟鎹�-											if ($this.head_styledef.form.model[result[i]
-													.attr] ==
-												undefined) {
-												$this.head_styledef.form.model[result[i]
-														.attr] =
-													result[i]
-													.value;
-											}
-											//鍒ゆ柇鏄惁鏄爡鏍艰〃鍗�-											if (attr.name != 'Layout') {
-												if (attr.fieldId == result[i].attr) {
-													attr.value = '';
-													attr.oldvalue = '';
-													attr.value = result[i].value;
-													attr.oldvalue = result[i].value;
-													$this.head_styledef.form.model[attr
-															.fieldId] =
-														result[
-															i].value;
-												}
-											} else if (attr.name == 'Layout') {
-												attr.setting.colList.forEach(col => {
-													if (col) {
-														if (col.fieldId == result[i]
-															.attr) {
-															col.value = '';
-															col.oldvalue = '';
-															col.value = result[i]
-																.value;
-															col.oldvalue = result[i]
-																.value;
-															$this.head_styledef.form
-																.model[
-																	col
-																	.fieldId] = result[
-																	i]
-																.value;
-														}
-													}
-												});
-											}
-										}
-										var length = 0;
-										if (!$this.$data.refdatastore.filter(function(s) {
-												return result[i].attr == s.attr
-											}).length) {
-											length = 1;
-											$this.$data.refdatastore.push(result[i]);
-										}
-										if (length == 0) {
-											for (var j = 0; j < $this.$data.refdatastore
-												.length; j++) {
-												if ($this.$data.refdatastore[j].attr == result[
-														i]
-													.attr) {
-													$this.$data.refdatastore[j].value = result[
-															i]
-														.value;
-												}
-											}
-										}
-									}
+									$this.setFormValues(result)
 								} else if (data.action[i].action_type == 'set_dlg_attr_show') {
 									var result = action.value;
-									result.forEach(async (attr, key) => {
-										$this.$data.head_styledef.form.items
-											.forEach(
-												async (
-													ele, index) => {
-													//鍒ゆ柇鏄惁鏄爡鏍艰〃鍗�-													if (ele.name != 'Layout') {
-														if (ele.fieldId == attr
-															.attr) {
-															ele.show = attr
-																.show;
-														}
-													} else if (ele.name ==
-														'Layout') {
-														ele.setting.colList
-															.forEach(
-																col => {
-																	if (col) {
-																		if (col
-																			.fieldId ==
-																			attr
-																			.attr
-																		) {
-																			col.show =
-																				attr
-																				.show;
-																		}
-																	}
-																});
-													}
-												});
-									});
-									var head_styledef = JSON.parse(JSON.stringify($this.$data
-										.head_styledef));
-									$this.$data.head_styledef = [];
-									$this.$data.head_styledef = head_styledef;
+									$this.hideFormItems(result)
+
 									// console.log($this.$data.head_styledef);
 								} else {
 									uni.showModal({
@@ -970,23 +820,12 @@
 				if (data.length == 0) {
 					uni.showModal({
 						title: this.translateSys("tip"),
-						content:this.translate("tip_no_select_data"),
+						content: this.translate("tip_no_select_data"),
 						showCancel: false,
 						confirmText: this.translateSys("cancel")
 					});
 					return;
 				}
-				// var fieldId = $this.$data.popupParam.item.fieldId;
-				// $this.head_styledef.form.model[fieldId] = name;
-				// console.log(fieldId,$this.$data.popupParam.item);
-				// for (var c = 0; c < $this.$data.head_styledef.form.items.length; c++) {
-				// 	var attr = $this.$data.head_styledef.form.items[c];
-				// 	if (attr.fieldId == fieldId) {
-				// 		attr.value = name;
-				// 	}
-				// }
-				// console.log(data);
-				// console.log($this.head_styledef.form);
 				var callback_eventid = $this.$data.popupParam.button_callback.trim();
 				var info = {
 					eventid: callback_eventid,
@@ -1115,157 +954,10 @@
 								var action = actionlist[i];
 								if (action.action_type == 'set_dlg_attr') {
 									var result = action.value;
-									for (var i = 0; i < result.length; i++) {
-										if (result[i].choice_list) {
-											for (var c = 0; c < $this.head_styledef.form.items
-												.length; c++) {
-												var attr = $this.head_styledef.form.items[c];
-												if (attr.name != 'Layout') {
-													if (attr.fieldId == result[i].attr) {
-														var dictItemList = [];
-														for (var d in result[i].choice_list) {
-															var val = result[i].choice_list[d];
-															dictItemList.push({
-																"CN_S_NAME": val,
-																"CN_S_VALUE": val,
-																"text": val,
-																"value": val
-															});
-														}
-														attr.dict = dictItemList;
-													}
-												} else if (attr.name == 'Layout') {
-													attr.setting.colList.forEach(col => {
-														if (col) {
-															if (col.fieldId == result[
-																	i]
-																.attr) {
-																var dictItemList = [];
-																for (var d in result[i]
-																		.choice_list) {
-																	var val = result[i]
-																		.choice_list[
-																			d];
-																	dictItemList.push({
-																		"CN_S_NAME": val,
-																		"CN_S_VALUE": val,
-																		"text": val,
-																		"value": val
-																	});
-																}
-																col.dict =
-																	dictItemList;
-															}
-														}
-													});
-												}
-
-											}
-										}
-										for (var c = 0; c < $this.$data.head_styledef.form
-											.items
-											.length; c++) {
-											var attr = $this.$data.head_styledef.form.items[c];
-											// console.log(attr[j].Name+'=='+result[i].attr);
-											//鍒ゆ柇琛ㄥ崟閲屾槸鍚︽湁杩斿洖瀛楁锛屾病鏈夊氨瑁呰浇鍒癿odel閲岋紝鐐瑰嚮纭畾鎻愪氦鐨勬椂鍊欏甫涓婅繖浜涙暟鎹�-											if ($this.head_styledef.form.model[result[i]
-													.attr] ==
-												undefined) {
-												$this.head_styledef.form.model[result[i]
-														.attr] =
-													result[i]
-													.value;
-											}
-											//鍒ゆ柇鏄惁鏄爡鏍艰〃鍗�-											if (attr.name != 'Layout') {
-												if (attr.fieldId == result[i].attr) {
-													attr.value = '';
-													attr.oldvalue = '';
-													attr.value = result[i].value;
-													attr.oldvalue = result[i].value;
-													$this.head_styledef.form.model[attr
-															.fieldId] =
-														result[i]
-														.value;
-												}
-											} else if (attr.name == 'Layout') {
-												attr.setting.colList.forEach(col => {
-													if (col) {
-														if (col.fieldId == result[i]
-															.attr) {
-															col.value = '';
-															col.oldvalue = '';
-															col.value = result[i]
-																.value;
-															col.oldvalue = result[i]
-																.value;
-															$this.head_styledef.form
-																.model[col
-																	.fieldId] = result[
-																	i].value;
-														}
-													}
-												});
-											}
-										}
-										var length = 0;
-										if (!$this.$data.refdatastore.filter(function(s) {
-												return result[i].attr == s.attr
-											}).length) {
-											length = 1;
-											$this.$data.refdatastore.push(result[i]);
-										}
-										if (length == 0) {
-											for (var j = 0; j < $this.$data.refdatastore
-												.length; j++) {
-												if ($this.$data.refdatastore[j].attr == result[
-														i]
-													.attr) {
-													$this.$data.refdatastore[j].value = result[
-															i]
-														.value;
-												}
-											}
-										}
-									}
+									$this.setFormValues(result)
 								} else if (action.action_type == 'set_dlg_attr_show') {
 									var result = action.value;
-									result.forEach(async (attr, key) => {
-										$this.$data.head_styledef.form.items
-											.forEach(
-												async (ele,
-													index) => {
-													//鍒ゆ柇鏄惁鏄爡鏍艰〃鍗�-													if (ele.name != 'Layout') {
-														if (ele.fieldId == attr
-															.attr) {
-															ele.show = attr
-																.show;
-														}
-													} else if (ele.name ==
-														'Layout') {
-														ele.setting.colList
-															.forEach(
-																col => {
-																	if (col) {
-																		if (col
-																			.fieldId ==
-																			attr
-																			.attr
-																		) {
-																			col.show =
-																				attr
-																				.show;
-																		}
-																	}
-																});
-													}
-												});
-									});
-									var head_styledef = JSON.parse(JSON.stringify($this.$data
-										.head_styledef));
-									$this.$data.head_styledef = [];
-									$this.$data.head_styledef = head_styledef;
+									$this.hideFormItems(result)
 									// console.log($this.$data.head_styledef);
 								} else if (action.action_type == 'set_global_attr') {
 									$this.$data.global_attr = action.value || [];
@@ -1378,7 +1070,7 @@
 					}
 				};
 				var obj_attr = $this.head_styledef.form.model;
-				 console.log(obj_attr);
+				console.log(obj_attr);
 				var req = Object.keys(obj_attr).map((a) => ({
 					attr: a,
 					value: obj_attr[a] || "",
@@ -1395,7 +1087,7 @@
 						}
 					}
 				}
-			
+
 				var extinfo = enviroment;
 				extinfo.edit_dlg = {
 					type: 'small', //灏忕獥鍙�@@ -1434,7 +1126,7 @@
 					compose_info: '',
 					ext_info: extinfo,
 					global_attr: global_attr,
-					input_param:input_param,
+					input_param: input_param,
 				};
 				console.log(dataInfo);
 				// return;
@@ -1553,13 +1245,19 @@
 										});
 										d.show();
 									} else if (action.action_type == 'open_common_dlg') {
-		
+
 										if (val.common_dlg_id == 'check_list') {
-											$this.setData({check_list:val.config})
+											$this.setData({
+												check_list: val.config
+											})
 											if (val.config.appear_style == 'sideslip') //鍒ゆ柇鏄惁鏄晶婊�-												$this.setData({popupType:"right"})
+												$this.setData({
+													popupType: "right"
+												})
 											else
-											$this.setData({popupType:"center"})
+												$this.setData({
+													popupType: "center"
+												})
 											// open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦�uni-popup 缁勪欢涓婄粦瀹�type灞炴�
 											$this.$refs.popup.open($this.popupType);
 											var popupParam = {
@@ -1568,7 +1266,9 @@
 												req: req,
 												data_attr: data_attr
 											}
-											$this.setData({popupParam:popupParam})
+											$this.setData({
+												popupParam: popupParam
+											})
 										}
 									} else if (action.action_type == 'open_project_query_dlg') {
 										//console.log(action.value.select_range);
@@ -1685,6 +1385,7 @@
 
 			},
 			add() {
+				const $this = this
 				uni.showLoading({
 					title: this.translateSys("loading"),
 					mask: true
@@ -1730,63 +1431,77 @@
 				};
 				console.log(dataInfo);
 				// return
-				dataObjCreate(dataInfo).then(result => {
+				dataObjCreate(dataInfo).then(res => {
 					uni.hideLoading();
-					if (result.action) {
-						var action = JSON.parse(result.action);
-						console.log(action);
-						if (action.ret == '0') {
-							if (action.ret != 0) {
-								uni.showModal({
-									title: this.translateSys("tip"),
-									content: this.translate('execute_script_failed') +
-										this
-										.translateSys('comma') + this.translate(
-											'result') +
-										this
-										.translateSys('colon') + action.result,
-									showCancel: false,
-									confirmText: this.translateSys("cancel")
-								});
-								this.saving = false
-								return;
+					let data = res.lua_result
+					if (data.ret != 0) {
+						var tip = data.err_info ? typeof data.err_info == 'string' ? data
+							.err_info :
+							data
+							.err_info.join('<br/>') : '';
+						if (data.ret == 801) {
+							if (this.param.Only_Script_Error) {
+								let pos = tip.indexOf("锛�);
+								if (pos > -1) tip = tip.substring(pos + 1);
 							}
-							if (action.info) {
-								uni.showModal({
-									title: this.translateSys("tip"),
-									content: this.translate('execute_script_failed') +
-										this
-										.translateSys('comma') +
-										this.translateSys('colon') + action.info,
-									showCancel: false,
-									confirmText: this.translateSys("cancel")
-								});
-								return;
-							}
-							if (action.result_type == '0') {
-								uni.showToast({
-									title: action.result,
-									icon: "success",
-									duration: 3000
-								});
-							}
+							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') + ':' + data
+								.ret,
+							showCancel: false,
+							confirmText: this.translateSys("cancel")
+						});
+						this.saving = false
+						return false
+					} else {
+						var tip = data.info ? typeof data.info == 'string' ? data.info : data
+							.info
+							.join(
+								'<br/>') : '';
+						if (tip) uni.showModal({
+							title: this.translateSys("tip"),
+							content: tip,
+							showCancel: false,
+							confirmText: this.translateSys("cancel")
+						});
 
-							// "{"ret":0, "result_type":0, "result":"鍒涘缓鎴愬姛123123123","info":""}"
-						}
-					} else
 						uni.showToast({
 							title: this.translate('create_success'),
 							icon: "success",
 							duration: 3000
 						});
-					if (!this.$data.param.After_Btn_Not_Refresh) {
-						//鍒锋柊
-						uni.redirectTo({
-							url: '../modal/3018_2?param=' + JSON.stringify(this.$data
-									.param) +
-								"&titlename=" + this.$data.title
-						});
+
+						if (!this.$data.param.After_Btn_Not_Refresh) {
+							//鍒锋柊
+							uni.redirectTo({
+								url: '../modal/3018_2?param=' + JSON.stringify(this.$data
+										.param) +
+									"&titlename=" + this.$data.title
+							});
+						} else {
+							var actionlist = data.action;
+							if (actionlist) {
+								console.log(actionlist);
+								for (var i = 0; i < actionlist.length; i++) {
+									var action = actionlist[i];
+									if (action.action_type == 'set_dlg_attr') {
+										$this.setFormValues(action.value)
+									} else if (data.action[i].action_type == 'set_dlg_attr_show') {
+										var result = action.value;
+										$this.hideFormItems(result)
+									}
+								}
+							}
+
+						}
 					}
+
 
 					// this.class_attr_init();
 
@@ -1794,6 +1509,7 @@
 				}).catch(ex => {
 					console.log(ex);
 					this.saving = false
+
 					uni.hideLoading();
 					uni.showModal({
 						title: this.translateSys("tip"),
@@ -1803,8 +1519,167 @@
 					});
 				});
 			},
+			setFormValues(data) {
+				const $this = this
+				for (var i = 0; i < data.length; i++) {
+					if (data[i].choice_list) {
+						for (var c = 0; c < $this.head_styledef.form.items
+							.length; c++) {
+							var attr = $this.head_styledef.form.items[c];
+							if (attr.name != 'Layout') {
+								if (attr.fieldId == data[i].attr) {
+									var dictItemList = [];
+									for (var d in data[i].choice_list) {
+										var val = data[i].choice_list[d];
+										dictItemList.push({
+											"CN_S_NAME": val,
+											"CN_S_VALUE": val,
+											"text": val,
+											"value": val
+										});
+									}
+									attr.dict = dictItemList;
+								}
+							} else if (attr.name == 'Layout') {
+								attr.setting.colList.forEach(col => {
+									if (col) {
+										if (col.fieldId == data[
+												i]
+											.attr) {
+											var dictItemList = [];
+											for (var d in data[i]
+													.choice_list) {
+												var val = data[i]
+													.choice_list[
+														d];
+												dictItemList.push({
+													"CN_S_NAME": val,
+													"CN_S_VALUE": val,
+													"text": val,
+													"value": val
+												});
+											}
+											col.dict =
+												dictItemList;
+										}
+									}
+								});
+							}
+
+						}
+					}
+					for (var c = 0; c < $this.$data.head_styledef.form
+						.items
+						.length; c++) {
+						var attr = $this.$data.head_styledef.form.items[c];
+						// console.log(attr[j].Name+'=='+data[i].attr);
+						//鍒ゆ柇琛ㄥ崟閲屾槸鍚︽湁杩斿洖瀛楁锛屾病鏈夊氨瑁呰浇鍒癿odel閲岋紝鐐瑰嚮纭畾鎻愪氦鐨勬椂鍊欏甫涓婅繖浜涙暟鎹�+						if ($this.head_styledef.form.model[data[i]
+								.attr] ==
+							undefined) {
+							$this.head_styledef.form.model[data[i]
+									.attr] =
+								data[i]
+								.value;
+						}
+						//鍒ゆ柇鏄惁鏄爡鏍艰〃鍗�+						if (attr.name != 'Layout') {
+							if (attr.fieldId == data[i].attr) {
+								attr.value = '';
+								attr.oldvalue = '';
+								attr.value = data[i].value;
+								attr.oldvalue = data[i].value;
+								$this.head_styledef.form.model[attr
+										.fieldId] =
+									data[
+										i].value;
+							}
+						} else if (attr.name == 'Layout') {
+							attr.setting.colList.forEach(col => {
+								if (col) {
+									if (col.fieldId == data[i]
+										.attr) {
+										col.value = '';
+										col.oldvalue = '';
+										col.value = data[i]
+											.value;
+										col.oldvalue = data[i]
+											.value;
+										$this.head_styledef.form
+											.model[
+												col
+												.fieldId] = data[
+												i]
+											.value;
+									}
+								}
+							});
+						}
+					}
+					var length = 0;
+					if (!$this.$data.refdatastore.filter(function(s) {
+							return data[i].attr == s.attr
+						}).length) {
+						length = 1;
+						$this.$data.refdatastore.push(data[i]);
+					}
+					if (length == 0) {
+						for (var j = 0; j < $this.$data.refdatastore
+							.length; j++) {
+							if ($this.$data.refdatastore[j].attr == data[
+									i]
+								.attr) {
+								$this.$data.refdatastore[j].value = data[
+										i]
+									.value;
+							}
+						}
+					}
+				}
+
+			},
+			hideFormItems(data) {
+				const $this = this
+				data.forEach(async (attr, key) => {
+					$this.$data.head_styledef.form.items
+						.forEach(
+							async (
+								ele, index) => {
+								//鍒ゆ柇鏄惁鏄爡鏍艰〃鍗�+								if (ele.name != 'Layout') {
+									if (ele.fieldId == attr
+										.attr) {
+										ele.show = attr
+											.show;
+									}
+								} else if (ele.name ==
+									'Layout') {
+									ele.setting.colList
+										.forEach(
+											col => {
+												if (col) {
+													if (col
+														.fieldId ==
+														attr
+														.attr
+													) {
+														col.show =
+															attr
+															.show;
+													}
+												}
+											});
+								}
+							});
+				});
+				var head_styledef = JSON.parse(JSON.stringify($this.$data
+					.head_styledef));
+				$this.$data.head_styledef = [];
+				$this.$data.head_styledef = head_styledef;
+			},
 			afterOK() {
 				this.saving = true
+				const $this = this
 				var obj_attr = this.head_styledef.form.model;
 				// console.log(obj_attr);
 				var input_param = {
@@ -1872,9 +1747,28 @@
 							showCancel: false,
 							confirmText: this.translateSys("cancel")
 						});
-
-						var result = data.result;
-
+						if (!this.$data.param.After_Btn_Not_Refresh) {
+							//鍒锋柊
+							uni.redirectTo({
+								url: '../modal/3018_2?param=' + JSON.stringify(this.$data
+										.param) +
+									"&titlename=" + this.$data.title
+							});
+						} else {
+							var actionlist = data.action;
+							if (actionlist) {
+								console.log(actionlist);
+								for (var i = 0; i < actionlist.length; i++) {
+									var action = actionlist[i];
+									if (action.action_type == 'set_dlg_attr') {
+										$this.setFormValues(action.value)
+									} else if (data.action[i].action_type == 'set_dlg_attr_show') {
+										var result = action.value;
+										$this.hideFormItems(result)
+									}
+								}
+							}
+						}
 					}
 
 					this.saving = false
@@ -1933,6 +1827,7 @@
 				}
 			},
 			onTriggerEvent(btn, enviroment) {
+				const $this = this
 				var obj_attr = this.head_styledef.form.model;
 				// console.log(obj_attr);
 				var input_param = {
@@ -1999,7 +1894,19 @@
 							confirmText: this.translateSys("cancel")
 						});
 
-						var result = data.result;
+						var actionlist = data.action;
+						if (actionlist) {
+							console.log(actionlist);
+							for (var i = 0; i < actionlist.length; i++) {
+								var action = actionlist[i];
+								if (action.action_type == 'set_dlg_attr') {
+									$this.setFormValues(action.value)
+								} else if (data.action[i].action_type == 'set_dlg_attr_show') {
+									var result = action.value;
+									$this.hideFormItems(result)
+								}
+							}
+						}
 
 					}
 
@@ -2201,6 +2108,7 @@
 				float: right;
 				display: inline-block;
 			}
+
 			.btn_cancel2 {
 				width: 90%;
 				margin: 0 10rpx;
diff --git a/pages/modal/5600.vue b/pages/modal/5600.vue
index 4e51f3f..0864c5f 100644
--- a/pages/modal/5600.vue
+++ b/pages/modal/5600.vue
@@ -14,7 +14,7 @@
 				<view class="input-wrapper" :style="{'width':`calc(96% - ${item.labelWidth}px)`}"
 					v-if="item.name=='Input' || item.name=='InputNumber'">
 					<text v-if="item.setting.prefix" class="uni-icon" :class="[item.setting.prefix]"
-						@click="onEnterChange(item)">&#xe568;</text>
+						@click="classAttr_extButton(item)">&#xe568;</text>
 					<input class="uni-input" :class="item.disabled?'input-disabled':''"
 						:type="item.name=='Input'?'text':'number'" v-model="item.value" :disabled="item.disabled"
 						:placeholder="item.placeholder"
@@ -22,7 +22,7 @@
 						:focus="focusFieldId == item.fieldId" @focus="ontap(index,item)" @click="onClick(item)"
 						@keyup.enter="onEnterChange(item)" @blur="onEnterChange(item)"  :maxlength="-1"/>
 					<text v-if="item.setting.suffix" class="uni-icon" :class="[item.setting.suffix]"
-						@click="onEnterChange(item)">&#xe568;</text>
+						@click="classAttr_extButton(item)">&#xe568;</text>
 				</view>
 			</view>
 
@@ -163,14 +163,30 @@
 				</div>
 			</view>
 		</view>
-		<!-- <view class="view-bottom" v-if="current==0 && param.Sub_Page[0].OK_Button==true">
-			<button type="default" @tap="cancel" class="btn_cancel">鍙栨秷</button>
-			<button type="primary" @tap="ok" class="btn_add">纭畾</button>
+	<view>
+			<uni-popup class="view-popup" ref="popup" background-color="#fff" @change="popupChange">
+				<view class="popup-header">{{check_list.title}}</view>
+				<view class="popup-content" :class="{ 'popup-height': popupType === 'left' || popupType === 'right' }"
+					:style="{'width':check_list.width?check_list.width+'px':'200px','height':check_list.height?check_list.height+'px':'88%'}">
+					<view class="popup-cont" :style="{'height':check_list.height?check_list.height-45+'px':'415px'}">
+						<view class="view_popup_CheckList" v-for="(item,index) in check_list.items">
+							<checkbox-group class="check_list" @change="checkChange" :data-ischeck="item.check"
+								:data-index="index" :style="{'margin-left': '10rpx'}">
+								<label>
+									<checkbox :value="item.check" :checked="item.check" />
+									<text>{{item.name}}</text>
+								</label>
+							</checkbox-group>
+						</view>
+					</view>
+					<view class="popup-footer">
+						<button type="default" @tap="popup_sava" class="btn_popup_add">{{translateSys('ok')}}</button>
+						<button type="default" @tap="popup_cancel"
+							class="btn_popup_cancel">{{translateSys('cancel')}}</button>
+					</view>
+				</view>
+			</uni-popup>
 		</view>
-		<view class="view-bottom" v-if="current==1 && param.Sub_Page[1].OK_Button==true">
-			<button type="default" @tap="cancel" class="btn_cancel">鍙栨秷</button>
-			<button type="primary" @tap="ok2" class="btn_add">纭畾</button>
-		</view> -->
 
 	</view>
 </template>
@@ -222,6 +238,13 @@
 				selectAttrObj: {},
 				okLoading: false,
 				ok2Loading: false,
+				
+				
+				global_attr: [],
+				refdatastore: [], //寮曠敤鏁版嵁瀛樺偍鍖�/ {attr:'G_PRJ_' + bindattr + '_ID', value:info.id}
+				popupType: "center",
+				check_list: {},
+				popupParam: {},
 			};
 		},
 		onLoad(options) {
@@ -620,21 +643,44 @@
 					var attr = item.fieldId;
 					this.head_styledef.form.model[attr] = item.value;
 					var onChangeEvent = item.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠�-					var onSuffixClickCallbackEvent = item.bind.onSuffixClickCallbackEvent; //鍚庡浘鏍囩偣鍑讳簨浠�-					var onSuffixClickEvent = item.bind.onSuffixClickEvent; //鍚庡浘鏍囩偣鍑诲洖璋� 					var isflag = false;
 
 					if (onChangeEvent.id) { //鍐呭鍙樺寲鍚庝簨浠� 						this.onChange(onChangeEvent);
 					}
-					// if(onSuffixClickCallbackEvent.id){   //鍚庡浘鏍囩偣鍑讳簨浠�-					//   this.onSuffixClick(onSuffixClickCallbackEvent);
-					// }
-					// if(onSuffixClickEvent.id){   //鍚庡浘鏍囩偣鍑诲洖璋�-					//   this.onSuffixClickCallback(onSuffixClickEvent);
-					// }
+				
 				}
 			},
+			classAttr_extButton(item) {
+				var onSuffixClickCallbackEvent = item.bind.onSuffixClickCallbackEvent; //鍚庡浘鏍囩偣鍑讳簨浠�+				var onSuffixClickEvent = item.bind.onSuffixClickEvent; //鍚庡浘鏍囩偣鍑诲洖璋�+			
+				if (!onSuffixClickCallbackEvent.id) {
+					uni.showModal({
+						title: this.translateSys("tip"),
+						content: this.translate('icon_click_callback_empty'),
+						showCancel: false,
+						confirmText: this.translateSys("cancel")
+					});
+					return;
+				}
+				if (!onSuffixClickEvent.id) {
+					uni.showModal({
+						title: this.translateSys("tip"),
+						content: this.translate('icon_click_event_empty'),
+						showCancel: false,
+						confirmText: this.translateSys("cancel")
+					});
+					return;
+				}
+				this.$data.popupType = 'right'
+				// open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦�uni-popup 缁勪欢涓婄粦瀹�type灞炴�
+				this.$refs.popup.open(this.popupType);
+			
+				this.dataObjRunCustomEvent_Return(onSuffixClickCallbackEvent.id, '', onSuffixClickEvent.id,
+					item);
+			},
+			
 			getDetailAttrList(list, selectButton) {
 				const detailAttrList = [];
 				list.forEach(style => {
@@ -1497,6 +1543,635 @@
 				this.activelist[value].active = true;
 				// console.log(this.$data.activelist);
 			},
+			popupChange(e) {
+				console.log('褰撳墠妯″紡锛� + e.type + ',鐘舵�锛� + e.show);
+			},
+			checkChange(e) { //寮规check閫夋嫨
+				// console.log(e.target.dataset);
+				var index = e.target.dataset.index;
+				var ischeck = e.target.dataset.ischeck;
+				var data = this.$data.check_list.items;
+				// this.$data.check_list.items=[];
+				if (this.$data.check_list.multiple_choice == "0") { //鍒ゆ柇鏃跺崟閫夎繕鏄閫�+					for (var i in data) {
+						data[i].check = false;
+					}
+				}
+				data[index].check = ischeck ? false : true;
+				this.$data.check_list.items = data;
+			
+			},
+			popup_cancel(e) { //寮规鍙栨秷
+				this.$refs.popup.close();
+			},
+			popup_sava(e) { //寮规纭畾
+				var $this = this;
+				var items = $this.$data.check_list.items;
+				var data = [];
+				var name = "";
+				for (var i = 0; i < items.length; i++) {
+					if (items[i].check == true) {
+						if (name)
+							name += ';';
+						name += items[i].name;
+						data.push({
+							id: items[i].id,
+							name: items[i].name
+						});
+					}
+				}
+				if (!$this.$data.popupParam) {
+					uni.showModal({
+						title: this.translateSys("tip"),
+						content: "popupParam涓虹┖锛�,
+						showCancel: false,
+						confirmText: this.translateSys("cancel")
+					});
+					return;
+				}
+				if (data.length == 0) {
+					uni.showModal({
+						title: this.translateSys("tip"),
+						content: this.translate("tip_no_select_data"),
+						showCancel: false,
+						confirmText: this.translateSys("cancel")
+					});
+					return;
+				}
+				var callback_eventid = $this.$data.popupParam.button_callback.trim();
+				var info = {
+					eventid: callback_eventid,
+					edtype: "0",
+					projectid: '',
+					rclsid: '',
+					robjid: '',
+					userlogin: '',
+					clsid: $this.$data.ClsID,
+					objid: "",
+					attr: $this.$data.popupParam.req,
+					dataJson: data
+				}
+				$this.DataObjRunCustomEvent(info, $this.$data.popupParam.data_attr);
+				this.$refs.popup.close();
+			},
+			
+			async DataObjRunCustomEvent(info, data_attr) {
+				var $this = this;
+				var enviroment = {
+					'function': '3000', // 鍔熻兘鐐圭紪鍙�+					cls_id: this.$data.ClsID, // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇�+					'button': 'top', // top/bottom
+					button_name: this.translateSys('add2'),
+					master: {
+						cls_id: this.$data.ClsID, // button=bottom鏃�master鐨刢ls_id
+						//obj_id: ''  // button=bottom鏃�master鐨刼bj_id
+					}
+				};
+				if (data_attr) {
+					enviroment.edit_dlg = {
+						type: 'small', //灏忕獥鍙�+						class_id: this.$data.ClsID, //褰撳墠鏁版嵁绫籭d
+					}
+					if (data_attr) {
+						enviroment.edit_dlg.form_control = { //鎵�睘鐨勮〃鍗曟帶浠�+							name: data_attr.Name, //瀛楁灞炴�
+							text: data_attr.DispName, //鏄剧ず鏂囨湰
+							group_name: data_attr.GroupName, //灞炴�缁�+							type: data_attr.Type, //瀛楁绫诲瀷
+							readonly: data_attr.ReadOnly, //鏄惁鍙
+							button_img: data_attr.button_img, //寮曠敤鎸夐挳鐨勫浘鏍�+							button_tooltip: data_attr.button_tooltip //寮曠敤鎸夐挳鐨則ooltip
+						}
+					}
+				}
+				enviroment = Base64.encode(JSON.stringify(enviroment)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜
+				var input_param = Base64.encode(JSON.stringify(info.attr)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜
+				var global_attr = Base64.encode(JSON.stringify(this.$data.global_attr)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜
+				if (info.dataJson)
+					info.dataJson = Base64.encode(JSON.stringify(info.dataJson)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜
+				var obj_attr = {};
+				info.attr.forEach(item => {
+					obj_attr[item.attr] = item.value;
+				});
+				if (!info.eventid.includes('{')) info.eventid = '{' + info.eventid + '}';
+				var dataInfo = {
+					ed_type: info.edtype,
+					start_transaction: true,
+					class_id: info.clsid,
+					class_name: '',
+					event_id: info.eventid,
+					event_name: '',
+					data_obj_id: info.objid,
+					obj_attr: obj_attr,
+					prj_id: info.projectid,
+					ref_cls_id: info.rclsid,
+					rel_obj_id: info.robjid,
+					user_login: info.userlogin,
+					data_json: info.dataJson,
+					compose_info: '',
+					ext_info: enviroment,
+					global_attr: global_attr,
+					input_param: input_param,
+				};
+				console.log(dataInfo);
+				// return;
+				runCustomEvent(dataInfo).then(data => {
+					if (data.ret != 0) {
+						var tip = data.err_info ? typeof data.err_info == 'string' ? data
+							.err_info :
+							data
+							.err_info.join('<br/>') : '';
+						if (data.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') + ':' + data
+								.ret,
+							showCancel: false,
+							confirmText: this.translateSys("cancel")
+						});
+						return false
+					} else {
+						var tip = data.info ? typeof data.info == 'string' ? data.info : data
+							.info
+							.join(
+								'<br/>') : '';
+						if (tip) uni.showModal({
+							title: this.translateSys("tip"),
+							content: tip,
+							showCancel: false,
+							confirmText: this.translateSys("cancel")
+						});
+			
+						var actionlist = data.action;
+						if (actionlist) {
+							console.log(actionlist);
+							for (var i = 0; i < actionlist.length; i++) {
+								var action = actionlist[i];
+								if (action.action_type == 'set_dlg_attr') {
+									var result = action.value;
+									$this.setFormValues(result)
+								} else if (action.action_type == 'set_dlg_attr_show') {
+									var result = action.value;
+									result.forEach(async (attr, key) => {
+										$this.$data.head_styledef.form.items
+											.forEach(
+												async (ele,
+													index) => {
+													//鍒ゆ柇鏄惁鏄爡鏍艰〃鍗�+													if (ele.name != 'Layout') {
+														if (ele.fieldId == attr
+															.attr) {
+															ele.show = attr
+																.show;
+														}
+													} else if (ele.name ==
+														'Layout') {
+														ele.setting.colList
+															.forEach(
+																col => {
+																	if (col) {
+																		if (col
+																			.fieldId ==
+																			attr
+																			.attr
+																		) {
+																			col.show =
+																				attr
+																				.show;
+																		}
+																	}
+																});
+													}
+												});
+									});
+									var head_styledef = JSON.parse(JSON.stringify($this.$data
+										.head_styledef));
+									$this.$data.head_styledef = [];
+									$this.$data.head_styledef = head_styledef;
+									// console.log($this.$data.head_styledef);
+								} else if (action.action_type == 'set_global_attr') {
+									$this.$data.global_attr = action.value || [];
+								} else {
+									uni.showModal({
+										title: this.translateSys("tip"),
+										content: this.translateSys(
+												"quotation_mark_left") +
+											action
+											.action_type + this.translateSys(
+												"quotation_mark_right") + this
+											.translate(
+												"tip_action_unprocessed"),
+										showCancel: false,
+										confirmText: this.translateSys("cancel")
+									});
+								}
+							}
+						}
+						console.log($this.head_styledef);
+						if (data.result) {
+							var result = data.result;
+							for (var i = 0; i < result.length; i++) {
+								for (var c = 0; c < $this.$data.head_styledef.form.items
+									.length; c++) {
+									var attr = $this.$data.head_styledef.form.items[c];
+									//鍒ゆ柇琛ㄥ崟閲屾槸鍚︽湁杩斿洖瀛楁锛屾病鏈夊氨瑁呰浇鍒癿odel閲岋紝鐐瑰嚮纭畾鎻愪氦鐨勬椂鍊欏甫涓婅繖浜涙暟鎹�+									if ($this.head_styledef.form.model[result[i].attr] ==
+										undefined) {
+										$this.head_styledef.form.model[result[i].attr] =
+											result[i]
+											.value;
+									}
+									//鍒ゆ柇鏄惁鏄爡鏍艰〃鍗�+									if (attr.name != 'Layout') {
+										if (attr.fieldId == result[i].attr) {
+											attr.value = '';
+											attr.oldvalue = '';
+											attr.value = result[i].value;
+											attr.oldvalue = result[i].value;
+											$this.head_styledef.form.model[attr.fieldId] =
+												result[i]
+												.value;
+										}
+									} else if (attr.name == 'Layout') {
+										attr.setting.colList.forEach(col => {
+											if (col) {
+												if (col.fieldId == result[i].attr) {
+													col.value = '';
+													col.oldvalue = '';
+													col.value = result[i].value;
+													col.oldvalue = result[i].value;
+													$this.head_styledef.form.model[col
+															.fieldId] =
+														result[i].value;
+												}
+											}
+										});
+									}
+								}
+			
+								var length = 0;
+								if (!$this.$data.refdatastore.filter(function(s) {
+										return result[i].attr == s.attr
+									}).length) {
+									length = 1;
+									$this.$data.refdatastore.push(result[i]);
+								}
+								if (length == 0) {
+									for (var j = 0; j < $this.$data.refdatastore.length; j++) {
+										if ($this.$data.refdatastore[j].attr == result[i]
+											.attr) {
+											$this.$data.refdatastore[j].value = result[i]
+												.value;
+										}
+									}
+								}
+							}
+						}
+					}
+			
+				}).catch(ex => {
+					// console.log(ex);
+					let exStr = JSON.stringify(ex)
+					if (exStr == "{}")
+						exStr = ex
+					let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr
+					uni.showModal({
+						title: this.translateSys("error") + "3.1",
+						content: exStr,
+						showCancel: false,
+						confirmText: this.translateSys("cancel")
+					});
+				});
+			},
+			dataObjRunCustomEvent_Return(eventid, data_attr, button_callback, item) {
+				const $this = this
+				var enviroment = {
+					'function': '3000', // 鍔熻兘鐐圭紪鍙�+					cls_id: $this.ClsID, // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇�+					'button': 'top', // top/bottom
+					button_name: $this.translateSys('add2'),
+					master: {
+						cls_id: $this.ClsID, // button=bottom鏃�master鐨刢ls_id
+						//obj_id: ''  // button=bottom鏃�master鐨刼bj_id
+					}
+				};
+				var obj_attr = $this.head_styledef.form.model;
+				console.log(obj_attr);
+				var req = Object.keys(obj_attr).map((a) => ({
+					attr: a,
+					value: obj_attr[a] || "",
+				}));
+				if ($this.refdatastore.length > 0) {
+					for (var i = 0; i < $this.refdatastore.length; i++) {
+						if (!req.filter(function(s) {
+								return $this.refdatastore[i].attr == s.name
+							}).length) {
+							req.push({
+								'attr': $this.refdatastore[i].attr,
+								'value': $this.refdatastore[i].value
+							});
+						}
+					}
+				}
+			
+				var extinfo = enviroment;
+				extinfo.edit_dlg = {
+					type: 'small', //灏忕獥鍙�+					class_id: $this.ClsID, //褰撳墠鏁版嵁绫籭d
+				}
+				extinfo = Base64.encode(JSON.stringify(extinfo)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜
+				var global_attr = Base64.encode(JSON.stringify($this.global_attr)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜
+				var obj_attr = {};
+				req.forEach(item2 => {
+					obj_attr[item2.attr] = item2.value;
+				});
+				let input_param = Base64.encode(
+					JSON.stringify(
+						Object.keys(obj_attr).map((a) => ({
+							attr: a,
+							value: obj_attr[a] || "",
+						}))
+					)
+				);
+			
+				if (!eventid.includes('{')) eventid = '{' + eventid + '}';
+				var dataInfo = {
+					ed_type: "0",
+					start_transaction: true,
+					class_id: $this.ClsID,
+					class_name: '',
+					event_id: eventid,
+					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: extinfo,
+					global_attr: global_attr,
+					input_param: input_param,
+				};
+				console.log(dataInfo);
+				// return;
+				runCustomEvent(dataInfo).then(data => {
+					if (data.ret != 0) {
+						var tip = data.err_info ? typeof data.err_info == 'string' ? data
+							.err_info :
+							data
+							.err_info.join('<br/>') : '';
+						if (data.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') + ':' + data
+								.ret,
+							showCancel: false,
+							confirmText: $this.translateSys("cancel")
+						});
+						return false
+					} else {
+						var tip = data.info ? typeof data.info == 'string' ? data.info : data
+							.info
+							.join(
+								'<br/>') : '';
+						if (tip) uni.showModal({
+							title: $this.translateSys("tip"),
+							content: tip,
+							showCancel: false,
+							confirmText: $this.translateSys("cancel")
+						});
+			
+						if (data != "") {
+							var actions = data.action;
+							if (actions) {
+								for (var i = 0; i < actions.length; i++) {
+									var action = actions[i];
+									console.log(action)
+									var val = action.value;
+									var enviroment = JSON.stringify(enviroment);
+			
+									if (action.action_type == 'open_panel') {
+										var d = dialog({
+											title: '<i class="ace-icon fa fa-info-circle"></i> ' +
+												$this.translateSys("tip"),
+											content: $this.translateSys(
+													"quotation_mark_left") +
+												action
+												.action_type + $this.translateSys(
+													"quotation_mark_right") + $this
+												.translate(
+													"tip_action_unprocessed")
+										});
+										d.show();
+									} else if (action.action_type == 'open_select_userdlg') {
+										var style = val.style;
+										// style == 'user' ? '閫夋嫨浜哄憳' : style == 'department' ? '閫夋嫨閮ㄩ棬' : style == 'role' ? '閫夋嫨瑙掕壊' : ''
+										var param = {
+											item: item,
+											button_callback: button_callback,
+											req: req,
+											data_attr: data_attr
+										}
+										uni.navigateTo({
+											url: '../selpsn/index?mulit=false&param=' +
+												JSON
+												.stringify(
+													param),
+											events: {
+												AddPer(data, param) {
+													// console.log(param);
+													console.log(data);
+													var callback_eventid = param
+														.button_callback
+														.trim();
+													var info = {
+														eventid: callback_eventid,
+														edtype: "0",
+														projectid: '',
+														rclsid: '',
+														robjid: '',
+														userlogin: '',
+														clsid: $this.$data.param
+															.DataCls
+															.id,
+														objid: "",
+														attr: param.req,
+														inputparameter: data,
+														dataJson: [],
+													}
+													$this.DataObjRunCustomEvent(info,
+														param
+														.data_attr);
+												}
+											}
+										});
+									} else if (action.action_type == 'open_data_query_dlg') {
+										var d = dialog({
+											title: '<i class="ace-icon fa fa-info-circle"></i> ' +
+												$this.translateSys("tip"),
+											content: $this.translateSys(
+													"quotation_mark_left") +
+												action
+												.action_type + $this.translateSys(
+													"quotation_mark_right") + $this
+												.translate(
+													"tip_action_unprocessed")
+										});
+										d.show();
+									} else if (action.action_type == 'open_common_dlg') {
+			
+										if (val.common_dlg_id == 'check_list') {
+											$this.setData({
+												check_list: val.config
+											})
+											if (val.config.appear_style == 'sideslip') //鍒ゆ柇鏄惁鏄晶婊�+												$this.setData({
+													popupType: "right"
+												})
+											else
+												$this.setData({
+													popupType: "center"
+												})
+											// open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦�uni-popup 缁勪欢涓婄粦瀹�type灞炴�
+											$this.$refs.popup.open($this.popupType);
+											var popupParam = {
+												item: item,
+												button_callback: button_callback,
+												req: req,
+												data_attr: data_attr
+											}
+											$this.setData({
+												popupParam: popupParam
+											})
+										}
+									} else if (action.action_type == 'open_project_query_dlg') {
+										//console.log(action.value.select_range);
+										//console.log(action.value.mulit_select);
+										var priRel = '-1';
+										if (action.value.select_range == '鍏ㄩ儴鐩稿叧')
+											priRel = '0';
+										else if (action.value.select_range == '鎴戣礋璐g殑椤圭洰')
+											priRel = '1';
+										else if (action.value.select_range == '鎴戝垱寤虹殑')
+											priRel = '2';
+										else if (action.value.select_range == '鎴戝弬涓庣殑' || action
+											.value
+											.select_range == '鎴戝弬鍔犵殑')
+											priRel = '3';
+										else if (action.value.select_range == '鎴戝叧娉ㄧ殑')
+											priRel = '4';
+										else if (action.value.select_range == '鎴戜笅灞炵殑椤圭洰')
+											priRel = '5';
+										var param_ = {
+											item: item,
+											button_callback: button_callback,
+											req: req
+										}
+										uni.navigateTo({
+											url: '../selPrj/index?relation=' + priRel +
+												'&param=' +
+												JSON.stringify(param_),
+											events: {
+												AddPer(data, param) {
+													var attr = param.item.fieldId;
+													$this.head_styledef.form.model[
+															attr] =
+														data[0].ID +
+														';' + data[0].Name;
+			
+													// $this.$data.classAttrList[param.index].Attr[param.iindex].Value=data[0].Name;
+													// $this.$data.classAttrList[param.index].Attr[param.iindex].ValID=data[0].ID+';'+data[0].Name;
+													var callback_eventid = param
+														.button_callback
+														.trim();
+													if (callback_eventid) {
+														var info = {
+															eventid: callback_eventid,
+															edtype: "2",
+															projectid: data[0].ID,
+															rclsid: "",
+															robjid: "",
+															userlogin: "",
+															clsid: $this.$data
+																.param
+																.DataCls.id,
+															objid: "",
+															attr: param.req,
+															dataJson: [],
+														}
+			
+														$this.DataObjRunCustomEvent(
+															info);
+													}
+												}
+											}
+										});
+									} else {
+										uni.showModal({
+											title: $this.translateSys("tip"),
+											content: $this.translateSys(
+													"quotation_mark_left") +
+												action.action_type + $this.translateSys(
+													"quotation_mark_right") + $this
+												.translate(
+													"tip_action_unprocessed"),
+											showCancel: false,
+											confirmText: $this.translateSys("cancel")
+										});
+									}
+								}
+							}
+						} else {
+							uni.showModal({
+								title: $this.translateSys('tip') + "5.2",
+								content: $this.translateSys("quotation_mark_left") +
+									"before_click_button" + $this.translateSys(
+										"quotation_mark_right") + $this.translateSys(
+										"comma") + 'event_id' + eventid,
+								showCancel: false,
+								confirmText: $this.translateSys("cancel")
+							});
+						}
+					}
+			
+				}).catch(ex => {
+					// console.log(ex);
+					let exStr = JSON.stringify(ex)
+					if (exStr == "{}")
+						exStr = ex
+					let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr
+					uni.showModal({
+						title: $this.translateSys('tip') + "5.1",
+						content: exStr,
+						showCancel: false,
+						confirmText: $this.translateSys("cancel")
+					});
+				});
+			},
+			
+			
 			//纭畾
 			ok() {
 				this.Before_OK_Event = this.param.Sub_Page[0].Before_ok;
@@ -2389,7 +3064,52 @@
 		.demo-uni-row .uni-input {
 			width: calc(100% - 120px);
 		}
-
+		.popup-header {
+			font-size: 42rpx;
+			font-weight: bold;
+			margin: 20rpx 20rpx 0px 20rpx;
+		}
+		
+		.view_popup_CheckList {
+			margin-bottom: 20rpx;
+		}
+		
+		.popup-footer {
+			float: right;
+			position: absolute;
+			bottom: 0;
+			right: 20rpx;
+		}
+		
+		button.btn_popup_add {
+			width: 180rpx;
+			margin-top: 50rpx;
+			margin-right: 20rpx;
+			padding: 15rpx;
+			line-height: 1.5;
+			background: #27A6E1;
+			border: none;
+			color: #fff;
+			font-size: 38rpx;
+			font-weight: bold;
+			/* float: left; */
+			display: inline-block;
+		}
+		
+		button.btn_popup_cancel {
+			width: 180rpx;
+			margin-top: 50rpx;
+			padding: 15rpx;
+			line-height: 1.5;
+			background: #27A6E1;
+			border: none;
+			color: #fff;
+			font-size: 38rpx;
+			font-weight: bold;
+			/* float: right; */
+			display: inline-block;
+		}
+		
 
 	}
 </style>
\ No newline at end of file
diff --git a/pages/modal/5601.vue b/pages/modal/5601.vue
index 72be264..52a5dd6 100644
--- a/pages/modal/5601.vue
+++ b/pages/modal/5601.vue
@@ -11,14 +11,15 @@
 						:readonly="item.disabled" :clear-icon="false" :popup-title="item.label"></uni-data-picker>
 					<view class="input-wrapper" v-if="item.name=='Input' || item.name=='InputNumber'">
 						<text v-if="item.setting.prefix" class="uni-icon" :class="[item.setting.prefix]"
-							@click="onEnterChange(item)">&#xe568;</text>
+							@click="classAttr_extButton(item)">&#xe568;</text>
 						<input class="uni-input" :class="item.disabled?'input-disabled':''"
 							:style="{'padding-left':item.setting.prefix?0 : '8rpx','right':item.setting.suffix?0 : '8rpx'}"
 							:type="item.name=='Input'?'text':'number'" v-model="item.value" :disabled="item.disabled"
 							:placeholder="item.placeholder" :focus="focusFieldId == item.fieldId" @focus="ontap(item)"
-							@click="onClick(item)" @keyup.enter="onEnterChange(item)" @blur="onEnterChange(item)"  :maxlength="-1"/>
+							@click="onClick(item)" @keyup.enter="onEnterChange(item)" @blur="onEnterChange(item)"
+							:maxlength="-1" />
 						<text v-if="item.setting.suffix" class="uni-icon" :class="[item.setting.suffix]"
-							@click="onEnterChange(item)"></text>
+							@click="classAttr_extButton(item)"></text>
 					</view>
 				</uni-forms-item>
 				<!-- 鏍呮牸甯冨眬 -->
@@ -32,15 +33,15 @@
 								:readonly="col.disabled" :clear-icon="false" :popup-title="col.label"></uni-data-picker>
 							<view class="input-wrapper" v-if="col.name=='Input' || col.name=='InputNumber'">
 								<text v-if="col.setting.prefix" class="uni-icon" :class="[col.setting.prefix]"
-									@click="onEnterChange(col)">&#xe568;</text>
+									@click="classAttr_extButton(col)">&#xe568;</text>
 								<input class="uni-input" :class="col.disabled?'input-disabled':''"
 									:style="{'padding-left':col.setting.prefix?0 : '8px','right':col.setting.suffix?0 : '8px'}"
 									:type="col.name=='Input'?'text':'number'" v-model="col.value"
 									:disabled="col.disabled" :placeholder="col.placeholder"
 									:focus="focusFieldId == col.fieldId" @focus="ontap(col)" @click="onClick(col)"
-									@keyup.enter="onEnterChange(col)" @blur="onEnterChange(col)"  :maxlength="-1"/>
+									@keyup.enter="onEnterChange(col)" @blur="onEnterChange(col)" :maxlength="-1" />
 								<text v-if="col.setting.suffix" class="uni-icon" :class="[col.setting.suffix]"
-									@click="onEnterChange(col)"></text>
+									@click="classAttr_extButton(col)"></text>
 							</view>
 						</uni-forms-item>
 					</uni-col>
@@ -80,7 +81,7 @@
 													<input class="uni-input" v-if="!item.disabled"
 														:type="item.name=='InputNumber'?'number':'text'"
 														v-model="item.value" :disabled="item.disabled"
-														:placeholder="item.placeholder"  :maxlength="-1"/>
+														:placeholder="item.placeholder" :maxlength="-1" />
 												</view>
 												<!-- 鏍呮牸甯冨眬 -->
 												<uni-row class="demo-uni-row" v-else :gutter="item.setting.gutter">
@@ -95,7 +96,7 @@
 															<input class="uni-input" v-if="!cols.disabled"
 																:type="cols.name=='InputNumber'?'number':'text'"
 																v-model="cols.value" :disabled="cols.disabled"
-																:placeholder="cols.placeholder"  :maxlength="-1"/>
+																:placeholder="cols.placeholder" :maxlength="-1" />
 														</view>
 													</uni-col>
 												</uni-row>
@@ -135,6 +136,30 @@
 						:style="{'color':param.Welcome_Page.Txt_Color,'font-size':param.Welcome_Page.Font_Size+'px','font-family':param.Welcome_Page.Font}">{{param.Welcome_Page.Text}}</Text>
 				</div>
 			</view>
+		</view>
+		<view>
+			<uni-popup class="view-popup" ref="popup" background-color="#fff" @change="popupChange">
+				<view class="popup-header">{{check_list.title}}</view>
+				<view class="popup-content" :class="{ 'popup-height': popupType === 'left' || popupType === 'right' }"
+					:style="{'width':check_list.width?check_list.width+'px':'200px','height':check_list.height?check_list.height+'px':'88%'}">
+					<view class="popup-cont" :style="{'height':check_list.height?check_list.height-45+'px':'415px'}">
+						<view class="view_popup_CheckList" v-for="(item,index) in check_list.items">
+							<checkbox-group class="check_list" @change="checkChange" :data-ischeck="item.check"
+								:data-index="index" :style="{'margin-left': '10rpx'}">
+								<label>
+									<checkbox :value="item.check" :checked="item.check" />
+									<text>{{item.name}}</text>
+								</label>
+							</checkbox-group>
+						</view>
+					</view>
+					<view class="popup-footer">
+						<button type="default" @tap="popup_sava" class="btn_popup_add">{{translateSys('ok')}}</button>
+						<button type="default" @tap="popup_cancel"
+							class="btn_popup_cancel">{{translateSys('cancel')}}</button>
+					</view>
+				</view>
+			</uni-popup>
 		</view>
 	</view>
 </template>
@@ -176,6 +201,12 @@
 
 				active_id: '',
 				selectAttrObj: {},
+
+				global_attr: [],
+				refdatastore: [], //寮曠敤鏁版嵁瀛樺偍鍖�/ {attr:'G_PRJ_' + bindattr + '_ID', value:info.id}
+				popupType: "center",
+				check_list: {},
+				popupParam: {},
 			};
 		},
 		computed: {
@@ -583,10 +614,6 @@
 					var attr = item.fieldId;
 					this.head_styledef.form.model[attr] = item.value;
 					var onChangeEvent = item.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠�-					var onSuffixClickCallbackEvent = item.bind
-						.onSuffixClickCallbackEvent; //鍚庡浘鏍囩偣鍑讳簨浠�-					var onSuffixClickEvent = item.bind.onSuffixClickEvent; //鍚庡浘鏍囩偣鍑诲洖璋�-					var isflag = false;
 
 					if (onChangeEvent.id) { //鍐呭鍙樺寲鍚庝簨浠� 						this.onChange(onChangeEvent);
@@ -594,6 +621,36 @@
 
 				}
 			},
+			classAttr_extButton(item) {
+				var onSuffixClickCallbackEvent = item.bind.onSuffixClickCallbackEvent; //鍚庡浘鏍囩偣鍑讳簨浠�+				var onSuffixClickEvent = item.bind.onSuffixClickEvent; //鍚庡浘鏍囩偣鍑诲洖璋�+			
+				if (!onSuffixClickCallbackEvent.id) {
+					uni.showModal({
+						title: this.translateSys("tip"),
+						content: this.translate('icon_click_callback_empty'),
+						showCancel: false,
+						confirmText: this.translateSys("cancel")
+					});
+					return;
+				}
+				if (!onSuffixClickEvent.id) {
+					uni.showModal({
+						title: this.translateSys("tip"),
+						content: this.translate('icon_click_event_empty'),
+						showCancel: false,
+						confirmText: this.translateSys("cancel")
+					});
+					return;
+				}
+				this.$data.popupType = 'right'
+				// open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦�uni-popup 缁勪欢涓婄粦瀹�type灞炴�
+				this.$refs.popup.open(this.popupType);
+
+				this.dataObjRunCustomEvent_Return(onSuffixClickCallbackEvent.id, '', onSuffixClickEvent.id,
+					item);
+			},
+
 			getDetailAttrList(pageData) {
 				const detailAttrList = [];
 				if (pageData.DefList) {
@@ -1521,6 +1578,636 @@
 				$this.runCustomEvent(pageData, event, input_param, list);
 			},
 
+			popupChange(e) {
+				console.log('褰撳墠妯″紡锛� + e.type + ',鐘舵�锛� + e.show);
+			},
+			checkChange(e) { //寮规check閫夋嫨
+				// console.log(e.target.dataset);
+				var index = e.target.dataset.index;
+				var ischeck = e.target.dataset.ischeck;
+				var data = this.$data.check_list.items;
+				// this.$data.check_list.items=[];
+				if (this.$data.check_list.multiple_choice == "0") { //鍒ゆ柇鏃跺崟閫夎繕鏄閫�+					for (var i in data) {
+						data[i].check = false;
+					}
+				}
+				data[index].check = ischeck ? false : true;
+				this.$data.check_list.items = data;
+
+			},
+			popup_cancel(e) { //寮规鍙栨秷
+				this.$refs.popup.close();
+			},
+			popup_sava(e) { //寮规纭畾
+				var $this = this;
+				var items = $this.$data.check_list.items;
+				var data = [];
+				var name = "";
+				for (var i = 0; i < items.length; i++) {
+					if (items[i].check == true) {
+						if (name)
+							name += ';';
+						name += items[i].name;
+						data.push({
+							id: items[i].id,
+							name: items[i].name
+						});
+					}
+				}
+				if (!$this.$data.popupParam) {
+					uni.showModal({
+						title: this.translateSys("tip"),
+						content: "popupParam涓虹┖锛�,
+						showCancel: false,
+						confirmText: this.translateSys("cancel")
+					});
+					return;
+				}
+				if (data.length == 0) {
+					uni.showModal({
+						title: this.translateSys("tip"),
+						content: this.translate("tip_no_select_data"),
+						showCancel: false,
+						confirmText: this.translateSys("cancel")
+					});
+					return;
+				}
+				var callback_eventid = $this.$data.popupParam.button_callback.trim();
+				var info = {
+					eventid: callback_eventid,
+					edtype: "0",
+					projectid: '',
+					rclsid: '',
+					robjid: '',
+					userlogin: '',
+					clsid: $this.$data.ClsID,
+					objid: "",
+					attr: $this.$data.popupParam.req,
+					dataJson: data
+				}
+				$this.DataObjRunCustomEvent(info, $this.$data.popupParam.data_attr);
+				this.$refs.popup.close();
+			},
+
+			async DataObjRunCustomEvent(info, data_attr) {
+				var $this = this;
+				var enviroment = {
+					'function': '3000', // 鍔熻兘鐐圭紪鍙�+					cls_id: this.$data.ClsID, // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇�+					'button': 'top', // top/bottom
+					button_name: this.translateSys('add2'),
+					master: {
+						cls_id: this.$data.ClsID, // button=bottom鏃�master鐨刢ls_id
+						//obj_id: ''  // button=bottom鏃�master鐨刼bj_id
+					}
+				};
+				if (data_attr) {
+					enviroment.edit_dlg = {
+						type: 'small', //灏忕獥鍙�+						class_id: this.$data.ClsID, //褰撳墠鏁版嵁绫籭d
+					}
+					if (data_attr) {
+						enviroment.edit_dlg.form_control = { //鎵�睘鐨勮〃鍗曟帶浠�+							name: data_attr.Name, //瀛楁灞炴�
+							text: data_attr.DispName, //鏄剧ず鏂囨湰
+							group_name: data_attr.GroupName, //灞炴�缁�+							type: data_attr.Type, //瀛楁绫诲瀷
+							readonly: data_attr.ReadOnly, //鏄惁鍙
+							button_img: data_attr.button_img, //寮曠敤鎸夐挳鐨勫浘鏍�+							button_tooltip: data_attr.button_tooltip //寮曠敤鎸夐挳鐨則ooltip
+						}
+					}
+				}
+				enviroment = Base64.encode(JSON.stringify(enviroment)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜
+				var input_param = Base64.encode(JSON.stringify(info.attr)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜
+				var global_attr = Base64.encode(JSON.stringify(this.$data.global_attr)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜
+				if (info.dataJson)
+					info.dataJson = Base64.encode(JSON.stringify(info.dataJson)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜
+				var obj_attr = {};
+				info.attr.forEach(item => {
+					obj_attr[item.attr] = item.value;
+				});
+				if (!info.eventid.includes('{')) info.eventid = '{' + info.eventid + '}';
+				var dataInfo = {
+					ed_type: info.edtype,
+					start_transaction: true,
+					class_id: info.clsid,
+					class_name: '',
+					event_id: info.eventid,
+					event_name: '',
+					data_obj_id: info.objid,
+					obj_attr: obj_attr,
+					prj_id: info.projectid,
+					ref_cls_id: info.rclsid,
+					rel_obj_id: info.robjid,
+					user_login: info.userlogin,
+					data_json: info.dataJson,
+					compose_info: '',
+					ext_info: enviroment,
+					global_attr: global_attr,
+					input_param: input_param,
+				};
+				console.log(dataInfo);
+				// return;
+				runCustomEvent(dataInfo).then(data => {
+					if (data.ret != 0) {
+						var tip = data.err_info ? typeof data.err_info == 'string' ? data
+							.err_info :
+							data
+							.err_info.join('<br/>') : '';
+						if (data.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') + ':' + data
+								.ret,
+							showCancel: false,
+							confirmText: this.translateSys("cancel")
+						});
+						return false
+					} else {
+						var tip = data.info ? typeof data.info == 'string' ? data.info : data
+							.info
+							.join(
+								'<br/>') : '';
+						if (tip) uni.showModal({
+							title: this.translateSys("tip"),
+							content: tip,
+							showCancel: false,
+							confirmText: this.translateSys("cancel")
+						});
+
+						var actionlist = data.action;
+						if (actionlist) {
+							console.log(actionlist);
+							for (var i = 0; i < actionlist.length; i++) {
+								var action = actionlist[i];
+								if (action.action_type == 'set_dlg_attr') {
+									var result = action.value;
+									$this.setFormValues(result)
+								} else if (action.action_type == 'set_dlg_attr_show') {
+									var result = action.value;
+									result.forEach(async (attr, key) => {
+										$this.$data.head_styledef.form.items
+											.forEach(
+												async (ele,
+													index) => {
+													//鍒ゆ柇鏄惁鏄爡鏍艰〃鍗�+													if (ele.name != 'Layout') {
+														if (ele.fieldId == attr
+															.attr) {
+															ele.show = attr
+																.show;
+														}
+													} else if (ele.name ==
+														'Layout') {
+														ele.setting.colList
+															.forEach(
+																col => {
+																	if (col) {
+																		if (col
+																			.fieldId ==
+																			attr
+																			.attr
+																		) {
+																			col.show =
+																				attr
+																				.show;
+																		}
+																	}
+																});
+													}
+												});
+									});
+									var head_styledef = JSON.parse(JSON.stringify($this.$data
+										.head_styledef));
+									$this.$data.head_styledef = [];
+									$this.$data.head_styledef = head_styledef;
+									// console.log($this.$data.head_styledef);
+								} else if (action.action_type == 'set_global_attr') {
+									$this.$data.global_attr = action.value || [];
+								} else {
+									uni.showModal({
+										title: this.translateSys("tip"),
+										content: this.translateSys(
+												"quotation_mark_left") +
+											action
+											.action_type + this.translateSys(
+												"quotation_mark_right") + this
+											.translate(
+												"tip_action_unprocessed"),
+										showCancel: false,
+										confirmText: this.translateSys("cancel")
+									});
+								}
+							}
+						}
+						console.log($this.head_styledef);
+						if (data.result) {
+							var result = data.result;
+							for (var i = 0; i < result.length; i++) {
+								for (var c = 0; c < $this.$data.head_styledef.form.items
+									.length; c++) {
+									var attr = $this.$data.head_styledef.form.items[c];
+									//鍒ゆ柇琛ㄥ崟閲屾槸鍚︽湁杩斿洖瀛楁锛屾病鏈夊氨瑁呰浇鍒癿odel閲岋紝鐐瑰嚮纭畾鎻愪氦鐨勬椂鍊欏甫涓婅繖浜涙暟鎹�+									if ($this.head_styledef.form.model[result[i].attr] ==
+										undefined) {
+										$this.head_styledef.form.model[result[i].attr] =
+											result[i]
+											.value;
+									}
+									//鍒ゆ柇鏄惁鏄爡鏍艰〃鍗�+									if (attr.name != 'Layout') {
+										if (attr.fieldId == result[i].attr) {
+											attr.value = '';
+											attr.oldvalue = '';
+											attr.value = result[i].value;
+											attr.oldvalue = result[i].value;
+											$this.head_styledef.form.model[attr.fieldId] =
+												result[i]
+												.value;
+										}
+									} else if (attr.name == 'Layout') {
+										attr.setting.colList.forEach(col => {
+											if (col) {
+												if (col.fieldId == result[i].attr) {
+													col.value = '';
+													col.oldvalue = '';
+													col.value = result[i].value;
+													col.oldvalue = result[i].value;
+													$this.head_styledef.form.model[col
+															.fieldId] =
+														result[i].value;
+												}
+											}
+										});
+									}
+								}
+
+								var length = 0;
+								if (!$this.$data.refdatastore.filter(function(s) {
+										return result[i].attr == s.attr
+									}).length) {
+									length = 1;
+									$this.$data.refdatastore.push(result[i]);
+								}
+								if (length == 0) {
+									for (var j = 0; j < $this.$data.refdatastore.length; j++) {
+										if ($this.$data.refdatastore[j].attr == result[i]
+											.attr) {
+											$this.$data.refdatastore[j].value = result[i]
+												.value;
+										}
+									}
+								}
+							}
+						}
+					}
+
+				}).catch(ex => {
+					// console.log(ex);
+					let exStr = JSON.stringify(ex)
+					if (exStr == "{}")
+						exStr = ex
+					let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr
+					uni.showModal({
+						title: this.translateSys("error") + "3.1",
+						content: exStr,
+						showCancel: false,
+						confirmText: this.translateSys("cancel")
+					});
+				});
+			},
+			dataObjRunCustomEvent_Return(eventid, data_attr, button_callback, item) {
+				console.log("dataObjRunCustomEvent_Return",eventid,data_attr,button_callback)
+				const $this = this
+				var enviroment = {
+					'function': '3000', // 鍔熻兘鐐圭紪鍙�+					cls_id: $this.ClsID, // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇�+					'button': 'top', // top/bottom
+					button_name: $this.translateSys('add2'),
+					master: {
+						cls_id: $this.ClsID, // button=bottom鏃�master鐨刢ls_id
+						//obj_id: ''  // button=bottom鏃�master鐨刼bj_id
+					}
+				};
+				var obj_attr = $this.head_styledef.form.model;
+				console.log(obj_attr);
+				var req = Object.keys(obj_attr).map((a) => ({
+					attr: a,
+					value: obj_attr[a] || "",
+				}));
+				if ($this.refdatastore.length > 0) {
+					for (var i = 0; i < $this.refdatastore.length; i++) {
+						if (!req.filter(function(s) {
+								return $this.refdatastore[i].attr == s.name
+							}).length) {
+							req.push({
+								'attr': $this.refdatastore[i].attr,
+								'value': $this.refdatastore[i].value
+							});
+						}
+					}
+				}
+
+				var extinfo = enviroment;
+				extinfo.edit_dlg = {
+					type: 'small', //灏忕獥鍙�+					class_id: $this.ClsID, //褰撳墠鏁版嵁绫籭d
+				}
+				extinfo = Base64.encode(JSON.stringify(extinfo)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜
+				var global_attr = Base64.encode(JSON.stringify($this.global_attr)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜
+				var obj_attr = {};
+				req.forEach(item2 => {
+					obj_attr[item2.attr] = item2.value;
+				});
+				let input_param = Base64.encode(
+					JSON.stringify(
+						Object.keys(obj_attr).map((a) => ({
+							attr: a,
+							value: obj_attr[a] || "",
+						}))
+					)
+				);
+
+				if (!eventid.includes('{')) eventid = '{' + eventid + '}';
+				var dataInfo = {
+					ed_type: "0",
+					start_transaction: true,
+					class_id: $this.ClsID,
+					class_name: '',
+					event_id: eventid,
+					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: extinfo,
+					global_attr: global_attr,
+					input_param: input_param,
+				};
+				console.log(dataInfo);
+				// return;
+				runCustomEvent(dataInfo).then(data => {
+					if (data.ret != 0) {
+						var tip = data.err_info ? typeof data.err_info == 'string' ? data
+							.err_info :
+							data
+							.err_info.join('<br/>') : '';
+						if (data.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') + ':' + data
+								.ret,
+							showCancel: false,
+							confirmText: $this.translateSys("cancel")
+						});
+						return false
+					} else {
+						var tip = data.info ? typeof data.info == 'string' ? data.info : data
+							.info
+							.join(
+								'<br/>') : '';
+						if (tip) uni.showModal({
+							title: $this.translateSys("tip"),
+							content: tip,
+							showCancel: false,
+							confirmText: $this.translateSys("cancel")
+						});
+
+						if (data != "") {
+							var actions = data.action;
+							if (actions) {
+								for (var i = 0; i < actions.length; i++) {
+									var action = actions[i];
+									console.log(action)
+									var val = action.value;
+									var enviroment = JSON.stringify(enviroment);
+
+									if (action.action_type == 'open_panel') {
+										var d = dialog({
+											title: '<i class="ace-icon fa fa-info-circle"></i> ' +
+												$this.translateSys("tip"),
+											content: $this.translateSys(
+													"quotation_mark_left") +
+												action
+												.action_type + $this.translateSys(
+													"quotation_mark_right") + $this
+												.translate(
+													"tip_action_unprocessed")
+										});
+										d.show();
+									} else if (action.action_type == 'open_select_userdlg') {
+										var style = val.style;
+										// style == 'user' ? '閫夋嫨浜哄憳' : style == 'department' ? '閫夋嫨閮ㄩ棬' : style == 'role' ? '閫夋嫨瑙掕壊' : ''
+										var param = {
+											item: item,
+											button_callback: button_callback,
+											req: req,
+											data_attr: data_attr
+										}
+										uni.navigateTo({
+											url: '../selpsn/index?mulit=false&param=' +
+												JSON
+												.stringify(
+													param),
+											events: {
+												AddPer(data, param) {
+													// console.log(param);
+													console.log(data);
+													var callback_eventid = param
+														.button_callback
+														.trim();
+													var info = {
+														eventid: callback_eventid,
+														edtype: "0",
+														projectid: '',
+														rclsid: '',
+														robjid: '',
+														userlogin: '',
+														clsid: $this.$data.param
+															.DataCls
+															.id,
+														objid: "",
+														attr: param.req,
+														inputparameter: data,
+														dataJson: [],
+													}
+													$this.DataObjRunCustomEvent(info,
+														param
+														.data_attr);
+												}
+											}
+										});
+									} else if (action.action_type == 'open_data_query_dlg') {
+										var d = dialog({
+											title: '<i class="ace-icon fa fa-info-circle"></i> ' +
+												$this.translateSys("tip"),
+											content: $this.translateSys(
+													"quotation_mark_left") +
+												action
+												.action_type + $this.translateSys(
+													"quotation_mark_right") + $this
+												.translate(
+													"tip_action_unprocessed")
+										});
+										d.show();
+									} else if (action.action_type == 'open_common_dlg') {
+
+										if (val.common_dlg_id == 'check_list') {
+											$this.setData({
+												check_list: val.config
+											})
+											if (val.config.appear_style == 'sideslip') //鍒ゆ柇鏄惁鏄晶婊�+												$this.setData({
+													popupType: "right"
+												})
+											else
+												$this.setData({
+													popupType: "center"
+												})
+											// open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦�uni-popup 缁勪欢涓婄粦瀹�type灞炴�
+											$this.$refs.popup.open($this.popupType);
+											var popupParam = {
+												item: item,
+												button_callback: button_callback,
+												req: req,
+												data_attr: data_attr
+											}
+											$this.setData({
+												popupParam: popupParam
+											})
+										}
+									} else if (action.action_type == 'open_project_query_dlg') {
+										//console.log(action.value.select_range);
+										//console.log(action.value.mulit_select);
+										var priRel = '-1';
+										if (action.value.select_range == '鍏ㄩ儴鐩稿叧')
+											priRel = '0';
+										else if (action.value.select_range == '鎴戣礋璐g殑椤圭洰')
+											priRel = '1';
+										else if (action.value.select_range == '鎴戝垱寤虹殑')
+											priRel = '2';
+										else if (action.value.select_range == '鎴戝弬涓庣殑' || action
+											.value
+											.select_range == '鎴戝弬鍔犵殑')
+											priRel = '3';
+										else if (action.value.select_range == '鎴戝叧娉ㄧ殑')
+											priRel = '4';
+										else if (action.value.select_range == '鎴戜笅灞炵殑椤圭洰')
+											priRel = '5';
+										var param_ = {
+											item: item,
+											button_callback: button_callback,
+											req: req
+										}
+										uni.navigateTo({
+											url: '../selPrj/index?relation=' + priRel +
+												'&param=' +
+												JSON.stringify(param_),
+											events: {
+												AddPer(data, param) {
+													var attr = param.item.fieldId;
+													$this.head_styledef.form.model[
+															attr] =
+														data[0].ID +
+														';' + data[0].Name;
+
+													// $this.$data.classAttrList[param.index].Attr[param.iindex].Value=data[0].Name;
+													// $this.$data.classAttrList[param.index].Attr[param.iindex].ValID=data[0].ID+';'+data[0].Name;
+													var callback_eventid = param
+														.button_callback
+														.trim();
+													if (callback_eventid) {
+														var info = {
+															eventid: callback_eventid,
+															edtype: "2",
+															projectid: data[0].ID,
+															rclsid: "",
+															robjid: "",
+															userlogin: "",
+															clsid: $this.$data
+																.param
+																.DataCls.id,
+															objid: "",
+															attr: param.req,
+															dataJson: [],
+														}
+
+														$this.DataObjRunCustomEvent(
+															info);
+													}
+												}
+											}
+										});
+									} else {
+										uni.showModal({
+											title: $this.translateSys("tip"),
+											content: $this.translateSys(
+													"quotation_mark_left") +
+												action.action_type + $this.translateSys(
+													"quotation_mark_right") + $this
+												.translate(
+													"tip_action_unprocessed"),
+											showCancel: false,
+											confirmText: $this.translateSys("cancel")
+										});
+									}
+								}
+							}
+						} else {
+							uni.showModal({
+								title: $this.translateSys('tip') + "5.2",
+								content: $this.translateSys("quotation_mark_left") +
+									"before_click_button" + $this.translateSys(
+										"quotation_mark_right") + $this.translateSys(
+										"comma") + 'event_id' + eventid,
+								showCancel: false,
+								confirmText: $this.translateSys("cancel")
+							});
+						}
+					}
+
+				}).catch(ex => {
+					// console.log(ex);
+					let exStr = JSON.stringify(ex)
+					if (exStr == "{}")
+						exStr = ex
+					let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr
+					uni.showModal({
+						title: $this.translateSys('tip') + "5.1",
+						content: exStr,
+						showCancel: false,
+						confirmText: $this.translateSys("cancel")
+					});
+				});
+			},
+
+
 			onPanelClick(value, id) {
 				// console.log(value);
 				this.active_id = id;
@@ -2378,6 +3065,51 @@
 			border-radius: 5px;
 		}
 
+		.popup-header {
+			font-size: 42rpx;
+			font-weight: bold;
+			margin: 20rpx 20rpx 0px 20rpx;
+		}
+
+		.view_popup_CheckList {
+			margin-bottom: 20rpx;
+		}
+
+		.popup-footer {
+			float: right;
+			position: absolute;
+			bottom: 0;
+			right: 20rpx;
+		}
+
+		button.btn_popup_add {
+			width: 180rpx;
+			margin-top: 50rpx;
+			margin-right: 20rpx;
+			padding: 15rpx;
+			line-height: 1.5;
+			background: #27A6E1;
+			border: none;
+			color: #fff;
+			font-size: 38rpx;
+			font-weight: bold;
+			/* float: left; */
+			display: inline-block;
+		}
+
+		button.btn_popup_cancel {
+			width: 180rpx;
+			margin-top: 50rpx;
+			padding: 15rpx;
+			line-height: 1.5;
+			background: #27A6E1;
+			border: none;
+			color: #fff;
+			font-size: 38rpx;
+			font-weight: bold;
+			/* float: right; */
+			display: inline-block;
+		}
 
 
 	}
diff --git a/pages/modal/5602.vue b/pages/modal/5602.vue
index 7e3766b..d87a1e8 100644
--- a/pages/modal/5602.vue
+++ b/pages/modal/5602.vue
@@ -20,15 +20,15 @@
 				<view class="input-wrapper" :style="{'width':`calc(96% - ${item.labelWidth}px)`}"
 					v-if="item.name=='Input' || item.name=='InputNumber'">
 					<text v-if="item.setting.prefix" class="uni-icon" :class="[item.setting.prefix]"
-						@click="onEnterChange(item)">&#xe568;</text>
+						@click="classAttr_extButton(item)">&#xe568;</text>
 					<input class="uni-input" :class="item.disabled?'input-disabled':''"
 						:type="item.name=='Input'?'text':'number'" 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="focusFieldId == item.fieldId" @focus="ontap(index,item)" @click="onClick(item)"
-						@keyup.enter="onEnterChange(item)" @blur="onEnterChange(item)"  :maxlength="-1"/>
+						@keyup.enter="onEnterChange(item)" @blur="onEnterChange(item)" :maxlength="-1" />
 					<text v-if="item.setting.suffix" class="uni-icon" :class="[item.setting.suffix]"
-						@click="onEnterChange(item)">&#xe568;</text>
+						@click="classAttr_extButton(item)">&#xe568;</text>
 				</view>
 			</view>
 		</view>
@@ -63,7 +63,7 @@
 													<input class="uni-input" v-if="!item.disabled"
 														:type="item.name=='InputNumber'?'number':'text'"
 														v-model="item.value" :disabled="item.disabled"
-														:placeholder="item.placeholder"  :maxlength="-1"/>
+														:placeholder="item.placeholder" :maxlength="-1" />
 												</view>
 												<!-- 鏍呮牸甯冨眬 -->
 												<uni-row class="demo-uni-row" v-if="item.name=='Layout'">
@@ -77,7 +77,7 @@
 															<input class="uni-input" v-if="!cols.disabled"
 																:type="cols.name=='InputNumber'?'number':'text'"
 																v-model="cols.value" :disabled="cols.disabled"
-																:placeholder="cols.placeholder"  :maxlength="-1"/>
+																:placeholder="cols.placeholder" :maxlength="-1" />
 														</view>
 													</uni-col>
 												</uni-row>
@@ -168,14 +168,31 @@
 			</view>
 
 		</view>
-		<!-- <view v-if="current==0 && param.Sub_Page[0].OK_Button==true">
-			<button type="default" @tap="cancel" class="btn_cancel">鍙栨秷</button>
-		    <button type="primary" @tap="ok" class="btn_add">纭畾</button>
+		<view>
+			<uni-popup class="view-popup" ref="popup" background-color="#fff" @change="popupChange">
+				<view class="popup-header">{{check_list.title}}</view>
+				<view class="popup-content" :class="{ 'popup-height': popupType === 'left' || popupType === 'right' }"
+					:style="{'width':check_list.width?check_list.width+'px':'200px','height':check_list.height?check_list.height+'px':'88%'}">
+					<view class="popup-cont" :style="{'height':check_list.height?check_list.height-45+'px':'415px'}">
+						<view class="view_popup_CheckList" v-for="(item,index) in check_list.items">
+							<checkbox-group class="check_list" @change="checkChange" :data-ischeck="item.check"
+								:data-index="index" :style="{'margin-left': '10rpx'}">
+								<label>
+									<checkbox :value="item.check" :checked="item.check" />
+									<text>{{item.name}}</text>
+								</label>
+							</checkbox-group>
+						</view>
+					</view>
+					<view class="popup-footer">
+						<button type="default" @tap="popup_sava" class="btn_popup_add">{{translateSys('ok')}}</button>
+						<button type="default" @tap="popup_cancel"
+							class="btn_popup_cancel">{{translateSys('cancel')}}</button>
+					</view>
+				</view>
+			</uni-popup>
 		</view>
-		<view v-if="current==1 && param.Sub_Page[1].OK_Button==true">
-			<button type="default" @tap="cancel" class="btn_cancel">鍙栨秷</button>
-		    <button type="primary" @tap="ok2" class="btn_add">纭畾</button>
-		</view> -->
+
 	</view>
 </template>
 
@@ -226,6 +243,13 @@
 				activelist: [],
 				okLoading: false,
 				ok2Loading: false,
+
+
+				global_attr: [],
+				refdatastore: [], //寮曠敤鏁版嵁瀛樺偍鍖�/ {attr:'G_PRJ_' + bindattr + '_ID', value:info.id}
+				popupType: "center",
+				check_list: {},
+				popupParam: {},
 			};
 		},
 		onLoad(options) {
@@ -613,21 +637,43 @@
 					var attr = item.fieldId;
 					this.head_styledef.form.model[attr] = item.value;
 					var onChangeEvent = item.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠�-					var onSuffixClickCallbackEvent = item.bind.onSuffixClickCallbackEvent; //鍚庡浘鏍囩偣鍑讳簨浠�-					var onSuffixClickEvent = item.bind.onSuffixClickEvent; //鍚庡浘鏍囩偣鍑诲洖璋� 					var isflag = false;
 
 					if (onChangeEvent.id) { //鍐呭鍙樺寲鍚庝簨浠� 						this.onChange(onChangeEvent);
 					}
-					// if(onSuffixClickCallbackEvent.id){   //鍚庡浘鏍囩偣鍑讳簨浠�-					//   this.onSuffixClick(onSuffixClickCallbackEvent);
-					// }
-					// if(onSuffixClickEvent.id){   //鍚庡浘鏍囩偣鍑诲洖璋�-					//   this.onSuffixClickCallback(onSuffixClickEvent);
-					// }
 				}
 			},
+			classAttr_extButton(item) {
+				var onSuffixClickCallbackEvent = item.bind.onSuffixClickCallbackEvent; //鍚庡浘鏍囩偣鍑讳簨浠�+				var onSuffixClickEvent = item.bind.onSuffixClickEvent; //鍚庡浘鏍囩偣鍑诲洖璋�+
+				if (!onSuffixClickCallbackEvent.id) {
+					uni.showModal({
+						title: this.translateSys("tip"),
+						content: this.translate('icon_click_callback_empty'),
+						showCancel: false,
+						confirmText: this.translateSys("cancel")
+					});
+					return;
+				}
+				if (!onSuffixClickEvent.id) {
+					uni.showModal({
+						title: this.translateSys("tip"),
+						content: this.translate('icon_click_event_empty'),
+						showCancel: false,
+						confirmText: this.translateSys("cancel")
+					});
+					return;
+				}
+				this.$data.popupType = 'right'
+				// open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦�uni-popup 缁勪欢涓婄粦瀹�type灞炴�
+				this.$refs.popup.open(this.popupType);
+
+				this.dataObjRunCustomEvent_Return(onSuffixClickCallbackEvent.id, '', onSuffixClickEvent.id,
+					item);
+			},
+
 			getDetailAttrList(list, selectButton) {
 				const detailAttrList = [];
 				list.forEach(style => {
@@ -1484,6 +1530,634 @@
 				this.activelist[value].active = true;
 				// console.log(this.$data.activelist);
 			},
+			popupChange(e) {
+				console.log('褰撳墠妯″紡锛� + e.type + ',鐘舵�锛� + e.show);
+			},
+			checkChange(e) { //寮规check閫夋嫨
+				// console.log(e.target.dataset);
+				var index = e.target.dataset.index;
+				var ischeck = e.target.dataset.ischeck;
+				var data = this.$data.check_list.items;
+				// this.$data.check_list.items=[];
+				if (this.$data.check_list.multiple_choice == "0") { //鍒ゆ柇鏃跺崟閫夎繕鏄閫�+					for (var i in data) {
+						data[i].check = false;
+					}
+				}
+				data[index].check = ischeck ? false : true;
+				this.$data.check_list.items = data;
+
+			},
+			popup_cancel(e) { //寮规鍙栨秷
+				this.$refs.popup.close();
+			},
+			popup_sava(e) { //寮规纭畾
+				var $this = this;
+				var items = $this.$data.check_list.items;
+				var data = [];
+				var name = "";
+				for (var i = 0; i < items.length; i++) {
+					if (items[i].check == true) {
+						if (name)
+							name += ';';
+						name += items[i].name;
+						data.push({
+							id: items[i].id,
+							name: items[i].name
+						});
+					}
+				}
+				if (!$this.$data.popupParam) {
+					uni.showModal({
+						title: this.translateSys("tip"),
+						content: "popupParam涓虹┖锛�,
+						showCancel: false,
+						confirmText: this.translateSys("cancel")
+					});
+					return;
+				}
+				if (data.length == 0) {
+					uni.showModal({
+						title: this.translateSys("tip"),
+						content: this.translate("tip_no_select_data"),
+						showCancel: false,
+						confirmText: this.translateSys("cancel")
+					});
+					return;
+				}
+				var callback_eventid = $this.$data.popupParam.button_callback.trim();
+				var info = {
+					eventid: callback_eventid,
+					edtype: "0",
+					projectid: '',
+					rclsid: '',
+					robjid: '',
+					userlogin: '',
+					clsid: $this.$data.ClsID,
+					objid: "",
+					attr: $this.$data.popupParam.req,
+					dataJson: data
+				}
+				$this.DataObjRunCustomEvent(info, $this.$data.popupParam.data_attr);
+				this.$refs.popup.close();
+			},
+
+			async DataObjRunCustomEvent(info, data_attr) {
+				var $this = this;
+				var enviroment = {
+					'function': '3000', // 鍔熻兘鐐圭紪鍙�+					cls_id: this.$data.ClsID, // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇�+					'button': 'top', // top/bottom
+					button_name: this.translateSys('add2'),
+					master: {
+						cls_id: this.$data.ClsID, // button=bottom鏃�master鐨刢ls_id
+						//obj_id: ''  // button=bottom鏃�master鐨刼bj_id
+					}
+				};
+				if (data_attr) {
+					enviroment.edit_dlg = {
+						type: 'small', //灏忕獥鍙�+						class_id: this.$data.ClsID, //褰撳墠鏁版嵁绫籭d
+					}
+					if (data_attr) {
+						enviroment.edit_dlg.form_control = { //鎵�睘鐨勮〃鍗曟帶浠�+							name: data_attr.Name, //瀛楁灞炴�
+							text: data_attr.DispName, //鏄剧ず鏂囨湰
+							group_name: data_attr.GroupName, //灞炴�缁�+							type: data_attr.Type, //瀛楁绫诲瀷
+							readonly: data_attr.ReadOnly, //鏄惁鍙
+							button_img: data_attr.button_img, //寮曠敤鎸夐挳鐨勫浘鏍�+							button_tooltip: data_attr.button_tooltip //寮曠敤鎸夐挳鐨則ooltip
+						}
+					}
+				}
+				enviroment = Base64.encode(JSON.stringify(enviroment)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜
+				var input_param = Base64.encode(JSON.stringify(info.attr)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜
+				var global_attr = Base64.encode(JSON.stringify(this.$data.global_attr)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜
+				if (info.dataJson)
+					info.dataJson = Base64.encode(JSON.stringify(info.dataJson)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜
+				var obj_attr = {};
+				info.attr.forEach(item => {
+					obj_attr[item.attr] = item.value;
+				});
+				if (!info.eventid.includes('{')) info.eventid = '{' + info.eventid + '}';
+				var dataInfo = {
+					ed_type: info.edtype,
+					start_transaction: true,
+					class_id: info.clsid,
+					class_name: '',
+					event_id: info.eventid,
+					event_name: '',
+					data_obj_id: info.objid,
+					obj_attr: obj_attr,
+					prj_id: info.projectid,
+					ref_cls_id: info.rclsid,
+					rel_obj_id: info.robjid,
+					user_login: info.userlogin,
+					data_json: info.dataJson,
+					compose_info: '',
+					ext_info: enviroment,
+					global_attr: global_attr,
+					input_param: input_param,
+				};
+				console.log(dataInfo);
+				// return;
+				runCustomEvent(dataInfo).then(data => {
+					if (data.ret != 0) {
+						var tip = data.err_info ? typeof data.err_info == 'string' ? data
+							.err_info :
+							data
+							.err_info.join('<br/>') : '';
+						if (data.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') + ':' + data
+								.ret,
+							showCancel: false,
+							confirmText: this.translateSys("cancel")
+						});
+						return false
+					} else {
+						var tip = data.info ? typeof data.info == 'string' ? data.info : data
+							.info
+							.join(
+								'<br/>') : '';
+						if (tip) uni.showModal({
+							title: this.translateSys("tip"),
+							content: tip,
+							showCancel: false,
+							confirmText: this.translateSys("cancel")
+						});
+
+						var actionlist = data.action;
+						if (actionlist) {
+							console.log(actionlist);
+							for (var i = 0; i < actionlist.length; i++) {
+								var action = actionlist[i];
+								if (action.action_type == 'set_dlg_attr') {
+									var result = action.value;
+									$this.setFormValues(result)
+								} else if (action.action_type == 'set_dlg_attr_show') {
+									var result = action.value;
+									result.forEach(async (attr, key) => {
+										$this.$data.head_styledef.form.items
+											.forEach(
+												async (ele,
+													index) => {
+													//鍒ゆ柇鏄惁鏄爡鏍艰〃鍗�+													if (ele.name != 'Layout') {
+														if (ele.fieldId == attr
+															.attr) {
+															ele.show = attr
+																.show;
+														}
+													} else if (ele.name ==
+														'Layout') {
+														ele.setting.colList
+															.forEach(
+																col => {
+																	if (col) {
+																		if (col
+																			.fieldId ==
+																			attr
+																			.attr
+																		) {
+																			col.show =
+																				attr
+																				.show;
+																		}
+																	}
+																});
+													}
+												});
+									});
+									var head_styledef = JSON.parse(JSON.stringify($this.$data
+										.head_styledef));
+									$this.$data.head_styledef = [];
+									$this.$data.head_styledef = head_styledef;
+									// console.log($this.$data.head_styledef);
+								} else if (action.action_type == 'set_global_attr') {
+									$this.$data.global_attr = action.value || [];
+								} else {
+									uni.showModal({
+										title: this.translateSys("tip"),
+										content: this.translateSys(
+												"quotation_mark_left") +
+											action
+											.action_type + this.translateSys(
+												"quotation_mark_right") + this
+											.translate(
+												"tip_action_unprocessed"),
+										showCancel: false,
+										confirmText: this.translateSys("cancel")
+									});
+								}
+							}
+						}
+						console.log($this.head_styledef);
+						if (data.result) {
+							var result = data.result;
+							for (var i = 0; i < result.length; i++) {
+								for (var c = 0; c < $this.$data.head_styledef.form.items
+									.length; c++) {
+									var attr = $this.$data.head_styledef.form.items[c];
+									//鍒ゆ柇琛ㄥ崟閲屾槸鍚︽湁杩斿洖瀛楁锛屾病鏈夊氨瑁呰浇鍒癿odel閲岋紝鐐瑰嚮纭畾鎻愪氦鐨勬椂鍊欏甫涓婅繖浜涙暟鎹�+									if ($this.head_styledef.form.model[result[i].attr] ==
+										undefined) {
+										$this.head_styledef.form.model[result[i].attr] =
+											result[i]
+											.value;
+									}
+									//鍒ゆ柇鏄惁鏄爡鏍艰〃鍗�+									if (attr.name != 'Layout') {
+										if (attr.fieldId == result[i].attr) {
+											attr.value = '';
+											attr.oldvalue = '';
+											attr.value = result[i].value;
+											attr.oldvalue = result[i].value;
+											$this.head_styledef.form.model[attr.fieldId] =
+												result[i]
+												.value;
+										}
+									} else if (attr.name == 'Layout') {
+										attr.setting.colList.forEach(col => {
+											if (col) {
+												if (col.fieldId == result[i].attr) {
+													col.value = '';
+													col.oldvalue = '';
+													col.value = result[i].value;
+													col.oldvalue = result[i].value;
+													$this.head_styledef.form.model[col
+															.fieldId] =
+														result[i].value;
+												}
+											}
+										});
+									}
+								}
+
+								var length = 0;
+								if (!$this.$data.refdatastore.filter(function(s) {
+										return result[i].attr == s.attr
+									}).length) {
+									length = 1;
+									$this.$data.refdatastore.push(result[i]);
+								}
+								if (length == 0) {
+									for (var j = 0; j < $this.$data.refdatastore.length; j++) {
+										if ($this.$data.refdatastore[j].attr == result[i]
+											.attr) {
+											$this.$data.refdatastore[j].value = result[i]
+												.value;
+										}
+									}
+								}
+							}
+						}
+					}
+
+				}).catch(ex => {
+					// console.log(ex);
+					let exStr = JSON.stringify(ex)
+					if (exStr == "{}")
+						exStr = ex
+					let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr
+					uni.showModal({
+						title: this.translateSys("error") + "3.1",
+						content: exStr,
+						showCancel: false,
+						confirmText: this.translateSys("cancel")
+					});
+				});
+			},
+			dataObjRunCustomEvent_Return(eventid, data_attr, button_callback, item) {
+				const $this = this
+				var enviroment = {
+					'function': '3000', // 鍔熻兘鐐圭紪鍙�+					cls_id: $this.ClsID, // 鍔熻兘鐐逛富鏁版嵁绫绘爣璇�+					'button': 'top', // top/bottom
+					button_name: $this.translateSys('add2'),
+					master: {
+						cls_id: $this.ClsID, // button=bottom鏃�master鐨刢ls_id
+						//obj_id: ''  // button=bottom鏃�master鐨刼bj_id
+					}
+				};
+				var obj_attr = $this.head_styledef.form.model;
+				console.log(obj_attr);
+				var req = Object.keys(obj_attr).map((a) => ({
+					attr: a,
+					value: obj_attr[a] || "",
+				}));
+				if ($this.refdatastore.length > 0) {
+					for (var i = 0; i < $this.refdatastore.length; i++) {
+						if (!req.filter(function(s) {
+								return $this.refdatastore[i].attr == s.name
+							}).length) {
+							req.push({
+								'attr': $this.refdatastore[i].attr,
+								'value': $this.refdatastore[i].value
+							});
+						}
+					}
+				}
+
+				var extinfo = enviroment;
+				extinfo.edit_dlg = {
+					type: 'small', //灏忕獥鍙�+					class_id: $this.ClsID, //褰撳墠鏁版嵁绫籭d
+				}
+				extinfo = Base64.encode(JSON.stringify(extinfo)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜
+				var global_attr = Base64.encode(JSON.stringify($this.global_attr)); //灏嗗瓧绗︿覆杞崲涓篵ase64缂栫爜
+				var obj_attr = {};
+				req.forEach(item2 => {
+					obj_attr[item2.attr] = item2.value;
+				});
+				let input_param = Base64.encode(
+					JSON.stringify(
+						Object.keys(obj_attr).map((a) => ({
+							attr: a,
+							value: obj_attr[a] || "",
+						}))
+					)
+				);
+
+				if (!eventid.includes('{')) eventid = '{' + eventid + '}';
+				var dataInfo = {
+					ed_type: "0",
+					start_transaction: true,
+					class_id: $this.ClsID,
+					class_name: '',
+					event_id: eventid,
+					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: extinfo,
+					global_attr: global_attr,
+					input_param: input_param,
+				};
+				console.log(dataInfo);
+				// return;
+				runCustomEvent(dataInfo).then(data => {
+					if (data.ret != 0) {
+						var tip = data.err_info ? typeof data.err_info == 'string' ? data
+							.err_info :
+							data
+							.err_info.join('<br/>') : '';
+						if (data.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') + ':' + data
+								.ret,
+							showCancel: false,
+							confirmText: $this.translateSys("cancel")
+						});
+						return false
+					} else {
+						var tip = data.info ? typeof data.info == 'string' ? data.info : data
+							.info
+							.join(
+								'<br/>') : '';
+						if (tip) uni.showModal({
+							title: $this.translateSys("tip"),
+							content: tip,
+							showCancel: false,
+							confirmText: $this.translateSys("cancel")
+						});
+
+						if (data != "") {
+							var actions = data.action;
+							if (actions) {
+								for (var i = 0; i < actions.length; i++) {
+									var action = actions[i];
+									console.log(action)
+									var val = action.value;
+									var enviroment = JSON.stringify(enviroment);
+
+									if (action.action_type == 'open_panel') {
+										var d = dialog({
+											title: '<i class="ace-icon fa fa-info-circle"></i> ' +
+												$this.translateSys("tip"),
+											content: $this.translateSys(
+													"quotation_mark_left") +
+												action
+												.action_type + $this.translateSys(
+													"quotation_mark_right") + $this
+												.translate(
+													"tip_action_unprocessed")
+										});
+										d.show();
+									} else if (action.action_type == 'open_select_userdlg') {
+										var style = val.style;
+										// style == 'user' ? '閫夋嫨浜哄憳' : style == 'department' ? '閫夋嫨閮ㄩ棬' : style == 'role' ? '閫夋嫨瑙掕壊' : ''
+										var param = {
+											item: item,
+											button_callback: button_callback,
+											req: req,
+											data_attr: data_attr
+										}
+										uni.navigateTo({
+											url: '../selpsn/index?mulit=false&param=' +
+												JSON
+												.stringify(
+													param),
+											events: {
+												AddPer(data, param) {
+													// console.log(param);
+													console.log(data);
+													var callback_eventid = param
+														.button_callback
+														.trim();
+													var info = {
+														eventid: callback_eventid,
+														edtype: "0",
+														projectid: '',
+														rclsid: '',
+														robjid: '',
+														userlogin: '',
+														clsid: $this.$data.param
+															.DataCls
+															.id,
+														objid: "",
+														attr: param.req,
+														inputparameter: data,
+														dataJson: [],
+													}
+													$this.DataObjRunCustomEvent(info,
+														param
+														.data_attr);
+												}
+											}
+										});
+									} else if (action.action_type == 'open_data_query_dlg') {
+										var d = dialog({
+											title: '<i class="ace-icon fa fa-info-circle"></i> ' +
+												$this.translateSys("tip"),
+											content: $this.translateSys(
+													"quotation_mark_left") +
+												action
+												.action_type + $this.translateSys(
+													"quotation_mark_right") + $this
+												.translate(
+													"tip_action_unprocessed")
+										});
+										d.show();
+									} else if (action.action_type == 'open_common_dlg') {
+
+										if (val.common_dlg_id == 'check_list') {
+											$this.setData({
+												check_list: val.config
+											})
+											if (val.config.appear_style == 'sideslip') //鍒ゆ柇鏄惁鏄晶婊�+												$this.setData({
+													popupType: "right"
+												})
+											else
+												$this.setData({
+													popupType: "center"
+												})
+											// open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦�uni-popup 缁勪欢涓婄粦瀹�type灞炴�
+											$this.$refs.popup.open($this.popupType);
+											var popupParam = {
+												item: item,
+												button_callback: button_callback,
+												req: req,
+												data_attr: data_attr
+											}
+											$this.setData({
+												popupParam: popupParam
+											})
+										}
+									} else if (action.action_type == 'open_project_query_dlg') {
+										//console.log(action.value.select_range);
+										//console.log(action.value.mulit_select);
+										var priRel = '-1';
+										if (action.value.select_range == '鍏ㄩ儴鐩稿叧')
+											priRel = '0';
+										else if (action.value.select_range == '鎴戣礋璐g殑椤圭洰')
+											priRel = '1';
+										else if (action.value.select_range == '鎴戝垱寤虹殑')
+											priRel = '2';
+										else if (action.value.select_range == '鎴戝弬涓庣殑' || action
+											.value
+											.select_range == '鎴戝弬鍔犵殑')
+											priRel = '3';
+										else if (action.value.select_range == '鎴戝叧娉ㄧ殑')
+											priRel = '4';
+										else if (action.value.select_range == '鎴戜笅灞炵殑椤圭洰')
+											priRel = '5';
+										var param_ = {
+											item: item,
+											button_callback: button_callback,
+											req: req
+										}
+										uni.navigateTo({
+											url: '../selPrj/index?relation=' + priRel +
+												'&param=' +
+												JSON.stringify(param_),
+											events: {
+												AddPer(data, param) {
+													var attr = param.item.fieldId;
+													$this.head_styledef.form.model[
+															attr] =
+														data[0].ID +
+														';' + data[0].Name;
+
+													// $this.$data.classAttrList[param.index].Attr[param.iindex].Value=data[0].Name;
+													// $this.$data.classAttrList[param.index].Attr[param.iindex].ValID=data[0].ID+';'+data[0].Name;
+													var callback_eventid = param
+														.button_callback
+														.trim();
+													if (callback_eventid) {
+														var info = {
+															eventid: callback_eventid,
+															edtype: "2",
+															projectid: data[0].ID,
+															rclsid: "",
+															robjid: "",
+															userlogin: "",
+															clsid: $this.$data
+																.param
+																.DataCls.id,
+															objid: "",
+															attr: param.req,
+															dataJson: [],
+														}
+
+														$this.DataObjRunCustomEvent(
+															info);
+													}
+												}
+											}
+										});
+									} else {
+										uni.showModal({
+											title: $this.translateSys("tip"),
+											content: $this.translateSys(
+													"quotation_mark_left") +
+												action.action_type + $this.translateSys(
+													"quotation_mark_right") + $this
+												.translate(
+													"tip_action_unprocessed"),
+											showCancel: false,
+											confirmText: $this.translateSys("cancel")
+										});
+									}
+								}
+							}
+						} else {
+							uni.showModal({
+								title: $this.translateSys('tip') + "5.2",
+								content: $this.translateSys("quotation_mark_left") +
+									"before_click_button" + $this.translateSys(
+										"quotation_mark_right") + $this.translateSys(
+										"comma") + 'event_id' + eventid,
+								showCancel: false,
+								confirmText: $this.translateSys("cancel")
+							});
+						}
+					}
+
+				}).catch(ex => {
+					// console.log(ex);
+					let exStr = JSON.stringify(ex)
+					if (exStr == "{}")
+						exStr = ex
+					let tip = typeof ex.errMsg == "string" ? ex.errMsg : exStr
+					uni.showModal({
+						title: $this.translateSys('tip') + "5.1",
+						content: exStr,
+						showCancel: false,
+						confirmText: $this.translateSys("cancel")
+					});
+				});
+			},
+
 
 			//纭畾
 			ok() {
@@ -2377,5 +3051,52 @@
 		.demo-uni-row .uni-input {
 			width: calc(100% - 120px);
 		}
+
+		.popup-header {
+			font-size: 42rpx;
+			font-weight: bold;
+			margin: 20rpx 20rpx 0px 20rpx;
+		}
+
+		.view_popup_CheckList {
+			margin-bottom: 20rpx;
+		}
+
+		.popup-footer {
+			float: right;
+			position: absolute;
+			bottom: 0;
+			right: 20rpx;
+		}
+
+		button.btn_popup_add {
+			width: 180rpx;
+			margin-top: 50rpx;
+			margin-right: 20rpx;
+			padding: 15rpx;
+			line-height: 1.5;
+			background: #27A6E1;
+			border: none;
+			color: #fff;
+			font-size: 38rpx;
+			font-weight: bold;
+			/* float: left; */
+			display: inline-block;
+		}
+
+		button.btn_popup_cancel {
+			width: 180rpx;
+			margin-top: 50rpx;
+			padding: 15rpx;
+			line-height: 1.5;
+			background: #27A6E1;
+			border: none;
+			color: #fff;
+			font-size: 38rpx;
+			font-weight: bold;
+			/* float: right; */
+			display: inline-block;
+		}
+
 	}
 </style>
\ No newline at end of file

--
Gitblit v1.9.1