|
|
|
@ -60,7 +60,6 @@ const onUpdateSort = (data: { prop: string; order: "ascending" | "descending" | |
|
|
|
columnSortData.delete(data.prop); |
|
|
|
} |
|
|
|
|
|
|
|
selectedMergeKeys.value=Array.from(columnSortData.keys()) |
|
|
|
getPageData(); |
|
|
|
} |
|
|
|
|
|
|
|
@ -68,7 +67,7 @@ const onUpdateSort = (data: { prop: string; order: "ascending" | "descending" | |
|
|
|
const spanMap = computed(() => { |
|
|
|
const map = {} |
|
|
|
const pos = {} |
|
|
|
|
|
|
|
selectedMergeKeys.value=Array.from(columnSortData.keys()) |
|
|
|
// 按优先级排序的合并列,获取排序列 |
|
|
|
selectedMergeKeys.value.forEach((key, index) => { |
|
|
|
map[key] = [] |
|
|
|
@ -152,19 +151,39 @@ const getPageData=async ()=>{ |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
const tableChildren = (field:string,dataList:any) => { |
|
|
|
let jieguo = "" |
|
|
|
if(Array.isArray(dataList)){ |
|
|
|
dataList.forEach((item) => { |
|
|
|
if(typeof(item)=="object"){ |
|
|
|
for (let key in item) { |
|
|
|
if (field == key){ |
|
|
|
if(jieguo!=""){ |
|
|
|
jieguo = jieguo+"<div style='width: 100%;height: 1px;border-bottom: 1px solid #EBEEF5; margin: 8px 0;'></div>"+item[key] |
|
|
|
}else{ |
|
|
|
jieguo = item[key] |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
}) |
|
|
|
} |
|
|
|
return jieguo |
|
|
|
} |
|
|
|
|
|
|
|
onMounted(()=>{ |
|
|
|
columnSortData.clear() |
|
|
|
//处理默认分组 |
|
|
|
if(props.viewSetup.form.title&&props.viewSetup.form.title.length){ |
|
|
|
props.viewSetup.form.title.forEach(ele => { |
|
|
|
if(props.viewSetup.form.sort==2){ |
|
|
|
columnSortData.set(ele, ""); |
|
|
|
}else{ |
|
|
|
columnSortData.set(ele,'DESC'); //默认asc |
|
|
|
columnSortData.set(ele,'DESC'); //默认desc |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
selectedMergeKeys.value=Array.from(columnSortData.keys()) |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
nextTick(()=>{ |
|
|
|
getPageData() |
|
|
|
@ -175,7 +194,6 @@ defineExpose({ |
|
|
|
groupColumnSearch |
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
</script> |
|
|
|
<template> |
|
|
|
<div id="special-table-container"> |
|
|
|
@ -225,9 +243,9 @@ defineExpose({ |
|
|
|
> |
|
|
|
<template #default="scope"> |
|
|
|
<template v-for="sunItem in item.children" v-if="item.pattern == 'table'"> |
|
|
|
<el-table-column v-if="sunItem.fieldClass == ''" :prop="sunItem.field" :label="sunItem.label" header-align="center" align="center" :min-width="readerColumnSun(sunItem)"> |
|
|
|
<el-table-column v-if="sunItem.fieldClass == ''" :prop="sunItem.field" :label="sunItem.label" header-align="center" align="center" :min-width="(sunItem.label?.length || 2) * 15 + 30"> |
|
|
|
<template #default="scopeChilder"> |
|
|
|
{{scopeChilder.row[item.field]}} |
|
|
|
<div v-html="tableChildren(sunItem.field,scopeChilder.row[item.field])"></div> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</template> |
|
|
|
|