UNPKG

2.14 kBJavaScriptView Raw
1import React from 'react';
2import { Layout, Menu, Icon } from 'antd';
3
4const { SubMenu } = Menu;
5const { Sider } = Layout;
6
7
8export default class SiderView extends React.Component {
9
10
11 $renderItem(db) {
12 let res = [];
13 for(var k in db) {
14 const list = db[k];
15 const items = list.map((item, i) => {
16 return <Menu.Item key="{i}">item.page</Menu.Item>
17 });
18 res.push((
19 <SubMenu key="{k}" title={k}>
20 {items}
21 </SubMenu>
22 ))
23 }
24 return res;
25 }
26
27 render() {
28
29 const menuItems = this.$renderItem(this.props.db);
30
31
32 return (
33 <Sider width={200} style={{ background: '#fff' }}>
34 <Menu
35 mode="inline"
36 defaultSelectedKeys={['1']}
37 defaultOpenKeys={['sub1']}
38 style={{ height: '100%' }}
39 >
40 {menuItems}
41
42 <SubMenu key="sub1" title={<span><Icon type="user" />subnav 1</span>}>
43 <Menu.Item key="1">option1</Menu.Item>
44 <Menu.Item key="2">option2</Menu.Item>
45 <Menu.Item key="3">option3</Menu.Item>
46 <Menu.Item key="4">option4</Menu.Item>
47 </SubMenu>
48 <SubMenu key="sub2" title={<span><Icon type="laptop" />subnav 2</span>}>
49 <Menu.Item key="5">option5</Menu.Item>
50 <Menu.Item key="6">option6</Menu.Item>
51 <Menu.Item key="7">option7</Menu.Item>
52 <Menu.Item key="8">option8</Menu.Item>
53 </SubMenu>
54 <SubMenu key="sub3" title={<span><Icon type="notification" />subnav 3</span>}>
55 <Menu.Item key="9">option9</Menu.Item>
56 <Menu.Item key="10">option10</Menu.Item>
57 <Menu.Item key="11">option11</Menu.Item>
58 <Menu.Item key="12">option12</Menu.Item>
59 </SubMenu>
60 </Menu>
61 </Sider>
62 )
63 }
64}
\No newline at end of file