@zat-design/sisyphus-react 3.6.9-beta.4 → 3.6.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.
Files changed (49) hide show
  1. package/dist/index.esm.css +41 -41
  2. package/dist/less.esm.css +41 -41
  3. package/es/ProEditTable/components/RenderField/index.js +46 -26
  4. package/es/ProForm/components/combination/ProCascader/index.js +14 -8
  5. package/es/ProForm/components/render/Render.js +39 -25
  6. package/es/ProForm/style/index.less +52 -52
  7. package/es/ProForm/utils/diffOriginal.d.ts +1 -0
  8. package/es/ProForm/utils/diffOriginal.js +27 -4
  9. package/es/ProForm/utils/index.d.ts +0 -6
  10. package/es/ProForm/utils/index.js +8 -57
  11. package/es/ProForm/utils/useChanged.js +2 -1
  12. package/es/ProForm/utils/useListChanged.js +3 -3
  13. package/es/ProTable/components/FormatColumn/index.js +16 -0
  14. package/es/ProTable/propsType.d.ts +4 -0
  15. package/es/ProThemeTools/component/{ProTools → PrdTools}/index.d.ts +2 -2
  16. package/es/ProThemeTools/component/{ProTools → PrdTools}/index.js +2 -2
  17. package/es/ProThemeTools/component/index.d.ts +2 -1
  18. package/es/ProThemeTools/component/index.js +2 -1
  19. package/es/ProThemeTools/index.js +2 -2
  20. package/es/ProThemeTools/style/index.less +1 -1
  21. package/lib/ProEditTable/components/RenderField/index.js +41 -25
  22. package/lib/ProForm/components/combination/ProCascader/index.js +12 -6
  23. package/lib/ProForm/components/render/Render.js +37 -25
  24. package/lib/ProForm/style/index.less +52 -52
  25. package/lib/ProForm/utils/diffOriginal.d.ts +1 -0
  26. package/lib/ProForm/utils/diffOriginal.js +27 -3
  27. package/lib/ProForm/utils/index.d.ts +0 -6
  28. package/lib/ProForm/utils/index.js +8 -59
  29. package/lib/ProForm/utils/useChanged.js +2 -1
  30. package/lib/ProForm/utils/useListChanged.js +2 -2
  31. package/lib/ProTable/components/FormatColumn/index.js +16 -0
  32. package/lib/ProTable/propsType.d.ts +4 -0
  33. package/lib/ProThemeTools/component/{ProTools → PrdTools}/index.d.ts +2 -2
  34. package/lib/ProThemeTools/component/{ProTools → PrdTools}/index.js +2 -2
  35. package/lib/ProThemeTools/component/index.d.ts +2 -1
  36. package/lib/ProThemeTools/component/index.js +3 -3
  37. package/lib/ProThemeTools/index.js +1 -1
  38. package/lib/ProThemeTools/style/index.less +1 -1
  39. package/package.json +1 -1
  40. package/es/ProEditTable/components/RenderField/ListChanged.d.ts +0 -16
  41. package/es/ProEditTable/components/RenderField/ListChanged.js +0 -124
  42. package/es/ProForm/components/render/Changed.d.ts +0 -14
  43. package/es/ProForm/components/render/Changed.js +0 -64
  44. package/lib/ProEditTable/components/RenderField/ListChanged.d.ts +0 -16
  45. package/lib/ProEditTable/components/RenderField/ListChanged.js +0 -129
  46. package/lib/ProForm/components/render/Changed.d.ts +0 -14
  47. package/lib/ProForm/components/render/Changed.js +0 -69
  48. /package/es/ProThemeTools/component/{ProTools → PrdTools}/style/index.less +0 -0
  49. /package/lib/ProThemeTools/component/{ProTools → PrdTools}/style/index.less +0 -0
@@ -1,11 +1,10 @@
1
- import _typeof from "@babel/runtime/helpers/esm/typeof";
2
1
  import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIteratorHelper";
3
- import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
+ import _typeof from "@babel/runtime/helpers/esm/typeof";
4
3
  import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
5
4
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
6
5
  import React, { useState } from 'react';
7
6
  import moment from 'moment';
8
- import _, { isObject, isFunction, cloneDeep, get, set, omit, isNaN } from 'lodash';
7
+ import _, { isObject, isFunction, get, set, omit, isNaN } from 'lodash';
9
8
  export var getLayout = function getLayout(params) {
10
9
  var _params$span = params.span,
11
10
  span = _params$span === void 0 ? 8 : _params$span,
@@ -249,54 +248,6 @@ export function toArray(value) {
249
248
  }
250
249
  return Array.isArray(value) ? value : [value];
251
250
  }
