All files / src error.js

0% Statements 0/20
0% Branches 0/12
0% Functions 0/4
0% Lines 0/18
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40                                                                               

export default function (Vue, config) {
  const errorList = []
  const ErrorConstructor = Vue.extend({
    template: '<div :class="[errorClass]" v-if="message"><i :class="[errorIcon]"></i><span>{{message}}</span></div>',
    data: () => {
      return {
        message: null
      }
    },
    props: {
      errorIcon: String,
      errorClass: String  
    }
  })
 
  function getAnInstance () {
    if (errorList.length > 1) {
      const instance = tipsList[0]
      errorList.splice(0, 1)
      return instance
    }
    return new ErrorConstructor({
      el: document.createElement('div')
    })
  }
 
  const errorRender = (options = {}) => {
    const container = options.el.parentNode
    const instance = options.target || getAnInstance(container)
 
    instance.message = options.message
    instance.errorClass = options.errorClass || config.errorClass
    instance.errorIcon = options.errorIcon || config.errorIcon
    container.appendChild(instance.$el)
    return instance
  }
 
  return errorRender
}