From 25771d625083b441b1c92974dc6d26215e8c2fea Mon Sep 17 00:00:00 2001 From: jt <jt@activesoft.com.cn> Date: 星期二, 11 六月 2024 14:42:37 +0800 Subject: [PATCH] test --- pages/modal/5600.vue | 565 ++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 469 insertions(+), 96 deletions(-) diff --git a/pages/modal/5600.vue b/pages/modal/5600.vue index 6a31f6f..cdd720b 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; @@ -55,20 +58,24 @@ vertical-align: 18rpx; } .view-content{ - min-height: 760rpx; + min-height: 750rpx; /* 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; */ } .dv-panel-input{ width: 100%; display: inline-block; text-align: left; +} +.dv-panel-input .dv-input{ + margin-bottom: 2rpx; } .dv-panel .txt_title{ font-size: 34rpx; @@ -106,13 +113,25 @@ } .dv-panel-button{ - display: inline-block; - margin-right: 20rpx; + /* display: inline-block; + margin-right: 20rpx; */ + width: 100%; + text-align: left; + padding-bottom: 20rpx; } -.dv-panel-button button { +.dv-panel-button checkbox-group { + padding-left: 20px; + display: inline-block; +} +.dv-panel-button button { + text-align: left; line-height: 1.8; border: none; font-size: 34rpx; + width: 180rpx; + display: inline-block; + float: right; + text-align: center; } button.btn_cancel { width:49.5%; @@ -185,6 +204,37 @@ line-height: 80rpx; font-weight: 500; } +.panel-active{ + border:2px solid red; +} +.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 { @@ -207,21 +257,29 @@ </style> - - <template> <view class="content"> <!-- 琛ㄥご鏍峰紡 --> <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="onEnterChange(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" @@ -244,7 +302,7 @@ <image :src="param.Welcome_Page.Img" :style="{'width':param.Welcome_Page.Width+'px','height':param.Welcome_Page.Height+'px'}"></image> <text class="txt-text" - :style="{'color':param.Welcome_Page.Txt_Color,'font-size':param.Welcome_Page.Font_Size,'font-family':param.Welcome_Page.Font}" + :style="{'color':param.Welcome_Page.Txt_Color,'font-size':param.Welcome_Page.Font_Size+'px','font-family':param.Welcome_Page.Font}" >{{param.Welcome_Page.Text}}</Text> </div> </view> @@ -257,7 +315,7 @@ </uni-segmented-control> </view> <!-- 鐮佺洏鐣岄潰 --> - <view class="view-tabpage" v-if="current==0"> + <view class="view-tabpage" id="tabpanel" v-if="current==0"> <image class="logo" v-if="detail1StyleDefList.length==0" src="../../images/mobox_log_200x40.png"></image> <!-- <div class="dv-panel"> <div class="dv-panel-input"> @@ -298,11 +356,14 @@ <button type="warn" @tap="delItem(0)">鍒犻櫎</button> </div> </div> --> - <div class="dv-panel" v-for="(style,ii) in detail1StyleDefList"> + <div class="dv-panel" v-for="(style,ii) in detail1StyleDefList" + @tap="onPanelClick(ii)" + :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 @@ -337,14 +398,14 @@ </div> </div> <div class="dv-panel-button"> - <checkbox-group v-if="param.Coder_Page[0].Select_Button==true"> + <checkbox-group v-if="param.Sub_Page[0].Select_Button==true"> <label> <checkbox :value="style.SelBut_Checked" :checked="style.SelBut_Checked" /> <!-- <text></text> --> </label> </checkbox-group> - <button type="primary" @click="savaItem(ii)" v-if="param.Coder_Page[0].OK_Button==true">淇濆瓨</Button> - <button type="warn" @tap="delItem(ii)" v-if="param.Coder_Page[0].Del_Button==true">鍒犻櫎</button> + <!-- <button type="primary" @click="savaItem(ii)" v-if="param.Sub_Page[0].OK_Button==true">淇濆瓨</Button> --> + <button type="warn" @tap="delItem(ii)" v-if="param.Sub_Page[0].Del_Button==true">鍒犻櫎</button> </div> </div> </view> @@ -362,8 +423,8 @@ <!-- 鏍呮牸甯冨眬 --> <uni-row class="demo-uni-row" v-if="item.name=='Layout'"> <uni-col - :span="24 / item.setting.col" v-for="(cols,key) in item.setting.colList" + :span="item.setting.spanList?item.setting.spanList[key]:24 / item.setting.col" > <view v-if="cols!=null" > <text class="txt_title" :style="{'width':cols.labelWidth+'px'}">{{cols.label}}锛�/text> @@ -374,22 +435,26 @@ </div> </div> <div class="dv-panel-button"> - <checkbox-group v-if="param.Coder_Page[1].Select_Button==true"> + <checkbox-group v-if="param.Sub_Page[1].Select_Button==true"> <label> <checkbox :value="style.SelBut_Checked" :checked="style.SelBut_Checked" /> <!-- <text></text> --> </label> </checkbox-group> - <button type="primary" @click="savaDataObj(style,ii)" v-if="param.Coder_Page[1].OK_Button==true">淇濆瓨</Button> - <button type="warn" @tap="delDataObj(style,ii)" v-if="param.Coder_Page[1].Del_Button==true">鍒犻櫎</button> + <!-- <button type="primary" @click="savaDataObj(style,ii)" v-if="param.Sub_Page[1].OK_Button==true">淇濆瓨</Button> --> + <button type="warn" @tap="delDataObj(style,ii)" v-if="param.Sub_Page[1].Del_Button==true">鍒犻櫎</button> </div> </div> </view> </view> </view> - <view> + <view v-if="current==0 && param.Sub_Page[0].OK_Button==true"> <button type="default" @tap="cancel" class="btn_cancel">鍙栨秷</button> <button type="primary" @tap="ok" class="btn_add">纭畾</button> + </view> + <view v-if="current==1 && param.Sub_Page[1].OK_Button==true"> + <button type="default" @tap="cancel" class="btn_cancel">鍙栨秷</button> + <button type="primary" @tap="ok2" class="btn_add">纭畾</button> </view> </view> </template> @@ -420,11 +485,14 @@ Before_OK_Event:{}, After_OK_Event:{}, items: [], + active_id:'', + activelist:[], }; }, 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); //鑾峰彇鏁版嵁绫荤殑鑷畾涔夎〃鍗曞弬鏁�@@ -437,15 +505,15 @@ this.$data.param.Welcome_Page.Height = parseInt(this.$data.param.Welcome_Page.Height); } //鍔犺浇Tab椤电 - this.$data.items.push(this.$data.param.Coder_Page[0].Name); - this.$data.items.push(this.$data.param.Coder_Page[1].Name); - this.Detail1_UIstyleGetInfo(this.ClsID,this.$data.param.Coder_Page[0].UI_Style.ID); - this.Detail2_UIstyleGetInfo(this.ClsID,this.$data.param.Coder_Page[1].UI_Style.ID); + this.$data.items.push(this.$data.param.Sub_Page[0].Name); + this.$data.items.push(this.$data.param.Sub_Page[1].Name); + this.Detail1_UIstyleGetInfo(this.ClsID,this.$data.param.Sub_Page[0].UI_Style.ID); + this.Detail2_UIstyleGetInfo(this.ClsID,this.$data.param.Sub_Page[1].UI_Style.ID); console.log(this.$data.param); //椤甸潰鍒濆鍖栬幏鍙栫劍鐐� // this.focusMateria=true; - }, + }, methods: { async Head_UIStyleGetInfo(class_id,style_id){ //鑾峰彇鑷畾涔夎〃鍗曟牱寮� var $this = this; @@ -466,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:"鍙栨秷"}); } @@ -493,13 +565,17 @@ if(!ret.result.style_def.includes('"')) styledef = Base64.decode(ret.result.style_def); } $this.$data.detail1_styledef = ret.result.style_def? JSON.parse(styledef): {}; - $this.$data.detail1_styledef.SelBut_Checked = false; + $this.$data.detail1_styledef.SelBut_Checked = true; // console.log($this.$data.detail1_styledef); // $this.$data.detail1StyleDefList.push($this.$data.detail1_styledef); - // let aa = JSON.stringify(this.detail1_styledef); + // 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:"鍙栨秷"}); } @@ -526,7 +602,7 @@ if(!ret.result.style_def.includes('"')) styledef = Base64.decode(ret.result.style_def); } $this.$data.detail2_styledef = ret.result.style_def? JSON.parse(styledef): {}; - $this.$data.detail2_styledef.SelBut_Checked = false; + $this.$data.detail2_styledef.SelBut_Checked = true; // console.log($this.$data.detail2_styledef); }else{ @@ -538,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; @@ -548,6 +679,23 @@ uni.hideKeyboard(); var $this = this; + // if(item.value=='B61DF51DD50645CEB9D152DD77D2466A'){ + // this.active_id = 'B61DF51DD50645CEB9D152DD77D2466A'; + // // var target = uni.createSelectorQuery().select('#B61DF51DD50645CEB9D152DD77D2466A'); + // uni.createSelectorQuery() + // .select("#tabpanel")//瀵瑰簲澶栧眰鑺傜偣 + // .boundingClientRect((container) => { + // uni.createSelectorQuery() + // .select("#B61DF51DD50645CEB9D152DD77D2466A")//鐩爣鑺傜偣 + // .boundingClientRect((target) => { + // uni.pageScrollTo({ + // scrollTop: target.top - container.top,//婊氬姩鍒板疄闄呰窛绂绘槸鍏冪礌璺濈椤堕儴鐨勮窛绂诲噺鍘绘渶澶栧眰鐩掑瓙鐨勬粴鍔ㄨ窛绂�+ // }); + // }) + // .exec(); + // }) + // .exec(); + // } console.log(item); if(item.oldvalue != item.value){ item.oldvalue = item.value; @@ -567,7 +715,7 @@ // $this.focusMateria=true; //绗簩涓緭鍏ユ鑾峰彇鐒︾偣 setTimeout(function(){ uni.hideKeyboard(); - },100); + },1000); // },500); } // if(onSuffixClickCallbackEvent.id){ //鍚庡浘鏍囩偣鍑讳簨浠�@@ -618,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, @@ -643,9 +791,9 @@ 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{ - let tip = result.info ? typeof result.info == 'string' ? result.info : result.info.join('<br/>') : ''; + var tip = result.info ? typeof result.info == 'string' ? result.info : result.info.join('<br/>') : ''; if (tip) uni.showModal({title:'鎻愮ず',content:tip,showCancel:false,confirmText:"鍙栨秷"}); if(result.result_type == 0 && result.action){ @@ -658,26 +806,65 @@ 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) { - $this.$data.detail2StyleDefList=[]; + $this.$data.detail1StyleDefList=[]; $this.viewAceionContent(value); } } }); } else { - $this.$data.detail2StyleDefList=[]; + if(value.page_name == $this.$data.param.Sub_Page[0].Name){ //鍒ゆ柇杩斿洖鐨刟ction鐨刾age_name鏄惁鏄緟鍒嗘嫞 + $this.$data.detail1StyleDefList=[]; + }else{ + $this.$data.detail2StyleDefList=[]; + } $this.viewAceionContent(value); } } + else if(item.action_type == "select_subtable_page_row"){ + // value = {"page_name":"鐮佺洏涓�, "row":{"id":"xx"}} + var value = item.value; + $this.detail1StyleDefList.forEach(ele=>{ + $this.activelist[index].active = false; + if(ele.form.objId == value.row.id){ + ele.SelBut_Checked = true; + $this.active_id = ele.form.htmlobjId; + //鑷姩婊氬姩鍒版寚瀹氬厓绱�+ uni.createSelectorQuery() + .select("#tabpanel")//瀵瑰簲澶栧眰鑺傜偣 + .boundingClientRect((container) => { + uni.createSelectorQuery() + .select("#tabpanel"+ele.form.htmlobjId)//鐩爣鑺傜偣 + .boundingClientRect((target) => { + uni.pageScrollTo({ + scrollTop: target.top - container.top,//婊氬姩鍒板疄闄呰窛绂绘槸鍏冪礌璺濈椤堕儴鐨勮窛绂诲噺鍘绘渶澶栧眰鐩掑瓙鐨勬粴鍔ㄨ窛绂�+ }); + }) + .exec(); + }) + .exec(); + } + }); + } + else if(item.action_type == "set_dlg_attr"){ + // value = {"attr":"xxx", "value":"xxx"} + var data = item.value; + $this.$data.head_styledef.form.items.forEach(async (ele,index) => { + data.forEach(async (ele2,index) => { + if(ele.fieldId == ele2.attr){ + ele.value = ele2.value; + } + }); + }); + } }); }else{ // this.detail2StyleDefList=[]; @@ -704,41 +891,67 @@ //鍔犺浇姝e湪鐮佺洏鍐呭 viewAceionRow(data,type){ // console.log(data); - var styleStr = JSON.stringify(this.$data.detail1_styledef); - if(type){ //纭畾鍚庤剼鏈繘鍏ュ姞杞藉凡鐮佺洏鏁版嵁 - 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{ - detailStyle.form.attrs = data.row.attrs; - this.$data.detail1StyleDefList.push(detailStyle); - // 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鏄惁鏄爜鐩樹腑 + styleStr = JSON.stringify($this.$data.detail1_styledef); //鐮佺洏涓�+ } var detailStyle = JSON.parse(styleStr); - detailStyle.form.objId = cont.id; + 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'){ @@ -752,9 +965,63 @@ } }); }); - $this.$data.detail2StyleDefList.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{ + 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); + } }); - // console.log(this.$data.detail2StyleDefList); }, onClickItem(e) { //閫夋嫨椤电 // console.log(e); @@ -763,17 +1030,9 @@ onDetail1EnterChange(item){ //鐮佺洏涓牱寮忓洖杞︿簨浠� console.log(item); }, - savaItem(index){ //淇濆瓨鐮佺洏涓牱寮忛潰鏉�- // this.detail1StyleDefList.splice(index,1); - uni.showModal({title:"鎻愮ず",content:"淇濆瓨鍔熻兘鏆傛椂鏃犳硶浣跨敤锛�,showCancel:false,confirmText:"鍙栨秷"}); - }, delItem(index){ //鍒犻櫎鐮佺洏涓牱寮忛潰鏉� this.detail1StyleDefList.splice(index,1); }, - savaDataObj(style,index){ //淇濆瓨宸茬爜鐩樻暟 - // this.detail1StyleDefList.splice(index,1); - uni.showModal({title:"鎻愮ず",content:"淇濆瓨鍔熻兘鏆傛椂鏃犳硶浣跨敤锛�,showCancel:false,confirmText:"鍙栨秷"}); - }, delDataObj(style,index){ //鍒犻櫎宸茬爜鐩樻暟 // console.log(style); var $this = this; @@ -811,11 +1070,19 @@ }); }, - + onPanelClick(value){ + // console.log(value); + this.active_id=''; + this.activelist.forEach(ele=>{ + ele.active = false; + }); + this.activelist[value].active = true; + // console.log(this.$data.activelist); + }, //纭畾 ok(){ - this.Before_OK_Event = this.param.Coder_Page[1].Before_ok; - this.After_OK_Event = this.param.Coder_Page[1].After_ok; + this.Before_OK_Event = this.param.Sub_Page[0].Before_ok; + this.After_OK_Event = this.param.Sub_Page[0].After_ok; // console.log(this.Before_OK_Event); // console.log(this.After_OK_Event); if(this.$data.Before_OK_Event.ID) //鏄惁鏈夌‘瀹氬墠浜嬩欢 @@ -848,7 +1115,8 @@ detail_attr[item.fieldId] = item.value; }); - if($this.param.Coder_Page[0].Select_Button==true){ //鍒ゆ柇閫夋嫨鎸夐挳鏄惁涓簍rue + 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 @@ -859,14 +1127,16 @@ this.$data.detail1StyleDefList.forEach(style=>{ style.form.attrs.forEach(attr => { for(var key in detailAttrList){ - let keys = Object.keys(detailAttrList[key]); - let isflag = true; - keys.forEach((ele) => { - if(ele == attr.attr) isflag = false; - }); - if(isflag) { - detailAttrList[attr.attr] = attr.value; - } + 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; + } + } } }); }); @@ -892,11 +1162,96 @@ }); // console.log(jsonlist); jsonlist.forEach(async (json,key)=>{ - await $this.runCustomEvent(event,input_param,json); + await $this.runCustomEvent(event,input_param,json,'1'); }); }, + ok2(){ + this.Before_OK_Event = this.param.Sub_Page[1].Before_ok; + this.After_OK_Event = this.param.Sub_Page[1].After_ok; + // console.log(this.Before_OK_Event); + // console.log(this.After_OK_Event); + if(this.$data.Before_OK_Event.ID) //鏄惁鏈夌‘瀹氬墠浜嬩欢 + this.sava2(this.$data.Before_OK_Event); + else if(this.$data.After_OK_Event.ID) //鏄惁鏈夌‘瀹氬悗浜嬩欢 + this.sava2(this.$data.After_OK_Event); + }, + sava2(event){ + var $this = this; + if(this.$data.detail2StyleDefList.length==0){ + uni.showModal({title:"鎻愮ず",content:"娌℃湁宸茬爜鐩樼殑鏁版嵁锛�,showCancel:false,confirmText:"鍙栨秷"}); + return false; + } + //鑾峰彇琛ㄥご灞炴� + var head_attr = {}; + this.$data.head_styledef.form.items.forEach(item => { + head_attr[item.fieldId] = item.value; + }); + // console.log(head_attr); + //鑾峰彇姝e湪鐮佺洏灞炴� + var detailAttrList = []; + this.$data.detail2StyleDefList.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($this.param.Sub_Page[1].Select_Button==true){ //鍒ゆ柇閫夋嫨鎸夐挳鏄惁涓簍rue + if(style.SelBut_Checked==true) + detailAttrList.push(detail_attr); + } else + detailAttrList.push(detail_attr); + }); + // console.log(detailAttrList); + //鑾峰彇姝e湪鐮佺洏閲屾病鏈夋樉绀虹殑瀛楁 + this.$data.detail2StyleDefList.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; + } + } + } + }); + }); + // 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:'', + attrs: Object.keys(attr).map((a) => ({ + attr: a, + value: attr[a] || "", + })) + }); + }); + // console.log(jsonlist); + jsonlist.forEach(async (json,key)=>{ + await $this.runCustomEvent(event,input_param,json,'2'); + }); + }, //鎵ц纭畾鑴氭湰 - async runCustomEvent(event,input_param,json){ + async runCustomEvent(event,input_param,json,type){ var $this = this; var data_json = Base64.encode( JSON.stringify(json) @@ -929,9 +1284,9 @@ 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{ - let tip = result.info ? typeof result.info == 'string' ? result.info : result.info.join('<br/>') : ''; + var tip = result.info ? typeof result.info == 'string' ? result.info : result.info.join('<br/>') : ''; if (tip) uni.showModal({title:'鎻愮ず',content:tip,showCancel:false,confirmText:"鍙栨秷"}); if(result.result_type == 0){ @@ -958,11 +1313,29 @@ }); // 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{ if($this.$data.After_OK_Event.ID != event.ID){ //鍒ゆ柇褰撳墠浜嬩欢鏄惁鏄‘瀹氬悗浜嬩欢 - $this.sava($this.$data.After_OK_Event); //鎵ц纭畾鍚庝簨浠�+ if(type=='1'){ + $this.sava($this.$data.After_OK_Event); //鎵ц纭畾鍚庝簨浠�+ }else{ + $this.sava2($this.$data.After_OK_Event); //鎵ц纭畾鍚庝簨浠�+ } } } }else{ @@ -976,7 +1349,7 @@ uni.showModal({title:"閿欒8",content:res.err_msg,showCancel:false,confirmText:"鍙栨秷"}); } }).catch(ex=>{ - let tip = typeof ex == "string" ? ex : ex.errMsg; + var tip = typeof ex == "string" ? ex : ex.errMsg; uni.showModal({title:"閿欒8.1",content:"鎵ц鈥滅‘瀹氬悗鈥濅簨浠跺け璐ワ細" + tip,showCancel:false,confirmText:"鍙栨秷"}); }); }, -- Gitblit v1.9.1