|
|
@ -143,18 +143,52 @@ const handleStreetChange = (val: string) => { |
|
|
const loadTab1Data = async () => { |
|
|
const loadTab1Data = async () => { |
|
|
loading1.value = true; |
|
|
loading1.value = true; |
|
|
try { |
|
|
try { |
|
|
const [overviewRes, areaRes] = await Promise.all([ |
|
|
// TODO: 后续放开真实接口 |
|
|
getOverview(queryParams), |
|
|
// const [overviewRes, areaRes] = await Promise.all([ |
|
|
listByArea(queryParams) |
|
|
// getOverview(queryParams), |
|
|
]); |
|
|
// listByArea(queryParams) |
|
|
overviewData.value = overviewRes.data; |
|
|
// ]); |
|
|
areaStatList.value = areaRes.data || []; |
|
|
// overviewData.value = overviewRes.data; |
|
|
|
|
|
// areaStatList.value = areaRes.data || []; |
|
|
|
|
|
|
|
|
|
|
|
// 写死数据(区域企业数量统计) |
|
|
|
|
|
overviewData.value = { |
|
|
|
|
|
total: 4439216, |
|
|
|
|
|
existCount: 0, |
|
|
|
|
|
cancelledCount: 0, |
|
|
|
|
|
areaLabel: '全市' |
|
|
|
|
|
}; |
|
|
|
|
|
areaStatList.value = [ |
|
|
|
|
|
{ name: '宝安区', totalNumber: 984119, existNumber: 0, sort: 1 }, |
|
|
|
|
|
{ name: '龙岗区', totalNumber: 966252, existNumber: 0, sort: 2 }, |
|
|
|
|
|
{ name: '福田区', totalNumber: 615441, existNumber: 0, sort: 3 }, |
|
|
|
|
|
{ name: '南山区', totalNumber: 601902, existNumber: 0, sort: 4 }, |
|
|
|
|
|
{ name: '龙华区', totalNumber: 572932, existNumber: 0, sort: 5 }, |
|
|
|
|
|
{ name: '罗湖区', totalNumber: 311483, existNumber: 0, sort: 6 }, |
|
|
|
|
|
{ name: '光明区', totalNumber: 192114, existNumber: 0, sort: 7 }, |
|
|
|
|
|
{ name: '坪山区', totalNumber: 92084, existNumber: 0, sort: 8 }, |
|
|
|
|
|
{ name: '盐田区', totalNumber: 62220, existNumber: 0, sort: 9 }, |
|
|
|
|
|
{ name: '大鹏新区', totalNumber: 29258, existNumber: 0, sort: 10 }, |
|
|
|
|
|
{ name: '深汕特别合作区', totalNumber: 11411, existNumber: 0, sort: 11 } |
|
|
|
|
|
]; |
|
|
areaPageNum.value = 1; |
|
|
areaPageNum.value = 1; |
|
|
} finally { |
|
|
} finally { |
|
|
loading1.value = false; |
|
|
loading1.value = false; |
|
|
} |
|
|
} |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
/** 区域汇总表合计行 */ |
|
|
|
|
|
const getAreaSummary = ({ columns, data }: { columns: any[]; data: EnterpriseAreaStatVo[] }) => { |
|
|
|
|
|
return columns.map((col, index) => { |
|
|
|
|
|
if (index === 0) return '总计'; |
|
|
|
|
|
if (index === 1) { |
|
|
|
|
|
const total = data.reduce((sum, item) => sum + (item.totalNumber || 0), 0); |
|
|
|
|
|
return `${(total / 10000)} 万家`; |
|
|
|
|
|
} |
|
|
|
|
|
return ''; |
|
|
|
|
|
}); |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
/** 搜索 */ |
|
|
/** 搜索 */ |
|
|
const handleQuery = () => { |
|
|
const handleQuery = () => { |
|
|
if (viewLevel.value === 1) { |
|
|
if (viewLevel.value === 1) { |
|
|
@ -406,13 +440,13 @@ const handleExportType = async () => { |
|
|
<!-- 统计指标 --> |
|
|
<!-- 统计指标 --> |
|
|
<div class="stats-line"> |
|
|
<div class="stats-line"> |
|
|
<span class="stats-item">企业数量<em>{{ overviewData.total }}</em></span> |
|
|
<span class="stats-item">企业数量<em>{{ overviewData.total }}</em></span> |
|
|
<span class="stats-item">续存企业数量<em>{{ overviewData.existCount }}</em></span> |
|
|
<!-- <span class="stats-item">续存企业数量<em>{{ overviewData.existCount }}</em></span> --> |
|
|
<span class="stats-item">注销企业数量<em>{{ overviewData.cancelledCount }}</em></span> |
|
|
<!-- <span class="stats-item">注销企业数量<em>{{ overviewData.cancelledCount }}</em></span> --> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<!-- 区域汇总表 (viewLevel=1) --> |
|
|
<!-- 区域汇总表 (viewLevel=1) --> |
|
|
<el-card v-if="viewLevel === 1" shadow="hover" v-loading="loading1"> |
|
|
<el-card v-if="viewLevel === 1" shadow="hover" v-loading="loading1"> |
|
|
<el-table :data="areaStatList" border stripe> |
|
|
<el-table :data="areaStatList" border stripe show-summary :summary-method="getAreaSummary"> |
|
|
<el-table-column label="区域" align="center"> |
|
|
<el-table-column label="区域" align="center"> |
|
|
<template #default="{ row }"> |
|
|
<template #default="{ row }"> |
|
|
<el-link v-if="row.name !== '其他'" type="primary" :underline="false" @click="handleAreaClick(row)">{{ row.name }}</el-link> |
|
|
<el-link v-if="row.name !== '其他'" type="primary" :underline="false" @click="handleAreaClick(row)">{{ row.name }}</el-link> |
|
|
@ -420,7 +454,7 @@ const handleExportType = async () => { |
|
|
</template> |
|
|
</template> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
<el-table-column label="企业数量" prop="totalNumber" align="center" /> |
|
|
<el-table-column label="企业数量" prop="totalNumber" align="center" /> |
|
|
<el-table-column label="续存企业数量" prop="existNumber" align="center" /> |
|
|
<!-- <el-table-column label="续存企业数量" prop="existNumber" align="center" /> --> |
|
|
<el-table-column label="操作" width="80" align="center"> |
|
|
<el-table-column label="操作" width="80" align="center"> |
|
|
<template #default="{ row }"> |
|
|
<template #default="{ row }"> |
|
|
<el-link type="success" :underline="false" @click="handleAreaDetailClick(row)">详情</el-link> |
|
|
<el-link type="success" :underline="false" @click="handleAreaDetailClick(row)">详情</el-link> |
|
|
|