0.0.10 • Published 11 months ago

common-toolbox v0.0.10

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

Common-toolbox

专注服务于Vue项目的可复用工具库

目前仅支持前端项目,不支持纯Node.js项目【后续会修复这个问题】

Axios相关API

Usage

import { createAxios } from 'common-toolbox'
import { getToken } from './token.js'
import router from '../router/index.js'
import { ElMessage } from 'element-plus'

// messageTip可以自己进行封装
// 例如
const messageTip = ({type, message}) => {
  alert(message)
  console.log('type: ', type)
}

// example
const axios = createAxios({
  baseURL: '',
  timeout: 50000,
  tokenName: 'token',
  getToken: getToken,
  router,
  messageTip: ElMessage
})

export default axios

// use axios
import axios form './utils/axios.js'

export const getList = (params) => {
  return axios.post(url, params, config)
}
// config可选可配置

API

APIUSAGEREMARK
createAxiosconst axios = createAxios(options)生成axios实例
.........

DOM处理相关API

Usage

import { domHandler } from 'common-box'

// vue main.js
domHandler.setFontSize()

// some page need setting fullscreen
const play = () => {
  domHandler.settingFullscreen()
}

// more ...

API

APIUSAGEREMARK
setFontSizesetFontSize()以1920*1080为基准设置自适应
settingFullscreensettingFullscreen()开启与关闭全屏
onon(window, 'resize', resize)用于Echart图表随窗口大小自适应
offoff(window, 'resize', resize)用于Echart图表随窗口大小自适应
.........

Form表单校验相关API

Usage

import { validator } from 'common-toolbox'

//example
const trueOrFalseOfMobile = validator.isMobile(userPhone)

const trueOrFalseOfIdCard = validator.isIdCard(userIdCard)

// more ...

说明

  • 邮箱、手机号、身份证号、中文姓名、密码复杂度等的校验函数返回均为Boolean类型,并没有专门去适配Element-uiElement-plusVant等UI框架,使用时应根据个人需求通过包装下面这些函数实现适配UI框架的校验函数

API

APIUSAGEREMARK
isMobileisMobile(value): boolean用于校验手机号
isEmailisEmail(value): boolean用于校验邮箱号
isNameisName(value): boolean用于校验中文姓名
isIdCardisIdCard(value): boolean用于校验身份证号
passwordComplexityValidatepasswordComplexityValidate(value, messageTool): boolean用于校验密码的复杂程度是否符合,messageTool参数是个消息提示弹窗实例或者函数
isDateisDate(value): boolean用于校验日期
isNumericisNumeric(value): boolean判断值是否为数字
isNaNisNaN(value): boolean判断值是否为NaN
inBrowserinBrowser(): boolean判断是否为浏览器
isAndroidisAndroid(): boolean判断是否为安卓
isIOSisIOS(): boolean判断是否为IOS
.........

File处理相关API

fileHandler

Usage

import { fileHandler } from 'common-toolbox'

// example
const downloadWord = async () => {
  const res = await axios.get('/api/download/file?id')
  if (res.success) {
    fileHandler.blobFile(res, 'example.docx', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' )
  }
}

API

APIUSAGEREMARK
dataURLtoFileconst file = dataURLtoFile(url, filename)将URL转为file
blobFileblob(url, name, type)下载文件,name: 下载存储的文件名;type: 下载的文件类型
.........

nodeFileHandler

Usage

import { nodeFileHandler } from 'common-toolbox'

// example
nodeFileHandler.isFileExist('/path')

nodeFileHandler.getFolderExcludeSome('parentPath', /^example/)

API

APIUSAGEREMARK
isFileExistisFileExist(path): boolean判断文件是否存在
getFolderExcludeSomegetFolderExcludeSome(parentPath, excludeRegex): Promise<string[]>获取parentPath下的除了excludeRegex正则表达式包含的目录
hasFolderhasFolder(parentPath, excludeRegex, name): boolean判断参数name的目录是否存在
.........

Cookie与LocalStorage相关API

Usage

import { cookieAndStorage } from 'common'

// example
const cs = cookieAndStorage

cs.getLocalStorage('userInfo')
cs.setLocalStorage('userInfo', info)
cs.clearAllLocalStorage()

cs.getCookie('token')
cs.setCookie('token', token)
cs.clearAllCookies()

cs.clearAllStorage()

API

APIUSAGEREMARK
getLocalStoragegetLocalStorage(key)
setLocalStoragesetLocalStorage(key, data)
removeLocalStorageremoveLocalStorage(key)
clearAllLocalStorageclearAllLocalStorage()
getCookiegetCookie(key)
setCookiesetCookie(key, value, expires)
removeCookieremoveCookie(key)
clearAllCookiesclearAllCookies()
clearAllStorageclearAllStorage()
.........

Browser处理相关API

Usage

import { browserHandler } from 'common-toolbox'
import { ElMessage } from 'element-plus'

// example
browserHandler.getPositionByGeolocation(ElMessage)

API

APIUSAGEREMARK
getPositionByGeolocationgetPositionByGeolocation(messageTool): {Promise<Object>获取定位坐标;messageTool参数应传入一个消息弹窗实例或函数
.........

Date相关接口

Usage

import { dateHandler } from 'common-toolbox'

// example
const date = dateHandler.getDateAndWeek()
console.log(date)
/**
 * date: '2023年5月1日'
 * week: '周一'
 * time: '12:45'
 */

API

APIUSAGEREMARK
getDateAndWeekconst date = getDateAndWeek()返回当前日期与周几
.........

Encrypt加密相关API

Usage

import { createEncrypter, encryptHandler } from 'common-toolbox'

// example
const PUBLIC_KEY = 'PUBLIC_KEY'

export const setRas = createEncrypter(PUBLIC_KEY)

// 通过*加密文本,例如手机号、邮箱
const encodeMobile = encryptHandler.encryptText('13356789900', 'mobile', '请绑定手机号')

const encodeEmail = encryptHandler.encryptEmail('example@mail.com', '请绑定邮箱')

API

APIUSAGEREMARK
createEncrypterconst setRAS = createEncrypter(publicKey)目前使用JSEncrypt进行加密
encryptTextencodeText = encryptText(text, flag, tipText)通过*对指定文本进行加密
encryptNameencodeName = encryptName(name, tipText)通过*对指定中文姓名进行加密
encryptMobileencodeMobile = encryptMobile(mobile, tipText)通过*对指定手机号进行加密
encryptEmailencodeEmail = encryptEmail(email, tipText)通过*对指定邮箱进行加密
.........

其他API

Usage

import { getPdf, sleep } from 'common-toolbox'

// example
// type: file: 表示下载pdf
// type: base64: 表示生成base64码
const pdfBase64 = getPdf('#container', 'base64', 'example-pdf')

const sleepPromise = sleep(50000)

// more ...

API

APIUSAGEREMARK
getPdfgetPdf(ref, type, title)将指定div元素转为pdf
sleepsleep(timeout)设置休眠时间,返回promise
getTypegetType(value)返回value的类型
.........

打包方式

  • 目前打包成两种格式:
    • ESM
    • CJS

Examples

- examples/vue3-example

# dev
pnpm dev

补充

进行中...

0.0.10

11 months ago

0.0.9

1 year ago

0.0.8

1 year ago

0.0.7

1 year ago

0.0.6

1 year ago

0.0.5

1 year ago

0.0.4

1 year ago

0.0.3

1 year ago

0.0.2

1 year ago

0.0.1

1 year ago