UNPKG

weex-lrui

Version:

A Flyme Style UI library based on Weex for Creator.

69 lines (60 loc) 1.72 kB
import SnackBar from '../fm-snack-bar'; import { t } from 'weex-flymeui/lib/locale'; const VCSnackBar = Vue.extend(SnackBar); function snackbar (options) { const defaultOptions = { title: '', backgroundColor: '#323232', titleColor: '#FFFFFF', closeText: t('el.common.close'), closeColor: '#198DED', autoClose: true, stayTime: 3000, type: 'normal' }; const VC_SNACKBAR = new VCSnackBar().$mount(); options = Object.assign(defaultOptions, options); VC_SNACKBAR.show = true; VC_SNACKBAR.title = options.title; VC_SNACKBAR.backgroundColor = options.backgroundColor; VC_SNACKBAR.titleColor = options.titleColor; VC_SNACKBAR.closeText = options.closeText; VC_SNACKBAR.closeColor = options.closeColor; VC_SNACKBAR.autoClose = options.autoClose; VC_SNACKBAR.stayTime = options.stayTime; VC_SNACKBAR.type = options.type; VC_SNACKBAR.clickCb = options.clickCb; VC_SNACKBAR.dismissCb = () => { removeSnackBar(); options.dismissCb(); }; addSnackBar(); function addSnackBar () { if (weex.config.env.platform === 'Web') { document.body.appendChild(VC_SNACKBAR.$el); } else { weex.document.body.appendChild(VC_SNACKBAR.$el); } } function removeSnackBar () { if (weex.config.env.platform === 'Web') { document.body.removeChild(VC_SNACKBAR.$el); } else { weex.document.body.removeChild(VC_SNACKBAR.$el); } } } function showSnackBar (options) { return new Promise((resolve, reject) => { options = Object.assign(options, { clickCb: () => { resolve(); }, dismissCb: () => { reject(); } }); snackbar(options); }); } export default showSnackBar;