From feeff00e9c28cbf82639295759d5f507187d356f Mon Sep 17 00:00:00 2001
From: cyy <cuiqian2004@163.com>
Date: 星期日, 16 六月 2024 22:19:53 +0800
Subject: [PATCH] 5600 input——param

---
 pages/modal/5602.vue |  308 +++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 272 insertions(+), 36 deletions(-)

diff --git a/pages/modal/5602.vue b/pages/modal/5602.vue
index b6b0c8b..4e0267d 100644
--- a/pages/modal/5602.vue
+++ b/pages/modal/5602.vue
@@ -244,7 +244,7 @@
 				:class="item.disabled?'input-disabled':''"
 				v-model="item.value"
 				:localdata="item.dict"
-				@change="onChange(item)"
+				@change="onEnterChange(item)"
 				:disabled="item.disabled"
 				:clear="false"
 			></uni-data-select>
@@ -261,8 +261,8 @@
 					:disabled="item.disabled"
 					:placeholder="item.placeholder"
 					:style="{'width':item.setting.prefix && item.setting.suffix?'78%':item.setting.prefix || item.setting.suffix?'87%':'96%'}" 
-					:focus="focusMateria"
-					@focus="ontap(item)" 
+					:focus="focusFieldId == item.fieldId"
+					@focus="ontap(index,item)" 
 					@keyup.enter="onEnterChange(item)"
 					@blur="onEnterChange(item)"
 				/>
@@ -409,7 +409,7 @@
       ClsID: "Sorting_Detail",
       ClsID2: "Sorting_Result",
       param: {},
-	  focusMateria:false,
+	  focusFieldId:"",
 	  head_styledef:{
 		form:{
 			items:[]
@@ -418,7 +418,9 @@
       detail1_styledef:{},
       detail1StyleDefList:[],
       detail2_styledef:{},
-      detail2StyleDefList:[],
+      detail2StyleDefList:[],//鍒嗛〉鏁版嵁
+	  detail1ExtData: {},
+	  detail2ExtData: {}, //鍒嗛〉鎵╁睍鏁版嵁
 	  // 鍒嗘鍣ㄦ暟鎹� 	  current: 0,
 	  Before_OK_Event:{},
@@ -450,10 +452,30 @@
 	this.Detail2_UIstyleGetInfo(this.ClsID2,this.$data.param.Sub_Page[1].UI_Style.ID);
 	
 	console.log(this.$data.param);
-	//椤甸潰鍒濆鍖栬幏鍙栫劍鐐�-	// this.focusMateria=true; 
   },	
   methods: {
+	  setData: function(obj) {
+	  	let that = this;
+	  	let keys = [];
+	  	let val, data;
+	  
+	  	Object.keys(obj).forEach(function(key) {
+	  		keys = key.split(".");
+	  		val = obj[key];
+	  		data = that.$data;
+	  		keys.forEach(function(key2, index) {
+	  			if (index + 1 == keys.length) {
+	  				that.$set(data, key2, val);
+	  			} else {
+	  				if (!data[key2]) {
+	  				that.$set(data, key2, {});
+	  				}
+	  			}
+	  		  data = data[key2];
+	  		});
+	  	});
+	  },
+	  
     async Head_UIStyleGetInfo(class_id,style_id){   //鑾峰彇鑷畾涔夎〃鍗曟牱寮� 		var $this = this;
 		var dataInfo={
@@ -477,6 +499,13 @@
 				    if(ele.useDict==true){ //鍒ゆ柇useDict鏄惁浣跨敤瀛楀吀
 				        await this.DictGetInfo(ele.bind.dict,index,'mast');
 				    }
+					if($this.focusFieldId == "")
+					{
+						if(ele.name=='Input' || ele.name=='InputNumber')
+						{
+							  $this.setData({focusFieldId:ele.fieldId})
+						}
+					}
 				});
 			}else{
 				uni.showModal({title:"閿欒1",content:ret.err_msg,showCancel:false,confirmText:"鍙栨秷"});
@@ -609,13 +638,12 @@
 		});
 	},
 	
