分类标准农田
This commit is contained in:
parent
023f4ba4e0
commit
51f754a51d
@ -17,10 +17,7 @@
|
|||||||
<span>作物类型统计-高标准农田</span>
|
<span>作物类型统计-高标准农田</span>
|
||||||
<p>
|
<p>
|
||||||
下载
|
下载
|
||||||
<img
|
<img src="@/assets/icons/svg/downloads.svg" style="width: 14px; height: 14px; cursor: pointer" />
|
||||||
src="@/assets/icons/svg/downloads.svg"
|
|
||||||
style="width: 14px; height: 14px; cursor: pointer"
|
|
||||||
/>
|
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div ref="farmlandDiv" class="farmlandDiv"></div>
|
<div ref="farmlandDiv" class="farmlandDiv"></div>
|
||||||
@ -31,25 +28,12 @@
|
|||||||
<span>作物类型统计-行政区划</span>
|
<span>作物类型统计-行政区划</span>
|
||||||
<p>
|
<p>
|
||||||
下载
|
下载
|
||||||
<img
|
<img src="@/assets/icons/svg/downloads.svg" style="width: 14px; height: 14px; cursor: pointer" />
|
||||||
src="@/assets/icons/svg/downloads.svg"
|
|
||||||
style="width: 14px; height: 14px; cursor: pointer"
|
|
||||||
/>
|
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<el-select
|
<el-select popper-class="select_city" @change="selectTab(item)" v-model="value" clearable placeholder="全部">
|
||||||
popper-class="select_city"
|
<el-option v-for="item in Township.arr" :key="item.properties.XZDM" :label="item.properties.XZMC"
|
||||||
@change="selectTab(item)"
|
:value="item.properties.XZDM" />
|
||||||
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>
|
</el-select>
|
||||||
<div ref="ASdivisionDiv" class="ASdivision"></div>
|
<div ref="ASdivisionDiv" class="ASdivision"></div>
|
||||||
</div>
|
</div>
|
||||||
@ -59,18 +43,11 @@
|
|||||||
<template #title>图例</template>
|
<template #title>图例</template>
|
||||||
<div class="mt-4">
|
<div class="mt-4">
|
||||||
<el-checkbox-group v-model="checkList" @change="change">
|
<el-checkbox-group v-model="checkList" @change="change">
|
||||||
<el-checkbox
|
<el-checkbox v-for="(value, item, key) in dic" :key="key" :style="{
|
||||||
v-for="(value, item, key) in dic"
|
|
||||||
:key="key"
|
|
||||||
:style="{
|
|
||||||
background: value.color,
|
background: value.color,
|
||||||
border: `1px solid ${value.color}`,
|
border: `1px solid ${value.color}`,
|
||||||
width: `100%`,
|
width: `100%`,
|
||||||
}"
|
}" v-model="checked3" :disabled="value.disabled" :label="item" />
|
||||||
v-model="checked3"
|
|
||||||
:disabled="value.disabled"
|
|
||||||
:label="item"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<!-- <el-checkbox style="
|
<!-- <el-checkbox style="
|
||||||
background: rgba(251, 171, 60, 1);
|
background: rgba(251, 171, 60, 1);
|
||||||
@ -143,7 +120,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="rowWra">
|
<div class="rowWra">
|
||||||
<span>面积:</span>
|
<span>面积:</span>
|
||||||
<span>{{ item.Shape_Area }}</span>
|
<span>{{ (item.Shape_Area / 666.67).toFixed(2) }} 亩</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="rowWra">
|
<div class="rowWra">
|
||||||
<span>镇名:</span>
|
<span>镇名:</span>
|
||||||
@ -170,6 +147,7 @@ import 'echarts-gl';
|
|||||||
import TimeLine from '@/components/TimeLine/TimeLine.vue';
|
import TimeLine from '@/components/TimeLine/TimeLine.vue';
|
||||||
import { useEcharts } from '@/hooks/useEcharts';
|
import { useEcharts } from '@/hooks/useEcharts';
|
||||||
import { getarea, getTownship, getvillage, getareas, dow } from '@/api/crops/classify.js';
|
import { getarea, getTownship, getvillage, getareas, dow } from '@/api/crops/classify.js';
|
||||||
|
import axios from 'axios';
|
||||||
|
|
||||||
let viewer = ref(null);
|
let viewer = ref(null);
|
||||||
const areaDiv = ref(null);
|
const areaDiv = ref(null);
|
||||||
@ -238,6 +216,11 @@ const options = [
|
|||||||
];
|
];
|
||||||
// 组件挂载完成后执行
|
// 组件挂载完成后执行
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
initonMounted()
|
||||||
|
// checkList.value = Object.keys(dic.filter(item => !item.disabled))
|
||||||
|
});
|
||||||
|
// 初始化
|
||||||
|
function initonMounted() {
|
||||||
getaArea(); //面积
|
getaArea(); //面积
|
||||||
getTownships();
|
getTownships();
|
||||||
getvillages(); //村
|
getvillages(); //村
|
||||||
@ -247,10 +230,9 @@ onMounted(() => {
|
|||||||
farmland(); //图表
|
farmland(); //图表
|
||||||
ASdivision(); //图表
|
ASdivision(); //图表
|
||||||
getArea(); //请求
|
getArea(); //请求
|
||||||
|
getFarmland()
|
||||||
checkList.value = Object.keys(dic);
|
checkList.value = Object.keys(dic);
|
||||||
// checkList.value = Object.keys(dic.filter(item => !item.disabled))
|
}
|
||||||
});
|
|
||||||
const mapOption = {
|
const mapOption = {
|
||||||
url:
|
url:
|
||||||
'http://{s}.tianditu.gov.cn/img_c/wmts?service=wmts&request=GetTile&version=1.0.0' +
|
'http://{s}.tianditu.gov.cn/img_c/wmts?service=wmts&request=GetTile&version=1.0.0' +
|
||||||
@ -325,170 +307,19 @@ function initMap() {
|
|||||||
// 去除logo
|
// 去除logo
|
||||||
viewer.cesiumWidget.creditContainer.style.display = 'none';
|
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);
|
|
||||||
|
|
||||||
viewer.camera.flyTo({
|
viewer.camera.flyTo({
|
||||||
destination: Cesium.Rectangle.fromDegrees(119.5091, 35.5671, 120.3285, 36.1455),
|
destination: Cesium.Rectangle.fromDegrees(119.5091, 35.5671, 120.3285, 36.1455),
|
||||||
duration: 2,
|
duration: 2,
|
||||||
});
|
});
|
||||||
|
|
||||||
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;
|
|
||||||
let providerPoint = null;
|
|
||||||
layers.forEach(item => {
|
|
||||||
if (item._imageryProvider._layers == 'shuzisannong:huangdaoqu_town') {
|
|
||||||
providerPoint = item;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
// 拿取最后一个图层
|
|
||||||
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) {
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
|
|
||||||
|
|
||||||
// addwms();
|
|
||||||
// 图层点击事件
|
// 图层点击事件
|
||||||
layerClick();
|
layerClick();
|
||||||
|
// 添加镇级矢量
|
||||||
|
addWms('shuzisannong:huangdaoqu_town', 'shuzisannong:huangdaoqu_town')
|
||||||
|
|
||||||
//加载黄岛区村级地图服务
|
|
||||||
// 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),
|
|
||||||
// },
|
|
||||||
// }
|
|
||||||
// );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const checkList = ref([]);
|
const checkList = ref([]);
|
||||||
@ -536,12 +367,12 @@ function getLevel(height) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function change(e, a) {
|
function change(e, a) {
|
||||||
console.log('e:', e, a);
|
// console.log('e:', e, a);
|
||||||
// console.log('checkList:', checkList.value);
|
|
||||||
// removeWms('crop');
|
// removeWms('crop');
|
||||||
// addwms();
|
// addwms();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 农作物
|
||||||
watch(
|
watch(
|
||||||
() => checkList.value,
|
() => checkList.value,
|
||||||
(val, oldVal) => {
|
(val, oldVal) => {
|
||||||
@ -555,7 +386,7 @@ watch(
|
|||||||
});
|
});
|
||||||
newData.forEach(item => {
|
newData.forEach(item => {
|
||||||
if (layersDic[item]) {
|
if (layersDic[item]) {
|
||||||
addLayerWms(layersDic[item], item);
|
addWms(layersDic[item], item + 'zuowu');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else if (val.length < oldVal.length) {
|
} else if (val.length < oldVal.length) {
|
||||||
@ -568,47 +399,16 @@ watch(
|
|||||||
});
|
});
|
||||||
newData.forEach(item => {
|
newData.forEach(item => {
|
||||||
if (layersDic[item]) {
|
if (layersDic[item]) {
|
||||||
removeWms(item);
|
removeWms([item + 'zuowu']);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
watch(
|
|
||||||
() => clickInfoMap.value,
|
|
||||||
val => {
|
|
||||||
console.log('valvalvalvalvalvalvalvalvalval:', val);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
// 根据name移除wms
|
|
||||||
function removeWms(name) {
|
|
||||||
// 倒叙遍历,customName是自定义的属性
|
|
||||||
// let viewer = viewers.value
|
|
||||||
const layers = viewer.imageryLayers._layers;
|
|
||||||
for (let f = layers.length - 1; f >= 0; f--) {
|
|
||||||
if (layers[f]._imageryProvider.customName === name) {
|
|
||||||
viewer.imageryLayers.remove(layers[f]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function addwms() {
|
|
||||||
// let viewer = viewers.value
|
|
||||||
const name = "'" + checkList.value.join("','") + "'";
|
|
||||||
let map = new Cesium.WebMapServiceImageryProvider({
|
|
||||||
url: `http://121.36.229.60:9080/geoserver/shuzisannong/wms?`,
|
|
||||||
layers: 'shuzisannong:fenlei', //图层名
|
|
||||||
parameters: {
|
|
||||||
service: 'WMS',
|
|
||||||
format: 'image/png',
|
|
||||||
transparent: true, //是否透明
|
|
||||||
CQL_FILTER: `crop in (${name})`,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
map.customName = 'crop'; //自己定义各种属性
|
|
||||||
viewer.imageryLayers.addImageryProvider(map); //添加图层
|
|
||||||
}
|
|
||||||
// 添加wms
|
// 添加wms
|
||||||
function addLayerWms(layers, customName) {
|
function addWms(layers, customName) {
|
||||||
let map = new Cesium.WebMapServiceImageryProvider({
|
let map = new Cesium.WebMapServiceImageryProvider({
|
||||||
url: serverAPI.geoserverUrl + `/shuzisannong/wms?`,
|
url: serverAPI.geoserverUrl + `/shuzisannong/wms?`,
|
||||||
layers: layers, //图层名
|
layers: layers, //图层名
|
||||||
@ -620,9 +420,16 @@ function addLayerWms(layers, customName) {
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
map.customName = customName; //自己定义各种属性
|
map.customName = customName; //自己定义各种属性
|
||||||
viewer.imageryLayers.addImageryProvider(map); //添加图层
|
let dd = viewer.imageryLayers.addImageryProvider(map); //添加图层
|
||||||
|
if (customName.indexOf('gbznt') > -1) {
|
||||||
|
console.log('dididididi')
|
||||||
|
// viewer.imageryLayers.lower(dd);//将图层下移一层
|
||||||
|
viewer.imageryLayers.lowerToBottom(dd); //将图层移到最底层
|
||||||
|
viewer.imageryLayers.raise(dd); //将图层上移一层
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// 图层点击事件
|
// 图层点击事件
|
||||||
|
let XZDM = ''
|
||||||
function layerClick() {
|
function layerClick() {
|
||||||
var handler = new Cesium.ScreenSpaceEventHandler(viewer.canvas);
|
var handler = new Cesium.ScreenSpaceEventHandler(viewer.canvas);
|
||||||
handler.setInputAction(async function (movement) {
|
handler.setInputAction(async function (movement) {
|
||||||
@ -635,32 +442,92 @@ function layerClick() {
|
|||||||
let alti = viewer.camera.positionCartographic.height;
|
let alti = viewer.camera.positionCartographic.height;
|
||||||
let level = getLevel(alti);
|
let level = getLevel(alti);
|
||||||
const layers = viewer.imageryLayers._layers;
|
const layers = viewer.imageryLayers._layers;
|
||||||
console.log('layers:', layers);
|
// 获取镇的图层 (点击镇后,再点击种植结构)
|
||||||
// 筛选出种植结构的最后一个图层
|
const index = layers.findIndex(
|
||||||
// let newLayer = layers.filter(item => {
|
item =>
|
||||||
// const index = Object.values(layersDic).findIndex(it => item._imageryProvider._layers && it === item._imageryProvider._layers)
|
item._imageryProvider._layers &&
|
||||||
// if (index > -1) {
|
item._imageryProvider._layers === 'shuzisannong:huangdaoqu_town'
|
||||||
// return item
|
);
|
||||||
// }
|
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(async 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.coordinates,
|
||||||
|
'townLine',
|
||||||
|
'red'
|
||||||
|
);
|
||||||
|
// 移除以前的
|
||||||
|
removeWms(['village_CQL']);
|
||||||
|
// 添加新的
|
||||||
|
addvillage(
|
||||||
|
`XZDM=${newData.properties.XZDM}`,
|
||||||
|
'village_CQL'
|
||||||
|
);
|
||||||
|
// 隐藏pop
|
||||||
|
hiddenOverlayChart();
|
||||||
|
} else {//已经点击了镇了,开始监测是否点击作物了
|
||||||
|
zuowuClick(layers, cartographic, level, xy, movement)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
removeWms(['village_CQL']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 直接种植结构
|
||||||
|
zuowuClick(layers, cartographic, level, xy, movement)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
|
||||||
|
}
|
||||||
|
// 种植结构
|
||||||
|
async function zuowuClick(layers, cartographic, level, xy, movement) {
|
||||||
let newData = [];
|
let newData = [];
|
||||||
let promise = layers.map(async item => {
|
let promise = layers.map(async item => {
|
||||||
console.log('item');
|
|
||||||
if (item._imageryProvider._layers) {
|
if (item._imageryProvider._layers) {
|
||||||
// 是种植结构图层
|
// 是种植结构图层
|
||||||
if (
|
if (Object.values(layersDic).findIndex(it => it === item._imageryProvider._layers) > -1) {
|
||||||
Object.values(layersDic).findIndex(
|
|
||||||
it => it === item._imageryProvider._layers
|
|
||||||
) > -1
|
|
||||||
) {
|
|
||||||
const providerPoint = item;
|
const providerPoint = item;
|
||||||
// 拿取最后一个图层
|
// 拿取最后一个图层
|
||||||
let provider = providerPoint._imageryProvider;
|
let provider = providerPoint._imageryProvider;
|
||||||
if (
|
if (provider && provider.ready && provider._layers && providerPoint.show === true
|
||||||
provider &&
|
|
||||||
provider.ready &&
|
|
||||||
provider._layers &&
|
|
||||||
providerPoint.show === true
|
|
||||||
) {
|
) {
|
||||||
xy = provider.tilingScheme.positionToTileXY(
|
xy = provider.tilingScheme.positionToTileXY(
|
||||||
cartographic,
|
cartographic,
|
||||||
@ -677,15 +544,20 @@ function layerClick() {
|
|||||||
if (promise) {
|
if (promise) {
|
||||||
await promise.then(data => {
|
await promise.then(data => {
|
||||||
if (data.length > 0) {
|
if (data.length > 0) {
|
||||||
|
// 移除高亮
|
||||||
|
deleteEntityByName('landtype');
|
||||||
|
// 高亮边界
|
||||||
|
addBoundaryHandle(
|
||||||
|
data['0'].data.geometry.coordinates,
|
||||||
|
'landtype',
|
||||||
|
'red'
|
||||||
|
);
|
||||||
let info = data['0'].properties;
|
let info = data['0'].properties;
|
||||||
console.log('info:', info);
|
|
||||||
const ind = newData.findIndex(
|
const ind = newData.findIndex(
|
||||||
ii => ii && ii.crop === info.crop
|
ii => ii && ii.crop === info.crop
|
||||||
);
|
);
|
||||||
if (ind < 0) {
|
if (ind < 0) {
|
||||||
console.log('push:', info);
|
|
||||||
newData.push(info);
|
newData.push(info);
|
||||||
console.log('newData:', newData);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -695,12 +567,10 @@ function layerClick() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
await Promise.all(promise);
|
await Promise.all(promise);
|
||||||
console.log('newDatanewDatanewDatanewDatanewData:', newData);
|
|
||||||
if (newData.length > 0) {
|
if (newData.length > 0) {
|
||||||
const coordinate = movement.position; //屏幕坐标 // 转为经纬度,保存,用于监听时转换坐标
|
const coordinate = movement.position; //屏幕坐标 // 转为经纬度,保存,用于监听时转换坐标
|
||||||
var ellipsoid = viewer.scene.globe.ellipsoid; // 将屏幕坐标转为地理坐标
|
var ellipsoid = viewer.scene.globe.ellipsoid; // 将屏幕坐标转为地理坐标
|
||||||
var cartesian = viewer.camera.pickEllipsoid(coordinate, ellipsoid);
|
var cartesian = viewer.camera.pickEllipsoid(coordinate, ellipsoid);
|
||||||
console.log('cartesian:', cartesian);
|
|
||||||
if (cartesian) {
|
if (cartesian) {
|
||||||
let cartographic = ellipsoid.cartesianToCartographic(cartesian);
|
let cartographic = ellipsoid.cartesianToCartographic(cartesian);
|
||||||
let longitudeString = Cesium.Math.toDegrees(cartographic.longitude).toFixed(
|
let longitudeString = Cesium.Math.toDegrees(cartographic.longitude).toFixed(
|
||||||
@ -709,11 +579,6 @@ function layerClick() {
|
|||||||
let latitudeString = Cesium.Math.toDegrees(cartographic.latitude).toFixed(
|
let latitudeString = Cesium.Math.toDegrees(cartographic.latitude).toFixed(
|
||||||
6
|
6
|
||||||
);
|
);
|
||||||
console.log('longitudeString:', longitudeString);
|
|
||||||
// newData.lon = longitudeString;
|
|
||||||
// newData.lat = latitudeString; /*保存(弹窗)的数据*/
|
|
||||||
|
|
||||||
console.log('data:', newData);
|
|
||||||
clickInfoMap.value = {
|
clickInfoMap.value = {
|
||||||
info: newData,
|
info: newData,
|
||||||
// ...newData['0'],
|
// ...newData['0'],
|
||||||
@ -726,14 +591,95 @@ function layerClick() {
|
|||||||
} else {
|
} else {
|
||||||
hiddenOverlayChart(); // 清除监听事件 // viewer.scene.postRender.removeEventListener(infoWindowPostRender);
|
hiddenOverlayChart(); // 清除监听事件 // viewer.scene.postRender.removeEventListener(infoWindowPostRender);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 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, //贴地
|
||||||
|
},
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// 添加村
|
||||||
|
// 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] && 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 infoWindowPostRender() {
|
function infoWindowPostRender() {
|
||||||
// let viewer = viewers.value;
|
// let viewer = viewers.value;
|
||||||
// console.log('clickInfoMap.value:', clickInfoMap.value);
|
|
||||||
if (clickInfoMap.value && clickInfoMap.value.lon && clickInfoMap.value.lat) {
|
if (clickInfoMap.value && clickInfoMap.value.lon && clickInfoMap.value.lat) {
|
||||||
//经纬度转为世界坐标
|
//经纬度转为世界坐标
|
||||||
const gisPosition = Cesium.Cartesian3.fromDegrees(
|
const gisPosition = Cesium.Cartesian3.fromDegrees(
|
||||||
@ -762,7 +708,6 @@ function hiddenOverlayChart() {
|
|||||||
}
|
}
|
||||||
//显示弹窗
|
//显示弹窗
|
||||||
function showOverlayChart(position) {
|
function showOverlayChart(position) {
|
||||||
console.log('显示');
|
|
||||||
const pop = document.getElementById('popup1');
|
const pop = document.getElementById('popup1');
|
||||||
pop.style.display = 'block';
|
pop.style.display = 'block';
|
||||||
pop.style.position = 'absolute';
|
pop.style.position = 'absolute';
|
||||||
@ -770,7 +715,15 @@ function showOverlayChart(position) {
|
|||||||
pop.style.left = position.x + 10 + 'px';
|
pop.style.left = position.x + 10 + 'px';
|
||||||
pop.style.zIndex = 99;
|
pop.style.zIndex = 99;
|
||||||
}
|
}
|
||||||
|
// 获取高标准农田
|
||||||
|
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)
|
||||||
|
}).catch(err => { })
|
||||||
|
}
|
||||||
//接口
|
//接口
|
||||||
const getArea = (item, index) => {
|
const getArea = (item, index) => {
|
||||||
return getarea({ time: '2023-04-19', subregion: index, parent: item }).then(response => {
|
return getarea({ time: '2023-04-19', subregion: index, parent: item }).then(response => {
|
||||||
@ -809,6 +762,7 @@ const getaArea = () => {
|
|||||||
let arr = [];
|
let arr = [];
|
||||||
let a = {};
|
let a = {};
|
||||||
getareas().then(res => {
|
getareas().then(res => {
|
||||||
|
console.log('res:', res)
|
||||||
Township.crr = res.features;
|
Township.crr = res.features;
|
||||||
data.title.forEach((item, indexs) => {
|
data.title.forEach((item, indexs) => {
|
||||||
let town = res.features.map(i => {
|
let town = res.features.map(i => {
|
||||||
@ -881,6 +835,7 @@ const selectTab = () => {
|
|||||||
|
|
||||||
//图表
|
//图表
|
||||||
function areachar() {
|
function areachar() {
|
||||||
|
if (areaDiv.value) {
|
||||||
const areaDivIntance = echarts.init(areaDiv.value);
|
const areaDivIntance = echarts.init(areaDiv.value);
|
||||||
|
|
||||||
let option = {
|
let option = {
|
||||||
@ -1040,9 +995,9 @@ function areachar() {
|
|||||||
formatter: '面积:{c0}',
|
formatter: '面积:{c0}',
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
// option && areaDivIntance.setOption(option);
|
// option && areaDivIntance.setOption(option);
|
||||||
useEcharts(areaDivIntance, option);
|
useEcharts(areaDivIntance, option);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function typesof() {
|
function typesof() {
|
||||||
@ -1197,7 +1152,6 @@ function typesof() {
|
|||||||
}
|
}
|
||||||
// 使用上一次遍历时,计算出的数据和 sumValue,调用 getParametricEquation 函数,
|
// 使用上一次遍历时,计算出的数据和 sumValue,调用 getParametricEquation 函数,
|
||||||
// 向每个 series-surface 传入不同的参数方程 series-surface.parametricEquation,也就是实现每一个扇形。
|
// 向每个 series-surface 传入不同的参数方程 series-surface.parametricEquation,也就是实现每一个扇形。
|
||||||
console.log(series);
|
|
||||||
for (let i = 0; i < series.length; i += 1) {
|
for (let i = 0; i < series.length; i += 1) {
|
||||||
endValue = startValue + series[i].pieData.value;
|
endValue = startValue + series[i].pieData.value;
|
||||||
|
|
||||||
@ -1236,10 +1190,8 @@ function typesof() {
|
|||||||
tooltip: {
|
tooltip: {
|
||||||
formatter: params => {
|
formatter: params => {
|
||||||
if (params.seriesName !== 'mouseoutSeries') {
|
if (params.seriesName !== 'mouseoutSeries') {
|
||||||
return `${
|
return `${params.seriesName
|
||||||
params.seriesName
|
}<br/><span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:${params.color
|
||||||
}<br/><span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:${
|
|
||||||
params.color
|
|
||||||
};"></span>${option.series[params.seriesIndex].pieData.value}`;
|
};"></span>${option.series[params.seriesIndex].pieData.value}`;
|
||||||
}
|
}
|
||||||
return '';
|
return '';
|
||||||
@ -1409,7 +1361,6 @@ function typesof() {
|
|||||||
typesofDivIntance.on('globalout', function () {
|
typesofDivIntance.on('globalout', function () {
|
||||||
handleOut();
|
handleOut();
|
||||||
});
|
});
|
||||||
console.log(option);
|
|
||||||
let seriesIndex = 0;
|
let seriesIndex = 0;
|
||||||
setInterval(() => {
|
setInterval(() => {
|
||||||
handleOver({ seriesIndex: seriesIndex });
|
handleOver({ seriesIndex: seriesIndex });
|
||||||
@ -1422,7 +1373,7 @@ function typesof() {
|
|||||||
// option && typesofDivIntance.setOption(option);
|
// option && typesofDivIntance.setOption(option);
|
||||||
useEcharts(typesofDivIntance, option);
|
useEcharts(typesofDivIntance, option);
|
||||||
}
|
}
|
||||||
|
// 高标准农田echarts
|
||||||
function farmland() {
|
function farmland() {
|
||||||
const farmlandDivIntance = echarts.init(farmlandDiv.value);
|
const farmlandDivIntance = echarts.init(farmlandDiv.value);
|
||||||
var option = {
|
var option = {
|
||||||
@ -1611,7 +1562,7 @@ function farmland() {
|
|||||||
],
|
],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
data: [1,2,4], // 系列中的数据内容数组
|
data: [1, 2, 4], // 系列中的数据内容数组
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'bar', // 系列类型
|
type: 'bar', // 系列类型
|
||||||
@ -1729,8 +1680,20 @@ function farmland() {
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
// areaDivIntance.off('click') //图表渲染前销毁点击事件,防止点击图标多次触发
|
||||||
|
farmlandDivIntance.on("click", (param) => ChartClick(param));
|
||||||
useEcharts(farmlandDivIntance, option);
|
useEcharts(farmlandDivIntance, option);
|
||||||
}
|
}
|
||||||
|
// 图表点击事件
|
||||||
|
function ChartClick() {
|
||||||
|
// 移除作物
|
||||||
|
removeWms(['huangdaoqu_town'], true);
|
||||||
|
let layername = 'shuzisannong:farmland'
|
||||||
|
// 添加高标准农田服务
|
||||||
|
addWms(layername, layername + 'gbznt');
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
function ASdivision() {
|
function ASdivision() {
|
||||||
const ASdivisionDivIntance = echarts.init(ASdivisionDiv.value);
|
const ASdivisionDivIntance = echarts.init(ASdivisionDiv.value);
|
||||||
var option = {
|
var option = {
|
||||||
@ -2037,9 +2000,15 @@ function ASdivision() {
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
ASdivisionDivIntance.on("click", (param) => ChartClickRB(param));
|
||||||
// option && ASdivisionDivIntance.setOption(option, true);
|
// option && ASdivisionDivIntance.setOption(option, true);
|
||||||
useEcharts(ASdivisionDivIntance, option);
|
useEcharts(ASdivisionDivIntance, option);
|
||||||
}
|
}
|
||||||
|
// 右下角图表点击事件
|
||||||
|
function ChartClickRB(param) {
|
||||||
|
console.log('右下点击', param)
|
||||||
|
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@ -2075,11 +2044,9 @@ $height: calc(100vh - 100px);
|
|||||||
height: 25px;
|
height: 25px;
|
||||||
border-radius: 20px;
|
border-radius: 20px;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
background: linear-gradient(
|
background: linear-gradient(180deg,
|
||||||
180deg,
|
|
||||||
rgba(16, 111, 111, 1) 0%,
|
rgba(16, 111, 111, 1) 0%,
|
||||||
rgba(47, 214, 214, 1) 100%
|
rgba(47, 214, 214, 1) 100%);
|
||||||
);
|
|
||||||
border: 1.5px solid rgba(23, 194, 180, 1);
|
border: 1.5px solid rgba(23, 194, 180, 1);
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
@ -2118,6 +2085,7 @@ $height: calc(100vh - 100px);
|
|||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
max-width: calc(100% - 7px);
|
max-width: calc(100% - 7px);
|
||||||
|
|
||||||
.typesofDiv {
|
.typesofDiv {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 267px;
|
height: 267px;
|
||||||
@ -2177,6 +2145,7 @@ $height: calc(100vh - 100px);
|
|||||||
background: rgba(22, 94, 102, 1);
|
background: rgba(22, 94, 102, 1);
|
||||||
// border: 1px solid rgba(4, 153, 153, 1) !important;
|
// border: 1px solid rgba(4, 153, 153, 1) !important;
|
||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
|
|
||||||
:deep(.el-input__wrapper) {
|
:deep(.el-input__wrapper) {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
@ -2193,6 +2162,16 @@ $height: calc(100vh - 100px);
|
|||||||
height: 368px;
|
height: 368px;
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.el-select__popper) {
|
||||||
|
border: none !important;
|
||||||
|
background: transparent !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.el-popper) {
|
||||||
|
border: none !important;
|
||||||
|
background: transparent !important;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2202,6 +2181,7 @@ $height: calc(100vh - 100px);
|
|||||||
bottom: 7%;
|
bottom: 7%;
|
||||||
width: 129px;
|
width: 129px;
|
||||||
border: 1px solid rgba(4, 153, 153, 1);
|
border: 1px solid rgba(4, 153, 153, 1);
|
||||||
|
|
||||||
// height: 50px;
|
// height: 50px;
|
||||||
:deep(.el-collapse-item__header) {
|
:deep(.el-collapse-item__header) {
|
||||||
background: rgba(2, 31, 26, 0.6);
|
background: rgba(2, 31, 26, 0.6);
|
||||||
@ -2302,7 +2282,7 @@ $height: calc(100vh - 100px);
|
|||||||
display: flex;
|
display: flex;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
|
|
||||||
& > span:nth-child(1) {
|
&>span:nth-child(1) {
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
letter-spacing: 0px;
|
letter-spacing: 0px;
|
||||||
color: rgba(255, 255, 255, 1);
|
color: rgba(255, 255, 255, 1);
|
||||||
@ -2313,7 +2293,7 @@ $height: calc(100vh - 100px);
|
|||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
& > span:nth-child(2) {
|
&>span:nth-child(2) {
|
||||||
color: rgba(255, 255, 255, 1);
|
color: rgba(255, 255, 255, 1);
|
||||||
width: 129px;
|
width: 129px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
@ -2341,12 +2321,29 @@ $height: calc(100vh - 100px);
|
|||||||
.select_city {
|
.select_city {
|
||||||
background: rgba(2, 31, 26, 0.85);
|
background: rgba(2, 31, 26, 0.85);
|
||||||
box-shadow: inset 0px 0px 15px 6px rgba(41, 255, 255, 0.5);
|
box-shadow: inset 0px 0px 15px 6px rgba(41, 255, 255, 0.5);
|
||||||
|
|
||||||
.el-select-dropdown__item.hover {
|
.el-select-dropdown__item.hover {
|
||||||
background: rgba(2, 31, 26, 0.95);
|
background: rgba(2, 31, 26, 0.95);
|
||||||
box-shadow: inset 0px 0px 15px 6px rgba(41, 255, 255, 0.7);
|
box-shadow: inset 0px 0px 15px 6px rgba(41, 255, 255, 0.7);
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-select-dropdown__item {
|
.el-select-dropdown__item {
|
||||||
color: #fff;
|
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>
|
</style>
|
||||||
|
Loading…
Reference in New Issue
Block a user