|
|
@ -5,19 +5,25 @@ |
|
|
|
<a-card title="项目总进度" :body-style="{ padding: 0, overflow: 'hidden' }"> |
|
|
|
<a-row> |
|
|
|
<a-col :span="12" class="flex justify-center items-center h-58"> |
|
|
|
<el-progress type="dashboard" :stroke-width="18" :percentage="Number(data.totalProgress.progress)*100>0?Number(data.totalProgress.progress)*100:0" :width="200"> |
|
|
|
<el-progress |
|
|
|
type="dashboard" |
|
|
|
:stroke-width="18" |
|
|
|
:percentage=" |
|
|
|
Number(data.totalProgress.progress) * 100 > 0 |
|
|
|
? Number(data.totalProgress.progress) * 100 |
|
|
|
: 0 |
|
|
|
" |
|
|
|
:width="200" |
|
|
|
> |
|
|
|
<template #default="{ percentage }"> |
|
|
|
|
|
|
|
|
|
|
|
<div class="flex flex-col ..."> |
|
|
|
<div>总进度</div> |
|
|
|
<div class="mt-4 text-sky-400"> {{ percentage }}%</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</el-progress> |
|
|
|
</a-col> |
|
|
|
<a-col :span="4" class="flex justify-center items-center "> |
|
|
|
<a-col :span="4" class="flex justify-center items-center"> |
|
|
|
<div class="flex flex-col"> |
|
|
|
<div class="text-center"> |
|
|
|
<!-- 这里放置内容 --> |
|
|
@ -55,17 +61,25 @@ |
|
|
|
</a-col> |
|
|
|
</a-row> |
|
|
|
</a-card> |
|
|
|
|
|
|
|
</a-col> |
|
|
|
<a-col :span="12"> |
|
|
|
<a-card title="资金支付情况" :body-style="{ padding: 0, overflow: 'hidden' }"> |
|
|
|
<a-row> |
|
|
|
<a-col :span="8" class="flex justify-center items-center h-58"> |
|
|
|
<el-progress type="dashboard" :stroke-width="18" :percentage="Number(data.countFundByFundType.paymentExecutionRate)*100>0?Number(data.countFundByFundType.paymentExecutionRate)*100:0" :width="200"> |
|
|
|
<el-progress |
|
|
|
type="dashboard" |
|
|
|
:stroke-width="18" |
|
|
|
:percentage=" |
|
|
|
Number(data.countFundByFundType.paymentExecutionRate) * 100 > 0 |
|
|
|
? Number(data.countFundByFundType.paymentExecutionRate) * 100 |
|
|
|
: 0 |
|
|
|
" |
|
|
|
:width="200" |
|
|
|
> |
|
|
|
<template #default="{ percentage }"> |
|
|
|
<div class="flex flex-col ..."> |
|
|
|
<div>合同总金额</div> |
|
|
|
<div class="mt-4 text-blue-600">{{data.countFundByFundType.totalMoney}}</div> |
|
|
|
<div class="mt-4 text-blue-600">{{ data.countFundByFundType.totalMoney }}</div> |
|
|
|
<div class="mt-4 text-sky-400"> {{ percentage }}%</div> |
|
|
|
</div> |
|
|
|
</template> |
|
|
@ -76,8 +90,17 @@ |
|
|
|
<div> |
|
|
|
<div class="flex flex-wrap"> |
|
|
|
<div class="mr-2">中央资金</div> |
|
|
|
<div class="mr-2"><el-progress class="w-80" :text-inside="true" :stroke-width="18" |
|
|
|
:percentage="Number(data.countFundByFundType.payCentralExecutionRate)*100>0?Number(data.countFundByFundType.payCentralExecutionRate)*100:0" /> |
|
|
|
<div class="mr-2" |
|
|
|
><el-progress |
|
|
|
class="w-80" |
|
|
|
:text-inside="true" |
|
|
|
:stroke-width="18" |
|
|
|
:percentage=" |
|
|
|
Number(data.countFundByFundType.payCentralExecutionRate) * 100 > 0 |
|
|
|
? Number(data.countFundByFundType.payCentralExecutionRate) * 100 |
|
|
|
: 0 |
|
|
|
" |
|
|
|
/> |
|
|
|
</div> |
|
|
|
<div>{{ data.countFundByFundType.totalCentral }}</div> |
|
|
|
</div> |
|
|
@ -85,17 +108,35 @@ |
|
|
|
<div class="mt-4"> |
|
|
|
<div class="flex flex-wrap"> |
|
|
|
<div class="mr-2">省级资金</div> |
|
|
|
<div class="mr-2"><el-progress class="w-80" :text-inside="true" :stroke-width="18" |
|
|
|
:percentage="Number(data.countFundByFundType.payProvincialExecutionRate)*100>0?Number(data.countFundByFundType.payProvincialExecutionRate)*100:0" /> |
|
|
|
<div class="mr-2" |
|
|
|
><el-progress |
|
|
|
class="w-80" |
|
|
|
:text-inside="true" |
|
|
|
:stroke-width="18" |
|
|
|
:percentage=" |
|
|
|
Number(data.countFundByFundType.payProvincialExecutionRate) * 100 > 0 |
|
|
|
? Number(data.countFundByFundType.payProvincialExecutionRate) * 100 |
|
|
|
: 0 |
|
|
|
" |
|
|
|
/> |
|
|
|
</div> |
|
|
|
<div>{{data.countFundByFundType.totalProvincial}}</div> |
|
|
|
<div>{{ data.countFundByFundType.totalProvincial }}</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="mt-4"> |
|
|
|
<div class="flex flex-wrap"> |
|
|
|
<div class="mr-2">市级资金</div> |
|
|
|
<div class="mr-2"><el-progress class="w-80" :text-inside="true" :stroke-width="18" |
|
|
|
:percentage="Number(data.countFundByFundType.payCityExecutionRate)*100>0?Number(data.countFundByFundType.payCityExecutionRate)*100:0" /> |
|
|
|
<div class="mr-2" |
|
|
|
><el-progress |
|
|
|
class="w-80" |
|
|
|
:text-inside="true" |
|
|
|
:stroke-width="18" |
|
|
|
:percentage=" |
|
|
|
Number(data.countFundByFundType.payCityExecutionRate) * 100 > 0 |
|
|
|
? Number(data.countFundByFundType.payCityExecutionRate) * 100 |
|
|
|
: 0 |
|
|
|
" |
|
|
|
/> |
|
|
|
</div> |
|
|
|
<div>{{ data.countFundByFundType.totalCity }}</div> |
|
|
|
</div> |
|
|
@ -103,53 +144,68 @@ |
|
|
|
<div class="mt-4"> |
|
|
|
<div class="flex flex-wrap"> |
|
|
|
<div class="mr-2">区县资金</div> |
|
|
|
<div class="mr-2"><el-progress class="w-80" :text-inside="true" :stroke-width="18" |
|
|
|
:percentage="Number(data.countFundByFundType.payCountyExecutionRate)*100>0?Number(data.countFundByFundType.payCountyExecutionRate)*100:0" /> |
|
|
|
<div class="mr-2" |
|
|
|
><el-progress |
|
|
|
class="w-80" |
|
|
|
:text-inside="true" |
|
|
|
:stroke-width="18" |
|
|
|
:percentage=" |
|
|
|
Number(data.countFundByFundType.payCountyExecutionRate) * 100 > 0 |
|
|
|
? Number(data.countFundByFundType.payCountyExecutionRate) * 100 |
|
|
|
: 0 |
|
|
|
" |
|
|
|
/> |
|
|
|
</div> |
|
|
|
<div>{{data.countFundByFundType.totalCounty}}</div> |
|
|
|
<div>{{ data.countFundByFundType.totalCounty }}</div> |
|
|
|
</div> |
|
|
|
<div class="mt-4"> |
|
|
|
<div class="flex flex-wrap"> |
|
|
|
<div class="mr-2">自筹资金</div> |
|
|
|
<div class="mr-2"><el-progress class="w-80" :text-inside="true" :stroke-width="18" |
|
|
|
:percentage="Number(data.countFundByFundType.paySelfExecutionRate)*100>0?Number(data.countFundByFundType.paySelfExecutionRate)*100:0" /> |
|
|
|
<div class="mr-2" |
|
|
|
><el-progress |
|
|
|
class="w-80" |
|
|
|
:text-inside="true" |
|
|
|
:stroke-width="18" |
|
|
|
:percentage=" |
|
|
|
Number(data.countFundByFundType.paySelfExecutionRate) * 100 > 0 |
|
|
|
? Number(data.countFundByFundType.paySelfExecutionRate) * 100 |
|
|
|
: 0 |
|
|
|
" |
|
|
|
/> |
|
|
|
</div> |
|
|
|
<div>{{data.countFundByFundType.totalSelf}}</div> |
|
|
|
<div>{{ data.countFundByFundType.totalSelf }}</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</a-col> |
|
|
|
|
|
|
|
</a-row> |
|
|
|
</a-card> |
|
|
|
</a-col> |
|
|
|
|
|
|
|
</a-row> |
|
|
|
<a-row :gutter="16" class="mt-4"> |
|
|
|
<a-col :span="12"> |
|
|
|
<a-card :body-style="{ padding: 0, overflow: 'hidden' }" class="h-104"> |
|
|
|
<bas_bar title="总进度" :data="bas_barData"/> |
|
|
|
|
|
|
|
<bas_bar title="总进度" :data="bas_barData" /> |
|
|
|
</a-card> |
|
|
|
</a-col> |
|
|
|
<a-col :span="12"> |
|
|
|
<a-card :body-style="{ padding: 0, overflow: 'hidden' }" class="h-104"> |
|
|
|
<bar title="资金支付情况" :data="barData"/> |
|
|
|
<a-card :body-style="{ padding: 0, overflow: 'hidden' }" class="h-104"> |
|
|
|
<bar title="资金支付情况" :data="barData" /> |
|
|
|
</a-card> |
|
|
|
</a-col> |
|
|
|
</a-row> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
<script lang="ts"> |
|
|
|
import bas_bar from './bas_bar.vue' |
|
|
|
import bar from './bar.vue' |
|
|
|
import { showCountBoardByAdminDivision} from './childBoard.api' |
|
|
|
export default { |
|
|
|
components: { |
|
|
|
bas_bar, |
|
|
|
bar, |
|
|
|
}, |
|
|
|
import bas_bar from './bas_bar.vue'; |
|
|
|
import bar from './bar.vue'; |
|
|
|
import { showCountBoardByAdminDivision } from './childBoard.api'; |
|
|
|
export default { |
|
|
|
components: { |
|
|
|
bas_bar, |
|
|
|
bar, |
|
|
|
}, |
|
|
|
data() { |
|
|
|
return { |
|
|
|
data: { |
|
|
@ -182,36 +238,34 @@ export default { |
|
|
|
payCountyExecutionRate: '0.00', |
|
|
|
paySelfExecutionRate: '0.00', |
|
|
|
}, |
|
|
|
countFundByCondition:[], |
|
|
|
progress:[] |
|
|
|
countFundByCondition: [], |
|
|
|
progress: [], |
|
|
|
}, |
|
|
|
bas_barData: { |
|
|
|
names:[], |
|
|
|
values:[] |
|
|
|
names: [], |
|
|
|
values: [], |
|
|
|
}, |
|
|
|
barData: { |
|
|
|
names:[], |
|
|
|
paymentExecutionRates:[], |
|
|
|
superiorFundExecutionRates:[] |
|
|
|
} |
|
|
|
names: [], |
|
|
|
paymentExecutionRates: [], |
|
|
|
superiorFundExecutionRates: [], |
|
|
|
totalMoneys: [], |
|
|
|
}, |
|
|
|
}; |
|
|
|
}, |
|
|
|
async created() { |
|
|
|
this.data = await showCountBoardByAdminDivision() |
|
|
|
this.data.progress.forEach(item => { |
|
|
|
this.bas_barData.names.push(item.name) |
|
|
|
this.bas_barData.values.push(item.projectProgress) |
|
|
|
}) |
|
|
|
this.data.countFundByCondition.forEach(item => { |
|
|
|
this.barData.names.push(item.name) |
|
|
|
this.barData.paymentExecutionRates.push(item.paymentExecutionRate) |
|
|
|
this.barData.superiorFundExecutionRates.push(item.superiorFundExecutionRate) |
|
|
|
}) |
|
|
|
this.data = await showCountBoardByAdminDivision(); |
|
|
|
this.data.progress.forEach((item) => { |
|
|
|
this.bas_barData.names.push(item.name); |
|
|
|
this.bas_barData.values.push(item.projectProgress); |
|
|
|
}); |
|
|
|
this.data.countFundByCondition.forEach((item) => { |
|
|
|
this.barData.names.push(item.name); |
|
|
|
this.barData.paymentExecutionRates.push(item.paymentExecutionRate); |
|
|
|
this.barData.superiorFundExecutionRates.push(item.superiorFundExecutionRate); |
|
|
|
this.barData.totalMoneys.push(item.totalMoney); |
|
|
|
}); |
|
|
|
}, |
|
|
|
methods: {}, |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</script> |
|
|
|