upgrade_page_browse
This commit is contained in:
		
							parent
							
								
									a23fa40c82
								
							
						
					
					
						commit
						868cc88d54
					
				@ -86,7 +86,7 @@
 | 
			
		||||
    border-radius: 12px;
 | 
			
		||||
    box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11), 0 1px 3px rgba(0, 0, 0, 0.08);
 | 
			
		||||
    position: relative;
 | 
			
		||||
    z-index: 2;
 | 
			
		||||
    z-index: 10; /* 增加z-index值 */
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.search-form {
 | 
			
		||||
@ -203,7 +203,7 @@
 | 
			
		||||
    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: 100;
 | 
			
		||||
    z-index: 20; /* 确保下拉菜单有更高的z-index */
 | 
			
		||||
    display: none;
 | 
			
		||||
    max-height: 300px;
 | 
			
		||||
    overflow-y: auto;
 | 
			
		||||
@ -272,6 +272,54 @@
 | 
			
		||||
    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 {
 | 
			
		||||
    display: flex;
 | 
			
		||||
@ -340,7 +388,7 @@
 | 
			
		||||
    gap: 25px;
 | 
			
		||||
    margin-bottom: 40px;
 | 
			
		||||
    position: relative;
 | 
			
		||||
    z-index: 2;
 | 
			
		||||
    z-index: 5; /* 降低图书卡片的z-index */
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* 图书卡片样式 */
 | 
			
		||||
 | 
			
		||||
@ -1,15 +1,42 @@
 | 
			
		||||
// 图书浏览页面脚本
 | 
			
		||||
$(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');
 | 
			
		||||
        $('.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) {
 | 
			
		||||
        if (!$(e.target).closest('.category-filters').length) {
 | 
			
		||||
            $('.category-filter-dropdown').removeClass('show');
 | 
			
		||||
        if (!$(e.target).closest('.category-filters, .sort-filters, .order-filters').length) {
 | 
			
		||||
            $('.category-filter-dropdown, .sort-dropdown, .order-dropdown').removeClass('show');
 | 
			
		||||
            $('.category-filter-toggle').removeClass('active');
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
@ -251,6 +278,21 @@ $(document).ready(function() {
 | 
			
		||||
                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');
 | 
			
		||||
 | 
			
		||||
@ -47,19 +47,49 @@
 | 
			
		||||
                        {% endfor %}
 | 
			
		||||
                    </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>
 | 
			
		||||
                        <option value="created_at" {% if sort == 'created_at' %}selected{% endif %}>入库时间</option>
 | 
			
		||||
                        <option value="title" {% if sort == 'title' %}selected{% endif %}>书名</option>
 | 
			
		||||
                        <option value="stock" {% if sort == 'stock' %}selected{% endif %}>库存</option>
 | 
			
		||||
                    </select>
 | 
			
		||||
 | 
			
		||||
                <!-- 修改默认排序下拉列表 -->
 | 
			
		||||
                <div class="sort-filters">
 | 
			
		||||
                    <button type="button" class="category-filter-toggle sort-toggle">
 | 
			
		||||
                        <i class="fas fa-sort"></i> {{ '入库时间' if sort == 'created_at' else '书名' if sort == 'title' else '库存' if sort == 'stock' else '默认排序' }}
 | 
			
		||||
                        <i class="fas fa-chevron-down"></i>
 | 
			
		||||
                    </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 class="form-group filter-group">
 | 
			
		||||
                    <select name="order" class="form-control" onchange="this.form.submit()">
 | 
			
		||||
                        <option value="desc" {% if order == 'desc' %}selected{% endif %}>降序</option>
 | 
			
		||||
                        <option value="asc" {% if order == 'asc' %}selected{% endif %}>升序</option>
 | 
			
		||||
                    </select>
 | 
			
		||||
 | 
			
		||||
                <!-- 修改升降序下拉列表 -->
 | 
			
		||||
                <div class="order-filters">
 | 
			
		||||
                    <button type="button" class="category-filter-toggle order-toggle">
 | 
			
		||||
                        <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>
 | 
			
		||||
        </form>
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user