@teamix/pro 1.4.24 → 1.4.27

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 (70) hide show
  1. package/dist/pro.css +1 -1
  2. package/dist/pro.js +46014 -34835
  3. package/dist/pro.min.css +1 -1
  4. package/dist/pro.min.js +1 -1
  5. package/dist/pro.min.js.LICENSE.txt +11 -0
  6. package/es/actions/dialog.d.ts +2 -0
  7. package/es/actions/dialog.js +3 -2
  8. package/es/card/index.js +2 -2
  9. package/es/form/Filter/AdvancedFilter.js +8 -2
  10. package/es/form/Filter/layout.scss +1 -1
  11. package/es/form/ProForm/addCascadeEffect.d.ts +2 -0
  12. package/es/form/ProForm/addCascadeEffect.js +225 -0
  13. package/es/form/ProForm/index.js +8 -5
  14. package/es/form/ProForm/index.scss +33 -0
  15. package/es/form/index.d.ts +3 -0
  16. package/es/form/typing.d.ts +20 -0
  17. package/es/index.d.ts +1 -1
  18. package/es/index.js +2 -1
  19. package/es/info/components/InfoValueItem/index.js +15 -4
  20. package/es/info/typing.d.ts +4 -1
  21. package/es/sidebar/components/sidebar-container/index.js +18 -2
  22. package/es/sidebar/components/sidebar-container/index.scss +21 -14
  23. package/es/sidebar/components/tree/index.js +24 -6
  24. package/es/sidebar/components/tree-node/index.js +1 -1
  25. package/es/sidebar/components/tree-node/index.scss +6 -0
  26. package/es/sidebar/typing.d.ts +4 -0
  27. package/es/table/components/Layout/index.scss +1 -1
  28. package/es/table/components/Pagination/index.js +1 -2
  29. package/es/table/components/ToolBar/DensityIcon.js +1 -0
  30. package/es/table/components/ToolBar/FilterColumnIcon.js +2 -0
  31. package/es/table/components/ToolBar/FullScreenIcon.js +6 -57
  32. package/es/table/components/ToolBar/index.d.ts +1 -1
  33. package/es/table/components/ToolBar/index.js +99 -16
  34. package/es/table/components/ToolBar/index.scss +22 -2
  35. package/es/table/index.js +20 -4
  36. package/es/table/index.scss +1 -1
  37. package/es/table/typing.d.ts +4 -1
  38. package/lib/actions/dialog.d.ts +2 -0
  39. package/lib/actions/dialog.js +3 -2
  40. package/lib/card/index.js +2 -2
  41. package/lib/form/Filter/AdvancedFilter.js +7 -1
  42. package/lib/form/Filter/layout.scss +1 -1
  43. package/lib/form/ProForm/addCascadeEffect.d.ts +2 -0
  44. package/lib/form/ProForm/addCascadeEffect.js +235 -0
  45. package/lib/form/ProForm/index.js +9 -5
  46. package/lib/form/ProForm/index.scss +33 -0
  47. package/lib/form/index.d.ts +3 -0
  48. package/lib/form/typing.d.ts +20 -0
  49. package/lib/index.d.ts +1 -1
  50. package/lib/index.js +2 -1
  51. package/lib/info/components/InfoValueItem/index.js +15 -4
  52. package/lib/info/typing.d.ts +4 -1
  53. package/lib/sidebar/components/sidebar-container/index.js +18 -2
  54. package/lib/sidebar/components/sidebar-container/index.scss +21 -14
  55. package/lib/sidebar/components/tree/index.js +24 -6
  56. package/lib/sidebar/components/tree-node/index.js +1 -1
  57. package/lib/sidebar/components/tree-node/index.scss +6 -0
  58. package/lib/sidebar/typing.d.ts +4 -0
  59. package/lib/table/components/Layout/index.scss +1 -1
  60. package/lib/table/components/Pagination/index.js +1 -2
  61. package/lib/table/components/ToolBar/DensityIcon.js +1 -0
  62. package/lib/table/components/ToolBar/FilterColumnIcon.js +2 -0
  63. package/lib/table/components/ToolBar/FullScreenIcon.js +9 -63
  64. package/lib/table/components/ToolBar/index.d.ts +1 -1
  65. package/lib/table/components/ToolBar/index.js +109 -16
  66. package/lib/table/components/ToolBar/index.scss +22 -2
  67. package/lib/table/index.js +20 -4
  68. package/lib/table/index.scss +1 -1
  69. package/lib/table/typing.d.ts +4 -1
  70. package/package.json +2 -2
