feat: 现代化翻页组件 + 完整项目更新
- 新增 Pagination 通用组件:首页/上一页/页码/下一页/末页导航 - PickModal 和 SwapModal 集成分页功能,每页20项 - 搜索/筛选切换自动回到第1页 - 现代化CSS样式:hover浮起动效、主色高亮、移动端适配 - 新增 dashboard、admin 管理模板 - 菜系(cuisine)模型和迁移 - 构建脚本 build.py 支持 PyInstaller 打包 - 前端资源重新构建
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
{% extends "admin/base.html" %}
|
||||
{% load i18n static jazzmin %}
|
||||
{% get_jazzmin_settings request as jazzmin_settings %}
|
||||
{% get_jazzmin_ui_tweaks as jazzmin_ui %}
|
||||
|
||||
{% block title %}{% trans "Password change successful" %} | {{ jazzmin_settings.site_title }}{% endblock %}
|
||||
|
||||
{% block bodyclass %}password-done-page{% endblock %}
|
||||
|
||||
{% block extrastyle %}
|
||||
<style>
|
||||
.password-done-page .app-content {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
justify-content: center;
|
||||
padding-top: 48px;
|
||||
padding-bottom: 48px;
|
||||
}
|
||||
.done-card {
|
||||
width: 100%;
|
||||
max-width: 440px;
|
||||
text-align: center;
|
||||
background: var(--bs-card-bg, #fff);
|
||||
border: 1px solid var(--bs-border-color, #dee2e6);
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 1px 3px rgba(0,0,0,.06), 0 6px 16px rgba(0,0,0,.04);
|
||||
padding: 48px 32px 40px;
|
||||
}
|
||||
.done-icon {
|
||||
width: 72px;
|
||||
height: 72px;
|
||||
border-radius: 50%;
|
||||
background: linear-gradient(135deg, #10b981, #059669);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin: 0 auto 20px;
|
||||
font-size: 32px;
|
||||
color: #fff;
|
||||
animation: popIn .4s ease;
|
||||
}
|
||||
@keyframes popIn {
|
||||
0% { transform: scale(.5); opacity: 0; }
|
||||
70% { transform: scale(1.08); }
|
||||
100% { transform: scale(1); opacity: 1; }
|
||||
}
|
||||
.done-card h2 {
|
||||
font-size: 20px;
|
||||
font-weight: 600;
|
||||
margin: 0 0 8px;
|
||||
color: var(--bs-body-color, #212529);
|
||||
}
|
||||
.done-card p {
|
||||
font-size: 14px;
|
||||
color: var(--bs-secondary-color, #6c757d);
|
||||
margin: 0 0 28px;
|
||||
line-height: 1.5;
|
||||
}
|
||||
.btn-back {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
padding: 10px 24px;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
border-radius: 6px;
|
||||
border: none;
|
||||
background: linear-gradient(135deg, #4f46e5, #7c3aed);
|
||||
color: #fff;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
transition: opacity .15s, transform .1s;
|
||||
}
|
||||
.btn-back:hover { opacity: .9; color: #fff; text-decoration: none; }
|
||||
.btn-back:active { transform: scale(.98); }
|
||||
</style>
|
||||
{% endblock %}
|
||||
|
||||
{% block page_content %}
|
||||
<div class="app-content">
|
||||
<div class="done-card">
|
||||
<div class="done-icon"><i class="fas fa-check"></i></div>
|
||||
<h2>{% trans "Password change successful" %}</h2>
|
||||
<p>{% trans "Your password has been updated." %}</p>
|
||||
<a href="{% url 'admin:index' %}" class="btn-back">
|
||||
<i class="fas fa-arrow-left"></i>
|
||||
{% trans "Back to admin" %}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user