@zat-design/sisyphus-react 3.9.2 → 3.9.3

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 (50) hide show
  1. package/.vscode/extensions.json +5 -0
  2. package/dist/index.esm.css +21 -1
  3. package/dist/less.esm.css +21 -1
  4. package/es/ProConfigProvider/index.js +3 -3
  5. package/es/ProEditTable/components/RenderField/index.js +3 -2
  6. package/es/ProEditTable/index.js +20 -15
  7. package/es/ProEnum/hooks/useEnum.js +2 -0
  8. package/es/ProForm/components/combination/FormList/components/ActionButton.js +10 -7
  9. package/es/ProForm/components/combination/FormList/components/LineFields.js +2 -1
  10. package/es/ProForm/components/combination/FormList/components/ToolbarButton.js +6 -3
  11. package/es/ProForm/components/combination/FormList/index.js +1 -1
  12. package/es/ProForm/components/combination/ProCascader/index.js +7 -3
  13. package/es/ProForm/components/combination/ProCascader/propsType.d.ts +2 -0
  14. package/es/ProForm/components/render/ChangedWrapper.js +6 -4
  15. package/es/ProForm/components/render/Render.js +11 -7
  16. package/es/ProForm/index.js +11 -8
  17. package/es/ProForm/utils/diffOriginal.js +0 -1
  18. package/es/ProIcon/index.js +39 -22
  19. package/es/ProIcon/propsTypes.d.ts +2 -0
  20. package/es/ProTable/components/FormatColumn/index.js +69 -29
  21. package/es/ProTable/components/RenderColumn/index.d.ts +2 -0
  22. package/es/ProTable/components/RenderColumn/index.js +3 -5
  23. package/es/ProTable/propsType.d.ts +4 -5
  24. package/es/ProTable/style/index.less +27 -10
  25. package/es/ProTable/utils/index.d.ts +2 -0
  26. package/es/ProTable/utils/index.js +16 -3
  27. package/lib/ProConfigProvider/index.js +2 -2
  28. package/lib/ProEditTable/components/RenderField/index.js +3 -2
  29. package/lib/ProEditTable/index.js +19 -14
  30. package/lib/ProEnum/hooks/useEnum.js +2 -0
  31. package/lib/ProForm/components/combination/FormList/components/ActionButton.js +9 -6
  32. package/lib/ProForm/components/combination/FormList/components/LineFields.js +2 -1
  33. package/lib/ProForm/components/combination/FormList/components/ToolbarButton.js +4 -2
  34. package/lib/ProForm/components/combination/FormList/index.js +1 -1
  35. package/lib/ProForm/components/combination/ProCascader/index.js +7 -3
  36. package/lib/ProForm/components/combination/ProCascader/propsType.d.ts +2 -0
  37. package/lib/ProForm/components/render/ChangedWrapper.js +6 -4
  38. package/lib/ProForm/components/render/Render.js +11 -7
  39. package/lib/ProForm/index.js +10 -7
  40. package/lib/ProForm/utils/diffOriginal.js +0 -1
  41. package/lib/ProIcon/index.js +37 -22
  42. package/lib/ProIcon/propsTypes.d.ts +2 -0
  43. package/lib/ProTable/components/FormatColumn/index.js +69 -29
  44. package/lib/ProTable/components/RenderColumn/index.d.ts +2 -0
  45. package/lib/ProTable/components/RenderColumn/index.js +3 -5
  46. package/lib/ProTable/propsType.d.ts +4 -5
  47. package/lib/ProTable/style/index.less +27 -10
  48. package/lib/ProTable/utils/index.d.ts +2 -0
  49. package/lib/ProTable/utils/index.js +16 -3
  50. package/package.json +1 -1
@@ -34,4 +34,6 @@ export interface ProCascaderProps {
34
34
  separator?: string;
35
35
  /** 详情框占位符 */
36
36
  detailPlaceholder?: string;
37
+ /** 浮窗是否跟随父级 */
38
+ scrollFollowParent?: boolean;
37
39
  }
@@ -18,6 +18,7 @@ var _diffOriginal = require("../../utils/diffOriginal");
18
18
  var _ProConfigProvider = require("../../../ProConfigProvider");
19
19
  var _utils = require("../../../utils");
20
20
  var _excluded = ["name", "names", "namesStr", "form", "equalWith", "children", "type", "diffConfig", "valuePropName", "normalize", "getValueProps", "viewRender"];
21
+ var componentsWithFloatWindow = ['Select', 'ProSelect', 'ProEnum', 'ProTimeLimit', 'ProModalSelect', 'ProCascader', 'DataPicker', 'RangePicker', 'TimePicker'];
21
22
  var ChangedWrapper = function ChangedWrapper(props) {
22
23
  var _diffConfig$toolTip, _children$props, _children$props2, _children$props3;
23
24
  var name = props.name,
@@ -103,6 +104,9 @@ var ChangedWrapper = function ChangedWrapper(props) {
103
104
  'pro-form-item-add': isAdd
104
105
  });
105
106
  var open = tipOpenCalc();