@@ -0,0 +1,235 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _core = require("@formily/core");
9
+
10
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
11
+
12
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
13
+
14
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
+
16
+ var OP_MAPS = {
17
+ '*': function _() {
18
+ return true;
19
+ },
20
+ '=': function _(l, r) {
21
+ return l === r;
22
+ },
23
+ '==': function _(l, r) {
24
+ return l === r;
25
+ },
26
+ '!': function _(l, r) {
27
+ return l !== r;
28
+ },
29
+ '!=': function _(l, r) {
30
+ return l != r;
31
+ },
32
+ '>': function _(l, r) {
33
+ return l > r;
34
+ },
35
+ '<': function _(l, r) {
36
+ return l < r;
37
+ },
38
+ '>=': function _(l, r) {
39
+ return l >= r;
40
+ },
41
+ '<=': function _(l, r) {
42
+ return l <= r;
43
+ },
44
+ ied: function ied(l, r) {
45
+ if (Array.isArray(l) || typeof l === 'string' && r) {
46
+ return l.includes(r);
47
+ } else {
48
+ return false;
49
+ }
50
+ },
51
+ eed: function eed(l, r) {
52
+ if (Array.isArray(l) || typeof l === 'string' && r) {
53
+ return !l.includes(r);
54
+ } else {
55
+ return true;
56
+ }
57
+ },
58
+ i: function i(l, r) {
59
+ if (Array.isArray(r) || typeof r === 'string' && l) {
60
+ return r.includes(l);
61
+ } else {
62
+ return false;
63
+ }
64
+ },
65
+ e: function e(l, r) {
66
+ if (Array.isArray(r) || typeof r === 'string' && l) {
67
+ return !r.includes(l);
68
+ } else {
69
+ return true;
70
+ }
71
+ },
72
+ isEmpty: function isEmpty(l, r) {
73
+ return l === null || l === undefined || l === '' || Array.isArray(l) && l.length === 0;
74
+ },
75
+ notEmpty: function notEmpty(l, r) {
76
+ return l !== null && l !== undefined && l !== '' && (!Array.isArray(l) || l.length !== 0);
77
+ }
78
+ };
79
+
80
+ var getParsedValue = function getParsedValue(value, scope) {
81
+ if (typeof value === 'string' && value.startsWith('${') && value.endsWith('}')) {
82
+ return scope.$form.getValuesIn(value.slice(2, value.length - 1));
83
+ } else if (typeof value === 'string' && value.startsWith('{{') && value.endsWith('}}')) {
84
+ var code = value.slice(2, value.length - 2);
85
+
86
+ try {
87
+ return new Function("with(this){ return ".concat(code, " }")).call(scope);
88
+ } catch (e) {
89
+ return undefined;
90
+ }
91
+ } else {
92
+ return value;
93
+ }
94
+ };
95
+
96
+ var bingo = function bingo(bingoItem, scope) {
97
+ var _bingoItem$when = bingoItem.when,
98
+ when = _bingoItem$when === void 0 ? [] : _bingoItem$when,
99
+ _bingoItem$logic = bingoItem.logic,
100
+ logic = _bingoItem$logic === void 0 ? '&&' : _bingoItem$logic;
101
+ var result = logic === '&&';
102
+ when.forEach(function (_ref) {
103
+ var left = _ref.left,
104
+ op = _ref.op,
105
+ right = _ref.right;
106
+ var leftValue = scope.$form.getValuesIn(left);
107
+ var rightValue = getParsedValue(right, scope);
108
+ var itemResult = OP_MAPS[op](leftValue, rightValue);
109
+
110
+ if (logic === '&&') {
111
+ result = result && itemResult;
112
+ } else {
113
+ result = result || itemResult;
114
+ }
115
+ });
116
+ return result;
117
+ };
118
+
119
+ var loopAddFieldEffect = function loopAddFieldEffect(schema, form, scope) {
120
+ if (Array.isArray(schema)) {
121
+ schema === null || schema === void 0 ? void 0 : schema.forEach(function (item) {
122
+ if (item.name) {
123
+ var _item$cascade, _item$onChange;
124
+
125
+ (_item$cascade = item.cascade) === null || _item$cascade === void 0 ? void 0 : _item$cascade.forEach(function (cascade) {
126
+ (0, _core.onFieldReact)(item.name, function (field) {
127
+ var contextScope = _objectSpread(_objectSpread({}, scope), {}, {
128
+ $form: form,
129
+ $self: field,
130
+ $values: form.values
131
+ });
132
+
133
+ var _cascade$state = cascade.state,
134
+ state = _cascade$state === void 0 ? {} : _cascade$state,
135
+ _cascade$props = cascade.props,
136
+ props = _cascade$props === void 0 ? {} : _cascade$props,
137
+ dataSourceFilter = cascade.dataSourceFilter,
138
+ dataSourceHide = cascade.dataSourceHide;
139
+
140
+ if (bingo(cascade, contextScope)) {
141
+ if (dataSourceFilter || dataSourceHide) {
142
+ var sourceDataSource = field.getState()._sourceDataSource;
143
+
144
+ if (!sourceDataSource) {
145
+ var dataSource = field.getState().dataSource;
146
+ field.setState({
147
+ _sourceDataSource: dataSource
148
+ });
149
+ sourceDataSource = dataSource;
150
+ }
151
+
152
+ if (sourceDataSource) {
153
+ var nextDataSource = sourceDataSource.filter(function (item) {
154
+ if (Array.isArray(dataSourceFilter)) {
155
+ return dataSourceFilter.includes(item.value);
156
+ }
157
+
158
+ if (Array.isArray(dataSourceHide)) {
159
+ return !dataSourceFilter.includes(item.value);
160
+ }
161
+ });
162
+ field.setDataSource(nextDataSource);
163
+ var value = field.getState().value;
164
+
165
+ if (!nextDataSource.some(function (item) {
166
+ return item.value === value;
167
+ })) {
168
+ field.setValue(undefined);
169
+ }
170
+ }
171
+ }
172
+
173
+ var nextState = {};
174
+ Object.keys(state).forEach(function (stateKey) {
175
+ nextState[stateKey] = getParsedValue(state[stateKey], contextScope);
176
+ });
177
+ field.setState(nextState);
178
+ var nextProps = {};
179
+ Object.keys(props).forEach(function (propsKey) {
180
+ nextProps[propsKey] = getParsedValue(props[propsKey], contextScope);
181
+ });
182
+ field.setComponentProps(nextProps);
183
+ } else {
184
+ var formState = form.getState();
185
+
186
+ if (dataSourceFilter || dataSourceHide) {
187
+ var _sourceDataSource = field.getState()._sourceDataSource;
188
+
189
+ _sourceDataSource && field.setDataSource(_sourceDataSource);
190
+ }
191
+
192
+ var _nextState = {};
193
+ Object.keys(state).forEach(function (stateKey) {
194
+ _nextState[stateKey] = stateKey in item ? item[stateKey] : formState[stateKey];
195
+ });
196
+ field.setState(_nextState);
197
+ var _nextProps = {};
198
+ Object.keys(props).forEach(function (propsKey) {
199
+ _nextProps[propsKey] = item.props ? item.props[propsKey] : undefined;
200
+ });
201
+ field.setComponentProps(_nextProps);
202
+ }
203
+ });
204
+ });
205
+ (_item$onChange = item.onChange) === null || _item$onChange === void 0 ? void 0 : _item$onChange.forEach(function (onChange) {
206
+ (0, _core.onFieldValueChange)(item.name, function (field) {
207
+ var contextScope = _objectSpread(_objectSpread({}, scope), {}, {
208
+ $form: form,
209
+ $self: field,
210
+ $values: form.values
211
+ });
212
+
213
+ var values = onChange.values;
214
+
215
+ if (bingo(onChange, contextScope)) {
216
+ Object.keys(values).forEach(function (valuesKey) {
217
+ form.setValuesIn(valuesKey, getParsedValue(values[valuesKey], contextScope));
218
+ });
219
+ }
220
+ });
221
+ });
222
+ } else if (item.children) {
223
+ loopAddFieldEffect(item.children, form, scope);
224
+ }
225
+ });
226
+ }
227
+ };
228
+
229
+ var _default = function _default(form, schema, scope) {
230
+ form.addEffects('cascade', function () {
231
+ loopAddFieldEffect(schema, form, scope);
232
+ });
233
+ };
234
+
235
+ exports.default = _default;
@@ -21,6 +21,8 @@ var _components = require("@alicloudfe/components");
21
21
 
