fix: WebUI 应用变更确认框改用 FlyonUI overlay 组件
原实现混用了 DaisyUI 的写法(<dialog class="modal"> + .modal-box), 而项目实际引入的是 FlyonUI:其 modal 由 HSOverlay 驱动,显示态靠 overlay-open 变体(&.open)生成,且该变体不会随 @plugin 自动注册 (Tailwind v4 只加载包内同名 flyonui.css,variants.css 被忽略)。 后果是 showModal() 只产生原生遮罩(页面变暗+其余按钮被锁), 对话框本身始终 opacity:0 不可见,也未发出任何请求。 本次改动: - modal 结构迁移为官方 overlay 结构,开合改用 HSOverlay.open/close, 取消/关闭按钮走 data-overlay 声明式关闭; - input.css 注册 overlay-open 变体(带注释说明不可删); - 顺带修正其余 DaisyUI 残留:tabs-border→tabs-bordered、 btn-ghost/badge-ghost/badge-neutral→btn-soft/badge-soft。
This commit is contained in:
Vendored
+27
-15
@@ -40,14 +40,14 @@
|
||||
<span class="hidden sm:inline text-sm text-base-content/50">飞书通讯录 → LLDAP</span>
|
||||
</div>
|
||||
<div class="flex-none flex items-center gap-2">
|
||||
<button id="themeToggle" class="btn btn-sm btn-ghost" title="切换明暗主题">主题</button>
|
||||
<button id="themeToggle" class="btn btn-sm btn-soft" title="切换明暗主题">主题</button>
|
||||
<button id="logoutBtn" class="btn btn-sm btn-outline">退出</button>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main class="max-w-7xl mx-auto p-4">
|
||||
<!-- 页签 -->
|
||||
<div class="tabs tabs-border mb-4" role="tablist">
|
||||
<div class="tabs tabs-bordered mb-4" role="tablist">
|
||||
<button class="tab tab-active" data-view="overview" role="tab">概览</button>
|
||||
<button class="tab" data-view="users" role="tab">用户</button>
|
||||
<button class="tab" data-view="groups" role="tab">部门分组</button>
|
||||
@@ -227,21 +227,33 @@
|
||||
</main>
|
||||
</div>
|
||||
|
||||
<!-- 应用变更的确认对话框 -->
|
||||
<dialog id="applyModal" class="modal">
|
||||
<div class="modal-box">
|
||||
<h3 class="text-lg font-semibold mb-2">确认应用变更</h3>
|
||||
<p class="text-sm text-base-content/70 mb-4">
|
||||
将对 LLDAP 执行下列变更。密码由 LLDAP 独占并交给 Authelia 管理,程序绝不写入;
|
||||
仅标记「已确认离职」的用户会被物理删除。
|
||||
</p>
|
||||
<div id="applyModalBody" class="text-sm mb-4"></div>
|
||||
<div class="modal-action">
|
||||
<button id="applyCancel" class="btn btn-ghost">取消</button>
|
||||
<button id="applyConfirm" class="btn btn-primary">确认执行</button>
|
||||
<!-- 应用变更的确认对话框。
|
||||
必须用 FlyonUI 的 overlay 结构:容器是 .overlay.modal 的 <div>(HSOverlay 靠切换
|
||||
open/hidden class 显隐,不会调用原生 dialog.showModal),显示态由 overlay-open 变体
|
||||
生成——所以 overlay-open:opacity-100 这个类不能删,否则对话框又会变回不可见。 -->
|
||||
<div id="applyModal" class="overlay modal modal-middle overlay-open:opacity-100 hidden overlay-open:duration-300"
|
||||
role="dialog" tabindex="-1" aria-labelledby="applyModalTitle">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h3 id="applyModalTitle" class="modal-title">确认应用变更</h3>
|
||||
<button type="button" class="btn btn-text btn-circle btn-sm absolute end-3 top-3"
|
||||
aria-label="关闭" data-overlay="#applyModal">✕</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p class="text-sm text-base-content/70 mb-4">
|
||||
将对 LLDAP 执行下列变更。密码由 LLDAP 独占并交给 Authelia 管理,程序绝不写入;
|
||||
仅标记「已确认离职」的用户会被物理删除。
|
||||
</p>
|
||||
<div id="applyModalBody" class="text-sm"></div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button id="applyCancel" type="button" class="btn btn-soft" data-overlay="#applyModal">取消</button>
|
||||
<button id="applyConfirm" type="button" class="btn btn-primary">确认执行</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</dialog>
|
||||
</div>
|
||||
|
||||
<script src="/static/flyonui.js"></script>
|
||||
<script src="/static/app.js"></script>
|
||||
|
||||
Reference in New Issue
Block a user