UNPKG

@flatbiz/pro-layout

Version:

1,524 lines (1,485 loc) 184 kB
/* eslint-disable */ import './index.css'; /*! @flatjs/forge MIT @flatbiz/pro-layout */ import { App as App$1, Breadcrumb, FloatButton, Result, Button, Dropdown, Space, Menu, Badge, Layout, message as message$1, Tabs, Typography, theme } from 'antd'; import { classNames } from '@dimjs/utils/class-names/class-names'; import { useEffect, useMemo, Fragment, Children, cloneElement, forwardRef, useState, useImperativeHandle, isValidElement, Suspense, useRef, memo, Component } from 'react'; import { useParams, useLocation, useSearchParams, matchPath, Link, useNavigate, Routes, Route, Navigate, BrowserRouter } from 'react-router-dom'; import { sessionStorageCache, getRunningEnv, ensureSlash as ensureSlash$1, removeSlash, getGlobalData, toLinkPath, isHttpUri, toArray, urlJoinMulti, urlJoin, isWindows, valueIsEqual, toLinkPathWithQuery, openNewWindow, treeToArray, cloneObject, getUuid, EventEmitter, treeFilter, arrayFindByLoosely, arrayFindIndexByLoosely, isUndefinedOrNull, localStorageCache } from '@flatbiz/utils'; import { fbaHooks } from '@flatbiz/antd/fba-hooks'; import { parse } from '@dimjs/utils/json/parse'; import { useMemoizedFn, useUpdateEffect, useDebounceFn, useAsyncEffect } from 'ahooks'; import { isArray } from '@dimjs/lang/is-array'; import { pick } from '@dimjs/utils/pick/pick'; import { paramStrToJson } from '@dimjs/utils/uri/param-str-to-json'; import { jsx, jsxs } from 'react/jsx-runtime'; import { ButtonWrapper } from '@flatbiz/antd/button-wrapper'; import { isPromise } from '@dimjs/lang/is-promise'; import { modifyQueryString } from '@dimjs/utils/uri/modify-query-string'; import { uriParse } from '@dimjs/utils/uri/uri-parse'; import { isUndefined } from '@dimjs/lang/is-undefined'; import { isFragment } from 'react-is'; import { createRoot } from 'react-dom/client'; import { ConfigProviderWrapper } from '@flatbiz/antd/config-provider-wrapper'; import { FbaApp } from '@flatbiz/antd/fba-app'; import { getQueryString } from '@dimjs/utils/uri/get-query-string'; import { extend } from '@dimjs/utils/extend/extend'; import { get } from '@dimjs/utils/get/get'; import { isString } from '@dimjs/lang/is-string'; import _CloseOutlined from '@ant-design/icons/es/icons/CloseOutlined.js'; import { useMediaQuery } from 'react-responsive'; import { SvgHttpView } from '@flatbiz/antd/svg-http-view'; import { findAncestors } from '@dimjs/utils/tree/find-ancestors'; import { getEnvName } from '@dimjs/utils/env/get-env-name'; import { isPlainObject } from '@dimjs/lang/is-plain-object'; import _MenuFoldOutlined from '@ant-design/icons/es/icons/MenuFoldOutlined.js'; import _MenuUnfoldOutlined from '@ant-design/icons/es/icons/MenuUnfoldOutlined.js'; import _UserOutlined from '@ant-design/icons/es/icons/UserOutlined.js'; import _LogoutOutlined from '@ant-design/icons/es/icons/LogoutOutlined.js'; import { IconWrapper } from '@flatbiz/antd/icon-wrapper'; import { InputWrapper } from '@flatbiz/antd/input-wrapper'; import { Gap } from '@flatbiz/antd/gap'; import _CaretDownOutlined from '@ant-design/icons/es/icons/CaretDownOutlined.js'; import _LoadingOutlined from '@ant-design/icons/es/icons/LoadingOutlined.js'; import _RedoOutlined from '@ant-design/icons/es/icons/RedoOutlined.js'; import { arrayRemove } from '@dimjs/utils/array/array-remove'; var message; var notification; var modal; var useAntdApp = (function () { var staticFunction = App$1.useApp(); message = staticFunction.message; modal = staticFunction.modal; notification = staticFunction.notification; return null; }); function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); } function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || false, o.configurable = true, "value" in o && (o.writable = true), Object.defineProperty(e, _toPropertyKey(o.key), o); } } function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: false }), e; } function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e; } function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); } function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: true, configurable: true } }), Object.defineProperty(t, "prototype", { writable: false }), e && _setPrototypeOf(t, e); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function () { return !!t; })(); } function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); } function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = true, o = false; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = true, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; } function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; } function _possibleConstructorReturn(t, e) { if (e && ("object" == typeof e || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); } function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); } function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); } function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); } function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return (String )(t); } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; } function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } var _fbaHooks$createCtx$1 = fbaHooks.createCtx(), _fbaHooks$createCtx2$1 = _slicedToArray(_fbaHooks$createCtx$1, 2), useLayoutCtx = _fbaHooks$createCtx2$1[0], LayoutProvider = _fbaHooks$createCtx2$1[1]; var _fbaHooks$createCtx3 = fbaHooks.createCtx(), _fbaHooks$createCtx4 = _slicedToArray(_fbaHooks$createCtx3, 2), bootstrapCtx = _fbaHooks$createCtx4[0], BootstrapCtx = _fbaHooks$createCtx4[1]; var IFrameEvents = /*#__PURE__*/function (IFrameEvents) { /** * 接收从子iframe通知过来的消息, 或者父window发出的通知的消息 */ IFrameEvents["messageReceived"] = "messageReceived"; return IFrameEvents; }({}); var IFRAME_EVENT_FLAG = "FLATBIZ-LAYOUT"; var IframeEventEmitter = /*#__PURE__*/function () { function IframeEventEmitter() { _classCallCheck(this, IframeEventEmitter); _defineProperty(this, "events", {}); } return _createClass(IframeEventEmitter, [{ key: "on", value: function on(name, listener) { if (!this.events[name]) { this.events[name] = []; } this.events[name].push(listener); return this; } }, { key: "off", value: function off(name, listenerToRemove) { if (this.events[name]) { this.events[name] = this.events[name].filter(function (listener) { return listener !== listenerToRemove; }); } return this; } }, { key: "emit", value: function emit(name, data) { var handlers = this.events[name] || []; if (handlers.length) { for (var index = 0; index < handlers.length; index++) { var handler = handlers[index]; if (handler) { handler(data); } } } return this; } }]); }(); var iframeOpenNewTabItemOperateLinkKey = 'iframe-open-new-tab-item-operate-link'; /** * 保存操作 OpenNewTabItem 链路 */ var saveIframeOpenNewTabItemOperateLink = function saveIframeOpenNewTabItemOperateLink(params) { var operateLinkData = sessionStorageCache.get(iframeOpenNewTabItemOperateLinkKey); var dataList = isArray(operateLinkData === null || operateLinkData === void 0 ? void 0 : operateLinkData.dataList) ? operateLinkData === null || operateLinkData === void 0 ? void 0 : operateLinkData.dataList : []; dataList.push(params); sessionStorageCache.set(iframeOpenNewTabItemOperateLinkKey, { dataList: dataList }); }; /** * 删除操作 OpenNewTabItem 链路 * @param startTabId 目标 tabId * @param isReverse 是否反向删除 * @returns */ var removeIframeOpenNewTabItemOperateLink = function removeIframeOpenNewTabItemOperateLink(startTabId) { var isReverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var operateLinkData = sessionStorageCache.get(iframeOpenNewTabItemOperateLinkKey); var dataList = isArray(operateLinkData === null || operateLinkData === void 0 ? void 0 : operateLinkData.dataList) ? operateLinkData === null || operateLinkData === void 0 ? void 0 : operateLinkData.dataList : []; var dataListNew; if (!isReverse) { dataListNew = dataList.filter(function (item) { return item.startTabId != startTabId; }); } else { dataListNew = dataList.filter(function (item) { return item.startTabId == startTabId; }); } sessionStorageCache.set(iframeOpenNewTabItemOperateLinkKey, { dataList: dataListNew }); }; var getIframeOpenNewTabItemOperateLinkList = function getIframeOpenNewTabItemOperateLinkList() { var operateLinkData = sessionStorageCache.get(iframeOpenNewTabItemOperateLinkKey); return isArray(operateLinkData === null || operateLinkData === void 0 ? void 0 : operateLinkData.dataList) ? operateLinkData === null || operateLinkData === void 0 ? void 0 : operateLinkData.dataList : []; }; var getDefaultHeaderThemeConfig = function getDefaultHeaderThemeConfig() { var env = getRunningEnv(); var headerThemeConfig = { inte: { bgColor: '#38B990' }, rc: { bgColor: '#e59d1a' }, me: { bgColor: '#0c1e3e' } }; return headerThemeConfig[env]; }; var getAllIframeElements = function getAllIframeElements() { var allFrames = document.querySelectorAll('[id^="iframe_"]'); return allFrames; }; /** * 主父级窗体window对象使用的消息通讯 */ var iframeApi = { /** * 广播消息到所有的iframes子页面 * @param data 消息内容 */ broadcastMessages: function broadcastMessages(data) { var allIframes = getAllIframeElements(); for (var index = 0; index < allIframes.length; index++) { var _iframe$contentWindow; var iframe = allIframes[index]; (_iframe$contentWindow = iframe.contentWindow) === null || _iframe$contentWindow === void 0 || _iframe$contentWindow.postMessage(JSON.stringify({ type: IFRAME_EVENT_FLAG, data: data }), '*'); } return iframeApi; }, /** * 发送特定消息到父亲级window对象 * @param data 消息内容 */ postMessage: function postMessage(data) { window.parent.postMessage(JSON.stringify({ type: IFRAME_EVENT_FLAG, data: data }), '*'); return iframeApi; }, openNewTabItem: function openNewTabItem(data, isClosed) { window.parent.postMessage(JSON.stringify({ type: IFRAME_EVENT_FLAG, data: { type: 'redirect_to_frame_layout_menu_item', data: _objectSpread2(_objectSpread2({}, data), {}, { _isClosed: isClosed }) } }), '*'); return iframeApi; }, openNewThirdTabItem: function openNewThirdTabItem(menuId, options) { window.parent.postMessage(JSON.stringify({ type: IFRAME_EVENT_FLAG, data: { type: 'redirect_to_frame_layout_menu_third_item', data: { menuId: menuId, options: options } } }), '*'); return iframeApi; }, openBrowserWindow: function openBrowserWindow(url) { window.parent.postMessage(JSON.stringify({ type: IFRAME_EVENT_FLAG, data: { type: 'open_browser_window', data: { url: url } } }), '*'); return iframeApi; }, locationHref: function locationHref(url) { window.parent.postMessage(JSON.stringify({ type: IFRAME_EVENT_FLAG, data: { type: 'browser_location_href', data: { url: url } } }), '*'); return iframeApi; }, tabItemHistoryChange: function tabItemHistoryChange(link) { window.parent.postMessage(JSON.stringify({ type: IFRAME_EVENT_FLAG, data: { type: 'history_change', data: { link: link } } }), '*'); return iframeApi; }, openNewTabItemByMenuId: function openNewTabItemByMenuId(menuId) { window.parent.postMessage(JSON.stringify({ type: IFRAME_EVENT_FLAG, data: { type: 'open_iframe_tabitem_by_menu_id', data: menuId } }), '*'); return iframeApi; }, /** 关闭当前iframe-tab,跳转上一个链路tab */closedIframeTabToPrevlink: function closedIframeTabToPrevlink() { var iframeNodeKey = window['__iframe_node_key']; var closedIframeTabId = iframeNodeKey.replace('iframe_', ''); window.parent.postMessage(JSON.stringify({ type: IFRAME_EVENT_FLAG, data: { type: 'closed-iframe-tab-to-prevlink', data: { closedIframeTabId: closedIframeTabId } } }), '*'); return iframeApi; }, tabItemRedDotToggle: function tabItemRedDotToggle(visible) { window.parent.postMessage(JSON.stringify({ type: IFRAME_EVENT_FLAG, data: { type: 'tab-item-red-dot-toggle', data: { visible: visible } } }), '*'); return iframeApi; }, iframeTabOperation: function iframeTabOperation(type) { window.parent.postMessage(JSON.stringify({ type: IFRAME_EVENT_FLAG, data: { type: 'iframe-tab-operation', data: { type: type } } }), '*'); return iframeApi; }, isInIframe: function isInIframe() { return window.self !== window.top; }, // iframe链路判断上一级是否存在 isExistPrevLink: function isExistPrevLink() { var iframeNodeKey = window['__iframe_node_key']; var currentIframeTabId = iframeNodeKey === null || iframeNodeKey === void 0 ? void 0 : iframeNodeKey.replace('iframe_', ''); if (currentIframeTabId) { var operateLinkList = getIframeOpenNewTabItemOperateLinkList(); var target = operateLinkList.find(function (item) { return item.endTabId === currentIframeTabId; }); console.log('target', target); return !!target; } return false; }, updateMenuBadge: function updateMenuBadge(data) { window.parent.postMessage(JSON.stringify({ type: IFRAME_EVENT_FLAG, data: { type: 'update-menu-badge', data: data } }), '*'); return iframeApi; } }; var iframeEvent = new IframeEventEmitter(); window.addEventListener('message', function (e) { try { var _parse = parse(e.data), type = _parse.type, data = _parse.data; // 忽略框架外的消息通讯传递 if (type === IFRAME_EVENT_FLAG) { iframeEvent.emit(IFrameEvents.messageReceived, data); } } catch (_error) { /** */ } }); /** * 使用Iframe通讯的API * @param onReceivedMessageCallback 接收iframe通讯消息的回调函数引用 * @demo https://xx.xx.com/docs/admin/main/exchange * @example * ```tsx * const iframeApi = useIframe<MessageData>((data) => { * updateMessage(data); * }); * * const handleClick = hooks.useCallbackRef(() => { * iframeApi.broadcastMessages({ * fromHeader: '1', * }); * }); * * ``` */ var useIframe = function useIframe() { var onReceivedMessageCallback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () { /** */ }; var callbackRef = useMemoizedFn(onReceivedMessageCallback); useEffect(function () { iframeEvent.off(IFrameEvents.messageReceived, callbackRef).on(IFrameEvents.messageReceived, callbackRef); return function () { iframeEvent.off(IFrameEvents.messageReceived, callbackRef); }; }, [callbackRef]); return iframeApi; }; var useBread = function useBread(breads, routeBaseName) { var _matchPath; var params = useParams(); var location = useLocation(); var _useSearchParams = useSearchParams(), _useSearchParams2 = _slicedToArray(_useSearchParams, 1), search = _useSearchParams2[0]; var newBreadList = breads.map(function (item) { var breadData = typeof item.breadConfig === 'function' ? item.breadConfig({ params: params, search: search }) : item.breadConfig; return _objectSpread2(_objectSpread2({}, breadData), {}, { path: item.path }); }); routeBaseName = ensureSlash$1(routeBaseName); var locationBreadPath = ensureSlash$1(location.pathname.replace(routeBaseName, '')); var routes = newBreadList.map(function (s) { var pathFn = s.to || s.path; var path = typeof pathFn === 'function' ? pathFn({ params: params, search: search }) : pathFn; var query = s.query || []; var allQueries = paramStrToJson(window.location.href); var savedQueries = pick(allQueries, ['env'].concat(query)); var name = typeof s.name === 'function' ? s.name() : s.name; return { path: path, name: name, query: savedQueries }; }); /** * 当路由中存在动态参数时,解决参数匹配替换问题 * 1. 路由path链路 * a/b * a/b/:id * a/b/:id/detail * => * 动态参数id = 123 * a/b * a/b/123 * a/b/123/detail */ // 从长到短排序 routes = routes.sort(function (a, b) { var _b$path, _a$path; return ((_b$path = b.path) === null || _b$path === void 0 ? void 0 : _b$path.length) - ((_a$path = a.path) === null || _a$path === void 0 ? void 0 : _a$path.length); }); var lastPathTarget = routes.find(function (item) { return matchPath(ensureSlash$1(item.path), locationBreadPath) || ensureSlash$1(item.path) === '//' || locationBreadPath.includes(ensureSlash$1(item.path)); }); if (lastPathTarget === undefined || lastPathTarget === null) return []; var routesNew = routes.sort(function (a, b) { var _a$path2, _b$path2; return ((_a$path2 = a.path) === null || _a$path2 === void 0 ? void 0 : _a$path2.length) - ((_b$path2 = b.path) === null || _b$path2 === void 0 ? void 0 : _b$path2.length); }).filter(function (item) { return ensureSlash$1(lastPathTarget.path).includes(ensureSlash$1(item.path)); }); var marchParams = (_matchPath = matchPath(ensureSlash$1(lastPathTarget.path), locationBreadPath)) === null || _matchPath === void 0 ? void 0 : _matchPath.params; var resultRoutes = routesNew.map(function (item) { if (marchParams) { var pathFmt = ensureSlash$1(item.path); Object.keys(marchParams).forEach(function (key) { if (pathFmt.includes("/:".concat(key, "/"))) { pathFmt = pathFmt.replace("/:".concat(key, "/"), "/".concat(marchParams[key], "/")); } }); item.path = removeSlash(pathFmt, 'after'); } return item; }); return resultRoutes; }; /** * iframe tab 注册刷新方法 * ``` * 1. 定义refreshKey唯一值 * 2. 与 useRefreshRegisterIframeTab 结合实现iframe tab之间的刷新动作 * ``` */ var useRegisterRefreshCurrentIframeTab = function useRegisterRefreshCurrentIframeTab(refreshKey, onRefresh) { useIframe(function (data) { return new Promise(function ($return, $error) { var iframeNodeKey, refreshFunc; if (data.type === '__refresh-iframe-tab') { var $Try_1_Post = function () { try { return $If_5.call(this); } catch ($boundEx) { return $error($boundEx); } }.bind(this); var $Try_1_Catch = function (error) { try { console.error(error); return $Try_1_Post(); } catch ($boundEx) { return $error($boundEx); } }; try { iframeNodeKey = window['__iframe_node_key']; refreshFunc = window.parent["__refresh_".concat(iframeNodeKey)]; if (data.data.refreshKey === refreshKey) { var $Try_2_Finally = function ($Try_2_Exit) { return function ($Try_2_Value) { try { refreshFunc.end(); return $Try_2_Exit && $Try_2_Exit.call(this, $Try_2_Value); } catch ($boundEx) { return $Try_1_Catch($boundEx); } }.bind(this); }.bind(this); refreshFunc.start(); var $Try_2_Post = function () { try { return $If_6.call(this); } catch ($boundEx) { return $Try_1_Catch($boundEx); } }.bind(this); var $Try_2_Catch = function ($exception_3) { try { throw $exception_3; } catch ($boundEx) { return $Try_2_Finally($Try_1_Catch)($boundEx); } }; try { return Promise.resolve(onRefresh(data.data.params)).then(function ($await_7) { try { return $Try_2_Finally($Try_2_Post)(); } catch ($boundEx) { return $Try_2_Catch($boundEx); } }, $Try_2_Catch); } catch ($exception_3) { $Try_2_Catch($exception_3); } } function $If_6() { return $Try_1_Post(); } return $If_6.call(this); } catch (error) { $Try_1_Catch(error); } } function $If_5() { return $return(); } return $If_5.call(this); }); }); }; /** * 根据 refreshKey,刷新指定iframe tab(在iframe tab中调用) * ``` * 1. 使用 useRegisterRefreshCurrentIframeTab 定义的refreshKey * 2. 可通过 params 给刷新方法传参 * ``` * @returns */ var useRefreshRegisterIframeTab = function useRefreshRegisterIframeTab() { var iframeApi = useIframe(); return function (refreshKey, params) { iframeApi.postMessage({ type: '__refresh-iframe-tab', data: { refreshKey: refreshKey, params: params } }); }; }; /** * iframe tab 激活回调 * ``` * 1. 首次激活执行 callback,isFirst 为 true * ``` */ var useIframeTabActive = function useIframeTabActive(callback) { useEffect(function () { callback(true); }, []); useIframe(function (data) { if (data.type === '__iframe-tab-active') { try { var iframeNodeKey = window['__iframe_node_key']; if (data.data.activeKey === iframeNodeKey) { callback(false); } } catch (error) { console.error(error); } } }); }; var Bread = function Bread(props) { var _ctx$breadcrumbProps; var ctx = bootstrapCtx(); var iframeApi = useIframe(); var globalData = getGlobalData(); var breadRoutes = useBread(ctx.breads || {}, globalData.routeBaseName); var breadcrumbItems = useMemo(function () { var items = ctx.breadTitle ? [{ title: ctx.breadTitle }] : []; var routes = breadRoutes.sort(function (a, b) { return a.path.length - b.path.length; }); routes.forEach(function (item, index) { var content = item && /*#__PURE__*/jsx(Fragment, { children: item.name }); if (item) { if (routes.length - 1 !== index) { items.push({ title: /*#__PURE__*/jsx(Link, { to: toLinkPath(item.path, item.query), onClick: function onClick() { if (ctx.layoutMode === 'iframe-tab') { iframeApi.tabItemRedDotToggle(false); } }, children: content }) }); } else { items.push({ title: item.name }); } } }); return items; }, [breadRoutes, ctx.breadTitle]); if (!breadRoutes.length) { return null; } return /*#__PURE__*/jsxs("div", { className: "bread-wrapper", children: [/*#__PURE__*/jsx(Breadcrumb, _objectSpread2(_objectSpread2({}, ctx.breadcrumbProps), {}, { className: classNames('bread', (_ctx$breadcrumbProps = ctx.breadcrumbProps) === null || _ctx$breadcrumbProps === void 0 ? void 0 : _ctx$breadcrumbProps.className), items: breadcrumbItems })), /*#__PURE__*/jsx("div", { className: "bread-extend", children: props.children })] }); }; // export const urlJoin = (first: string, second: string) => { // return (first || '').replace(/\/$/, '') + '/' + (second || '').replace(/^\//, ''); // }; /** * make sure the endfix slash as expect. * @param str path fragment * @param slashEndfix flag to indicates if we need keep last slash `/` */ var ensureSlash = function ensureSlash(str) { var slashEndfix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; str = str.replace(/\/$/, ''); return slashEndfix ? str + '/' : str; }; /** * 按照item.`path`长度越长的排列到最前面 * @param items * @returns */ var sortItemsByPath = function sortItemsByPath() { var items = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; return items.slice(0).sort(function (a, b) { return (b.path || '').length - (a.path || '').length; }); }; /** * path1 是否 包含 path2 * @param path1 * @param path2 * @returns */ var pathIncludePath = function pathIncludePath(path1, path2) { return ensureSlash(path1, true).startsWith(ensureSlash(path2, true)); }; /** * 找到第一个叶子节点 * ``` * tileMenuList: 通过treeToArray(treeList) * ``` * @param tileMenuList 菜单平铺数据 */ var findOneLeafNode = function findOneLeafNode(tileMenuList) { return tileMenuList.filter(function (item) { return !item.children || item.children.length === 0; })[0]; }; /** * 查询 path 存在的菜单节点(不考虑是否为叶子节点) */ var pathInMenuList = function pathInMenuList(path, menus) { path = getIframeTabPurePath(path); return menus.find(function (item) { return ensureSlash$1(path, true).startsWith(ensureSlash$1(getIframeTabPurePath(item.path), true)); }); }; /** * 获取 rotue path(不包含routeBaseName) * ``` * 例如: * /pages/flatbiz/demo-layout/main/system-set/menu1?env=me * routeBaseName = pages/flatbiz/demo-layout * => * /main/system-set/menu1 * ``` * @param path * @returns */ var getPurePath = function getPurePath(path) { var _getHostUrlAndRouteBa2 = getHostUrlAndRouteBaseName(path), routeBaseName = _getHostUrlAndRouteBa2.routeBaseName; return urlJoin('/', path).replace(urlJoin('/', routeBaseName), '').split('?')[0]; }; /** * 获取 iframe rotue path(不包含routeBaseName、main) * ``` * 例如: * routeBaseName = pages/flatbiz/demo-layout * 1. /pages/flatbiz/demo-layout/main/system-set/menu1?env=me * 2. /main/system-set/menu1?env=me * 3. /system-set/menu1 * => * /system-set/menu1 * ``` * @param path * @returns */ var getIframeTabPurePath = function getIframeTabPurePath(pathOrUrl) { var pathname = isHttpUri(pathOrUrl) ? uriParse(pathOrUrl).pathname : pathOrUrl; var _getHostUrlAndRouteBa3 = getHostUrlAndRouteBaseName(pathOrUrl), routeBaseName = _getHostUrlAndRouteBa3.routeBaseName; var purePath = urlJoin('/', pathname).replace(urlJoinMulti('/', routeBaseName, '/'), '').split('?')[0]; purePath = urlJoinMulti('/', purePath, '/'); if (purePath.startsWith('/main/')) { purePath = purePath.replace('/main/', '/'); } return removeSlash(purePath, 'after'); }; var getIframeMainPurePath = function getIframeMainPurePath(pathOrUrl) { var tabPurePath = getIframeTabPurePath(pathOrUrl); return urlJoin('/main', tabPurePath); }; /** * 解析指定iframe main url数据 * ``` * 例如 * http://dev.flatjs.com:6900/pages/flatbiz/demo-iframe/main/module1/menu1?name=xxx * => * path: /main/module1/menu1 * search: ?name=xxx * ``` * @param url */ var parseIframeMainUrlInfo = function parseIframeMainUrlInfo(url) { var purePath = getIframeMainPurePath(url); var uriParseValue = uriParse(url); var search = uriParseValue.search; return { path: purePath, search: search, pathSearch: "".concat(purePath).concat(search || '') }; }; /** * 解析指定iframe 内部 url数据 * ``` * 例如 * http://dev.flatjs.com:6900/pages/flatbiz/demo-iframe/main/module1/menu1?name=xxx * => * path: /module1/menu1 * search: ?name=xxx * ``` * @param url */ var parseIframeTabItemUrlInfo = function parseIframeTabItemUrlInfo(url) { var purePath = getIframeTabPurePath(url); var uriParseValue = uriParse(url); var search = uriParseValue.search; return { path: purePath, search: search, pathSearch: "".concat(purePath).concat(search || '') }; }; var pathStartWithPath = function pathStartWithPath(path1, path2) { return urlJoin(getIframeTabPurePath(path1), '/').startsWith(urlJoin(getIframeTabPurePath(path2), '/')); }; /** * 猜测 iframe tab link * @param pathOrUrl * * ``` * 例如1 * routeBaseName = pages/flatbiz/demo-layout * http://dev.flatjs.com/pages/flatbiz/demo-iframe/main/module1/menu1?name=xxx * http://dev.flatjs.com/pages/flatbiz/demo-iframe/module1/menu1?name=xxx * /main/module1/menu1?name=xxx * /module1/menu1?name=xxx * => * http://dev.flatjs.com/pages/flatbiz/demo-iframe/module1/menu1?name=xxx * ``` * * ``` * ***** * 例如2 * routeBaseName = pages/flatbiz/demo-layout * http://dev.flatjs.com/pages/flatbiz/demo-iframe/main/module1/menu1 * http://dev.flatjs.com/pages/flatbiz/demo-iframe/module1/menu1 * /main/module1/menu1 * /module1/menu1 * => * http://dev.flatjs.com/pages/flatbiz/demo-iframe/module1/menu1 * ``` */ var guessIframeTabItemLink = function guessIframeTabItemLink(pathOrUrl) { var _getHostUrlAndRouteBa4 = getHostUrlAndRouteBaseName(pathOrUrl), routeBaseName = _getHostUrlAndRouteBa4.routeBaseName, hostUrl = _getHostUrlAndRouteBa4.hostUrl; var pathSearch = ''; if (isHttpUri(pathOrUrl)) { pathSearch = parseIframeTabItemUrlInfo(pathOrUrl).pathSearch; } else { var purePath = getIframeTabPurePath(pathOrUrl); var search = pathOrUrl.split('?')[1] || ''; pathSearch = search ? "".concat(purePath, "?").concat(search) : purePath; } return urlJoinMulti(hostUrl, routeBaseName, pathSearch); }; var guessNormalItemLink = function guessNormalItemLink(pathOrUrl) { var result = getHostUrlAndRouteBaseName(pathOrUrl); var routeBaseName = result.routeBaseName; pathOrUrl = removeSlash(pathOrUrl, 'before-after'); routeBaseName = removeSlash(routeBaseName, 'before-after'); if (!isHttpUri(pathOrUrl)) { if (pathOrUrl.startsWith(routeBaseName)) { return urlJoinMulti(result.hostUrl, pathOrUrl); } return urlJoinMulti(result.hostUrl, routeBaseName, pathOrUrl); } return pathOrUrl; }; /** * 猜测 iframe main link * @param pathOrUrl * * ``` * 例如1 * routeBaseName = pages/flatbiz/demo-layout * http://dev.flatjs.com/pages/flatbiz/demo-iframe/main/module1/menu1?name=xxx * http://dev.flatjs.com/pages/flatbiz/demo-iframe/module1/menu1?name=xxx * /main/module1/menu1?name=xxx * /module1/menu1?name=xxx * => * http://dev.flatjs.com/pages/flatbiz/demo-iframe/main/module1/menu1?name=xxx * ``` * * ``` * ***** * 例如2 * routeBaseName = pages/flatbiz/demo-layout * http://dev.flatjs.com/pages/flatbiz/demo-iframe/main/module1/menu1 * http://dev.flatjs.com/pages/flatbiz/demo-iframe/module1/menu1 * /main/module1/menu1 * /module1/menu1 * => * http://dev.flatjs.com/pages/flatbiz/demo-iframe/main/module1/menu1 * ``` */ var guessIframeMainLink = function guessIframeMainLink(pathOrUrl) { var _getHostUrlAndRouteBa5 = getHostUrlAndRouteBaseName(pathOrUrl), routeBaseName = _getHostUrlAndRouteBa5.routeBaseName, hostUrl = _getHostUrlAndRouteBa5.hostUrl; var pathSearch = ''; if (isHttpUri(pathOrUrl)) { pathSearch = parseIframeMainUrlInfo(pathOrUrl).pathSearch; } else { var purePath = getIframeMainPurePath(pathOrUrl); var search = pathOrUrl.split('?')[1] || ''; pathSearch = search ? "".concat(purePath, "?").concat(search) : purePath; } return urlJoinMulti(hostUrl, routeBaseName, pathSearch); }; var removeUrlProtocol = function removeUrlProtocol(url) { var protocol = uriParse(url).protocol; return url.replace(protocol, ''); }; /** * 判断是否第三方链接 * @param link * @returns */ var judgeLinkIsThird = function judgeLinkIsThird(link) { // 此处不能使用 getHostUrlAndRouteBaseName var _getGlobalData = getGlobalData(), routeBaseName = _getGlobalData.routeBaseName, hostUrl = _getGlobalData.hostUrl, siblingProjectConfigs = _getGlobalData.siblingProjectConfigs; var ruleBaseUrl = urlJoinMulti(hostUrl, routeBaseName, '/'); var ruleBaseUrlNew = removeUrlProtocol(ruleBaseUrl); var linkNew = removeUrlProtocol(link); if (linkNew.startsWith(ruleBaseUrlNew)) { return false; } if (toArray(siblingProjectConfigs).length) { var target = siblingProjectConfigs === null || siblingProjectConfigs === void 0 ? void 0 : siblingProjectConfigs.find(function (item) { var itemUrl = urlJoinMulti(item.hostUrl, item.routeBaseName, '/'); var itemUrlNew = removeUrlProtocol(itemUrl); return linkNew.startsWith(itemUrlNew); }); if (target) { return false; } } return true; }; /** * 是否为iframe架构的其他项目 * ``` * 与 window.GLOBAL.siblingProjectConfigs 比较 * ``` */ var judgeIframeSiblingProject = function judgeIframeSiblingProject(link) { var _getGlobalData2 = getGlobalData(), routeBaseName = _getGlobalData2.routeBaseName, hostUrl = _getGlobalData2.hostUrl, siblingProjectConfigs = _getGlobalData2.siblingProjectConfigs; var linkPath = getIframeTabPurePath(link); var ruleBaseUrl = urlJoinMulti(hostUrl, routeBaseName, '/'); var ruleBaseUrlNew = removeUrlProtocol(ruleBaseUrl); var linkNew = removeUrlProtocol(link); if (!linkNew.startsWith(ruleBaseUrlNew)) { var target = getHostUrlAndRouteBaseName(link); if (target) { return { routeBaseName: target.routeBaseName, hostUrl: target.hostUrl, moduleUrl: target ? urlJoinMulti(target.hostUrl, target.routeBaseName, linkPath) : undefined }; } return undefined; } var projectTarget; var moduleTarget; siblingProjectConfigs === null || siblingProjectConfigs === void 0 || siblingProjectConfigs.forEach(function (item) { var _item$modules; (_item$modules = item.modules) === null || _item$modules === void 0 || _item$modules.forEach(function (temp) { if (pathStartWithPath(link, temp.path) && !moduleTarget) moduleTarget = temp; }); if (moduleTarget) projectTarget = item; }); if (moduleTarget) { return { routeBaseName: projectTarget.routeBaseName, hostUrl: projectTarget.hostUrl, moduleUrl: urlJoinMulti(projectTarget.hostUrl, projectTarget.routeBaseName, moduleTarget.path), name: moduleTarget.name }; } return undefined; }; var syncUrlSearch = function syncUrlSearch(targetUrl, url) { var searchJson = paramStrToJson(targetUrl); return modifyQueryString(url, searchJson); }; var getHostUrlAndRouteBaseName = function getHostUrlAndRouteBaseName(pathOrUrl) { var _getGlobalData3 = getGlobalData(), siblingProjectConfigs = _getGlobalData3.siblingProjectConfigs, routeBaseName = _getGlobalData3.routeBaseName, hostUrl = _getGlobalData3.hostUrl; if (!isHttpUri(pathOrUrl)) { return { routeBaseName: routeBaseName, hostUrl: hostUrl }; } var link = pathOrUrl; var linkNew = removeUrlProtocol(link); if (toArray(siblingProjectConfigs).length) { var target = siblingProjectConfigs === null || siblingProjectConfigs === void 0 ? void 0 : siblingProjectConfigs.find(function (item) { var itemUrl = urlJoinMulti(item.hostUrl, item.routeBaseName, '/'); var itemUrlNew = removeUrlProtocol(itemUrl); return linkNew.startsWith(itemUrlNew); }); if (target) { return { routeBaseName: target.routeBaseName, hostUrl: target.hostUrl }; } } return { routeBaseName: routeBaseName, hostUrl: hostUrl }; }; var _excluded$3 = ["level"]; /** * 通过面包屑路径返回 * @param props * @returns * ``` * 1. breads 模块面包屑配置 * 2. level回退级别,如果传递数据未获取到路由配置,则取上一级 * 例如:-1,-2,-3 * 3. 为什么不能使用useNavigate(-1) * 因为内部iframe和外部浏览器共用history历史记录,导致里外浏览器栈混乱 * 4. 什么场景使用 * 使用iframe tab的项目,在执行路由回退时使用 * 5. onClick返回 promise reject,则不会进行回退处理(V4.2.4) * ``` */ var HistoryBackButton = function HistoryBackButton(props) { var ctx = bootstrapCtx(); var level = props.level, otherProps = _objectWithoutProperties(props, _excluded$3); var _getHostUrlAndRouteBa = getHostUrlAndRouteBaseName(location.href), routeBaseName = _getHostUrlAndRouteBa.routeBaseName; var routerList = useBread(ctx.breads, routeBaseName); var navigate = useNavigate(); var path = useMemo(function () { var newLevel = level || -1; if (routerList.length >= 2) { var routerItem = routerList[routerList.length - 1 - Math.abs(newLevel)] || routerList[routerList.length - 2]; if (routerItem) { return toLinkPath(routerItem.path, routerItem.query); } else { console.warn("\u672A\u83B7\u53D6\u5230\u3010level\uFF1A".concat(newLevel, "\u3011\u9762\u5305\u5C51\u6570\u636E")); return ''; } } console.warn("\u672A\u83B7\u53D6\u5230\u3010level\uFF1A".concat(newLevel, "\u3011\u9762\u5305\u5C51\u6570\u636E")); return ''; }, []); var onBack = function onBack() { if (path) { navigate(toLinkPath(path)); } else { console.warn("\u672A\u83B7\u53D6\u5230\u9762\u5305\u5C51\u6570\u636E\uFF0C\u65E0\u8FD4\u56DE\u94FE\u63A5"); } }; var onClick = useMemoizedFn(function (event) { var _props$onClick; var result = props === null || props === void 0 || (_props$onClick = props.onClick) === null || _props$onClick === void 0 ? void 0 : _props$onClick.call(props, event); if (result && isPromise(result)) { return result.then(function () { onBack(); }); } onBack(); return; }); return /*#__PURE__*/jsx(ButtonWrapper, _objectSpread2(_objectSpread2({}, otherProps), {}, { onClick: onClick, children: props.children || '返回' })); }; var useHistoryBack = function useHistoryBack(props) { var ctx = bootstrapCtx(); var level = (props === null || props === void 0 ? void 0 : props.level) || -1; var _getHostUrlAndRouteBa2 = getHostUrlAndRouteBaseName(location.href), routeBaseName = _getHostUrlAndRouteBa2.routeBaseName; var routerList = useBread(ctx.breads, routeBaseName); var path = useMemo(function () { var newLevel = level; if (routerList.length >= 2) { var routerItem = routerList[routerList.length - 1 - Math.abs(newLevel)] || routerList[routerList.length - 2]; if (routerItem) { return toLinkPath(routerItem.path, routerItem.query); } else { console.warn("\u672A\u83B7\u53D6\u5230\u3010level\uFF1A".concat(newLevel, "\u3011\u9762\u5305\u5C51\u6570\u636E")); return ''; } } console.warn("\u672A\u83B7\u53D6\u5230\u3010level\uFF1A".concat(newLevel, "\u3011\u9762\u5305\u5C51\u6570\u636E")); return ''; }, []); return { path: path }; }; var Loader = function Loader(_ref) { var _ref$spinning = _ref.spinning, spinning = _ref$spinning === void 0 ? false : _ref$spinning, _ref$fullScreen = _ref.fullScreen, fullScreen = _ref$fullScreen === void 0 ? false : _ref$fullScreen, _ref$style = _ref.style, style = _ref$style === void 0 ? {} : _ref$style; return /*#__PURE__*/jsx("div", { style: style, className: classNames('loader', { hidden: !spinning, fullScreen: fullScreen }), children: /*#__PURE__*/jsxs("div", { className: "loader-wrapper", children: [/*#__PURE__*/jsx("div", { className: "loader-inner" }), /*#__PURE__*/jsx("div", { className: "loader-text", children: "LOADING" })] }) }); }; /** * 页面包装组件 * ``` * 1. 如果初始化面包屑被隐藏,在特殊页面级可以独立设置显示面包屑 * <Page bread={<Bread />}/> * 2. 如果需要在 面包屑上添加按钮,初始化设置 bootstrap.hideDefaultBread = true,在需要按钮的页面上配置 * <Page bread={<Bread><Button>我是按钮</Button></Bread>}/> * ``` * @param props * @returns */ var Page = function Page(props) { var loading = props.loading; var isWin = isWindows(); var className = classNames('page', { 'page-loading': loading, 'page-flex': !isUndefined(props.fullIndex), 'page-windows': isWin }, props.className); var backTopTarget = useMemoizedFn(function () { if (!isUndefined(props.fullIndex)) { return document.querySelector('.page-full'); } return document.querySelector('.page'); }); return /*#__PURE__*/jsxs(Fragment, { children: [props.bread, /*#__PURE__*/jsxs("div", { style: props.style, className: className, id: props.elementId, children: [Children.map(props.children, function (item, index) { if (index === props.fullIndex) { var _item$props; return /*#__PURE__*/jsx(Fragment, { children: /*#__PURE__*/cloneElement(item, { className: classNames('page-full', item === null || item === void 0 || (_item$props = item['props']) === null || _item$props === void 0 ? void 0 : _item$props.className) }) }, index); } return /*#__PURE__*/jsx(Fragment, { children: item }, index); }), /*#__PURE__*/jsx(FloatButton.BackTop, { target: backTopTarget }), loading && /*#__PURE__*/jsx(Loader, { spinning: true })] })] }); }; var _fbaHooks$createCtx = fbaHooks.createCtx(), _fbaHooks$createCtx2 = _slicedToArray(_fbaHooks$createCtx, 2), usePageWrapperCtx = _fbaHooks$createCtx2[0], PageWrapperCtxProvider = _fbaHooks$createCtx2[1]; var _excluded$2 = ["respData"], _excluded2 = ["serviceConfig", "isAsync", "errorRender"]; var PageContent$1 = function PageContent(props) { var _props$children; var respData = props.respData, otherProps = _objectWithoutProperties(props, _excluded$2); var children = typeof props.children === 'function' ? (_props$children = props.children) === null || _props$children === void 0 ? void 0 : _props$children.call(props, respData) : props.children; if (isFragment(children)) { var childrenList = Children.toArray(children.props.children); return /*#__PURE__*/jsx(Page, _objectSpread2(_objectSpread2({}, otherProps), {}, { children: childrenList })); } return /*#__PURE__*/jsx(Page, _objectSpread2(_objectSpread2({}, otherProps), {}, { children: children })); }; /** * 为Page内置接口处理流程组件,如果无全局初始化接口请求场景,请使用Page组件 * ``` * 包括 * 1. loading显示效果 * 2. error显示效果 * 3. 正常接口数据渲染 * ``` * @param props * @returns */ var PageWrapper = /*#__PURE__*/forwardRef(function (props, ref) { var serviceConfig = props.serviceConfig, isAsync = props.isAsync, errorRender = props.errorRender, otherProps = _objectWithoutProperties(props, _excluded2); var _useState = useState({ status: 'loading' }), _useState2 = _slicedToArray(_useState, 2), result = _useState2[0], setResult = _useState2[1]; var _useState3 = useState(false), _useState4 = _slicedToArray(_useState3, 2), againRefresh = _useState4[0], setAgainRefresh = _useState4[1]; var onRequest = function onRequest() { return new Promise(function ($return, $error) { var params, _result; var $Try_1_Post = function () { try { return $return(Promise.resolve()); } catch ($boundEx) { return $error($boundEx); } }; var $Try_1_Catch = function (error) { try { setResult({ status: 'error', respData: error }); return $Try_1_Post(); } catch ($boundEx) { return $error($boundEx); } }; try { params = typeof serviceConfig.params === 'function' ? serviceConfig.params() : serviceConfig.params; return Promise.resolve(serviceConfig.onRequest(params)).then(function ($await_2) { try { _result = $await_2; setResult({ status: 'success', respData: _result }); return $Try_1_Post(); } catch ($boundEx) { return $Try_1_Catch($boundEx); } }, $Try_1_Catch); } catch (error) { $Try_1_Catch(error); } }); }; fbaHooks.useEffectCustomAsync(onRequest, []); var onReload = useMemoizedFn(function () { setResult({ status: 'loading' }); void onRequest(); }); var onRefresh = useMemoizedFn(function () { setAgainRefresh(true); onRequest().finally(function () { setAgainRefresh(false); }); }); useImperativeHandle(ref, function () { return { onRefresh: onRefresh, onReload: onReload }; }); if (result.status === 'error') { var _result$respData; if (errorRender) { return errorRender(result.respData); } return /*#__PURE__*/jsx(Page, { fullIndex: 0, style: { backgroundColor: '#fff' }, children: /*#__PURE__*/jsx(Result, { status: "error", title: '数据获取异常', subTitle: ((_result$respData = result.respData) === null || _result$respData === void 0 ? void 0 : _result$respData.message) || '数据请求异常', extra: [/*#__PURE__*/jsx(Button, { type: "primary", onClick: onReload, children: "\u91CD\u65B0\u83B7\u53D6" }, "console")] }) }); } if (result.status === 'loading' && !isAsync) { return /*#__PURE__*/jsx(Page, _objectSpread2(_objectSpread2({ loading: true }, otherProps), {}, { children: /*#__PURE__*/jsx(Fragment, {}) })); } return /*#__PURE__*/jsxs(PageWrapperCtxProvider, { value: { onReload: onReload, onRefresh: onRefresh }, children: [againRefresh ? /*#__PURE__*/jsx(Loader, { spinning: true, style: { backgroundColor: 'transparent' } }) : null, /*#__PURE__*/jsx(PageContent$1, _objectSpread2({ loading: result.status === 'loading', respData: result.respData }, otherProps))] }); }); var usePageWrapper = function usePageWrapper() { var ctx = usePageWrapperCtx(); return ctx; }; var AntdAppWrapper = functi