tplus-pos
Version:
pos module
772 lines (679 loc) • 20.3 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _stringify = require('babel-runtime/core-js/json/stringify');
var _stringify2 = _interopRequireDefault(_stringify);
var _typeof2 = require('babel-runtime/helpers/typeof');
var _typeof3 = _interopRequireDefault(_typeof2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _tplusComponentsTouch = require('tplus-components-touch');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var tools = function () {
function tools() {
(0, _classCallCheck3.default)(this, tools);
}
(0, _createClass3.default)(tools, null, [{
key: 'handleNumberInput',
//键盘数字录入处理
value: function handleNumberInput() {
var str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
//去除前边0
str = str.replace(/^0+(\d+)/, "$1");
//.前0处理
str = str.replace(/^(0*)(\.)(\d*)$/, function (str, $1, $2, $3) {
return '0' + ($2 + $3);
});
//。后处理
str = str.replace(/^(\d*)(\.)(\d*)$/, function (str, $1, $2, $3) {
return '' + $1 + ($3.length ? '' + ($2 + $3) : '');
});
return str;
}
//获取动态属性值
}, {
key: 'getDynamicProperty',
value: function getDynamicProperty(keys, values, key) {
var index = keys.indexOf(key);
if (~index) {
return values[index];
}
return void 0;
}
/* 精确到小数 */
}, {
key: 'formatPrecision',
value: function formatPrecision(value, fixNumber) {
if (isNaN(fixNumber)) {
console.warn('tools.formatPrecision===input error');
return;
}
value = value + "";
var isPercent = value.endsWith('%');
if (isPercent) {
var length = value.length;
var percentNumber = value.substring(0, length - 1);
percentNumber = Number(percentNumber).toFixed(fixNumber);
return percentNumber + '%';
}
return Number(value).toFixed(fixNumber);
}
//获取页面的search对象
}, {
key: 'getSearch',
value: function getSearch(searchStr) {
var obj = {};
if (!searchStr.length || !searchStr.startsWith('?')) return obj;
var str = searchStr.substring(1);
var arr = str.split('&');
arr.forEach(function (el) {
var prop = el.split('=');
obj[prop[0]] = prop[1];
});
return obj;
}
//根据callee 获取函数名
}, {
key: 'getFnByCallee',
value: function getFnByCallee(_callee) {
var _text = _callee.toString();
var _scriptArr = document.scripts;
for (var i = 0; i < _scriptArr.length; i++) {
var _start = _scriptArr[i].text.indexOf(_text);
if (_start != -1) {
if (/^function\s*\(.*\).*\r\n/.test(_text)) {
var _tempArr = _scriptArr[i].text.substr(0, _start).split('\r\n');
return _tempArr[_tempArr.length - 1].replace(/(var)|(\s*)/g, '').replace(/=/g, '');
} else return _text.match(/^function\s*([^\(]+).*\r\n/)[1];
}
}
}
/**************************************时间格式化处理************************************/
}, {
key: 'dateFtt',
value: function dateFtt(fmt, date) {
//author: meizz
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;
}
//获取时间
}, {
key: 'getCurDate',
value: function getCurDate() {
var date = new Date();
return this.dateFtt("yyyy-MM-dd hh:mm:ss", date);
}
//获取时间
}, {
key: 'getCurDateTime',
value: function getCurDateTime() {
var date = new Date();
return this.dateFtt("yyyy-MM-dd hh:mm:ss.S", date);
}
}, {
key: 'createGUID',
value: function createGUID() {
function S4() {
return ((1 + Math.random()) * 0x10000 | 0).toString(16).substring(1);
}
return S4() + S4() + "-" + S4() + "-" + S4() + "-" + S4() + "-" + S4() + S4() + S4();
}
}, {
key: 'format',
value: function format(num) {
if (typeof num !== 'number') return num;
return (num.toFixed(2) + '').replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,');
}
}, {
key: 'preventEvent',
value: function preventEvent(event) {
if (event) {
event.preventDefault();
event.stopImmediatePropagation && event.stopImmediatePropagation();
event.stopPropagation();
}
}
}, {
key: 'phoneFormat',
value: function phoneFormat(phoneNum) {
var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'mobile';
if (isNaN(phoneNum)) return phoneNum;
if (type == 'mobile') {
return ('' + phoneNum).replace(/(^\d{3}|\d{4}\B)/g, "$1-");
} else if (type == 'phone') {
return ('' + phoneNum).replace(/(^\d{3})/g, "$1-");
}
}
//判断是否为空
}, {
key: 'isNull',
value: function isNull(s) {
if (s == undefined || this.trim(s) + "123" == "123") {
return true;
}
return false;
}
//去空函数
}, {
key: 'trim',
value: function trim(str) {
var localstr = new String(str);
var pattern = /^\s+|\s+$/g;
localstr = localstr.replace(pattern, "");
return localstr;
}
//数组包含的函数
}, {
key: 'arrayContains',
value: function arrayContains(array, element) {
for (var i = 0; i < array.length; i++) {
if (array[i] == element) {
return true;
}
}
return false;
}
//是否以数组中的内容作为开头
}, {
key: 'arrayStartWith',
value: function arrayStartWith(array, element) {
for (var i = 0; i < array.length; i++) {
if (element && element.startsWith(array[i])) {
return true;
}
}
return false;
}
//判断是不是小数
}, {
key: 'isMinus',
value: function isMinus(number) {
if (!this.isNull(number)) {
if (parseFloat(number) < 0) {
return true;
}
}
return false;
}
//数组部分包含
}, {
key: 'arrayIndexOf',
value: function arrayIndexOf(array, element) {
for (var i = 0; i < array.length; i++) {
if (element.indexOf(array[i]) > -1) {
return true;
}
}
return false;
}
//判断是否是json对象
}, {
key: 'isJson',
value: function isJson(obj) {
return (typeof obj === 'undefined' ? 'undefined' : (0, _typeof3.default)(obj)) == "object" && Object.prototype.toString.call(obj).toLowerCase() == "[object object]" && !obj.length;
}
}, {
key: 'isJsonStr',
value: function isJsonStr(jsonStr) {
if (isNull(jsonStr)) {
return false;
}
if (jsonStr.indexOf('{') == 0 || jsonStr.indexOf('[') == 0) {
return true;
}
}
//连接的字符串中是否包含某个指定字符串
}, {
key: 'concatStringContains',
value: function concatStringContains(concatString, containStr, seperator) {
seperator = seperator || ',';
if (!this.isNull(concatString) && !this.isNull(containStr)) {
var strArray = concatString.split(seperator);
for (var index in strArray) {
if (strArray[index] === containStr) {
return true;
}
}
}
return false;
}
/**
* 数字转千分符
*/
}, {
key: 'comdify',
value: function comdify(n) {
var re = /\d{1,3}(?=(\d{3})+$)/g;
var n1 = String(n).replace(/^(\d+)((\.\d+)?)$/, function (s, s1, s2) {
return s1.replace(re, "$&,") + s2;
});
return n1;
}
}, {
key: 'toDecimal2',
value: function toDecimal2(x) {
var f = parseFloat(x);
if (isNaN(f)) {
return false;
}
var f = Math.round(x * 100) / 100;
var s = f.toString();
var rs = s.indexOf('.');
if (rs < 0) {
rs = s.length;
s += '.';
}
while (s.length <= rs + 2) {
s += '0';
}
return s;
}
/**
* 获得某月的天数
*/
}, {
key: 'getMonthDays',
value: function getMonthDays(nowYear, myMonth) {
var monthStartDate = new Date(nowYear, myMonth, 1);
var monthEndDate = new Date(nowYear, myMonth + 1, 1);
var days = (monthEndDate - monthStartDate) / (1000 * 60 * 60 * 24);
return days;
}
/**
* 根据日期获取星期几 欠款明细中使用
*/
}, {
key: 'getWeekday',
value: function getWeekday(myday) {
var strs = new Array(); //定义一数组
strs = myday.split("-"); //字符分割
var myDate = new Date(strs[0], parseInt(strs[1]) - 1, strs[2]);
var weekDay = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"];
return weekDay[myDate.getDay()];
}
/**
* js 时间差 获取毫秒时间差
*/
}, {
key: 'getTimeDiff',
value: function getTimeDiff(startTime) {
return new Date().getTime() - startTime.getTime();
}
/**
* 转换金额小数位数+单位
*/
}, {
key: 'changeToAccountNum',
value: function changeToAccountNum(num, currency) {
var currencyName = "";
if (!this.isNull(num)) {
if (currency !== undefined) {
if (isJson(currency)) {
//如果是curreny对象
currencyName = currency.Name;
} else {
//直接传递currencyName
currencyName = currency;
}
}
return comdify(parseFloat(num).toFixed(2)) + currencyName;
} else {
return "";
}
}
//检查日期是否合法
}, {
key: 'checkStartAndEndDate',
value: function checkStartAndEndDate(startDate, endDate) {
if (!this.isNull(startDate) && !this.isNull(endDate)) {
var startDateStr = startDate.split('-').join();
var endDateStr = endDate.split('-').join();
if (parseFloat(startDateStr) > parseFloat(endDateStr)) {
return '开始时间不能大于结束时间';
}
}
return '';
}
}, {
key: 'accAdd',
value: function accAdd(arg1, arg2) {
var r1, r2, m;
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));
return (arg1 * m + arg2 * m) / m;
}
//公共函数
}, {
key: 'Map',
value: function Map() {
/** 存放键的数组(遍历用到) */
this.keys = new Array();
/** 存放数据 */
this.data = new Object();
/**
* 放入一个键值对
* @param {String} key
* @param {Object} value
*/
this.put = function (key, value) {
if (this.data[key] == null) {
this.keys.push(key);
}
this.data[key] = value;
};
/**
* 获取某键对应的值
* @param {String} key
* @return {Object} value
*/
this.get = function (key) {
return this.data[key];
};
/**
* 遍历Map,执行处理函数
*
* @param {Function} 回调函数 function(key,value,index){..}
*/
this.each = function (fn) {
if (typeof fn != 'function') {
return;
}
var len = this.keys.length;
for (var i = 0; i < len; i++) {
var k = this.keys[i];
fn(k, this.data[k], i);
}
};
/**
* 获取键值数组(类似Java的entrySet())
* @return 键值对象{key,value}的数组
*/
this.entrys = function () {
var len = this.keys.length;
var entrys = new Array(len);
for (var i = 0; i < len; i++) {
entrys[i] = {
key: this.keys[i],
value: this.data[i]
};
}
return entrys;
};
/**
* 判断Map是否为空
*/
this.isEmpty = function () {
return this.keys.length == 0;
};
/**
* 获取键值对数量
*/
this.size = function () {
return this.keys.length;
};
/**
* 重写toString
*/
this.toString = function () {
var s = "{";
for (var i = 0; i < this.keys.length; i++, s += ',') {
var k = this.keys[i];
s += k + "=" + this.data[k];
}
s += "}";
return s;
};
}
//修改日期格式样式
}, {
key: 'dateChange',
value: function dateChange(date, s, r) {
// return date.replace('-','.');
return date.replace(/-/ig, ".");
}
}, {
key: 'removeByValue',
value: function removeByValue(arr, val) {
for (var i = 0; i < arr.length; i++) {
if (arr[i] == val) {
arr.splice(i, 1);
break;
}
}
}
}, {
key: 'isJsonStr',
value: function isJsonStr(str) {
try {
var obj = eval('(' + str + ')');
return true;
} catch (e) {
return false;
}
return true;
}
}, {
key: 'formatDate',
value: function formatDate(date) {
var month = '' + (date.getMonth() + 1),
day = '' + date.getDate(),
year = date.getFullYear();
if (month.length < 2) month = '0' + month;
if (day.length < 2) day = '0' + day;
return [year, month, day].join('-');
}
}, {
key: 'cloneObj',
value: function cloneObj(obj) {
var str = void 0,
newobj = obj.constructor === Array ? [] : {};
if ((typeof obj === 'undefined' ? 'undefined' : (0, _typeof3.default)(obj)) !== 'object') {
return;
} else if (window.JSON) {
str = (0, _stringify2.default)(obj), //序列化对象
newobj = JSON.parse(str); //还原
} else {
for (var i in obj) {
newobj[i] = (0, _typeof3.default)(obj[i]) === 'object' ? this.cloneObj(obj[i]) : obj[i];
}
}
return newobj;
}
}, {
key: 'isDiff',
value: function isDiff(obj1, obj2) {
if (obj1 != undefined && typeof obj1 == 'boolean' || obj2 != undefined && typeof obj2 == 'boolean') {
if (obj1.toLocaleString().toLowerCase() == obj2.toLocaleString().toLowerCase()) {
return false;
} else {
return true;
}
}
if (!obj1 && !obj2) {
return false;
}
if (obj1 && !obj2) {
return true;
}
if (!obj1 && obj2) {
return true;
}
if ((typeof obj1 === 'undefined' ? 'undefined' : (0, _typeof3.default)(obj1)) == 'object' && (typeof obj2 === 'undefined' ? 'undefined' : (0, _typeof3.default)(obj2)) == 'object') {
if (obj1.ID != obj2.ID) {
return true;
} else {
return false;
}
}
if (obj1 != obj2) {
var numObj1 = Number(obj1);
var numObj2 = Number(obj2);
if (!isNaN(numObj1) && !isNaN(numObj2)) {
if (numObj1 == numObj2) {
return false;
}
}
return true;
}
return false;
}
}, {
key: 'insertArray',
value: function insertArray(arr, index, item) {
arr.splice(index, 0, item);
}
//判断类型
}, {
key: 'type',
value: function type(obj) {
var toString = Object.prototype.toString;
var map = {
'[object Boolean]': 'boolean',
'[object Number]': 'number',
'[object String]': 'string',
'[object Function]': 'function',
'[object Array]': 'array',
'[object Date]': 'date',
'[object RegExp]': 'regExp',
'[object Undefined]': 'undefined',
'[object Null]': 'null',
'[object Object]': 'object'
};
return map[toString.call(obj)];
}
//深拷贝
}, {
key: 'deepClone',
value: function deepClone(data) {
var t = this.type(data),
o,
i,
ni;
if (t === 'array') {
o = [];
} else if (t === 'object') {
o = {};
} else {
return data;
}
if (t === 'array') {
for (i = 0, ni = data.length; i < ni; i++) {
o.push(this.deepClone(data[i]));
}
return o;
} else if (t === 'object') {
for (i in data) {
o[i] = this.deepClone(data[i]);
}
return o;
}
}
//千分符处理
}, {
key: 'thousandthNum',
value: function thousandthNum(num) {
return num && num.toString().replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,');
}
//四舍五入且千分符处理
}, {
key: 'fixedAndThousandthNum',
value: function fixedAndThousandthNum(num, precision) {
return this.thousandthNum(this.fixedNum(num, precision));
}
//设置缓存内容
}, {
key: 'setCacheValue',
value: function setCacheValue(cacheName, value) {
if ((typeof value === 'undefined' ? 'undefined' : (0, _typeof3.default)(value)) == 'object') {
window.localStorage[cacheName] = (0, _stringify2.default)(value);
} else {
window.localStorage[cacheName] = value;
}
}
}, {
key: 'setUserCache',
value: function setUserCache(cacheName, value) {
var key = 'Tplus_Base' + '_' + cacheName + '_' + tools.getCacheValue('session.orgId') + '_' + tools.getCacheValue('session.userId');
this.setCacheValue(key, value);
}
}, {
key: 'getCacheValue',
value: function getCacheValue(cacheName) {
return window.localStorage[cacheName];
}
}, {
key: 'getUserCache',
value: function getUserCache(cacheName) {
var key = 'Tplus_Base' + '_' + cacheName + '_' + tools.getCacheValue('session.orgId') + '_' + tools.getCacheValue('session.userId');
return this.getCacheValue(key);
}
}, {
key: 'removeCacheValue',
value: function removeCacheValue(cacheName) {
window.localStorage.removeItem(cacheName);
}
//获取历史
}, {
key: 'getHistory',
value: function getHistory(cacheName) {
var historyItemsString = this.getCacheValue(cacheName);
if (historyItemsString) {
return JSON.parse(historyItemsString);
} else {
return [];
}
}
//本地历史功能使用 写入对象为数组 插入元素写入到数组起始位置 LRU 最多保留10个元素
}, {
key: 'insertHistory',
value: function insertHistory(cacheName, historyItem, compare) {
var historyItemsString = this.getCacheValue(cacheName);
var historyItems = void 0;
if (historyItemsString) {
historyItems = JSON.parse(historyItemsString);
var isContain = historyItems.some(function (item, index) {
if (compare) {
return compare(historyItem, item);
}
return item == historyItem;
});
if (!isContain) {
var itemLength = historyItems.unshift(historyItem);
if (itemLength > 10) {
historyItems.pop();
}
}
} else {
historyItems = new Array();
historyItems.push(historyItem);
}
this.setCacheValue(cacheName, (0, _stringify2.default)(historyItems));
}
}]);
return tools;
}();
exports.default = tools;
//# sourceMappingURL=tools.js.map