From eb61399c8a9d52d55af7fe86930e6a591de9f3d6 Mon Sep 17 00:00:00 2001 From: jt <jt@activesoft.com> Date: 星期一, 28 十一月 2022 11:17:14 +0800 Subject: [PATCH] test --- pages/modal/classAttr.vue | 229 +++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 191 insertions(+), 38 deletions(-) diff --git a/pages/modal/classAttr.vue b/pages/modal/classAttr.vue index 06165d9..56a1c62 100644 --- a/pages/modal/classAttr.vue +++ b/pages/modal/classAttr.vue @@ -96,10 +96,10 @@ width: 100%; } .tx_title{ - font-size: 36rpx; + font-size: 32rpx; } .tx_title2{ - font-size: 36rpx; + font-size: 32rpx; text-align: right; display: inline-block; vertical-align: -2px; @@ -146,12 +146,30 @@ transition-duration: 0.1s; } button.btn_add { + width:49.5%; margin-top: 50rpx; padding: 20rpx; line-height: 1.5; background: #27A6E1; border: none; color: #fff; + font-size: 38rpx; + font-weight: bold; + float: right; + display: inline-block; + } + button.btn_cancel { + width:49.5%; + margin-top: 50rpx; + padding: 20rpx; + line-height: 1.5; + background: #27A6E1; + border: none; + color: #fff; + font-size: 38rpx; + font-weight: bold; + float: left; + display: inline-block; } .i_tishi{ color: red; @@ -165,6 +183,27 @@ vertical-align: middle; margin-left: 8px; /* width: 71%; */ + } + + .input_vallist { + max-height: 350rpx; + overflow-y:auto; + display: none; + } + .input_vallist ul{ + /* border: 1px solid red; */ + padding: 0 20rpx; + } + .input_vallist ul li{ + list-style: none; + padding: 20rpx; + border-bottom: 1px solid #ccc; + } + .input_vallist ul li a{ + float: right; + } + .input_vallist ul li a i { + font-size: 45rpx; } </style> @@ -187,15 +226,21 @@ <div class="text-right" v-if="attr.ext_button==true"> <a @tap="classAttr_extButton(index,iindex)" ><i class="ace-icon fa fa-plus-circle"></i></a> </div> - <input type="text" :value="attr.Value" @focus="ontap" @blur="onevent" v-if="attr.Height=='1'" :data-index="index" :data-iindex="iindex" :style="{'width':attr.Width}" :readonly="attr.edit=='Flase'?true:false" > - <textarea :value="attr.Value" @focus="ontap" @blur="onevent" v-else-if="attr.Height=='2'" :data-index="index":data-iindex="iindex" style="height:60px;" :style="{'width':attr.Width}" :readonly="attr.edit=='Flase'?true:false"></textarea> - <textarea :value="attr.Value" @focus="ontap" @blur="onevent" v-else-if="attr.Height=='3'" :data-index="index":data-iindex="iindex" style="height:90px;" :style="{'width':attr.Width}" :readonly="attr.edit=='Flase'?true:false"></textarea> + <input type="text" :value="attr.Value" @focus="ontap" @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'" :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'" :data-index="index":data-iindex="iindex" style="height:90px;" :style="{'width':attr.Width}" :disabled="attr.edit?false:true"></textarea> + <!-- 鎵爜鍚庝簨浠惰繑鍥�--> + <div class="input_vallist" > + <ul v-for="(inputval,vindex) in inputValList"> + <li><span>{{inputval.Name}}</span><a href="javascript:;" @tap="inputValListIsDel(vindex)"><i class="ace-icon fa fa-times"></i></a></li> + </ul> + </div> </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" @focus="ontap" @blur="onevent" v-if="attr.Height=='1'" :data-index="index" :data-iindex="iindex" :style="{'width': attr.Width.split('%')[0] - classattr.title_p_wdith - (attr.NotEmpty=='1'?10:5) - (attr.ext_button==true?9:0) +'%'}" :readonly="attr.edit=='Flase'?true:false" > - <textarea class="attr_field" :value="attr.Value" @focus="ontap" @blur="onevent" 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=='1'?10:5) - (attr.ext_button==true?9:0) +'%'}" :readonly="attr.edit=='Flase'?true:false"></textarea> - <textarea class="attr_field" :value="attr.Value" @focus="ontap" @blur="onevent" 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=='1'?10:5) - (attr.ext_button==true?9:0) +'%'}" :readonly="attr.edit=='Flase'?true:false"></textarea> + <input type="text" class="attr_field" :value="attr.Value" @focus="ontap" @blur="onevent" v-if="attr.Height=='1'" :data-index="index" :data-iindex="iindex" :style="{'width': attr.Width.split('%')[0] - classattr.title_p_wdith - (attr.NotEmpty=='1'?10:5) - (attr.ext_button==true?9:0) +'%'}" :disabled="attr.edit?false:true" > + <textarea class="attr_field" :value="attr.Value" @focus="ontap" @blur="onevent" 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=='1'?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" 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=='1'?10:5) - (attr.ext_button==true?9:0) +'%'}" :disabled="attr.edit?false:true"></textarea> <div class="text-right2" v-if="attr.ext_button==true"> <a @tap="classAttr_extButton(index,iindex)" ><i class="ace-icon fa fa-plus-circle"></i></a> </div> @@ -228,15 +273,17 @@ <view class="form-group" v-if="attr.Type=='瀛楀吀' || attr.Type=='瀛楀吀-瀛楃涓�" :style="{'display':attr.hidden == 'True'?'none':''}"> <view v-if="classattr.control_style=='涓婁笅甯冨眬'"> <text class="tx_title">{{attr.DispName}}:<i class="i_tishi" v-if="attr.notempty==true">*</i></text> - <picker class="section_iput" @change="onchange" :range="attr.dictitem" range-key="CN_S_NAME" :data-index="index" :data-iindex="iindex" :style="{'width':attr.Width}"> + <picker class="section_iput" @change="onchange" :range="attr.dictitem" range-key="CN_S_NAME" v-if="attr.select==false" :data-index="index" :data-iindex="iindex" :style="{'width':attr.Width}" :disabled="attr.edit?false:true"> <label class="">{{ attr.Value }}</label> </picker> + <select-cy :value="attr.Value" :name="attr.Name" :options="attr.dictitem" showClearIcon="true" @change="onchange2" v-else-if="attr.select==true" :data-index="index" :data-iindex="iindex" :style="{'width':attr.Width}" :disabled="attr.edit?false:true"></select-cy> </view> <view v-if="classattr.control_style=='宸﹀彸甯冨眬'"> <p class="tx_title2" :style="{'width':classattr.title_p_wdith+'%'}">{{attr.DispName}}:</p> - <picker class="section_iput attr_field" @change="onchange" :range="attr.dictitem" range-key="CN_S_NAME" :data-index="index" :data-iindex="iindex" :style="{'width': attr.Width.split('%')[0] - classattr.title_p_wdith - (attr.NotEmpty=='1'?10:5) +'%'}"> + <picker class="section_iput attr_field" @change="onchange" :range="attr.dictitem" range-key="CN_S_NAME" v-if="attr.select==false" :data-index="index" :data-iindex="iindex" :style="{'width': attr.Width.split('%')[0] - classattr.title_p_wdith - (attr.NotEmpty=='1'?10:5) +'%'}"> <label class="">{{ attr.Value }}</label> </picker> + <select-cy :value="attr.Value" :name="attr.Name" :options="attr.dictitem" showClearIcon="true" @change="onchange2" v-else-if="attr.select==true" :data-index="index" :data-iindex="iindex" :style="{'width':attr.Width}"></select-cy> <i class="i_tishi" v-if="attr.notempty==true">*</i> </view> </view> @@ -306,11 +353,11 @@ <view class="form-group" v-if="attr.Type=='缂栫爜'" :style="{'display':attr.hidden == 'True'?'none':''}"> <view v-if="classattr.control_style=='涓婁笅甯冨眬'"> <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}" :readonly="attr.edit=='Flase'?true:false" > + <input type="text" :data-index="index" :data-iindex="iindex" :style="{'width':attr.Width}" :disabled="attr.edit?false:true" > </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=='1'?10:5) +'%'}" :readonly="attr.edit=='Flase'?true:false" > + <input type="text" class="attr_field" :data-index="index" :data-iindex="iindex" :style="{'width': attr.Width.split('%')[0] - classattr.title_p_wdith - (attr.NotEmpty=='1'?10:5) +'%'}" :disabled="attr.edit?false:true" > <i class="i_tishi" v-if="attr.notempty==true">*</i> </view> </view> @@ -328,9 +375,9 @@ </div> </div> - - <button type="default" @tap="sava" class="btn_add">{{title}}</button> </view> + <button type="default" @tap="cancel" class="btn_cancel">鍙栨秷</button> + <button type="default" @tap="sava" class="btn_add">{{title}}</button> </view> </template> @@ -352,7 +399,7 @@ edit_compose_cls_id:"", global_attr:[], refdatastore: [], //寮曠敤鏁版嵁瀛樺偍鍖�/ {attr:'G_PRJ_' + bindattr + '_ID', value:info.id} - + inputValList:[{Name:"test"},{Name:"test2"},{Name:"test3"},{Name:"test4"},{Name:"test5"},{Name:"test6"},{Name:"test7"}], } }, onLoad(options) { @@ -401,6 +448,11 @@ }, methods: { + cancel(e){ + uni.navigateBack({ + delta:1 //杩斿洖灞傛暟锛�鍒欎笂涓婇〉 + }); + }, async classGridStyleInfo(){ var $this = this; var gridstyleInfo = { @@ -490,6 +542,80 @@ } }, + onchange2(item,value,delvalue) { + // console.log(item); + // console.log(value); + // console.log(delvalue); + if(item.length==0){ //涓虹┖鏃讹紝娓呯┖灞炴�value + var index ,iindex,dindex=0; + for(var i in this.$data.classAttrList){ + for(var j in this.$data.classAttrList[i].Attr){ + for(var d in this.$data.classAttrList[i].Attr[j].dictitem){ + if(delvalue[0].Name == this.$data.classAttrList[i].Attr[j].dictitem[d].Name){ + this.$data.classAttrList[i].Attr[j].Value=""; + } + } + } + } + } + + for(var v in item){ + var index ,iindex,dindex=0; + for(var i in this.$data.classAttrList){ + for(var j in this.$data.classAttrList[i].Attr){ + for(var d in this.$data.classAttrList[i].Attr[j].dictitem){ + if(item[v].Name == this.$data.classAttrList[i].Attr[j].dictitem[d].Name){ + index=i;iindex=j;dindex=d; + } + } + } + } + var itemvalue = item[v]; + var data_attr = this.$data.classAttrList[index].Attr[iindex]; + + console.log(data_attr); + if (itemvalue.Name != data_attr.Value) { + this.$data.classAttrList[index].Attr[iindex].Value=value; + console.log(this.$data.classAttrList[index].Attr[iindex].Value); + var eventid = this.$data.classAttrList[index].Attr[iindex].action; + if (eventid) { + // self.event_no_sub = 1; + var req=[]; + var attrlist = this.$data.classAttrList; + for (var i = 0; i < attrlist.length; i++) { + var attr = attrlist[i].Attr; + for (var j = 0; j < attr.length; j++) { + var ar = attr[j]; + if(ar.Type=='寮曠敤瀵硅薄(澶氫釜)') + if(ar.Value=='璇�) ar.Value=''; + if(ar.Type=='寮曠敤浜哄憳' || ar.Type=='寮曠敤椤圭洰') + req.push({ attr: ar.Name, val: ar.ValID ?ar.ValID :'' }); + else if(ar.Type=='甯冨皵鍊�) + req.push({ attr: ar.Name, val: ar.Value?'1':'0'}); + else if(ar.Type=='瀛楀吀' || ar.Type=='瀛楀吀-瀛楃涓�) + req.push({ attr: ar.Name, val: itemvalue.Name}); + else + req.push({ attr: ar.Name, val: ar.Value ?ar.Value :''}); + } + } + var info = { + eventid: eventid, + edtype: "0", + projectid: '', + rclsid: '', + robjid: '', + userlogin: '', + clsid: this.$data.param.clsid, + objid: "", + attr: req, + } + this.DataObjRunCustomEvent(info); + } + } + } + + + }, onevent(e){ // console.log(e.target); var data_attr = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']]; @@ -573,6 +699,11 @@ } } + }, + inputValListIsDel(index){ + // console.log(index); + this.$data.inputValList.splice(index, 1); //鍒犻櫎tabPagejson鐨勫唴瀹�+ // console.log(this.$data.inputValList); }, addresschange(e) { // console.log(e.target); @@ -688,21 +819,35 @@ var attr = attrlist[i].Attr; for (var j = 0; j < attr.length; j++) { var ar = attr[j]; - if ((ar.NotEmpty == '1' || ar.notempty == true) && !ar.Value) { - // if(ar.notEmpty=='1'){ - uni.hideLoading(); - uni.showModal({title:"鎻愮ず",content:ar.DispName+'涓嶈兘涓虹┖锛�,showCancel:false,confirmText:"鍙栨秷"}); - return; - } - if(ar.Value=='璇烽�鎷�) ar.Value=''; + if(ar.Value=='璇烽�鎷� || ar.Value=='鈥斺�璇烽�鎷┾�鈥�) ar.Value=''; if(ar.Type=='寮曠敤瀵硅薄(澶氫釜)') if(ar.Value=='璇�) ar.Value=''; if(ar.Type=='寮曠敤浜哄憳' || ar.Type=='寮曠敤椤圭洰') req.push({ name: ar.Name, value: ar.ValID ?ar.ValID :'' }); else if(ar.Type=='甯冨皵鍊�) req.push({ name: ar.Name, value: ar.Value?'1':'0'}); + else if(ar.Type=='瀛楀吀' || ar.Type=='瀛楀吀-瀛楃涓�){ + if(ar.select==true){ //鍒ゆ柇涓嬫媺鏄惁澶氶� + var valStr =""; + for(var v in ar.Value){ + if(valStr) + valStr+=";"; + valStr+=ar.Value[v]; + } + req.push({ name: ar.Name, value: valStr}); + }else + req.push({ name: ar.Name, value: ar.Value}); + } else req.push({ name: ar.Name, value: ar.Value ?ar.Value :''}); + + if ((ar.NotEmpty == '1' || ar.notempty == true) && !ar.Value) { + // if(ar.notEmpty=='1'){ + uni.hideLoading(); + // uni.showToast({title:ar.DispName+'涓嶈兘涓虹┖锛�,icon:"success",duration:3000}); + uni.showModal({title:"鎻愮ず",content:ar.DispName+'涓嶈兘涓虹┖锛�,showCancel:false,confirmText:"鍙栨秷"}); + return; + } } } var enviroment = { @@ -721,6 +866,8 @@ compose: JSON.stringify([]), refdatastore: JSON.stringify([]), extinfo: JSON.stringify(enviroment), not_trigger_sys_event: '' }; + + // return console.log(dataInfo); this.$store.dispatch('addclassattr',dataInfo).then(success=>{ console.log(success); @@ -729,13 +876,16 @@ var action = JSON.parse(success.data.Action); if(action.ret=='0'){ if(action.result_type=='0'){ - uni.showModal({title:"鎻愮ず",content:action.result,showCancel:false,confirmText:"鍙栨秷"}); + uni.showToast({title:action.result,icon:"success",duration:3000}); } // "{"ret":0, "result_type":0, "result":"鍒涘缓鎴愬姛123123123","info":""}" } - this.class_attr_init(); + //鍒锋柊 + uni.redirectTo({ + url:'../modal/classAttr?param='+JSON.stringify(this.$data.param)+"&titlename="+this.$data.title + }); + // this.class_attr_init(); }else{ - uni.hideLoading(); uni.showModal({title:"閿欒",content:success.msg,showCancel:false,confirmText:"鍙栨秷"}); } }).catch(ex=>{ @@ -769,15 +919,18 @@ ca.before_click_button = attrs[j].before_click_button; ca.button_callback = attrs[j].button_callback; ca.hidden = attrs[j].hidden; + ca.select = attrs[j].select==undefined?false:attrs[j].select; ca.Value =""; if(ca.dictitem){ - // var dictitem=ca.dictitem; - // var dictitemlist=[]; - // for (var d = 0; d < dictitem.length; d++) { - // dictitemlist.push(dictitem[d].CN_S_NAME); - // } - // ca.dictitemlist = dictitemlist; - ca.Value = ca.dictitem[0].CN_S_NAME; + var dictitemlist=[]; + for (var d = 0; d < ca.dictitem.length; d++) { + ca.dictitem[d].label=ca.dictitem[d].CN_S_NAME; + ca.dictitem[d].value=ca.dictitem[d].CN_S_NAME; + } + if(ca.select == true) + ca.Value = [];//ca.dictitem[0].CN_S_NAME; + else + ca.Value = '璇烽�鎷�;//ca.dictitem[0].CN_S_NAME; } if(ca.Type=='鏃ユ湡' || ca.Type=='鏃堕棿'){ var nowDate = new Date(); @@ -797,7 +950,7 @@ if(ca.Type=='鐪佸競鍖�) ca.Value = '璇烽�鎷�; if(ca.Type=='甯冨皵鍊�) - ca.Value = false + ca.Value = false; attr.push(ca); } @@ -925,12 +1078,13 @@ var dictItemList=[]; for(var d in val[i].choice_list){ var val =val[i].choice_list[d]; - dictItemList.push({"CN_S_NAME":val,"Name":val}); + dictItemList.push({"CN_S_NAME":val,"Name":val,"label":val,"value":val}); + } ca.dictitem = dictItemList; // attr[j].dictitem = val[i].choice_list; }else{ - ca.value = val[i].value; + // ca.value = val[i].value; } } } @@ -1024,7 +1178,7 @@ var dictItemList=[]; for(var d in result[i].choice_list){ var val =result[i].choice_list[d]; - dictItemList.push({"CN_S_NAME":val,"Name":val}); + dictItemList.push({"CN_S_NAME":val,"Name":val,"label":val,"value":val}); } attr[j].dictitem = dictItemList; // attr[j].dictitem = result[i].choice_list; @@ -1118,7 +1272,7 @@ var attr = attrlist[i].Attr; for (var j = 0; j < attr.length; j++) { var ar = attr[j]; - if(ar.Value=='璇烽�鎷�) ar.Value=''; + if(ar.Value=='璇烽�鎷� || ar.Value=='鈥斺�璇烽�鎷┾�鈥�) ar.Value=''; if(ar.Type=='寮曠敤瀵硅薄(澶氫釜)') if(ar.Value=='璇�) ar.Value=''; if(ar.Type=='寮曠敤浜哄憳' || ar.Type=='寮曠敤椤圭洰') @@ -1206,7 +1360,6 @@ var attr = attrlist[i].Attr; for (var j = 0; j < attr.length; j++) { var ar = attr[j]; - if(ar.Value=='璇烽�鎷�) ar.Value=''; if(ar.Type=='寮曠敤瀵硅薄(澶氫釜)') if(ar.Value=='璇�) ar.Value=''; if(ar.Type=='寮曠敤浜哄憳' || ar.Type=='寮曠敤椤圭洰') -- Gitblit v1.9.1