From d370e786bc369c3b161b20a4027ef989fa133208 Mon Sep 17 00:00:00 2001
From: cyy <cuiqian2004@163.com>
Date: 星期一, 17 六月 2024 22:11:36 +0800
Subject: [PATCH] 多次设置焦点问题

---
 pages/modal/5602.vue |  287 +++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 247 insertions(+), 40 deletions(-)

diff --git a/pages/modal/5602.vue b/pages/modal/5602.vue
index 02975f3..bee0d0a 100644
--- a/pages/modal/5602.vue
+++ b/pages/modal/5602.vue
@@ -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,8 @@
       ClsID: "Sorting_Detail",
       ClsID2: "Sorting_Result",
       param: {},
-	  focusMateria:false,
+	  focusFieldId:"",
+	  focusOldFieldId:"",
 	  head_styledef:{
 		form:{
 			items:[]
@@ -425,6 +426,8 @@
 	  current: 0,
 	  Before_OK_Event:{},
       After_OK_Event:{},
+	  Before_Del_Event: {},
+	  After_Del_Event: {},
 	  items: [],
       active_id:'',
 	  activelist:[],
@@ -452,8 +455,6 @@
 	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) {
@@ -501,6 +502,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:"鍙栨秷"});
@@ -633,12 +641,13 @@
 		});
 	},
 	
-	ontap(item){ //鎵爜鍔熻兘
+	ontap(index,item){ //鎵爜鍔熻兘
 		// var $ele = e;
+		this.focusOldFieldId = item.fieldId
 		getApp().onScan((result)=>{
 			console.log(result.decodedata);
 			item.value = result.decodedata;
-			uni.hideKeyboard();
+			//uni.hideKeyboard();
 			var $this = this;
 			
 			console.log(item);
@@ -650,18 +659,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();
-						},1000);
-					// },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);
@@ -751,13 +763,18 @@
 	    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] || "",
 	              }))
 	            )
 	          );
@@ -814,7 +831,7 @@
 								else if(item.action_type == "set_subtable_page_content"){  //宸插垎鎷� 									$this.$data.param.Show_Welcom_Page=false;
 									var value = item.value;
-									if(value.clear == true && $this.$data.detail1StyleDefList.length>0 && value.page_name == $this.$data.param.Sub_Page[0].Name){ //鍒ゆ柇鏄惁娓呯┖椤电鍐呭,姝e湪鍒嗘嫞鏄惁鏈夋暟鎹�+									if( value.clear_confirm != false && value.clear == true && $this.$data.detail1StyleDefList.length>0 && value.page_name == $this.$data.param.Sub_Page[0].Name){ //鍒ゆ柇鏄惁娓呯┖椤电鍐呭,姝e湪鍒嗘嫞鏄惁鏈夋暟鎹� 										uni.showModal({
 											title: '鎻愮ず',
 											content: '绯荤粺妫�祴鍒版湁寰呭垎鎷d腑鐨勬暟鎹紝缁х画鎿嶄綔浼氭竻绌猴紝鏄惁缁х画锛�,
@@ -862,6 +879,19 @@
 									  }
 									});
 								}
+								else if(item.action_type == "remove_subtable_page_row"){  //娓呴櫎闈㈡澘涓寚瀹歩d鐨勬暟鎹�+									var value = item.value; 
+									if(value.page_name == $this.param.Sub_Page[0].Name){ //鍒ゆ柇杩斿洖鐨刟ction鐨刾age_name鏄惁鏄緟鍒嗘嫞
+										//娓呴櫎闈㈡澘涓寚瀹歩d鐨勬暟鎹�+										value.row.forEach(row=>{
+											$this.$data.detail1StyleDefList.forEach((ele,index)=>{
+												if(ele.form.objId == row.id){
+												  $this.$data.detail1StyleDefList.splice(index,1); 
+												}
+											});
+										});
+									}
+								} 
 								else if (item.action_type == "set_subtable_page_row") {
 									$this.viewActionSetRow( item.value)
 									
@@ -880,6 +910,16 @@
 									} 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.focusOldFieldId == item.value)
