foundation-utils

2.0.19 • Public • Published

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)
  }

Package Sidebar

Install

npm i foundation-utils

Weekly Downloads

0

Version

2.0.19

License

ISC

Unpacked Size

50.7 kB

Total Files

23

Last publish

Collaborators

  • china_liujie