From ba811b50b0c1cb7230530b5a42a310c6c567999d Mon Sep 17 00:00:00 2001 From: neverland Date: Tue, 12 Feb 2019 19:39:45 +0800 Subject: [PATCH] [new feature] Toast: add get-container prop (#2724) --- packages/mixins/popup/index.js | 16 ++++++++++------ packages/toast/en-US.md | 1 + packages/toast/index.js | 9 +++++---- packages/toast/zh-CN.md | 3 ++- 4 files changed, 18 insertions(+), 11 deletions(-) diff --git a/packages/mixins/popup/index.js b/packages/mixins/popup/index.js index d042014c0..f5588c68a 100644 --- a/packages/mixins/popup/index.js +++ b/packages/mixins/popup/index.js @@ -140,18 +140,22 @@ export default { move() { let container; - const { getContainer } = this; + if (getContainer) { - container = - typeof getContainer === 'string' - ? document.querySelector(getContainer) - : getContainer(); + if (typeof getContainer === 'string') { + container = + getContainer === 'body' + ? document.body + : document.querySelector(getContainer); + } else { + container = getContainer(); + } } else if (this.$parent) { container = this.$parent.$el; } - if (container) { + if (container && container !== this.$el.parentNode) { container.appendChild(this.$el); } }, diff --git a/packages/toast/en-US.md b/packages/toast/en-US.md index cea5ad911..01cc3ebfe 100644 --- a/packages/toast/en-US.md +++ b/packages/toast/en-US.md @@ -106,3 +106,4 @@ toast2.clear(); | loadingType | Loading icon type, can be set to `spinner` | `String` | `circular` | | duration | Toast duration(ms), won't disappear if value is 0 | `Number` | `3000` | | className | Custom className | `String | Array | Object` | - | +| get-container | Return the mount node for Popup | `String | () => HTMLElement` | `body` | diff --git a/packages/toast/index.js b/packages/toast/index.js index e725dab9c..9500929cd 100644 --- a/packages/toast/index.js +++ b/packages/toast/index.js @@ -5,14 +5,15 @@ import { isObj, isServer } from '../utils'; const defaultOptions = { type: 'text', mask: false, - message: '', value: true, - duration: 3000, + message: '', className: '', + duration: 3000, position: 'middle', - loadingType: 'circular', forbidClick: false, - overlayStyle: {} + loadingType: 'circular', + getContainer: 'body', + overlayStyle: null }; const parseOptions = message => (isObj(message) ? message : { message }); diff --git a/packages/toast/zh-CN.md b/packages/toast/zh-CN.md index 31e88391f..2aa942b6a 100644 --- a/packages/toast/zh-CN.md +++ b/packages/toast/zh-CN.md @@ -95,7 +95,7 @@ toast2.clear(); | 参数 | 说明 | 类型 | 默认值 | 版本 | |------|------|------|------|------| -| type | 提示类型,可选值为 `loading` `success` `fail` `html` | `String` | `text` | - | +| type | 提示类型,可选值为 `loading` `success`
`fail` `html` | `String` | `text` | - | | position | 位置,可选值为 `top` `middle` `bottom` | `String` | `middle` | - | | message | 内容 | `String` | `''` | - | - | | mask | 是否显示背景蒙层 | `Boolean` | `false` | - | @@ -103,3 +103,4 @@ toast2.clear(); | loadingType | 加载图标类型, 可选值为 `spinner` | `String` | `circular` | 1.1.3 | | duration | 展示时长(ms),值为 0 时,toast 不会消失 | `Number` | `3000` | - | | className | 自定义类名 | `String | Array | Object` | - | 1.6.0 | +| getContainer | 指定挂载的节点,可以传入选择器,
或一个返回节点的函数 | `String | () => HTMLElement` | `body` | 1.6.3 |