一、界面样式

二、语法设计
语法包括三个关键字:catalogs,groups和items
- Catalogs属性
- name:对应原来的title属性,表示区域名,如环境信息和平台信息
- path: 路径,与原来设计一致,如/envInfo
- icon:属性,可以为空,默认设置为routes
- Groups属性
- name:对应原来的title属性,表示区域名,如环境信息和平台信息,【注意,如果Group下只有一个item,则不会显示在界面上,如应用管理下不会显示“工作负载”,只会显示Pod】
- path: 路径,原来设计是相对路径,本文是完整路径,如/envInfo/basicInfo,通过/envInfo完全匹配,可知式在Area“环境信息”下
- Items属性【kind和source必须2选一】
- name:对应原来的title属性,菜单名,如环境信息和平台信息
- kind:对应原来的name,表示Kubernetes的类型,可执行Kubectl api-resources进行Kind的查看
- source:表示外链,跳转到其它界面,
- component:适用的VUE组件,与原代码中views下相对路径一致
- path: 路径,原来设计是相对路径,本文是完整路径,如/envInfo/basicInfo/node,通过/envInfo/basicInfo/完全匹配,可知式在Area“环境信息”的Group“平台信息”下
- filter:可以根据JSON某个字段进行过滤
注意:
- 布局匹配
- items的path包含groups的path,则item在该group下
- groups的path包含Catalogs的path,则group在该Catalog下
- Kind的取值
- kind取值可以是Kind,如Pod、Deployment
- kind取值也可以是apiversion + “.” + kind,如apps.Deployment
{"apiVersion": "doslab.io/v1","kind": "Frontend","metadata": {"name": "routes-admin","namespace": "default"},"spec": {"catalogs": [{"name": "环境信息","path": "/envInfo"},{"name": "应用管理","path": "/appMgr"}],"groups": [{"name": "平台信息","path": "/envInfo/basicInfo"},{"name": "工作负载","path": "/appMgr/workload"}],"items": [{"component": "/table/index","name": "路侧节点","kind": "Node","path": "/envInfo/basicInfo/node","filter": {"metadata.labels.kubernetes#io/type": "local"}},{"component": "/dashboard/index","source": "http://133.133.135.32:31002/d/xfpJB9FGz/prometheus-dashboard?orgId=1&kiosk","name": "系统概览","path": "/envInfo/basicInfo/index"},{"component": "/table/index","name": "Pod","kind": "Pod","path": "/appMgr/workload/pod"}]}}
