zmdms-webui 0.0.1
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/README.md +104 -0
- package/dist/es/_virtual/_commonjsHelpers.js +5 -0
- package/dist/es/_virtual/_tslib.js +51 -0
- package/dist/es/_virtual/index.js +3 -0
- package/dist/es/_virtual/index2.js +3 -0
- package/dist/es/button/button.d.ts +10 -0
- package/dist/es/button/button.js +39 -0
- package/dist/es/button/index.d.ts +5 -0
- package/dist/es/button/index.js +5 -0
- package/dist/es/calendar/index.d.ts +6 -0
- package/dist/es/calendar/index.js +6 -0
- package/dist/es/config/ZtxkContext.d.ts +11 -0
- package/dist/es/config/ZtxkContext.js +8 -0
- package/dist/es/config/commonHooks.js +28 -0
- package/dist/es/config/i18n/en.js +5 -0
- package/dist/es/config/i18n/zh_cn.js +5 -0
- package/dist/es/config/index.js +3 -0
- package/dist/es/config/isEqual.js +44 -0
- package/dist/es/config/useLocale.js +21 -0
- package/dist/es/container/container.d.ts +13 -0
- package/dist/es/container/container.js +24 -0
- package/dist/es/container/index.d.ts +5 -0
- package/dist/es/container/index.js +5 -0
- package/dist/es/datepicker/index.d.ts +55 -0
- package/dist/es/datepicker/index.js +6 -0
- package/dist/es/dynamicsetting/dynamicDrawer.js +76 -0
- package/dist/es/dynamicsetting/dynamicSetting.d.ts +6 -0
- package/dist/es/dynamicsetting/dynamicSetting.js +38 -0
- package/dist/es/dynamicsetting/hooks.js +50 -0
- package/dist/es/dynamicsetting/index.d.ts +5 -0
- package/dist/es/dynamicsetting/index.js +5 -0
- package/dist/es/dynamicsetting/interface.d.ts +18 -0
- package/dist/es/dynamicsetting/sortable.js +68 -0
- package/dist/es/dynamicsetting/useDynamic.js +125 -0
- package/dist/es/footer/footer.d.ts +6 -0
- package/dist/es/footer/footer.js +37 -0
- package/dist/es/footer/index.d.ts +5 -0
- package/dist/es/footer/index.js +5 -0
- package/dist/es/footer/interface.d.ts +33 -0
- package/dist/es/forgetpassword/forgetPassword.js +9 -0
- package/dist/es/forgetpassword/index.js +5 -0
- package/dist/es/form/form.d.ts +16 -0
- package/dist/es/form/form.js +89 -0
- package/dist/es/form/formItems.js +14 -0
- package/dist/es/form/hooks.js +105 -0
- package/dist/es/form/index.d.ts +5 -0
- package/dist/es/form/index.js +5 -0
- package/dist/es/form/interface.d.ts +39 -0
- package/dist/es/formitem/formItem.d.ts +43 -0
- package/dist/es/formitem/formItem.js +128 -0
- package/dist/es/formitem/index.d.ts +5 -0
- package/dist/es/formitem/index.js +5 -0
- package/dist/es/icon/index.d.ts +6 -0
- package/dist/es/icon/index.js +7 -0
- package/dist/es/input/index.d.ts +5 -0
- package/dist/es/input/index.js +5 -0
- package/dist/es/input/input.d.ts +20 -0
- package/dist/es/input/input.js +16 -0
- package/dist/es/inputnumber/index.d.ts +5 -0
- package/dist/es/inputnumber/index.js +5 -0
- package/dist/es/inputnumber/inputNumber.d.ts +20 -0
- package/dist/es/inputnumber/inputNumber.js +26 -0
- package/dist/es/inputnumber/interface.d.ts +4 -0
- package/dist/es/inputnumber/utils.js +132 -0
- package/dist/es/login/index.d.ts +13 -0
- package/dist/es/login/index.js +26 -0
- package/dist/es/node_modules/@ant-design/colors/dist/index.esm.js +223 -0
- package/dist/es/node_modules/@ant-design/icons/es/components/AntdIcon.js +63 -0
- package/dist/es/node_modules/@ant-design/icons/es/components/Context.js +6 -0
- package/dist/es/node_modules/@ant-design/icons/es/components/Icon.js +69 -0
- package/dist/es/node_modules/@ant-design/icons/es/components/IconBase.js +63 -0
- package/dist/es/node_modules/@ant-design/icons/es/components/IconFont.js +71 -0
- package/dist/es/node_modules/@ant-design/icons/es/components/twoTonePrimaryColor.js +23 -0
- package/dist/es/node_modules/@ant-design/icons/es/icons/SettingOutlined.js +15 -0
- package/dist/es/node_modules/@ant-design/icons/es/utils.js +76 -0
- package/dist/es/node_modules/@ant-design/icons-svg/es/asn/SettingOutlined.js +5 -0
- package/dist/es/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js +7 -0
- package/dist/es/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js +5 -0
- package/dist/es/node_modules/@babel/runtime/helpers/esm/defineProperty.js +18 -0
- package/dist/es/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js +29 -0
- package/dist/es/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js +5 -0
- package/dist/es/node_modules/@babel/runtime/helpers/esm/objectSpread2.js +25 -0
- package/dist/es/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js +19 -0
- package/dist/es/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js +14 -0
- package/dist/es/node_modules/@babel/runtime/helpers/esm/slicedToArray.js +10 -0
- package/dist/es/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +14 -0
- package/dist/es/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +9 -0
- package/dist/es/node_modules/@babel/runtime/helpers/esm/typeof.js +11 -0
- package/dist/es/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js +12 -0
- package/dist/es/node_modules/@ctrl/tinycolor/dist/module/conversion.js +150 -0
- package/dist/es/node_modules/@ctrl/tinycolor/dist/module/css-color-names.js +156 -0
- package/dist/es/node_modules/@ctrl/tinycolor/dist/module/format-input.js +186 -0
- package/dist/es/node_modules/@ctrl/tinycolor/dist/module/util.js +77 -0
- package/dist/es/node_modules/@react-dnd/asap/dist/AsapQueue.js +140 -0
- package/dist/es/node_modules/@react-dnd/asap/dist/RawTask.js +20 -0
- package/dist/es/node_modules/@react-dnd/asap/dist/TaskFactory.js +17 -0
- package/dist/es/node_modules/@react-dnd/asap/dist/asap.js +17 -0
- package/dist/es/node_modules/@react-dnd/asap/dist/makeRequestCall.js +77 -0
- package/dist/es/node_modules/@react-dnd/invariant/dist/index.js +36 -0
- package/dist/es/node_modules/@react-dnd/shallowequal/dist/index.js +34 -0
- package/dist/es/node_modules/classnames/index.js +64 -0
- package/dist/es/node_modules/dnd-core/dist/actions/dragDrop/beginDrag.js +85 -0
- package/dist/es/node_modules/dnd-core/dist/actions/dragDrop/drop.js +74 -0
- package/dist/es/node_modules/dnd-core/dist/actions/dragDrop/endDrag.js +24 -0
- package/dist/es/node_modules/dnd-core/dist/actions/dragDrop/hover.js +57 -0
- package/dist/es/node_modules/dnd-core/dist/actions/dragDrop/index.js +17 -0
- package/dist/es/node_modules/dnd-core/dist/actions/dragDrop/local/setClientOffset.js +13 -0
- package/dist/es/node_modules/dnd-core/dist/actions/dragDrop/publishDragSource.js +15 -0
- package/dist/es/node_modules/dnd-core/dist/actions/dragDrop/types.js +8 -0
- package/dist/es/node_modules/dnd-core/dist/actions/registry.js +38 -0
- package/dist/es/node_modules/dnd-core/dist/classes/DragDropManagerImpl.js +57 -0
- package/dist/es/node_modules/dnd-core/dist/classes/DragDropMonitorImpl.js +153 -0
- package/dist/es/node_modules/dnd-core/dist/classes/HandlerRegistryImpl.js +130 -0
- package/dist/es/node_modules/dnd-core/dist/contracts.js +22 -0
- package/dist/es/node_modules/dnd-core/dist/createDragDropManager.js +25 -0
- package/dist/es/node_modules/dnd-core/dist/interfaces.js +7 -0
- package/dist/es/node_modules/dnd-core/dist/reducers/dirtyHandlerIds.js +45 -0
- package/dist/es/node_modules/dnd-core/dist/reducers/dragOffset.js +62 -0
- package/dist/es/node_modules/dnd-core/dist/reducers/dragOperation.js +90 -0
- package/dist/es/node_modules/dnd-core/dist/reducers/index.js +51 -0
- package/dist/es/node_modules/dnd-core/dist/reducers/refCount.js +16 -0
- package/dist/es/node_modules/dnd-core/dist/reducers/stateId.js +5 -0
- package/dist/es/node_modules/dnd-core/dist/utils/coords.js +47 -0
- package/dist/es/node_modules/dnd-core/dist/utils/dirtiness.js +23 -0
- package/dist/es/node_modules/dnd-core/dist/utils/equality.js +32 -0
- package/dist/es/node_modules/dnd-core/dist/utils/getNextUniqueId.js +6 -0
- package/dist/es/node_modules/dnd-core/dist/utils/js_utils.js +51 -0
- package/dist/es/node_modules/dnd-core/dist/utils/matchesType.js +9 -0
- package/dist/es/node_modules/fast-deep-equal/index.js +50 -0
- package/dist/es/node_modules/immutability-helper/index.js +259 -0
- package/dist/es/node_modules/rc-picker/es/generate/dayjs.js +219 -0
- package/dist/es/node_modules/rc-util/es/Dom/canUseDom.js +5 -0
- package/dist/es/node_modules/rc-util/es/Dom/contains.js +22 -0
- package/dist/es/node_modules/rc-util/es/Dom/dynamicCSS.js +116 -0
- package/dist/es/node_modules/rc-util/es/warning.js +54 -0
- package/dist/es/node_modules/react-dnd/dist/core/DndContext.js +9 -0
- package/dist/es/node_modules/react-dnd/dist/core/DndProvider.js +92 -0
- package/dist/es/node_modules/react-dnd/dist/hooks/useCollectedProps.js +9 -0
- package/dist/es/node_modules/react-dnd/dist/hooks/useCollector.js +38 -0
- package/dist/es/node_modules/react-dnd/dist/hooks/useDrag/DragSourceImpl.js +49 -0
- package/dist/es/node_modules/react-dnd/dist/hooks/useDrag/connectors.js +16 -0
- package/dist/es/node_modules/react-dnd/dist/hooks/useDrag/useDrag.js +26 -0
- package/dist/es/node_modules/react-dnd/dist/hooks/useDrag/useDragSource.js +18 -0
- package/dist/es/node_modules/react-dnd/dist/hooks/useDrag/useDragSourceConnector.js +33 -0
- package/dist/es/node_modules/react-dnd/dist/hooks/useDrag/useDragSourceMonitor.js +13 -0
- package/dist/es/node_modules/react-dnd/dist/hooks/useDrag/useDragType.js +14 -0
- package/dist/es/node_modules/react-dnd/dist/hooks/useDrag/useRegisteredDragSource.js +28 -0
- package/dist/es/node_modules/react-dnd/dist/hooks/useDragDropManager.js +13 -0
- package/dist/es/node_modules/react-dnd/dist/hooks/useDrop/DropTargetImpl.js +28 -0
- package/dist/es/node_modules/react-dnd/dist/hooks/useDrop/connectors.js +10 -0
- package/dist/es/node_modules/react-dnd/dist/hooks/useDrop/useAccept.js +20 -0
- package/dist/es/node_modules/react-dnd/dist/hooks/useDrop/useDrop.js +23 -0
- package/dist/es/node_modules/react-dnd/dist/hooks/useDrop/useDropTarget.js +17 -0
- package/dist/es/node_modules/react-dnd/dist/hooks/useDrop/useDropTargetConnector.js +23 -0
- package/dist/es/node_modules/react-dnd/dist/hooks/useDrop/useDropTargetMonitor.js +13 -0
- package/dist/es/node_modules/react-dnd/dist/hooks/useDrop/useRegisteredDropTarget.js +26 -0
- package/dist/es/node_modules/react-dnd/dist/hooks/useIsomorphicLayoutEffect.js +6 -0
- package/dist/es/node_modules/react-dnd/dist/hooks/useMonitorOutput.js +23 -0
- package/dist/es/node_modules/react-dnd/dist/hooks/useOptionalFactory.js +15 -0
- package/dist/es/node_modules/react-dnd/dist/internals/DragSourceMonitorImpl.js +93 -0
- package/dist/es/node_modules/react-dnd/dist/internals/DropTargetMonitorImpl.js +68 -0
- package/dist/es/node_modules/react-dnd/dist/internals/SourceConnector.js +157 -0
- package/dist/es/node_modules/react-dnd/dist/internals/TargetConnector.js +89 -0
- package/dist/es/node_modules/react-dnd/dist/internals/isRef.js +6 -0
- package/dist/es/node_modules/react-dnd/dist/internals/registration.js +18 -0
- package/dist/es/node_modules/react-dnd/dist/internals/wrapConnectorHooks.js +74 -0
- package/dist/es/node_modules/react-dnd-html5-backend/dist/BrowserDetector.js +8 -0
- package/dist/es/node_modules/react-dnd-html5-backend/dist/EnterLeaveCounter.js +27 -0
- package/dist/es/node_modules/react-dnd-html5-backend/dist/HTML5BackendImpl.js +572 -0
- package/dist/es/node_modules/react-dnd-html5-backend/dist/MonotonicInterpolant.js +86 -0
- package/dist/es/node_modules/react-dnd-html5-backend/dist/NativeDragSources/NativeDragSource.js +50 -0
- package/dist/es/node_modules/react-dnd-html5-backend/dist/NativeDragSources/getDataFromDataTransfer.js +7 -0
- package/dist/es/node_modules/react-dnd-html5-backend/dist/NativeDragSources/index.js +28 -0
- package/dist/es/node_modules/react-dnd-html5-backend/dist/NativeDragSources/nativeTypesConfig.js +52 -0
- package/dist/es/node_modules/react-dnd-html5-backend/dist/NativeTypes.js +6 -0
- package/dist/es/node_modules/react-dnd-html5-backend/dist/OffsetUtils.js +100 -0
- package/dist/es/node_modules/react-dnd-html5-backend/dist/OptionsReader.js +31 -0
- package/dist/es/node_modules/react-dnd-html5-backend/dist/index.js +7 -0
- package/dist/es/node_modules/react-dnd-html5-backend/dist/utils/js_utils.js +30 -0
- package/dist/es/node_modules/redux/es/redux.js +383 -0
- package/dist/es/pagination/index.d.ts +5 -0
- package/dist/es/pagination/index.js +5 -0
- package/dist/es/pagination/pagination.d.ts +8 -0
- package/dist/es/pagination/pagination.js +12 -0
- package/dist/es/protectedroute/index.d.ts +14 -0
- package/dist/es/protectedroute/index.js +17 -0
- package/dist/es/suspensecomponent/index.d.ts +9 -0
- package/dist/es/suspensecomponent/index.js +10 -0
- package/dist/es/table/components/CopyIcon.js +10 -0
- package/dist/es/table/components/EnhanceCell.js +48 -0
- package/dist/es/table/components/EnhanceRow.js +11 -0
- package/dist/es/table/components/hooks.js +24 -0
- package/dist/es/table/constant.js +3 -0
- package/dist/es/table/hooks.js +24 -0
- package/dist/es/table/index.d.ts +5 -0
- package/dist/es/table/index.js +5 -0
- package/dist/es/table/interface.d.ts +43 -0
- package/dist/es/table/table.d.ts +5 -0
- package/dist/es/table/table.js +60 -0
- package/dist/es/table/useColumns.js +48 -0
- package/dist/es/table/useDynamicListByColumns.js +47 -0
- package/dist/es/table/utils.js +82 -0
- package/dist/es/timepicker/index.d.ts +9 -0
- package/dist/es/timepicker/index.js +11 -0
- package/dist/index.build.d.ts +19 -0
- package/dist/index.dark.css +2 -0
- package/dist/index.default.css +2 -0
- package/dist/index.es.js +19 -0
- package/dist/index.umd.js +6 -0
- package/package.json +103 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { useState, useCallback } from 'react';
|
|
2
|
+
import { getSetDynamicKey } from './useDynamic.js';
|
|
3
|
+
|
|
4
|
+
function useDrawer(currentDynamicList, setCurrentDynamicList, dynamicKey, parentDynamicKey, setTempDynamicList, list, onCurrentListChange) {
|
|
5
|
+
// 控制抽屉显示隐藏
|
|
6
|
+
var _a = useState(false), visible = _a[0], setVisible = _a[1];
|
|
7
|
+
// 设置缓存数据的方法
|
|
8
|
+
var setDynamicKey = useCallback(function () {
|
|
9
|
+
return getSetDynamicKey(parentDynamicKey, "".concat(parentDynamicKey, "_lru_key"));
|
|
10
|
+
}, [parentDynamicKey]);
|
|
11
|
+
// 关闭
|
|
12
|
+
var onClose = useCallback(function () {
|
|
13
|
+
setVisible(false);
|
|
14
|
+
setTempDynamicList(currentDynamicList);
|
|
15
|
+
}, [setTempDynamicList, currentDynamicList]);
|
|
16
|
+
// 重置 (回到用户配置状态)
|
|
17
|
+
var onReset = useCallback(function () {
|
|
18
|
+
setVisible(false);
|
|
19
|
+
setCurrentDynamicList(list);
|
|
20
|
+
onCurrentListChange(list);
|
|
21
|
+
setTempDynamicList(list);
|
|
22
|
+
setDynamicKey()(dynamicKey, list);
|
|
23
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
24
|
+
}, [
|
|
25
|
+
list,
|
|
26
|
+
setCurrentDynamicList,
|
|
27
|
+
dynamicKey,
|
|
28
|
+
setDynamicKey,
|
|
29
|
+
setTempDynamicList,
|
|
30
|
+
]);
|
|
31
|
+
// 确认修改
|
|
32
|
+
var onSure = useCallback(function (newList) {
|
|
33
|
+
setVisible(false);
|
|
34
|
+
setCurrentDynamicList(newList);
|
|
35
|
+
setTempDynamicList(newList);
|
|
36
|
+
onCurrentListChange(newList);
|
|
37
|
+
setDynamicKey()(dynamicKey, newList);
|
|
38
|
+
},
|
|
39
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
40
|
+
[setCurrentDynamicList, dynamicKey, setDynamicKey, setTempDynamicList]);
|
|
41
|
+
return {
|
|
42
|
+
visible: visible,
|
|
43
|
+
setVisible: setVisible,
|
|
44
|
+
onClose: onClose,
|
|
45
|
+
onReset: onReset,
|
|
46
|
+
onSure: onSure,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export { useDrawer };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
interface IDynamicItem {
|
|
2
|
+
key: string;
|
|
3
|
+
label?: React.ReactNode;
|
|
4
|
+
disabled?: boolean;
|
|
5
|
+
checked?: boolean;
|
|
6
|
+
[props: string]: any;
|
|
7
|
+
}
|
|
8
|
+
interface IDynamicSettingProps {
|
|
9
|
+
parentDynamicKey: string;
|
|
10
|
+
dynamicKey: string;
|
|
11
|
+
defaultList: IDynamicItem[];
|
|
12
|
+
onCurrentListChange?: (currentList: IDynamicItem[]) => void;
|
|
13
|
+
children?: JSX.Element;
|
|
14
|
+
title?: string;
|
|
15
|
+
hiddenOperationIcon?: boolean;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export { IDynamicItem, IDynamicSettingProps };
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { __assign } from '../_virtual/_tslib.js';
|
|
2
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { useRef } from 'react';
|
|
4
|
+
import classNames from '../node_modules/classnames/index.js';
|
|
5
|
+
import { useDrop } from '../node_modules/react-dnd/dist/hooks/useDrop/useDrop.js';
|
|
6
|
+
import { useDrag } from '../node_modules/react-dnd/dist/hooks/useDrag/useDrag.js';
|
|
7
|
+
|
|
8
|
+
var Sortable = function (_a) {
|
|
9
|
+
var type = _a.type, onMoveItem = _a.onMoveItem, index = _a.index, id = _a.id, children = _a.children, style = _a.style, className = _a.className;
|
|
10
|
+
var ref = useRef(null);
|
|
11
|
+
var classes = classNames("zt-sortable", className, {});
|
|
12
|
+
/**
|
|
13
|
+
* @description 定义可放置对象
|
|
14
|
+
*/
|
|
15
|
+
var _b = useDrop({
|
|
16
|
+
accept: type,
|
|
17
|
+
hover: function (item, monitor) {
|
|
18
|
+
var _a;
|
|
19
|
+
if (!ref.current) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
// 当前拖动项索引
|
|
23
|
+
var dragIndex = item.index;
|
|
24
|
+
// 当前放置位置索引
|
|
25
|
+
var hoverIndex = index;
|
|
26
|
+
// 不要将项目本身替换
|
|
27
|
+
if (dragIndex === hoverIndex) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
// 获取当前项的位置信息
|
|
31
|
+
var hoverBoundingRect = (_a = ref.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
|
|
32
|
+
// 元素高度的一半
|
|
33
|
+
var hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2;
|
|
34
|
+
// 确定鼠标位置
|
|
35
|
+
var clientOffset = monitor.getClientOffset();
|
|
36
|
+
// 鼠标位置纵坐标 与 当前hover元素顶部位置差
|
|
37
|
+
var hoverClientY = clientOffset.y - hoverBoundingRect.top;
|
|
38
|
+
// 临界值判断
|
|
39
|
+
// 如果当前拖拽元素本身在当前放置元素之上 并且 鼠标位置与当前放置元素之差 要小于中间位置
|
|
40
|
+
if (dragIndex < hoverIndex && hoverClientY < hoverMiddleY) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
// 如果当前拖拽元素本身在当前放置元素之下 并且鼠标位置与当前放置元素之差要 大于 中间位置
|
|
44
|
+
if (dragIndex > hoverIndex && hoverClientY > hoverMiddleY) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
onMoveItem(dragIndex, hoverIndex);
|
|
48
|
+
item.index = hoverIndex;
|
|
49
|
+
},
|
|
50
|
+
}), drop = _b[1];
|
|
51
|
+
/**
|
|
52
|
+
* @description 定义可拖动对象
|
|
53
|
+
*/
|
|
54
|
+
var _c = useDrag({
|
|
55
|
+
type: type,
|
|
56
|
+
item: function () {
|
|
57
|
+
return { id: id, index: index };
|
|
58
|
+
},
|
|
59
|
+
collect: function (monitor) { return ({
|
|
60
|
+
isDragging: monitor.isDragging(),
|
|
61
|
+
}); },
|
|
62
|
+
}), isDragging = _c[0].isDragging, drag = _c[1];
|
|
63
|
+
var opacity = isDragging ? 0 : 1;
|
|
64
|
+
drag(drop(ref));
|
|
65
|
+
return (jsx("div", __assign({ ref: ref, className: classes, style: __assign(__assign({}, style), { opacity: opacity }) }, { children: children })));
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
export { Sortable as default };
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { __assign } from '../_virtual/_tslib.js';
|
|
2
|
+
import { useMemo, useState, useEffect } from 'react';
|
|
3
|
+
|
|
4
|
+
var LOCALSTORAGE_LRU_MAX_SIZE = 500;
|
|
5
|
+
// 从缓存中 取到缓存的数据
|
|
6
|
+
function getCurrentDynamicItems(dynamicKey, parentDynamicKey, list) {
|
|
7
|
+
if (dynamicKey && parentDynamicKey && Array.isArray(list)) {
|
|
8
|
+
// 从storage中取到历史数据
|
|
9
|
+
var dynamicList = [];
|
|
10
|
+
try {
|
|
11
|
+
var obj = JSON.parse(localStorage.getItem(parentDynamicKey) || "{}") || {};
|
|
12
|
+
dynamicList = obj[dynamicKey];
|
|
13
|
+
}
|
|
14
|
+
catch (err) {
|
|
15
|
+
console.log(err);
|
|
16
|
+
}
|
|
17
|
+
var currentDynamicList_1 = Array.isArray(dynamicList) && dynamicList.length > 0 ? dynamicList : [];
|
|
18
|
+
// 如果缓存中没值的话,那么直接取当前配置相关字段
|
|
19
|
+
if (!dynamicList || dynamicList.length === 0) {
|
|
20
|
+
// 如果缓存中没值,那么以传入的配置为准
|
|
21
|
+
list.forEach(function (item) {
|
|
22
|
+
var result = __assign(__assign({}, item), { checked: item.checked !== undefined ? item.checked : true });
|
|
23
|
+
currentDynamicList_1.push(__assign(__assign({}, result), { isFind: true }));
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
// 如果缓存中有值,那么以缓存中的值为准
|
|
28
|
+
list.forEach(function (item, index) {
|
|
29
|
+
var result = __assign({ checked: true }, item);
|
|
30
|
+
// 将最新的名字等同步
|
|
31
|
+
// 如果之前有数据,那么需要验证数据的准确性,比如修改了名字但是key没替换
|
|
32
|
+
var currentData = currentDynamicList_1.find(function (currentDynamic) { return currentDynamic.key === result.key; });
|
|
33
|
+
if (currentData) {
|
|
34
|
+
currentData.isFind = true; // 代表当前这个字段被找到
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
// 没有从之前的字段中被找到的话,说明是业务新增的 需要添加上
|
|
38
|
+
currentDynamicList_1.push(__assign(__assign({}, result), { isFind: true }));
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
// 最终需要过滤掉 没从传入配置中找到的字段
|
|
43
|
+
// 如果没从传入配置中找到改字段 说明 该字段已经被业务弃用删除了
|
|
44
|
+
return currentDynamicList_1
|
|
45
|
+
.filter(function (item) { return item.isFind; })
|
|
46
|
+
.map(function (item) {
|
|
47
|
+
var result = __assign({}, item);
|
|
48
|
+
Reflect.deleteProperty(result, "isFind");
|
|
49
|
+
return result;
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
return [];
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* @description 将动态配置存在本地存储中
|
|
56
|
+
* @param dynamicStorageKey 保留的key值
|
|
57
|
+
* @param value 值
|
|
58
|
+
*/
|
|
59
|
+
function getSetDynamicKey(LOCALSTORAGE_KEY, LOCALSTORAGE_LRU_KEY) {
|
|
60
|
+
return function (dynamicStorageKey, value) {
|
|
61
|
+
var obj = {};
|
|
62
|
+
var lruKeys = [];
|
|
63
|
+
try {
|
|
64
|
+
obj = JSON.parse(localStorage.getItem(LOCALSTORAGE_KEY) || "{}") || {};
|
|
65
|
+
lruKeys =
|
|
66
|
+
JSON.parse(localStorage.getItem(LOCALSTORAGE_LRU_KEY) || "[]") || [];
|
|
67
|
+
}
|
|
68
|
+
catch (err) {
|
|
69
|
+
console.error(err);
|
|
70
|
+
}
|
|
71
|
+
// 需要初始化lru排序数据
|
|
72
|
+
if (lruKeys.length !== Object.keys(obj).length) {
|
|
73
|
+
lruKeys = Object.keys(obj);
|
|
74
|
+
}
|
|
75
|
+
// 设置值之前,先判断是否满足LRU条件,最后面的最新鲜
|
|
76
|
+
var currentKeyIndex = lruKeys.findIndex(function (lruKey) { return lruKey === dynamicStorageKey; });
|
|
77
|
+
// 如果新增key本身就在原keys里面,那删除原key,将原key添加最新鲜的位置
|
|
78
|
+
// 如果不在原keys里面,那么直接添加到最新鲜的位置
|
|
79
|
+
if (currentKeyIndex !== -1) {
|
|
80
|
+
lruKeys.splice(currentKeyIndex, 1);
|
|
81
|
+
lruKeys.push(dynamicStorageKey);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
lruKeys.push(dynamicStorageKey);
|
|
85
|
+
}
|
|
86
|
+
var length = lruKeys.length;
|
|
87
|
+
// 长度是否有问题
|
|
88
|
+
// 如果长度大于最大可存储长度,那么删除最老旧的元素
|
|
89
|
+
// 把对象里面存储的最老旧元素清除
|
|
90
|
+
if (length > LOCALSTORAGE_LRU_MAX_SIZE) {
|
|
91
|
+
var oldKey = lruKeys.shift();
|
|
92
|
+
try {
|
|
93
|
+
delete obj[oldKey];
|
|
94
|
+
}
|
|
95
|
+
catch (err) {
|
|
96
|
+
//
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
obj[dynamicStorageKey] = value;
|
|
100
|
+
localStorage.setItem(LOCALSTORAGE_KEY, JSON.stringify(obj));
|
|
101
|
+
localStorage.setItem(LOCALSTORAGE_LRU_KEY, JSON.stringify(lruKeys));
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
function useDynamic(dynamicKey, parentDynamicKey, list) {
|
|
105
|
+
// 内部可操作的动态列配置
|
|
106
|
+
var currentDynamicListMemo = useMemo(function () {
|
|
107
|
+
return getCurrentDynamicItems(dynamicKey, parentDynamicKey, list);
|
|
108
|
+
}, [dynamicKey, parentDynamicKey, list]);
|
|
109
|
+
var _a = useState(currentDynamicListMemo), currentDynamicList = _a[0], setCurrentDynamicList = _a[1];
|
|
110
|
+
var _b = useState(currentDynamicListMemo), tempDynamicList = _b[0], setTempDynamicList = _b[1];
|
|
111
|
+
useEffect(function () {
|
|
112
|
+
if (currentDynamicListMemo) {
|
|
113
|
+
setCurrentDynamicList(currentDynamicListMemo);
|
|
114
|
+
setTempDynamicList(currentDynamicListMemo);
|
|
115
|
+
}
|
|
116
|
+
}, [currentDynamicListMemo]);
|
|
117
|
+
return {
|
|
118
|
+
currentDynamicList: currentDynamicList,
|
|
119
|
+
setCurrentDynamicList: setCurrentDynamicList,
|
|
120
|
+
tempDynamicList: tempDynamicList,
|
|
121
|
+
setTempDynamicList: setTempDynamicList,
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
export { getCurrentDynamicItems, getSetDynamicKey, useDynamic };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { __assign } from '../_virtual/_tslib.js';
|
|
2
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
3
|
+
import { memo } from 'react';
|
|
4
|
+
import classNames from '../node_modules/classnames/index.js';
|
|
5
|
+
import Button from '../button/button.js';
|
|
6
|
+
import Pagination from '../pagination/pagination.js';
|
|
7
|
+
|
|
8
|
+
var defaultPageSizeOptions = ["10", "20", "30", "100"];
|
|
9
|
+
var Footer = function (props) {
|
|
10
|
+
console.log("渲染");
|
|
11
|
+
var children = props.children, className = props.className, _a = props.align, align = _a === void 0 ? "left" : _a, footerDom = props.footerDom;
|
|
12
|
+
var classes = classNames("ztxk-footer", className);
|
|
13
|
+
return (jsx("footer", __assign({ className: classes, style: {
|
|
14
|
+
justifyContent: align === "left"
|
|
15
|
+
? "flex-start"
|
|
16
|
+
: align === "center"
|
|
17
|
+
? "center"
|
|
18
|
+
: "flex-end",
|
|
19
|
+
} }, { children: footerDom ? (jsxs("div", __assign({ className: "ztxk-footer--group" }, { children: [footerDom.map(function (item, index) {
|
|
20
|
+
var DOMType = item.DOMType, render = item.render;
|
|
21
|
+
if (DOMType === "button") {
|
|
22
|
+
var type = item.type, loading = item.loading, disabled = item.disabled, onClick = item.onClick;
|
|
23
|
+
return (jsx(Button, __assign({ type: type, loading: loading, disabled: disabled, onClick: onClick }, { children: item.text }), index));
|
|
24
|
+
}
|
|
25
|
+
if (DOMType === "pagination") {
|
|
26
|
+
var total = item.total, pageSize = item.pageSize, current = item.current, onChange = item.onChange, onShowSizeChange = item.onShowSizeChange, pageSizeOptions = item.pageSizeOptions;
|
|
27
|
+
return (jsx(Pagination, { total: total, pageSize: pageSize, current: current, onChange: onChange, onShowSizeChange: onShowSizeChange, showTotal: function (total) { return "\u5171".concat(total, "\u6761"); }, showSizeChanger: true, pageSizeOptions: pageSizeOptions ? pageSizeOptions : defaultPageSizeOptions }, index));
|
|
28
|
+
}
|
|
29
|
+
if (render) {
|
|
30
|
+
return render();
|
|
31
|
+
}
|
|
32
|
+
return null;
|
|
33
|
+
}), children] }))) : null })));
|
|
34
|
+
};
|
|
35
|
+
var Footer$1 = memo(Footer);
|
|
36
|
+
|
|
37
|
+
export { Footer$1 as default };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { ButtonType } from 'antd/lib/button';
|
|
2
|
+
|
|
3
|
+
interface IPagination {
|
|
4
|
+
total: number;
|
|
5
|
+
pageSize: number;
|
|
6
|
+
current: number;
|
|
7
|
+
onChange: (page: number, pageSize: number | undefined) => void;
|
|
8
|
+
onShowSizeChange?: (current: number, size: number) => void;
|
|
9
|
+
pageSizeOptions?: any;
|
|
10
|
+
}
|
|
11
|
+
interface IBtn {
|
|
12
|
+
type?: ButtonType;
|
|
13
|
+
text: React.ReactNode;
|
|
14
|
+
loading?: boolean;
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
onClick: ((event: React.MouseEvent<HTMLElement, MouseEvent>) => void) | undefined;
|
|
17
|
+
}
|
|
18
|
+
interface IDropdown {
|
|
19
|
+
text: string;
|
|
20
|
+
overlay: any;
|
|
21
|
+
}
|
|
22
|
+
interface IFooterDom extends Partial<IPagination & IBtn & IDropdown> {
|
|
23
|
+
DOMType?: "button" | "pagination" | "dropdown";
|
|
24
|
+
render?: () => React.ReactElement;
|
|
25
|
+
}
|
|
26
|
+
interface IFooterProps {
|
|
27
|
+
children?: React.ReactNode;
|
|
28
|
+
className?: string;
|
|
29
|
+
align?: "left" | "center" | "right";
|
|
30
|
+
footerDom?: IFooterDom[] | null;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export { IFooterDom, IFooterProps };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React__default from 'react';
|
|
2
|
+
import { Form } from 'antd';
|
|
3
|
+
import { IProFormProps } from './interface.js';
|
|
4
|
+
|
|
5
|
+
interface FormComponent extends React__default.FC<IProFormProps> {
|
|
6
|
+
useForm: typeof Form.useForm;
|
|
7
|
+
Item: typeof Form.Item;
|
|
8
|
+
List: typeof Form.List;
|
|
9
|
+
ErrorList: typeof Form.ErrorList;
|
|
10
|
+
Provider: typeof Form.Provider;
|
|
11
|
+
useFormInstance: typeof Form.useFormInstance;
|
|
12
|
+
useWatch: typeof Form.useWatch;
|
|
13
|
+
}
|
|
14
|
+
declare const MemoForm: FormComponent;
|
|
15
|
+
|
|
16
|
+
export { MemoForm as default };
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { __rest, __assign } from '../_virtual/_tslib.js';
|
|
2
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { memo, useMemo, useCallback } from 'react';
|
|
4
|
+
import { Form as Form$1 } from 'antd';
|
|
5
|
+
import classNames from '../node_modules/classnames/index.js';
|
|
6
|
+
import { useFormConfigInfoCreateNewItems, useDynamicListByItems, useBtnHandle } from './hooks.js';
|
|
7
|
+
import FormItems from './formItems.js';
|
|
8
|
+
import DynamicSetting from '../dynamicsetting/dynamicSetting.js';
|
|
9
|
+
import Button from '../button/button.js';
|
|
10
|
+
|
|
11
|
+
var FORM_DYNAMIC_KEY = "ztxk-webui-dynamic-form";
|
|
12
|
+
// 动态列配置 与 表单配置 是否存在冲突?
|
|
13
|
+
// 如果配置了动态列配置
|
|
14
|
+
// 表单配置是否就不需要了
|
|
15
|
+
// 如果两者同时存在 是否不需要动态列配置了呢?
|
|
16
|
+
// 如果两者同时存在
|
|
17
|
+
// 用户配置优先,先从远端获取到 表单配置信息。
|
|
18
|
+
// 给子元素设置好了表单配置信息后 接下来的内容 交给动态列配置接管
|
|
19
|
+
var Form = function (props) {
|
|
20
|
+
var form = props.form, bottomBorder = props.bottomBorder, _a = props.isFlex, isFlex = _a === void 0 ? true : _a, wrapClassName = props.wrapClassName, leftClassName = props.leftClassName; props.itemClassName; var rightWrapVisible = props.rightWrapVisible, rightClassName = props.rightClassName, children = props.children, dynamicKey = props.dynamicKey, formConfigInfo = props.formConfigInfo, items = props.items, outsideState = props.outsideState, onValuesChange = props.onValuesChange, onResetHandle = props.onResetHandle, onSearchHandle = props.onSearchHandle, restProps = __rest(props, ["form", "bottomBorder", "isFlex", "wrapClassName", "leftClassName", "itemClassName", "rightWrapVisible", "rightClassName", "children", "dynamicKey", "formConfigInfo", "items", "outsideState", "onValuesChange", "onResetHandle", "onSearchHandle"]);
|
|
21
|
+
// 获取新的items
|
|
22
|
+
var configInfoItems = useFormConfigInfoCreateNewItems(formConfigInfo, items).configInfoItems;
|
|
23
|
+
// 根据items 和 dynamicKey 获取到动态列配置信息
|
|
24
|
+
var _b = useDynamicListByItems(configInfoItems, dynamicKey, formConfigInfo), dynamicList = _b.dynamicList, onCurrentListChange = _b.onCurrentListChange, newItems = _b.newItems, dynamicSettingRef = _b.dynamicSettingRef;
|
|
25
|
+
// 主容器类名
|
|
26
|
+
var wrapClasses = classNames("ztxk-form", wrapClassName, {
|
|
27
|
+
"ztxk-form--bottom-border": bottomBorder,
|
|
28
|
+
});
|
|
29
|
+
// 左容器类名
|
|
30
|
+
var leftClasses = classNames("ztxk-form__left", leftClassName, {
|
|
31
|
+
"ztxk-form__left--flex": isFlex,
|
|
32
|
+
});
|
|
33
|
+
// 右容器类名
|
|
34
|
+
var rightClasses = classNames("ztxk-form__right", rightClassName);
|
|
35
|
+
// 获取依赖项关联
|
|
36
|
+
var itemsShouldUpdate = useMemo(function () {
|
|
37
|
+
var result = {};
|
|
38
|
+
if (items) {
|
|
39
|
+
for (var i = 0; i < items.length; i++) {
|
|
40
|
+
var item = items[i];
|
|
41
|
+
if (typeof item.name === "string" &&
|
|
42
|
+
item.shouldUpdateNames &&
|
|
43
|
+
item.shouldUpdateClear) {
|
|
44
|
+
result[item.name] =
|
|
45
|
+
typeof item.shouldUpdateClear === "boolean"
|
|
46
|
+
? item.shouldUpdateNames
|
|
47
|
+
: item.shouldUpdateClear;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return result;
|
|
52
|
+
}, [items]);
|
|
53
|
+
// 依赖关系发生改变 是否需要清空依赖项逻辑
|
|
54
|
+
var onValuesChangeHandle = useCallback(function (changedValues, allValues) {
|
|
55
|
+
if (changedValues) {
|
|
56
|
+
var keys_1 = Object.keys(changedValues);
|
|
57
|
+
var nameKeys = Object.keys(itemsShouldUpdate);
|
|
58
|
+
nameKeys.forEach(function (nameKey) {
|
|
59
|
+
var _a;
|
|
60
|
+
var _b;
|
|
61
|
+
var shouldUpdateClear = itemsShouldUpdate[nameKey]
|
|
62
|
+
? itemsShouldUpdate[nameKey]
|
|
63
|
+
: [];
|
|
64
|
+
if (keys_1.find(function (key) { return shouldUpdateClear.includes(key); })) {
|
|
65
|
+
(_b = form === null || form === void 0 ? void 0 : form.setFieldsValue) === null || _b === void 0 ? void 0 : _b.call(form, (_a = {},
|
|
66
|
+
_a[nameKey] = undefined,
|
|
67
|
+
_a));
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
onValuesChange && onValuesChange(changedValues, allValues);
|
|
72
|
+
}, [onValuesChange, itemsShouldUpdate, form]);
|
|
73
|
+
var _c = useBtnHandle(form, {
|
|
74
|
+
onSearchHandle: onSearchHandle,
|
|
75
|
+
onResetHandle: onResetHandle,
|
|
76
|
+
}), onSearchHandleInner = _c.onSearchHandleInner, onResetHandleInner = _c.onResetHandleInner;
|
|
77
|
+
return (jsxs(Form$1, __assign({ form: form, onValuesChange: onValuesChangeHandle }, restProps, { className: wrapClasses }, { children: [jsx("div", __assign({ className: leftClasses }, { children: items ? (jsx(FormItems, { items: dynamicKey ? newItems : configInfoItems, outsideState: outsideState })) : (children) })), dynamicKey ? (jsx(DynamicSetting, { dynamicKey: dynamicKey, parentDynamicKey: FORM_DYNAMIC_KEY, defaultList: dynamicList, onCurrentListChange: onCurrentListChange, ref: dynamicSettingRef })) : null, rightWrapVisible ? (jsxs("div", __assign({ className: rightClasses }, { children: [jsx(Button, __assign({ type: "default", onClick: onResetHandleInner }, { children: "\u91CD\u7F6E" })), jsx(Button, __assign({ type: "primary", onClick: onSearchHandleInner }, { children: "\u67E5\u8BE2" }))] }))) : null] })));
|
|
78
|
+
};
|
|
79
|
+
var MemoForm = memo(Form);
|
|
80
|
+
MemoForm.displayName = "ZTXK_WEBUI_Form";
|
|
81
|
+
MemoForm.useForm = Form$1.useForm;
|
|
82
|
+
MemoForm.Item = Form$1.Item;
|
|
83
|
+
MemoForm.List = Form$1.List;
|
|
84
|
+
MemoForm.ErrorList = Form$1.ErrorList;
|
|
85
|
+
MemoForm.Provider = Form$1.Provider;
|
|
86
|
+
MemoForm.useFormInstance = Form$1.useFormInstance;
|
|
87
|
+
MemoForm.useWatch = Form$1.useWatch;
|
|
88
|
+
|
|
89
|
+
export { FORM_DYNAMIC_KEY, MemoForm as default };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { __assign } from '../_virtual/_tslib.js';
|
|
2
|
+
import { jsx, Fragment } from 'react/jsx-runtime';
|
|
3
|
+
import FormItem from '../formitem/formItem.js';
|
|
4
|
+
|
|
5
|
+
var FormItems = function (props) {
|
|
6
|
+
var items = props.items, outsideState = props.outsideState;
|
|
7
|
+
return (jsx(Fragment, { children: Array.isArray(items)
|
|
8
|
+
? items === null || items === void 0 ? void 0 : items.map(function (item, index) {
|
|
9
|
+
return (jsx(FormItem, __assign({ index: index }, item, { outsideState: outsideState }), "".concat(item.name)));
|
|
10
|
+
})
|
|
11
|
+
: null }));
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export { FormItems as default };
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { __assign } from '../_virtual/_tslib.js';
|
|
2
|
+
import { useMemo, useRef, useEffect, useState, useCallback } from 'react';
|
|
3
|
+
import { getCurrentDynamicItems } from '../dynamicsetting/useDynamic.js';
|
|
4
|
+
import { FORM_DYNAMIC_KEY } from './form.js';
|
|
5
|
+
|
|
6
|
+
// 根据表单配置信息 及 表单项items 生成新的表单项items
|
|
7
|
+
function useFormConfigInfoCreateNewItems(formConfigInfo, items) {
|
|
8
|
+
var configInfoItems = useMemo(function () {
|
|
9
|
+
if (formConfigInfo) {
|
|
10
|
+
return items === null || items === void 0 ? void 0 : items.map(function (item) {
|
|
11
|
+
var _a, _b, _c;
|
|
12
|
+
var name = item.name, configName = item.configName;
|
|
13
|
+
var key = configName || name;
|
|
14
|
+
return __assign(__assign({}, item), { isDisplay: (_a = formConfigInfo[key]) === null || _a === void 0 ? void 0 : _a.isDisplay, isRequired: (_b = formConfigInfo[key]) === null || _b === void 0 ? void 0 : _b.isRequired, isChangeable: (_c = formConfigInfo[key]) === null || _c === void 0 ? void 0 : _c.isChangeable });
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
return items;
|
|
18
|
+
}, [formConfigInfo, items]);
|
|
19
|
+
return { configInfoItems: configInfoItems };
|
|
20
|
+
}
|
|
21
|
+
// 根据新的表单项items 经过 dynamic处理后 得到最新的配置信息
|
|
22
|
+
function useDynamicListByItems(items, dynamicKey, formConfigInfo) {
|
|
23
|
+
// 动态列配置手动刷新基础配置
|
|
24
|
+
var dynamicSettingRef = useRef({});
|
|
25
|
+
// 根据子元素生成动态列配置信息
|
|
26
|
+
var dynamicList = useMemo(function () {
|
|
27
|
+
var result = [];
|
|
28
|
+
if (dynamicKey && items) {
|
|
29
|
+
result = items.map(function (item) {
|
|
30
|
+
var name = item.name, label = item.label, dynamicDisabled = item.dynamicDisabled, isDisplay = item.isDisplay;
|
|
31
|
+
return {
|
|
32
|
+
key: name,
|
|
33
|
+
label: label,
|
|
34
|
+
disabled: dynamicDisabled === true ? true : false,
|
|
35
|
+
// 如果用户传入了 isDisplay
|
|
36
|
+
// 如果缓存中有值,还是以缓存为主
|
|
37
|
+
// 如果缓存中无值,那么以这个传入的为主
|
|
38
|
+
checked: isDisplay === false ? false : true,
|
|
39
|
+
};
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
return result;
|
|
43
|
+
}, [dynamicKey, items]);
|
|
44
|
+
// 如果表单配置信息发生改变,那么重置下初始化值
|
|
45
|
+
useEffect(function () {
|
|
46
|
+
var _a, _b;
|
|
47
|
+
if (formConfigInfo && dynamicKey) {
|
|
48
|
+
(_b = (_a = dynamicSettingRef.current) === null || _a === void 0 ? void 0 : _a.setList) === null || _b === void 0 ? void 0 : _b.call(_a, dynamicList);
|
|
49
|
+
}
|
|
50
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
51
|
+
}, [formConfigInfo, dynamicKey]);
|
|
52
|
+
// 变化的动态列配置信息
|
|
53
|
+
var _a = useState(function () {
|
|
54
|
+
return getCurrentDynamicItems(dynamicKey, FORM_DYNAMIC_KEY, dynamicList);
|
|
55
|
+
}), currentDynamicList = _a[0], setCurrentDynamicList = _a[1];
|
|
56
|
+
var onCurrentListChange = useCallback(function (newDynamicList) {
|
|
57
|
+
setCurrentDynamicList(newDynamicList);
|
|
58
|
+
}, []);
|
|
59
|
+
// 获取新的子元素
|
|
60
|
+
var newItems = useMemo(function () {
|
|
61
|
+
var result = [];
|
|
62
|
+
if (Array.isArray(currentDynamicList) && currentDynamicList.length > 0) {
|
|
63
|
+
currentDynamicList.forEach(function (item) {
|
|
64
|
+
var key = item.key, checked = item.checked;
|
|
65
|
+
var childrenItem = items === null || items === void 0 ? void 0 : items.find(function (item) { return (item === null || item === void 0 ? void 0 : item.name) === key; });
|
|
66
|
+
if (childrenItem) {
|
|
67
|
+
if (!checked) {
|
|
68
|
+
childrenItem.isDisplay = false;
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
childrenItem.isDisplay = true;
|
|
72
|
+
}
|
|
73
|
+
result.push(childrenItem);
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
return result;
|
|
78
|
+
}, [items, currentDynamicList]);
|
|
79
|
+
return {
|
|
80
|
+
dynamicList: dynamicList,
|
|
81
|
+
currentDynamicList: currentDynamicList,
|
|
82
|
+
onCurrentListChange: onCurrentListChange,
|
|
83
|
+
newItems: newItems,
|
|
84
|
+
dynamicSettingRef: dynamicSettingRef,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
// 右侧按钮组
|
|
88
|
+
function useBtnHandle(form, handleObj) {
|
|
89
|
+
var onResetHandle = handleObj.onResetHandle, onSearchHandle = handleObj.onSearchHandle;
|
|
90
|
+
var onResetHandleInner = useCallback(function () {
|
|
91
|
+
form === null || form === void 0 ? void 0 : form.resetFields();
|
|
92
|
+
onResetHandle && onResetHandle();
|
|
93
|
+
}, [form, onResetHandle]);
|
|
94
|
+
var onSearchHandleInner = useCallback(function () {
|
|
95
|
+
// 当前表单数据
|
|
96
|
+
var currentFormParams = form === null || form === void 0 ? void 0 : form.getFieldsValue();
|
|
97
|
+
onSearchHandle && onSearchHandle(currentFormParams);
|
|
98
|
+
}, [form, onSearchHandle]);
|
|
99
|
+
return {
|
|
100
|
+
onResetHandleInner: onResetHandleInner,
|
|
101
|
+
onSearchHandleInner: onSearchHandleInner,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export { useBtnHandle, useDynamicListByItems, useFormConfigInfoCreateNewItems };
|