Files
fad-dashboard/frontend/packages/Layout/BigScreenHomeLayout/index.vue
2025-11-08 10:38:36 +08:00

236 lines
5.2 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="big-screen-home-wrap">
<header class="big-screen-home-wrap-top">
<div class="logo-title">
<img
class="logo"
:src="logo"
>
<span>{{ title }}</span><span style="font-size: 18px;margin-left: 8px">2.x</span>
</div>
<div class="big-screen-nav-container">
<Nav
:navs="tabList"
@change="changeTab"
/>
</div>
<a
v-if="giteeSvg && giteeHref"
class="fork-me-on-gitee"
:href="giteeHref"
target="_blank"
>
<img
:src="giteeSvg"
alt="Fork me on Gitee"
>
</a>
</header>
<div class="big-screen-router-view-wrap">
<keep-alive>
<router-view />
</keep-alive>
</div>
</div>
</template>
<script>
import Nav from './NavTop.vue'
// import Nav from './Nav.vue'
export default {
name: 'BigScreenHome',
components: {
Nav
},
props: [],
data () {
return {
// 和此处路由保持一致将会激活tab请按需更改
giteeHref: '',
giteeSvg: ''
}
},
computed: {
title () {
if (this.$route.query.edit) return '大屏设计器'
return window?.BS_CONFIG?.starter?.title ?? 'DataRoom大屏设计器'
},
logo () {
return window?.BS_CONFIG?.starter?.logo ?? require('./images/logo.png')
},
tabList () {
if (this.$route.query.edit) {
return [
{
id: 1,
name: '资源库',
path: window?.BS_CONFIG?.routers?.sourceUrl || '/big-screen-source',
icon: 'icon-tupian'
},
{
id: 2,
name: '组件库',
path: window?.BS_CONFIG?.routers?.componentUrl || '/big-screen-components',
icon: 'icon-zujian1'
}
]
}
return [
{
id: 0,
name: '大屏管理',
path: window?.BS_CONFIG?.routers?.pageListUrl || '/big-screen-list',
icon: 'icon-icon-shujudaping'
},
// {
// id: 1,
// name: '模版管理',
// path: window?.BS_CONFIG?.routers?.templateListUrl || '/big-screen-template',
// icon: 'icon-xiangmuwenjianmobanku_mobanku'
// },
{
id: 1,
name: '资源库',
path: window?.BS_CONFIG?.routers?.sourceUrl || '/big-screen-source',
icon: 'icon-tupian'
},
{
id: 2,
name: '组件库',
path: window?.BS_CONFIG?.routers?.componentUrl || '/big-screen-components',
icon: 'icon-zujian1'
},
{
id: 3,
name: '数据源管理',
path:
window?.BS_CONFIG?.routers?.dataSourceUrl ||
'/big-screen-dataSource',
icon: 'icon-datafull'
},
{
id: 4,
name: '数据集管理',
path: window?.BS_CONFIG?.routers?.dataSetUrl || '/big-screen-dataSet',
icon: 'icon-data'
},
{
id: 5,
name: '地图数据管理',
path: '/big-screen-map-data',
icon: 'icon-data'
}
]
}
},
created () {
document.title = this.title
},
mounted () {
this.giteeHref = 'https://gitee.com/gcpaas/DataRoom'
this.giteeSvg = 'https://gitee.com/gcpaas/DataRoom/widgets/widget_1.svg?color=007bff'
},
methods: {
changeTab (tab) {
if (this.$route.query.edit) {
this.$router.push({
path: tab.path,
query: { edit: 1 }
})
} else {
this.$router.push({
path: tab.path
})
}
}
}
}
</script>
<style lang="scss" scoped>
.big-screen-home-wrap > * {
box-sizing: border-box;
}
.big-screen-home-wrap {
height: 100%;
.big-screen-home-wrap-top {
position: fixed;
top: 0;
width: 100%;
height: 150px;
background-image: url('./images/nav_img.png');
background-size: 100% 150px;
background-color: #0D0F12;
background-position: center right;
.logo-title {
// 禁用可选
user-select: none;
font-size: 30px;
position: absolute;
z-index: 23;
top: 40px;
left: 40px;
display: flex;
align-items: center;
color: var(--bs-el-color-primary);
.logo {
height: 30px;
}
span {
font-family: Source Han Sans CN;
font-size: 30px;
font-weight: 700;
padding-left: 8px;
-webkit-background-clip: text;
background-size: 400% 400%;
}
}
}
.big-screen-router-view-wrap {
position: absolute;
top: 150px;
overflow: hidden;
// padding-top: 16px;
width: 100%;
height: calc(100vh - 150px);
background-color: var(--bs-background-1);
box-sizing: border-box;
padding-top: 16px;
padding-right: 16px;
padding-bottom: 16px;
}
}
@keyframes text-animate {
0% {
background-position: 0 0;
-webkit-background-clip: text;
}
50% {
background-position: 0 0;
-webkit-background-clip: text;
}
100% {
background-position: 0 0;
-webkit-background-clip: text;
}
}
.fork-me-on-gitee{
position: absolute;
top: 0;
right: 0;
z-index: 999;
img{
width: 120px;
height: 120px;
}
}
</style>