tools.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. //节流
  2. export const trottle = (func, time = 1000, context) => {
  3. let previous = new Date(0).getTime()
  4. return function(...args) {
  5. let now = new Date().getTime()
  6. if (now - previous > time) {
  7. func.apply(context, args)
  8. previous = now
  9. }
  10. }
  11. }
  12. //获取url后的参数 以对象返回
  13. export function strToParams(str) {
  14. var newparams = {}
  15. for (let item of str.split('&')) {
  16. newparams[item.split('=')[0]] = item.split('=')[1]
  17. }
  18. return newparams
  19. }
  20. //对象参数转为以?&拼接的字符
  21. export function paramsToStr(params) {
  22. let p = '';
  23. if (typeof params == 'object') {
  24. p = '?'
  25. for (let props in params) {
  26. p += `${props}=${params[props]}&`
  27. }
  28. p = p.slice(0, -1)
  29. }
  30. return p
  31. }
  32. /**
  33. * @description 复制到剪切板
  34. * @param value { String } 复制内容
  35. * @return { Promise } resolve | reject
  36. */
  37. export const copyClipboard = (value) => {
  38. const elInput = document.createElement('input')
  39. elInput.setAttribute('value', value)
  40. document.body.appendChild(elInput)
  41. elInput.select()
  42. try{
  43. if(document.execCommand('copy'))
  44. return Promise.resolve()
  45. else
  46. throw new Error()
  47. } catch(err) {
  48. return Promise.reject(err)
  49. } finally {
  50. document.body.removeChild(elInput)
  51. }
  52. }