gmfe / Think

观麦前端团队的官方博客
68 stars 3 forks source link

导航栏配置注意 #23

Open HecateDK opened 6 years ago

HecateDK commented 6 years ago

导航菜单是一个网站的灵魂,用户依赖导航在各个页面中进行跳转。我们的项目一般为顶部导航和侧边导航结合模式,顶部导航提供全局性的类目和功能,侧边导航提供多级结构来收纳和排列网站架构。

为什么

怎么做

​ 因为ma业务比较简单,所以最开始在ma上接入framework的面包屑。期间整理了一下ma的navigation和router,向着更合理的方向修改。

​在业务上,我们提供三级导航菜单。 ​若业务需要四级、五级、、、面包屑的时候,参考ma项目的js/finance/payment/imports: ​

​componentDidMount() {
   actions.app_set_breadcrumbs(['导入']);  // 参数为一个数组
}

componentWillUnmount() {
   actions.app_set_breadcrumbs();
}

刚开始在ma上实验的时候,定的规则是:

image ​ ​但整理station的navigation后,发现,没那么简单,station业务类型比较复杂:

所以综合上诉情况考虑,定下的navigation配置规则是:

image

提供privilege: 可选字段,用于判断这一整个菜单栏是否显示 提供auth: 可选字段,用于判断这一个页面是否显示

对于特殊的global判别,用if~else~补充判断:

image

综上,navigation提供该用户有权访问的所有菜单栏,一个数组,每个一级菜单为一些object,每个object里面有linknamesub属性,sub是二级菜单,里面也是一些object,每个object里面有linkname属性。

逻辑是: 点击运营数据菜单栏,跳到该一级菜单下最常用的一个页面,如果没有权限则,则顺着找下去 用ma的运营数据为例子:

image

其中核心代码是renderTo

image

解决了什么问题

待续。。。。。