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">
-
+
@@ -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=`editForm[${field.idCamel}]=vs.join(',')"
+ > `
+ }
+ 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: {
},