252
- /**
253
- * names值合并
254
- * @param obj AnyObject
255
- * @returns AnyObject
256
- */
257
- export function processHyphenKeys(obj) {
258
- var newObj = _objectSpread({}, obj);
259
- var keys = Object.keys(obj);
260
- for (var _i = 0, _keys = keys; _i < _keys.length; _i++) {
261
- var key = _keys[_i];
262
- if (key.includes('-')) {
263
- var keyParts = key.split('-');
264
- var shouldCombine = true;
265
- var combinedArray = [];
266
- var _iterator = _createForOfIteratorHelper(keyParts),
267
- _step;
268
- try {
269
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
270
- var part = _step.value;
271
- if (obj.hasOwnProperty(part)) {
272
- combinedArray.push(obj[part]);
273
- } else {
274
- shouldCombine = false;
275
- break;
276
- }
277
- }
278
- } catch (err) {
279
- _iterator.e(err);
280
- } finally {
281
- _iterator.f();
282
- }
283
- if (shouldCombine) {
284
- newObj[key] = combinedArray;
285
- } else {
286
- newObj[key] = undefined;
287
- }
288
- }
289
- // 匹配数组的namePath,只匹配到1层
290
- if (key.includes('_')) {
291
- var _keyParts = key.split('_')[0];
292
- // 校验值是否存在,解决names多传额外空值报错
293
- newObj[key] = isObject(newObj[_keyParts]) ? Object.values(newObj[_keyParts]).filter(function (val) {
294
- return val !== null && val !== undefined && val !== '';
295
- }) : [];
296
- }
297
- }
298
- return cloneDeep(newObj);
299
- }
300
251
  /**
301
252
  * 初始化值names值合并
302
253
  * @param obj AnyObject
@@ -464,11 +415,11 @@ export var parseNamePath = function parseNamePath(input) {
464
415
  };
465
416
  /** 解析namePath */
466
417
  export function findNamesKeyInArray(arr, key) {
467
- var _iterator2 = _createForOfIteratorHelper(arr),
468
- _step2;
418
+ var _iterator = _createForOfIteratorHelper(arr),
419
+ _step;
469
420
  try {
470
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
471
- var item = _step2.value;
421
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
422
+ var item = _step.value;
472
423
  if (!item.includes('_')) {
473
424
  return null;
474
425
  }
@@ -477,9 +428,9 @@ export function findNamesKeyInArray(arr, key) {
477
428
  }
478
429
  }
479
430
  } catch (err) {
480
- _iterator2.e(err);
431
+ _iterator.e(err);
481
432
  } finally {
482
- _iterator2.f();
433
+ _iterator.f();
483
434
  }
484
435
  return null;
485
436
  }
@@ -19,7 +19,8 @@ export var useChanged = function useChanged(_ref) {
19
19
  originalValue: originalValue,
20
20
  value: value,
21
21
  form: form,
22
- equalWith: equalWith
22
+ equalWith: equalWith,
23
+ name: namesStr || name
23
24
  });
24
25
  return [changed, originalValue];
25
26
  };
@@ -1,6 +1,6 @@
1
1
  import "antd/es/form/style";
2
2
  import _Form from "antd/es/form";
3
- import { get } from 'lodash';
3
+ import { get, isString } from 'lodash';
4
4
  import { diffOriginal } from './diffOriginal';
5
5
  var toNamePath = function toNamePath(name) {
6
6
  if (Array.isArray(name)) {
@@ -86,8 +86,8 @@ export var useListChanged = function useListChanged(params) {
86
86
  value: value,
87
87
  originalValue: originalValue,
88
88
  form: form,
89
- equalWith: equalWith
90
- // name: isString(namesStr) ? namesStr : originalName || name,
89
+ equalWith: equalWith,
90
+ name: isString(namesStr) ? namesStr : originalName || name
91
91
  });
92
92
  return [changed, originalValue];
93
93
  };
