后台菜单管理器

下载次数:0
查看数:32
最后更新:2025-09-11
¥199.00 ¥299.00
插件版本:
v1.1.0
兼容 BeikeShop 版本:
v1.6.0, v1.5.6, v1.5.5, v1.5.4, v1.5.3, v1.5.2
售后说明:
一次购买永久使用,并赠送1个月技术支持
插件购买流程
1
登录您的BeikeShop商城后台
2
点击右上角“插件市场”
3
选择需要购买的插件
4
购买&安装
插件描述

🎯 功能概述

BeikShop 菜单管理器是一个强大的后台菜单管理插件,提供以下核心功能:

✨ 主要特性

  • 🔄 菜单导入/重置: 一键导入系统默认菜单或重置菜单配置
  • 📝 可视化编辑: 直观的菜单添加、编辑、删除操作
  • 🎨 拖拽排序: 支持拖拽方式调整菜单顺序
  • 🔐 权限控制: 基于角色的菜单访问权限管理
  • 🌍 多语言支持: 支持11种语言的完整本地化
  • 📱 响应式设计: 支持移动端菜单隐藏设置
  • 🎯 智能激活: 基于路由的菜单激活状态控制

🛠️ 技术特性

  • 路由智能识别: 自动同步路由名称和URL
  • 权限自动创建: 导入菜单时自动创建对应权限
  • 缓存优化: 智能缓存管理,确保性能
  • 层级管理: 支持无限层级的菜单结构

🚀 快速开始

1. 访问菜单管理器

  1. 登录 BeikShop 后台管理系统
  2. 导航至 系统设置 > 菜单管理器
  3. 进入菜单管理界面

2. 首次使用建议

推荐操作流程

  1. 点击 "导入默认菜单" 按钮导入系统预设菜单
  2. 根据需要调整菜单顺序(拖拽排序)
  3. 编辑菜单权限设置
  4. 测试菜单显示效果

📥 菜单导入与重置

导入默认菜单

功能说明:一键导入 BeikShop 系统的默认菜单结构,包括所有核心功能模块。

操作步骤

  1. 点击页面顶部的 "导入默认菜单" 按钮
  2. 在确认对话框中点击 "确定"
  3. 系统将自动创建以下菜单:
    • 首页
    • 订单管理(含子菜单)
    • 商品管理(含子菜单)
    • 客户管理(含子菜单)
    • 内容管理(含子菜单)
    • 统计报表(含子菜单)
    • 设计管理(含子菜单)
    • 插件管理(含子菜单)
    • 系统设置(含子菜单)
    • 帮助中心

自动创建内容

  • ✅ 菜单项及层级结构
  • ✅ 多语言翻译
  • ✅ 对应权限记录
  • ✅ 路由配置
  • ✅ 图标设置

重置菜单

功能说明:清除所有自定义菜单,恢复到系统默认状态。

⚠️ 重要提醒:此操作将删除所有自定义菜单,请谨慎使用!

操作步骤

  1. 点击 "重置菜单" 按钮
  2. 在确认对话框中点击 "确定"
  3. 系统将:
    • 删除所有现有菜单
    • 重新导入默认菜单
    • 重置权限配置

➕ 菜单添加与编辑

添加新菜单

操作步骤

  1. 点击 "添加菜单" 按钮
  2. 填写菜单基本信息
  3. 配置菜单参数
  4. 点击 "保存" 完成创建

编辑现有菜单

操作步骤

  1. 在菜单列表中找到要编辑的菜单
  2. 点击 "编辑" 按钮
  3. 修改菜单配置
  4. 点击 "保存" 保存更改

删除菜单

操作步骤

  1. 在菜单列表中找到要删除的菜单
  2. 点击 "删除" 按钮
  3. 在确认对话框中点击 "确定"

注意事项

  • 删除父菜单会同时删除所有子菜单
  • 删除操作不可恢复,请谨慎操作

菜单排序

拖拽排序

  1. 鼠标悬停在菜单项上
  2. 按住鼠标左键拖拽菜单到目标位置
  3. 松开鼠标完成排序
  4. 系统自动保存新的排序

📋 参数详细说明

基本信息

菜单名称 (name)

  • 说明: 菜单的唯一标识符,用于系统内部识别
  • 格式: 英文字母、数字、下划线
  • 示例: products, order_list, customer_groups
  • 注意: 不能重复,建议使用有意义的英文名称

菜单标题 (title)

  • 说明: 显示在菜单中的文字标题
  • 支持: 多语言翻译
  • 示例:
    • 中文: 商品管理
    • 英文: Product Management
  • 注意: 支持HTML实体编码

父级菜单 (parent_id)

  • 说明: 指定菜单的父级菜单,用于创建层级结构
  • 选项:
    • 顶级菜单: 作为主菜单显示
    • 选择父菜单: 作为子菜单显示
  • 层级: 支持无限层级嵌套

路由配置

