import request from '@/utils/request' import { Loading } from 'element-ui'; import { pathToBase64, base64ToPath } from '@/js_sdk/mmmm-image-tools/index.js' /** * 参数处理 key获取value值 * @param obj值 arr数组 */ // 根据key获取value值 export function assignValues(obj, arr) { const updatedArr = arr.map(item => { item.value = obj[item.key]; return { type: item.type ? item.type : 'other', name: item.name, key: item.key, value: item.value?item.value:'— —' // value: Array.isArray(item.value)? item.value :item.value == 0 ? 0: item.value?item.value:'— —' }; }); return updatedArr; } /** * 通用js方法封装处理 * Copyright (c) 2019 */ // 日期格式化 export function parseTime(time, pattern) { if (arguments.length === 0 || !time) { return null } const format = pattern || '{y}-{m}-{d} {h}:{i}:{s}' let date if (typeof time === 'object') { date = time } else { if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) { time = parseInt(time) } else if (typeof time === 'string') { time = time.replace(new RegExp(/-/gm), '/').replace('T', ' ').replace(new RegExp(/\.[\d]{3}/gm), ''); } if ((typeof time === 'number') && (time.toString().length === 10)) { time = time * 1000 } date = new Date(time) } const formatObj = { y: date.getFullYear(), m: date.getMonth() + 1, d: date.getDate(), h: date.getHours(), i: date.getMinutes(), s: date.getSeconds(), a: date.getDay() } const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => { let value = formatObj[key] // Note: getDay() returns 0 on Sunday if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value] } if (result.length > 0 && value < 10) { value = '0' + value } return value || 0 }) return time_str } /** * 参数处理 根据num获取二维数组 * @param obj值 arr数组 */ // 根据key获取value值 export function createDoubleArray(arr, num) { const doubleArr = []; for (var i = 0; i < arr.length; i += num) { // 3个为一组转为二维数组 doubleArr.push(arr.slice(i, i + num)) }; return doubleArr; } /* 将二进制图片转换成base64显示,单图传fileId返回一张base64图片, 多图传数组,自动获取response下的fileId,返回base64图片数组 */ export async function getPhotoUrl(fileIds) { const { portal} = window.context; let imgUrl = ''; const fetchPhoto = async (fileId) => { const url = `${portal}/system/file/v1/preview?fileId=${fileId}`; try { const response = await request(url, { method: 'get', responseType: 'blob', }); if (response.size > 0) { var blob = response; var reader = new FileReader(); reader.readAsDataURL(blob); await new Promise((resolve, reject) => { reader.onload = function (e) { imgUrl = e.target.result; resolve(); }; }) } return imgUrl; } catch (error) { console.error(error); return null; } }; if (Array.isArray(fileIds)) { // this.$modal.showLoading('请稍后...') Loading.service('请稍后...'); const promises = fileIds.map(fileIdObj => fetchPhoto(fileIdObj.response.fileId)); const results = await Promise.all(promises); // this.$modal.closeLoading() Loading.service('请稍后...').close(); return results; } else { return await fetchPhoto(fileIds); } }