107
+ var scrollFollowParentConfig = componentsWithFloatWindow.includes(type) ? {
108
+ scrollFollowParent: scrollFollowParent
109
+ } : {};
106
110
  return (0, _jsxRuntime.jsx)(_antd.Tooltip, {
107
111
  open: open,
108
112
  getPopupContainer: function getPopupContainer(trigger) {
@@ -120,8 +124,7 @@ var ChangedWrapper = function ChangedWrapper(props) {
120
124
  children: ["\u521D\u59CB\u503C\uFF1A", tipContent]
121
125
  }), _showEllipse && (0, _jsxRuntime.jsxs)(_antd.Space, {
122
126
  className: "current-value-container",
123
- children: ["\u5F53\u524D\u503C\uFF1A", /*#__PURE__*/_react.default.isValidElement(children) ? /*#__PURE__*/_react.default.cloneElement(children, (0, _objectSpread3.default)((0, _objectSpread3.default)((0, _objectSpread3.default)({}, children.props), rest), {}, {
124
- scrollFollowParent: scrollFollowParent,
127
+ children: ["\u5F53\u524D\u503C\uFF1A", /*#__PURE__*/_react.default.isValidElement(children) ? /*#__PURE__*/_react.default.cloneElement(children, (0, _objectSpread3.default)((0, _objectSpread3.default)((0, _objectSpread3.default)((0, _objectSpread3.default)({}, children.props), rest), scrollFollowParentConfig), {}, {
125
128
  isView: true
126
129
  })) : undefined]
127
130
  })]
@@ -129,8 +132,7 @@ var ChangedWrapper = function ChangedWrapper(props) {
129
132
  children: (0, _jsxRuntime.jsx)("div", {
130
133
  className: diffClassName,
131
134
  style: style,
132
- children: /*#__PURE__*/_react.default.isValidElement(children) ? /*#__PURE__*/_react.default.cloneElement(children, (0, _objectSpread3.default)((0, _objectSpread3.default)((0, _objectSpread3.default)({}, children.props), rest), {}, {
133
- scrollFollowParent: scrollFollowParent,
135
+ children: /*#__PURE__*/_react.default.isValidElement(children) ? /*#__PURE__*/_react.default.cloneElement(children, (0, _objectSpread3.default)((0, _objectSpread3.default)((0, _objectSpread3.default)((0, _objectSpread3.default)({}, children.props), rest), scrollFollowParentConfig), {}, {
134
136
  otherProps: (0, _objectSpread3.default)((0, _objectSpread3.default)({}, (_children$props3 = children.props) === null || _children$props3 === void 0 ? void 0 : _children$props3.otherProps), {}, {
135
137
  isDiffChange: isChanged
136
138
  })
@@ -136,6 +136,12 @@ var Render = function Render(props) {
136
136
  var transforms = Array.isArray(otherProps === null || otherProps === void 0 ? void 0 : otherProps.names) ? (0, _transformNames.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, otherFormItemProps), valueTypeTransform()),
137
137
  // 合并valueType的transform
138
138
  form, otherProps.names, namesStr, otherProps.type) : valueTypeTransform();
139
+ /**
140
+ * globalControl 全局控制优先
141
+ * globalControl true时,优先级 全局【formDisabled】> formitem上【column.disabled】 > 组件上【fieldProps.disabled】
142
+ * globalControl false时,优先级 组件上【fieldProps.disabled】 > formitem上【column.disabled】 > 全局【formDisabled】
143
+ */
144
+ var lastDisabled = globalControl ? (_ref2 = (_ref3 = formDisabled !== null && formDisabled !== void 0 ? formDisabled : _disabled) !== null && _ref3 !== void 0 ? _ref3 : _fieldProps === null || _fieldProps === void 0 ? void 0 : _fieldProps.disabled) !== null && _ref2 !== void 0 ? _ref2 : componentProps === null || componentProps === void 0 ? void 0 : componentProps.disabled : (_ref4 = (_ref5 = _disabled !== null && _disabled !== void 0 ? _disabled : _fieldProps === null || _fieldProps === void 0 ? void 0 : _fieldProps.disabled) !== null && _ref5 !== void 0 ? _ref5 : componentProps === null || componentProps === void 0 ? void 0 : componentProps.disabled) !== null && _ref4 !== void 0 ? _ref4 : formDisabled;
139
145
  // ↑↑↑↑↑↑ formItem参数整理 ↑↑↑↑↑↑
140
146
  Object.assign(otherFormItemProps, transforms, {
141
147
  names: otherProps.names
@@ -148,6 +154,10 @@ var Render = function Render(props) {
148
154
  } : null, (0, _objectSpread2.default)({}, (0, _index.isTrim)(type, trim, (0, _ProConfigProvider.useProConfig)())), // 优先取传进来的,其次取ProConfigProvider配置的
149
155
  (0, _objectSpread2.default)({}, (0, _index.isUpperCase)(type, upperCase)), {
150
156
  validateFirst: true
157
+ },
158
+ // 当某一规则校验不通过时,是否停止剩下的规则的校验
159
+ {
160
+ disabled: lastDisabled
151
161
  });
152
162
  // 添加label宽度
153
163
  if (labelWidth) {
@@ -157,12 +167,6 @@ var Render = function Render(props) {
157
167
  }
158
168
  /** 移除多余参数,防止透传给formItem报错 */
159
169
  var _otherFormItemProps = (0, _lodash.omit)(otherFormItemProps, ['component', 'names', 'format', 'toISOString', 'toCSTString', 'switchValue', 'precision', 'clearNotShow', 'dependNames']);
160
- /**
161
- * globalControl 全局控制优先
162
- * globalControl true时,优先级 全局【formDisabled】> formitem上【column.disabled】 > 组件上【fieldProps.disabled】
163
- * globalControl false时,优先级 组件上【fieldProps.disabled】 > formitem上【column.disabled】 > 全局【formDisabled】
164
- */
165
- var lastDisabled = globalControl ? (_ref2 = (_ref3 = formDisabled !== null && formDisabled !== void 0 ? formDisabled : _disabled) !== null && _ref3 !== void 0 ? _ref3 : _fieldProps === null || _fieldProps === void 0 ? void 0 : _fieldProps.disabled) !== null && _ref2 !== void 0 ? _ref2 : componentProps === null || componentProps === void 0 ? void 0 : componentProps.disabled : (_ref4 = (_ref5 = _disabled !== null && _disabled !== void 0 ? _disabled : _fieldProps === null || _fieldProps === void 0 ? void 0 : _fieldProps.disabled) !== null && _ref5 !== void 0 ? _ref5 : componentProps === null || componentProps === void 0 ? void 0 : componentProps.disabled) !== null && _ref4 !== void 0 ? _ref4 : formDisabled;
166
170
  /**
167
171
  * 最新fieldProps: 更新后的组件Props
168
172
  */
@@ -401,7 +405,7 @@ var Render = function Render(props) {
401
405
  };
402
406
  }
403
407
  // 需要过滤掉的form_item的key
404
- var filterFormItemKey = ['onFieldChange', 'shouldUpdate', 'namePath', 'isView', 'parentNames', 'space', 'before', 'after', 'globalControl', 'listName'];
408
+ var filterFormItemKey = ['onFieldChange', 'shouldUpdate', 'namePath', 'isView', 'parentNames', 'space', 'before', 'after', 'globalControl', 'listName', 'fixed'];
405
409
  if (type === 'FormList') {
406
410
  lastComponentProps.disabled = lastDisabled;
407
411
  var lessMode = lastComponentProps.mode === 'less';
@@ -92,12 +92,15 @@ var ProForm = function ProForm(props, ref) {
92
92
  (0, _react.useMemo)(function () {
93
93
  if (formKey && forms[formKey] !== form) {
94
94
  forms[formKey] = form;
95
- dispatch({
96
- type: 'set',
97
- payload: {
98
- forms: (0, _objectSpread2.default)({}, forms)
99
- }
100
- });
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);
101
104
  }
102
105
  // 销毁
103
106
  return function () {
@@ -238,7 +241,7 @@ var ProForm = function ProForm(props, ref) {
238
241
  },
239
242
  className: cls,
240
243
  form: form
241
- }, formProps), config), otherProps), {}, {
244
+ }, formProps), (0, _lodash.omit)(config, ['isDiffAll'])), otherProps), {}, {
242
245
  labelAlign: (_ref = labelAlign !== null && labelAlign !== void 0 ? labelAlign : config.labelAlign) !== null && _ref !== void 0 ? _ref : 'left',
243
246
  onValuesChange: handleValuesChange,
244
247
  onFinish: handleFinish,
@@ -20,7 +20,6 @@ var filterObject = function filterObject(data) {
20
20
  if (!Object.keys(resData).length) return null;
21
21
  return resData;
22
22
  };
23
- var nullValue = [null, undefined, '']; // 输入框空值时可能存在的三种值 视为相等
24
23
  var diffOriginal = exports.diffOriginal = function diffOriginal(params) {
25
24
  var originalValue = params.originalValue,
26
25
  value = params.value,
@@ -20,7 +20,7 @@ var _config2 = require("./config");
20
20
  var _utils = require("./utils");
21
21
  var _locale = _interopRequireDefault(require("../locale"));
22
22
  require("./symbolIcon.js");
23
- var _excluded = ["type", "onClick", "size", "color", "className", "style", "spin", "rotate", "theme", "disabled", "mode", "buttonProps", "children", "mapList", "src", "actionMap", "tooltip"];
23
+ var _excluded = ["type", "onClick", "size", "color", "className", "style", "spin", "rotate", "theme", "disabled", "mode", "buttonProps", "children", "mapList", "src", "actionMap", "tooltip", "buttonIcon"];
24
24
  var ProIcon = function ProIcon(props) {
25
25
  var _window, _window2;
26
26
  var _useProConfig = (0, _ProConfigProvider.useProConfig)(),
@@ -54,6 +54,8 @@ var ProIcon = function ProIcon(props) {
54
54
  src = _config.src,
55
55
  actionMap = _config.actionMap,
56
56
  tooltip = _config.tooltip,
57
+ _config$buttonIcon = _config.buttonIcon,
58
+ buttonIcon = _config$buttonIcon === void 0 ? true : _config$buttonIcon,
57
59
  reset = (0, _objectWithoutProperties2.default)(_config, _excluded);
58
60
  var _useSetState = (0, _ahooks.useSetState)({
59
61
  IconInstance: (0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {})
@@ -134,6 +136,25 @@ var ProIcon = function ProIcon(props) {
134
136
  height: size
135
137
  }, rotateStyle), style)
136
138
  };
139
+ var icon = !src ? (0, _jsxRuntime.jsx)("svg", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, svgProps), {}, {
140
+ onClick: onClick,
141
+ "aria-hidden": "true",
142
+ children: (0, _jsxRuntime.jsx)("use", {
143
+ xlinkHref: "#icon-".concat(_type)
144
+ })
145
+ })) : (0, _jsxRuntime.jsx)(_reactSvg.ReactSVG, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, svgProps), {}, {
146
+ // @ts-ignore
147
+ onClick: onClick,
148
+ "aria-hidden": "true",
149
+ src: src,
150
+ beforeInjection: function beforeInjection(svg) {
151
+ (0, _utils.onBeforeInjection)({
152
+ svg: svg,
153
+ actionMap: actionMap,
154
+ primaryColor: isQiankun ? qiankunPrimaryColor : primaryColor
155
+ });
156
+ }
157
+ }));
137
158
  var RenderIcon = (0, _jsxRuntime.jsx)("span", (0, _objectSpread2.default)((0, _objectSpread2.default)({
138
159
  className: "anticon",
139
160
  style: {
@@ -142,7 +163,7 @@ var ProIcon = function ProIcon(props) {
142
163
  }, reset), {}, {
143
164
  children: (0, _jsxRuntime.jsx)(_antd.Tooltip, {
144
165
  title: iconText,
145
- children: (0, _jsxRuntime.jsx)(_antd.Button, (0, _objectSpread2.default)({
166
+ children: buttonIcon ? (0, _jsxRuntime.jsx)(_antd.Button, (0, _objectSpread2.default)({
146
167
  style: {
147
168
  width: size,
148
169
  height: size,
@@ -152,26 +173,20 @@ var ProIcon = function ProIcon(props) {
152
173
  verticalAlign: 'baseline'
153
174
  },
154
175
  type: "text",
155
- icon: !src ? (0, _jsxRuntime.jsx)("svg", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, svgProps), {}, {
156
- onClick: onClick,
157
- "aria-hidden": "true",
158
- children: (0, _jsxRuntime.jsx)("use", {
159
- xlinkHref: "#icon-".concat(_type)
160
- })
161
- })) : (0, _jsxRuntime.jsx)(_reactSvg.ReactSVG, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, svgProps), {}, {
162
- // @ts-ignore
163
- onClick: onClick,
164
- "aria-hidden": "true",
165
- src: src,
166
- beforeInjection: function beforeInjection(svg) {
167
- (0, _utils.onBeforeInjection)({
168
- svg: svg,
169
- actionMap: actionMap,
170
- primaryColor: isQiankun ? qiankunPrimaryColor : primaryColor
171
- });
172
- }
173
- }))
174
- }, buttonProps))
176
+ icon: icon
177
+ }, buttonProps)) : (0, _jsxRuntime.jsx)(_antd.Space, {
178
+ children: (0, _jsxRuntime.jsx)("span", {
179
+ style: {
180
+ width: size,
181
+ height: size,
182
+ border: 'none',
183
+ borderRadius: 0,
184
+ padding: 0,
185
+ verticalAlign: 'baseline'
186
+ },
187
+ children: icon
188
+ })
189
+ })
175
190
  })
176
191
  }));
177
192
  (0, _react.useEffect)(function () {
@@ -99,5 +99,7 @@ export interface ProIconProps {
99
99
  * @default
100
100
  */
101
101
  actionMap?: actionMap;
102
+ /** 内部使用 */
103
+ buttonIcon?: boolean;
102
104
  }
103
105
  export {};
@@ -119,9 +119,9 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
119
119
  }
120
120
  };
121
121
  if (column === null || column === void 0 ? void 0 : column.render) {
122
- if (!originalObj && Object.keys(originalObj !== null && originalObj !== void 0 ? originalObj : {}).length === 0 && !onDiff) {
123
- return;
124
- }
122
+ // if (!originalObj && Object.keys(originalObj ?? {}).length === 0 && !onDiff) {
123
+ // return;
124
+ // }
125
125
  var originalRender = column.render; // 保存原始的 render 方法
126
126
  // 自定义render 手动重载下
127
127
  column.render = function (value, record, index) {
@@ -129,8 +129,10 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
129
129
  var _value = isFn ? originalRender === null || originalRender === void 0 ? void 0 : originalRender(value, record !== null && record !== void 0 ? record : {}, index) : null;
130
130
  var originalResult = (0, _utils2.getOriginalValue)(value, record !== null && record !== void 0 ? record : {}, originalObj, rowKey, dataIndex);
131
131
  var originalValue = originalResult.originalValue;
132
- var isChanged = originalResult.isChanged;
132
+ var isChanged = originalResult.isChanged,
133
+ isAddCell = originalResult.isAddCell;
133
134
  var isInNewRowFlag = isInNewRow(record);
135
+ var _isAddCell = isAddCell;
134
136
  otherProps.isChanged = isChanged;
135
137
  // 存在比对
136
138
  if ((0, _lodash.isFunction)(otherProps === null || otherProps === void 0 ? void 0 : otherProps.viewRender) && (diffConfig === null || diffConfig === void 0 ? void 0 : diffConfig.originalDataSource)) {
@@ -148,6 +150,27 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
148
150
  }
149
151
  originalValue = diffResult;
150
152
  }
153
+ // 存在自定义onDiff比对
154
+ if ((0, _lodash.isFunction)(onDiff)) {
155
+ var _originalObj$record$r2;
156
+ var _diffResult = onDiff({
157
+ originalValue: originalValue,
158
+ originalRecord: (_originalObj$record$r2 = originalObj === null || originalObj === void 0 ? void 0 : originalObj[record === null || record === void 0 ? void 0 : record[rowKey]]) !== null && _originalObj$record$r2 !== void 0 ? _originalObj$record$r2 : {},
159
+ value: value,
160
+ record: record,
161
+ index: index
162
+ });
163
+ if (_diffResult === 'changed') {
164
+ otherProps.isChanged = true;
165
+ }
166
+ if (_diffResult === 'same') {
167
+ otherProps.isChanged = false;
168
+ }
169
+ if (_diffResult === 'add') {
170
+ _isAddCell = true;
171
+ otherProps.isChanged = false;
172
+ }
173
+ }
151
174
  return (0, _jsxRuntime.jsx)(_RenderColumn.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, otherProps), {}, {
152
175
  valueType: valueType,
153
176
  originalValue: (0, _utils3.isEmpty)(originalValue) ? null : originalValue,
@@ -158,7 +181,8 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
158
181
  currentValue: _value,
159
182
  toolTipProps: _toolTipProps,
160
183
  minWidth: minWidth,
161
- isInNewRowFlag: isInNewRowFlag
184
+ isInNewRowFlag: isInNewRowFlag,
185
+ isAddCell: _isAddCell
162
186
  }));
163
187
  };
164
188
  return;
@@ -183,8 +207,9 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
183
207
  var realValue = _utils.tools.calc(Number(value !== null && value !== void 0 ? value : 0), '*', multiple);
184
208
  var renderValue = (0, _utils2.getDecimalDigits)(value) > valueTypePrecision ? realValue : realValue.toFixed(valueTypePrecision);
185
209
  var originalResult = (0, _utils2.getOriginalValue)(value, record, originalObj, rowKey, dataIndex);
186
- var originalValue = originalResult.originalValue;
187
- var isChanged = originalResult.isChanged;
210
+ var isChanged = originalResult.isChanged,
211
+ originalValue = originalResult.originalValue,
212
+ isAddCell = originalResult.isAddCell;
188
213
  otherProps.isChanged = isChanged;
189
214
  var originalRealValue = _utils.tools.calc(Number(originalValue || null), '*', multiple);
190
215
  var originalRenderValue = (0, _utils2.getDecimalDigits)(originalValue) > valueTypePrecision ? originalRealValue : originalRealValue.toFixed(valueTypePrecision);
@@ -214,7 +239,8 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
214
239
  currentValue: renderValue,
215
240
  toolTipProps: _toolTipProps,
216
241
  minWidth: minWidth,
217
- isInNewRowFlag: isInNewRowFlag
242
+ isInNewRowFlag: isInNewRowFlag,
243
+ isAddCell: isAddCell
218
244
  }));
219
245
  };
220
246
  // 千分位, 千分位带CNY前缀
@@ -223,8 +249,9 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
223
249
  var valueStr = valueTypePrecision ? "".concat(Number(value).toFixed(valueTypePrecision)) : "".concat(value);
224
250
  var renderValue = valueStr.replace(/\B(?=(\d{3})+(?!\d))/g, ',');
225
251
  var originalResult = (0, _utils2.getOriginalValue)(value, record, originalObj, rowKey, dataIndex);
226
- var originalValue = originalResult.originalValue;
227
- var isChanged = originalResult.isChanged;
252
+ var isChanged = originalResult.isChanged,
253
+ originalValue = originalResult.originalValue,
254
+ isAddCell = originalResult.isAddCell;
228
255
  otherProps.isChanged = isChanged;
229
256
  var originalRealValue = valueTypePrecision ? "".concat(Number(originalValue).toFixed(valueTypePrecision)) : "".concat(originalValue);
230
257
  var originalRenderValue = originalRealValue.replace(/\B(?=(\d{3})+(?!\d))/g, ',');
@@ -254,7 +281,8 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
254
281
  currentValue: renderValue,
255
282
  toolTipProps: _toolTipProps,
256
283
  minWidth: minWidth,
257
- isInNewRowFlag: isInNewRowFlag
284
+ isInNewRowFlag: isInNewRowFlag,
285
+ isAddCell: isAddCell
258
286
  }));
