@@ -6,7 +6,8 @@
|
||||
|
||||
<!-- 事项指南页(事项库 §6.2 契约):item / attachments[] / relatedItems[] /
|
||||
faqCategoryUrl·noticeCategoryUrl·ruleCategoryUrl(可空)/ applyUrl(可空,空则不渲染"我要办理")。
|
||||
三个富文本字段已在保存期过 jsoup 白名单、渲染期补 URL 基准,此处允许 utext -->
|
||||
三个富文本字段已在保存期过 jsoup 白名单、渲染期补 URL 基准,此处允许 utext。
|
||||
svcUnavailable=true(P1-4 停机降级):只渲染骨架+空态,不渲染事项内容与"我要办理" -->
|
||||
<main class="detail-main container" id="main-content">
|
||||
<div class="page-card svc-guide">
|
||||
<nav class="breadcrumb" aria-label="面包屑">
|
||||
@@ -14,10 +15,16 @@
|
||||
<span class="crumb-sep" aria-hidden="true">/</span>
|
||||
<a th:href="${url.serviceList()}">服务中心</a>
|
||||
<span class="crumb-sep" aria-hidden="true">/</span>
|
||||
<span class="current" th:text="${item.title}">事项名称</span>
|
||||
<span class="current" th:text="${svcUnavailable} ? '服务中心' : ${item.title}">事项名称</span>
|
||||
</nav>
|
||||
|
||||
<article class="svc-guide-body">
|
||||
<!-- P1-4 停机空态:svc-hall 不可达时降级渲染(200),不出 500 错误页 -->
|
||||
<div class="empty-state svc-unavailable" th:if="${svcUnavailable}">
|
||||
<p>事项服务暂时不可用,请稍后再试</p>
|
||||
<p class="empty-hint">事项数据服务暂不可达,稍后刷新即可恢复</p>
|
||||
</div>
|
||||
|
||||
<article class="svc-guide-body" th:if="${!svcUnavailable}">
|
||||
<h1 class="article-title" th:text="${item.title}">事项名称</h1>
|
||||
<div class="article-meta">
|
||||
<span th:if="${!#strings.isEmpty(item.deptName)}"
|
||||
@@ -102,7 +109,7 @@
|
||||
</nav>
|
||||
</article>
|
||||
|
||||
<aside class="svc-related" th:if="${!#lists.isEmpty(relatedItems)}">
|
||||
<aside class="svc-related" th:if="${!svcUnavailable and !#lists.isEmpty(relatedItems)}">
|
||||
<h2 class="section-title">相关服务</h2>
|
||||
<ul class="svc-related-list">
|
||||
<li th:each="rel : ${relatedItems}">
|
||||
|
||||
@@ -16,8 +16,14 @@
|
||||
|
||||
<h1 class="page-title">服务中心</h1>
|
||||
|
||||
<!-- P1-4 停机空态:svc-hall 不可达时降级渲染(200),不出 500 错误页 -->
|
||||
<div class="empty-state svc-unavailable" th:if="${svcUnavailable}">
|
||||
<p>事项服务暂时不可用,请稍后再试</p>
|
||||
<p class="empty-hint">事项数据服务暂不可达,稍后刷新即可恢复</p>
|
||||
</div>
|
||||
|
||||
<div class="svc-filters"
|
||||
th:if="${!#lists.isEmpty(serviceFilters.objects) or !#lists.isEmpty(serviceFilters.categories) or !#lists.isEmpty(serviceFilters.depts)}">
|
||||
th:if="${!svcUnavailable and (!#lists.isEmpty(serviceFilters.objects) or !#lists.isEmpty(serviceFilters.categories) or !#lists.isEmpty(serviceFilters.depts))}">
|
||||
<div class="svc-filter-group" th:if="${!#lists.isEmpty(serviceFilters.objects)}">
|
||||
<span class="svc-filter-label">服务对象</span>
|
||||
<div class="svc-filter-options">
|
||||
@@ -47,7 +53,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="svc-toolbar">
|
||||
<div class="svc-toolbar" th:if="${!svcUnavailable}">
|
||||
<form class="svc-search" th:action="${url.serviceList()}" method="get" role="search">
|
||||
<input type="search" name="q" th:value="${q}" placeholder="搜索事项名称 / 简介" maxlength="64">
|
||||
<button type="submit">搜索</button>
|
||||
@@ -55,7 +61,7 @@
|
||||
<a class="svc-clear" th:if="${activeFilters.hasAny}" th:href="${activeFilters.clearUrl}">清除筛选</a>
|
||||
</div>
|
||||
|
||||
<ul class="svc-list">
|
||||
<ul class="svc-list" th:if="${!svcUnavailable}">
|
||||
<li th:each="it : ${serviceList.items}">
|
||||
<a class="svc-item" th:href="${url.serviceItem(it.id)}">
|
||||
<span class="svc-item-cover" th:if="${it.coverImage != null}">
|
||||
@@ -80,15 +86,15 @@
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="empty-state" th:if="${#lists.isEmpty(serviceList.items)}">
|
||||
<div class="empty-state" th:if="${!svcUnavailable and #lists.isEmpty(serviceList.items)}">
|
||||
<p th:if="${activeFilters.hasAny}">未找到符合条件的服务事项</p>
|
||||
<p th:if="${!activeFilters.hasAny}">服务中心暂未上架事项</p>
|
||||
<p class="empty-hint" th:if="${activeFilters.hasAny}">换个筛选条件或关键词试试</p>
|
||||
<p class="empty-hint" th:if="${!activeFilters.hasAny}">事项发布后将在此展示</p>
|
||||
</div>
|
||||
|
||||
<!-- 分页:URL 由后端预生成(携带当前筛选,pageUrls[].active 标记当前页) -->
|
||||
<nav class="pagination" th:if="${serviceList.totalPages > 1}" aria-label="分页">
|
||||
<!-- 分页:URL 由后端预生成(携带当前筛选,pageUrls[].active 标记当前页);停机态 totalPages=0 自然隐藏 -->
|
||||
<nav class="pagination" th:if="${!svcUnavailable and serviceList.totalPages > 1}" aria-label="分页">
|
||||
<a th:each="p : ${serviceList.pageUrls}"
|
||||
th:classappend="${p.active} ? 'active'"
|
||||
th:href="${p.url}"
|
||||
|
||||
Reference in New Issue
Block a user