22
22
  var _ProField = _interopRequireDefault(require("../Components/ProField"));
23
23
 
24
+ var _addCascadeEffect = _interopRequireDefault(require("./addCascadeEffect"));
25
+
24
26
  var _Editable = require("../Components/Editable");
25
27
 
26
28
  var _FormGroup = _interopRequireDefault(require("../Components/FormGroup"));
@@ -112,17 +114,19 @@ var ProForm = /*#__PURE__*/(0, _react.memo)(function (_ref) {
112
114
  globalComponents = _ref2.components,
113
115
  globalScope = _ref2.scope;
114
116
 
117
+ var mergedScope = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, context), globalScope), scope), {}, {
118
+ context: context
119
+ });
120
+
115
121
  var form = (0, _react.useMemo)(function () {
116
- return outerForm || (0, _core.createForm)({
122
+ var nextForm = outerForm || (0, _core.createForm)({
117
123
  validateFirst: validateFirst
118
124
  });
125
+ (0, _addCascadeEffect.default)(nextForm, schema, mergedScope);
126
+ return nextForm;
119
127
  }, [outerForm]);
120
128
  var prefixCls = (0, _utils.usePrefixCls)('teamix-pro-form'); // 由于Actions需要,解构context供使用。原context键名的上下文继续保留。
121
129
 
122
- var mergedScope = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, context), globalScope), scope), {}, {
123
- context: context
124
- });
125
-
126
130
  var mergedComponents = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, globalComponents), components), formilyComponents), _ProField.default);
