0.0.1 • Published 12 months ago

vue-utils-sixfat v0.0.1

Weekly downloads
-
License
ISC
Repository
-
Last release
12 months ago

简介

EventBus {docsify-ignore}

  • 介绍: 事件监听与分发
  • 不支持链式调用

引用

import { EventBus } from "@sweet-front/web-sdk"

使用示例

/* page1.js */
// 监听aaa事件
EventBus.$on("aaa", "key1", (e) => {
  console.log(e, "1") // 不打印,因为有两个key1,最后一个 key1 会覆盖此处监听
})
EventBus.$on("aaa", "key1", (e) => {
  console.log(e, "2") // 打印 anyData 2
})
EventBus.$on("aaa", "key2", (e) => {
  console.log(e, "3") // 打印 anyData 3
})

/* page2.js */
// 触发aaa事件
EventBus.$emit("aaa", anyData)

// 取消aaa事件的监听
EventBus.$off("aaa")
// 取消所有事件的监听
EventBus.$off()

方法介绍

方法名称说明参数类型是否必填默认值
$on事件监听event, key, callbackString, String, Functionevent:事件名,必填;key:事件 key, 非必填;callback:必填,回调参数 paramkey = 'first'
$emit事件触发event, paramString, Anyevent:事件名,必填;param:回调参数,非必填param = ''
$off取消事件监听eventStringevent: 非必填,有事件名则取消单一事件监听,无事件名取消所有事件监听-

Request {docsify-ignore}

  • 介绍: 基于 axios 接口请求的封装,支持请求拦截和响应拦截,可以统一配置请求头,统一处理返回结果,统一增加请求中状态效果,支持接口防抖节流操作
  • 实例对象部分方法支持链式调用

引用

import { Request } from "@sweet-front/web-sdk"

使用示例

初始化,配置请求拦截等处理,如:

import { Loading, Message } from "element-ui"
import { Request } from "@sweet-front/web-sdk"
Request.init({
  // 设置请求前缀
  baseUrl: "",
  // 设置请求超时时长
  timeout: 30000,
  // 拦截请求,比如所有请求头增加token
  handelRequestSync: (config) => {
    config.headers.token = "1234567890"
    return config
  },
  // 拦截响应,如接口结构code: 'success'的返回接口的data,走 then 方法,其他的throw整体信息,走 catch 方法
  handelResponseSync: (res) => {
    if (res.data.code === "success") {
      return res.data.data
    } else {
      throw res.data
    }
  },
  // 异常处理,如异常返回弹出错误信息
  handelErrorSync: (error, config) => {
    Message.error(error.message)
  },
  // 加载中处理,根据ui效果
  handelLoadStartSync() {
    return Loading.service({ text: "请求中" })
  },
  // 加载结束后的处理,如关闭加载中效果
  handelLoadEndSync(loading) {
    loading.close()
  },
})

执行请求

import { Request } from "@sweet-front/web-sdk"
export default {
  data() {
    return {
      aaa: {},
      bbb: {},
    }
  },
  mounted() {
    Request.init()
    this.aaa = Request.create() // 创建请求实例
    this.bbb = Request.create() // 创建请求实例

    // this.aaa.loading 默认 false,  开始请求后 loading 为 true, 请求完成 loading 为 false
    this.aaa
      .get(`/test/node/v1/devices1`)
      .query({ a: 1, b: 1 }) // get请求参数
      .serSilenceError() // 异常结构不处理
      .calm() // 执行静默请求
      .do() // 开始请求
      .then((res) => {
        console.log("a", res)
      })
      .catch((err) => {
        console.log(err)
      })

    this.bbb
      .get(`/test/node/v1/devices2`)
      .query({ c: 1, d: 1 })
      .do()
      .then((res) => {
        console.log("b", res)
      })

    // 如果不需要请求实例,建议封装实例返回,如:
    const http = () => {
      return Request.create()
    }
    http()
      .get(`/test/node/v1/devices1`)
      .query({ a: 1, b: 1 }) // get请求参数
      .serSilenceError() // 异常结构不处理
      .calm() // 执行静默请求
      .do() // 开始请求
      .then((res) => {
        console.log("a", res)
      })
      .catch((err) => {
        console.log(err)
      })
  },
}

中止请求

