- 🏠 简介
- 🔌 api接口
-
🔧 插件开发
- 介绍
- 插件优势
- 新建插件
- 技术栈
- 插件开发规范
- 插件目录结构
- model 层开发
- service 层开发
- api 接口开发
- menu 菜单开发
-
event 事件钩子开发
- 开发指南
- 常用事件
- SiteInit 站点初始化事件
- AddSiteAfter 站点创建后事件
- MemberRegister 会员注册后事件
- MemberLogin 会员登录后事件
- PayCreate 支付创建事件
- PaySuccess 支付成功事件
- RefundSuccess 退款成功事件
- TransferSuccess 转账成功事件
- BottomNavigation 底部导航事件
- NoticeData 消息模板数据内容事件
- GetQrcodeOfChannel 创建二维码事件
- ExportDataType 导出数据类型事件
- ExportData 导出数据源事件
- GetPosterType 海报类型事件
- GetPosterData 海报数据事件
- ShowCustomer 应用管理加载事件
- GetWechatTransferTradeScene 微信支付转账场景事件
- ThemeColor 主题风格事件
- initWap 手机端初始化加载事件
- dict 数据字典开发
- layout 自定义布局开发
- job 消息队列和计划任务开发
- notice 消息发送开发
- printer 小票打印模板开发
- export 数据导出开发
- diy 自定义组件/页面装修开发
- diy 自定义表单组件开发
- poster 自定义海报开发
- icon 引入图标
- 支付方式开发
- upgrade 插件版本升级
- 打包插件
- 授权信息变更回调通知
- 官网上架
- 📝 二次开发须知
- 👨💻 二次开发指导
-
🎬 二次开发应用插件视频教程
- 二次开发安装视频教程
- 准备工作与创建插件
- 插件目录整体说明
- 插件admin目录
- 插件app目录说明(adminapi、api、验证器)
- 插件app目录(dict、job)
- 插件app目录说明(lang、listener)
- 插件app目录说明(model、service)
- 插件uniapp目录说明
- 插件开发之后台功能开发(代码生成器)
- 插件开发之uniapp功能开发(api)第一节
- 插件开发之uniapp功能开发(api)第二节
- 插件开发之uniapp功能开发(api)第三节
- 插件安装与打包原理
- 消息队列开发
- 计划任务开发
- DIY组件和自定义页面装修开发
- 支付接口开发
- 插件升级包打包流程以及云编译功能
底部导航
功能介绍
底部导航用于在不同的功能模块之间进行快速切换。本功能允许插件开发者为各自的插件定义独立的底部导航结构,实现灵活的多模块导航体系。
每个插件都可以定义底部导航,需要实现 BottomNavigation 事件钩子
事件钩子关键代码
'BottomNavigation' => ['addon\shop\app\listener\BottomNavigationListener']
商城开发的底部导航,代码参考
关键代码(注意:list中每个link字段的数据结构就是自定义链接的)
<?php
namespace addon\shop\app\listener;
use app\service\core\addon\CoreAddonService;
use app\service\core\site\CoreSiteService;
/**
* 底部导航
*/
class BottomNavigationListener
{
public function handle($params = [])
{
$key = 'shop';
$site_addon = ( new CoreSiteService() )->getAddonKeysBySiteId(request()->siteId());
if (!in_array($key, $site_addon)) return;
if (!empty($params) && !empty($params[ 'key' ]) && $params[ 'key' ] != $key) return;
$core_addon_service = new CoreAddonService();
$addon_info = $core_addon_service->getAddonConfig($key);
return [
'key' => $key,
'info' => $addon_info,
'value' => [
'backgroundColor' => '#ffffff',
'textColor' => '#333333',
'textHoverColor' => '#FF4500',
'type' => '1',
'list' => [
[
"text" => "首页",
"link" => [
"parent" => "SHOP_LINK",
"name" => "SHOP_INDEX",
"title" => get_lang('dict_diy.shop_link_index'),
"url" => "/addon/shop/pages/index"
],
"iconPath" => "addon/shop/diy/tabbar/system-home.png",
"iconSelectPath" => "addon/shop/diy/tabbar/system-home-selected.png"
],
[
"text" => "我的",
"link" => [
"parent" => "SHOP_LINK",
"name" => "SHOP_MEMBER_INDEX",
"title" => get_lang('dict_diy.member_index'),
"url" => "/addon/shop/pages/member/index"
],
"iconPath" => "addon/shop/diy/tabbar/system-my.png",
"iconSelectPath" => "addon/shop/diy/tabbar/system-my-selected.png"
]
]
]
];
}
}
uni-app调用底部导航组件
框架封装了底部导航组件。如需了解自定义链接的核心原理,开发者可以自行阅读
文件位置:uni-app/src/components/tabbar/tabbar.vue
关键代码(若无特殊业务需求,通常不需要指定addon的值,默认会根据当前页面路由来加载底部导航配置)
<tabbar addon="shop" />