UNPKG

tplus-pos

Version:

pos module

772 lines (679 loc) 20.3 kB
'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