tools
2019-03-27 本文已影响0人
Clover园
/**
* 按条件查找数组下标
* @param {Array} array
* @param {Function} callback
* @returns {Number} 返回下标
*/
export const findIndex = (array, callback) => {
for (let i = 0, len = array.length; i < len; i++) {
let arr = array[i];
if (callback(arr)) {
return i;
}
}
return -1;
};
/**
* 数组元素移动位置
* @param {Array} arr
* @param {Number} index
* @param {Number} tindex
*/
export const arrayMovePosition = (arr, index, tindex) => {
//如果当前元素在拖动目标位置的下方,先将当前元素从数组拿出,数组长度-1,我们直接给数组拖动目标位置的地方新增一个和当前元素值一样的元素,
//我们再把数组之前的那个拖动的元素删除掉,所以要len+1
if (index > tindex) {
arr.splice(tindex, 0, arr[index]);
arr.splice(index + 1, 1);
} else {
//如果当前元素在拖动目标位置的上方,先将当前元素从数组拿出,数组长度-1,我们直接给数组拖动目标位置+1的地方新增一个和当前元素值一样的元素,
//这时,数组len不变,我们再把数组之前的那个拖动的元素删除掉,下标还是index
arr.splice(tindex + 1, 0, arr[index]);
arr.splice(index, 1);
}
};
/**
* 更新数据源中的row数据,不会触发表格重新渲染,arr原数据数组,row最新的一行数据,只更新这行数据,不触发表格重新渲染
* @param {Array} arr
* @param {Object} row
*/
export const findTreeNode=(arr, row) =〉{
let p = {};
for (let i = 0; i < arr.length; i++) {
p = arr[i];
if (p.parameterId === row.parameterId) {
// 此处赋值仅改变数据源,但不会触发表格重新渲染
arr[i] = row;
break;
} else if (p.childrenParams && p.childrenParams.length) {
this.findTreeNode(p.childrenParams, row);
}
}
},
/**
* 当前日期加时间(如:2009-06-12 12:00)
* @returns {Promise} promise
*/
export const CurentTime = ()=〉 {
var now = new Date();
//var year = now.getFullYear();//年
//var month = now.getMonth() + 1;//月
//var day = now.getDate();//日
var hh = now.getHours();//时
var mm = now.getMinutes();//分
var ss = now.getSeconds();//秒
var ms = now.getMilliseconds();//毫秒
var clock = "";// = year + "-";
/* if (month < 10) {
clock += "0";
}
clock += month + "-";
if(day < 10) {
clock += "0";
}
clock += day + " "; */
if(hh < 10) {
clock += "0";
}
clock += hh + ":";
if (mm < 10) {
clock += '0';
}
clock += mm + ":";
if (ss < 10) {
clock += '0';
}
clock += ss + "-";
clock += ms;
return(clock);
}
/**
* 生成uuid
* @returns {String} 返回uuid
*/
export const uuid = () => {
var s = [];
var hexDigits = "0123456789abcdef";
for (var i = 0; i < 36; i++) {
s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
}
s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010
s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01
s[8] = s[13] = s[18] = s[23] = "-";
var uid = s.join("");
return uid;
}
###page
####this.dataSource数据源
####data 里面定义
page:{size:10,current:1}
pageChange(no) {
const start = (no - 1) * this.page.size;
const end = start + this.page.size;
this.dataSource = this.thisgbomData.slice(start, end);
}
/**
* 原生增加删除class
* 不考虑IE9及以下兼容性可以用HTML5里面的classList
*/
export const hasClass = (obj, cls) => {
return obj.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)'));
};
export const addClass=(obj, cls) => {
if (!hasClass(obj, cls)) obj.className += " " + cls;
};
export const removeClass = (obj, cls) =>{
if (hasClass(obj, cls)) {
var reg = new RegExp('(\\s|^)' + cls + '(\\s|$)');
obj.className = obj.className.replace(reg, ' ');
}
};
export const toggleClass = (obj,cls) => {
if(hasClass(obj,cls)){
removeClass(obj, cls);
}else{
addClass(obj, cls);
}
},
/**
* 更新数据源中的row数据,不会触发表格重新渲染
* @param {Array} arr
* @param {Object} row
*/
findTreeNode(arr, row) {
let p = {};
for (let i = 0; i < arr.length; i++) {
p = arr[i];
if (p.parameterId === row.parameterId) {
// 此处赋值仅改变数据源,但不会触发表格重新渲染
arr[i] = row;
break;
} else if (p.childrenParams && p.childrenParams.length) {
this.findTreeNode(p.childrenParams, row);
}
}
},
// 读取设置cookie,登录退出获取信息start
function _getCookie (name) {
let start, end
if (document.cookie.length > 0) {
start = document.cookie.indexOf(name + '=')
if (start !== -1) {
start = start + name.length + 1
end = document.cookie.indexOf(';', start)
if (end === -1) {
end = document.cookie.length
}
return unescape(document.cookie.substring(start, end))
}
}
return ''
}
function _setCookie (name, value, expire) {
let date = new Date()
date.setDate(date.getDate() + expire)
document.cookie = name + '=' + escape(value) + '; path=/' +
(expire ? ';expires=' + date.toGMTString() : '')
}
const LOGIN_COOKIE_NAME = 'sessionId'
export function isAuthenticated () {
return _getCookie(LOGIN_COOKIE_NAME)
}
export function authenticateSuccess (token) {
_setCookie(LOGIN_COOKIE_NAME, token)
}
export function logout () {
_setCookie(LOGIN_COOKIE_NAME, '', 0)
}
// 读取设置cookie,登录退出获取信息end
//多维数组平铺得到序号1,1.1,1.2 2,2.1,2.2
* 1.转为一维数组
* @param {Array} arr 多维数组
* @param {Array} list 过渡空数组
* @param {Number} level 控制序号小数点前,首次调用不传
* @returns {Promise} list
*/
getNewDataView(arr,list,level){
let i = 0;
arr.map(p=>{
list.push(p);
p.indexClover = level?String(level+ '.' + (++i)):++i;
if(p.childrenParams&&p.childrenParams.length>0){
this.getNewDataView(p.childrenParams,list,i);
}
});
return list;
}