@zat-design/sisyphus-react 3.9.0-beta.19 → 3.9.0-beta.20

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 (29) hide show
  1. package/dist/index.esm.css +16 -10
  2. package/dist/less.esm.css +12 -8
  3. package/es/ProEditTable/components/RenderField/ListChangedWrapper.js +7 -3
  4. package/es/ProEditTable/components/RenderField/index.js +3 -2
  5. package/es/ProForm/components/base/SwitchCheckbox/index.js +9 -2
  6. package/es/ProForm/components/combination/Group/component/ComRender.d.ts +1 -0
  7. package/es/ProForm/components/combination/Group/component/ComRender.js +12 -1
  8. package/es/ProForm/components/render/ChangedWrapper.js +1 -1
  9. package/es/ProForm/components/render/RenderFields.js +3 -2
  10. package/es/ProForm/components/render/propsType.d.ts +1 -0
  11. package/es/ProForm/style/index.less +7 -4
  12. package/es/ProForm/utils/diffOriginal.js +6 -4
  13. package/es/ProTable/components/RenderColumn/index.js +1 -4
  14. package/es/ProTable/components/TableResizable/index.js +1 -5
  15. package/es/style/theme/antd.less +4 -2
  16. package/lib/ProEditTable/components/RenderField/ListChangedWrapper.js +5 -1
  17. package/lib/ProEditTable/components/RenderField/index.js +3 -2
  18. package/lib/ProForm/components/base/SwitchCheckbox/index.js +9 -2
  19. package/lib/ProForm/components/combination/Group/component/ComRender.d.ts +1 -0
  20. package/lib/ProForm/components/combination/Group/component/ComRender.js +12 -1
  21. package/lib/ProForm/components/render/ChangedWrapper.js +1 -1
  22. package/lib/ProForm/components/render/RenderFields.js +3 -2
  23. package/lib/ProForm/components/render/propsType.d.ts +1 -0
  24. package/lib/ProForm/style/index.less +7 -4
  25. package/lib/ProForm/utils/diffOriginal.js +6 -4
  26. package/lib/ProTable/components/RenderColumn/index.js +1 -4
  27. package/lib/ProTable/components/TableResizable/index.js +0 -4
  28. package/lib/style/theme/antd.less +4 -2
  29. package/package.json +1 -1