127
131
 
128
132
  var onAutoSubmit = (0, _useAutoSubmit.default)(onSubmit, context);
@@ -376,3 +376,36 @@
376
376
  }
377
377
  }
378
378
  }
379
+
380
+ // inset 内嵌模式描述文案和校验样式修改
381
+ .#{$form-item-cls}-inset {
382
+ // 描述+校验
383
+ &.#{$form-item-cls}-feedback-has-text.#{$form-item-cls}-extra-wrap {
384
+ margin-bottom: 42px;
385
+ .#{$form-item-cls}-error-help {
386
+ position: absolute;
387
+ left: 0px;
388
+ }
389
+ .#{$form-item-cls}-extra {
390
+ position: absolute;
391
+ bottom: -40px;
392
+ left: 0px;
393
+ }
394
+ }
395
+ // 描述
396
+ &.#{$form-item-cls}-extra-wrap {
397
+ margin-bottom: 40px;
398
+ .#{$form-item-cls}-extra {
399
+ position: absolute;
400
+ left: 0px;
401
+ }
402
+ }
403
+ // 校验
404
+ &.#{$form-item-cls}-feedback-has-text {
405
+ margin-bottom: 40px;
406
+ .#{$form-item-cls}-error-help {
407
+ position: absolute;
408
+ left: 0px;
409
+ }
410
+ }
411
+ }
@@ -32,6 +32,8 @@ declare const formilyReact: {
32
32
  };
33
33
  RecursionField: originalFormilyReact.ReactFC<originalFormilyReact.IRecursionFieldProps>;
34
34
  ExpressionScope: originalFormilyReact.ReactFC<originalFormilyReact.IExpressionScopeProps>;
