<template>
    <div class="center">
        <div style="width: 100%; height: 100%" id="cesiumContainer"></div>
        <div class="leftWra">
            <div class="leftTop">
                <div class="title">
                    <span>作物产量预估</span>
                    <p
                        @click="
                            Deta(
                                'https://1912c.oss-cn-beijing.aliyuncs.com/egg-oss-demo/zhongzhimianjishijian.xlsx'
                            )
                        "
                    >
                        下载 &nbsp;

                        <img
                            src="@/assets/icons/svg/downloads.svg"
                            style="width: 14px; height: 14px; cursor: pointer"
                        />
                    </p>
                </div>
                <div class="production">
                    <div class="leftProduction">
                        <p>
                            <span>900</span>
                            吨
                            <br />
                            最小值
                        </p>
                    </div>
                    <div class="rightProduction">
                        <p>
                            <span>960</span>
                            吨
                            <br />
                            最小值
                        </p>
                    </div>
                </div>
                <div ref="areaDiv" class="areaDiv"></div>
            </div>

            <div class="leftFoldDiv" @click="leftFoldClick()">
                <el-icon><ArrowRightBold /></el-icon>
            </div>
        </div>
        <div class="rightWra">
            <div class="rightTop">
                <div class="title">
                    <span>作物产量预估-高标准农田</span>
                    <p
                        @click="
                            Deta(
                                'https://1912c.oss-cn-beijing.aliyuncs.com/egg-oss-demo/81f3b011-7a5d-4a21-88aa-8ea51142e564_%E6%95%B0%E6%8D%AE%E5%AF%BC%E5%87%BA.xlsx'
                            )
                        "
                    >
                        下载 &nbsp;
                        <img
                            src="@/assets/icons/svg/downloads.svg"
                            style="width: 14px; height: 14px; cursor: pointer"
                        />
                    </p>
                </div>
                <div ref="farmlandDiv" class="farmlandDiv"></div>
                <!-- <div ref="ProgressBarDiv" class="ProgressBar"></div> -->
            </div>
            <div class="rightbottom">
                <div class="title">
                    <span>作物长势等级统计-行政区划</span>
                    <p
                        @click="
                            Deta(
                                'https://1912c.oss-cn-beijing.aliyuncs.com/egg-oss-demo/0c0ff4cf-151a-470e-856a-b0fce0fde997_%E6%95%B0%E6%8D%AE%E5%AF%BC%E5%87%BA.xlsx'
                            )
                        "
                    >
                        下载 &nbsp;
                        <img
                            src="@/assets/icons/svg/downloads.svg"
                            style="width: 14px; height: 14px; cursor: pointer"
                        />
                    </p>
                </div>
                <el-select
                    popper-class="select_city"
                    @change="selectTab(item)"
                    v-model="value"
                    clearable
                    placeholder="全部"
                >
                    <el-option
                        v-for="item in Township.arr"
                        :key="item.properties.XZDM"
                        :label="item.properties.XZMC"
                        :value="item.properties.XZDM"
                    />
                </el-select>
                <div ref="ASdivisionDiv" class="ASdivision"></div>
            </div>
            <div class="rightFoldDiv" @click="rightFoldClick()">
                <el-icon><ArrowLeftBold /></el-icon>
            </div>
        </div>

        <div class="bottom_center">
            <TimeLine />
        </div>
        <div class="tool">
            <span><img src="@/assets/images/LAYER.png" alt="" /></span>
            <span><img src="@/assets/images/amplify.png" alt="" /></span>
            <span><img src="@/assets/images/reduce.png" alt="" /></span>
            <span><img src="@/assets/images/measure.png" alt="" /></span>
            <span><img src="@/assets/images/face.png" alt="" /></span>
            <span><img src="@/assets/images/position.png" alt="" /></span>
        </div>
        <div id="popup">
            <div>{{ clickInfoMap.name }}:</div>
            <div>{{ clickInfoMap.value }}亩</div>
            <div class="cancel" @click="hiddenOverlayChart">X</div>
        </div>
        <div id="pop">
            <div v-for="(item, index) in townZuowu.label" :key="index">
                <div>{{ item.crop }}:</div>
                <div>{{ (item.Shape_Area / 666.67).toFixed(2) }} 亩</div>
            </div>
            <div v-if="townZuowu.XZQMC">
                <div>村名:</div>
                <div>{{ townZuowu.XZQMC }}</div>
            </div>
            <div class="cancel" @click="hiddenOverlayChart">X</div>
        </div>
        <el-button v-if="flag" class="back_button" @click="back()">返回</el-button>
        <el-collapse class="legend" accordion>
            <el-collapse-item name="1">
                <template #title>图例</template>
                <div class="mt-4">
                    <el-checkbox-group v-model="checkList" @change="change">
                        <!-- <el-checkbox
                            v-for="(value, item, key) in dic"
                            :key="key"
                            :style="{
                                background: value.color,
                                border: `1px solid ${value.color}`,
                                width: `100%`,
                            }"
                            v-model="checked3"
                            :disabled="value.disabled"
                            :label="item"
                        /> -->

                        <el-checkbox
                            style="
                                background: rgba(255, 238, 204, 1);
                                border: 1px solid rgba(251, 171, 60, 1);
                                width: 100%;
                            "
                            v-model="checked3"
                            label="0-200"
                        />
                        <el-checkbox
                            style="
                                background: rgba(255, 220, 153, 1);
                                border: 1px solid rgba(251, 219, 13, 1);
                                width: 100%;
                            "
                            v-model="checked4"
                            label="200-400"
                        />
                        <el-checkbox
                            style="
                                background: rgba(255, 203, 102, 1);
                                border: 1px solid rgba(244, 218, 136, 1);
                                width: 100%;
                            "
                            v-model="checked3"
                            label="400-600"
                        />
                        <el-checkbox
                            style="
                                background: rgba(255, 185, 51, 1);
                                border: 1px solid rgba(174, 83, 110, 1);
                                width: 100%;
                            "
                            v-model="checked4"
                            label="600-800"
                        />
                        <el-checkbox
                            style="
                                background: rgba(255, 168, 0, 1);
                                border: 1px solid rgba(242, 177, 167, 1);
                                width: 100%;
                            "
                            v-model="checked3"
                            label="800-1000"
                        />
                    </el-checkbox-group>
                </div>
            </el-collapse-item>
        </el-collapse>
    </div>
</template>

<script setup>
import { ref, onMounted, inject, reactive, watch } from 'vue';
import * as echarts from 'echarts';
import TimeLine from '@/components/TimeLine/TimeLine.vue';
// import * as turf from '@turf/turf';
import { useEcharts } from '@/hooks/useEcharts';
import { getarea, getTownship, getvillage, getareas, dow } from '@/api/crops/classify.js';
import axios from 'axios';
import 'echarts-gl';
import { download } from '@/utils/request';

let viewer = ref(null);
const areaDiv = ref(null);
const farmlandDiv = ref(null);
const ProgressBarDiv = ref(null);
const ASdivisionDiv = ref(null);
const value = ref('370211');
const leftProgressBarDiv = ref(null);
let Township = reactive({ arr: [], brr: [], crr: [] }); //街道
let OptionArr = reactive({ arr: [] });
const clickInfoMap = ref({ name: '', value: '' });
const checkedCities = ref([]);
const formLandRef = ref([]);
const flag = ref(false);
let leftWraFlag = ref(true);
let rightWraFlag = ref(true);
let ff = ref('{x:765,y:191}');
let Pie3D = reactive({
    arr: [
        {
            name: '小麦',
            value: 101,
            itemStyle: {
                opacity: 0.5,
                color: 'rgba(110, 209, 84, 0.9)',
            },
        },
        {
            // 数据项名称
            name: '花生',
            value: 156,
            itemStyle: {
                // 透明度
                opacity: 0.5,
                // 扇形颜色
                color: 'rgba(251, 201, 3, 1)',
            },
            label: {
                show: true,
            },
        },
        {
            // 数据项名称
            name: '大豆',
            value: 156,
            itemStyle: {
                // 透明度
                opacity: 0.5,
                // 扇形颜色
                color: 'rgba(240, 129, 31, 0.9)',
            },
            label: {
                show: true,
            },
        },
        {
            // 数据项名称
            name: '地瓜',
            value: 156,
            itemStyle: {
                // 透明度
                opacity: 0.5,
                // 扇形颜色
                color: 'rgba(27, 85, 222, 1)',
            },
            label: {
                show: true,
            },
        },
        {
            // 数据项名称
            name: '蓝莓',
            value: 56,
            itemStyle: {
                // 透明度
                opacity: 0.5,
                // 扇形颜色
                color: 'rgba(72, 102, 211, 0.9)',
            },
            label: {
                show: true,
            },
        },
        {
            // 数据项名称
            name: '茶叶',
            value: 56,
            itemStyle: {
                // 透明度
                opacity: 0.5,
                // 扇形颜色
                color: 'rgba(26, 255, 140, 1)',
            },
            label: {
                show: true,
            },
        },
    ],
});

let dic = {
    小麦: 'rgba(102, 142, 214, 0.8)',
    玉米: 'rgba(255, 225, 104, 0.8)',
    大豆: 'rgba(156, 220, 130, 0.8)',
    地瓜: 'rgba(156, 220, 130, 0.8)',
    花生: 'rgba(212, 236, 89, 0.8)',
    蓝莓: 'rgba(50, 211, 235, 0.8)',
    茶叶: 'rgba(91, 196, 159, 0.8)',
    马铃薯: 'rgba(254, 182, 77, 0.8)',
    白菜和萝卜: 'rgba(250, 129, 109, 0.8)',
    其他: 'rgba(250, 129, 109, 0.8)',
};
watch(
    () => Township.arr,
    val => {
        console.log('val:', val);
    }
);
//行政区划数据
var data = {
    title: [],
};
let dd = {
    小麦: [],
    玉米: [],
    大豆: [],
    地瓜: [],
    花生: [],
    蓝莓: [],
    茶叶: [],
    马铃薯: [],
    白菜和萝卜: [],
    其他: [],
};
let areatext = '8383894';

