164 lines
		
	
	
		
			7.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			164 lines
		
	
	
		
			7.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
{% extends 'base.html' %}
 | 
						|
 | 
						|
{% block title %}公告管理 - 图书管理系统{% endblock %}
 | 
						|
 | 
						|
{% block head %}
 | 
						|
<link rel="stylesheet" href="{{ url_for('static', filename='css/announcement-manage.css') }}">
 | 
						|
{% endblock %}
 | 
						|
 | 
						|
{% block content %}
 | 
						|
<div class="announcement-manage-container">
 | 
						|
    <div class="page-header">
 | 
						|
        <h1>公告管理</h1>
 | 
						|
        <a href="{{ url_for('announcement.add_announcement') }}" class="btn btn-primary">
 | 
						|
            <i class="fas fa-plus"></i> 添加公告
 | 
						|
        </a>
 | 
						|
    </div>
 | 
						|
 | 
						|
    <!-- 搜索和筛选 -->
 | 
						|
    <div class="filter-container">
 | 
						|
        <form action="{{ url_for('announcement.manage_announcements') }}" method="get" class="filter-form">
 | 
						|
            <div class="form-group">
 | 
						|
                <input type="text" name="search" class="form-control" placeholder="搜索公告标题..." value="{{ search }}">
 | 
						|
            </div>
 | 
						|
            <div class="form-group">
 | 
						|
                <select name="status" class="form-control">
 | 
						|
                    <option value="">全部状态</option>
 | 
						|
                    <option value="1" {% if status == 1 %}selected{% endif %}>已发布</option>
 | 
						|
                    <option value="0" {% if status == 0 %}selected{% endif %}>已撤销</option>
 | 
						|
                </select>
 | 
						|
            </div>
 | 
						|
            <button type="submit" class="btn btn-secondary">
 | 
						|
                <i class="fas fa-search"></i> 搜索
 | 
						|
            </button>
 | 
						|
        </form>
 | 
						|
    </div>
 | 
						|
 | 
						|
    <!-- 公告列表 -->
 | 
						|
    <div class="announcement-list">
 | 
						|
        {% if pagination.items %}
 | 
						|
        <table class="table announcement-table">
 | 
						|
            <thead>
 | 
						|
                <tr>
 | 
						|
                    <th>ID</th>
 | 
						|
                    <th>标题</th>
 | 
						|
                    <th>发布者</th>
 | 
						|
                    <th>发布时间</th>
 | 
						|
                    <th>最后更新</th>
 | 
						|
                    <th>状态</th>
 | 
						|
                    <th>置顶</th>
 | 
						|
                    <th>操作</th>
 | 
						|
                </tr>
 | 
						|
            </thead>
 | 
						|
            <tbody>
 | 
						|
                {% for announcement in pagination.items %}
 | 
						|
                <tr>
 | 
						|
                    <td>{{ announcement.id }}</td>
 | 
						|
                    <td>
 | 
						|
                        <a href="{{ url_for('announcement.announcement_detail', announcement_id=announcement.id) }}" target="_blank" class="announcement-title">
 | 
						|
                            {{ announcement.title }}
 | 
						|
                        </a>
 | 
						|
                    </td>
 | 
						|
                    <td>{{ announcement.publisher.username if announcement.publisher else '系统' }}</td>
 | 
						|
                    <td>{{ announcement.created_at.strftime('%Y-%m-%d %H:%M') }}</td>
 | 
						|
                    <td>{{ announcement.updated_at.strftime('%Y-%m-%d %H:%M') }}</td>
 | 
						|
                    <td>
 | 
						|
                        <span class="badge badge-{{ 'success' if announcement.status == 1 else 'secondary' }}">
 | 
						|
                            {{ '已发布' if announcement.status == 1 else '已撤销' }}
 | 
						|
                        </span>
 | 
						|
                    </td>
 | 
						|
                    <td>
 | 
						|
                        <span class="badge badge-{{ 'primary' if announcement.is_top else 'light' }}">
 | 
						|
                            {{ '已置顶' if announcement.is_top else '未置顶' }}
 | 
						|
                        </span>
 | 
						|
                    </td>
 | 
						|
                    <td>
 | 
						|
                        <div class="btn-group">
 | 
						|
                            <a href="{{ url_for('announcement.edit_announcement', announcement_id=announcement.id) }}" class="btn btn-sm btn-info">
 | 
						|
                                <i class="fas fa-edit"></i> 编辑
 | 
						|
                            </a>
 | 
						|
                            <button class="btn btn-sm btn-{{ 'warning' if announcement.status == 1 else 'success' }}"
 | 
						|
                                    onclick="changeStatus({{ announcement.id }}, {{ 0 if announcement.status == 1 else 1 }})">
 | 
						|
                                <i class="fas fa-{{ 'times' if announcement.status == 1 else 'check' }}"></i>
 | 
						|
                                {{ '撤销' if announcement.status == 1 else '发布' }}
 | 
						|
                            </button>
 | 
						|
                            <button class="btn btn-sm btn-{{ 'secondary' if announcement.is_top else 'primary' }}"
 | 
						|
                                    onclick="changeTopStatus({{ announcement.id }}, {{ 'false' if announcement.is_top else 'true' }})">
 | 
						|
                                <i class="fas fa-thumbtack"></i>
 | 
						|
                                {{ '取消置顶' if announcement.is_top else '置顶' }}
 | 
						|
                            </button>
 | 
						|
                        </div>
 | 
						|
                    </td>
 | 
						|
                </tr>
 | 
						|
                {% endfor %}
 | 
						|
            </tbody>
 | 
						|
        </table>
 | 
						|
 | 
						|
        <!-- 分页 -->
 | 
						|
        <div class="pagination-container">
 | 
						|
            {% if pagination.pages > 1 %}
 | 
						|
            <nav aria-label="Page navigation">
 | 
						|
                <ul class="pagination">
 | 
						|
                    {% if pagination.has_prev %}
 | 
						|
                    <li class="page-item">
 | 
						|
                        <a class="page-link" href="{{ url_for('announcement.manage_announcements', page=pagination.prev_num, search=search, status=status) }}" aria-label="Previous">
 | 
						|
                            <span aria-hidden="true">«</span>
 | 
						|
                        </a>
 | 
						|
                    </li>
 | 
						|
                    {% else %}
 | 
						|
                    <li class="page-item disabled">
 | 
						|
                        <a class="page-link" href="#" aria-label="Previous">
 | 
						|
                            <span aria-hidden="true">«</span>
 | 
						|
                        </a>
 | 
						|
                    </li>
 | 
						|
                    {% endif %}
 | 
						|
 | 
						|
                    {% for page_num in pagination.iter_pages(left_edge=2, right_edge=2, left_current=2, right_current=2) %}
 | 
						|
                        {% if page_num %}
 | 
						|
                            {% if page_num == pagination.page %}
 | 
						|
                            <li class="page-item active">
 | 
						|
                                <a class="page-link" href="{{ url_for('announcement.manage_announcements', page=page_num, search=search, status=status) }}">{{ page_num }}</a>
 | 
						|
                            </li>
 | 
						|
                            {% else %}
 | 
						|
                            <li class="page-item">
 | 
						|
                                <a class="page-link" href="{{ url_for('announcement.manage_announcements', page=page_num, search=search, status=status) }}">{{ page_num }}</a>
 | 
						|
                            </li>
 | 
						|
                            {% endif %}
 | 
						|
                        {% else %}
 | 
						|
                            <li class="page-item disabled">
 | 
						|
                                <a class="page-link" href="#">...</a>
 | 
						|
                            </li>
 | 
						|
                        {% endif %}
 | 
						|
                    {% endfor %}
 | 
						|
 | 
						|
                    {% if pagination.has_next %}
 | 
						|
                    <li class="page-item">
 | 
						|
                        <a class="page-link" href="{{ url_for('announcement.manage_announcements', page=pagination.next_num, search=search, status=status) }}" aria-label="Next">
 | 
						|
                            <span aria-hidden="true">»</span>
 | 
						|
                        </a>
 | 
						|
                    </li>
 | 
						|
                    {% else %}
 | 
						|
                    <li class="page-item disabled">
 | 
						|
                        <a class="page-link" href="#" aria-label="Next">
 | 
						|
                            <span aria-hidden="true">»</span>
 | 
						|
                        </a>
 | 
						|
                    </li>
 | 
						|
                    {% endif %}
 | 
						|
                </ul>
 | 
						|
            </nav>
 | 
						|
            {% endif %}
 | 
						|
        </div>
 | 
						|
        {% else %}
 | 
						|
        <div class="no-records">
 | 
						|
            <i class="fas fa-info-circle"></i>
 | 
						|
            <p>没有找到符合条件的公告</p>
 | 
						|
        </div>
 | 
						|
        {% endif %}
 | 
						|
    </div>
 | 
						|
</div>
 | 
						|
{% endblock %}
 | 
						|
 | 
						|
{% block scripts %}
 | 
						|
<script src="{{ url_for('static', filename='js/announcement-manage.js') }}"></script>
 | 
						|
{% endblock %}
 |