import Vue from 'vue'

/* 配置参数 */
Vue.prototype.winH = document.documentElement.clientHeight;

Vue.prototype.normalStatus = 1; //状态正常
Vue.prototype.invalidStatus = 0; //状态失效

Vue.prototype.pageSize = 10; //每页记录数
Vue.prototype.maxPageSize = 100; //每页最大的记录数

//商品类型(积分 / 升级)
Vue.prototype.goodsType = [
{'label': '普通商品', 'value': 1},
{'label': '促销专区', 'value': 2},
{'label': '增值专区', 'value': 3}
]

/* 配置参数 END */

/* 公共函数 */

/**
* 强制2位小时金额
* @param {[type]} _money [description]
*/
Vue.prototype.setFullMoney = function(_money){
_money = parseFloat(_money);
if (_money%1 != 0 ) {
return parseFloat(this.doubleFloat(_money.toString()));
}
return _money;
}

/**
* 浮点型数据 乘法
* 例如: 696.9 = 555.6 + 141.3;
* return 696.9;
*/
Vue.prototype.NumberMul = function(arg1, arg2) {
var m = 0;
var s1 = arg1.toString();
var s2 = arg2.toString();
try {
m += s1.split(".")[1].length;
} catch (e) {}
try {
m += s2.split(".")[1].length;
} catch (e) {}

return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m);
}

/**
* 浮点型数据 加法
* 例如: 696.9 = 555.6 + 141.3;
* return 696.9;
*/
Vue.prototype.NumberAdd = function(arg1, arg2) {
var r1, r2, m, n;
try {
r1 = arg1.toString().split(".")[1].length
} catch (e) {
r1 = 0
}
try {
r2 = arg2.toString().split(".")[1].length
} catch (e) { r2 = 0 } m = Math.pow(10, Math.max(r1, r2))
n = (r1 >= r2) ? r1 : r2;
return ((arg1 * m + arg2 * m) / m).toFixed(n);
}
/**
* 浮点型数据 减法
* 例如: 555.39 = 696.95 - 141.56;
* return 555.39;
*/
Vue.prototype.NumberDiv = function(arg1, arg2) {
var r1, r2, m, n;
try {
r1 = arg1.toString().split(".")[1].length;
} catch (e) {
r1 = 0;
}
try {
r2 = arg2.toString().split(".")[1].length;
} catch (e) {
r2 = 0;
}
m = Math.pow(10, Math.max(r1, r2)); //last modify by deeka //动态控制精度长度
n = (r1 >= r2) ? r1 : r2;
return ((arg1 * m - arg2 * m) / m).toFixed(n);
}
/**
* 设置日期格式
* @param {String} 强制返回字符串日期格式 2000-01-01
*/
Vue.prototype.setDateFormat = function(_Date) {
var _Year = _Date.getFullYear(),
_Month = _Date.getMonth() + 1,
_Day = _Date.getDate();
if (_Month < 10) { _Month = '0' + _Month }
if (_Day < 10) { _Day = '0' + _Day }
return _Year + '-' + _Month + '-' + _Day;
}

/**
* 手机号码验证
* @param {Object} phone 手机号码
*/
Vue.prototype.verifyPhone = function(phone) {
var phoneReg = /^0?1[3|4|5|8|7][0-9]\d{8}$/;
var flag = phoneReg.test(phone);
if (!flag) {
this.$message('请输入正确的手机号码');
return false;
}
return true;
}

/**
* 加密手机号码
* @param {Object} param 需要加密手机号码
*/
Vue.prototype.encryptPhone = function(param) {
var param = param.toString();
return param.substring(0, 3) + '****' + param.substring(7, 11);
}

/**
* 去字符串中所有空格
* @param {Object} str 需要去空格的字符串
*/
Vue.prototype.deleteSpaceAll = function(str) {
str = str.toString();
return str.replace(/\s/g, "");
}

/**
* 去字符串中左右两边的空格
* @param {Object} str 需要去空格的字符串
*/
Vue.prototype.deleteSpaceLR = function(str) {
return str.replace(/(^\s*)|(\s*$)/g, '');
}