@@ -191,6 +191,22 @@ export var formatColumn = function formatColumn(column, originalObj, dataSourceO
191
191
  var renderValue = getEnumLabel(realCode, value, valueType === 'enumCodeName');
192
192
  var originalValue = getOriginalValue(value, record, originalObj, rowKey, dataIndex);
193
193
  var originalRenderValue = getEnumLabel(realCode, originalValue, valueType === 'enumCodeName');
194
+ if (Array.isArray(column === null || column === void 0 ? void 0 : column.codeValues) && !realCode) {
195
+ var _column$codeValues$fi;
196
+ var labelName = column === null || column === void 0 ? void 0 : (_column$codeValues$fi = column.codeValues.find(function (item) {
197
+ return item.value === value;
198
+ })) === null || _column$codeValues$fi === void 0 ? void 0 : _column$codeValues$fi.label;
199
+ if (valueType === 'enumName') {
200
+ renderValue = _jsx(_Fragment, {
201
+ children: labelName || '-'
202
+ });
203
+ }
204
+ if (valueType === 'enumCodeName') {
205
+ renderValue = _jsx(_Fragment, {
206
+ children: labelName ? "".concat(value, "-").concat(labelName) : labelName
207
+ });
208
+ }
209
+ }
194
210
  var node = _jsxs(_Space, {
195
211
  size: 8,
196
212
  children: [prefixNode(value, record, index), renderValue, suffixNode(value, record, index)]
@@ -26,6 +26,10 @@ export interface ProTableColumn extends Omit<ColumnType<any>, 'dataIndex'> {
26
26
  format?: string;
27
27
  precision?: number;
28
28
  code?: string | string[] | ((text: any, record: any) => string);
29
+ codeValues?: {
30
+ label: string;
31
+ value: string | number;
32
+ }[];
29
33
  copyable?: boolean;
30
34
  originalDiffTip?: boolean;
31
35
  prefix?: string | ReactNode | ((value: any, record?: any, index?: number) => any);
@@ -1,3 +1,3 @@
1
1
  import type { DevToolsPropsType } from '../../propsType';
2
- declare const ProTools: ({ onReset, onClose, setState, open, state, tableBorder, tableStripe, }: DevToolsPropsType) => import("react/jsx-runtime").JSX.Element;
3
- export default ProTools;
2
+ declare const PrdTools: ({ onReset, onClose, setState, open, state, tableBorder, tableStripe, }: DevToolsPropsType) => import("react/jsx-runtime").JSX.Element;
3
+ export default PrdTools;
@@ -21,7 +21,7 @@ var connect = function connect(Component) {
21
21
  return ComponentWrapper;
22
22
  };
23
23
  var NewDrawer = connect(_Drawer);
24
- var ProTools = function ProTools(_ref) {
24
+ var PrdTools = function PrdTools(_ref) {
25
25
  var onReset = _ref.onReset,
26
26
  onClose = _ref.onClose,
27
27
  setState = _ref.setState,
@@ -266,4 +266,4 @@ var ProTools = function ProTools(_ref) {
266
266
  })]
267
267
  });
268
268
  };
269
- export default ProTools;
269
+ export default PrdTools;
@@ -1 +1,2 @@
1
- export { default as ProTools } from './ProTools';
1
+ /// <reference types="typings" />
2
+ export { default as PrdTools } from './PrdTools';
@@ -1 +1,2 @@
1
- export { default as ProTools } from './ProTools';
1
+ /// <reference path="../../../typings.d.ts" />;
2
+ export { default as PrdTools } from './PrdTools';
@@ -17,7 +17,7 @@ import { isEqual } from 'lodash';
17
17
  import classnames from 'classnames';
18
18
  import { getKebabCase, setThemes, setTableBorder, getMapKebabCase, getMapHumpCase } from './utils/index';
19
19
  import settingSvg from '../assets/setting.svg';
20
- import { ProTools } from './component';
20
+ import { PrdTools } from './component';
21
21
  import locale from '../locale';
22
22
  var defaultCacheTime = 1; // 配置保存时间为一天
23
23
  var defaultThemeConfig = {
@@ -183,7 +183,7 @@ var ProThemeTools = function ProThemeTools(_ref) {
183
183
  className: "setting-icon",
184
184
  src: settingSvg
185
185
  })
186
- }), _jsx(ProTools, {
186
+ }), _jsx(PrdTools, {
187
187
  prefixCls: prefixCls,
188
188
  onReset: onReset,
189
189
  onClose: toggle,
@@ -1,7 +1,7 @@
1
1
  @root-entry-name: 'default';
2
2
  @import (reference) '~antd/es/style/themes/index.less';
3
3
 
4
- @import '../component/ProTools/style/index.less';
4
+ @import '../component/PrdTools/style/index.less';
5
5
 
6
6
  .pro-theme-tools {
7
7
  display: flex;
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
11
  var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
11
12
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
12
13
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
@@ -25,10 +26,10 @@ var _ProConfigProvider = require("../../../ProConfigProvider");
25
26
  var _Container = _interopRequireDefault(require("../../../ProForm/components/Container"));
26
27
  var _transformNames = _interopRequireDefault(require("../../../ProForm/utils/transformNames"));
27
28
  var _useFieldProps = require("../../../ProForm/utils/useFieldProps");
29
+ var _useListChanged3 = require("../../../ProForm/utils/useListChanged");
28
30
  var _useRules = _interopRequireDefault(require("../../../ProForm/utils/useRules"));
29
31
  var _utils = require("../../../ProForm/utils");
30
32
  var _ConfirmWrapper = _interopRequireDefault(require("../../../ProForm/components/render/ConfirmWrapper"));
31
- var _ListChanged = _interopRequireDefault(require("./ListChanged"));
32
33
  var _excluded = ["type", "valueType", "names", "fieldProps", "labelRequired", "editRender", "component", "viewRender", "title", "originTitle", "label", "dataIndex", "formItemProps", "isEditable", "required", "rules", "equalWith", "className", "trim", "confirm"];
33
34
  /* eslint-disable prefer-destructuring */
34
35
  /* eslint-disable prefer-const */
@@ -491,6 +492,21 @@ var RenderField = function RenderField(_ref) {
491
492
  return _ref3.apply(this, arguments);
492
493
  };
493
494
  }();
495
+ // 判断当前字段是否变更
496
+ var _useListChanged = (0, _useListChanged3.useListChanged)({
497
+ name: cellName,
498
+ names: names,
499
+ namesStr: [].concat((0, _toConsumableArray2.default)(baseName), [index, dataIndex]),
500
+ rowKeyPath: [].concat((0, _toConsumableArray2.default)(baseName), [index, 'rowKey']),
501
+ originalName: originalName,
502
+ originalNames: originalNames,
503
+ originalValues: originalValues,
504
+ form: form,
505
+ equalWith: equalWith
506
+ }),
507
+ _useListChanged2 = (0, _slicedToArray2.default)(_useListChanged, 2),
508
+ changed = _useListChanged2[0],
509
+ originalValue = _useListChanged2[1];
494
510
  var componentProps = (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({
495
511
  form: form,
496
512
  name: cellName
@@ -536,35 +552,16 @@ var RenderField = function RenderField(_ref) {
536
552
  if (isView) {
537
553
  delete _formItemProps.rules;
538
554
  }
539
- var _className = (0, _classnames.default)((0, _defineProperty2.default)({}, className, className));
555
+ var _className = (0, _classnames.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, className, className), 'pro-form-item-changed', changed));
540
556
  var FormItem = null;
541
- var FieldComponent = /*#__PURE__*/_react.default.isValidElement(TargetComponent) ? ( /*#__PURE__*/_react.default.cloneElement(TargetComponent, componentProps)) : (0, _jsxRuntime.jsx)(TargetComponent, (0, _objectSpread2.default)({}, componentProps));
542
- if (originalValues) {
543
- FieldComponent = (0, _jsxRuntime.jsx)(_ListChanged.default, {
544
- name: cellName,
545
- names: names,
546
- namesStr: [].concat((0, _toConsumableArray2.default)(baseName), [index, dataIndex]),
547
- rowKeyPath: [].concat((0, _toConsumableArray2.default)(baseName), [index, 'rowKey']),
548
- originalName: originalName,
549
- originalNames: originalNames,
550
- originalValues: originalValues,
551
- form: form,
552
- equalWith: equalWith,
553
- type: type,
554
- children: FieldComponent
555
- });
556
- }
557
- if ((_componentProps = componentProps) === null || _componentProps === void 0 ? void 0 : _componentProps.confirm) {
558
- FieldComponent = (0, _jsxRuntime.jsx)(_ConfirmWrapper.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, componentProps), {}, {
559
- children: FieldComponent
560
- }));
561
- }
562
557
  FormItem = TargetComponent ? (0, _jsxRuntime.jsx)(_antd.Form.Item, (0, _objectSpread2.default)((0, _objectSpread2.default)({
563
558
  validateFirst: true
564
559
  }, (0, _lodash.omit)(_formItemProps, ['render', 'cache', 'key', 'width', 'hiddenNames', 'name', 'onCell'])), {}, {
565
560
  className: _className,
566
561
  name: formNamePath ? cellName.slice((formNamePath === null || formNamePath === void 0 ? void 0 : formNamePath.length) - 1) : cellName,
567
- children: FieldComponent
562
+ children: ((_componentProps = componentProps) === null || _componentProps === void 0 ? void 0 : _componentProps.confirm) ? (0, _jsxRuntime.jsx)(_ConfirmWrapper.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, componentProps), {}, {
563
+ children: /*#__PURE__*/_react.default.isValidElement(TargetComponent) ? ( /*#__PURE__*/_react.default.cloneElement(TargetComponent, componentProps)) : (0, _jsxRuntime.jsx)(TargetComponent, (0, _objectSpread2.default)({}, componentProps))
564
+ })) : /*#__PURE__*/_react.default.isValidElement(TargetComponent) ? ( /*#__PURE__*/_react.default.cloneElement(TargetComponent, componentProps)) : (0, _jsxRuntime.jsx)(TargetComponent, (0, _objectSpread2.default)({}, componentProps))
568
565
  })) : (0, _jsxRuntime.jsx)(_Container.default, {
569
566
  viewEmpty: viewEmpty
570
567
  });
