vue项目中使用class类来封装一些功能函数并进行使用的js文件

情景:  vue脚手架搭建的项目中, 例如几个表格页面里面的表格都带有时间数据,这个时间数据返回过来的是时间戳,需要进行转换,然后有些数据重复了,需要去重等,这时我们就可以单独建立一个js文件,用于处理这些需求。

实现:  可以在 src 目录下 手动建立一个 tools 文件夹,专门用来存放我们自定义的 处理相关功能的 js 文件。在这个tools文件夹里面建立一个 todo.js  代码如下:

todo.js:

 

class StringTools {

  

// 时间戳处理

static dateFormat (date, fmt = 'yyyy-MM-dd hh:mm:ss') { // author: meizz
        if (typeof date === 'string') date = new Date(date);
        if (this.isInvalidDate(date)) return "";

        // 避免错误的时间,生成了1970年数据
        if (date.getFullYear() === 1970) return "";
        // 毫秒
        if (fmt === 'mill') {
            return date.getTime() + '';
        }
        // 秒
        if (fmt === 'second') {
            return parseInt(date.getTime() / 1000 + '') + '';
        }
        var o = {
            "M+": date.getMonth() + 1, // 月份
            "d+": date.getDate(), // 日
            "h+": date.getHours(), // 小时
            "m+": date.getMinutes(), // 分
            "s+": date.getSeconds(), // 秒
            "q+": Math.floor((date.getMonth() + 3) / 3), // 季度
            "S": date.getMilliseconds() // 毫秒
        };
        if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
        for (var k in o) { if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); }
        return fmt;
    }
 
// 数组对象去重
 
static toDeduplication(list, key, data__ = false) {
        let theMap = new Map();
        for (let item of list) {
            if (data__) {
                theMap.set(item.data__[key], item);
            } else {
                theMap.set(item[key], item);
            }
        }
        list = [...theMap.values()];
        return list;
     }

}

 

export default StringTools;
 
 
使用:  在 vue 文件里面  进行  
import StringTools from '../../../tools/StringTools';
然后直接 StringTools.方法 就行了。
posted @ 2022-06-16 13:36  陈楷  阅读(1320)  评论(0)    收藏  举报