Browse Source

修复table类型字段的导出

han_v2
han2015 4 months ago
parent
commit
fcda0fd663
  1. 10
      src/components/DesignForm/app/index.vue
  2. 16
      src/components/DesignForm/exportPanel.vue

10
src/components/DesignForm/app/index.vue

@ -993,7 +993,7 @@ const getPageData = () => {
//
function doImportTableData(){
dynamicVNode.value=h(importPanel,{
fields:props.fieldsDetailList,
fields:props.fieldsDetailList.filter(val=>val.type!=="table"),
formId:props.versionid,
commitFunc:()=>{
getPageData() //table
@ -1033,7 +1033,8 @@ function doExportTableData(){
let maxline=0;
//
for (let val of fields){
line.push((item[val.field] as string).replaceAll(",",","))
if(typeof(val)==="string") line.push((item[val.field] as string).replaceAll(",",","))
else line.push(item[val.field])
}
//
@ -1080,7 +1081,7 @@ function doExportTableData(){
})
//
if((array.length-1)!==datas.total) alert(`实际数据总量${datas.total}, 导出数据总量${array.length}`)
if((array.length-1)!==datas.total) alert(`导出记录数${datas.total}, 共计${array.length-1}`)
const filename= props.pickAppMenu.label+".csv"
const csvString = array.join('\n');
@ -1100,7 +1101,8 @@ function doExportTableData(){
}
dynamicVNode.value=h(exportPanel,{
fields:columnsFilter.value,
fields:columnsFilter.value.filter((item)=>item.pattern!=="table"),
subtabs:columnsFilter.value.filter((item)=>item.pattern==="table"),
subFields:subTableFieldsFilter.value.fields,
commitFunc:exportFunc,
closeFunc:()=>dynamicVNode.value=null

16
src/components/DesignForm/exportPanel.vue

@ -4,6 +4,7 @@ import { ElDialog } from 'element-plus';
const props = withDefaults(defineProps<{
fields:any[],
subtabs:any[],
subFields:any[],
commitFunc:(fields:{field:string,label:string}[],subs:{table:string,field:string,label:string}[])=>void,
closeFunc:()=>void, //
@ -14,15 +15,19 @@ const checkList=ref<string[]>([])
//
const subCheckList=ref<string[]>([])
//
const subTables=ref<string[]>([])
onMounted(()=>{
props.fields.forEach((val)=>{
if (val.attribute===''){
if (val.attribute==='' && val.type!=""){
checkList.value.push(val.field)
}
})
//
props.subFields.forEach((val)=>{
subCheckList.value.push(val.field)
subCheckList.value.push(val.field)
})
})
@ -37,6 +42,7 @@ function handleData(){
//
props.subFields.forEach((val)=>{
if(subCheckList.value.includes(val.field)){
sub.push(val)
}
@ -55,10 +61,10 @@ function handleData(){
</template>
</el-checkbox-group>
<div v-if="props.subFields.length>0" style="margin-top: 40px;">
<h3>请选择子表导出的字段</h3>
<div v-for="tab in subtabs" style="margin-top: 40px;">
<h3>{{ tab.label }} : 表导出的字段</h3>
<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>
</div>

Loading…
Cancel
Save