# @lingshu/core-utils `@lingshu/core-utils` 是一个前端工具库,包含了在项目开发中常用的各种工具函数,旨在提高开发效率和代码复用性。 ## 目录结构 ``` core-utils/ ├── src/ │ ├── enum/ # 枚举定义 │ │ └── Common.ts │ ├── model/ │ │ └── bo/ # 业务对象模型定义 │ │ └── CommonBO.ts │ ├── utils/ # 工具函数集合 │ │ ├── Common.ts │ │ ├── Download.ts │ │ ├── HightlightText.ts │ │ ├── LanguageUtil.ts │ │ ├── ReplaceObject.ts │ │ ├── RequestUtil.ts │ │ ├── TokenUtil.ts │ │ ├── ValTypeUtils.ts │ │ └── WaringTips.ts │ └── index.ts # 入口文件,导出所有公共模块 └── package.json ``` ## `src/utils` 模块说明 ### `Common.ts` 该文件包含了一系列通用的辅助函数,例如: - `useRequestStatus()`: 用于管理请求状态(pending, finish, failed)的组合式函数。 - `objListToObj(list, key)`: 将对象数组转换为以指定键为属性的对象。 - `openWindow(url, target, rel)`: 安全地打开新窗口或标签页。 - `escapeRegExp(string)`: 转义字符串中的正则表达式特殊字符。 - `reNameByFixNumLen(...)`: 根据固定长度规则重命名文件或实体。 - `generateLimitedIncrementalName(...)`: 生成带有限制长度的自增名称。 - `getRandomStrByTime(...)`: 根据时间戳和随机数生成唯一字符串。 ### `Download.ts` 提供了文件下载相关的函数: - `downByUrl(fileUrl, fileName)`: 通过 URL 下载文件。 ### `HightlightText.ts` 用于文本高亮显示: - `highLightText(text, keyword)`: 在文本中高亮显示指定关键词。 ### `LanguageUtil.ts` 多语言处理工具: - `getTagLanguage(data)`: 根据当前语言获取多语言对象中的文本。 - `setTagLanguage(str, type)`: 设置多语言文本。 ### `ReplaceObject.ts` 对象替换和合并工具: - `deepReplace(a, b)`: 深度替换对象 `a` 中的属性,如果 `a` 和 `b` 的对应属性都是纯对象,则进行递归合并。 ### `RequestUtil.ts` 封装了请求相关的逻辑: - `Method`: 定义了常用的 HTTP 请求方法枚举。 - `reIns`: `Request` 实例,配置了请求超时、重试拦截器和请求头(如 `X-App-Id` 和 `Authorization`)。 - `sendRequest(param)`: 发送 HTTP 请求的通用方法,处理响应和错误。 ### `TokenUtil.ts` 令牌管理工具: - `accessToken`: `Token` 实例,用于管理访问令牌。 - `getToken()`: 获取访问令牌,如果过期则刷新。 - `getXAppId()`: 获取 `X-App-Id`。 - `refreshToken()`: 刷新访问令牌。 ### `ValTypeUtils.ts` 值类型判断和转换工具: - `isEmptyToNumber(val)`: 判断值是否可以转换为数字,并处理空值情况。 - `getTagValByNumber(val, defaultValue)`: 将值转换为数字,并提供默认值。 - `isEmptyValue(value)`: 判断值是否为空(包括对象和基本类型)。 ### `WaringTips.ts` 警告和错误提示工具: - `transResponseData(res)`: 转换响应数据,提取错误码和消息。 - `waringTip(res, warnCodes, showMsg, plain)`: 根据响应数据显示警告或错误提示。