From c380a8d6e114ff623832d2b34fca52b10537a1d0 Mon Sep 17 00:00:00 2001
From: cuiqian2004 <cuiqian2004@163.com>
Date: 星期五, 14 六月 2024 17:03:22 +0800
Subject: [PATCH] 5600 onchange run +json

---
 pages/modal/3037_2.vue |  219 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 208 insertions(+), 11 deletions(-)

diff --git a/pages/modal/3037_2.vue b/pages/modal/3037_2.vue
index 020247b..7765a23 100644
--- a/pages/modal/3037_2.vue
+++ b/pages/modal/3037_2.vue
@@ -417,6 +417,8 @@
 	<view class="content">
 		<!-- 琛ㄥご鏍峰紡 -->
 		<view class="v-headStyle" v-for="(item,index) in head_styledef.form.items" >
+		  <!-- 鏅�甯冨眬 -->
+		  <view v-if="item.name!='Layout' && item.show==true">
 			<text class="txt_title" :style="{'width':item.labelWidth+'px'}">{{item.label}}锛�/text>
 			<!-- 涓嬫媺妗�鍗曢� item.useDict?item.dict:item.selections-->
 			<uni-data-select id="dv_select" v-if="item.name=='Select'"
@@ -497,7 +499,8 @@
 				   <view class="picker">{{item.value}}</view>
 				</picker>
 			</view>
-			
+		  </view>
+		  
 		</view>
 		<!-- 浠庢暟鎹�-->
 		<view class="v-panel">
@@ -528,11 +531,11 @@
 			  <view class="v-area dv-panel" v-for="(item,index) in subpanel.subClassAttr.form.items">
 				<div class="dv-panel-input">
 					<!-- 鏅�甯冨眬 -->
-					<view v-if="item.name!='Layout'">
+					<view v-if="item.name!='Layout' && item.show==true">
 						<text class="txt_title" :style="{'width':item.labelWidth+'px'}">{{item.label}}锛�/text>
 						<span class="form-item-span" v-if="item.disabled">{{item.value}}</span>
 						<!-- 鏂囨湰妗�鏁板瓧妗�-->
-						<view class="dv_input" v-if="(item.name=='Input' || item.name=='InputNumber') && !item.disabled">
+						<view class="input-wrapper" v-if="(item.name=='Input' || item.name=='InputNumber') && !item.disabled">
 							<text v-if="item.setting.prefix" 
 								class="uni-icon" 
 								:class="[item.setting.prefix]"
@@ -602,13 +605,13 @@
 						</view>
 					</view>
 					<!-- 鏍呮牸甯冨眬 -->
-					<uni-row class="demo-uni-row" v-if="item.name=='Layout'">
+					<uni-row class="demo-uni-row" v-if="item.name=='Layout' && item.show==true">
 						<uni-col v-for="(cols,key) in item.setting.colList" 
 							:span="item.setting.spanList?item.setting.spanList[key]:24 / item.setting.col">
 							<view v-if="cols!=null" >
 								<text class="txt_title" :style="{'width':cols.labelWidth+'px'}">{{cols.label}}锛�/text>
 								<span class="form-item-span" v-if="cols.disabled">{{cols.value}}</span>
-								<view class="dv_input" v-if="(cols.name=='Input' || cols.name=='InputNumber') && !cols.disabled">
+								<view class="input-wrapper" v-if="(cols.name=='Input' || cols.name=='InputNumber') && !cols.disabled">
 									<text v-if="cols.setting.prefix" 
 										class="uni-icon" 
 										:class="[cols.setting.prefix]"
@@ -789,11 +792,19 @@
 				$this.$data.head_styledef = ret.result.style_def? JSON.parse(styledef): {};
 				// console.log($this.$data.head_styledef);
 				$this.head_styledef.form.items.forEach(async (ele,index) => {
+					ele.show=true;
 				    if(ele.useDict==true){ //鍒ゆ柇useDict鏄惁浣跨敤瀛楀吀
 				        await this.DictGetInfo(ele.bind.dict,index,'mast');
 				    }
 				});
 				
+				if($this.head_styledef.event?.length>0){
+				  $this.head_styledef.event.forEach(async (a)=>{  //鍒ゆ柇鏄惁鏄垵濮嬪寲浜嬩欢
+				    if(a.event_id == "initial"){
+				      await this.loadInitEvent(a.scrip_id,'head');
+				    }
+				  });
+				}
 			}else{
 				uni.showModal({title:"閿欒1",content:ret.err_msg,showCancel:false,confirmText:"鍙栨秷"});
 			}
@@ -826,6 +837,13 @@
 				        await this.DictGetInfo(ele.bind.dict,index,'sub');
 				    }
 				});