-	ontap(item){ //鎵爜鍔熻兘
+	ontap(index,item){ //鎵爜鍔熻兘
 		// var $ele = e;
-		//console.log(e.target)
 		getApp().onScan((result)=>{
 			console.log(result.decodedata);
 			item.value = result.decodedata;
-			uni.hideKeyboard();
+			//uni.hideKeyboard();
 			var $this = this;
 			
 			console.log(item);
@@ -627,18 +655,21 @@
 				var onSuffixClickCallbackEvent = item.bind.onSuffixClickCallbackEvent;   //鍚庡浘鏍囩偣鍑讳簨浠� 				var onSuffixClickEvent = item.bind.onSuffixClickEvent;   //鍚庡浘鏍囩偣鍑诲洖璋� 				var isflag = false;
-				
+
 			    if(onChangeEvent.id){   //鍐呭鍙樺寲鍚庝簨浠� 			      $this.onChange(onChangeEvent); 
 			    }
-				if(item.value){ //绗竴涓緭鍏ユ涓嶄负绌�-					$this.focusMateria = true; //鍒濆鍖栵紝绗簩涓緭鍏ユfocus灞炴�
-					// setTimeout(function(){
-					// 	$this.focusMateria=true; //绗簩涓緭鍏ユ鑾峰彇鐒︾偣
-						setTimeout(function(){
-							uni.hideKeyboard();
-						},100);
-					// },500);
+				if(item.value){ //杈撳叆妗嗕笉涓虹┖
+					  //鍒濆鍖栵紝涓嬩釜杈撳叆妗唂ocus灞炴�
+					  const curIndex =  $this.head_styledef.form.items.findIndex((ele, index2, arr) => {
+					    return (ele.name=='Input' || ele.name=='InputNumber')  && index2 > index;
+					  })
+					  if(curIndex > -1){
+					  	$this.setData({focusFieldId: $this.head_styledef.form.items[curIndex].fieldId})
+					  }
+						// setTimeout(function(){
+						// 	uni.hideKeyboard();
+						// },1000);
 				}
 			    // if(onSuffixClickCallbackEvent.id){   //鍚庡浘鏍囩偣鍑讳簨浠� 			    //   this.onSuffixClick(onSuffixClickCallbackEvent);
@@ -671,21 +702,89 @@
 		    // }
 		}
 	},
+	getDetailAttrList(list,selectButton)
+	{
+		const detailAttrList = [];
+		list.forEach(style=>{
+		  var detail_attr={};
+		  style.form.items.forEach(item => {
+		    if(item.name == "Layout"){  //鍒ゆ柇鏄惁鏄爡鏍忔牸寮�+		      item.setting.colList.forEach(cols => {
+		        if(cols!=null) detail_attr[cols.fieldId] = cols.value;
+		      });
+		    }else
+		      detail_attr[item.fieldId] = item.value;
+		  });
+		  
+		  detail_attr['id'] = style.form.objId;
+		  if(selectButton==true){ //鍒ゆ柇閫夋嫨鎸夐挳鏄惁涓簍rue
+		    if(style.SelBut_Checked==true) 
+		      detailAttrList.push(detail_attr);
+		  } else 
+		    detailAttrList.push(detail_attr);
+		});
+		// console.log(detailAttrList);
+		list.forEach(style=>{
+		  style.form.attrs.forEach(attr => {
+		    for(var key in detailAttrList){
+		      if(style.form.objId == detailAttrList[key]['id']){
+		        var keys = Object.keys(detailAttrList[key]);
+		        var isflag = true;
+		        keys.forEach((ele) => {
+		          if(ele == attr.attr) isflag = false;
+		        });
+		        if(isflag) {
+		          detailAttrList[attr.attr] = attr.value;
+		        }
+			  }
+		    } 
+		  });
+		});
+		
+		const jsonlist=[];
+		detailAttrList.forEach(attr=>{
+			jsonlist.push({
+			  id:attr["id"]|| "",
+			  attrs: Object.keys(attr).map((a) => ({
+				attr: a,
+				value: attr[a] || "",
+			  })).filter((a)=>{return a.attr != "id"})
+			});
+		});
+		return jsonlist;
+	},
+	
 	// 鍐呭鍙樺寲鍚庝簨浠� 	async onChange(event) {
 	    try {
 	        if (event.id) {
+				
+				//鑾峰彇琛ㄥご灞炴�
+			var head_attr = {};
+				this.head_styledef.form.items.forEach(item => {
+					head_attr[item.fieldId] = item.value;
+				});
 	          var obj_attr = this.head_styledef.form.model;
 	          // console.log(obj_attr);
 	          var input_param = Base64.encode(
 	            JSON.stringify(
-	              Object.keys(obj_attr).map((a) => ({
+	              Object.keys(head_attr).map((a) => ({
 	                attr: a,
-	                value: obj_attr[a] || "",
+	                value: head_attr[a] || "",
 	              }))
 	            )
 	          );
 			  var $this = this;
+			  const jsonList = []
+			  const itemlist1= $this.getDetailAttrList($this.detail1StyleDefList,$this.param.Sub_Page[0].Select_Button)
+			  const itemlist2= $this.getDetailAttrList($this.detail2StyleDefList,$this.param.Sub_Page[1].Select_Button)
+			  
+			  jsonList.push({page_name:$this.param.Sub_Page[0].Name,item_list:itemlist1,ext_data:$this.detail1ExtData})
+			  jsonList.push({page_name:$this.param.Sub_Page[1].Name,item_list:itemlist2,ext_data:$this.detail2ExtData})
+			 
+			  const data_json = Base64.encode(
+			      JSON.stringify(jsonList)
+			  );
 			  var dataInfo={
 	            ed_type: 0,
 				start_transaction: '',
@@ -699,9 +798,9 @@
 				ref_cls_id: '',
 				rel_obj_id: '',
 				user_login: '',
-				data_json: '',
+				data_json: data_json,
 				compose_info: '',
-				ext_info: '',
+				ext_info: "",
 				global_attr: '',
 	            input_param: input_param,
 	          };
@@ -776,6 +875,30 @@
 									  }
 									});
 								}
+								else if (item.action_type == "set_subtable_page_row") {
+									$this.viewActionSetRow( item.value)
+									
+								} else if (item.action_type == "set_subtable_page_ext_data") {
+									var value = item.value;
+									if (value.page_name == $this.$data.param.Sub_Page[0].Name) { //鍒ゆ柇杩斿洖鐨刟ction鐨刾age_name鏄惁鏄緟鍒嗘嫞
+										$this.setData({detail1ExtData:value.ext_data})
+									} else if (value.page_name == $this.$data.param.Sub_Page[1].Name) {
+										$this.setData({detail2ExtData:value.ext_data})
+									}
+								}
+								else if (item.action_type == "clear_subpage_rows") {
+									var value = item.value;
+									if (value.page_name == $this.$data.param.Sub_Page[0].Name) { //鍒ゆ柇杩斿洖鐨刟ction鐨刾age_name鏄惁鏄緟鍒嗘嫞
+										$this.setData({detail1StyleDefList:[],detail1ExtData:{}})
+									} else if (value.page_name == $this.$data.param.Sub_Page[1].Name) {
+										$this.setData({detail2StyleDefList:[],detail2ExtData:{}})
+									}
+								}
+								else if (item.action_type == "set_dlg_current_edit_attr") {
+									if($this.focusFieldId == item.value)
+										$this.setData({focusFieldId: ""})
+									$this.setData({focusFieldId:item.value})
+								}
 								else if(item.action_type == "set_dlg_attr"){
 								  // value = {"attr":"xxx", "value":"xxx"}
 								  var data = item.value;
@@ -810,6 +933,82 @@
 			
 	    }
 	},
+	operationNumber(value1, value2,operation){
+		var number1 = 0
+		var number2 =0
+		if(value1)
+			number1 =  parseInt(value1)
+		if(value2)	
+			number2 =  parseInt(value2)
+		if(operation == "+")
+		{
+			return number1 + number2
+		}
+		else if(operation == "-")
+		{
+			return number1 - number2
+		}
+		else if(operation == "*")
+		{
+			return number1 * number2
+		}
+		else if(operation == "/")
+		{
+			if(number2)
+				return number1 / number2
+			else
+				return number1 
+		}
+		else return number2 
+	},
+	//鏇存柊鍒嗛〉绛句腑鐨勫垪琛ㄩ」鍐呭
+	viewActionSetRow(value) {
+		const $this = this
+		var detailStyleDefList = []
+		if(value.page_name == $this.$data.param.Sub_Page[1].Name)
+		{
+			detailStyleDefList = $this.$data.detail2StyleDefList
+		}
+		else if(value.page_name == $this.$data.param.Sub_Page[0].Name)
+		{
+			detailStyleDefList =$this.$data.detail1StyleDefList
+		}
+		detailStyleDefList.forEach(ele=>{
+			value.row.forEach((rowData) => {
+			    if(ele.form.objId == rowData.id){
+					rowData.attrs.forEach(attr=>{
+					    ele.form.items.forEach(ele2=>{
+					        if(ele2.name!='Layout'){
+					          if(ele2.fieldId == attr.attr){
+									ele2.value =$this.operationNumber(ele2.value,attr.value,attr.operation)
+							  }
+					        } else if(ele2.name=='Layout'){
+					          ele2.setting.colList.forEach(col=>{
+					            if(col)
+								{
+					              if(col.fieldId == attr.attr) 
+								  {
+									col.value =$this.operationNumber(col.value,attr.value,attr.operation)
+					              }
+								}
+					          })
+					        }
+					    });
+					});
+				}
+			})	
+		});
+		if(value.page_name == $this.$data.param.Sub_Page[1].Name)
+		{
+			$this.setData({detail2StyleDefList:detailStyleDefList})
+		}
+		else if(value.page_name == $this.$data.param.Sub_Page[0].Name)
+		{
+			 $this.setData({detail1StyleDefList:detailStyleDefList})
+		}
+		
+	},
+	
 	//鍔犺浇姝e湪鍒嗘嫞鍐呭
 	viewAceionRow(data,type){
 		// console.log(data);
@@ -861,6 +1060,13 @@
 	//鍔犺浇宸插垎鎷e唴瀹� 	viewAceionContent(data){
 		var $this = this;
+		
+		if (data.page_name == $this.$data.param.Sub_Page[0].Name) {
+			$this.detail1ExtData = data.ext_data || {}
+		}
+		else if (data.page_name == $this.$data.param.Sub_Page[1].Name) {
+			$this.detail2ExtData = data.ext_data || {}
+		} 
 		if(JSON.stringify(data.content) =='{}'){
 		  return;
 		}
@@ -1077,15 +1283,17 @@
 		 var jsonlist=[];
 		detailAttrList.forEach(attr=>{
 		    jsonlist.push({
-		      id:'',
+		      id:attr["id"]|| "",
 		      attrs: Object.keys(attr).map((a) => ({
 		        attr: a,
 		        value: attr[a] || "",
-		      }))
+		      })).filter((a)=>{return a.attr != "id"})
 		    });
 		});
 		// console.log(jsonlist);
