202 lines
5.5 KiB
Vue
202 lines
5.5 KiB
Vue
<template>
|
|
<el-row class="data-home-index">
|
|
<el-col :span="6" class="left-charts">
|
|
<div class="left-charts-item">
|
|
<customBack top-title="生产经营主体数量统计" :top-postion="'left'">
|
|
<template #back>
|
|
<businessOne :data="state.data.one" />
|
|
</template>
|
|
</customBack>
|
|
</div>
|
|
<div class="left-charts-item">
|
|
<customBack top-title="生产经营主体数量" :top-postion="'left'">
|
|
<template #back>
|
|
<businessTwo :data="state.data.two" :query="state.queryCode" />
|
|
</template>
|
|
</customBack>
|
|
</div>
|
|
<div class="left-charts-item">
|
|
<customBack top-title="近三年用地规模曲线" :top-postion="'left'">
|
|
<template #back>
|
|
<businessThere :data="state.data.there" />
|
|
</template>
|
|
</customBack>
|
|
</div>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<businessMap></businessMap>
|
|
</el-col>
|
|
<el-col :span="6" class="right-charts">
|
|
<div class="right-charts-item">
|
|
<customBack top-title="证件状态看板" :top-postion="'right'">
|
|
<template #back>
|
|
<businessFour :data="state.data.four" />
|
|
</template>
|
|
</customBack>
|
|
</div>
|
|
<div class="right-charts-item">
|
|
<customBack top-title="生产经营主体年收益排行" :top-postion="'right'">
|
|
<template #back>
|
|
<businessFive :data="state.data.five" />
|
|
</template>
|
|
</customBack>
|
|
</div>
|
|
<div class="right-charts-item">
|
|
<customBack top-title="生产经营主体用地情况" :top-postion="'right'">
|
|
<template #back>
|
|
<businessSix :data="state.data.six" />
|
|
</template>
|
|
</customBack>
|
|
</div>
|
|
</el-col>
|
|
</el-row>
|
|
</template>
|
|
<script setup>
|
|
import { nextTick, reactive, ref } from 'vue';
|
|
import { useApp } from '@/hooks';
|
|
import { sleep } from '@/utils';
|
|
import businessMap from './components/businessMap.vue';
|
|
import businessOne from './components/businessOne.vue';
|
|
import businessTwo from './components/businessTwo.vue';
|
|
import businessThere from './components/businessThere.vue';
|
|
import businessFour from './components/businessFour.vue';
|
|
import businessFive from './components/businessFive.vue';
|
|
import businessSix from './components/businessSix.vue';
|
|
|
|
const state = reactive({
|
|
loading: false,
|
|
data: {},
|
|
queryCode: '',
|
|
});
|
|
|
|
// 加载
|
|
const loadData = async () => {
|
|
state.loading = true;
|
|
// GetInputsInfo()
|
|
// .then((res) => {
|
|
// if (res.code === 200) {
|
|
// state.data = res.data;
|
|
// }
|
|
// })
|
|
// .catch((err) => {
|
|
// app.$message.error(err.msg);
|
|
// });
|
|
await sleep(500);
|
|
state.data = {
|
|
one: [
|
|
{ value: 13.8, name: '农企/合作社' },
|
|
{ value: 23.8, name: '农资企业' },
|
|
{ value: 24.1, name: '种源企业' },
|
|
{ value: 29.8, name: '生产加工企业' },
|
|
{ value: 8.5, name: '农户' },
|
|
],
|
|
two: [
|
|
{ name: '耿马镇', value: 870 },
|
|
{ name: '勐撒镇', value: 603 },
|
|
{ name: '勐永镇', value: 854 },
|
|
{ name: '孟定镇', value: 635 },
|
|
{ name: '勐简乡', value: 795 },
|
|
{ name: '贺派乡', value: 662 },
|
|
{ name: '四排山乡', value: 584 },
|
|
{ name: '芒洪乡', value: 682 },
|
|
{ name: '大兴乡', value: 664 },
|
|
{ name: '信阳', value: 555 },
|
|
{ name: '新乡', value: 532 },
|
|
{ name: '大同', value: 511 },
|
|
],
|
|
there: [
|
|
{ value: 66, name: '2021' },
|
|
{ value: 100, name: '2022' },
|
|
{ value: 50, name: '2023' },
|
|
{ value: 150, name: '2024' },
|
|
{ value: 80, name: '2025' },
|
|
],
|
|
four: [
|
|
{ value: 58.9, label: '灌溉水田' },
|
|
{ value: 56.1, label: '基地地' },
|
|
{ value: 60.8, label: '望天田' },
|
|
{ value: 60.6, label: '水浇地' },
|
|
{ value: 32.6, label: '林地' },
|
|
{ value: 25.8, label: '育苗地' },
|
|
{ value: 56.0, label: '果园' },
|
|
{ value: 52.4, label: '草地' },
|
|
{ value: 6.3, label: '观测用地' },
|
|
{ value: 6.1, label: '监测用地' },
|
|
],
|
|
five: [
|
|
{ name: '耿马镇', value: 87.84 },
|
|
{ name: '勐撒镇', value: 60.7 },
|
|
{ name: '勐永镇', value: 85.84 },
|
|
{ name: '孟定镇', value: 63.25 },
|
|
{ name: '勐简乡', value: 79.45 },
|
|
{ name: '贺派乡', value: 66.22 },
|
|
{ name: '四排山乡', value: 58.34 },
|
|
{ name: '芒洪乡', value: 68.12 },
|
|
{ name: '大兴乡', value: 66.34 },
|
|
{ name: '信阳', value: 55.75 },
|
|
{ name: '新乡', value: 53.32 },
|
|
{ name: '大同', value: 51.11 },
|
|
],
|
|
six: [
|
|
{
|
|
name: '农企/合作社',
|
|
value: 25,
|
|
},
|
|
{
|
|
name: '农资企业',
|
|
value: 40,
|
|
},
|
|
{
|
|
name: '种源企业',
|
|
value: 24,
|
|
},
|
|
{
|
|
name: '生产加工企业',
|
|
value: 32,
|
|
},
|
|
{
|
|
name: '农户',
|
|
value: 32,
|
|
},
|
|
],
|
|
};
|
|
state.loading = false;
|
|
};
|
|
|
|
loadData();
|
|
|
|
const handleCommand = (data) => {
|
|
state.queryCode = data.value;
|
|
};
|
|
</script>
|
|
<style lang="scss" scoped>
|
|
.data-home-index {
|
|
width: 100%;
|
|
height: 100%;
|
|
|
|
.left-charts {
|
|
display: flex;
|
|
justify-content: space-around;
|
|
width: 100%;
|
|
height: 100%;
|
|
flex-direction: column;
|
|
}
|
|
.left-charts-item {
|
|
width: 100%;
|
|
height: calc((100% - 30px) / 3);
|
|
}
|
|
|
|
.right-charts {
|
|
display: flex;
|
|
justify-content: space-around;
|
|
width: 100%;
|
|
height: 100%;
|
|
flex-direction: column;
|
|
}
|
|
.right-charts-item {
|
|
width: 100%;
|
|
height: calc((100% - 30px) / 3);
|
|
}
|
|
}
|
|
</style>
|