@zat-design/sisyphus-react 3.2.1-beta.5 → 3.2.1-beta.7

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 (36) hide show
  1. package/dist/index.esm.css +18 -1
  2. package/es/ProEditTable/components/RenderField/index.js +66 -21
  3. package/es/ProEditTable/index.js +11 -4
  4. package/es/ProEditTable/propsType.d.ts +11 -1
  5. package/es/ProForm/components/combination/ProModalSelect/style/index.less +1 -1
  6. package/es/ProForm/style/index.less +6 -0
  7. package/es/ProLayout/components/ProHeader/style/index.less +1 -0
  8. package/es/ProStep/components/Item/index.js +1 -4
  9. package/es/ProTable/components/RenderColumn/index.js +1 -1
  10. package/es/ProTable/style/index.less +6 -0
  11. package/es/ProTree/components/Tree.js +1 -1
  12. package/es/ProTreeModal/index.js +14 -3
  13. package/es/ProTreeSelect/index.js +3 -2
  14. package/es/locale/en_US.d.ts +1 -0
  15. package/es/locale/en_US.js +1 -0
  16. package/es/locale/zh_CN.d.ts +1 -0
  17. package/es/locale/zh_CN.js +1 -0
  18. package/es/style/theme/antd.less +5 -0
  19. package/lib/ProEditTable/components/RenderField/index.js +61 -20
  20. package/lib/ProEditTable/index.js +12 -4
  21. package/lib/ProEditTable/propsType.d.ts +11 -1
  22. package/lib/ProForm/components/combination/ProModalSelect/style/index.less +1 -1
  23. package/lib/ProForm/style/index.less +6 -0
  24. package/lib/ProLayout/components/ProHeader/style/index.less +1 -0
  25. package/lib/ProStep/components/Item/index.js +1 -4
  26. package/lib/ProTable/components/RenderColumn/index.js +1 -1
  27. package/lib/ProTable/style/index.less +6 -0
  28. package/lib/ProTree/components/Tree.js +1 -1
  29. package/lib/ProTreeModal/index.js +14 -3
  30. package/lib/ProTreeSelect/index.js +3 -2
  31. package/lib/locale/en_US.d.ts +1 -0
  32. package/lib/locale/en_US.js +1 -0
  33. package/lib/locale/zh_CN.d.ts +1 -0
  34. package/lib/locale/zh_CN.js +1 -0
  35. package/lib/style/theme/antd.less +5 -0
  36. package/package.json +1 -1
@@ -905,6 +905,10 @@
905
905
  }
906
906
  .pro-header .ant-breadcrumb .ant-breadcrumb-link {
907
907
  font-size: var(--zaui-font-size-xl, 18px);
908
+ display: -webkit-inline-box;
909
+ display: -webkit-inline-flex;
910
+ display: -ms-inline-flexbox;
911
+ display: inline-flex;
908
912
  }
