common.js
3.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
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);
}
}