foundation-utils v2.0.19
foundation-utils
工作中使用到的 util 方法
number
NumAdd(a, b) // 加法
示例:NumAdd(1, 2); // 3
NumSub(a, b) // 减法
示例:NumSub(3, 2); // 1
NumMul(a, b) // 乘法
示例:NumMul(1, 2); // 2
NumDiv(a, b) // 除法
示例:NumDiv(2, 1); // 2
Thousands(num: number | string) // 千分位格式化
示例:Thousands(123456); // 123,456
ThousandsFloat(num: number | string, decimal: number) // 千分位格式化 带小数
示例:ThousandsFloat(123456789, 2); // 123,456,789.00 ThousandsFloat(123456789.12345, 2); // 123,456,789.12
MoneyUnitSwitch(num: number, baseUnit: number, NaNText:string)
示例:MoneyUnitSwitch(123456789.12, 10000); // 12,345.68 MoneyUnitSwitch(123456789.12, 100); // 1,234,567.89
FormatFloat(num: number, decimal?: number) //格式化数据,保留指定位数小数
示例:FormatFloat(0.12345, 3); // 0.123
FilterNumber(value: string)
示例:FilterNumber('abc123ccdd456啊789'); // 123456789
NumberToCapital(num: string | number) //金额转换为大写
示例:NumberToCapital(1234); // 壹仟贰佰叁拾肆圆整 NumberToCapital(123.45); // 壹佰贰拾叁圆肆角伍分
NumberScientificNotation(num_str: string) //科学计数法
示例:NumberScientificNotation("123E4"); // 1230000 NumberScientificNotation(12E3); // 12000
string
Capitalize(str: string) // 首字母大写
示例:Capitalize("false"); // False
ToPercent(point: string) // 小数转化为百分数
示例:ToPercent("1.2345"); // 123.45%
object
IsNonEmpty(value: string) //非空校验
IsNonZero(value: string) //非0校验
DeleteObjKeys(obj: Object, key: string | string[]) //删除 obj 中指定的元素
示例:DeleteObjKeys({a:1, b:2, c:3, d:4}, ['a','b']); // {c:3, d:4} DeleteObjKeys({a:1, b:2, c:3, d:4}, 'a'); // {b:2, c:3, d:4}
RepeatObj(arr: any[], arg: string) //数组对象去重
示例:let arr = [{ key: 1 }, { key: 1 }, { key: 2 }, { key: 3 }, { key: 3 }, { key: 4 }]; RepeatObj(arr, 'key'); // [{ key: 1 }, { key: 2 }, { key: 3 }, { key: 4 }]
charType
GetType(value: any) // 获取对象数据类型
示例:GetType("false"); // string
IsType(type: string)(value: any) // 是什么数据类型
示例:IsType("String")("value"); // true
IsArray(value: any) // 是数组
示例:IsArray("false"); // false
IsNumber(value: any) // 是number
示例:IsNumber("false"); // false
IsObject(value: any) // 是对象
示例:IsObject("false"); // false
IsFun(value: any) // 是函数
示例:IsFun("false"); // false
IsString(value: any) // 是字符串
示例:IsString("false"); // true
IsBoolean(value: any) // 是布尔
示例:IsBoolean("false"); // false
date
Date_YMD_HMS(nS?: Number | string, reg?: string) //年月日 时分秒
示例:Date_YMD_HMS(date, '-'); // 2023-01-01 00:00:00
Date_YMD(nS?: Number | string, reg?: string) //年月日
示例:Date_YMD(date, '-'); // 2023-01-01
Date_HMS(nS?: Number | string) //时分秒
示例:Date_HMS(date, '-'); // 00:00:00
Date_timestamp(timestamp?: number | string) //时间戳转换为 xx天xx小时xx分钟xx秒
示例:Date_timestamp(new Date().getTime()) ; // 2天18小时02分20秒
Date_nextDate(date?: string, nextDay?: number, reg?: string) //指定日期后的几天
示例:Date_nextDate('2023-01-01', 2, '-'); // 2023-01-03
file download
FileDownload(fileUrl: string, fileName?: string) //文件下载 - a 标签方式
IframeDownload(fileUrl: string) //文件下载 - iframe 方式
BlobFileDownload(fileUrl: string, fileName?: string) //文件下载 - blob 方式
BlobDownloadByFileUrl(fileUrl: string, fileName?: string) //文件下载 - blob 方式 (pdf、mp4 文件流下载)
BlobDownloadByBlob(blob: Blob, fileName?: string) //blob 文件下载
GetFileSuffix(fileUrl: string) //获取文件后缀名
示例:let fileUrl = "https://img0.baidu.com/it/textName.txt"; GetFileSuffix(fileUrl); // "textName.txt"
GetFileNameSuffix(fileUrl: string) //获取文件名后缀名
示例:let fileUrl = "https://img0.baidu.com/it/textName.txt"; GetFileNameSuffix(fileUrl); // "txt"
GetFileNameText(fileUrl: string) //获取文件名
示例:let fileUrl = "https://img0.baidu.com/it/textName.txt"; GetFileNameText(fileUrl); // "textName"
GetFileType(fileName: string) //文件类型
localStorage
SetLocalStorage(key: string, value: any) //存储localStorage
GetLocalStorage(key: string) //获取localStorage
RemoveLocalStorage(key: string) //删除localStorage
RemoveLocalStorageAll() //删除所有localStorage
loadScript
LoadScript(url: string, callback: Function) //动态加载一个远程脚本
LoadScriptQueue(urls: string[], cb: Function) //顺序加载一组远程脚本
url
ObjToUrlParam(obj: Object) //对象转换url参数 遇到属性值为空或0就不拼接
AddUrlParamFromObj(url: string, obj: Object) //给url添加参数 通过对象
AnalyzingUrl(url: string) //解析地址参数
EncodeURIComponent(url: string) //编码
DecodeURIComponent(url: string) //解码
IsDev // 是否是本都环境,根据地址来判断
IsTest(domain: string) // 是否是生产环境,根据地址来判断
IsProd(domain: string) // 是否是测试环境,根据地址来判断
randomCode
CreateGuid() //Guid
示例:CreateGuid(); // "a1ca0f7b-51bd-4bf3-a5d5-6a74f6adc1c7"
CreateRandomCode(num: number) //随机验证码
示例:CreateRandomCode(6); // "a1ca0f"
copy
DisabledCopy() //禁用复制
LaunchCopy() //关闭禁用复制
CopyContent(value:string) //复制字符串文档至剪贴板
示例:CopyContent('这里是需要复制的内容')
other
Debounce(func: Function, delay: number) //防抖函数
Throttle(func: Function, wait: number) //节流函数
StrIpScript(value: string) //限制输入逗号
AuthorityComparison() //权限对比
AddIframeDom(url) //添加iframe到文档中
PrintImage(url) //打印图片
FilterTreeNode(tree, childKey, filterKey, value) //树数据过滤
Validator 数据校验
示例:
import Validator from "foundation-utils"
function requiredVerify(item): String | null {
let validator = new Validator();
validator.add(item.name, [
{ strategy: "isNonEmpty", errorMsg: "请输入用户名" },
{ strategy: "minLength", len: 6, errorMsg: "用户名长度不能小于6位" },
{ strategy: "maxLength", len: 10, errorMsg: "用户名长度不能大于10位" },
]);
validator.add(item.phone, [
{ strategy: "isNonEmpty", errorMsg: "请输入电话号码" },
{
strategy: 'isCustomReg',
regExp: new RegExp(/^1(3\d|4[5-9]|5[0-35-9]|6[2567]|7[0-8]|8\d|9[0-35-9])\d{8}$/),
errorMsg: "请输入11位有效电话号码"
}
]);
validator.add(item.code, [
{
strategy: "isCustomFun",
fun: (value) => {
let reg = /(^[a-za-z0-9]+$)/;
return !reg.test(value);
},
errorMsg: "请输入数组、字母组合的code"
},
]);
let errorMsg = validator.start();
return errorMsg;
}
nc 观察者模式
示例:observer.ts文件
import { NotificationCenter, Event } from "foundation-utils";
import type { Class } from "foundation-utils";
let nc_ = new NotificationCenter();
// 事件名称
export class changeEvent extends Event { }
// 事件注册
export function registerObServerEvent(that: object | symbol, eventName: Class<Event>, callback: Function) {
nc_.register(that, eventName, async (event: Event) => {
callback(event);
});
}
// 事件销毁
export function unRegisterObServerEvent(that: object | symbol, eventName: Class<Event>) {
nc_.unRegister(that, eventName);
}
// 销毁所有事件
export function unregisterAllObServerEvent(that: object | symbol) {
nc_.unRegisterAll(that);
}
// 发送事件
export function postObServerEvent(event: Event) {
nc_.post(event);
}
使用:index.vue文件
postObServerEvent(new LetterStatusChangeEvent()); // 广播事件
registerObServerEvent(proxy!.$el, LetterStatusChangeEvent, () => { loadData(); }); // 接收事件
unRegisterObServerEvent(proxy!.$el, LetterStatusChangeEvent); // 销毁事件
httpService 异步请求
客户端使用示例:
import { httpService } from "foundation-utils";
async function loadData(){
const url = "http://localhost:8066/user/get";
let ret = await httpService().get(url);
console.log(ret.data)
}
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
2 years ago