UNPKG

@aliretail/react-materials-components

Version:
126 lines (103 loc) 3.45 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports["default"] = exports.Router = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _lodash = _interopRequireDefault(require("lodash.get")); var _queryString = _interopRequireDefault(require("query-string")); var _this = void 0; function createTargetUrl(_ref) { var app = _ref.app, page = _ref.page, params = _ref.params; var _location = location, protocol = _location.protocol, host = _location.host, pathname = _location.pathname; var targetUrl = ''; var appCode = pathname.split('/')[2]; var urlObj = _queryString["default"].parseUrl(location.href, { parseFragmentIdentifier: true }); if (!app) { app = appCode; } if (host.indexOf('localhost') > -1) { targetUrl = _queryString["default"].stringifyUrl({ url: protocol + "//" + host + "/" + page + ".html", query: (0, _extends2["default"])({}, params) }); } else { targetUrl = _queryString["default"].stringifyUrl({ url: protocol + "//" + host + "/ui/" + app + "/blank/" + page, query: (0, _extends2["default"])({}, urlObj.query, params), fragmentIdentifier: urlObj.fragmentIdentifier }); } return targetUrl; } var Router = { openPage: function openPage(pageInfo, config) { var openInTab = (0, _lodash["default"])(window, 'retailforce.openInTab'); // 在 TabLayout 下 if (openInTab) { openInTab.apply(_this, [pageInfo, config]); } else { var targetUrl = createTargetUrl(pageInfo); window.open(targetUrl); } }, goToPage: function goToPage(pageInfo, config) { if (config === void 0) { config = {}; } var goToTab = (0, _lodash["default"])(window, 'retailforce.goToTab'); if (goToTab) { goToTab.apply(_this, [pageInfo, config]); } else { var targetUrl = createTargetUrl(pageInfo); location.href = targetUrl; } }, closePage: function closePage(pageInfo) { var closeTab = (0, _lodash["default"])(window, 'retailforce.closeTab'); if (closeTab) { closeTab.call(_this, pageInfo); } }, closeCurrentPage: function closeCurrentPage() { var closeCurrentTab = (0, _lodash["default"])(window, 'retailforce.closeCurrentTab'); if (closeCurrentTab) { closeCurrentTab.call(_this); } }, setPageTitle: function setPageTitle(title) { var setPageTitle = (0, _lodash["default"])(window, 'retailforce.setPageTitle'); if (setPageTitle) { setPageTitle.call(_this, title); } else { document.title = title; } }, getURLParameter: function getURLParameter(name) { if (!name) { console.warn('请输入 url 查询的 name!'); return ''; } var openInTab = (0, _lodash["default"])(window, 'retailforce.openInTab'); var queryObj = {}; // 在 TabLayout 下 if (openInTab) { var _location2 = location, hash = _location2.hash; // 查询参数需要从 hash 里面去取!!! var queryStr = hash.split('?')[1]; if (queryStr) { queryObj = _queryString["default"].parse("?" + queryStr); } } else { queryObj = _queryString["default"].parse(location.search); } return queryObj[name]; } }; exports.Router = Router; var _default = Router; exports["default"] = _default;