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. 从一个bug谈谈psqlodbc游标的一点认识

    本文源于最近修正的一个关于psqlodbc的bug,该bug在近期的psqlodbc的git上也有人提交了修正. 关于该bug的修正代码可以看这里: https://git.postgresql.or ...

  2. leetcode-887-三维形体投影面积

    题目描述: 在 N * N 的网格中,我们放置了一些与 x,y,z 三轴对齐的 1 * 1 * 1 立方体. 每个值 v = grid[i][j] 表示 v 个正方体叠放在单元格 (i, j) 上. ...

  3. python全栈开发_day13_迭代器和生成器

    一:迭代器 1)可迭代对象 具有内置函数__iter__的数据就是可迭代对象 2)迭代器对象 具有内置函数__next__的数据就是迭代器对象 迭代器对象一定是可迭代对象,可迭代对象不一定是迭代器对象 ...

  4. 题解 p2017 [USACO09DEC]晕牛Dizzy Cows

    前言:P大终于又更新了 正文 转送门 由于当时我这个ZZ不知怎么了,这份题解排版可能有些尴尬,建议大家读完题后,看我主程序前的代码的注释,然后看最下面的图片,然后看第一张图片,对不起,望多谅解 以样例 ...

  5. [JZOJ6075]【GDOI2019模拟2019.3.20】桥【DP】【线段树】

    Description N,M<=100000,S,T<=1e9 Solution 首先可以感受一下,我们把街道看成一行,那么只有给出的2n个点的纵坐标是有用的,于是我们可以将坐标离散化至 ...

  6. Mac 10.12安装SecureCRT

    下载: (链接: https://pan.baidu.com/s/1eSNBoFC 密码: sztc) 安装参考: http://www.cnblogs.com/EasonJim/p/7568734. ...

  7. Linux下which命令使用详解(转)

    我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索: which 查看可执行文件的位置. whereis 查看文件的位置. locate 配合数据库查看文件位置. f ...

  8. Java Web入门学习(一) STS与Tomcat配置

    Java Web学习(一) STS与Tomcat配置 一.IDE的选择 使用基于Eclipse的STS Ide ,个人感觉挺好用的. 地址:http://spring.io/tools/sts 根据以 ...

  9. hadoop ——HDFS存储

    一.HDFS概念 二.HDFS优缺点 三.HDFS如何存储 一.HDFS概念 HDFS(Hadoop Distributed File System)是Hadoop项目的核心子项目,是分布式计算中数据 ...

  10. RabbitMQ的安装和配置化可视界面

    RabbitMQ在windows下的安装 RabbitMQ 它依赖于Erlang,在window上安装时,需要先安装Erlang. 首先确定你的window电脑是32位还是64位,然后下载对应版本的E ...