259
287
  };
260
288
  } else if (['datePicker', 'date', 'dateTime', 'dateStartTime', 'dateEndTime', 'dateStartEndTime'].includes(valueType)) {
@@ -262,8 +290,9 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
262
290
  var _moment, _moment2, _moment3, _moment4, _moment5, _moment6, _moment7, _moment8, _moment9, _moment10, _moment11, _moment12, _moment13, _moment14;
263
291
  var renderValue = (_moment = (0, _moment15.default)(value)) === null || _moment === void 0 ? void 0 : _moment.format(format);
264
292
  var originalResult = (0, _utils2.getOriginalValue)(value, record, originalObj, rowKey, dataIndex);
265
- var originalValue = originalResult.originalValue;
266
- var isChanged = originalResult.isChanged;
293
+ var isChanged = originalResult.isChanged,
294
+ originalValue = originalResult.originalValue,
295
+ isAddCell = originalResult.isAddCell;
267
296
  otherProps.isChanged = isChanged;
268
297
  var originalRenderValue = (_moment2 = (0, _moment15.default)(originalValue)) === null || _moment2 === void 0 ? void 0 : _moment2.format(format);
269
298
  switch (valueType) {
@@ -317,7 +346,8 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
317
346
  currentValue: renderValue,
318
347
  toolTipProps: _toolTipProps,
319
348
  minWidth: minWidth,
320
- isInNewRowFlag: isInNewRowFlag
349
+ isInNewRowFlag: isInNewRowFlag,
350
+ isAddCell: isAddCell
321
351
  }));
