@zat-design/sisyphus-react 3.6.5-beta.1 → 3.6.5-beta.10
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/es/ProForm/index.d.ts +3 -2
- package/es/ProForm/index.js +3 -17
- package/es/ProForm/utils/useShouldUpdate.js +9 -1
- package/es/ProForm/utils/useWatch.d.ts +7 -0
- package/es/ProForm/utils/useWatch.js +77 -0
- package/es/ProTable/utils.js +1 -1
- package/es/ProTree/components/ProTreeSelect/index.js +15 -4
- package/lib/ProForm/index.d.ts +3 -2
- package/lib/ProForm/index.js +2 -16
- package/lib/ProForm/utils/useShouldUpdate.js +9 -1
- package/lib/ProForm/utils/useWatch.d.ts +7 -0
- package/lib/ProForm/utils/useWatch.js +87 -0
- package/lib/ProTable/utils.js +1 -1
- package/lib/ProTree/components/ProTreeSelect/index.js +15 -4
- package/package.json +2 -2
package/es/ProForm/index.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FormInstance } from 'antd';
|
|
2
2
|
import React, { ForwardRefRenderFunction } from 'react';
|
|
3
3
|
import { FormProviderProps } from 'antd/es/form/context';
|
|
4
4
|
import { ProFormProps } from './propsType';
|
|
5
5
|
import { useForm } from './utils/useForm';
|
|
6
|
+
import useWatch from './utils/useWatch';
|
|
6
7
|
interface IProForm<T = any> extends ForwardRefRenderFunction<FormInstance<T>, ProFormProps<T>> {
|
|
7
8
|
useForm: typeof useForm;
|
|
8
|
-
useWatch: typeof
|
|
9
|
+
useWatch: typeof useWatch;
|
|
9
10
|
[key: string]: any;
|
|
10
11
|
}
|
|
11
12
|
declare const ProFormForward: IProForm;
|
package/es/ProForm/index.js
CHANGED
|
@@ -16,7 +16,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
16
16
|
import { DoubleLeftOutlined } from '@ant-design/icons';
|
|
17
17
|
import classnames from 'classnames';
|
|
18
18
|
import React, { forwardRef, useImperativeHandle, useMemo } from 'react';
|
|
19
|
-
import { isObject,
|
|
19
|
+
import { isObject, merge } from 'lodash';
|
|
20
20
|
import { FormFooter, InputRange, ProAddress, ProCascader, ProCertNo, ProCertValidity, ProCombination, ProModalSelect, ProNumberRange, ProRangeBox, ProTimeLimit, transferAddressInfoToRegion, ProUpload, ProTreeModal, ProTree, EnumSelect } from './components';
|
|
21
21
|
import RenderFields from './components/render/RenderFields';
|
|
22
22
|
import { useProConfig, useContextForms } from '../ProConfigProvider';
|
|
@@ -24,6 +24,7 @@ import { getLayout, splitNameStr, useControlled, initialValuesToNames, filterInt
|
|
|
24
24
|
import { useForm } from './utils/useForm';
|
|
25
25
|
import { useFieldProps } from './utils/useFieldProps';
|
|
26
26
|
import locale from '../locale';
|
|
27
|
+
import useWatch from './utils/useWatch';
|
|
27
28
|
var ProForm = function ProForm(props, ref) {
|
|
28
29
|
var _forms$formKey, _localStorage, _ref;
|
|
29
30
|
var _props$mode = props.mode,
|
|
@@ -273,22 +274,7 @@ var ProForm = function ProForm(props, ref) {
|
|
|
273
274
|
// @ts-ignore
|
|
274
275
|
var ProFormForward = /*#__PURE__*/forwardRef(ProForm);
|
|
275
276
|
ProFormForward.useForm = useForm;
|
|
276
|
-
ProFormForward.useWatch =
|
|
277
|
-
if (isString(watchValue)) {
|
|
278
|
-
var watchValues = [watchValue];
|
|
279
|
-
watchValues.forEach(function (item) {
|
|
280
|
-
_Form.useWatch(item, form);
|
|
281
|
-
});
|
|
282
|
-
return form.getFieldsValue(watchValues);
|
|
283
|
-
}
|
|
284
|
-
if (watchValue.length) {
|
|
285
|
-
watchValue.forEach(function (item) {
|
|
286
|
-
_Form.useWatch(item, form);
|
|
287
|
-
});
|
|
288
|
-
return form.getFieldsValue(watchValue);
|
|
289
|
-
}
|
|
290
|
-
return _Form.useWatch([], form);
|
|
291
|
-
};
|
|
277
|
+
ProFormForward.useWatch = useWatch;
|
|
292
278
|
export var ProFormProvider = function ProFormProvider(props) {
|
|
293
279
|
var onFormChange = props.onFormChange,
|
|
294
280
|
onFormFinish = props.onFormFinish,
|
|
@@ -22,6 +22,7 @@ var useShouldUpdate = function useShouldUpdate(props) {
|
|
|
22
22
|
names = formItemProps.names,
|
|
23
23
|
dependencies = formItemProps.dependencies;
|
|
24
24
|
var timerRef = useRef();
|
|
25
|
+
var needClear = useRef(); // 是否需要执行清值操作
|
|
25
26
|
var showRef = useRef();
|
|
26
27
|
var disabledRef = useRef();
|
|
27
28
|
var requiredRef = useRef();
|
|
@@ -158,17 +159,24 @@ var useShouldUpdate = function useShouldUpdate(props) {
|
|
|
158
159
|
}) : fieldProps;
|
|
159
160
|
// 清值防抖 多次刷新时以最后一次为准
|
|
160
161
|
if (clearNotShow !== false && (name || names)) {
|
|
162
|
+
// 当show为其他变为false的时候记录一次需要清值
|
|
163
|
+
if (_show !== showRef.current && _show === false) {
|
|
164
|
+
needClear.current = true;
|
|
165
|
+
}
|
|
161
166
|
if (_show === false) {
|
|
162
167
|
clearTimeout(timerRef.current);
|
|
163
168
|
timerRef.current = setTimeout(function () {
|
|
169
|
+
if (needClear.current !== true) return;
|
|
164
170
|
if (Array.isArray(names)) {
|
|
165
171
|
form.resetFields(names);
|
|
166
172
|
} else {
|
|
167
173
|
var clearName = formItemProps.namePath ? formItemProps.namePath.slice(0, -1).concat(formItemProps.name) : formItemProps.name;
|
|
168
174
|
form.resetFields([clearName]);
|
|
169
175
|
}
|
|
170
|
-
|
|
176
|
+
needClear.current = false;
|
|
177
|
+
}, 300);
|
|
171
178
|
} else {
|
|
179
|
+
needClear.current = false;
|
|
172
180
|
clearTimeout(timerRef.current);
|
|
173
181
|
}
|
|
174
182
|
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { InternalNamePath, FormInstance, NamePath } from 'rc-field-form/es/interface';
|
|
2
|
+
export declare function toArray<T>(value?: T | T[] | null): T[];
|
|
3
|
+
export declare function getNamePath(path: NamePath | null): InternalNamePath;
|
|
4
|
+
export declare function stringify(value: any): string | number;
|
|
5
|
+
declare function useWatch(dependencies: string, form?: FormInstance, wait?: number): any;
|
|
6
|
+
declare function useWatch(dependencies: NamePath[], form?: FormInstance, wait?: number): any[];
|
|
7
|
+
export default useWatch;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
+
import { debounce } from 'lodash';
|
|
3
|
+
import { HOOK_MARK } from 'rc-field-form/es/FieldContext';
|
|
4
|
+
import warning from 'rc-util/lib/warning';
|
|
5
|
+
import { useState, useEffect, useRef, useMemo } from 'react';
|
|
6
|
+
export function toArray(value) {
|
|
7
|
+
if (value === undefined || value === null) {
|
|
8
|
+
return [];
|
|
9
|
+
}
|
|
10
|
+
return Array.isArray(value) ? value : [value];
|
|
11
|
+
}
|
|
12
|
+
export function getNamePath(path) {
|
|
13
|
+
return toArray(path);
|
|
14
|
+
}
|
|
15
|
+
export function stringify(value) {
|
|
16
|
+
try {
|
|
17
|
+
return JSON.stringify(value);
|
|
18
|
+
} catch (err) {
|
|
19
|
+
return Math.random();
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
// 创建之后namepath就不可变
|
|
23
|
+
var useWatchWarning = process.env.NODE_ENV !== 'production' ? function (namePath) {
|
|
24
|
+
var fullyStr = JSON.stringify(namePath);
|
|
25
|
+
var nameStrRef = useRef(fullyStr);
|
|
26
|
+
warning(nameStrRef.current === fullyStr, '`useWatch` is not support dynamic `namePath`. Please provide static instead.');
|
|
27
|
+
} : function () {};
|
|
28
|
+
function useWatch(dependencies, form, wait) {
|
|
29
|
+
var isSingle = typeof dependencies === 'string';
|
|
30
|
+
var _useState = useState({}),
|
|
31
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
32
|
+
value = _useState2[0],
|
|
33
|
+
setValue = _useState2[1];
|
|
34
|
+
var valueStr = useMemo(function () {
|
|
35
|
+
return stringify(value);
|
|
36
|
+
}, [value]);
|
|
37
|
+
var valueStrRef = useRef(valueStr);
|
|
38
|
+
valueStrRef.current = valueStr;
|
|
39
|
+
var formInstance = form;
|
|
40
|
+
var isValidForm = formInstance && formInstance._init;
|
|
41
|
+
var _dependencies = isSingle ? [dependencies] : dependencies;
|
|
42
|
+
var namePaths = _dependencies === null || _dependencies === void 0 ? void 0 : _dependencies.map(function (item) {
|
|
43
|
+
return getNamePath(item);
|
|
44
|
+
});
|
|
45
|
+
var namePathsRef = useRef(namePaths);
|
|
46
|
+
namePathsRef.current = namePaths;
|
|
47
|
+
useWatchWarning(namePaths);
|
|
48
|
+
useEffect(function () {
|
|
49
|
+
if (!isValidForm) return;
|
|
50
|
+
var getFieldsValue = formInstance.getFieldsValue,
|
|
51
|
+
getInternalHooks = formInstance.getInternalHooks;
|
|
52
|
+
var _getInternalHooks = getInternalHooks(HOOK_MARK),
|
|
53
|
+
registerWatch = _getInternalHooks.registerWatch;
|
|
54
|
+
var callback = function callback() {
|
|
55
|
+
var newValue = getFieldsValue(_dependencies);
|
|
56
|
+
var nextValueStr = stringify(newValue);
|
|
57
|
+
// Compare stringify in case it's nest object
|
|
58
|
+
if (valueStrRef.current !== nextValueStr) {
|
|
59
|
+
valueStrRef.current = nextValueStr;
|
|
60
|
+
setValue(getFieldsValue(_dependencies));
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
// 增加防抖
|
|
64
|
+
if (wait) {
|
|
65
|
+
callback = debounce(callback, wait);
|
|
66
|
+
}
|
|
67
|
+
var cancelRegister = registerWatch(callback);
|
|
68
|
+
var initialValue = getFieldsValue(_dependencies);
|
|
69
|
+
setValue(initialValue);
|
|
70
|
+
return cancelRegister;
|
|
71
|
+
},
|
|
72
|
+
// We do not need re-register since namePath content is the same
|
|
73
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
74
|
+
[isValidForm]);
|
|
75
|
+
return value;
|
|
76
|
+
}
|
|
77
|
+
export default useWatch;
|
package/es/ProTable/utils.js
CHANGED
|
@@ -105,7 +105,7 @@ export var formatColumn = function formatColumn(column, originalObj, dataSourceO
|
|
|
105
105
|
if (['percentage', 'permillage'].includes(valueType)) {
|
|
106
106
|
column.render = function (value, record, index) {
|
|
107
107
|
var multiple = valueType === 'percentage' ? 100 : 1000;
|
|
108
|
-
var realValue = tools.calc(Number(value), '*', multiple);
|
|
108
|
+
var realValue = tools.calc(Number(value !== null && value !== void 0 ? value : 0), '*', multiple);
|
|
109
109
|
var renderValue = getDecimalDigits(value) > valueTypePrecision ? realValue : realValue.toFixed(valueTypePrecision);
|
|
110
110
|
var originalValue = getOriginalValue(value, record, originalObj, rowKey, dataIndex);
|
|
111
111
|
var originalRealValue = tools.calc(Number(originalValue || null), '*', multiple);
|
|
@@ -355,9 +355,9 @@ export var ProTreeSelect = function ProTreeSelect(props, ref) {
|
|
|
355
355
|
}
|
|
356
356
|
// 迭代完子节点向上回溯,如果有匹配到得子节点,那么加入当前节点得孩子对象上,否则加入得是空数组
|
|
357
357
|
item.children = currentNodeChild;
|
|
358
|
-
// let tag = false;
|
|
359
358
|
// 判断节点title是否包含关键字 如果有,那么直接进行下一循环
|
|
360
|
-
|
|
359
|
+
// @ts-ignore
|
|
360
|
+
if (item[label].indexOf(keyWord) > -1 && (selectProps === null || selectProps === void 0 ? void 0 : selectProps.mode) !== 'treeSelect') {
|
|
361
361
|
var regExp = new RegExp(keyWord);
|
|
362
362
|
item[label] = item[label].replace(regExp, "<span class=\"highlight-search-text\">".concat(keyWord, "</span>"));
|
|
363
363
|
}
|
|
@@ -419,11 +419,22 @@ export var ProTreeSelect = function ProTreeSelect(props, ref) {
|
|
|
419
419
|
}
|
|
420
420
|
var handleChange = function handleChange(newVal, label, extra) {
|
|
421
421
|
// newVal回来得一定是label、value
|
|
422
|
+
var _selectList = selectList.map(function (item) {
|
|
423
|
+
var label = item.label;
|
|
424
|
+
var _label = label;
|
|
425
|
+
if (label) {
|
|
426
|
+
var regex = /<span class="highlight-search-text">(.*?)<\/span>/g;
|
|
427
|
+
_label = item[label] = label === null || label === void 0 ? void 0 : label.replace(regex, '$1');
|
|
428
|
+
}
|
|
429
|
+
return _objectSpread(_objectSpread({}, item), {}, {
|
|
430
|
+
label: _label
|
|
431
|
+
});
|
|
432
|
+
});
|
|
422
433
|
var result = newVal;
|
|
423
434
|
if (props === null || props === void 0 ? void 0 : props.labelInValue) {
|
|
424
|
-
result = getLabelByValue(
|
|
435
|
+
result = getLabelByValue(_selectList, newVal);
|
|
425
436
|
}
|
|
426
|
-
var options = findTreeNode(
|
|
437
|
+
var options = findTreeNode(_selectList, extra === null || extra === void 0 ? void 0 : extra.triggerValue);
|
|
427
438
|
onChange && onChange(result, options, extra);
|
|
428
439
|
// 重置搜索
|
|
429
440
|
showSearch && searchTreeEvent('');
|
package/lib/ProForm/index.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FormInstance } from 'antd';
|
|
2
2
|
import React, { ForwardRefRenderFunction } from 'react';
|
|
3
3
|
import { FormProviderProps } from 'antd/es/form/context';
|
|
4
4
|
import { ProFormProps } from './propsType';
|
|
5
5
|
import { useForm } from './utils/useForm';
|
|
6
|
+
import useWatch from './utils/useWatch';
|
|
6
7
|
interface IProForm<T = any> extends ForwardRefRenderFunction<FormInstance<T>, ProFormProps<T>> {
|
|
7
8
|
useForm: typeof useForm;
|
|
8
|
-
useWatch: typeof
|
|
9
|
+
useWatch: typeof useWatch;
|
|
9
10
|
[key: string]: any;
|
|
10
11
|
}
|
|
11
12
|
declare const ProFormForward: IProForm;
|
package/lib/ProForm/index.js
CHANGED
|
@@ -24,6 +24,7 @@ var _index = require("./utils/index");
|
|
|
24
24
|
var _useForm3 = require("./utils/useForm");
|
|
25
25
|
var _useFieldProps = require("./utils/useFieldProps");
|
|
26
26
|
var _locale = _interopRequireDefault(require("../locale"));
|
|
27
|
+
var _useWatch = _interopRequireDefault(require("./utils/useWatch"));
|
|
27
28
|
var _excluded = ["mode", "span", "disabled", "isView", "columns", "footer", "onOk", "okText", "onCancel", "confirmLoading", "cancelText", "form", "children", "rowProps", "className", "expand", "expandOpen", "expandOpenChange", "viewEmpty", "labelAlign", "labelWidth", "onValuesChange", "onFinish", "originalValues", "submitOnEnter", "clearNotShow", "initialValues", "requiredOnView", "formId", "required", "originalDiffTip", "formKey", "globalControl", "scrollToError", "optimize"];
|
|
28
29
|
var ProForm = function ProForm(props, ref) {
|
|
29
30
|
var _forms$formKey, _localStorage, _ref;
|
|
@@ -274,22 +275,7 @@ var ProForm = function ProForm(props, ref) {
|
|
|
274
275
|
// @ts-ignore
|
|
275
276
|
var ProFormForward = /*#__PURE__*/(0, _react.forwardRef)(ProForm);
|
|
276
277
|
ProFormForward.useForm = _useForm3.useForm;
|
|
277
|
-
ProFormForward.useWatch =
|
|
278
|
-
if ((0, _lodash.isString)(watchValue)) {
|
|
279
|
-
var watchValues = [watchValue];
|
|
280
|
-
watchValues.forEach(function (item) {
|
|
281
|
-
_antd.Form.useWatch(item, form);
|
|
282
|
-
});
|
|
283
|
-
return form.getFieldsValue(watchValues);
|
|
284
|
-
}
|
|
285
|
-
if (watchValue.length) {
|
|
286
|
-
watchValue.forEach(function (item) {
|
|
287
|
-
_antd.Form.useWatch(item, form);
|
|
288
|
-
});
|
|
289
|
-
return form.getFieldsValue(watchValue);
|
|
290
|
-
}
|
|
291
|
-
return _antd.Form.useWatch([], form);
|
|
292
|
-
};
|
|
278
|
+
ProFormForward.useWatch = _useWatch.default;
|
|
293
279
|
var ProFormProvider = exports.ProFormProvider = function ProFormProvider(props) {
|
|
294
280
|
var onFormChange = props.onFormChange,
|
|
295
281
|
onFormFinish = props.onFormFinish,
|
|
@@ -29,6 +29,7 @@ var useShouldUpdate = function useShouldUpdate(props) {
|
|
|
29
29
|
names = formItemProps.names,
|
|
30
30
|
dependencies = formItemProps.dependencies;
|
|
31
31
|
var timerRef = (0, _react.useRef)();
|
|
32
|
+
var needClear = (0, _react.useRef)(); // 是否需要执行清值操作
|
|
32
33
|
var showRef = (0, _react.useRef)();
|
|
33
34
|
var disabledRef = (0, _react.useRef)();
|
|
34
35
|
var requiredRef = (0, _react.useRef)();
|
|
@@ -165,17 +166,24 @@ var useShouldUpdate = function useShouldUpdate(props) {
|
|
|
165
166
|
}) : fieldProps;
|
|
166
167
|
// 清值防抖 多次刷新时以最后一次为准
|
|
167
168
|
if (clearNotShow !== false && (name || names)) {
|
|
169
|
+
// 当show为其他变为false的时候记录一次需要清值
|
|
170
|
+
if (_show !== showRef.current && _show === false) {
|
|
171
|
+
needClear.current = true;
|
|
172
|
+
}
|
|
168
173
|
if (_show === false) {
|
|
169
174
|
clearTimeout(timerRef.current);
|
|
170
175
|
timerRef.current = setTimeout(function () {
|
|
176
|
+
if (needClear.current !== true) return;
|
|
171
177
|
if (Array.isArray(names)) {
|
|
172
178
|
form.resetFields(names);
|
|
173
179
|
} else {
|
|
174
180
|
var clearName = formItemProps.namePath ? formItemProps.namePath.slice(0, -1).concat(formItemProps.name) : formItemProps.name;
|
|
175
181
|
form.resetFields([clearName]);
|
|
176
182
|
}
|
|
177
|
-
|
|
183
|
+
needClear.current = false;
|
|
184
|
+
}, 300);
|
|
178
185
|
} else {
|
|
186
|
+
needClear.current = false;
|
|
179
187
|
clearTimeout(timerRef.current);
|
|
180
188
|
}
|
|
181
189
|
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { InternalNamePath, FormInstance, NamePath } from 'rc-field-form/es/interface';
|
|
2
|
+
export declare function toArray<T>(value?: T | T[] | null): T[];
|
|
3
|
+
export declare function getNamePath(path: NamePath | null): InternalNamePath;
|
|
4
|
+
export declare function stringify(value: any): string | number;
|
|
5
|
+
declare function useWatch(dependencies: string, form?: FormInstance, wait?: number): any;
|
|
6
|
+
declare function useWatch(dependencies: NamePath[], form?: FormInstance, wait?: number): any[];
|
|
7
|
+
export default useWatch;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
exports.getNamePath = getNamePath;
|
|
9
|
+
exports.stringify = stringify;
|
|
10
|
+
exports.toArray = toArray;
|
|
11
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
12
|
+
var _lodash = require("lodash");
|
|
13
|
+
var _FieldContext = require("rc-field-form/es/FieldContext");
|
|
14
|
+
var _warning = _interopRequireDefault(require("rc-util/lib/warning"));
|
|
15
|
+
var _react = require("react");
|
|
16
|
+
function toArray(value) {
|
|
17
|
+
if (value === undefined || value === null) {
|
|
18
|
+
return [];
|
|
19
|
+
}
|
|
20
|
+
return Array.isArray(value) ? value : [value];
|
|
21
|
+
}
|
|
22
|
+
function getNamePath(path) {
|
|
23
|
+
return toArray(path);
|
|
24
|
+
}
|
|
25
|
+
function stringify(value) {
|
|
26
|
+
try {
|
|
27
|
+
return JSON.stringify(value);
|
|
28
|
+
} catch (err) {
|
|
29
|
+
return Math.random();
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
// 创建之后namepath就不可变
|
|
33
|
+
var useWatchWarning = process.env.NODE_ENV !== 'production' ? function (namePath) {
|
|
34
|
+
var fullyStr = JSON.stringify(namePath);
|
|
35
|
+
var nameStrRef = (0, _react.useRef)(fullyStr);
|
|
36
|
+
(0, _warning.default)(nameStrRef.current === fullyStr, '`useWatch` is not support dynamic `namePath`. Please provide static instead.');
|
|
37
|
+
} : function () {};
|
|
38
|
+
function useWatch(dependencies, form, wait) {
|
|
39
|
+
var isSingle = typeof dependencies === 'string';
|
|
40
|
+
var _useState = (0, _react.useState)({}),
|
|
41
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
42
|
+
value = _useState2[0],
|
|
43
|
+
setValue = _useState2[1];
|
|
44
|
+
var valueStr = (0, _react.useMemo)(function () {
|
|
45
|
+
return stringify(value);
|
|
46
|
+
}, [value]);
|
|
47
|
+
var valueStrRef = (0, _react.useRef)(valueStr);
|
|
48
|
+
valueStrRef.current = valueStr;
|
|
49
|
+
var formInstance = form;
|
|
50
|
+
var isValidForm = formInstance && formInstance._init;
|
|
51
|
+
var _dependencies = isSingle ? [dependencies] : dependencies;
|
|
52
|
+
var namePaths = _dependencies === null || _dependencies === void 0 ? void 0 : _dependencies.map(function (item) {
|
|
53
|
+
return getNamePath(item);
|
|
54
|
+
});
|
|
55
|
+
var namePathsRef = (0, _react.useRef)(namePaths);
|
|
56
|
+
namePathsRef.current = namePaths;
|
|
57
|
+
useWatchWarning(namePaths);
|
|
58
|
+
(0, _react.useEffect)(function () {
|
|
59
|
+
if (!isValidForm) return;
|
|
60
|
+
var getFieldsValue = formInstance.getFieldsValue,
|
|
61
|
+
getInternalHooks = formInstance.getInternalHooks;
|
|
62
|
+
var _getInternalHooks = getInternalHooks(_FieldContext.HOOK_MARK),
|
|
63
|
+
registerWatch = _getInternalHooks.registerWatch;
|
|
64
|
+
var callback = function callback() {
|
|
65
|
+
var newValue = getFieldsValue(_dependencies);
|
|
66
|
+
var nextValueStr = stringify(newValue);
|
|
67
|
+
// Compare stringify in case it's nest object
|
|
68
|
+
if (valueStrRef.current !== nextValueStr) {
|
|
69
|
+
valueStrRef.current = nextValueStr;
|
|
70
|
+
setValue(getFieldsValue(_dependencies));
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
// 增加防抖
|
|
74
|
+
if (wait) {
|
|
75
|
+
callback = (0, _lodash.debounce)(callback, wait);
|
|
76
|
+
}
|
|
77
|
+
var cancelRegister = registerWatch(callback);
|
|
78
|
+
var initialValue = getFieldsValue(_dependencies);
|
|
79
|
+
setValue(initialValue);
|
|
80
|
+
return cancelRegister;
|
|
81
|
+
},
|
|
82
|
+
// We do not need re-register since namePath content is the same
|
|
83
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
84
|
+
[isValidForm]);
|
|
85
|
+
return value;
|
|
86
|
+
}
|
|
87
|
+
var _default = exports.default = useWatch;
|
package/lib/ProTable/utils.js
CHANGED
|
@@ -112,7 +112,7 @@ var formatColumn = exports.formatColumn = function formatColumn(column, original
|
|
|
112
112
|
if (['percentage', 'permillage'].includes(valueType)) {
|
|
113
113
|
column.render = function (value, record, index) {
|
|
114
114
|
var multiple = valueType === 'percentage' ? 100 : 1000;
|
|
115
|
-
var realValue = _utils.tools.calc(Number(value), '*', multiple);
|
|
115
|
+
var realValue = _utils.tools.calc(Number(value !== null && value !== void 0 ? value : 0), '*', multiple);
|
|
116
116
|
var renderValue = getDecimalDigits(value) > valueTypePrecision ? realValue : realValue.toFixed(valueTypePrecision);
|
|
117
117
|
var originalValue = getOriginalValue(value, record, originalObj, rowKey, dataIndex);
|
|
118
118
|
var originalRealValue = _utils.tools.calc(Number(originalValue || null), '*', multiple);
|
|
@@ -355,9 +355,9 @@ var ProTreeSelect = exports.ProTreeSelect = function ProTreeSelect(props, ref) {
|
|
|
355
355
|
}
|
|
356
356
|
// 迭代完子节点向上回溯,如果有匹配到得子节点,那么加入当前节点得孩子对象上,否则加入得是空数组
|
|
357
357
|
item.children = currentNodeChild;
|
|
358
|
-
// let tag = false;
|
|
359
358
|
// 判断节点title是否包含关键字 如果有,那么直接进行下一循环
|
|
360
|
-
|
|
359
|
+
// @ts-ignore
|
|
360
|
+
if (item[label].indexOf(keyWord) > -1 && (selectProps === null || selectProps === void 0 ? void 0 : selectProps.mode) !== 'treeSelect') {
|
|
361
361
|
var regExp = new RegExp(keyWord);
|
|
362
362
|
item[label] = item[label].replace(regExp, "<span class=\"highlight-search-text\">".concat(keyWord, "</span>"));
|
|
363
363
|
}
|
|
@@ -419,11 +419,22 @@ var ProTreeSelect = exports.ProTreeSelect = function ProTreeSelect(props, ref) {
|
|
|
419
419
|
}
|
|
420
420
|
var handleChange = function handleChange(newVal, label, extra) {
|
|
421
421
|
// newVal回来得一定是label、value
|
|
422
|
+
var _selectList = selectList.map(function (item) {
|
|
423
|
+
var label = item.label;
|
|
424
|
+
var _label = label;
|
|
425
|
+
if (label) {
|
|
426
|
+
var regex = /<span class="highlight-search-text">(.*?)<\/span>/g;
|
|
427
|
+
_label = item[label] = label === null || label === void 0 ? void 0 : label.replace(regex, '$1');
|
|
428
|
+
}
|
|
429
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, item), {}, {
|
|
430
|
+
label: _label
|
|
431
|
+
});
|
|
432
|
+
});
|
|
422
433
|
var result = newVal;
|
|
423
434
|
if (props === null || props === void 0 ? void 0 : props.labelInValue) {
|
|
424
|
-
result = getLabelByValue(
|
|
435
|
+
result = getLabelByValue(_selectList, newVal);
|
|
425
436
|
}
|
|
426
|
-
var options = findTreeNode(
|
|
437
|
+
var options = findTreeNode(_selectList, extra === null || extra === void 0 ? void 0 : extra.triggerValue);
|
|
427
438
|
onChange && onChange(result, options, extra);
|
|
428
439
|
// 重置搜索
|
|
429
440
|
showSearch && searchTreeEvent('');
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zat-design/sisyphus-react",
|
|
3
|
-
"version": "3.6.5-beta.
|
|
3
|
+
"version": "3.6.5-beta.10",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "es/index.js",
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
"@dnd-kit/sortable": "^7.0.2",
|
|
59
59
|
"@dnd-kit/utilities": "^3.2.1",
|
|
60
60
|
"@pansy/react-watermark": "^3.1.13",
|
|
61
|
-
"@zat-design/utils": "^1.1.
|
|
61
|
+
"@zat-design/utils": "^1.1.29",
|
|
62
62
|
"ahooks": "3.7.4",
|
|
63
63
|
"antd": "4.24.8",
|
|
64
64
|
"big.js": "^6.2.1",
|