# 菜單
#### **框架標準菜單定義**
平臺管理端菜單項 `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>
**注意!插件安裝,卸載時,系統會自動裝載,刪除菜單,不需要開發者在插件的安裝、卸載腳本中對于菜單做相關處理**

```
<?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()處理方案
- 云編譯時node.js內存不足導致內存溢出處理方案
- 報錯Allowed memory size of ** bytes exhausted (tried to allocate ** bytes)處理方法
- 代碼生成器
- 設計數據表
- 導入數據表
- 添加字段
- 代碼生成
- 效果預覽
- niucloud (服務端)
- 服務端目錄結構
- 整體運行流程
- 入口文件
- 模塊
- 中間件
- 控制器
- 路由
- 模型類
- 服務類
- 驗證類
- 消息隊列
- 開發消息隊列
- 多語言
- 裝載器
- 短信發送
- 上傳文件
- 第三方支付
- 第三方登錄
- 數據字典裝載器
- 打印
- 事件
- 消息提醒(模版消息)
- 數據字典
- admin (后臺管理端)
- 準備工作
- 新手入門
- 目錄結構
- 系統配置
- 路由
- 接口
- 管理端編譯上傳
- uni-app(手機端前端)
- 準備工作
- 前端目錄結構
- Hbuilder開發
- 發行h5
- 運行uniapp
- 發行uniapp
- Visual Studio Code開發
- 發行 uniapp
- 運行 uniapp
- 配置項
- 路由
- 接口
- 分包建議
- 手機端編譯
- 微信小程序編譯上傳
- web端(PC前端)
- 準備工作
- 目錄結構
- 代碼運行
- 路由
- 接口
- 黑暗主題
- web端打包上線
- api接口
- 配置手冊
- 阿里云oss云存儲配置
- 三方開放平臺小程序托管
- 計劃任務配置
- 站點域名配置
- 小票打印配置
- 電子面單配置
- 微信小程序客服配置
- 微信打款配置