基础方法
暴露一些字典包中使用到的基础方法。
formatDate
时间格式化方法,以下文档为字典包自带日期格式方法,如字典包配置中有配置formatDatev1.1.0 则如下文档无效。
js
const DEFAULT_FORMATS = {
date: "yyyy-MM-dd",
month: "yyyy-MM",
datetime: "yyyy-MM-dd hh:mm:ss",
time: "hh:mm:ss",
year: "yyyy"
}
/**
* 时间格式化方法
* date: 时间 支持 Date、timestamp时间戳、4位年份数字、6位年月数字、
* 8位年月日数字、10位年月日时数字、12位年月日十分数字、14位年月日时分秒数字
* 支持本身符合日期格式的字符串 如:1995-01-05、1995-01-05 20:00:00
* fmt: 格式 支持快捷格式化 date、month、datetime、time、year、timestamp
* 也支持自定义 如:yyyy-MM-dd hh:mm:ss
*/
formatDate(date, fmt)getDictConfig
获取字典包配置的方法
js
getDictConfig()getDictConfigByKey
通过键名获取字典包相应配置的方法
js
/**
* key: 字典包配置项键名
**/
getDictConfigByKey(key)getDictData
获取项目已缓存或者本地配置的字典数据,未缓存的获取不到,也不会去触发接口获取。
js
getDictData()TIP
本地配置的字典数据必然会在缓存中
getDictDataByKey
通过字典类型获取项目已缓存或者本地配置的字典数据,未缓存的获取不到,也不会去触发接口获取。
js
/**
* key: 字典类型
*/
getDictDataByKey(key)getValidator v1.1.0
获取字典包经过配置中的validator合并后的总的校验方法。
js
getValidator()getValidatorByKey v1.1.0
通过key获取字典包经过配置中的validator合并后的具体的某个校验方法。
js
getValidatorByKey()listToTree
一维数组转化为树形结构数据的方法
js
// 默认配置
const defaultOptions = {
idField: "id", //唯一标识字段名
parentIdField: "parentId", //父节点唯一标识字段名
childrenField: "children", //子节点标识字段名
firstId: "0", // 根节点值
valueField: "id", // 树形值对应的字段名
valueArrField: "valueArr", //给对象新增的value数组字段名
labelField: "label", //label字段名
labelArrField: "labelArr", //给对象新增的中文数组字段名
idArrField: "idArr", //给对象新增的id数组字段名
levelField: "level", //给对象新增的层级字段名
level: 0, // 给根目录配置的层级
leafField: "leaf" //叶子节点标识字段名
}
/**
* list: 一维数组 必须包含类似id、parentId字段用于判断层级关系的数据
* options: 配置项 默认配置如上述 defaultOptions
**/
listToTree(list, config)getTreeItemByCode
通过树形层级id字段和一维数组获取该id对应的树形层级对象数组
js
const defaultOptions = {
idField: "id", //唯一标识字段名
parentIdField: "parentId" //父节点唯一标识字段名
}
/**
* id: 目标数据id,如果字段不为id 可通过options配置项指定字段名
* arr: 一维数组 必须包含类似id、parentId字段用于判断层级关系的数据
* options: 配置项 默认配置如上述 defaultOptions
**/
getTreeItemByCode(id, arr, options)getTreeItemByLabel
通过树形层级label字段和一维数组获取该label对应的树形层级对象数组
js
const defaultOptions = {
idField: "id", //唯一标识字段名
labelField: "label", //唯一标识字段名
parentIdField: "parentId" //父节点唯一标识字段名
}
/**
* label: 目标数据label,如果字段不为label 可通过options配置项指定字段名
* arr: 一维数组 必须包含类似id、parentId字段用于判断层级关系的数据
* options: 配置项 默认配置如上述 defaultOptions
**/
getTreeItemByLabel(label, arr, options)getTreePathByValue
通过树形层级value字段和树形数组获取该value对应的树形层级对象数组
js
const defaultOptions = {
valueField: "value", //唯一标识字段名
childrenField: "children" //子节点标识字段名
}
/**
* value: 目标数据value,如果字段不为value 可通过options配置项指定字段名
* treeArr: 树形数组
* options: 配置项 默认配置如上述 defaultOptions
**/
getTreePathByValue(value, treeArr, options)toKebabCase v1.1.0
将小驼峰、大驼峰等规则的数据转化成 中横线隔开的数据
js
/**
* str: 需要转化的字符串 小驼峰、大驼峰
*/
toKebabCase(str)toCamelCase v1.1.0
将中横线隔开的数据、大驼峰数据转化成 小驼峰格式的数据
js
/**
* str: 需要转化的字符串 大驼峰、中横线隔开的数据
*/
toCamelCase(str)generateUUID v1.1.0
生成uuid的方法。
js
generateUUID()checkConditions v1.1.0
检测条件是否满足
js
/**
* 校验数据是否满足所有条件
* @param {Array} conditions 条件配置,格式:[[字段名, 运算符, 目标值], ...]
* @param {Object} data 待校验的数据对象,如 { age: 17, money: 300 }
* @returns {Boolean} 所有条件满足返回true,否则false
*/
checkConditions(conditions, data)运算符 支持常用运算符及特殊运算符
常用运算符
<、>、==、===、!=、!==、>=、<=
特殊运算符
| 运算符 | 作用描述 | 示例条件配置 | 适用场景 |
|---|---|---|---|
| in | 字段值是否在目标数组中 | ['role', 'in', ['admin', 'user']] | 检查角色是否在允许列表中 |
| not in | 字段值是否不在目标数组中 | ['status', 'not in', ['deleted']] | 排除某些状态值 |
| includes | 字符串/数组是否包含目标值 | ['name', 'includes', '张'] | 检查姓名是否包含“张”字 |
| not includes | 字符串/数组是否不包含目标值 | ['tags', 'not includes', 'invalid'] | 检查标签中是否没有“invalid” |
| between | 字段值是否在 [min, max] 闭区间内 | ['score', 'between', [60, 100]] | 检查分数是否在60-100之间 |
| regex | 字段值是否匹配正则表达式 | ['phone', 'regex', /^1[3-9]\d{9}$/] | 验证手机号格式 |