//表格数据
let tableData = [
    {
        date: '小麦',
        name: '2934362亩',
        address: '35%',
    },
    {
        date: '玉米',
        name: '1676778亩',
        address: '20%',
    },
    {
        date: '大豆',
        name: '1257584亩',
        address: '15%',
    },
    {
        date: '地瓜',
        name: '1341423亩',
        address: '16%',
    },
    {
        date: '花生',
        name: '1592939亩',
        address: '19%',
    },
];
let TypeTime = {
    大豆: [1100, 1395, 1948, 2203, 3402, 1860, 2934, 2490, 2323],
    小麦: [1283, 2883, 2939, 1233, 1992, 1928, 3949, 1929, 3434],
    地瓜: [1823, 1948, 1928, 2294, 2302, 3903, 3493, 2323, 2545],
    花生: [2374, 1934, 3943, 3493, 2083, 1928, 2984, 3279, 1739],
};

// 组件挂载完成后执行
onMounted(() => {
    getArea(); //请求
    getaArea(); //面积
    getTownships();
    getvillages(); //村

    //地图
    initMap();
    areachar();
    farmland();
    // ProgressBar();
    ASdivision();
    getFarmland();
});

/*-------------地图------------------------*/
const mapOption = {
    url:
        'http://{s}.tianditu.gov.cn/img_c/wmts?service=wmts&request=GetTile&version=1.0.0' +
        '&LAYER=img&tileMatrixSet=c&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}' +
        '&style=default&format=tiles&tk=31091965e263284a501a723b8909f405',
    layer: 'tdtCva',
    style: 'default',
    format: 'tiles',
    tileMatrixSetID: 'c',
    subdomains: ['t0', 't1', 't2', 't3', 't4', 't5', 't6', 't7'],
    tilingScheme: new Cesium.GeographicTilingScheme(),
    tileMatrixLabels: [
        '1',
        '2',
        '3',
        '4',
        '5',
        '6',
        '7',
        '8',
        '9',
        '10',
        '11',
        '12',
        '13',
        '14',
        '15',
        '16',
        '17',
        '18',
        '19',
    ],
    maximumLevel: 18,
};
Cesium.Ion.defaultAccessToken =
    'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJiYzcwZmJmNi02MzQ5LTQ1MGEtODgzMy0yZTZiZGExY2MzMGMiLCJpZCI6MTAxOTgsInNjb3BlcyI6WyJhc2wiLCJhc3IiLCJnYyJdLCJpYXQiOjE1ODEzMDgxNTR9.NeJU4yfUi-SnLrNDOBYsQgmiSh3B4axCTi1m84Qw99c';
function initMap() {
    viewer = new Cesium.Viewer('cesiumContainer', {
        baseLayerPicker: false,
        shouldAnimate: true, //自动播放
        infoBox: false, //信息框
        animation: false, //“动画”窗口小部件提供用于播放,暂停和倒退的按钮,以及当前时间和日期,并由“飞梭环”包围,用于控制动画的速度。cesium示例地图左下角那个
        timeline: false, //时间轴是用于显示和控制当前场景时间的小部件。
        geocoder: false, //查找,用于查找地址和地标,以及将照相机悬挂到它们。使用铯离子进行地址解析。,cesium示例地图右上角的放大镜
        homeButton: false, //主页按钮
        navigationHelpButton: false, //导航帮助按钮
        selectionIndicator: false, //原生选择绿框
        fullscreenButton: false, //右下角的全屏按钮
        // terrainProvider:new Cesium.createWorldTerrain(),
        terrainProvider: new Cesium.EllipsoidTerrainProvider({}),
        sceneModePicker: false, //是否显示投影方式控件
        contextOptions: {
            webgl: {
                alpha: true,
            },
        },

        imageryProvider: new Cesium.WebMapTileServiceImageryProvider({
            ...mapOption,
            // url: "http://service.sdmap.gov.cn/hisimage/weipian202209?tk=9cc3e9deb3cf643b6f133717c333d16d",
            // layer: "c",
            // style: ",c",
            // format: "image/png",
            // tileMatrixSetID: "EPSG:4490",
            // rectangle: Cesium.Rectangle.fromDegrees(114.8, 34.35, 122.82, 38.43),
            // // subdomains: ["t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7"],
            // tilingScheme: new Cesium.GeographicTilingScheme(),
            // tileMatrixLabels: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"],
            // // maximumLevel: 18
        }),
    });
    // 去除logo
    viewer.cesiumWidget.creditContainer.style.display = 'none';
    //加载地图服务
    // let map = new Cesium.WebMapServiceImageryProvider({
    //     url: `http://121.36.229.60:9080/geoserver/shuzisannong/wms`,
    //     layers: 'shuzisannong:huangdaoqu_town', //图层名
    //     parameters: {
    //         service: 'WMS',
    //         format: 'image/png',
    //         transparent: true, //是否透明
    //     },
    // });
    // viewer.imageryLayers.addImageryProvider(map);
    addWms('shuzisannong:huangdaoqu_town', 'tl');
    viewer.camera.flyTo({
        destination: Cesium.Rectangle.fromDegrees(119.5091, 35.5671, 120.3285, 36.1455),
        duration: 2,
    });

    // 图层点击事件
    layerClick();
    // 蒙版
    mbHandle();

    //加载黄岛区村级地图服务
    // Cesium.GeoJsonDataSource.load(
    //     'http://121.36.229.60:9080/geoserver/shuzisannong/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=shuzisannong%3Ahuangdaoqu_village&maxFeatures=1180&outputFormat=application%2Fjson',
    //     {
    //         stroke: Cesium.Color.fromCssColorString('red'), //轮廓颜色
    //         fill: Cesium.Color.fromCssColorString('rgba(0,0,0,0.1)'), //内部颜色
    //         strokeWidth: 3, //轮廓宽度    clampToGround: true,//是否贴地
    //     }
    // ).then(function (dataSource) {
    //     // dataSource.name = 'geojsonDataSource'//自定义属性,方便以后操作
    //     viewer.dataSources.add(dataSource); //添加
    //     viewer.flyTo(dataSource, {
    //         duration: 5,
    //         offset: {
    //             heading: 0.0,
    //             pitch: -90, //保持垂直视角
    //         },
    //     }); //移动到该位置
    // });
    //加载黄岛区镇级地图服务
    // Cesium.GeoJsonDataSource.load(
    //     'http://121.36.229.60:9080/geoserver/shuzisannong/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=shuzisannong%3Ahuangdaoqu_town&maxFeatures=50&outputFormat=application%2Fjson',
    //     {
    //         stroke: Cesium.Color.fromCssColorString('#fff'), //轮廓颜色
    //         fill: Cesium.Color.fromCssColorString('rgba(0,0,0,0.1)'), //内部颜色
    //         strokeWidth: 3, //轮廓宽度    clampToGround: true,//是否贴地
    //     }
    // ).then(function (dataSource) {
    //     // dataSource.name = 'geojsonDataSource'//自定义属性,方便以后操作
    //     viewer.dataSources.add(dataSource); //添加
    //     viewer.flyTo(dataSource, {
    //         duration: 5,
    //         offset: {
    //             heading: 0.0,
    //             pitch: -90, //保持垂直视角
    //         },
    //     }); //移动到该位置
    // });

    // axios({
    //     method: 'get',
    //     url: 'http://121.36.229.60:9080/geoserver/shuzisannong/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=shuzisannong%3Ahuangdaoqu_town&maxFeatures=50&outputFormat=application%2Fjson',
    // })
    //     .then(res => {
    //         res.data.features.forEach(item => {
    //             addBoundaryHandle(item.geometry.coordinates, '');
    //         });
    //     })
    //     .catch(error => {});

    //作物分类面积提取地图服务
    // let map2 = new Cesium.WebMapServiceImageryProvider({
    //     url: `http://121.36.229.60:9080/geoserver/shuzisannong/wms`,
    //     layers: 'shuzisannong:fenlei', //图层名
    //     parameters: {
    //         service: 'WMS',
    //         format: 'image/png',
    //         CQL_FILTER: `crop=${city_code}`,
    //         transparent: true, //是否透明
    //     },
    // });
    // viewer.imageryLayers.addImageryProvider(map2);

    // Cesium.GeoJsonDataSource.load(
    //     'http://121.36.229.60:9080/geoserver/shuzisannong/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=shuzisannong%3Afenlei&maxFeatures=50&outputFormat=application%2Fjson',
    //     {
    //         stroke: Cesium.Color.fromCssColorString('rgba(165,214,63,1)'), //轮廓颜色
    //         fill: Cesium.Color.fromCssColorString('rgba(0,0,0,0.1)'), //内部颜色
    //         strokeWidth: 3, //轮廓宽度    clampToGround: true,//是否贴地
    //     }
    // ).then(function (dataSource) {
    //     // dataSource.name = 'geojsonDataSource'//自定义属性,方便以后操作
    //     viewer.dataSources.add(dataSource); //添加
    //     viewer.flyTo(dataSource, {
    //         duration: 5,
    //         offset: {
    //             heading: 0.0,
    //             pitch: -90, //保持垂直视角
    //         },
    //     }); //移动到该位置
    // });
    //全球注记
    // let zhujiLayer = new Cesium.WebMapTileServiceImageryProvider({
    //     url: 'http://t0.tianditu.com/cia_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=cia&tileMatrixSet=w&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}&style=default&format=tiles&tk=5956e6519f2bb0ae8e57bc834298c9f1',
    //     layer: 'tdtImgBasicLayer',
    //     style: 'default',
    //     format: 'image/jpeg',
    //     tileMatrixSetID: 'GoogleMapsCompatible',
    //     show: false,
    // });
    // viewer.imageryLayers.addImageryProvider(zhujiLayer);

    // viewer.camera.flyTo(
    //     {
    //         destination: new Cesium.Cartesian3.fromDegrees(104.9, 36.35, 8000000),
    //         duration: 0,
    //     },
    //     {
    //         offset: {
    //             heading: Cesium.Math.toRadians(0.0),
    //             pitch: Cesium.Math.toRadians(-25),
    //         },
    //     }
    // );
}

