/**
* 解析url参数
* 例: url(https://www.baidu.com?username=xiaoming&password=123&token=456)
* 解析后: {username:'xiaoming', password:'123', token: '456'}
* @param url url格式的字符串
* @return {{}}
*/
export function parseUrl(url) {
let param = {};
let reg = /(?:\?|&)([^?&=]+)=([^?&=#]+)/g;
let match = url.match(reg);
match.forEach((item) => {
let arr = item.slice(1).split(/=/g);
param[arr[0]] = arr[1]
});
return param
}
/**
* 超出文本处理
* @param {String,Number} (val, lang)
* @returns
*/
// eslint-disable-next-line consistent-return
export function getContent(val, lang) {
if (String(val).length > lang) {
return `${String(val).substring(0, lang - 1)}...`;
}
return val;
}
/**
* 通过url下载文件
* @param {string} url
* @param {string} fileName 可选参数
*/
export function downloadFileByUrl(url, fileName) {
const suffix = extname(url);
let name = fileName;
const a = document.createElement('a');
a.style.display = 'none';
a.href = url;
// name 没有传递,生成默认文件名
if (!name) {
name = `${Date.now()}${suffix}`;
}
// 从url中没有解析到文件后缀,尝试从用户传递的文件名中解析出文件后缀
if (!suffix) {
name = `${name}${extname(name)}`;
}
a.setAttribute('download', name);
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
}