| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 | 
							- import { isObj } from '../common/validator';
 
- const defaultOptions = {
 
-     type: 'text',
 
-     mask: false,
 
-     message: '',
 
-     show: true,
 
-     zIndex: 1000,
 
-     duration: 2000,
 
-     position: 'middle',
 
-     forbidClick: false,
 
-     loadingType: 'circular',
 
-     selector: '#van-toast',
 
- };
 
- let queue = [];
 
- let currentOptions = Object.assign({}, defaultOptions);
 
- function parseOptions(message) {
 
-     return isObj(message) ? message : { message };
 
- }
 
- function getContext() {
 
-     const pages = getCurrentPages();
 
-     return pages[pages.length - 1];
 
- }
 
- function Toast(toastOptions) {
 
-     const options = Object.assign(Object.assign({}, currentOptions), parseOptions(toastOptions));
 
-     const context = (typeof options.context === 'function'
 
-         ? options.context()
 
-         : options.context) || getContext();
 
-     const toast = context.selectComponent(options.selector);
 
-     if (!toast) {
 
-         console.warn('未找到 van-toast 节点,请确认 selector 及 context 是否正确');
 
-         return;
 
-     }
 
-     delete options.context;
 
-     delete options.selector;
 
-     toast.clear = () => {
 
-         toast.setData({ show: false });
 
-         if (options.onClose) {
 
-             options.onClose();
 
-         }
 
-     };
 
-     queue.push(toast);
 
-     toast.setData(options);
 
-     clearTimeout(toast.timer);
 
-     if (options.duration != null && options.duration > 0) {
 
-         toast.timer = setTimeout(() => {
 
-             toast.clear();
 
-             queue = queue.filter((item) => item !== toast);
 
-         }, options.duration);
 
-     }
 
-     return toast;
 
- }
 
- const createMethod = (type) => (options) => Toast(Object.assign({ type }, parseOptions(options)));
 
- Toast.loading = createMethod('loading');
 
- Toast.success = createMethod('success');
 
- Toast.fail = createMethod('fail');
 
- Toast.clear = () => {
 
-     queue.forEach((toast) => {
 
-         toast.clear();
 
-     });
 
-     queue = [];
 
- };
 
- Toast.setDefaultOptions = (options) => {
 
-     Object.assign(currentOptions, options);
 
- };
 
- Toast.resetDefaultOptions = () => {
 
-     currentOptions = Object.assign({}, defaultOptions);
 
- };
 
- export default Toast;
 
 
  |