mirror of
https://github.com/PanJiaChen/vue-element-admin.git
synced 2025-08-12 22:29:59 +08:00
72 lines
1.9 KiB
JavaScript
72 lines
1.9 KiB
JavaScript
// This file allows generate util functions for handle arrays, resources and all
|
|
// related to upload to server side and downdload from server side to client side.
|
|
// Please add the necessary functions here:
|
|
import { config } from '@/utils/ADempiere/config'
|
|
|
|
// Merge two arrays and return merged array
|
|
export function mergeByteArray(currentArray, arrayToMerge) {
|
|
const mergedArray = new currentArray.constructor(currentArray.length + arrayToMerge.length)
|
|
mergedArray.set(currentArray)
|
|
mergedArray.set(arrayToMerge, currentArray.length)
|
|
return mergedArray
|
|
}
|
|
|
|
// Build a base 64 image from array
|
|
export function buildImageFromArray({
|
|
contentType = 'image/*',
|
|
bytesArray
|
|
}) {
|
|
const binary = bytesArray.reduce((data, byte) => {
|
|
return data + String.fromCharCode(byte)
|
|
}, '')
|
|
const b64encoded = btoa(binary)
|
|
const buffer = 'data:' + contentType + ';base64,' + b64encoded
|
|
return buffer
|
|
}
|
|
|
|
/**
|
|
* Build a base 64 image from arrayBuffer
|
|
* @author EdwinBetanc0urt <EdwinBetanc0urt@oulook.com>
|
|
* @author elsiosanchez <Elsiosanches@gmail.com>
|
|
* @param {array} arrayBuffer
|
|
* @param {string} contentType
|
|
* @returns {string} image as base64 encoded
|
|
*/
|
|
export function buildImageFromArrayBuffer({
|
|
arrayBuffer,
|
|
contentType = 'image/*'
|
|
}) {
|
|
const bytesArray = new Uint8Array(arrayBuffer)
|
|
return buildImageFromArray({
|
|
bytesArray,
|
|
contentType
|
|
})
|
|
}
|
|
|
|
/**
|
|
* Get path to get file
|
|
* @author EdwinBetanc0urt <EdwinBetanc0urt@oulook.com>
|
|
* @author elsiosanchez <Elsiosanches@gmail.com>
|
|
* @param {string} file
|
|
* @param {number} width
|
|
* @param {number} height
|
|
* @param {string} operation fit, resize
|
|
* @returns {object} url, urn and uri with path to request
|
|
*/
|
|
export function getImagePath({
|
|
file,
|
|
width = 300,
|
|
height = 300,
|
|
operation = 'fit'
|
|
}) {
|
|
const url = config.adempiere.images.fullPath
|
|
const urn = `/img?action=${operation}&width=${width}&height=${height}&url=${file}`
|
|
const uri = `${url}${urn}`
|
|
|
|
return {
|
|
url,
|
|
urn,
|
|
uri
|
|
}
|
|
}
|