ztxkui 4.2.23-2 → 4.2.23-21

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.
Files changed (86) hide show
  1. package/dist/DemoCom/PrintContainerDemo.js +223 -70
  2. package/dist/TableDemo/data.js +1 -1
  3. package/dist/UI/Basic/index.d.ts +2 -0
  4. package/dist/UI/Basic/index.js +18 -0
  5. package/dist/UI/Form/index.d.ts +3 -0
  6. package/dist/UI/Form/index.js +187 -0
  7. package/dist/UI/Modal/hooks.d.ts +15 -0
  8. package/dist/UI/Modal/hooks.js +172 -0
  9. package/dist/UI/Modal/index.d.ts +3 -0
  10. package/dist/UI/Modal/index.js +46 -0
  11. package/dist/UI/Table/DefaultTable.d.ts +2 -0
  12. package/dist/UI/Table/DefaultTable.js +49 -0
  13. package/dist/UI/Table/EditTable.d.ts +2 -0
  14. package/dist/UI/Table/EditTable.js +259 -0
  15. package/dist/UI/Table/data.d.ts +10 -0
  16. package/dist/UI/Table/data.js +14 -0
  17. package/dist/UI/Table/index.d.ts +2 -0
  18. package/dist/UI/Table/index.js +5 -0
  19. package/dist/UI/index.d.ts +2 -0
  20. package/dist/UI/index.js +26 -0
  21. package/dist/components/EnhanceSelect/index.js +4 -0
  22. package/dist/components/Input/input.js +38 -13
  23. package/dist/components/PrintContainer/print-container.js +70 -30
  24. package/dist/components/ProForm/hooks.d.ts +23 -0
  25. package/dist/components/ProForm/hooks.js +209 -0
  26. package/dist/components/ProForm/index.d.ts +6 -0
  27. package/dist/components/ProForm/index.js +87 -0
  28. package/dist/components/ProForm/interface.d.ts +116 -0
  29. package/dist/components/ProForm/interface.js +1 -0
  30. package/dist/components/ProForm/items.d.ts +5 -0
  31. package/dist/components/ProForm/items.js +136 -0
  32. package/dist/components/ProForm/search-drawer.d.ts +11 -0
  33. package/dist/components/ProForm/search-drawer.js +76 -0
  34. package/dist/components/ProForm/setting.d.ts +5 -0
  35. package/dist/components/ProForm/setting.js +13 -0
  36. package/dist/components/ProFormList/index.d.ts +12 -0
  37. package/dist/components/ProFormList/index.js +34 -0
  38. package/dist/components/ProModal/ModalForm.d.ts +8 -0
  39. package/dist/components/ProModal/ModalForm.js +32 -0
  40. package/dist/components/ProModal/ModalTable.d.ts +8 -0
  41. package/dist/components/ProModal/ModalTable.js +32 -0
  42. package/dist/components/ProModal/hooks.d.ts +33 -0
  43. package/dist/components/ProModal/hooks.js +193 -0
  44. package/dist/components/ProModal/index.d.ts +17 -0
  45. package/dist/components/ProModal/index.js +80 -0
  46. package/dist/components/ProModal/interface.d.ts +47 -0
  47. package/dist/components/ProModal/interface.js +1 -0
  48. package/dist/components/ProTable/hooks.d.ts +28 -0
  49. package/dist/components/ProTable/hooks.js +272 -0
  50. package/dist/components/ProTable/index.d.ts +8 -0
  51. package/dist/components/ProTable/index.js +76 -0
  52. package/dist/components/ProTable/interface.d.ts +51 -0
  53. package/dist/components/ProTable/interface.js +1 -0
  54. package/dist/components/Table/hooks/useColumns.d.ts +4 -4
  55. package/dist/components/Table/hooks/useColumns.js +227 -169
  56. package/dist/components/Table/hooks/useInnerPagination.js +1 -0
  57. package/dist/components/Table/table-adddel-column.d.ts +2 -1
  58. package/dist/components/Table/table-adddel-column.js +5 -3
  59. package/dist/components/Table/table-enhance-cell.d.ts +6 -3
  60. package/dist/components/Table/table-enhance-cell.js +119 -110
  61. package/dist/components/Table/table-enhance-row.d.ts +3 -4
  62. package/dist/components/Table/table-enhance-row.js +6 -10
  63. package/dist/components/Table/table-resizable-title.d.ts +4 -5
  64. package/dist/components/Table/table-resizable-title.js +31 -6
  65. package/dist/components/Table/table.d.ts +2 -0
  66. package/dist/components/Table/table.js +154 -150
  67. package/dist/components/Table/utils/shallowEqual.d.ts +2 -0
  68. package/dist/components/Table/utils/shallowEqual.js +34 -0
  69. package/dist/components/Table/utils/validate.js +0 -3
  70. package/dist/components/Tabs/DraggableTabNode.d.ts +7 -0
  71. package/dist/components/Tabs/DraggableTabNode.js +33 -0
  72. package/dist/components/Tabs/hooks.d.ts +3 -0
  73. package/dist/components/Tabs/hooks.js +59 -0
  74. package/dist/components/Tabs/tabs.d.ts +3 -0
  75. package/dist/components/Tabs/tabs.js +8 -2
  76. package/dist/components/business/Footer/index.d.ts +1 -0
  77. package/dist/components/business/Footer/index.js +18 -4
  78. package/dist/components/business/Signatures/components/QunjSeal.js +3 -2
  79. package/dist/components/business/Signatures/index.js +13 -14
  80. package/dist/constants.d.ts +1 -1
  81. package/dist/constants.js +1 -1
  82. package/dist/index.css +327 -0
  83. package/dist/index.css.map +1 -1
  84. package/dist/index.d.ts +4 -0
  85. package/dist/index.js +9 -1
  86. package/package.json +4 -4
