fix
parent
c0c7d95c01
commit
4657e729ef
|
@ -32,16 +32,20 @@ export default {
|
||||||
},
|
},
|
||||||
on: {},
|
on: {},
|
||||||
}
|
}
|
||||||
return <Tooltip
|
return (
|
||||||
{...toolTipProps}
|
inlineCollapsed && props.level === 1
|
||||||
>
|
? <Tooltip {...toolTipProps}>
|
||||||
<template slot='title'>
|
<template slot='title'>
|
||||||
{inlineCollapsed && props.level === 1 ? cloneVNodes($slots.default, true) : ''}
|
{ cloneVNodes($slots.default, true) }
|
||||||
</template>
|
</template>
|
||||||
<Item {...itemProps} ref='menuItem'>
|
<Item {...itemProps} ref='menuItem'>
|
||||||
{$slots.default}
|
{$slots.default}
|
||||||
</Item>
|
</Item>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
|
: <Item {...itemProps} ref='menuItem'>
|
||||||
|
{$slots.default}
|
||||||
|
</Item>
|
||||||
|
)
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -31,24 +31,22 @@ export default {
|
||||||
},
|
},
|
||||||
mounted () {
|
mounted () {
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this._container = this.getContainer()
|
|
||||||
this._container.appendChild(this.$el)
|
|
||||||
this.initAlign = true
|
this.initAlign = true
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
beforeDestroy () {
|
beforeDestroy () {
|
||||||
this.$el.remove()
|
this.$el.remove()
|
||||||
},
|
},
|
||||||
beforeUpdate () {
|
// beforeUpdate () {
|
||||||
this.$nextTick(() => {
|
// this.$nextTick(() => {
|
||||||
const newContainer = this.getContainer()
|
// const newContainer = this.getContainer()
|
||||||
if (newContainer !== this._container) {
|
// if (newContainer !== this._container) {
|
||||||
this._container = newContainer
|
// this._container = newContainer
|
||||||
this._container.appendChild(this.$el)
|
// this._container.appendChild(this.$el)
|
||||||
this.$refs.alignInstance.forceAlign()
|
// this.$refs.alignInstance.forceAlign()
|
||||||
}
|
// }
|
||||||
})
|
// })
|
||||||
},
|
// },
|
||||||
watch: {
|
watch: {
|
||||||
visible (val) {
|
visible (val) {
|
||||||
if (val) {
|
if (val) {
|
||||||
|
@ -217,7 +215,7 @@ export default {
|
||||||
render () {
|
render () {
|
||||||
const { destroyPopup, getMaskElement, getPopupElement, initAlign } = this
|
const { destroyPopup, getMaskElement, getPopupElement, initAlign } = this
|
||||||
return (
|
return (
|
||||||
<div style='position: absolute; top: 0px; left: 0px; width: 100%;'>
|
<div>
|
||||||
{initAlign ? (
|
{initAlign ? (
|
||||||
getMaskElement(),
|
getMaskElement(),
|
||||||
destroyPopup
|
destroyPopup
|
||||||
|
|
|
@ -58,7 +58,7 @@ export default {
|
||||||
},
|
},
|
||||||
offsetX: undefined,
|
offsetX: undefined,
|
||||||
offsetY: undefined,
|
offsetY: undefined,
|
||||||
transitionName: '',
|
transitionName: 'rc-trigger-popup-zoom',
|
||||||
destroyPopupOnHide: false,
|
destroyPopupOnHide: false,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -159,7 +159,7 @@ export default {
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
<label>
|
<label>
|
||||||
a-checkbox
|
<a-checkbox
|
||||||
value='rc-trigger-popup-zoom'
|
value='rc-trigger-popup-zoom'
|
||||||
onChange={this.onTransitionChange}
|
onChange={this.onTransitionChange}
|
||||||
checked={state.transitionName === 'rc-trigger-popup-zoom'}
|
checked={state.transitionName === 'rc-trigger-popup-zoom'}
|
||||||
|
@ -172,7 +172,7 @@ export default {
|
||||||
trigger:
|
trigger:
|
||||||
|
|
||||||
<label>
|
<label>
|
||||||
a-checkbox
|
<a-checkbox
|
||||||
value='hover'
|
value='hover'
|
||||||
checked={!!trigger.hover}
|
checked={!!trigger.hover}
|
||||||
onChange={this.onTriggerChange}
|
onChange={this.onTriggerChange}
|
||||||
|
@ -180,7 +180,7 @@ export default {
|
||||||
hover
|
hover
|
||||||
</label>
|
</label>
|
||||||
<label>
|
<label>
|
||||||
a-checkbox
|
<a-checkbox
|
||||||
value='focus'
|
value='focus'
|
||||||
checked={!!trigger.focus}
|
checked={!!trigger.focus}
|
||||||
onChange={this.onTriggerChange}
|
onChange={this.onTriggerChange}
|
||||||
|
@ -188,7 +188,7 @@ export default {
|
||||||
focus
|
focus
|
||||||
</label>
|
</label>
|
||||||
<label>
|
<label>
|
||||||
a-checkbox
|
<a-checkbox
|
||||||
value='click'
|
value='click'
|
||||||
checked={!!trigger.click}
|
checked={!!trigger.click}
|
||||||
onChange={this.onTriggerChange}
|
onChange={this.onTriggerChange}
|
||||||
|
@ -196,7 +196,7 @@ export default {
|
||||||
click
|
click
|
||||||
</label>
|
</label>
|
||||||
<label>
|
<label>
|
||||||
a-checkbox
|
<a-checkbox
|
||||||
value='contextMenu'
|
value='contextMenu'
|
||||||
checked={!!trigger.contextMenu}
|
checked={!!trigger.contextMenu}
|
||||||
onChange={this.onTriggerChange}
|
onChange={this.onTriggerChange}
|
||||||
|
@ -205,7 +205,7 @@ export default {
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
<label>
|
<label>
|
||||||
a-checkbox
|
<a-checkbox
|
||||||
checked={!!state.destroyPopupOnHide}
|
checked={!!state.destroyPopupOnHide}
|
||||||
onChange={this.handleDestroyPopupOnHide}
|
onChange={this.handleDestroyPopupOnHide}
|
||||||
/>
|
/>
|
||||||
|
@ -214,7 +214,7 @@ export default {
|
||||||
|
|
||||||
|
|
||||||
<label>
|
<label>
|
||||||
a-checkbox
|
<a-checkbox
|
||||||
checked={!!state.mask}
|
checked={!!state.mask}
|
||||||
onChange={this.onMask}
|
onChange={this.onMask}
|
||||||
/>
|
/>
|
||||||
|
@ -223,7 +223,7 @@ export default {
|
||||||
|
|
||||||
|
|
||||||
<label>
|
<label>
|
||||||
a-checkbox
|
<a-checkbox
|
||||||
checked={!!state.maskClosable}
|
checked={!!state.maskClosable}
|
||||||
onChange={this.onMaskClosable}
|
onChange={this.onMaskClosable}
|
||||||
/>
|
/>
|
||||||
|
@ -270,7 +270,7 @@ export default {
|
||||||
<div slot='popup' style={{ border: '1px solid red', padding: '10px', background: 'white' }}>
|
<div slot='popup' style={{ border: '1px solid red', padding: '10px', background: 'white' }}>
|
||||||
i am a popup
|
i am a popup
|
||||||
</div>
|
</div>
|
||||||
<a href='#' style={{ margin: '20px' }} onClick={preventDefault}>trigger</a>
|
<a-button onClick={preventDefault}>trigger</a-button>
|
||||||
</Trigger>
|
</Trigger>
|
||||||
</div>
|
</div>
|
||||||
</div>)
|
</div>)
|
||||||
|
|
|
@ -114,6 +114,7 @@ export default {
|
||||||
if (this._component) {
|
if (this._component) {
|
||||||
this._component.$destroy()
|
this._component.$destroy()
|
||||||
this._component = null
|
this._component = null
|
||||||
|
this.popupContainer.remove()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
@ -329,6 +330,7 @@ export default {
|
||||||
}
|
}
|
||||||
if (!this._component) {
|
if (!this._component) {
|
||||||
const div = document.createElement('div')
|
const div = document.createElement('div')
|
||||||
|
this.getContainer().appendChild(div)
|
||||||
this._component = new Vue({
|
this._component = new Vue({
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
|
@ -360,9 +362,18 @@ export default {
|
||||||
|
|
||||||
getContainer () {
|
getContainer () {
|
||||||
const { $props: props } = this
|
const { $props: props } = this
|
||||||
|
const popupContainer = document.createElement('div')
|
||||||
|
// Make sure default popup container will never cause scrollbar appearing
|
||||||
|
// https://github.com/react-component/trigger/issues/41
|
||||||
|
popupContainer.style.position = 'absolute'
|
||||||
|
popupContainer.style.top = '0'
|
||||||
|
popupContainer.style.left = '0'
|
||||||
|
popupContainer.style.width = '100%'
|
||||||
const mountNode = props.getPopupContainer
|
const mountNode = props.getPopupContainer
|
||||||
? props.getPopupContainer(this.$el) : props.getDocument().body
|
? props.getPopupContainer(this.$el) : props.getDocument().body
|
||||||
return mountNode
|
mountNode.appendChild(popupContainer)
|
||||||
|
this.popupContainer = popupContainer
|
||||||
|
return popupContainer
|
||||||
},
|
},
|
||||||
|
|
||||||
setPopupVisible (sPopupVisible) {
|
setPopupVisible (sPopupVisible) {
|
||||||
|
|
Loading…
Reference in New Issue