@zat-design/sisyphus-react 3.9.5 → 3.9.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.esm.css +51 -6
- package/dist/less.esm.css +51 -6
- package/es/FormsProvider/index.d.ts +15 -0
- package/es/FormsProvider/index.js +32 -0
- package/es/ProConfigProvider/index.d.ts +0 -1
- package/es/ProConfigProvider/index.js +0 -5
- package/es/ProEditTable/utils/diffOriginal.js +11 -8
- package/es/ProForm/components/render/Render.js +4 -4
- package/es/ProForm/index.js +12 -38
- package/es/ProForm/style/index.less +1 -0
- package/es/ProForm/utils/diffOriginal.js +14 -19
- package/es/ProForm/utils/useForm.d.ts +4 -3
- package/es/ProForm/utils/useForm.js +12 -3
- package/es/ProLayout/components/ProHeader/PropTypes.d.ts +8 -0
- package/es/ProLayout/components/ProHeader/index.js +94 -28
- package/es/ProLayout/components/ProHeader/style/index.less +51 -6
- package/es/ProLayout/components/ProHeader/utils/index.d.ts +5 -0
- package/es/ProLayout/components/ProHeader/utils/index.js +14 -0
- package/es/ProLayout/style/index.less +1 -1
- package/es/ProSelect/index.js +1 -1
- package/es/index.d.ts +1 -0
- package/es/index.js +1 -0
- package/es/utils/index.d.ts +4 -1
- package/es/utils/index.js +4 -1
- package/lib/FormsProvider/index.d.ts +15 -0
- package/lib/FormsProvider/index.js +39 -0
- package/lib/ProConfigProvider/index.d.ts +0 -1
- package/lib/ProConfigProvider/index.js +0 -6
- package/lib/ProEditTable/utils/diffOriginal.js +11 -8
- package/lib/ProForm/components/render/Render.js +4 -4
- package/lib/ProForm/index.js +11 -37
- package/lib/ProForm/style/index.less +1 -0
- package/lib/ProForm/utils/diffOriginal.js +14 -19
- package/lib/ProForm/utils/useForm.d.ts +4 -3
- package/lib/ProForm/utils/useForm.js +12 -3
- package/lib/ProLayout/components/ProHeader/PropTypes.d.ts +8 -0
- package/lib/ProLayout/components/ProHeader/index.js +90 -24
- package/lib/ProLayout/components/ProHeader/style/index.less +51 -6
- package/lib/ProLayout/components/ProHeader/utils/index.d.ts +5 -0
- package/lib/ProLayout/components/ProHeader/utils/index.js +20 -0
- package/lib/ProLayout/style/index.less +1 -1
- package/lib/ProSelect/index.js +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +8 -0
- package/lib/utils/index.d.ts +4 -1
- package/lib/utils/index.js +4 -1
- package/package.json +1 -1
@@ -2,29 +2,30 @@ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
2
2
|
import "antd/es/modal/style";
|
3
3
|
import _Modal from "antd/es/modal";
|
4
4
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
5
|
-
import "antd/es/tooltip/style";
|
6
|
-
import _Tooltip from "antd/es/tooltip";
|
7
5
|
import "antd/es/breadcrumb/style";
|
8
6
|
import _Breadcrumb from "antd/es/breadcrumb";
|
9
7
|
import "antd/es/divider/style";
|
10
8
|
import _Divider from "antd/es/divider";
|
9
|
+
import "antd/es/tooltip/style";
|
10
|
+
import _Tooltip from "antd/es/tooltip";
|
11
11
|
import "antd/es/space/style";
|
12
12
|
import _Space from "antd/es/space";
|
13
13
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
14
14
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
15
15
|
/* eslint-disable react/no-array-index-key */
|
16
16
|
|
17
|
-
import { memo, useEffect, useState } from 'react';
|
17
|
+
import { memo, useEffect, useState, useRef } from 'react';
|
18
18
|
import { tools } from '@zat-design/utils';
|
19
19
|
import classnames from 'classnames';
|
20
20
|
import moment from 'moment';
|
21
|
-
import { useToggle } from 'ahooks';
|
21
|
+
import { useToggle, useSize } from 'ahooks';
|
22
22
|
import { isFunction, isEmpty, isNumber, isString } from 'lodash';
|
23
23
|
import { ReactSVG } from 'react-svg';
|
24
24
|
import foldSvg from '../../../assets/arrow.svg';
|
25
25
|
import { Copy, ProBackBtn } from './components';
|
26
26
|
import getEnumLabel from '../../../ProEnum/utils/getEnumLabel';
|
27
27
|
import locale from '../../../locale';
|
28
|
+
import { checkDescribeItemsHidden } from './utils';
|
28
29
|
var formatAmount = tools.formatAmount;
|
29
30
|
var ProHeader = function ProHeader(props) {
|
30
31
|
var _props$breadcrumbList = props.breadcrumbList,
|
@@ -64,6 +65,8 @@ var ProHeader = function ProHeader(props) {
|
|
64
65
|
_useToggle2 = _slicedToArray(_useToggle, 2),
|
65
66
|
fold = _useToggle2[0],
|
66
67
|
toggle = _useToggle2[1].toggle;
|
68
|
+
var ref = useRef(null);
|
69
|
+
var size = useSize(ref);
|
67
70
|
var _title = title;
|
68
71
|
// 面包屑配置数据源
|
69
72
|
var _breadcrumbColumns = breadcrumbColumns || breadcrumbList;
|
@@ -94,7 +97,11 @@ var ProHeader = function ProHeader(props) {
|
|
94
97
|
return null;
|
95
98
|
}
|
96
99
|
return _jsx("ul", {
|
97
|
-
className:
|
100
|
+
className: classnames({
|
101
|
+
'pro-header-describe': true,
|
102
|
+
'pro-header-describe-open': fold,
|
103
|
+
'pro-header-describe-hidden': !fold
|
104
|
+
}),
|
98
105
|
children: describeData.map(function (item, index) {
|
99
106
|
var value = item.value,
|
100
107
|
copyable = item.copyable,
|
@@ -102,20 +109,20 @@ var ProHeader = function ProHeader(props) {
|
|
102
109
|
show = _item$show === void 0 ? true : _item$show,
|
103
110
|
tag = item.tag,
|
104
111
|
label = item.label,
|
105
|
-
link = item.link
|
112
|
+
link = item.link,
|
113
|
+
_item$items = item.items,
|
114
|
+
items = _item$items === void 0 ? [] : _item$items,
|
115
|
+
width = item.width;
|
106
116
|
// show为false直接隐藏¸
|
107
117
|
if (show === false || !show) {
|
108
118
|
return null;
|
109
119
|
}
|
110
120
|
var onlyTag = tag && !label && !value;
|
111
|
-
var
|
112
|
-
|
113
|
-
});
|
114
|
-
var tagRender = function tagRender() {
|
115
|
-
if (Array.isArray(tag) && tag.length) {
|
121
|
+
var tagRender = function tagRender(parmas) {
|
122
|
+
if (Array.isArray(parmas === null || parmas === void 0 ? void 0 : parmas.tag) && (parmas === null || parmas === void 0 ? void 0 : parmas.tag.length)) {
|
116
123
|
return _jsx(_Space, {
|
117
124
|
size: 4,
|
118
|
-
children: tag.map(function (tagItem, index) {
|
125
|
+
children: parmas.tag.map(function (tagItem, index) {
|
119
126
|
return _jsx("div", {
|
120
127
|
className: "pro-header-tag",
|
121
128
|
children: tagItem
|
@@ -123,32 +130,91 @@ var ProHeader = function ProHeader(props) {
|
|
123
130
|
})
|
124
131
|
});
|
125
132
|
}
|
126
|
-
return tag ? _jsx("div", {
|
133
|
+
return (parmas === null || parmas === void 0 ? void 0 : parmas.tag) ? _jsx("div", {
|
127
134
|
className: "pro-header-tag",
|
128
|
-
children: tag
|
135
|
+
children: parmas === null || parmas === void 0 ? void 0 : parmas.tag
|
129
136
|
}) : null;
|
130
137
|
};
|
131
|
-
|
138
|
+
/** 单行渲染 */
|
139
|
+
var valueRender = function valueRender(parmas) {
|
132
140
|
return _jsxs(_Space, {
|
133
141
|
size: 4,
|
134
|
-
align: tag ? 'baseline' : 'center',
|
135
|
-
children: [link ? _jsx("a", {
|
136
|
-
href: link,
|
142
|
+
align: (parmas === null || parmas === void 0 ? void 0 : parmas.tag) ? 'baseline' : 'center',
|
143
|
+
children: [(parmas === null || parmas === void 0 ? void 0 : parmas.link) ? _jsx("a", {
|
144
|
+
href: parmas.link,
|
137
145
|
rel: "noopener noreferrer",
|
138
146
|
target: "_blank",
|
139
|
-
children: value
|
140
|
-
}) : value, copyable && isString(value) ? _jsx(Copy, {
|
141
|
-
text: value
|
142
|
-
}) : null, tagRender(
|
147
|
+
children: parmas === null || parmas === void 0 ? void 0 : parmas.value
|
148
|
+
}) : parmas === null || parmas === void 0 ? void 0 : parmas.value, (parmas === null || parmas === void 0 ? void 0 : parmas.copyable) && isString(parmas === null || parmas === void 0 ? void 0 : parmas.value) ? _jsx(Copy, {
|
149
|
+
text: parmas.value
|
150
|
+
}) : null, tagRender({
|
151
|
+
tag: parmas === null || parmas === void 0 ? void 0 : parmas.tag
|
152
|
+
})]
|
143
153
|
});
|
144
154
|
};
|
145
|
-
|
155
|
+
/** 多行渲染 */
|
156
|
+
var itemsRender = function itemsRender() {
|
157
|
+
// items配置是否超长,超长配置... + tip 提示
|
158
|
+
var itemsHidden = checkDescribeItemsHidden(ref === null || ref === void 0 ? void 0 : ref.current);
|
159
|
+
var result = _jsxs("div", {
|
160
|
+
ref: ref,
|
161
|
+
className: classnames({
|
162
|
+
'pro-header-describe-items': true,
|
163
|
+
'pro-header-describe-items-more': items.length >= 2
|
164
|
+
}),
|
165
|
+
children: [(items === null || items === void 0 ? void 0 : items.length) > 3 ? "\u5171".concat(items === null || items === void 0 ? void 0 : items.length, "\u4E2A\uFF0C") : null, items.map(function (item, index) {
|
166
|
+
return _jsxs("span", {
|
167
|
+
children: [valueRender(item), (items === null || items === void 0 ? void 0 : items.length) !== index + 1 ? ' 、' : null]
|
168
|
+
}, index);
|
169
|
+
}), itemsHidden ? _jsx("span", {
|
170
|
+
className: "pro-header-describe-items-omit",
|
171
|
+
children: "..."
|
172
|
+
}) : null]
|
173
|
+
});
|
174
|
+
if (itemsHidden) {
|
175
|
+
var tipResult = _jsx(_Fragment, {
|
176
|
+
children: items.map(function (item, index) {
|
177
|
+
return _jsx("p", {
|
178
|
+
className: "pro-header-describe-items-tip-value",
|
179
|
+
children: valueRender(item)
|
180
|
+
}, index);
|
181
|
+
})
|
182
|
+
});
|
183
|
+
return _jsx(_Tooltip, {
|
184
|
+
placement: "bottomLeft",
|
185
|
+
overlayClassName: "pro-header-describe-items-tip",
|
186
|
+
title: tipResult,
|
187
|
+
children: result
|
188
|
+
});
|
189
|
+
}
|
190
|
+
return result;
|
191
|
+
};
|
192
|
+
var tagCls = classnames({
|
193
|
+
'pro-header-only-tag': onlyTag,
|
194
|
+
'pro-header-describe-items-calc': isString(width) ? width.includes('calc') : false
|
195
|
+
});
|
196
|
+
return _jsx("li", {
|
146
197
|
className: tagCls,
|
147
|
-
|
148
|
-
|
149
|
-
}
|
150
|
-
|
151
|
-
|
198
|
+
style: {
|
199
|
+
width: width
|
200
|
+
},
|
201
|
+
children: _jsxs(_Space, {
|
202
|
+
size: 4,
|
203
|
+
children: [label ? _jsx("span", {
|
204
|
+
className: "pro-header-describe-label",
|
205
|
+
children: label
|
206
|
+
}) : null, _jsx("span", {
|
207
|
+
className: "pro-header-describe-value",
|
208
|
+
children: (items === null || items === void 0 ? void 0 : items.length) ? itemsRender() : _jsx("span", {
|
209
|
+
children: valueRender({
|
210
|
+
value: value,
|
211
|
+
copyable: copyable,
|
212
|
+
tag: tag,
|
213
|
+
link: link
|
214
|
+
})
|
215
|
+
})
|
216
|
+
})]
|
217
|
+
})
|
152
218
|
}, index);
|
153
219
|
})
|
154
220
|
});
|
@@ -3,7 +3,7 @@
|
|
3
3
|
@import '../components/ProBackBtn/style/index';
|
4
4
|
|
5
5
|
.pro-header {
|
6
|
-
padding:
|
6
|
+
padding: 10px 0 0 0 !important;
|
7
7
|
background-color: var(--zaui-base-bg, #ffffff);
|
8
8
|
box-shadow: 2px 3px 8px 0px rgba(0, 55, 93, 0.1);
|
9
9
|
|
@@ -46,9 +46,48 @@
|
|
46
46
|
}
|
47
47
|
|
48
48
|
.pro-header-describe {
|
49
|
+
transition: height 0.2s ease-in-out;
|
49
50
|
a {
|
50
51
|
color: var(--zaui-link, #006aff);
|
51
52
|
}
|
53
|
+
.pro-header-describe-items-calc{
|
54
|
+
position: relative;
|
55
|
+
}
|
56
|
+
&.pro-header-describe-hidden {
|
57
|
+
height: 0;
|
58
|
+
padding: 0;
|
59
|
+
overflow: hidden;
|
60
|
+
border: 0;
|
61
|
+
}
|
62
|
+
.@{ant-prefix}-space {
|
63
|
+
.pro-header-describe-label {
|
64
|
+
font-weight: normal;
|
65
|
+
}
|
66
|
+
.pro-header-describe-value{
|
67
|
+
font-weight: 600;
|
68
|
+
.@{ant-prefix}-space-item{
|
69
|
+
font-weight: 600;
|
70
|
+
}
|
71
|
+
.pro-header-describe-items{
|
72
|
+
span:first-child{
|
73
|
+
margin-right: 2px;
|
74
|
+
}
|
75
|
+
.pro-header-describe-items-omit{
|
76
|
+
position: absolute;
|
77
|
+
right: 0;
|
78
|
+
background: #fff;
|
79
|
+
}
|
80
|
+
&.pro-header-describe-items-more{
|
81
|
+
.pro-header-tag{
|
82
|
+
padding: 0;
|
83
|
+
background: #fff;
|
84
|
+
color: #333 ;
|
85
|
+
}
|
86
|
+
|
87
|
+
}
|
88
|
+
}
|
89
|
+
}
|
90
|
+
}
|
52
91
|
}
|
53
92
|
|
54
93
|
.pro-header-copy {
|
@@ -334,8 +373,10 @@
|
|
334
373
|
font-size: var(--zaui-font-size, 14px);
|
335
374
|
|
336
375
|
li {
|
337
|
-
|
338
|
-
|
376
|
+
flex: 0 0 auto;
|
377
|
+
white-space: nowrap;
|
378
|
+
overflow: hidden;
|
379
|
+
text-overflow: ellipsis;
|
339
380
|
&.pro-header-only-tag {
|
340
381
|
margin-left: var(--zaui-space-size-sm, 8px);
|
341
382
|
|
@@ -344,9 +385,6 @@
|
|
344
385
|
}
|
345
386
|
}
|
346
387
|
|
347
|
-
&:first-child {
|
348
|
-
margin-left: 0;
|
349
|
-
}
|
350
388
|
|
351
389
|
span {
|
352
390
|
color: #0a0a0a;
|
@@ -369,6 +407,13 @@
|
|
369
407
|
}
|
370
408
|
}
|
371
409
|
|
410
|
+
.pro-header-describe-items-tip{
|
411
|
+
max-width: 600px;
|
412
|
+
.pro-header-describe-items-tip-value{
|
413
|
+
margin-bottom: var(--zaui-space-size-sm, 8px);
|
414
|
+
}
|
415
|
+
}
|
416
|
+
|
372
417
|
@media (max-width: 1366px) {
|
373
418
|
.pro-header-describe {
|
374
419
|
li span:last-child {
|
@@ -0,0 +1,14 @@
|
|
1
|
+
/**
|
2
|
+
* 检查描述dom是否部分隐藏
|
3
|
+
* @param ele dom节点
|
4
|
+
*/
|
5
|
+
export var checkDescribeItemsHidden = function checkDescribeItemsHidden(ele) {
|
6
|
+
var childElement = ele;
|
7
|
+
if (!childElement) {
|
8
|
+
return false;
|
9
|
+
}
|
10
|
+
var element = childElement.parentNode.parentNode.parentNode.parentNode;
|
11
|
+
var itemsScrollWidth = element.scrollWidth;
|
12
|
+
var itemsClientWidth = element.clientWidth;
|
13
|
+
return itemsScrollWidth > itemsClientWidth;
|
14
|
+
};
|
package/es/ProSelect/index.js
CHANGED
@@ -296,7 +296,7 @@ export var ProSelect = function ProSelect(props, ref) {
|
|
296
296
|
showArrow: true,
|
297
297
|
loading: fetchFunction === null || fetchFunction === void 0 ? void 0 : fetchFunction.loading,
|
298
298
|
onChange: handleChange,
|
299
|
-
optionLabelProp
|
299
|
+
// optionLabelProp={otherProps?.isDiffChange ? 'label' : 'children'} // 解决warning报错,添加默认值
|
300
300
|
// optionLabelProp="label" // 解决warning报错,添加默认值
|
301
301
|
showSearch: true,
|
302
302
|
filterOption: isFunction(_onSearch) ? false : function (input, option) {
|
package/es/index.d.ts
CHANGED
@@ -17,6 +17,7 @@ export { default as ProIcon } from './ProIcon';
|
|
17
17
|
export { default as ProDownload } from './ProDownload';
|
18
18
|
export { default as ProWaterMark } from './ProWaterMark';
|
19
19
|
export { default as ProConfigProvider } from './ProConfigProvider';
|
20
|
+
export { default as FormsProvider } from './FormsProvider';
|
20
21
|
export { default as ProUpload } from './ProUpload';
|
21
22
|
export { default as ProThemeTools } from './ProThemeTools';
|
22
23
|
export { default as ProAction } from './ProAction';
|
package/es/index.js
CHANGED
@@ -22,6 +22,7 @@ export { default as ProIcon } from './ProIcon';
|
|
22
22
|
export { default as ProDownload } from './ProDownload';
|
23
23
|
export { default as ProWaterMark } from './ProWaterMark';
|
24
24
|
export { default as ProConfigProvider } from './ProConfigProvider';
|
25
|
+
export { default as FormsProvider } from './FormsProvider';
|
25
26
|
export { default as ProUpload } from './ProUpload';
|
26
27
|
export { default as ProThemeTools } from './ProThemeTools';
|
27
28
|
export { default as ProAction } from './ProAction';
|
package/es/utils/index.d.ts
CHANGED
package/es/utils/index.js
CHANGED
@@ -1,7 +1,10 @@
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
2
2
|
import { useEffect, useState } from 'react';
|
3
3
|
var EMPTY_VALUE = [undefined, null, ''];
|
4
|
-
/**
|
4
|
+
/**
|
5
|
+
* 判断一个值是否是空值
|
6
|
+
* 空值 或者 仅包含空值的数组视为空
|
7
|
+
*/
|
5
8
|
export var isEmpty = function isEmpty(value, emptyValue) {
|
6
9
|
if (emptyValue) {
|
7
10
|
EMPTY_VALUE.push(emptyValue);
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { ModifiedFormInstance } from '../ProForm/utils/useForm';
|
3
|
+
type Forms = Record<string, ModifiedFormInstance<any>>;
|
4
|
+
export declare const FormsContext: React.Context<Forms>;
|
5
|
+
/**
|
6
|
+
* @param formKey 表单实例key
|
7
|
+
* @param formIst form实例, 如果传了会把传入的实例存入全局
|
8
|
+
* @returns 没有入参: 返回表单实例但是不存入全局
|
9
|
+
* 有formKey: 取全局中的表单实例返回, 如果不存在则创建后返回
|
10
|
+
*/
|
11
|
+
export declare const useForms: () => Forms;
|
12
|
+
/** 获取所有表单实例 */
|
13
|
+
export declare const useContextForms: () => Forms;
|
14
|
+
declare const FormsProvider: React.FC;
|
15
|
+
export default FormsProvider;
|
@@ -0,0 +1,39 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
5
|
+
value: true
|
6
|
+
});
|
7
|
+
exports.useForms = exports.useContextForms = exports.default = exports.FormsContext = void 0;
|
8
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
9
|
+
var _react = _interopRequireWildcard(require("react"));
|
10
|
+
var FormsContext = exports.FormsContext = /*#__PURE__*/_react.default.createContext({});
|
11
|
+
/**
|
12
|
+
* @param formKey 表单实例key
|
13
|
+
* @param formIst form实例, 如果传了会把传入的实例存入全局
|
14
|
+
* @returns 没有入参: 返回表单实例但是不存入全局
|
15
|
+
* 有formKey: 取全局中的表单实例返回, 如果不存在则创建后返回
|
16
|
+
*/
|
17
|
+
var useForms = exports.useForms = function useForms() {
|
18
|
+
var forms = (0, _react.useContext)(FormsContext);
|
19
|
+
return forms;
|
20
|
+
};
|
21
|
+
/** 获取所有表单实例 */
|
22
|
+
var useContextForms = exports.useContextForms = function useContextForms() {
|
23
|
+
var forms = (0, _react.useContext)(FormsContext);
|
24
|
+
return forms;
|
25
|
+
};
|
26
|
+
var FormsProvider = function FormsProvider(props) {
|
27
|
+
var formsRef = (0, _react.useRef)({});
|
28
|
+
(0, _react.useEffect)(function () {
|
29
|
+
// 销毁
|
30
|
+
return function () {
|
31
|
+
formsRef.current = {};
|
32
|
+
};
|
33
|
+
}, []);
|
34
|
+
return (0, _jsxRuntime.jsx)(FormsContext.Provider, {
|
35
|
+
value: formsRef.current,
|
36
|
+
children: props.children
|
37
|
+
});
|
38
|
+
};
|
39
|
+
var _default = exports.default = FormsProvider;
|
@@ -20,7 +20,6 @@ interface ConfigContext {
|
|
20
20
|
export declare const ProConfigContext: React.Context<ConfigContext>;
|
21
21
|
export declare function useProConfig(): ConfigContext;
|
22
22
|
export declare function useProConfig(name: keyof ConfigContext['state']): ConfigContext['state'][keyof ConfigContext['state']];
|
23
|
-
export declare function useContextForms(): Record<string, FormInstance<any>>;
|
24
23
|
type ActionsType = 'set' | 'setProEnum' | 'setProEnumDic' | 'setWithLocal';
|
25
24
|
interface Actions {
|
26
25
|
type: ActionsType;
|
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
7
7
|
});
|
8
8
|
exports.default = exports.ProConfigProvider = exports.ProConfigContext = void 0;
|
9
|
-
exports.useContextForms = useContextForms;
|
10
9
|
exports.useProConfig = useProConfig;
|
11
10
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
12
11
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
@@ -44,11 +43,6 @@ function useProConfig(name) {
|
|
44
43
|
var config = (0, _react.useContext)(ProConfigContext);
|
45
44
|
return name ? config.state[name] : config;
|
46
45
|
}
|
47
|
-
function useContextForms() {
|
48
|
-
var _config$state;
|
49
|
-
var config = (0, _react.useContext)(ProConfigContext);
|
50
|
-
return (_config$state = config.state) === null || _config$state === void 0 ? void 0 : _config$state.forms;
|
51
|
-
}
|
52
46
|
var antdLangMap = {
|
53
47
|
'zh-CN': _zh_CN.default,
|
54
48
|
'en-US': _en_US.default // en-US
|
@@ -52,14 +52,17 @@ var diffOriginal = exports.diffOriginal = function diffOriginal(params) {
|
|
52
52
|
return 'add';
|
53
53
|
}
|
54
54
|
if (Array.isArray(_originalValue)) {
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
55
|
+
if ((_originalValue === null || _originalValue === void 0 ? void 0 : _originalValue.length) === (_value === null || _value === void 0 ? void 0 : _value.length)) {
|
56
|
+
var isSame = _originalValue.every(function (valueItem, index) {
|
57
|
+
// 如果两个值有一个不是空值, 则进行深比较
|
58
|
+
if (!isEmpty(value === null || value === void 0 ? void 0 : value[index]) || !isEmpty(valueItem)) {
|
59
|
+
return (0, _lodash.isEqual)(value === null || value === void 0 ? void 0 : value[index], valueItem);
|
60
|
+
}
|
61
|
+
return true;
|
62
|
+
});
|
63
|
+
return isSame ? 'same' : 'changed';
|
64
|
+
}
|
65
|
+
return 'changed';
|
63
66
|
}
|
64
67
|
if (!isEmpty(_originalValue) || !isEmpty(_value)) {
|
65
68
|
return (0, _lodash.isEqual)(_value, _originalValue) ? 'same' : 'changed';
|
@@ -409,7 +409,10 @@ var Render = function Render(props) {
|
|
409
409
|
if (type === 'FormList') {
|
410
410
|
lastComponentProps.disabled = lastDisabled;
|
411
411
|
var lessMode = lastComponentProps.mode === 'less';
|
412
|
-
|
412
|
+
colProps = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, colProps), {}, {
|
413
|
+
span: lessMode ? colProps.span : 24 // 默认占一行
|
414
|
+
});
|
415
|
+
return (0, _jsxRuntime.jsx)(_antd.Form.List, (0, _objectSpread2.default)((0, _objectSpread2.default)({
|
413
416
|
name: _otherFormItemProps.name
|
414
417
|
}, (0, _lodash.omit)(_otherFormItemProps, ['rules'])), {}, {
|
415
418
|
children: function children(fields, operation, meta) {
|
@@ -421,9 +424,6 @@ var Render = function Render(props) {
|
|
421
424
|
}));
|
422
425
|
}
|
423
426
|
}));
|
424
|
-
colProps = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, colProps), {}, {
|
425
|
-
span: lessMode ? colProps.span : 24 // 默认占一行
|
426
|
-
});
|
427
427
|
}
|
428
428
|
// 默认占据一行
|
429
429
|
if (['ProCollapse', 'Container'].includes(type)) {
|
package/lib/ProForm/index.js
CHANGED
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
7
7
|
});
|
8
8
|
exports.default = exports.ProFormProvider = void 0;
|
9
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
9
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
10
11
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
11
|
-
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
12
12
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
13
13
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
14
14
|
var _jsxRuntime = require("react/jsx-runtime");
|
@@ -25,9 +25,10 @@ var _useForm3 = require("./utils/useForm");
|
|
25
25
|
var _useFieldProps = require("./utils/useFieldProps");
|
26
26
|
var _locale = _interopRequireDefault(require("../locale"));
|
27
27
|
var _useWatch = _interopRequireDefault(require("./utils/useWatch"));
|
28
|
+
var _FormsProvider = _interopRequireWildcard(require("../FormsProvider"));
|
28
29
|
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", "diffConfig", "submitOnEnter", "clearNotShow", "initialValues", "requiredOnView", "formId", "required", "formKey", "globalControl", "scrollToError", "optimize"];
|
29
30
|
var ProForm = function ProForm(props, ref) {
|
30
|
-
var
|
31
|
+
var _localStorage, _ref;
|
31
32
|
var _props$mode = props.mode,
|
32
33
|
mode = _props$mode === void 0 ? 'search' : _props$mode,
|
33
34
|
span = props.span,
|
@@ -70,14 +71,11 @@ var ProForm = function ProForm(props, ref) {
|
|
70
71
|
_props$optimize = props.optimize,
|
71
72
|
optimize = _props$optimize === void 0 ? false : _props$optimize,
|
72
73
|
otherProps = (0, _objectWithoutProperties2.default)(props, _excluded);
|
73
|
-
var
|
74
|
-
|
75
|
-
dispatch = _useProConfig.dispatch;
|
76
|
-
var config = state.ProForm,
|
77
|
-
forms = state.forms;
|
78
|
-
var _useForm = (0, _useForm3.useForm)((_forms$formKey = forms[formKey]) !== null && _forms$formKey !== void 0 ? _forms$formKey : originForm, {
|
74
|
+
var config = (0, _ProConfigProvider.useProConfig)('ProForm');
|
75
|
+
var _useForm = (0, _useForm3.useForm)(originForm, {
|
79
76
|
scrollToError: scrollToError,
|
80
|
-
optimize: optimize
|
77
|
+
optimize: optimize,
|
78
|
+
formKey: formKey
|
81
79
|
}),
|
82
80
|
_useForm2 = (0, _slicedToArray2.default)(_useForm, 1),
|
83
81
|
form = _useForm2[0];
|
@@ -88,33 +86,6 @@ var ProForm = function ProForm(props, ref) {
|
|
88
86
|
_useControlled2 = (0, _slicedToArray2.default)(_useControlled, 2),
|
89
87
|
openState = _useControlled2[0],
|
90
88
|
setOpenState = _useControlled2[1];
|
91
|
-
// 把表单实例存入表单组
|
92
|
-
(0, _react.useMemo)(function () {
|
93
|
-
if (formKey && forms[formKey] !== form) {
|
94
|
-
forms[formKey] = form;
|
95
|
-
// fix: Cannot update a component (`ProConfigProvider`) while rendering a different component (`ForwardRef(ProForm)`).
|
96
|
-
setTimeout(function () {
|
97
|
-
dispatch({
|
98
|
-
type: 'set',
|
99
|
-
payload: {
|
100
|
-
forms: (0, _objectSpread2.default)({}, forms)
|
101
|
-
}
|
102
|
-
});
|
103
|
-
}, 300);
|
104
|
-
}
|
105
|
-
// 销毁
|
106
|
-
return function () {
|
107
|
-
if (formKey && forms[formKey]) {
|
108
|
-
delete forms[formKey];
|
109
|
-
dispatch({
|
110
|
-
type: 'set',
|
111
|
-
payload: {
|
112
|
-
forms: (0, _objectSpread2.default)({}, forms)
|
113
|
-
}
|
114
|
-
});
|
115
|
-
}
|
116
|
-
};
|
117
|
-
}, [formKey, form]);
|
118
89
|
var _getLayout = (0, _index.getLayout)({
|
119
90
|
span: span,
|
120
91
|
form: form
|
@@ -311,7 +282,10 @@ var ProFormProvider = exports.ProFormProvider = function ProFormProvider(props)
|
|
311
282
|
};
|
312
283
|
ProFormForward.Provider = ProFormProvider; // 包装Provider
|
313
284
|
ProFormForward.useFieldProps = _useFieldProps.useFieldProps; // 获取每个字段的其他参数 -otherProps
|
314
|
-
|
285
|
+
// 表单实例共享
|
286
|
+
ProFormForward.FormsProvider = _FormsProvider.default; // 表单实例共享Provider
|
287
|
+
ProFormForward.useForms = _FormsProvider.useForms; // 获取上下文中的共享的表单实例map
|
288
|
+
ProFormForward.useContextForms = _FormsProvider.useContextForms; // 获取上下文中的共享的表单实例map
|
315
289
|
// 内置组合
|
316
290
|
ProFormForward.ProCascader = _components.ProCascader;
|
317
291
|
ProFormForward.ProCombination = _components.ProCombination;
|
@@ -9,7 +9,13 @@ var _utils = require("../../utils");
|
|
9
9
|
// 过滤对象中undefined字段
|
10
10
|
// 防止{a: '1'} {a: '1', b: undefined | null}被认为不相等
|
11
11
|
var filterObject = function filterObject(data) {
|
12
|
-
if (!(0, _lodash.isObject)(data) ||
|
12
|
+
if (!(0, _lodash.isObject)(data) || data === null) return data;
|
13
|
+
// ['1', undefined] ['1', ''] 视为相等
|
14
|
+
if (Array.isArray(data)) {
|
15
|
+
return data.map(function (item) {
|
16
|
+
return (0, _utils.isEmpty)(item) ? null : item;
|
17
|
+
});
|
18
|
+
}
|
13
19
|
var resData = {};
|
14
20
|
Object.keys(data).forEach(function (key) {
|
15
21
|
if (!(0, _utils.isEmpty)(data[key])) {
|
@@ -37,22 +43,11 @@ var diffOriginal = exports.diffOriginal = function diffOriginal(params) {
|
|
37
43
|
}
|
38
44
|
var _value = filterObject(value);
|
39
45
|
var _originalValue = filterObject(originalValue);
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
if (!(0, _utils.isEmpty)(value === null || value === void 0 ? void 0 : value[index]) || !(0, _utils.isEmpty)(valueItem)) {
|
48
|
-
return (0, _lodash.isEqual)(value === null || value === void 0 ? void 0 : value[index], valueItem);
|
49
|
-
}
|
50
|
-
return true;
|
51
|
-
});
|
52
|
-
return isSame ? 'same' : 'changed';
|
53
|
-
}
|
54
|
-
if (!(0, _utils.isEmpty)(_originalValue) || !(0, _utils.isEmpty)(_value)) {
|
55
|
-
return (0, _lodash.isEqual)(_value, _originalValue) ? 'same' : 'changed';
|
56
|
-
}
|
57
|
-
return 'same';
|
46
|
+
var isEmptyVal = (0, _utils.isEmpty)(_value);
|
47
|
+
var isEmptyOrg = (0, _utils.isEmpty)(_originalValue);
|
48
|
+
// 都为空视为相等
|
49
|
+
if (isEmptyOrg && isEmptyVal) return 'same';
|
50
|
+
// 如果原始值为空 且当前有值的话 视为新增
|
51
|
+
if (isEmptyOrg && !isEmptyVal) return 'add';
|
52
|
+
return (0, _lodash.isEqual)(_value, _originalValue) ? 'same' : 'changed';
|
58
53
|
};
|