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