/**
* 判断是否为空
* @param {Object} str
*/
Vue.prototype.isNull = function(str = '') {
if(typeof (str) == 'number') {
str = str.toString();
}
if(str.replace(/(^s*)|(s*$)/g, "").length == 0) {
return true;
}
return false;
}

/**
* 处理上传的图片(单个)
* @param {Object} Dom input[type=file]的dom对象 eg:document.getElementById('xxx');
*/
Vue.prototype.uploadImgFn = function(Dom) {
var fileObj = Dom.files[0];
var fileType = fileObj.type;
if (fileType != 'image/png' && fileType != 'image/jpeg') {
this.$message.error('上传图片只能是 JPG, PNG 格式!');
Dom.innerText = '';
Dom.value = '';
return false;
}
var files = {
fileObj: fileObj,
fileUrl: URL.createObjectURL(fileObj)
}
return files;
}

/**
* 处理上传的excel表格
* @param {Object} Dom
*/
Vue.prototype.uploadExcelFn = function(Dom) {
var fileObj = Dom.files[0],
fileName = fileObj.name,
fileType = fileName.substring(fileName.indexOf("."));
if (fileType != '.xls' && fileType != '.xlsx') {
this.$message.error('上传文件只能是xls,xlsx格式!');
Dom.innerText = '';
Dom.value = '';
return false;
}
return fileObj;
}

/**
* 格式化时间 yyyy-mm-dd
* @param {Object} param 需要格式化的时间(GMT时间)
*/
Vue.prototype.formatDate = function(param, type = null) {
var a = new Date(param);
var m = a.getMonth() + 1;
if (m < 10) {
m = '0' + m;
}
var d = a.getDate();
if (d < 10) {
d = '0' + d;
}
var b = a.getFullYear() + '-' + m + '-' + d;

if (type != null) {
var h = a.getHours();
if (h < 10) {
h = '0' + h;
}
var mm = a.getMinutes();
if (mm < 10) {
mm = '0' + mm;
}
var ss = a.getSeconds();
if (ss < 10) {
ss = '0' + ss;
}
b = b + ' ' + h + ':' + mm + ':' + ss;
}
return b;
}

// 取得一个区间的随机整数
Vue.prototype._rand = function(n, m) {
var random = Math.floor(Math.random() * (m - n + 1) + n);
return random;
}

/**
* 公共输入金额格式化(保留小数0.01位)
* @param {Object} a 是需要被处理的值
*/
Vue.prototype.doubleFloat = function(a) {
//先把非数字的都替换掉,除了数字和.
a = a.replace(/[^\d\.]/g, '');
//必须保证第一个为数字而不是.
a = a.replace(/^\./g, '');
//保证只有出现一个.而没有多个.
a = a.replace(/\.{2,}/g, '.');
//保证.只出现一次,而不能出现两次以上
a = a.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.');
//只能输入两位小数
a = a.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');
return a;
}

/* 公共函数 END */

---------------------------------------------------------分割线---------------------------------------------------

小编码字不易,希望小编的分享能对大家有所启发。大家有不同的意见或建议可以在下面的留言区跟我交流。觉得好可以关注,后续还有继续推文噢~ 

  赞赏小编一个跳跳糖~~~