@@ -582,9 +579,28 @@ var RenderField = function RenderField(_ref) {
582
579
  }
583
580
  }));
584
581
  }
582
+ var originalTitle = originalDiffTip && originalValues ? (0, _jsxRuntime.jsxs)(_antd.Space, {
583
+ children: ["\u521D\u59CB\u503C\uFF1A", /*#__PURE__*/_react.default.isValidElement(TargetComponent) ? ( /*#__PURE__*/_react.default.cloneElement(TargetComponent, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, componentProps), {}, {
584
+ isView: true,
585
+ value: originalValue,
586
+ checked: type === 'Switch' ? originalValue : undefined
587
+ }))) : (0, _jsxRuntime.jsx)(TargetComponent, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, componentProps), {}, {
588
+ isView: true,
589
+ value: originalValue,
590
+ checked: type === 'Switch' ? originalValue : undefined
591
+ }))]
592
+ }) : null;
585
593
  return (0, _jsxRuntime.jsx)(_useFieldProps.FieldProvider, {
586
594
  value: (_componentProps2 = componentProps) === null || _componentProps2 === void 0 ? void 0 : _componentProps2.otherProps,
587
- children: FormItem
595
+ children: !originalTitle || ['FormList', 'ProEditTable'].includes(type) ? FormItem : (0, _jsxRuntime.jsx)(_antd.Tooltip, {
596
+ title: originalTitle,
597
+ placement: "topLeft",
598
+ open: changed ? undefined : false,
599
+ getPopupContainer: function getPopupContainer(target) {
600
+ return target.parentElement;
601
+ },
602
+ children: FormItem
603
+ })
588
604
  });
