1. 制作动态路由后台
动态路由表是由后台计算的路由表,用这个路由表,前端用来绘制导航栏。地球号的动态路由表天然支持VUE路由。
一个VUE路由的样子如下。

通过观察这个VUE动态路由表,我们设计一个mysql数据表,通过关系表来维持一个三级路由关系。为什么选择3级,因为这是APP路由的极限了。所以在路由表中增加级别的数字。
同时,路由表里不仅存放路由,还存放一些动态视觉属性。如,某个button是否隐藏。 同时,路由表里还存放不同的菜单栏和导航栏,所以认定一个页面可以有多个菜单,多个导航栏。 同时,路由表里还可以存放颜色属性,css属性,图标属性,主题属性。不同的用户拥有完全不同的按钮。
最后我们决定,使用级联树结构(而不是固定的三级菜单结构)来表达数据表,因为还要表达css,颜色,图标等。 最后我们决定,不叫路由表,叫view表,或者叫主题表,theme.
总之,动态路由的方案是:
- 用户登录
- 后台根据用户登录uid,用户的shop(可能是社区直属,可能是企业直属,可能是店铺直属),获取用户的角色集合。
- 根据角色集合和app_id去routes表select出所有路由列表,和视觉属性表,注意,这里select all,因为一次select不可能太多。
- 然后根据app_id和roles到view表去获取view,注意,此时app_id和roles其实没有太大约束。
- 根据查询的结果,通过计算关系,组织返回的数据结构。