35
+ RecordsScope: originalFormilyReact.ReactFC<originalFormilyReact.IRecordsScopeProps>;
36
+ RecordScope: originalFormilyReact.ReactFC<originalFormilyReact.IRecordScopeProps>;
35
37
  createSchemaField<Components extends originalFormilyReact.SchemaReactComponents>(options?: originalFormilyReact.ISchemaFieldReactFactoryOptions<Components> | undefined): {
36
38
  <Decorator extends originalFormilyReact.JSXComponent, Component extends originalFormilyReact.JSXComponent>(props: originalFormilyReact.ISchemaFieldProps<Decorator, Component, import("@formily/core").ObjectField<Decorator, Component>>): JSX.Element;
37
39
  displayName: string;
@@ -98,6 +100,7 @@ declare const formilyReact: {
98
100
  useParentForm: () => import("@formily/core").Form<any> | import("@formily/core").ObjectField<any, any>;
99
101
  useFieldSchema: () => originalFormilyReact.Schema<any, any, any, any, any, any, any, any, any>;
100
102
  useFormEffects: (effects?: ((form: import("@formily/core").Form<any>) => void) | undefined) => void;
103
+ useExpressionScope: () => any;
101
104
  };
102
105
  import { customComponent } from './ProForm/customComponent';
103
106
  export { formilyReact, customComponent };
@@ -34,6 +34,24 @@ export interface ProFormRequestConfig extends Omit<ProFormCommonRequestConfig, '
34
34
  extraConfig?: AnyObject;
35
35
  onComplete?: (res?: any, field?: any, context?: any) => any;
36
36
  }