+										$this.setData({focusFieldId: ""})
+									else{
+										$this.setData({focusFieldId:$this.focusOldFieldId})	
+									}
+									$this.$nextTick(()=> {
+										$this.setData({focusFieldId:item.value})
+									});
 								}
 								else if(item.action_type == "set_dlg_attr"){
 								  // value = {"attr":"xxx", "value":"xxx"}
@@ -1043,10 +1083,10 @@
 	viewAceionContent(data){
 		var $this = this;
 		
-		if (data.page_name == $this.$data.param.Sub_Page[0].Name) {
+		if (data.page_name == $this.param.Sub_Page[0].Name) {
 			$this.detail1ExtData = data.ext_data || {}
 		}
-		else if (data.page_name == $this.$data.param.Sub_Page[1].Name) {
+		else if (data.page_name == $this.param.Sub_Page[1].Name) {
 			$this.detail2ExtData = data.ext_data || {}
 		} 
 		if(JSON.stringify(data.content) =='{}'){
@@ -1142,11 +1182,24 @@
 	    console.log(item);
 	},
 	delItem(index){  //鍒犻櫎鍒嗘嫞涓牱寮忛潰鏉�-	    this.detail1StyleDefList.splice(index,1);
+	 //鍒犻櫎鐮佺洏涓牱寮忛潰鏉�+	  this.Before_Del_Event = this.param.Sub_Page[0].Before_Delete;
+	  this.After_Del_Event = this.param.Sub_Page[0].After_Delete;
+	  const style = this.detail1StyleDefList[index];
+	  //鍒犻櫎鐮佺洏涓牱寮忛潰鏉�+	  this.detail1StyleDefList.splice(index, 1);
+	  if (this.Before_Del_Event?.ID)
+		//鏄惁鏈夊垹闄ゅ墠浜嬩欢
+		this.del(style, this.Before_Del_Event);
+	  else if (this.After_Del_Event?.ID)
+		//鏄惁鏈夊垹闄ゅ悗浜嬩欢
+		this.del(style, this.After_Del_Event);
 	},
     delDataObj(style,index){  //鍒犻櫎宸插垎鎷f暟
       // console.log(style);
 	  var $this = this;
+	  $this.Before_Del_Event = $this.param.Sub_Page[0].Before_Delete;
+	  $this.After_Del_Event = $this.param.Sub_Page[0].After_Delete;
 	  uni.showModal({
 	  	title: '鎻愮ず',
 	  	content: '纭畾鍒犻櫎璇ュ凡鍒嗘嫞鏁版嵁锛�,
@@ -1164,9 +1217,16 @@
 				$this.$store.dispatch('dataObjDel',dataInfo).then(ret=>{
 					// console.log(ret);
 					if (ret.err_code == 0) {
-						$this.detail2StyleDefList.splice(index,1);
+							
+					   const style = $this.detail2StyleDefList[index];
+					   $this.detail2StyleDefList.splice(index, 1); 
+					   if ($this.Before_Del_Event?.ID)
+						//鏄惁鏈夊垹闄ゅ墠浜嬩欢
+						$this.del2(style, $this.Before_Del_Event);
+					   else if ($this.After_Del_Event?.ID)
+						//鏄惁鏈夊垹闄ゅ悗浜嬩欢
+						$this.del2(style, $this.After_Del_Event);
 						uni.showModal({title:"鎻愮ず",content:"鍒犻櫎鎴愬姛锛�,showCancel:false,confirmText:"鍙栨秷"});
-						
 					}else{
 						uni.showModal({title:"閿欒5",content:ret.err_msg,showCancel:false,confirmText:"鍙栨秷"});
 					}
@@ -1181,6 +1241,139 @@
 	  });
       
     },
+	async del(style, event) {
+  //鑾峰彇琛ㄥご灞炴�
+	    var head_attr = {};
+	    this.$data.head_styledef.form.items.forEach(item => {
+	      head_attr[item.fieldId] = item.value;
+	    });
+	    // console.log(head_attr);
+	    //鑾峰彇姝e湪鍒嗘嫞灞炴�
+	  var detailAttrList = [];
+	  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($this.param.Sub_Page[0].Select_Button==true){ //鍒ゆ柇閫夋嫨鎸夐挳鏄惁涓簍rue
+		if(style.SelBut_Checked==true) 
+		  detailAttrList.push(detail_attr);
+	  } else 
+		detailAttrList.push(detail_attr);
+
+	    // console.log(detailAttrList);
+		//鑾峰彇姝e湪鍒嗘嫞閲屾病鏈夋樉绀虹殑瀛楁
+	  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;
+			}
+		  }
+		}
+	  });
+		var input_param = Base64.encode(
+		    JSON.stringify(
+		      Object.keys(head_attr).map((a) => ({
+		        attr: a,
+		        value: head_attr[a] || "",
+		      }))
+		    )
+		);
+		 var 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"})
+		    });
+		});
+		// console.log(jsonlist);
+		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');
+	},
+	
+	async del2(style, event) {
+	     //鑾峰彇琛ㄥご灞炴�
+		var head_attr = {};
+		this.$data.head_styledef.form.items.forEach(item => {
+		  head_attr[item.fieldId] = item.value;
+		});
+		// console.log(head_attr);
+		//鑾峰彇宸插垎鎷e睘鎬�+		var detailAttrList = [];
+		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($this.param.Sub_Page[1].Select_Button==true){ //鍒ゆ柇閫夋嫨鎸夐挳鏄惁涓簍rue
+			if(style.SelBut_Checked==true) 
+				detailAttrList.push(detail_attr);
+		} else 
+			detailAttrList.push(detail_attr);
+		//鑾峰彇宸插垎鎷i噷娌℃湁鏄剧ず鐨勫瓧娈�+		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;
+				}
+			  }
+			} 
+		});
+		// console.log(detailAttrList);
+ //    return;
+		var input_param = Base64.encode(
+			JSON.stringify(
+			  Object.keys(head_attr).map((a) => ({
+				attr: a,
+				value: head_attr[a] || "",
+			  }))
+			)
+		);
+		var 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"})
+			});
+		});
+		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,list,'2');
+	},
+	
 	onPanelClick(value){ //鐐瑰嚮闈㈡澘楂樹寒鏄剧ず
 		// console.log(value);
 		this.active_id='';
@@ -1265,15 +1458,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');
 		// });
@@ -1352,15 +1547,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');
     	// });
@@ -1432,14 +1630,13 @@
 						  } else if(item.action_type == "set_subtable_page_content"){  //鍔犺浇澶氭潯鏁版嵁
 							$this.param.Show_Welcom_Page=false;
 							var value = item.value;
-							if(value.clear == true && $this.detail1StyleDefList.length>0){ //鍒ゆ柇鏄惁娓呯┖椤电鍐呭,寰呭垎鎷f槸鍚︽湁鏁版嵁
+							if(value.clear_confirm != false && value.clear == true && $this.detail1StyleDefList.length>0){ //鍒ゆ柇鏄惁娓呯┖椤电鍐呭,寰呭垎鎷f槸鍚︽湁鏁版嵁
 								uni.showModal({
 									title: '鎻愮ず',
 									content: '绯荤粺妫�祴鍒版湁寰呭垎鎷d腑鐨勬暟鎹紝缁х画鎿嶄綔浼氭竻绌猴紝鏄惁缁х画锛�,
 									success: function (res) {
 										if (res.confirm) {
-										  $this.$data.detail1StyleDefList=[];
-										  $this.$data.detail2StyleDefList=[];
+										  $this.setData({detail1StyleDefList:[],detail2StyleDefList:[]}) 
 										  $this.viewAceionContent(value);
 										} else if (res.cancel) {
 										  $this.viewAceionContent(value);
@@ -1450,15 +1647,15 @@
 								$this.viewAceionContent(value);
 							}
 						  } else if(item.action_type == "remove_subtable_page_row"){  //娓呴櫎闈㈡澘涓寚瀹歩d鐨勬暟鎹�-							var value = item.value; 
-							if(value.page_name == $this.page.Sub_Page[0].Name){ //鍒ゆ柇杩斿洖鐨刟ction鐨刾age_name鏄惁鏄緟鍒嗘嫞
+							var value = item.value;
+							if(value.page_name == $this.param.Sub_Page[0].Name){ //鍒ゆ柇杩斿洖鐨刟ction鐨刾age_name鏄惁鏄緟鍒嗘嫞
 								//娓呴櫎闈㈡澘涓寚瀹歩d鐨勬暟鎹� 								value.row.forEach(row=>{
-								  $this.detail1StyleDefList.forEach((ele,index)=>{
-									if(ele.form.objId == row.id){
-									  $this.detail1StyleDefList.splice(index,1); 
-									}
-								  });
+									$this.$data.detail1StyleDefList.forEach((ele,index)=>{
+										if(ele.form.objId == row.id){
+										  $this.$data.detail1StyleDefList.splice(index,1); 
+										}
+									});
 								});
 							}
 						  } 
@@ -1481,6 +1678,16 @@
 						  		$this.setData({detail2StyleDefList:[],detail2ExtData:{}})
 						  	}
 						  }
+						  else if (item.action_type == "set_dlg_current_edit_attr") {
+							if($this.focusOldFieldId == item.value)
+								$this.setData({focusFieldId: ""})
+							else{
+								$this.setData({focusFieldId:$this.focusOldFieldId})	
+							}
+							$this.$nextTick(()=> {
+								$this.setData({focusFieldId:item.value})
+							});
+						  }
 						  else if(item.action_type == "refresh"){  //鍒锋柊
 						    var value = item.value;
 							//娓呴櫎寰呭垎鎷f垚鍔熺殑鏁版嵁

--
Gitblit v1.9.1