34 lines
		
	
	
		
			897 B
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			897 B
		
	
	
	
		
			Plaintext
		
	
	
import Dict from './Dict'
 | 
						|
import { mergeOptions } from './DictOptions'
 | 
						|
 | 
						|
export default function(Vue, options) {
 | 
						|
  mergeOptions(options)
 | 
						|
  Vue.mixin({
 | 
						|
    data() {
 | 
						|
      if (this.$options.dicts === undefined || this.$options.dicts === null) {
 | 
						|
        return {}
 | 
						|
      }
 | 
						|
      const dict = new Dict()
 | 
						|
      dict.owner = this
 | 
						|
      return {
 | 
						|
        dict
 | 
						|
      }
 | 
						|
    },
 | 
						|
    created() {
 | 
						|
      if (!(this.dict instanceof Dict)) {
 | 
						|
        return
 | 
						|
      }
 | 
						|
      options.onCreated && options.onCreated(this.dict)
 | 
						|
      this.dict.init(this.$options.dicts).then(() => {
 | 
						|
        options.onReady && options.onReady(this.dict)
 | 
						|
        this.$nextTick(() => {
 | 
						|
          this.$emit('dictReady', this.dict)
 | 
						|
          if (this.$options.methods && this.$options.methods.onDictReady instanceof Function) {
 | 
						|
            this.$options.methods.onDictReady.call(this, this.dict)
 | 
						|
          }
 | 
						|
        })
 | 
						|
      })
 | 
						|
    },
 | 
						|
  })
 | 
						|
}
 |