|
|
@ -4,6 +4,7 @@ import { ElDialog } from 'element-plus'; |
|
|
|
|
|
|
|
|
const props = withDefaults(defineProps<{ |
|
|
const props = withDefaults(defineProps<{ |
|
|
fields:any[], |
|
|
fields:any[], |
|
|
|
|
|
subtabs:any[], |
|
|
subFields:any[], |
|
|
subFields:any[], |
|
|
commitFunc:(fields:{field:string,label:string}[],subs:{table:string,field:string,label:string}[])=>void, |
|
|
commitFunc:(fields:{field:string,label:string}[],subs:{table:string,field:string,label:string}[])=>void, |
|
|
closeFunc:()=>void, //父级只需销毁组件 |
|
|
closeFunc:()=>void, //父级只需销毁组件 |
|
|
@ -14,15 +15,19 @@ const checkList=ref<string[]>([]) |
|
|
//子表字段 |
|
|
//子表字段 |
|
|
const subCheckList=ref<string[]>([]) |
|
|
const subCheckList=ref<string[]>([]) |
|
|
|
|
|
|
|
|
|
|
|
//优化:用来按子表显示子表自动 |
|
|
|
|
|
const subTables=ref<string[]>([]) |
|
|
|
|
|
|
|
|
onMounted(()=>{ |
|
|
onMounted(()=>{ |
|
|
props.fields.forEach((val)=>{ |
|
|
props.fields.forEach((val)=>{ |
|
|
if (val.attribute===''){ |
|
|
if (val.attribute==='' && val.type!=""){ |
|
|
checkList.value.push(val.field) |
|
|
checkList.value.push(val.field) |
|
|
} |
|
|
} |
|
|
}) |
|
|
}) |
|
|
|
|
|
|
|
|
//初始化子表的字段 |
|
|
//初始化子表的字段 |
|
|
props.subFields.forEach((val)=>{ |
|
|
props.subFields.forEach((val)=>{ |
|
|
subCheckList.value.push(val.field) |
|
|
subCheckList.value.push(val.field) |
|
|
}) |
|
|
}) |
|
|
}) |
|
|
}) |
|
|
|
|
|
|
|
|
@ -37,6 +42,7 @@ function handleData(){ |
|
|
|
|
|
|
|
|
//收集子表需要导出的字段 |
|
|
//收集子表需要导出的字段 |
|
|
props.subFields.forEach((val)=>{ |
|
|
props.subFields.forEach((val)=>{ |
|
|
|
|
|
|
|
|
if(subCheckList.value.includes(val.field)){ |
|
|
if(subCheckList.value.includes(val.field)){ |
|
|
sub.push(val) |
|
|
sub.push(val) |
|
|
} |
|
|
} |
|
|
@ -55,10 +61,10 @@ function handleData(){ |
|
|
</template> |
|
|
</template> |
|
|
</el-checkbox-group> |
|
|
</el-checkbox-group> |
|
|
|
|
|
|
|
|
<div v-if="props.subFields.length>0" style="margin-top: 40px;"> |
|
|
<div v-for="tab in subtabs" style="margin-top: 40px;"> |
|
|
<h3>请选择子表导出的字段</h3> |
|
|
<h3>{{ tab.label }} : 表导出的字段</h3> |
|
|
<el-checkbox-group v-model="subCheckList"> |
|
|
<el-checkbox-group v-model="subCheckList"> |
|
|
<el-checkbox v-for="item in props.subFields" :key="item.field" :label="item.label" :value="item.field" /> |
|
|
<el-checkbox v-for="item in props.subFields.filter(val=>val.table===tab.field)" :key="item.field" :label="item.label" :value="item.field" /> |
|
|
</el-checkbox-group> |
|
|
</el-checkbox-group> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
|