fix(cms): 图库分组自由输入 + 前端筛选动态化;速通坞折叠防误触
用户实测三处:①照片分组写死 street/landscape 两选不能加——Sveltia select 无 creatable(文档核实),改 string 自由输入;前端筛选同步动态化(分组 从数据反向派生,[a-z0-9-] 命名的分组零配置自动出现筛选片),顺带排查全 后台其余 select:分轨/颜色/字体/来源均为语义契约(写死是安全设计)唯分 组该开放;②速通坞与编辑区抢点击(手机端尤甚)——改默认收起成一枚 26px 圆钮,点开才展开五入口,状态记忆+点外部收起;③翻译无按钮答疑: 英文版走构建链自动机翻(保存中文即出,无按钮是设计),仪表盘有覆盖数。 (同轮收编站长经 CMS 新增的图库照片 夜色金茂湾) 验证: pnpm astro build exit 0;config-check 通过;E2E 65/65(筛选断言适配动态 id);产物断言 f-g-landscape 数据派生 Spec: 2026-11-05_blog-5n-admin-deep-optimization Co-authored-by: GLM-5.3
This commit is contained in:
1 parent
5d187e1240
commit
ef2bd97267
4 files changed
+63
-25
No files matched your search
+43
-13
@@ -9,23 +9,53 @@
|
||||
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
||||
<link rel="manifest" href="./manifest.webmanifest" />
|
||||
<style>
|
||||
/* 速通坞(5n D1):日常要跳的五个入口常驻右上,不挡 Sveltia 主 UI(对话层 z 更高) */
|
||||
#quick-dock{position:fixed;top:10px;right:12px;z-index:9000;display:flex;gap:4px;
|
||||
font:12px/1 system-ui,sans-serif;opacity:.78;transition:opacity .2s}
|
||||
#quick-dock:hover{opacity:1}
|
||||
#quick-dock a{color:#5b6472;text-decoration:none;padding:4px 8px;border-radius:6px;background:rgba(127,131,140,.12)}
|
||||
#quick-dock a:hover{color:#3454d1;background:rgba(52,84,209,.1)}
|
||||
@media (max-width:720px){#quick-dock a:not(.qd-key){display:none}}
|
||||
</style>
|
||||
/* 速通坞(5n D1 + 用户实测防误触改版):默认收起成一枚小圆钮,
|
||||
点开才展开五入口;开关状态存 localStorage(手机端默认必收起)。
|
||||
收起态只有一个 26px 圆钮,不再与编辑区抢点击面。 */
|
||||
#qd-toggle{position:fixed;top:10px;right:12px;z-index:9000;width:26px;height:26px;
|
||||
border-radius:50%;border:1px solid rgba(127,131,140,.4);background:rgba(255,255,255,.85);
|
||||
color:#5b6472;font:14px/1 system-ui,sans-serif;cursor:pointer;opacity:.6;transition:opacity .2s}
|
||||
#qd-toggle:hover{opacity:1}
|
||||
body[data-qd=open] #qd-toggle{background:rgba(52,84,209,.12);color:#3454d1;border-color:rgba(52,84,209,.4)}
|
||||
#qd-links{position:fixed;top:44px;right:12px;z-index:9000;display:none;flex-direction:column;gap:4px;
|
||||
font:12px/1 system-ui,sans-serif;padding:6px;border-radius:10px;background:rgba(255,255,255,.95);
|
||||
box-shadow:0 2px 10px rgba(0,0,0,.12)}
|
||||
body[data-qd=open] #qd-links{display:flex}
|
||||
#qd-links a{color:#5b6472;text-decoration:none;padding:5px 10px;border-radius:6px;white-space:nowrap}
|
||||
#qd-links a:hover{color:#3454d1;background:rgba(52,84,209,.08)}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<nav id="quick-dock" aria-label="快捷入口">
|
||||
<a class="qd-key" href="https://wait4x.online/artalk/" target="_blank" rel="noopener">评论</a>
|
||||
<a class="qd-key" href="./stats.html" target="_blank" rel="noopener">仪表盘</a>
|
||||
<a href="https://git.wait4x.online/wait4x/blog" target="_blank" rel="noopener">仓库</a>
|
||||
<a href="https://git.wait4x.online/wait4x/blog/src/branch/main/docs/%E5%90%8E%E5%8F%B0%E5%9B%9E%E6%BB%9A%E6%8C%87%E5%BC%95.md" target="_blank" rel="noopener">回滚</a>
|
||||
<a href="https://git.wait4x.online/wait4x/blog/src/branch/main/docs/%E7%AE%A1%E7%90%86%E5%8F%B0.md" target="_blank" rel="noopener">手册</a>
|
||||
<button id="qd-toggle" type="button" aria-expanded="false" title="快捷入口">≡</button>
|
||||
<div id="qd-links">
|
||||
<a href="https://wait4x.online/artalk/" target="_blank" rel="noopener">评论管理</a>
|
||||
<a href="./stats.html" target="_blank" rel="noopener">内容仪表盘</a>
|
||||
<a href="https://git.wait4x.online/wait4x/blog" target="_blank" rel="noopener">仓库</a>
|
||||
<a href="https://git.wait4x.online/wait4x/blog/src/branch/main/docs/%E5%90%8E%E5%8F%B0%E5%9B%9E%E6%BB%9A%E6%8C%87%E5%BC%95.md" target="_blank" rel="noopener">回滚指引</a>
|
||||
<a href="https://git.wait4x.online/wait4x/blog/src/branch/main/docs/%E7%AE%A1%E7%90%86%E5%8F%B0.md" target="_blank" rel="noopener">管理台手册</a>
|
||||
</div>
|
||||
</nav>
|
||||
<script>
|
||||
// 速通坞开合:默认收起(误触根除);记住用户选择;点外部自动收起
|
||||
(function () {
|
||||
var t = document.getElementById('qd-toggle');
|
||||
var set = function (open) {
|
||||
document.body.dataset.qd = open ? 'open' : 'closed';
|
||||
t.setAttribute('aria-expanded', String(open));
|
||||
try { localStorage.setItem('qd-open', open ? '1' : '0'); } catch (e) {}
|
||||
};
|
||||
var saved;
|
||||
try { saved = localStorage.getItem('qd-open'); } catch (e) {}
|
||||
set(saved === '1'); // 缺省收起
|
||||
t.addEventListener('click', function () {
|
||||
set(document.body.dataset.qd !== 'open');
|
||||
});
|
||||
document.addEventListener('click', function (e) {
|
||||
if (document.body.dataset.qd === 'open' && !e.target.closest('#quick-dock')) set(false);
|
||||
});
|
||||
})();
|
||||
</script>
|
||||
<!-- pinned 本地 bundle(0.259.0,5n T1 升级):官方模板仅此一个 script,无 CSS link、无 type=module -->
|
||||
<script src="./sveltia-cms.js"></script>
|
||||
<!-- 艺术字体切片(unicode-range 按需取片):选择面板的示例字形用真实字体渲染 -->
|
||||
|
||||
Reference in new issue
Block a user