@kmkf-fe-packages/basic-components 2.3.19-beta.6 → 2.3.19-beta.8

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
@@ -3,7 +3,7 @@ import { Cascader, DatePicker, Image, InputNumber, Input, Select, Upload, messag
3
3
  import { EyeOutlined, DeleteOutlined, CloseOutlined, PlusSquareOutlined, MinusCircleFilled, PlusCircleFilled, CopyOutlined, CloseCircleOutlined, CaretUpOutlined, UpOutlined, DownOutlined, PlusOutlined, VideoCameraTwoTone } from '@ant-design/icons';
4
4
  import request, { extend as extend$1 } from 'umi-request';
5
5
  import { CopyToClipboard } from 'react-copy-to-clipboard';
6
- import { AddressData, BsAddressData, WdtAddressData, GyAddressData, JstAddressData, request as request$1, ExpressData, isNull, imgResize, uuid, servers, columnsGoodsList, LogisticsAddressData, SendDataCenter, kmSkuTypeMap, hasAddNullComponent, SUBMIT_TIME_ID, UPGRADE_TIME_ID, FINAL_TIME_ID, CUSTOM_TIME_ID, useStatus, finalFormData, transformList, dataSourceTrans, DATA_SPLIT_COMPONENT_FIELDS_MAP, findLabelBySelectValue, BS_E3_BOOLEAN_STATUS_MAP, filterWdtOrders, WDT_ORDER_TYPE_MAP, tradeStatusMap, filterBsE3Orders, filterGyOrders, GY_DELIVERY_STATE_MAPPING, filterJstOrders, filterJyOrders, JY_ORDER_TYPE_MAP, JY_ORDER_STATUS_MAP, filterJkyOrders, JKY_ORDER_FROM_MAP, JKY_ORDER_TYPE_MAP, JKY_ORDER_STATUS_MAP, getJkyLogisticInfo, filterKmOrders, getSystemShowHead, getIsPlatformCodesIncludeOrderNos, BS_SYSTEM_ORDER_CONFIG, KM_SYSTEM_ORDER_CONFIG, WLN_SYSTEM_ORDER_CONFIG, WDT_SYSTEM_ORDER_CONFIG, BS_E3_SYSTEM_ORDER_CONFIG, GY_SYSTEM_ORDER_CONFIG, JST_SYSTEM_ORDER_CONFIG, JY_SYSTEM_ORDER_CONFIG, JKY_SYSTEM_ORDER_CONFIG, WDT_RETURN_BILL_NO_CONFIG, updateOrderSubFormGoodsHandle, updateWlnGoodsHandle, updateWdtGoodsHandle, updateBsE3GoodsHandle, updateGyGoodsHandle, updateJstGoodsHandle, updateKmGoodsHandle, updateJyGoodsHandle, updateJkyGoodsHandle, updateWdtAftersaleGoodsHandle, jstMergeIdenticalGoods, msgTypeCh, pushGyLog, skxSystemOrderBackValues, skxReturnSystemOrderBackValues, formatTrade, updateSkxGoodsHandle, formatReturnTrade, updateSkxReturnGoodsHandle } from '@kmkf-fe-packages/kmkf-utils';
6
+ import { AddressData, BsAddressData, WdtAddressData, GyAddressData, JstAddressData, request as request$1, ExpressData, isNull, imgResize, uuid, servers, columnsGoodsList, LogisticsAddressData, SendDataCenter, kmSkuTypeMap, hasAddNullComponent, SUBMIT_TIME_ID, UPGRADE_TIME_ID, FINAL_TIME_ID, CUSTOM_TIME_ID, useStatus, finalFormData, transformList, dataSourceTrans, DATA_SPLIT_COMPONENT_FIELDS_MAP, findLabelBySelectValue, BS_E3_BOOLEAN_STATUS_MAP, filterWdtOrders, WDT_ORDER_TYPE_MAP, tradeStatusMap, filterBsE3Orders, filterGyOrders, GY_DELIVERY_STATE_MAPPING, filterJstOrders, filterJyOrders, JY_ORDER_TYPE_MAP, JY_ORDER_STATUS_MAP, filterJkyOrders, JKY_ORDER_FROM_MAP, JKY_ORDER_TYPE_MAP, JKY_ORDER_STATUS_MAP, getJkyLogisticInfo, filterKmOrders, getSystemShowHead, getIsPlatformCodesIncludeOrderNos, BS_SYSTEM_ORDER_CONFIG, KM_SYSTEM_ORDER_CONFIG, WLN_SYSTEM_ORDER_CONFIG, WDT_SYSTEM_ORDER_CONFIG, BS_E3_SYSTEM_ORDER_CONFIG, GY_SYSTEM_ORDER_CONFIG, JST_SYSTEM_ORDER_CONFIG, JY_SYSTEM_ORDER_CONFIG, JKY_SYSTEM_ORDER_CONFIG, WDT_RETURN_BILL_NO_CONFIG, BS_E3_ORDER_STATUS_MAP, KM_ORDER_TYPE_MAP, KM_ORDER_STATUS, updateOrderSubFormGoodsHandle, updateWlnGoodsHandle, updateWdtGoodsHandle, updateBsE3GoodsHandle, updateGyGoodsHandle, updateJstGoodsHandle, updateKmGoodsHandle, updateJyGoodsHandle, updateJkyGoodsHandle, updateWdtAftersaleGoodsHandle, jstMergeIdenticalGoods, msgTypeCh, pushGyLog, skxSystemOrderBackValues, skxReturnSystemOrderBackValues, formatTrade, updateSkxGoodsHandle, formatReturnTrade, updateSkxReturnGoodsHandle } from '@kmkf-fe-packages/kmkf-utils';
7
7
  import every from 'lodash/every';
8
8
  import maxBy from 'lodash/maxBy';
9
9
  import { debounce, isNaN as isNaN$1, isNumber as isNumber$1, uniqBy, cloneDeep, difference, differenceWith, isBoolean, isEqual, takeRight, reject as reject$1, intersection, isEmpty } from 'lodash';
@@ -16144,30 +16144,33 @@ var GoodList = function GoodList(props, ref) {
16144
16144
  selectedRowKeys: selectIds,
16145
16145
  fixed: true,
16146
16146
  onSelect: function onSelect(record, selected) {
16147
+ var uniqueKey = "".concat(record.goodNo, "-").concat(record.specNo);
16147
16148
  if (selected) {
16148
- setSelectIds([].concat(_toConsumableArray(selectIds), [record.specNo]));
16149
+ setSelectIds([].concat(_toConsumableArray(selectIds), [uniqueKey]));
16149
16150
  setSelect([].concat(_toConsumableArray(selectList), [record]));
16150
16151
  } else {
16151
16152
  setSelectIds(selectIds.filter(function (t) {
16152
- return t !== record.specNo;
16153
+ return t !== uniqueKey;
16153
16154
  }));
16154
16155
  setSelect(selectList.filter(function (t) {
16155
- return t.specNo !== record.specNo;
16156
+ return "".concat(t.goodNo, "-").concat(t.specNo) !== uniqueKey;
16156
16157
  }));
16157
16158
  }
16158
16159
  },
16159
16160
  onSelectAll: function onSelectAll(selected, selectedRows, changeRows) {
16160
16161
  if (selected) {
16161
- setSelectIds([].concat(_toConsumableArray(selectIds), _toConsumableArray(changeRows.map(function (t) {
16162
- return t.specNo;
16163
- }))));
16162
+ var changeKeys = changeRows.map(function (t) {
16163
+ return "".concat(t.goodNo, "-").concat(t.specNo);
16164
+ });
16165
+ setSelectIds([].concat(_toConsumableArray(selectIds), _toConsumableArray(changeKeys)));
16164
16166
  setSelect([].concat(_toConsumableArray(selectList), _toConsumableArray(changeRows)));
16165
16167
  } else {
16166
- setSelectIds(difference(selectIds, changeRows.map(function (t) {
16167
- return t.specNo;
16168
- })));
16168
+ var _changeKeys = changeRows.map(function (t) {
16169
+ return "".concat(t.goodNo, "-").concat(t.specNo);
16170
+ });
16171
+ setSelectIds(difference(selectIds, _changeKeys));
16169
16172
  var list = differenceWith(selectList, changeRows, function (arrVal, othVal) {
16170
- return arrVal.specNo !== othVal.specNo;
16173
+ return "".concat(arrVal.goodNo, "-").concat(arrVal.specNo) !== "".concat(othVal.goodNo, "-").concat(othVal.specNo);
16171
16174
  });
16172
16175
  setSelect(list);
16173
16176
  }
@@ -16175,11 +16178,12 @@ var GoodList = function GoodList(props, ref) {
16175
16178
  };
16176
16179
  var showTable = function showTable() {
16177
16180
  var handleDelete = function handleDelete(record) {
16181
+ var uniqueKey = "".concat(record.goodNo, "-").concat(record.specNo);
16178
16182
  setSelectIds(selectIds.filter(function (t) {
16179
- return t !== record.specNo;
16183
+ return t !== uniqueKey;
16180
16184
  }));
16181
16185
  setSelect(selectList.filter(function (t) {
16182
- return t.specNo !== record.specNo;
16186
+ return "".concat(t.goodNo, "-").concat(t.specNo) !== uniqueKey;
16183
16187
  }));
16184
16188
  };
16185
16189
  var showColumns = [{
@@ -16203,7 +16207,9 @@ var GoodList = function GoodList(props, ref) {
16203
16207
  }
16204
16208
  }, /*#__PURE__*/React.createElement(Table, {
16205
16209
  columns: showColumns,
16206
- rowKey: 'specNo',
16210
+ rowKey: function rowKey(record) {
16211
+ return "".concat(record.goodNo, "-").concat(record.specNo);
16212
+ },
16207
16213
  dataSource: selectList,
16208
16214
  scroll: {
16209
16215
  x: '100%',
@@ -16233,7 +16239,9 @@ var GoodList = function GoodList(props, ref) {
16233
16239
  }, /*#__PURE__*/React.createElement(Table, _objectSpread2(_objectSpread2({
16234
16240
  className: "GoodModalColumns",
16235
16241
  rowSelection: rowSelection,
16236
- rowKey: "specNo",
16242
+ rowKey: function rowKey(record) {
16243
+ return "".concat(record.goodNo, "-").concat(record.specNo);
16244
+ },
16237
16245
  columns: columns,
16238
16246
  scroll: {
16239
16247
  x: '100%',
@@ -25886,6 +25894,34 @@ var index$2 = (function (props) {
25886
25894
  showHeader = _props$showHeader === void 0 ? [] : _props$showHeader;
25887
25895
  var onceRef = useRef(false);
25888
25896
  var valueRef = useRef(null);
25897
+ // 字段筛选状态 - 用户选择要筛选的字段(单选)
25898
+ var _useState = useState(''),
25899
+ _useState2 = _slicedToArray(_useState, 2),
25900
+ filterField = _useState2[0],
25901
+ setFilterField = _useState2[1];
25902
+ // 筛选关键词 - 输入框内容,用于模糊匹配选中字段列的值
25903
+ var _useState3 = useState(''),
25904
+ _useState4 = _slicedToArray(_useState3, 2),
25905
+ filterKeyword = _useState4[0],
25906
+ setFilterKeyword = _useState4[1];
25907
+ // 初始化筛选字段(仅在 type 变化时初始化)
25908
+ useEffect(function () {
25909
+ var allColumns = columnsMap[type] || [];
25910
+ if (showHeader && showHeader.length > 0) {
25911
+ var _validItems$;
25912
+ // showHeader 是对象数组,提取第一个 dataIndex
25913
+ var validItems = showHeader.filter(function (item) {
25914
+ return item.show !== false;
25915
+ });
25916
+ var defaultField = ((_validItems$ = validItems[0]) === null || _validItems$ === void 0 ? void 0 : _validItems$.dataIndex) || '';
25917
+ setFilterField(defaultField);
25918
+ } else {
25919
+ var _allColumns$;
25920
+ // 如果 showHeader 为空,使用第一个列
25921
+ var firstField = ((_allColumns$ = allColumns[0]) === null || _allColumns$ === void 0 ? void 0 : _allColumns$.dataIndex) || '';
25922
+ setFilterField(firstField);
25923
+ }
25924
+ }, [type]);
25889
25925
  useEffect(function () {
25890
25926
  var _value$orders, _value$showOrderInfo;
25891
25927
  valueRef.current = value;
@@ -25913,12 +25949,100 @@ var index$2 = (function (props) {
25913
25949
  }
25914
25950
  }, [value, type]);
25915
25951
  var columns = useMemo(function () {
25952
+ // 通过 getSystemShowHead 处理 showHeader 配置
25916
25953
  var baseInfoColumns = getSystemShowHead({
25917
25954
  columns: columnsMap[type] || [],
25918
25955
  showHeader: showHeader
25919
25956
  });
25920
25957
  return baseInfoColumns || [];
25921
25958
  }, [type, showHeader]);
25959
+ // 构建字段渲染值映射表(原始值 -> 显示值),用于筛选时同时匹配原始值和显示值
25960
+ var fieldRenderMap = useMemo(function () {
25961
+ var map = {};
25962
+ // JKY_SYSTEM_ORDER 需要处理的字段
25963
+ if (type === 'JKY_SYSTEM_ORDER') {
25964
+ // isDelete: 1 -> "是", 0 -> "否"
25965
+ map['isDelete'] = {
25966
+ '1': '是',
25967
+ '0': '否'
25968
+ };
25969
+ // tradeFrom - 订单来源映射
25970
+ map['tradeFrom'] = _objectSpread2({}, JKY_ORDER_FROM_MAP);
25971
+ // tradeType - 订单类型映射
25972
+ map['tradeType'] = _objectSpread2({}, JKY_ORDER_TYPE_MAP);
25973
+ // tradeStatus - 销售单状态映射
25974
+ map['tradeStatus'] = _objectSpread2({}, JKY_ORDER_STATUS_MAP);
25975
+ }
25976
+ // BS_E3_SYSTEM_ORDER 需要处理的字段
25977
+ if (type === 'BS_E3_SYSTEM_ORDER') {
25978
+ // orderStatus - 订单状态映射
25979
+ map['orderStatus'] = _objectSpread2({}, BS_E3_ORDER_STATUS_MAP);
25980
+ // 布尔类型字段映射
25981
+ var booleanMap = _objectSpread2({}, BS_E3_BOOLEAN_STATUS_MAP);
25982
+ ['isSplit', 'isSplitNew', 'isCombine', 'isCombineNew', 'isCopy', 'isExchangeOrder'].forEach(function (field) {
25983
+ map[field] = booleanMap;
25984
+ });
25985
+ }
25986
+ // KM_SYSTEM_ORDER 需要处理的字段
25987
+ if (type === 'KM_SYSTEM_ORDER') {
25988
+ // billType - 订单类型映射(0: "普通订单", 1: "货到付款", ...)
25989
+ map['billType'] = _objectSpread2({}, KM_ORDER_TYPE_MAP);
25990
+ // sysStatus - 订单系统状态映射
25991
+ map['sysStatus'] = _objectSpread2({}, KM_ORDER_STATUS);
25992
+ }
25993
+ // JY_SYSTEM_ORDER 需要处理的字段
25994
+ if (type === 'JY_SYSTEM_ORDER') {
25995
+ // tradeType - 订单类型映射
25996
+ map['tradeType'] = _objectSpread2({}, JY_ORDER_TYPE_MAP);
25997
+ // tradeStatus - 订单状态映射
25998
+ map['tradeStatus'] = _objectSpread2({}, JY_ORDER_STATUS_MAP);
25999
+ }
26000
+ // GY_SYSTEM_ORDER 需要处理的字段
26001
+ if (type === 'GY_SYSTEM_ORDER') {
26002
+ // deliveryStateName - 发货状态映射 (0: "未发货", 2: "全部发货")
26003
+ map['deliveryStateName'] = _objectSpread2({}, GY_DELIVERY_STATE_MAPPING);
26004
+ }
26005
+ return map;
26006
+ }, [type]);
26007
+ // 过滤后的表格数据 - 根据选中字段和关键词模糊匹配(不区分大小写)
26008
+ var filteredData = useMemo(function () {
26009
+ if (!filterField || !filterKeyword) {
26010
+ return (value === null || value === void 0 ? void 0 : value.orders) || [];
26011
+ }
26012
+ var keywordLower = filterKeyword.toLowerCase();
26013
+ var renderMap = fieldRenderMap[filterField];
26014
+ return ((value === null || value === void 0 ? void 0 : value.orders) || []).filter(function (item) {
26015
+ var fieldValue = item[filterField];
26016
+ if (fieldValue == null) return false;
26017
+ var fieldValueStr = String(fieldValue);
26018
+ var fieldValueLower = fieldValueStr.toLowerCase();
26019
+ // 直接匹配原始值
26020
+ if (fieldValueLower.includes(keywordLower)) return true;
26021
+ // 匹配渲染后的值
26022
+ if (renderMap) {
26023
+ // KM_SYSTEM_ORDER 的 billType 是逗号分隔的多个类型(如 "2,3,0")
26024
+ var isKmBillType = filterField === 'billType' && fieldValueStr.includes(',');
26025
+ if (isKmBillType) {
26026
+ // 拆分为单个类型代码,分别映射后拼接
26027
+ var typeCodes = fieldValueStr.split(',');
26028
+ var displayValues = typeCodes.map(function (code) {
26029
+ return renderMap[code.trim()];
26030
+ }).filter(Boolean);
26031
+ var displayValueStr = displayValues.join(',');
26032
+ if (displayValueStr.toLowerCase().includes(keywordLower)) {
26033
+ return true;
26034
+ }
26035
+ } else {
26036
+ // 单个值的字段
26037
+ var displayValue = renderMap[fieldValueStr];
26038
+ if (displayValue && displayValue.toLowerCase().includes(keywordLower)) {
26039
+ return true;
26040
+ }
26041
+ }
26042
+ }
26043
+ return false;
26044
+ });
26045
+ }, [value === null || value === void 0 ? void 0 : value.orders, filterField, filterKeyword, fieldRenderMap]);
25922
26046
  var getOrderList = /*#__PURE__*/function () {
25923
26047
  var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(orderNo) {
25924
26048
  return _regeneratorRuntime().wrap(function _callee$(_context) {
@@ -26211,25 +26335,39 @@ var index$2 = (function (props) {
26211
26335
  };
26212
26336
  }
26213
26337
  };
26214
- // useEffect(() => {
26215
- // const dom = document.querySelector(
26216
- // `.${type}_SYSTEM_ORDER_COMPONENT .ant-table-content`,
26217
- // );
26218
- // //解决列表出现横向滚动条时选择数据造成行内闪烁问题
26219
- // if (
26220
- // (value?.selectIds || []).length > 0 &&
26221
- // dom &&
26222
- // dom.scrollWidth > dom.clientWidth &&
26223
- // dom.scrollLeft === 0
26224
- // ) {
26225
- // console.log(dom.scrollWidth > dom.clientWidth, dom.scrollLeft === 0);
26226
- // dom.scrollLeft = 1;
26227
- // }
26228
- // }, [JSON.stringify(value?.selectIds || [])]);
26229
26338
  return /*#__PURE__*/React.createElement("div", {
26230
26339
  className: "".concat(type, "_SYSTEM_ORDER_COMPONENT")
26231
- }, /*#__PURE__*/React.createElement(Table, {
26232
- dataSource: (value === null || value === void 0 ? void 0 : value.orders) || [],
26340
+ }, /*#__PURE__*/React.createElement(Space, {
26341
+ style: {
26342
+ marginBottom: 8
26343
+ }
26344
+ }, /*#__PURE__*/React.createElement(Select, {
26345
+ style: {
26346
+ width: 150
26347
+ },
26348
+ placeholder: "\u9009\u62E9\u5B57\u6BB5",
26349
+ value: filterField,
26350
+ onChange: setFilterField,
26351
+ allowClear: true,
26352
+ showSearch: true,
26353
+ optionFilterProp: "children"
26354
+ }, (columnsMap[type] || []).map(function (col) {
26355
+ return /*#__PURE__*/React.createElement(Select.Option, {
26356
+ key: col.dataIndex,
26357
+ value: col.dataIndex
26358
+ }, col.title);
26359
+ })), /*#__PURE__*/React.createElement(Input, {
26360
+ placeholder: "\u8F93\u5165\u5173\u952E\u8BCD\u6A21\u7CCA\u5339\u914D",
26361
+ style: {
26362
+ width: 200
26363
+ },
26364
+ value: filterKeyword,
26365
+ onChange: function onChange(e) {
26366
+ return setFilterKeyword(e.target.value);
26367
+ },
26368
+ allowClear: true
26369
+ })), /*#__PURE__*/React.createElement(Table, {
26370
+ dataSource: filteredData,
26233
26371
  columns: columns,
26234
26372
  rowSelection: rowSelection,
26235
26373
  rowKey: rowKeyMap[type] || 'billNo',
package/dist/index.js CHANGED
@@ -16159,30 +16159,33 @@ var GoodList = function GoodList(props, ref) {
16159
16159
  selectedRowKeys: selectIds,
16160
16160
  fixed: true,
16161
16161
  onSelect: function onSelect(record, selected) {
16162
+ var uniqueKey = "".concat(record.goodNo, "-").concat(record.specNo);
16162
16163
  if (selected) {
16163
- setSelectIds([].concat(_toConsumableArray(selectIds), [record.specNo]));
16164
+ setSelectIds([].concat(_toConsumableArray(selectIds), [uniqueKey]));
16164
16165
  setSelect([].concat(_toConsumableArray(selectList), [record]));
16165
16166
  } else {
16166
16167
  setSelectIds(selectIds.filter(function (t) {
16167
- return t !== record.specNo;
16168
+ return t !== uniqueKey;
16168
16169
  }));
16169
16170
  setSelect(selectList.filter(function (t) {
16170
- return t.specNo !== record.specNo;
16171
+ return "".concat(t.goodNo, "-").concat(t.specNo) !== uniqueKey;
16171
16172
  }));
16172
16173
  }
16173
16174
  },
16174
16175
  onSelectAll: function onSelectAll(selected, selectedRows, changeRows) {
16175
16176
  if (selected) {
16176
- setSelectIds([].concat(_toConsumableArray(selectIds), _toConsumableArray(changeRows.map(function (t) {
16177
- return t.specNo;
16178
- }))));
16177
+ var changeKeys = changeRows.map(function (t) {
16178
+ return "".concat(t.goodNo, "-").concat(t.specNo);
16179
+ });
16180
+ setSelectIds([].concat(_toConsumableArray(selectIds), _toConsumableArray(changeKeys)));
16179
16181
  setSelect([].concat(_toConsumableArray(selectList), _toConsumableArray(changeRows)));
16180
16182
  } else {
16181
- setSelectIds(lodash.difference(selectIds, changeRows.map(function (t) {
16182
- return t.specNo;
16183
- })));
16183
+ var _changeKeys = changeRows.map(function (t) {
16184
+ return "".concat(t.goodNo, "-").concat(t.specNo);
16185
+ });
16186
+ setSelectIds(lodash.difference(selectIds, _changeKeys));
16184
16187
  var list = lodash.differenceWith(selectList, changeRows, function (arrVal, othVal) {
16185
- return arrVal.specNo !== othVal.specNo;
16188
+ return "".concat(arrVal.goodNo, "-").concat(arrVal.specNo) !== "".concat(othVal.goodNo, "-").concat(othVal.specNo);
16186
16189
  });
16187
16190
  setSelect(list);
16188
16191
  }
@@ -16190,11 +16193,12 @@ var GoodList = function GoodList(props, ref) {
16190
16193
  };
16191
16194
  var showTable = function showTable() {
16192
16195
  var handleDelete = function handleDelete(record) {
16196
+ var uniqueKey = "".concat(record.goodNo, "-").concat(record.specNo);
16193
16197
  setSelectIds(selectIds.filter(function (t) {
16194
- return t !== record.specNo;
16198
+ return t !== uniqueKey;
16195
16199
  }));
16196
16200
  setSelect(selectList.filter(function (t) {
16197
- return t.specNo !== record.specNo;
16201
+ return "".concat(t.goodNo, "-").concat(t.specNo) !== uniqueKey;
16198
16202
  }));
16199
16203
  };
16200
16204
  var showColumns = [{
@@ -16218,7 +16222,9 @@ var GoodList = function GoodList(props, ref) {
16218
16222
  }
16219
16223
  }, /*#__PURE__*/React__default['default'].createElement(antd.Table, {
16220
16224
  columns: showColumns,
16221
- rowKey: 'specNo',
16225
+ rowKey: function rowKey(record) {
16226
+ return "".concat(record.goodNo, "-").concat(record.specNo);
16227
+ },
16222
16228
  dataSource: selectList,
16223
16229
  scroll: {
16224
16230
  x: '100%',
@@ -16248,7 +16254,9 @@ var GoodList = function GoodList(props, ref) {
16248
16254
  }, /*#__PURE__*/React__default['default'].createElement(antd.Table, _objectSpread2(_objectSpread2({
16249
16255
  className: "GoodModalColumns",
16250
16256
  rowSelection: rowSelection,
16251
- rowKey: "specNo",
16257
+ rowKey: function rowKey(record) {
16258
+ return "".concat(record.goodNo, "-").concat(record.specNo);
16259
+ },
16252
16260
  columns: columns,
16253
16261
  scroll: {
16254
16262
  x: '100%',
@@ -25901,6 +25909,34 @@ var index$2 = (function (props) {
25901
25909
  showHeader = _props$showHeader === void 0 ? [] : _props$showHeader;
25902
25910
  var onceRef = React.useRef(false);
25903
25911
  var valueRef = React.useRef(null);
25912
+ // 字段筛选状态 - 用户选择要筛选的字段(单选)
25913
+ var _useState = React.useState(''),
25914
+ _useState2 = _slicedToArray(_useState, 2),
25915
+ filterField = _useState2[0],
25916
+ setFilterField = _useState2[1];
25917
+ // 筛选关键词 - 输入框内容,用于模糊匹配选中字段列的值
25918
+ var _useState3 = React.useState(''),
25919
+ _useState4 = _slicedToArray(_useState3, 2),
25920
+ filterKeyword = _useState4[0],
25921
+ setFilterKeyword = _useState4[1];
25922
+ // 初始化筛选字段(仅在 type 变化时初始化)
25923
+ React.useEffect(function () {
25924
+ var allColumns = columnsMap[type] || [];
25925
+ if (showHeader && showHeader.length > 0) {
25926
+ var _validItems$;
25927
+ // showHeader 是对象数组,提取第一个 dataIndex
25928
+ var validItems = showHeader.filter(function (item) {
25929
+ return item.show !== false;
25930
+ });
25931
+ var defaultField = ((_validItems$ = validItems[0]) === null || _validItems$ === void 0 ? void 0 : _validItems$.dataIndex) || '';
25932
+ setFilterField(defaultField);
25933
+ } else {
25934
+ var _allColumns$;
25935
+ // 如果 showHeader 为空,使用第一个列
25936
+ var firstField = ((_allColumns$ = allColumns[0]) === null || _allColumns$ === void 0 ? void 0 : _allColumns$.dataIndex) || '';
25937
+ setFilterField(firstField);
25938
+ }
25939
+ }, [type]);
25904
25940
  React.useEffect(function () {
25905
25941
  var _value$orders, _value$showOrderInfo;
25906
25942
  valueRef.current = value;
@@ -25928,12 +25964,100 @@ var index$2 = (function (props) {
25928
25964
  }
25929
25965
  }, [value, type]);
25930
25966
  var columns = React.useMemo(function () {
25967
+ // 通过 getSystemShowHead 处理 showHeader 配置
25931
25968
  var baseInfoColumns = kmkfUtils.getSystemShowHead({
25932
25969
  columns: columnsMap[type] || [],
25933
25970
  showHeader: showHeader
25934
25971
  });
25935
25972
  return baseInfoColumns || [];
25936
25973
  }, [type, showHeader]);
25974
+ // 构建字段渲染值映射表(原始值 -> 显示值),用于筛选时同时匹配原始值和显示值
25975
+ var fieldRenderMap = React.useMemo(function () {
25976
+ var map = {};
25977
+ // JKY_SYSTEM_ORDER 需要处理的字段
25978
+ if (type === 'JKY_SYSTEM_ORDER') {
25979
+ // isDelete: 1 -> "是", 0 -> "否"
25980
+ map['isDelete'] = {
25981
+ '1': '是',
25982
+ '0': '否'
25983
+ };
25984
+ // tradeFrom - 订单来源映射
25985
+ map['tradeFrom'] = _objectSpread2({}, kmkfUtils.JKY_ORDER_FROM_MAP);
25986
+ // tradeType - 订单类型映射
25987
+ map['tradeType'] = _objectSpread2({}, kmkfUtils.JKY_ORDER_TYPE_MAP);
25988
+ // tradeStatus - 销售单状态映射
25989
+ map['tradeStatus'] = _objectSpread2({}, kmkfUtils.JKY_ORDER_STATUS_MAP);
25990
+ }
25991
+ // BS_E3_SYSTEM_ORDER 需要处理的字段
25992
+ if (type === 'BS_E3_SYSTEM_ORDER') {
25993
+ // orderStatus - 订单状态映射
25994
+ map['orderStatus'] = _objectSpread2({}, kmkfUtils.BS_E3_ORDER_STATUS_MAP);
25995
+ // 布尔类型字段映射
25996
+ var booleanMap = _objectSpread2({}, kmkfUtils.BS_E3_BOOLEAN_STATUS_MAP);
25997
+ ['isSplit', 'isSplitNew', 'isCombine', 'isCombineNew', 'isCopy', 'isExchangeOrder'].forEach(function (field) {
25998
+ map[field] = booleanMap;
25999
+ });
26000
+ }
26001
+ // KM_SYSTEM_ORDER 需要处理的字段
26002
+ if (type === 'KM_SYSTEM_ORDER') {
26003
+ // billType - 订单类型映射(0: "普通订单", 1: "货到付款", ...)
26004
+ map['billType'] = _objectSpread2({}, kmkfUtils.KM_ORDER_TYPE_MAP);
26005
+ // sysStatus - 订单系统状态映射
26006
+ map['sysStatus'] = _objectSpread2({}, kmkfUtils.KM_ORDER_STATUS);
26007
+ }
26008
+ // JY_SYSTEM_ORDER 需要处理的字段
26009
+ if (type === 'JY_SYSTEM_ORDER') {
26010
+ // tradeType - 订单类型映射
26011
+ map['tradeType'] = _objectSpread2({}, kmkfUtils.JY_ORDER_TYPE_MAP);
26012
+ // tradeStatus - 订单状态映射
26013
+ map['tradeStatus'] = _objectSpread2({}, kmkfUtils.JY_ORDER_STATUS_MAP);
26014
+ }
26015
+ // GY_SYSTEM_ORDER 需要处理的字段
26016
+ if (type === 'GY_SYSTEM_ORDER') {
26017
+ // deliveryStateName - 发货状态映射 (0: "未发货", 2: "全部发货")
26018
+ map['deliveryStateName'] = _objectSpread2({}, kmkfUtils.GY_DELIVERY_STATE_MAPPING);
26019
+ }
26020
+ return map;
26021
+ }, [type]);
26022
+ // 过滤后的表格数据 - 根据选中字段和关键词模糊匹配(不区分大小写)
26023
+ var filteredData = React.useMemo(function () {
26024
+ if (!filterField || !filterKeyword) {
26025
+ return (value === null || value === void 0 ? void 0 : value.orders) || [];
26026
+ }
26027
+ var keywordLower = filterKeyword.toLowerCase();
26028
+ var renderMap = fieldRenderMap[filterField];
26029
+ return ((value === null || value === void 0 ? void 0 : value.orders) || []).filter(function (item) {
26030
+ var fieldValue = item[filterField];
26031
+ if (fieldValue == null) return false;
26032
+ var fieldValueStr = String(fieldValue);
26033
+ var fieldValueLower = fieldValueStr.toLowerCase();
26034
+ // 直接匹配原始值
26035
+ if (fieldValueLower.includes(keywordLower)) return true;
26036
+ // 匹配渲染后的值
26037
+ if (renderMap) {
26038
+ // KM_SYSTEM_ORDER 的 billType 是逗号分隔的多个类型(如 "2,3,0")
26039
+ var isKmBillType = filterField === 'billType' && fieldValueStr.includes(',');
26040
+ if (isKmBillType) {
26041
+ // 拆分为单个类型代码,分别映射后拼接
26042
+ var typeCodes = fieldValueStr.split(',');
26043
+ var displayValues = typeCodes.map(function (code) {
26044
+ return renderMap[code.trim()];
26045
+ }).filter(Boolean);
26046
+ var displayValueStr = displayValues.join(',');
26047
+ if (displayValueStr.toLowerCase().includes(keywordLower)) {
26048
+ return true;
26049
+ }
26050
+ } else {
26051
+ // 单个值的字段
26052
+ var displayValue = renderMap[fieldValueStr];
26053
+ if (displayValue && displayValue.toLowerCase().includes(keywordLower)) {
26054
+ return true;
26055
+ }
26056
+ }
26057
+ }
26058
+ return false;
26059
+ });
26060
+ }, [value === null || value === void 0 ? void 0 : value.orders, filterField, filterKeyword, fieldRenderMap]);
25937
26061
  var getOrderList = /*#__PURE__*/function () {
25938
26062
  var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(orderNo) {
25939
26063
  return _regeneratorRuntime().wrap(function _callee$(_context) {
@@ -26226,25 +26350,39 @@ var index$2 = (function (props) {
26226
26350
  };
26227
26351
  }
26228
26352
  };
26229
- // useEffect(() => {
26230
- // const dom = document.querySelector(
26231
- // `.${type}_SYSTEM_ORDER_COMPONENT .ant-table-content`,
26232
- // );
26233
- // //解决列表出现横向滚动条时选择数据造成行内闪烁问题
26234
- // if (
26235
- // (value?.selectIds || []).length > 0 &&
26236
- // dom &&
26237
- // dom.scrollWidth > dom.clientWidth &&
26238
- // dom.scrollLeft === 0
26239
- // ) {
26240
- // console.log(dom.scrollWidth > dom.clientWidth, dom.scrollLeft === 0);
26241
- // dom.scrollLeft = 1;
26242
- // }
26243
- // }, [JSON.stringify(value?.selectIds || [])]);
26244
26353
  return /*#__PURE__*/React__default['default'].createElement("div", {
26245
26354
  className: "".concat(type, "_SYSTEM_ORDER_COMPONENT")
26246
- }, /*#__PURE__*/React__default['default'].createElement(antd.Table, {
26247
- dataSource: (value === null || value === void 0 ? void 0 : value.orders) || [],
26355
+ }, /*#__PURE__*/React__default['default'].createElement(antd.Space, {
26356
+ style: {
26357
+ marginBottom: 8
26358
+ }
26359
+ }, /*#__PURE__*/React__default['default'].createElement(antd.Select, {
26360
+ style: {
26361
+ width: 150
26362
+ },
26363
+ placeholder: "\u9009\u62E9\u5B57\u6BB5",
26364
+ value: filterField,
26365
+ onChange: setFilterField,
26366
+ allowClear: true,
26367
+ showSearch: true,
26368
+ optionFilterProp: "children"
26369
+ }, (columnsMap[type] || []).map(function (col) {
26370
+ return /*#__PURE__*/React__default['default'].createElement(antd.Select.Option, {
26371
+ key: col.dataIndex,
26372
+ value: col.dataIndex
26373
+ }, col.title);
26374
+ })), /*#__PURE__*/React__default['default'].createElement(antd.Input, {
26375
+ placeholder: "\u8F93\u5165\u5173\u952E\u8BCD\u6A21\u7CCA\u5339\u914D",
26376
+ style: {
26377
+ width: 200
26378
+ },
26379
+ value: filterKeyword,
26380
+ onChange: function onChange(e) {
26381
+ return setFilterKeyword(e.target.value);
26382
+ },
26383
+ allowClear: true
26384
+ })), /*#__PURE__*/React__default['default'].createElement(antd.Table, {
26385
+ dataSource: filteredData,
26248
26386
  columns: columns,
26249
26387
  rowSelection: rowSelection,
26250
26388
  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.3.19-beta.6",
3
+ "version": "2.3.19-beta.8",
4
4
  "description": "> TODO: description",
5
5
  "homepage": "",
6
6
  "license": "ISC",
@@ -20,7 +20,7 @@
20
20
  "watch": "nodemon --ignore dist/ --ignore node_modules/ --watch src/ -C -e ts,tsx,less --debug -x 'yarn async'"
21
21
  },
22
22
  "dependencies": {
23
- "@kmkf-fe-packages/kmkf-utils": "2.3.19-beta.6",
23
+ "@kmkf-fe-packages/kmkf-utils": "2.3.19-beta.8",
24
24
  "ahooks": "^3.7.4",
25
25
  "ali-react-table": "2.6.1",
26
26
  "bignumber.js": "^9.1.2",
@@ -66,5 +66,5 @@
66
66
  "publishConfig": {
67
67
  "access": "public"
68
68
  },
69
- "gitHead": "e6813f36b0158d521ee77c43a25566fcee54a287"
69
+ "gitHead": "e64e81ee97f6b60aba0cbf5eb21caa3901804e9e"
70
70
  }