589
605
  };
590
606
  var _default = exports.default = RenderField;
@@ -21,7 +21,6 @@ var _ProConfigProvider = require("../../../../ProConfigProvider");
21
21
  var _useEnum = _interopRequireDefault(require("../../../../ProEnum/hooks/useEnum"));
22
22
  var _locale = _interopRequireDefault(require("../../../../locale"));
23
23
  var _ = _interopRequireDefault(require("../../.."));
24
- var _Container = _interopRequireDefault(require("../../Container"));
25
24
  var _excluded = ["className", "hasDetail", "detailMaxLength", "fieldNames", "value", "disabled", "dataSource", "onChange", "useRequest", "transformResponse", "level", "isView", "enumCode", "code", "tooltip", "separator", "detailPlaceholder"];
26
25
  var Text = _antd.Typography.Text;
27
26
  var defaultFieldNames = {
@@ -83,8 +82,7 @@ var ProCascader = function ProCascader(props) {
83
82
  detailPlaceholder = props.detailPlaceholder,
84
83
  otherProps = (0, _objectWithoutProperties2.default)(props, _excluded);
85
84
  var _ref3 = _.default.useFieldProps() || {},
86
- isViewCon = _ref3.isView,
87
- viewEmpty = _ref3.viewEmpty;
85
+ isViewCon = _ref3.isView;
88
86
  var addressCode = code || enumCode;
89
87
  var realIsView = typeof isView === 'boolean' ? isView : isViewCon;
90
88
  var realLevel = Math.max(2, level);
@@ -240,9 +238,17 @@ var ProCascader = function ProCascader(props) {
240
238
  }
241
239
  }
242
240
  };
