# 菜单
#### **框架标准菜单定义**
平台管理端菜单项 `app\dict\menu\admin.php `
站点管理端菜单项 ` app\dict\menu\site.php `
niucloud-admin框架首次安装系统时,会自动加载上面的两个菜单字典到数据表中sys_menu表中。一定要注意。niucloud-admin框架的设计机制,切记!开发者不允许直接在sys_menu数据表中进行菜单项的操作,而必须在菜单字典中修改编辑。
**修改菜单注意事项**
1. 每次修改编辑了菜单字典,必须要刷新菜单缓存(开发工具\更新缓存\刷新菜单),才能更新到数据表sys_menu中
2. 插件开发时,有针对于菜单的处理,安装插件后一定要首先在站点套餐中勾选菜单项,界面才会生效
常常,我们开发了菜单功能,发现界面怎么都没有按照预定的想法变化,就是忽略了上面的步骤。
#### **插件中菜单定义**
插件中也可以自定义菜单项,niucloud-admin框架对于插件的约束是宽容的,插件可以对整个系统的菜单项进行操作。甚至可以操作标准菜单定义。插件中菜单项的定义位置与标准菜单项的定义方式几乎相同。<br>
例如在hello_world插件中,对于平台管理端、站点管理端的菜单项的定义位置在
平台管理端菜单项 `addon\hello_world\app\dict\menu\admin.php `
站点管理端菜单项 ` addon\hello_world\app\dict\menu\site.php `
插件安装时,这两个地方定义的菜单项的结构,框架会自动装载到菜单数据表sys_menu中
**特殊处理:**
在niucloud框架的站点端中,当本站点只有一个应用时应用的一级菜单不作显示, 二级菜单作为一级菜单展示。
<br>
**注意!插件安装,卸载时,系统会自动装载,删除菜单,不需要开发者在插件的安装、卸载脚本中对于菜单做相关处理**
![](https://img.kancloud.cn/6c/72/6c722dd6f4e89a531dc56ffd53e8c368_423x459.png)
```
<?php
return [
[
'menu_name' => '插件站点菜单',
'menu_key' => 'niucloud_site_hello',
'menu_type' => 1,
'icon' => 'iconfont-iconyingyongshichang',
'api_url' => '',
'router_path' => 'hello_world',
'view_path' => 'hello_world/site',
'methods' => '',
'sort' => 90,
'status' => 1,
'is_show' => 1,
],
/* [
'menu_name' => '会员列表',
'menu_key' => 'member_list',
'parent_key' => 'member',
'menu_type' => 1,
'icon' => 'iconfont-iconhuiyuanliebiao',
'api_url' => 'member/member',
'router_path' => 'hello_world_member_list',
'view_path' => 'hello_world/member',
'methods' => 'get',
'sort' => 100,
'status' => 1,
'is_show' => 1,
'children' => [
]
],
"delete" => "member" //针对修改系统菜单处理方式,可以删除系统菜单,设置对应key值,也可删除不需要的菜单处理
*/
];
```
menu_name 菜单的标题,出现在菜单项上的文字
menu_key 菜单的关键字,这个必须唯一,添加父子菜单,删除等操作键
menu_type 菜单类型,0表示目录 1表示菜单 2表示功能按钮
icon 菜单的图标
api_url 菜单对应的后台api接口地址,作用是控制api接口权限与菜单权限控制一致,并非实际调用URL
router_path 路由地址,表示实际的菜单调用网址URL,菜单调用路由的开发,请参考相关开发说明
view_path view文件地址,表示实际前端view文件地址,一般的,路由地址与view文件地址不一致
methods 请求方法,与api_url 对应,包括GET, POST, PUT, DELETE
sort 排序号,排序号越大,越靠前
status 状态,1表示启用,0表示禁用 (暂时没有作用)
is_show 菜单是否可见 1表示可见 0表示隐藏
系统菜单的特殊处理
`delete => "member" 针对修改系统菜单处理方式,可以删除系统菜单,设置对应key值,也可删除不需要的菜单处理, 这个只是插件菜单的处理方式。用于删除系统菜单(sys_menu表中软删除)。
`
通过上面的方式,插件中可以针对框架的某个菜单项进行软删除,替换菜单功能为自己的功能。
例如,我们开发一个软件,发现框架本身的会员列表不符合要求,我们不应该直接修改框架的会员列表功能,而应该软删除框架自带的会员列表菜单,然后全新开发一套会员列表功能。新建会员列表菜单路由到自己开发的会员列表功能。 这样的好处是,框架进行升级时,可以完全兼容升级。
- 源码下载
- 安装部署
- 环境要求
- 安装视频教程
- 宝塔部署
- 授权绑定
- 二次开发须知
- 技术栈
- 目录结构
- 命名规范
- 二次开发指导
- 二次开发环境搭建步骤
- 二次开发注意事项
- 单站和Saas模式开发
- 插件结构描述
- MENU开发
- DIY组件/页面开发
- 自定义手机端DIY装修页面
- Route 路由处理
- Services中的core文件夹
- 自定义站点管理端控制台页面样式
- 调用素材资源
- Resource资源文件
- 引入图标ICON
- SMS发送短信开发
- Job 消息队列和计划任务
- 消息队列
- 计划任务开发
- 生产环境编译打包处理步骤
- 生产环境搭建步骤
- 插件安装时npm,composer检测不可用问题处理
- 上传图片大小限制修改
- 插件uniapp开发
- 菜单语言包
- 插件打包
- 插件内测在线升级
- 自定义端口开发
- 二次开发应用插件视频教程
- 二次开发安装视频教程
- 准备工作与创建插件
- 插件目录整体说明
- 插件admin目录
- 插件app目录说明(adminapi、api、验证器)
- 插件app目录(dict、job)
- 插件app目录说明(lang、listener)
- 插件app目录说明(model、service)
- 插件uniapp目录说明
- 插件开发之后台功能开发(代码生成器)
- 插件开发之uniapp功能开发(api)第一节
- 插件开发之uniapp功能开发(api)第二节
- 插件开发之uniapp功能开发(api)第三节
- 插件安装与打包原理
- 消息队列开发
- 计划任务开发
- DIY组件和自定义页面装修开发
- 支付接口开发
- 插件升级包打包流程以及云编译功能
- 常见问题
- 怎么添加菜单,添加了菜单不出现怎么回事
- 怎么配置跨域的问题
- 站点site端(租户端、商家端)和saas管理端(平台端)究竟啥意思,有啥区别
- 框架中是有订单表order,假如开发一个商城插件,请问商城的订单数据是不是重新搞一个订单表shop_order
- 有些支付平台是绑定回调唯一网址或目录,如果有几个开发者开发插件都有支付那这块怎么解决?
- 站点过期,可以登录,这样对吗?
- 计划任务怎么启动啊
- Git多分支开发,切换分支
- 安装应用出现is_dir():报错处理方案
- 绑定授权时出现“请求来源产品与授权产品不一致”解决方案
- “未找到admin源码所在目录”的解决方案
- 页面装修本地开发环境配置
- 接口请求错误处理方案
- 未获取到授权信息问题处理方案
- 腾讯地图配置
- 请求超时问题处理方案
- 下载应用时提示找不到zip解决方案
- 怎么关闭开发调试模式
- 获取数据失败问题处理方案
- 框架安装后,访问域名无法进入admin端(多数发生在本地)
- 底部导航失效问题
- 开放平台小程序审核通过发布失败问题
- 先升级插件后升级框架,导致云编译报debounce的错误
- 微信公众号自动回复不通
- 修改访问域名默认跳转端口
- 插件与框架的兼容问题处理
- 升级提示mkdir()处理方案
- 代码生成器
- 设计数据表
- 导入数据表
- 添加字段
- 代码生成
- 效果预览
- niucloud (服务端)
- 服务端目录结构
- 整体运行流程
- 入口文件
- 模块
- 中间件
- 控制器
- 路由
- 模型类
- 服务类
- 验证类
- 消息队列
- 开发消息队列
- 多语言
- 装载器
- 短信发送
- 上传文件
- 第三方支付
- 第三方登录
- 数据字典装载器
- 打印
- 事件
- 消息提醒(模版消息)
- 数据字典
- admin (后台管理端)
- 准备工作
- 新手入门
- 目录结构
- 系统配置
- 路由
- 接口
- 管理端编译上传
- uni-app(手机端前端)
- 准备工作
- 前端目录结构
- Hbuilder开发
- 发行h5
- 运行uniapp
- 发行uniapp
- Visual Studio Code开发
- 发行 uniapp
- 运行 uniapp
- 配置项
- 路由
- 接口
- 分包建议
- 手机端编译
- 微信小程序编译上传
- web端(PC前端)
- 准备工作
- 目录结构
- 代码运行
- 路由
- 接口
- 黑暗主题
- web端打包上线
- api接口
- 配置手册
- 阿里云oss云存储配置
- 三方开放平台小程序托管
- 计划任务配置
- 站点域名配置
- 小票打印配置
- 电子面单配置
- 微信小程序客服配置