import { Request } from "@sweet-front/web-sdk"
export default {
  data() {
    return {
      aaa: {},
    }
  },
  mounted() {
    Request.init()
    this.aaa = Request.create() // 创建请求实例

    // this.aaa.loading 默认 false,  开始请求后 loading 为 true, 请求完成 loading 为 false
    this.aaa
      .get(`/test/node/v1/devices1`)
      .query({ a: 1, b: 1 }) // get请求参数
      .serSilenceError() // 异常结构不处理
      .calm() // 执行静默请求
      .do() // 开始请求
      .then((res) => {
        console.log("a", res)
      })
      .catch((err) => {
        console.log(err)
      })

    // /test/node/v1/devices1未返回前可中止,返回后执行此方法没有任何效果
    // 中止信息可自定义
    this.aaa.getSource().cancel("中止信息")
  },
}

静态方法

静态方法说明参数类型
init初始化 Request 类,定义通用方法optionObject
create创建请求实例,在初始化方法后调用,建议每个请求都创建一个实例,防止内部变量被覆盖--

初始化参数

静态方法 Requset.init() 参数 Option 介绍

参数说明类型回调参数是否必填默认值
baseUrl所有请求前缀String-非必填-
timeout接口多久没返回算超时,单位毫秒Number-非必填30000
handelRequestSync请求拦截处理,回调参数包含请求信息,需 return configFuncitonconfig非必填-
handelResponseSync响应拦截处理,不包含 505,403 等异常请求结果,回调参数包含请求结果,需 return res.data 或其他Functionres非必填-
handelErrorSync异常处理,可处理所有异常,回调参数 错误信息,请求信息Functionerror,config非必填-
handelLoadStartSync开始请求的处理,如加载 loading 效果,结束时需关闭则要 return loading 实例Function-非必填-
handelLoadEndSync结束请求的处理,回调参数 handelLoadStartSync 返回的 loading 实例Functionloading非必填-

实例方法

实例 const xhr = Request.create() , xhr 的方法

方法名称说明参数类型是否必填默认值支持链式调用
get定义请求方式,设置请求接口urlString必填-
post定义请求方式,设置请求接口urlString必填-
put定义请求方式,设置请求接口urlString必填-
delete定义请求方式,设置请求接口urlString必填-
headers定义请求头dataObject非必填-
query装载 get 请求数据bodyObject非必填-
data装载 post 请求数据bodyObject非必填-
forceQuery装载 post 请求数据,并转成 get 的参数拼接bodyObject非必填-
formData装载 formdata 请求数据,并定义请求头 'Content-Type' = 'multipart/form-data'bodyObject非必填-
restURLRESTFUL 模式匹配替换请求链接的参数bodyObject非必填-
payload装载其他配置参数dataObject非必填-
expandConfig拓展 config,以注入的 config 为主dataObject非必填-
calm沉默执行,无需加载中提示----
turnTo转换请求参数 key 值的格式;type 转换的格式类型(枚举:s - 蛇形,t - 驼峰), exclude 排除在外的值,key 是 config 的属性data = {type, exclude , key }{ String, Array, String }必填-
serSilenceError是否执行接口错误处理----
throttle节流,时长内执行第一次data = {delay}{ Number }必填-
debounce防抖,时长内执行最后一次data = {delay}{ Number }必填-
loadAjax请求未返回不能再请求该接口----
do执行请求操作,放在链式的最后一环调用,返回 Promise 对象----×
getSource获取请求的标识,用于中止请求操作----×

Event {docsify-ignore}

  • 介绍: 长连接通用方法库
  • 实例部分方法支持链式调用

引用

import { WebSocket } from "@sweet-front/web-sdk"

使用示例

// 创建实例
let socket = new WebSocket()
socket.init({
  socketUrl: `ws://localhost:9988/ws?og=123`,
  autoCloseTime: 1000, // Number,无消息推送自动关闭长连接的时间(毫秒),0 不开启自动关闭
  heartTime: 3000, // Number,心跳时间(毫秒),0 不开启心跳
  heartData: { action: "do" }, // Any, 心跳发送的数据
  reconnectTime: 0, // Number,连接失败时重连次数
  historyList: [111, 1111], // Array,消息历史
  isReverse: true, // Booble, 消息是否倒序
  messageCb: (data) => {}, // Function,接收消息的回调方法
  consoleOut: true, // Booble,控制台是否输出
})
// 重置连接次数并重连
socket.resetConTimes().reconnect()
// 重置连接次数
socket.resetConTimes()
// 重连
socket.reconnect()
// 断开长连接
socket.close()
// 开始心跳
socket.heartStart({time: 5000})
// 关闭心跳
socket.heartEnd()
// 获取连接状态
socket.getWsStatus()
// 获取历史
socket.getHistory()

实例方法

