feat(app): scaffold Vue3 frontend (stage 1)

This commit is contained in:
2025-12-13 22:42:31 +08:00
parent 39153cc946
commit 34f44eed3e
35 changed files with 2910 additions and 0 deletions

View File

@@ -0,0 +1,91 @@
{
"index.html": {
"file": "assets/index-BDLnyqR1.js",
"name": "index",
"src": "index.html",
"isEntry": true,
"dynamicImports": [
"src/pages/LoginPage.vue",
"src/pages/RegisterPage.vue",
"src/pages/ResetPasswordPage.vue",
"src/pages/AccountsPage.vue",
"src/pages/SchedulesPage.vue",
"src/pages/ScreenshotsPage.vue"
],
"css": [
"assets/index-CZCRHVLY.css"
]
},
"src/pages/AccountsPage.vue": {
"file": "assets/AccountsPage-CDp_6M3v.js",
"name": "AccountsPage",
"src": "src/pages/AccountsPage.vue",
"isDynamicEntry": true,
"imports": [
"index.html"
],
"css": [
"assets/AccountsPage-ByA-Bv17.css"
]
},
"src/pages/LoginPage.vue": {
"file": "assets/LoginPage-CUFPnwuZ.js",
"name": "LoginPage",
"src": "src/pages/LoginPage.vue",
"isDynamicEntry": true,
"imports": [
"index.html"
],
"css": [
"assets/LoginPage-B-WqAKk4.css"
]
},
"src/pages/RegisterPage.vue": {
"file": "assets/RegisterPage-BYIu9Dvh.js",
"name": "RegisterPage",
"src": "src/pages/RegisterPage.vue",
"isDynamicEntry": true,
"imports": [
"index.html"
],
"css": [
"assets/RegisterPage-CPyuLOs6.css"
]
},
"src/pages/ResetPasswordPage.vue": {
"file": "assets/ResetPasswordPage-Ditr0QEq.js",
"name": "ResetPasswordPage",
"src": "src/pages/ResetPasswordPage.vue",
"isDynamicEntry": true,
"imports": [
"index.html"
],
"css": [
"assets/ResetPasswordPage-CErwB9tI.css"
]
},
"src/pages/SchedulesPage.vue": {
"file": "assets/SchedulesPage-B7bCm2b3.js",
"name": "SchedulesPage",
"src": "src/pages/SchedulesPage.vue",
"isDynamicEntry": true,
"imports": [
"index.html"
],
"css": [
"assets/SchedulesPage-BAj1X6GW.css"
]
},
"src/pages/ScreenshotsPage.vue": {
"file": "assets/ScreenshotsPage-DPphuiaz.js",
"name": "ScreenshotsPage",
"src": "src/pages/ScreenshotsPage.vue",
"isDynamicEntry": true,
"imports": [
"index.html"
],
"css": [
"assets/ScreenshotsPage-CmPGicmh.css"
]
}
}

View File

@@ -0,0 +1 @@
.card[data-v-f8df5656]{border-radius:var(--app-radius);border:1px solid var(--app-border)}.title[data-v-f8df5656]{margin:0 0 6px;font-size:16px;font-weight:800}

View File

@@ -0,0 +1 @@
import{_ as t,e as o,w as c,r,o as d,b as s}from"./index-BDLnyqR1.js";const n={};function _(l,e){const a=r("el-card");return d(),o(a,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:c(()=>[...e[0]||(e[0]=[s("h2",{class:"title"},"账号管理",-1),s("div",{class:"app-muted"},"阶段1页面壳子已就绪功能将在后续阶段迁移。",-1)])]),_:1})}const f=t(n,[["render",_],["__scopeId","data-v-f8df5656"]]);export{f as default};

View File