@@ -3097,7 +3097,8 @@ span.ant-input-group-compact.pro-range-limit .forever-checkbox {
3097
3097
  .pro-form .pro-form-item-changed .ant-form-item-control-input-content > .ant-input-group .forever-checkbox {
3098
3098
  background: var(--zaui-contract-bg, #fffaa1);
3099
3099
  }
3100
- .pro-form .pro-form-item-changed .ant-checkbox-group {
3100
+ .pro-form .pro-form-item-changed .ant-checkbox-group,
3101
+ .pro-form .pro-form-item-changed .pro-switch-checkbox {
3101
3102
  padding: 5px 0;
3102
3103
  }
3103
3104
  .pro-form .pro-form-item-changed:has(.ant-switch) {
@@ -3157,7 +3158,8 @@ span.ant-input-group-compact.pro-range-limit .forever-checkbox {
3157
3158
  .pro-form .pro-form-item-add .ant-form-item-control-input-content > .ant-input-group .forever-checkbox {
3158
3159
  background: var(--zaui-contract-bg-add, #d2fff4);
3159
3160
  }
3160
- .pro-form .pro-form-item-add .ant-checkbox-group {
3161
+ .pro-form .pro-form-item-add .ant-checkbox-group,
3162
+ .pro-form .pro-form-item-add .pro-switch-checkbox {
3161
3163
  padding: 5px 0;
3162
3164
  }
3163
3165
  .pro-form .pro-form-item-add:has(.ant-switch) {
@@ -3171,25 +3173,27 @@ span.ant-input-group-compact.pro-range-limit .forever-checkbox {
3171
3173
  background: var(--zaui-contract-bg-add, #d2fff4);
3172
3174
  border-radius: 4px;
3173
3175
  }
3174
- .original-value-tootip {
3176
+ .original-value-tooltip {
3175
3177
  max-width: 100%;
3176
3178
  width: -webkit-max-content;
3177
3179
  width: -moz-max-content;
3178
3180
  width: max-content;
3179
- position: fixed;
3180
3181
  }
3181
- .original-value-tootip .changed-tooltip .original-value-container .ant-space-item:nth-child(1) {
3182
+ .original-value-tooltip .changed-tooltip .original-value-container .ant-space-item:nth-child(1) {
3182
3183
  white-space: nowrap;
3183
3184
  }
3184
- .original-value-tootip .changed-tooltip .original-value-container .pro-group .ant-space-compact {
3185
+ .original-value-tooltip .changed-tooltip .original-value-container .pro-group .ant-space-compact {
3185
3186
  display: block;
3186
3187
  }
3187
- .original-value-tootip .changed-tooltip .original-value-container .pro-group .pro-form-view-container {
3188
+ .original-value-tooltip .changed-tooltip .original-value-container .pro-group .pro-form-view-container {
3188
3189
  word-break: keep-all;
3189
3190
  }
3190
- .original-value-tootip .changed-tooltip .current-value-container .ant-space-item:nth-child(1) {
3191
+ .original-value-tooltip .changed-tooltip .current-value-container .ant-space-item:nth-child(1) {
3191
3192
  white-space: nowrap;
3192
3193
  }
3194
+ .original-value-tooltip-fixed {
3195
+ position: fixed;
3196
+ }
3193
3197
  .pro-upload .pro-upload-dragger .pro-upload-handle-box {
3194
3198
  padding: var(--zaui-space-size-sm, 8px);
3195
3199
  background: #f8f9fa;
@@ -5628,8 +5632,10 @@ input[type='button'] {
5628
5632
  .ant-table.ant-table-scroll-horizontal table .ant-table-tbody tr td {
5629
5633
  border-bottom: none;
5630
5634
  }
5631
- .ant-table.ant-table-scroll-horizontal table .ant-table-tbody .ant-table-row:nth-child(even):hover td {
5632
- background-color: var(--zaui-table-hover-bg, #fafafa);
5635
+ .ant-table.ant-table-scroll-horizontal table .ant-table-tbody .ant-table-row:nth-child(even):hover td,
5636
+ .ant-table.ant-table-scroll-horizontal table .ant-table-tbody .ant-table-row:nth-child(even):hover td.ant-table-cell-fix-right,
5637
+ .ant-table.ant-table-scroll-horizontal table .ant-table-tbody .ant-table-row:nth-child(even):hover td.ant-table-cell-fix-left {
5638
+ background-color: var(--zaui-table-hover-bg, #fafafa) !important;
5633
5639
  }
5634
5640
  .ant-table.ant-table-scroll-horizontal table .ant-table-tbody .ant-table-row:nth-child(even) td,
5635
5641
  .ant-table.ant-table-scroll-horizontal table .ant-table-tbody .ant-table-row:nth-child(even) td.ant-table-cell-fix-right,
package/dist/less.esm.css CHANGED
@@ -3097,7 +3097,8 @@ span.ant-input-group-compact.pro-range-limit .forever-checkbox {
3097
3097
  .pro-form .pro-form-item-changed .ant-form-item-control-input-content > .ant-input-group .forever-checkbox {
3098
3098
  background: var(--zaui-contract-bg, #fffaa1);
3099
3099
  }
3100
- .pro-form .pro-form-item-changed .ant-checkbox-group {
3100
+ .pro-form .pro-form-item-changed .ant-checkbox-group,
3101
+ .pro-form .pro-form-item-changed .pro-switch-checkbox {
3101
3102
  padding: 5px 0;
3102
3103
  }
3103
3104
  .pro-form .pro-form-item-changed:has(.ant-switch) {
@@ -3157,7 +3158,8 @@ span.ant-input-group-compact.pro-range-limit .forever-checkbox {
3157
3158
  .pro-form .pro-form-item-add .ant-form-item-control-input-content > .ant-input-group .forever-checkbox {
3158
3159
  background: var(--zaui-contract-bg-add, #d2fff4);
3159
3160
  }
3160
- .pro-form .pro-form-item-add .ant-checkbox-group {
3161
+ .pro-form .pro-form-item-add .ant-checkbox-group,
3162
+ .pro-form .pro-form-item-add .pro-switch-checkbox {
3161
3163
  padding: 5px 0;
3162
3164
  }
3163
3165
  .pro-form .pro-form-item-add:has(.ant-switch) {
@@ -3171,25 +3173,27 @@ span.ant-input-group-compact.pro-range-limit .forever-checkbox {
3171
3173
  background: var(--zaui-contract-bg-add, #d2fff4);
3172
3174
  border-radius: 4px;
3173
3175
  }
3174
- .original-value-tootip {
3176
+ .original-value-tooltip {
3175
3177
  max-width: 100%;
3176
3178
  width: -webkit-max-content;
3177
3179
  width: -moz-max-content;
3178
3180
  width: max-content;
3179
- position: fixed;
3180
3181
  }
3181
- .original-value-tootip .changed-tooltip .original-value-container .ant-space-item:nth-child(1) {
3182
+ .original-value-tooltip .changed-tooltip .original-value-container .ant-space-item:nth-child(1) {
3182
3183
  white-space: nowrap;
3183
3184
  }
3184
- .original-value-tootip .changed-tooltip .original-value-container .pro-group .ant-space-compact {
3185
+ .original-value-tooltip .changed-tooltip .original-value-container .pro-group .ant-space-compact {
3185
3186
  display: block;
3186
3187
  }
3187
- .original-value-tootip .changed-tooltip .original-value-container .pro-group .pro-form-view-container {
3188
+ .original-value-tooltip .changed-tooltip .original-value-container .pro-group .pro-form-view-container {
3188
3189
  word-break: keep-all;
3189
3190
  }
3190
- .original-value-tootip .changed-tooltip .current-value-container .ant-space-item:nth-child(1) {
3191
+ .original-value-tooltip .changed-tooltip .current-value-container .ant-space-item:nth-child(1) {
3191
3192
  white-space: nowrap;
3192
3193
  }
3194
+ .original-value-tooltip-fixed {
3195
+ position: fixed;
3196
+ }
3193
3197
  .pro-upload .pro-upload-dragger .pro-upload-handle-box {
3194
3198
  padding: var(--zaui-space-size-sm, 8px);
3195
3199
  background: #f8f9fa;
@@ -8,7 +8,7 @@ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutPr
8
8
  var _excluded = ["name", "names", "namesStr", "originalName", "originalNames", "originalValues", "form", "equalWith", "rowKeyPath", "children", "type", "normalize", "getValueProps", "valuePropName", "viewRender", "diffConfig", "index"];
9
9
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
10
  import React, { useMemo, useRef } from 'react';
11
- import classNames from 'classnames';
11
+ import classnames from 'classnames';
12
12
  import { get } from 'lodash';
13
13
  import { diffOriginal } from '../../../ProForm/utils/diffOriginal';
14
14
  import { useProConfig } from '../../../ProConfigProvider';
@@ -162,7 +162,11 @@ var ListChangedWrapper = function ListChangedWrapper(props) {
162
162
  };
163
163
  // @ts-ignore
164
164
  var _showEllipse = ((_children$props = children.props) === null || _children$props === void 0 ? void 0 : _children$props.showEllipse) || ((_children$props2 = children.props) === null || _children$props2 === void 0 ? void 0 : _children$props2.tooltip);
165
- var diffClassName = classNames({
165
+ var classNames = classnames({
166
+ 'original-value-tooltip': true,
167
+ 'original-value-tooltip-fixed': true
168
+ });
169
+ var diffClassName = classnames({
166
170
  'pro-form-item-changed': isChanged,
167
171
  'pro-form-item-add': isAdd
168
172
  });
@@ -172,7 +176,7 @@ var ListChangedWrapper = function ListChangedWrapper(props) {
172
176
  getPopupContainer: function getPopupContainer(trigger) {
173
177
  return scrollFollowParent ? trigger.parentElement : document.body;
174
178
  },
175
- overlayClassName: "original-value-tootip",
179
+ overlayClassName: classNames,
176
180
  placement: "topLeft",
177
181
  autoAdjustOverflow: false,
178
182
  title: _jsxs(_Space, {
@@ -6,7 +6,7 @@ import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
6
6
  import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
7
7
  import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
8
8
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
9
- var _excluded = ["type", "valueType", "names", "fieldProps", "labelRequired", "editRender", "component", "viewRender", "title", "originTitle", "label", "dataIndex", "formItemProps", "isEditable", "required", "rules", "equalWith", "className", "trim", "confirm"];
9
+ var _excluded = ["type", "valueType", "names", "fieldProps", "labelRequired", "editRender", "component", "viewRender", "title", "originTitle", "label", "dataIndex", "formItemProps", "isEditable", "required", "rules", "equalWith", "onDiff", "className", "trim", "confirm"];
10
10
  import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
11
11
  /* eslint-disable prefer-destructuring */
12
12
  /* eslint-disable prefer-const */
@@ -53,6 +53,7 @@ var RenderField = function RenderField(_ref) {
53
53
  _column$rules = column.rules,
54
54
  rules = _column$rules === void 0 ? [] : _column$rules,
55
55
  equalWith = column.equalWith,
56
+ onDiff = column.onDiff,
56
57
  className = column.className,
57
58
  trim = column.trim,
58
59
  confirm = column.confirm,
@@ -555,7 +556,7 @@ var RenderField = function RenderField(_ref) {
555
556
  originalNames: originalNames,
556
557
  originalValues: originalValues,
557
558
  form: form,
558
- equalWith: equalWith,
559
+ equalWith: onDiff || equalWith,
559
560
  type: type,
560
561
  onChange: _onChange,
561
562
  valuePropName: _formItemProps.valuePropName,
@@ -2,9 +2,10 @@ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
2
  import "antd/es/checkbox/style";
3
3
  import _Checkbox from "antd/es/checkbox";
4
4
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
5
- var _excluded = ["onChange", "disabled", "value", "otherProps"];
5
+ var _excluded = ["onChange", "disabled", "value", "otherProps", "className"];
6
6
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
7
  import { isNull, isUndefined } from 'lodash';
8
+ import classnames from 'classnames';
8
9
  import { useProConfig } from '../../../../ProConfigProvider';
9
10
  import locale from '../../../../locale';
10
11
  import ProForm from '../../../../ProForm';
@@ -13,6 +14,7 @@ var SwitchCheckbox = function SwitchCheckbox(props) {
13
14
  disabled = props.disabled,
14
15
  value = props.value,
15
16
  otherProps = props.otherProps,
17
+ className = props.className,
16
18
  restProps = _objectWithoutProperties(props, _excluded);
17
19
  var _ref = ProForm.useFieldProps() || {},
18
20
  isViewCon = _ref.isView,
@@ -47,9 +49,14 @@ var SwitchCheckbox = function SwitchCheckbox(props) {
47
49
  })]
48
50
  });
49
51
  }
52
+ var classNames = classnames({
53
+ 'pro-switch-checkbox': true,
54
+ className: className
55
+ });
50
56
  return _jsx(_Checkbox, _objectSpread(_objectSpread(_objectSpread({
51
57
  disabled: disabled,
52
- onChange: changeVal
58
+ onChange: changeVal,
59
+ className: classNames
53
60
  }, initialConfig), restProps), {}, {
54
61
  children: restProps.label
55
62
  }));
@@ -16,6 +16,7 @@ interface Props {
16
16
  valuePropName?: string;
17
17
  isView?: boolean;
18
18
  getValueProps?: (value: any) => Record<string, unknown>;
19
+ viewRender?: (props: any) => any;
19
20
  }
20
21
  /** 渲染组件 */
21
22
  declare const ComRender: React.FC<Props>;
@@ -1,7 +1,7 @@
1
1
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
2
2
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
3
3
  import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
4
- var _excluded = ["type", "confirm", "component", "fieldProps", "contextProps", "before", "after", "getValueProps", "valuePropName", "valueType", "isView"];
4
+ var _excluded = ["type", "confirm", "component", "fieldProps", "contextProps", "before", "after", "getValueProps", "valuePropName", "valueType", "isView", "viewRender"];
5
5
  import { jsx as _jsx } from "react/jsx-runtime";
6
6
  import React from 'react';
7
7
  import ConfirmWrapper from '../../../../components/render/ConfirmWrapper';
@@ -42,6 +42,7 @@ var ComRender = function ComRender(props) {
42
42
  valuePropName = _props$valuePropName === void 0 ? 'value' : _props$valuePropName,
43
43
  valueType = props.valueType,
44
44
  isView = props.isView,
45
+ viewRender = props.viewRender,
45
46
  rest = _objectWithoutProperties(props, _excluded);
46
47
  var TypeComponent = componentMap[type];
47
48
  var mergedGetValueProps = getValueProps || function (val) {
@@ -49,6 +50,16 @@ var ComRender = function ComRender(props) {
49
50
  };
50
51
  var _props = mergedGetValueProps(fieldProps.value);
51
52
  var componentProps = _objectSpread(_objectSpread(_objectSpread({}, fieldProps), rest), _props);
53
+ if (viewRender && isView) {
54
+ return _jsx(FieldProvider, {
55
+ value: _objectSpread(_objectSpread({}, contextProps), {}, {
56
+ valueType: valueType,
57
+ type: type,
58
+ isView: isView
59
+ }),
60
+ children: viewRender(componentProps)
61
+ });
62
+ }
52
63
  var Component = component ? (/*#__PURE__*/React.cloneElement(component, _objectSpread({}, componentProps))) : _jsx(TypeComponent, _objectSpread({}, componentProps));
53
64
  var Com = getComRender(Component, props, componentProps);
54
65
  return _jsx(FieldProvider, {
@@ -102,7 +102,7 @@ var ChangedWrapper = function ChangedWrapper(props) {
102
102
  getPopupContainer: function getPopupContainer(trigger) {
103
103
  return scrollFollowParent ? trigger.parentElement : document.body;
104
104
  },
105
- overlayClassName: "original-value-tootip",
105
+ overlayClassName: "original-value-tooltip",
106
106
  placement: "topLeft",
107
107
  autoAdjustOverflow: false,
108
108
  title: _jsxs(_Space, {
@@ -1,6 +1,6 @@
1
1
  import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
- var _excluded = ["show", "type", "viewRender", "viewType", "valueType", "formItemProps", "colProps", "formItemChildProps", "fieldProps", "equalWith", "clearNotShow", "required", "confirm"];
3
+ var _excluded = ["show", "type", "viewRender", "viewType", "valueType", "formItemProps", "colProps", "formItemChildProps", "fieldProps", "equalWith", "onDiff", "clearNotShow", "required", "confirm"];
4
4
  import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
5
5
  import React from 'react';
6
6
  import { isBoolean, isFunction, union, isString } from 'lodash';
@@ -69,6 +69,7 @@ var RenderFields = function RenderFields(props) {
69
69
  _column$fieldProps = column.fieldProps,
70
70
  fieldProps = _column$fieldProps === void 0 ? {} : _column$fieldProps,
71
71
  equalWith = column.equalWith,
72
+ onDiff = column.onDiff,
72
73
  _column$clearNotShow = column.clearNotShow,
73
74
  clearNotShow = _column$clearNotShow === void 0 ? outerClearNotShow : _column$clearNotShow,
74
75
  columnRequired = column.required,
@@ -208,7 +209,7 @@ var RenderFields = function RenderFields(props) {
208
209
  fieldProps: isFunction(fieldProps) ? fieldProps : null,
209
210
  isSelect: _isSelect,
210
211
  diffConfig: diffConfig,
211
- equalWith: equalWith,
212
+ equalWith: onDiff || equalWith,
212
213
  requiredOnView: requiredOnView,
213
214
  globalControl: globalControl,
214
215
  viewRender: viewRender
@@ -207,6 +207,7 @@ export interface ProFormColumnProps<Values = any> extends Omit<FormItemProps<Val
207
207
  hiddenNames?: string[] | any[];
208
208
  rules?: ProRule[] | ReactiveFunction<Values, ProRule[]>;
209
209
  equalWith?: DiffOriginalParams['equalWith'];
210
+ onDiff?: DiffOriginalParams['equalWith'];
210
211
  required?: boolean | boolean[] | ReactiveFunction<Values, boolean | boolean[]>;
211
212
  labelRequired?: boolean;
212
213
  toISOString?: boolean;
@@ -385,7 +385,7 @@
385
385
  }
386
386
 
387
387
  // checkbox
388
- .@{ant-prefix}-checkbox-group {
388
+ .@{ant-prefix}-checkbox-group,.pro-switch-checkbox {
389
389
  padding: 5px 0
390
390
  }
391
391
  // switch
@@ -463,7 +463,7 @@
463
463
  }
464
464
 
465
465
  // checkbox
466
- .@{ant-prefix}-checkbox-group {
466
+ .@{ant-prefix}-checkbox-group,.pro-switch-checkbox {
467
467
  padding: 5px 0
468
468
  }
469
469
  // switch
@@ -485,10 +485,9 @@
485
485
  }
486
486
  }
487
487
 
488
- .original-value-tootip{
488
+ .original-value-tooltip{
489
489
  max-width: 100%;
490
490
  width: max-content;
491
- position: fixed;
492
491
  .changed-tooltip {
493
492
  .original-value-container {
494
493
  .ant-space-item:nth-child(1) {
@@ -511,3 +510,7 @@
511
510
  }
512
511
  }
513
512
 
513
+ .original-value-tooltip-fixed {
514
+ position: fixed;
515
+ }
516
+
@@ -22,11 +22,13 @@ export var diffOriginal = function diffOriginal(params) {
22
22
  // 支持传入自定义比较事件
23
23
  if (isFunction(equalWith)) {
24
24
  var diffRes = equalWith(originalValue, value);
25
- if (diffRes === undefined) return 'same';
26
- if (typeof diffRes === 'boolean') {
27
- return diffRes ? 'same' : 'changed';
25
+ // 如果返回undefined走内置比较逻辑
26
+ if (diffRes !== undefined) {
27
+ if (typeof diffRes === 'boolean') {
28
+ return diffRes ? 'same' : 'changed';
29
+ }
30
+ return diffRes;
28
31
  }
29
- return diffRes;
30
32
  }
31
33
  var _value = filterObject(value);
32
34
  var _originalValue = filterObject(originalValue);
@@ -71,7 +71,7 @@ var RenderColumn = function RenderColumn(props) {
71
71
  width: width,
72
72
  minWidth: minWidth
73
73
  },
74
- overlayClassName: "original-value-tootip",
74
+ overlayClassName: "original-value-tooltip",
75
75
  placement: "topLeft",
76
76
  autoAdjustOverflow: false,
77
77
  title: _jsx(_Space, {
@@ -150,15 +150,12 @@ var RenderColumn = function RenderColumn(props) {
150
150
  range.setStart(box, 0);
151
151
  range.setEnd(box, box.childNodes.length);
152
152
  var rangeWidth = range.getBoundingClientRect().width;
153
- var rangeHeight = range.getBoundingClientRect().height;
154
- var contentWidth = rangeWidth - Math.floor(rangeWidth);
155
153
  var _getPadding = getPadding(box),
156
154
  pLeft = _getPadding.pLeft,
157
155
  pRight = _getPadding.pRight,
158
156
  pTop = _getPadding.pTop,
159
157
  pBottom = _getPadding.pBottom;
160
158
  var horizontalPadding = pLeft + pRight;
161
- var verticalPadding = pTop + pBottom;
162
159
  if (rangeWidth + horizontalPadding > box.clientWidth) {
163
160
  return true;
164
161
  }
@@ -3,10 +3,9 @@ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
3
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
4
4
  var _excluded = ["onDrag", "width", "minwidth"];
5
5
  import { jsx as _jsx } from "react/jsx-runtime";
6
- import { useState, useContext } from 'react';
6
+ import { useState } from 'react';
7
7
  import { Resizable } from 'react-resizable';
8
8
  import classnames from 'classnames';
9
- import { TableContext } from '../../index';
10
9
  import { getParentElement } from '../FormatColumn';
11
10
  var ResizableTitle = function ResizableTitle(props) {
12
11
  var _restProps$className;
@@ -15,9 +14,6 @@ var ResizableTitle = function ResizableTitle(props) {
15
14
  _props$minwidth = props.minwidth,
16
15
  minwidth = _props$minwidth === void 0 ? 50 : _props$minwidth,
17
16
  restProps = _objectWithoutProperties(props, _excluded);
18
- var _useContext = useContext(TableContext),
19
- tableConfig = _useContext.tableConfig,
20
- Storage = _useContext.Storage;
21
17
  // 添加偏移量
22
18
  var _useState = useState(0),
23
19
  _useState2 = _slicedToArray(_useState, 2),
@@ -280,8 +280,10 @@
280
280
  table {
281
281
  .@{ant-prefix}-table-tbody {
282
282
  .@{ant-prefix}-table-row:nth-child(even) {
283
- &:hover td {
284
- background-color: @zaui-table-hover-bg;
283
+ &:hover td,
284
+ &:hover td.@{ant-prefix}-table-cell-fix-right,
285
+ &:hover td.@{ant-prefix}-table-cell-fix-left {
286
+ background-color: @zaui-table-hover-bg !important;
285
287
  }
286
288
 
287
289
  & td,
@@ -167,6 +167,10 @@ var ListChangedWrapper = function ListChangedWrapper(props) {
167
167
  };
168
168
  // @ts-ignore
169
169
  var _showEllipse = ((_children$props = children.props) === null || _children$props === void 0 ? void 0 : _children$props.showEllipse) || ((_children$props2 = children.props) === null || _children$props2 === void 0 ? void 0 : _children$props2.tooltip);
170
+ var classNames = (0, _classnames.default)({
171
+ 'original-value-tooltip': true,
172
+ 'original-value-tooltip-fixed': true
173
+ });
170
174
  var diffClassName = (0, _classnames.default)({
171
175
  'pro-form-item-changed': isChanged,
172
176
  'pro-form-item-add': isAdd
@@ -177,7 +181,7 @@ var ListChangedWrapper = function ListChangedWrapper(props) {
177
181
  getPopupContainer: function getPopupContainer(trigger) {
178
182
  return scrollFollowParent ? trigger.parentElement : document.body;
179
183
  },
180
- overlayClassName: "original-value-tootip",
184
+ overlayClassName: classNames,
181
185
  placement: "topLeft",
182
186
  autoAdjustOverflow: false,
183
187
  title: (0, _jsxRuntime.jsxs)(_antd.Space, {
@@ -30,7 +30,7 @@ var _utils = require("../../../ProForm/utils");
30
30
  var _ConfirmWrapper = _interopRequireDefault(require("../../../ProForm/components/render/ConfirmWrapper"));
31
31
  var _getDefaultProps = require("../../utils/getDefaultProps");
32
32
  var _ListChangedWrapper = _interopRequireDefault(require("./ListChangedWrapper"));
33
- var _excluded = ["type", "valueType", "names", "fieldProps", "labelRequired", "editRender", "component", "viewRender", "title", "originTitle", "label", "dataIndex", "formItemProps", "isEditable", "required", "rules", "equalWith", "className", "trim", "confirm"];
33
+ var _excluded = ["type", "valueType", "names", "fieldProps", "labelRequired", "editRender", "component", "viewRender", "title", "originTitle", "label", "dataIndex", "formItemProps", "isEditable", "required", "rules", "equalWith", "onDiff", "className", "trim", "confirm"];
34
34
  /* eslint-disable prefer-destructuring */
35
35
  /* eslint-disable prefer-const */
36
36
  var RenderField = function RenderField(_ref) {
@@ -60,6 +60,7 @@ var RenderField = function RenderField(_ref) {
60
60
  _column$rules = column.rules,
61
61
  rules = _column$rules === void 0 ? [] : _column$rules,
62
62
  equalWith = column.equalWith,
63
+ onDiff = column.onDiff,
63
64
  className = column.className,
64
65
  trim = column.trim,
65
66
  confirm = column.confirm,
@@ -562,7 +563,7 @@ var RenderField = function RenderField(_ref) {
562
563
  originalNames: originalNames,
563
564
  originalValues: originalValues,
564
565
  form: form,
565
- equalWith: equalWith,
566
+ equalWith: onDiff || equalWith,
566
567
  type: type,
567
568
  onChange: _onChange,
568
569
  valuePropName: _formItemProps.valuePropName,
@@ -10,15 +10,17 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/h
10
10
  var _jsxRuntime = require("react/jsx-runtime");
11
11
  var _antd = require("antd");
12
12
  var _lodash = require("lodash");
13
+ var _classnames = _interopRequireDefault(require("classnames"));
13
14
  var _ProConfigProvider = require("../../../../ProConfigProvider");
14
15
  var _locale = _interopRequireDefault(require("../../../../locale"));
15
16
  var _ProForm = _interopRequireDefault(require("../../../../ProForm"));
16
- var _excluded = ["onChange", "disabled", "value", "otherProps"];
17
+ var _excluded = ["onChange", "disabled", "value", "otherProps", "className"];
17
18
  var SwitchCheckbox = function SwitchCheckbox(props) {
18
19
  var onChange = props.onChange,
19
20
  disabled = props.disabled,
20
21
  value = props.value,
21
22
  otherProps = props.otherProps,
23
+ className = props.className,
22
24
  restProps = (0, _objectWithoutProperties2.default)(props, _excluded);
23
25
  var _ref = _ProForm.default.useFieldProps() || {},
24
26
  isViewCon = _ref.isView,
@@ -53,9 +55,14 @@ var SwitchCheckbox = function SwitchCheckbox(props) {
53
55
  })]
54
56
  });
55
57
  }
58
+ var classNames = (0, _classnames.default)({
59
+ 'pro-switch-checkbox': true,
60
+ className: className
61
+ });
56
62
  return (0, _jsxRuntime.jsx)(_antd.Checkbox, (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({
57
63
  disabled: disabled,
58
- onChange: changeVal
64
+ onChange: changeVal,
65
+ className: classNames
59
66
  }, initialConfig), restProps), {}, {
60
67
  children: restProps.label
61
68
  }));
@@ -16,6 +16,7 @@ interface Props {
16
16
  valuePropName?: string;
17
17
  isView?: boolean;
18
18
  getValueProps?: (value: any) => Record<string, unknown>;
19
+ viewRender?: (props: any) => any;
19
20
  }
20
21
  /** 渲染组件 */
21
22
  declare const ComRender: React.FC<Props>;
@@ -15,7 +15,7 @@ var _ConfirmWrapper = _interopRequireDefault(require("../../../../components/ren
15
15
  var _useFieldProps = require("../../../../utils/useFieldProps");
16
16
  var componentMap = _interopRequireWildcard(require("../../../../../index"));
17
17
  var _AddonWrapper = _interopRequireDefault(require("./AddonWrapper"));
18
- var _excluded = ["type", "confirm", "component", "fieldProps", "contextProps", "before", "after", "getValueProps", "valuePropName", "valueType", "isView"];
18
+ var _excluded = ["type", "confirm", "component", "fieldProps", "contextProps", "before", "after", "getValueProps", "valuePropName", "valueType", "isView", "viewRender"];
19
19
  // 这里的key与组件内参数一致, 决定使用哪个包裹组件
20
20
  var wrapperMap = {
21
21
  confirm: _ConfirmWrapper.default,
@@ -50,6 +50,7 @@ var ComRender = function ComRender(props) {
50
50
  valuePropName = _props$valuePropName === void 0 ? 'value' : _props$valuePropName,
51
51
  valueType = props.valueType,
52
52
  isView = props.isView,
53
+ viewRender = props.viewRender,
53
54
  rest = (0, _objectWithoutProperties2.default)(props, _excluded);
54
55
  var TypeComponent = componentMap[type];
55
56
  var mergedGetValueProps = getValueProps || function (val) {
@@ -57,6 +58,16 @@ var ComRender = function ComRender(props) {
57
58
  };
58
59
  var _props = mergedGetValueProps(fieldProps.value);
59
60
  var componentProps = (0, _objectSpread3.default)((0, _objectSpread3.default)((0, _objectSpread3.default)({}, fieldProps), rest), _props);
61
+ if (viewRender && isView) {
62
+ return (0, _jsxRuntime.jsx)(_useFieldProps.FieldProvider, {
63
+ value: (0, _objectSpread3.default)((0, _objectSpread3.default)({}, contextProps), {}, {
64
+ valueType: valueType,
65
+ type: type,
66
+ isView: isView
67
+ }),
68
+ children: viewRender(componentProps)
69
+ });
70
+ }
60
71
  var Component = component ? (/*#__PURE__*/_react.default.cloneElement(component, (0, _objectSpread3.default)({}, componentProps))) : (0, _jsxRuntime.jsx)(TypeComponent, (0, _objectSpread3.default)({}, componentProps));
61
72
  var Com = getComRender(Component, props, componentProps);
62
73
  return (0, _jsxRuntime.jsx)(_useFieldProps.FieldProvider, {
@@ -107,7 +107,7 @@ var ChangedWrapper = function ChangedWrapper(props) {
107
107
  getPopupContainer: function getPopupContainer(trigger) {
108
108
  return scrollFollowParent ? trigger.parentElement : document.body;
109
109
  },
110
- overlayClassName: "original-value-tootip",
110
+ overlayClassName: "original-value-tooltip",
111
111
  placement: "topLeft",
112
112
  autoAdjustOverflow: false,
113
113
  title: (0, _jsxRuntime.jsxs)(_antd.Space, {
@@ -17,7 +17,7 @@ var componentMap = _interopRequireWildcard(require("../index"));
17
17
  var _utils = require("../../utils");
18
18
  var _useFieldProps = require("../../utils/useFieldProps");
19
19
  var _locale = _interopRequireDefault(require("../../../locale"));
20
- var _excluded = ["show", "type", "viewRender", "viewType", "valueType", "formItemProps", "colProps", "formItemChildProps", "fieldProps", "equalWith", "clearNotShow", "required", "confirm"];
20
+ var _excluded = ["show", "type", "viewRender", "viewType", "valueType", "formItemProps", "colProps", "formItemChildProps", "fieldProps", "equalWith", "onDiff", "clearNotShow", "required", "confirm"];
21
21
  var RenderFields = function RenderFields(props) {
22
22
  var isView = props.isView,
23
23
  _props$columns = props.columns,
@@ -77,6 +77,7 @@ var RenderFields = function RenderFields(props) {
77
77
  _column$fieldProps = column.fieldProps,
78
78
  fieldProps = _column$fieldProps === void 0 ? {} : _column$fieldProps,
79
79
  equalWith = column.equalWith,
80
+ onDiff = column.onDiff,
80
81
  _column$clearNotShow = column.clearNotShow,
81
82
  clearNotShow = _column$clearNotShow === void 0 ? outerClearNotShow : _column$clearNotShow,
82
83
  columnRequired = column.required,
@@ -216,7 +217,7 @@ var RenderFields = function RenderFields(props) {
216
217
  fieldProps: (0, _lodash.isFunction)(fieldProps) ? fieldProps : null,
217
218
  isSelect: _isSelect,
218
219
  diffConfig: diffConfig,
219
- equalWith: equalWith,
220
+ equalWith: onDiff || equalWith,
220
221
  requiredOnView: requiredOnView,
221
222
  globalControl: globalControl,
222
223
  viewRender: viewRender
@@ -207,6 +207,7 @@ export interface ProFormColumnProps<Values = any> extends Omit<FormItemProps<Val
207
207
  hiddenNames?: string[] | any[];
208
208
  rules?: ProRule[] | ReactiveFunction<Values, ProRule[]>;
209
209
  equalWith?: DiffOriginalParams['equalWith'];
210
+ onDiff?: DiffOriginalParams['equalWith'];
210
211
  required?: boolean | boolean[] | ReactiveFunction<Values, boolean | boolean[]>;
211
212
  labelRequired?: boolean;
212
213
  toISOString?: boolean;
@@ -385,7 +385,7 @@
385
385
  }
386
386
 
387
387
  // checkbox
388
- .@{ant-prefix}-checkbox-group {
388
+ .@{ant-prefix}-checkbox-group,.pro-switch-checkbox {
389
389
  padding: 5px 0
390
390
  }
391
391
  // switch
@@ -463,7 +463,7 @@
463
463
  }
464
464
 
465
465
  // checkbox
466
- .@{ant-prefix}-checkbox-group {
466
+ .@{ant-prefix}-checkbox-group,.pro-switch-checkbox {
467
467
  padding: 5px 0
468
468
  }
469
469
  // switch
@@ -485,10 +485,9 @@
485
485
  }
486
486
  }
487
487
 
488
- .original-value-tootip{
488
+ .original-value-tooltip{
489
489
  max-width: 100%;
490
490
  width: max-content;
491
- position: fixed;
492
491
  .changed-tooltip {
493
492
  .original-value-container {
494
493
  .ant-space-item:nth-child(1) {
@@ -511,3 +510,7 @@
511
510
  }
512
511
  }
513
512
 
513
+ .original-value-tooltip-fixed {
514
+ position: fixed;
515
+ }
516
+
@@ -28,11 +28,13 @@ var diffOriginal = exports.diffOriginal = function diffOriginal(params) {
28
28
  // 支持传入自定义比较事件
29
29
  if ((0, _lodash.isFunction)(equalWith)) {
30
30
  var diffRes = equalWith(originalValue, value);
31
- if (diffRes === undefined) return 'same';
32
- if (typeof diffRes === 'boolean') {
33
- return diffRes ? 'same' : 'changed';
31
+ // 如果返回undefined走内置比较逻辑
32
+ if (diffRes !== undefined) {
33
+ if (typeof diffRes === 'boolean') {
34
+ return diffRes ? 'same' : 'changed';
35
+ }
36
+ return diffRes;
34
37
  }
35
- return diffRes;
36
38
  }
37
39
  var _value = filterObject(value);
38
40
  var _originalValue = filterObject(originalValue);
@@ -73,7 +73,7 @@ var RenderColumn = function RenderColumn(props) {
73
73
  width: width,
74
74
  minWidth: minWidth
75
75
  },
76
- overlayClassName: "original-value-tootip",
76
+ overlayClassName: "original-value-tooltip",
77
77
  placement: "topLeft",
78
78
  autoAdjustOverflow: false,
79
79
  title: (0, _jsxRuntime.jsx)(_antd.Space, {
@@ -152,15 +152,12 @@ var RenderColumn = function RenderColumn(props) {
152
152
  range.setStart(box, 0);
153
153
  range.setEnd(box, box.childNodes.length);
154
154
  var rangeWidth = range.getBoundingClientRect().width;
155
- var rangeHeight = range.getBoundingClientRect().height;
156
- var contentWidth = rangeWidth - Math.floor(rangeWidth);
157
155
  var _getPadding = getPadding(box),
158
156
  pLeft = _getPadding.pLeft,
159
157
  pRight = _getPadding.pRight,
160
158
  pTop = _getPadding.pTop,
161
159
  pBottom = _getPadding.pBottom;
162
160
  var horizontalPadding = pLeft + pRight;
163
- var verticalPadding = pTop + pBottom;
164
161
  if (rangeWidth + horizontalPadding > box.clientWidth) {
165
162
  return true;
166
163
  }
@@ -12,7 +12,6 @@ var _jsxRuntime = require("react/jsx-runtime");
12
12
  var _react = require("react");
13
13
  var _reactResizable = require("react-resizable");
14
14
  var _classnames = _interopRequireDefault(require("classnames"));
15
- var _index = require("../../index");
16
15
  var _FormatColumn = require("../FormatColumn");
17
16
  var _excluded = ["onDrag", "width", "minwidth"];
18
17
  var ResizableTitle = function ResizableTitle(props) {
@@ -22,9 +21,6 @@ var ResizableTitle = function ResizableTitle(props) {
22
21
  _props$minwidth = props.minwidth,
23
22
  minwidth = _props$minwidth === void 0 ? 50 : _props$minwidth,
24
23
  restProps = (0, _objectWithoutProperties2.default)(props, _excluded);
25
- var _useContext = (0, _react.useContext)(_index.TableContext),
26
- tableConfig = _useContext.tableConfig,
27
- Storage = _useContext.Storage;
28
24
  // 添加偏移量
29
25
  var _useState = (0, _react.useState)(0),
30
26
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -280,8 +280,10 @@
280
280
  table {
281
281
  .@{ant-prefix}-table-tbody {
282
282
  .@{ant-prefix}-table-row:nth-child(even) {
283
- &:hover td {
284
- background-color: @zaui-table-hover-bg;
283
+ &:hover td,
284
+ &:hover td.@{ant-prefix}-table-cell-fix-right,
285
+ &:hover td.@{ant-prefix}-table-cell-fix-left {
286
+ background-color: @zaui-table-hover-bg !important;
285
287
  }
286
288
 
287
289
  & td,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zat-design/sisyphus-react",
3
- "version": "3.9.0-beta.19",
3
+ "version": "3.9.0-beta.20",
4
4
  "license": "Apache-2.0",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",