text: import { mergeRecursive } from "@/utils/ruoyi";
  import dictConverter from './DictConverter'
  
  export const options = {
    metas: {
      '*': {
        /**
         * 字典请求，方法签名为function(dictMeta: DictMeta): Promise
         */
        request: (dictMeta) => {
          console.log(`load dict ${dictMeta.type}`)
          return Promise.resolve([])
        },
        /**
         * 字典响应数据转换器，方法签名为function(response: Object, dictMeta: DictMeta): DictData
         */
        responseConverter,
        labelField: 'label',
        valueField: 'value',
      },
    },
    /**
     * 默认标签字段
     */
    DEFAULT_LABEL_FIELDS: ['label', 'name', 'title'],
    /**
     * 默认值字段
     */
    DEFAULT_VALUE_FIELDS: ['value', 'id', 'uid', 'key'],
  }
  
  /**
   * 映射字典
   * @param {Object} response 字典数据
   * @param {DictMeta} dictMeta 字典元数据
   * @returns {DictData}
   */
  function responseConverter(response, dictMeta) {
    const dicts = response.content instanceof Array ? response.content : response
    if (dicts === undefined) {
      console.warn(`no dict data of "${dictMeta.type}" found in the response`)
      return []
    }
    return dicts.map(d => dictConverter(d, dictMeta))
  }
  
  export function mergeOptions(src) {
    mergeRecursive(options, src)
  }
  
  export default options
  