HEL-351: 修复夜间下拉/日期弹层、一次性初始密码领取与缩放滚动条

夜间控件改走现有 token 与 color-scheme,日期弹层锚定触发器并可翻转;
创建公司账号改为一次性可复制口令窗口,列表与后续接口不再回明文。

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
总工
2026-09-01 21:58:56 +08:00
co-authored by Cursor multica-agent
parent 9d06445d81
commit acc3c29c49
13 changed files with 917 additions and 36 deletions
+33 -5
View File
@@ -11,7 +11,7 @@
document.documentElement.classList.add("v-fusion");
})();
</script>
<link rel="stylesheet" href="design-system.css?v=12" />
<link rel="stylesheet" href="design-system.css?v=13" />
</head>
<body class="is-app" data-portal="admin">
<a class="skip-link" href="#main-content">跳到主要内容</a>
@@ -512,7 +512,7 @@
</div>
<div class="table-foot" style="border: 1px solid var(--border); border-radius: 0 0 var(--radius-lg) var(--radius-lg);">
<span id="companyFoot">共 0 家公司</span>
<span class="meta">登录账号初始密码由管理员统一发放</span>
<span class="meta">创建账号时生成一次性随机密码,仅当时显示一次</span>
</div>
</div>
</section>
@@ -876,7 +876,7 @@
<span class="modal-title">新增成员公司</span>
<button type="button" class="modal-close" data-close="companyDialog" aria-label="关闭">×</button>
</div>
<p class="modal-sub">登记后系统将生成公司端登录账号,初始密码由管理员统一发放</p>
<p class="modal-sub">登记后可同时生成公司端登录账号。系统会发一次性随机初始密码,仅创建成功时显示一次,请当场复制后交给出纳;首次登录必须改密。没有全公司通用默认密码</p>
<form id="companyForm" novalidate>
<div class="field" style="margin-bottom: 12px;">
<label for="f-name">公司全称</label>
@@ -899,7 +899,7 @@
<input class="input" id="f-cashier" name="cashier" type="text" required />
</div>
</div>
<p class="hint" style="margin-top: 10px;">创建后生成随机初始密码,仅显示一次,首次登录必须修改</p>
<p class="hint" style="margin-top: 10px;">创建成功后弹出一次性口令窗口,可复制账号和密码。关闭后无法再次查看明文,列表与日志也不会保存密码</p>
<div class="modal-actions">
<button type="button" class="btn" data-close="companyDialog">取消</button>
<button type="submit" class="btn btn-primary">创建公司与账号</button>
@@ -908,6 +908,33 @@
</div>
</div>
<!-- 一次性初始密码领取(关闭后从页面清除明文) -->
<div class="modal-backdrop" id="credentialDialog">
<div class="modal" role="dialog" aria-labelledby="cred-title" aria-modal="true">
<div class="modal-head">
<span class="modal-title" id="cred-title">一次性初始密码</span>
<button type="button" class="modal-close" data-close="credentialDialog" aria-label="关闭">×</button>
</div>
<p class="modal-sub" id="cred-sub">请立即复制并交给出纳。关闭后无法再次查看明文。</p>
<div class="cred-box">
<div class="cred-row">
<span class="cred-label">登录账号</span>
<span class="cred-value" id="cred-user"></span>
<button type="button" class="btn btn-sm" id="cred-copy-user">复制</button>
</div>
<div class="cred-row">
<span class="cred-label">初始密码</span>
<span class="cred-value" id="cred-pass"></span>
<button type="button" class="btn btn-sm btn-primary" id="cred-copy-pass">复制密码</button>
</div>
</div>
<p class="cred-warn">对方首次登录必须修改密码。重置密码同样只展示这一次。</p>
<div class="modal-actions">
<button type="button" class="btn btn-primary" data-close="credentialDialog">我已抄录</button>
</div>
</div>
</div>
<!-- 公司详情弹窗 -->
<div class="modal-backdrop" id="modal-detail">
<div class="modal wide">
@@ -1228,6 +1255,7 @@
</div>
<div class="toast-region" id="toastRegion" aria-live="polite"></div>
<script src="theme.js?v=1"></script>
<script src="app.js?v=17"></script>
<script src="datepicker.js?v=1"></script>
<script src="app.js?v=18"></script>
</body>
</html>