909
913
  .pro-header .ant-breadcrumb .ant-breadcrumb-separator {
910
914
  font-weight: 500;
@@ -1618,6 +1622,10 @@
1618
1622
  .pro-table .custom-column-btn .anticon {
1619
1623
  height: 16px;
1620
1624
  }
1625
+ .pro-table .ant-table-tbody .ant-table-cell-fix-left,
1626
+ .pro-table .ant-table-tbody .ant-table-cell-fix-right {
1627
+ background: unset !important;
1628
+ }
1621
1629
  .pro-table .ant-table-body .ant-table-cell .varied-cell {
1622
1630
  margin-left: -8px;
1623
1631
  background: var(--zaui-contract-bg, #fffaa1);
@@ -2125,7 +2133,7 @@ span.ant-input-group-compact.pro-range-limit .forever-checkbox {
2125
2133
  .pro-modal-select .ant-input-group-wrapper:hover .close-icon > span,
2126
2134
  .pro-tree-modal .ant-input-group-wrapper:hover .close-icon > span {
2127
2135
  position: relative;
2128
- font-size: var(--zaui-font-size, 14px);
2136
+ font-size: 10px;
2129
2137
  border: none;
2130
2138
  border-radius: 50%;
2131
2139
  }
@@ -2517,6 +2525,11 @@ span.ant-input-group-compact.pro-range-limit .forever-checkbox {
2517
2525
  .pro-form .ant-form-item.pro-form-item-changed .ant-picker .ant-select-selection-placeholder {
2518
2526
  z-index: 9;
2519
2527
  }
2528
+ .pro-form .ant-form-item.pro-form-item-changed .ant-form-item-control-input-content > span {
2529
+ background: var(--zaui-contract-bg, #fffaa1);
2530
+ padding: 4px 8px;
2531
+ border-radius: 4px;
2532
+ }
2520
2533
  .pro-form .ant-form-item .ant-row {
2521
2534
  width: 100%;
2522
2535
  }
@@ -5137,6 +5150,10 @@ input[type='button'] {
5137
5150
  .ant-tabs .ant-tabs-nav .ant-tabs-tab-btn {
5138
5151
  font-size: var(--zaui-font-size-lg, 16px);
5139
5152
  }
5153
+ .ant-tabs.ant-tabs-card .ant-tabs-tab {
5154
+ padding: 8px calc(var(--zaui-space-size-md, 16px)*var(--zaui-size, 1)) !important;
5155
+ margin-right: 10px !important;
5156
+ }
5140
5157
  .ant-tabs.ant-tabs-card .ant-tabs-nav .ant-tabs-tab-btn {
5141
5158
  font-size: var(--zaui-font-size, 14px);
5142
5159
  }
@@ -1,15 +1,22 @@
1
+ import "antd/es/tooltip/style";
2
+ import _Tooltip from "antd/es/tooltip";
1
3
  import "antd/es/form/style";
2
4
  import _Form from "antd/es/form";
5
+ import "antd/es/space/style";
6
+ import _Space from "antd/es/space";
7
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
8
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
9
  import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
4
10
  import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
5
11
  import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
6
12
  import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
7
13
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
8
- var _excluded = ["type", "valueType", "names", "fieldProps", "labelRequired", "editRender", "component", "viewRender", "title", "originTitle", "label", "dataIndex", "formItemProps", "isEditable", "required", "rules"];
9
- import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
14
+ var _excluded = ["type", "valueType", "names", "fieldProps", "labelRequired", "editRender", "component", "viewRender", "title", "originTitle", "label", "dataIndex", "formItemProps", "isEditable", "required", "rules", "equalWith", "className"];
15
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
16
  /* eslint-disable prefer-destructuring */
11
17
  /* eslint-disable prefer-const */
12
18
  import React, { useCallback, useEffect } from 'react';
19
+ import classNames from 'classnames';
13
20
  import { cloneDeep, isEqual, debounce, omit, isFunction, isString } from 'lodash';
14
21
  import valueTypeMap from '../../../ProForm/utils/valueType';
15
22
  import transformMap from '../../utils/transform';
@@ -18,11 +25,12 @@ import * as componentMap from '../../../ProForm/components';
18
25
  import Container from '../../../ProForm/components/Container';
19
26
  import transformNames from '../../../ProForm/utils/transformNames';
20
27
  import { FieldProvider } from '../../../ProForm/utils/useFieldProps';
28
+ import { useChanged } from '../../../ProForm/utils/useChanged';
21
29
  import useRules from '../../../ProForm/utils/useRules';
22
30
  import { isSelect } from '../../../ProForm/utils';
23
31
  import locale from '../../../locale';
24
32
  var RenderField = function RenderField(_ref) {
25
- var _type, _type$replace, _fieldProps2, _fieldProps3, _fieldProps4, _names, _formItemChildProps$p, _TargetComponent4;
33
+ var _type, _type$replace, _fieldProps2, _fieldProps3, _fieldProps4, _names, _formItemChildProps$p, _TargetComponent4, _classNames;
26
34
  var value = _ref.text,
27
35
  record = _ref.record,
28
36
  index = _ref.index,
@@ -47,6 +55,8 @@ var RenderField = function RenderField(_ref) {
47
55
  required = _column$required === void 0 ? false : _column$required,
48
56
  _column$rules = column.rules,
49
57
  rules = _column$rules === void 0 ? [] : _column$rules,
58
+ equalWith = column.equalWith,
59
+ className = column.className,
50
60
  resetProps = _objectWithoutProperties(column, _excluded);
51
61
  // editRender弃用使用component同ProForm
52
62
  var _editRender = component || editRender;
@@ -61,7 +71,9 @@ var RenderField = function RenderField(_ref) {
61
71
  setState = config.setState,
62
72
  name = config.name,
63
73
  virtualKey = config.virtualKey,
64
- viewEmpty = config.viewEmpty;
74
+ viewEmpty = config.viewEmpty,
75
+ originalValues = config.originalValues,
76
+ originalTip = config.originalTip;
65
77
  var _fieldProps = fieldProps || formItemProps || {};
66
78
  var _rules = rules || [];
67
79
  var _required = required;
@@ -175,13 +187,23 @@ var RenderField = function RenderField(_ref) {
175
187
  return [].concat(_toConsumableArray(baseName), [index, key]);
176
188
  });
177
189
  }
190
+ var originalName = cellName;
191
+ var originalNames = names;
192
+ if (virtualKey) {
193
+ var _cellName$slice, _names2, _names2$map;
194
+ originalName = [].concat(_toConsumableArray(name), _toConsumableArray(cellName === null || cellName === void 0 ? void 0 : (_cellName$slice = cellName.slice) === null || _cellName$slice === void 0 ? void 0 : _cellName$slice.call(cellName, 1)));
195
+ originalNames = (_names2 = names) === null || _names2 === void 0 ? void 0 : (_names2$map = _names2.map) === null || _names2$map === void 0 ? void 0 : _names2$map.call(_names2, function (item) {
196
+ var _item$slice;
197
+ return [].concat(_toConsumableArray(name), _toConsumableArray(item === null || item === void 0 ? void 0 : (_item$slice = item.slice) === null || _item$slice === void 0 ? void 0 : _item$slice.call(item, 1)));
198
+ });
199
+ }
178
200
  /**
179
201
  * 配置names时,基于formItem的normalize与getValueProps进行值类型转换
180
202
  * @returns {}
181
203
  */
182
204
  var namesTransform = function namesTransform() {
183
- var _names2;
184
- if (!((_names2 = names) === null || _names2 === void 0 ? void 0 : _names2.length)) {
205
+ var _names3;
206
+ if (!((_names3 = names) === null || _names3 === void 0 ? void 0 : _names3.length)) {
185
207
  return {};
186
208
  }
187
209
  var namesStr = [baseName, index, dataIndex];
@@ -341,14 +363,6 @@ var RenderField = function RenderField(_ref) {
341
363
  d: Date.now()
342
364
  }
343
365
  });
344
- // if (virtualKey) {
345
- // // 单行编辑时需要 强制更新视图
346
- // setState({
347
- // forceUpdate: {
348
- // d: Date.now(),
349
- // },
350
- // });
351
- // }
352
366
  case 30:
353
367
  case "end":
354
368
  return _context.stop();
@@ -437,6 +451,20 @@ var RenderField = function RenderField(_ref) {
437
451
  return _ref3.apply(this, arguments);
438
452
  };
439
453
  }();
454
+ // 判断当前字段是否变更
455
+ var _useChanged = useChanged({
456
+ name: cellName,
457
+ names: names,
458
+ namesStr: [].concat(_toConsumableArray(baseName), [index, dataIndex]),
459
+ originalName: originalName,
460
+ originalNames: originalNames,
461
+ originalValues: originalValues,
462
+ form: form,
463
+ equalWith: equalWith
464
+ }),
465
+ _useChanged2 = _slicedToArray(_useChanged, 2),
466
+ changed = _useChanged2[0],
467
+ originalValue = _useChanged2[1];
440
468
  var componentProps = _objectSpread(_objectSpread(_objectSpread({
441
469
  form: form,
442
470
  name: cellName,
@@ -477,15 +505,32 @@ var RenderField = function RenderField(_ref) {
477
505
  if (!isEditing) {
478
506
  delete _formItemProps.rules;
479
507
  }
508
+ var _className = classNames((_classNames = {}, _defineProperty(_classNames, className, className), _defineProperty(_classNames, 'pro-form-item-changed', changed), _classNames));
509
+ var originalTitle = _jsxs(_Space, {
510
+ children: ["\u521D\u59CB\u503C\uFF1A", /*#__PURE__*/React.isValidElement(TargetComponent) ? /*#__PURE__*/React.cloneElement(TargetComponent, _objectSpread(_objectSpread({}, omit(componentProps, ['onFieldChange'])), {}, {
511
+ isView: true,
512
+ value: originalValue,
513
+ checked: type === 'Switch' ? originalValue : undefined
514
+ })) : _jsx(TargetComponent, _objectSpread(_objectSpread({}, omit(componentProps, ['onFieldChange'])), {}, {
515
+ isView: true,
516
+ value: originalValue,
517
+ checked: type === 'Switch' ? originalValue : undefined
518
+ }))]
519
+ });
520
+ var FormItem = _jsx(_Form.Item, _objectSpread(_objectSpread({
521
+ validateFirst: true
522
+ }, omit(_formItemProps, ['render', 'cache', 'key', 'width', 'hiddenNames', 'name'])), {}, {
523
+ className: _className,
524
+ name: cellName,
525
+ children: /*#__PURE__*/React.isValidElement(TargetComponent) ? /*#__PURE__*/React.cloneElement(TargetComponent, _objectSpread({}, omit(componentProps, ['onFieldChange']))) : _jsx(TargetComponent, _objectSpread({}, omit(componentProps, ['onFieldChange'])))
526
+ }));
480
527
  return _jsx(FieldProvider, {
481
528
  value: componentProps === null || componentProps === void 0 ? void 0 : componentProps.otherProps,
482
- children: _jsx(_Form.Item, _objectSpread(_objectSpread({
483
- validateFirst: true,
484
- noStyle: !isEditing
485
- }, omit(_formItemProps, ['render', 'cache', 'key', 'width', 'hiddenNames', 'name'])), {}, {
486
- name: cellName,
487
- children: /*#__PURE__*/React.isValidElement(TargetComponent) ? /*#__PURE__*/React.cloneElement(TargetComponent, _objectSpread({}, omit(componentProps, ['onFieldChange']))) : _jsx(TargetComponent, _objectSpread({}, omit(componentProps, ['onFieldChange'])))
488
- }))
529
+ children: !originalTip || ['FormList', 'ProEditTable'].includes(type) ? FormItem : _jsx(_Tooltip, {
530
+ title: originalTitle,
531
+ open: changed ? undefined : false,
532
+ children: FormItem
533
+ })
489
534
  });
490
535
  };
491
536
  export default RenderField;
@@ -10,7 +10,7 @@ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
10
10
  import "antd/es/form/style";
11
11
  import _Form from "antd/es/form";
12
12
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
13
- var _excluded = ["value", "onChange", "className", "columns", "type", "mode", "stripe", "draggable", "disabled", "insertType", "emptyBtnText", "actionWidth", "actionProps", "toolbarProps", "rowSelection", "onlyOneLineMsg", "deletePoConfirmMsg", "mulDeletePoConfirmMsg", "otherProps", "requiredAlign", "summary", "max", "headerRender", "pagination"];
13
+ var _excluded = ["value", "onChange", "className", "columns", "type", "mode", "stripe", "draggable", "disabled", "insertType", "emptyBtnText", "actionWidth", "actionProps", "toolbarProps", "rowSelection", "onlyOneLineMsg", "deletePoConfirmMsg", "mulDeletePoConfirmMsg", "otherProps", "requiredAlign", "summary", "max", "headerRender", "pagination", "originalValues", "originalTip"];
14
14
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
15
15
  import { forwardRef, useCallback, useEffect, useImperativeHandle, useRef } from 'react';
16
16
  import { isArray } from 'lodash';
@@ -20,7 +20,7 @@ import { transformColumns } from './utils';
20
20
  import { getRandom, getNamePath } from './utils/tools';
21
21
  import { DndWrapper, Row, Validator, Summary, RenderToolbar } from './components';
22
22
  import Empty from '../assets/empty.png';
23
- import locale from '../locale';
23
+ import locale, { formatMessage } from '../locale';
24
24
  var ProEditTable = function ProEditTable(_ref, ref) {
25
25
  var _resetProps$id, _resetProps$id$split, _value$2;
26
26
  var value = _ref.value,
@@ -48,6 +48,8 @@ var ProEditTable = function ProEditTable(_ref, ref) {
48
48
  max = _ref.max,
49
49
  headerRender = _ref.headerRender,
50
50
  pagination = _ref.pagination,
51
+ originalValues = _ref.originalValues,
52
+ originalTip = _ref.originalTip,
51
53
  resetProps = _objectWithoutProperties(_ref, _excluded);
52
54
  // 上下文form
53
55
  var contentForm = _Form.useFormInstance();
@@ -134,7 +136,9 @@ var ProEditTable = function ProEditTable(_ref, ref) {
134
136
  tableRef: tableRef,
135
137
  max: max,
136
138
  tableLength: value === null || value === void 0 ? void 0 : value.length,
137
- page: page
139
+ page: page,
140
+ originalValues: originalValues,
141
+ originalTip: originalTip
138
142
  };
139
143
  // 判断是否禁止添加、批量删除
140
144
  var isForbiddenBtn = useCallback(function (type) {
@@ -290,8 +294,11 @@ var ProEditTable = function ProEditTable(_ref, ref) {
290
294
  showQuickJumper: true,
291
295
  total: value.length,
292
296
  showTotal: function showTotal(total) {
297
+ var _locale$ProEditTable;
293
298
  if (!total) return;
294
- return "\u5171".concat(total, "\u6761");
299
+ return formatMessage(locale === null || locale === void 0 ? void 0 : (_locale$ProEditTable = locale.ProEditTable) === null || _locale$ProEditTable === void 0 ? void 0 : _locale$ProEditTable.total, {
300
+ total: total
301
+ });
295
302
  },
296
303
  onChange: handlePageChange
297
304
  }, pagination) : false,
@@ -121,9 +121,19 @@ export interface ProEditTableProps<T = any> extends Omit<TableProps<T>, 'onChang
121
121
  * @default -
122
122
  */
123
123
  form?: FormInstance;
124
+ /**
125
+ * @description 原始数据源,设置后可以对比更新后的数值
126
+ * @default -
127
+ */
128
+ originalValues?: any;
129
+ /**
130
+ * @description 原始数据源,是否tooltip显示
131
+ * @default -
132
+ */
133
+ originalTip?: boolean;
124
134
  /**
125
135
  * @description 可编辑表格的类型,单行、多行、单元格编辑
126
- * @default multiple
136
+ * @default false
127
137
  */
128
138
  mode?: 'single' | 'multiple' | 'cell';
129
139
  /**
@@ -22,7 +22,7 @@
22
22
 
23
23
  > span {
24
24
  position: relative;
25
- font-size: var(--zaui-font-size, 14px);
25
+ font-size: 10px;
26
26
  border: none;
27
27
  border-radius: 50%;
28
28
  }
@@ -137,6 +137,12 @@
137
137
  z-index: 9;
138
138
  }
139
139
  }
140
+
141
+ .ant-form-item-control-input-content > span {
142
+ background: @zaui-contract-bg;
143
+ padding: 4px 8px;
144
+ border-radius: 4px;
145
+ }
140
146
  }
141
147
 
142
148
  .ant-row {
@@ -106,6 +106,7 @@
106
106
 
107
107
  .ant-breadcrumb-link {
108
108
  font-size: var(--zaui-font-size-xl, 18px);
109
+ display : inline-flex;
109
110
  }
110
111
 
111
112
  .ant-breadcrumb-separator {
@@ -26,9 +26,6 @@ export default (function (_ref) {
26
26
  title: title
27
27
  }, restProps), {}, {
28
28
  children: children
29
- })) : _jsx("div", {
30
- id: id,
31
- children: children
32
- })
29
+ })) : children
33
30
  });
34
31
  });
@@ -86,6 +86,6 @@ var RenderColumn = function RenderColumn(props) {
86
86
  children: node
87
87
  }) : '-';
88
88
  }
89
- return value ? node : '-';
89
+ return value || value === 0 ? node : '-';
90
90
  };
91
91
  export default RenderColumn;
@@ -54,6 +54,12 @@
54
54
  }
55
55
  }
56
56
 
57
+ .ant-table-tbody {
58
+ .ant-table-cell-fix-left, .ant-table-cell-fix-right {
59
+ background: unset !important;
60
+ }
61
+ }
62
+
57
63
  .ant-table-body {
58
64
  .ant-table-cell .varied-cell {
59
65
  margin-left: -8px;
@@ -125,7 +125,7 @@ function List(props) {
125
125
  _useState2 = _slicedToArray(_useState, 2),
126
126
  open = _useState2[0],
127
127
  setOpen = _useState2[1];
128
- var operateButton = menu && menu(item === null || item === void 0 ? void 0 : item.value, item);
128
+ var operateButton = menu && menu(item === null || item === void 0 ? void 0 : item[fieldNameValue], item);
129
129
  operateButton === null || operateButton === void 0 ? void 0 : operateButton.map(function (item, i) {
130
130
  return _jsx(React.Fragment, {
131
131
  children: item
@@ -77,6 +77,7 @@ var ProTreeModal = function ProTreeModal(props) {
77
77
  var _useSetState = useSetState({
78
78
  open: false,
79
79
  checkedValues: [],
80
+ beforeClearAllValues: [],
80
81
  treeData: [],
81
82
  treeViewData: [],
82
83
  originalTreeData: [],
@@ -263,6 +264,7 @@ var ProTreeModal = function ProTreeModal(props) {
263
264
  }) : [];
264
265
  setState({
265
266
  checkedValues: _checkedValues,
267
+ beforeClearAllValues: state.checkedValues,
266
268
  treeViewData: [],
267
269
  checkAll: false
268
270
  });
@@ -271,9 +273,18 @@ var ProTreeModal = function ProTreeModal(props) {
271
273
  * Drawer close
272
274
  */
273
275
  var handleClose = function handleClose() {
274
- setState({
275
- open: false
276
- });
276
+ var _state$beforeClearAll;
277
+ if ((_state$beforeClearAll = state.beforeClearAllValues) === null || _state$beforeClearAll === void 0 ? void 0 : _state$beforeClearAll.length) {
278
+ setState({
279
+ open: false,
280
+ checkedValues: state.beforeClearAllValues,
281
+ beforeClearAllValues: []
282
+ });
283
+ } else {
284
+ setState({
285
+ open: false
286
+ });
287
+ }
277
288
  openChange === null || openChange === void 0 ? void 0 : openChange(false);
278
289
  };
279
290
  /**
@@ -145,9 +145,10 @@ export var ProTreeSelect = function ProTreeSelect(props, ref) {
145
145
  _message.error(msg);
146
146
  return;
147
147
  }
148
+ var resultData = transferDataSource(data, showCodeName);
148
149
  setState({
149
- selectList: data || [],
150
- origDataSource: data || []
150
+ selectList: resultData || [],
151
+ origDataSource: resultData || []
151
152
  });
152
153
  };
153
154
  // 配置了异步数据源,拉取枚举数据逻辑 如果有code不掉接口从local里根据code取值
@@ -94,6 +94,7 @@ declare const _default: {
94
94
  save: string;
95
95
  custom: string;
96
96
  operation: string;
97
+ total: string;
97
98
  onlyOneLineMsg: string;
98
99
  deletePoConfirmMsg: string;
99
100
  mulDeletePoConfirmMsg: string;
@@ -94,6 +94,7 @@ export default {
94
94
  save: 'Save',
95
95
  custom: 'Custom',
96
96
  operation: 'Operation',
97
+ total: '{total} items in total',
97
98
  onlyOneLineMsg: 'Please save the data first',
98
99
  deletePoConfirmMsg: 'Are you sure you want to delete this row of data?',
99
100
  mulDeletePoConfirmMsg: 'Are you sure you want to delete the selected data?'
@@ -94,6 +94,7 @@ declare const _default: {
94
94
  operation: string;
95
95
  noData: string;
96
96
  clickAdd: string;
97
+ total: string;
97
98
  onlyOneLineMsg: string;
98
99
  deletePoConfirmMsg: string;
99
100
  mulDeletePoConfirmMsg: string;
@@ -94,6 +94,7 @@ export default {
94
94
  operation: '操作',
95
95
  noData: '暂无数据',
96
96
  clickAdd: '点击添加',
97
+ total: '共{total}条',
97
98
  onlyOneLineMsg: '请先保存数据',
98
99
  deletePoConfirmMsg: '您确定要删除该行数据吗?',
99
100
  mulDeletePoConfirmMsg: '您确定要删除选中的数据吗?'
@@ -339,6 +339,11 @@
339
339
  }
340
340
 
341
341
  &.ant-tabs-card {
342
+ .ant-tabs-tab {
343
+ padding : 8px calc(var(--zaui-space-size-md, 16px)*var(--zaui-size, 1)) !important;
344
+ margin-right: 10px !important;
345
+ }
346
+
342
347
  .ant-tabs-nav .ant-tabs-tab-btn {
343
348
  font-size: var(--zaui-font-size, 14px);
344
349
  }
@@ -6,6 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.default = void 0;
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
11
  var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
10
12
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
13
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
@@ -14,6 +16,7 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/h
14
16
  var _jsxRuntime = require("react/jsx-runtime");
15
17
  var _react = _interopRequireWildcard(require("react"));
16
18
  var _antd = require("antd");
19
+ var _classnames = _interopRequireDefault(require("classnames"));
17
20
  var _lodash = require("lodash");
18
21
  var _valueType = _interopRequireDefault(require("../../../ProForm/utils/valueType"));
19
22
  var _transform = _interopRequireDefault(require("../../utils/transform"));
@@ -22,14 +25,15 @@ var componentMap = _interopRequireWildcard(require("../../../ProForm/components"
22
25
  var _Container = _interopRequireDefault(require("../../../ProForm/components/Container"));
23
26
  var _transformNames = _interopRequireDefault(require("../../../ProForm/utils/transformNames"));
24
27
  var _useFieldProps = require("../../../ProForm/utils/useFieldProps");
28
+ var _useChanged3 = require("../../../ProForm/utils/useChanged");
25
29
  var _useRules = _interopRequireDefault(require("../../../ProForm/utils/useRules"));
26
30
  var _utils = require("../../../ProForm/utils");
27
31
  var _locale = _interopRequireDefault(require("../../../locale"));
28
- var _excluded = ["type", "valueType", "names", "fieldProps", "labelRequired", "editRender", "component", "viewRender", "title", "originTitle", "label", "dataIndex", "formItemProps", "isEditable", "required", "rules"];
32
+ var _excluded = ["type", "valueType", "names", "fieldProps", "labelRequired", "editRender", "component", "viewRender", "title", "originTitle", "label", "dataIndex", "formItemProps", "isEditable", "required", "rules", "equalWith", "className"];
29
33
  /* eslint-disable prefer-destructuring */
30
34
  /* eslint-disable prefer-const */
31
35
  var RenderField = function RenderField(_ref) {
32
- var _type, _type$replace, _fieldProps2, _fieldProps3, _fieldProps4, _names, _formItemChildProps$p, _TargetComponent4;
36
+ var _type, _type$replace, _fieldProps2, _fieldProps3, _fieldProps4, _names, _formItemChildProps$p, _TargetComponent4, _classNames;
33
37
  var value = _ref.text,
34
38
  record = _ref.record,
35
39
  index = _ref.index,
@@ -54,6 +58,8 @@ var RenderField = function RenderField(_ref) {
54
58
  required = _column$required === void 0 ? false : _column$required,
55
59
  _column$rules = column.rules,
56
60
  rules = _column$rules === void 0 ? [] : _column$rules,
61
+ equalWith = column.equalWith,
62
+ className = column.className,
57
63
  resetProps = (0, _objectWithoutProperties2.default)(column, _excluded);
58
64
  // editRender弃用使用component同ProForm
59
65
  var _editRender = component || editRender;
@@ -68,7 +74,9 @@ var RenderField = function RenderField(_ref) {
68
74
  setState = config.setState,
69
75
  name = config.name,
70
76
  virtualKey = config.virtualKey,
71
- viewEmpty = config.viewEmpty;
77
+ viewEmpty = config.viewEmpty,
78
+ originalValues = config.originalValues,
79
+ originalTip = config.originalTip;
72
80
  var _fieldProps = fieldProps || formItemProps || {};
73
81
  var _rules = rules || [];
74
82
  var _required = required;
@@ -182,13 +190,23 @@ var RenderField = function RenderField(_ref) {
182
190
  return [].concat((0, _toConsumableArray2.default)(baseName), [index, key]);
183
191
  });
184
192
  }
193
+ var originalName = cellName;
194
+ var originalNames = names;
195
+ if (virtualKey) {
196
+ var _cellName$slice, _names2, _names2$map;
197
+ originalName = [].concat((0, _toConsumableArray2.default)(name), (0, _toConsumableArray2.default)(cellName === null || cellName === void 0 ? void 0 : (_cellName$slice = cellName.slice) === null || _cellName$slice === void 0 ? void 0 : _cellName$slice.call(cellName, 1)));
198
+ originalNames = (_names2 = names) === null || _names2 === void 0 ? void 0 : (_names2$map = _names2.map) === null || _names2$map === void 0 ? void 0 : _names2$map.call(_names2, function (item) {
199
+ var _item$slice;
200
+ return [].concat((0, _toConsumableArray2.default)(name), (0, _toConsumableArray2.default)(item === null || item === void 0 ? void 0 : (_item$slice = item.slice) === null || _item$slice === void 0 ? void 0 : _item$slice.call(item, 1)));
201
+ });
202
+ }
185
203
  /**
186
204
  * 配置names时,基于formItem的normalize与getValueProps进行值类型转换
187
205
  * @returns {}
188
206
  */
189
207
  var namesTransform = function namesTransform() {
190
- var _names2;
191
- if (!((_names2 = names) === null || _names2 === void 0 ? void 0 : _names2.length)) {
208
+ var _names3;
209
+ if (!((_names3 = names) === null || _names3 === void 0 ? void 0 : _names3.length)) {
192
210
  return {};
193
211
  }
194
212
  var namesStr = [baseName, index, dataIndex];
@@ -348,14 +366,6 @@ var RenderField = function RenderField(_ref) {
348
366
  d: Date.now()
349
367
  }
350
368
  });
351
- // if (virtualKey) {
352
- // // 单行编辑时需要 强制更新视图
353
- // setState({
354
- // forceUpdate: {
355
- // d: Date.now(),
356
- // },
357
- // });
358
- // }
359
369
  case 30:
360
370
  case "end":
361
371
  return _context.stop();
@@ -444,6 +454,20 @@ var RenderField = function RenderField(_ref) {
444
454
  return _ref3.apply(this, arguments);
445
455
  };
446
456
  }();
457
+ // 判断当前字段是否变更
458
+ var _useChanged = (0, _useChanged3.useChanged)({
459
+ name: cellName,
460
+ names: names,
461
+ namesStr: [].concat((0, _toConsumableArray2.default)(baseName), [index, dataIndex]),
462
+ originalName: originalName,
463
+ originalNames: originalNames,
464
+ originalValues: originalValues,
465
+ form: form,
466
+ equalWith: equalWith
467
+ }),
468
+ _useChanged2 = (0, _slicedToArray2.default)(_useChanged, 2),
469
+ changed = _useChanged2[0],
470
+ originalValue = _useChanged2[1];
447
471
  var componentProps = (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({
448
472
  form: form,
449
473
  name: cellName,
@@ -484,15 +508,32 @@ var RenderField = function RenderField(_ref) {
484
508
  if (!isEditing) {
485
509
  delete _formItemProps.rules;
486
510
  }
511
+ var _className = (0, _classnames.default)((_classNames = {}, (0, _defineProperty2.default)(_classNames, className, className), (0, _defineProperty2.default)(_classNames, 'pro-form-item-changed', changed), _classNames));
512
+ var originalTitle = (0, _jsxRuntime.jsxs)(_antd.Space, {
513
+ children: ["\u521D\u59CB\u503C\uFF1A", /*#__PURE__*/_react.default.isValidElement(TargetComponent) ? /*#__PURE__*/_react.default.cloneElement(TargetComponent, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, (0, _lodash.omit)(componentProps, ['onFieldChange'])), {}, {
514
+ isView: true,
515
+ value: originalValue,
516
+ checked: type === 'Switch' ? originalValue : undefined
517
+ })) : (0, _jsxRuntime.jsx)(TargetComponent, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, (0, _lodash.omit)(componentProps, ['onFieldChange'])), {}, {
518
+ isView: true,
519
+ value: originalValue,
520
+ checked: type === 'Switch' ? originalValue : undefined
521
+ }))]
522
+ });
523
+ var FormItem = (0, _jsxRuntime.jsx)(_antd.Form.Item, (0, _objectSpread2.default)((0, _objectSpread2.default)({
524
+ validateFirst: true
525
+ }, (0, _lodash.omit)(_formItemProps, ['render', 'cache', 'key', 'width', 'hiddenNames', 'name'])), {}, {
526
+ className: _className,
527
+ name: cellName,
528
+ children: /*#__PURE__*/_react.default.isValidElement(TargetComponent) ? /*#__PURE__*/_react.default.cloneElement(TargetComponent, (0, _objectSpread2.default)({}, (0, _lodash.omit)(componentProps, ['onFieldChange']))) : (0, _jsxRuntime.jsx)(TargetComponent, (0, _objectSpread2.default)({}, (0, _lodash.omit)(componentProps, ['onFieldChange'])))
529
+ }));
487
530
  return (0, _jsxRuntime.jsx)(_useFieldProps.FieldProvider, {
488
531
  value: componentProps === null || componentProps === void 0 ? void 0 : componentProps.otherProps,
489
- children: (0, _jsxRuntime.jsx)(_antd.Form.Item, (0, _objectSpread2.default)((0, _objectSpread2.default)({
490
- validateFirst: true,
491
- noStyle: !isEditing
492
- }, (0, _lodash.omit)(_formItemProps, ['render', 'cache', 'key', 'width', 'hiddenNames', 'name'])), {}, {
493
- name: cellName,
494
- children: /*#__PURE__*/_react.default.isValidElement(TargetComponent) ? /*#__PURE__*/_react.default.cloneElement(TargetComponent, (0, _objectSpread2.default)({}, (0, _lodash.omit)(componentProps, ['onFieldChange']))) : (0, _jsxRuntime.jsx)(TargetComponent, (0, _objectSpread2.default)({}, (0, _lodash.omit)(componentProps, ['onFieldChange'])))
495
- }))
532
+ children: !originalTip || ['FormList', 'ProEditTable'].includes(type) ? FormItem : (0, _jsxRuntime.jsx)(_antd.Tooltip, {
533
+ title: originalTitle,
534
+ open: changed ? undefined : false,
535
+ children: FormItem
536
+ })
496
537
  });
497
538
  };
498
539
  var _default = exports.default = RenderField;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
@@ -21,8 +22,8 @@ var _utils = require("./utils");
21
22
  var _tools = require("./utils/tools");
22
23
  var _components = require("./components");
23
24
  var _empty = _interopRequireDefault(require("../assets/empty.png"));
24
- var _locale = _interopRequireDefault(require("../locale"));
25
- var _excluded = ["value", "onChange", "className", "columns", "type", "mode", "stripe", "draggable", "disabled", "insertType", "emptyBtnText", "actionWidth", "actionProps", "toolbarProps", "rowSelection", "onlyOneLineMsg", "deletePoConfirmMsg", "mulDeletePoConfirmMsg", "otherProps", "requiredAlign", "summary", "max", "headerRender", "pagination"];
25
+ var _locale = _interopRequireWildcard(require("../locale"));
26
+ var _excluded = ["value", "onChange", "className", "columns", "type", "mode", "stripe", "draggable", "disabled", "insertType", "emptyBtnText", "actionWidth", "actionProps", "toolbarProps", "rowSelection", "onlyOneLineMsg", "deletePoConfirmMsg", "mulDeletePoConfirmMsg", "otherProps", "requiredAlign", "summary", "max", "headerRender", "pagination", "originalValues", "originalTip"];
26
27
  var ProEditTable = function ProEditTable(_ref, ref) {
27
28
  var _resetProps$id, _resetProps$id$split, _value$2;
28
29
  var value = _ref.value,
@@ -50,6 +51,8 @@ var ProEditTable = function ProEditTable(_ref, ref) {
50
51
  max = _ref.max,
51
52
  headerRender = _ref.headerRender,
52
53
  pagination = _ref.pagination,
54
+ originalValues = _ref.originalValues,
55
+ originalTip = _ref.originalTip,
53
56
  resetProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
54
57
  // 上下文form
55
58
  var contentForm = _antd.Form.useFormInstance();
@@ -136,7 +139,9 @@ var ProEditTable = function ProEditTable(_ref, ref) {
136
139
  tableRef: tableRef,
137
140
  max: max,
138
141
  tableLength: value === null || value === void 0 ? void 0 : value.length,
139
- page: page
142
+ page: page,
143
+ originalValues: originalValues,
144
+ originalTip: originalTip
140
145
  };
141
146
  // 判断是否禁止添加、批量删除
142
147
  var isForbiddenBtn = (0, _react.useCallback)(function (type) {
@@ -292,8 +297,11 @@ var ProEditTable = function ProEditTable(_ref, ref) {
292
297
  showQuickJumper: true,
293
298
  total: value.length,
294
299
  showTotal: function showTotal(total) {
300
+ var _locale$ProEditTable;
295
301
  if (!total) return;
296
- return "\u5171".concat(total, "\u6761");
302
+ return (0, _locale.formatMessage)(_locale.default === null || _locale.default === void 0 ? void 0 : (_locale$ProEditTable = _locale.default.ProEditTable) === null || _locale$ProEditTable === void 0 ? void 0 : _locale$ProEditTable.total, {
303
+ total: total
304
+ });
297
305
  },
298
306
  onChange: handlePageChange
299
307
  }, pagination) : false,
@@ -121,9 +121,19 @@ export interface ProEditTableProps<T = any> extends Omit<TableProps<T>, 'onChang
121
121
  * @default -
122
122
  */
123
123
  form?: FormInstance;
124
+ /**
125
+ * @description 原始数据源,设置后可以对比更新后的数值
126
+ * @default -
127
+ */
128
+ originalValues?: any;
129
+ /**
130
+ * @description 原始数据源,是否tooltip显示
131
+ * @default -
132
+ */
133
+ originalTip?: boolean;
124
134
  /**
125
135
  * @description 可编辑表格的类型,单行、多行、单元格编辑
126
- * @default multiple
136
+ * @default false
127
137
  */
128
138
  mode?: 'single' | 'multiple' | 'cell';
129
139
  /**
@@ -22,7 +22,7 @@
22
22
 
23
23
  > span {
24
24
  position: relative;
25
- font-size: var(--zaui-font-size, 14px);
25
+ font-size: 10px;
26
26
  border: none;
27
27
  border-radius: 50%;
28
28
  }
@@ -137,6 +137,12 @@
137
137
  z-index: 9;
138
138
  }
139
139
  }
140
+
141
+ .ant-form-item-control-input-content > span {
142
+ background: @zaui-contract-bg;
143
+ padding: 4px 8px;
144
+ border-radius: 4px;
145
+ }
140
146
  }
141
147
 
142
148
  .ant-row {
@@ -106,6 +106,7 @@
106
106
 
107
107
  .ant-breadcrumb-link {
108
108
  font-size: var(--zaui-font-size-xl, 18px);
109
+ display : inline-flex;
109
110
  }
110
111
 
111
112
  .ant-breadcrumb-separator {
@@ -33,9 +33,6 @@ var _default = exports.default = function _default(_ref) {
33
33
  title: title
34
34
  }, restProps), {}, {
35
35
  children: children
36
- })) : (0, _jsxRuntime.jsx)("div", {
37
- id: id,
38
- children: children
39
- })
36
+ })) : children
40
37
  });
41
38
  };
@@ -90,6 +90,6 @@ var RenderColumn = function RenderColumn(props) {
90
90
  children: node
91
91
  }) : '-';
92
92
  }
93
- return value ? node : '-';
93
+ return value || value === 0 ? node : '-';
94
94
  };
95
95
  var _default = exports.default = RenderColumn;
@@ -54,6 +54,12 @@
54
54
  }
55
55
  }
56
56
 
57
+ .ant-table-tbody {
58
+ .ant-table-cell-fix-left, .ant-table-cell-fix-right {
59
+ background: unset !important;
60
+ }
61
+ }
62
+
57
63
  .ant-table-body {
58
64
  .ant-table-cell .varied-cell {
59
65
  margin-left: -8px;
@@ -130,7 +130,7 @@ function List(props) {
130
130
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
131
131
  open = _useState2[0],
132
132
  setOpen = _useState2[1];
133
- var operateButton = menu && menu(item === null || item === void 0 ? void 0 : item.value, item);
133
+ var operateButton = menu && menu(item === null || item === void 0 ? void 0 : item[fieldNameValue], item);
134
134
  operateButton === null || operateButton === void 0 ? void 0 : operateButton.map(function (item, i) {
135
135
  return (0, _jsxRuntime.jsx)(_react.default.Fragment, {
136
136
  children: item
@@ -78,6 +78,7 @@ var ProTreeModal = function ProTreeModal(props) {
78
78
  var _useSetState = (0, _ahooks.useSetState)({
79
79
  open: false,
80
80
  checkedValues: [],
81
+ beforeClearAllValues: [],
81
82
  treeData: [],
82
83
  treeViewData: [],
83
84
  originalTreeData: [],
@@ -264,6 +265,7 @@ var ProTreeModal = function ProTreeModal(props) {
264
265
  }) : [];
265
266
  setState({
266
267
  checkedValues: _checkedValues,
268
+ beforeClearAllValues: state.checkedValues,
267
269
  treeViewData: [],
268
270
  checkAll: false
269
271
  });
@@ -272,9 +274,18 @@ var ProTreeModal = function ProTreeModal(props) {
272
274
  * Drawer close
273
275
  */
274
276
  var handleClose = function handleClose() {
275
- setState({
276
- open: false
277
- });
277
+ var _state$beforeClearAll;
278
+ if ((_state$beforeClearAll = state.beforeClearAllValues) === null || _state$beforeClearAll === void 0 ? void 0 : _state$beforeClearAll.length) {
279
+ setState({
280
+ open: false,
281
+ checkedValues: state.beforeClearAllValues,
282
+ beforeClearAllValues: []
283
+ });
284
+ } else {
285
+ setState({
286
+ open: false
287
+ });
288
+ }
278
289
  openChange === null || openChange === void 0 ? void 0 : openChange(false);
279
290
  };
280
291
  /**
@@ -147,9 +147,10 @@ var ProTreeSelect = exports.ProTreeSelect = function ProTreeSelect(props, ref) {
147
147
  _antd.message.error(msg);
148
148
  return;
149
149
  }
150
+ var resultData = transferDataSource(data, showCodeName);
150
151
  setState({
151
- selectList: data || [],
152
- origDataSource: data || []
152
+ selectList: resultData || [],
153
+ origDataSource: resultData || []
153
154
  });
154
155
  };
155
156
  // 配置了异步数据源,拉取枚举数据逻辑 如果有code不掉接口从local里根据code取值
@@ -94,6 +94,7 @@ declare const _default: {
94
94
  save: string;
95
95
  custom: string;
96
96
  operation: string;
97
+ total: string;
97
98
  onlyOneLineMsg: string;
98
99
  deletePoConfirmMsg: string;
99
100
  mulDeletePoConfirmMsg: string;
@@ -100,6 +100,7 @@ var _default = exports.default = {
100
100
  save: 'Save',
101
101
  custom: 'Custom',
102
102
  operation: 'Operation',
103
+ total: '{total} items in total',
103
104
  onlyOneLineMsg: 'Please save the data first',
104
105
  deletePoConfirmMsg: 'Are you sure you want to delete this row of data?',
105
106
  mulDeletePoConfirmMsg: 'Are you sure you want to delete the selected data?'
@@ -94,6 +94,7 @@ declare const _default: {
94
94
  operation: string;
95
95
  noData: string;
96
96
  clickAdd: string;
97
+ total: string;
97
98
  onlyOneLineMsg: string;
98
99
  deletePoConfirmMsg: string;
99
100
  mulDeletePoConfirmMsg: string;
@@ -100,6 +100,7 @@ var _default = exports.default = {
100
100
  operation: '操作',
101
101
  noData: '暂无数据',
102
102
  clickAdd: '点击添加',
103
+ total: '共{total}条',
103
104
  onlyOneLineMsg: '请先保存数据',
104
105
  deletePoConfirmMsg: '您确定要删除该行数据吗?',
105
106
  mulDeletePoConfirmMsg: '您确定要删除选中的数据吗?'
@@ -339,6 +339,11 @@
339
339
  }
340
340
 
341
341
  &.ant-tabs-card {
342
+ .ant-tabs-tab {
343
+ padding : 8px calc(var(--zaui-space-size-md, 16px)*var(--zaui-size, 1)) !important;
344
+ margin-right: 10px !important;
345
+ }
346
+
342
347
  .ant-tabs-nav .ant-tabs-tab-btn {
343
348
  font-size: var(--zaui-font-size, 14px);
344
349
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zat-design/sisyphus-react",
3
- "version": "3.2.1-beta.5",
3
+ "version": "3.2.1-beta.7",
4
4
  "license": "Apache-2.0",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",