+				if($this.detail1_styledef.event?.length>0){
+				  $detail1_styledefforEach(async (a)=>{  //鍒ゆ柇鏄惁鏄垵濮嬪寲浜嬩欢
+				    if(a.event_id == "initial"){
+				      await this.loadInitEvent(a.scrip_id,'detail');
+				    }
+				  });
+				}
 				// var aa = JSON.stringify(this.detail1_styledef);
 				// $this.$data.detail1StyleDefList.push(JSON.parse(aa));
 				// console.log($this.$data.detail1StyleDefList);
@@ -888,6 +906,157 @@
 			uni.showModal({title:"閿欒1.3",content:ex.errMsg,showCancel:false,confirmText:"鍙栨秷"});
 		});
 	},
+	async loadInitEvent(eventid,type){
+		var $this = this;
+		var styledef = type=='head'?this.head_styledef:this.detail1_styledef;
+		if(!eventid.includes('{')) eventid = '{'+eventid+'}';
+		var dataInfo={
+	      ed_type: 0,
+	      start_transaction: true,
+	      class_id: this.param.DataCls.id,
+	      event_id: eventid,
+		};
+		console.log(dataInfo);
+		// return;
+		this.$store.dispatch('runCustomEvent',dataInfo).then(success=>{
+			console.log(success);
+			if (success.err_code == 0) {
+				var data = success.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) uni.showModal({title:'鎻愮ず',content:tip,showCancel:false,confirmText:"鍙栨秷"});
+				    else uni.showModal({title:'鎻愮ず',content:tip+',鎻愮ず:'+data.ret,showCancel:false,confirmText:"鍙栨秷"});
+					return false
+				}else{
+					var tip = data.info ? typeof data.info == 'string' ? data.info : data.info.join('<br/>') : '';
+					if (tip) uni.showModal({title:'鎻愮ず',content:tip,showCancel:false,confirmText:"鍙栨秷"});
+				
+					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;
+								for (var i = 0; i < result.length; i++) {
+									if (result[i].choice_list) {
+										for (var c = 0; c < styledef.form.items.length; c++) {
+											var attr = 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 < styledef.form.items.length; c++) {
+										var attr = 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;
+											}
+										}
+									}
+								}
+							} else if (data.action[i].action_type == 'set_dlg_attr_show') {
+								var result = action.value;
+								result.forEach(async (attr,key) => {
+								  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 style_def = JSON.parse(JSON.stringify(styledef));
+								if(type=='head'){
+									$this.$data.head_styledef =[];
+									$this.$data.head_styledef = style_def;
+									// console.log($this.$data.head_styledef);
+								}else{
+									$this.$data.detail1_styledef =[];
+									$this.$data.detail1_styledef = style_def;
+									// console.log($this.$data.detail1_styledef);
+								}
+							} else {
+								uni.showModal({title:"鎻愮ず",content:"鎵ц鍒濆鍖栦簨浠跺け璐ワ細"+item.action_type + '姝ction灏氭湭澶勭悊锛�,showCancel:false,confirmText:"鍙栨秷"});
+							} 
+						}
+					}
+				}
+			}else{
+				uni.showModal({title:"閿欒3",content:"鎵ц鍒濆鍖栦簨浠跺け璐ワ細"+success.err_msg,showCancel:false,confirmText:"鍙栨秷"});
+			}
+		}).catch(ex=>{
+			// console.log(ex);
+			uni.showModal({title:"閿欒3.1",content:"鎵ц鍒濆鍖栦簨浠跺け璐ワ細"+ex.errMsg,showCancel:false,confirmText:"鍙栨秷"});
+		});
+	},
 	
 	ontap(item){ //鎵爜鍔熻兘
 		//console.log(e.target)
@@ -907,7 +1076,7 @@
 					// 	$this.focusMateria=true; //绗簩涓緭鍏ユ鑾峰彇鐒︾偣
 						setTimeout(function(){
 							uni.hideKeyboard();
-						},100);
+						},1000);
 					// },500);
 				}
 				//瀛愭暟鎹被鎵爜鍖轰簨浠惰剼鏈�@@ -1378,7 +1547,7 @@
 							if (action.action_type == 'set_dlg_attr') {
 								var result = action.value;
 								for (var i = 0; i < result.length; i++) {
-										if (result[i].choice_list) {
+									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'){
@@ -1447,9 +1616,35 @@
 										}
 									}
 								}
-							} else if (data.action[i].action_type == 'set_global_attr') {
-								$this.$data.global_attr = data.action[i].value || [];
-							}
+							} 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:"鎻愮ず",content:action.action_type + '姝ction灏氭湭澶勭悊锛�,showCancel:false,confirmText:"鍙栨秷"});
+							} 
 						}
 					}
 					
@@ -1713,7 +1908,9 @@
 										}
 									}
 								}
-							}
+							} else {
+								uni.showModal({title:"鎻愮ず",content:action.action_type + '姝ction灏氭湭澶勭悊锛�,showCancel:false,confirmText:"鍙栨秷"});
+							} 
 						}
 					}
 					

--
Gitblit v1.9.1