upgrade_page_browse
This commit is contained in:
parent
a23fa40c82
commit
868cc88d54
@ -86,7 +86,7 @@
|
|||||||
border-radius: 12px;
|
border-radius: 12px;
|
||||||
box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11), 0 1px 3px rgba(0, 0, 0, 0.08);
|
box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11), 0 1px 3px rgba(0, 0, 0, 0.08);
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 2;
|
z-index: 10; /* 增加z-index值 */
|
||||||
}
|
}
|
||||||
|
|
||||||
.search-form {
|
.search-form {
|
||||||
@ -203,7 +203,7 @@
|
|||||||
border-radius: 12px;
|
border-radius: 12px;
|
||||||
box-shadow: 0 7px 14px rgba(50, 50, 93, 0.1), 0 3px 6px rgba(0, 0, 0, 0.08);
|
box-shadow: 0 7px 14px rgba(50, 50, 93, 0.1), 0 3px 6px rgba(0, 0, 0, 0.08);
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
z-index: 100;
|
z-index: 20; /* 确保下拉菜单有更高的z-index */
|
||||||
display: none;
|
display: none;
|
||||||
max-height: 300px;
|
max-height: 300px;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
@ -272,6 +272,54 @@
|
|||||||
box-shadow: 0 0 0 2px rgba(102, 126, 234, 0.25);
|
box-shadow: 0 0 0 2px rgba(102, 126, 234, 0.25);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* 统一下拉菜单样式 */
|
||||||
|
.sort-filters, .order-filters {
|
||||||
|
position: relative;
|
||||||
|
flex: 1;
|
||||||
|
min-width: 150px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sort-toggle, .order-toggle {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: 10px 20px;
|
||||||
|
width: 100%;
|
||||||
|
height: 42px;
|
||||||
|
background: #f7fafc;
|
||||||
|
border: 1px solid #e4e7eb;
|
||||||
|
border-radius: 25px;
|
||||||
|
cursor: pointer;
|
||||||
|
font-size: 0.95rem;
|
||||||
|
color: #3c4858;
|
||||||
|
transition: all 0.3s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sort-toggle:hover, .order-toggle:hover {
|
||||||
|
background: #edf2f7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sort-dropdown, .order-dropdown {
|
||||||
|
position: absolute;
|
||||||
|
top: 100%;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
margin-top: 8px;
|
||||||
|
background: white;
|
||||||
|
border-radius: 12px;
|
||||||
|
box-shadow: 0 7px 14px rgba(50, 50, 93, 0.1), 0 3px 6px rgba(0, 0, 0, 0.08);
|
||||||
|
padding: 10px;
|
||||||
|
z-index: 20; /* 确保下拉菜单有更高的z-index */
|
||||||
|
display: none;
|
||||||
|
max-height: 300px;
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sort-dropdown.show, .order-dropdown.show {
|
||||||
|
display: block;
|
||||||
|
animation: fadeIn 0.2s;
|
||||||
|
}
|
||||||
|
|
||||||
/* 图书统计显示 */
|
/* 图书统计显示 */
|
||||||
.browse-stats {
|
.browse-stats {
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -340,7 +388,7 @@
|
|||||||
gap: 25px;
|
gap: 25px;
|
||||||
margin-bottom: 40px;
|
margin-bottom: 40px;
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 2;
|
z-index: 5; /* 降低图书卡片的z-index */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 图书卡片样式 */
|
/* 图书卡片样式 */
|
||||||
|
|||||||
@ -1,15 +1,42 @@
|
|||||||
// 图书浏览页面脚本
|
// 图书浏览页面脚本
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
// 分类筛选下拉菜单
|
// 分类筛选下拉菜单
|
||||||
$('.category-filter-toggle').click(function() {
|
$('.category-filter-toggle:not(.sort-toggle):not(.order-toggle)').click(function(e) {
|
||||||
|
e.stopPropagation();
|
||||||
|
// 关闭其他可能打开的下拉菜单
|
||||||
|
$('.category-filter-dropdown').not($(this).siblings('.category-filter-dropdown')).removeClass('show');
|
||||||
|
$('.category-filter-toggle').not($(this)).removeClass('active');
|
||||||
|
|
||||||
$(this).toggleClass('active');
|
$(this).toggleClass('active');
|
||||||
$('.category-filter-dropdown').toggleClass('show');
|
$(this).siblings('.category-filter-dropdown').toggleClass('show');
|
||||||
|
});
|
||||||
|
|
||||||
|
// 排序下拉菜单
|
||||||
|
$('.sort-toggle').click(function(e) {
|
||||||
|
e.stopPropagation();
|
||||||
|
// 关闭其他可能打开的下拉菜单
|
||||||
|
$('.category-filter-dropdown').not($(this).siblings('.sort-dropdown')).removeClass('show');
|
||||||
|
$('.category-filter-toggle').not($(this)).removeClass('active');
|
||||||
|
|
||||||
|
$(this).toggleClass('active');
|
||||||
|
$(this).siblings('.sort-dropdown').toggleClass('show');
|
||||||
|
});
|
||||||
|
|
||||||
|
// 升降序下拉菜单
|
||||||
|
$('.order-toggle').click(function(e) {
|
||||||
|
e.stopPropagation();
|
||||||
|
// 关闭其他可能打开的下拉菜单
|
||||||
|
$('.category-filter-dropdown').not($(this).siblings('.order-dropdown')).removeClass('show');
|
||||||
|
$('.category-filter-toggle').not($(this)).removeClass('active');
|
||||||
|
|
||||||
|
$(this).toggleClass('active');
|
||||||
|
$(this).siblings('.order-dropdown').toggleClass('show');
|
||||||
});
|
});
|
||||||
|
|
||||||
// 点击外部关闭下拉菜单
|
// 点击外部关闭下拉菜单
|
||||||
$(document).click(function(e) {
|
$(document).click(function(e) {
|
||||||
if (!$(e.target).closest('.category-filters').length) {
|
if (!$(e.target).closest('.category-filters, .sort-filters, .order-filters').length) {
|
||||||
$('.category-filter-dropdown').removeClass('show');
|
$('.category-filter-dropdown, .sort-dropdown, .order-dropdown').removeClass('show');
|
||||||
$('.category-filter-toggle').removeClass('active');
|
$('.category-filter-toggle').removeClass('active');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -251,6 +278,21 @@ $(document).ready(function() {
|
|||||||
transform: translateY(0);
|
transform: translateY(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* 添加下拉菜单的 z-index 样式,解决被图书挡住的问题 */
|
||||||
|
.filter-section {
|
||||||
|
position: relative;
|
||||||
|
z-index: 30;
|
||||||
|
}
|
||||||
|
|
||||||
|
.category-filter-dropdown, .sort-dropdown, .order-dropdown {
|
||||||
|
z-index: 31;
|
||||||
|
}
|
||||||
|
|
||||||
|
.books-grid {
|
||||||
|
position: relative;
|
||||||
|
z-index: 5;
|
||||||
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
$('<style>').text(notificationCSS).appendTo('head');
|
$('<style>').text(notificationCSS).appendTo('head');
|
||||||
|
|||||||
@ -47,19 +47,49 @@
|
|||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group filter-group">
|
|
||||||
<select name="sort" class="form-control" onchange="this.form.submit()">
|
<!-- 修改默认排序下拉列表 -->
|
||||||
<option value="id" {% if sort == 'id' %}selected{% endif %}>默认排序</option>
|
<div class="sort-filters">
|
||||||
<option value="created_at" {% if sort == 'created_at' %}selected{% endif %}>入库时间</option>
|
<button type="button" class="category-filter-toggle sort-toggle">
|
||||||
<option value="title" {% if sort == 'title' %}selected{% endif %}>书名</option>
|
<i class="fas fa-sort"></i> {{ '入库时间' if sort == 'created_at' else '书名' if sort == 'title' else '库存' if sort == 'stock' else '默认排序' }}
|
||||||
<option value="stock" {% if sort == 'stock' %}selected{% endif %}>库存</option>
|
<i class="fas fa-chevron-down"></i>
|
||||||
</select>
|
</button>
|
||||||
|
<div class="category-filter-dropdown sort-dropdown">
|
||||||
|
<a href="{{ url_for('book.browse_books', search=search, category_id=category_id, sort='id', order=order) }}"
|
||||||
|
class="category-item {% if sort == 'id' %}active{% endif %}">
|
||||||
|
<i class="fas fa-sort-numeric-down"></i> 默认排序
|
||||||
|
</a>
|
||||||
|
<a href="{{ url_for('book.browse_books', search=search, category_id=category_id, sort='created_at', order=order) }}"
|
||||||
|
class="category-item {% if sort == 'created_at' %}active{% endif %}">
|
||||||
|
<i class="fas fa-calendar-alt"></i> 入库时间
|
||||||
|
</a>
|
||||||
|
<a href="{{ url_for('book.browse_books', search=search, category_id=category_id, sort='title', order=order) }}"
|
||||||
|
class="category-item {% if sort == 'title' %}active{% endif %}">
|
||||||
|
<i class="fas fa-font"></i> 书名
|
||||||
|
</a>
|
||||||
|
<a href="{{ url_for('book.browse_books', search=search, category_id=category_id, sort='stock', order=order) }}"
|
||||||
|
class="category-item {% if sort == 'stock' %}active{% endif %}">
|
||||||
|
<i class="fas fa-warehouse"></i> 库存
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group filter-group">
|
|
||||||
<select name="order" class="form-control" onchange="this.form.submit()">
|
<!-- 修改升降序下拉列表 -->
|
||||||
<option value="desc" {% if order == 'desc' %}selected{% endif %}>降序</option>
|
<div class="order-filters">
|
||||||
<option value="asc" {% if order == 'asc' %}selected{% endif %}>升序</option>
|
<button type="button" class="category-filter-toggle order-toggle">
|
||||||
</select>
|
<i class="fas fa-{{ 'sort-amount-down' if order == 'desc' else 'sort-amount-up' }}"></i> {{ '降序' if order == 'desc' else '升序' }}
|
||||||
|
<i class="fas fa-chevron-down"></i>
|
||||||
|
</button>
|
||||||
|
<div class="category-filter-dropdown order-dropdown">
|
||||||
|
<a href="{{ url_for('book.browse_books', search=search, category_id=category_id, sort=sort, order='desc') }}"
|
||||||
|
class="category-item {% if order == 'desc' %}active{% endif %}">
|
||||||
|
<i class="fas fa-sort-amount-down"></i> 降序
|
||||||
|
</a>
|
||||||
|
<a href="{{ url_for('book.browse_books', search=search, category_id=category_id, sort=sort, order='asc') }}"
|
||||||
|
class="category-item {% if order == 'asc' %}active{% endif %}">
|
||||||
|
<i class="fas fa-sort-amount-up"></i> 升序
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user