@nokecy/qc-ui 1.0.59 → 1.0.60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/deleteConfirm/index.d.ts +31 -0
- package/dist/cjs/deleteConfirm/index.js +64 -0
- package/dist/cjs/fullScreenAlert/index.d.ts +25 -4
- package/dist/cjs/fullScreenAlert/index.js +50 -17
- package/dist/cjs/generatedListPage/ConfigurableToolbar.d.ts +35 -0
- package/dist/cjs/generatedListPage/ConfigurableToolbar.js +179 -0
- package/dist/cjs/generatedListPage/GeneratedListPage.d.ts +8 -0
- package/dist/cjs/generatedListPage/GeneratedListPage.js +545 -0
- package/dist/cjs/generatedListPage/OptionsColumn.d.ts +9 -0
- package/dist/cjs/generatedListPage/OptionsColumn.js +135 -0
- package/dist/cjs/generatedListPage/PerformanceMonitor.d.ts +55 -0
- package/dist/cjs/generatedListPage/PerformanceMonitor.js +277 -0
- package/dist/cjs/generatedListPage/RequestManager.d.ts +97 -0
- package/dist/cjs/generatedListPage/RequestManager.js +404 -0
- package/dist/cjs/generatedListPage/_utils/AccessWrapper.d.ts +16 -0
- package/dist/cjs/generatedListPage/_utils/AccessWrapper.js +26 -0
- package/dist/cjs/generatedListPage/_utils/defaultHandlers.d.ts +22 -0
- package/dist/cjs/generatedListPage/_utils/defaultHandlers.js +127 -0
- package/dist/cjs/generatedListPage/index.d.ts +20 -0
- package/dist/cjs/generatedListPage/index.js +92 -0
- package/dist/cjs/generatedListPage/types.d.ts +221 -0
- package/dist/cjs/generatedListPage/types.js +5 -0
- package/dist/cjs/generatedListPage/usePermissionCheck.d.ts +66 -0
- package/dist/cjs/generatedListPage/usePermissionCheck.js +150 -0
- package/dist/cjs/generatedListPage/useRequestManager.d.ts +35 -0
- package/dist/cjs/generatedListPage/useRequestManager.js +121 -0
- package/dist/cjs/importModal/index.d.ts +21 -3
- package/dist/cjs/importModal/index.js +30 -10
- package/dist/cjs/index.d.ts +9 -1
- package/dist/cjs/index.js +21 -0
- package/dist/cjs/standardFormDialog/FormValidation.d.ts +150 -0
- package/dist/cjs/standardFormDialog/FormValidation.js +229 -0
- package/dist/cjs/standardFormDialog/PortalManager.d.ts +94 -0
- package/dist/cjs/standardFormDialog/PortalManager.js +259 -0
- package/dist/cjs/standardFormDialog/StandardFormDialog.d.ts +10 -0
- package/dist/cjs/standardFormDialog/StandardFormDialog.js +516 -0
- package/dist/cjs/standardFormDialog/index.d.ts +7 -0
- package/dist/cjs/standardFormDialog/index.js +83 -0
- package/dist/cjs/standardFormDialog/types.d.ts +107 -0
- package/dist/cjs/standardFormDialog/types.js +5 -0
- package/dist/cjs/standardFormDialog/useStandardFormSchema.d.ts +68 -0
- package/dist/cjs/standardFormDialog/useStandardFormSchema.js +197 -0
- package/dist/cjs/standardFormDialog/withStandardForm.d.ts +193 -0
- package/dist/cjs/standardFormDialog/withStandardForm.js +388 -0
- package/dist/esm/deleteConfirm/index.d.ts +31 -0
- package/dist/esm/deleteConfirm/index.js +57 -0
- package/dist/esm/fullScreenAlert/index.d.ts +25 -4
- package/dist/esm/fullScreenAlert/index.js +50 -18
- package/dist/esm/generatedListPage/ConfigurableToolbar.d.ts +35 -0
- package/dist/esm/generatedListPage/ConfigurableToolbar.js +171 -0
- package/dist/esm/generatedListPage/GeneratedListPage.d.ts +8 -0
- package/dist/esm/generatedListPage/GeneratedListPage.js +535 -0
- package/dist/esm/generatedListPage/OptionsColumn.d.ts +9 -0
- package/dist/esm/generatedListPage/OptionsColumn.js +127 -0
- package/dist/esm/generatedListPage/PerformanceMonitor.d.ts +55 -0
- package/dist/esm/generatedListPage/PerformanceMonitor.js +272 -0
- package/dist/esm/generatedListPage/RequestManager.d.ts +97 -0
- package/dist/esm/generatedListPage/RequestManager.js +398 -0
- package/dist/esm/generatedListPage/_utils/AccessWrapper.d.ts +16 -0
- package/dist/esm/generatedListPage/_utils/AccessWrapper.js +20 -0
- package/dist/esm/generatedListPage/_utils/defaultHandlers.d.ts +22 -0
- package/dist/esm/generatedListPage/_utils/defaultHandlers.js +122 -0
- package/dist/esm/generatedListPage/index.d.ts +20 -0
- package/dist/esm/generatedListPage/index.js +26 -0
- package/dist/esm/generatedListPage/types.d.ts +221 -0
- package/dist/esm/generatedListPage/types.js +1 -0
- package/dist/esm/generatedListPage/usePermissionCheck.d.ts +66 -0
- package/dist/esm/generatedListPage/usePermissionCheck.js +145 -0
- package/dist/esm/generatedListPage/useRequestManager.d.ts +35 -0
- package/dist/esm/generatedListPage/useRequestManager.js +116 -0
- package/dist/esm/importModal/index.d.ts +21 -3
- package/dist/esm/importModal/index.js +29 -10
- package/dist/esm/index.d.ts +9 -1
- package/dist/esm/index.js +6 -1
- package/dist/esm/standardFormDialog/FormValidation.d.ts +150 -0
- package/dist/esm/standardFormDialog/FormValidation.js +223 -0
- package/dist/esm/standardFormDialog/PortalManager.d.ts +94 -0
- package/dist/esm/standardFormDialog/PortalManager.js +253 -0
- package/dist/esm/standardFormDialog/StandardFormDialog.d.ts +10 -0
- package/dist/esm/standardFormDialog/StandardFormDialog.js +508 -0
- package/dist/esm/standardFormDialog/index.d.ts +7 -0
- package/dist/esm/standardFormDialog/index.js +6 -0
- package/dist/esm/standardFormDialog/types.d.ts +107 -0
- package/dist/esm/standardFormDialog/types.js +1 -0
- package/dist/esm/standardFormDialog/useStandardFormSchema.d.ts +68 -0
- package/dist/esm/standardFormDialog/useStandardFormSchema.js +191 -0
- package/dist/esm/standardFormDialog/withStandardForm.d.ts +193 -0
- package/dist/esm/standardFormDialog/withStandardForm.js +382 -0
- package/dist/umd/qc-ui.min.js +1 -1
- package/package.json +1 -1
- package/dist/esm/ConfirmPro/index.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/_utils/boolSelect.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/_utils/customGroupCellRenderer.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/_utils/processColumnGroups.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/_utils/processFormColumnState.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/ag-gridPlus.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/context/gridContext.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/gridManager/index.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/index.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/interface.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/locale.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/queryForm/index.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/queryForm/queryForm.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/setting/diySetting/index.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/setting/index.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/settingItem/index.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/toolBar/index.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/toolBar/style.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/utils.d.ts.map +0 -1
- package/dist/esm/array-table/arrayAddBtn.d.ts.map +0 -1
- package/dist/esm/array-table/arrayBase.d.ts.map +0 -1
- package/dist/esm/array-table/index.d.ts.map +0 -1
- package/dist/esm/array-table/interface.d.ts.map +0 -1
- package/dist/esm/array-table/preview.d.ts.map +0 -1
- package/dist/esm/array-table/utils.d.ts.map +0 -1
- package/dist/esm/array-table-index/index.d.ts.map +0 -1
- package/dist/esm/card/index.d.ts.map +0 -1
- package/dist/esm/dashboard/dashboard/components/index.d.ts.map +0 -1
- package/dist/esm/dashboard/dashboard/components/modal/index.d.ts.map +0 -1
- package/dist/esm/dashboard/dashboard/components/toolbar/index.d.ts.map +0 -1
- package/dist/esm/dashboard/dashboard/components/toolbar/style/index.d.ts.map +0 -1
- package/dist/esm/dashboard/dashboard/index.d.ts.map +0 -1
- package/dist/esm/dashboard/dashboard/service.d.ts.map +0 -1
- package/dist/esm/dashboard/dashboard/utils.d.ts.map +0 -1
- package/dist/esm/dashboard/index.d.ts.map +0 -1
- package/dist/esm/dashboard/utils.d.ts.map +0 -1
- package/dist/esm/dashboard/widget/index.d.ts.map +0 -1
- package/dist/esm/dashboard/widget/selector/index.d.ts.map +0 -1
- package/dist/esm/dashboard/widget/utils.d.ts.map +0 -1
- package/dist/esm/dialogSelect/index.d.ts.map +0 -1
- package/dist/esm/draggableModal/index.d.ts.map +0 -1
- package/dist/esm/editable/index.d.ts.map +0 -1
- package/dist/esm/editable/style.d.ts.map +0 -1
- package/dist/esm/extensible-grid/index.d.ts.map +0 -1
- package/dist/esm/extensible-grid/interface.d.ts.map +0 -1
- package/dist/esm/formDesigner/FormDesigner.d.ts.map +0 -1
- package/dist/esm/formDesigner/ProCard/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/arrayTable/arrayTableSchema.d.ts.map +0 -1
- package/dist/esm/formDesigner/arrayTable/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/arrayTable/preview.d.ts.map +0 -1
- package/dist/esm/formDesigner/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/arrayTableIndex/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/arrayTableIndex/preview.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/card/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/card/preview.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty1/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty1/preview.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty10/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty10/preview.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty2/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty2/preview.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty3/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty3/preview.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty4/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty4/preview.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty5/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty5/preview.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty6/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty6/preview.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty7/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty7/preview.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty8/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty8/preview.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty9/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty9/preview.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/utils.d.ts.map +0 -1
- package/dist/esm/formDesigner/widgets/ActionsWidget.d.ts.map +0 -1
- package/dist/esm/formDesigner/widgets/LogoWidget.d.ts.map +0 -1
- package/dist/esm/formDesigner/widgets/PreviewWidget.d.ts.map +0 -1
- package/dist/esm/formDesigner/widgets/SchemaEditorWidget.d.ts.map +0 -1
- package/dist/esm/formDesigner/widgets/index.d.ts.map +0 -1
- package/dist/esm/formPro/context/formProContext.d.ts.map +0 -1
- package/dist/esm/formPro/formLayoutPro.d.ts.map +0 -1
- package/dist/esm/formPro/index.d.ts.map +0 -1
- package/dist/esm/fullScreenAlert/index.d.ts.map +0 -1
- package/dist/esm/importModal/index.d.ts.map +0 -1
- package/dist/esm/index.d.ts.map +0 -1
- package/dist/esm/queryBuilder/index.d.ts.map +0 -1
- package/dist/esm/toolBar/index.d.ts.map +0 -1
|
@@ -0,0 +1,508 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
3
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
4
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
5
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
6
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
7
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
8
|
+
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
9
|
+
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
10
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
11
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
12
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : 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; }; return _extends.apply(this, arguments); }
|
|
13
|
+
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
|
|
14
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
15
|
+
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
16
|
+
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; }
|
|
17
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).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; }
|
|
18
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
19
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
20
|
+
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 || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
21
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
22
|
+
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."); }
|
|
23
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
24
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
25
|
+
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 = !0, o = !1; 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 = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
26
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
27
|
+
import React, { useState, useCallback, useMemo, useRef, useEffect } from 'react';
|
|
28
|
+
import { FormDialog, FormLayout, Input, Select, DatePicker, NumberPicker, Switch } from '@formily/antd-v5';
|
|
29
|
+
import { onFormInit, onFormValidateFailed } from '@formily/core';
|
|
30
|
+
import { Button, message, Spin } from 'antd';
|
|
31
|
+
import portalManager from "./PortalManager";
|
|
32
|
+
import { createSchemaField } from '@formily/react';
|
|
33
|
+
|
|
34
|
+
// 创建默认的 SchemaField,只包含基本组件
|
|
35
|
+
var SchemaFieldComponents = createSchemaField({
|
|
36
|
+
components: {
|
|
37
|
+
Input: Input,
|
|
38
|
+
Select: Select,
|
|
39
|
+
DatePicker: DatePicker,
|
|
40
|
+
NumberPicker: NumberPicker,
|
|
41
|
+
Switch: Switch
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* 默认的 useFormSchema hook - 直接返回schema配置
|
|
47
|
+
*/
|
|
48
|
+
var defaultUseFormSchema = function defaultUseFormSchema(formId, config) {
|
|
49
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
50
|
+
return useMemo(function () {
|
|
51
|
+
return config;
|
|
52
|
+
}, [JSON.stringify(config)]);
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* 默认的 useSchemaField hook - 返回SchemaField组件
|
|
57
|
+
*/
|
|
58
|
+
var defaultUseSchemaField = function defaultUseSchemaField(config) {
|
|
59
|
+
return SchemaFieldComponents;
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* 标准化FormDialog组件
|
|
64
|
+
*
|
|
65
|
+
* 基于配置自动生成标准化的表单对话框,包含:
|
|
66
|
+
* - 统一的表单结构和布局
|
|
67
|
+
* - 自动的数据加载和提交逻辑
|
|
68
|
+
* - 标准化的错误处理
|
|
69
|
+
* - 可配置的API调用
|
|
70
|
+
* - 灵活的Schema支持
|
|
71
|
+
* - 性能优化和加载状态管理
|
|
72
|
+
*
|
|
73
|
+
* @param props 组件属性
|
|
74
|
+
*/
|
|
75
|
+
var StandardFormDialog = function StandardFormDialog(props) {
|
|
76
|
+
var schemaConfig = props.schemaConfig,
|
|
77
|
+
directFormId = props.formId,
|
|
78
|
+
directFormSchema = props.formSchema,
|
|
79
|
+
apiConfig = props.apiConfig,
|
|
80
|
+
_props$width = props.width,
|
|
81
|
+
width = _props$width === void 0 ? 800 : _props$width,
|
|
82
|
+
entityId = props.entityId,
|
|
83
|
+
_props$title = props.title,
|
|
84
|
+
title = _props$title === void 0 ? '表单' : _props$title,
|
|
85
|
+
_props$buttonProps = props.buttonProps,
|
|
86
|
+
buttonProps = _props$buttonProps === void 0 ? {
|
|
87
|
+
type: 'primary'
|
|
88
|
+
} : _props$buttonProps,
|
|
89
|
+
onAfterSubmit = props.onAfterSubmit,
|
|
90
|
+
children = props.children,
|
|
91
|
+
_props$portalIdPrefix = props.portalIdPrefix,
|
|
92
|
+
portalIdPrefix = _props$portalIdPrefix === void 0 ? 'Standard' : _props$portalIdPrefix,
|
|
93
|
+
customInitializer = props.customInitializer,
|
|
94
|
+
customSubmitHandler = props.customSubmitHandler,
|
|
95
|
+
_props$useUnifiedErro = props.useUnifiedErrorHandling,
|
|
96
|
+
useUnifiedErrorHandling = _props$useUnifiedErro === void 0 ? true : _props$useUnifiedErro,
|
|
97
|
+
_props$useFormSchema = props.useFormSchema,
|
|
98
|
+
useFormSchemaHook = _props$useFormSchema === void 0 ? defaultUseFormSchema : _props$useFormSchema,
|
|
99
|
+
_props$useSchemaField = props.useSchemaField,
|
|
100
|
+
useSchemaFieldHook = _props$useSchemaField === void 0 ? defaultUseSchemaField : _props$useSchemaField;
|
|
101
|
+
|
|
102
|
+
// 组件状态
|
|
103
|
+
var _useState = useState(false),
|
|
104
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
105
|
+
loading = _useState2[0],
|
|
106
|
+
setLoading = _useState2[1];
|
|
107
|
+
var _useState3 = useState(false),
|
|
108
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
109
|
+
submitting = _useState4[0],
|
|
110
|
+
setSubmitting = _useState4[1];
|
|
111
|
+
|
|
112
|
+
// 组件挂载状态追踪 - 防止内存泄漏
|
|
113
|
+
var isMountedRef = useRef(true);
|
|
114
|
+
var abortControllerRef = useRef();
|
|
115
|
+
|
|
116
|
+
// Portal ID 引用 - 在组件生命周期内保持稳定
|
|
117
|
+
var portalIdRef = useRef();
|
|
118
|
+
useEffect(function () {
|
|
119
|
+
isMountedRef.current = true;
|
|
120
|
+
return function () {
|
|
121
|
+
var _abortControllerRef$c;
|
|
122
|
+
isMountedRef.current = false;
|
|
123
|
+
// 清理未完成的请求
|
|
124
|
+
(_abortControllerRef$c = abortControllerRef.current) === null || _abortControllerRef$c === void 0 || _abortControllerRef$c.abort();
|
|
125
|
+
// 清理 Portal 注册
|
|
126
|
+
if (portalIdRef.current) {
|
|
127
|
+
portalManager.unregister(portalIdRef.current);
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
}, []);
|
|
131
|
+
|
|
132
|
+
// 确定Schema配置
|
|
133
|
+
var finalSchemaConfig = schemaConfig || _objectSpread({
|
|
134
|
+
formId: directFormId
|
|
135
|
+
}, directFormSchema);
|
|
136
|
+
var formId = finalSchemaConfig.formId,
|
|
137
|
+
formConfig = finalSchemaConfig.form,
|
|
138
|
+
schemaDefinition = finalSchemaConfig.schema;
|
|
139
|
+
|
|
140
|
+
// 使用Schema
|
|
141
|
+
var schema = useFormSchemaHook(formId, {
|
|
142
|
+
form: formConfig,
|
|
143
|
+
schema: schemaDefinition
|
|
144
|
+
});
|
|
145
|
+
var SchemaField = useSchemaFieldHook({});
|
|
146
|
+
|
|
147
|
+
// 生成唯一的 Portal ID (只生成一次)
|
|
148
|
+
if (!portalIdRef.current) {
|
|
149
|
+
portalIdRef.current = portalManager.generatePortalId(portalIdPrefix, formId, entityId);
|
|
150
|
+
// 注册 Portal
|
|
151
|
+
portalManager.register(portalIdRef.current, formId, portalIdPrefix);
|
|
152
|
+
}
|
|
153
|
+
var portalId = portalIdRef.current;
|
|
154
|
+
|
|
155
|
+
// 表单初始化回调
|
|
156
|
+
var initializeForm = useCallback( /*#__PURE__*/function () {
|
|
157
|
+
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(form) {
|
|
158
|
+
var controller, data, _error$response, errorMessage;
|
|
159
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
160
|
+
while (1) switch (_context.prev = _context.next) {
|
|
161
|
+
case 0:
|
|
162
|
+
if (!entityId) {
|
|
163
|
+
_context.next = 30;
|
|
164
|
+
break;
|
|
165
|
+
}
|
|
166
|
+
// 创建新的 AbortController
|
|
167
|
+
controller = new AbortController();
|
|
168
|
+
abortControllerRef.current = controller;
|
|
169
|
+
if (isMountedRef.current) {
|
|
170
|
+
_context.next = 5;
|
|
171
|
+
break;
|
|
172
|
+
}
|
|
173
|
+
return _context.abrupt("return");
|
|
174
|
+
case 5:
|
|
175
|
+
setLoading(true);
|
|
176
|
+
_context.prev = 6;
|
|
177
|
+
if (!customInitializer) {
|
|
178
|
+
_context.next = 12;
|
|
179
|
+
break;
|
|
180
|
+
}
|
|
181
|
+
_context.next = 10;
|
|
182
|
+
return customInitializer(form, entityId);
|
|
183
|
+
case 10:
|
|
184
|
+
_context.next = 20;
|
|
185
|
+
break;
|
|
186
|
+
case 12:
|
|
187
|
+
if (!apiConfig.get) {
|
|
188
|
+
_context.next = 19;
|
|
189
|
+
break;
|
|
190
|
+
}
|
|
191
|
+
_context.next = 15;
|
|
192
|
+
return apiConfig.get({
|
|
193
|
+
id: entityId
|
|
194
|
+
});
|
|
195
|
+
case 15:
|
|
196
|
+
data = _context.sent;
|
|
197
|
+
// 检查组件是否已卸载或请求是否已取消
|
|
198
|
+
if (!controller.signal.aborted && isMountedRef.current) {
|
|
199
|
+
form.setInitialValues(data);
|
|
200
|
+
}
|
|
201
|
+
_context.next = 20;
|
|
202
|
+
break;
|
|
203
|
+
case 19:
|
|
204
|
+
console.warn('编辑模式但未提供get API或自定义初始化函数');
|
|
205
|
+
case 20:
|
|
206
|
+
_context.next = 27;
|
|
207
|
+
break;
|
|
208
|
+
case 22:
|
|
209
|
+
_context.prev = 22;
|
|
210
|
+
_context.t0 = _context["catch"](6);
|
|
211
|
+
if (!controller.signal.aborted) {
|
|
212
|
+
_context.next = 26;
|
|
213
|
+
break;
|
|
214
|
+
}
|
|
215
|
+
return _context.abrupt("return");
|
|
216
|
+
case 26:
|
|
217
|
+
if (isMountedRef.current) {
|
|
218
|
+
console.error('加载数据失败:', _context.t0);
|
|
219
|
+
errorMessage = ((_error$response = _context.t0.response) === null || _error$response === void 0 || (_error$response = _error$response.data) === null || _error$response === void 0 || (_error$response = _error$response.error) === null || _error$response === void 0 ? void 0 : _error$response.message) || _context.t0.message || '加载数据失败';
|
|
220
|
+
message.error(errorMessage);
|
|
221
|
+
}
|
|
222
|
+
case 27:
|
|
223
|
+
_context.prev = 27;
|
|
224
|
+
// 只在组件仍挂载且请求未取消时更新状态
|
|
225
|
+
if (!controller.signal.aborted && isMountedRef.current) {
|
|
226
|
+
setLoading(false);
|
|
227
|
+
}
|
|
228
|
+
return _context.finish(27);
|
|
229
|
+
case 30:
|
|
230
|
+
case "end":
|
|
231
|
+
return _context.stop();
|
|
232
|
+
}
|
|
233
|
+
}, _callee, null, [[6, 22, 27, 30]]);
|
|
234
|
+
}));
|
|
235
|
+
return function (_x) {
|
|
236
|
+
return _ref.apply(this, arguments);
|
|
237
|
+
};
|
|
238
|
+
}(), [entityId, customInitializer, apiConfig.get]);
|
|
239
|
+
|
|
240
|
+
// 表单验证失败回调
|
|
241
|
+
var handleValidationFailed = useCallback(function (form) {
|
|
242
|
+
var errors = form.errors;
|
|
243
|
+
var errorFields = Object.keys(errors);
|
|
244
|
+
if (errorFields.length > 0) {
|
|
245
|
+
var fieldNames = errorFields.map(function (field) {
|
|
246
|
+
// 尝试获取字段的显示名称
|
|
247
|
+
var fieldSchema = form.getFieldState(field);
|
|
248
|
+
return (fieldSchema === null || fieldSchema === void 0 ? void 0 : fieldSchema.title) || field;
|
|
249
|
+
});
|
|
250
|
+
message.error("\u8BF7\u68C0\u67E5\u8868\u5355\u9519\u8BEF\uFF1A".concat(fieldNames.join(', ')));
|
|
251
|
+
}
|
|
252
|
+
}, []);
|
|
253
|
+
|
|
254
|
+
// 表单属性配置
|
|
255
|
+
var formProps = useMemo(function () {
|
|
256
|
+
return {
|
|
257
|
+
effects: function effects() {
|
|
258
|
+
onFormInit(initializeForm);
|
|
259
|
+
onFormValidateFailed(handleValidationFailed);
|
|
260
|
+
}
|
|
261
|
+
};
|
|
262
|
+
}, [initializeForm, handleValidationFailed]);
|
|
263
|
+
|
|
264
|
+
// 提交处理函数
|
|
265
|
+
var handleSubmit = useCallback( /*#__PURE__*/function () {
|
|
266
|
+
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(payload, next) {
|
|
267
|
+
var values, isEdit, _error$response2, errorMessage;
|
|
268
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
269
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
270
|
+
case 0:
|
|
271
|
+
if (isMountedRef.current) {
|
|
272
|
+
_context2.next = 2;
|
|
273
|
+
break;
|
|
274
|
+
}
|
|
275
|
+
return _context2.abrupt("return");
|
|
276
|
+
case 2:
|
|
277
|
+
setSubmitting(true);
|
|
278
|
+
_context2.prev = 3;
|
|
279
|
+
values = payload.values;
|
|
280
|
+
isEdit = !!values.id || !!entityId; // FormDialog已经在内部处理了验证,无需手动调用validate
|
|
281
|
+
// Formily的FormDialog.forConfirm会自动验证表单
|
|
282
|
+
if (!customSubmitHandler) {
|
|
283
|
+
_context2.next = 11;
|
|
284
|
+
break;
|
|
285
|
+
}
|
|
286
|
+
_context2.next = 9;
|
|
287
|
+
return customSubmitHandler(values, isEdit);
|
|
288
|
+
case 9:
|
|
289
|
+
_context2.next = 24;
|
|
290
|
+
break;
|
|
291
|
+
case 11:
|
|
292
|
+
if (!isEdit) {
|
|
293
|
+
_context2.next = 19;
|
|
294
|
+
break;
|
|
295
|
+
}
|
|
296
|
+
if (apiConfig.update) {
|
|
297
|
+
_context2.next = 14;
|
|
298
|
+
break;
|
|
299
|
+
}
|
|
300
|
+
throw new Error('更新API未配置');
|
|
301
|
+
case 14:
|
|
302
|
+
_context2.next = 16;
|
|
303
|
+
return apiConfig.update({
|
|
304
|
+
id: values.id || entityId
|
|
305
|
+
}, values);
|
|
306
|
+
case 16:
|
|
307
|
+
// 只在组件仍挂载时显示消息
|
|
308
|
+
if (isMountedRef.current) {
|
|
309
|
+
message.success('更新成功');
|
|
310
|
+
}
|
|
311
|
+
_context2.next = 24;
|
|
312
|
+
break;
|
|
313
|
+
case 19:
|
|
314
|
+
if (apiConfig.create) {
|
|
315
|
+
_context2.next = 21;
|
|
316
|
+
break;
|
|
317
|
+
}
|
|
318
|
+
throw new Error('创建API未配置');
|
|
319
|
+
case 21:
|
|
320
|
+
_context2.next = 23;
|
|
321
|
+
return apiConfig.create(values);
|
|
322
|
+
case 23:
|
|
323
|
+
// 只在组件仍挂载时显示消息
|
|
324
|
+
if (isMountedRef.current) {
|
|
325
|
+
message.success('创建成功');
|
|
326
|
+
}
|
|
327
|
+
case 24:
|
|
328
|
+
// 调用成功回调
|
|
329
|
+
if (isMountedRef.current && onAfterSubmit) {
|
|
330
|
+
onAfterSubmit();
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
// 关闭对话框
|
|
334
|
+
if (isMountedRef.current) {
|
|
335
|
+
// 标记 Portal 为已关闭
|
|
336
|
+
portalManager.markAsClosed(portalId);
|
|
337
|
+
next(payload);
|
|
338
|
+
}
|
|
339
|
+
_context2.next = 34;
|
|
340
|
+
break;
|
|
341
|
+
case 28:
|
|
342
|
+
_context2.prev = 28;
|
|
343
|
+
_context2.t0 = _context2["catch"](3);
|
|
344
|
+
if (isMountedRef.current) {
|
|
345
|
+
_context2.next = 32;
|
|
346
|
+
break;
|
|
347
|
+
}
|
|
348
|
+
return _context2.abrupt("return");
|
|
349
|
+
case 32:
|
|
350
|
+
console.error('提交失败:', _context2.t0);
|
|
351
|
+
if (useUnifiedErrorHandling) {
|
|
352
|
+
// 使用统一错误处理
|
|
353
|
+
errorMessage = ((_error$response2 = _context2.t0.response) === null || _error$response2 === void 0 || (_error$response2 = _error$response2.data) === null || _error$response2 === void 0 || (_error$response2 = _error$response2.error) === null || _error$response2 === void 0 ? void 0 : _error$response2.message) || _context2.t0.message || '操作失败';
|
|
354
|
+
message.error("\u64CD\u4F5C\u5931\u8D25\uFF1A".concat(errorMessage));
|
|
355
|
+
} else {
|
|
356
|
+
// 使用简单错误处理
|
|
357
|
+
message.error('操作失败:' + (_context2.t0.message || '未知错误'));
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
// 不调用 next,阻止对话框关闭
|
|
361
|
+
case 34:
|
|
362
|
+
_context2.prev = 34;
|
|
363
|
+
// 只在组件仍挂载时更新状态
|
|
364
|
+
if (isMountedRef.current) {
|
|
365
|
+
setSubmitting(false);
|
|
366
|
+
}
|
|
367
|
+
return _context2.finish(34);
|
|
368
|
+
case 37:
|
|
369
|
+
case "end":
|
|
370
|
+
return _context2.stop();
|
|
371
|
+
}
|
|
372
|
+
}, _callee2, null, [[3, 28, 34, 37]]);
|
|
373
|
+
}));
|
|
374
|
+
return function (_x2, _x3) {
|
|
375
|
+
return _ref2.apply(this, arguments);
|
|
376
|
+
};
|
|
377
|
+
}(), [entityId, customSubmitHandler, apiConfig, onAfterSubmit, useUnifiedErrorHandling]);
|
|
378
|
+
|
|
379
|
+
// 点击处理函数
|
|
380
|
+
var handleClick = useCallback(function () {
|
|
381
|
+
// 更新 Portal 访问时间
|
|
382
|
+
portalManager.updateAccess(portalId);
|
|
383
|
+
var formDialog = FormDialog({
|
|
384
|
+
title: title,
|
|
385
|
+
width: width,
|
|
386
|
+
okButtonProps: {
|
|
387
|
+
loading: submitting,
|
|
388
|
+
disabled: loading || submitting
|
|
389
|
+
},
|
|
390
|
+
cancelButtonProps: {
|
|
391
|
+
disabled: submitting
|
|
392
|
+
},
|
|
393
|
+
closable: !submitting,
|
|
394
|
+
maskClosable: !submitting
|
|
395
|
+
}, portalId, function () {
|
|
396
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
397
|
+
style: {
|
|
398
|
+
minHeight: 200,
|
|
399
|
+
position: 'relative'
|
|
400
|
+
}
|
|
401
|
+
}, loading && /*#__PURE__*/React.createElement("div", {
|
|
402
|
+
style: {
|
|
403
|
+
position: 'absolute',
|
|
404
|
+
top: 0,
|
|
405
|
+
left: 0,
|
|
406
|
+
right: 0,
|
|
407
|
+
bottom: 0,
|
|
408
|
+
background: 'rgba(255, 255, 255, 0.8)',
|
|
409
|
+
display: 'flex',
|
|
410
|
+
alignItems: 'center',
|
|
411
|
+
justifyContent: 'center',
|
|
412
|
+
zIndex: 1000
|
|
413
|
+
}
|
|
414
|
+
}, /*#__PURE__*/React.createElement(Spin, {
|
|
415
|
+
tip: "\u52A0\u8F7D\u6570\u636E\u4E2D..."
|
|
416
|
+
})), /*#__PURE__*/React.createElement(FormLayout, schema.form, /*#__PURE__*/React.createElement(SchemaField, {
|
|
417
|
+
schema: schema.schema
|
|
418
|
+
})));
|
|
419
|
+
});
|
|
420
|
+
formDialog.forConfirm(handleSubmit).open(formProps);
|
|
421
|
+
}, [title, width, portalId, schema, formProps, handleSubmit, loading, submitting]);
|
|
422
|
+
return /*#__PURE__*/React.createElement(FormDialog.Portal, {
|
|
423
|
+
id: portalId
|
|
424
|
+
}, /*#__PURE__*/React.createElement(Button, _extends({
|
|
425
|
+
onClick: handleClick
|
|
426
|
+
}, buttonProps), children));
|
|
427
|
+
};
|
|
428
|
+
|
|
429
|
+
/**
|
|
430
|
+
* 错误边界组件
|
|
431
|
+
*/
|
|
432
|
+
var StandardFormDialogErrorBoundary = /*#__PURE__*/function (_React$Component) {
|
|
433
|
+
_inherits(StandardFormDialogErrorBoundary, _React$Component);
|
|
434
|
+
var _super = _createSuper(StandardFormDialogErrorBoundary);
|
|
435
|
+
function StandardFormDialogErrorBoundary(props) {
|
|
436
|
+
var _this;
|
|
437
|
+
_classCallCheck(this, StandardFormDialogErrorBoundary);
|
|
438
|
+
_this = _super.call(this, props);
|
|
439
|
+
_this.state = {
|
|
440
|
+
hasError: false
|
|
441
|
+
};
|
|
442
|
+
return _this;
|
|
443
|
+
}
|
|
444
|
+
_createClass(StandardFormDialogErrorBoundary, [{
|
|
445
|
+
key: "componentDidCatch",
|
|
446
|
+
value: function componentDidCatch(error, errorInfo) {
|
|
447
|
+
console.error('StandardFormDialog Error:', error, errorInfo);
|
|
448
|
+
}
|
|
449
|
+
}, {
|
|
450
|
+
key: "render",
|
|
451
|
+
value: function render() {
|
|
452
|
+
var _this2 = this;
|
|
453
|
+
if (this.state.hasError) {
|
|
454
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
455
|
+
style: {
|
|
456
|
+
padding: 24,
|
|
457
|
+
textAlign: 'center'
|
|
458
|
+
}
|
|
459
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
460
|
+
style: {
|
|
461
|
+
marginBottom: 16
|
|
462
|
+
}
|
|
463
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
464
|
+
style: {
|
|
465
|
+
fontSize: '48px',
|
|
466
|
+
color: '#ccc'
|
|
467
|
+
}
|
|
468
|
+
}, "\u26A0")), /*#__PURE__*/React.createElement("div", {
|
|
469
|
+
style: {
|
|
470
|
+
marginBottom: 8,
|
|
471
|
+
fontWeight: 'bold'
|
|
472
|
+
}
|
|
473
|
+
}, "\u8868\u5355\u52A0\u8F7D\u5931\u8D25"), /*#__PURE__*/React.createElement("div", {
|
|
474
|
+
style: {
|
|
475
|
+
color: '#999',
|
|
476
|
+
marginBottom: 16
|
|
477
|
+
}
|
|
478
|
+
}, "\u8868\u5355\u7EC4\u4EF6\u53D1\u751F\u9519\u8BEF\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u6216\u8054\u7CFB\u6280\u672F\u652F\u6301\u3002"), /*#__PURE__*/React.createElement(Button, {
|
|
479
|
+
type: "primary",
|
|
480
|
+
onClick: function onClick() {
|
|
481
|
+
return _this2.setState({
|
|
482
|
+
hasError: false
|
|
483
|
+
});
|
|
484
|
+
}
|
|
485
|
+
}, "\u91CD\u8BD5"));
|
|
486
|
+
}
|
|
487
|
+
return this.props.children;
|
|
488
|
+
}
|
|
489
|
+
}], [{
|
|
490
|
+
key: "getDerivedStateFromError",
|
|
491
|
+
value: function getDerivedStateFromError(error) {
|
|
492
|
+
return {
|
|
493
|
+
hasError: true,
|
|
494
|
+
error: error
|
|
495
|
+
};
|
|
496
|
+
}
|
|
497
|
+
}]);
|
|
498
|
+
return StandardFormDialogErrorBoundary;
|
|
499
|
+
}(React.Component);
|
|
500
|
+
/**
|
|
501
|
+
* 带错误边界的StandardFormDialog组件
|
|
502
|
+
*/
|
|
503
|
+
var StandardFormDialogWithErrorBoundary = function StandardFormDialogWithErrorBoundary(props) {
|
|
504
|
+
return /*#__PURE__*/React.createElement(StandardFormDialogErrorBoundary, {
|
|
505
|
+
title: props.title
|
|
506
|
+
}, /*#__PURE__*/React.createElement(StandardFormDialog, props));
|
|
507
|
+
};
|
|
508
|
+
export default StandardFormDialogWithErrorBoundary;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { default } from './StandardFormDialog';
|
|
2
|
+
export { default as StandardFormDialog } from './StandardFormDialog';
|
|
3
|
+
export { withStandardForm, FieldCreators, createSelectField, createCascaderField } from './withStandardForm';
|
|
4
|
+
export type * from './types';
|
|
5
|
+
export * from './FormValidation';
|
|
6
|
+
export * from './useStandardFormSchema';
|
|
7
|
+
export { default as portalManager } from './PortalManager';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { default } from "./StandardFormDialog";
|
|
2
|
+
export { default as StandardFormDialog } from "./StandardFormDialog";
|
|
3
|
+
export { withStandardForm, FieldCreators, createSelectField, createCascaderField } from "./withStandardForm";
|
|
4
|
+
export * from "./FormValidation";
|
|
5
|
+
export * from "./useStandardFormSchema";
|
|
6
|
+
export { default as portalManager } from "./PortalManager";
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { ISchema } from '@formily/react';
|
|
3
|
+
import { ButtonProps } from 'antd';
|
|
4
|
+
/**
|
|
5
|
+
* API配置接口
|
|
6
|
+
*/
|
|
7
|
+
export interface FormApiConfig {
|
|
8
|
+
/** 获取单条记录的API */
|
|
9
|
+
get?: (params: {
|
|
10
|
+
id: string | number;
|
|
11
|
+
}) => Promise<any>;
|
|
12
|
+
/** 创建记录的API */
|
|
13
|
+
create: (values: any) => Promise<any>;
|
|
14
|
+
/** 更新记录的API */
|
|
15
|
+
update: (params: {
|
|
16
|
+
id: string | number;
|
|
17
|
+
}, values: any) => Promise<any>;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* 外部Schema配置接口
|
|
21
|
+
*/
|
|
22
|
+
export interface ExternalSchemaConfig {
|
|
23
|
+
/** 表单布局配置 */
|
|
24
|
+
form: Record<string, any>;
|
|
25
|
+
/** Schema定义 */
|
|
26
|
+
schema: ISchema;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Schema配置接口
|
|
30
|
+
*/
|
|
31
|
+
export interface FormSchemaConfig {
|
|
32
|
+
/** 表单ID */
|
|
33
|
+
formId: string;
|
|
34
|
+
/** 表单配置 */
|
|
35
|
+
form: Record<string, any>;
|
|
36
|
+
/** Schema定义 */
|
|
37
|
+
schema: ISchema;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* 标准化FormDialog配置接口
|
|
41
|
+
*/
|
|
42
|
+
export interface StandardFormDialogConfig {
|
|
43
|
+
/** Schema配置 */
|
|
44
|
+
schemaConfig: FormSchemaConfig;
|
|
45
|
+
/** API配置 */
|
|
46
|
+
apiConfig: FormApiConfig;
|
|
47
|
+
/** 对话框宽度 */
|
|
48
|
+
width?: number;
|
|
49
|
+
/** 实体ID(编辑时) */
|
|
50
|
+
entityId?: string | number;
|
|
51
|
+
/** 标题 */
|
|
52
|
+
title?: string;
|
|
53
|
+
/** 按钮属性 */
|
|
54
|
+
buttonProps?: ButtonProps;
|
|
55
|
+
/** 提交成功后的回调 */
|
|
56
|
+
onAfterSubmit?: () => void;
|
|
57
|
+
/** 子元素 */
|
|
58
|
+
children?: React.ReactNode;
|
|
59
|
+
/** 门户ID前缀 */
|
|
60
|
+
portalIdPrefix?: string;
|
|
61
|
+
/** 自定义初始化逻辑 */
|
|
62
|
+
customInitializer?: (form: any, entityId?: string | number) => Promise<void>;
|
|
63
|
+
/** 自定义提交逻辑 */
|
|
64
|
+
customSubmitHandler?: (values: any, isEdit: boolean) => Promise<void>;
|
|
65
|
+
/** 是否启用统一错误处理 */
|
|
66
|
+
useUnifiedErrorHandling?: boolean;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* withStandardForm配置接口
|
|
70
|
+
*/
|
|
71
|
+
export interface WithStandardFormConfig {
|
|
72
|
+
/** 表单ID */
|
|
73
|
+
formId: string;
|
|
74
|
+
/** 业务字段配置 - 当未提供externalSchema时必需 */
|
|
75
|
+
businessFields?: Record<string, any>;
|
|
76
|
+
/** 外部Schema配置 - 支持schema.ts文件导入 */
|
|
77
|
+
externalSchema?: ExternalSchemaConfig;
|
|
78
|
+
/** API配置 */
|
|
79
|
+
apiConfig: {
|
|
80
|
+
get?: (params: any) => Promise<any>;
|
|
81
|
+
create: (data: any) => Promise<any>;
|
|
82
|
+
update: (params: any, data: any) => Promise<any>;
|
|
83
|
+
};
|
|
84
|
+
/** 默认对话框配置 */
|
|
85
|
+
defaultDialogConfig?: {
|
|
86
|
+
width?: number;
|
|
87
|
+
title?: string;
|
|
88
|
+
};
|
|
89
|
+
/** 自定义表单处理器 */
|
|
90
|
+
customHandlers?: {
|
|
91
|
+
initializer?: (form: any, entityId?: string | number) => Promise<void>;
|
|
92
|
+
submitHandler?: (values: any, isEdit: boolean) => Promise<void>;
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* StandardFormDialog组件属性接口
|
|
97
|
+
*/
|
|
98
|
+
export interface StandardFormDialogProps extends Omit<StandardFormDialogConfig, 'schemaConfig'> {
|
|
99
|
+
/** Schema配置 */
|
|
100
|
+
schemaConfig?: FormSchemaConfig;
|
|
101
|
+
/** 或者直接传入formId和schema */
|
|
102
|
+
formId?: string;
|
|
103
|
+
formSchema?: {
|
|
104
|
+
form: Record<string, any>;
|
|
105
|
+
schema: ISchema;
|
|
106
|
+
};
|
|
107
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|