From b0041cf10ba3ddf74b9edcfd340a7d1c9179d878 Mon Sep 17 00:00:00 2001 From: cuiqian2004 <cuiqian2004@163.com> Date: 星期一, 03 三月 2025 18:48:19 +0800 Subject: [PATCH] 5601 form --- pages/modal/classAttr.vue | 140 ++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 121 insertions(+), 19 deletions(-) diff --git a/pages/modal/classAttr.vue b/pages/modal/classAttr.vue index 4ec556a..c61f7b0 100644 --- a/pages/modal/classAttr.vue +++ b/pages/modal/classAttr.vue @@ -24,14 +24,17 @@ </div> <input :type="attr.Type=='鏁存暟' || attr.Type=='娴偣鏁� || attr.Type=='int' || attr.Type=='float'?'number':'text'" - :value="attr.Value" @focus="ontap" @blur="onevent" v-if="attr.Height=='1'" + :value="attr.Value" :focus="focusField == `${index}-${iindex}`" @focus="ontap" + @click="onClick(index,iindex)" @blur="onevent" v-if="attr.Height=='1'" :data-index="index" :data-iindex="iindex" :style="{'width':attr.Width}" :disabled="attr.edit?false:true"> <!-- =='flase'?true:false --> - <textarea :value="attr.Value" @focus="ontap" @blur="onevent" v-else-if="attr.Height=='2'" + <textarea :value="attr.Value" :focus="focusField == `${index}-${iindex}`" @focus="ontap" + @click="onClick(index,iindex)" @blur="onevent" v-else-if="attr.Height=='2'" :data-index="index" :data-iindex="iindex" style="height:60px;" :style="{'width':attr.Width}" :disabled="attr.edit?false:true"></textarea> - <textarea :value="attr.Value" @focus="ontap" @blur="onevent" v-else-if="attr.Height=='3'" + <textarea :value="attr.Value" :focus="focusField == `${index}-${iindex}`" @focus="ontap" + @click="onClick(index,iindex)" @blur="onevent" v-else-if="attr.Height=='3'" :data-index="index" :data-iindex="iindex" style="height:90px;" :style="{'width':attr.Width}" :disabled="attr.edit?false:true"></textarea> <!-- 鎵爜鍚庝簨浠惰繑鍥�--> @@ -47,16 +50,19 @@ <p class="tx_title2" :style="{'width':classattr.title_p_wdith+'%'}">{{attr.DispName}}:</p> <input :type="attr.Type=='鏁存暟' || attr.Type=='娴偣鏁� || attr.Type=='int' || attr.Type=='float' ?'number':'text'" - class="attr_field" :value="attr.Value" @focus="ontap" @blur="onevent" - v-if="attr.Height=='1'" :data-index="index" :data-iindex="iindex" + class="attr_field" :value="attr.Value" :focus="focusField == `${index}-${iindex}`" + @focus="ontap" @blur="onevent" @click="onClick(index,iindex)" v-if="attr.Height=='1'" + :data-index="index" :data-iindex="iindex" :style="{'width': attr.Width.split('%')[0] - classattr.title_p_wdith - (attr.notempty==true?10:5) - (attr.ext_button==true?9:0) +'%'}" :disabled="attr.edit?false:true"> - <textarea class="attr_field" :value="attr.Value" @focus="ontap" @blur="onevent" + <textarea class="attr_field" :value="attr.Value" :focus="focusField == `${index}-${iindex}`" + @focus="ontap" @blur="onevent" @click="onClick(index,iindex)" v-else-if="attr.Height=='2'" :data-index="index" :data-iindex="iindex" style="height:60px;" :style="{'width': attr.Width.split('%')[0] - classattr.title_p_wdith - (attr.notempty==true?10:5) - (attr.ext_button==true?9:0) +'%'}" :disabled="attr.edit?false:true"></textarea> - <textarea class="attr_field" :value="attr.Value" @focus="ontap" @blur="onevent" + <textarea class="attr_field" :value="attr.Value" :focus="focusField ==`${index}-${iindex}`" + @focus="ontap" @blur="onevent" @click="onClick(index,iindex)" v-else-if="attr.Height=='3'" :data-index="index" :data-iindex="iindex" style="height:90px;" :style="{'width': attr.Width.split('%')[0] - classattr.title_p_wdith - (attr.notempty==true?10:5) - (attr.ext_button==true?9:0) +'%'}" @@ -150,13 +156,13 @@ <a class="class_attr_add_ref"><i class="ace-icon fa fa-plus-circle"></i></a> </div> <input type="text" :data-index="index" :data-iindex="iindex" :style="{'width':attr.Width}" - disabled="true"> + disabled="true" :maxlength="-1"> </view> <view v-if="classattr.control_style=='宸﹀彸甯冨眬'"> <p class="tx_title2" :style="{'width':classattr.title_p_wdith+'%'}">{{attr.DispName}}:</p> <input type="text" class="attr_field" :data-index="index" :data-iindex="iindex" :style="{'width': attr.Width.split('%')[0] - classattr.title_p_wdith - (attr.notempty==true?10:5) - 9 +'%'}" - disabled="true"> + disabled="true" :maxlength="-1"> <div class="text-right2" v-if="attr.Type=='寮曠敤瀵硅薄(鍗曚釜)'|| attr.Type=='obj-ref'"> <a @tap="classAttr_AddRef" :data-classid="attr.RelCls.split('|')[0]" :data-classname="attr.RelCls.split('|')[1]"><i @@ -181,13 +187,14 @@ <a class="class_attr_add_per" @tap="classAttr_AddPer(index,iindex)"><i class="ace-icon fa fa-plus-circle"></i></a> </div> - <input type="text" :value="attr.Value" :style="{'width':attr.Width}" disabled="true"> + <input type="text" :value="attr.Value" :style="{'width':attr.Width}" disabled="true" + :maxlength="-1"> </view> <view v-if="classattr.control_style=='宸﹀彸甯冨眬'"> <p class="tx_title2" :style="{'width':classattr.title_p_wdith+'%'}">{{attr.DispName}}:</p> <input type="text" class="attr_field" :value="attr.Value" :style="{'width': attr.Width.split('%')[0] - classattr.title_p_wdith - (attr.notempty==true?10:5) - 9 +'%'}" - disabled="true"> + disabled="true" :maxlength="-1"> <div class="text-right2"> <a class="class_attr_add_per" @tap="classAttr_AddPer(index,iindex)"><i class="ace-icon fa fa-plus-circle"></i></a> @@ -204,13 +211,14 @@ <a href="#" class="class_attr_add_prj" @tap="classAttr_AddPrj(index,iindex)"><i class="ace-icon fa fa-plus-circle"></i></a> </div> - <input type="text" :value="attr.Value" :style="{'width':attr.Width}" disabled="true"> + <input type="text" :value="attr.Value" :style="{'width':attr.Width}" disabled="true" + :maxlength="-1"> </view> <view v-if="classattr.control_style=='宸﹀彸甯冨眬'"> <p class="tx_title2" :style="{'width':classattr.title_p_wdith+'%'}">{{attr.DispName}}:</p> <input type="text" class="attr_field" :value="attr.Value" :style="{'width': attr.Width.split('%')[0] - classattr.title_p_wdith - (attr.notempty==true?10:5) - 9 +'%'}" - disabled="true"> + disabled="true" :maxlength="-1"> <div class="text-right2"> <a class="class_attr_add_prj" @tap="classAttr_AddPrj(index,iindex)"><i class="ace-icon fa fa-plus-circle"></i></a> @@ -224,13 +232,13 @@ <text class="tx_title">{{attr.DispName}}:<i class="i_tishi" v-if="attr.notempty==true">*</i></text> <input type="text" :data-index="index" :data-iindex="iindex" :style="{'width':attr.Width}" - :disabled="attr.edit?false:true"> + :disabled="attr.edit?false:true" :maxlength="-1"> </view> <view v-if="classattr.control_style=='宸﹀彸甯冨眬'"> <p class="tx_title2" :style="{'width':classattr.title_p_wdith+'%'}">{{attr.DispName}}:</p> <input type="text" class="attr_field" :data-index="index" :data-iindex="iindex" :style="{'width': attr.Width.split('%')[0] - classattr.title_p_wdith - (attr.notempty==true?10:5) +'%'}" - :disabled="attr.edit?false:true"> + :disabled="attr.edit?false:true" :maxlength="-1"> <i class="i_tishi" v-if="attr.notempty==true">*</i> </view> </view> @@ -305,6 +313,8 @@ return { title: '鏂板', param: {}, + focusField: "", + focusOldField: "", classAttrList: [], classGridStyle: [], edit_inital_event: "", //寮圭獥鍒濆鍖栦簨浠禝D @@ -540,15 +550,94 @@ delta: 1 //杩斿洖灞傛暟锛�鍒欎笂涓婇〉 }); }, + onClick(index, iindex) { + this.focusField = `${index}-${iindex}` + }, + ontap(e) { //鎵爜鍔熻兘 var $ele = e; //console.log(e.target) + this.focusOldField = `${e.target.dataset['index']}-${e.target.dataset['iindex']}` getApp().onScan((result) => { //console.log(result.decodedata); this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value = result.decodedata; uni.hideKeyboard(); this.onevent($ele, result.decodedata); + if (result.decodedata) { //绗竴涓緭鍏ユ涓嶄负绌�+ //鍒濆鍖栵紝涓嬩釜杈撳叆妗唂ocus灞炴� + const attrs = this.$data.classAttrList[e.target.dataset['index']].Attr || [] + var findd = false + for (let i = e.target.dataset['iindex'] + 1; i < attrs.length; i++) { + const ele = attrs[i] + + if (ele.hidden != true) { + if (utils.classUtils.attrTypeIsString(ele.Type) || utils.classUtils + .attrTypeIsInt(ele.Type)) { + const field = `${e.target.dataset['index']}-${i}` + if (this + .focusOldField == + field) { + this.setData({ + focusField: "" + }) + } else { + this.setData({ + focusField: this + .focusOldField + }) + } + this.$nextTick(() => { + this.setData({ + focusField: field + }) + }); + findd = true + break + } + } + + + } + if (findd) { + return + } + for (let i = e.target.dataset['index'] + 1; i < this.classAttrList.length; i++) { + const attrs2 = this.classAttrList[i].Attr || [] + for (let ii in attrs2) { + const ele = attrs2[ii] + if (ele.hidden != true) { + if (utils.classUtils.attrTypeIsString(ele.Type) || utils.classUtils + .attrTypeIsInt(ele.Type)) { + const field = `${i}-${ii}` + if (this + .focusOldField == + field) { + this.setData({ + focusField: "" + }) + } else { + this.setData({ + focusField: this + .focusOldField + }) + } + this.$nextTick(() => { + this.setData({ + focusField: field + }) + }); + break + } + } + } + if (findd) { + break + } + } + + } + }) }, onarrow(index, open) { @@ -972,8 +1061,12 @@ icon: "success", duration: 3000 }); - - // this.class_attr_init(); + //鍒锋柊 + uni.redirectTo({ + url: '../modal/classAttr?param=' + JSON.stringify(this.$data.param) + + "&titlename=" + this.$data.title + }); + //this.class_attr_init(); }).catch(ex => { console.log(ex); @@ -1054,6 +1147,16 @@ ca.Value = '璇烽�鎷�; if (utils.classUtils.attrTypeIsBool(ca.Type)) ca.Value = false; + if (ca.hidden != true) { + if (utils.classUtils.attrTypeIsString(ca.Type) || utils.classUtils + .attrTypeIsInt(ca.Type) || utils.classUtils.attrTypeIsFloat(ca.Type)) { + if (this.focusField == "") { + this.setData({ + focusField: `${newattrlist.length}-${attr.length}` + }) + } + } + } attr.push(ca); } @@ -1221,8 +1324,7 @@ } } } - } - if (action_type == 'open_select_userdlg') { + } else if (action_type == 'open_select_userdlg') { uni.showModal({ title: "閿欒2.2", content: "open_select_userdlg杩欎釜action_type杩樻湭澶勭悊锛�, -- Gitblit v1.9.1