UNPKG

@aliretail/react-materials-components

Version:
115 lines (97 loc) 2.92 kB
import _extends from "@babel/runtime/helpers/extends"; var _this = this; import get from 'lodash.get'; import queryString from 'query-string'; 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.parseUrl(location.href, { parseFragmentIdentifier: true }); if (!app) { app = appCode; } if (host.indexOf('localhost') > -1) { targetUrl = queryString.stringifyUrl({ url: protocol + "//" + host + "/" + page + ".html", query: _extends({}, params) }); } else { targetUrl = queryString.stringifyUrl({ url: protocol + "//" + host + "/ui/" + app + "/blank/" + page, query: _extends({}, urlObj.query, params), fragmentIdentifier: urlObj.fragmentIdentifier }); } return targetUrl; } export var Router = { openPage: function openPage(pageInfo, config) { var openInTab = get(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 = get(window, 'retailforce.goToTab'); if (goToTab) { goToTab.apply(_this, [pageInfo, config]); } else { var targetUrl = createTargetUrl(pageInfo); location.href = targetUrl; } }, closePage: function closePage(pageInfo) { var closeTab = get(window, 'retailforce.closeTab'); if (closeTab) { closeTab.call(_this, pageInfo); } }, closeCurrentPage: function closeCurrentPage() { var closeCurrentTab = get(window, 'retailforce.closeCurrentTab'); if (closeCurrentTab) { closeCurrentTab.call(_this); } }, setPageTitle: function setPageTitle(title) { var setPageTitle = get(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 = get(window, 'retailforce.openInTab'); var queryObj = {}; // 在 TabLayout 下 if (openInTab) { var _location2 = location, hash = _location2.hash; // 查询参数需要从 hash 里面去取!!! var queryStr = hash.split('?')[1]; if (queryStr) { queryObj = queryString.parse("?" + queryStr); } } else { queryObj = queryString.parse(location.search); } return queryObj[name]; } }; export default Router;