38 lines
		
	
	
		
			1012 B
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1012 B
		
	
	
	
		
			Plaintext
		
	
	
| import { mergeRecursive } from '@/utils/ruoyi'
 | |
| import DictOptions from './DictOptions'
 | |
| 
 | |
| /**
 | |
|  * @classdesc 字典元数据
 | |
|  * @property {String} type 类型
 | |
|  * @property {Function} request 请求
 | |
|  * @property {String} label 标签字段
 | |
|  * @property {String} value 值字段
 | |
|  */
 | |
| export default class DictMeta {
 | |
|   constructor(options) {
 | |
|     this.type = options.type
 | |
|     this.request = options.request
 | |
|     this.responseConverter = options.responseConverter
 | |
|     this.labelField = options.labelField
 | |
|     this.valueField = options.valueField
 | |
|     this.lazy = options.lazy === true
 | |
|   }
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * 解析字典元数据
 | |
|  * @param {Object} options
 | |
|  * @returns {DictMeta}
 | |
|  */
 | |
| DictMeta.parse = function(options) {
 | |
|   let opts = null
 | |
|   if (typeof options === 'string') {
 | |
|     opts = DictOptions.metas[options] || {}
 | |
|     opts.type = options
 | |
|   } else if (typeof options === 'object') {
 | |
|     opts = options
 | |
|   }
 | |
|   opts = mergeRecursive(DictOptions.metas['*'], opts)
 | |
|   return new DictMeta(opts)
 | |
| }
 |