import { validatenull } from "./validate";
export const serialize = (data) => {
let list = [];
Object.keys(data).forEach((ele) => {
list.push(`${ele}=${data[ele]}`);
});
return list.join("&");
};
export const getObjType = (obj) => {
var toString = Object.prototype.toString;
var map = {
"[object Boolean]": "boolean",
"[object Number]": "number",
"[object String]": "string",
"[object Function]": "function",
"[object Array]": "array",
"[object Date]": "date",
"[object RegExp]": "regExp",
"[object Undefined]": "undefined",
"[object Null]": "null",
"[object Object]": "object",
};
if (obj instanceof Element) {
return "element";
}
return map[toString.call(obj)];
};
export const getViewDom = () => {
return window.document
.getElementById("avue-view")
.getElementsByClassName("el-scrollbar__wrap")[0];
};
export const deepClone = (data) => {
var type = getObjType(data);
var obj;
if (type === "array") {
obj = [];
} else if (type === "object") {
obj = {};
} else {
return data;
}
if (type === "array") {
for (var i = 0, len = data.length; i < len; i++) {
obj.push(deepClone(data[i]));
}
} else if (type === "object") {
for (var key in data) {
obj[key] = deepClone(data[key]);
}
}
return obj;
};
export const toggleGrayMode = (status) => {
if (status) {
document.body.className = document.body.className + " grayMode";
} else {
document.body.className = document.body.className.replace(" grayMode", "");
}
};
export const setTheme = (name) => {
document.body.className = name;
};
export const encryption = (params) => {
let { data, type, param, key } = params;
let result = JSON.parse(JSON.stringify(data));
if (type == "Base64") {
param.forEach((ele) => {
result[ele] = btoa(result[ele]);
});
} else if (type == "Aes") {
param.forEach((ele) => {
result[ele] = window.CryptoJS.AES.encrypt(result[ele], key).toString();
});
}
return result;
};
export const fullscreenToggel = () => {
if (fullscreenEnable()) {
exitFullScreen();
} else {
reqFullScreen();
}
};
export const listenfullscreen = (callback) => {
function listen () {
callback();
}
document.addEventListener("fullscreenchange", function () {
listen();
});
document.addEventListener("mozfullscreenchange", function () {
listen();
});
document.addEventListener("webkitfullscreenchange", function () {
listen();
});
document.addEventListener("msfullscreenchange", function () {
listen();
});
};
export const fullscreenEnable = () => {
var isFullscreen =
document.isFullScreen ||
document.mozIsFullScreen ||
document.webkitIsFullScreen;
return isFullscreen;
};
export const reqFullScreen = () => {
if (document.documentElement.requestFullScreen) {
document.documentElement.requestFullScreen();
} else if (document.documentElement.webkitRequestFullScreen) {
document.documentElement.webkitRequestFullScreen();
} else if (document.documentElement.mozRequestFullScreen) {
document.documentElement.mozRequestFullScreen();
}
};
export const exitFullScreen = () => {
if (document.documentElement.requestFullScreen) {
document.exitFullScreen();
} else if (document.documentElement.webkitRequestFullScreen) {
document.webkitCancelFullScreen();
} else if (document.documentElement.mozRequestFullScreen) {
document.mozCancelFullScreen();
}
};
export const findParent = (menu, id) => {
for (let i = 0; i < menu.length; i++) {
if (menu[i].children.length != 0) {
for (let j = 0; j < menu[i].children.length; j++) {
if (menu[i].children[j].id == id) {
return menu[i];
} else {
if (menu[i].children[j].children.length != 0) {
return findParent(menu[i].children[j].children, id);
}
}
}
}
}
};
export const loadStyle = (url) => {
const link = document.createElement("link");
link.type = "text/css";
link.rel = "stylesheet";
link.href = url;
const head = document.getElementsByTagName("head")[0];
head.appendChild(link);
};
export const diff = (obj1, obj2) => {
delete obj1.close;
var o1 = obj1 instanceof Object;
var o2 = obj2 instanceof Object;
if (!o1 || !o2) {
return obj1 === obj2;
}
if (Object.keys(obj1).length !== Object.keys(obj2).length) {
return false;
}
for (var attr in obj1) {
var t1 = obj1[attr] instanceof Object;
var t2 = obj2[attr] instanceof Object;
if (t1 && t2) {
return diff(obj1[attr], obj2[attr]);
} else if (obj1[attr] !== obj2[attr]) {
return false;
}
}
return true;
};
export const findByvalue = (dic, value) => {
let result = "";
if (validatenull(dic)) return value;
if (
typeof value == "string" ||
typeof value == "number" ||
typeof value == "boolean"
) {
let index = 0;
index = findArray(dic, value);
if (index != -1) {
result = dic[index].dictValue || dic[index].monitorName;
} else {
result = value;
}
} else if (value instanceof Array) {
result = [];
let index = 0;
value.forEach((ele) => {
index = findArray(dic, ele);
if (index != -1) {
let label = dic[index].dictValue || dic[index].monitorName;
result.push(label);
} else {
result.push(value);
}
});
result = result.toString();
}
return result;
};
export const findByvalue2 = (dic, value, targetName, targetKey) => {
let result = "";
if (validatenull(dic)) return value;
if (
typeof value == "string" ||
typeof value == "number" ||
typeof value == "boolean"
) {
let index = 0;
index = findArray2(dic, value, targetKey);
if (index != -1) {
result = dic[index][targetName];
} else {
result = value;
}
} else if (value instanceof Array) {
result = [];
let index = 0;
value.forEach((ele) => {
index = findArray2(dic, ele, targetKey);
if (index != -1) {
let label = dic[index][targetName];
result.push(label);
} else {
result.push(value);
}
});
result = result.toString();
}
return result;
};
export const findArray2 = (dic, value, targetKey) => {
for (let i = 0; i < dic.length; i++) {
let keyVal = dic[i][targetKey];
if (keyVal == value) {
return i;
}
}
return -1;
};
export const findTreeName = (list, id) => {
let _this = this;
for (let i = 0; i < list.length; i++) {
let a = list[i];
if (a.id === id) {
return a.title;
} else {
if (a.children && a.children.length > 0) {
let res = findTreeName(a.children, id);
if (res) {
return res;
}
}
}
}
};
export const findTreeObj = (list, id) => {
let _this = this;
for (let i = 0; i < list.length; i++) {
let a = list[i];
if (a.id === id) {
return a;
} else {
if (a.children && a.children.length > 0) {
let res = findTreeObj(a.children, id);
if (res) {
return res;
}
}
}
}
};
export const findcheckbox = (list, id) => {
let _this = this;
for (let i = 0; i < list.length; i++) {
let a = list[i];
if (a.layerName === id) {
return a;
} else {
if (a.children && a.children.length > 0) {
let res = findTreeObj(a.children, id);
if (res) {
return res;
}
}
}
}
};
export const findArray = (dic, value) => {
for (let i = 0; i < dic.length; i++) {
let keyVal = dic[i].dictKey || dic[i].monitorCode;
if (keyVal == value) {
return i;
}
}
return -1;
};
export const findDictObj = (dic, value) => {
for (let i = 0; i < dic.length; i++) {
let id = dic[i].dictKey || dic[i].id;
if (id == value) {
return dic[i];
}
}
return {};
};
export const randomLenNum = (len, date) => {
let random = "";
random = Math.ceil(Math.random() * 100000000000000)
.toString()
.substr(0, len ? len : 4);
if (date) random = random + Date.now();
return random;
};
export const openWindow = (url, title, w, h) => {
const dualScreenLeft =
window.screenLeft !== undefined ? window.screenLeft : screen.left;
const dualScreenTop =
window.screenTop !== undefined ? window.screenTop : screen.top;
const width = window.innerWidth
? window.innerWidth
: document.documentElement.clientWidth
? document.documentElement.clientWidth
: screen.width;
const height = window.innerHeight
? window.innerHeight
: document.documentElement.clientHeight
? document.documentElement.clientHeight
: screen.height;
const left = width / 2 - w / 2 + dualScreenLeft;
const top = height / 2 - h / 2 + dualScreenTop;
const newWindow = window.open(
url,
title,
"toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=yes, copyhistory=no, width=" +
w +
", height=" +
h +
", top=" +
top +
", left=" +
left
);
if (window.focus) {
newWindow.focus();
}
};
export const getTopUrl = () => {
return window.location.href.split("/#/")[0];
};
export const getQueryString = (name) => {
let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
let r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(decodeURI(r[2]));
return null;
};
export const downloadFileBlob = (path, name) => {
const xhr = new XMLHttpRequest();
xhr.open("get", path);
xhr.responseType = "blob";
xhr.send();
xhr.onload = function () {
if (this.status === 200 || this.status === 304) {
if ("msSaveOrOpenBlob" in navigator) {
navigator.msSaveOrOpenBlob(this.response, name);
return;
}
const url = URL.createObjectURL(this.response);
const a = document.createElement("a");
a.style.display = "none";
a.href = url;
a.download = name;
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
URL.revokeObjectURL(url);
}
};
};
export const downloadFileBase64 = (path, name) => {
const xhr = new XMLHttpRequest();
xhr.open("get", path);
xhr.responseType = "blob";
xhr.send();
xhr.onload = function () {
if (this.status === 200 || this.status === 304) {
const fileReader = new FileReader();
fileReader.readAsDataURL(this.response);
fileReader.onload = function () {
const a = document.createElement("a");
a.style.display = "none";
a.href = this.result;
a.download = name;
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
};
}
};
};
export const downloadFileliu = (res, type) => {
type = type ? type : 'application/vnd.ms-excel'
let fileNames = res.headers['content-disposition']
let blob = new Blob([res.data], { type: type })
let fileName = ''
if (fileNames.indexOf('"') > 0) {
fileName = decodeURI(fileNames.match(/"(.*)"$/)[1])
} else {
fileName = decodeURI(fileNames.match(/=(.*)$/)[1])
}
if ('download' in document.createElement('a')) {
const elink = document.createElement('a')
elink.download = fileName
elink.style.display = 'none'
elink.href = URL.createObjectURL(blob)
document.body.appendChild(elink)
elink.click()
URL.revokeObjectURL(elink.href)
document.body.removeChild(elink)
} else {
navigator.msSaveBlob(blob, fileName)
}
};
export const findTreeItem = (value, targetField, arr) => {
for (let i = 0; i < arr.length; i++) {
let item = arr[i];
if (item[targetField] == value) {
return item;
} else {
if (item.children && item.children.length > 0) {
let res = findTreeItem(value, targetField, item.children);
if (res) {
return res;
}
}
}
}
};
export const getTreeValues = (value, targetField, arr, targetValue) => {
let result;
for (let i = 0; i < arr.length; i++) {
let item = arr[i];
if (item[targetField] === targetValue) {
return item[value];
} else {
if (item.children && item.children.length > 0) {
let res = getTreeValues(value, targetField, item.children, targetValue);
if (res) {
return res;
}
}
}
}
};
export const rowClassName = (record, index) => {
return index % 2 ? "table-rows-1" : "table-rows-2";
};
export const findSome = (arr, key, string) => {
let _item = undefined;
arr.map((item) => {
if (item.list && item.list.length) {
item.list.map((__item) => {
if (__item[key] === string) {
_item = __item;
}
});
} else {
if (item[key] === string) {
_item = item;
}
}
});
return _item;
};
export const getFirstChild = (arr) => {
let _data;
let _arr = arr[0];
if (_arr.list && _arr.list.length) {
let data = getFirstChild(_arr.list);
_data = data;
} else {
_data = _arr;
}
return _data;
};
export const flattenArray = (arr, str, del) => {
var list = [];
arr.map((item) => {
list.push(item);
if (item[str]) {
let _list = flattenArray(item[str], str);
list.push(..._list);
}
});
if (del) list.map((_item) => delete _item[str]);
return list;
};
export const guid = () => {
const s4 = () =>
Math.floor((1 + Math.random()) * 0x10000)
.toString(16)
.substring(1);
return (() =>
`${s4() + s4()}-${s4()}-${s4()}-${s4()}-${s4()}${s4()}${s4()}`)();
};
export const fiterArry = (arrs1, arr2) => {
const result = arrs1.filter((item) => !arr2.includes(item));
return result;
};
export const removeAaary = (_arr, _obj) => {
var length = _arr.length;
for (var i = 0; i < length; i++) {
if (_arr[i] == _obj) {
_arr.splice(i, 1);
return _arr;
}
}
}
export const findobjct = (_name, _obj) => {
const items = _obj.filter(item => {
return item.prop == _name
})[0]
return items
}
export const getDataColor = (obj) => {
let color = "";
if (Array.isArray(obj.dataList) && obj.dataList.length > 0) {
for (let i = 0; i < obj.dataList.length; i++) {
if (obj.dataList[i][obj.value] == obj.data) {
color = obj.dataList[i][obj.label];
}
}
}
return {
color: color,
};
};
let remainingsum = ''
function Depositcalculation (money, monthmoney, month, rateofinterest) {
for (var i = 1; i < month; i++) {
remainingsum = (money + (money * rateofinterest / 100 / 12) - monthmoney)
money = remainingsum
}
let a = `本金${money / 10000}万元,年化利率${rateofinterest}%,每月花销${monthmoney}元,经过${month}个月的花费(${month / 12}年),还有余额${remainingsum / 10000}万元`
return console.log(a);
}
Depositcalculation(1000000, 2000, 12, 2.5)
Depositcalculation(1000000, 2000, 120, 2.5)
Depositcalculation(1000000, 2000, 240, 2.5)
Depositcalculation(1000000, 2000, 360, 2.5)
Depositcalculation(1000000, 2000, 480, 2.5)
export const getyearList = () => {
let thisyear = new Date().getFullYear()
let arr = []
for (var i = 0; i < 10; i++) {
arr.push({
label: `${thisyear - i}年`,
value: thisyear - i,
})
}
return arr
}
export const yearList = getyearList()
let arr = ['18月','8月’,'9月]
let newarr = arr.map((item, index) => {return {
name: item,
index: index
newname: Number(item.replace(/[ @-9]/ig,
1)
var compare = function (prop) freturn function (obj1, obj2) {var val1 = obj1[prop];
var val2 = obj2[prop]; if (val1 < val2) {
return -1;
else if (val1 > val2)
return 1:
else {
return 8;
var result = function (arr) flet a = arr.map(item => [
return item.name
return a
console.log(newarr .sort(compare('newname')));console.log(arr,result(newarr));```