DSDSWeb/src/views/home.vue

1430 lines
42 KiB
Vue
Raw Normal View History

2024-07-11 18:02:47 +08:00
<template>
<div class="index">
<div class="banner">
<img src="../../static/images/banner_index.jpg" alt="">
<div class="banner_con">
<div class="banner_top">
<p>
面向数据样品贡献方需求构建用户体验良好的数据样品目录信息平台
</p>
<p>
提供便捷安全的数据录入统计分析和可视化检索工具服务数据样品贡献者资助机构和管理机构
</p>
</div>
<div class="banner_bot">
<div class="bot_left">
<div class="left1">
<p>建立深海所海洋地球科学数据样品信息目录</p>
</div>
<div class="left2">
<div class="left2_1">
<p>56,204</p>
<span>数据样品数</span>
</div>
<div class="left2_1">
<p>260</p>
<span>数据集个数</span>
</div>
</div>
</div>
<div class="bot_right">
<div class="right1">
<p>依托两器两船等各类海洋科考平台设备开展航次科考</p>
</div>
<div class="right2">
<div class="right2_1">
<p>204</p>
<span>航次个数</span>
</div>
<div class="right2_1">
<p>360</p>
<span>航次天数</span>
</div>
<div class="right2_1">
<p>204</p>
<span>深海勇士号潜次数</span>
</div>
<div class="right2_1">
<p>204</p>
<span>奋斗者号潜次数</span>
</div>
<div class="right2_1">
<p>5,623</p>
<span>航行里程</span>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- <div class="guiji">
<div class="guiji_1">
<img src="../../static/images/guiji.png" alt="">
</div>
<div class="guiji_2">
<div class="daohang">
<ul>
<li>
<a href="###" @click="allBtn">All</a>
</li>
<li>
<a href="###" @click="clearBtn">clear</a>
</li>
<li
v-for="(item, index) in didian"
:key="index"
:class="chooseIndex == index ? 'active' : ''"
@click="tochoose(index)"
>
<a href="###">{{ item }}</a>
</li>
</ul>
</div>
<div id="cdc-track" ref="map" style="height: 100%;width:100%;" />
</div>
</div> -->
<div class="guiji">
<div class="guiji_1">
<img src="../../static/images/guiji.png" alt="">
</div>
<div class="guiji_2">
<!-- <img src="../../static/images/guiji_1.jpg" alt="" /> -->
<div class="daohang">
<ul>
<!-- <li>
<a href="###" @click="allBtn">All</a>
</li> -->
<li>
<a href="###" @click="clearBtn">clear</a>
</li>
<li
v-for="(item, index) in didian"
:key="index"
:class="chooseIndex == index ? 'active' : ''"
@click="tochoose(index)"
>
<a href="###">{{ item }}</a>
</li>
</ul>
</div>
<div id="map" ref="map" style="height: 100%;width:100%;">
<div class="son" style="display: none;">弹框插槽</div>
</div>
</div>
</div>
<div class="shuju">
<div class="shuju1">
<div class="shuju1_top">
<img src="../../static/images/shuju.png" alt="">
</div>
<div class="shuju1_con">
<ul>
<li @click="turnPage('physicalIndex')">
<img src="../../static/images/diqiu.png" alt="">
<p>海洋地球物理与物理海洋</p>
<p class="sourceData">数据集<span>-</span> &nbsp;&nbsp;&nbsp;体量<span>-</span> GB</p>
</li>
<li @click="turnPage('biologyIndex')">
<img src="../../static/images/yangpin.png" alt="">
<p>海洋生物样品信息待开发</p>
<p class="sourceData">数据集<span>-</span> &nbsp;&nbsp;&nbsp;体量<span>-</span> GB</p>
</li>
<li>
<img src="../../static/images/dizhi.png" alt="">
<p>海洋地质与地球化学待开发</p>
<p class="sourceData">数据集<span>-</span> &nbsp;&nbsp;&nbsp;体量<span>-</span> GB</p>
</li>
<li>
<img src="../../static/images/dongwu.png" alt="">
<p>哺乳动物与海洋声学待开发</p>
<p class="sourceData">数据集<span>-</span> &nbsp;&nbsp;&nbsp;体量<span>-</span> GB</p>
</li>
<li @click="turnPage('phoneVideoIndex')">
<img src="../../static/images/shipin.png" alt="">
<p>深海视频音像图元待开发</p>
<p class="sourceData">数据集<span>-</span> &nbsp;&nbsp;&nbsp;体量<span>-</span> GB</p>
</li>
</ul>
</div>
</div>
<div class="shuju2">
<div class="shuju2_top cursor" @click="turnPage('physicalDataSearchCTD')">
<img src="../../static/images/shuju1.png" alt="">
</div>
<div class="shuju2_con">
<div class="swiper-visualization wow fadeInUp">
<div class="swiper-visualization-box">
<swiper ref="visualizationSwiper" :options="swiperOptions">
<swiper-slide
v-for="(item, index) in visualizationList"
:key="index"
>
<div class="pic">
<img :src="item.pic" alt="">
</div>
<div class="txt">
<p>0{{ index + 1 }}</p>
<div class="txt1">
<p>{{ item.title }}</p>
<span>{{ item.des }}</span>
</div>
</div>
<div class="mask" />
</swiper-slide>
</swiper>
<div class="swiper-arrow swiper-prev" />
<div class="swiper-arrow swiper-next" />
</div>
</div>
</div>
</div>
</div>
<div class="dongtai">
<el-row>
<el-col :span="12">
<div class="dongtai_top">
<img src="../../static/images/shuju3.png" alt="">
</div>
</el-col>
<el-col :span="12">
<div class="dongtai_top">
<img src="../../static/images/shuju4.png" alt="">
</div>
</el-col>
</el-row>
<div class="dongtai_bot">
<ul>
<li v-for="(item, index) in list" :key="index" @click="turnPage('news')">
<div class="date">
<p>{{ item.day }}</p>
<span>{{ item.date }}</span>
</div>
<div class="des">
<p>{{ item.title }}</p>
<span>{{ item.des }}</span>
</div>
</li>
</ul>
</div>
</div>
<div class="gongju">
<div class="gongju_top">
<img src="../../static/images/shuju5.png" alt="">
</div>
<div class="gongju_con">
<ul>
<li @click="turnPage('http://10.0.82.239/analysisTools/index','url')">
<img src="../../static/images/mofang.png" alt="">
<p>blast基因分析工具</p>
</li>
<li @click="turnPage('http://10.0.82.239/analysisTools/index','url')">
<img src="../../static/images/mofang.png" alt="">
<p>温盐深分析工具</p>
</li>
<li @click="turnPage('http://10.0.82.239/analysisTools/index','url')">
<img src="../../static/images/mofang.png" alt="">
<p>影像数据物种智能识别</p>
</li>
<li @click="turnPage('http://10.0.82.239/analysisTools/index','url')">
<img src="../../static/images/mofang.png" alt="">
<p>海洋物理生态耦合模式分析</p>
</li>
</ul>
</div>
</div>
</div>
</template>
<script>
import * as echarts from 'echarts'
import { getVoyage, getVoyageLine
} from '@/api/home'
require('echarts/extension/bmap/bmap')
import { swiper, swiperSlide } from 'vue-awesome-swiper'
import 'swiper/swiper-bundle.css'
/* 初始化变量 */
var viewer
var stationArrList = [] // 收集所有的棋子实例
var stationPrev = '' // 记录上一次点击的站位
var handler = ''
var ellipsoid = null
var elevation_show = document.getElementById('elevation_show') // 水深
var altitude_show = document.getElementById('altitude_show') // 视角高
export default {
name: 'Index',
components: {
swiper,
swiperSlide
},
data() {
return {
movementTimer:null,
iconImgW:require("../../static/images/14-w.png"),
map: null,
visualizationList: [
{
pic: require('../../static/images/shuju2_bg2.png'),
title: '专业数据分析',
des: '载人深潜温盐深数据'
},
{
pic: require('../../static/images/shuju2_bg.png'),
title: '服务资助航次',
des: '深海技术创新中心共享航次'
},
{
pic: require('../../static/images/shuju2_bg3.png'),
title: '支撑大科学计划',
des: '应急搜捞应用'
}
],
swiperOptions: {
loop: true,
loopAdditionalSlides: 3,
initialSlide: 1,
spaceBetween: 35,
navigation: {
nextEl: '.swiper-visualization .swiper-next',
prevEl: '.swiper-visualization .swiper-prev'
},
breakpoints: {
768: {
spaceBetween: 10
}
}
},
chooseIndex: 0,
didian: [
// { name: 'TS2-17' },
// { name: 'TS2-18' },
// { name: 'TS2-19' },
// { name: 'TS2-20' },
// { name: 'TS2-21' },
// { name: 'TS2-22' },
// { name: 'TS2-23' },
// { name: 'TS2-24' },
// { name: 'TS2-25' },
// { name: 'TS2-26' },
// { name: 'TS2-27' },
// { name: 'TS2-28' }
],
option: {},
list: [
{
title:
'深海工程菌SS-DY31-Ⅱ-W1306-BC-1 样品数据发布包含4个目、7个科、15个属的共1232个样品数据。',
des: '海底热液循环可以改变海水和洋壳的化学组成,也会影响洋壳的增生和冷却过程,对于理解...',
day: '25',
date: '2023-03'
},
{
title:
'深海工程菌SS-DY31-Ⅱ-W1306-BC-1 样品数据发布包含4个目、7个科、15个属的共1232个样品数据。',
des: '海底热液循环可以改变海水和洋壳的化学组成,也会影响洋壳的增生和冷却过程,对于理解...',
day: '25',
date: '2023-03'
},
{
title:
'深海工程菌SS-DY31-Ⅱ-W1306-BC-1 样品数据发布包含4个目、7个科、15个属的共1232个样品数据。',
des: '海底热液循环可以改变海水和洋壳的化学组成,也会影响洋壳的增生和冷却过程,对于理解...',
day: '25',
date: '2023-03'
},
{
title:
'深海工程菌SS-DY31-Ⅱ-W1306-BC-1 样品数据发布包含4个目、7个科、15个属的共1232个样品数据。',
des: '海底热液循环可以改变海水和洋壳的化学组成,也会影响洋壳的增生和冷却过程,对于理解...',
day: '25',
date: '2023-03'
},
{
title:
'深海工程菌SS-DY31-Ⅱ-W1306-BC-1 样品数据发布包含4个目、7个科、15个属的共1232个样品数据。',
des: '海底热液循环可以改变海水和洋壳的化学组成,也会影响洋壳的增生和冷却过程,对于理解...',
day: '25',
date: '2023-03'
},
{
title:
'深海工程菌SS-DY31-Ⅱ-W1306-BC-1 样品数据发布包含4个目、7个科、15个属的共1232个样品数据。',
des: '海底热液循环可以改变海水和洋壳的化学组成,也会影响洋壳的增生和冷却过程,对于理解...',
day: '25',
date: '2023-03'
}
]
}
},
computed: {
swiper() {
return this.$refs.visualizationSwiper.swiper
}
},
mounted() {
this.init()
// // 引入百度地图 JavaScript API
// const AK = 'uu7pXHZLZOejrWXyTK2lVMHASObAg8Fz'; // 替换为您的百度地图 AK
// const BMapURL = `https://api.map.baidu.com/api?v=2.0&ak=${AK}&callback=onBMapCallback`;
// const script = document.createElement('script');
// script.type = 'text/javascript';
// script.src = BMapURL;
// // script.onerror = reject;
// document.head.appendChild(script);
// // 初始化地图
// window.onBMapCallback = () => {
// const map = new window.BMap.Map(this.$refs.map);
// const point = new window.BMap.Point(107.590814, 19.532274);
// map.centerAndZoom(point, 15);
// map.setMapType(window.BMAP_SATELLITE_MAP); // 设置地图类型为卫星模式
// map.enableScrollWheelZoom(false);
// };
},
methods: {
async init(){
await this.fetchCapabilities()
this.getAllVoyage()
},
turnPage(val, a) {
if (!a) {
this.$router.push({ name: val })
} else {
window.open(val, '_blank')
}
},
allBtn() {
this.chooseIndex = -1
},
clearBtn() {
this.chooseIndex = -1
this.drawMap([])
},
fetchCapabilities() {
Cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJkY2Y5NWY2Ni1mODQ1LTQ3YTUtYjc4Zi1jYzhjMGI2YzcxMWYiLCJpZCI6MTI5ODMwLCJpYXQiOjE2Nzk0Njk5NTd9.DTH54ioOH-HLqeNIetBe9hFyrPOX2Vp1AQmZzw8TIZ4'
let earthMap = new Cesium.WebMapTileServiceImageryProvider({
url: 'http://124.16.219.154:8080/geoserver/gwc/service/wmts/rest/ne:gmrt_20231018/{TileMatrixSet}/{TileMatrixSet}:{TileMatrix}/{TileRow}/{TileCol}?format=image/jpeg',
layer: 'ne:gmrt_20231018',
style: 'default',
tileMatrixSetID: 'EPSG:4326',
format: 'image/jpeg',
tilingScheme: new Cesium.GeographicTilingScheme()
});
viewer = new Cesium.Viewer('map', {
sceneMode:Cesium.SceneMode.SCENE2D,
shadows: false,
timeline: false,
baseLayerPicker: false,
fullscreenButton: false,
selectionIndicator: false,
homeButton: false,
animation: false,
infoBox: false,
geocoder: false,
navigationHelpButton: false,
imageryProvider: earthMap
});
viewer._cesiumWidget._creditContainer.style.display = 'none'
viewer.scene.sun.show = false
viewer.scene.moon.show = false
viewer.scene.fog.enabled = false
viewer.scene.skyAtmosphere.show = false
viewer.scene.sun.show = false
viewer.scene.skyBox.show = false
viewer.scene.globe.enableLighting = false;
viewer.shadowMap.darkness=0.8;
viewer.scene._sunBloom = false
viewer.scene.globe.showGroundAtmosphere = false;
let coastline = new Cesium.WebMapTileServiceImageryProvider(
{
url: 'http://124.16.219.154:8080/geoserver/gwc/service/wmts/rest/ne:GSHHS_f_L1/{TileMatrixSet}/{TileMatrixSet}:{TileMatrix}/{TileRow}/{TileCol}?format=image/png',
layer: 'ne:GSHHS_f_L1',
style: 'default',
tileMatrixSetID: 'EPSG:4326',
format: 'image/png',
tilingScheme: new Cesium.GeographicTilingScheme()
}
);
viewer.imageryLayers.addImageryProvider(coastline);
Cesium.Camera.DEFAULT_VIEW_RECTANGLE = Cesium.Rectangle.fromDegrees(104.479207, 14.209234, 114.479207, 22.209234);
viewer.camera.flyHome();
handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
handler.setInputAction(function (wheelment) {
var height = viewer.camera.positionCartographic.height;
console.log(height)
if (height > 16576914.758292207) {
viewer.camera.setView({
destination: Cesium.Cartesian3.fromRadians(viewer.camera.positionCartographic.longitude, viewer.camera.positionCartographic.latitude, 16576914.758292207)
});
}
},Cesium.ScreenSpaceEventType.WHEEL);
viewer.scene.screenSpaceCameraController.enableZoom = true;
},
drawMap(dataList){
// const dataList = [
// {
// lat: 18.23400,
// lon: 109.49100,
// time: '2023-09-18-21:58:35'
// },
// { lon: 109.48983, time: '2023-09-18-21:59:26', lat: 18.23417 },
// { lon: 109.48867, time: '2023-09-18-22:00:06', lat: 18.23417 }
// ]
if(dataList.length){
let degreeArr=[]
for (var i = 0; i < dataList.length; i++) {
this.stationData({lat:Number(dataList[i].lat),lon:Number(dataList[i].lon),time:dataList[i].time}, i);
degreeArr=[]
if(i<dataList.length-1){
degreeArr.push(Number(dataList[i].lon),Number(dataList[i].lat),Number(dataList[i+1].lon),Number(dataList[i+1].lat))
this.drawLine(degreeArr);
}
}
}else{
var entitys = viewer.entities._entities._array;
let length = entitys.length;
for(let i=0;i<length; i++){
let item = entitys[0];
viewer.entities.remove(item)
}
}
},
/* cesium 绘制线 */
drawLine(degreeArr, sourceId, textName) {
viewer.entities.add({
polyline: { //polyline折线实体
positions: Cesium.Cartesian3.fromDegreesArray(degreeArr),//位置
width: 20,//折线宽度
material: new Cesium.PolylineArrowMaterialProperty(
// glowPower: 0.2,//发光的强度,值为线宽的百分比(0-1.0)
// Cesium.Color.BLUE //发光的颜色
new Cesium.Color.fromCssColorString('#ff9000')
),//材质
clampToGround: true, //地表层高度模式,
zIndex: 1000
}
});
},
//数据集站位
stationData(data, index) {
var lon = data.lon == 0 ? data.lon : data.lon;
var lat = data.lat == 0 ? data.lat : data.lat;
// var id = data.id; //
// var shipId = data.shipId; // 航次Id
// var stationNum = data.stationNum; //站位号
var diveNum = data.time; //潜次编号
// var sampleNo = data.time//编号
viewer.entities.add({
id: index,
description:data,
// name: diveNum,
position: Cesium.Cartesian3.fromDegrees(lon, lat),
//位置
label: { //文字标签
// text: diveNum,
font: '700 16px Arial',
fillColor: Cesium.Color.WHITE,//填充颜色
outlineColor: Cesium.Color.BLACK,//轮廓颜色
outlineWidth: 3,
verticalOrigin: Cesium.VerticalOrigin.BOTTOM,//垂直方向以底部来计算标签的位置
pixelOffset: new Cesium.Cartesian2(0, 50), //偏移量
style: Cesium.LabelStyle.FILL_AND_OUTLINE, //FILL不要轮廓 , OUTLINE只要轮廓,FILL_AND_OUTLINE轮廓加填充
horizontalOrigin:Cesium.HorizontalOrigin.CENTER, //确定文字在坐标点的位置, CENTER RIGHT LEFT
// showBackground:true,    //是否显示背景色,就是文字后面的阴影
// backgroundColor: new Cesium.Color.fromCssColorString('#141414'),
},
billboard: { //图标
image: this.iconImgW,
scale: 1,
}
});
this.addbounced()
// viewer.zoomTo(viewer.entities); //zoomTo方法可以立即定位到某个位置 */
// if (index === 0) {
// stationPrev = index;
// viewer.camera.flyTo({
// destination: Cesium.Cartesian3.fromDegrees(lon, lat, 300000)
// });
// }
},
// 移动事件
addbounced() {
let _this=this
var scene = viewer.scene;
var num = {};
this.movementTimer = null;
ellipsoid = viewer.scene.globe.ellipsoid;
// 创建移动事件
handler.setInputAction(function (movement) {
if (scene.mode !== Cesium.SceneMode.MORPHING) {
let pickedObject = scene.pick(movement.endPosition);
if (
scene.pickPositionSupported &&
Cesium.defined(pickedObject) &&
pickedObject.id !== ""&&
pickedObject.id._description
) {
$(".son").html("");//每次弹出时先清空
var windowPosition = movement.startPosition;//获取屏幕坐标
num.x = windowPosition.x + 50 + document.getElementById("map").offsetLeft;
num.y = windowPosition.y + 50;
//获取弹出框需要显示的内容,为创建时的 description 属性
var todo = pickedObject.id._description._value;
//修改弹出框
$(".son").css("display", "block");
$(".son").css("left", num.x);
$(".son").css("top", num.y);
// 内容
//es6模板字符串
var addHtml = `
<p>经度°${todo.lon}</p>
<p>纬度°${todo.lat}</p>
<p>时间${todo.time}</p>`;
$(".son").append(addHtml);
} else {
$(".son").html("");
$(".son").css("display", "none");
}
}
}, Cesium.ScreenSpaceEventType.MOUSE_MOVE)
},
async tochoose(e) {
this.chooseIndex = e
const voyageName = this.didian[e]
try {
const res = await getVoyageLine(voyageName)
if (res.code == 200) {
// this.getMap(res.data)
this.drawMap(res.data)
} else {
// this.getMap([])
this.drawMap([])
this.$message({
message: res.message,
type: "warning",
})
}
} catch (error) {
console.log(error)
}
},
async getMap(list) {
// 计算停留地
// const list = [
// {
// lat: '18.23400',
// lon: '109.49100',
// time: '2023-09-18-21:58:35'
// },
// { lon: '109.48983', time: '2023-09-18-21:59:26', lat: '18.23417' },
// { lon: '109.48867', time: '2023-09-18-22:00:06', lat: '18.23417' }
// ]
// 轨迹
const convertData1 = function(list) {
var res = []
list.map((item, index) => {
res.push({
name: '科考点' + (index + 1),
value: [item.lon, item.lat, item.time]
})
})
return res
}
const data1 = convertData1(list)
const convertLine = function(arr) {
var res = []; var obj = {}
for (var i = 0; i < arr.length; i++) {
if (i < arr.length - 1) {
obj = {
fromName: arr[i].name,
toName: arr[i + 1].name,
coords: []
}
obj.coords.push(arr[i].value, arr[i + 1].value)
res.push(obj)
}
}
return res
}
const moveLine = {
normal: convertLine(data1)
}
var chartDom = document.getElementById('cdc-track')
var myChart = this.$echarts.init(chartDom)
var option
option = {
tooltip: {
trigger: 'item'
},
bmap: {
// 百度地图的设置
center: [108.515278, 20.017767],
zoom: 8, // 缩放比例
roam: true // 是否可以缩放
},
series: [
{
name: '停留点',
type: 'effectScatter', // 涟漪效果
coordinateSystem: 'bmap', // 依赖的坐标轴
data: data1, // 获取的数据
symbolSize: 10, // 散点的大小
encode: {
value: 2
},
showEffectOn: 'render', // 散点涟漪的样式
rippleEffect: {
brushType: 'stroke'
},
label: {
// 显示文字
formatter: '{b}',
position: 'right',
show: false,
color: 'black',
// textBorderColor: '#3cb371', // 文字本身的描边颜色string。
// textBorderWidth: 2, // 文字本身的描边宽度number。
textShadowColor: 'white', // 文字本身的阴影颜色string。
textShadowBlur: 2, // 文字本身的阴影长度number。
textShadowOffsetX: 2, // 文字本身的阴影 X 偏移number。
textShadowOffsetY: 3 // 文字本身的阴影 Y 偏移number。
},
itemStyle: {
color: '#fcf67b',
shadowBlur: 10,
shadowColor: '#333'
},
emphasis: {
scale: true
},
tooltip: {
show: true,
// position: [350, 350],
padding: [5, 12],
backgroundColor: 'rgba(0,23,45,0.9)',
borderColor: 'rgba(1,97,153,0.9)',
borderWidth: 1,
textStyle: { fontSize: 14, lineHeight: 22, color: '#ffffff' },
formatter: function(params) {
return (
params.name +
'<br>' +
'<br>经度(°):' +
params.value[0] +
'<br>纬度(°):' +
params.value[1] +
'<br>时间:' +
params.value[2]
// +
// '<br>航迹向56°' +
// '<br>航艏向256°' +
// '<br>航速56KM' +
// '<br>状态:停泊' +
// '<br>更新时间2023-3-14 22:15:20'
)
}
},
zlevel: 10
},
// 射线样式
{
type: 'lines',
tooltip: {
show: false
},
coordinateSystem: 'bmap',
zlevel: 2, // 数值越大越在上面
large: true,
symbol: ['none', 'arrow'],
effect: {
show: true,
period: 6,
constantSpeed: 30,
trailLength: 0,
symbolSize: 3 // 圆点大小
},
lineStyle: {
// 线条颜色
color: '#fcf67b',
width: 2,
opacity: 1,
curveness: 0
},
data: moveLine.normal
}
]
}
option && myChart.setOption(option)
},
async getAllVoyage() {
try {
const res = await getVoyage()
if (res.code == 200) {
this.didian = res.data
this.tochoose(0)
}
} catch (error) {
console.log(error)
}
}
}
}
</script>
<style scoped lang="scss">
.index {
width: 100%;
height: 100%;
background: #ecf2f4;
.banner {
width: 100%;
height: 700px;
position: relative;
img {
width: 100%;
height: 100%;
}
.banner_con {
position: absolute;
left: 0;
top: 35%;
z-index: 999;
width: 100%;
height: auto;
display: flex;
flex-direction: column;
align-items: center;
.banner_top {
margin-bottom: 6%;
width: 80%;
height: auto;
display: flex;
flex-direction: column;
p {
font-size: 21px;
color: #fff;
line-height: 36px;
}
}
.banner_bot {
width: 80%;
height: 150px;
border-radius: 10px;
background: rgba($color: #fff, $alpha: 0.3);
box-sizing: border-box;
padding: 25px;
display: flex;
align-items: center;
justify-content: space-between;
.bot_left {
width: 35%;
height: 100%;
display: flex;
flex-direction: column;
border-right: 1px solid rgba($color: #fff, $alpha: 0.3);
.left1 {
width: 100%;
height: 100%;
text-align: center;
p {
font-size: 16px;
color: #fff;
}
}
.left2 {
width: 100%;
height: auto;
display: flex;
align-items: center;
justify-content: center;
.left2_1 {
display: flex;
flex-direction: column;
align-items: center;
width: 40%;
height: auto;
p {
font-size: 34px;
color: #fff;
font-weight: bold;
line-height: 40px;
font-family: DIN-Bold;
}
span {
margin-top: 8px;
font-size: 14px;
color: #fff;
}
}
}
}
.bot_right {
width: 62%;
height: 100%;
display: flex;
align-items: center;
flex-direction: column;
.right1 {
width: 100%;
height: 100%;
text-align: center;
p {
font-size: 16px;
color: #fff;
}
}
.right2 {
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: space-around;
.right2_1 {
width: 20%;
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
p {
font-size: 34px;
color: #fff;
font-weight: bold;
line-height: 40px;
font-family: DIN-Bold;
}
span {
margin-top: 8px;
font-size: 14px;
color: #fff;
}
}
}
}
}
}
}
.guiji {
width: 100%;
height: auto;
margin: 70px 0;
margin-bottom: 0;
display: flex;
flex-direction: column;
align-items: center;
.guiji_1 {
margin-bottom: 20px;
width: 100%;
height: auto;
display: flex;
align-items: center;
justify-content: center;
img {
width: auto;
}
}
.guiji_2 {
position: relative;
width: 100%;
height: 800px;
.daohang {
position: absolute;
top: 50px;
left: 25%;
width: 50%;
height: 60px;
background: rgba($color: #000, $alpha: 0.7);
border-radius: 10px;
z-index: 8888;
overflow: hidden;
ul {
width: 100%;
height: 60px;
box-sizing: border-box;
padding-left: 15px;
display: flex;
align-items: center;
overflow: auto;
&::-webkit-scrollbar {
width: 8px;
height: 8px;
}
/* 滚动槽 */
&::-webkit-scrollbar-track {
-webkit-box-shadow: inset006pxrgba(0, 0, 0, 0.3);
border-radius: 10px;
background: #010e32;
}
/* 滚动条滑块 */
&::-webkit-scrollbar-thumb {
border-radius: 10px;
/* background:rgba(0,0,0,0.3); */
background: #203e86;
-webkit-box-shadow: inset006pxrgba(0, 0, 0, 0.5);
}
li {
// margin-right: 20px;
width: 120px;
height: 50px;
white-space: nowrap;
&.active {
a {
background: #0a84c1;
}
}
a {
display: block;
line-height: 40px;
margin-top: 5px;
height: 40px;
font-size: 15px;
color: #fff;
padding: 0 15px;
border-radius: 5px;
}
}
}
}
img {
width: 100%;
height: 100%;
}
}
}
.shuju {
padding-bottom: 170px;
padding-top: 70px;
width: 100%;
height: auto;
background: url(../../static/images/secBg.jpg) center no-repeat;
background-size: 100% 100%;
.shuju1 {
width: 100%;
height: auto;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
margin-bottom: 70px;
.shuju1_top {
margin-bottom: 50px;
width: 100%;
height: auto;
display: flex;
align-items: center;
justify-content: center;
img {
width: auto;
}
}
.shuju1_con {
width: 85%;
height: 390px;
ul {
width: 100%;
height: 390px;
display: flex;
align-items: center;
justify-content: space-between;
li {
position: relative;
width: 18%;
height: 340px;
border-radius: 10px;
overflow: hidden;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
cursor: pointer;
transition: all 0.35s;
&::after {
display: none;
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba($color: #0a84c1, $alpha: 0.5);
}
&:hover {
height: 390px;
&::after {
display: block;
}
}
&:first-child {
background: url(../../static/images/diqiu_bg.png) center no-repeat;
background-size: cover;
}
&:nth-child(2) {
background: url(../../static/images/diqiu_bg1.png) center no-repeat;
background-size: cover;
}
&:nth-child(3) {
background: url(../../static/images/dizhi_bg.png) center no-repeat;
background-size: cover;
}
&:nth-child(4) {
background: url(../../static/images/dongwu_bg.png) center no-repeat;
background-size: cover;
}
&:nth-child(5) {
background: url(../../static/images/shipin_bg.png) center no-repeat;
background-size: cover;
}
img {
position: relative;
z-index: 99;
width: auto;
height: auto;
margin-bottom: 15px;
}
p {
position: relative;
z-index: 99;
width: 70%;
font-size: 20px;
color: #fff;
text-align: center;
}
.sourceData{
padding-top:55px;
width: 96%;
font-size: 14px;
color: #fff;
}
}
}
}
}
.shuju2 {
width: 100%;
height: auto;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
margin-bottom: 70px;
.shuju2_top {
margin-bottom: 50px;
width: 100%;
height: auto;
display: flex;
align-items: center;
justify-content: center;
img {
width: auto;
}
}
.shuju2_con {
width: 100%;
height: auto;
position: relative;
.swiper-visualization {
overflow: hidden;
padding: 40px 0;
.swiper-visualization-box {
position: relative;
width: 883px;
margin: 0 auto;
.swiper-arrow {
position: absolute;
width: 62px;
height: 62px;
top: 224px;
background-repeat: no-repeat;
// border: 2px solid #ffffff;
background-position: center;
z-index: 2;
cursor: pointer;
}
.swiper-prev {
left: -50px;
background-image: url(../../static/images/arrow-left.png);
}
.swiper-next {
right: -50px;
background-image: url(../../static/images/arrow-right.png);
}
.swiper-container {
overflow: visible;
.swiper-slide {
position: relative;
opacity: 0.6;
transform: scale(0.9);
.pic {
display: block;
position: relative;
padding-top: 55.28%;
border: 2px solid #ffffff;
box-shadow: 0px 0px 40px 0px rgba(0, 0, 0, 0.22);
img {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
}
}
.txt {
position: absolute;
top: 5%;
left: 5%;
z-index: 10;
font-weight: bold;
display: flex;
flex-direction: column;
justify-content: center;
align-items: baseline;
font-size: 22px;
padding: 52px 0 40px;
opacity: 0.3;
p {
font-size: 60px;
color: #fff;
}
.txt1 {
margin-top: 50px;
display: flex;
flex-direction: column;
p {
font-size: 36px;
color: #fff;
}
span {
font-size: 28px;
color: #fff;
}
}
}
.mask {
position: absolute;
width: 1083px;
height: 186px;
bottom: -40px;
left: -109px;
right: 0;
// background: url(~@/assets/images/daoying.png) no-repeat center /
// cover;
// opacity: 0;
}
}
.swiper-slide-active {
opacity: 1;
transform: scale(1);
.txt,
.mask {
opacity: 1;
}
}
}
}
}
}
}
}
.dongtai {
margin-top: -180px;
width: 100%;
height: auto;
display: flex;
flex-direction: column;
align-items: center;
.el-row{
width:92%;
}
.dongtai_top {
width: 100%;
height: auto;
margin-bottom: 50px;
display: flex;
align-items: center;
justify-content: center;
img {
width: auto;
}
}
.dongtai_bot {
width: 85%;
height: auto;
ul {
width: 100%;
height: auto;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
li {
margin-bottom: 35px;
width: 48%;
height: 170px;
background: #fff;
border-radius: 10px;
box-sizing: border-box;
padding: 25px;
display: flex;
align-items: center;
box-shadow: 0 0 5px #ccc;
cursor: pointer;
transition: all 0.35s;
&:hover {
box-shadow: 0 10px 15px #ccc;
.date {
background: #13a1f0;
p {
color: #fff;
}
span {
color: #fff;
}
}
.des {
p {
color: #13a1f0;
}
}
}
.date {
margin-right: 30px;
width: 100px;
height: 100px;
border-radius: 10px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
background: #ebeff5;
p {
font-size: 32px;
color: #02203c;
line-height: 35px;
font-family: DIN-Bold;
}
span {
color: #02203c;
font-size: 16px;
font-family: DIN-Bold;
}
}
.des {
width: 85%;
height: 100px;
display: flex;
flex-direction: column;
align-items: baseline;
justify-content: space-between;
p {
font-size: 18px;
color: #212121;
font-weight: bold;
}
span {
font-size: 14px;
color: #999;
}
}
}
}
}
}
.gongju {
margin-top: 60px;
margin-bottom: 70px;
height: auto;
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
.gongju_top {
margin-bottom: 30px;
width: 100%;
height: auto;
display: flex;
align-items: center;
justify-content: center;
img {
width: auto;
}
}
.gongju_con {
width: 85%;
height: 240px;
ul {
width: 100%;
height: 240px;
display: flex;
align-items: center;
justify-content: space-between;
li {
cursor: pointer;
width: 23%;
height: 240px;
border-radius: 5px;
background: url(../../static/images/sanBg.png) center no-repeat;
background-size: 100% 100%;
overflow: hidden;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
img {
width: auto;
height: auto;
display: block;
margin-bottom: 20px;
}
p {
font-size: 18px;
color: #fff;
}
}
}
}
}
}
</style>
<style>
.BMap_cpyCtrl {
display: none;
}
.son{
position: absolute;
left: 1450px;
top: 418px;
background-color: #062f59c7;
color: rgb(253, 253, 253);
border-radius: 10px;
padding: 20px;
border:1px solid #7ba9cacf;
font-size: 12px;
z-index: 1000;
}
.cesium-viewer-bottom{
display: none !important;
}
#map{
position: relative;
}
</style>