// data数据数组
// name实体名称,方便以后删除
// color实体颜色
function addBoundaryHandle(data, name, color) {
    data.forEach(item => {
        let arr = [];
        item[0].forEach(mem => {
            arr.push(mem[0]);
            arr.push(mem[1]);
        });
        viewer.entities.add({
            name: name,
            polyline: {
                positions: Cesium.Cartesian3.fromDegreesArray(arr),
                width: 6,
                // material: new Cesium.PolylineDashMaterialProperty({//虚线
                material: new Cesium.PolylineGlowMaterialProperty({
                    //光晕
                    glowPower: 0.2,
                    color: color
                        ? Cesium.Color.fromCssColorString(color)
                        : Cesium.Color.fromBytes(250, 128, 114), //#FA8072
                }),
                // followSurface: false, //是否贴着地表
                clampToGround: true, //贴地
            },
        });
    });
}
function getLevel(height) {
    if (height > 48000000) {
        return 0;
    } else if (height > 24000000) {
        return 1;
    } else if (height > 12000000) {
        return 2;
    } else if (height > 6000000) {
        return 3;
    } else if (height > 3000000) {
        return 4;
    } else if (height > 1500000) {
        return 5;
    } else if (height > 750000) {
        return 6;
    } else if (height > 375000) {
        return 7;
    } else if (height > 187500) {
        return 8;
    } else if (height > 93750) {
        return 9;
    } else if (height > 46875) {
        return 10;
    } else if (height > 23437.5) {
        return 11;
    } else if (height > 11718.75) {
        return 12;
    } else if (height > 5859.38) {
        return 13;
    } else if (height > 2929.69) {
        return 14;
    } else if (height > 1464.84) {
        return 15;
    } else if (height > 732.42) {
        return 16;
    } else if (height > 366.21) {
        return 17;
    } else {
        return 18;
    }
}
function getFarmland() {
    axios({
        url:
            serverAPI.geoserverUrl +
            '/shuzisannong/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=shuzisannong%3Afarmland&maxFeatures=50&outputFormat=application%2Fjson',
        method: 'get',
    })
        .then(res => {
            console.log('农田:', res);
            formLandRef.value = res.data.features;
        })
        .catch(err => {});
}