-		$this.runCustomEvent(event,input_param,jsonlist,'1');
+		const list = []
+		list.push({page_name:$this.param.Sub_Page[0].Name,item_list:jsonlist,ext_data:$this.detail1ExtData})
+		$this.runCustomEvent(event,input_param,list,'1');
 		// jsonlist.forEach(async (json,key)=>{
 		// 	await $this.runCustomEvent(event,input_param,json,'1');
 		// });
@@ -1164,15 +1372,18 @@
     	 var jsonlist=[];
     	detailAttrList.forEach(attr=>{
     	    jsonlist.push({
-    	      id:'',
+    	      id:attr["id"]|| "",
     	      attrs: Object.keys(attr).map((a) => ({
     	        attr: a,
     	        value: attr[a] || "",
-    	      }))
+    	      })).filter((a)=>{return a.attr != "id"})
     	    });
     	});
+		const list = []
+		list.push({page_name:$this.param.Sub_Page[1].Name,item_list:jsonlist,ext_data:$this.detail2ExtData})
+		
     	// console.log(jsonlist);
-    	$this.runCustomEvent(event,input_param,jsonlist,'2');
+    	$this.runCustomEvent(event,input_param,list,'2');
     	// jsonlist.forEach(async (json,key)=>{
     	// 	await $this.runCustomEvent(event,input_param,json,'2');
     	// });
