nankai-cms-website-gov/layouts/category.vue

109 lines
2.6 KiB
Vue
Raw Permalink Normal View History

2025-03-13 09:52:18 +08:00
<template>
<div class="category-detail-layout">
<Head>
<Title>{{ selectedCategory.title }}</Title>
<Meta type="keywords" :content="siteConfig.keywords"/>
<Meta type="description" :content="siteConfig.description"/>
</Head>
<header>
2025-03-13 10:14:57 +08:00
<WebHeader/>
<Categories :categories="categories"/>
2025-03-13 09:52:18 +08:00
</header>
<main>
<!-- 修改el语言为中文 -->
<el-config-provider :locale="zhCn">
<div class="content-wrap category-detail-wrap">
<!-- 页面面包屑 -->
<PageBreadCrumb :data="breadcrumbs"/>
2025-03-13 10:14:57 +08:00
<div class="detail-wrap__body">
<!-- 栏目树 -->
<div class="detail-wrap__categories">
2025-03-13 09:52:18 +08:00
<CategoryTree :data="subCategories" :selected="selectedCategory.uid"/>
</div>
<!-- 主要内容 -->
2025-03-13 10:14:57 +08:00
<div class="detail-wrap__content">
2025-03-13 09:52:18 +08:00
<slot></slot>
</div>
</div>
</div>
</el-config-provider>
</main>
<footer>
<WebFooter/>
</footer>
</div>
</template>
<script>
import WebHeader from '@/components/layout/WebHeader'
import WebFooter from '@/components/layout/WebFooter'
import Categories from '@/components/layout/Categories'
import zhCn from 'element-plus/es/locale/lang/zh-cn'
import CategoryTree from '@/components/cms/CategoryTree';
import PageBreadCrumb from '@/components/common/PageBreadCrumb'
export default {
components: { Categories, WebFooter, WebHeader, CategoryTree, PageBreadCrumb},
props: {
// 栏目树
categories: {
required: true
},
// 子栏目树
subCategories: {
required: true
},
// 选中的子栏目
selectedCategory: {
required: true
},
// 面包屑
breadcrumbs: {
required: true
}
},
data () {
return {
zhCn,
siteConfig: {
title: import.meta.env.VITE_SITE_TITLE,
keywords: import.meta.env.VITE_SEO_KEYWORDS,
description: import.meta.env.VITE_SEO_DESCRIPTION
}
}
}
}
</script>
<style scoped lang="scss">
// 栏目详情
.category-detail-wrap {
background-color: #fff;
padding: 20px;
.detail-wrap__body {
margin-top: 10px;
display: flex;
// 栏目树
.detail-wrap__categories {
height: auto;
width: 275px;
flex-shrink: 0;
align-self: flex-start;
position: sticky;
top: 20px;
}
// 内容
.detail-wrap__content {
flex-grow: 1;
2025-03-13 10:14:57 +08:00
padding: 10px 30px;
2025-03-13 09:52:18 +08:00
overflow: hidden;
& > h2 {
font-size: var(--font-size-large);
margin: 0;
color: var(--primary-color);
font-weight: normal;
}
}
}
}
</style>