@nokecy/qc-ui 1.0.61 → 1.0.63
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/generatedListPage/GeneratedListPage.js +28 -20
- package/dist/cjs/generatedListPage/OptionsColumn.js +4 -4
- package/dist/cjs/generatedListPage/PerformanceMonitor.d.ts +1 -1
- package/dist/cjs/generatedListPage/PerformanceMonitor.js +12 -10
- package/dist/cjs/generatedListPage/usePermissionCheck.d.ts +2 -2
- package/dist/cjs/generatedListPage/usePermissionCheck.js +7 -7
- package/dist/cjs/standardFormDialog/StandardFormDialog.js +5 -2
- package/dist/esm/generatedListPage/GeneratedListPage.js +28 -20
- package/dist/esm/generatedListPage/OptionsColumn.js +4 -4
- package/dist/esm/generatedListPage/PerformanceMonitor.d.ts +1 -1
- package/dist/esm/generatedListPage/PerformanceMonitor.js +1 -1
- package/dist/esm/generatedListPage/usePermissionCheck.d.ts +2 -2
- package/dist/esm/generatedListPage/usePermissionCheck.js +7 -7
- package/dist/esm/standardFormDialog/StandardFormDialog.js +6 -3
- package/dist/umd/qc-ui.min.js +1 -1
- package/package.json +1 -1
|
@@ -125,11 +125,16 @@ var GeneratedListPage = function GeneratedListPage(config) {
|
|
|
125
125
|
clearCache = _useRequestManager.clearCache;
|
|
126
126
|
|
|
127
127
|
// 刷新函数
|
|
128
|
-
var onRefresh = (0, _react.useCallback)(
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
128
|
+
var onRefresh = (0, _react.useCallback)(function () {
|
|
129
|
+
if (externalOnRefresh) {
|
|
130
|
+
externalOnRefresh();
|
|
131
|
+
} else {
|
|
132
|
+
var _gridRef$current;
|
|
133
|
+
// 清除缓存以确保获取最新数据
|
|
134
|
+
clearCache();
|
|
135
|
+
// 立即刷新表格
|
|
136
|
+
(_gridRef$current = gridRef.current) === null || _gridRef$current === void 0 || _gridRef$current.onRefresh();
|
|
137
|
+
}
|
|
133
138
|
}, [externalOnRefresh, clearCache]);
|
|
134
139
|
|
|
135
140
|
// 操作列组件
|
|
@@ -251,8 +256,11 @@ var GeneratedListPage = function GeneratedListPage(config) {
|
|
|
251
256
|
while (1) switch (_context2.prev = _context2.next) {
|
|
252
257
|
case 0:
|
|
253
258
|
setError(null);
|
|
254
|
-
|
|
255
|
-
|
|
259
|
+
|
|
260
|
+
// 每次查询前清除缓存,确保获取最新数据
|
|
261
|
+
clearCache();
|
|
262
|
+
_context2.prev = 2;
|
|
263
|
+
_context2.next = 5;
|
|
256
264
|
return managedRequest(params, /*#__PURE__*/function () {
|
|
257
265
|
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(requestParams, signal) {
|
|
258
266
|
var treeData, flatData, filteredData, filterText, apiParams, data, items, _treeData, _flatData, _filteredData, _filterText;
|
|
@@ -337,13 +345,13 @@ var GeneratedListPage = function GeneratedListPage(config) {
|
|
|
337
345
|
return _ref2.apply(this, arguments);
|
|
338
346
|
};
|
|
339
347
|
}());
|
|
340
|
-
case
|
|
348
|
+
case 5:
|
|
341
349
|
return _context2.abrupt("return", _context2.sent);
|
|
342
|
-
case
|
|
343
|
-
_context2.prev =
|
|
344
|
-
_context2.t0 = _context2["catch"](
|
|
350
|
+
case 8:
|
|
351
|
+
_context2.prev = 8;
|
|
352
|
+
_context2.t0 = _context2["catch"](2);
|
|
345
353
|
if (!(retryCount < 3 && (_context2.t0.code === 'NETWORK_ERROR' || _context2.t0.code === 'TIMEOUT'))) {
|
|
346
|
-
_context2.next =
|
|
354
|
+
_context2.next = 16;
|
|
347
355
|
break;
|
|
348
356
|
}
|
|
349
357
|
console.warn("\u8BF7\u6C42\u5931\u8D25\uFF0C\u6B63\u5728\u91CD\u8BD5 (".concat(retryCount + 1, "/3):"), _context2.t0);
|
|
@@ -352,13 +360,13 @@ var GeneratedListPage = function GeneratedListPage(config) {
|
|
|
352
360
|
});
|
|
353
361
|
|
|
354
362
|
// 指数退避策略重试
|
|
355
|
-
_context2.next =
|
|
363
|
+
_context2.next = 15;
|
|
356
364
|
return new Promise(function (resolve) {
|
|
357
365
|
return setTimeout(resolve, Math.pow(2, retryCount) * 1000);
|
|
358
366
|
});
|
|
359
|
-
case 14:
|
|
360
|
-
return _context2.abrupt("return", handleRequest(params));
|
|
361
367
|
case 15:
|
|
368
|
+
return _context2.abrupt("return", handleRequest(params));
|
|
369
|
+
case 16:
|
|
362
370
|
errorMessage = "\u83B7\u53D6".concat(title, "\u6570\u636E\u5931\u8D25: ").concat(_context2.t0.message || '未知错误');
|
|
363
371
|
console.error(errorMessage, _context2.t0);
|
|
364
372
|
recordError();
|
|
@@ -368,15 +376,15 @@ var GeneratedListPage = function GeneratedListPage(config) {
|
|
|
368
376
|
data: [],
|
|
369
377
|
total: 0
|
|
370
378
|
});
|
|
371
|
-
case
|
|
372
|
-
_context2.prev =
|
|
379
|
+
case 21:
|
|
380
|
+
_context2.prev = 21;
|
|
373
381
|
setRetryCount(0);
|
|
374
|
-
return _context2.finish(
|
|
375
|
-
case
|
|
382
|
+
return _context2.finish(21);
|
|
383
|
+
case 24:
|
|
376
384
|
case "end":
|
|
377
385
|
return _context2.stop();
|
|
378
386
|
}
|
|
379
|
-
}, _callee2, null, [[
|
|
387
|
+
}, _callee2, null, [[2, 8, 21, 24]]);
|
|
380
388
|
}));
|
|
381
389
|
return function (_x) {
|
|
382
390
|
return _ref.apply(this, arguments);
|
|
@@ -77,11 +77,11 @@ var OptionsColumn = function OptionsColumn(props) {
|
|
|
77
77
|
|
|
78
78
|
// 显示条件判断 - 优化后的权限检查
|
|
79
79
|
var showEditButton = (0, _react.useMemo)(function () {
|
|
80
|
-
return (formDialog === null || formDialog === void 0 ? void 0 : formDialog.component) && permissions.update && canUpdate;
|
|
81
|
-
}, [formDialog === null || formDialog === void 0 ? void 0 : formDialog.component, permissions.update, canUpdate]);
|
|
80
|
+
return (formDialog === null || formDialog === void 0 ? void 0 : formDialog.component) && (permissions === null || permissions === void 0 ? void 0 : permissions.update) && canUpdate;
|
|
81
|
+
}, [formDialog === null || formDialog === void 0 ? void 0 : formDialog.component, permissions === null || permissions === void 0 ? void 0 : permissions.update, canUpdate]);
|
|
82
82
|
var showDeleteButton = (0, _react.useMemo)(function () {
|
|
83
|
-
return deleteApi && permissions.delete && canDelete;
|
|
84
|
-
}, [deleteApi, permissions.delete, canDelete]);
|
|
83
|
+
return deleteApi && (permissions === null || permissions === void 0 ? void 0 : permissions.delete) && canDelete;
|
|
84
|
+
}, [deleteApi, permissions === null || permissions === void 0 ? void 0 : permissions.delete, canDelete]);
|
|
85
85
|
|
|
86
86
|
// 如果没有任何可操作的按钮,不渲染
|
|
87
87
|
if (!showEditButton && !showDeleteButton) {
|
|
@@ -5,7 +5,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.usePerformanceMonitor = exports.PerformanceDevTools = void 0;
|
|
8
|
-
var _react = require("react");
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
10
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
9
11
|
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; }
|
|
10
12
|
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); } }
|
|
11
13
|
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); }); }; }
|
|
@@ -216,7 +218,7 @@ var PerformanceDevTools = exports.PerformanceDevTools = function PerformanceDevT
|
|
|
216
218
|
if (value <= thresholds[1]) return '#faad14';
|
|
217
219
|
return '#f5222d';
|
|
218
220
|
};
|
|
219
|
-
return /*#__PURE__*/
|
|
221
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
220
222
|
style: {
|
|
221
223
|
position: 'fixed',
|
|
222
224
|
bottom: 20,
|
|
@@ -233,33 +235,33 @@ var PerformanceDevTools = exports.PerformanceDevTools = function PerformanceDevT
|
|
|
233
235
|
},
|
|
234
236
|
onClick: handleShowReport,
|
|
235
237
|
title: "\u70B9\u51FB\u67E5\u770B\u8BE6\u7EC6\u6027\u80FD\u62A5\u544A"
|
|
236
|
-
}, /*#__PURE__*/
|
|
238
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
237
239
|
style: {
|
|
238
240
|
marginBottom: 4,
|
|
239
241
|
fontWeight: 'bold'
|
|
240
242
|
}
|
|
241
|
-
}, "\uD83D\uDCCA ", componentName), /*#__PURE__*/
|
|
243
|
+
}, "\uD83D\uDCCA ", componentName), /*#__PURE__*/_react.default.createElement("div", {
|
|
242
244
|
style: {
|
|
243
245
|
display: 'flex',
|
|
244
246
|
gap: 8
|
|
245
247
|
}
|
|
246
|
-
}, /*#__PURE__*/
|
|
248
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
247
249
|
style: {
|
|
248
250
|
color: getPerformanceColor(metrics.renderTime, [16, 50])
|
|
249
251
|
}
|
|
250
|
-
}, "R: ", metrics.renderTime, "ms"), /*#__PURE__*/
|
|
252
|
+
}, "R: ", metrics.renderTime, "ms"), /*#__PURE__*/_react.default.createElement("span", {
|
|
251
253
|
style: {
|
|
252
254
|
color: getPerformanceColor(metrics.mountTime, [100, 300])
|
|
253
255
|
}
|
|
254
|
-
}, "M: ", metrics.mountTime, "ms"), metrics.apiResponseTime && /*#__PURE__*/
|
|
256
|
+
}, "M: ", metrics.mountTime, "ms"), metrics.apiResponseTime && /*#__PURE__*/_react.default.createElement("span", {
|
|
255
257
|
style: {
|
|
256
258
|
color: getPerformanceColor(metrics.apiResponseTime, [300, 1000])
|
|
257
259
|
}
|
|
258
|
-
}, "API: ", metrics.apiResponseTime, "ms"), /*#__PURE__*/
|
|
260
|
+
}, "API: ", metrics.apiResponseTime, "ms"), /*#__PURE__*/_react.default.createElement("span", {
|
|
259
261
|
style: {
|
|
260
262
|
color: metrics.errorCount === 0 ? '#52c41a' : '#f5222d'
|
|
261
263
|
}
|
|
262
|
-
}, "E: ", metrics.errorCount)), showDetails && /*#__PURE__*/
|
|
264
|
+
}, "E: ", metrics.errorCount)), showDetails && /*#__PURE__*/_react.default.createElement("div", {
|
|
263
265
|
style: {
|
|
264
266
|
marginTop: 8,
|
|
265
267
|
padding: 8,
|
|
@@ -267,7 +269,7 @@ var PerformanceDevTools = exports.PerformanceDevTools = function PerformanceDevT
|
|
|
267
269
|
borderRadius: 4,
|
|
268
270
|
fontSize: 11
|
|
269
271
|
}
|
|
270
|
-
}, /*#__PURE__*/
|
|
272
|
+
}, /*#__PURE__*/_react.default.createElement("div", null, "\u66F4\u65B0\u6B21\u6570: ", metrics.updateCount), metrics.memoryUsage && /*#__PURE__*/_react.default.createElement("div", null, "\u5185\u5B58: ", metrics.memoryUsage.toFixed(1), "MB"), /*#__PURE__*/_react.default.createElement("div", {
|
|
271
273
|
style: {
|
|
272
274
|
fontSize: 10,
|
|
273
275
|
opacity: 0.7,
|
|
@@ -27,11 +27,11 @@ interface PermissionCheckResult {
|
|
|
27
27
|
}
|
|
28
28
|
/**
|
|
29
29
|
* 权限检查 Hook
|
|
30
|
-
* @param permissions
|
|
30
|
+
* @param permissions 权限配置对象(可选)
|
|
31
31
|
* @param access 可选的 access 对象(如果不传入,默认全部允许)
|
|
32
32
|
* @returns 权限检查结果
|
|
33
33
|
*/
|
|
34
|
-
export declare function usePermissionCheck(permissions
|
|
34
|
+
export declare function usePermissionCheck(permissions?: PermissionConfig, access?: Record<string, boolean>): PermissionCheckResult;
|
|
35
35
|
/**
|
|
36
36
|
* 权限检查工具类
|
|
37
37
|
* 用于非 Hook 场景下的权限检查
|
|
@@ -20,7 +20,7 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
|
|
|
20
20
|
*/
|
|
21
21
|
/**
|
|
22
22
|
* 权限检查 Hook
|
|
23
|
-
* @param permissions
|
|
23
|
+
* @param permissions 权限配置对象(可选)
|
|
24
24
|
* @param access 可选的 access 对象(如果不传入,默认全部允许)
|
|
25
25
|
* @returns 权限检查结果
|
|
26
26
|
*/
|
|
@@ -62,12 +62,12 @@ function usePermissionCheck(permissions, access) {
|
|
|
62
62
|
});
|
|
63
63
|
};
|
|
64
64
|
return {
|
|
65
|
-
canView: hasPermission(permissions.view),
|
|
66
|
-
canCreate: hasPermission(permissions.create),
|
|
67
|
-
canUpdate: hasPermission(permissions.update),
|
|
68
|
-
canDelete: hasPermission(permissions.delete),
|
|
69
|
-
canImport: hasPermission(permissions.import),
|
|
70
|
-
canExport: hasPermission(permissions.export),
|
|
65
|
+
canView: hasPermission(permissions === null || permissions === void 0 ? void 0 : permissions.view),
|
|
66
|
+
canCreate: hasPermission(permissions === null || permissions === void 0 ? void 0 : permissions.create),
|
|
67
|
+
canUpdate: hasPermission(permissions === null || permissions === void 0 ? void 0 : permissions.update),
|
|
68
|
+
canDelete: hasPermission(permissions === null || permissions === void 0 ? void 0 : permissions.delete),
|
|
69
|
+
canImport: hasPermission(permissions === null || permissions === void 0 ? void 0 : permissions.import),
|
|
70
|
+
canExport: hasPermission(permissions === null || permissions === void 0 ? void 0 : permissions.export),
|
|
71
71
|
hasPermission: hasPermission,
|
|
72
72
|
hasAllPermissions: hasAllPermissions,
|
|
73
73
|
hasAnyPermission: hasAnyPermission
|
|
@@ -39,14 +39,17 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
39
39
|
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; }
|
|
40
40
|
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; } }
|
|
41
41
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
42
|
-
// 创建默认的 SchemaField
|
|
42
|
+
// 创建默认的 SchemaField,包含基本组件和装饰器
|
|
43
43
|
var SchemaFieldComponents = (0, _react2.createSchemaField)({
|
|
44
44
|
components: {
|
|
45
45
|
Input: _antdV.Input,
|
|
46
46
|
Select: _antdV.Select,
|
|
47
47
|
DatePicker: _antdV.DatePicker,
|
|
48
48
|
NumberPicker: _antdV.NumberPicker,
|
|
49
|
-
Switch: _antdV.Switch
|
|
49
|
+
Switch: _antdV.Switch,
|
|
50
|
+
FormItem: _antdV.FormItem,
|
|
51
|
+
FormLayout: _antdV.FormLayout,
|
|
52
|
+
FormGrid: _antdV.FormGrid
|
|
50
53
|
}
|
|
51
54
|
});
|
|
52
55
|
|
|
@@ -115,11 +115,16 @@ var GeneratedListPage = function GeneratedListPage(config) {
|
|
|
115
115
|
clearCache = _useRequestManager.clearCache;
|
|
116
116
|
|
|
117
117
|
// 刷新函数
|
|
118
|
-
var onRefresh = useCallback(
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
118
|
+
var onRefresh = useCallback(function () {
|
|
119
|
+
if (externalOnRefresh) {
|
|
120
|
+
externalOnRefresh();
|
|
121
|
+
} else {
|
|
122
|
+
var _gridRef$current;
|
|
123
|
+
// 清除缓存以确保获取最新数据
|
|
124
|
+
clearCache();
|
|
125
|
+
// 立即刷新表格
|
|
126
|
+
(_gridRef$current = gridRef.current) === null || _gridRef$current === void 0 || _gridRef$current.onRefresh();
|
|
127
|
+
}
|
|
123
128
|
}, [externalOnRefresh, clearCache]);
|
|
124
129
|
|
|
125
130
|
// 操作列组件
|
|
@@ -241,8 +246,11 @@ var GeneratedListPage = function GeneratedListPage(config) {
|
|
|
241
246
|
while (1) switch (_context2.prev = _context2.next) {
|
|
242
247
|
case 0:
|
|
243
248
|
setError(null);
|
|
244
|
-
|
|
245
|
-
|
|
249
|
+
|
|
250
|
+
// 每次查询前清除缓存,确保获取最新数据
|
|
251
|
+
clearCache();
|
|
252
|
+
_context2.prev = 2;
|
|
253
|
+
_context2.next = 5;
|
|
246
254
|
return managedRequest(params, /*#__PURE__*/function () {
|
|
247
255
|
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(requestParams, signal) {
|
|
248
256
|
var treeData, flatData, filteredData, filterText, apiParams, data, items, _treeData, _flatData, _filteredData, _filterText;
|
|
@@ -327,13 +335,13 @@ var GeneratedListPage = function GeneratedListPage(config) {
|
|
|
327
335
|
return _ref2.apply(this, arguments);
|
|
328
336
|
};
|
|
329
337
|
}());
|
|
330
|
-
case
|
|
338
|
+
case 5:
|
|
331
339
|
return _context2.abrupt("return", _context2.sent);
|
|
332
|
-
case
|
|
333
|
-
_context2.prev =
|
|
334
|
-
_context2.t0 = _context2["catch"](
|
|
340
|
+
case 8:
|
|
341
|
+
_context2.prev = 8;
|
|
342
|
+
_context2.t0 = _context2["catch"](2);
|
|
335
343
|
if (!(retryCount < 3 && (_context2.t0.code === 'NETWORK_ERROR' || _context2.t0.code === 'TIMEOUT'))) {
|
|
336
|
-
_context2.next =
|
|
344
|
+
_context2.next = 16;
|
|
337
345
|
break;
|
|
338
346
|
}
|
|
339
347
|
console.warn("\u8BF7\u6C42\u5931\u8D25\uFF0C\u6B63\u5728\u91CD\u8BD5 (".concat(retryCount + 1, "/3):"), _context2.t0);
|
|
@@ -342,13 +350,13 @@ var GeneratedListPage = function GeneratedListPage(config) {
|
|
|
342
350
|
});
|
|
343
351
|
|
|
344
352
|
// 指数退避策略重试
|
|
345
|
-
_context2.next =
|
|
353
|
+
_context2.next = 15;
|
|
346
354
|
return new Promise(function (resolve) {
|
|
347
355
|
return setTimeout(resolve, Math.pow(2, retryCount) * 1000);
|
|
348
356
|
});
|
|
349
|
-
case 14:
|
|
350
|
-
return _context2.abrupt("return", handleRequest(params));
|
|
351
357
|
case 15:
|
|
358
|
+
return _context2.abrupt("return", handleRequest(params));
|
|
359
|
+
case 16:
|
|
352
360
|
errorMessage = "\u83B7\u53D6".concat(title, "\u6570\u636E\u5931\u8D25: ").concat(_context2.t0.message || '未知错误');
|
|
353
361
|
console.error(errorMessage, _context2.t0);
|
|
354
362
|
recordError();
|
|
@@ -358,15 +366,15 @@ var GeneratedListPage = function GeneratedListPage(config) {
|
|
|
358
366
|
data: [],
|
|
359
367
|
total: 0
|
|
360
368
|
});
|
|
361
|
-
case
|
|
362
|
-
_context2.prev =
|
|
369
|
+
case 21:
|
|
370
|
+
_context2.prev = 21;
|
|
363
371
|
setRetryCount(0);
|
|
364
|
-
return _context2.finish(
|
|
365
|
-
case
|
|
372
|
+
return _context2.finish(21);
|
|
373
|
+
case 24:
|
|
366
374
|
case "end":
|
|
367
375
|
return _context2.stop();
|
|
368
376
|
}
|
|
369
|
-
}, _callee2, null, [[
|
|
377
|
+
}, _callee2, null, [[2, 8, 21, 24]]);
|
|
370
378
|
}));
|
|
371
379
|
return function (_x) {
|
|
372
380
|
return _ref.apply(this, arguments);
|
|
@@ -69,11 +69,11 @@ var OptionsColumn = function OptionsColumn(props) {
|
|
|
69
69
|
|
|
70
70
|
// 显示条件判断 - 优化后的权限检查
|
|
71
71
|
var showEditButton = useMemo(function () {
|
|
72
|
-
return (formDialog === null || formDialog === void 0 ? void 0 : formDialog.component) && permissions.update && canUpdate;
|
|
73
|
-
}, [formDialog === null || formDialog === void 0 ? void 0 : formDialog.component, permissions.update, canUpdate]);
|
|
72
|
+
return (formDialog === null || formDialog === void 0 ? void 0 : formDialog.component) && (permissions === null || permissions === void 0 ? void 0 : permissions.update) && canUpdate;
|
|
73
|
+
}, [formDialog === null || formDialog === void 0 ? void 0 : formDialog.component, permissions === null || permissions === void 0 ? void 0 : permissions.update, canUpdate]);
|
|
74
74
|
var showDeleteButton = useMemo(function () {
|
|
75
|
-
return deleteApi && permissions.delete && canDelete;
|
|
76
|
-
}, [deleteApi, permissions.delete, canDelete]);
|
|
75
|
+
return deleteApi && (permissions === null || permissions === void 0 ? void 0 : permissions.delete) && canDelete;
|
|
76
|
+
}, [deleteApi, permissions === null || permissions === void 0 ? void 0 : permissions.delete, canDelete]);
|
|
77
77
|
|
|
78
78
|
// 如果没有任何可操作的按钮,不渲染
|
|
79
79
|
if (!showEditButton && !showDeleteButton) {
|
|
@@ -13,7 +13,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
13
13
|
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; }
|
|
14
14
|
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; } }
|
|
15
15
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
16
|
-
import { useEffect, useRef, useState } from 'react';
|
|
16
|
+
import React, { useEffect, useRef, useState } from 'react';
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
19
|
* 性能指标接口
|
|
@@ -27,11 +27,11 @@ interface PermissionCheckResult {
|
|
|
27
27
|
}
|
|
28
28
|
/**
|
|
29
29
|
* 权限检查 Hook
|
|
30
|
-
* @param permissions
|
|
30
|
+
* @param permissions 权限配置对象(可选)
|
|
31
31
|
* @param access 可选的 access 对象(如果不传入,默认全部允许)
|
|
32
32
|
* @returns 权限检查结果
|
|
33
33
|
*/
|
|
34
|
-
export declare function usePermissionCheck(permissions
|
|
34
|
+
export declare function usePermissionCheck(permissions?: PermissionConfig, access?: Record<string, boolean>): PermissionCheckResult;
|
|
35
35
|
/**
|
|
36
36
|
* 权限检查工具类
|
|
37
37
|
* 用于非 Hook 场景下的权限检查
|
|
@@ -15,7 +15,7 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
|
|
|
15
15
|
import { useMemo } from 'react';
|
|
16
16
|
/**
|
|
17
17
|
* 权限检查 Hook
|
|
18
|
-
* @param permissions
|
|
18
|
+
* @param permissions 权限配置对象(可选)
|
|
19
19
|
* @param access 可选的 access 对象(如果不传入,默认全部允许)
|
|
20
20
|
* @returns 权限检查结果
|
|
21
21
|
*/
|
|
@@ -57,12 +57,12 @@ export function usePermissionCheck(permissions, access) {
|
|
|
57
57
|
});
|
|
58
58
|
};
|
|
59
59
|
return {
|
|
60
|
-
canView: hasPermission(permissions.view),
|
|
61
|
-
canCreate: hasPermission(permissions.create),
|
|
62
|
-
canUpdate: hasPermission(permissions.update),
|
|
63
|
-
canDelete: hasPermission(permissions.delete),
|
|
64
|
-
canImport: hasPermission(permissions.import),
|
|
65
|
-
canExport: hasPermission(permissions.export),
|
|
60
|
+
canView: hasPermission(permissions === null || permissions === void 0 ? void 0 : permissions.view),
|
|
61
|
+
canCreate: hasPermission(permissions === null || permissions === void 0 ? void 0 : permissions.create),
|
|
62
|
+
canUpdate: hasPermission(permissions === null || permissions === void 0 ? void 0 : permissions.update),
|
|
63
|
+
canDelete: hasPermission(permissions === null || permissions === void 0 ? void 0 : permissions.delete),
|
|
64
|
+
canImport: hasPermission(permissions === null || permissions === void 0 ? void 0 : permissions.import),
|
|
65
|
+
canExport: hasPermission(permissions === null || permissions === void 0 ? void 0 : permissions.export),
|
|
66
66
|
hasPermission: hasPermission,
|
|
67
67
|
hasAllPermissions: hasAllPermissions,
|
|
68
68
|
hasAnyPermission: hasAnyPermission
|
|
@@ -25,20 +25,23 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
25
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
26
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
27
27
|
import React, { useState, useCallback, useMemo, useRef, useEffect } from 'react';
|
|
28
|
-
import { FormDialog, FormLayout, Input, Select, DatePicker, NumberPicker, Switch } from '@formily/antd-v5';
|
|
28
|
+
import { FormDialog, FormLayout, FormItem, FormGrid, Input, Select, DatePicker, NumberPicker, Switch } from '@formily/antd-v5';
|
|
29
29
|
import { onFormInit, onFormValidateFailed } from '@formily/core';
|
|
30
30
|
import { Button, message, Spin } from 'antd';
|
|
31
31
|
import portalManager from "./PortalManager";
|
|
32
32
|
import { createSchemaField } from '@formily/react';
|
|
33
33
|
|
|
34
|
-
// 创建默认的 SchemaField
|
|
34
|
+
// 创建默认的 SchemaField,包含基本组件和装饰器
|
|
35
35
|
var SchemaFieldComponents = createSchemaField({
|
|
36
36
|
components: {
|
|
37
37
|
Input: Input,
|
|
38
38
|
Select: Select,
|
|
39
39
|
DatePicker: DatePicker,
|
|
40
40
|
NumberPicker: NumberPicker,
|
|
41
|
-
Switch: Switch
|
|
41
|
+
Switch: Switch,
|
|
42
|
+
FormItem: FormItem,
|
|
43
|
+
FormLayout: FormLayout,
|
|
44
|
+
FormGrid: FormGrid
|
|
42
45
|
}
|
|
43
46
|
});
|
|
44
47
|
|