322
352
  };
323
353
  } else if (['enumName', 'enumCodeName'].includes(valueType)) {
@@ -325,8 +355,9 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
325
355
  var realCode = typeof code === 'function' ? code(value, record) : code;
326
356
  var renderValue = (0, _getEnumLabel.default)(realCode, value, valueType === 'enumCodeName');
327
357
  var originalResult = (0, _utils2.getOriginalValue)(value, record, originalObj, rowKey, dataIndex);
328
- var originalValue = originalResult.originalValue;
329
- var isChanged = originalResult.isChanged;
358
+ var isChanged = originalResult.isChanged,
359
+ originalValue = originalResult.originalValue,
360
+ isAddCell = originalResult.isAddCell;
330
361
  otherProps.isChanged = isChanged;
331
362
  var originalRenderValue = (0, _getEnumLabel.default)(realCode, originalValue, valueType === 'enumCodeName');
332
363
  if (Array.isArray(column === null || column === void 0 ? void 0 : column.codeValues) && !realCode) {
@@ -360,15 +391,17 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
360
391
  currentValue: renderValue,
361
392
  toolTipProps: _toolTipProps,
362
393
  minWidth: minWidth,
363
- isInNewRowFlag: isInNewRowFlag
394
+ isInNewRowFlag: isInNewRowFlag,
395
+ isAddCell: isAddCell
364
396
  }));
