From 69d1bd7b11a673e9e675055966e1b027de310858 Mon Sep 17 00:00:00 2001 From: jt <jt@activesoft.com.cn> Date: 星期日, 09 六月 2024 13:03:15 +0800 Subject: [PATCH] mobox3PDA码盘功能page_rowaction支持多条数据显示改进 --- pages/modal/5600.vue | 293 ++++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 231 insertions(+), 62 deletions(-) diff --git a/pages/modal/5600.vue b/pages/modal/5600.vue index f210b9a..f41f636 100644 --- a/pages/modal/5600.vue +++ b/pages/modal/5600.vue @@ -1,4 +1,7 @@ <style> +.v-headStyle:first-child{ + margin-top: 15rpx; +} .v-headStyle .txt_title{ font-size: 34rpx; text-align: right; @@ -59,10 +62,10 @@ /* border:1px solid red; */ } .dv-panel{ - background-color:#EAFED9; + background-color:#efefef; padding: 20rpx 20rpx 4rpx 0px; border-radius: 12rpx; - margin-bottom: 20rpx; + margin: 10rpx 0 20rpx 0; text-align: right; /* border: 1px solid red; */ } @@ -70,6 +73,9 @@ width: 100%; display: inline-block; text-align: left; +} +.dv-panel-input .dv-input{ + margin-bottom: 2rpx; } .dv-panel .txt_title{ font-size: 34rpx; @@ -204,6 +210,31 @@ .bk-active{ background-color: #D6FCB2; } +#dv_select{ + display: inline-block; + width: 66%; + background: #FFF; + border-radius: 0 !important; + color: #2d8cf0; + /* padding: 10rpx 8rpx 12rpx; */ + font-size: 34rpx; + font-family: inherit; + box-shadow: none !important; + transition-duration: 0.1s; + margin-top: 0rpx; + vertical-align: 20rpx; +} +#dv_select .uni-select{ + border: 2rpx solid #ccc; + border-radius: 0 !important; + color: #2d8cf0; +} +#dv_select .uni-select__input-text{ + color: #2d8cf0; +} +.input-disabled{ + background-color: #f3f3f3 !important; +} </style> <style lang="scss"> .demo-uni-row { @@ -231,14 +262,24 @@ <!-- 琛ㄥご鏍峰紡 --> <view class="v-headStyle" v-for="(item,index) in head_styledef.form.items" > <text class="txt_title" :style="{'width':item.labelWidth+'px'}">{{item.label}}锛�/text> - <view class="input-wrapper"> + <!-- 涓嬫媺妗�鍗曢� item.useDict?item.dict:item.selections--> + <uni-data-select id="dv_select" v-if="item.name=='Select'" + :class="item.disabled?'input-disabled':''" + v-model="item.value" + :localdata="item.dict" + @change="onChange(item)" + :disabled="item.disabled" + :clear="false" + ></uni-data-select> + <view class="input-wrapper" v-if="item.name=='Input' || item.name=='InputNumber'"> <text v-if="item.setting.prefix" class="uni-icon" :class="[item.setting.prefix]" @click="onEnterChange(item)"></text> <input class="uni-input" - :type="item.name=='Input'?'text':'text'" + :class="item.disabled?'input-disabled':''" + :type="item.name=='Input'?'text':'number'" v-model="item.value" :disabled="item.disabled" :placeholder="item.placeholder" @@ -320,9 +361,9 @@ :id="'tabpanel'+style.form.htmlobjId" :class="style.form.htmlobjId==active_id?'bk-active':activelist[ii].active==true?'bk-active':''"> <div class="dv-panel-input"> - <div v-for="(item,index) in style.form.items"> + <div class="dv-input" v-for="(item,index) in style.form.items"> <!-- 鏅�甯冨眬 --> - <view v-if="item.name=='Input'"> + <view v-if="item.name!='Layout'"> <text class="txt_title" :style="{'width':item.labelWidth+'px'}">{{item.label}}锛�/text> <span class="form-item-span" v-if="item.disabled">{{item.value}}</span> <input @@ -451,6 +492,7 @@ onLoad(options) { // console.log(options); uni.setNavigationBarTitle({ title: options.titlename}); //璁剧疆椤堕儴鏍囬 + this.$data.title = options.titlename; this.$data.param = JSON.parse(options.param); // console.log(this.$data.param); //鑾峰彇鏁版嵁绫荤殑鑷畾涔夎〃鍗曞弬鏁�@@ -492,7 +534,11 @@ $this.$data.head_styledef = ret.result.style_def? JSON.parse(styledef): {}; // this.form = this.head_styledef.form.model; // console.log($this.$data.head_styledef); - + $this.$data.head_styledef.form.items.forEach(async (ele,index) => { + if(ele.useDict==true){ //鍒ゆ柇useDict鏄惁浣跨敤瀛楀吀 + await this.DictGetInfo(ele.bind.dict,index,'mast'); + } + }); }else{ uni.showModal({title:"閿欒1",content:ret.err_msg,showCancel:false,confirmText:"鍙栨秷"}); } @@ -525,7 +571,11 @@ // var aa = JSON.stringify(this.detail1_styledef); // $this.$data.detail1StyleDefList.push(JSON.parse(aa)); // console.log($this.$data.detail1StyleDefList); - + $this.detail1_styledef.form.items.forEach(async (ele,index) => { + if(ele.useDict==true){ //鍒ゆ柇useDict鏄惁浣跨敤瀛楀吀 + await this.DictGetInfo(ele.bind.dict,index,'sub'); + } + }); }else{ uni.showModal({title:"閿欒2",content:ret.err_msg,showCancel:false,confirmText:"鍙栨秷"}); } @@ -564,6 +614,61 @@ }); }, + async DictGetInfo(dict,index,type){ //Mobox3寰楀埌寰楀埌瀛楀吀淇℃伅瀛楀吀椤瑰垪琛�+ this.data=[]; + var $this = this; + var dataInfo ={ + dict_id: dict.id, + dict_name: dict.name + }; + // console.log(dataInfo); + this.$store.dispatch('DictGetInfo',dataInfo).then(async (success)=>{ + console.log(success); + if (success.err_code == 0) { + var list=[]; + var itemName=''; + success.result.dict_item_list.forEach((item) => { + if(item.is_default=='1') + itemName = item.name; + list.push({ + text:item.value, + value:item.name, + }); + }); + + if(type=='mast'){//鏈夐粯璁ゅ�锛屾樉绀洪粯璁ゅ� + if(itemName){ + $this.head_styledef.form.items[index].value=itemName; + var attr = $this.head_styledef.form.items[index].fieldId; + $this.head_styledef.form.model[attr] = itemName; + } + $this.head_styledef.form.items[index].dict=list; + var head_styledef = JSON.parse(JSON.stringify($this.head_styledef)); + $this.head_styledef=[]; + $this.head_styledef = head_styledef; + // console.log($this.head_styledef); + } + else{ + if(itemName){ + $this.detail1_styledef.form.items[index].value=itemName; + var attr = $this.detail1_styledef.form.items[index].fieldId; + $this.detail1_styledef.form.model[attr] = itemName; + } + $this.detail1_styledef.form.items[index].dict=list; + var detail1_styledef = JSON.parse(JSON.stringify($this.detail1_styledef)); + $this.detail1_styledef=[]; + $this.detail1_styledef = detail1_styledef; + // console.log($this.$data.detail1_styledef); + } + + }else{ + uni.showModal({title:"閿欒3.1",content:success.err_msg,showCancel:false,confirmText:"鍙栨秷"}); + } + }).catch(ex=>{ + // console.log(ex); + uni.showModal({title:"閿欒3",content:ex.errMsg,showCancel:false,confirmText:"鍙栨秷"}); + }); + }, ontap(item){ //鎵爜鍔熻兘 // var $ele = e; @@ -610,7 +715,7 @@ // $this.focusMateria=true; //绗簩涓緭鍏ユ鑾峰彇鐒︾偣 setTimeout(function(){ uni.hideKeyboard(); - },100); + },1000); // },500); } // if(onSuffixClickCallbackEvent.id){ //鍚庡浘鏍囩偣鍑讳簨浠�@@ -661,7 +766,7 @@ var $this = this; var dataInfo={ ed_type: 0, - start_transaction: '', + start_transaction: true, class_id: this.$data.head_styledef.form.clsId, class_name: '', event_id: event.id, @@ -686,7 +791,7 @@ var tip = result.err_info ? typeof result.err_info == 'string' ? result.err_info : result.err_info.join('<br/>') : ''; if (result.ret == 801) uni.showModal({title:'鎻愮ず',content:tip,showCancel:false,confirmText:"鍙栨秷"}); else uni.showModal({title:'鎻愮ず',content:tip+',鎻愮ず:'+result.ret,showCancel:false,confirmText:"鍙栨秷"}); - return false + return false; }else{ var tip = result.info ? typeof result.info == 'string' ? result.info : result.info.join('<br/>') : ''; if (tip) uni.showModal({title:'鎻愮ず',content:tip,showCancel:false,confirmText:"鍙栨秷"}); @@ -701,21 +806,16 @@ 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){ //鍒ゆ柇鏄惁娓呯┖椤电鍐呭,姝e湪鐮佺洏鏄惁鏈夋暟鎹�+ if(value.clear == true && $this.$data.detail1StyleDefList.length>0 && value.page_name == $this.$data.param.Sub_Page[0].Name){ //鍒ゆ柇鏄惁娓呯┖椤电鍐呭,姝e湪鐮佺洏鏄惁鏈夋暟鎹� uni.showModal({ title: '鎻愮ず', content: '绯荤粺妫�祴鍒版湁姝e湪鐮佺洏涓殑璐у搧锛岀户缁搷浣滀細娓呯┖锛屾槸鍚︾户缁紵', success: function (res) { if (res.confirm) { $this.$data.detail1StyleDefList=[]; - $this.$data.detail2StyleDefList=[]; $this.viewAceionContent(value); } else if (res.cancel) { - if(value.page_name == $this.$data.param.Sub_Page[0].Name){ //鍒ゆ柇杩斿洖鐨刟ction鐨刾age_name鏄惁鏄緟鍒嗘嫞 - $this.$data.detail1StyleDefList=[]; - }else{ - $this.$data.detail2StyleDefList=[]; - } + $this.$data.detail1StyleDefList=[]; $this.viewAceionContent(value); } } @@ -791,50 +891,57 @@ //鍔犺浇姝e湪鐮佺洏鍐呭 viewAceionRow(data,type){ // console.log(data); - var styleStr = JSON.stringify(this.$data.detail1_styledef); - if(type){ //纭畾鍚庤剼鏈繘鍏ュ姞杞藉凡鐮佺洏鏁版嵁 - styleStr = JSON.stringify(this.$data.detail2_styledef); - }else{ - if(data.page_name == this.$data.param.Sub_Page[1].Name){ //鍒ゆ柇杩斿洖鐨刟ction鐨刾age_name鏄惁鏄凡鍒嗘嫞 - styleStr = JSON.stringify(this.$data.detail2_styledef); //寰呭垎鎷�- } - } - var detailStyle = JSON.parse(styleStr); - data.row.attrs.forEach(attr=>{ - detailStyle.form.items.forEach(ele=>{ - if(ele.name!='Layout'){ - if(ele.fieldId == attr.attr) ele.value = attr.value; - } else if(ele.name=='Layout'){ - ele.setting.colList.forEach(col=>{ - if(col){ - if(col.fieldId == attr.attr) col.value = attr.value; - } - }); - } - }); + if(JSON.stringify(data.row) =='{}'){ + return; + } + data.row.forEach(row=>{ + var styleStr = JSON.stringify(this.$data.detail1_styledef); + if(type){ //纭畾鍚庤剼鏈繘鍏ュ姞杞藉凡鍒嗘嫞鏁版嵁 + styleStr = JSON.stringify(this.$data.detail2_styledef); + }else{ + if(data.page_name == this.$data.param.Sub_Page[1].Name){ //鍒ゆ柇杩斿洖鐨刟ction鐨刾age_name鏄惁鏄凡鍒嗘嫞 + styleStr = JSON.stringify(this.$data.detail2_styledef); //寰呭垎鎷�+ } + } + var detailStyle = JSON.parse(styleStr); + detailStyle.form.objId = row.id; + detailStyle.form.htmlobjId = row.id?row.id.replace(/-/g,'').replace('{','').replace('}',''):'null'; + detailStyle.form.attrs = row.attrs; + row.attrs.forEach(attr=>{ + detailStyle.form.items.forEach(ele=>{ + if(ele.name!='Layout'){ + if(ele.fieldId == attr.attr) ele.value = attr.value; + } else if(ele.name=='Layout'){ + ele.setting.colList.forEach(col=>{ + if(col){ + if(col.fieldId == attr.attr) col.value = attr.value; + } + }); + } + }); + }); + + if(type){ //纭畾鍚庤剼鏈繘鍏ュ姞杞藉凡鍒嗘嫞鏁版嵁 + this.$data.detail2StyleDefList.push(detailStyle); + // console.log(this.$data.detail2StyleDefList); + }else{ + if(data.page_name == this.$data.param.Sub_Page[1].Name){ //鍒ゆ柇杩斿洖鐨刟ction鐨刾age_name鏄惁鏄凡鍒嗘嫞 + this.$data.detail2StyleDefList.push(detailStyle); + // console.log(this.$data.detail2StyleDefList); + }else{ + this.$data.detail1StyleDefList.push(detailStyle); + this.activelist.push({active:false}); + // console.log(this.$data.detail1StyleDefList); + } + } }); - if(type){ //纭畾鍚庤剼鏈繘鍏ュ姞杞藉凡鐮佺洏鏁版嵁 - detailStyle.form.objId = data.row.id; - this.$data.detail2StyleDefList.push(detailStyle); - // console.log(this.$data.detail2StyleDefList); - }else{ - if(data.page_name == this.$data.param.Sub_Page[1].Name){ //鍒ゆ柇杩斿洖鐨刟ction鐨刾age_name鏄惁鏄凡鍒嗘嫞 - detailStyle.form.objId = data.row.id; - this.$data.detail2StyleDefList.push(detailStyle); - // console.log(this.$data.detail2StyleDefList); - }else{ - detailStyle.form.htmlobjId = data.row.id?data.row.id.replace(/-/g,'').replace('{','').replace('}',''):'null'; - detailStyle.form.objId = data.row.id; - detailStyle.form.attrs = data.row.attrs; - this.$data.detail1StyleDefList.push(detailStyle); - this.activelist.push({active:false}); - // console.log(this.$data.detail1StyleDefList); - } - } }, //鍔犺浇宸茬爜鐩樺唴瀹� viewAceionContent(data){ var $this = this; + if(JSON.stringify(data.content) =='{}'){ + return; + } data.content.forEach(cont=>{ var styleStr = JSON.stringify($this.$data.detail2_styledef); if(data.page_name == $this.$data.param.Sub_Page[0].Name){ //鍒ゆ柇杩斿洖鐨刟ction鐨刾age_name鏄惁鏄爜鐩樹腑 @@ -844,6 +951,7 @@ detailStyle.SelBut_Checked = data.checkbox??true; detailStyle.form.objId = cont.id; detailStyle.form.htmlobjId = cont.id?cont.id.replace(/-/g,'').replace('{','').replace('}',''):'null'; + detailStyle.form.attrs = cont.attrs; cont.attrs.forEach(attr=>{ detailStyle.form.items.forEach(ele=>{ if(ele.name!='Layout'){ @@ -857,13 +965,60 @@ } }); }); - detailStyle.form.attrs = cont.attrs; - if(data.page_name == $this.$data.param.Sub_Page[0].Name){ //鍒ゆ柇杩斿洖鐨刟ction鐨刾age_name鏄惁鏄爜鐩樹腑 - $this.$data.detail1StyleDefList.push(detailStyle); //鐮佺洏涓�+ if(data.page_name == $this.$data.param.Sub_Page[0].Name){ //鍒ゆ柇杩斿洖鐨刟ction鐨刾age_name鏄惁鏄緟鍒嗘嫞 + //濡傛灉 clear = false 鍒欎笉闇�娓呴櫎锛屾牴鎹甶d鍒ゆ柇鏄惁瀛樺湪锛屼笉瀛樺湪鎻掑叆鍒伴〉闈紝濡傛灉瀛樺湪鐢ㄦ柊鐨勫睘鎬ц鐩�+ if(data.clear == false){ + var isflag = true; + $this.detail1StyleDefList.forEach((style,index)=>{ + if(style.form.objId == detailStyle.form.objId){ + cont.attrs.forEach(attr=>{ + style.form.items.forEach(ele=>{ + if(ele.name!='Layout'){ + if(ele.fieldId == attr.attr) ele.value = attr.value; + } else if(ele.name=='Layout'){ + ele.setting.colList.forEach(col=>{ + if(col){ + if(col.fieldId == attr.attr) col.value = attr.value; + } + }); + } + }); + }); + isflag = false; + } + }); + if(isflag) $this.detail1StyleDefList.push(detailStyle); //寰呭垎鎷�+ }else{ + $this.detail1StyleDefList.push(detailStyle); //寰呭垎鎷�+ } $this.activelist.push({active:false}); // console.log($this.$data.detail1StyleDefList); }else{ - $this.$data.detail2StyleDefList.push(detailStyle); //宸茬爜鐩�+ if(data.clear == false){ + //濡傛灉 clear = false 鍒欎笉闇�娓呴櫎锛屾牴鎹甶d鍒ゆ柇鏄惁瀛樺湪锛屼笉瀛樺湪鎻掑叆鍒伴〉闈紝濡傛灉瀛樺湪鐢ㄦ柊鐨勫睘鎬ц鐩�+ var isflag = true; + $this.detail2StyleDefList.forEach((style,index)=>{ + if(style.form.objId == detailStyle.form.objId){ + cont.attrs.forEach(attr=>{ + style.form.items.forEach(ele=>{ + if(ele.name!='Layout'){ + if(ele.fieldId == attr.attr) ele.value = attr.value; + } else if(ele.name=='Layout'){ + ele.setting.colList.forEach(col=>{ + if(col){ + if(col.fieldId == attr.attr) col.value = attr.value; + } + }); + } + }); + }); + isflag = false; + } + }); + if(isflag) $this.detail2StyleDefList.push(detailStyle); //宸插垎鎷�+ }else{ + $this.detail2StyleDefList.push(detailStyle); //宸插垎鎷�+ } // console.log($this.$data.detail2StyleDefList); } }); @@ -1129,7 +1284,7 @@ var tip = result.err_info ? typeof result.err_info == 'string' ? result.err_info : result.err_info.join('<br/>') : ''; if (result.ret == 801) uni.showModal({title:'鎻愮ず',content:tip,showCancel:false,confirmText:"鍙栨秷"}); else uni.showModal({title:'鎻愮ず',content:tip+',鎻愮ず:'+result.ret,showCancel:false,confirmText:"鍙栨秷"}); - return false + return false; }else{ var tip = result.info ? typeof result.info == 'string' ? result.info : result.info.join('<br/>') : ''; if (tip) uni.showModal({title:'鎻愮ず',content:tip,showCancel:false,confirmText:"鍙栨秷"}); @@ -1158,6 +1313,20 @@ }); // this.detail2StyleDefList=[]; uni.showModal({title:"鎻愮ず",content:"鐮佺洏鎴愬姛",showCancel:false,confirmText:"鍙栨秷"}); + // } else if(item.action_type == "refresh"){ //鍒锋柊 + // var value = item.value; + // //鍒锋柊褰撳墠椤甸潰 + // // location.reload(); + // uni.redirectTo({ + // url:'../modal/5600?param='+JSON.stringify(this.$data.param)+"&titlename="+this.$data.title + // }); + // } else if(item.action_type == "prompt"){ //鎵撳紑绯荤粺鎻愮ず寮规 + // var value = ''; + // item.value.forEach(ele=>{ + // if(value) value+='\n'; + // value+=ele; + // }); + // uni.showModal({title:"绯荤粺鎻愮ず",content:value,showCancel:false,confirmText:"鍏抽棴"}); } }); }else{ -- Gitblit v1.9.1