104 lines
1.8 KiB
Vue
104 lines
1.8 KiB
Vue
|
<template>
|
||
|
<!-- <div class="custom-page" :style="`background-image: url(${getAssetsFile('images/landBase/land2.png')})`"> -->
|
||
|
<div>
|
||
|
<!-- <h1>统计数据</h1> -->
|
||
|
<div class="content">
|
||
|
<div :ref="props.refs" style="width: 500px; height: 350px"></div>
|
||
|
</div>
|
||
|
</div>
|
||
|
</template>
|
||
|
|
||
|
<script setup>
|
||
|
import { ref, onMounted, reactive, watch } from 'vue';
|
||
|
import * as echarts from 'echarts';
|
||
|
import 'echarts-gl';
|
||
|
import { defineProps } from 'vue';
|
||
|
import { size } from 'lodash';
|
||
|
// 定义props
|
||
|
const props = defineProps({
|
||
|
title: {
|
||
|
type: String,
|
||
|
default: () => {
|
||
|
return '暂无';
|
||
|
},
|
||
|
},
|
||
|
data: {
|
||
|
type: Array,
|
||
|
default: () => {
|
||
|
return [];
|
||
|
},
|
||
|
},
|
||
|
refs: {
|
||
|
type: String,
|
||
|
default: () => {
|
||
|
return '';
|
||
|
},
|
||
|
},
|
||
|
});
|
||
|
|
||
|
let chart1 = ref(null);
|
||
|
|
||
|
console.log(props.refs);
|
||
|
|
||
|
let option = ref({});
|
||
|
|
||
|
watch(props.data, (data, oldata) => {
|
||
|
console.log(data);
|
||
|
let instance = echarts.init(chart1.value);
|
||
|
instance.setOption(option.value);
|
||
|
});
|
||
|
|
||
|
option.value = {
|
||
|
title: {
|
||
|
text: props.title,
|
||
|
x: 'center',
|
||
|
size: 10,
|
||
|
},
|
||
|
// backgroundColor: '#0f375f',
|
||
|
legend: {
|
||
|
top: 25,
|
||
|
left: '0',
|
||
|
itemWidth: 20,
|
||
|
itemHeight: 15,
|
||
|
textStyle: {
|
||
|
color: '#aab2cd',
|
||
|
},
|
||
|
},
|
||
|
tooltip: {
|
||
|
trigger: 'item',
|
||
|
formatter: '{b} <br/>面积: {c}万亩 ({d}%)',
|
||
|
},
|
||
|
label: {
|
||
|
show: true,
|
||
|
formatter: '{b}: {c}万亩',
|
||
|
},
|
||
|
series: [
|
||
|
{
|
||
|
type: 'pie',
|
||
|
radius: '70%',
|
||
|
center: ['40%', '60%'],
|
||
|
label: {
|
||
|
normal: {
|
||
|
fontSize: 16,
|
||
|
},
|
||
|
},
|
||
|
data: props.data,
|
||
|
},
|
||
|
],
|
||
|
};
|
||
|
|
||
|
onMounted(() => {
|
||
|
let instance = echarts.init(chart1.value);
|
||
|
instance.setOption(option.value);
|
||
|
});
|
||
|
</script>
|
||
|
|
||
|
<style scoped lang="scss">
|
||
|
.custom-page {
|
||
|
height: calc(100vh - 150px);
|
||
|
}
|
||
|
.m-left {
|
||
|
margin-left: 6%;
|
||
|
}
|
||
|
</style>
|