365
397
  };
366
398
  } else if (precision || prefix || suffix) {
367
399
  column.render = function (value, record, index) {
368
400
  var renderValue = value === 'number' ? value.toFixed(precision) : value;
369
401
  var originalResult = (0, _utils2.getOriginalValue)(value, record, originalObj, rowKey, dataIndex);
370
- var originalValue = originalResult.originalValue;
371
- var isChanged = originalResult.isChanged;
402
+ var isChanged = originalResult.isChanged,
403
+ originalValue = originalResult.originalValue,
404
+ isAddCell = originalResult.isAddCell;
372
405
  otherProps.isChanged = isChanged;
373
406
  var originalRenderValue = originalValue === 'number' ? originalValue.toFixed(precision) : originalValue;
374
407
  var node = (0, _jsxRuntime.jsxs)(_antd.Space, {
@@ -397,7 +430,8 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
397
430
  currentValue: renderValue,
398
431
  toolTipProps: _toolTipProps,
399
432
  minWidth: minWidth,
400
- isInNewRowFlag: isInNewRowFlag
433
+ isInNewRowFlag: isInNewRowFlag,
434
+ isAddCell: isAddCell
401
435
  }));
402
436
  };
403
437
  } else if (valueType === 'address') {
@@ -405,8 +439,9 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
405
439
  var _realValue$filter;
406
440
  var realValue = transform ? transform(value, record) : value;
407
441
  var originalResult = (0, _utils2.getOriginalValue)(value, record, originalObj, rowKey, dataIndex);
408
- var originalValue = originalResult.originalValue;
409
- var isChanged = originalResult.isChanged;
442
+ var isChanged = originalResult.isChanged,
443
+ originalValue = originalResult.originalValue,
444
+ isAddCell = originalResult.isAddCell;
410
445
  otherProps.isChanged = isChanged;
411
446
  var originalRealValue = transform ? transform(originalValue, record) : originalValue;
412
447
  var isEmpty = !realValue || Array.isArray(realValue) && (realValue === null || realValue === void 0 ? void 0 : (_realValue$filter = realValue.filter(function (item) {
@@ -454,7 +489,8 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
454
489
  currentValue: renderValue,
455
490
  toolTipProps: _toolTipProps,
456
491
  minWidth: minWidth,
457
- isInNewRowFlag: isInNewRowFlag
492
+ isInNewRowFlag: isInNewRowFlag,
493
+ isAddCell: isAddCell
458
494
  }));
459
495
  };
460
496
  } else if (copyable) {
@@ -479,8 +515,9 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
479
515
  } else if (ellipsis) {
480
516
  column.render = function (value, record, index) {
481
517
  var originalResult = (0, _utils2.getOriginalValue)(value, record, originalObj, rowKey, dataIndex);
482
- var originalValue = originalResult.originalValue;
483
- var isChanged = originalResult.isChanged;
518
+ var isChanged = originalResult.isChanged,
519
+ originalValue = originalResult.originalValue,
520
+ isAddCell = originalResult.isAddCell;
484
521
  otherProps.isChanged = isChanged;
485
522
  if (!value && value !== 0 && value === originalValue) {
486
523
  (0, _jsxRuntime.jsx)("div", {
@@ -503,15 +540,17 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
503
540
  currentValue: value || '-',
504
541
  toolTipProps: _toolTipProps,
505
542
  minWidth: minWidth,
506
- isInNewRowFlag: isInNewRowFlag
543
+ isInNewRowFlag: isInNewRowFlag,
544
+ isAddCell: isAddCell
507
545
  })), suffixNode(value, record, index)]
508
546
  });
