tools

作者: Clover园 | 来源:发表于2019-03-27 10:31 被阅读0次
/**
 * 按条件查找数组下标
 * @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;
    }

相关文章

  • 论文日鉴16:综合生信工具网站

    Bio.tools bio.tools · Bioinformatics Tools and Services D...

  • 简谈platform-tools,build-tools,too

    如果所示,platform-tools,build-tools,tools几个文件夹。 plat...

  • centos 7 setup minikube k8s env

    tools These tools just for virtual cloud compute machine ...

  • Tools

    完全理解Gson(3):Gson反序列化 完全理解Gson(2):Gson序列化 完全理解Gson(1):简单入门...

  • Tools

    GitHub; Google Browser:already comes with CDT (Chrome Dev...

  • Tools

    cut cut这个工具主要是用来从文本中抽取文本的今天我主要学习的使用是这样的情况,举个例子吧。我们创建一个jyq...

  • Tools

    1.CocoaPods:http://ishalou.com/blog/2012/10/15/how-to-use...

  • tools

    查看假数据, 只会出现在设计模式(预览)中. tools:text="fake data"

  • Tools

    项目常用工具

  • tools

网友评论

      本文标题:tools

      本文链接:https://www.haomeiwen.com/subject/vjfbvqtx.html