import React, { useState, useCallback } from 'react'; import { Nav, Button } from '@douyinfe/semi-ui'; import {IconAppCenter, IconArticle, IconFolder, IconPhoneStroke, IconSetting} from '@douyinfe/semi-icons'; const defaultItems = [ { title: '应用管理', key: 'app', icon: , children: [ { title: '应用控制台', key: '/app/perm', children: [] }, { title: '查看应用', key: '/app/list', children: [] }, { title: '创建应用', key: '/app/create', children: [] }, { title: '应用鉴权', key: '/app/auth', children: [] }, ], }, { title: '版本管理', key: 'version', icon: , children: [ { title: '版本发布', key: '/version/release', children: [] }, { title: '产品功能发布', key: '/feature/release', children: [] }, { title: '发版记录', key: '/version/releases', children: [] }, { title: '开发文档', key: '/version/doc', children: [] }, { title: 'VESDK介绍', key: '/version/sdkinfo', children: [] }, ], }, { title: '模块化打包', key: 'module', icon: , children: [ // { title: 'CI打包配置', key: '/module/ciconfig', children: [] }, { title: '业务打包配置', key: '/module/cilist', children: [] }, { title: '宏模块管理', key: '/module/group', children: [] }, { title: '宏参数管理', key: '/module/param', children: [] }, { title: '分支管理', key: '/module/branch', children: [] }, ], }, { title: '机型打分', key: 'device', icon: , children: [ { title: '机型性能查询', key: '/benchmark/performance', children: [] }, { title: '生成黑白名单', key: '/benchmark/list', children: [] }, { title: '黑白名单管理', key: '/benchmark/manage', children: [] }, { title: '机型查询', key: '/benchmark/model', children: [] }, { title: '元数据管理', key: '/benchmark/data', children: [] }, { title: '场景打分管理', key: '/benchmark/scene', children: [] }, ], }, { title: 'VESDK数据', key: 'vesdk', icon: , children: [ { title: 'VESDK DAU趋势', key: '/trend/dau', children: [] }, { title: 'VESDK API趋势', key: '/trend/api', children: [] }, ], }, { title: '工具能力', key: 'setting', icon: , children: [ { title: '群消息发送', key: '/setting/msg', children: [] }, { title: '群标签管理', key: '/setting/tag', children: [] }, { title: '上传文件', key: '/setting/upload', children: [] }, ], }, ]; const normalize = ({ title: text, key: itemKey, children: items, ...rest } = {}) => ({ ...rest, text, itemKey, items: Array.isArray(items) && items.length ? items.map(normalize) : undefined, }); const Demo = (props = {}) => { const [items, setItems] = useState(() => defaultItems.map(normalize)); const [selectedKeys, setSelectedKeys] = useState([]); const [openKeys, setOpenKeys] = useState([]); const onSelect = useCallback(item => { console.log(item); setSelectedKeys([item.itemKey]); }, []); const onOpenChange = useCallback(item => { console.log('onOpenChange: ', item); setOpenKeys([...item.openKeys]); }); return (
); }; export default Demo;