509
547
  };
510
548
  } else {
511
549
  column.render = function (value, record, index) {
512
550
  var originalResult = (0, _utils2.getOriginalValue)(value, record, originalObj, rowKey, dataIndex);
513
- var originalValue = originalResult.originalValue;
514
- var isChanged = originalResult.isChanged;
551
+ var isChanged = originalResult.isChanged,
552
+ originalValue = originalResult.originalValue,
553
+ isAddCell = originalResult.isAddCell;
515
554
  otherProps.isChanged = isChanged;
516
555
  var node = (0, _jsxRuntime.jsxs)(_antd.Space, {
517
556
  size: 8,
@@ -536,7 +575,8 @@ var formatColumn = exports.formatColumn = function formatColumn(_ref2) {
536
575
  currentValue: value || '-',
537
576
  toolTipProps: _toolTipProps,
538
577
  minWidth: minWidth,
539
- isInNewRowFlag: isInNewRowFlag
578
+ isInNewRowFlag: isInNewRowFlag,
579
+ isAddCell: isAddCell
540
580
  }));
541
581
  };
542
582
  }
@@ -13,6 +13,8 @@ interface Props {
13
13
  minWidth?: number;
14
14
  isInNewRowFlag?: boolean;
15
15
  isChanged?: boolean;
16
+ /** 新增单元格字段 */
17
+ isAddCell?: boolean;
16
18
  }
