[Improvement] Toast: add setDefaultOptions method (#541)

This commit is contained in:
neverland 2018-01-18 09:41:38 +08:00 committed by GitHub
parent b7282356ee
commit 307113bc6b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 31 additions and 7 deletions

View File

@ -57,9 +57,10 @@ export default {
| Name | Attribute | Return value | Description |
|-----------|-----------|-----------|-------------|
| Dialog.alert | options | `Promise` | Show alert dialog |
| Dialog.confirm | options | `Promise` | Show confim dialog |
| Dialog.setDefaultOptions | options | `void` | Set default options of all dialogs |
| Dialog | `options` | `Promise` | Show dialog |
| Dialog.alert | `options` | `Promise` | Show alert dialog |
| Dialog.confirm | `options` | `Promise` | Show confim dialog |
| Dialog.setDefaultOptions | `options` | `void` | Set default options of all dialogs |
| Dialog.resetDefaultOptions | - | `void` | Reset default options of all dialogs |
| Dialog.close | - | `void` | Close dialog |

View File

@ -70,6 +70,8 @@ export default {
| Toast.loading | `options | message` | toast instance | Show loading toast |
| Toast.success | `options | message` | toast instance | Show success toast |
| Toast.fail | `options | message` | toast instance | Show fail toast |
| Toast.setDefaultOptions | `options` | `void` | Set default options of all toasts |
| Toast.resetDefaultOptions | - | `void` | Reset default options of all toasts |
| Toast.clear | - | `void` | Close |
### Options

View File

@ -57,9 +57,10 @@ export default {
| 方法名 | 参数 | 返回值 | 介绍 |
|-----------|-----------|-----------|-------------|
| Dialog.alert | options | `Promise` | 展示消息提示弹窗 |
| Dialog.confirm | options | `Promise` | 展示消息确认弹窗 |
| Dialog.setDefaultOptions | options | `void` | 修改默认配置,对所有 Dialog 生效 |
| Dialog | `options` | `Promise` | 展示弹窗 |
| Dialog.alert | `options` | `Promise` | 展示消息提示弹窗 |
| Dialog.confirm | `options` | `Promise` | 展示消息确认弹窗 |
| Dialog.setDefaultOptions | `options` | `void` | 修改默认配置,对所有 Dialog 生效 |
| Dialog.resetDefaultOptions | - | `void` | 重置默认配置,对所有 Dialog 生效 |
| Dialog.close | - | `void` | 关闭弹窗 |

View File

@ -72,6 +72,8 @@ export default {
| Toast.loading | `options | message` | toast 实例 | 展示加载提示 |
| Toast.success | `options | message` | toast 实例 | 展示成功提示 |
| Toast.fail | `options | message` | toast 实例 | 展示失败提示 |
| Toast.setDefaultOptions | `options` | `void` | 修改默认配置,对所有 Toast 生效 |
| Toast.resetDefaultOptions | - | `void` | 重置默认配置,对所有 Toast 生效 |
| Toast.clear | - | `void` | 关闭提示 |
### Options

View File

@ -15,6 +15,10 @@ const defaultOptions = {
}
};
let currentDefaultOptions = {
...defaultOptions
};
const createInstance = () => {
if (!instance) {
const ToastConstructor = Vue.extend(VueToast);
@ -29,7 +33,7 @@ const Toast = (options = {}) => {
createInstance();
options = typeof options === 'object' ? options : { message: options };
options = { ...defaultOptions, ...options };
options = { ...currentDefaultOptions, ...options };
Object.assign(instance, options);
clearTimeout(instance.timer);
@ -52,10 +56,24 @@ const createMethod = type => (options = {}) => Toast({
Toast.loading = createMethod('loading');
Toast.success = createMethod('success');
Toast.fail = createMethod('fail');
Toast.clear = () => {
instance && instance.clear();
};
Toast.setDefaultOptions = (options = {}) => {
currentDefaultOptions = {
...currentDefaultOptions,
...options
};
};
Toast.resetDefaultOptions = () => {
currentDefaultOptions = {
...defaultOptions
};
};
Vue.prototype.$toast = Toast;
export default Toast;