6b: page skeletons — 42 pages aligned to GDD §1 (git mv renames, gates/login/query/read-entry mounts, static NN/39, 0 dead 0 leak)

This commit is contained in:
2026-09-30 14:07:40 +08:00
parent e030f69591
commit 3cb6650a5e
57 changed files with 1380 additions and 533 deletions
+34 -14
View File
@@ -8,27 +8,47 @@
<script defer src="../../assets/js/components.js"></script>
<script defer src="../../assets/js/vendor/alpine.min.js"></script>
</head>
<body data-page="13" data-total="19">
<body data-page="21" data-total="39">
<header>
<nav>
<a class="brand" href="login.html">卷库房</a>
<a href="query.html">案卷查询</a><a href="results.html">检索结果</a>
<a class="brand" href="index.html">卷库房</a>
<a href="query.html">案卷查询</a>
<span>当前账号</span>
<a href="index.html">退出</a>
</nav>
</header>
<!-- 嵌套 D 查询壳(references/structure/form-system.md §4):多字段查询 = 多 data-expect-hash 门,
全部字段命中才提交到 results.html。各字段接受值(当事人/编号等)由步骤 3/5 设计、6b 填入;
输入只名其字段(R4)。表单 action 是检查器跟走的真实跳转(form-system.md §5)。 -->
<main x-data="gate" data-next="results.html" data-fail-hint="未检索到匹配案卷">
<form class="gate" action="results.html" method="get" @submit.prevent="submit">
<label for="party">当事人</label><input id="party" type="text" name="party" placeholder="当事人" data-expect-hash="<hash>">
<label for="docket">案号</label><input id="docket" type="text" name="docket" placeholder="案号" data-expect-hash="<hash>">
<label for="year">年度</label><input id="year" type="text" name="year" placeholder="立案年度" data-expect-hash="<hash>">
<p class="gate-error" x-show="error" x-text="error" x-cloak></p>
<!-- D 型查询(form-system §4):多字段提交至 results.html;命中经账号矩阵解析(R10)。
深层检索面:单一索引,仅登录会话内 fetch;命中可否打开由卷宗页自身 data-access 决定,访问权限永不存于 keywords JSON(form-system §1)。 -->
<main>
<h1>卷库房 · 案卷查询</h1>
<form class="gate" action="results.html" method="get">
<label for="party">当事人</label><input id="party" type="text" name="party" placeholder="当事人">
<label for="docket">案号</label><input id="docket" type="text" name="docket" placeholder="案号">
<label for="year">年度</label><input id="year" type="text" name="year" placeholder="立案年度">
<button class="btn" type="submit">查询</button>
</form>
<div id="results" x-data="search" data-index="data/keywords.secret.json" x-cloak>
<template x-if="state === 'forbidden'">
<span :class="forbidden.hidden ? 'hidden-text' : 'visible-text'" x-text="forbidden.text"></span>
</template>
<template x-if="state === 'hit'">
<div>
<p><b x-text="results.length"></b> 条检索结果:</p>
<ul class="doc-list">
<template x-for="r in results" :key="r.url">
<li><a :href="r.url" target="_blank" x-text="r.title"></a></li>
</template>
</ul>
</div>
</template>
<template x-if="state === 'miss'"><p>未检索到与"<b x-text="q"></b>"相关的内容。</p></template>
<template x-if="state === 'empty'"><p>请输入检索关键词。</p></template>
</div>
<!-- 6b 骨架:本页正文文案于步骤 7 依 docs/gdd.md 与 docs/registry.md 填入;6b 只落结构,不写剧情文案。 -->
</main>
<footer x-data="progress"><div class="footer-inner">
<span>© 2015 临川县正衡律师事务所 · 卷库房</span><span class="progress" x-text="seen.length + '/' + document.body.dataset.total">13/19</span>
<footer><div class="footer-inner">
<span>© 2015 临川县正衡律师事务所 · 卷库房</span>
<span class="progress">21/39</span>
</div></footer>
</body>
</html>