cnetong-core-frontend
Version:
## 1. 开始使用 ```js // 在npm项目中的main.js文件中加入以下代码 import Base from "cnetong-core-frontend";
123 lines (111 loc) • 3.1 kB
JavaScript
import querystring from "querystring";
import moment from "moment";
// 文件下载
const downFileIframe = function (url, params) {
const id = "iframe_to_download_file_hidden" + new Date().getTime();
let fullURL = url + "?" + querystring.stringify(params);
let iframe = document.getElementById(id);
if (iframe === null) {
iframe = document.createElement("iframe");
}
iframe.id = id;
iframe.src = fullURL;
iframe.style.display = 'none';
document.body.appendChild(iframe);
iframe.onload = () => {
document.body.removeChild(iframe);
};
};
/**
* post方法下载
* @param url 下载地址
* @param params 参数
*/
const downFilePost = function (url, params) {
const id = "iframe_to_download_file_hidden" + new Date().getTime();
let iframe = document.createElement("iframe");
iframe.id = id;
iframe.name = id;
iframe.style.display = 'none';
document.body.appendChild(iframe);
let turnForm = document.createElement("form");
//一定要加入到body中!!
document.body.appendChild(turnForm);
turnForm.method = 'post';
turnForm.action = url;
turnForm.target = iframe.name;
for (let name in params) {
if (params.hasOwnProperty(name)) {
let value = params[name];
let newElement = document.createElement("input");
newElement.setAttribute("name", name);
newElement.setAttribute("type", "hidden");
newElement.setAttribute("value", value);
turnForm.appendChild(newElement);
}
}
iframe.onload = () => {
document.body.removeChild(iframe);
document.body.removeChild(turnForm);
};
turnForm.submit();
};
/**
* 数据安全处理
*/
const safety = {
// 防止非法数据
safeData(data) {
if (typeof data !== "object") {
return;
}
if (data) {
// 过滤非法数据
// delete data.opDesc;
delete data.opUuid;
delete data.crUserUuid;
delete data.crTime;
delete data.opUserUuid;
delete data.opUserName;
delete data.opUserName;
delete data.opTime;
for (let key in data) {
if (data.hasOwnProperty(key)) {
// 字符串去掉空白
if (typeof data[key] === "string") {
data[key] = data[key].trim();
}
// 过滤 空字符串 和null 不传递
if (key === "uuid") {
// uuid不能穿 空白等
if (
data[key] === "" ||
data[key] == null ||
data[key] === undefined
) {
delete data[key];
}
}
// 处理日期类型
if (moment.isDate(data[key])) {
data[key] = moment(data[key]).format("x");
}
}
}
}
return data;
},
// 递归预处理数据提交
preSubmit(data) {
this.safeData(data);
for (let key in data) {
if (data.hasOwnProperty(key)) {
if (typeof data[key] === "object") {
data[key] = this.preSubmit(data[key]);
}
}
}
return data;
}
};
export default {downFileIframe, downFilePost, safety};