@duying/dict-plus

字典工具


Keywords
dict, dictionary, map, object
License
ISC
Install
npm install @duying/dict-plus@1.0.1

Documentation

dict-plus

字典工具

安装

npm install @duying/dict-plus

示例

import DictPlus from '@duying/dict-plus'

DictPlus.register('OrderStatusEnum', new Map([
  ['code1', { label: '1', value: 1, alias: 'label-1' }],
  ['code2', { label: '2', value: 2, alias: 'label-2' }],
  ['code3', { label: '3', value: 3, alias: 'label-3' }]
]))

DictPlus.getValues('OrderStatus') // => 字典不存在,返回 []
/**
=> [
  { label: '1', value: 1, alias: 'label-1' },
  { label: '2', value: 2, alias: 'label-2' },
  { label: '3', value: 3, alias: 'label-3' }
 ]
 * */
DictPlus.getValues('OrderStatusEnum')
DictPlus.getValues('OrderStatusEnum', { mapKeys: 'code1, code2, code3' }) // 同上
DictPlus.getValues('OrderStatusEnum', { fields: 'label, value, alias' }) // 同上
/**
=> [
  { label: '2', value: 2 },
  { label: '3', value: 3 },
 ]
 * */
DictPlus.getValues('OrderStatusEnum', { mapKeys: 'code2, code3', fields: 'label, value' })

DictPlus.getValueByIndex('OrderStatus', 0) // => 字典不存在,返回 undefined
DictPlus.getValueByIndex('OrderStatusEnum', 0) // => { label: '1', value: 1, alias: 'label-1' }
DictPlus.getValueByIndex('OrderStatusEnum', 3) // => 同上
DictPlus.getValueByIndex('OrderStatusEnum', 1, { targetField: 'value' }) // => 2
DictPlus.getValueByIndex('OrderStatusEnum', -2) // => { label: '3', value: 3, alias: 'label-3' }

DictPlus.getValueByKey('OrderStatus', 'code2') // => 字典不存在,返回 undefined
DictPlus.getValueByKey('OrderStatusEnum', 'code4') // => {}
DictPlus.getValueByKey('OrderStatusEnum', 'code2') // => { label: '2', value: 2, alias: 'label-2' }
DictPlus.getValueByKey('OrderStatusEnum', 'code2', { targetField: 'alias' }) // => 'label-2'

DictPlus.getValueBySearch('OrderStatus', 'value', 2, 'alias') // => 字典不存在,返回 undefined
DictPlus.getValueBySearch('OrderStatusEnum', 'value', 2, 'alias') // => 'label-2'

DictPlus 类静态方法

方法名 说明
register(dictName: String, mapObj: Map): void 注册字典数据
getValues(dictName: String, { mapKeys?: Array<String>|String = [], fields?: Array<String>|String = [] } = {}): Array 获取字典数据
getValueByIndex (dictName: String, index: Number, { targetField?: String } = {}): any 通过索引值 index 获取字典数据
getValueByKey (dictName: String, mapKey: String, { targetField?: String } = {}): any 通过键值 mapKey 获取字典数据
getValueBySearch (dictName: String, searchField: String, searchValue: any, targetField: String): any searchField + searchValue 做查询条件,获取 targetField 对应的字典值