UNPKG

tongtong-utils

Version:

String类

378 lines (331 loc) 11.9 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.validateDiscount = exports.validateUnit = exports.validateMaxInt = exports.setWebPageLabel = exports.getIconNameByNodeType = exports.recursiveTreeNode = exports.getChromeVersion = exports.reFixUrl = exports.importCDN = undefined; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; exports.fixedZero = fixedZero; exports.getTimeDistance = getTimeDistance; exports.getPlainNode = getPlainNode; exports.getRoutes = getRoutes; exports.getPageQuery = getPageQuery; exports.getQueryPath = getQueryPath; exports.isUrl = isUrl; exports.formatWan = formatWan; var _moment = require('moment'); var _moment2 = _interopRequireDefault(_moment); var _qs = require('qs'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } // 左边补零 function fixedZero(val) { var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2; if (isNaN(val)) { return val; } val = val.toString(); while (val.length < length) { val = '0' + val; } return val; } function getTimeDistance(type) { var now = new Date(); var oneDay = 1000 * 60 * 60 * 24; if (type === 'today') { now.setHours(0); now.setMinutes(0); now.setSeconds(0); return [(0, _moment2.default)(now), (0, _moment2.default)(now.getTime() + (oneDay - 1000))]; } if (type === 'week') { var day = now.getDay(); now.setHours(0); now.setMinutes(0); now.setSeconds(0); if (day === 0) { day = 6; } else { day -= 1; } var beginTime = now.getTime() - day * oneDay; return [(0, _moment2.default)(beginTime), (0, _moment2.default)(beginTime + (7 * oneDay - 1000))]; } if (type === 'month') { var _year = now.getFullYear(); var month = now.getMonth(); var nextDate = (0, _moment2.default)(now).add(1, 'months'); var nextYear = nextDate.year(); var nextMonth = nextDate.month(); return [(0, _moment2.default)(_year + '-' + fixedZero(month + 1) + '-01 00:00:00'), (0, _moment2.default)((0, _moment2.default)(nextYear + '-' + fixedZero(nextMonth + 1) + '-01 00:00:00').valueOf() - 1000)]; } var year = now.getFullYear(); return [(0, _moment2.default)(year + '-01-01 00:00:00'), (0, _moment2.default)(year + '-12-31 23:59:59')]; } function getPlainNode(nodeList) { var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; var arr = []; nodeList.forEach(function (node) { var item = node; item.path = (parentPath + '/' + (item.path || '')).replace(/\/+/g, '/'); item.exact = true; if (item.children && !item.component) { arr.push.apply(arr, _toConsumableArray(getPlainNode(item.children, item.path))); } else { if (item.children && item.component) { item.exact = false; } arr.push(item); } }); return arr; } // export function digitUppercase(n) { // return nzh.toMoney(n); // } function getRelation(str1, str2) { if (str1 === str2) { console.warn('Two path are equal!'); // eslint-disable-line } var arr1 = str1.split('/'); var arr2 = str2.split('/'); if (arr2.every(function (item, index) { return item === arr1[index]; })) { return 1; } if (arr1.every(function (item, index) { return item === arr2[index]; })) { return 2; } return 3; } function getRenderArr(routes) { var renderArr = []; renderArr.push(routes[0]); var _loop = function _loop(i) { // 去重 renderArr = renderArr.filter(function (item) { return getRelation(item, routes[i]) !== 1; }); // 是否包含 var isAdd = renderArr.every(function (item) { return getRelation(item, routes[i]) === 3; }); if (isAdd) { renderArr.push(routes[i]); } }; for (var i = 1; i < routes.length; i += 1) { _loop(i); } return renderArr; } // /** // * Get router routing configuration // * { path:{name,...param}}=>Array<{name,path ...param}> // * @param {string} path // * @param {routerData} routerData // */ function getRoutes(path, routerData) { var routes = Object.keys(routerData).filter(function (routePath) { return routePath.indexOf(path) === 0 && routePath !== path; }); // Replace path to '' eg. path='user' /user/name => name routes = routes.map(function (item) { return item.replace(path, ''); }); // Get the route to be rendered to remove the deep rendering var renderArr = getRenderArr(routes); // Conversion and stitching parameters var renderRoutes = renderArr.map(function (item) { var exact = !routes.some(function (route) { return route !== item && getRelation(route, item) === 1; }); return _extends({ exact: exact }, routerData['' + path + item], { key: '' + path + item, path: '' + path + item }); }); return renderRoutes; } function getPageQuery() { return (0, _qs.parse)(window.location.href.split('?')[1]); } function getQueryPath() { var path = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; var query = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var search = (0, _qs.stringify)(query); if (search.length) { return path + '?' + search; } return path; } /* eslint no-useless-escape:0 */ var reg = /(((^https?:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)$/; function isUrl(path) { return reg.test(path); } function formatWan(val) { var v = val * 1; if (!v || Number.isNaN(v)) { return ''; } var result = val; if (val > 10000) { result = Math.floor(val / 10000); result = result + '\u4E07'; } return result; } var importCDN = exports.importCDN = function importCDN(url, name) { return new Promise(function (resolve) { var dom = document.createElement('script'); dom.src = url; dom.type = 'text/javascript'; dom.onload = function () { resolve(window[name]); }; document.head.appendChild(dom); }); }; var reFixUrl = exports.reFixUrl = function reFixUrl(url, obj) { var queryString = []; if (obj) { for (var i in obj) { if (obj[i] instanceof Array) { var list = obj[i]; for (var j in list) { var item = list[j]; if ((typeof item === 'undefined' ? 'undefined' : _typeof(item)) == "object") { for (var key in item) { queryString.push(i + '[' + key + ']=' + item[key]); } } else { queryString.push(i + "=" + item); } } } else { if (obj[i] == null) { queryString.push(i + "="); } else { queryString.push(i + "=" + obj[i]); } } } queryString = queryString.join("&"); if (url.indexOf("?") > -1) { return url + "&" + queryString; } else { return url + "?" + queryString; } } }; var getChromeVersion = exports.getChromeVersion = function getChromeVersion() { var arr = navigator.userAgent.split(' '); var chromeVersion = ''; for (var i = 0; i < arr.length; i++) { if (/chrome/i.test(arr[i])) { chromeVersion = arr[i]; } } if (chromeVersion) { return Number(chromeVersion.split('/')[1].split('.')[0]); } else { return false; } }; var recursiveTreeNode = exports.recursiveTreeNode = function recursiveTreeNode(treeNode, getLeafValue, getParentValue) { if (treeNode.children.length === 0) { return getLeafValue(treeNode); } var childrenValue = treeNode.children.map(function (treeNodeChild) { return recursiveTreeNode(treeNodeChild, getLeafValue, getParentValue); }); return getParentValue(treeNode, childrenValue); }; var getIconNameByNodeType = exports.getIconNameByNodeType = function getIconNameByNodeType(type) { switch (type) { case 'org': return 'icon-org'; case 'icon-org': return 'icon-org'; case 'park': return 'icon-park'; case 'icon-park': return 'icon-park'; case 'role': return 'icon-gangwei'; case 'user': return 'user'; case 'icon-user': return 'user'; case 'passageway': return 'icon-tongdao'; case 'device': return 'icon-chedao'; case 'unit': return 'icon-bumen'; case 'icon-unit': return 'icon-bumen'; case 'icon-root': return 'icon-quanxian'; case 'icon-none': return 'icon-quanxian'; case 'icon-project': return 'icon-xiangmu'; case 'groupbusiness': return 'icon-org'; case 'allbusiness': return 'icon-org'; case 'business': return 'icon-org'; default: return type; } }; // 设置网页标签 var setWebPageLabel = exports.setWebPageLabel = function setWebPageLabel(title, favIcon) { if (favIcon) { var link = document.querySelector("link[rel*='icon']") || document.createElement('link'); link.type = 'image/x-icon'; link.rel = 'shortcut icon'; link.href = favIcon; document.getElementsByTagName('head')[0].appendChild(link); } if (title) { document.title = title; } }; /** 表单验证 */ // 后台要求的int型,最大值不能超过2147483647 var validateMaxInt = exports.validateMaxInt = function validateMaxInt(rule, value, callback) { if (value > 2147483647) { callback("数值不能超过2147483647,请输入有效数值"); } else { callback(); return; } }; // 只能填写小数点后2位的正实数 0.01 var validateUnit = exports.validateUnit = function validateUnit(rule, value, callback) { if (value !== "" && !/(^(([1-9]{1}\d*)|(0{1}))(\.\d{0,2})?$)/.test(value)) { callback("只能填写小数点后2位的正实数"); } else { callback(); return; } }; // 小于1并且小数点后一位或者两位的数字 0.1 var validateDiscount = exports.validateDiscount = function validateDiscount(rule, value, callback) { if (value !== "" && !/([0]+(.[0-9]{1,2})?$)/.test(value) || value < 0) { callback("请输入小于1并且小数点后一位或者两位的数字"); } else { callback(); return; } };