ztxkui 4.3.21 → 4.3.22

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.
@@ -20,7 +20,7 @@ var __rest = (this && this.__rest) || function (s, e) {
20
20
  }
21
21
  return t;
22
22
  };
23
- import React, { memo } from 'react';
23
+ import React, { memo, useCallback, useMemo } from 'react';
24
24
  import { Form } from 'antd';
25
25
  import { Button } from '../../index';
26
26
  import { useDynamic } from './hooks';
@@ -28,7 +28,7 @@ import Items from './items';
28
28
  import Setting from './setting';
29
29
  import classNames from 'classnames';
30
30
  function ProForm(props) {
31
- var items = props.items, noBottom = props.noBottom, wrapClassName = props.wrapClassName, leftClassName = props.leftClassName, itemClassName = props.itemClassName, _a = props.isFlex, isFlex = _a === void 0 ? true : _a, rightWrapVisible = props.rightWrapVisible, rightClassName = props.rightClassName, onResetHandle = props.onResetHandle, onSearchHandle = props.onSearchHandle, showDynamic = props.showDynamic, showDynamicKey = props.showDynamicKey, restProps = __rest(props, ["items", "noBottom", "wrapClassName", "leftClassName", "itemClassName", "isFlex", "rightWrapVisible", "rightClassName", "onResetHandle", "onSearchHandle", "showDynamic", "showDynamicKey"]);
31
+ var items = props.items, noBottom = props.noBottom, wrapClassName = props.wrapClassName, leftClassName = props.leftClassName, itemClassName = props.itemClassName, _a = props.isFlex, isFlex = _a === void 0 ? true : _a, rightWrapVisible = props.rightWrapVisible, rightClassName = props.rightClassName, onResetHandle = props.onResetHandle, onSearchHandle = props.onSearchHandle, showDynamic = props.showDynamic, showDynamicKey = props.showDynamicKey, form = props.form, onValuesChange = props.onValuesChange, restProps = __rest(props, ["items", "noBottom", "wrapClassName", "leftClassName", "itemClassName", "isFlex", "rightWrapVisible", "rightClassName", "onResetHandle", "onSearchHandle", "showDynamic", "showDynamicKey", "form", "onValuesChange"]);
32
32
  var _b = useDynamic(showDynamic, showDynamicKey, items), initDynamicList = _b.initDynamicList, currentDynamicList = _b.currentDynamicList, setCurrentDynamicList = _b.setCurrentDynamicList, currentItems = _b.currentItems;
33
33
  var wrapClasses = classNames('pro-form', wrapClassName, {
34
34
  'pro-form--no-bottom': noBottom,
@@ -37,7 +37,43 @@ function ProForm(props) {
37
37
  'pro-form__left--flex': isFlex,
38
38
  });
39
39
  var rightClasses = classNames('pro-form__right', rightClassName);
40
- return (React.createElement(Form, __assign({}, restProps, { className: wrapClasses }),
40
+ // 获取依赖项关联
41
+ var itemsShouldUpdate = useMemo(function () {
42
+ var result = {};
43
+ if (items) {
44
+ for (var i = 0; i < items.length; i++) {
45
+ var item = items[i];
46
+ if (typeof item.name === 'string' &&
47
+ item.shouldUpdateNames &&
48
+ item.shouldUpdateClear) {
49
+ result[item.name] =
50
+ typeof item.shouldUpdateClear === 'boolean'
51
+ ? item.shouldUpdateNames
52
+ : item.shouldUpdateClear;
53
+ }
54
+ }
55
+ }
56
+ return result;
57
+ }, [items]);
58
+ // 依赖关系发生改变 是否需要清空依赖项逻辑
59
+ var onValuesCHangeHandle = useCallback(function (changedValues, allValues) {
60
+ if (changedValues) {
61
+ var keys_1 = Object.keys(changedValues);
62
+ var nameKeys_1 = Object.keys(itemsShouldUpdate);
63
+ nameKeys_1.forEach(function (nameKey) {
64
+ var _a;
65
+ var _b;
66
+ var shouldUpdateClear = nameKeys_1[nameKey];
67
+ if (keys_1.find(function (key) { return shouldUpdateClear.includes(key); })) {
68
+ (_b = form === null || form === void 0 ? void 0 : form.setFieldsValue) === null || _b === void 0 ? void 0 : _b.call(form, (_a = {},
69
+ _a[nameKey] = undefined,
70
+ _a));
71
+ }
72
+ });
73
+ }
74
+ onValuesChange && onValuesChange(changedValues, allValues);
75
+ }, [onValuesChange, itemsShouldUpdate, form]);
76
+ return (React.createElement(Form, __assign({ form: form, onValuesChange: onValuesCHangeHandle }, restProps, { className: wrapClasses }),
41
77
  React.createElement("div", { className: leftClasses },
42
78
  React.createElement(Items, { items: currentItems, itemClassName: itemClassName })),
43
79
  showDynamic && (React.createElement(Setting, { list: currentDynamicList, initList: initDynamicList, showDynamicKey: showDynamicKey, setCurrentDynamicList: setCurrentDynamicList })),
@@ -44,6 +44,10 @@ export interface IFormItem extends FormItemProps {
44
44
  * 通过shouldUpdate控制依赖关系的默认处理
45
45
  */
46
46
  shouldUpdateNames?: string[];
47
+ /**
48
+ * 依赖关系发生改变是否需要清空 当前item
49
+ */
50
+ shouldUpdateClear?: boolean | string[];
47
51
  }
48
52
  export interface IProFormProps extends FormProps {
49
53
  items: IFormItem[];
@@ -27,7 +27,7 @@ function Items(props) {
27
27
  var items = props.items, itemClassName = props.itemClassName;
28
28
  return (React.createElement(React.Fragment, null, items.map(function (item, index) {
29
29
  var _a;
30
- var render = item.render, isRequire = item.isRequire, isDisplay = item.isDisplay, isChangeable = item.isChangeable, dependencies = item.dependencies, shouldUpdate = item.shouldUpdate, shouldUpdateNames = item.shouldUpdateNames, disabled = item.disabled, noBorder = item.noBorder, width = item.width, resetItem = __rest(item, ["render", "isRequire", "isDisplay", "isChangeable", "dependencies", "shouldUpdate", "shouldUpdateNames", "disabled", "noBorder", "width"]);
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
31
  // 处理配置相关逻辑 配置优先代码
32
32
  // 传入了是否必填配置
33
33
  if (isRequire !== undefined) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ztxkui",
3
- "version": "4.3.21",
3
+ "version": "4.3.22",
4
4
  "private": false,
5
5
  "description": "React components library",
6
6
  "author": "zt-front-end",