• 项目开发过程中,一些常用的方法


    以下一些在开发过程中封装的常用方法,供参考
    由于一些方法是很久之前写下来的,语法上比较旧,再使用的时候再进行修改
    //获取当前时刻的时间
    // type = 1年月日,type=2时分秒,fommatter="-"表示年月日用-隔开,否则用"/"隔开
    export function curTimeFun(type,fommatter) {
      const myDate = new Date();
      const year = myDate.getFullYear()>9?myDate.getFullYear():'0'+myDate.getFullYear();
      const month = (myDate.getMonth() + 1)>9?myDate.getMonth() + 1:'0'+(myDate.getMonth() + 1);
      const date = myDate.getDate()>9?myDate.getDate():'0'+myDate.getDate();
      const h = myDate.getHours()>9?myDate.getHours():'0'+myDate.getHours();       //获取当前小时数(0-23)
      const m = myDate.getMinutes()>9?myDate.getMinutes():'0'+myDate.getMinutes();     //获取当前分钟数(0-59)
      const s = myDate.getSeconds()>9?myDate.getSeconds():'0'+myDate.getSeconds();
      let nowTime = "";
      if(type == '1'){
        if(fommatter == '-') {
          nowTime = year + '-' + month + "-" + date;
        } else {
          nowTime = year + '/' + month + "/" + date;
        }
      } else if(type == '2'){
        nowTime = h + ':' + m + ":" + s;
      } else {
        if(fommatter == '-') {
          nowTime = year + '-' + month + "-" + date + " " + h + ':' + m + ":" + s;
        } else {
          nowTime = year + '/' + month + "/" + date + " " + h + ':' + m + ":" + s;
        }
      }
      return nowTime;
    }
    

      

    // 获取今天星期几
    export function getWeekFun() {
      const weekDay = ['星期日','星期一','星期二','星期三','星期四','星期五','星期六']
      let week = new Date().getDay();
      return weekDay[week];
    }
    

      

    // 查询最近n年,n表示前多少年的意思
    // 例如查询近5年的时间,n=4,不包括今年的的前4年
    export function getLastNYear(n) {
      const myDate = new Date;
      const curYear = myDate.getFullYear();
      if(n =='' || n==undefined || n == null){
        n =0;
      }
      let rstYear = curYear*1 - n*1;
      return rstYear;
    }
    

      

    // 查询最近n月,n表示前多少月的意思
    export function getLastNMonth(n) {
      const myDate = new Date;
      const curYear = myDate.getFullYear();
      const curMonth = myDate.getMonth()+1; // 月份从0开始算起。需要加1
      if(n =='' || n==undefined || n == null){n =0;}
      let rstYear = '';
      let rstMonth = '';
      if(n>curMonth){ //表示去到去年的月份,年份需要去到上一年
        rstYear = curYear*1-1*1;
        rstMonth = 12-(n-curMonth)+1;
      } else {
        rstYear =curYear;
        rstMonth = curMonth -n;
      }
      rstMonth = (rstMonth)>9?rstMonth:'0'+(rstMonth);
      let rstYearMonth = rstYear + '-' + rstMonth;
      return rstYearMonth;
    }
    

     

    // 获取最近n天的时间,n表示前多少天的意思。
    // 例如查询近7天的时间,n=6,不包括当天的的前6天
    export function getLastNDate(n,fommatter = '-') {
      const d = new Date();
      var myDate=new Date(d.getTime()-86400000*n);  // 获取前n天的日期
      const year = myDate.getFullYear()>9?myDate.getFullYear():'0'+myDate.getFullYear();
      const month = (myDate.getMonth() + 1)>9?myDate.getMonth() + 1:'0'+(myDate.getMonth() + 1);
      const date = myDate.getDate()>9?myDate.getDate():'0'+myDate.getDate();
     let last7Date = year + fommatter + month + fommatter + date;
     return last7Date;
    return last7Date; }

      

    // 获取最近的n个小时,n表示前多少小时的意思。
    export function getLastNHour(n,fommatter = '-') {
      const d = new Date();
      var myDate=new Date(d.getTime()-86400000*n);  // 获取前n天的日期
      const year = myDate.getFullYear()>9?myDate.getFullYear():'0'+myDate.getFullYear();
      const month = (myDate.getMonth() + 1)>9?myDate.getMonth() + 1:'0'+(myDate.getMonth() + 1);
      const date = myDate.getDate()>9?myDate.getDate():'0'+myDate.getDate();
      const h = myDate.getHours()>9?myDate.getHours():'0'+myDate.getHours();       //获取当前小时数(0-23)
      const m = myDate.getMinutes()>9?myDate.getMinutes():'0'+myDate.getMinutes();     //获取当前分钟数(0-59)
      const s = myDate.getSeconds()>9?myDate.getSeconds():'0'+myDate.getSeconds();
     let  nowTime = year + fommatter + month + fommatter + date + " " + h + fommatter + m + fommatter + s;

    return nowTime; }

      

    /*菜单树下拉,禁止选择当前项及其子项,以防止死循环*/
    export function diGuiTreeEdit(item,compID) {  // 编辑情况下,禁止选择当前节点及其子节点
      let data = item;
      let treeAry = [];
      for (let i in data) {
        let v = data[i];
        let node = {};
        if (v === null || v === undefined) {}
        else {
          if (v.children && v.children.length > 0) {
            if (v.id == compID) {
              node.isDisabled = true;
            } else {
              node.isDisabled = false;
            }
            node.id = v.id;
            node.label = v.label;
            node.name = v.name;
            node.children = diGuiTreeEdit(v.children, compID);
            treeAry.push(node);
          } else {
            if (v.id == compID) {
              node.isDisabled = true;
            } else {
              node.isDisabled = false;
            }
            node.id = v.id;
            node.label = v.label;
            node.name = v.name;
            treeAry.push(node);
          }
        }
      }
      return treeAry;
    };
    

      

    // 判断数据是否为空,为空的话返回指定的数值
    export function isNullORFalse(checkVal,rstVal) {
      if(checkVal == '' || checkVal == null || checkVal == undefined || typeof(checkVal) == undefined){
        if(rstVal == null || rstVal == ''){
          rstVal = "";
        }
        return rstVal;
      } else {
        return checkVal;
      }
    }
    

      

    // 全部替换
    // str表示原字符串,s表示要被替换的内容,replaceStr用于替换的内容
    export function repalceAll(str, s ,replaceStr = '') {
      var reg = new RegExp(s, "g")//g,表示全部替换
      return str.replace(reg,replaceStr)
    }
    

      

    //计算两个日期天数差的函数,通用,时间格式为yyyy-MM-dd格式
    export function dateDiff(sDate1, sDate2) {  //sDate1和sDate2是yyyy-MM-dd格式
      let aDate, oDate1, oDate2, iDays
      aDate = sDate1.split("-")
      oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0])  //转换为yyyy-MM-dd格式
      aDate = sDate2.split("-")
      oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0])
      iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 / 24) //把相差的毫秒数转换为天数
      return iDays;  //返回相差天数
    }
    

      

    // 当数值过大是,超过9位数(亿)转为亿单位展示
    export function rspHundredMill(val, unit = 'HM') {
      if(unit == 'HM') {
        if(val>100000000) { //大于1亿
          return (val/100000000).toFixed(3)+'亿'
        } else {
          return  val
        }
      }
    }
    

      

    // 根据id,以及id的值,遍历list对象,得出label
    export function rstLabelFormID(list, id, label, idVal) {
      let rsp = ''
      for (let i = 0; i < list.length; i++) {
        if (list[i][id] === idVal) {
          rsp = list[i][label]
          break
        }
      }
      return rsp
    }
    

      

    // 根据id,以及id的值,遍历list集合,得出对应的对象
    export function rstListFormID(list, id, idVal) {
      let rsp = undefined
      for (let i = 0; i < list.length; i++) {
        if (list[i][id] === idVal) {
          rsp = list[i]
          break
        }
      }
      return rsp
    }
    

      

    // 对象深拷贝
    export function deepCopy(obj) {
      var result = Array.isArray(obj) ? [] : {}
      for (var key in obj) {
        if (obj.hasOwnProperty(key)) {
          if (typeof obj[key] === 'object' && obj[key] !== null) {
            result[key] = deepCopy(obj[key])
          } else {
            result[key] = obj[key]
          }
        }
      }
      return result
    }
    

      

    // 拖动调整左右两侧div的宽度
    // resizeName表示拖到的工具条的className
    // left表示左边的区域的className。leftWid表示左边的最小宽度
    // midName表示右边区域的className。rightWid表示右边的最小宽度
    // boxName表示父级元素的className
    export function  dragControllerDiv(resizeName='resize', leftName = 'left', midName = 'mid', boxName = 'box', leftWid = 250, rightWid = 800){
      var resize = document.getElementsByClassName(resizeName);
      var left = document.getElementsByClassName(leftName);
      var mid = document.getElementsByClassName(midName);
      var box = document.getElementsByClassName(boxName);
      for (let i = 0; i < resize.length; i++) {
        // 鼠标按下事件
        resize[i].onmousedown = function (e) {
          var startX = e.clientX;
          resize[i].left = resize[i].offsetLeft;
          // 鼠标拖动事件
          document.onmousemove = function (e) {
            var endX = e.clientX;
            var moveLen = resize[i].left + (endX - startX); // (endx-startx)=移动的距离。resize[i].left+移动的距离=左边区域最后的宽度
            var maxT = box[i].clientWidth - resize[i].offsetWidth;  // 容器宽度 - 左边区域的宽度 = 右边区域的宽度
    
            if (moveLen < leftWid) moveLen = leftWid; // 左边区域的最小宽度为150px
            if (moveLen > maxT - rightWid) moveLen = maxT  - rightWid;  //右边区域最小宽度为800px
    
            resize[i].style.left = moveLen; // 设置左侧区域的宽度
    
            for (let j = 0; j < left.length; j++) {
              left[j].style.width = moveLen + 'px';
              mid[j].style.width = (box[i].clientWidth - moveLen - 10) + 'px';
            }
          }
          // 鼠标松开事件
          document.onmouseup = function (evt) {
            document.onmousemove = null;
            document.onmouseup = null;
            resize[i].releaseCapture && resize[i].releaseCapture(); //当你不在需要继续获得鼠标消息就要应该调用ReleaseCapture()释放掉
          }
          resize[i].setCapture && resize[i].setCapture(); //该函数在属于当前线程的指定窗口里设置鼠标捕获
          return false;
        }
      }
    }
    

      






  • 相关阅读:
    SQLServer提取日期中的年月日及其他格式
    大白话解说,半分钟就懂 --- 分布式与集群是什么 ? 区别是什么?
    VS2015 Git 源码管理工具简单入门
    Web.Config配置文件中customErrors元素的使用方法
    C#发起Http请求,调用接口
    如何停止和禁用Linux系统中的不需要的服务
    QtCreator调试传入运行参数
    gSOAP 在windows下的安装与使用(mingw32)
    MinGW 使用 mintty 终端替代默认终端以解决界面上复制与粘贴的问题
    在windows下执行./configure,make,makeinstall源码安装程序spice-gtk
  • 原文地址:https://www.cnblogs.com/luoxuemei/p/11646108.html
Copyright © 2020-2023  润新知