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