243
- return realIsView ? (0, _jsxRuntime.jsx)(_Container.default, {
244
- tooltip: !!tooltip,
245
- viewEmpty: viewEmpty,
241
+ return realIsView ? tooltip ? (0, _jsxRuntime.jsx)(_antd.Tooltip, {
242
+ className: className,
243
+ title: tooltip === true ? viewValue : tooltip,
244
+ children: (0, _jsxRuntime.jsx)(Text, {
245
+ ellipsis: {
246
+ tooltip: false
247
+ },
248
+ children: viewValue
249
+ })
250
+ }) : (0, _jsxRuntime.jsx)("span", {
251
+ className: className,
246
252
  children: viewValue
247
253
  }) : (0, _jsxRuntime.jsxs)("div", {
248
254
  className: "pro-address ".concat(className),
@@ -11,6 +11,7 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
11
11
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
12
12
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
13
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
14
15
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
16
  var _jsxRuntime = require("react/jsx-runtime");
16
17
  var _antd = require("antd");
@@ -23,10 +24,10 @@ var _index = require("../../utils/index");
23
24
  var _ProConfigProvider = require("../../../ProConfigProvider");
24
25
  var _transformNames = _interopRequireDefault(require("../../utils/transformNames"));
25
26
  var _valueType = _interopRequireDefault(require("../../utils/valueType"));
27
+ var _useChanged3 = require("../../utils/useChanged");
26
28
  var _tip = _interopRequireDefault(require("../../../assets/tip.svg"));
27
29
  var _useRules = _interopRequireDefault(require("../../utils/useRules"));
28
30
  var _ConfirmWrapper = _interopRequireDefault(require("./ConfirmWrapper"));
29
- var _Changed = _interopRequireDefault(require("./Changed"));
30
31
  var _excluded = ["labelWidth", "hiddenNames", "trim", "upperCase", "className", "rules", "required", "labelRequired", "tooltip"];
31
32
  /* eslint-disable prefer-destructuring */
32
33
  // 这个组件只管渲染, 参数的整理在外部处理
@@ -98,6 +99,18 @@ var Render = function Render(props) {
98
99
  return Array.isArray(name) ? name.join('_') : name;
99
100
  }).join('-');
100
101
  }, [otherProps === null || otherProps === void 0 ? void 0 : otherProps.names]);
102
+ // 判断当前字段是否变更
103
+ var _useChanged = (0, _useChanged3.useChanged)({
104
+ name: formItemProps.name,
105
+ names: otherProps.names,
106
+ namesStr: namesStr,
107
+ originalValues: originalValues,
108
+ form: form,
109
+ equalWith: equalWith
110
+ }),
111
+ _useChanged2 = (0, _slicedToArray2.default)(_useChanged, 2),
112
+ changed = _useChanged2[0],
113
+ originalValue = _useChanged2[1];
101
114
  var internalRule = (0, _useRules.default)({
102
115
  names: otherProps.names,
103
116
  label: otherFormItemProps.label,
@@ -169,7 +182,7 @@ var Render = function Render(props) {
169
182
  var lastComponentProps = (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, componentProps), _fieldProps), {}, {
170
183
  disabled: lastDisabled
171
184
  });
172
- var _className = (0, _classnames.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, className, className), 'pro-form-item-width-auto', ['Switch'].includes(type)));
185
+ var _className = (0, _classnames.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, className, className), 'pro-form-item-changed', changed), 'pro-form-item-width-auto', ['Switch'].includes(type)));
173
186
  if (formItemProps.hidden === true || _show === false) {
174
187
  // 为了监听shouldUpdate 必须存在一个FormItem, 空Input解决 【[antd: Form.Item] `name` is only used for validate React element】
175
188
  return (0, _jsxRuntime.jsx)(_antd.Form.Item, {
@@ -431,17 +444,7 @@ var Render = function Render(props) {
431
444
  // @ts-ignore
432
445
  _internalItemRender: internalItemRender,
433
446
  className: _className,
434
- children: (0, _jsxRuntime.jsx)(_Changed.default, {
435
- name: formItemProps.name,
436
- names: otherProps.names,
437
- namesStr: namesStr,
438
- originalValues: originalValues,
439
- form: form,
440
- equalWith: equalWith,
441
- originalDiffTip: originalDiffTip,
442
- type: type,
443
- children: child
444
- })
447
+ children: child
445
448
  }));
446
449
  var formItem = orgFormItem;
447
450
  // 当存在shouldUpdate时捕获所有form变更(防止表单onchange设置form值时无法更新的问题)
@@ -457,23 +460,32 @@ var Render = function Render(props) {
457
460
  // @ts-ignore
458
461
  _internalItemRender: internalItemRender,
459
462
  className: _className,
460
- children: (0, _jsxRuntime.jsx)(_Changed.default, {
461
- name: formItemProps.name,
462
- names: otherProps.names,
463
- namesStr: namesStr,
464
- originalValues: originalValues,
465
- form: form,
466
- equalWith: equalWith,
467
- originalDiffTip: originalDiffTip,
468
- type: type,
469
- children: child
470
- })
463
+ children: child
471
464
  }));
