feat: M0-M2 骨架落地(服务端/前端/宿主/数据库/积分引擎)

- server: Go 单二进制骨架,embed 内嵌前端,配置/迁移/HTTP 路由
- store: system.db + event.db 两套迁移,业务表 + 种子数据
- domain: 积分引擎(并列三口径/计分通道/流水/排名/破纪录)+ 68 个测试
- web: Vite + Vue 三入口骨架 + shared 层(类型/API/WebSocket 客户端)
- console: Electron 宿主骨架(选屏/防熄屏/进程守护/托盘)
This commit is contained in:
AskaEth committed 2026-09-09 18:36:40 +08:00
1 parent a61d793d79
commit 7d5d94f815
76 files changed
+10131

No files matched your search

+65
View File
@@ -0,0 +1,65 @@
<script setup lang="ts">
import { onMounted, ref } from 'vue'
const health = ref<string>('检测中…')
onMounted(async () => {
try {
const res = await fetch('/api/health')
const body = (await res.json()) as { ok: boolean; version: string }
health.value = body.ok ? `服务正常 · ${body.version}` : '服务异常'
} catch {
health.value = '无法连接服务端'
}
})
</script>
<template>
<main class="panel">
<header>
<h1>管理面板</h1>
<span class="status">{{ health }}</span>
</header>
<section class="card">
<h2>骨架已就绪</h2>
<p>MIUIx 风格与业务页面将在 M4 实现。</p>
</section>
</main>
</template>
<style scoped>
.panel {
padding: 32px;
display: flex;
flex-direction: column;
gap: 24px;
}
header {
display: flex;
align-items: baseline;
gap: 20px;
}
h1 {
font-size: 24px;
}
.status {
font-size: 13px;
color: var(--text-dim);
}
.card {
background: var(--panel);
border: 2px solid var(--panel-border);
border-radius: 16px;
padding: 24px 28px;
}
h2 {
font-size: 18px;
margin-bottom: 8px;
color: var(--cyan);
}
p {
font-size: 14px;
color: var(--text-dim);
}
</style>
+5
View File
@@ -0,0 +1,5 @@
import { createApp } from 'vue'
import App from './App.vue'
import '@/shared/styles/base.css'
createApp(App).mount('#app')