fan-standard-comp 4.0.2 → 4.0.4

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.
@@ -20,7 +20,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
20
20
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
21
21
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
22
22
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
23
- import React, { useState, useEffect, useContext } from "react";
23
+ import React, { useState, useEffect, useContext, useMemo } from "react";
24
24
  import { IconNode } from "../components";
25
25
  import SpecIcon from "../SpecIcon";
26
26
  import PopConfirmTitle from "./PopConfirmTitle";
@@ -29,8 +29,6 @@ import { DownOutlined, QuestionCircleOutlined } from "@ant-design/icons";
29
29
  import { removeNoPermission, btnIsDisabled } from "../utils/filterPermission";
30
30
  import useStyle from "./styles";
31
31
  import classNames from "classnames";
32
- import _ from "lodash";
33
- import { funcCode } from "../data/index";
34
32
  import { FanContext } from "../ConfigContext";
35
33
 
36
34
  // 参数API
@@ -67,19 +65,11 @@ var ButtonGroup = function ButtonGroup(props) {
67
65
  _useState4 = _slicedToArray(_useState3, 2),
68
66
  popRow = _useState4[0],
69
67
  setPopRow = _useState4[1];
70
- var _useState5 = useState([]),
71
- _useState6 = _slicedToArray(_useState5, 2),
72
- resetList = _useState6[0],
73
- setResetList = _useState6[1];
74
- useEffect(function () {
75
- // codes在方法内,再合并默认的权限配置
76
- // 合并本地的codes
77
- var codesConcat = _.unionBy(codes || [], funcCode.btnFuncCodes, 'code');
78
- // 重组选项options集合数据,排除:无权限(有配置code,并且不包含permissionCodes内)的数据及,isHide 为true的数据
79
- setResetList(_toConsumableArray(removeNoPermission(options, permissionCodes, codesConcat, rowParams)) || []);
80
- return function () {
81
- setResetList([]);
82
- };
68
+ // const [resetList, setResetList] = useState<any[]>([])
69
+ var resetList = useMemo(function () {
70
+ // // codes在方法内,再合并默认的权限配置
71
+ // // 重组选项options集合数据,排除:无权限(有配置code,并且不包含permissionCodes内)的数据及,isHide 为true的数据
72
+ return _toConsumableArray(removeNoPermission(options, permissionCodes, codes, rowParams)) || [];
83
73
  }, [options, codes, permissionCodes]);
84
74
  useEffect(function () {
85
75
  setPopVisibleIndex(-1);
@@ -23,18 +23,18 @@ var SpecButtonGroupTextStyle = function SpecButtonGroupTextStyle(prefixCls, toke
23
23
  }
24
24
  }, "& + ".concat(prefixCls, "-text"), {
25
25
  position: 'relative',
26
- marginLeft: token.paddingSM,
27
- '&:before': {
28
- position: 'absolute',
29
- content: '""',
30
- top: '50%',
31
- left: " calc(-".concat(token.paddingSM, "px / 2)"),
32
- transform: 'translate(0, -50%)',
33
- display: 'inline-block',
34
- height: '.9em',
35
- verticalAlign: 'middle',
36
- borderLeft: "1px solid ".concat(token.colorBorder)
37
- }
26
+ marginLeft: token.paddingSM
27
+ // '&:before': {
28
+ // position: 'absolute',
29
+ // content: '""',
30
+ // top: '50%',
31
+ // left:` calc(-${token.paddingSM}px / 2)`,
32
+ // transform: 'translate(0, -50%)',
33
+ // display: 'inline-block',
34
+ // height: '.9em',
35
+ // verticalAlign: 'middle',
36
+ // borderLeft: `1px solid ${token.colorBorder}`
37
+ // }
38
38
  }));
39
39
  };
40
40
  var SpecButtonGroupStyleFunc = function SpecButtonGroupStyleFunc(prefix) {
@@ -12,7 +12,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
12
12
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
13
13
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
14
14
  /* eslint-disable */
15
- import React, { useCallback } from "react";
15
+ import React, { useEffect, useCallback } from "react";
16
16
  import { Row, Col, Tooltip, Form, Space } from "antd";
17
17
  import { general } from "../../data";
18
18
  import Field from "../FieldComponent";
@@ -48,7 +48,53 @@ var RenderItemGroup = function RenderItemGroup(props) {
48
48
  // // @ts-ignore
49
49
  // return general.modalSize[size].columnNumber || 1
50
50
  // }, [size, columnCount])
51
-
51
+ /*
52
+ // 当前需要显示的前几条表单项
53
+ // const [showItemNumber, setShowItemNumber] = useState(0)
54
+ // 计算当前栅格数量,及对应的size
55
+ const columnNumberAndSize = useMemo(() => {
56
+ // 当前栅栅数量
57
+ let itemGroupSize = size || (layout === 'horizontal' ? 'xxlg' : 'md')
58
+ if (columnCount) {
59
+ // 有配置栅格数 1,2,3,4
60
+ switch (columnCount) {
61
+ case 1:
62
+ itemGroupSize = 'sm'
63
+ break;
64
+ case 2:
65
+ itemGroupSize = 'md'
66
+ break;
67
+ case 3:
68
+ itemGroupSize = 'lg'
69
+ break;
70
+ case 4:
71
+ itemGroupSize = 'xxlg'
72
+ break;
73
+ }
74
+ }
75
+ return {
76
+ // @ts-ignore
77
+ columnNumber: general.modalSize[itemGroupSize].columnNumber,
78
+ itemGroupSize, columnCount
79
+ }
80
+ }, [size, columnCount, layout])
81
+ useEffect(() => {
82
+ setShowItemNumber(columnNumberAndSize.columnNumber - 1)
83
+ }, [columnNumberAndSize, size])
84
+
85
+ // 判断是否隐藏结构, display:'none'
86
+ const setItemHiddenNode = (item: any, index: number, collapsed: boolean, showItemNumber: number) => {
87
+ // updateFormFields() // TODO 放这执行会报错,但是不加的话,切换栅格变化会导致收缩状态下隐藏的表单项未更新
88
+ if (item.filedName === 'filterAction') {
89
+ return {
90
+ isHidden: false
91
+ }
92
+ }
93
+ return {
94
+ // 栅格列为1时,显示1个表单项
95
+ isHidden: collapsed ? false : (showItemNumber === 0 ? index !== 0 : !(index < showItemNumber))
96
+ }
97
+ }*/
52
98
  var setColSpan = function setColSpan(display, modalSize, columnCount) {
53
99
  if (_typeof(display) === 'object' || display === 'block') {
54
100
  // 栅格数量为:1
@@ -72,13 +118,13 @@ var RenderItemGroup = function RenderItemGroup(props) {
72
118
  return 12;
73
119
  };
74
120
  var updateFormFields = function updateFormFields() {
121
+ // console.log('用于触发更新表单实例赋值')
75
122
  // if (newVal) form && form.setFieldsValue({ ...newVal })
76
123
  if (doUpdateFormFields) doUpdateFormFields(); // 用于触发更新表单实例赋值
77
124
  };
78
-
79
- // useEffect(() => {
80
- // // updateFormFields()
81
- // }, [form])
125
+ useEffect(function () {
126
+ updateFormFields();
127
+ }, [form]);
82
128
 
83
129
  // 渲染隐藏指定控件
84
130
  var itemIsHide = function itemIsHide(isHide, getFieldsValue, FormInstance) {
@@ -205,9 +251,18 @@ var RenderItemGroup = function RenderItemGroup(props) {
205
251
  customRender = item.customRender,
206
252
  filedName = item.filedName; // 当前可传参的配置值
207
253
  if (layout === "horizontal" || layout === "vertical") {
254
+ // if (collapseable && layout === "horizontal") {
255
+ // const { isHidden } = setItemHiddenNode(item, index, collapsed, showItemNumber)
256
+ // item.isHidden = isHidden
257
+ // item.style = { ...(item.style || {}), display: item.isHidden ? 'none' : 'block' }
258
+ // // if (index < showItemNumber) {
259
+ // // console.log('===>>>>当前显示【常规表单项】=>>', item.filedName, '序号', index, '可显示数量', showItemNumber, collapsed)
260
+ // // }
261
+ // }
208
262
  return /*#__PURE__*/React.createElement(Col, {
209
263
  key: index,
210
- span: item.colSpan || setColSpan(item.display, size, columnCount)
264
+ span: item.colSpan || setColSpan(item.display, size, columnCount),
265
+ style: item.style
211
266
  }, /*#__PURE__*/React.createElement(FormItem, _extends({
212
267
  name: type !== 'custom' && filedName,
213
268
  className: classNames(fieldStatus === 'viewOnly' ? 'form-item-view-only' : '', 'spec-item-group-form-item'),
@@ -244,34 +299,7 @@ var RenderItemGroup = function RenderItemGroup(props) {
244
299
  type = item.type,
245
300
  _item$display = item.display,
246
301
  display = _item$display === void 0 ? 'side' : _item$display; // 当前可传参的配置值
247
-
248
302
  var formLayout = calculateFormLayout(item);
249
- // if (displayLayout) {
250
- // // 如果未配置,则使用以下配置值
251
- // formLayout = { ...displayLayout }
252
- // }
253
- // 优先级 displayLayout.side > displayLayout > general
254
- // 优先级:若有displayLayout.block 则直接使用 general > displayLayout
255
- // 还需要判断 layout为vertical还是horizontal
256
- // @ts-ignore
257
- // formLayout = displayLayout?.side || (displayLayout?.block ? general.modalSize[size].formLayout : ((!displayLayout || JSON.stringify(displayLayout) === '{}') ? general.modalSize[size].formLayout : displayLayout))
258
- // if (item.hasOwnProperty('display')) {
259
- // if (typeof display === 'string') {
260
- // if (display === 'block') {
261
- // // @ts-ignore
262
- // formLayout = displayLayout?.block || general.modalSize[size].formBlockLayout
263
- // } else {
264
- // // 使用默认
265
- // // formLayout = displayLayout?.side || (displayLayout?.block ? general.modalSize[size].formLayout : displayLayout) || general.modalSize[size].formLayout
266
- // }
267
- // } else {
268
- // formLayout = item.display // 对象类型传值如: {labelCol: {span: 3},wrapperCol: {span: 8}} 优先级最高
269
- // }
270
- // }
271
- // // 当布局为 'inline' 时,不配置栅格结构
272
- // if (layout === 'inline') {
273
- // formLayout = {}
274
- // }
275
303
  // title标题或html渲染
276
304
  if (type === 'title' || type === 'html') {
277
305
  return /*#__PURE__*/React.createElement(FormItem, {
@@ -282,7 +310,8 @@ var RenderItemGroup = function RenderItemGroup(props) {
282
310
  var _item$protoConfig;
283
311
  // isHide 返回为true则隐藏当前控件
284
312
  return !itemIsHide(isHide, FormInstance.getFieldValue(), FormInstance) ? /*#__PURE__*/React.createElement(Col, {
285
- span: item.colSpan || 24
313
+ span: item.colSpan || 24,
314
+ style: item.style
286
315
  }, type === 'title' ? /*#__PURE__*/React.createElement("h3", _extends({}, item.protoConfig, {
287
316
  className: "modalPanelTitle ".concat((item === null || item === void 0 || (_item$protoConfig = item.protoConfig) === null || _item$protoConfig === void 0 ? void 0 : _item$protoConfig.className) || '')
288
317
  }), label) : label) : /*#__PURE__*/React.createElement(React.Fragment, null, null);
@@ -299,6 +328,7 @@ var RenderItemGroup = function RenderItemGroup(props) {
299
328
  return !itemIsHide(isHide, FormInstance.getFieldValue(), FormInstance) ? renderColFormItem(item, index, formLayout) : null;
300
329
  });
301
330
  }
331
+ // 常规表单项结构
302
332
  return renderColFormItem(item, index, formLayout);
303
333
  });
304
334
  };
@@ -22,6 +22,7 @@ export interface StandardFilterProps {
22
22
  colon?: boolean;
23
23
  dateFormatter?: 'dayjs' | 'string';
24
24
  itemGroupConfig?: object;
25
+ collapseable?: boolean;
25
26
  [k: string]: any;
26
27
  }
27
28
  declare const StandardFilter: React.ForwardRefExoticComponent<Omit<StandardFilterProps, "ref"> & React.RefAttributes<unknown>>;
@@ -21,8 +21,10 @@ import { general } from "../data/";
21
21
  import "./style/index.less";
22
22
  import { FanContext } from "../ConfigContext";
23
23
  import useStyle from "./style/FilterStyle";
24
+ import SpecIcon from "../SpecIcon";
24
25
  var FormItem = Form.Item;
25
26
  var StandardFilter = /*#__PURE__*/React.forwardRef(function (props, ref) {
27
+ var _filterFormRef$curren4;
26
28
  var InitFanContext = useContext(FanContext);
27
29
  var providerConfig = InitFanContext['StandardFilter'] || {}; // 使用上下文(全局配置)设置扩展的配置项
28
30
  var _providerConfig$props = _objectSpread(_objectSpread({}, providerConfig), props),
@@ -56,7 +58,9 @@ var StandardFilter = /*#__PURE__*/React.forwardRef(function (props, ref) {
56
58
  filterBtnsStyle = _providerConfig$props.filterBtnsStyle,
57
59
  _providerConfig$props7 = _providerConfig$props.colon,
58
60
  colon = _providerConfig$props7 === void 0 ? true : _providerConfig$props7,
59
- dateFormatter = _providerConfig$props.dateFormatter;
61
+ dateFormatter = _providerConfig$props.dateFormatter,
62
+ _providerConfig$props8 = _providerConfig$props.collapseable,
63
+ collapseable = _providerConfig$props8 === void 0 ? false : _providerConfig$props8;
60
64
  var filterFormRef = useRef();
61
65
  // ref 的转发
62
66
  useImperativeHandle(ref, function () {
@@ -70,7 +74,10 @@ var StandardFilter = /*#__PURE__*/React.forwardRef(function (props, ref) {
70
74
  _useState4 = _slicedToArray(_useState3, 2),
71
75
  isHideCount = _useState4[0],
72
76
  setIsHideCount = _useState4[1]; // 表单隐藏项数量值
73
-
77
+ var _useState5 = useState(false),
78
+ _useState6 = _slicedToArray(_useState5, 2),
79
+ collapsed = _useState6[0],
80
+ setCollapsed = _useState6[1];
74
81
  var componentName = 'spec-standard-filter';
75
82
  var _useStyle = useStyle(componentName),
76
83
  _useStyle2 = _slicedToArray(_useStyle, 2),
@@ -79,8 +86,9 @@ var StandardFilter = /*#__PURE__*/React.forwardRef(function (props, ref) {
79
86
  var filterFormLayout = useMemo(function () {
80
87
  return formLayout || 'inline';
81
88
  }, [formLayout]);
82
- // 配置筛选按钮(确认与取消)
83
- var filterActionButtons = useMemo(function () {
89
+
90
+ // 计算当前栅格数量,及对应的size
91
+ var columnNumberAndSize = useMemo(function () {
84
92
  // 当前栅栅数量
85
93
  var itemGroupSize = (itemGroupConfig === null || itemGroupConfig === void 0 ? void 0 : itemGroupConfig.size) || (filterFormLayout === 'horizontal' ? 'xxlg' : 'md');
86
94
  if (itemGroupConfig !== null && itemGroupConfig !== void 0 && itemGroupConfig.columnCount) {
@@ -100,8 +108,31 @@ var StandardFilter = /*#__PURE__*/React.forwardRef(function (props, ref) {
100
108
  break;
101
109
  }
102
110
  }
111
+ return {
112
+ columnNumber: general.modalSize[itemGroupSize].columnNumber,
113
+ itemGroupSize: itemGroupSize
114
+ };
115
+ }, [itemGroupConfig, filterFormLayout]);
116
+
117
+ // 计算表单隐藏项(开启展开与收缩)
118
+ var calculateHideCount = function calculateHideCount(filterFormRef, groups) {
119
+ var _filterFormRef$curren;
120
+ var formValues = filterFormRef === null || filterFormRef === void 0 || (_filterFormRef$curren = filterFormRef.current) === null || _filterFormRef$curren === void 0 ? void 0 : _filterFormRef$curren.getFieldValue();
121
+ setIsHideCount((groups || []).filter(function (item) {
122
+ return (item === null || item === void 0 ? void 0 : item.isHidden) || (item.hasOwnProperty('isHide') ? item.isHide(_objectSpread({}, formValues), filterFormRef) : false);
123
+ }).length);
124
+ };
125
+
126
+ // 配置筛选按钮(确认与取消)
127
+ var filterActionButtons = useMemo(function () {
128
+ var itemGroupSize = columnNumberAndSize.itemGroupSize,
129
+ columnNumber = columnNumberAndSize.columnNumber;
103
130
  // 计算扣除栅格列数是否还有多余的项,用来判断筛选按钮的版式(初始化的时候,可能会受默认值内配置的isHide影响导致计算错误;或自定义表单控件组栅格影响)
104
- var calculateTimes = (formItemGroup.length - isHideCount) % general.modalSize[itemGroupSize].columnNumber;
131
+ // if (collapseable) {
132
+ // columnNumber = collapsed ? columnNumber : (columnNumber === 1 ? columnNumber = 2 : columnNumber)
133
+ // }
134
+ var calculateTimes = (reFormItemGroup.length - isHideCount) % columnNumber;
135
+ // console.log('当前多余的数量', calculateTimes, '当前隐藏的控件数量isHideCount==>', isHideCount, itemGroupSize, 'columnNumber', columnNumber)
105
136
  // xs:1列 sm:1列 【span:24】
106
137
  // md:2列 【span:12】
107
138
  // lg:3列 xlg:3列 【span:8】
@@ -111,10 +142,11 @@ var StandardFilter = /*#__PURE__*/React.forwardRef(function (props, ref) {
111
142
  label: '',
112
143
  type: 'custom',
113
144
  // display: 'block',
145
+ filedName: 'filterAction',
114
146
  display: {
115
147
  wrapperCol: {
116
- // 占用的格子数按对应size配置的formItem(md下额外再新增1)
117
- span: general.modalSize[itemGroupSize].formLayout.labelCol.span + general.modalSize[itemGroupSize].formLayout.wrapperCol.span + (itemGroupSize === 'md' ? 1 : 0)
148
+ // 占用的格子数按对应size配置的formItem(md下额外再新增1, 忘了为什么额外加了,先去除.20240619)
149
+ span: general.modalSize[itemGroupSize].formLayout.labelCol.span + general.modalSize[itemGroupSize].formLayout.wrapperCol.span // + (itemGroupSize === 'md' ? 1 : 0)
118
150
  }
119
151
  },
120
152
  protoFormItem: {
@@ -137,10 +169,23 @@ var StandardFilter = /*#__PURE__*/React.forwardRef(function (props, ref) {
137
169
  },
138
170
  onClick: handleReset,
139
171
  ghost: true
140
- }, cancelButtonProps), cancelText || '重置'));
172
+ }, cancelButtonProps), cancelText || '重置'), filterFormLayout === 'horizontal' && collapseable && reFormItemGroup.length > columnNumberAndSize.columnNumber - 1 ? /*#__PURE__*/React.createElement(Button, {
173
+ type: 'link',
174
+ onClick: function onClick() {
175
+ return setCollapsed(!collapsed);
176
+ },
177
+ style: {
178
+ marginLeft: 8,
179
+ paddingInlineStart: 0,
180
+ paddingInlineEnd: 0
181
+ }
182
+ }, collapsed ? '收起' : '展开', /*#__PURE__*/React.createElement(SpecIcon, {
183
+ noPrefix: true,
184
+ name: collapsed ? 'speci-up' : 'speci-down'
185
+ })) : null);
141
186
  }
142
187
  })];
143
- }, [confirmText, cancelText, filterFormLayout, reFormItemGroup, onFilterSearch, onFilterReset, itemGroupConfig, filterFormRef, isHideCount]);
188
+ }, [confirmText, cancelText, filterFormLayout, reFormItemGroup, onFilterSearch, onFilterReset, columnNumberAndSize, filterFormRef, isHideCount, collapseable, collapsed]);
144
189
 
145
190
  // 更新表单控件值,用于外部获取当前表单实例(force是否强制清空表单)
146
191
  var updateFormFields = function updateFormFields(newVal, force) {
@@ -175,37 +220,29 @@ var StandardFilter = /*#__PURE__*/React.forwardRef(function (props, ref) {
175
220
  })
176
221
  } */
177
222
  filterFormRef.current.setFieldsValue(_objectSpread(_objectSpread({}, resetValues), newVal || {})); // 直接清空表单的赋值
178
- updateCalculate(filterFormRef.current.getFieldsValue());
179
- if (getFormFields) getFormFields(filterFormRef.current.getFieldsValue(), filterFormRef);
223
+ forceUpdateForm();
180
224
  };
181
225
  // 强制更新表单值,用于赋初始化实例值
182
226
  var forceUpdateForm = useCallback(function () {
183
227
  var formValues = filterFormRef.current.getFieldsValue();
184
- // if (Object.prototype.hasOwnProperty.call(formValues, false)) {
185
- // delete formValues.false // TODO 自定义结构会莫名的出来一个false字段
186
- // }
187
- updateCalculate(formValues); // 更新当前表单数量,排除被隐藏的值
188
- if (getFormFields) getFormFields(filterFormRef.current.getFieldsValue(), filterFormRef);
189
- }, [dateFormatter, formItemGroup]);
190
- // 计算表单隐藏项
191
- var updateCalculate = useCallback(function (formValues) {
192
- setIsHideCount(reFormItemGroup.filter(function (item) {
193
- return item.hasOwnProperty('isHide') ? item.isHide(_objectSpread({}, formValues), filterFormRef) : false;
194
- }).length);
228
+ if (Object.prototype.hasOwnProperty.call(formValues, false)) {
229
+ delete formValues.false; // 自定义结构会莫名的出来一个false字段
230
+ }
231
+ calculateHideCount(filterFormRef, reFormItemGroup); // 更新当前表单数量,排除被隐藏的值
232
+ if (getFormFields) getFormFields(formValues, filterFormRef);
195
233
  }, [reFormItemGroup, filterFormRef]);
196
234
  var handleSearch = function handleSearch(values) {
197
235
  if (Object.prototype.hasOwnProperty.call(values, false)) {
198
- delete values.false; // TODO 自定义结构会莫名的出来一个false字段
236
+ delete values.false; // 自定义结构会莫名的出来一个false字段
199
237
  }
200
- var resultValues = dateFormatter === 'string' ? UtilValueFormat(values, formItemGroup) : values;
201
- console.log('格式化前数据', values);
202
- console.log('格式化后数据', resultValues);
238
+ var resultValues = dateFormatter === 'string' ? UtilValueFormat(values, reFormItemGroup) : values;
239
+ // console.log('格式化前数据', values)
240
+ // console.log('格式化后数据', resultValues)
203
241
  if (onFilterSearch) {
204
242
  onFilterSearch(_objectSpread({}, resultValues));
205
243
  }
206
244
  };
207
245
  var handleReset = function handleReset() {
208
- var _filterFormRef$curren;
209
246
  // 使用此方法,表单校验无法清空掉
210
247
  // const resetValues = this.filterFormRef.current.getFieldsValue()
211
248
  // Object.keys(resetValues).forEach((item) => {
@@ -214,20 +251,78 @@ var StandardFilter = /*#__PURE__*/React.forwardRef(function (props, ref) {
214
251
  // this.filterFormRef.current.setFieldsValue({ ...resetValues }) // 直接清空表单的赋值
215
252
  filterFormRef.current.resetFields();
216
253
  setReFormItemGroup(formItemGroup); // 重新渲染列表
217
- updateCalculate(filterFormRef === null || filterFormRef === void 0 || (_filterFormRef$curren = filterFormRef.current) === null || _filterFormRef$curren === void 0 ? void 0 : _filterFormRef$curren.getFieldsValue());
254
+ calculateHideCount(filterFormRef, reFormItemGroup);
218
255
  if (onFilterReset) {
219
256
  var _filterFormRef$curren2;
220
257
  onFilterReset(filterFormRef === null || filterFormRef === void 0 || (_filterFormRef$curren2 = filterFormRef.current) === null || _filterFormRef$curren2 === void 0 ? void 0 : _filterFormRef$curren2.getFieldsValue());
221
258
  }
222
259
  };
260
+
261
+ // 判断是否隐藏结构, display:'none'
262
+ var setItemHiddenNode = function setItemHiddenNode(item, index, collapsed, showItemNumber) {
263
+ // console.log('判断是否隐藏结构==>当前执行序号', index, showItemNumber)
264
+ if (item.filedName === 'filterAction') {
265
+ return {
266
+ isHidden: false
267
+ };
268
+ }
269
+ return {
270
+ // 栅格列为1时,显示1个表单项
271
+ isHidden: collapsed ? false : showItemNumber === 0 ? index !== 0 : !(index < showItemNumber)
272
+ };
273
+ };
274
+ // 渲染隐藏指定控件
275
+ var itemIsHide = function itemIsHide(isHide, getFieldsValue, FormInstance) {
276
+ if (typeof isHide === 'function') {
277
+ return isHide(getFieldsValue, FormInstance, 'default');
278
+ }
279
+ return isHide || false;
280
+ };
281
+ var updateGroupByCollapsed = function updateGroupByCollapsed(groups, formValues) {
282
+ // console.log('判断当前是否需要按展开与收缩显示对应的表单项')
283
+ var showItemNumber = columnNumberAndSize.columnNumber - 1;
284
+ return new Promise(function (resolve, reject) {
285
+ if (Array.isArray(groups)) {
286
+ resolve(groups.map(function (item, index) {
287
+ if (collapseable && filterFormLayout === "horizontal") {
288
+ var _setItemHiddenNode = setItemHiddenNode(item, index, collapsed, showItemNumber),
289
+ isHidden = _setItemHiddenNode.isHidden;
290
+ item.isHidden = isHidden;
291
+ item.style = _objectSpread(_objectSpread({}, item.style || {}), {}, {
292
+ display: item.isHidden ? 'none' : 'block'
293
+ });
294
+ if (item.hasOwnProperty('isHide') && itemIsHide(item.isHide, formValues, filterFormRef)) {
295
+ showItemNumber++;
296
+ item.isHidden = true;
297
+ // console.log('当前是结构是隐藏未渲染,跳到下个序号', showItemNumber)
298
+ }
299
+ }
300
+ return _objectSpread({}, item);
301
+ }));
302
+ } else {
303
+ resolve(groups);
304
+ }
305
+ });
306
+ };
307
+ useEffect(function () {
308
+ // 初始化表单数据数据
309
+ if (collapseable && filterFormLayout === "horizontal") {
310
+ var _filterFormRef$curren3;
311
+ var formValues = filterFormRef === null || filterFormRef === void 0 || (_filterFormRef$curren3 = filterFormRef.current) === null || _filterFormRef$curren3 === void 0 ? void 0 : _filterFormRef$curren3.getFieldValue();
312
+ updateGroupByCollapsed(formItemGroup, formValues).then(function (groups) {
313
+ setReFormItemGroup(groups);
314
+ calculateHideCount(filterFormRef, groups);
315
+ });
316
+ } else {
317
+ setReFormItemGroup(formItemGroup);
318
+ }
319
+ }, [formItemGroup, collapseable, filterFormLayout, collapsed, columnNumberAndSize === null || columnNumberAndSize === void 0 ? void 0 : columnNumberAndSize.columnNumber, itemGroupConfig, filterFormRef, filterFormRef === null || filterFormRef === void 0 || (_filterFormRef$curren4 = filterFormRef.current) === null || _filterFormRef$curren4 === void 0 ? void 0 : _filterFormRef$curren4.getFieldValue()]);
223
320
  useEffect(function () {
224
321
  if (initialValues && JSON.stringify(initialValues) !== '{}') {
225
322
  updateFormFields(initialValues, true);
226
323
  }
227
324
  }, [initialValues]);
228
- useEffect(function () {
229
- setReFormItemGroup(formItemGroup);
230
- }, [formItemGroup]);
325
+
231
326
  // / 表单列表组 formItemGroup 类型为数组或者React.Node
232
327
  var renderFormItemGroup = function renderFormItemGroup() {
233
328
  if (Array.isArray(reFormItemGroup)) {
@@ -237,7 +332,9 @@ var StandardFilter = /*#__PURE__*/React.forwardRef(function (props, ref) {
237
332
  size: filterFormLayout === 'horizontal' ? 'xxlg' : 'md' // size决定栅格排列数量(4列排版)
238
333
  ,
239
334
  layout: filterFormLayout,
240
- form: filterFormRef
335
+ form: filterFormRef,
336
+ collapseable: collapseable,
337
+ collapsed: collapsed
241
338
  // displayLayout={{labelCol: { span: 8 }, wrapperCol: { span: 16 },}}
242
339
  ,
243
340
  doUpdateFormFields: function doUpdateFormFields() {
@@ -74,20 +74,17 @@ var StandardModal = function StandardModal(props) {
74
74
  var _Form$useForm = Form.useForm(),
75
75
  _Form$useForm2 = _slicedToArray(_Form$useForm, 1),
76
76
  modalForm = _Form$useForm2[0];
77
- var _useState = useState(),
77
+ // const [modalFormRef, setModalFormRef] = useState<any>(); // <---- set the ref when Form Rendered(使用此方法会出现溢出事件)
78
+ var _useState = useState(0),
78
79
  _useState2 = _slicedToArray(_useState, 2),
79
- modalFormRef = _useState2[0],
80
- setModalFormRef = _useState2[1]; // <---- set the ref when Form Rendered
81
- var _useState3 = useState(0),
82
- _useState4 = _slicedToArray(_useState3, 2),
83
- bodyMaxHeight = _useState4[0],
84
- setBodyMaxHeight = _useState4[1];
80
+ bodyMaxHeight = _useState2[0],
81
+ setBodyMaxHeight = _useState2[1];
85
82
 
86
83
  // setTabFormChild
87
- var _useState5 = useState(),
88
- _useState6 = _slicedToArray(_useState5, 2),
89
- formChild = _useState6[0],
90
- setFormChild = _useState6[1]; // <---- set the ref when Form Rendered
84
+ var _useState3 = useState(),
85
+ _useState4 = _slicedToArray(_useState3, 2),
86
+ formChild = _useState4[0],
87
+ setFormChild = _useState4[1]; // <---- set the ref when Form Rendered
91
88
 
92
89
  // 按钮栏是否有显示(默认显示)
93
90
  var hasFooterBar = useMemo(function () {
@@ -163,7 +160,7 @@ var StandardModal = function StandardModal(props) {
163
160
  };
164
161
  // fill Form when modal open 此处可解决获取 Form.useForm warning
165
162
  useEffect(function () {
166
- if (visible && modalFormRef) {
163
+ if (visible && modalForm) {
167
164
  // <---- check ref before use the form instance
168
165
  if (initialValues && _typeof(initialValues) === 'object') {
169
166
  initialValues && modalForm.setFieldsValue(_objectSpread({}, initialValues));
@@ -173,7 +170,7 @@ var StandardModal = function StandardModal(props) {
173
170
  // if (!visible && modalFormRef) {
174
171
  // clearAllFieldsValue() // 清空表单传参数
175
172
  // }
176
- }, [modalFormRef, visible]);
173
+ }, [modalForm, visible]);
177
174
  useEffect(function () {
178
175
  if (visible) {
179
176
  initBodyMaxHeight();
@@ -419,8 +416,12 @@ var StandardModal = function StandardModal(props) {
419
416
  // 内容渲染
420
417
  var renderChildrenNodes = function renderChildrenNodes() {
421
418
  return /*#__PURE__*/React.createElement(React.Fragment, null, children, (type === 'form' || type === 'gridForm') && /*#__PURE__*/React.createElement(Form, {
422
- layout: formLayout,
423
- ref: setModalFormRef,
419
+ layout: formLayout
420
+ // ref={(formInstance)=> {
421
+ // // console.log('formInstance', formInstance)
422
+ // // setModalFormRef(formInstance)
423
+ // }}
424
+ ,
424
425
  form: modalForm,
425
426
  onFinish: handleSubmit,
426
427
  hideRequiredMark: fieldStatus === 'viewOnly' || hideRequiredMark
@@ -55,7 +55,7 @@ var StandardTable = function StandardTable(props) {
55
55
  rest = _objectWithoutProperties(_providerConfig$props, _excluded);
56
56
  // 加上类型修复 TS:2322 报警
57
57
  var resetColumns = [_objectSpread(_objectSpread({
58
- width: 62,
58
+ width: 76,
59
59
  align: 'center',
60
60
  title: '序号',
61
61
  key: 'orderNum',
@@ -83,7 +83,7 @@ var StandardTable = function StandardTable(props) {
83
83
  otherColumn = columnsConfig.otherColumn;
84
84
  if (colItem.type === 'action') {
85
85
  var _colItem, _colItem2, _colItem3;
86
- colItem.width = ((_colItem = colItem) === null || _colItem === void 0 ? void 0 : _colItem.width) || (action === null || action === void 0 ? void 0 : action.width) || (colItem.buttonGroup.length > 1 ? 120 : 80);
86
+ colItem.width = ((_colItem = colItem) === null || _colItem === void 0 ? void 0 : _colItem.width) || (action === null || action === void 0 ? void 0 : action.width) || (colItem.buttonGroup.length > 1 ? 130 : 80);
87
87
  colItem.align = ((_colItem2 = colItem) === null || _colItem2 === void 0 ? void 0 : _colItem2.align) || (action === null || action === void 0 ? void 0 : action.align) || 'center';
88
88
  colItem.title = ((_colItem3 = colItem) === null || _colItem3 === void 0 ? void 0 : _colItem3.title) || (action === null || action === void 0 ? void 0 : action.title) || '操作';
89
89
  colItem.key = 'control';
@@ -167,7 +167,7 @@ var StandardTable = function StandardTable(props) {
167
167
  }, /*#__PURE__*/React.createElement(Table, _extends({
168
168
  rowKey: rowKey || 'id',
169
169
  rowSelection: rowSelection ? _objectSpread({
170
- columnWidth: 46
170
+ columnWidth: 56
171
171
  }, rowSelection) : rowSelection,
172
172
  dataSource: list,
173
173
  pagination: !pagination ? false : paginationProps,
@@ -6,7 +6,6 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
6
6
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
7
  import { createStyleHook } from "../../theme/utils/genStyleHook";
8
8
  import { scrollBar } from "../../theme/index";
9
- import { TinyColor } from "@ctrl/tinycolor";
10
9
  var StandardTableStyleFunc = function StandardTableStyleFunc(prefix) {
11
10
  var prepareComponentToken = function prepareComponentToken(token) {
12
11
  return {
@@ -17,11 +16,10 @@ var StandardTableStyleFunc = function StandardTableStyleFunc(prefix) {
17
16
  var prefixCls = ".".concat(prefix);
18
17
  var rowTd = {
19
18
  '> td': {
20
- borderColor: new TinyColor(token.colorPrimary).setAlpha(0.5).toRgbString(),
21
- // fade(@primary-color, 50%),
22
- '&::before': {
23
- borderTop: "1px solid ".concat(new TinyColor(token.colorPrimary).setAlpha(0.5).toRgbString())
24
- }
19
+ // borderColor: new TinyColor(token.colorPrimary).setAlpha(0.5).toRgbString(), // fade(@primary-color, 50%),
20
+ // '&::before': {
21
+ // borderTop: `1px solid ${new TinyColor(token.colorPrimary).setAlpha(0.5).toRgbString()}`,
22
+ // }
25
23
  }
26
24
  };
27
25
  return [_defineProperty(_defineProperty(_defineProperty({}, prefixCls, {
@@ -40,22 +38,22 @@ var StandardTableStyleFunc = function StandardTableStyleFunc(prefix) {
40
38
  // 固定右侧列的样式
41
39
  '.ant-table-fixed-left table.ant-table-fixed': {
42
40
  '.ant-table-thead > tr > th, .ant-table-tbody > tr > td': {
43
- paddingRight: token.paddingMD / 2,
41
+ paddingRight: token.paddingMD,
44
42
  '&:first-child': {
45
43
  paddingLeft: token.paddingMD,
46
- paddingRight: token.paddingMD / 2
44
+ paddingRight: token.paddingMD
47
45
  }
48
46
  }
49
47
  },
50
48
  // 固定右侧列的样式
51
49
  '.ant-table-fixed-right': {
52
50
  '.ant-table-thead > tr > th, .ant-table-tbody > tr > td': {
53
- paddingRight: token.paddingMD / 2,
51
+ paddingRight: token.paddingMD,
54
52
  '&:first-child': {
55
- paddingLeft: token.paddingMD / 2
53
+ paddingLeft: token.paddingMD
56
54
  },
57
55
  '&:nth-last-child(1)': {
58
- paddingLeft: token.paddingMD / 2,
56
+ paddingLeft: token.paddingMD,
59
57
  paddingRight: token.paddingMD
60
58
  }
61
59
  }
@@ -83,7 +81,7 @@ var StandardTableStyleFunc = function StandardTableStyleFunc(prefix) {
83
81
  fontSize: token.fontSizeLG
84
82
  },
85
83
  '.ant-table-thead > tr > th': {
86
- padding: "12px ".concat(token.paddingMD / 2, "px"),
84
+ padding: "12px ".concat(token.paddingMD, "px"),
87
85
  '&:first-child': {
88
86
  paddingLeft: token.paddingMD
89
87
  },
@@ -92,7 +90,7 @@ var StandardTableStyleFunc = function StandardTableStyleFunc(prefix) {
92
90
  }
93
91
  },
94
92
  '.ant-table-tbody > tr > td ': {
95
- padding: "12px ".concat(token.paddingMD / 2, "px"),
93
+ padding: "12px ".concat(token.paddingMD, "px"),
96
94
  '&:first-child': {
97
95
  paddingLeft: token.paddingMD
98
96
  },