mirror of
https://github.com/ZeroCatDev/ClassworksKVAdmin.git
synced 2025-10-22 03:23:10 +00:00
Merge branch 'main' of github.com:Sunwuyuan/ClassworksKVAdmin
This commit is contained in:
commit
2f9121dc2a
6010
package-lock.json
generated
Normal file
6010
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,66 +0,0 @@
|
||||
<!doctype html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>404 - 页面未找到</title>
|
||||
<meta name="robots" content="noindex" />
|
||||
<style>
|
||||
:root { color-scheme: light dark; }
|
||||
html, body { height: 100%; }
|
||||
body {
|
||||
margin: 0; display: grid; place-items: center; font: 14px/1.6 system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";
|
||||
background: linear-gradient(180deg, rgba(0,0,0,.02), rgba(0,0,0,.05));
|
||||
}
|
||||
.card {
|
||||
width: min(560px, 92vw);
|
||||
border: 1px solid rgba(125,125,125,.25);
|
||||
border-radius: 14px;
|
||||
background: rgba(255,255,255,.7);
|
||||
-webkit-backdrop-filter: blur(6px);
|
||||
backdrop-filter: blur(6px);
|
||||
padding: 24px;
|
||||
box-shadow: 0 10px 25px rgba(0,0,0,.08);
|
||||
color: #1f2937;
|
||||
}
|
||||
.row { display:flex; justify-content:center; align-items:center; gap:10px; }
|
||||
@media (prefers-color-scheme: dark) {
|
||||
.card { background: rgba(24,24,27,.6); color: #e5e7eb; border-color: rgba(255,255,255,.12); }
|
||||
}
|
||||
.title { font-size: 22px; font-weight: 700; margin: 8px 0 4px; }
|
||||
.desc { color: #6b7280; margin: 0 0 8px; }
|
||||
.hint { font-size: 12px; color: #9ca3af; text-align: center; margin-top: 10px; }
|
||||
.actions { display: flex; justify-content: center; gap: 10px; margin-top: 16px; }
|
||||
.btn {
|
||||
appearance: none; border: 1px solid rgba(125,125,125,.35); background: rgba(255,255,255,.9);
|
||||
color: #111827; padding: 10px 16px; border-radius: 8px; cursor: pointer; font-weight: 600;
|
||||
}
|
||||
.btn.primary { background: #111827; color: white; border-color: #111827; }
|
||||
.btn:active { transform: translateY(1px); }
|
||||
@media (prefers-color-scheme: dark) {
|
||||
.btn { background: rgba(63,63,70,.8); color: #e5e7eb; border-color: rgba(255,255,255,.14); }
|
||||
.btn.primary { background: #3b82f6; border-color: #3b82f6; }
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<main class="card">
|
||||
<div class="row">
|
||||
<svg width="36" height="36" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" x2="12" y1="8" y2="12"></line><line x1="12" x2="12.01" y1="16" y2="16"></line></svg>
|
||||
<div>
|
||||
<div class="title">页面未找到</div>
|
||||
<div class="desc">即将为您跳转到首页。如果未跳转,请使用下面的按钮。</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="actions">
|
||||
<button class="btn primary" onclick="location.assign('/')">返回首页</button>
|
||||
<button class="btn" onclick="history.length>1?history.back():location.assign('/')">返回上一页</button>
|
||||
</div>
|
||||
<p class="hint">错误代码:404</p>
|
||||
</main>
|
||||
<script>
|
||||
// 对于静态托管(如 GitHub Pages、Vercel 静态导出),尝试回退到 SPA 入口
|
||||
setTimeout(function(){location.replace('/')}, 1500)
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
@ -1,78 +0,0 @@
|
||||
<script setup>
|
||||
import { onMounted } from 'vue'
|
||||
import { useRoute, RouterLink } from 'vue-router'
|
||||
import { Button } from '@/components/ui/button'
|
||||
import {
|
||||
Card,
|
||||
CardHeader,
|
||||
CardTitle,
|
||||
CardDescription,
|
||||
CardContent,
|
||||
CardFooter,
|
||||
} from '@/components/ui/card'
|
||||
import { AlertCircle, Home, ArrowLeft } from 'lucide-vue-next'
|
||||
|
||||
const route = useRoute()
|
||||
|
||||
const goBack = () => {
|
||||
if (history.length > 1) history.back()
|
||||
else window.location.assign('/')
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
document.title = '404 - 页面未找到'
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<main
|
||||
class="relative min-h-dvh grid place-items-center px-6 py-16 bg-gradient-to-b from-background to-muted/40"
|
||||
>
|
||||
<!-- 背景点缀 -->
|
||||
<div
|
||||
aria-hidden="true"
|
||||
class="pointer-events-none absolute inset-x-0 top-0 h-40 bg-gradient-to-b from-primary/10 to-transparent blur-2xl"
|
||||
/>
|
||||
|
||||
<Card class="w-full max-w-xl">
|
||||
<CardHeader class="text-center">
|
||||
<div
|
||||
class="mx-auto flex size-14 items-center justify-center rounded-full border bg-background/60 shadow-sm"
|
||||
>
|
||||
<AlertCircle class="size-7 text-primary" />
|
||||
</div>
|
||||
<CardTitle class="mt-3 text-2xl">页面未找到</CardTitle>
|
||||
<CardDescription>
|
||||
抱歉,您访问的地址不存在或已被移动。
|
||||
</CardDescription>
|
||||
</CardHeader>
|
||||
|
||||
<CardContent class="text-center text-sm text-muted-foreground break-words">
|
||||
<p>
|
||||
请求路径:
|
||||
<span class="font-medium text-foreground/80">{{ route.fullPath }}</span>
|
||||
</p>
|
||||
</CardContent>
|
||||
|
||||
<CardFooter class="flex items-center justify-center gap-3">
|
||||
<RouterLink to="/">
|
||||
<Button size="lg">
|
||||
<Home class="size-4" />
|
||||
返回首页
|
||||
</Button>
|
||||
</RouterLink>
|
||||
<Button variant="outline" size="lg" @click="goBack">
|
||||
<ArrowLeft class="size-4" />
|
||||
返回上一页
|
||||
</Button>
|
||||
</CardFooter>
|
||||
</Card>
|
||||
|
||||
<p class="mt-6 text-center text-xs text-muted-foreground/80 select-none">
|
||||
错误代码:404
|
||||
</p>
|
||||
</main>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
</style>
|
@ -1,3 +1,11 @@
|
||||
<route lang="json">
|
||||
{
|
||||
"meta": {
|
||||
"requiresAuth": false
|
||||
}
|
||||
}
|
||||
</route>
|
||||
|
||||
<script setup>
|
||||
import { ref, computed, onMounted } from 'vue'
|
||||
import { useRoute, useRouter } from 'vue-router'
|
||||
|
Loading…
x
Reference in New Issue
Block a user