统计切换为树形结构

This commit is contained in:
yy2205 2025-04-20 17:24:36 +08:00
parent f0518795da
commit 1bc38d1884
2 changed files with 18 additions and 25 deletions

View File

@ -329,7 +329,7 @@ const convertToTreeTableData = (listData: TemplateVO[]) => {
result.push(typeItem) result.push(typeItem)
}) })
return result return result
} }
@ -346,4 +346,4 @@ onMounted(() => {
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
} }
</style> </style>

View File

@ -18,27 +18,19 @@
size="big" size="big"
@change="changeDatePick" @change="changeDatePick"
/> />
<el-button type="primary" @click="getList" style="margin-left: 20px;">
<Icon icon="ep:search" class="mr-5px" /> 查询
</el-button>
</el-form-item> </el-form-item>
</el-row> </el-row>
</ContentWrap> </ContentWrap>
<ContentWrap> <ContentWrap>
<el-table :data="data1" show-summary max-height="650"> <el-table :data="data1" show-summary max-height="650"
default-expand-all
row-key="orgname"
:tree-props="{ children: 'children' }">
<el-table-column label="卫生院" align="center" prop="orgname" width="200"/> <el-table-column label="卫生院" align="center" prop="orgname" width="200"/>
<el-table-column type="expand" label="展开行政村" align="center" width="200"> <el-table-column label="行政村" align="center" prop="districtname" width="200"/>
<template #default="scope">
<el-table :data="scope.row.list" style="margin-left: 200px;">
<el-table-column label="行政村" align="center" prop="districtname" width="200"/>
<el-table-column label="体检数" align="center" >
<el-table-column label="老年人" align="center" prop="oldmanflag" width="210" />
<el-table-column label="高血压" align="center" prop="htnflag" width="210"/>
<el-table-column label="糖尿病" align="center" prop="diaflag" width="210"/>
<el-table-column label="精神病" align="center" prop="smiflag" width="210"/>
<el-table-column label="肺结核" align="center" prop="pulflag" width="210"/>
<el-table-column label="总数" align="center" prop="sum" sortable width="210"/>
</el-table-column>
</el-table>
</template>
</el-table-column>
<el-table-column label="体检数" align="center" > <el-table-column label="体检数" align="center" >
<el-table-column label="老年人" align="center" prop="oldmanflag" width="210"/> <el-table-column label="老年人" align="center" prop="oldmanflag" width="210"/>
<el-table-column label="高血压" align="center" prop="htnflag" width="210"/> <el-table-column label="高血压" align="center" prop="htnflag" width="210"/>
@ -86,7 +78,6 @@ const data = ref([
])*/ ])*/
const data1 = ref([]) const data1 = ref([])
const radioSelector = ref([ const radioSelector = ref([
{value:1,label:'全部'},
{value:2,label:'今天'}, {value:2,label:'今天'},
{value:3,label:'最近一周'}, {value:3,label:'最近一周'},
{value:4,label:'最近一个月'}, {value:4,label:'最近一个月'},
@ -129,7 +120,6 @@ const changeRadio = (e) => {
let start = new Date() let start = new Date()
let date = null let date = null
switch (e){ switch (e){
case 1 : date = [];break
case 2 : break case 2 : break
case 3 : start.setDate(start.getDate() - 7);break case 3 : start.setDate(start.getDate() - 7);break
case 4 : start.setMonth(start.getMonth() - 1);break case 4 : start.setMonth(start.getMonth() - 1);break
@ -137,11 +127,11 @@ const changeRadio = (e) => {
} }
console.log(time.value) console.log(time.value)
time.value = [formatDate(start,'YYYY-MM-DD'),formatDate(end,'YYYY-MM-DD')] time.value = [formatDate(start,'YYYY-MM-DD'),formatDate(end,'YYYY-MM-DD')]
getList() // getList()
} }
const changeDatePick = () => { const changeDatePick = () => {
radioType.value = null radioType.value = null
getList() // getList()
} }
/** /**
* 获取统计数据 * 获取统计数据
@ -155,6 +145,7 @@ const getList = async ()=>{
} }
let resp = await PatientApi.getData(params) let resp = await PatientApi.getData(params)
data1.value = dataProcessing(resp) data1.value = dataProcessing(resp)
console.log(data1.value)
} }
/** /**
* 统计数据处理 * 统计数据处理
@ -173,7 +164,7 @@ const dataProcessing = (data) => {
smiflag: 0, smiflag: 0,
pulflag: 0, pulflag: 0,
sum: 0, sum: 0,
list: [] children: []
}; };
} }
// //
@ -184,15 +175,17 @@ const dataProcessing = (data) => {
acc[key].pulflag += current.pulflag; acc[key].pulflag += current.pulflag;
acc[key].sum += current.sum; acc[key].sum += current.sum;
// list // list
acc[key].list.push({ ...current }); let cObj = Object.assign(current,{})
delete cObj.orgname
acc[key].children.push({ ...cObj });
return acc; return acc;
}, {}); }, {});
return Object.values(result); return Object.values(result);
} }
onMounted(()=>{ onMounted(()=>{
getList()
changeRadio(3) changeRadio(3)
getList()
}) })
</script> </script>