laobinghu ce208df092 feat: 实现 Nuxt4 + Nuxt UI 博客前端完整功能
核心功能:
- 项目初始化 (Nuxt 4 + Nuxt UI + Pinia + ofetch)
- TypeScript 类型定义 (User, Article, Comment, API 响应)
- 认证系统 (登录/登出、Cookie 支持、权限中间件)
- 文章列表页 (筛选、分页、响应式布局)
- 文章详情页 (Markdown 渲染、评论系统)
- 文章编辑器 (左右分栏、实时预览、Markdown 工具栏)

管理后台:
- 侧边栏布局、权限检查
- 数据分析 (数据统计卡片、热门文章、评论审核统计)
- 文章管理 (表格、筛选、删除)
- 评论管理 (审核通过/拒绝、删除)
- 用户管理 (角色管理、删除)

全局组件:
- 导航栏 (暗色模式切换、移动端菜单)
- 页脚
- 403/404 错误页

配置文件:
- .env.example 环境变量模板
- nuxt.config.ts 完整配置
- 自定义 CSS 样式
2026-03-28 15:56:50 +08:00

37 lines
929 B
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="min-h-[60vh] flex items-center justify-center">
<UCard class="max-w-md w-full text-center">
<template #header>
<UIcon
name="i-heroicons-no-entry"
class="w-16 h-16 mx-auto text-red-500 mb-4"
/>
<h1 class="text-2xl font-bold text-gray-900 dark:text-white mb-2">
403 - 禁止访问
</h1>
</template>
<p class="text-gray-600 dark:text-gray-400 mb-6">
抱歉您没有权限访问此页面
</p>
<div class="flex justify-center space-x-4">
<UButton to="/" color="indigo">
返回首页
</UButton>
<UButton v-if="!isAuthenticated" to="/login" variant="outline">
登录
</UButton>
</div>
</UCard>
</div>
</template>
<script setup lang="ts">
const { isAuthenticated } = useAuth()
useSeoMeta({
title: '403 - 禁止访问',
})
</script>