@@ -0,0 +1,136 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
23
+ import React, { memo } from 'react';
24
+ import { Form } from 'antd';
25
+ import classNames from 'classnames';
26
+ function Items(props) {
27
+ var items = props.items, itemClassName = props.itemClassName;
28
+ return (React.createElement(React.Fragment, null, items.map(function (item, index) {
29
+ var _a;
30
+ var render = item.render, isRequire = item.isRequire, isDisplay = item.isDisplay, isChangeable = item.isChangeable, dependencies = item.dependencies, shouldUpdate = item.shouldUpdate, disabled = item.disabled, noBorder = item.noBorder, width = item.width, shouldUpdateNames = item.shouldUpdateNames, shouldUpdateClear = item.shouldUpdateClear, resetItem = __rest(item, ["render", "isRequire", "isDisplay", "isChangeable", "dependencies", "shouldUpdate", "disabled", "noBorder", "width", "shouldUpdateNames", "shouldUpdateClear"]);
31
+ // 处理配置相关逻辑 配置优先代码
32
+ // 传入了是否必填配置
33
+ if (isRequire !== undefined) {
34
+ var isRequireBoolean = !!isRequire;
35
+ var rules = Array.isArray(resetItem.rules) ? resetItem.rules : [];
36
+ // 是否之前就传入了必填非必填逻辑
37
+ var requiredIndex = rules.findIndex(function (rule) {
38
+ if (typeof rule === 'function') {
39
+ return false;
40
+ }
41
+ return (rule === null || rule === void 0 ? void 0 : rule.required) === true || (rule === null || rule === void 0 ? void 0 : rule.required) === false;
42
+ });
43
+ // 如果找到了 直接替换之前的规则
44
+ if (requiredIndex !== -1) {
45
+ var message = (_a = rules[requiredIndex]) === null || _a === void 0 ? void 0 : _a.message;
46
+ rules.splice(requiredIndex, 1, {
47
+ required: isRequireBoolean,
48
+ message: message,
49
+ });
50
+ }
51
+ else {
52
+ rules.unshift({
53
+ required: isRequireBoolean,
54
+ message: resetItem.label + " \u672A\u586B!",
55
+ });
56
+ }
57
+ resetItem.rules = rules;
58
+ }
59
+ // 传入了是否展示配置
60
+ if (isDisplay !== undefined) {
61
+ var isDisplayBoolean = !!isDisplay;
62
+ if (!isDisplayBoolean) {
63
+ return null;
64
+ }
65
+ }
66
+ // 传入了是否禁用配置
67
+ var itemProps = {
68
+ disabled: disabled,
69
+ };
70
+ if (isChangeable !== undefined) {
71
+ itemProps = {
72
+ disabled: !isChangeable,
73
+ };
74
+ }
75
+ var itemClasses = classNames('pro-form__item', itemClassName, {
76
+ 'pro-form__item--disabled': itemProps.disabled,
77
+ 'pro-form__item--noborder': noBorder,
78
+ // 'pro-form__item--nolabel': noLabel,
79
+ // 'pro-form__item--nolabelshowbg': noLabelShowBg,
80
+ });
81
+ if (dependencies) {
82
+ return (React.createElement(ItemWrap, { key: item.name, width: width },
83
+ React.createElement(Form.Item, { dependencies: dependencies, noStyle: true }, function (formInstance) {
84
+ return (React.createElement(Form.Item, __assign({}, resetItem, { className: itemClasses }), render(itemProps, formInstance)));
85
+ })));
86
+ }
87
+ if (shouldUpdate || shouldUpdateNames) {
88
+ var key = typeof item.name === 'string' ? item.name : index + '';
89
+ var shouldUpdateHandle = shouldUpdateNames
90
+ ? function (prevValues, curValues, info) {
91
+ for (var i = 0; i < shouldUpdateNames.length; i++) {
92
+ var shouldUpdateName = shouldUpdateNames[i];
93
+ if (prevValues[shouldUpdateName] !== curValues[shouldUpdateName]) {
94
+ return true;
95
+ }
96
+ }
97
+ if (typeof shouldUpdate === 'function') {
98
+ return shouldUpdate(prevValues, curValues, info);
99
+ }
100
+ if (typeof shouldUpdate === 'boolean') {
101
+ return shouldUpdate;
102
+ }
103
+ return false;
104
+ }
105
+ : shouldUpdate;
106
+ return (React.createElement(ItemWrap, { key: key, width: width },
107
+ React.createElement(Form.Item, { shouldUpdate: shouldUpdateHandle, noStyle: true }, function (formInstance) {
108
+ return item.name ? (React.createElement(Form.Item, __assign({}, resetItem, { className: itemClasses }), render(itemProps, formInstance))) : (render(itemProps, formInstance));
109
+ })));
110
+ }
111
+ return (React.createElement(ItemWrap, { key: item.name, width: width },
112
+ React.createElement(Form.Item, __assign({}, resetItem, { className: itemClasses }), render(itemProps))));
113
+ })));
114
+ }
115
+ function getWidthStr(width) {
116
+ switch (width) {
117
+ case 'half':
118
+ return '16.66%';
119
+ case 'all':
120
+ return '100%';
121
+ case 'double':
122
+ return '66.66%';
123
+ case 'halfAll':
124
+ return '50%';
125
+ default:
126
+ return '33.33%';
127
+ }
128
+ }
129
+ function ItemWrap(props) {
130
+ var className = props.className, children = props.children, width = props.width;
131
+ var itemClasses = classNames('pro-form__item--wrap', className);
132
+ return (React.createElement("div", { className: itemClasses, style: {
133
+ width: getWidthStr(width),
134
+ } }, children));
135
+ }
136
+ export default memo(Items);
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import { ISearchLayout } from './interface';
3
+ interface IProps {
4
+ visible: boolean;
5
+ onClose: () => void;
6
+ onSure: (newList: ISearchLayout[]) => void;
7
+ onReset: () => void;
8
+ dynamicList: ISearchLayout[];
9
+ }
10
+ declare const _default: React.NamedExoticComponent<IProps>;
11
+ export default _default;
@@ -0,0 +1,76 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import React, { memo, useCallback, useMemo, useState, useEffect } from 'react';
13
+ import { SettingOutlined } from '@ant-design/icons';
14
+ import { Drawer, Button, Sortable, Checkbox } from '../../index';
15
+ import { DndProvider } from 'react-dnd';
16
+ import { HTML5Backend } from 'react-dnd-html5-backend';
17
+ import update from 'immutability-helper';
18
+ var SearchDrawer = function (_a) {
19
+ var visible = _a.visible, onClose = _a.onClose, onReset = _a.onReset, onSure = _a.onSure, dynamicList = _a.dynamicList;
20
+ var _b = useState(dynamicList), innerDynamicList = _b[0], setInnerDynamicList = _b[1];
21
+ useEffect(function () {
22
+ setInnerDynamicList(dynamicList);
23
+ }, [dynamicList]);
24
+ var checkedValues = useMemo(function () {
25
+ var _checkedValues = [];
26
+ innerDynamicList.forEach(function (item) {
27
+ if (item.show) {
28
+ _checkedValues.push(item.name);
29
+ }
30
+ });
31
+ return _checkedValues;
32
+ }, [innerDynamicList]);
33
+ /**移动事件 */
34
+ var onMoveItem = useCallback(function (dragIndex, hoverIndex) {
35
+ setInnerDynamicList(function (preDynamicList) {
36
+ var dragCard = preDynamicList[dragIndex];
37
+ var currentList = update(preDynamicList, {
38
+ $splice: [
39
+ [dragIndex, 1],
40
+ [hoverIndex, 0, dragCard],
41
+ ],
42
+ });
43
+ return currentList;
44
+ });
45
+ }, []);
46
+ /**确认事件 */
47
+ var onSureHandle = useCallback(function () {
48
+ onSure && onSure(innerDynamicList);
49
+ }, [onSure, innerDynamicList]);
50
+ var onCheckboxChange = function (checkedValues) {
51
+ var newDynamicList = innerDynamicList.map(function (item) { return (__assign({}, item)); }) || [];
52
+ newDynamicList.forEach(function (item) {
53
+ if (!checkedValues.find(function (value) { return value === item.name; })) {
54
+ item.show = false;
55
+ }
56
+ else {
57
+ item.show = true;
58
+ }
59
+ });
60
+ setInnerDynamicList(newDynamicList);
61
+ };
62
+ /**底部按钮 */
63
+ var renderFooter = function () { return (React.createElement(React.Fragment, null,
64
+ React.createElement(Button, { type: "default", onClick: onClose }, "\u53D6\u6D88"),
65
+ React.createElement(Button, { type: "default", onClick: onReset }, "\u91CD\u7F6E"),
66
+ React.createElement(Button, { type: "primary", onClick: onSureHandle }, "\u786E\u5B9A"))); };
67
+ return (React.createElement(Drawer, { className: "search-drawer", title: React.createElement("div", null,
68
+ React.createElement(SettingOutlined, { style: { fontSize: 16 } }),
69
+ React.createElement("span", { className: "search-drawer--title-text" },
70
+ "\u67E5\u8BE2\u6761\u4EF6\u81EA\u5B9A\u4E49",
71
+ React.createElement("span", null, "\uFF08\u62D6\u62FD\u6392\u5E8F\uFF09"))), width: 290, placement: "right", visible: visible, closable: false, maskClosable: false, footer: renderFooter() },
72
+ React.createElement(DndProvider, { backend: HTML5Backend, context: window },
73
+ React.createElement(Checkbox.Group, { value: checkedValues, onChange: onCheckboxChange }, innerDynamicList.map(function (item, index) { return (React.createElement(Sortable, { key: item.name, type: "search-drawer", index: index, onMoveItem: onMoveItem },
74
+ React.createElement(Checkbox, { value: item.name, disabled: item.disabled || item.dynamicDisabled }, item.label || item.name))); })))));
75
+ };
76
+ export default memo(SearchDrawer);
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import { ISettingProps } from './interface';
3
+ declare function Setting(props: ISettingProps): JSX.Element;
4
+ declare const _default: React.MemoExoticComponent<typeof Setting>;
5
+ export default _default;
@@ -0,0 +1,13 @@
1
+ import React, { memo } from 'react';
2
+ import { SettingOutlined } from '@ant-design/icons';
3
+ import { useDrawer } from './hooks';
4
+ import SearchDrawer from './search-drawer';
5
+ function Setting(props) {
6
+ var list = props.list, initList = props.initList, showDynamicKey = props.showDynamicKey, setCurrentDynamicList = props.setCurrentDynamicList;
7
+ var _a = useDrawer(initList, setCurrentDynamicList, showDynamicKey), visible = _a.visible, setVisible = _a.setVisible, onClose = _a.onClose, onReset = _a.onReset, onSure = _a.onSure;
8
+ return (React.createElement("div", { className: "pro-form__middle" },
9
+ Array.isArray(list) && list.length ? (React.createElement("div", { className: "pro-form__middle--setting", onClick: function () { return setVisible(true); } },
10
+ React.createElement(SettingOutlined, { style: { fontSize: 18, color: '#768696' } }))) : null,
11
+ Array.isArray(list) && list.length ? (React.createElement(SearchDrawer, { visible: visible, onClose: onClose, onSure: onSure, onReset: onReset, dynamicList: list })) : null));
12
+ }
13
+ export default memo(Setting);
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { IProps as IListProps } from '../business/NewList/list';
3
+ import { IProps as IItemProps } from '../business/NewList/item';
4
+ export interface IProItemProps extends IItemProps {
5
+ label?: React.ReactNode;
6
+ }
7
+ export interface IProps extends IListProps {
8
+ items: IProItemProps[];
9
+ }
10
+ declare function ProFormList(props: IProps): JSX.Element;
11
+ declare const _default: React.MemoExoticComponent<typeof ProFormList>;
12
+ export default _default;
@@ -0,0 +1,34 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
23
+ import React, { memo } from 'react';
24
+ import FormList from '../business/NewList';
25
+ function ProFormList(props) {
26
+ var items = props.items, restProps = __rest(props, ["items"]);
27
+ return (React.createElement(FormList, __assign({}, restProps), Array.isArray(items)
28
+ ? items.map(function (item, index) {
29
+ var _a = item.span, span = _a === void 0 ? 6 : _a, label = item.label, restItems = __rest(item, ["span", "label"]);
30
+ return (React.createElement(FormList.FormItem, __assign({ key: index + '' }, restItems, { span: span }), label));
31
+ })
32
+ : null));
33
+ }
34
+ export default memo(ProFormList);
@@ -0,0 +1,8 @@
1
+ /**
2
+ * 弹出框基本布局
3
+ */
4
+ import React from 'react';
5
+ import { IProModalFormProps } from './interface';
6
+ declare function ModalForm(props: IProModalFormProps): JSX.Element;
7
+ declare const _default: React.MemoExoticComponent<typeof ModalForm>;
8
+ export default _default;
@@ -0,0 +1,32 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
23
+ /**
24
+ * 弹出框基本布局
25
+ */
26
+ import React, { memo } from 'react';
27
+ import ProForm from '../ProForm';
28
+ function ModalForm(props) {
29
+ var formReset = __rest(props, []);
30
+ return React.createElement(ProForm, __assign({ rightWrapVisible: true }, formReset));
31
+ }
32
+ export default memo(ModalForm);
@@ -0,0 +1,8 @@
1
+ /**
2
+ * 表格
3
+ */
4
+ import React from 'react';
5
+ import { IProModalTableProps } from './interface';
6
+ declare function ModalTable(props: IProModalTableProps): JSX.Element;
7
+ declare const _default: React.MemoExoticComponent<typeof ModalTable>;
8
+ export default _default;
@@ -0,0 +1,32 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
23
+ /**
24
+ * 表格
25
+ */
26
+ import React, { memo } from 'react';
27
+ import ProTable from '../ProTable';
28
+ function ModalTable(props) {
29
+ var tableReset = __rest(props, []);
30
+ return React.createElement(ProTable, __assign({}, tableReset));
31
+ }
32
+ export default memo(ModalTable);
@@ -0,0 +1,33 @@
1
+ /// <reference types="react" />
2
+ import { IProModalProps } from './interface';
3
+ import { IFooterDom } from '../business/Footer';
4
+ interface IUseData {
5
+ visible?: boolean;
6
+ request?: IProModalProps['request'];
7
+ }
8
+ export declare function useData({ visible, request }: IUseData, fetchParams: any): {
9
+ loading: boolean;
10
+ data: any;
11
+ setData: import("react").Dispatch<any>;
12
+ };
13
+ export declare function useModalForm(outsideParams?: any, formPropsDateTransform?: any, visible?: boolean): {
14
+ form: import("antd").FormInstance<any>;
15
+ initialValues: any;
16
+ fetchParams: any;
17
+ onSearchHandle: () => void;
18
+ onResetHandle: () => void;
19
+ };
20
+ export declare function useModalTable(choiceOptions: any, setData: any): {
21
+ innerSelectedRowKeys: any;
22
+ setInnerSelectedRowKeys: import("react").Dispatch<any>;
23
+ innerSelectedRows: any;
24
+ setInnerSelectedRows: import("react").Dispatch<any>;
25
+ onSelectedRowChange: (selectedRowKeys: React.Key[], selectedRows: any[]) => void;
26
+ choiceFilterHandle: (record: any, selectedRowKeys: React.Key[], selectedRows: any[]) => any;
27
+ onTableChange: (newData: any) => void;
28
+ };
29
+ export declare function useFooter(onClose: any, choiceOptions: any, data: any): {
30
+ footerDom: IFooterDom[];
31
+ onCloseHandle: () => void;
32
+ };
33
+ export {};
@@ -0,0 +1,193 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { useState, useEffect, useCallback, useMemo } from 'react';
13
+ import { unstable_batchedUpdates } from 'react-dom';
14
+ import { message } from '../../index';
15
+ import { useForm } from '../ProForm';
16
+ import { timeTransfrom } from 'ztxkutils/dist/tools';
17
+ // 数据获取相关逻辑
18
+ var initData = [];
19
+ export function useData(_a, fetchParams) {
20
+ var visible = _a.visible, request = _a.request;
21
+ var _b = useState(false), loading = _b[0], setLoading = _b[1];
22
+ var _c = useState(initData), data = _c[0], setData = _c[1];
23
+ // 只有当模态框被打开时,才发送数据请求
24
+ useEffect(function () {
25
+ if (visible) {
26
+ setLoading(true);
27
+ if (request) {
28
+ request(fetchParams)
29
+ .then(function (data) {
30
+ unstable_batchedUpdates(function () {
31
+ setLoading(false);
32
+ setData(data);
33
+ });
34
+ })
35
+ .catch(function () {
36
+ unstable_batchedUpdates(function () {
37
+ setLoading(false);
38
+ setData(initData);
39
+ });
40
+ });
41
+ }
42
+ }
43
+ }, [visible, request, fetchParams]);
44
+ return {
45
+ loading: loading,
46
+ data: data,
47
+ setData: setData,
48
+ };
49
+ }
50
+ // 弹出框表单逻辑
51
+ export function useModalForm(outsideParams, formPropsDateTransform, visible) {
52
+ if (outsideParams === void 0) { outsideParams = {}; }
53
+ if (formPropsDateTransform === void 0) { formPropsDateTransform = {}; }
54
+ var form = useForm()[0];
55
+ var _a = useState(outsideParams), fetchParams = _a[0], setFetchParams = _a[1];
56
+ // 初始化表单赋值
57
+ var initialValues = useMemo(function () {
58
+ return outsideParams;
59
+ }, [outsideParams]);
60
+ useEffect(function () {
61
+ if (visible) {
62
+ form.resetFields();
63
+ }
64
+ }, [visible, form]);
65
+ // 查询事件
66
+ var onSearchHandle = useCallback(function () {
67
+ var formParams = form.getFieldsValue(); // 表单数据
68
+ var currentParams = __assign(__assign({}, outsideParams), formParams);
69
+ // 将日期格式转换成数据查询时 所需要的格式
70
+ var newParams = timeTransfrom(__assign({ params: currentParams }, formPropsDateTransform));
71
+ setFetchParams(newParams);
72
+ }, [form, outsideParams, formPropsDateTransform]);
73
+ // 重置事件
74
+ var onResetHandle = useCallback(function () {
75
+ form.resetFields();
76
+ }, [form]);
77
+ return {
78
+ form: form,
79
+ initialValues: initialValues,
80
+ fetchParams: fetchParams,
81
+ onSearchHandle: onSearchHandle,
82
+ onResetHandle: onResetHandle,
83
+ };
84
+ }
85
+ // 模态表格相关逻辑
86
+ var initSelectedRowKeys = [];
87
+ var initSelectedRows = [];
88
+ export function useModalTable(choiceOptions, setData) {
89
+ var tablePropsChoiceFilterHandle = choiceOptions.tablePropsChoiceFilterHandle, tablePropsSelectedRowKeys = choiceOptions.tablePropsSelectedRowKeys, tablePropsSelectedRows = choiceOptions.tablePropsSelectedRows, tablePropsIsRepeatChoice = choiceOptions.tablePropsIsRepeatChoice, visible = choiceOptions.visible;
90
+ // 内部管理已选中行
91
+ var _a = useState(initSelectedRowKeys), innerSelectedRowKeys = _a[0], setInnerSelectedRowKeys = _a[1];
92
+ var _b = useState(initSelectedRows), innerSelectedRows = _b[0], setInnerSelectedRows = _b[1];
93
+ // 是否要默认选中,如果设置了默认选中,那么模态框展示的时候 需要默认选中
94
+ useEffect(function () {
95
+ if (visible) {
96
+ if (tablePropsIsRepeatChoice) {
97
+ setInnerSelectedRowKeys(tablePropsSelectedRowKeys);
98
+ setInnerSelectedRows(tablePropsSelectedRows);
99
+ }
100
+ }
101
+ }, [
102
+ visible,
103
+ tablePropsIsRepeatChoice,
104
+ tablePropsSelectedRowKeys,
105
+ tablePropsSelectedRows,
106
+ ]);
107
+ // 选中行 触发事件
108
+ var onSelectedRowChange = useCallback(function (selectedRowKeys, selectedRows) {
109
+ setInnerSelectedRowKeys(selectedRowKeys);
110
+ setInnerSelectedRows(selectedRows);
111
+ }, []);
112
+ // 过滤规则
113
+ var choiceFilterHandle = useCallback(function (record, selectedRowKeys, selectedRows) {
114
+ if (tablePropsChoiceFilterHandle) {
115
+ return tablePropsChoiceFilterHandle(record, selectedRowKeys, selectedRows);
116
+ }
117
+ return {};
118
+ }, [tablePropsChoiceFilterHandle]);
119
+ // 表格onChange事件
120
+ var onTableChange = useCallback(function (newData) {
121
+ setData(newData);
122
+ }, [setData]);
123
+ return {
124
+ innerSelectedRowKeys: innerSelectedRowKeys,
125
+ setInnerSelectedRowKeys: setInnerSelectedRowKeys,
126
+ innerSelectedRows: innerSelectedRows,
127
+ setInnerSelectedRows: setInnerSelectedRows,
128
+ onSelectedRowChange: onSelectedRowChange,
129
+ choiceFilterHandle: choiceFilterHandle,
130
+ onTableChange: onTableChange,
131
+ };
132
+ }
133
+ // 底部按钮相关
134
+ export function useFooter(onClose, choiceOptions, data) {
135
+ var innerSelectedRowKeys = choiceOptions.innerSelectedRowKeys, setInnerSelectedRowKeys = choiceOptions.setInnerSelectedRowKeys, setInnerSelectedRows = choiceOptions.setInnerSelectedRows, tablePropsOnSelectedRowChange = choiceOptions.tablePropsOnSelectedRowChange, tablePropsRowKey = choiceOptions.tablePropsRowKey; // 内部选中项
136
+ // 点击确认选择 触发回调 清空内部选中项
137
+ // 重置值为最新值
138
+ var onSureHandle = useCallback(function () {
139
+ if (!Array.isArray(innerSelectedRowKeys) ||
140
+ innerSelectedRowKeys.length === 0) {
141
+ message.info('请选择数据!');
142
+ return;
143
+ }
144
+ // 找到真实得数据
145
+ var newInnerSelectedRows = [];
146
+ if (Array.isArray(data)) {
147
+ innerSelectedRowKeys.forEach(function (rowKey) {
148
+ var item = data.find(function (dataItem) { return dataItem[tablePropsRowKey] === rowKey; });
149
+ if (item) {
150
+ newInnerSelectedRows.push(item);
151
+ }
152
+ });
153
+ }
154
+ tablePropsOnSelectedRowChange &&
155
+ tablePropsOnSelectedRowChange(innerSelectedRowKeys, newInnerSelectedRows);
156
+ setInnerSelectedRowKeys(initSelectedRowKeys);
157
+ setInnerSelectedRows(initSelectedRows);
158
+ onClose && onClose();
159
+ }, [
160
+ innerSelectedRowKeys,
161
+ setInnerSelectedRowKeys,
162
+ setInnerSelectedRows,
163
+ tablePropsOnSelectedRowChange,
164
+ onClose,
165
+ data,
166
+ tablePropsRowKey,
167
+ ]);
168
+ var onCloseHandle = useCallback(function () {
169
+ setInnerSelectedRowKeys(initSelectedRowKeys);
170
+ setInnerSelectedRows(initSelectedRows);
171
+ onClose && onClose();
172
+ }, [onClose, setInnerSelectedRowKeys, setInnerSelectedRows]);
173
+ var footerDom = useMemo(function () {
174
+ return [
175
+ {
176
+ DOMType: 'button',
177
+ type: 'default',
178
+ text: '取消',
179
+ onClick: onCloseHandle,
180
+ },
181
+ {
182
+ DOMType: 'button',
183
+ type: 'primary',
184
+ text: '确认选择',
185
+ onClick: onSureHandle,
186
+ },
187
+ ];
188
+ }, [onCloseHandle, onSureHandle]);
189
+ return {
190
+ footerDom: footerDom,
191
+ onCloseHandle: onCloseHandle,
192
+ };
193
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * 模态框封装
3
+ * 是否需要每次打开模态框都是初始状态
4
+ * 1. 表单部分
5
+ * 2. 表格部分
6
+ * 3. 子表部分
7
+ */
8
+ import React from 'react';
9
+ import { IProModalProps } from './interface';
10
+ declare function ProModal(props: IProModalProps): JSX.Element;
11
+ export declare function useVisible(): {
12
+ visible: boolean;
13
+ onClose: () => void;
14
+ onOpen: () => void;
15
+ };
16
+ declare const _default: React.MemoExoticComponent<typeof ProModal>;
17
+ export default _default;