@kmkf-fe-packages/basic-components 2.2.44-beta.86 → 2.2.44-beta.91

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.
package/dist/index.esm.js CHANGED
@@ -25876,6 +25876,34 @@ var index$2 = (function (props) {
25876
25876
  showHeader = _props$showHeader === void 0 ? [] : _props$showHeader;
25877
25877
  var onceRef = useRef(false);
25878
25878
  var valueRef = useRef(null);
25879
+ // 字段筛选状态 - 用户选择要筛选的字段(单选)
25880
+ var _useState = useState(''),
25881
+ _useState2 = _slicedToArray(_useState, 2),
25882
+ filterField = _useState2[0],
25883
+ setFilterField = _useState2[1];
25884
+ // 筛选关键词 - 输入框内容,用于模糊匹配选中字段列的值
25885
+ var _useState3 = useState(''),
25886
+ _useState4 = _slicedToArray(_useState3, 2),
25887
+ filterKeyword = _useState4[0],
25888
+ setFilterKeyword = _useState4[1];
25889
+ // 初始化筛选字段(跟随 showHeader 配置)
25890
+ useEffect(function () {
25891
+ var allColumns = columnsMap[type] || [];
25892
+ if (showHeader && showHeader.length > 0) {
25893
+ var _validItems$;
25894
+ // showHeader 是对象数组,提取第一个 dataIndex
25895
+ var validItems = showHeader.filter(function (item) {
25896
+ return item.show !== false;
25897
+ });
25898
+ var defaultField = ((_validItems$ = validItems[0]) === null || _validItems$ === void 0 ? void 0 : _validItems$.dataIndex) || '';
25899
+ setFilterField(defaultField);
25900
+ } else {
25901
+ var _allColumns$;
25902
+ // 如果 showHeader 为空,使用第一个列
25903
+ var firstField = ((_allColumns$ = allColumns[0]) === null || _allColumns$ === void 0 ? void 0 : _allColumns$.dataIndex) || '';
25904
+ setFilterField(firstField);
25905
+ }
25906
+ }, [type, showHeader]);
25879
25907
  useEffect(function () {
25880
25908
  var _value$orders, _value$showOrderInfo;
25881
25909
  valueRef.current = value;
@@ -25903,12 +25931,24 @@ var index$2 = (function (props) {
25903
25931
  }
25904
25932
  }, [value, type]);
25905
25933
  var columns = useMemo(function () {
25934
+ // 通过 getSystemShowHead 处理 showHeader 配置
25906
25935
  var baseInfoColumns = getSystemShowHead({
25907
25936
  columns: columnsMap[type] || [],
25908
25937
  showHeader: showHeader
25909
25938
  });
25910
25939
  return baseInfoColumns || [];
25911
25940
  }, [type, showHeader]);
25941
+ // 过滤后的表格数据 - 根据选中字段和关键词模糊匹配(不区分大小写)
25942
+ var filteredData = useMemo(function () {
25943
+ if (!filterField || !filterKeyword) {
25944
+ return (value === null || value === void 0 ? void 0 : value.orders) || [];
25945
+ }
25946
+ return ((value === null || value === void 0 ? void 0 : value.orders) || []).filter(function (item) {
25947
+ var fieldValue = item[filterField];
25948
+ if (fieldValue == null) return false;
25949
+ return String(fieldValue).toLowerCase().includes(filterKeyword.toLowerCase());
25950
+ });
25951
+ }, [value === null || value === void 0 ? void 0 : value.orders, filterField, filterKeyword]);
25912
25952
  var getOrderList = /*#__PURE__*/function () {
25913
25953
  var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(orderNo) {
25914
25954
  return _regeneratorRuntime().wrap(function _callee$(_context) {
@@ -26218,8 +26258,37 @@ var index$2 = (function (props) {
26218
26258
  // }, [JSON.stringify(value?.selectIds || [])]);
26219
26259
  return /*#__PURE__*/React.createElement("div", {
26220
26260
  className: "".concat(type, "_SYSTEM_ORDER_COMPONENT")
26221
- }, /*#__PURE__*/React.createElement(Table, {
26222
- dataSource: (value === null || value === void 0 ? void 0 : value.orders) || [],
26261
+ }, /*#__PURE__*/React.createElement(Space, {
26262
+ style: {
26263
+ marginBottom: 8
26264
+ }
26265
+ }, /*#__PURE__*/React.createElement(Select, {
26266
+ style: {
26267
+ width: 150
26268
+ },
26269
+ placeholder: "\u9009\u62E9\u5B57\u6BB5",
26270
+ value: filterField,
26271
+ onChange: function onChange(value) {
26272
+ return setFilterField(value);
26273
+ },
26274
+ allowClear: true
26275
+ }, (columnsMap[type] || []).map(function (col) {
26276
+ return /*#__PURE__*/React.createElement(Select.Option, {
26277
+ key: col.dataIndex,
26278
+ value: col.dataIndex
26279
+ }, col.title);
26280
+ })), /*#__PURE__*/React.createElement(Input, {
26281
+ placeholder: "\u8F93\u5165\u5173\u952E\u8BCD\u6A21\u7CCA\u5339\u914D",
26282
+ style: {
26283
+ width: 200
26284
+ },
26285
+ value: filterKeyword,
26286
+ onChange: function onChange(e) {
26287
+ return setFilterKeyword(e.target.value);
26288
+ },
26289
+ allowClear: true
26290
+ })), /*#__PURE__*/React.createElement(Table, {
26291
+ dataSource: filteredData,
26223
26292
  columns: columns,
26224
26293
  rowSelection: rowSelection,
26225
26294
  rowKey: rowKeyMap[type] || 'billNo',
package/dist/index.js CHANGED
@@ -25891,6 +25891,34 @@ var index$2 = (function (props) {
25891
25891
  showHeader = _props$showHeader === void 0 ? [] : _props$showHeader;
25892
25892
  var onceRef = React.useRef(false);
25893
25893
  var valueRef = React.useRef(null);
25894
+ // 字段筛选状态 - 用户选择要筛选的字段(单选)
25895
+ var _useState = React.useState(''),
25896
+ _useState2 = _slicedToArray(_useState, 2),
25897
+ filterField = _useState2[0],
25898
+ setFilterField = _useState2[1];
25899
+ // 筛选关键词 - 输入框内容,用于模糊匹配选中字段列的值
25900
+ var _useState3 = React.useState(''),
25901
+ _useState4 = _slicedToArray(_useState3, 2),
25902
+ filterKeyword = _useState4[0],
25903
+ setFilterKeyword = _useState4[1];
25904
+ // 初始化筛选字段(跟随 showHeader 配置)
25905
+ React.useEffect(function () {
25906
+ var allColumns = columnsMap[type] || [];
25907
+ if (showHeader && showHeader.length > 0) {
25908
+ var _validItems$;
25909
+ // showHeader 是对象数组,提取第一个 dataIndex
25910
+ var validItems = showHeader.filter(function (item) {
25911
+ return item.show !== false;
25912
+ });
25913
+ var defaultField = ((_validItems$ = validItems[0]) === null || _validItems$ === void 0 ? void 0 : _validItems$.dataIndex) || '';
25914
+ setFilterField(defaultField);
25915
+ } else {
25916
+ var _allColumns$;
25917
+ // 如果 showHeader 为空,使用第一个列
25918
+ var firstField = ((_allColumns$ = allColumns[0]) === null || _allColumns$ === void 0 ? void 0 : _allColumns$.dataIndex) || '';
25919
+ setFilterField(firstField);
25920
+ }
25921
+ }, [type, showHeader]);
25894
25922
  React.useEffect(function () {
25895
25923
  var _value$orders, _value$showOrderInfo;
25896
25924
  valueRef.current = value;
@@ -25918,12 +25946,24 @@ var index$2 = (function (props) {
25918
25946
  }
25919
25947
  }, [value, type]);
25920
25948
  var columns = React.useMemo(function () {
25949
+ // 通过 getSystemShowHead 处理 showHeader 配置
25921
25950
  var baseInfoColumns = kmkfUtils.getSystemShowHead({
25922
25951
  columns: columnsMap[type] || [],
25923
25952
  showHeader: showHeader
25924
25953
  });
25925
25954
  return baseInfoColumns || [];
25926
25955
  }, [type, showHeader]);
25956
+ // 过滤后的表格数据 - 根据选中字段和关键词模糊匹配(不区分大小写)
25957
+ var filteredData = React.useMemo(function () {
25958
+ if (!filterField || !filterKeyword) {
25959
+ return (value === null || value === void 0 ? void 0 : value.orders) || [];
25960
+ }
25961
+ return ((value === null || value === void 0 ? void 0 : value.orders) || []).filter(function (item) {
25962
+ var fieldValue = item[filterField];
25963
+ if (fieldValue == null) return false;
25964
+ return String(fieldValue).toLowerCase().includes(filterKeyword.toLowerCase());
25965
+ });
25966
+ }, [value === null || value === void 0 ? void 0 : value.orders, filterField, filterKeyword]);
25927
25967
  var getOrderList = /*#__PURE__*/function () {
25928
25968
  var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(orderNo) {
25929
25969
  return _regeneratorRuntime().wrap(function _callee$(_context) {
@@ -26233,8 +26273,37 @@ var index$2 = (function (props) {
26233
26273
  // }, [JSON.stringify(value?.selectIds || [])]);
26234
26274
  return /*#__PURE__*/React__default['default'].createElement("div", {
26235
26275
  className: "".concat(type, "_SYSTEM_ORDER_COMPONENT")
26236
- }, /*#__PURE__*/React__default['default'].createElement(antd.Table, {
26237
- dataSource: (value === null || value === void 0 ? void 0 : value.orders) || [],
26276
+ }, /*#__PURE__*/React__default['default'].createElement(antd.Space, {
26277
+ style: {
26278
+ marginBottom: 8
26279
+ }
26280
+ }, /*#__PURE__*/React__default['default'].createElement(antd.Select, {
26281
+ style: {
26282
+ width: 150
26283
+ },
26284
+ placeholder: "\u9009\u62E9\u5B57\u6BB5",
26285
+ value: filterField,
26286
+ onChange: function onChange(value) {
26287
+ return setFilterField(value);
26288
+ },
26289
+ allowClear: true
26290
+ }, (columnsMap[type] || []).map(function (col) {
26291
+ return /*#__PURE__*/React__default['default'].createElement(antd.Select.Option, {
26292
+ key: col.dataIndex,
26293
+ value: col.dataIndex
26294
+ }, col.title);
26295
+ })), /*#__PURE__*/React__default['default'].createElement(antd.Input, {
26296
+ placeholder: "\u8F93\u5165\u5173\u952E\u8BCD\u6A21\u7CCA\u5339\u914D",
26297
+ style: {
26298
+ width: 200
26299
+ },
26300
+ value: filterKeyword,
26301
+ onChange: function onChange(e) {
26302
+ return setFilterKeyword(e.target.value);
26303
+ },
26304
+ allowClear: true
26305
+ })), /*#__PURE__*/React__default['default'].createElement(antd.Table, {
26306
+ dataSource: filteredData,
26238
26307
  columns: columns,
26239
26308
  rowSelection: rowSelection,
26240
26309
  rowKey: rowKeyMap[type] || 'billNo',
@@ -10,7 +10,7 @@ interface BsSystemOrderProps {
10
10
  title: string;
11
11
  dataIndex: string;
12
12
  show?: boolean;
13
- }[] | string[];
13
+ }[];
14
14
  type: string;
15
15
  disabled: boolean;
16
16
  onChange: (val: any) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kmkf-fe-packages/basic-components",
3
- "version": "2.2.44-beta.86",
3
+ "version": "2.2.44-beta.91",
4
4
  "description": "> TODO: description",
5
5
  "homepage": "",
6
6
  "license": "ISC",
@@ -66,5 +66,5 @@
66
66
  "publishConfig": {
67
67
  "access": "public"
68
68
  },
69
- "gitHead": "49b31df457048bed04895312a87c206b9a7f4ee8"
69
+ "gitHead": "0245d9893044dec302f3cf00b020662eda3be96d"
70
70
  }