|
|
import typeUtil from './type'
|
|
|
|
|
|
let pro = {
|
|
|
// copy:function(data) {
|
|
|
// const t = typeUtil.getType(data);
|
|
|
// let o;
|
|
|
|
|
|
// if (t === 'array') {
|
|
|
// o = [];
|
|
|
// } else if (t === 'object') {
|
|
|
// o = {};
|
|
|
// } else {
|
|
|
// return data;
|
|
|
// }
|
|
|
|
|
|
// if (t === 'array') {
|
|
|
// for (let i = 0; i < data.length; i++) {
|
|
|
// o.push(copy(data[i]));
|
|
|
// }
|
|
|
// } else if (t === 'object') {
|
|
|
// for (let i in data) {
|
|
|
// o[i] = copy(data[i]);
|
|
|
// }
|
|
|
// }
|
|
|
// return o;
|
|
|
// },
|
|
|
|
|
|
copy: (function () {
|
|
|
'use strict'
|
|
|
return function innerCopy(data) {
|
|
|
const t = typeUtil.getType(data);
|
|
|
let o;
|
|
|
|
|
|
if (t === 'array') {
|
|
|
o = [];
|
|
|
for (let i = 0; i < data.length; i++) {
|
|
|
o.push(innerCopy(data[i]));
|
|
|
}
|
|
|
} else if (t === 'object') {
|
|
|
o = {};
|
|
|
for (let i in data) {
|
|
|
if (Object.prototype.hasOwnProperty.call(data, i)) {
|
|
|
o[i] = innerCopy(data[i]);
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
return data;
|
|
|
}
|
|
|
return o;
|
|
|
}
|
|
|
})(),
|
|
|
flatMap: (function () {
|
|
|
'use strict'
|
|
|
return function innerMap(arr) {
|
|
|
let newArr = [];
|
|
|
arr.forEach(item => {
|
|
|
newArr.push(item);
|
|
|
if (item.children && item.children.length > 0) {
|
|
|
newArr.push(...innerMap(item.children))
|
|
|
}
|
|
|
})
|
|
|
return newArr;
|
|
|
}
|
|
|
})(),
|
|
|
dateFormat: function (inDate) {
|
|
|
const daterc = inDate
|
|
|
if (daterc != null) {
|
|
|
var date = new Date(daterc);
|
|
|
var year = date.getFullYear();
|
|
|
/* 在日期格式中,月份是从0开始,11结束,因此要加0
|
|
|
* 使用三元表达式在小于10的前面加0,以达到格式统一 如 09:11:05
|
|
|
* */
|
|
|
var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
|
|
|
var day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
|
|
|
var hours = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();
|
|
|
var minutes = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
|
|
|
var seconds = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
|
|
|
// 拼接
|
|
|
return year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds;
|
|
|
}
|
|
|
},formatDate:function (dateString,format) {
|
|
|
const date = new Date(dateString);
|
|
|
const year = date.getFullYear();
|
|
|
const month = (date.getMonth() + 1).toString().padStart(2, '0');
|
|
|
const day = date.getDate().toString().padStart(2, '0');
|
|
|
|
|
|
let hour=date.getHours();
|
|
|
let minute=date.getMinutes();
|
|
|
let second=date.getSeconds();
|
|
|
if(hour<10){
|
|
|
hour ="0"+hour;
|
|
|
}
|
|
|
if(minute<10){
|
|
|
minute ="0"+minute;
|
|
|
}
|
|
|
if(second<10){
|
|
|
second ="0"+second;
|
|
|
}
|
|
|
const milSecond=date.getMilliseconds();
|
|
|
if(format=="YYYY-MM-DD"){
|
|
|
return `${year}-${month}-${day}`;
|
|
|
}else if(format=="YYYY-MM-DD HH:MM:SS"){
|
|
|
return `${year}-${month}-${day} ${hour}:${minute}:${second}`;
|
|
|
}else if(format=="YYYY-MM-DD HH:MM:SS:SSS"){
|
|
|
return `${year}-${month}-${day} ${hour}:${minute}:${second}:${milSecond}`;
|
|
|
}else if(format=="HH:MM:SS"){
|
|
|
return `${hour}:${minute}:${second}:${milSecond}`;
|
|
|
}
|
|
|
return "";
|
|
|
},NumRound(num) {//保留两位小数
|
|
|
num=Math.round(num*100)/100
|
|
|
return num;
|
|
|
},dateFormatDay: function (inDate) {
|
|
|
const daterc = inDate
|
|
|
if (daterc != null) {
|
|
|
var date = new Date(daterc);
|
|
|
var year = date.getFullYear();
|
|
|
/* 在日期格式中,月份是从0开始,11结束,因此要加0
|
|
|
* 使用三元表达式在小于10的前面加0,以达到格式统一 如 09:11:05
|
|
|
* */
|
|
|
var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
|
|
|
var day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
|
|
|
// 拼接
|
|
|
return year + "-" + month + "-" + day;
|
|
|
}
|
|
|
},
|
|
|
checkMonth(i) {
|
|
|
if (i < 10) {
|
|
|
i = "0" + i;
|
|
|
}
|
|
|
return i;
|
|
|
},
|
|
|
MonthAdd(date,num) {
|
|
|
let currentDate = date;
|
|
|
currentDate = new Date(currentDate);
|
|
|
let nextDate = currentDate.setMonth(currentDate.getMonth() + num); // 输出日期格式为毫秒形式1556668800000
|
|
|
nextDate = new Date(nextDate);
|
|
|
// let nextYear = nextDate.getFullYear();
|
|
|
// let nextMonth = this.checkMonth(nextDate.getMonth() + 1); // 因日期中的月份表示为0-11,所以要显示正确的月份,需要 + 1
|
|
|
// nextDate = nextYear + "-" + nextMonth+'-'+nextDate.getDate()+" "+nextDate.getHours()+":"+nextDate.getMonth()+":"+nextDate.getSeconds();
|
|
|
date = nextDate;
|
|
|
return date;
|
|
|
},DayDec(date,num) {//前 num天数 的日期
|
|
|
var dd = new Date(date);
|
|
|
dd.setDate(dd.getDate() + num);
|
|
|
var y = dd.getFullYear();
|
|
|
var m = dd.getMonth() + 1 < 10 ? "0" + (dd.getMonth() + 1) : dd.getMonth() + 1;
|
|
|
var d = dd.getDate() < 10 ? "0" + dd.getDate() : dd.getDate();
|
|
|
return y + "-" + m + "-" + d;
|
|
|
},
|
|
|
YearAdd(date,num) {
|
|
|
let currentDate = date;
|
|
|
currentDate = new Date(currentDate);
|
|
|
let nextDate = currentDate.setYear(currentDate.getFullYear() + num); // 输出日期格式为毫秒形式1556668800000
|
|
|
nextDate = new Date(nextDate);
|
|
|
// nextDate = nextYear + "-" + nextMonth+'-'+nextDate.getDate()+" "+nextDate.getHours()+":"+nextDate.getMonth()+":"+nextDate.getSeconds();
|
|
|
date = nextDate;
|
|
|
return date;
|
|
|
},
|
|
|
toCamelCase: function (s) {
|
|
|
return s.replace(/([A-Z])/g, '_$1')
|
|
|
},
|
|
|
ensureNotNull: function (value) {
|
|
|
if (typeUtil.isNull(value) || typeUtil.isUndefined(value)) {
|
|
|
return 0
|
|
|
}
|
|
|
return value
|
|
|
},
|
|
|
deepLocate: (function () {
|
|
|
'use strict'
|
|
|
return function innerLocate(target, arr) {
|
|
|
let newArr = [];
|
|
|
arr.forEach(item => {
|
|
|
newArr.push(item);
|
|
|
if (item.children && item.children.length > 0) {
|
|
|
newArr.push(...innerLocate(item.children))
|
|
|
}
|
|
|
})
|
|
|
return newArr;
|
|
|
}
|
|
|
})(),
|
|
|
getParentNodes: (function () {
|
|
|
'use strict'
|
|
|
return function getInnerParentNodes(currentValue, allDatas, props = {
|
|
|
label: 'name',
|
|
|
key: 'id',
|
|
|
children: 'children'
|
|
|
}) {
|
|
|
let parent = [];
|
|
|
(allDatas || []).forEach(item => {
|
|
|
if (parent.length == 0) {
|
|
|
if (currentValue == (item[props.key] || 0)) {
|
|
|
parent.push(item);
|
|
|
} else if (item[props.children] && item[props.children].length > 0) {
|
|
|
const childArr = getInnerParentNodes(item[props.children])
|
|
|
if (childArr.length > 0) {
|
|
|
parent.push(item);
|
|
|
parent = parent.concat(childArr)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
})
|
|
|
return parent
|
|
|
}
|
|
|
})(),
|
|
|
}
|
|
|
export default pro; |