|
@@ -1,39 +1,25 @@
|
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
|
-import { useRoute } from 'vue-router'
|
|
|
|
|
-import { computed } from 'vue'
|
|
|
|
|
-
|
|
|
|
|
-const route = useRoute()
|
|
|
|
|
|
|
+import PageHeader from '@/components/PageHeader/index.vue'
|
|
|
|
|
+import SubNavigation from '@/components/SubNavigation/index.vue'
|
|
|
|
|
|
|
|
const subMenuItems = [
|
|
const subMenuItems = [
|
|
|
{ path: '/enterprise/public-safety/mapping', title: '测绘' },
|
|
{ path: '/enterprise/public-safety/mapping', title: '测绘' },
|
|
|
{ path: '/enterprise/public-safety/power', title: '电力' },
|
|
{ path: '/enterprise/public-safety/power', title: '电力' },
|
|
|
{ path: '/enterprise/public-safety/oil-gas', title: '石油与天然气' },
|
|
{ path: '/enterprise/public-safety/oil-gas', title: '石油与天然气' },
|
|
|
{ path: '/enterprise/public-safety/water', title: '水利' },
|
|
{ path: '/enterprise/public-safety/water', title: '水利' },
|
|
|
- { path: '/enterprise/public-safety/forestry', title: '林业' }
|
|
|
|
|
|
|
+ { path: '/enterprise/public-safety/forestry', title: '林业' },
|
|
|
]
|
|
]
|
|
|
|
|
|
|
|
-const currentPath = computed(() => route.path)
|
|
|
|
|
</script>
|
|
</script>
|
|
|
|
|
|
|
|
<template>
|
|
<template>
|
|
|
- <div class="public-safety-view">
|
|
|
|
|
- <div class="header">
|
|
|
|
|
- <h1>公共安全解决方案</h1>
|
|
|
|
|
- <p class="description">为公共安全领域提供全面的数字化解决方案</p>
|
|
|
|
|
- </div>
|
|
|
|
|
|
|
+ <div class="page-view">
|
|
|
|
|
+ <PageHeader
|
|
|
|
|
+ title="公共安全解决方案"
|
|
|
|
|
+ description="为公共安全领域提供全面的数字化解决方案"
|
|
|
|
|
+ />
|
|
|
|
|
|
|
|
- <!-- 子菜单导航 -->
|
|
|
|
|
- <nav class="sub-nav">
|
|
|
|
|
- <router-link
|
|
|
|
|
- v-for="item in subMenuItems"
|
|
|
|
|
- :key="item.path"
|
|
|
|
|
- :to="item.path"
|
|
|
|
|
- class="nav-item"
|
|
|
|
|
- :class="{ active: currentPath === item.path }"
|
|
|
|
|
- >
|
|
|
|
|
- {{ item.title }}
|
|
|
|
|
- </router-link>
|
|
|
|
|
- </nav>
|
|
|
|
|
|
|
+ <SubNavigation :items="subMenuItems" />
|
|
|
|
|
|
|
|
<!-- 子路由视图 -->
|
|
<!-- 子路由视图 -->
|
|
|
<div class="content">
|
|
<div class="content">
|
|
@@ -46,54 +32,9 @@ const currentPath = computed(() => route.path)
|
|
|
@use '@/assets/styles/variables' as v;
|
|
@use '@/assets/styles/variables' as v;
|
|
|
@use '@/assets/styles/mixins' as m;
|
|
@use '@/assets/styles/mixins' as m;
|
|
|
|
|
|
|
|
-.public-safety-view {
|
|
|
|
|
|
|
+.page-view {
|
|
|
padding: v.$spacing-xl v.$spacing-xl * 2;
|
|
padding: v.$spacing-xl v.$spacing-xl * 2;
|
|
|
|
|
|
|
|
- .header {
|
|
|
|
|
- text-align: center;
|
|
|
|
|
- margin-bottom: v.$spacing-xl * 2;
|
|
|
|
|
-
|
|
|
|
|
- h1 {
|
|
|
|
|
- font-size: v.$font-size-xxl;
|
|
|
|
|
- color: v.$text-primary;
|
|
|
|
|
- margin-bottom: v.$spacing-md;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- .description {
|
|
|
|
|
- font-size: v.$font-size-lg;
|
|
|
|
|
- color: v.$text-secondary;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- .sub-nav {
|
|
|
|
|
- display: flex;
|
|
|
|
|
- justify-content: center;
|
|
|
|
|
- gap: v.$spacing-md;
|
|
|
|
|
- margin-bottom: v.$spacing-xl;
|
|
|
|
|
- padding: v.$spacing-md;
|
|
|
|
|
- background-color: v.$background-light;
|
|
|
|
|
- border-radius: v.$border-radius-lg;
|
|
|
|
|
- box-shadow: v.$shadow-sm;
|
|
|
|
|
-
|
|
|
|
|
- .nav-item {
|
|
|
|
|
- padding: v.$spacing-sm v.$spacing-md;
|
|
|
|
|
- color: v.$text-primary;
|
|
|
|
|
- text-decoration: none;
|
|
|
|
|
- border-radius: v.$border-radius-md;
|
|
|
|
|
- transition: all v.$transition-fast;
|
|
|
|
|
-
|
|
|
|
|
- &:hover {
|
|
|
|
|
- background-color: rgba(v.$primary-color, 0.1);
|
|
|
|
|
- color: v.$primary-color;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- &.active {
|
|
|
|
|
- background-color: v.$primary-color;
|
|
|
|
|
- color: white;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
.content {
|
|
.content {
|
|
|
max-width: 1200px;
|
|
max-width: 1200px;
|
|
|
margin: 0 auto;
|
|
margin: 0 auto;
|