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)
 | |
|           }
 | |
|         })
 | |
|       })
 | |
|     },
 | |
|   })
 | |
| }
 |