Commit b75ad4a1206ff67d7d86b77eb3c6551d9aae6269
1 parent
6ed0cd73
fixed #1700
Showing
2 changed files
with
16 additions
and
16 deletions
Show diff stats
examples/routers/poptip.vue
| 1 | <template> | 1 | <template> |
| 2 | - <div style="margin: 100px;"> | ||
| 3 | - <Poptip | ||
| 4 | - confirm | ||
| 5 | - transfer | ||
| 6 | - title="您确认删除这条内容吗?" | ||
| 7 | - @on-ok="ok" | ||
| 8 | - @on-cancel="cancel"> | ||
| 9 | - <Button>删除</Button> | ||
| 10 | - </Poptip> | ||
| 11 | - <Poptip | ||
| 12 | - confirm | ||
| 13 | - title="您确认删除这条内容吗?" | ||
| 14 | - @on-ok="ok" | ||
| 15 | - @on-cancel="cancel"> | ||
| 16 | - <Button>删除</Button> | 2 | + <div style="margin: 200px;"> |
| 3 | + <Poptip title="提示标题" transfer> | ||
| 4 | + <div slot="content" style="padding: 50px"> | ||
| 5 | + <Button>click me</Button> | ||
| 6 | + </div> | ||
| 7 | + <Button>click 激活</Button> | ||
| 17 | </Poptip> | 8 | </Poptip> |
| 18 | </div> | 9 | </div> |
| 19 | </template> | 10 | </template> |
src/components/poptip/poptip.vue
| @@ -18,6 +18,7 @@ | @@ -18,6 +18,7 @@ | ||
| 18 | :style="styles" | 18 | :style="styles" |
| 19 | ref="popper" | 19 | ref="popper" |
| 20 | v-show="visible" | 20 | v-show="visible" |
| 21 | + @click="handleTransferClick" | ||
| 21 | @mouseenter="handleMouseenter" | 22 | @mouseenter="handleMouseenter" |
| 22 | @mouseleave="handleMouseleave" | 23 | @mouseleave="handleMouseleave" |
| 23 | :data-transfer="transfer" | 24 | :data-transfer="transfer" |
| @@ -102,7 +103,8 @@ | @@ -102,7 +103,8 @@ | ||
| 102 | return { | 103 | return { |
| 103 | prefixCls: prefixCls, | 104 | prefixCls: prefixCls, |
| 104 | showTitle: true, | 105 | showTitle: true, |
| 105 | - isInput: false | 106 | + isInput: false, |
| 107 | + disableCloseUnderTransfer: false, // transfer 模式下,点击 slot 也会触发关闭 | ||
| 106 | }; | 108 | }; |
| 107 | }, | 109 | }, |
| 108 | computed: { | 110 | computed: { |
| @@ -156,7 +158,14 @@ | @@ -156,7 +158,14 @@ | ||
| 156 | } | 158 | } |
| 157 | this.visible = !this.visible; | 159 | this.visible = !this.visible; |
| 158 | }, | 160 | }, |
| 161 | + handleTransferClick () { | ||
| 162 | + if (this.transfer) this.disableCloseUnderTransfer = true; | ||
| 163 | + }, | ||
| 159 | handleClose () { | 164 | handleClose () { |
| 165 | + if (this.disableCloseUnderTransfer) { | ||
| 166 | + this.disableCloseUnderTransfer = false; | ||
| 167 | + return false; | ||
| 168 | + } | ||
| 160 | if (this.confirm) { | 169 | if (this.confirm) { |
| 161 | this.visible = false; | 170 | this.visible = false; |
| 162 | return true; | 171 | return true; |