ant-design-vue/components/trigger/demo/nested.vue

88 lines
2.3 KiB
Vue

<script>
import Trigger from '../index'
import '../assets/index.less'
const builtinPlacements = {
left: {
points: ['cr', 'cl'],
},
right: {
points: ['cl', 'cr'],
},
top: {
points: ['bc', 'tc'],
},
bottom: {
points: ['tc', 'bc'],
},
topLeft: {
points: ['bl', 'tl'],
},
topRight: {
points: ['br', 'tr'],
},
bottomRight: {
points: ['tr', 'br'],
},
bottomLeft: {
points: ['tl', 'bl'],
},
}
const popupBorderStyle = {
border: '1px solid red',
padding: '10px',
}
export default {
render () {
return (
<div style={{ margin: '200px' }}>
<div>
<Trigger
popupPlacement='left'
action={['click']}
builtinPlacements={builtinPlacements}
>
<div slot='popup' style={popupBorderStyle}>i am a click popup</div>
<span>
<div ref='saveContainerRef1' />
<Trigger
popupPlacement='bottom'
action={['hover']}
builtinPlacements={builtinPlacements}
getPopupContainer={() => this.$refs.saveContainerRef1}
>
<div slot='popup' style={popupBorderStyle}>i am a hover popup</div>
<span href='#' style={{ margin: '20px' }}>trigger</span>
</Trigger>
</span>
</Trigger>
</div>
{ false ? <div style={{ margin: '50px' }}>
<Trigger
popupPlacement='right'
action={['click', 'hover']}
builtinPlacements={builtinPlacements}
>
<div style={popupBorderStyle} slot='popup' onClick={(e) => { e.stopPropagation() }}>
<div ref='saveContainerRef' />
<Trigger
popupPlacement='bottom'
action={['click']}
builtinPlacements={builtinPlacements}
getPopupContainer={() => this.$refs.saveContainerRef}
>
<div slot='popup' style={popupBorderStyle}>I am inner Trigger Popup</div>
<span href='#' style={{ margin: 20 }}>clickToShowInnerTrigger</span>
</Trigger>
</div>
<span href='#' style={{ margin: '20px' }} onClick={console.log}>trigger</span>
</Trigger>
</div> : null}
</div>
)
},
}
</script>