Popover: add manual

pull/1099/head
qingwei.li 2016-11-16 13:52:43 +08:00
parent d4e45e8d9b
commit 602c569989
4 changed files with 19 additions and 5 deletions

View File

@ -207,7 +207,7 @@ Of course, you can nest other operations. It's more light-weight than using a di
### Attributes ### Attributes
| Attribute | Description | Type | Accepted Values | Default | | Attribute | Description | Type | Accepted Values | Default |
|--------------------|----------------------------------------------------------|-------------------|-------------|--------| |--------------------|----------------------------------------------------------|-------------------|-------------|--------|
| trigger | how the popover is triggered | string | click/focus/hover | click | | trigger | how the popover is triggered | string | click/focus/hover/manual | click |
| title | popover title | string | — | — | | title | popover title | string | — | — |
| content | popover content, can be replaced with a default `slot` | string | — | — | | content | popover content, can be replaced with a default `slot` | string | — | — |
| width | popover width | string, number | — | Min width 150px | | width | popover width | string, number | — | Min width 150px |

View File

@ -234,7 +234,7 @@ Popover 的属性与 Tooltip 很类似,它们都是基于`Vue-popper`开发的
### Attributes ### Attributes
| 参数 | 说明 | 类型 | 可选值 | 默认值 | | 参数 | 说明 | 类型 | 可选值 | 默认值 |
|--------------------|----------------------------------------------------------|-------------------|-------------|--------| |--------------------|----------------------------------------------------------|-------------------|-------------|--------|
| trigger | 触发方式 | String | click/focus/hover | click | | trigger | 触发方式 | String | click/focus/hover/manual | click |
| title | 标题 | String | — | — | | title | 标题 | String | — | — |
| content | 显示的内容,也可以通过 `slot` 传入 DOM | String | — | — | | content | 显示的内容,也可以通过 `slot` 传入 DOM | String | — | — |
| width | 宽度 | String, Number | — | 最小宽度 150px | | width | 宽度 | String, Number | — | 最小宽度 150px |

View File

@ -28,7 +28,7 @@ export default {
trigger: { trigger: {
type: String, type: String,
default: 'click', default: 'click',
validator: value => ['click', 'focus', 'hover'].indexOf(value) > -1 validator: value => ['click', 'focus', 'hover', 'manual'].indexOf(value) > -1
}, },
title: String, title: String,
content: String, content: String,
@ -67,7 +67,7 @@ export default {
on(popper, 'mouseenter', this.handleMouseEnter); on(popper, 'mouseenter', this.handleMouseEnter);
on(reference, 'mouseleave', this.handleMouseLeave); on(reference, 'mouseleave', this.handleMouseLeave);
on(popper, 'mouseleave', this.handleMouseLeave); on(popper, 'mouseleave', this.handleMouseLeave);
} else { } else if (this.trigger === 'focus') {
let found = false; let found = false;
if ([].slice.call(reference.children).length) { if ([].slice.call(reference.children).length) {

View File

@ -45,6 +45,20 @@ describe('Popover', () => {
}, 250); // 200ms }, 250); // 200ms
}); });
it('manual', done => {
vm = createVM('manual');
const compo = vm.$refs.popover;
const button = vm.$el.querySelector('button');
triggerEvent(button, 'mouseenter');
expect(compo.showPopper).to.false;
triggerEvent(button, 'mouseleave');
setTimeout(_ => {
expect(compo.showPopper).to.false;
done();
}, 250); // 200ms
});
it('focus input in children node', () => { it('focus input in children node', () => {
vm = createVue(` vm = createVue(`
<div> <div>