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