37
+ export interface CascadeWhen {
38
+ left: string;
39
+ op: string;
40
+ right: any;
41
+ }
42
+ export interface Cascade {
43
+ when: CascadeWhen[];
44
+ logic?: '||' | '&&';
45
+ props?: any;
46
+ state?: any;
47
+ dataSourceFilter?: any[];
48
+ dataSourceHide?: any[];
49
+ }
50
+ export interface OnChange {
51
+ when: CascadeWhen[];
52
+ logic?: '||' | '&&';
53
+ values: any;
54
+ }
37
55
  export interface ProFormSchemaItem {
38
56
  type?: string;
39
57
  name?: string;
@@ -61,6 +79,8 @@ export interface ProFormSchemaItem {
61
79
  default?: any;
62
80
  request?: ProFormRequestConfig | ProFormRequestConfig[];
63
81
  data?: AnyObject;
82
+ cascade?: Cascade[];
83
+ onChange?: OnChange[];
64
84
  }
65
85
  export declare type ProFormSchema = ProFormSchemaItem[];
66
86
  interface AutoLayout {
package/lib/index.d.ts CHANGED
@@ -28,5 +28,5 @@ export * from './table';
28
28
  export * from './sidebar';
29
29
  export * from './utils';
30
30
  export * from './timeline';
31
- declare const version = "1.4.24";
31
+ declare const version = "1.4.27";
32
32
  export { version, ProAction, ProCard, ProField, ProForm, ProInfo, ProPageContainer, ProPageHeader, ProSkeleton, ProTable, ProSidebar, ProTimeline, TeamixIcon, hooks, nocode, templates, utils, };
package/lib/index.js CHANGED
@@ -313,9 +313,10 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
313
313
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
314
314
 
315
315
  // 设置图标源
316
+ // @ts-ignore
316
317
  if (!((_window = window) === null || _window === void 0 ? void 0 : _window.TEAMIXPRO_WITHOUT_ICON)) {
317
318
  _icon.default.setConfig(_utils.default.getTeamixIconConfig());
318
319
  }
319
320
 
320
- var version = '1.4.24';
321
+ var version = '1.4.27';
321
322
  exports.version = version;
@@ -91,7 +91,18 @@ var InfoValueItem = function InfoValueItem(props) {
91
91
  successMessage = _infoItem$successMess === void 0 ? 'success' : _infoItem$successMess,
92
92
  actions = infoItem.actions,
93
93
  extra = infoItem.extra,
94
- valueType = infoItem.valueType; // 获取处理过的 render
94
+ valueType = infoItem.valueType,
95
+ _infoItem$editProForm = infoItem.editProFormProps,
96
+ editProFormProps = _infoItem$editProForm === void 0 ? {} : _infoItem$editProForm; // 获取配置
97
+
98
+ var getInfoItemProps = function getInfoItemProps(prop) {
99
+ if (typeof prop === 'function') {
100
+ return prop === null || prop === void 0 ? void 0 : prop(value, record);
101
+ }
102
+
103
+ return prop;
104
+ }; // 获取处理过的 render
105
+
95
106
 
96
107
  var getRender = function getRender() {
97
108
  var _processRenderFunctio;
@@ -249,10 +260,10 @@ var InfoValueItem = function InfoValueItem(props) {
249
260
  }; // 重写编辑逻辑替代field原有逻辑
250
261
 
251
262
 
252
- if (isEdit) {
263
+ if (getInfoItemProps(isEdit)) {
253
264
  // 渲染表单
254
265
  var renderContent = function renderContent() {
255
- return /*#__PURE__*/_react.default.createElement(_form.default, {
266
+ return /*#__PURE__*/_react.default.createElement(_form.default, _objectSpread({
256
267
  schema: [{
257
268
  name: dataIndex,
258
269
  component: 'Input',
@@ -260,7 +271,7 @@ var InfoValueItem = function InfoValueItem(props) {
260
271
  default: value
261
272
  }],
262
273
  form: dataFilterForm
263
- });
274
+ }, getInfoItemProps(editProFormProps)));
264
275
  }; // 表单提交
265
276
 
266
277
 
@@ -4,6 +4,7 @@ import { Method } from 'axios';
4
4
  import React from 'react';
5
5
  import { CommonRequestConfig } from '@teamix/utils';
6
6
  import { ProCardProps } from '../card';
7
+ import { ProFormProps } from '../form';
7
8
  /** 列record函数 */
8
9
  declare type ProInfoCellFunProp = (value: any, record: any) => any;
9
10
  declare type FieldRenderProps = keyof ProFieldRenderProps;
@@ -77,7 +78,7 @@ export interface ProInfoColumnsProps {
77
78
  /** 合并行 */
78
79
  colSpan?: number;
79
80
  /** 是否可被编辑 */
80
- isEdit?: boolean;
81
+ isEdit?: boolean | ProInfoCellFunProp;
81
82
  /** 点击确定的回调函数 */
82
83
  editOnOk?: (form: any, e: React.MouseEvent) => void | Promise<any>;
83
84
  /** 点击取消的回调函数 */
@@ -88,6 +89,8 @@ export interface ProInfoColumnsProps {
88
89
  editMethod?: Method;
89
90
  /** 如需自定义调用参数格式,则可以设定此值在请求前对 params 进行自定义,如果返回false则可以阻止请求 */
90
91
  editFormatParams?: (params: any, record: any) => typeof params;
92
+ /** edit ProForm 配置 */
93
+ editProFormProps?: ProFormProps | ProInfoCellFunProp;
91
94
  /** 编辑请求成功提示文案 */
92
95
  successMessage?: string;
93
96
  /** 列 actions 配置 */
@@ -21,7 +21,7 @@ require("./index.scss");
21
21
 
22
22
  var _icon = _interopRequireDefault(require("@teamix/icon"));
23
23
 
24
- var _excluded = ["children", "searchPlaceholder", "showSearch", "searchProps", "customSearch", "searchOnChange", "message", "messageProps", "customMessage", "scrollArea", "showExpandAll", "showExpandLevel", "onExpandAllChange", "onExpandLevelChange", "expandLevel", "isTree"];
24
+ var _excluded = ["children", "searchPlaceholder", "showSearch", "searchProps", "customSearch", "searchOnChange", "message", "messageProps", "customMessage", "scrollArea", "showExpandAll", "showExpandLevel", "onExpandAllChange", "onExpandLevelChange", "expandLevel", "expandLevelState", "expandAllState", "isTree"];
25
25
 
26
26
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
27
 
@@ -81,6 +81,10 @@ var ProSidebarContainer = function ProSidebarContainer(props) {
81
81
  onExpandLevelChange = props.onExpandLevelChange,
82
82
  _props$expandLevel = props.expandLevel,
83
83
  expandLevel = _props$expandLevel === void 0 ? 1 : _props$expandLevel,
84
+ _props$expandLevelSta = props.expandLevelState,
85
+ expandLevelStateProp = _props$expandLevelSta === void 0 ? 1 : _props$expandLevelSta,
86
+ _props$expandAllState = props.expandAllState,
87
+ expandAllStateProp = _props$expandAllState === void 0 ? false : _props$expandAllState,
84
88
  isTree = props.isTree,
85
89
  others = _objectWithoutProperties(props, _excluded);
86
90
 
@@ -114,7 +118,19 @@ var ProSidebarContainer = function ProSidebarContainer(props) {
114
118
  setTreeHeight("calc(100% - ".concat(remainHeight, "px + 16px)"));
115
119
  }
116
120
  }
117
- }, []); // 渲染搜索区域
121
+ }, []);
122
+ (0, _react.useEffect)(function () {
123
+ setExpandLevelState(expandLevelStateProp);
124
+ setTimeout(function () {
125
+ onExpandLevelChange === null || onExpandLevelChange === void 0 ? void 0 : onExpandLevelChange(expandLevelStateProp);
126
+ });
127
+ }, [expandLevelStateProp]);
128
+ (0, _react.useEffect)(function () {
129
+ setExpandAllState(expandAllStateProp);
130
+ setTimeout(function () {
131
+ onExpandAllChange === null || onExpandAllChange === void 0 ? void 0 : onExpandAllChange(expandAllStateProp);
132
+ });
133
+ }, [expandAllStateProp]); // 渲染搜索区域
118
134
 
119
135
  var renderSearch = function renderSearch() {
120
136
  if (customSearch || showSearch) {
@@ -1,12 +1,13 @@
1
1
  .teamix-pro-sidebar-container {
2
2
  min-width: 180px;
3
- .teamix-pro-card.compacted >.next-card-header{
3
+
4
+ .teamix-pro-card.compacted > .next-card-header {
4
5
  padding: 16px 0px;
5
6
  margin: 0;
6
-
7
+
7
8
  }
8
9
 
9
- .next-card .next-card-header-extra{
10
+ .next-card .next-card-header-extra {
10
11
  margin-top: 2px;
11
12
  }
12
13
 
@@ -27,38 +28,44 @@
27
28
  }
28
29
 
29
30
 
30
- &.teamix-pro-sidebar-container &-context{
31
- overflow-y: hidden;
32
-
33
- &:hover{
31
+ &.teamix-pro-sidebar-container &-context {
32
+ //overflow-y: hidden;
33
+
34
+ &:hover {
34
35
  overflow-y: auto;
35
36
  }
37
+
38
+ .next-tree-switcher.next-noop-line.next-noop-line-noroot {
39
+ flex-shrink: 0;
40
+ }
41
+
36
42
  }
37
43
 
38
44
 
39
- &-not-is-tree{
45
+ &-not-is-tree {
40
46
 
41
- .teamix-pro-card.compacted >.next-card-header{
47
+ .teamix-pro-card.compacted > .next-card-header {
42
48
  padding: 16px 8px;
43
49
  margin: 0;
44
50
  }
45
- .teamix-pro-sidebar-container-context{
51
+
52
+ .teamix-pro-sidebar-container-context {
46
53
  padding: 0;
47
54
  }
48
55
 
49
- .teamix-pro-sidebar-container-search{
56
+ .teamix-pro-sidebar-container-search {
50
57
  padding: 0 8px;
51
58
  }
52
59
 
53
- .teamix-pro-sidebar-container-search-has-message{
60
+ .teamix-pro-sidebar-container-search-has-message {
54
61
  padding: 0 8px;
55
62
  }
56
63
 
57
- .teamix-pro-sidebar-container-notice{
64
+ .teamix-pro-sidebar-container-notice {
58
65
  padding: 0 8px;
59
66
  }
60
67
 
61
- .teamix-pro-sidebar-container-fold{
68
+ .teamix-pro-sidebar-container-fold {
62
69
  padding: 0 8px;
63
70
  }
64
71
 
@@ -154,21 +154,39 @@ var ProSidebarTree = function ProSidebarTree(props) {
154
154
  }, [dataSourceProp]); // 监听展开全部事件
155
155
 
156
156
  (0, _hooks.useUpdateEffect)(function () {
157
+ onChangeExpandAll();
158
+ }, [expandAll]); // 监听展开层级事件
159
+
160
+ (0, _hooks.useUpdateEffect)(function () {
161
+ onChangeExpandLevel();
162
+ }, [expandLevel]); // 监听 DataSource 变化事件
163
+
164
+ (0, _react.useEffect)(function () {
165
+ onDataSourceChange === null || onDataSourceChange === void 0 ? void 0 : onDataSourceChange(dataSource); // 更新层级状态
166
+
167
+ if (expandAll) {
168
+ onChangeExpandAll();
169
+ }
170
+
171
+ if (expandLevel > 1) {
172
+ onChangeExpandLevel();
173
+ }
174
+ }, [dataSource]); // 展开全部事件
175
+
176
+ var onChangeExpandAll = function onChangeExpandAll() {
157
177
  if (expandAll) {
158
178
  setExpandedKeys((0, _utils2.getAllNodeKey)(dataSource));
159
179
  } else {
160
180
  setExpandedKeys([]);
161
181
  }
162
- }, [expandAll]); // 监听展开层级事件
182
+ }; // 展开层级事件
163
183
 
164
- (0, _hooks.useUpdateEffect)(function () {
184
+
185
+ var onChangeExpandLevel = function onChangeExpandLevel() {
165
186
  var keys = (0, _utils2.getTreeLevelKey)(dataSource, expandLevel - 1);
166
187
  setExpandedKeys(keys);
167
- }, [expandLevel]); // 监听 DataSource 变化事件
188
+ }; // 绑定actionRef
168
189
 
169
- (0, _react.useEffect)(function () {
170
- onDataSourceChange === null || onDataSourceChange === void 0 ? void 0 : onDataSourceChange(dataSource);
171
- }, [dataSource]); // 绑定actionRef
172
190
 
173
191
  (0, _actionRef.useActionType)(actionRef, {
174
192
  setTreeNode: function setTreeNode(treeNode) {
@@ -247,7 +247,7 @@ function renderTreeNodeDependenceValue(data, onBeforeRenderNodeEvent, checkedKey
247
247
  newProps = onBeforeRenderNodeEvent(item, checkedKeys, selectedKeys, allData !== null && allData !== void 0 ? allData : data);
248
248
  }
249
249
 
250
- var _getTreeNodeProps2 = (0, _.getTreeNodeProps)(item),
250
+ var _getTreeNodeProps2 = (0, _.getTreeNodeProps)(newProps),
251
251
  nodeProps = _getTreeNodeProps2.nodeProps,
252
252
  labelProps = _getTreeNodeProps2.labelProps;
253
253
 
@@ -50,6 +50,12 @@
50
50
  font-weight: unset;
51
51
  }
52
52
  }
53
+ // 选中图标变色
54
+ .next-tree-node-inner.next-selected {
55
+ .teamix-icon.teamix-pro-filed-output-prefix-icon {
56
+ color: var(--color-brand1-6) !important;
57
+ }
58
+ }
53
59
  }
54
60
  .teamix-pro-sidebar-deep-1 {
55
61
  .teamix-pro-sidebar-tree {
@@ -88,6 +88,8 @@ export declare type ProSidebarContainerProps = {
88
88
  scrollArea?: 'all' | 'tree';
89
89
  /** 是否显示展开全部 */
90
90
  showExpandAll?: boolean;
91
+ /** 展开全部 状态 */
92
+ expandAllState?: boolean;
91
93
  /** 是否显示展开层级 */
92
94
  showExpandLevel?: boolean;
93
95
  /** 展开全部变化回调 */
@@ -96,6 +98,8 @@ export declare type ProSidebarContainerProps = {
96
98
  onExpandLevelChange?: (state: number) => void;
97
99
  /** 展开层级 层级 */
98
100
  expandLevel?: number;
101
+ /** 展开层级 当前所展示层级 */
102
+ expandLevelState?: number;
99
103
  /** 列表 or tree */
100
104
  isTree?: boolean;
101
105
  } & ProCardProps;
@@ -1,7 +1,7 @@
1
1
  $prefix: 'teamix-pro-table-layout';
2
2
 
3
3
  .theme-hybridcloud-dark {
4
- --panel-filter-bg: #1f1f1f;
4
+ --panel-filter-bg: #141414;
5
5
  }
6
6
 
7
7
  .#{$prefix} {