| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- /**
- * 纯工具函数 —— 类型判断、数据转换、日期解析
- * 无组件状态依赖、无副作用(除类型转换的 console.error)
- */
- export function is(val, type) {
- return Object.prototype.toString.call(val) === `[object ${type}]`
- }
- export function changeStringToObject(json) {
- if (is(json, 'String') && json?.length) {
- return changeStringToObject(JSON.parse(json))
- } else if (is(json, 'Object')) {
- return json
- } else {
- console.error('数据类型不正确!')
- return null
- }
- }
- export function base64ToBlob(base64Data, contentType = '') {
- const byteCharacters = atob(base64Data)
- const byteNumbers = new Array(byteCharacters.length)
- for (let i = 0; i < byteCharacters.length; i++) {
- byteNumbers[i] = byteCharacters.charCodeAt(i)
- }
- const byteArray = new Uint8Array(byteNumbers)
- return new Blob([byteArray], { type: contentType })
- }
- export function blobToBase64(blob) {
- return new Promise((resolve, reject) => {
- const reader = new FileReader()
- reader.onload = () => {
- const base64 = reader.result.split(',')[1]
- resolve(base64)
- }
- reader.onerror = reject
- reader.readAsDataURL(blob)
- })
- }
- export function formatterOADateNumber(input) {
- const regex = /OADate\(([\d.]+)\)/
- const match = input.match(regex)
- let OADate = null
- if (match && match[1]) {
- OADate = Number(match[1])
- OADate = isNaN(OADate) ? null : parseInt(OADate)
- }
- return OADate !== null ? new Date(Math.round(OADate - 25569) * 86400000) : null
- }
|