事件名称说明参数参数类型是否必填支持链式调用
init初始化见初始化参数Object必填
send向长连接发送数据AnyAny非必填
close关闭连接---
reconnect重连---
resetConTimes重置连接次数---
heartStart开启心跳,传输心跳数据和时长,{data, time}Object = { Any, Number }data: 非必填,默认 '';time: 非必填,默认 0
heartEnd关闭心跳---
getWsStatus获取连接状态,状态介绍---×
getHistory获取消息历史---×
resetHistory重置推送记录arrArray非必填,默认 []
resetMessageCb重置回调方法fnFunction({e,news,history})必填

初始化参数

参数说明类型可选值默认值
socketUrlWebSocket 长连接地址(必填)String--
historyList重置历史消息记录Array-[]
heartTime心跳时间(毫秒),0 不开启心跳Number非负整数0
heartData心跳发送的数据Any (object 会自动转成 string)-{action: 'ping'}
autoCloseTime无消息推送自动关闭长连接的时间(毫秒),0 不开启自动关闭Number非负整数0
reconnectTime连接失败时重连次数,0 不重连Number非负整数0
messageCb接收消息的回调方法,回调参数 {e,news,history} = {推送信息,当前消息,消息合集}Function--
openCb长连接开启的回调方法,回调参数 {e} = {连接信息}Function--
closeCb长连接断开的回调方法,回调参数 {e} = {关闭信息}Function--
isReverse最新消息在消息队列头部(true)or 尾部(false)Booble-false
consoleOut控制台调试输出Booble-false

Utils {docsify-ignore}

  • 介绍: 定义函数的节流、防抖、请求中事件。
  • 不支持链式调用

引用

import { Utils } from "@sweet-front/web-sdk"

使用示例

// 3 秒内只能执行一次打印
Utils.throttle({ delay: 3000 }).then((res) => {
  console.log(1111)
})

// 3 秒内没有第二次操作才执行一次打印
Utils.debounce({ delay: 3000 }).then((res) => {
  console.log(1111)
})

Utils.firstToUpperSync("abc") // Abc

Utils.monthLastDateSync(2) // 28

Utils.getParamStrSync('https://www.baidu.com', { name: 'echo', age: 16 } // https://www.baidu.com?name=echo&age=1

Utils.getUrlOaramSync('name', 'https://www.baidu.com?name=echo&age=1') // echo

Utils.randomStringSync(10) // TfbP8DRXbF

let obj = { a: 1 }
let n1 = obj
let n2 = Utils.deepCloneSync(obj) // {a: 1}
console.log(n1 === obj, n2 === obj) // true false

Utils.filterQueryDataSync({ a: 1, b: 2, c: 3 }, 'a')) // {a: 1}
Utils.filterQueryDataSync({ a: 1, b: 2, c: 3 }, ['a', 'b']) // {a: 1, b: 2}

Utils.turnStringSync('nameCode', 's') // name_code

Utils.turnObjectSync({ nameCode: 'an', parentId: 12 }, 's', ['parentId']) // {name_code: 'an', parentId: 12}

方法介绍

方法名称说明参数类型是否必填默认值
throttle节流,时长内执行第一次,delay: 延时时长,毫秒, key: 标识此次操作, 返回 Promise 对象{delay, key}{ Number, String }delay:必填;key:非必填key='default'
debounce防抖,时长内执行最后一次,delay: 延时时长,毫秒, key: 标识此次操作, 返回 Promise 对象{delay, key}{ Number, String }delay:必填;key:非必填key='default'
firstToUpperSync首字母大写, 返回字符串strString必填-
monthLastDateSync返回某个月份的最后一天是几号, 返回数字month, yearNumber, Numbermonth:必填;year:非必填year 默认今年
fullScreenSync全屏----
exitFullScreenSync退出全屏----
getParamStrSync拼接地址+参数字符串,url:要拼接的 url 地址, paramObj: 要拼接的对象,返回字符串url, paramObjString, Object必填
getUrlOaramSync获取地址参数,返回 key 对应的 valuekey, urlString, String必填-
randomStringSync随机生成指定位数的字符串, 返回字符串lenString非必填32
deepCloneSync深拷贝对象,返回对象objObject必填-
filterQueryDataSync过滤数据,对象按 key 值,数组按 value 值, 返回对象org, tarObject/Array,Array/String必填-
turnStringSync将字符串转成驼峰格式或蛇形格式,type: 转换格式,s - 蛇形,t - 驼峰, 返回字符串str, typeString, String必填-
turnObjectSync将对象的 key 转成驼峰格式或蛇形格式,type: 转换格式,s - 蛇形,t - 驼峰,exclude:将某些 key 排除在外,返回对象obj, type, excludeObject,String,Array必填-
getScreenZoomSync按屏幕分辨率获取缩放比例,返回数字----
uuidRandomUUIDSync获取随机的 uuid----
isQwxWorkSync区分是否为企微环境----
0.0.1

12 months ago