472
465
  }
473
466
  })
474
467
  });
475
468
  }
476
- return formItem;
469
+ // 不渲染tooltip
470
+ if (!originalDiffTip || ['FormList', 'ProEditTable'].includes(type)) {
471
+ return formItem;
472
+ }
473
+ var title = (0, _jsxRuntime.jsxs)(_antd.Space, {
474
+ children: ["\u521D\u59CB\u503C\uFF1A", /*#__PURE__*/_react.default.cloneElement(child, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, child), {}, {
475
+ isView: true,
476
+ value: originalValue,
477
+ checked: type === 'Switch' ? originalValue : undefined
478
+ }))]
479
+ });
480
+ return (0, _jsxRuntime.jsx)(_antd.Tooltip, {
481
+ title: title,
482
+ open: changed ? undefined : false,
483
+ // open={true}
484
+ getPopupContainer: function getPopupContainer(target) {
485
+ return target.parentElement;
486
+ },
487
+ children: formItem
488
+ });
477
489
  };
478
490
  var FormItem = (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
479
491
  children: [renderItem(), (otherProps === null || otherProps === void 0 ? void 0 : (_otherProps$names2 = otherProps.names) === null || _otherProps$names2 === void 0 ? void 0 : _otherProps$names2.length) ? otherProps.names.map(function (name) {
@@ -116,6 +116,58 @@
116
116
  }
117
117
  }
118
118
 
119
+ // 比较原始值场景下 不同时的样式
120
+ &.pro-form-item-changed {
121
+ span.@{ant-prefix}-input-affix-wrapper,
122
+ .@{ant-prefix}-select .@{ant-prefix}-select-selector,
123
+ .@{ant-prefix}-picker,
124
+ .@{ant-prefix}-input-number {
125
+ background: @zaui-contract-bg !important;
126
+
127
+ input {
128
+ background: transparent;
129
+ }
130
+ .@{ant-prefix}-select-selection-placeholder {
131
+ z-index: 9;
132
+ }
133
+ }
134
+
135
+ .@{ant-prefix}-form-item-control:has(.@{ant-prefix}-switch-handle),
136
+ .@{ant-prefix}-form-item-control:has(.@{ant-prefix}-checkbox-wrapper-in-form-item) {
137
+ background: @zaui-contract-bg;
138
+ border-radius: 4px;
139
+ }
140
+
141
+ // 地址组件
142
+ .@{ant-prefix}-form-item-control-input-content {
143
+ // 查看模式
144
+ & > span {
145
+ border-radius: 4px;
146
+ padding: 5px 8px;
147
+ background: @zaui-contract-bg;
148
+ }
149
+
150
+ & > .pro-address {
151
+ .@{ant-prefix}-select-selector,
152
+ .@{ant-prefix}-input-affix-wrapper,
153
+ .@{ant-prefix}-input-disabled {
154
+ background: @zaui-contract-bg;
155
+ }
156
+ }
157
+ & > .@{ant-prefix}-input-group {
158
+ .forever-checkbox {
159
+ background: @zaui-contract-bg;
160
+ }
161
+ }
162
+ }
163
+
164
+ .pro-form-view-container {
165
+ padding: 4px 8px;
166
+ background: @zaui-contract-bg;
167
+ border-radius: 4px;
168
+ }
169
+ }
170
+
119
171
  .@{ant-prefix}-row {
120
172
  width: 100%;
121
173
  }
@@ -321,56 +373,4 @@
321
373
  }
322
374
  }
323
375
  }