let townZuowu = ref({ label: [] }); //镇的作物
let XZDM = '';
// 图层点击事件
function layerClick() {
    var handler = new Cesium.ScreenSpaceEventHandler(viewer.canvas);
    handler.setInputAction(function (movement) {
        var ray = viewer.camera.getPickRay(movement.position);
        var cartesian = viewer.scene.globe.pick(ray, viewer.scene);
        if (cartesian) {
            let cartographic = Cesium.Cartographic.fromCartesian(cartesian);
            if (cartographic) {
                let xy = new Cesium.Cartesian2();
                let alti = viewer.camera.positionCartographic.height;
                let level = getLevel(alti);
                const layers = viewer.imageryLayers._layers;
                const index = layers.findIndex(
                    item =>
                        item._imageryProvider._layers &&
                        item._imageryProvider._layers === 'shuzisannong:huangdaoqu_town'
                );
                if (index > -1) {
                    const providerPoint = layers[index];
                    // 拿取最后一个图层
                    let provider = providerPoint._imageryProvider;
                    if (
                        provider &&
                        provider.ready &&
                        provider._layers &&
                        providerPoint.show === true
                    ) {
                        xy = provider.tilingScheme.positionToTileXY(cartographic, level, xy);
                        let promise = provider.pickFeatures(
                            xy.x,
                            xy.y,
                            level,
                            cartographic.longitude,
                            cartographic.latitude
                        );
                        if (promise) {
                            promise.then(data => {
                                if (data.length > 0) {
                                    let newData = data['0'];
                                    if (newData.properties && newData.properties.XZDM) {
                                        if (XZDM !== newData.properties.XZDM) {
                                            //防止
                                            XZDM = newData.properties.XZDM;
                                            value.value = XZDM; //
                                            selectTab(); //
                                            let item = newData.data;
                                            // 定位
                                            viewer.camera.flyTo({
                                                destination: Cesium.Rectangle.fromDegrees(
                                                    item.bbox[0],
                                                    item.bbox[1],
                                                    item.bbox[2],
                                                    item.bbox[3]
                                                ),
                                                duration: 2,
                                            });
                                            // 移除高亮
                                            deleteEntityByName('townLine');
                                            // 高亮边界
                                            addBoundaryHandle(
                                                item.geometry && item.geometry.coordinates,
                                                'townLine',
                                                'yellow'
                                            );
                                            // 移除以前的
                                            removeWms(['village_CQL']);
                                            // 添加新的
                                            addvillage(
                                                `XZDM=${newData.properties.XZDM}`,
                                                'village_CQL'
                                            );

                                            // 显示该镇的种植结构
                                            let entitys = viewer.entities._entities._array;
                                            for (var na = entitys.length - 1; na >= 0; na--) {
                                                if (
                                                    entitys[na]._name &&
                                                    entitys[na]._name ===
                                                        'point' + newData.properties.XZDM
                                                ) {
                                                    let info = entitys[na]._info;
                                                    // entitys[na].label.show = true
                                                    townZuowu.value = info; //保存数据
                                                    console.log(
                                                        townZuowu.value,
                                                        '------------------'
                                                    );
                                                    showOverlayChart(movement.position); // 添加地图移动监听:使地图移动弹窗跟着移动
                                                    viewer.scene.postRender.addEventListener(
                                                        infoWindowPostRender
                                                    );
                                                } else {
                                                    // if (entitys[na].label) {
                                                    //     entitys[na].label.show = false
                                                    // }
                                                }
                                            }
                                            // 移除村高亮
                                            deleteEntityByName('villageLine');
                                            XZQDM = '';
                                        } else {
                                            // // 已经有镇了,监听村点击
                                            villageClick(layers, xy, level, cartographic);
                                        }
                                    } else {
                                        removeWms(['village_CQL']);
                                        // 移除框框
                                        hiddenOverlayChart(); // 清除监听事件
                                    }
                                }
                            });
                        }
                    }
                }
            }
        }
    }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
}
let XZQDM = '';
// 村点击高亮
function villageClick(layers, xy, level, cartographic) {
    const index = layers.findIndex(
        item =>
            item._imageryProvider._layers &&
            item._imageryProvider._layers === 'shuzisannong:huangdaoqu_village'
    );
    if (index > -1) {
        const providerPoint = layers[index];
        // 拿取最后一个图层
        let provider = providerPoint._imageryProvider;
        if (provider && provider.ready && provider._layers && providerPoint.show === true) {
            xy = provider.tilingScheme.positionToTileXY(cartographic, level, xy);
            let promise = provider.pickFeatures(
                xy.x,
                xy.y,
                level,
                cartographic.longitude,
                cartographic.latitude
            );
            if (promise) {
                promise.then(data => {
                    if (data.length > 0) {
                        let newData = data['0'];
                        if (newData.properties && newData.properties.XZQDM) {
                            if (XZQDM !== newData.properties.XZQDM) {
                                //防止
                                XZQDM = newData.properties.XZQDM;
                                let item = newData.data;
                                // 移除高亮
                                deleteEntityByName('villageLine');
                                // 高亮边界
                                addBoundaryHandle(
                                    item.geometry && item.geometry.coordinates,
                                    'villageLine',
                                    'yellow'
                                );
                                // townZuowu.value = info//保存数据

                                // 后插和村
                                if (newData.properties.XZQDM === '370211104217') {
                                    // console.log('后河岔村委会')
                                    const rectangle = Cesium.Rectangle.fromDegrees(
                                        item.bbox[0],
                                        item.bbox[1],
                                        item.bbox[2],
                                        item.bbox[3]
                                    );
                                    const center = Cesium.Rectangle.center(rectangle); //获取视角范围中心点(得到的结果为弧度Cartographic)
                                    let longitude = Cesium.Math.toDegrees(center.longitude); //将弧度转为度
                                    let latitude = Cesium.Math.toDegrees(center.latitude);
                                    let info = {
                                        lon: longitude,
                                        lat: latitude,
                                        ...item.properties,
                                        // XZQMC
                                        label: [
                                            { crop: '茶叶', Shape_Area: 2820 },
                                            { crop: '大豆', Shape_Area: 2767 },
                                            { crop: '花生', Shape_Area: 62356 },
                                            { crop: '蓝莓', Shape_Area: 5443 },
                                            { crop: '地瓜', Shape_Area: 897 },
                                            { crop: '小麦', Shape_Area: 20111 },
                                        ],
                                    };
                                    townZuowu.value = info; //保存数据
                                }
                            }
                        }
                    }
                });
            }
        }
    }
}
// 添加村
// CQL_FILTER:筛选的语句
// customName地图服务自定义属性名
function addvillage(CQL_FILTER, customName) {
    let map2 = new Cesium.WebMapServiceImageryProvider({
        url: `http://121.36.229.60:9080/geoserver/shuzisannong/wms`,
        layers: 'shuzisannong:huangdaoqu_village', //图层名
        parameters: {
            service: 'WMS',
            format: 'image/png',
            transparent: true, //是否透明
            // CQL_FILTER: `XZDM=${value.value}`,
            CQL_FILTER: CQL_FILTER,
        },
    });
    map2.customName = customName;
    viewer.imageryLayers.addImageryProvider(map2);
}
// 移除wms
// nameArry :属性名数组(customName)
// isMohu :是否模糊查询
function removeWms(nameArry, isMohu) {
    if (viewer) {
        // 倒叙遍历,customName是自定义的属性
        const layers = viewer.imageryLayers._layers;
        for (let f = layers.length - 1; f >= 0; f--) {
            nameArry.forEach(item => {
                if (layers[f]._imageryProvider && layers[f]._imageryProvider.customName) {
                    if (isMohu) {
                        if (layers[f]._imageryProvider.customName.indexOf(item) > -1) {
                            viewer.imageryLayers.remove(layers[f]);
                        }
                    } else {
                        if (layers[f]._imageryProvider.customName === item) {
                            viewer.imageryLayers.remove(layers[f]);
                        }
                    }
                }
            });
        }
    }
}

// 根据实体名字删除实体(模糊删除)
function deleteEntityByName(name) {
    if (viewer) {
        let entitys = viewer.entities._entities._array;
        for (var na = entitys.length - 1; na >= 0; na--) {
            if (entitys[na]._name && entitys[na]._name === name) {
                viewer.entities.remove(entitys[na]);
            }
        }
    }
}
//折叠

function leftFoldClick() {
    leftWraFlag.value = !leftWraFlag.value;
    if (leftWraFlag.value) {
        let leftWra = document.querySelector('.leftWra');
        leftWra.style.transform = 'translate(0,0)';
    } else {
        let leftWra = document.querySelector('.leftWra');
        leftWra.style.transform = 'translate(-107%,0)';
    }
}
function rightFoldClick() {
    rightWraFlag.value = !rightWraFlag.value;
    if (rightWraFlag.value) {
        let rightWra = document.querySelector('.rightWra');
        rightWra.style.transform = 'translate(0,0)';
    } else {
        let rightWra = document.querySelector('.rightWra');
        rightWra.style.transform = 'translate(107%,0)';
    }
}

/*------------------接口--------------------*/
const getArea = () => {
    getarea({ time: '2023-04-25', subregion: '1', parent: '黄岛区' }).then(res => {
        console.log(res);
    });
};
//镇
const getTownships = () => {
    getTownship().then(res => {
        Township.arr = res.features;
        Township.arr.unshift({
            bbox: [119.5091, 35.5671, 120.3285, 36.1455],
            properties: {
                XZDM: '370211',
                XZMC: '全部',
            },
        });
        let arr = [...res.features];
        let brr = [];
        arr.splice(0, 1);
        arr.forEach(item => {
            brr.push(item.properties.XZMC);
        });
        data.title = [...Object.values(brr)];
        ASdivision();
    });
};
//村
const getvillages = () => {
    getvillage().then(res => {
        Township.brr = res.features;
    });
};
//面积
const getaArea = () => {
    getareas().then(res => {
        Township.crr = res.features;
        data.title.forEach((item, index) => {
            let town = res.features.map(i => {
                if (item === i.properties.town) {
                    return i.properties;
                }
            });
            Object.keys(dd).forEach(it => {
                const index = town.findIndex(a => a && a.crop === it);
                if (index > -1) {
                    dd[it].push(town[index].Shape_Area);
                } else {
                    dd[it].push(null);
                }
            });
        });
        ASdivision();
    });
};

const selectTab = () => {
    getArea();
    TypeTime = {
        大豆: [1034, 1295, 1348, 1203, 2402, 1160, 1934, 1490],
        小麦: [1083, 1883, 2139, 1033, 992, 1328, 2949, 1529],
        地瓜: [1223, 1548, 1828, 2094, 2202, 2903, 3293, 2023],
        花生: [1374, 1734, 3143, 2493, 1983, 1728, 2584, 3079],
    };
    Pie3D.arr = [
        {
            name: '小麦',
            value: 20,
            itemStyle: {
                opacity: 0.5,
                color: 'rgba(110, 209, 84, 0.9)',
            },
        },
        {
            // 数据项名称
            name: '花生',
            value: 10,
            itemStyle: {
                // 透明度
                opacity: 0.5,
                // 扇形颜色
                color: 'rgba(251, 201, 3, 1)',
            },
            label: {
                show: true,
            },
        },
        {
            // 数据项名称
            name: '大豆',
            value: 13,
            itemStyle: {
                // 透明度
                opacity: 0.5,
                // 扇形颜色
                color: 'rgba(240, 129, 31, 0.9)',
            },
            label: {
                show: true,
            },
        },
        {
            // 数据项名称
            name: '地瓜',
            value: 18,
            itemStyle: {
                // 透明度
                opacity: 0.5,
                // 扇形颜色
                color: 'rgba(27, 85, 222, 1)',
            },
            label: {
                show: true,
            },
        },
        {
            // 数据项名称
            name: '茶叶',
            value: 16,
            itemStyle: {
                // 透明度
                opacity: 0.5,
                // 扇形颜色
                color: 'rgba(26, 255, 140, 1)',
            },
            label: {
                show: true,
            },
        },
    ];
    if (value.value == '370211') {
        removeWms(['village_CQL']);
        removeWms(['aaa']);
        getTownships();
        tableData = [
            {
                date: '小麦',
                name: '2934362亩',
                address: '35%',
            },
            {
                date: '玉米',
                name: '1676778亩',
                address: '20%',
            },
            {
                date: '大豆',
                name: '1257584亩',
                address: '15%',
            },
            {
                date: '地瓜',
                name: '1341423亩',
                address: '16%',
            },
            {
                date: '花生',
                name: '1592939亩',
                address: '19%',
            },
        ];
        TypeTime = {
            大豆: [1100, 1395, 1948, 2203, 3402, 1860, 2934, 2490],
            小麦: [1283, 2883, 2939, 1233, 1992, 1928, 3949, 1929],
            地瓜: [1823, 1948, 1928, 2294, 2302, 3903, 3493, 2323],
            花生: [2374, 1934, 3943, 3493, 2083, 1928, 2984, 3279],
        };
        areatext = '8383894';
        Pie3D = reactive({
            arr: [
                {
                    name: '小麦',
                    value: 101,
                    itemStyle: {
                        opacity: 0.5,
                        color: 'rgba(110, 209, 84, 0.9)',
                    },
                },
                {
                    // 数据项名称
                    name: '花生',
                    value: 156,
                    itemStyle: {
                        // 透明度
                        opacity: 0.5,
                        // 扇形颜色
                        color: 'rgba(251, 201, 3, 1)',
                    },
                    label: {
                        show: true,
                    },
                },
                {
                    // 数据项名称
                    name: '大豆',
                    value: 156,
                    itemStyle: {
                        // 透明度
                        opacity: 0.5,
                        // 扇形颜色
                        color: 'rgba(240, 129, 31, 0.9)',
                    },
                    label: {
                        show: true,
                    },
                },
                {
                    // 数据项名称
                    name: '地瓜',
                    value: 156,
                    itemStyle: {
                        // 透明度
                        opacity: 0.5,
                        // 扇形颜色
                        color: 'rgba(27, 85, 222, 1)',
                    },
                    label: {
                        show: true,
                    },
                },
                {
                    // 数据项名称
                    name: '蓝莓',
                    value: 56,
                    itemStyle: {
                        // 透明度
                        opacity: 0.5,
                        // 扇形颜色
                        color: 'rgba(72, 102, 211, 0.9)',
                    },
                    label: {
                        show: true,
                    },
                },
                {
                    // 数据项名称
                    name: '茶叶',
                    value: 56,
                    itemStyle: {
                        // 透明度
                        opacity: 0.5,
                        // 扇形颜色
                        color: 'rgba(26, 255, 140, 1)',
                    },
                    label: {
                        show: true,
                    },
                },
            ],
        });
        hiddenOverlayChart();
    }
    areatext = '1293842';
    tableData = [
        {
            date: '小麦',
            name: '414029亩',
            address: '32%',
        },
        {
            date: '玉米',
            name: '232891亩',
            address: '18%',
        },
        {
            date: '大豆',
            name: '194076亩',
            address: '15%',
        },
        {
            date: '地瓜',
            name: '207014亩',
            address: '16%',
        },
        {
            date: '花生',
            name: '245829亩',
            address: '19%',
        },
    ];

    let arr = [...Township.arr];
    console.log('arr:', arr);
    arr.forEach(item => {
        if (item.properties.XZDM == value.value) {
            viewer.camera.flyTo({
                destination: Cesium.Rectangle.fromDegrees(
                    item.bbox[0],
                    item.bbox[1],
                    item.bbox[2],
                    item.bbox[3]
                ),
                duration: 2,
            });
        }
        let arr = [...Township.brr];
        let brr = [];
        // console.log(Township.brr);
        arr.forEach(item => {
            if (item.properties.XZDM == value.value) {
                brr.push(item.properties.XZQMC);
            }
        });
        // console.log(brr);
        data.title = [...Object.values(brr)];
    });
    ASdivision();
    areachar();
    let town = [...Township.arr];
    const townData = town.find(item => item.properties.XZDM === value.value);
    if (townData) {
        // 移除镇高亮
        deleteEntityByName('townLine');
        // 高亮镇边界
        addBoundaryHandle(townData.geometry.coordinates, 'townLine', 'yellow');
    }
    // 移除以前村
    removeWms(['aaa']);
    // 添加村
    addvillage(`XZDM=${value.value}`, 'aaa');
    getarea({ time: '2023-04-26', subregion: '1', parent: '黄岛区' }).then(res => {
        let arr = [];
        res.data.map((item, index) => {
            if (item.region == townData.properties.XZMC) {
                arr.push({
                    crop: item.type,
                    Shape_Area: item.area,
                });
            }
        });
        townZuowu.value = {
            label: arr,
        };
        console.log();
        console.log(arr);
        showOverlayChart({ x: 642, y: 312 });
    });
};

//下载
/*---------------------------*/
const Deta = item => {
    downloadURL(item);
};

const downloadURL = url => {
    let link = document.createElement('a');
    link.style.display = 'none';
    link.href = url;
    document.body.appendChild(link);
    link.click();
    document.body.removeChild(link);
};
/*-------------echarts--------------*/
function areachar() {
    const areaDivIntance = echarts.init(areaDiv.value);
    // 统计百分比
    var data1 = [2, 8, 5, 8, 10, 12, 11];
    var data2 = [1, 7, 2, 7, 9, 11, 10];
    var json = {
        chart0: {
            xcategory: ['2017年', '2018年', '2019年', '2020年', '2021年', '2022年', '2023年'],
            low: data1,
            lowLine: [],
        },
    };
    var json2 = {
        chart0: {
            xcategory: ['2017年', '2018年', '2019年', '2020年', '2021年', '2022年', '2023年'],
            low: data2,
            lowLine: [],
        },
    };
    var datacoords = [
        {
            coords: [],
        },
    ];
    var datacoords2 = [
        {
            coords: [],
        },
    ];
    for (var i = 0; i < json.chart0.xcategory.length; i++) {
        datacoords[0].coords.push([json.chart0.xcategory[i], data1[i]]);
    }
    for (var i = 0; i < json.chart0.xcategory.length; i++) {
        datacoords2[0].coords.push([json2.chart0.xcategory[i], data2[i]]);
    }

    var option = {
        tooltip: {
            trigger: 'axis',
            axisPointer: {
                lineStyle: {
                    color: '#15ecf4',
                },
            },
            backgroundColor: 'rgba(0,0,0,.8)',
            extraCssText: 'box-shadow: 4px 4px 10px rgba(21, 250, 255,.6);',
            formatter: function (params) {
                var result = params[0].name + '<br>';
                params.forEach(function (item) {
                    result +=
                        '<span style="display:inline-block;margin-right:5px;border-radius:10px;width:9px;height:9px;background-color:' +
                        item.color +
                        '"></span>';
                    // 判断设置增长还是降低
                    if (parseFloat(item.data) >= 50) {
                        result +=
                            item.seriesName +
                            ': ' +
                            '<span class="growth">' +
                            item.data +
                            '吨</span><br>';
                    } else if (parseFloat(item.data) < 50) {
                        result +=
                            item.seriesName +
                            ': ' +
                            '<span class="reduce">' +
                            item.data +
                            '吨</span><br>';
                    }
                });
                return result;
            },
        },
        legend: {
            data: ['最大值', '最小值'],
            textStyle: {
                fontSize: 12,
                color: 'rgb(0,253,255,0.6)',
            },
            top: '5%',
            right: '5%',
        },
        grid: {
            bottom: 50,
            left: 70,
            right: 50,
        },
        xAxis: {
            axisLine: {
                show: true,
                lineStyle: {
                    color: '#15faff',
                },
            },
            axisTick: {
                show: false,
            },
            axisLabel: {
                show: true,
                // interval:0,
            },
            data: ['2017年', '2018年', '2019年', '2020年', '2021年', '2022年', '2023年'],
        },
        yAxis: {
            axisLine: {
                show: false,
            },
            axisTick: {
                show: false,
            },
            splitLine: {
                lineStyle: {
                    type: 'dashed',
                    color: '#4b4d64',
                },
            },
            axisLabel: {
                formatter: '{value}',
                textStyle: {
                    //改变刻度字体样式
                    color: '#ffffff',
                },
            },
        },
        series: [
            {
                name: '最大值',
                type: 'line',
                // smooth: true,
                symbol: 'none',
                symbolSize: 10,
                areaStyle: {
                    normal: {
                        color: new echarts.graphic.LinearGradient(
                            0,
                            0,
                            0,
                            1,
                            [
                                {
                                    offset: 0,
                                    color: 'rgba(255, 204,1, .9)',
                                },
                                {
                                    offset: 0.8,
                                    color: 'rgba(6, 8, 41,.1)',
                                },
                            ],
                            false
                        ),
                        shadowColor: 'rgba(0, 0, 0, 0.1)',
                        shadowBlur: 10,
                    },
                },
                itemStyle: {
                    normal: {
                        color: '#ffcb00',
                    },
                },
                data: data1,
            },
            {
                name: '最大值',
                type: 'lines',
                coordinateSystem: 'cartesian2d',
                zlevel: 1,
                polyline: true,
                smooth: true,
                symbol: 'circle',
                effect: {
                    show: true,
                    trailLength: 0.4,
                    symbol: 'circle',
                    period: 8, //光点滑动速度
                    symbolSize: 8,
                },
                lineStyle: {
                    normal: {
                        color: '#ffcb00',
                        width: 0,
                        opacity: 0,
                        curveness: 0,
                    },
                },
                data: datacoords,
            },
            {
                name: '最小值',
                type: 'line',
                // smooth: true,
                symbol: 'none',
                symbolSize: 10,
                areaStyle: {
                    normal: {
                        color: new echarts.graphic.LinearGradient(
                            0,
                            0,
                            0,
                            1,
                            [
                                {
                                    offset: 0,
                                    color: 'rgba(21, 250, 255,.9)',
                                },
                                {
                                    offset: 0.8,
                                    color: 'rgba(6, 8, 41,.1)',
                                },
                            ],
                            false
                        ),
                        shadowColor: 'rgba(0, 0, 0, 0.1)',
                        shadowBlur: 10,
                    },
                },
                itemStyle: {
                    normal: {
                        color: '#15faff',
                    },
                },
                data: data2,
            },
            {
                name: '最小值',
                type: 'lines',
                coordinateSystem: 'cartesian2d',
                zlevel: 1,
                smooth: true,
                polyline: true,
                symbol: 'circle',
                effect: {
                    show: true,
                    trailLength: 0.4,
                    symbol: 'circle',
                    period: 8, //光点滑动速度
                    symbolSize: 8,
                },
                lineStyle: {
                    normal: {
                        color: '#15faff',
                        width: 0,
                        opacity: 0,
                        curveness: 0,
                    },
                },
                data: datacoords2,
            },
        ],
    };

    option && areaDivIntance.setOption(option);

    window.addEventListener('resize', function () {
        areaDivIntance.resize();
    });
}

function farmland() {
    const farmlandDivIntance = echarts.init(farmlandDiv.value);
    let xData = ['区域一', '区域二', '区域三', '区域四', '区域五', '区域六'];
    let option = {
        tooltip: {
            trigger: 'axis',
            axisPointer: {
                type: 'shadow',
                textStyle: {
                    color: '#fff',
                },
            },
        },
        calculable: true,
        legend: {
            // data: ["已完成", "进行中"],
            top: '7%',
            right: '5%',
            icon: 'rect',
            textStyle: {
                color: '#fff',
            },
        },
        grid: {
            left: '15%',
            // "top":0,
            bottom: '16%',
            right: '2%',
        },
        xAxis: [
            {
                type: 'category',
                axisLine: {
                    lineStyle: {
                        color: 'rgba(255,255,255,.5)',
                    },
                },
                splitLine: {
                    show: false,
                },
                axisTick: {
                    show: false,
                },
                splitArea: {
                    show: false,
                },
                axisLabel: {
                    interval: 0,
                    color: 'rgba(255,255,255,0.7)',
                    fontSize: 14,
                },
                data: xData,
            },
        ],
        yAxis: [
            {
                type: 'value',
                name: '产量(吨)',
                nameTextStyle: {
                    color: 'rgba(255,255,255,0.8)',
                    fontSize: 14,
                    padding: [0, 60, 0, 10],
                },
                splitLine: {
                    show: false,
                },
                axisLine: {
                    show: false,
                },
                axisTick: {
                    show: false,
                },
                axisLabel: {
                    interval: 0,
                    color: 'rgba(255,255,255,0.5)',
                    fontSize: 14,
                },
                splitArea: {
                    show: false,
                },
            },
        ],
        series: [
            {
                name: '最大值',
                type: 'bar',
                barWidth: 14,
                barGap: '85%',
                label: {
                    show: false,
                    position: 'top',
                    fontSize: 14,
                    // fontWeight: 'bold',
                    color: 'rgba(255, 255, 255, 1)',
                },
                itemStyle: {
                    normal: {
                        barBorderRadius: 2,
                        color: {
                            type: 'linear',
                            x: 0,
                            y: 0,
                            x2: 0,
                            y2: 1,
                            colorStops: [
                                {
                                    offset: 0,
                                    color: 'rgba(242, 252, 252, 0.5)', // 0% 处的颜色
                                },
                                {
                                    offset: 0.5,
                                    color: 'rgba(242, 252, 252, 0.3)', // 100% 处的颜色
                                },
                                {
                                    offset: 1,
                                    color: 'rgba(242, 252, 252, 0)', // 100% 处的颜色
                                },
                            ],
                            global: false, // 缺省为 false
                        },
                        shadowColor: 'rgba(255, 255, 255, 0.5)',
                        shadowBlur: 10,
                    },
                },
                data: [709, 1917, 2455, 2610, 1719, 1433],
            },
            {
                name: '最小值',
                type: 'bar',
                barWidth: 14,
                barGap: '85%',
                label: {
                    show: false,
                    position: 'top',
                    fontSize: 14,
                    // fontWeight: 'bold',
                    color: 'rgba(255, 255, 255, 1)',
                },
                itemStyle: {
                    normal: {
                        color: {
                            type: 'linear',
                            x: 0,
                            y: 0,
                            x2: 0,
                            y2: 1,
                            colorStops: [
                                {
                                    offset: 0,
                                    color: 'rgba(143, 186, 243, 0.5)', // 0% 处的颜色
                                },
                                {
                                    offset: 0.5,
                                    color: 'rgba(143, 186, 243, 0.3)', // 100% 处的颜色
                                },
                                {
                                    offset: 1,
                                    color: 'rgba(143, 186, 243, 0)', // 100% 处的颜色
                                },
                            ],
                            global: false, // 缺省为 false
                        },
                        shadowColor: 'rgba(255, 255, 255, 0.5)',
                        shadowBlur: 10,
                    },
                },
                data: [300, 500, 700, 400, 600, 1200],
            },
        ],
    };

    farmlandDivIntance.on('click', function (params) {
        console.log(params.name);
    });
    farmlandDivIntance.on('click', param => ChartClick(param));
    option && farmlandDivIntance.setOption(option, { notMerge: true, grid: { bottom: 20 } });
    useEcharts(farmlandDivIntance, option);
}
// 添加wms
function addWms(layers, customName) {
    let map = new Cesium.WebMapServiceImageryProvider({
        url: serverAPI.geoserverUrl + `/shuzisannong/wms?`,
        layers: layers, //图层名
        parameters: {
            service: 'WMS',
            format: 'image/png',
            transparent: true, //是否透明
            // CQL_FILTER: `crop in (${name})`,
        },
    });
    map.customName = customName; //自己定义各种属性
    let dd = viewer.imageryLayers.addImageryProvider(map); //添加图层
    if (customName.indexOf('gbznt') > -1) {
        // viewer.imageryLayers.lower(dd);//将图层下移一层
        viewer.imageryLayers.lowerToBottom(dd); //将图层移到最底层
        viewer.imageryLayers.raise(dd); //将图层上移一层
    }
}
//返回
function back() {
    removeWms(['gbznt'], true);
    addWms('shuzisannong:huangdaoqu_town', 'tl');
    viewer.camera.flyTo({
        destination: Cesium.Rectangle.fromDegrees(119.5091, 35.5671, 120.3285, 36.1455),
        duration: 2,
    });
    flag.value = false;
}
// 图表点击事件
function ChartClick(item) {
    console.log('item:', item);
    // 移除作物
    removeWms(['huangdaoqu_town'], true);
    removeWms(['tl'], true);
    let layername = 'shuzisannong:farmland';

    // 判断是否存在避免重复添加
    let cz = false;
    const layers = viewer.imageryLayers._layers;
    for (let f = layers.length - 1; f >= 0; f--) {
        if (
            layers[f] &&
            layers[f]._imageryProvider.customName &&
            layers[f]._imageryProvider.customName === layername + 'gbznt'
        ) {
            cz = true;
        }
    }
    if (!cz) {
        // 添加高标准农田服务
        addWms(layername, layername + 'gbznt');
    }
    // 定位到地块
    let features = formLandRef.value;
    features.forEach(it => {
        console.log('it.properties.name:', it.properties.name);
        console.log('item.name:', item.name);
        if (it.properties.name === item.name) {
            console.log('dingwei');
            viewer.camera.flyTo({
                destination: Cesium.Rectangle.fromDegrees(
                    it.bbox[0],
                    it.bbox[1],
                    it.bbox[2],
                    it.bbox[3]
                ),
                duration: 2,
            });
        }
    });
    flag.value = true;

    townZuowu.value = {
        label: [
            { crop: '小麦', Shape_Area: '53000' },
            { crop: '地瓜', Shape_Area: '50000' },
        ],
    };
    console.log(townZuowu.label);
    showOverlayChart({ x: 642, y: 312 });
}
function ASdivision() {
    const ASdivisionDivIntance = echarts.init(ASdivisionDiv.value);
    let xData = ['区域一', '区域二', '区域三', '区域四', '区域五', '区域六'];
    let option = {
        tooltip: {
            trigger: 'axis',
            axisPointer: {
                type: 'shadow',
                textStyle: {
                    color: '#fff',
                },
            },
        },
        calculable: true,
        legend: {
            // data: ["已完成", "进行中"],
            top: '7%',
            right: '5%',
            icon: 'rect',
            textStyle: {
                color: '#fff',
            },
        },
        grid: {
            left: '15%',
            // "top":0,
            bottom: '16%',
            right: '2%',
        },
        xAxis: [
            {
                type: 'category',
                axisLine: {
                    lineStyle: {
                        color: 'rgba(255,255,255,.5)',
                    },
                },
                splitLine: {
                    show: false,
                },
                axisTick: {
                    show: false,
                },
                splitArea: {
                    show: false,
                },
                axisLabel: {
                    interval: 0,
                    color: 'rgba(255,255,255,0.7)',
                    fontSize: 14,
                },
                data: xData,
            },
        ],
        yAxis: [
            {
                type: 'value',
                name: '产量(吨)',
                nameTextStyle: {
                    color: 'rgba(255,255,255,0.8)',
                    fontSize: 14,
                    padding: [0, 60, 0, 10],
                },
                splitLine: {
                    show: false,
                },
                axisLine: {
                    show: false,
                },
                axisTick: {
                    show: false,
                },
                axisLabel: {
                    interval: 0,
                    color: 'rgba(255,255,255,0.5)',
                    fontSize: 14,
                },
                splitArea: {
                    show: false,
                },
            },
        ],
        series: [
            {
                name: '最大值',
                type: 'bar',
                barWidth: 14,
                barGap: '85%',
                label: {
                    show: false,
                    position: 'top',
                    fontSize: 14,
                    // fontWeight: 'bold',
                    color: 'rgba(255, 255, 255, 1)',
                },
                itemStyle: {
                    normal: {
                        barBorderRadius: 2,
                        color: {
                            type: 'linear',
                            x: 0,
                            y: 0,
                            x2: 0,
                            y2: 1,
                            colorStops: [
                                {
                                    offset: 0,
                                    color: 'rgba(4, 247, 227, 1)', // 0% 处的颜色
                                },
                                {
                                    offset: 0.8,
                                    color: 'rgba(4, 247, 227, 0.5)', // 100% 处的颜色
                                },
                                {
                                    offset: 1,
                                    color: 'rgba(4, 247, 227, 0.0)', // 100% 处的颜色
                                },
                            ],
                            global: false, // 缺省为 false
                        },
                        // borderColor:'rgba(0, 170, 255, 0.9)',
                        shadowColor: 'rgba(255, 255, 255, 0.5)',
                        shadowBlur: 10,
                    },
                },
                data: [709, 1917, 2455, 2610, 1719, 1433],
            },
            {
                name: '最小值',
                type: 'bar',
                barWidth: 14,
                barGap: '85%',
                label: {
                    show: false,
                    position: 'top',
                    fontSize: 14,
                    // fontWeight: 'bold',
                    color: 'rgba(255, 255, 255, 1)',
                },
                itemStyle: {
                    normal: {
                        color: {
                            type: 'linear',
                            x: 0,
                            y: 0,
                            x2: 0,
                            y2: 1,
                            colorStops: [
                                {
                                    offset: 0,
                                    color: 'rgba(33, 187, 251, 0.5)', // 0% 处的颜色
                                },
                                {
                                    offset: 0.5,
                                    color: 'rgba(33, 187, 251, 0.3)', // 100% 处的颜色
                                },
                                {
                                    offset: 1,
                                    color: 'rgba(33, 187, 251, 0)', // 100% 处的颜色
                                },
                            ],
                            global: false, // 缺省为 false
                        },
                        shadowColor: 'rgba(255, 255, 255, 0.5)',
                        shadowBlur: 10,
                    },
                },
                data: [300, 500, 700, 400, 600, 1200],
            },
        ],
    };
    // option && ASdivisionDivIntance.setOption(option, true);
    useEcharts(ASdivisionDivIntance, option);
}

/*--------------------------------------------------------------------------------------------*/
function getAreaFenlei() {
    let fl = fenleiRef.value;
    console.log('fl:', fl);
    axios({
        url:
            serverAPI.geoserverUrl +
            '/shuzisannong/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=shuzisannong%3Ahuangdaoqu_town&maxFeatures=50&outputFormat=application%2Fjson',
    })
        .then(res => {
            console.log('res1111:', res);
            let data = res.data.features;
            data.forEach((item, index) => {
                const rectangle = Cesium.Rectangle.fromDegrees(
                    item.bbox[0],
                    item.bbox[1],
                    item.bbox[2],
                    item.bbox[3]
                );
                const center = Cesium.Rectangle.center(rectangle); //获取视角范围中心点(得到的结果为弧度Cartographic)
                let longitude = Cesium.Math.toDegrees(center.longitude); //将弧度转为度
                let latitude = Cesium.Math.toDegrees(center.latitude);

                if (item.properties.XZDM === '370211011') {
                    //灵山卫街道
                    longitude = 120.0863;
                    latitude = 35.941;
                } else if (item.properties.XZDM === '370211003') {
                    //薛家岛街道
                    longitude = 120.243682;
                    latitude = 35.97123201;
                }
                const townData = fl[item.properties.XZMC];
                let label = [];
                if (townData) {
                    label = townData.map((it, inex) => {
                        // let dd = `${it.properties.crop} :${(it.properties.Shape_Area / 666.67).toFixed(2)} 亩`
                        // return dd
                        return it.properties;
                    });
                }
                // label = label.join(' ')
                // console.log('label:', index, label,fl[item.properties.XZMC],item.properties.XZMC)
                // 添加点
                viewer.entities.add({
                    name: 'point' + item.properties.XZDM,
                    position: Cesium.Cartesian3.fromDegrees(longitude, latitude),
                    point: new Cesium.PointGraphics({
                        show: true,
                        pixelSize: 10,
                        // heightReference: Cesium.HeightReference.NONE,
                        color: Cesium.Color.fromCssColorString('rgba(255, 255, 26, 1)'),
                        outlineColor: new Cesium.Color(0, 0, 0, 0),
                        outlineWidth: 0,
                        disableDepthTestDistance: Number.POSITIVE_INFINITY, //去掉地形遮挡
                        heightReference: Cesium.HeightReference.CLAMP_TO_GROUND, //贴地
                    }),
                    // label: {
                    //     show: false,
                    //     text: label.join(' '),
                    //     font: '12px sans-serif',
                    //     fillColor: Cesium.Color.WHITE,
                    //     showBackground: true,
                    //     backgroundColor: Cesium.Color.fromCssColorString('rgba(2, 31, 26, 0.6)'),//背景颜色
                    //     // style: Cesium.LabelStyle.FILL,
                    //     outlineWidth: 3,
                    //     verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
                    //     horizontalOrigin: Cesium.HorizontalOrigin.LEFT,//水平位置
                    //     pixelOffset: new Cesium.Cartesian2(-80, -10),
                    // },
                    info: {
                        label: label,
                        ...item.properties,
                        // 经纬度,以便监听
                        lon: longitude,
                        lat: latitude,
                    },
                });
            });
        })
        .catch(err => {});
}
let fenleiRef = ref({});
function mbHandle() {
    axios({
        url:
            serverAPI.geoserverUrl +
            '/shuzisannong/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=shuzisannong%3Afenlei&maxFeatures=137&outputFormat=application%2Fjson',
    })
        .then(res => {
            let features = res.data.features;
            let town = {};
            // 按镇分类
            features.forEach(item => {
                let key = item.properties.town;
                if (town[key]) {
                    town[key].push(item);
                } else {
                    town[key] = [item];
                }
            });
            fenleiRef.value = town;
            getAreaFenlei();
        })
        .catch(err => {});
}

/*------------------------------------------柱状图--------------------------------------------*/
// function getJson() {
//     let dic = {
//         小麦: 'rgba(102, 142, 214, 0.8)',
//         玉米: 'rgba(255, 225, 104, 0.8)',
//         大豆: 'rgba(156, 220, 130, 0.8)',
//         地瓜: 'rgba(156, 220, 130, 0.8)',
//         花生: 'rgba(212, 236, 89, 0.8)',
//         蓝莓: 'rgba(50, 211, 235, 0.8)',
//         茶叶: 'rgba(91, 196, 159, 0.8)',
//         马铃薯: 'rgba(254, 182, 77, 0.8)',
//         白菜和萝卜: 'rgba(250, 129, 109, 0.8)',
//         其他: 'rgba(250, 129, 109, 0.8)',
//     };
//     // let viewer = viewers.value;
//     axios({
//         url: 'http://121.36.229.60:9080/geoserver/shuzisannong/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=shuzisannong%3Ahuangdaoqu_town&maxFeatures=50&outputFormat=application%2Fjson',
//     })
//         .then(res => {
//             console.log('res:', res);
//             let data = res.data.features;
//             let name = Object.keys(dic);
//             data.forEach((item, index) => {
//                 // let hh = name[Math.floor((Math.random() * name.length))]
//                 // let height = random(1000, 5000)

//                 const rectangle = Cesium.Rectangle.fromDegrees(
//                     item.bbox[0],
//                     item.bbox[1],
//                     item.bbox[2],
//                     item.bbox[3]
//                 );
//                 const center = Cesium.Rectangle.center(rectangle); //获取视角范围中心点(得到的结果为弧度Cartographic)
//                 let longitude = Cesium.Math.toDegrees(center.longitude); //将弧度转为度
//                 let latitude = Cesium.Math.toDegrees(center.latitude);

//                 if (item.properties.XZDM === '370211011') {
//                     //灵山卫街道
//                     let hh = name[Math.floor(Math.random() * name.length)];
//                     let height = random(2000, 500);

//                     longitude = 120.0863;
//                     latitude = 35.941;
//                     viewer.entities.add({
//                         position: Cesium.Cartesian3.fromDegrees(longitude + 0.01, latitude + 0.01),
//                         ellipse: {
//                             semiMinorAxis: 400.0, //短轴
//                             semiMajorAxis: 400.0, //长轴
//                             height: height, //拉伸高度
//                             extrudedHeight: 0, //离地高度
//                             rotation: Cesium.Math.toRadians(60), //旋转
//                             stRotation: Cesium.Math.toRadians(60), //旋转
//                             fill: true, //是否显示圆的填充
//                             material: Cesium.Color.fromCssColorString(`${dic[hh]}`), //圆的颜色,
//                             outline: false, //是否显示圆轮廓
//                             outlineColor: Cesium.Color.fromCssColorString(`rgba(255,255,0,1)`), //圆轮廓线的颜色,
//                         },
//                         info: {
//                             name: hh,
//                             value: height,
//                         },
//                     });
//                 } else if (item.properties.XZDM === '370211003') {
//                     //薛家岛街道
//                     longitude = 120.243682;
//                     latitude = 35.97123201;
//                     let hh = name[Math.floor(Math.random() * name.length)];
//                     let height = random(300, 5000);

//                     viewer.entities.add({
//                         position: Cesium.Cartesian3.fromDegrees(longitude + 0.01, latitude + 0.01),
//                         ellipse: {
//                             semiMinorAxis: 400.0, //短轴
//                             semiMajorAxis: 400.0, //长轴
//                             height: height, //拉伸高度
//                             extrudedHeight: 0, //离地高度
//                             rotation: Cesium.Math.toRadians(60), //旋转
//                             stRotation: Cesium.Math.toRadians(60), //旋转
//                             fill: true, //是否显示圆的填充
//                             material: Cesium.Color.fromCssColorString(`${dic[hh]}`), //圆的颜色,
//                             outline: false, //是否显示圆轮廓
//                             outlineColor: Cesium.Color.fromCssColorString(`rgba(255,255,0,1)`), //圆轮廓线的颜色,
//                         },
//                         info: {
//                             name: hh,
//                             value: height,
//                         },
//                     });
//                 } else if (index % 2 === 0) {
//                     let hh = name[Math.floor(Math.random() * name.length)];
//                     let height = random(100, 500);

//                     viewer.entities.add({
//                         position: Cesium.Cartesian3.fromDegrees(longitude + 0.01, latitude + 0.01),
//                         ellipse: {
//                             semiMinorAxis: 400.0, //短轴
//                             semiMajorAxis: 400.0, //长轴
//                             height: height, //拉伸高度
//                             extrudedHeight: 0, //离地高度
//                             rotation: Cesium.Math.toRadians(60), //旋转
//                             stRotation: Cesium.Math.toRadians(60), //旋转
//                             fill: true, //是否显示圆的填充
//                             material: Cesium.Color.fromCssColorString(`${dic[hh]}`), //圆的颜色,
//                             outline: false, //是否显示圆轮廓
//                             outlineColor: Cesium.Color.fromCssColorString(`rgba(255,255,0,1)`), //圆轮廓线的颜色,
//                         },
//                         info: {
//                             name: hh,
//                             value: height,
//                         },
//                     });
//                 }

//                 let hh = name[Math.floor(Math.random() * name.length)];
//                 let height = random(1000, 5000); //圆柱与圆高度为0时是圆

//                 viewer.entities.add({
//                     position: Cesium.Cartesian3.fromDegrees(longitude, latitude),
//                     ellipse: {
//                         semiMinorAxis: 400.0, //短轴
//                         semiMajorAxis: 400.0, //长轴
//                         height: height, //拉伸高度
//                         extrudedHeight: 0, //离地高度
//                         rotation: Cesium.Math.toRadians(60), //旋转
//                         stRotation: Cesium.Math.toRadians(60), //旋转
//                         fill: true, //是否显示圆的填充
//                         material: Cesium.Color.fromCssColorString(`${dic[hh]}`), //圆的颜色,
//                         outline: false, //是否显示圆轮廓
//                         outlineColor: Cesium.Color.fromCssColorString(`rgba(255,255,0,1)`), //圆轮廓线的颜色,
//                     },
//                     info: {
//                         name: hh,
//                         value: height,
//                     },
//                 }); //

//                 viewer.camera.flyTo({
//                     // destination: Cesium.Rectangle.fromDegrees(119.5091, 31.5671, 120.3285, 35.1455),
//                     // destination: new Cesium.Rectangle.fromDegrees(110.8, 30.8, 121.8, 30.9),
//                     destination: Cesium.Cartesian3.fromDegrees(119.9091, 35.0991, 55000),
//                     duration: 2,
//                     orientation: {
//                         pitch: Cesium.Math.toRadians(-30.0),
//                         roll: 0.0,
//                     },
//                 }); // viewer.camera.twistRight(Cesium.Math.toDegrees(0.005).toFixed(2));
//             });
//         })
//         .catch(err => {});
// }
// 地图移动时弹窗跟随
function infoWindowPostRender() {
    // let viewer = viewers.value;
    if (townZuowu.value && townZuowu.value.lon && townZuowu.value.lat) {
        //经纬度转为世界坐标

        const gisPosition = Cesium.Cartesian3.fromDegrees(
            Number(townZuowu.value.lon),
            Number(townZuowu.value.lat),
            0
        ); //转化为屏幕坐标
        var windowPosition = Cesium.SceneTransforms.wgs84ToWindowCoordinates(
            viewer.scene,
            gisPosition
        );

        if (Cesium.defined(windowPosition)) {
            const pop = document.getElementById('pop');
            pop.style.top = windowPosition.y - 10 + 'px';
            pop.style.left = windowPosition.x + 10 + 'px';
        }
    }
}
// function mapClick() {
//     // let viewer = viewers.value;
//     viewer.screenSpaceEventHandler.setInputAction(function (movement) {
//         const earthPosition = viewer.camera.pickEllipsoid(
//             movement.position,
//             viewer.scene.globe.ellipsoid
//         ); //当前世界坐标笛卡尔积
//         if (Cesium.defined(earthPosition)) {
//             let pick = viewer.scene.pick(movement.position); //返回最上层模型属性
//             let picks = viewer.scene.drillPick(movement.position); //返回所有模型属性
//             if (pick && pick.id && pick.id.info) {
//                 console.log('pick:', pick);
//                 const data = pick.id.info;
//                 console.log('data:', data);

//                 const coordinate = movement.position; //屏幕坐标 // 转为经纬度,保存,用于监听时转换坐标
//                 var ellipsoid = viewer.scene.globe.ellipsoid; // 将屏幕坐标转为地理坐标
//                 var cartesian = viewer.camera.pickEllipsoid(coordinate, ellipsoid);
//                 let newData = {
//                     ...data,
//                 };
//                 if (cartesian) {
//                     let cartographic = ellipsoid.cartesianToCartographic(cartesian);
//                     let longitudeString = Cesium.Math.toDegrees(cartographic.longitude).toFixed(6);
//                     let latitudeString = Cesium.Math.toDegrees(cartographic.latitude).toFixed(6);
//                     console.log('longitudeString:', longitudeString);
//                     newData.lon = longitudeString;
//                     newData.lat = latitudeString; /*保存(弹窗)的数据*/

//                     console.log('data:', newData);
//                     clickInfoMap.value = newData;
//                 }
//                 showOverlayChart(coordinate); // 添加地图移动监听:使地图移动弹窗跟着移动
//                 viewer.scene.postRender.addEventListener(infoWindowPostRender);
//             } else {
//                 hiddenOverlayChart(); // 清除监听事件 // viewer.scene.postRender.removeEventListener(infoWindowPostRender);
//             }
//         }
//     }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
// }

// 隐藏弹窗
function hiddenOverlayChart() {
    // 移除各种高亮
    XZDM = '';
    XZQDM = '';
    removeWms(['village_CQL']);
    removeWms(['aaa']);

    deleteEntityByName('villageLine');
    deleteEntityByName('townLine');

    const pop = document.getElementById('pop');
    pop.style.display = 'none'; // 清除监听事件
    viewer.scene.postRender.removeEventListener(infoWindowPostRender);
    // 重定位
    viewer.camera.flyTo({
        destination: Cesium.Rectangle.fromDegrees(119.5091, 35.5671, 120.3285, 36.1455),
        duration: 2,
    });
    removeWms(['gbznt'], true);
    // addWms('shuzisannong:huangdaoqu_town', 'tl');
    flag.value = false;
}
//显示弹窗
function showOverlayChart(position) {
    console.log(position);
    const pop = document.getElementById('pop');
    pop.style.display = 'block';
    pop.style.position = 'absolute';
    pop.style.top = position.y - 10 + 'px';
    pop.style.left = position.x + 10 + 'px';
    pop.style.zIndex = 99;
}

// function random(min, max) {
//     return Math.floor(Math.random() * (max - min)) + min;
// }

/*-------------------------------------------------------------------------------------------*/
</script>

<style lang="scss" scoped>
$height: calc(100vh - 100px);

.center {
    width: 100%;
    height: 100%;

    .title {
        width: 100%;
        height: 45px;
        background: url('@/assets/images/title.png');
        background-repeat: no-repeat;
        background-size: 110% 100%;
        color: #fff;
        font-size: 18px;
        font-weight: 700;
        line-height: 45px;
        padding-left: 46px;
        display: flex;
        cursor: pointer;
        align-items: center;
        justify-content: space-between;

        span {
            width: 80%;
            white-space: nowrap;
            text-overflow: ellipsis;
            overflow: hidden;
            background: linear-gradient(
                180deg,
                rgba(255, 255, 255, 1) 33.33%,
                rgba(41, 255, 219, 1) 100%
            );
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
        }

        p {
            width: 79px;
            height: 25px;
            border-radius: 20px;
            font-size: 14px;
            background: linear-gradient(
                180deg,
                rgba(16, 111, 111, 1) 0%,
                rgba(47, 214, 214, 1) 100%
            );
            border: 1.5px solid rgba(23, 194, 180, 1);
            display: flex;
            justify-content: center;
            align-items: center;
        }
    }
}

.leftWra {
    position: absolute;
    top: 10px;
    left: 20px;
    height: $height;
    width: 23%;
    background: rgba(2, 31, 26, 0.85);
    box-shadow: inset 0px 0px 15px 6px rgba(41, 255, 255, 0.5);
    transition: transform 1s;

    .leftFoldDiv {
        width: 30px;
        height: 30px;
        position: absolute;
        right: -12%;
        top: 50%;
        transform: translate(-50%, -50%);
        font-size: 30px;
        color: #ccc;
    }
    .leftTop {
        width: 100%;
        display: flex;
        flex-direction: column;
        .production {
            width: 100%;
            height: 125px;
            padding: 0 37px;
            display: flex;
            font-size: 18px;
            font-weight: 400;
            letter-spacing: 0px;
            color: rgba(255, 255, 255, 1);
            text-align: center;
            vertical-align: top;
            span {
                font-size: 48px;
                font-weight: 700;
                letter-spacing: 0px;
                line-height: 48px;
                color: rgba(255, 255, 255, 1);
            }
            .leftProduction {
                flex: 1;
                height: 100%;
                margin-right: 20px;
                background: url('@/assets/images/production.png');
                background-repeat: no-repeat;
                background-size: 100% 100%;
                background-position-y: 20px;
            }
            .rightProduction {
                flex: 1;
                height: 100%;
                background: url('@/assets/images/production.png');
                background-repeat: no-repeat;
                background-size: 100% 100%;
                background-position-y: 20px;
            }
        }
        .areaDiv {
            width: 100%;
            height: 327px;
            opacity: 1;
            display: flex;
            padding: 1px;
            justify-content: center;
        }

        .ProgressBar {
            width: 100%;
            height: 9px;
            opacity: 1;
        }
    }

    .leftbottom {
        width: 100%;
        height: 455px;
        opacity: 1;
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        align-items: center;
        padding-top: 13px;

        .tableDiv {
            // background: rgba(255, 255, 255, 0.05);
            display: flex;
            justify-content: center;
            width: 85%;
            flex-direction: column;
            padding: 5px 10px 5px 10px;
            color: rgba(255, 255, 255, 1);

            .Crops {
                display: flex;
                width: 100%;
                margin-bottom: 10px;
                font-size: 14px;
                font-weight: 400;
                height: 31px;
                flex-direction: row;
                align-items: center;
                justify-content: space-around;
                opacity: 1;
                background: linear-gradient(
                    90deg,
                    rgba(21, 173, 148, 0.1) 0%,
                    rgba(21, 173, 148, 0) 100%
                );

                div {
                    display: flex;
                    align-items: center;
                }
            }

            .el-checkbox-group {
                display: flex;
                flex-direction: column;
            }

            :deep(.ones) {
                width: 100%;
                height: 171;
                display: flex;
                flex-direction: column;
                justify-content: flex-start;
                align-items: flex-start;
                --el-table-tr-bg-color: null;
                --el-table-border-color: null;
                font-size: 14px;
                font-weight: 400;
                letter-spacing: 0px;
                line-height: 0px;
                color: rgba(255, 255, 255, 1);
            }
        }
    }
}

.rightWra {
    position: absolute;
    top: 10px;
    right: 20px;
    width: 23%;
    height: $height;
    opacity: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    background: rgba(2, 31, 26, 0.85);
    box-shadow: inset 0px 0px 15px 6px rgba(41, 255, 255, 0.5);
    transition: transform 1s;
    .rightFoldDiv {
        width: 30px;
        height: 30px;
        position: absolute;
        left: -8%;
        top: 50%;
        transform: translate(0, -50%);
        font-size: 30px;
        color: #ccc;
    }
    .rightTop {
        width: 100%;
        height: 40%;
        opacity: 1;
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        align-items: center;

        .farmlandDiv {
            width: 100%;
            height: 340px;
            opacity: 1;
            display: flex;
            justify-content: center;
        }

        .ProgressBar {
            width: 100%;
            height: 9px;
            opacity: 1;
        }
    }

    .rightbottom {
        width: 100%;
        height: 490px;
        opacity: 1;
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        align-items: center;

        .el-select {
            width: 80%;
            font-size: 14px;
            color: #333;
            background: rgba(22, 94, 102, 1);
            border: 1px solid rgba(4, 153, 153, 1) !important;
            margin-top: 20px;

            :deep(.el-input__wrapper) {
                background-color: transparent;
            }

            :deep(.el-input__inner) {
                color: rgba(255, 255, 255, 0.7);
            }
        }

        .ASdivision {
            width: 100%;
            height: 368px;
            opacity: 1;
            display: flex;
            justify-content: center;
        }
    }
}

.legend {
    position: absolute;
    right: 25%;
    bottom: 7%;
    width: 129px;
    border: 1px solid rgba(4, 153, 153, 1);

    // height: 50px;
    :deep(.el-collapse-item__header) {
        background: rgba(2, 31, 26, 0.6);
        color: rgba(255, 255, 255, 1);
        text-align: center;
        padding: 0 30px;
        font-size: 14px;
    }

    --el-collapse-content-bg-color {
        background: rgba(2, 31, 26, 0.6);
    }

    :deep(.el-collapse-item__content) {
        background: rgba(2, 31, 26, 0.6);
        padding: 0 10px;
        padding-bottom: 10px;
    }

    --el-collapse-border-color: none;
    --el-collapse-content-bg-color: none;

    // opacity: 1;
    // border-radius: 4px;
    // background: rgba(2, 31, 26, 0.6);
    // display: flex;
    // flex-direction: column;
    // justify-content: flex-start;
    // align-items: center;
    // padding: 10px 10px 10px 10px;
    p {
        margin: 10px;
        font-size: 14px;
        font-weight: 400;
        letter-spacing: 0px;
        line-height: 0px;
        color: rgba(255, 255, 255, 1);
        text-align: center;
    }

    .mt-4 {
        .el-checkbox {
            height: 30px;
            width: 100%;
            margin-bottom: 2px;
            padding-left: 10px;
            font-size: 14px;
            font-weight: 400;
            letter-spacing: 0px;
            line-height: 0px;
            color: rgba(255, 255, 255, 1);
            text-align: left;
        }
    }

    :deep(.el-checkbox__label) {
        color: rgba(255, 255, 255, 1);
    }
}

.bottom_center {
    position: absolute;
    // left: calc(400px + 20px + 8vw);
    left: -2%;
    right: 0;
    margin: auto;
    width: calc(100% - (400px * 2) - (10vw * 2));
    min-width: 380px;
    bottom: 5%;
    height: 75px;
    opacity: 1;
    border-radius: 5px;
    background: rgba(2, 31, 26, 0.6);
    border: 1px solid rgba(4, 153, 153, 1);
}

.tool {
    position: absolute;
    right: 30%;
    top: 8%;
    width: 30px;
    height: 280px;
    opacity: 1;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    display: none;
}

#popup {
    border-radius: 5px;
    background: rgba(2, 31, 26, 0.6);
    display: none;
    // justify-content: flex-start;
    // align-items: flex-end;
    padding: 30px 8px 20px 8px;

    & > div:nth-child(1) {
        font-weight: 400;
        letter-spacing: 0px;
        color: rgba(255, 255, 255, 1);
        // margin-top: 20px;
        line-height: 24px;
    }

    & > div:nth-child(2) {
        color: rgba(255, 255, 255, 1);
        width: 129px;
        height: 24px;
        opacity: 1;
        border-radius: 2px;
        background: rgba(217, 231, 255, 0.2);
        display: flex;
        justify-content: center;
        align-items: center;
        padding: 2px 10px 2px 10px;
        // margin-top: 20px;
    }

    .cancel {
        position: absolute;
        right: 10px;
        top: 5px;
        color: rgba(255, 255, 255, 1);
        cursor: pointer;
    }
}

