diff --git a/src/views/mdp/form/formField/Field.vue b/src/views/mdp/form/formField/Field.vue index f377a6d..18763fc 100644 --- a/src/views/mdp/form/formField/Field.vue +++ b/src/views/mdp/form/formField/Field.vue @@ -76,7 +76,7 @@ width="400" trigger="hover"> -
+
{{createSource()}}
+
@@ -149,7 +150,8 @@ export default { }, primaryKeys:[], defaultField:{formId:'formId',showStyle:'origin',id:'four',idCamel:'four',title:'布局-列1',dict:'',gname:'',typ:'text',len:12,span:24,dval:'',mul:'0',hol:'请输入',req:'0',remark:'属性',extType:'',toFlow:'0',bkey:'0',qx:'',isNewAdd:true}, - + extInfosList:[], + extInfosMap:{}, /**end 在上面加自定义属性**/ }//end return },//end data @@ -165,26 +167,179 @@ export default { }, createSubSource(lvl,children){ + var sourceStr="" if(!children || children.length==0){ return sourceStr; } var lvlt=this.getTabByLvl(lvl) var lvlt1=this.getTabByLvl(lvl+1) - children.forEach((f,idx)=>{ - var hasChild=f.children&&f.children.length>0; - var subSrc=hasChild?lvlt1+this.createSubSource(lvl+1,f.children):""; - sourceStr=`${sourceStr}\n${lvlt}${subSrc}\n${lvlt}` + children.forEach((field,idx)=>{ + var extInfosMap=this.getExtInfosMap(field); + var hasChild=field.children&&field.children.length>0; + if(field.extType=='row'){ + var subSrc=hasChild?lvlt1+this.rowChildSrc(lvl+1,field):""; + sourceStr=`${sourceStr}\n${lvlt}${subSrc}\n${lvlt}` + }else if(field.extType=='card'){ + var header=` +
+ ${field.title} +
+ ` + var subSrc=hasChild?lvlt1+this.rowChildSrc(lvl+1,field):""; + sourceStr=`${sourceStr}\n${lvlt}${header}\n${lvlt}\t${subSrc}\n${lvlt}\t\n${lvlt}` + }else if(field.extType=='tabs'){ + var subSrc=hasChild?lvlt1+this.tabsChildSrc(lvl+1,field):""; + sourceStr=`${sourceStr}\n${lvlt}${subSrc}\n${lvlt}` + }else{ + var fieldSrc="" + if(field.extType=='user'){ + fieldSrc=`` + }else if(field.extType=='dept'){ + fieldSrc=`` + + }else if(field.extType=='tag'){ + fieldSrc=`` + + }else if( ['select','radio','checkbox'].some(k=>k==field.typ)){ + + var plusOptions="" + if(extInfosMap['plusOptions']){ + plusOptions=`:plus-options="${extInfosMap['plusOptions']}"` + } + fieldSrc=`` + + }else if(field.extType=='html'){ + if(field.ronly=='1'){ + fieldSrc=`
` + }else{ + fieldSrc=` + +
+
` + } + }else if(field.extType=='link'){ + if(field.ronly=='1'){ + fieldSrc=`{{ editForm.${field.idCamel}||${field.dval}||'无' }}` + }else{ + fieldSrc=` + + {{ editForm.${field.idCamel}||${field.dval}||'无' }} + ` + } + }else if(field.extType=='image'){ + if(field.ronly=='1'){ + fieldSrc=` + ` + }else{ + fieldSrc=` + 上传图片 + + + ` + } + }else if(field.extType=='att'){ + if(field.ronly=='1'){ + fieldSrc=`{{ editForm.${field.idCamel}||${field.dval}||'无' }}` + }else{ + fieldSrc=` + 上传附件 + {{ editForm.${field.idCamel}||${field.dval}||'无' }} + ` + } + }else if(field.extType=='text'){ + fieldSrc=` ` + + }else if(field.extType=='number'){ + fieldSrc=` ` + + }else if(field.extType=='amount'){ + fieldSrc=` ` + }else if(field.extType=='textarea'){ + fieldSrc=` ` + + }else if(field.extType=='time'){ + fieldSrc=` ` + }else if(field.extType=='date'){ + fieldSrc=` ` + + }else if(field.extType=='datetime'){ + fieldSrc=` ` + + }else if(field.extType=='month'){ + fieldSrc=` ` + }else if(field.extType=='year'){ + fieldSrc=` ` + + }else if(field.extType=='daterange'){ + fieldSrc=` ` + } + var vrules=field.vrules?JSON.parse(field.vrules):[] + if(field.req=='1'){ + if(!vrules.some(k=>'required' in k)){ + vrules.push({required:true,message:"此项必填",trigger:"change"}) + } + } + sourceStr=`${sourceStr}${fieldSrc}` + } + }) return sourceStr; }, + rowChildSrc(lvl,field){ + var src="" + if(field.children && field.children.length>0){ + field.children.forEach(k=>{ + var span=k.span?k.span:24 + src=`${src}${this.createSubSource(lvl,[k])}` + }) + } + return src + }, + + tabsChildSrc(lvl,field){ + var src="" + var tabList=field.gname.split(",") + tabList.forEach(tab=>{ + var childs=field.children.filter(f=>f.gname==tab||!f.gname) + var subSrc=childs&&childs.length>0?this.rowChildSrc(lvl,{children:childs}):"" + src=`${src}${subSrc}` + }) + return src + }, getTabByLvl(lvl){ var str="" for(var i=0;i{ + extInfosMap[k.id]=k.value + }) + return extInfosMap; + }, },//end method components: { },