前端风格更改

This commit is contained in:
Zzzz
2026-04-28 16:40:13 +08:00
parent 3efcb394fb
commit 89b6dd1f85
10 changed files with 1453 additions and 334 deletions
+117 -28
View File
@@ -1,31 +1,120 @@
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<header class="app-header">
<a class="brand" href="${pageContext.request.contextPath}/dashboard">MZH 图书馆</a>
<c:if test="${not empty sessionScope.authenticatedUser}">
<nav class="top-nav" aria-label="主导航">
<a href="${pageContext.request.contextPath}/dashboard">控制台</a>
<a href="${pageContext.request.contextPath}/catalog">馆藏检索</a>
<c:if test="${sessionScope.userRole == 'administrator'}">
<a href="${pageContext.request.contextPath}/admin/home">管理</a>
<a href="${pageContext.request.contextPath}/admin/users">用户</a>
<a href="${pageContext.request.contextPath}/admin/system-logs">日志</a>
</c:if>
<c:if test="${sessionScope.userRole == 'administrator' or sessionScope.userRole == 'librarian'}">
<a href="${pageContext.request.contextPath}/librarian/home">馆员</a>
<a href="${pageContext.request.contextPath}/books">图书</a>
<a href="${pageContext.request.contextPath}/book-categories">分类</a>
<a href="${pageContext.request.contextPath}/readers">读者</a>
<a href="${pageContext.request.contextPath}/borrowing">借阅</a>
<a href="${pageContext.request.contextPath}/reports">报表</a>
</c:if>
<a href="${pageContext.request.contextPath}/reader/home">读者中心</a>
<c:if test="${sessionScope.userRole == 'reader'}">
<a href="${pageContext.request.contextPath}/reader/loans">我的借阅</a>
</c:if>
<span class="user-pill">
<c:out value="${sessionScope.authenticatedUser.displayName}" />
</span>
<a class="button button-secondary" href="${pageContext.request.contextPath}/logout">退出</a>
</nav>
</c:if>
<c:choose>
<c:when test="${not empty sessionScope.authenticatedUser}">
<c:set var="currentUri" value="${pageContext.request.requestURI}" />
<aside class="app-sidebar" aria-label="主导航">
<a class="sidebar-brand" href="${pageContext.request.contextPath}/dashboard">
<span class="brand-mark" aria-hidden="true">书</span>
<span>图书管理系统</span>
</a>
<section class="role-workbench" aria-label="角色工作台">
<p class="sidebar-section-title">角色工作台</p>
<c:if test="${sessionScope.userRole == 'administrator'}">
<a class="role-chip role-chip-admin" href="${pageContext.request.contextPath}/admin/home">
<span aria-hidden="true">管</span>
<strong>管理员</strong>
<small>/admin/home</small>
</a>
</c:if>
<c:if test="${sessionScope.userRole == 'administrator' or sessionScope.userRole == 'librarian'}">
<a class="role-chip role-chip-librarian" href="${pageContext.request.contextPath}/librarian/home">
<span aria-hidden="true">馆</span>
<strong>馆员</strong>
<small>/librarian/home</small>
</a>
</c:if>
<a class="role-chip role-chip-reader" href="${pageContext.request.contextPath}/reader/home">
<span aria-hidden="true">读</span>
<strong>读者</strong>
<small>/reader/home</small>
</a>
</section>
<nav class="side-nav" aria-label="模块导航">
<a class="side-nav-link ${fn:contains(currentUri, '/dashboard') ? 'is-active' : ''}"
href="${pageContext.request.contextPath}/dashboard">
<span aria-hidden="true">台</span>工作台
</a>
<a class="side-nav-link ${fn:contains(currentUri, '/catalog') ? 'is-active' : ''}"
href="${pageContext.request.contextPath}/catalog">
<span aria-hidden="true">搜</span>馆藏检索
</a>
<c:if test="${sessionScope.userRole == 'administrator' or sessionScope.userRole == 'librarian'}">
<a class="side-nav-link ${fn:contains(currentUri, '/books') ? 'is-active' : ''}"
href="${pageContext.request.contextPath}/books">
<span aria-hidden="true">书</span>图书管理
</a>
<a class="side-nav-link ${fn:contains(currentUri, '/book-categories') ? 'is-active' : ''}"
href="${pageContext.request.contextPath}/book-categories">
<span aria-hidden="true">类</span>图书分类管理
</a>
<a class="side-nav-link ${fn:contains(currentUri, '/readers') ? 'is-active' : ''}"
href="${pageContext.request.contextPath}/readers">
<span aria-hidden="true">人</span>读者管理
</a>
<a class="side-nav-link ${fn:contains(currentUri, '/borrowing') ? 'is-active' : ''}"
href="${pageContext.request.contextPath}/borrowing">
<span aria-hidden="true">借</span>借阅流通
</a>
<a class="side-nav-link ${fn:contains(currentUri, '/reports') ? 'is-active' : ''}"
href="${pageContext.request.contextPath}/reports">
<span aria-hidden="true">报</span>报表中心
</a>
</c:if>
<c:if test="${sessionScope.userRole == 'reader'}">
<a class="side-nav-link ${fn:contains(currentUri, '/reader/loans') ? 'is-active' : ''}"
href="${pageContext.request.contextPath}/reader/loans">
<span aria-hidden="true">历</span>读者借阅历史
</a>
</c:if>
<c:if test="${sessionScope.userRole == 'administrator'}">
<a class="side-nav-link ${fn:contains(currentUri, '/admin/users') ? 'is-active' : ''}"
href="${pageContext.request.contextPath}/admin/users">
<span aria-hidden="true">户</span>用户管理
</a>
<a class="side-nav-link ${fn:contains(currentUri, '/admin/system-logs') ? 'is-active' : ''}"
href="${pageContext.request.contextPath}/admin/system-logs">
<span aria-hidden="true">志</span>系统日志
</a>
</c:if>
</nav>
<div class="sidebar-footer">
<span class="sidebar-menu-dot" aria-hidden="true">≡</span>
<a href="${pageContext.request.contextPath}/logout">退出登录</a>
</div>
</aside>
<div class="app-topbar">
<div class="breadcrumb">已登录 <span>/</span> Dashboard</div>
<form class="global-search" action="${pageContext.request.contextPath}/catalog" method="get">
<label class="sr-only" for="globalTitle">搜索图书、读者、功能</label>
<input id="globalTitle" name="title" type="search" placeholder="搜索图书、读者、功能...">
<button type="submit" aria-label="搜索">⌕</button>
</form>
<div class="topbar-actions">
<span class="notification-dot" aria-label="通知">!</span>
<span class="avatar" aria-hidden="true">
<c:choose>
<c:when test="${sessionScope.userRole == 'administrator'}">管</c:when>
<c:when test="${sessionScope.userRole == 'librarian'}">馆</c:when>
<c:otherwise>读</c:otherwise>
</c:choose>
</span>
<span class="user-pill">
<c:out value="${sessionScope.authenticatedUser.displayName}" />
</span>
<span class="role-label">
<c:out value="${sessionScope.authenticatedUser.role.displayName}" />
</span>
</div>
</div>
</c:when>
<c:otherwise>
<a class="auth-brand" href="${pageContext.request.contextPath}/dashboard">MZH 图书馆</a>
</c:otherwise>
</c:choose>
</header>