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