@@ -0,0 +1 @@
.auth-wrap[data-v-b02cd436]{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.auth-card[data-v-b02cd436]{width:100%;max-width:420px;border-radius:var(--app-radius);border:1px solid var(--app-border);box-shadow:var(--app-shadow)}.brand[data-v-b02cd436]{margin-bottom:14px}.brand-title[data-v-b02cd436]{font-size:18px;font-weight:900}.brand-sub[data-v-b02cd436]{margin-top:4px;font-size:12px}.actions[data-v-b02cd436]{margin-top:16px}

View File

@@ -0,0 +1 @@
import{_,c as i,a as s,w as a,r as o,u as p,o as u,b as t,d as m}from"./index-BDLnyqR1.js";const b={class:"auth-wrap"},f={class:"actions"},g={__name:"LoginPage",setup(v){const n=p();function r(){n.push("/register")}return(x,e)=>{const c=o("el-alert"),d=o("el-button"),l=o("el-card");return u(),i("div",b,[s(l,{shadow:"never",class:"auth-card","body-style":{padding:"22px"}},{default:a(()=>[e[1]||(e[1]=t("div",{class:"brand"},[t("div",{class:"brand-title"},"知识管理平台"),t("div",{class:"brand-sub app-muted"},"用户登录")],-1)),s(c,{type:"info",closable:!1,title:"阶段1仅完成前台工程与布局搭建。登录/验证码/找回密码等功能将在后续阶段迁移。","show-icon":""}),t("div",f,[s(d,{type:"primary",onClick:r},{default:a(()=>[...e[0]||(e[0]=[m("前往注册",-1)])]),_:1})])]),_:1})])}}},w=_(g,[["__scopeId","data-v-b02cd436"]]);export{w as default};

View File

@@ -0,0 +1 @@
import{_,c as i,a as s,w as a,r as o,u as p,o as u,b as t,d as m}from"./index-BDLnyqR1.js";const b={class:"auth-wrap"},f={class:"actions"},g={__name:"RegisterPage",setup(v){const n=p();function c(){n.push("/login")}return(x,e)=>{const r=o("el-alert"),l=o("el-button"),d=o("el-card");return u(),i("div",b,[s(d,{shadow:"never",class:"auth-card","body-style":{padding:"22px"}},{default:a(()=>[e[1]||(e[1]=t("div",{class:"brand"},[t("div",{class:"brand-title"},"知识管理平台"),t("div",{class:"brand-sub app-muted"},"用户注册")],-1)),s(r,{type:"info",closable:!1,title:"阶段1仅完成前台工程与布局搭建。注册/邮箱验证等功能将在后续阶段迁移。","show-icon":""}),t("div",f,[s(l,{onClick:c},{default:a(()=>[...e[0]||(e[0]=[m("返回登录",-1)])]),_:1})])]),_:1})])}}},w=_(g,[["__scopeId","data-v-6a731624"]]);export{w as default};

View File

@@ -0,0 +1 @@
.auth-wrap[data-v-6a731624]{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.auth-card[data-v-6a731624]{width:100%;max-width:420px;border-radius:var(--app-radius);border:1px solid var(--app-border);box-shadow:var(--app-shadow)}.brand[data-v-6a731624]{margin-bottom:14px}.brand-title[data-v-6a731624]{font-size:18px;font-weight:900}.brand-sub[data-v-6a731624]{margin-top:4px;font-size:12px}.actions[data-v-6a731624]{margin-top:16px}

View File

@@ -0,0 +1 @@
.auth-wrap[data-v-8f60ffad]{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.auth-card[data-v-8f60ffad]{width:100%;max-width:420px;border-radius:var(--app-radius);border:1px solid var(--app-border);box-shadow:var(--app-shadow)}.brand[data-v-8f60ffad]{margin-bottom:14px}.brand-title[data-v-8f60ffad]{font-size:18px;font-weight:900}.brand-sub[data-v-8f60ffad]{margin-top:4px;font-size:12px}.actions[data-v-8f60ffad]{margin-top:16px}

View File

@@ -0,0 +1 @@
import{_,c as i,a as t,w as a,r as o,u as p,o as u,b as s,d as f}from"./index-BDLnyqR1.js";const m={class:"auth-wrap"},b={class:"actions"},v={__name:"ResetPasswordPage",setup(w){const n=p();function c(){n.push("/login")}return(g,e)=>{const d=o("el-alert"),r=o("el-button"),l=o("el-card");return u(),i("div",m,[t(l,{shadow:"never",class:"auth-card","body-style":{padding:"22px"}},{default:a(()=>[e[1]||(e[1]=s("div",{class:"brand"},[s("div",{class:"brand-title"},"知识管理平台"),s("div",{class:"brand-sub app-muted"},"重置密码")],-1)),t(d,{type:"info",closable:!1,title:"阶段1仅完成前台工程与布局搭建。重置密码功能将在后续阶段迁移。","show-icon":""}),s("div",b,[t(r,{onClick:c},{default:a(()=>[...e[0]||(e[0]=[f("返回登录",-1)])]),_:1})])]),_:1})])}}},h=_(v,[["__scopeId","data-v-8f60ffad"]]);export{h as default};

View File

@@ -0,0 +1 @@
import{_ as t,e as o,w as c,r,o as d,b as s}from"./index-BDLnyqR1.js";const n={};function l(_,e){const a=r("el-card");return d(),o(a,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:c(()=>[...e[0]||(e[0]=[s("h2",{class:"title"},"定时任务",-1),s("div",{class:"app-muted"},"阶段1页面壳子已就绪功能将在后续阶段迁移。",-1)])]),_:1})}const f=t(n,[["render",l],["__scopeId","data-v-b4b9e229"]]);export{f as default};

View File

@@ -0,0 +1 @@
.card[data-v-b4b9e229]{border-radius:var(--app-radius);border:1px solid var(--app-border)}.title[data-v-b4b9e229]{margin:0 0 6px;font-size:16px;font-weight:800}

View File

@@ -0,0 +1 @@
.card[data-v-08f8d2d3]{border-radius:var(--app-radius);border:1px solid var(--app-border)}.title[data-v-08f8d2d3]{margin:0 0 6px;font-size:16px;font-weight:800}

View File

@@ -0,0 +1 @@
import{_ as t,e as o,w as c,r,o as d,b as s}from"./index-BDLnyqR1.js";const n={};function _(l,e){const a=r("el-card");return d(),o(a,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:c(()=>[...e[0]||(e[0]=[s("h2",{class:"title"},"截图管理",-1),s("div",{class:"app-muted"},"阶段1页面壳子已就绪功能将在后续阶段迁移。",-1)])]),_:1})}const f=t(n,[["render",_],["__scopeId","data-v-08f8d2d3"]]);export{f as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

15
static/app/index.html Normal file
View File

@@ -0,0 +1,15 @@
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<title>知识管理平台</title>
<script type="module" crossorigin src="./assets/index-BDLnyqR1.js"></script>
<link rel="stylesheet" crossorigin href="./assets/index-CZCRHVLY.css">
</head>
<body>
<noscript>该页面需要启用 JavaScript 才能使用。</noscript>
<div id="app"></div>
</body>
</html>