ant-design-vue/components/menu/demo/antd.vue

137 lines
3.6 KiB
Vue
Raw Normal View History

2018-01-02 11:05:02 +00:00
<script>
import { cloneElement } from '../../_util/vnode'
import Menu, { SubMenu, Item as MenuItem, Divider } from '../src/index'
2018-01-04 02:35:45 +00:00
import { Icon } from 'antd'
2018-01-02 11:05:02 +00:00
import '../assets/index.less'
import animate from 'css-animation'
function handleSelect (info) {
console.log(info)
console.log(`selected ${info.key}`)
}
const animation = {
enter (node, done) {
let height
return animate(node, 'rc-menu-collapse', {
start () {
height = node.offsetHeight
node.style.height = 0
},
active () {
node.style.height = `${height}px`
},
end () {
node.style.height = ''
done()
},
})
},
appear () {
return this.enter.apply(this, arguments)
},
leave (node, done) {
return animate(node, 'rc-menu-collapse', {
start () {
node.style.height = `${node.offsetHeight}px`
},
active () {
node.style.height = 0
},
end () {
node.style.height = ''
done()
},
})
},
}
export default {
methods: {
},
render () {
// const nestSubMenu = (<SubMenu title={<span>sub menu 2</span>} key='4'>
// <MenuItem key='4-1'>inner inner</MenuItem>
// <Divider/>
// <SubMenu
// key='4-2'
// title={<span>sub menu 3</span>}
// >
// <SubMenu title='sub 4-2-0' key='4-2-0'>
// <MenuItem key='4-2-0-1'>inner inner</MenuItem>
// <MenuItem key='4-2-0-2'>inner inner2</MenuItem>
// </SubMenu>
// <MenuItem key='4-2-1'>inn</MenuItem>
// <SubMenu title={<span>sub menu 4</span>} key='4-2-2'>
// <MenuItem key='4-2-2-1'>inner inner</MenuItem>
// <MenuItem key='4-2-2-2'>inner inner2</MenuItem>
// </SubMenu>
// <SubMenu title='sub 4-2-3' key='4-2-3'>
// <MenuItem key='4-2-3-1'>inner inner</MenuItem>
// <MenuItem key='4-2-3-2'>inner inner2</MenuItem>
// </SubMenu>
// </SubMenu>
// </SubMenu>)
function onOpenChange (value) {
console.log('onOpenChange', value)
}
const commonMenu = (<Menu class='test' onSelect={handleSelect} onOpenChange={onOpenChange}>
<SubMenu key='1'>
<template slot='title'><span>sub menu</span></template>
2018-01-04 02:35:45 +00:00
<MenuItem key='1-1'>
0-1
<Icon type='search'/>
</MenuItem>
2018-01-02 11:05:02 +00:00
<MenuItem key='1-2'>0-2</MenuItem>
</SubMenu>
</Menu>)
const horizontalMenu = cloneElement(commonMenu, { props: {
mode: 'horizontal',
// use openTransition for antd
openAnimation: 'slide-up',
}})
// const horizontalMenu2 = cloneElement(commonMenu, { props: {
// mode: 'horizontal',
// openAnimation: 'slide-up',
// triggerSubMenuAction: 'click',
// }})
// const verticalMenu = cloneElement(commonMenu, { props: {
// mode: 'vertical',
// openAnimation: 'zoom',
// }})
// const inlineMenu = cloneElement(commonMenu, { props: {
// mode: 'inline',
// defaultOpenKeys: ['1'],
// openAnimation: animation,
// }})
return (
<div style={{ margin: '20px' }}>
<h2>antd menu</h2>
<div>
<h3>horizontal</h3>
<div style={{ margin: '20px', width: '800px' }}>{horizontalMenu}</div>
<h3>horizontal and click</h3>
{/*
<div style={{ margin: '20px', width: '800px' }}>{horizontalMenu2}</div>
<h3>vertical</h3>
<div style={{ margin: '20px', width: '200px' }}>{verticalMenu}</div>
<h3>inline</h3>
<div style={{ margin: '20px', width: '400px' }}>{inlineMenu}</div>
*/}
</div>
</div>
)
},
}
</script>