UNPKG

drip-ui

Version:

Lightweight Mobile UI Components built on Vue

64 lines (50 loc) 1.05 kB
import Vue from 'vue' import DripLoading from './Loading' import { isServer } from '../utils' let instance const initInstance = () => { instance = new(Vue.extend(DripLoading))({ el: document.createElement('div') }) document.body.appendChild(instance.$el) } const Loading = (options) => { /* istanbul ignore if */ if (isServer) { return } if (!instance) { initInstance() } return Object.assign(instance, ...options) } Loading.defaultOptions = { show: '', text: '请求中', type: 'circle' } Loading.show = options => Loading({ ...Loading.currentOptions, show: true, ...options }) Loading.hide = () => { if (instance) { instance.show = false } } Loading.setDefaultOptions = options => { Object.assign(Loading.currentOptions, options) } Loading.resetDefaultOptions = () => { Loading.currentOptions = { ...Loading.defaultOptions } } Loading.install = () => { Vue.use(DripLoading) } Vue.loading = Vue.prototype.$loading = Loading Loading.resetDefaultOptions() export default Loading