204 lines
5.1 KiB
Vue
204 lines
5.1 KiB
Vue
<template>
|
|
<!-- :style="{ 'background-image': 'url(' + getAssetsFile('images/vsualized/screenbg.png') + ')' }" -->
|
|
<div class="data-warp" :style="{ 'background-image': 'url(' + getAssetsFile('images/vsualized/screenbg.png') + ')' }">
|
|
<div class="chart-content">
|
|
<div class="top">
|
|
<custom-scroll-title :titles="titles" @change-title="handleChangeTitle" />
|
|
</div>
|
|
<div class="content">
|
|
<slot name="center"></slot>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
<script setup>
|
|
import { getAssetsFile } from '@/utils';
|
|
import { ref } from 'vue';
|
|
import { useRouter } from 'vue-router';
|
|
const router = useRouter();
|
|
const props = defineProps({
|
|
nameVal: {
|
|
type: String,
|
|
default: 'home',
|
|
},
|
|
topTitle: {
|
|
type: String,
|
|
default: '系统',
|
|
},
|
|
});
|
|
|
|
const titles = ref([
|
|
// { label: '首页', value: 'home' },
|
|
{ label: '土地资源', value: 'land' },
|
|
{ label: '投入品', value: 'inputs' },
|
|
{ label: '生产经营主体', value: 'entities' },
|
|
// { label: '智慧种植监测', value: 'plant' },
|
|
// { label: '智慧养殖监测', value: 'breed' },
|
|
{ label: '生产经营主体', value: 'business' },
|
|
{ label: '农产品溯源', value: 'trace' },
|
|
// { label: '产业预警决策', value: 'early' },
|
|
]);
|
|
function handleChangeTitle(name) {
|
|
router.push({ name: name });
|
|
}
|
|
</script>
|
|
<style lang="scss" scoped>
|
|
div {
|
|
box-sizing: border-box;
|
|
}
|
|
.data-warp {
|
|
width: 100%;
|
|
height: 100vh;
|
|
background-size: 100% 100%;
|
|
|
|
.chart-content {
|
|
width: 100%;
|
|
height: 100vh;
|
|
z-index: 1;
|
|
position: absolute;
|
|
left: 0;
|
|
top: 0;
|
|
.content,
|
|
.bottom {
|
|
width: 100%;
|
|
padding: 0 16px;
|
|
background-size: cover;
|
|
display: inline-flex;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
}
|
|
.top {
|
|
height: 60px;
|
|
.top-content-warp {
|
|
width: 100%;
|
|
height: 100%;
|
|
background-size: 100% 100%;
|
|
background-repeat: no-repeat;
|
|
.top-left,
|
|
.top-content,
|
|
.top-right {
|
|
display: inline-block;
|
|
vertical-align: middle;
|
|
}
|
|
.top-content {
|
|
width: calc(100% - 400px);
|
|
height: 100%;
|
|
display: inline-flex;
|
|
justify-content: center;
|
|
flex-direction: column;
|
|
.top-content-p {
|
|
width: 100%;
|
|
}
|
|
.title,
|
|
.b-nav-l,
|
|
.b-nav-r {
|
|
display: inline-block;
|
|
vertical-align: middle;
|
|
}
|
|
.b-nav-l,
|
|
.b-nav-r {
|
|
width: calc((100% - 300px) / 2);
|
|
}
|
|
.b-nav-r {
|
|
text-align: right;
|
|
}
|
|
.title {
|
|
width: 300px;
|
|
line-height: 38px;
|
|
text-align: center;
|
|
font-size: 22px;
|
|
font-weight: bold;
|
|
transform: skewX(-8deg);
|
|
background: linear-gradient(to bottom, '#ff7e5f', '#548fff');
|
|
-webkit-background-clip: text;
|
|
color: #fff;
|
|
letter-spacing: 8px;
|
|
text-shadow: -6px 0 0 1px #add8f1;
|
|
max-height: unset !important;
|
|
}
|
|
}
|
|
.b-nav-l,
|
|
.b-nav-r {
|
|
margin: auto;
|
|
display: inline-flex;
|
|
gap: 20px;
|
|
.b-nav-item {
|
|
display: inline-block;
|
|
cursor: pointer;
|
|
min-width: 132px;
|
|
height: 38px;
|
|
text-align: center;
|
|
line-height: 38px;
|
|
span {
|
|
font-size: 14px;
|
|
font-weight: bold;
|
|
display: inline-flex;
|
|
transform: skewX(-8deg);
|
|
background: linear-gradient(to bottom, '#ff7e5f', '#548fff');
|
|
-webkit-background-clip: text;
|
|
|
|
letter-spacing: 4px;
|
|
text-shadow: -2px 0 0 1px #add8f1;
|
|
}
|
|
|
|
&.nav-act {
|
|
color: rgba(255, 255, 255, 1);
|
|
}
|
|
&.nav-normal {
|
|
color: rgba(255, 255, 255, 0.6);
|
|
}
|
|
}
|
|
}
|
|
.top-left {
|
|
width: 200px;
|
|
}
|
|
.top-right {
|
|
text-align: right;
|
|
width: 200px;
|
|
color: #add8f1;
|
|
}
|
|
}
|
|
}
|
|
.bottom {
|
|
height: 80px;
|
|
text-align: center;
|
|
|
|
.b-nav {
|
|
margin: auto;
|
|
display: inline-flex;
|
|
gap: 20px;
|
|
.b-nav-item {
|
|
display: inline-block;
|
|
cursor: pointer;
|
|
min-width: 132px;
|
|
height: 42px;
|
|
text-align: center;
|
|
line-height: 38px;
|
|
span {
|
|
font-size: 14px;
|
|
font-weight: bold;
|
|
display: inline-flex;
|
|
transform: skewX(-8deg);
|
|
background: linear-gradient(to bottom, '#ff7e5f', '#548fff');
|
|
-webkit-background-clip: text;
|
|
|
|
letter-spacing: 4px;
|
|
text-shadow: -2px 0 0 1px #add8f1;
|
|
}
|
|
|
|
&.nav-act {
|
|
color: rgba(255, 255, 255, 1);
|
|
}
|
|
&.nav-normal {
|
|
color: rgba(255, 255, 255, 0.6);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.content {
|
|
height: calc(100% - 70px);
|
|
}
|
|
}
|
|
}
|
|
</style>
|