feat: M3-M7 全模块落地 + 集成接线
- M3 认证/权限/审计/限流 + 全部 REST 接口 - M4 管理面板(MIUIx + 成绩录入/积分榜下钻/大屏控制) - M5a 大屏页面(六页 + 明细覆盖层 + 缩放适配) - M6 WebSocket 实时同步中心 - M7 xlsx 导出 + 赛事包 zip + 备份 - 规则包 YAML 导入导出(差异预览) - 字体 vendor 子集化(4 套 x2 字重) - 集成:realtime/export/rules 接入 main+httpapi;backup 子命令 - 修复:中间件包装 ResponseWriter 丢失 Hijacker,导致 WS 握手 501
This commit is contained in:
1 parent
d0e3b93e76
commit
bc8b1ee6c0
145 files changed
+25159
-321
No files matched your search
@@ -0,0 +1,105 @@
|
||||
/*
|
||||
* MIUIx 样式入口(管理端专用)。
|
||||
*
|
||||
* vendor/miuix-console 是现场离线环境的唯一来源,禁止 CDN。
|
||||
* 这里按「tokens → base → 组件」的顺序引入,保证组件里的 var() 都能解析。
|
||||
*/
|
||||
@import '../../../../vendor/miuix-console/core/tokens.css';
|
||||
@import '../../../../vendor/miuix-console/core/base.css';
|
||||
@import '../../../../vendor/miuix-console/core/animations.css';
|
||||
@import '../../../../vendor/miuix-console/components/layout.css';
|
||||
@import '../../../../vendor/miuix-console/components/navigation.css';
|
||||
@import '../../../../vendor/miuix-console/components/button.css';
|
||||
@import '../../../../vendor/miuix-console/components/card.css';
|
||||
@import '../../../../vendor/miuix-console/components/input.css';
|
||||
@import '../../../../vendor/miuix-console/components/select.css';
|
||||
@import '../../../../vendor/miuix-console/components/table.css';
|
||||
@import '../../../../vendor/miuix-console/components/badge.css';
|
||||
@import '../../../../vendor/miuix-console/components/tag.css';
|
||||
@import '../../../../vendor/miuix-console/components/tabs.css';
|
||||
@import '../../../../vendor/miuix-console/components/toast.css';
|
||||
@import '../../../../vendor/miuix-console/components/modal.css';
|
||||
@import '../../../../vendor/miuix-console/components/stat.css';
|
||||
@import '../../../../vendor/miuix-console/components/progress.css';
|
||||
@import '../../../../vendor/miuix-console/components/switch.css';
|
||||
@import '../../../../vendor/miuix-console/components/empty.css';
|
||||
@import '../../../../vendor/miuix-console/components/tooltip.css';
|
||||
@import '../../../../vendor/miuix-console/components/pagination.css';
|
||||
@import '../../../../vendor/miuix-console/components/checkbox.css';
|
||||
@import '../../../../vendor/miuix-console/components/drawer.css';
|
||||
@import '../../../../vendor/miuix-console/components/popover.css';
|
||||
@import '../../../../vendor/miuix-console/components/avatar.css';
|
||||
@import '../../../../vendor/miuix-console/components/accordion.css';
|
||||
@import '../../../../vendor/miuix-console/components/activity.css';
|
||||
|
||||
/*
|
||||
* 上游 tokens.css 只定义了 --mx-error,但 button/input/badge 等组件直接引用
|
||||
* --mx-red / --mx-accent。不改 vendor 文件(保持可整目录覆盖升级),在这里补齐别名。
|
||||
*/
|
||||
:root,
|
||||
[data-theme='dark'] {
|
||||
--mx-red: var(--mx-error);
|
||||
--mx-accent: var(--mx-primary);
|
||||
}
|
||||
|
||||
/*
|
||||
* 管理端不需要 100dvh 的自适应 App Shell,页面滚动交给 .mx-desktop-main,
|
||||
* 这里只保证 body 底色与 MIUIx 令牌一致(shared/base.css 的深蓝底不适用管理端)。
|
||||
*/
|
||||
body {
|
||||
background: var(--mx-bg);
|
||||
color: var(--mx-text);
|
||||
font-family: var(--mx-font);
|
||||
}
|
||||
|
||||
/* 表格内嵌输入框:用 MIUIx 的输入外观,但去掉外层 40px 高度限制,避免行高被撑爆。 */
|
||||
.mx-cell-input {
|
||||
width: 100%;
|
||||
height: 34px;
|
||||
padding: 0 10px;
|
||||
background: var(--mx-s3);
|
||||
border: 1px solid transparent;
|
||||
border-radius: var(--mx-r-xs);
|
||||
color: var(--mx-text);
|
||||
font-size: 13px;
|
||||
font-family: var(--mx-font);
|
||||
transition:
|
||||
border-color var(--mx-d1) var(--mx-ease),
|
||||
box-shadow var(--mx-d1) var(--mx-ease);
|
||||
}
|
||||
.mx-cell-input:focus {
|
||||
border-color: var(--mx-primary);
|
||||
box-shadow: 0 0 0 3px var(--mx-primary-glow);
|
||||
outline: none;
|
||||
}
|
||||
.mx-cell-input.is-invalid {
|
||||
border-color: var(--mx-error);
|
||||
}
|
||||
.mx-cell-input.is-dirty {
|
||||
border-color: var(--mx-amber);
|
||||
}
|
||||
.mx-cell-input.mono {
|
||||
font-family: var(--mx-mono);
|
||||
}
|
||||
|
||||
/* 紧凑表格里的单元格不再响应 hover 左推,否则录入时会跳。 */
|
||||
.mx-table-entry tbody tr:hover td {
|
||||
padding-left: 16px;
|
||||
}
|
||||
.mx-table-entry td {
|
||||
white-space: nowrap;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.mx-table-entry tbody tr.is-dirty {
|
||||
background: rgba(251, 191, 36, 0.06);
|
||||
}
|
||||
.mx-table-entry tbody tr.is-focus {
|
||||
background: var(--mx-primary-glow);
|
||||
}
|
||||
|
||||
/* 只读访客态:禁用写操作控件。 */
|
||||
.is-readonly .mx-btn-primary,
|
||||
.is-readonly .mx-btn-danger {
|
||||
opacity: 0.45;
|
||||
pointer-events: none;
|
||||
}
|
||||
Reference in new issue
Block a user