新增模块
- Nav 模型(applications/models/admin_nav.py):公开导航表,与 admin_power 解耦
- NavOutSchema / NavManageSchema(applications/schemas/admin_nav.py)
- 前台公开视图 applications/view/public/nav.py:/site/、/site/category/<name>、/site/api/navs,无需登录
- 后台管理视图 applications/view/system/nav.py:CRUD + 启用/禁用,挂入 system_bp
- 前台模板 templates/public/{base,index,category}.html(独立配色,无需登录即可访问)
- 后台模板 templates/system/nav/{main,add,edit}.html(Layui table + form)
调整
- applications/view/__init__.py:注册前台蓝图到根
- applications/view/system/__init__.py:注册后台 nav 子蓝图
- applications/common/script/admin.py:admin init/export 支持 navs 数组
- applications/common/script/app_data/init.json:新增 10 条导航种子 + 4 条 system:nav 权限
数据库
- 新增 public_nav 表(含 category 索引)
- migration: 38751d88d42c_add_public_nav_table.py
38 lines
1.7 KiB
HTML
38 lines
1.7 KiB
HTML
{% extends 'public/base.html' %}
|
|
|
|
{% block content %}
|
|
{% if not groups %}
|
|
<div class="empty">
|
|
<i class="layui-icon layui-icon-face-surprised" style="font-size:48px;color:#ccc;"></i>
|
|
<p>暂无导航数据,请先在后台【系统管理 → 导航管理】添加。</p>
|
|
</div>
|
|
{% else %}
|
|
{% for category, items in groups.items() %}
|
|
<section class="section">
|
|
<div class="section-header">
|
|
<h2>{{ category }}</h2>
|
|
<div class="meta">
|
|
共 {{ items|length }} 个 ·
|
|
<a href="{{ url_for('public_nav.category_detail', name=category) }}">查看全部 →</a>
|
|
</div>
|
|
</div>
|
|
<div class="grid">
|
|
{% for item in items %}
|
|
<a class="card"
|
|
href="{{ item.url }}"
|
|
{% if item.is_external %}target="_blank" rel="noopener noreferrer"{% endif %}>
|
|
<div class="title-row">
|
|
<div class="icon-wrap">
|
|
<i class="layui-icon {{ item.icon }}"></i>
|
|
</div>
|
|
<div class="title">{{ item.title }}</div>
|
|
</div>
|
|
<div class="desc">{{ item.description or '暂无描述' }}</div>
|
|
<div class="url">{{ item.url }}</div>
|
|
</a>
|
|
{% endfor %}
|
|
</div>
|
|
</section>
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% endblock %} |