#pop {
    border-radius: 5px;
    background: rgba(2, 31, 26, 1);
    display: none;
    // justify-content: flex-start;
    // align-items: flex-end;
    padding: 30px 8px 20px 8px;

    .cancel {
        position: absolute;
        right: 10px;
        top: 5px;
        color: rgba(255, 255, 255, 1);
        cursor: pointer;
    }

    & > div {
        display: flex;
        margin-bottom: 10px;

        & > div:nth-child(1) {
            font-weight: 400;
            letter-spacing: 0px;
            color: rgba(255, 255, 255, 1);
            // margin-top: 20px;
            line-height: 24px;
            margin-right: 10px;
        }

        & > div:nth-child(2) {
            color: rgba(255, 255, 255, 1);
            width: 129px;
            height: 24px;
            opacity: 1;
            border-radius: 2px;
            background: rgba(217, 231, 255, 0.2);
            display: flex;
            justify-content: center;
            align-items: center;
            padding: 2px 10px 2px 10px;
            // margin-top: 20px;
        }
    }
}
.back_button {
    position: absolute;
    right: 30%;
    top: 20px;
}

:deep(.el-select__popper.el-popper) {
}
</style>
<style lang="scss">
.select_city {
    background: rgba(2, 31, 26, 0.85);
    box-shadow: inset 0px 0px 15px 6px rgba(41, 255, 255, 0.5);

    .el-select-dropdown__item.hover {
        background: rgba(2, 31, 26, 0.95);
        box-shadow: inset 0px 0px 15px 6px rgba(41, 255, 255, 0.7);
    }

    .el-select-dropdown__item {
        color: #fff;
    }
}

.el-select__popper {
    border: none !important;
    background: transparent !important;
}

.el-popper {
    border: none !important;
    background: transparent !important;
}

.el-popper__arrow::before {
    background: rgba(41, 255, 255, 0.7) !important;
}
</style>