Merge branch 'main' of http://123.132.248.154:10000/HC_YFZX/CaiYuanYiTiHua
|
After Width: | Height: | Size: 728 B |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1005 B |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 668 B |
|
After Width: | Height: | Size: 22 KiB |
|
|
@ -0,0 +1,20 @@
|
||||||
|
import { defHttp } from '@/utils/http/axios';
|
||||||
|
enum Api {
|
||||||
|
GetTrendData = '/api/DroneScreenDisplay/GetTrendData',
|
||||||
|
GetTuBanSummary = '/api/DroneScreenDisplay/GetTuBanSummary',
|
||||||
|
GetTotalAndAreaByType = '/api/DroneScreenDisplay/GetTotalAndAreaByType',
|
||||||
|
GetTotalAndArea = '/api/DroneScreenDisplay/GetTotalAndArea'
|
||||||
|
}
|
||||||
|
export function GetTrendData(params:{countyid:string;type:string;datatype:number;begindate?:string;enddate?:string;}) {
|
||||||
|
// datatype 0按天统计,1按月统计
|
||||||
|
return defHttp.get({ url: Api.GetTrendData, params });
|
||||||
|
}
|
||||||
|
export function GetTuBanSummary(params:{countyid:string;type:string;}) {
|
||||||
|
return defHttp.get({ url: Api.GetTuBanSummary, params });
|
||||||
|
}
|
||||||
|
export function GetTotalAndAreaByType(params:{countyid:string;type:string;}) {
|
||||||
|
return defHttp.get({ url: Api.GetTotalAndAreaByType, params });
|
||||||
|
}
|
||||||
|
export function GetTotalAndArea(params:{countyid:string;type:string;}) {
|
||||||
|
return defHttp.get({ url: Api.GetTotalAndArea, params });
|
||||||
|
}
|
||||||
|
|
@ -40,6 +40,7 @@
|
||||||
import { BasicModal, useModal } from '@/components/Modal';
|
import { BasicModal, useModal } from '@/components/Modal';
|
||||||
import { getCaseInfoList } from '@/api/monitor/index';
|
import { getCaseInfoList } from '@/api/monitor/index';
|
||||||
import { getLoadCaseInfoListOffence } from '@/api/demo/system';
|
import { getLoadCaseInfoListOffence } from '@/api/demo/system';
|
||||||
|
import { dataProcessingCount } from '@/views/demo/tiankongdi/util.ts';
|
||||||
|
|
||||||
const [registerModal, { openModal, setModalProps }] = useModal();
|
const [registerModal, { openModal, setModalProps }] = useModal();
|
||||||
|
|
||||||
|
|
@ -165,6 +166,10 @@
|
||||||
|
|
||||||
function handleGetList() {
|
function handleGetList() {
|
||||||
getLoadCaseInfoListOffence(props.currentListQuery).then((res) => {
|
getLoadCaseInfoListOffence(props.currentListQuery).then((res) => {
|
||||||
|
res.items.forEach((item) => {
|
||||||
|
item.area = dataProcessingCount(item.area);
|
||||||
|
item.gengdi_area = dataProcessingCount(item.gengdi_area);
|
||||||
|
});
|
||||||
columns.data = res.items;
|
columns.data = res.items;
|
||||||
total.value = res.total;
|
total.value = res.total;
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -130,7 +130,7 @@
|
||||||
<a @click="handlePreViewData(column, record, 9)">{{ record.zghsywfgdgdmj }}</a>
|
<a @click="handlePreViewData(column, record, 9)">{{ record.zghsywfgdgdmj }}</a>
|
||||||
</template>
|
</template>
|
||||||
<!-- 面积只取小数点后两位 -->
|
<!-- 面积只取小数点后两位 -->
|
||||||
<template v-if="column.key.slice(-2) === 'mj' && record.countyname == '总计'">
|
<template v-if="column.key.slice(-2) === 'mj'">
|
||||||
{{ record[column.key].toFixed(2) }}
|
{{ record[column.key].toFixed(2) }}
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -67,7 +67,7 @@
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
import ShowInfoModal from '@/views/demo/tiankongdi/curbspotcity/MapList/ShowInfoModal/index.vue';
|
import ShowInfoModal from '@/views/demo/tiankongdi/curbspotcity/MapList/ShowInfoModal/index.vue';
|
||||||
import { getCaseInfoById } from '@/api/tiankongdi/index';
|
import { getCaseInfoById } from '@/api/tiankongdi/index';
|
||||||
import { dataProcessingCount } from '@/views/demo/tiankongdi/util.ts';
|
import { dataProcessingCount } from '@/views/demo/tiankongdi/util';
|
||||||
import { BasicForm, useForm } from '@/components/Form';
|
import { BasicForm, useForm } from '@/components/Form';
|
||||||
import { PageWrapper } from '@/components/Page';
|
import { PageWrapper } from '@/components/Page';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
<template>
|
||||||
|
<Exception />
|
||||||
|
</template>
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import Exception from '@/views/sys/exception/Exception.vue';
|
||||||
|
</script>
|
||||||
|
|
@ -1,13 +1,13 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="statistical">
|
<div class="statistical">
|
||||||
<Map style="position:absolute;top:0px;left:0px;" ref="MapboxComponent"></Map>
|
<Map style="position: absolute; top: 0px; left: 0px" ref="MapboxComponent"></Map>
|
||||||
<div class="statistical-left">
|
<div class="statistical-left">
|
||||||
<img
|
<img
|
||||||
src="/statistical/left_decorative_left.png"
|
src="/statistical/left_decorative_left.png"
|
||||||
:style="{
|
:style="{
|
||||||
position: 'relative',
|
position: 'relative',
|
||||||
width: '84px',
|
width: '73px',
|
||||||
height: '920px',
|
height: '100%',
|
||||||
}"
|
}"
|
||||||
/>
|
/>
|
||||||
<layerButton
|
<layerButton
|
||||||
|
|
@ -16,8 +16,8 @@
|
||||||
@layerbutton_2="layerbutton_2"
|
@layerbutton_2="layerbutton_2"
|
||||||
:style="{
|
:style="{
|
||||||
position: 'absolute',
|
position: 'absolute',
|
||||||
top: '102px',
|
top: '60px',
|
||||||
left: '54px',
|
left: '48px',
|
||||||
}"
|
}"
|
||||||
/>
|
/>
|
||||||
<statisticalType
|
<statisticalType
|
||||||
|
|
@ -25,9 +25,9 @@
|
||||||
@handlerChangePolygonType="handlerChangePolygonType"
|
@handlerChangePolygonType="handlerChangePolygonType"
|
||||||
:style="{
|
:style="{
|
||||||
position: 'absolute',
|
position: 'absolute',
|
||||||
top: '700px',
|
top: '680px',
|
||||||
left: '54px',
|
left: '48px',
|
||||||
height: '200px',
|
height: '180px',
|
||||||
}"
|
}"
|
||||||
/>
|
/>
|
||||||
<county
|
<county
|
||||||
|
|
@ -40,51 +40,55 @@
|
||||||
}"
|
}"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
<DataScreen :countyId="countyId"/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import {ref} from "vue";
|
import { ref } from 'vue';
|
||||||
import Map from "./LargeScreenMap/index.vue"
|
import Map from './LargeScreenMap/index.vue';
|
||||||
import layerButton from './mapComponent/left_layerButton.vue';
|
import layerButton from './mapComponent/left_layerButton.vue';
|
||||||
import statisticalType from './mapComponent/left_statisticalType.vue';
|
import statisticalType from './mapComponent/left_statisticalType.vue';
|
||||||
import county from './mapComponent/left_county.vue';
|
import county from './mapComponent/left_county.vue';
|
||||||
|
import DataScreen from './dataScreen/index.vue'
|
||||||
|
|
||||||
//
|
//
|
||||||
const MapboxComponent = ref();
|
const MapboxComponent = ref();
|
||||||
|
const countyId = ref('371325')
|
||||||
|
|
||||||
// 控制图斑图层
|
// 控制图斑图层
|
||||||
function layerbutton_1(data) {
|
function layerbutton_1(data) {
|
||||||
MapboxComponent.value.handlerChangeLayerVisible("historyLayerLine",data);
|
MapboxComponent.value.handlerChangeLayerVisible('historyLayerLine', data);
|
||||||
MapboxComponent.value.handlerChangeLayerVisible("historyLayerFill",data);
|
MapboxComponent.value.handlerChangeLayerVisible('historyLayerFill', data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 控制热力图显示
|
// 控制热力图显示
|
||||||
function layerbutton_2(data) {
|
function layerbutton_2(data) {
|
||||||
MapboxComponent.value.handlerChangeLayerVisible("heatLayer",data);
|
MapboxComponent.value.handlerChangeLayerVisible('heatLayer', data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 选择区县
|
// 选择区县
|
||||||
const currentCounty = ref({name:"",code:""});
|
const currentCounty = ref({ name: '', code: '' });
|
||||||
|
|
||||||
function countyClick(data) {
|
function countyClick(data) {
|
||||||
currentCounty.value = {name:data['name'],code:data['id']}
|
countyId.value = data.id
|
||||||
|
currentCounty.value = { name: data['name'], code: data['id'] };
|
||||||
MapboxComponent.value.handlerChangeCounty(currentCounty.value);
|
MapboxComponent.value.handlerChangeCounty(currentCounty.value);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 图例点击
|
// 图例点击
|
||||||
function handlerChangePolygonType(data){
|
function handlerChangePolygonType(data) {
|
||||||
MapboxComponent.value.handlerChangeCounty(currentCounty.value,data);
|
MapboxComponent.value.handlerChangeCounty(currentCounty.value, data);
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
.statistical {
|
.statistical {
|
||||||
|
// position: relative;
|
||||||
// 页面不能被选中
|
// 页面不能被选中
|
||||||
-webkit-user-select: none; /* Safari */
|
-webkit-user-select: none; /* Safari */
|
||||||
-moz-user-select: none; /* Firefox */
|
-moz-user-select: none; /* Firefox */
|
||||||
-ms-user-select: none; /* IE/Edge */
|
-ms-user-select: none; /* IE/Edge */
|
||||||
user-select: none;
|
user-select: none;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,205 @@
|
||||||
|
<template>
|
||||||
|
<div class="sub-title">
|
||||||
|
总数与面积统计
|
||||||
|
</div>
|
||||||
|
<div class="area-data-div">
|
||||||
|
<div class="area-div">
|
||||||
|
<div class="data-item">
|
||||||
|
<div class="data-label data-center">下发图斑数(个)</div>
|
||||||
|
<div class="data-value data-center">{{wfzs}}</div>
|
||||||
|
</div>
|
||||||
|
<div class="data-item">
|
||||||
|
<div class="data-label data-center">图斑面积(亩)</div>
|
||||||
|
<div class="data-value data-center">{{ wfmj }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="data-item">
|
||||||
|
<div class="data-label data-center">耕地面积(亩)</div>
|
||||||
|
<div class="data-value data-center">{{xfgdmj}}</div>
|
||||||
|
</div>
|
||||||
|
<div class="data-item">
|
||||||
|
<div class="data-label data-center">整改后剩余耕地面积(亩)</div>
|
||||||
|
<div class="data-value data-center">{{zghsywfgdgdmj}}</div>
|
||||||
|
</div>
|
||||||
|
<div class="data-item">
|
||||||
|
<div class="data-label data-center">核实后新增违法耕地(亩)</div>
|
||||||
|
<div class="data-value data-center">{{hshxzwfgdgdmj}}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="data-div">
|
||||||
|
<div class="sub-title-div">新增建设用地</div>
|
||||||
|
<div class="row-item-div" style="margin-bottom: 22px;">
|
||||||
|
<div class="item-div">
|
||||||
|
<div class="item-label">合法用地(个)</div>
|
||||||
|
<div class="item-value">{{hfzs}}</div>
|
||||||
|
</div>
|
||||||
|
<div class="item-interval"></div>
|
||||||
|
<div class="item-div" style=" padding-left: 17px;">
|
||||||
|
<div class="item-label">合法用地(亩)</div>
|
||||||
|
<div class="item-value">{{hfmj}}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row-item-div" style="margin-bottom: 27px;">
|
||||||
|
<div class="item-div">
|
||||||
|
<div class="item-label">违法用地(个)</div>
|
||||||
|
<div class="item-value">{{wfzs}}</div>
|
||||||
|
</div>
|
||||||
|
<div class="item-interval"></div>
|
||||||
|
<div class="item-div" style=" padding-left: 17px;">
|
||||||
|
<div class="item-label">违法用地(亩)</div>
|
||||||
|
<div class="item-value">{{wfmj}}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="sub-title-div" style="margin-bottom:15px;">其他用地</div>
|
||||||
|
<div class="row-item-div">
|
||||||
|
<div class="item-div">
|
||||||
|
<div class="item-label">其他用地(个)</div>
|
||||||
|
<div class="item-value">{{qtzs}}</div>
|
||||||
|
</div>
|
||||||
|
<div class="item-interval"></div>
|
||||||
|
<div class="item-div" style=" padding-left: 17px;">
|
||||||
|
<div class="item-label">其他用地(亩)</div>
|
||||||
|
<div class="item-value">{{qtmj}}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { ref, defineProps, onMounted,watch } from "vue"
|
||||||
|
import { GetTotalAndArea } from '@/api/statistical/index.ts'
|
||||||
|
|
||||||
|
const props = defineProps(['countyId','landType'])
|
||||||
|
|
||||||
|
const hfmj = ref(0)
|
||||||
|
const hfzs = ref(0)
|
||||||
|
const hshxzwfgdgdmj = ref(0)
|
||||||
|
const qtmj = ref(0)
|
||||||
|
const qtzs = ref(0)
|
||||||
|
const wfmj = ref(0)
|
||||||
|
const wfzs = ref(0)
|
||||||
|
const xfgdmj = ref(0)
|
||||||
|
const xfmj = ref(0)
|
||||||
|
const xfzs = ref(0)
|
||||||
|
const zghsywfgdgdmj = ref(0)
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
getData()
|
||||||
|
})
|
||||||
|
const getData = () => {
|
||||||
|
GetTotalAndArea({countyid:props.countyId,type:props.landType}).then(res => {
|
||||||
|
hfmj.value = res.hfmj
|
||||||
|
hfzs.value = res.hfzs
|
||||||
|
hshxzwfgdgdmj.value = res.hshxzwfgdgdmj
|
||||||
|
qtmj.value = res.qtmj
|
||||||
|
qtzs.value = res.qtzs
|
||||||
|
wfmj.value = res.wfmj
|
||||||
|
wfzs.value = res.wfzs
|
||||||
|
xfgdmj.value = res.xfgdmj
|
||||||
|
xfmj.value = res.xfmj
|
||||||
|
xfzs.value = res.xfzs
|
||||||
|
zghsywfgdgdmj.value = res.zghsywfgdgdmj
|
||||||
|
})
|
||||||
|
}
|
||||||
|
watch(() => [props.countyId,props.landType], () => {
|
||||||
|
getData()
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.sub-title{
|
||||||
|
height: 37px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
font-family: Microsoft YaHei;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 16px;
|
||||||
|
color: #FFFFFF;
|
||||||
|
text-shadow: 0px 2px 8px rgba(5, 28, 55, 0.42);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
text-shadow: 0px 2px 6px rgba(5,28,55,0.42);
|
||||||
|
background: url(./statistical/sub_title.png);
|
||||||
|
padding-left: 35px;
|
||||||
|
}
|
||||||
|
.area-data-div{
|
||||||
|
height: 283px;
|
||||||
|
display:flex;
|
||||||
|
padding-top:15px;
|
||||||
|
padding-left:9px;
|
||||||
|
.area-div{
|
||||||
|
width: 156px;
|
||||||
|
margin-right: 36px;
|
||||||
|
:nth-last-child(1){
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.data-item{
|
||||||
|
height: 43px;
|
||||||
|
padding-top:6px;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
background: url(./statistical/item_label.png) no-repeat;
|
||||||
|
background-size: cover;
|
||||||
|
.data-center{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
.data-label{
|
||||||
|
font-family: Microsoft YaHei;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 10px;
|
||||||
|
color: #7EBBFF;
|
||||||
|
margin-bottom:6px;
|
||||||
|
line-height: 10px;
|
||||||
|
}
|
||||||
|
.data-value{
|
||||||
|
font-family: DIN;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 20px;
|
||||||
|
color: #FFFFFF;
|
||||||
|
line-height: 15px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.data-div{
|
||||||
|
width: 194px;
|
||||||
|
.sub-title-div{
|
||||||
|
height: 19px;
|
||||||
|
display:flex;
|
||||||
|
align-items:center;
|
||||||
|
justify-content: center;
|
||||||
|
font-family: Microsoft YaHei;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 11px;
|
||||||
|
color: #7EBBFF;
|
||||||
|
margin-bottom:19px;
|
||||||
|
background: url(./statistical/item_title.png) no-repeat;
|
||||||
|
background-size: cover;
|
||||||
|
}
|
||||||
|
.row-item-div{
|
||||||
|
display: flex;
|
||||||
|
height:35px;
|
||||||
|
.item-div{
|
||||||
|
flex: 1;
|
||||||
|
.item-label{
|
||||||
|
font-family: Microsoft YaHei;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 11px;
|
||||||
|
color: #7EBBFF;
|
||||||
|
margin-bottom:10px;
|
||||||
|
}
|
||||||
|
.item-value{
|
||||||
|
font-family: DIN;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 23px;
|
||||||
|
color: #FFFFFF;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.item-interval{
|
||||||
|
width: 1px;
|
||||||
|
height: 43px;
|
||||||
|
background: #2A89DA;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -0,0 +1,556 @@
|
||||||
|
<template>
|
||||||
|
<div class="sub-title">
|
||||||
|
图斑汇总统计
|
||||||
|
</div>
|
||||||
|
<div style="height: 650px;" id="patch-summary"></div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { onMounted,ref,defineProps,watch} from "vue"
|
||||||
|
import * as echarts from 'echarts'
|
||||||
|
import { GetTuBanSummary } from '@/api/statistical/index.ts'
|
||||||
|
|
||||||
|
const props = defineProps(['countyId','landType'])
|
||||||
|
|
||||||
|
const shaft = ref([])
|
||||||
|
const sywfgdgdmj = ref([])
|
||||||
|
const sywfgdtbzs = ref([])
|
||||||
|
const xfmj = ref([])
|
||||||
|
const xftbzs = ref([])
|
||||||
|
let myChart:any = null
|
||||||
|
onMounted(() => {
|
||||||
|
let chartsDom = document.getElementById('patch-summary')
|
||||||
|
myChart = echarts.init(chartsDom)
|
||||||
|
GetTuBanSummary({countyid:props.countyId,type:props.landType}).then(res => {
|
||||||
|
shaft.value = []
|
||||||
|
sywfgdgdmj.value = []
|
||||||
|
sywfgdtbzs.value = []
|
||||||
|
xfmj.value = []
|
||||||
|
xftbzs.value = []
|
||||||
|
res.forEach(item => {
|
||||||
|
shaft.value.push(item.countyname)
|
||||||
|
sywfgdgdmj.value.push(item.sywfgdgdmj)
|
||||||
|
sywfgdtbzs.value.push(item.sywfgdtbzs)
|
||||||
|
xfmj.value.push(item.xfmj)
|
||||||
|
xftbzs.value.push(item.xftbzs)
|
||||||
|
})
|
||||||
|
myChart.setOption({
|
||||||
|
legend:[
|
||||||
|
{
|
||||||
|
data:['总面积(亩/平方米)','耕地面积(亩/平方米)'],
|
||||||
|
right:'0px',
|
||||||
|
top:'10px',
|
||||||
|
itemWidth: 7,
|
||||||
|
itemHeight: 7,
|
||||||
|
textStyle:{
|
||||||
|
fontFamily: 'Microsoft YaHei',
|
||||||
|
fontWeight: '400',
|
||||||
|
fontSize: '10px',
|
||||||
|
color: '#FFFFFF',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data:['下发总数(个)','剩余总数(个)'],
|
||||||
|
left:'0px',
|
||||||
|
top:'10px',
|
||||||
|
itemWidth: 7,
|
||||||
|
itemHeight: 7,
|
||||||
|
gridIndex: 2,
|
||||||
|
textStyle:{
|
||||||
|
fontFamily: 'Microsoft YaHei',
|
||||||
|
fontWeight: '400',
|
||||||
|
fontSize: '10px',
|
||||||
|
color: '#FFFFFF',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
grid: [
|
||||||
|
// 左
|
||||||
|
{
|
||||||
|
left: "0%",
|
||||||
|
width: "40%",
|
||||||
|
height: "90%",
|
||||||
|
containLabel: true,
|
||||||
|
},
|
||||||
|
// 中
|
||||||
|
{
|
||||||
|
width: "0%",
|
||||||
|
},
|
||||||
|
// 右
|
||||||
|
{
|
||||||
|
right: "0%",
|
||||||
|
width: "60%",
|
||||||
|
height: "90%",
|
||||||
|
containLabel: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
xAxis: [
|
||||||
|
{
|
||||||
|
type: "value",
|
||||||
|
inverse: true,
|
||||||
|
show: false,
|
||||||
|
axisTick: {
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
axisLine: {
|
||||||
|
//轴线
|
||||||
|
// show: false,
|
||||||
|
lineStyle: {
|
||||||
|
color: "rgba(25, 35, 57,0.2)",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
gridIndex: 1,
|
||||||
|
show: true,
|
||||||
|
axisTick: {
|
||||||
|
//y轴刻度线
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
axisLine: {
|
||||||
|
//轴线
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
gridIndex: 2,
|
||||||
|
type: "value",
|
||||||
|
show: false,
|
||||||
|
splitLine: {
|
||||||
|
// 网格线
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
axisTick: {
|
||||||
|
//y轴刻度线
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
yAxis: [
|
||||||
|
{
|
||||||
|
axisLabel: {
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
align: "center",
|
||||||
|
type: "category",
|
||||||
|
axisTick: {
|
||||||
|
//y轴刻度线
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
data: shaft.value,
|
||||||
|
axisLine: {
|
||||||
|
//轴线
|
||||||
|
// show: false,
|
||||||
|
lineStyle: {
|
||||||
|
color: "#FFFFFF",
|
||||||
|
opacity: 0.6,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
gridIndex: 1,
|
||||||
|
position: "center",
|
||||||
|
axisLabel: {
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
axisLine: {
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
type: "category",
|
||||||
|
inverse: false,
|
||||||
|
axisTick: {
|
||||||
|
//y轴刻度线
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
data: shaft.value, //使用空格使文字居中
|
||||||
|
},
|
||||||
|
{
|
||||||
|
gridIndex: 2,
|
||||||
|
position: "left",
|
||||||
|
axisLabel: {
|
||||||
|
fontFamily: 'PingFang SC',
|
||||||
|
fontWeight: '500',
|
||||||
|
fontSize: '11px',
|
||||||
|
color: '#FFFFFF',
|
||||||
|
show: true,
|
||||||
|
margin: 30,
|
||||||
|
// width: 100,
|
||||||
|
align: 'center',
|
||||||
|
},
|
||||||
|
type: "category",
|
||||||
|
inverse: false,
|
||||||
|
axisTick: {
|
||||||
|
//y轴刻度线
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
axisLine: {
|
||||||
|
//轴线
|
||||||
|
// show: false,
|
||||||
|
lineStyle: {
|
||||||
|
color: "#FFFFFF",
|
||||||
|
opacity: 0.6,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
data: shaft.value,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
type: "bar",
|
||||||
|
barWidth: 8,
|
||||||
|
stack:'left',
|
||||||
|
name: "耕地面积(亩/平方米)",
|
||||||
|
itemStyle: {
|
||||||
|
color: "#FF9C5D",
|
||||||
|
},
|
||||||
|
label:{
|
||||||
|
show: true,
|
||||||
|
position: 'top',
|
||||||
|
fontFamily: 'DIN',
|
||||||
|
fontWeight: '500',
|
||||||
|
fontSize: '11px',
|
||||||
|
color: '#FFFFFF',
|
||||||
|
},
|
||||||
|
data: sywfgdgdmj.value,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "bar",
|
||||||
|
barWidth: 8,
|
||||||
|
name: "总面积(亩/平方米)",
|
||||||
|
stack:'left',
|
||||||
|
itemStyle: {
|
||||||
|
color: "#00AEFF",
|
||||||
|
barBorderRadius:[4, 0, 0, 4],
|
||||||
|
},
|
||||||
|
label:{
|
||||||
|
show: true,
|
||||||
|
position: 'top',
|
||||||
|
fontFamily: 'DIN',
|
||||||
|
fontWeight: '500',
|
||||||
|
fontSize: '11px',
|
||||||
|
color: '#FFFFFF',
|
||||||
|
},
|
||||||
|
data: xfmj.value,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
type: "bar",
|
||||||
|
barWidth: 8,
|
||||||
|
stack:'right',
|
||||||
|
xAxisIndex: 2,
|
||||||
|
yAxisIndex: 2,
|
||||||
|
name: "下发总数(个)",
|
||||||
|
itemStyle: {
|
||||||
|
color: "#3058E1",
|
||||||
|
},
|
||||||
|
label:{
|
||||||
|
show: true,
|
||||||
|
position: 'top',
|
||||||
|
fontFamily: 'DIN',
|
||||||
|
fontWeight: '500',
|
||||||
|
fontSize: '11px',
|
||||||
|
color: '#FFFFFF',
|
||||||
|
},
|
||||||
|
data: xftbzs.value,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "bar",
|
||||||
|
barWidth: 8,
|
||||||
|
xAxisIndex: 2,
|
||||||
|
yAxisIndex: 2,
|
||||||
|
stack:'right',
|
||||||
|
name: "剩余总数(个)",
|
||||||
|
itemStyle: {
|
||||||
|
color: "#16C8C5",
|
||||||
|
barBorderRadius:[0, 4, 4, 0],
|
||||||
|
},
|
||||||
|
label:{
|
||||||
|
show: true,
|
||||||
|
position: 'top',
|
||||||
|
fontFamily: 'DIN',
|
||||||
|
fontWeight: '500',
|
||||||
|
fontSize: '11px',
|
||||||
|
color: '#FFFFFF',
|
||||||
|
},
|
||||||
|
data: sywfgdtbzs.value,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
watch(() => [props.countyId,props.landType],() => {
|
||||||
|
GetTuBanSummary({countyid:props.countyId,type:props.landType}).then(res => {
|
||||||
|
shaft.value = []
|
||||||
|
sywfgdgdmj.value = []
|
||||||
|
sywfgdtbzs.value = []
|
||||||
|
xfmj.value = []
|
||||||
|
xftbzs.value = []
|
||||||
|
res.forEach(item => {
|
||||||
|
shaft.value.push(item.countyname)
|
||||||
|
sywfgdgdmj.value.push(item.sywfgdgdmj)
|
||||||
|
sywfgdtbzs.value.push(item.sywfgdtbzs)
|
||||||
|
xfmj.value.push(item.xfmj)
|
||||||
|
xftbzs.value.push(item.xftbzs)
|
||||||
|
})
|
||||||
|
myChart.setOption({
|
||||||
|
legend:[
|
||||||
|
{
|
||||||
|
data:['总面积(亩/平方米)','耕地面积(亩/平方米)'],
|
||||||
|
right:'0px',
|
||||||
|
top:'10px',
|
||||||
|
itemWidth: 7,
|
||||||
|
itemHeight: 7,
|
||||||
|
textStyle:{
|
||||||
|
fontFamily: 'Microsoft YaHei',
|
||||||
|
fontWeight: '400',
|
||||||
|
fontSize: '10px',
|
||||||
|
color: '#FFFFFF',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data:['下发总数(个)','剩余总数(个)'],
|
||||||
|
left:'0px',
|
||||||
|
top:'10px',
|
||||||
|
itemWidth: 7,
|
||||||
|
itemHeight: 7,
|
||||||
|
gridIndex: 2,
|
||||||
|
textStyle:{
|
||||||
|
fontFamily: 'Microsoft YaHei',
|
||||||
|
fontWeight: '400',
|
||||||
|
fontSize: '10px',
|
||||||
|
color: '#FFFFFF',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
grid: [
|
||||||
|
// 左
|
||||||
|
{
|
||||||
|
left: "0%",
|
||||||
|
width: "40%",
|
||||||
|
height: "90%",
|
||||||
|
containLabel: true,
|
||||||
|
},
|
||||||
|
// 中
|
||||||
|
{
|
||||||
|
width: "0%",
|
||||||
|
},
|
||||||
|
// 右
|
||||||
|
{
|
||||||
|
right: "0%",
|
||||||
|
width: "60%",
|
||||||
|
height: "90%",
|
||||||
|
containLabel: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
xAxis: [
|
||||||
|
{
|
||||||
|
type: "value",
|
||||||
|
inverse: true,
|
||||||
|
show: false,
|
||||||
|
axisTick: {
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
axisLine: {
|
||||||
|
//轴线
|
||||||
|
// show: false,
|
||||||
|
lineStyle: {
|
||||||
|
color: "rgba(25, 35, 57,0.2)",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
gridIndex: 1,
|
||||||
|
show: true,
|
||||||
|
axisTick: {
|
||||||
|
//y轴刻度线
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
axisLine: {
|
||||||
|
//轴线
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
gridIndex: 2,
|
||||||
|
type: "value",
|
||||||
|
show: false,
|
||||||
|
splitLine: {
|
||||||
|
// 网格线
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
axisTick: {
|
||||||
|
//y轴刻度线
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
yAxis: [
|
||||||
|
{
|
||||||
|
axisLabel: {
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
align: "center",
|
||||||
|
type: "category",
|
||||||
|
axisTick: {
|
||||||
|
//y轴刻度线
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
data: shaft.value,
|
||||||
|
axisLine: {
|
||||||
|
//轴线
|
||||||
|
// show: false,
|
||||||
|
lineStyle: {
|
||||||
|
color: "#FFFFFF",
|
||||||
|
opacity: 0.6,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
gridIndex: 1,
|
||||||
|
position: "center",
|
||||||
|
axisLabel: {
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
axisLine: {
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
type: "category",
|
||||||
|
inverse: false,
|
||||||
|
axisTick: {
|
||||||
|
//y轴刻度线
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
data: shaft.value, //使用空格使文字居中
|
||||||
|
},
|
||||||
|
{
|
||||||
|
gridIndex: 2,
|
||||||
|
position: "left",
|
||||||
|
axisLabel: {
|
||||||
|
fontFamily: 'PingFang SC',
|
||||||
|
fontWeight: '500',
|
||||||
|
fontSize: '11px',
|
||||||
|
color: '#FFFFFF',
|
||||||
|
show: true,
|
||||||
|
margin: 30,
|
||||||
|
// width: 100,
|
||||||
|
align: 'center',
|
||||||
|
},
|
||||||
|
type: "category",
|
||||||
|
inverse: false,
|
||||||
|
axisTick: {
|
||||||
|
//y轴刻度线
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
axisLine: {
|
||||||
|
//轴线
|
||||||
|
// show: false,
|
||||||
|
lineStyle: {
|
||||||
|
color: "#FFFFFF",
|
||||||
|
opacity: 0.6,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
data: shaft.value,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
type: "bar",
|
||||||
|
barWidth: 8,
|
||||||
|
stack:'left',
|
||||||
|
name: "耕地面积(亩/平方米)",
|
||||||
|
itemStyle: {
|
||||||
|
color: "#FF9C5D",
|
||||||
|
},
|
||||||
|
label:{
|
||||||
|
show: true,
|
||||||
|
position: 'top',
|
||||||
|
fontFamily: 'DIN',
|
||||||
|
fontWeight: '500',
|
||||||
|
fontSize: '11px',
|
||||||
|
color: '#FFFFFF',
|
||||||
|
},
|
||||||
|
data: sywfgdgdmj.value,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "bar",
|
||||||
|
barWidth: 8,
|
||||||
|
name: "总面积(亩/平方米)",
|
||||||
|
stack:'left',
|
||||||
|
itemStyle: {
|
||||||
|
color: "#00AEFF",
|
||||||
|
barBorderRadius:[4, 0, 0, 4],
|
||||||
|
},
|
||||||
|
label:{
|
||||||
|
show: true,
|
||||||
|
position: 'top',
|
||||||
|
fontFamily: 'DIN',
|
||||||
|
fontWeight: '500',
|
||||||
|
fontSize: '11px',
|
||||||
|
color: '#FFFFFF',
|
||||||
|
},
|
||||||
|
data: xfmj.value,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
type: "bar",
|
||||||
|
barWidth: 8,
|
||||||
|
stack:'right',
|
||||||
|
xAxisIndex: 2,
|
||||||
|
yAxisIndex: 2,
|
||||||
|
name: "下发总数(个)",
|
||||||
|
itemStyle: {
|
||||||
|
color: "#3058E1",
|
||||||
|
},
|
||||||
|
label:{
|
||||||
|
show: true,
|
||||||
|
position: 'top',
|
||||||
|
fontFamily: 'DIN',
|
||||||
|
fontWeight: '500',
|
||||||
|
fontSize: '11px',
|
||||||
|
color: '#FFFFFF',
|
||||||
|
},
|
||||||
|
data: xftbzs.value,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "bar",
|
||||||
|
barWidth: 8,
|
||||||
|
xAxisIndex: 2,
|
||||||
|
yAxisIndex: 2,
|
||||||
|
stack:'right',
|
||||||
|
name: "剩余总数(个)",
|
||||||
|
itemStyle: {
|
||||||
|
color: "#16C8C5",
|
||||||
|
barBorderRadius:[0, 4, 4, 0],
|
||||||
|
},
|
||||||
|
label:{
|
||||||
|
show: true,
|
||||||
|
position: 'top',
|
||||||
|
fontFamily: 'DIN',
|
||||||
|
fontWeight: '500',
|
||||||
|
fontSize: '11px',
|
||||||
|
color: '#FFFFFF',
|
||||||
|
},
|
||||||
|
data: sywfgdtbzs.value,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.sub-title{
|
||||||
|
height: 37px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
font-family: Microsoft YaHei;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 16px;
|
||||||
|
color: #FFFFFF;
|
||||||
|
text-shadow: 0px 2px 8px rgba(5, 28, 55, 0.42);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
text-shadow: 0px 2px 6px rgba(5,28,55,0.42);
|
||||||
|
background: url(./statistical/sub_title.png);
|
||||||
|
padding-left: 35px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -0,0 +1,51 @@
|
||||||
|
<template>
|
||||||
|
<a-segmented v-model:value="props.landType" :options="data"
|
||||||
|
style="width: 100%;height:37px;border-radius: 19px;background:#102649;margin-bottom: 23px;"
|
||||||
|
@change="(v) => emits('changeLandType', v)"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { ref, defineProps, defineEmits } from "vue"
|
||||||
|
const props = defineProps(['landType'])
|
||||||
|
const emits = defineEmits(['changeLandType'])
|
||||||
|
const data = ref([
|
||||||
|
{
|
||||||
|
label: '农用地',
|
||||||
|
value: '农用地'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '建设用地',
|
||||||
|
value: '建设用地'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '推堆土',
|
||||||
|
value: '推堆土'
|
||||||
|
},
|
||||||
|
])
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
:deep(.ant-segmented-item){
|
||||||
|
flex: 1;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
border-radius: 19px;
|
||||||
|
font-family: Microsoft YaHei;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 15px;
|
||||||
|
color: rgba(255, 255, 255, 0.5)
|
||||||
|
}
|
||||||
|
:deep(.ant-segmented-group){
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
:deep(.ant-segmented-item-selected){
|
||||||
|
background: linear-gradient(-38deg, #3058E1, #4CBBF5);
|
||||||
|
box-shadow: 0px 1px 3px 0px rgba(3,10,26,0.25);
|
||||||
|
font-family: Microsoft YaHei;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 15px;
|
||||||
|
color: #FFFFFF;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -0,0 +1,138 @@
|
||||||
|
<template>
|
||||||
|
|
||||||
|
<div class="show-data">
|
||||||
|
<div class="left-data-item">
|
||||||
|
<div class="item-mark"></div>
|
||||||
|
<div class="item-value">
|
||||||
|
<div>{{`已办结${ybjzs}个`}}</div>
|
||||||
|
<div>{{`共${ybjmj}亩`}}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="right-data-item">
|
||||||
|
<div class="item-value">
|
||||||
|
<div>{{`未办结${wbjzs}个`}}</div>
|
||||||
|
<div>{{`共${wbjmj}亩`}}</div>
|
||||||
|
</div>
|
||||||
|
<div class="item-mark"></div>
|
||||||
|
</div>
|
||||||
|
<div style="width: 150px;position: absolute; top:50%;left:50%;transform:translate(-50%, -90%);z-index:1;">
|
||||||
|
<div style="font-family: DIN;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 46px;
|
||||||
|
color: #FFFFFF;
|
||||||
|
margin-bottom:9px;
|
||||||
|
display:flex;
|
||||||
|
justify-content:center;">{{totalzs}}</div>
|
||||||
|
<div style="font-family: Microsoft YaHei;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 17px;
|
||||||
|
color: #FFFFFF;
|
||||||
|
display:flex;
|
||||||
|
justify-content:center;">总数量</div>
|
||||||
|
</div>
|
||||||
|
<div class="left-bg"></div>
|
||||||
|
<div class="center-bg"></div>
|
||||||
|
<div class="right-bg"></div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { ref, onMounted, defineProps, watch } from "vue"
|
||||||
|
import { GetTotalAndAreaByType } from '@/api/statistical/index.ts'
|
||||||
|
|
||||||
|
const totalzs = ref(0)
|
||||||
|
const wbjmj = ref(0)
|
||||||
|
const wbjzs = ref(0)
|
||||||
|
const ybjmj = ref(0)
|
||||||
|
const ybjzs = ref(0)
|
||||||
|
|
||||||
|
const props = defineProps(['countyId','landType'])
|
||||||
|
onMounted(() => {
|
||||||
|
getData()
|
||||||
|
})
|
||||||
|
const getData = () => {
|
||||||
|
GetTotalAndAreaByType({countyid: props.countyId,type:props.landType}).then(res => {
|
||||||
|
wbjmj.value = res.wbjmj
|
||||||
|
wbjzs.value = res.wbjzs
|
||||||
|
ybjmj.value = res.ybjmj
|
||||||
|
ybjzs.value = res.ybjzs
|
||||||
|
totalzs.value = res.totalzs
|
||||||
|
})
|
||||||
|
}
|
||||||
|
watch(() => [props.countyId,props.landType], () => {
|
||||||
|
getData()
|
||||||
|
})
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.show-data{
|
||||||
|
height: 142px;
|
||||||
|
// padding-top: 23px;
|
||||||
|
position: relative;
|
||||||
|
.left-data-item{
|
||||||
|
display: flex;
|
||||||
|
.item-mark{
|
||||||
|
width: 2px;
|
||||||
|
height: 33px;
|
||||||
|
background: #1B62BA;
|
||||||
|
margin-right:12px;
|
||||||
|
}
|
||||||
|
.item-value{
|
||||||
|
font-family: Microsoft YaHei;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 16px;
|
||||||
|
color: #7EBBFF;
|
||||||
|
margin-bottom: 9px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.right-data-item{
|
||||||
|
display: flex;
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
bottom: 30px;
|
||||||
|
.item-mark{
|
||||||
|
width: 2px;
|
||||||
|
height: 33px;
|
||||||
|
background: #04F4C3;
|
||||||
|
|
||||||
|
}
|
||||||
|
.item-value{
|
||||||
|
font-family: Microsoft YaHei;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 16px;
|
||||||
|
color: #01FFC7;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
margin-right:9px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.left-bg{
|
||||||
|
position: absolute;
|
||||||
|
left: 14px;
|
||||||
|
width: 136px;
|
||||||
|
height:38px;
|
||||||
|
background: url(./statistical/select_left_bg.png) no-repeat;
|
||||||
|
background-size: cover;
|
||||||
|
}
|
||||||
|
.center-bg{
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
top: 50%;
|
||||||
|
transform: translate(-50%,-50%);
|
||||||
|
width: 150px;
|
||||||
|
height:85px;
|
||||||
|
background: url(./statistical/select_center_bg.png) no-repeat;
|
||||||
|
background-size: cover;
|
||||||
|
}
|
||||||
|
.right-bg{
|
||||||
|
position: absolute;
|
||||||
|
width: 136px;
|
||||||
|
height:39px;
|
||||||
|
background: url(./statistical/select_right_bg.png) no-repeat;
|
||||||
|
background-size: cover;
|
||||||
|
right: 14px;
|
||||||
|
bottom: 30px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
|
@ -0,0 +1,321 @@
|
||||||
|
<template>
|
||||||
|
<div class="sub-title">
|
||||||
|
趋势统计
|
||||||
|
</div>
|
||||||
|
<div class="show-charts-div">
|
||||||
|
<div class="button-div">
|
||||||
|
<div :class="`button-item ${unit == 0 && 'select-button-item'}`" @click="unit = 0">天</div>
|
||||||
|
<div :class="`button-item ${unit == 1 && 'select-button-item'}`" @click="unit = 1">月</div>
|
||||||
|
<!-- <div class="button-item">季度</div> -->
|
||||||
|
</div>
|
||||||
|
<div style="height: 184px;" id="trendECharts"></div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import {onMounted, ref,toRaw, defineProps, watch} from "vue"
|
||||||
|
import * as echarts from 'echarts';
|
||||||
|
import { GetTrendData } from '@/api/statistical/index.ts'
|
||||||
|
const props = defineProps(['countyId','landType'])
|
||||||
|
|
||||||
|
const unit = ref(0)
|
||||||
|
const illegal = ref([])
|
||||||
|
const buban = ref([])
|
||||||
|
const fugeng = ref([])
|
||||||
|
const other = ref([])
|
||||||
|
const unillegal = ref([])
|
||||||
|
const time = ref([])
|
||||||
|
|
||||||
|
let myChart:any = null
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
getData()
|
||||||
|
})
|
||||||
|
const getData = (isInit=true) => {
|
||||||
|
GetTrendData({countyid:props.countyId,type:props.landType,datatype:unit.value}).then(res => {
|
||||||
|
illegal.value = []
|
||||||
|
buban.value = []
|
||||||
|
fugeng.value = []
|
||||||
|
other.value = []
|
||||||
|
unillegal.value = []
|
||||||
|
time.value = []
|
||||||
|
console.log(111,res)
|
||||||
|
res.forEach(item => {
|
||||||
|
illegal.value.push(item.illegal)
|
||||||
|
buban.value.push(item.buban)
|
||||||
|
fugeng.value.push(item.fugeng)
|
||||||
|
other.value.push(item.other)
|
||||||
|
unillegal.value.push(item.unillegal)
|
||||||
|
time.value.push(item.time)
|
||||||
|
})
|
||||||
|
if(isInit){
|
||||||
|
initEcharts()
|
||||||
|
}else{
|
||||||
|
updataEcharts()
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
}
|
||||||
|
const initEcharts = () => {
|
||||||
|
let chartDom = document.getElementById('trendECharts');
|
||||||
|
myChart = echarts.init(chartDom);
|
||||||
|
myChart.setOption({
|
||||||
|
xAxis: {
|
||||||
|
// type: 'category',
|
||||||
|
axisLabel:{
|
||||||
|
textStyle:{
|
||||||
|
align: 'center',
|
||||||
|
fontFamily: 'Arial',
|
||||||
|
fontWeight: '400',
|
||||||
|
fontSize: '7px',
|
||||||
|
color: '#5092C1',
|
||||||
|
},
|
||||||
|
interval: 0,
|
||||||
|
},
|
||||||
|
axisLine:{
|
||||||
|
lineStyle:{
|
||||||
|
color: '#65C6E7',
|
||||||
|
opacity: 0.2,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
boundaryGap: false,
|
||||||
|
data: time.value
|
||||||
|
},
|
||||||
|
yAxis: {
|
||||||
|
type: 'value',
|
||||||
|
splitLine:{
|
||||||
|
lineStyle:{
|
||||||
|
color: ['#65C6E7'],
|
||||||
|
opacity: 0.2,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
axisLine:{
|
||||||
|
lineStyle:{
|
||||||
|
color: '#65ABE7',
|
||||||
|
opacity: 0.7,
|
||||||
|
fontFamily: 'Source Han Sans SC',
|
||||||
|
fontWeight: '200',
|
||||||
|
fontSize: '10px',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
legend: {
|
||||||
|
right:'0px',
|
||||||
|
top: '5px',
|
||||||
|
orient:'vertical',
|
||||||
|
textStyle:{
|
||||||
|
fontFamily:'Microsoft YaHei',
|
||||||
|
fontWeight: '400',
|
||||||
|
fontSize: '10px',
|
||||||
|
color: '#FFFFFF',
|
||||||
|
},
|
||||||
|
data:['合法','违法','其他','拆除复耕','补办手续'],
|
||||||
|
},
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
name: '合法',
|
||||||
|
type: 'line',
|
||||||
|
data: illegal.value,
|
||||||
|
itemStyle:{
|
||||||
|
color:'#FF9C5D',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '违法',
|
||||||
|
type: 'line',
|
||||||
|
data: unillegal.value,
|
||||||
|
itemStyle:{
|
||||||
|
color:'#04CDF4',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '其他',
|
||||||
|
type: 'line',
|
||||||
|
data: other.value,
|
||||||
|
itemStyle:{
|
||||||
|
color:'#20A70A',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '拆除复耕',
|
||||||
|
type: 'line',
|
||||||
|
data: fugeng.value,
|
||||||
|
itemStyle:{
|
||||||
|
color:'#AD04F4',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '补办手续',
|
||||||
|
type: 'line',
|
||||||
|
data: buban.value,
|
||||||
|
itemStyle:{
|
||||||
|
color:'#F4E004',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
],
|
||||||
|
grid: {
|
||||||
|
left: '0%',
|
||||||
|
right: '30%',
|
||||||
|
bottom: '3%',
|
||||||
|
containLabel: true
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
const updataEcharts = () => {
|
||||||
|
let chartDom = document.getElementById('trendECharts');
|
||||||
|
let chart = echarts.getInstanceByDom(chartDom)
|
||||||
|
chart?.setOption({
|
||||||
|
xAxis: {
|
||||||
|
// type: 'category',
|
||||||
|
axisLabel:{
|
||||||
|
textStyle:{
|
||||||
|
align: 'center',
|
||||||
|
fontFamily: 'Arial',
|
||||||
|
fontWeight: '400',
|
||||||
|
fontSize: '7px',
|
||||||
|
color: '#5092C1',
|
||||||
|
},
|
||||||
|
interval: 0,
|
||||||
|
},
|
||||||
|
axisLine:{
|
||||||
|
lineStyle:{
|
||||||
|
color: '#65C6E7',
|
||||||
|
opacity: 0.2,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
boundaryGap: false,
|
||||||
|
data: time.value
|
||||||
|
},
|
||||||
|
yAxis: {
|
||||||
|
type: 'value',
|
||||||
|
splitLine:{
|
||||||
|
lineStyle:{
|
||||||
|
color: ['#65C6E7'],
|
||||||
|
opacity: 0.2,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
axisLine:{
|
||||||
|
lineStyle:{
|
||||||
|
color: '#65ABE7',
|
||||||
|
opacity: 0.7,
|
||||||
|
fontFamily: 'Source Han Sans SC',
|
||||||
|
fontWeight: '200',
|
||||||
|
fontSize: '10px',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
legend: {
|
||||||
|
right:'0px',
|
||||||
|
top: '5px',
|
||||||
|
orient:'vertical',
|
||||||
|
textStyle:{
|
||||||
|
fontFamily:'Microsoft YaHei',
|
||||||
|
fontWeight: '400',
|
||||||
|
fontSize: '10px',
|
||||||
|
color: '#FFFFFF',
|
||||||
|
},
|
||||||
|
data:['合法','违法','其他','拆除复耕','补办手续'],
|
||||||
|
},
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
name: '合法',
|
||||||
|
type: 'line',
|
||||||
|
data: illegal.value,
|
||||||
|
itemStyle:{
|
||||||
|
color:'#FF9C5D',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '违法',
|
||||||
|
type: 'line',
|
||||||
|
data: unillegal.value,
|
||||||
|
itemStyle:{
|
||||||
|
color:'#04CDF4',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '其他',
|
||||||
|
type: 'line',
|
||||||
|
data: other.value,
|
||||||
|
itemStyle:{
|
||||||
|
color:'#20A70A',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '拆除复耕',
|
||||||
|
type: 'line',
|
||||||
|
data: fugeng.value,
|
||||||
|
itemStyle:{
|
||||||
|
color:'#AD04F4',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '补办手续',
|
||||||
|
type: 'line',
|
||||||
|
data: buban.value,
|
||||||
|
itemStyle:{
|
||||||
|
color:'#F4E004',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
],
|
||||||
|
grid: {
|
||||||
|
left: '0%',
|
||||||
|
right: '30%',
|
||||||
|
bottom: '3%',
|
||||||
|
containLabel: true
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
watch(() => [props.countyId,props.landType,unit.value], () => {
|
||||||
|
getData(false)
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.sub-title{
|
||||||
|
height: 33px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
font-family: Microsoft YaHei;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 16px;
|
||||||
|
color: #FFFFFF;
|
||||||
|
text-shadow: 0px 2px 8px rgba(5, 28, 55, 0.42);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
text-shadow: 0px 2px 6px rgba(5,28,55,0.42);
|
||||||
|
background: url(./statistical/sub_title.png);
|
||||||
|
padding-left: 35px;
|
||||||
|
}
|
||||||
|
.show-charts-div{
|
||||||
|
height: 212px;
|
||||||
|
z-index: 1;
|
||||||
|
.button-div{
|
||||||
|
display: flex;
|
||||||
|
justify-content: end;
|
||||||
|
.button-item{
|
||||||
|
margin-top: 8px;
|
||||||
|
width: 52px;
|
||||||
|
height:20px;
|
||||||
|
margin-right:8px;
|
||||||
|
background: url(./statistical/charts_button.png) no-repeat;
|
||||||
|
background-size: cover;
|
||||||
|
font-family: Microsoft YaHei;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 10px;
|
||||||
|
color: rgba(255,255,255,0.5);
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.select-button-item{
|
||||||
|
background: url(./statistical/selected_charts_button.png) no-repeat;
|
||||||
|
background-size: cover;
|
||||||
|
font-family: Microsoft YaHei;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 10px;
|
||||||
|
color: #FFFFFF;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -0,0 +1,82 @@
|
||||||
|
<template>
|
||||||
|
<!-- <div class="data-screen-div"> -->
|
||||||
|
<div class="right-data-div">
|
||||||
|
<TitleSelect :landType="landType" @changeLandType="changeLandType"/>
|
||||||
|
<template v-if="firstPage">
|
||||||
|
<TopSelect :landType="landType" :countyId="props.countyId"/>
|
||||||
|
<DataStatistics :landType="landType" :countyId="props.countyId"/>
|
||||||
|
<TrendStatistics :landType="landType" :countyId="props.countyId"/>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<PatchSummary :countyId="props.countyId" :landType="landType"/>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<div class="page-turning" @click="() => firstPage = !firstPage">{{firstPage? '下一页' : '上一页'}}</div>
|
||||||
|
<div class="right-decoration"></div>
|
||||||
|
</div>
|
||||||
|
<!-- </div> -->
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { ref, onMounted, defineProps } from "vue"
|
||||||
|
import TitleSelect from './TitleSelect/index.vue'
|
||||||
|
import TopSelect from './TopSelect/index.vue'
|
||||||
|
import DataStatistics from './DataStatistics/index.vue'
|
||||||
|
import TrendStatistics from './TrendStatistics/index.vue'
|
||||||
|
import PatchSummary from './PatchSummary/index.vue'
|
||||||
|
|
||||||
|
const props = defineProps(['countyId'])
|
||||||
|
|
||||||
|
const firstPage = ref(true)
|
||||||
|
const landType = ref('农用地')
|
||||||
|
const changeLandType = (value) => {
|
||||||
|
landType.value = value
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
// .data-screen-div{
|
||||||
|
// position: absolute;
|
||||||
|
// top: 0;
|
||||||
|
// left: 0;
|
||||||
|
// width: 100%;
|
||||||
|
// height: 100%;
|
||||||
|
.right-data-div{
|
||||||
|
position: absolute;
|
||||||
|
top:0;
|
||||||
|
width: 462px;
|
||||||
|
height: 100%;
|
||||||
|
background: rgba(0, 0, 0, 0.7);
|
||||||
|
right: 0px;
|
||||||
|
padding: 74px 42px 15px 21px;
|
||||||
|
}
|
||||||
|
// }
|
||||||
|
.page-turning{
|
||||||
|
position: absolute;
|
||||||
|
top: 31px;
|
||||||
|
right: 34px;
|
||||||
|
width: 74px;
|
||||||
|
height: 30px;
|
||||||
|
background: url(./statistical/page_turning.png);
|
||||||
|
background-size: cover;
|
||||||
|
font-family: Microsoft YaHei;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 13px;
|
||||||
|
color: #FFFFFF;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
cursor: pointer;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
.right-decoration{
|
||||||
|
position: absolute;
|
||||||
|
right: 10px;
|
||||||
|
width: 69px;
|
||||||
|
background: url(./statistical/right_decoration.png);
|
||||||
|
background-size: cover;
|
||||||
|
height: 100%;
|
||||||
|
top: 0;
|
||||||
|
z-index: 0;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -3,25 +3,26 @@
|
||||||
<div class="county_div">
|
<div class="county_div">
|
||||||
<img
|
<img
|
||||||
id="left_direction_left"
|
id="left_direction_left"
|
||||||
src="/statistical/left_direction_left.png"
|
src="/statistical/left_direction_left1.png"
|
||||||
:style="{
|
:style="{
|
||||||
position: 'relative',
|
position: 'relative',
|
||||||
top: '42px',
|
top: '42px',
|
||||||
|
left: '-4px',
|
||||||
height: '31px',
|
height: '31px',
|
||||||
width: '31px',
|
width: '31px',
|
||||||
}"
|
}"
|
||||||
@click="scrollToElement('left')"
|
@click="scrollToElement('left')"
|
||||||
/>
|
/>
|
||||||
<div ref="countyList" class="county_div_list" id="county_list">
|
<div ref="countyList" class="county_div_list">
|
||||||
<div v-for="(item, index) in list" :key="item.id" :id="item.id" @click="clickCounty(item)">
|
<div v-for="item in list" :key="item.id" :id="item.id" @click="clickCounty(item)">
|
||||||
<span>{{ item.name }}</span>
|
<span>{{ item.name }}</span>
|
||||||
<img
|
<img
|
||||||
v-if="!item.isClick"
|
v-if="!item.isClick"
|
||||||
id="left_county_nochoose"
|
id="left_county_nochoose"
|
||||||
src="/statistical/left_county_nochoose.png"
|
src="/statistical/left_county_nochoose.png"
|
||||||
:style="{
|
:style="{
|
||||||
marginLeft: '10px',
|
marginLeft: '11.5px',
|
||||||
marginRight: '10px',
|
marginRight: '11.5px',
|
||||||
}"
|
}"
|
||||||
/>
|
/>
|
||||||
<img
|
<img
|
||||||
|
|
@ -37,10 +38,11 @@
|
||||||
</div>
|
</div>
|
||||||
<img
|
<img
|
||||||
id="left_direction_right"
|
id="left_direction_right"
|
||||||
src="/statistical/left_direction_right.png"
|
src="/statistical/left_direction_right2.png"
|
||||||
:style="{
|
:style="{
|
||||||
position: 'relative',
|
position: 'relative',
|
||||||
top: '42px',
|
top: '42px',
|
||||||
|
left: '4px',
|
||||||
height: '31px',
|
height: '31px',
|
||||||
width: '31px',
|
width: '31px',
|
||||||
}"
|
}"
|
||||||
|
|
@ -48,7 +50,13 @@
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<img id="left_decorative_bottom" src="/statistical/left_decorative_bottom.png" />
|
<img
|
||||||
|
id="left_decorative_bottom"
|
||||||
|
src="/statistical/left_decorative_bottom.png"
|
||||||
|
:style="{
|
||||||
|
width: '840px',
|
||||||
|
}"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -65,17 +73,16 @@
|
||||||
const scrollToElement = async (type) => {
|
const scrollToElement = async (type) => {
|
||||||
if (countyList.value) {
|
if (countyList.value) {
|
||||||
if (type == 'left') {
|
if (type == 'left') {
|
||||||
countyList.value.scrollLeft = countyList.value.scrollLeft - 107;
|
countyList.value.scrollLeft = countyList.value.scrollLeft - 110;
|
||||||
}
|
}
|
||||||
if (type == 'right') {
|
if (type == 'right') {
|
||||||
countyList.value.scrollLeft = countyList.value.scrollLeft + 107;
|
countyList.value.scrollLeft = countyList.value.scrollLeft + 110;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// 选择区县
|
// 选择区县
|
||||||
function clickCounty(record) {
|
function clickCounty(record) {
|
||||||
|
|
||||||
list.value.forEach((item) => {
|
list.value.forEach((item) => {
|
||||||
if (item.cascadeId == record.cascadeId) {
|
if (item.cascadeId == record.cascadeId) {
|
||||||
item.isClick = true;
|
item.isClick = true;
|
||||||
|
|
@ -105,8 +112,7 @@
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
.county_div {
|
.county_div {
|
||||||
display: flex;
|
display: flex;
|
||||||
left: 10px;
|
width: 840px;
|
||||||
width: 927px;
|
|
||||||
position: relative;
|
position: relative;
|
||||||
bottom: 10px;
|
bottom: 10px;
|
||||||
|
|
||||||
|
|
@ -114,16 +120,20 @@
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
display: flex;
|
display: flex;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
width: 856px;
|
width: 770px;
|
||||||
|
|
||||||
span {
|
span {
|
||||||
position: relative;
|
position: relative;
|
||||||
top: 35px;
|
top: 35px;
|
||||||
left: 30px;
|
width: 110px;
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
text-align: center;
|
||||||
|
justify-content: center;
|
||||||
|
|
||||||
font-family: Alibaba PuHuiTi;
|
font-family: Alibaba PuHuiTi;
|
||||||
font-weight: 500;
|
font-weight: 900;
|
||||||
font-size: 14px;
|
font-size: 15px;
|
||||||
color: rgba(255, 255, 255, 0);
|
color: rgba(255, 255, 255, 0);
|
||||||
|
|
||||||
background: linear-gradient(0deg, #6f81d4 0.146484375%, #ffffff 86.7919921875%);
|
background: linear-gradient(0deg, #6f81d4 0.146484375%, #ffffff 86.7919921875%);
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="layerbutton">
|
<div class="layerbutton">
|
||||||
<div>
|
<div class="layerbutton_div">
|
||||||
<img
|
<img
|
||||||
id="left_layerButton_1"
|
id="left_layerButton_1"
|
||||||
src="/statistical/left_layerButton_1.png"
|
src="/statistical/left_layerButton_1.png"
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
src="/statistical/left_layerButton_3.png"
|
src="/statistical/left_layerButton_3.png"
|
||||||
@click="layerbutton_1"
|
@click="layerbutton_1"
|
||||||
/>
|
/>
|
||||||
<span v-if="button_1" class="layerbutton_span">图斑</span>
|
<span v-if="button_1" class="layerbutton_div_span">图斑</span>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<img
|
<img
|
||||||
|
|
@ -24,9 +24,9 @@
|
||||||
v-if="button_2"
|
v-if="button_2"
|
||||||
id="left_layerButton_3"
|
id="left_layerButton_3"
|
||||||
src="/statistical/left_layerButton_3.png"
|
src="/statistical/left_layerButton_3.png"
|
||||||
@click="layerbutton_1"
|
@click="layerbutton_2"
|
||||||
/>
|
/>
|
||||||
<span v-if="button_2" class="layerbutton_span">热力图</span>
|
<span v-if="button_2" class="layerbutton_div_span">热力图</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -51,35 +51,38 @@
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
.layerbutton {
|
.layerbutton {
|
||||||
&_span {
|
&_div {
|
||||||
font-family: Adobe Heiti Std;
|
margin-bottom: 15px;
|
||||||
font-weight: normal;
|
|
||||||
font-size: 20px;
|
&_span {
|
||||||
position: relative;
|
font-family: Adobe Heiti Std;
|
||||||
left: -110px;
|
font-weight: normal;
|
||||||
color: #ffffff;
|
font-size: 16px;
|
||||||
|
position: relative;
|
||||||
|
left: -85px;
|
||||||
|
top: 3px;
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#left_layerButton_1 {
|
#left_layerButton_1 {
|
||||||
position: relative;
|
position: relative;
|
||||||
width: 90px;
|
width: 78px;
|
||||||
height: 73px;
|
height: 63.5px;
|
||||||
margin-bottom: 15px;
|
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
}
|
}
|
||||||
#left_layerButton_3 {
|
#left_layerButton_3 {
|
||||||
position: relative;
|
position: relative;
|
||||||
left: -25px;
|
left: -10px;
|
||||||
width: 128px;
|
width: 104px;
|
||||||
height: 47px;
|
height: 41px;
|
||||||
margin-bottom: 15px;
|
|
||||||
z-index: 0;
|
z-index: 0;
|
||||||
}
|
}
|
||||||
#left_layerButton_2 {
|
#left_layerButton_2 {
|
||||||
position: relative;
|
position: relative;
|
||||||
width: 90px;
|
width: 78px;
|
||||||
height: 73px;
|
height: 63.5px;
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -4,32 +4,34 @@
|
||||||
src="/statistical/left_statistical.png"
|
src="/statistical/left_statistical.png"
|
||||||
:style="{
|
:style="{
|
||||||
position: 'relative',
|
position: 'relative',
|
||||||
|
height: '100px',
|
||||||
|
width: '200px',
|
||||||
}"
|
}"
|
||||||
/>
|
/>
|
||||||
<div class="statistical_div">
|
<div class="statistical_div">
|
||||||
<a-row>
|
<a-row>
|
||||||
<a-col :span="10" @click="handlerChangePolygonType('违法');">
|
<a-col :span="10" @click="handlerChangePolygonType('违法')">
|
||||||
<span class="statistical_div_dot" style="background:#FDA1A1;" />
|
<span class="statistical_div_dot" style="background: #fda1a1" />
|
||||||
<span class="statistical_div_span">违法</span>
|
<span class="statistical_div_span">违法</span>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="10" @click="handlerChangePolygonType('补办手续');">
|
<a-col :span="10" @click="handlerChangePolygonType('补办手续')">
|
||||||
<span class="statistical_div_dot" style="background:#ABFCFF;" />
|
<span class="statistical_div_dot" style="background: #abfcff" />
|
||||||
<span class="statistical_div_span">补办手续</span>
|
<span class="statistical_div_span">补办手续</span>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
<a-row>
|
<a-row>
|
||||||
<a-col :span="10" @click="handlerChangePolygonType('合法');">
|
<a-col :span="10" @click="handlerChangePolygonType('合法')">
|
||||||
<span class="statistical_div_dot" style="background:#FFECB9;"/>
|
<span class="statistical_div_dot" style="background: #ffecb9" />
|
||||||
<span class="statistical_div_span">合法</span>
|
<span class="statistical_div_span">合法</span>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="10" @click="handlerChangePolygonType('拆除复耕');">
|
<a-col :span="10" @click="handlerChangePolygonType('拆除复耕')">
|
||||||
<span class="statistical_div_dot" style="background:#C2B3FB;" />
|
<span class="statistical_div_dot" style="background: #c2b3fb" />
|
||||||
<span class="statistical_div_span">拆除复耕</span>
|
<span class="statistical_div_span">拆除复耕</span>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
<a-row>
|
<a-row>
|
||||||
<a-col :span="10" @click="handlerChangePolygonType('其他');">
|
<a-col :span="10" @click="handlerChangePolygonType('其他')">
|
||||||
<span class="statistical_div_dot" style="background:#C7FFBC;" />
|
<span class="statistical_div_dot" style="background: #c7ffbc" />
|
||||||
<span class="statistical_div_span">其他</span>
|
<span class="statistical_div_span">其他</span>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
|
|
@ -38,34 +40,39 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
import { defineEmits } from 'vue';
|
||||||
|
const emits = defineEmits(['handlerChangePolygonType']);
|
||||||
|
|
||||||
import {defineEmits} from "vue"
|
function handlerChangePolygonType(type: String): void {
|
||||||
const emits = defineEmits(["handlerChangePolygonType"])
|
emits('handlerChangePolygonType', type);
|
||||||
|
}
|
||||||
function handlerChangePolygonType(type:String):void{
|
|
||||||
emits("handlerChangePolygonType",type);
|
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
.statistical {
|
.statistical {
|
||||||
&_div {
|
&_div {
|
||||||
position: relative;
|
position: relative;
|
||||||
top: -80px;
|
top: -75px;
|
||||||
left: 15px;
|
left: 30px;
|
||||||
|
|
||||||
&_dot {
|
&_dot {
|
||||||
display:inline-block;
|
display: inline-block;
|
||||||
width: 10px;
|
width: 5px;
|
||||||
height: 10px;
|
height: 5px;
|
||||||
position:relative;
|
position: relative;
|
||||||
left:-5px;
|
left: -5px;
|
||||||
|
top: -2px;
|
||||||
|
margin-right: 5px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
// border-radius: 50%;
|
||||||
}
|
}
|
||||||
|
|
||||||
&_span {
|
&_span {
|
||||||
|
position: relative;
|
||||||
|
top: -20px;
|
||||||
font-family: Microsoft YaHei;
|
font-family: Microsoft YaHei;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-size: 18px;
|
font-size: 13px;
|
||||||
color: #7ebbff;
|
color: #7ebbff;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||