17
19
  declare const RenderColumn: FC<Props>;
18
20
  export default RenderColumn;
@@ -39,7 +39,8 @@ var RenderColumn = function RenderColumn(props) {
39
39
  tooltip = _useSetState2[0].tooltip,
40
40
  setState = _useSetState2[1];
41
41
  var cellDiffCls = (0, _classnames.default)({
42
- 'varied-cell': props === null || props === void 0 ? void 0 : props.isChanged
42
+ 'varied-cell': props === null || props === void 0 ? void 0 : props.isChanged,
43
+ 'add-cell': props === null || props === void 0 ? void 0 : props.isAddCell
43
44
  });
44
45
  // 比对场景走的逻辑
45
46
  if (!isInNewRowFlag && (0, _lodash.isBoolean)(props === null || props === void 0 ? void 0 : props.isChanged)) {
@@ -99,10 +100,7 @@ var RenderColumn = function RenderColumn(props) {
99
100
  children: renderNode
100
101
  }));
101
102
  }
102
- if ((props === null || props === void 0 ? void 0 : props.isChanged) === false) {
103
- return renderNode;
104
- }
105
- return (0, _jsxRuntime.jsx)("span", {
103
+ return (0, _jsxRuntime.jsx)("div", {
106
104
  className: cellDiffCls,
107
105
  style: {
108
106
  width: width,
@@ -40,11 +40,10 @@ export interface ProTableColumn extends Omit<ColumnType<any>, 'dataIndex'> {
40
40
  toolTipProps?: TooltipProps & React.RefAttributes<unknown>;
41
41
  transform?: (value: any, record?: any) => string[];
42
42
  show?: boolean | (() => boolean);
43
- onDiff?: ({ value, originValue }: {
44
- value: any;
45
- originValue: any;
46
- }) => boolean;
47
- viewRender?: ({ value, record, index, originalValue, originalRecord }: any) => any;
43
+ /** 自定义比对函数, 触发条件必须写render */
44
+ onDiff?: ({ value, record, index, originalValue, originalRecord }: any) => any;
45
+ /** 自定义提示render, 触发条件必须写render */
46
+ viewRender?: ({ value, record, index, originalValue, originalRecord }: any) => 'same' | 'changed' | 'add' | undefined;
48
47
  isChanged?: boolean | null;
49
48
  }
50
49
  export interface CreateTreeFromArrayOptions {
@@ -277,16 +277,30 @@
277
277
  }
278
278
  }
279
279
 
280
- .@{ant-prefix}-table-cell .varied-cell {
281
- margin-left: -8px;
282
- padding: var(--zaui-space-size-xs, 4px) var(--zaui-space-size-sm, 8px);
283
-
284
- background: var(--zaui-contract-bg; #fffaa1) !important;
285
- border-radius: var(--zaui-border-radius, 8px);
286
- .pro-form-view-container {
287
- overflow: hidden;
288
- white-space: nowrap;
289
- text-overflow: ellipsis;
280
+ .@{ant-prefix}-table-cell {
281
+ .varied-cell {
282
+ display: block;
283
+ margin-left: -8px;
284
+ padding: var(--zaui-space-size-xs, 4px) var(--zaui-space-size-sm, 8px);
285
+ background-color: var(--zaui-contract-bg; #fffaa1) !important;
286
+ border-radius: var(--zaui-border-radius, 8px);
287
+ .pro-form-view-container {
288
+ overflow: hidden;
289
+ white-space: nowrap;
290
+ text-overflow: ellipsis;
291
+ }
292
+ }
293
+ .add-cell{
294
+ display: block;
295
+ margin-left: -8px;
296
+ padding: var(--zaui-space-size-xs, 4px) var(--zaui-space-size-sm, 8px);
297
+ background-color: var(--zaui-contract-bg-add, #d2fff4) !important;
298
+ border-radius: var(--zaui-border-radius, 8px);
299
+ .pro-form-view-container {
300
+ overflow: hidden;
301
+ white-space: nowrap;
302
+ text-overflow: ellipsis;
303
+ }
290
304
  }
291
305
  }
292
306
 
@@ -586,5 +600,8 @@
586
600
  .@{ant-prefix}-table{
587
601
  .original-value-tooltip{
588
602
  position: fixed;
603
+ &.@{ant-prefix}-tooltip > @{ant-prefix}-tooltip-content > @{ant-prefix}-tooltip-inner{
604
+ width: max-content;
605
+ }
589
606
  }
590
607
  }
@@ -12,9 +12,11 @@ export declare const getDecimalDigits: (num?: number) => number;
12
12
  * @param any originalObj
13
13
  * @param {any} dataIndex
14
14
  * @return {any} isChanged 返回bool值,表示存在比对
15
+ * @return {any} isAddCell 返回bool值,表示存在比对
15
16
  */
16
17
  export declare const getOriginalValue: (value: any, record: any, originalObj: any, rowKey: any, dataIndex: any) => {
17
18
  originalValue: any;
19
+ isAddCell: boolean;
18
20
  isChanged: boolean;
19
21
  };
20
22
  export declare const getColumnDataIndex: (dataIndex: string | string[]) => string;
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.isListResult = exports.getRowKey = exports.getOriginalValue = exports.getDecimalDigits = exports.getColumnDataIndex = void 0;
7
7
  var _lodash = require("lodash");
8
+ var _utils = require("@zat-design/utils");
9
+ var isEmpty = _utils.validate.isEmpty;
8
10
  /**
9
11
  * 获取小数点后的位数
10
12
  * @param num 数字
@@ -23,25 +25,36 @@ var getDecimalDigits = exports.getDecimalDigits = function getDecimalDigits() {
23
25
  * @param any originalObj
24
26
  * @param {any} dataIndex
25
27
  * @return {any} isChanged 返回bool值,表示存在比对
28
+ * @return {any} isAddCell 返回bool值,表示存在比对
26
29
  */
27
30
  var getOriginalValue = exports.getOriginalValue = function getOriginalValue(value, record, originalObj, rowKey, dataIndex) {
28
31
  if (!originalObj) {
29
32
  return {
30
33
  originalValue: null,
31
- isChanged: null
34
+ isChanged: null,
35
+ isAddCell: null
32
36
  };
33
37
  }
34
38
  var originalRecord = (0, _lodash.get)(originalObj, (0, _lodash.get)(record, rowKey));
35
39
  var originalValue = (0, _lodash.get)(originalRecord, dataIndex);
40
+ if (isEmpty(originalValue) && !isEmpty(value)) {
41
+ return {
42
+ originalValue: originalValue,
43
+ isAddCell: true,
44
+ isChanged: false
45
+ };
46
+ }
36
47
  if (!(0, _lodash.isEqual)(originalValue, value)) {
37
48
  return {
38
49
  originalValue: originalValue,
39
- isChanged: true
50
+ isChanged: true,
51
+ isAddCell: false
40
52
  };
41
53
  }
42
54
  return {
43
55
  originalValue: null,
44
- isChanged: false
56
+ isChanged: false,
57
+ isAddCell: false
45
58
  };
46
59
  };
47
60
  var getColumnDataIndex = exports.getColumnDataIndex = function getColumnDataIndex(dataIndex) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zat-design/sisyphus-react",
3
- "version": "3.9.2",
3
+ "version": "3.9.3",
4
4
  "license": "Apache-2.0",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",