路由名称 (route)

  • 说明: Laravel 路由名称,用于生成菜单链接
  • 格式: Laravel 标准路由名称
  • 示例:
    • admin.products.index
    • admin.orders.show
    • admin.customers.create
  • 功能:
    • 🔄 自动同步URL地址
    • 🔄 自动生成权限标识
    • 🎯 智能菜单激活

路由选择器

  • 支持搜索过滤
  • 显示所有可用路由
  • 点击选择自动填充

菜单链接 (url)

  • 说明: 菜单点击后跳转的URL地址
  • 格式: 相对路径或绝对路径
  • 示例:
    • /admin/products
    • /admin/orders/create
    • https://external-site.com
  • 自动同步: 选择路由名称后自动生成

显示设置

菜单图标 (icon)

  • 说明: 菜单项前显示的图标
  • 格式: Bootstrap Icons 类名
  • 示例:
    • bi bi-house (首页图标)
    • bi bi-box (商品图标)
    • bi bi-people (用户图标)
  • 工具: 内置图标选择器

排序 (sort_order)

  • 说明: 菜单显示顺序,数字越小越靠前
  • 格式: 正整数
  • 默认: 0
  • 建议: 使用10的倍数便于后续插入

菜单类型与行为

菜单类型 (type)

  • 菜单 (menu): 标准菜单项,支持子菜单
  • 链接 (link): 纯链接,通常用于外部链接

打开方式 (target)

  • 当前窗口 (_self): 在当前窗口打开链接
  • 新窗口 (_blank): 在新窗口/标签页打开链接

权限控制

权限标识 (permission)

  • 说明: 访问此菜单所需的权限标识符
  • 格式: module_action
  • 示例:
    • orders_index (订单列表权限)
    • products_create (商品创建权限)
    • customers_update (客户更新权限)
  • 自动同步: 选择路由后自动生成
  • 留空: 所有用户可见(除超级管理员外)

高级配置

路由前缀 (prefixes)

  • 说明: 用于菜单激活状态判断的路由前缀列表
  • 格式: 逗号分隔的路由前缀
  • 示例: admin/products,admin/categories,admin/brands
  • 作用: 当前页面路径匹配任一前缀时,菜单显示为激活状态

排除路由 (excludes)

  • 说明: 不激活此菜单的路由列表
  • 格式: 逗号分隔的路由路径
  • 示例: admin/products/create,admin/products/import
  • 作用: 即使路径匹配前缀,这些路由也不会激活菜单

状态控制

显示状态 (visible)

  • 显示: 菜单在侧边栏中正常显示
  • 隐藏: 菜单不在侧边栏中显示(但仍可通过URL访问)

启用状态 (enabled)

  • 启用: 菜单正常工作
  • 禁用: 菜单完全不可用

移动端隐藏 (hide_mobile)

  • 显示: 在移动端也显示此菜单
  • 隐藏: 在移动端隐藏此菜单

🔧 高级功能

智能菜单激活

菜单管理器使用智能算法确定当前激活的菜单项:

激活规则

  1. 精确匹配: 当前路由与菜单路由完全匹配
  2. 前缀匹配: 当前路径匹配菜单的路由前缀
  3. 排除规则: 排除路由中的路径不会激活菜单
  4. 层级激活: 子菜单激活时,父菜单也会激活

配置示例

菜单: 商品管理
路由前缀: admin/products,admin/categories,admin/brands
排除路由: admin/products/export

激活情况:
✅ /admin/products        → 激活
✅ /admin/products/1      → 激活
✅ /admin/categories      → 激活
❌ /admin/products/export → 不激活(被排除)
❌ /admin/orders          → 不激活
    

❓ 常见问题

Q1: 菜单不显示怎么办?

可能原因

  • 菜单状态为禁用或隐藏
  • 用户没有访问权限
  • 权限标识符设置错误

解决方法

  1. 检查菜单的显示状态和启用状态
  2. 确认用户角色是否有相应权限
  3. 验证权限标识符是否正确

Q2: 菜单激活状态不正确?

可能原因

  • 路由前缀配置不正确
  • 排除路由设置有误
  • 路由名称不匹配

解决方法

  1. 检查并调整路由前缀配置
  2. 确认排除路由设置
  3. 验证路由名称是否正确

Q3: 拖拽排序不生效?

可能原因

  • JavaScript 错误
  • 权限不足
  • 网络连接问题

解决方法

  1. 检查浏览器控制台是否有错误
  2. 确认用户有菜单管理权限
  3. 刷新页面重试

Q4: 导入默认菜单失败?

可能原因

  • 数据库连接问题
  • 权限表不存在
  • 插件未正确安装

解决方法

  1. 检查数据库连接
  2. 确认权限系统正常工作
  3. 重新安装插件

Q5: 多语言显示不正确?

可能原因

  • 语言包缺失
  • 翻译键不存在
  • 缓存问题

解决方法

  1. 确认语言包完整
  2. 清除翻译缓存
  3. 检查翻译键是否正确