324
-
325
- // 比较原始值场景下 不同时的样式
326
- .pro-form-item-changed {
327
- span.@{ant-prefix}-input-affix-wrapper,
328
- .@{ant-prefix}-select .@{ant-prefix}-select-selector,
329
- .@{ant-prefix}-picker,
330
- .@{ant-prefix}-input-number {
331
- background: @zaui-contract-bg !important;
332
-
333
- input {
334
- background: transparent;
335
- }
336
- .@{ant-prefix}-select-selection-placeholder {
337
- z-index: 9;
338
- }
339
- }
340
-
341
- .@{ant-prefix}-form-item-control:has(.@{ant-prefix}-switch-handle),
342
- .@{ant-prefix}-form-item-control:has(.@{ant-prefix}-checkbox-wrapper-in-form-item) {
343
- background: @zaui-contract-bg;
344
- border-radius: 4px;
345
- }
346
-
347
- // 地址组件
348
- .@{ant-prefix}-form-item-control-input-content {
349
- // 查看模式
350
- & > span {
351
- border-radius: 4px;
352
- padding: 5px 8px;
353
- background: @zaui-contract-bg;
354
- }
355
-
356
- & > .pro-address {
357
- .@{ant-prefix}-select-selector,
358
- .@{ant-prefix}-input-affix-wrapper,
359
- .@{ant-prefix}-input-disabled {
360
- background: @zaui-contract-bg;
361
- }
362
- }
363
- & > .@{ant-prefix}-input-group {
364
- .forever-checkbox {
365
- background: @zaui-contract-bg;
366
- }
367
- }
368
- }
369
-
370
- .pro-form-view-container {
371
- padding: 4px 8px;
372
- background: @zaui-contract-bg;
373
- border-radius: 4px;
374
- }
375
- }
376
376
  }
@@ -3,6 +3,7 @@ interface Params {
3
3
  originalValue: any;
4
4
  value: any;
5
5
  form: FormInstance;
6
+ name?: string | any[];
6
7
  equalWith?: (originalValue: any, currentValue: any) => boolean;
7
8
  }
8
9
  export declare const diffOriginal: (params: Params) => boolean;
@@ -1,15 +1,38 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports.diffOriginal = void 0;
8
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
7
9
  var _lodash = require("lodash");
8
10
  var nullValue = [null, undefined, '']; // 输入框空值时可能存在的三种值 视为相等
11
+ /** 将解构后的name值,反向转回names,例如 formData {a:1, b:2} names ['a', 'b'] 返回 [1,2] */
12
+ var extractValues = function extractValues(form, pathString) {
13
+ var _pathString;
14
+ var result = [];
15
+ var PrefixesName = (0, _lodash.isString)(pathString) ? [] : pathString.slice(0, -1);
16
+ if ((0, _lodash.isString)(pathString)) {
17
+ pathString.split('-').forEach(function (item) {
18
+ result.push(form.getFieldValue([].concat((0, _toConsumableArray2.default)(PrefixesName), [item])));
19
+ });
20
+ return result;
21
+ }
22
+ (_pathString = pathString[pathString.length - 1]) === null || _pathString === void 0 ? void 0 : _pathString.split('-').forEach(function (item) {
23
+ result.push(form.getFieldValue([].concat((0, _toConsumableArray2.default)(PrefixesName), [item])));
24
+ });
25
+ return result;
26
+ };
9
27
  var diffOriginal = exports.diffOriginal = function diffOriginal(params) {
28
+ var _name$join;
10
29
  var originalValue = params.originalValue,
11
- value = params.value,
12
- equalWith = params.equalWith;
30
+ _value = params.value,
31
+ equalWith = params.equalWith,
32
+ form = params.form,
33
+ name = params.name;
34
+ var isNames = Array.isArray(name) && ((_name$join = name.join(',')) === null || _name$join === void 0 ? void 0 : _name$join.includes('-')) || (name === null || name === void 0 ? void 0 : name.includes('-'));
35
+ var value = !isNames ? _value : extractValues(form, name);
13
36
  // 支持传入自定义比较事件
14
37
  if ((0, _lodash.isFunction)(equalWith)) {
15
38
  return !equalWith(originalValue, value);
@@ -24,7 +47,8 @@ var diffOriginal = exports.diffOriginal = function diffOriginal(params) {
24
47
  });
25
48
  }
26
49
  if (!nullValue.includes(value) || !nullValue.includes(originalValue)) {
27
- return !(0, _lodash.isEqual)(value, originalValue);
50
+ var res = !(0, _lodash.isEqual)(value, originalValue);
51
+ return res;
28
52
  }
29
53
  return false;
30
54
  };