index.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. export const blobToJson = (blob) => {
  2. return new Promise((resolve, reject) => {
  3. const reader = new FileReader()
  4. reader.onload = function (event) {
  5. const jsonString = event.target.result
  6. const jsonObject = JSON.parse(jsonString)
  7. resolve(jsonObject)
  8. }
  9. reader.onerror = function (error) {
  10. reject(error)
  11. }
  12. reader.readAsText(blob)
  13. })
  14. }
  15. // 判断是图片还是视频
  16. export const checkIsImage = (url) => {
  17. var link = new URL(url)
  18. var path = link.pathname
  19. var extension = path.split('.').pop().toLowerCase()
  20. var imageExtensions = ['jpg', 'jpeg', 'gif', 'png']
  21. var videoExtensions = ['mp4', 'wmv', 'avi', 'mov']
  22. // 图片
  23. if (imageExtensions.includes(extension)) {
  24. return true
  25. }
  26. // 视频
  27. if (videoExtensions.includes(extension)) {
  28. return false
  29. }
  30. return null
  31. }
  32. // 预览文件
  33. import { Base64 } from 'js-base64'
  34. export const previewFile = (url) => {
  35. const baseUrl = import.meta.env.VITE_PREVIEW_URL
  36. window.open(`${baseUrl}/onlinePreview?url=${encodeURIComponent(Base64.encode(url))}`)
  37. }
  38. export const generateUUID = () => {
  39. var d = new Date().getTime()
  40. if (window.performance && typeof window.performance.now === "function") {
  41. d += performance.now(); //use high-precision timer if available
  42. }
  43. var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
  44. var r = (d + Math.random() * 16) % 16 | 0
  45. d = Math.floor(d / 16)
  46. return (c == 'x' ? r : (r & 0x3 | 0x8)).toString(16)
  47. })
  48. return uuid.replace(/-/g, "")
  49. }