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 */

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

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

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

最新文章

  1. Oracle 性能优化
  2. 数据结构作业——Sanji(优先队列)
  3. fullpage 单屏高度超过屏幕高度,实现单屏内可以滚动并解决手机端单屏高度不正确的问题
  4. 16个时髦的扁平化设计的 HTML5 &amp; CSS3 网站模板
  5. 自己做的一个小demo
  6. java比较两个字符串是否相等
  7. 采用 PAT工具及CSP语言,对一个问题进行自动机 建模
  8. CVE-2014-4113 windows通杀本地提权0day
  9. awk中怎么比较字符串??
  10. java加载机制整理
  11. 由浅入深了解Thrift之客户端连接池化
  12. 从零开始学android开发-通过WebService获取今日天气情况
  13. xml_03
  14. 跨站请求伪造攻击 CSRF
  15. TinySpring分析二
  16. 《HelloGitHub》第 35 期
  17. frag
  18. Win10如何禁止软件运行?win10禁止软件启动的设置方法!禁止人生日历热点快讯的方法
  19. Cocos 2dx项目lua调用OC出现卡死但不闪退的坑
  20. jq demo 点击弹窗,居中,可滚动,可拖动

热门文章

  1. QuantLib 金融计算——随机过程之概述
  2. (一)Audio子系统之AudioRecord.getMinBufferSize
  3. Vue 混入(mixins)
  4. Neo4j使用简单例子(转)
  5. Mac下安装JDK(Mac 10.12)
  6. (转)mysql、innodb和加锁分析
  7. js小技巧--摘录1
  8. C 标准库 - ctype.h
  9. PHP代码实现强制换行
  10. 侵入式单链表的简单实现(cont)