@@ -1233,12 +1444,12 @@
 								}
 							});
 							//娓呴櫎寰呭垎鎷d腑鎴愬姛鐨勬暟鎹�-							$this.$data.detail1StyleDefList.forEach((style,index)=>{
-							  if(style.form.items[0].fieldId == json.attrs[0].attr && style.form.items[0].value == json.attrs[0].value){ 
-								$this.$data.detail1StyleDefList.splice(index,1);
-								return;
-							  }
-							});
+							// $this.$data.detail1StyleDefList.forEach((style,index)=>{
+							//   if(style.form.items[0].fieldId == json.attrs[0].attr && style.form.items[0].value == json.attrs[0].value){ 
+							// 	$this.$data.detail1StyleDefList.splice(index,1);
+							// 	return;
+							//   }
+							// });
 							// this.detail2StyleDefList=[];
 							uni.showModal({title:"鎻愮ず",content:"鍒嗘嫞鎴愬姛",showCancel:false,confirmText:"鍙栨秷"});
 						  } else if(item.action_type == "set_subtable_page_content"){  //鍔犺浇澶氭潯鏁版嵁
@@ -1273,7 +1484,32 @@
 								  });
 								});
 							}
-						  } else if(item.action_type == "refresh"){  //鍒锋柊
+						  } 
+						  else if (item.action_type == "set_subtable_page_row") {
+						  	$this.viewActionSetRow( item.value)
+						  	
+						  } else if (item.action_type == "set_subtable_page_ext_data") {
+						  	var value = item.value;
+						  	if (value.page_name == $this.$data.param.Sub_Page[0].Name) { //鍒ゆ柇杩斿洖鐨刟ction鐨刾age_name鏄惁鏄緟鍒嗘嫞
+						  		$this.setData({detail1ExtData:value.ext_data})
+						  	} else if (value.page_name == $this.$data.param.Sub_Page[1].Name) {
+						  		$this.setData({detail2ExtData:value.ext_data})
+						  	}
+						  }
+						  else if (item.action_type == "clear_subpage_rows") {
+						  	var value = item.value;
+						  	if (value.page_name == $this.$data.param.Sub_Page[0].Name) { //鍒ゆ柇杩斿洖鐨刟ction鐨刾age_name鏄惁鏄緟鍒嗘嫞
+						  		$this.setData({detail1StyleDefList:[],detail1ExtData:{}})
+						  	} else if (value.page_name == $this.$data.param.Sub_Page[1].Name) {
+						  		$this.setData({detail2StyleDefList:[],detail2ExtData:{}})
+						  	}
+						  }
+						  else if (item.action_type == "set_dlg_current_edit_attr") {
+							  if($this.focusFieldId == item.value)
+								$this.setData({focusFieldId: ""})
+						  	$this.setData({focusFieldId:item.value})
+						  }
+						  else if(item.action_type == "refresh"){  //鍒锋柊
 						    var value = item.value;
 							//娓呴櫎寰呭垎鎷f垚鍔熺殑鏁版嵁
 							// value.forEach((val_id,key)=>{

--
Gitblit v1.9.1