最齐全的vue公共函数给你们放出来啦的更多相关文章

  1. 五、postman公共函数及newman运行与生成测试报告

    一.公共函数 postman中定义公共函数如下 1.每次断言的时候都需要重写或者复制之前的断言代码,可以通过如下方法定义断言的公共函数,以后每次断言的时候只需要调用公共函数即可进行断言 设置公共函数对 ...

  2. ThinkPHP 3.2.3 自动加载公共函数文件的方法

    方法一.加载默认的公共函数文件 在 ThinkPHP 3.2.3 中,默认的公共函数文件位于公共模块 ./Application/Common 下,访问所有的模块之前都会首先加载公共模块下面的配置文件 ...

  3. CodeIgniter 引入自定义公共函数

    CodeIgniter 中公共函数不能追加,可以通过 helper 辅助函数实现. 创建 common_helper.php 文件,定义所需公共函数,存放至 application/helpers 目 ...

  4. ThinkPHP第三天(公共函数Common加载,dump定义,模板文件,定义替换__PUBLIC__)

    1.公共函数定义 自动加载:在项目的common文件夹中定义,公共函数文件命名规则为common.php,只有命名成common.php才能被自动载入. 动态加载:可以修改配置项‘LOAD_EXT_F ...

  5. 【ASP.NET】怎样使用类创建公共函数,在不同ASP.NET页面间反复调用

    为了降低代码冗余,应将公共函数写在类中,供不同ASP.NET页面调用. 1,先新建一个类,并在类中加入函数逻辑 namespace public_function_demo { public clas ...

  6. postman定义公共函数

    对于postman定义公共函数,相信很多小伙伴并不是很了解,下面给大家带来了一点福利,一起来看看吧.1.判断是否超时(assertNotTimeout)

  7. Postman高级应用——流程控制、调试、公共函数、外部数据文件

    postman客户端下载地址:https://www.getpostman.com/apps 目录 流程控制 调试 公共函数 外部数据文件 流程控制 流程控制简言之就是设置接口的执行顺序,流程控制只有 ...

  8. JavaScript进阶(一)抽离公共函数

    JS抽离公共函数 问题 在经历了"大量"的项目开发后,发觉越来越多的方法可以被抽离出来作为一个公共方法使用.那么,在js中该思想又该如何实现呢? 解答 例如,以下方法用于实现将标准 ...

  9. larave5.4自定义公共函数的创建

    原文地址:http://blog.csdn.net/qq_38125058/article/details/76862151 公共函数,简单来说就是在任何地方都可以直接使用这个函数.简单介绍两种实现方 ...

随机推荐

  1. 我永远喜欢我的偶像 KIKU

  2. order by关键字

    作用:用于对查询结果进行排序 select * from emp where deptno = 20 order by sal 1.如何决定升序还是降序 默认排序:升序:select * from e ...

  3. 论文分享NO.4(by_xiaojian)

    论文分享第四期-2019.04.16 Residual Attention Network for Image Classification,CVPR 2017,RAN 核心:将注意力机制与ResNe ...

  4. System Verilog基础(二)

    这一篇笔记主要记录Procedural,Process,Task and function,Interface和Communication中值得注意的点. 1.Procedural 写testbenc ...

  5. GitLab 项目创建后地址由Localhost改为实际IP的方法

    进入终端修改以下文件即可. vim /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml ## GitLab settings git ...

  6. Redis之hiredis API (String)

    String // // Created by zhangrongxiang on 2018/3/7 13:48 // File string2 // #include <hiredis/hir ...

  7. 在Linux上创建webrev(cont)[基于svn]

    在前文中,基于git介绍了webrev工具.实际上,webrev工具还支持hg和svn.最近的工作中不可避免地要使用svn,故在此总结一下如何基于svn在Linux上创建webrev.顺便吐个槽,没有 ...

  8. LightningChart 客户案例分享-DCC 环境工程

    DCC Dynamics 致力于为建筑管控行业生产OEM的监控和管理产品.公司的旗舰产品“环境物流系统Environmental Logistics System” 用于大型建筑,校园及研究所设施,有 ...

  9. WPF几种渐变色

      [LinearGradientBrush-- 主要属性: StartPoint 获取或设置线性渐变的二维起始坐标. EndPoint 获取或设置线性渐变的二维终止坐标. 例子: <Linea ...

  10. MongoDB的基本使用及java对MongoDB的基本增删改查

    MongoDB的特点 MongoDB 是文档存储数据库,存储结构灵活 MongoDB 支持复杂查询操作.支持序列 MongoDB 采用C++开发,可以做分布式扩展 MongoDB 采用BSON格式存储 ...