@nokecy/qc-ui 1.0.59 → 1.0.61
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 +45 -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 +109 -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 +412 -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 +109 -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 +404 -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
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
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); }
|
|
1
2
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
3
|
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."); }
|
|
3
4
|
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); }
|
|
@@ -8,48 +9,66 @@ import { Alert, Button, message, Modal, Upload } from 'antd';
|
|
|
8
9
|
import { InboxOutlined, ImportOutlined } from '@ant-design/icons';
|
|
9
10
|
import React from 'react';
|
|
10
11
|
import { useBoolean } from 'ahooks';
|
|
12
|
+
/**
|
|
13
|
+
* 默认的下载 Blob 实现
|
|
14
|
+
*/
|
|
15
|
+
var defaultDownloadBlob = function defaultDownloadBlob(url, filename) {
|
|
16
|
+
var link = document.createElement('a');
|
|
17
|
+
link.href = url;
|
|
18
|
+
link.download = filename;
|
|
19
|
+
link.click();
|
|
20
|
+
};
|
|
11
21
|
|
|
12
22
|
/**
|
|
13
23
|
* 通用导入弹出框
|
|
14
|
-
* @param props
|
|
15
|
-
* @returns
|
|
16
24
|
*/
|
|
17
25
|
var ImportModal = function ImportModal(props) {
|
|
18
26
|
var onAfterSubmit = props.onAfterSubmit,
|
|
19
|
-
title = props.title,
|
|
27
|
+
_props$title = props.title,
|
|
28
|
+
title = _props$title === void 0 ? '数据' : _props$title,
|
|
20
29
|
downUrl = props.downUrl,
|
|
21
30
|
uploadUrl = props.uploadUrl,
|
|
22
31
|
children = props.children,
|
|
23
32
|
id = props.id,
|
|
24
|
-
downloadBlob = props.downloadBlob,
|
|
25
|
-
|
|
33
|
+
_props$downloadBlob = props.downloadBlob,
|
|
34
|
+
downloadBlob = _props$downloadBlob === void 0 ? defaultDownloadBlob : _props$downloadBlob,
|
|
35
|
+
serverUrl = props.serverUrl,
|
|
36
|
+
buttonProps = props.buttonProps;
|
|
26
37
|
var _useBoolean = useBoolean(false),
|
|
27
38
|
_useBoolean2 = _slicedToArray(_useBoolean, 2),
|
|
28
39
|
visible = _useBoolean2[0],
|
|
29
40
|
_useBoolean2$ = _useBoolean2[1],
|
|
30
41
|
setTrue = _useBoolean2$.setTrue,
|
|
31
42
|
setFalse = _useBoolean2$.setFalse;
|
|
32
|
-
|
|
43
|
+
|
|
44
|
+
// 构建上传地址
|
|
45
|
+
var getUploadUrl = function getUploadUrl() {
|
|
46
|
+
var baseUrl = serverUrl ? serverUrl() : '';
|
|
47
|
+
var url = "".concat(baseUrl).concat(uploadUrl);
|
|
48
|
+
return id && id.length > 0 ? "".concat(url, "?id=").concat(id) : url;
|
|
49
|
+
};
|
|
50
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Button, _extends({
|
|
33
51
|
icon: /*#__PURE__*/React.createElement(ImportOutlined, null),
|
|
34
52
|
onClick: setTrue
|
|
35
|
-
}, children ||
|
|
53
|
+
}, buttonProps), children || '导入'), /*#__PURE__*/React.createElement(Modal, {
|
|
36
54
|
title: "\u6279\u91CF\u5BFC\u5165".concat(title),
|
|
37
55
|
open: visible,
|
|
38
56
|
onCancel: setFalse,
|
|
57
|
+
footer: null,
|
|
39
58
|
destroyOnClose: true
|
|
40
|
-
}, /*#__PURE__*/React.createElement(Alert, {
|
|
59
|
+
}, downUrl && /*#__PURE__*/React.createElement(Alert, {
|
|
41
60
|
message: /*#__PURE__*/React.createElement("span", null, "\u70B9\u51FB\u4E0B\u8F7D", ' ', /*#__PURE__*/React.createElement("a", {
|
|
42
61
|
onClick: function onClick() {
|
|
43
62
|
downloadBlob(downUrl, "\u6279\u91CF\u4E0A\u4F20".concat(title, "\u6A21\u7248.xlsx"));
|
|
44
63
|
}
|
|
45
64
|
}, "\u6A21\u7248")),
|
|
46
|
-
type:
|
|
65
|
+
type: "info"
|
|
47
66
|
}), /*#__PURE__*/React.createElement(Upload.Dragger, {
|
|
48
67
|
style: {
|
|
49
68
|
marginTop: 10
|
|
50
69
|
},
|
|
51
70
|
multiple: false,
|
|
52
|
-
action:
|
|
71
|
+
action: getUploadUrl(),
|
|
53
72
|
onChange: function onChange(info) {
|
|
54
73
|
if (info.file.status === 'done') {
|
|
55
74
|
message.success('导入成功');
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -15,4 +15,12 @@ import ToolBar from "./toolBar";
|
|
|
15
15
|
import ImportModal from "./importModal";
|
|
16
16
|
import FullScreenAlert from "./fullScreenAlert";
|
|
17
17
|
import ConfirmPro from "./ConfirmPro";
|
|
18
|
-
|
|
18
|
+
import { GeneratedListPage } from "./generatedListPage";
|
|
19
|
+
import { StandardFormDialog, withStandardForm, FieldCreators, createSelectField, createCascaderField } from "./standardFormDialog";
|
|
20
|
+
import DeleteConfirm from "./deleteConfirm";
|
|
21
|
+
export { AgGridColumn, AgGridPlus, ArrayTable, ArrayTableIndex, Card, Dashboard, DialogSelect, DraggableModal, Editable, ExtensibleGrid, flattenTreeDeep, FormDesigner, FormProContext, FormProLayout, GridPlusContext, ImportModal, QueryBuilder, ToolBar, FullScreenAlert, ConfirmPro, GeneratedListPage, StandardFormDialog, withStandardForm, FieldCreators, createSelectField, createCascaderField, DeleteConfirm };
|
|
22
|
+
export type * from "./generatedListPage";
|
|
23
|
+
export type * from "./standardFormDialog";
|
|
24
|
+
export type * from "./deleteConfirm";
|
|
25
|
+
export type * from "./importModal";
|
|
26
|
+
export type * from "./fullScreenAlert";
|
package/dist/esm/index.js
CHANGED
|
@@ -15,4 +15,9 @@ import ToolBar from "./toolBar";
|
|
|
15
15
|
import ImportModal from "./importModal";
|
|
16
16
|
import FullScreenAlert from "./fullScreenAlert";
|
|
17
17
|
import ConfirmPro from "./ConfirmPro";
|
|
18
|
-
|
|
18
|
+
import { GeneratedListPage } from "./generatedListPage";
|
|
19
|
+
import { StandardFormDialog, withStandardForm, FieldCreators, createSelectField, createCascaderField } from "./standardFormDialog";
|
|
20
|
+
import DeleteConfirm from "./deleteConfirm";
|
|
21
|
+
export { AgGridColumn, AgGridPlus, ArrayTable, ArrayTableIndex, Card, Dashboard, DialogSelect, DraggableModal, Editable, ExtensibleGrid, flattenTreeDeep, FormDesigner, FormProContext, FormProLayout, GridPlusContext, ImportModal, QueryBuilder, ToolBar, FullScreenAlert, ConfirmPro, GeneratedListPage, StandardFormDialog, withStandardForm, FieldCreators, createSelectField, createCascaderField, DeleteConfirm };
|
|
22
|
+
|
|
23
|
+
// 导出类型定义
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 表单验证工具函数
|
|
3
|
+
*/
|
|
4
|
+
export declare const ValidationRules: {
|
|
5
|
+
/**
|
|
6
|
+
* 必填验证
|
|
7
|
+
*/
|
|
8
|
+
required: (message?: string) => {
|
|
9
|
+
required: boolean;
|
|
10
|
+
message: string;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* 邮箱验证
|
|
14
|
+
*/
|
|
15
|
+
email: (message?: string) => {
|
|
16
|
+
format: string;
|
|
17
|
+
message: string;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* 手机号验证
|
|
21
|
+
*/
|
|
22
|
+
phone: (message?: string) => {
|
|
23
|
+
pattern: RegExp;
|
|
24
|
+
message: string;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* 长度验证
|
|
28
|
+
*/
|
|
29
|
+
length: (min: number, max?: number, message?: string) => {
|
|
30
|
+
min: number;
|
|
31
|
+
max: number;
|
|
32
|
+
message: string;
|
|
33
|
+
} | {
|
|
34
|
+
min: number;
|
|
35
|
+
message: string;
|
|
36
|
+
max?: undefined;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* 数字范围验证
|
|
40
|
+
*/
|
|
41
|
+
range: (min: number, max?: number, message?: string) => {
|
|
42
|
+
minimum: number;
|
|
43
|
+
maximum: number;
|
|
44
|
+
message: string;
|
|
45
|
+
} | {
|
|
46
|
+
minimum: number;
|
|
47
|
+
message: string;
|
|
48
|
+
maximum?: undefined;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* 正则表达式验证
|
|
52
|
+
*/
|
|
53
|
+
pattern: (pattern: RegExp, message: string) => {
|
|
54
|
+
pattern: RegExp;
|
|
55
|
+
message: string;
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* 身份证号验证
|
|
59
|
+
*/
|
|
60
|
+
idCard: (message?: string) => {
|
|
61
|
+
pattern: RegExp;
|
|
62
|
+
message: string;
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* URL验证
|
|
66
|
+
*/
|
|
67
|
+
url: (message?: string) => {
|
|
68
|
+
format: string;
|
|
69
|
+
message: string;
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* 整数验证
|
|
73
|
+
*/
|
|
74
|
+
integer: (message?: string) => {
|
|
75
|
+
pattern: RegExp;
|
|
76
|
+
message: string;
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* 正整数验证
|
|
80
|
+
*/
|
|
81
|
+
positiveInteger: (message?: string) => {
|
|
82
|
+
pattern: RegExp;
|
|
83
|
+
message: string;
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* 非负整数验证
|
|
87
|
+
*/
|
|
88
|
+
nonNegativeInteger: (message?: string) => {
|
|
89
|
+
pattern: RegExp;
|
|
90
|
+
message: string;
|
|
91
|
+
};
|
|
92
|
+
/**
|
|
93
|
+
* 小数验证
|
|
94
|
+
*/
|
|
95
|
+
decimal: (precision?: number, message?: string) => {
|
|
96
|
+
pattern: RegExp;
|
|
97
|
+
message: string;
|
|
98
|
+
};
|
|
99
|
+
};
|
|
100
|
+
export declare const combineValidation: (...rules: any[]) => any[];
|
|
101
|
+
export declare const conditionalValidation: (condition: (form: any) => boolean, rules: any[]) => (form: any) => any[];
|
|
102
|
+
export declare const CommonValidations: {
|
|
103
|
+
/**
|
|
104
|
+
* 编码字段(必填,长度限制,字母数字)
|
|
105
|
+
*/
|
|
106
|
+
code: (maxLength?: number) => any[];
|
|
107
|
+
/**
|
|
108
|
+
* 名称字段(必填,长度限制)
|
|
109
|
+
*/
|
|
110
|
+
name: (maxLength?: number) => any[];
|
|
111
|
+
/**
|
|
112
|
+
* 手机号字段(必填,格式验证)
|
|
113
|
+
*/
|
|
114
|
+
requiredPhone: () => any[];
|
|
115
|
+
/**
|
|
116
|
+
* 邮箱字段(必填,格式验证)
|
|
117
|
+
*/
|
|
118
|
+
requiredEmail: () => any[];
|
|
119
|
+
/**
|
|
120
|
+
* 备注字段(可选,长度限制)
|
|
121
|
+
*/
|
|
122
|
+
remark: (maxLength?: number) => ({
|
|
123
|
+
min: number;
|
|
124
|
+
max: number;
|
|
125
|
+
message: string;
|
|
126
|
+
} | {
|
|
127
|
+
min: number;
|
|
128
|
+
message: string;
|
|
129
|
+
max?: undefined;
|
|
130
|
+
})[];
|
|
131
|
+
/**
|
|
132
|
+
* 金额字段(必填,非负数,两位小数)
|
|
133
|
+
*/
|
|
134
|
+
amount: () => any[];
|
|
135
|
+
/**
|
|
136
|
+
* 数量字段(必填,正整数)
|
|
137
|
+
*/
|
|
138
|
+
quantity: () => any[];
|
|
139
|
+
};
|
|
140
|
+
/**
|
|
141
|
+
* 表单字段增强工具
|
|
142
|
+
* 为FieldCreators添加验证功能
|
|
143
|
+
*/
|
|
144
|
+
export declare const enhanceFieldWithValidation: (field: any, validations: any[]) => any;
|
|
145
|
+
/**
|
|
146
|
+
* 批量添加验证的工具函数
|
|
147
|
+
*/
|
|
148
|
+
export declare const addValidationToFields: (fields: Record<string, any>, validationMap: Record<string, any[]>) => {
|
|
149
|
+
[x: string]: any;
|
|
150
|
+
};
|
|
@@ -0,0 +1,223 @@
|
|
|
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 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; }
|
|
3
|
+
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; }
|
|
4
|
+
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; }
|
|
5
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
6
|
+
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); }
|
|
7
|
+
/**
|
|
8
|
+
* 表单验证工具函数
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
// 常用验证规则
|
|
12
|
+
export var ValidationRules = {
|
|
13
|
+
/**
|
|
14
|
+
* 必填验证
|
|
15
|
+
*/
|
|
16
|
+
required: function required(message) {
|
|
17
|
+
return {
|
|
18
|
+
required: true,
|
|
19
|
+
message: message || '此字段为必填项'
|
|
20
|
+
};
|
|
21
|
+
},
|
|
22
|
+
/**
|
|
23
|
+
* 邮箱验证
|
|
24
|
+
*/
|
|
25
|
+
email: function email(message) {
|
|
26
|
+
return {
|
|
27
|
+
format: 'email',
|
|
28
|
+
message: message || '请输入有效的邮箱地址'
|
|
29
|
+
};
|
|
30
|
+
},
|
|
31
|
+
/**
|
|
32
|
+
* 手机号验证
|
|
33
|
+
*/
|
|
34
|
+
phone: function phone(message) {
|
|
35
|
+
return {
|
|
36
|
+
pattern: /^1[3-9]\d{9}$/,
|
|
37
|
+
message: message || '请输入有效的手机号码'
|
|
38
|
+
};
|
|
39
|
+
},
|
|
40
|
+
/**
|
|
41
|
+
* 长度验证
|
|
42
|
+
*/
|
|
43
|
+
length: function length(min, max, message) {
|
|
44
|
+
if (max) {
|
|
45
|
+
return {
|
|
46
|
+
min: min,
|
|
47
|
+
max: max,
|
|
48
|
+
message: message || "\u957F\u5EA6\u5FC5\u987B\u5728".concat(min, "-").concat(max, "\u4E2A\u5B57\u7B26\u4E4B\u95F4")
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
min: min,
|
|
53
|
+
message: message || "\u957F\u5EA6\u4E0D\u80FD\u5C11\u4E8E".concat(min, "\u4E2A\u5B57\u7B26")
|
|
54
|
+
};
|
|
55
|
+
},
|
|
56
|
+
/**
|
|
57
|
+
* 数字范围验证
|
|
58
|
+
*/
|
|
59
|
+
range: function range(min, max, message) {
|
|
60
|
+
if (max !== undefined) {
|
|
61
|
+
return {
|
|
62
|
+
minimum: min,
|
|
63
|
+
maximum: max,
|
|
64
|
+
message: message || "\u503C\u5FC5\u987B\u5728".concat(min, "-").concat(max, "\u4E4B\u95F4")
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
return {
|
|
68
|
+
minimum: min,
|
|
69
|
+
message: message || "\u503C\u4E0D\u80FD\u5C0F\u4E8E".concat(min)
|
|
70
|
+
};
|
|
71
|
+
},
|
|
72
|
+
/**
|
|
73
|
+
* 正则表达式验证
|
|
74
|
+
*/
|
|
75
|
+
pattern: function pattern(_pattern, message) {
|
|
76
|
+
return {
|
|
77
|
+
pattern: _pattern,
|
|
78
|
+
message: message
|
|
79
|
+
};
|
|
80
|
+
},
|
|
81
|
+
/**
|
|
82
|
+
* 身份证号验证
|
|
83
|
+
*/
|
|
84
|
+
idCard: function idCard(message) {
|
|
85
|
+
return {
|
|
86
|
+
pattern: /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/,
|
|
87
|
+
message: message || '请输入有效的身份证号码'
|
|
88
|
+
};
|
|
89
|
+
},
|
|
90
|
+
/**
|
|
91
|
+
* URL验证
|
|
92
|
+
*/
|
|
93
|
+
url: function url(message) {
|
|
94
|
+
return {
|
|
95
|
+
format: 'url',
|
|
96
|
+
message: message || '请输入有效的URL地址'
|
|
97
|
+
};
|
|
98
|
+
},
|
|
99
|
+
/**
|
|
100
|
+
* 整数验证
|
|
101
|
+
*/
|
|
102
|
+
integer: function integer(message) {
|
|
103
|
+
return {
|
|
104
|
+
pattern: /^-?\d+$/,
|
|
105
|
+
message: message || '请输入整数'
|
|
106
|
+
};
|
|
107
|
+
},
|
|
108
|
+
/**
|
|
109
|
+
* 正整数验证
|
|
110
|
+
*/
|
|
111
|
+
positiveInteger: function positiveInteger(message) {
|
|
112
|
+
return {
|
|
113
|
+
pattern: /^[1-9]\d*$/,
|
|
114
|
+
message: message || '请输入正整数'
|
|
115
|
+
};
|
|
116
|
+
},
|
|
117
|
+
/**
|
|
118
|
+
* 非负整数验证
|
|
119
|
+
*/
|
|
120
|
+
nonNegativeInteger: function nonNegativeInteger(message) {
|
|
121
|
+
return {
|
|
122
|
+
pattern: /^(0|[1-9]\d*)$/,
|
|
123
|
+
message: message || '请输入非负整数'
|
|
124
|
+
};
|
|
125
|
+
},
|
|
126
|
+
/**
|
|
127
|
+
* 小数验证
|
|
128
|
+
*/
|
|
129
|
+
decimal: function decimal(precision, message) {
|
|
130
|
+
var pattern = precision ? new RegExp("^-?\\d+(\\.\\d{1,".concat(precision, "})?$")) : /^-?\d+(\.\d+)?$/;
|
|
131
|
+
return {
|
|
132
|
+
pattern: pattern,
|
|
133
|
+
message: message || "\u8BF7\u8F93\u5165".concat(precision ? "\u6700\u591A".concat(precision, "\u4F4D\u5C0F\u6570\u7684") : '', "\u6570\u5B57")
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
// 组合验证规则的工具函数
|
|
139
|
+
export var combineValidation = function combineValidation() {
|
|
140
|
+
for (var _len = arguments.length, rules = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
141
|
+
rules[_key] = arguments[_key];
|
|
142
|
+
}
|
|
143
|
+
return rules.filter(Boolean);
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
// 条件验证工具
|
|
147
|
+
export var conditionalValidation = function conditionalValidation(condition, rules) {
|
|
148
|
+
return function (form) {
|
|
149
|
+
return condition(form) ? rules : [];
|
|
150
|
+
};
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
// 常用验证组合
|
|
154
|
+
export var CommonValidations = {
|
|
155
|
+
/**
|
|
156
|
+
* 编码字段(必填,长度限制,字母数字)
|
|
157
|
+
*/
|
|
158
|
+
code: function code() {
|
|
159
|
+
var maxLength = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 50;
|
|
160
|
+
return combineValidation(ValidationRules.required('编码不能为空'), ValidationRules.length(1, maxLength), ValidationRules.pattern(/^[a-zA-Z0-9_-]+$/, '编码只能包含字母、数字、下划线和短横线'));
|
|
161
|
+
},
|
|
162
|
+
/**
|
|
163
|
+
* 名称字段(必填,长度限制)
|
|
164
|
+
*/
|
|
165
|
+
name: function name() {
|
|
166
|
+
var maxLength = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 100;
|
|
167
|
+
return combineValidation(ValidationRules.required('名称不能为空'), ValidationRules.length(1, maxLength));
|
|
168
|
+
},
|
|
169
|
+
/**
|
|
170
|
+
* 手机号字段(必填,格式验证)
|
|
171
|
+
*/
|
|
172
|
+
requiredPhone: function requiredPhone() {
|
|
173
|
+
return combineValidation(ValidationRules.required('手机号不能为空'), ValidationRules.phone());
|
|
174
|
+
},
|
|
175
|
+
/**
|
|
176
|
+
* 邮箱字段(必填,格式验证)
|
|
177
|
+
*/
|
|
178
|
+
requiredEmail: function requiredEmail() {
|
|
179
|
+
return combineValidation(ValidationRules.required('邮箱不能为空'), ValidationRules.email());
|
|
180
|
+
},
|
|
181
|
+
/**
|
|
182
|
+
* 备注字段(可选,长度限制)
|
|
183
|
+
*/
|
|
184
|
+
remark: function remark() {
|
|
185
|
+
var maxLength = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 500;
|
|
186
|
+
return [ValidationRules.length(0, maxLength)];
|
|
187
|
+
},
|
|
188
|
+
/**
|
|
189
|
+
* 金额字段(必填,非负数,两位小数)
|
|
190
|
+
*/
|
|
191
|
+
amount: function amount() {
|
|
192
|
+
return combineValidation(ValidationRules.required('金额不能为空'), ValidationRules.decimal(2, '请输入有效的金额(最多2位小数)'), ValidationRules.range(0, undefined, '金额不能为负数'));
|
|
193
|
+
},
|
|
194
|
+
/**
|
|
195
|
+
* 数量字段(必填,正整数)
|
|
196
|
+
*/
|
|
197
|
+
quantity: function quantity() {
|
|
198
|
+
return combineValidation(ValidationRules.required('数量不能为空'), ValidationRules.positiveInteger('请输入正整数'));
|
|
199
|
+
}
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* 表单字段增强工具
|
|
204
|
+
* 为FieldCreators添加验证功能
|
|
205
|
+
*/
|
|
206
|
+
export var enhanceFieldWithValidation = function enhanceFieldWithValidation(field, validations) {
|
|
207
|
+
return _objectSpread(_objectSpread({}, field), {}, {
|
|
208
|
+
'x-validator': validations
|
|
209
|
+
});
|
|
210
|
+
};
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* 批量添加验证的工具函数
|
|
214
|
+
*/
|
|
215
|
+
export var addValidationToFields = function addValidationToFields(fields, validationMap) {
|
|
216
|
+
var result = _objectSpread({}, fields);
|
|
217
|
+
Object.keys(validationMap).forEach(function (fieldName) {
|
|
218
|
+
if (result[fieldName]) {
|
|
219
|
+
result[fieldName] = enhanceFieldWithValidation(result[fieldName], validationMap[fieldName]);
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
return result;
|
|
223
|
+
};
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FormDialog Portal 管理器
|
|
3
|
+
*
|
|
4
|
+
* 负责管理 FormDialog Portal 的生命周期,避免 Portal ID 冲突
|
|
5
|
+
* 和内存泄漏问题
|
|
6
|
+
*/
|
|
7
|
+
interface PortalRegistration {
|
|
8
|
+
id: string;
|
|
9
|
+
formId: string;
|
|
10
|
+
prefix: string;
|
|
11
|
+
createdAt: number;
|
|
12
|
+
lastAccessedAt: number;
|
|
13
|
+
isOpen: boolean;
|
|
14
|
+
}
|
|
15
|
+
declare class PortalManager {
|
|
16
|
+
private static instance;
|
|
17
|
+
private portals;
|
|
18
|
+
private cleanupTimer;
|
|
19
|
+
static getInstance(): PortalManager;
|
|
20
|
+
private constructor();
|
|
21
|
+
/**
|
|
22
|
+
* 生成唯一的 Portal ID
|
|
23
|
+
* @param prefix Portal ID 前缀
|
|
24
|
+
* @param formId 表单 ID
|
|
25
|
+
* @param entityId 实体 ID (可选)
|
|
26
|
+
* @returns 唯一的 Portal ID
|
|
27
|
+
*/
|
|
28
|
+
generatePortalId(prefix: string, formId: string, entityId?: string | number): string;
|
|
29
|
+
/**
|
|
30
|
+
* 注册 Portal
|
|
31
|
+
* @param id Portal ID
|
|
32
|
+
* @param formId 表单 ID
|
|
33
|
+
* @param prefix Portal 前缀
|
|
34
|
+
*/
|
|
35
|
+
register(id: string, formId: string, prefix: string): void;
|
|
36
|
+
/**
|
|
37
|
+
* 更新 Portal 访问时间
|
|
38
|
+
* @param id Portal ID
|
|
39
|
+
*/
|
|
40
|
+
updateAccess(id: string): void;
|
|
41
|
+
/**
|
|
42
|
+
* 标记 Portal 为关闭状态
|
|
43
|
+
* @param id Portal ID
|
|
44
|
+
*/
|
|
45
|
+
markAsClosed(id: string): void;
|
|
46
|
+
/**
|
|
47
|
+
* 取消注册 Portal
|
|
48
|
+
* @param id Portal ID
|
|
49
|
+
*/
|
|
50
|
+
unregister(id: string): void;
|
|
51
|
+
/**
|
|
52
|
+
* 检查 Portal 是否存在
|
|
53
|
+
* @param id Portal ID
|
|
54
|
+
*/
|
|
55
|
+
exists(id: string): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* 获取 Portal 信息
|
|
58
|
+
* @param id Portal ID
|
|
59
|
+
*/
|
|
60
|
+
getPortal(id: string): PortalRegistration | undefined;
|
|
61
|
+
/**
|
|
62
|
+
* 获取所有 Portal 列表
|
|
63
|
+
*/
|
|
64
|
+
getAllPortals(): PortalRegistration[];
|
|
65
|
+
/**
|
|
66
|
+
* 清理过期的 Portal
|
|
67
|
+
* 清理规则:
|
|
68
|
+
* 1. 已关闭且超过 5 分钟未访问
|
|
69
|
+
* 2. 创建超过 30 分钟的 Portal
|
|
70
|
+
*/
|
|
71
|
+
cleanup(): void;
|
|
72
|
+
/**
|
|
73
|
+
* 启动定期清理定时器
|
|
74
|
+
*/
|
|
75
|
+
private startCleanupTimer;
|
|
76
|
+
/**
|
|
77
|
+
* 停止清理定时器
|
|
78
|
+
*/
|
|
79
|
+
stopCleanupTimer(): void;
|
|
80
|
+
/**
|
|
81
|
+
* 清空所有 Portal
|
|
82
|
+
*/
|
|
83
|
+
clear(): void;
|
|
84
|
+
/**
|
|
85
|
+
* 获取统计信息
|
|
86
|
+
*/
|
|
87
|
+
getStats(): {
|
|
88
|
+
total: number;
|
|
89
|
+
open: number;
|
|
90
|
+
closed: number;
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
export declare const portalManager: PortalManager;
|
|
94
|
+
export default portalManager;
|