app模板、应用模板、组件模板、widget模板
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

118 lines
3.5 KiB

4 years ago
  1. 'use strict';
  2. exports.__esModule = true;
  3. exports.getAmap = exports.getBmap = exports.getMapJSON = exports.$get = exports.getStackMap = exports.getFormated = undefined;
  4. exports.setArrayValue = setArrayValue;
  5. var _numerify = require('numerify');
  6. var _numerify2 = _interopRequireDefault(_numerify);
  7. var _utilsLite = require('utils-lite');
  8. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  9. var getFormated = exports.getFormated = function getFormated(val, type, digit) {
  10. var defaultVal = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '-';
  11. if (isNaN(val)) return defaultVal;
  12. if (!type) return val;
  13. if ((0, _utilsLite.isFunction)(type)) return type(val, _numerify2.default);
  14. digit = isNaN(digit) ? 0 : ++digit;
  15. var digitStr = '.[' + new Array(digit).join(0) + ']';
  16. var formatter = type;
  17. switch (type) {
  18. case 'KMB':
  19. formatter = digit ? '0,0' + digitStr + 'a' : '0,0a';
  20. break;
  21. case 'normal':
  22. formatter = digit ? '0,0' + digitStr : '0,0';
  23. break;
  24. case 'percent':
  25. formatter = digit ? '0,0' + digitStr + '%' : '0,0.[00]%';
  26. break;
  27. }
  28. return (0, _numerify2.default)(val, formatter);
  29. };
  30. var getStackMap = exports.getStackMap = function getStackMap(stack) {
  31. var stackMap = {};
  32. Object.keys(stack).forEach(function (item) {
  33. stack[item].forEach(function (name) {
  34. stackMap[name] = item;
  35. });
  36. });
  37. return stackMap;
  38. };
  39. var $get = exports.$get = function $get(url) {
  40. /* eslint-disable */
  41. return new Promise(function (resolve, reject) {
  42. var xhr = new XMLHttpRequest();
  43. xhr.open('GET', url);
  44. xhr.send(null);
  45. xhr.onload = function () {
  46. resolve(JSON.parse(xhr.responseText));
  47. };
  48. xhr.onerror = function () {
  49. reject(JSON.parse(xhr.responseText));
  50. };
  51. });
  52. };
  53. var mapPromise = {};
  54. var getMapJSON = exports.getMapJSON = function getMapJSON(_ref) {
  55. var position = _ref.position,
  56. positionJsonLink = _ref.positionJsonLink,
  57. beforeRegisterMapOnce = _ref.beforeRegisterMapOnce,
  58. mapURLProfix = _ref.mapURLProfix;
  59. var link = positionJsonLink || '' + mapURLProfix + position + '.json';
  60. if (!mapPromise[link]) {
  61. mapPromise[link] = $get(link).then(function (res) {
  62. if (beforeRegisterMapOnce) res = beforeRegisterMapOnce(res);
  63. return res;
  64. });
  65. }
  66. return mapPromise[link];
  67. };
  68. var bmapPromise = null;
  69. var amapPromise = null;
  70. var getBmap = exports.getBmap = function getBmap(key, v) {
  71. if (!bmapPromise) {
  72. bmapPromise = new Promise(function (resolve, reject) {
  73. var callbackName = 'bmap' + Date.now();
  74. window[callbackName] = resolve;
  75. var script = document.createElement('script');
  76. script.src = ['https://api.map.baidu.com/api?v=' + (v || '2.0'), 'ak=' + key, 'callback=' + callbackName].join('&');
  77. document.body.appendChild(script);
  78. });
  79. }
  80. return bmapPromise;
  81. };
  82. var getAmap = exports.getAmap = function getAmap(key, v) {
  83. if (!amapPromise) {
  84. amapPromise = new Promise(function (resolve, reject) {
  85. var callbackName = 'amap' + Date.now();
  86. window[callbackName] = resolve;
  87. var script = document.createElement('script');
  88. script.src = ['https://webapi.amap.com/maps?v=' + (v || '1.4.3'), 'key=' + key, 'callback=' + callbackName].join('&');
  89. document.body.appendChild(script);
  90. });
  91. }
  92. return amapPromise;
  93. };
  94. function setArrayValue(arr, index, value) {
  95. if (arr[index] !== undefined) {
  96. arr[index].push(value);
  97. } else {
  98. arr[index] = [value];
  99. }
  100. }