@bit-sun/business-component 2.3.13 → 2.3.15

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
@@ -2597,7 +2597,9 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
2597
2597
  _ref$init = _ref.init,
2598
2598
  init = _ref$init === void 0 ? true : _ref$init,
2599
2599
  _ref$extralHeaders = _ref.extralHeaders,
2600
- extralHeaders = _ref$extralHeaders === void 0 ? {} : _ref$extralHeaders;
2600
+ extralHeaders = _ref$extralHeaders === void 0 ? {} : _ref$extralHeaders,
2601
+ _ref$specialBracket = _ref.specialBracket,
2602
+ specialBracket = _ref$specialBracket === void 0 ? false : _ref$specialBracket;
2601
2603
  var resultSourceKey = handleSourceName(sourceName || (requestConfig === null || requestConfig === void 0 ? void 0 : requestConfig.sourceName) || 'supplierCode');
2602
2604
  var selectMode = selectProps === null || selectProps === void 0 ? void 0 : selectProps.mode; // 设定当前选择器 为单选或者多选模式 无设定为单选模式(默认)
2603
2605
  var initVal = value || (selectMode ? [] : null);
@@ -2699,8 +2701,8 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
2699
2701
  setSelectedRowKeys = _useState24[1];
2700
2702
  var _useState25 = useState([]),
2701
2703
  _useState26 = _slicedToArray(_useState25, 2),
2702
- doubleArr = _useState26[0],
2703
- setDoubleArr = _useState26[1]; // 存放双数组的数组
2704
+ selectedRows = _useState26[0],
2705
+ setSelectedRows = _useState26[1];
2704
2706
  var _useState27 = useState(false),
2705
2707
  _useState28 = _slicedToArray(_useState27, 2),
2706
2708
  checkedAll = _useState28[0],
@@ -2756,6 +2758,7 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
2756
2758
  var getData = function getData() {
2757
2759
  var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2758
2760
  var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
2761
+ var callback = arguments.length > 2 ? arguments[2] : undefined;
2759
2762
  if (!requestConfig) return;
2760
2763
  setFetching(true);
2761
2764
  // 处理dependence参数
@@ -2905,7 +2908,7 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
2905
2908
  }
2906
2909
  }
2907
2910
  return _objectSpread2(_objectSpread2({}, item), {}, {
2908
- text: item[mappingTextField],
2911
+ text: specialBracket ? "\u3010".concat(item[mappingValueField], "\u3011").concat(item[mappingTextField]) : item[mappingTextField],
2909
2912
  textShowText: textShowText,
2910
2913
  textShowKey: item[mappingTextShowKeyField || mappingValueField],
2911
2914
  value: item[mappingValueField]
@@ -2923,7 +2926,7 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
2923
2926
  }
2924
2927
  }
2925
2928
  return _objectSpread2(_objectSpread2({}, item), {}, {
2926
- text: item[mappingTextField],
2929
+ text: specialBracket ? "\u3010".concat(item[mappingValueField], "\u3011").concat(item[mappingTextField]) : item[mappingTextField],
2927
2930
  textShowText: textShowText,
2928
2931
  textShowKey: item[mappingTextShowKeyField || mappingValueField],
2929
2932
  value: item[mappingValueField]
@@ -2931,18 +2934,22 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
2931
2934
  })) : [];
2932
2935
  }
2933
2936
  source = Array.isArray(source) ? source : [];
2934
- if (type === 1) {
2935
- var _ctx$form;
2936
- ctx === null || ctx === void 0 ? void 0 : (_ctx$form = ctx.form) === null || _ctx$form === void 0 ? void 0 : _ctx$form.setFieldSource(resultSourceKey, source);
2937
- setItems(source);
2938
- setItemsTotal(Number((res === null || res === void 0 ? void 0 : res.total) || (res === null || res === void 0 ? void 0 : res.totalCount) || source.length));
2937
+ if (callback) {
2938
+ callback(source);
2939
2939
  } else {
2940
- setTableData(source);
2941
- setTablePagination(_objectSpread2(_objectSpread2({}, tablePagination), {}, {
2942
- total: Number((res === null || res === void 0 ? void 0 : res.total) || (res === null || res === void 0 ? void 0 : res.totalCount) || source.length),
2943
- pageSize: Number((res === null || res === void 0 ? void 0 : res.size) || (res === null || res === void 0 ? void 0 : res.pageSize) || (params === null || params === void 0 ? void 0 : params.pageSize) || pageSize),
2944
- current: Number((res === null || res === void 0 ? void 0 : res.page) || (res === null || res === void 0 ? void 0 : res.currentPage) || (params === null || params === void 0 ? void 0 : params.currentPage) || currentPage)
2945
- }));
2940
+ if (type === 1) {
2941
+ var _ctx$form;
2942
+ ctx === null || ctx === void 0 ? void 0 : (_ctx$form = ctx.form) === null || _ctx$form === void 0 ? void 0 : _ctx$form.setFieldSource(resultSourceKey, source);
2943
+ setItems(source);
2944
+ setItemsTotal(Number((res === null || res === void 0 ? void 0 : res.total) || (res === null || res === void 0 ? void 0 : res.totalCount) || source.length));
2945
+ } else {
2946
+ setTableData(source);
2947
+ setTablePagination(_objectSpread2(_objectSpread2({}, tablePagination), {}, {
2948
+ total: Number((res === null || res === void 0 ? void 0 : res.total) || (res === null || res === void 0 ? void 0 : res.totalCount) || source.length),
2949
+ pageSize: Number((res === null || res === void 0 ? void 0 : res.size) || (res === null || res === void 0 ? void 0 : res.pageSize) || (params === null || params === void 0 ? void 0 : params.pageSize) || pageSize),
2950
+ current: Number((res === null || res === void 0 ? void 0 : res.page) || (res === null || res === void 0 ? void 0 : res.currentPage) || (params === null || params === void 0 ? void 0 : params.currentPage) || currentPage)
2951
+ }));
2952
+ }
2946
2953
  }
2947
2954
  }).catch(function (err) {
2948
2955
  setFetching(false);
@@ -3001,6 +3008,13 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
3001
3008
  setSelectedRowKeys(labelInValue ? value.map(function (i) {
3002
3009
  return i.key;
3003
3010
  }) : value);
3011
+ setSelectedRows(labelInValue ? value.map(function (i) {
3012
+ var _ref4;
3013
+ return _ref4 = {}, _defineProperty(_ref4, mappingValueField, i.key), _defineProperty(_ref4, "value", i.key), _defineProperty(_ref4, "text", i.label), _ref4;
3014
+ }) : value.map(function (i) {
3015
+ var _ref5;
3016
+ return _ref5 = {}, _defineProperty(_ref5, mappingValueField, i), _defineProperty(_ref5, "value", i), _ref5;
3017
+ }));
3004
3018
  setPopValue(labelInValue ? value.map(function (i) {
3005
3019
  return {
3006
3020
  value: i.key,
@@ -3013,12 +3027,10 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
3013
3027
  }));
3014
3028
  setIndeterminate(!!value.length && value.length < itemsTotal);
3015
3029
  setCheckedAll(itemsTotal && value.length === itemsTotal);
3016
- // 需清空数据
3017
- if (!value.length) {
3018
- setDoubleArr([]);
3019
- }
3020
3030
  } else {
3031
+ var _ref6, _ref7;
3021
3032
  setSelectedRowKeys(labelInValue ? [value.key] : [value]);
3033
+ setSelectedRows(labelInValue ? [(_ref6 = {}, _defineProperty(_ref6, mappingValueField, value.key), _defineProperty(_ref6, "value", value.key), _defineProperty(_ref6, "text", value.label), _ref6)] : [(_ref7 = {}, _defineProperty(_ref7, mappingValueField, value), _defineProperty(_ref7, "value", value), _ref7)]);
3022
3034
  setPopValue(labelInValue ? [{
3023
3035
  value: value.key,
3024
3036
  text: value.label
@@ -3068,7 +3080,7 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
3068
3080
  setTableData([]);
3069
3081
  setTablePagination(tableInitPagination);
3070
3082
  setSelectedRowKeys([]);
3071
- setDoubleArr([]);
3083
+ setSelectedRows([]);
3072
3084
  setCheckedAll(false);
3073
3085
  setIndeterminate(false);
3074
3086
  };
@@ -3131,25 +3143,39 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
3131
3143
  currentPage: pagination.current
3132
3144
  }), 2);
3133
3145
  };
3146
+ var onCheckAllData = function onCheckAllData(pSize) {
3147
+ getData(_objectSpread2(_objectSpread2({}, tableFormParams), {}, {
3148
+ pageSize: pSize,
3149
+ currentPage: 1
3150
+ }), 2, function (source) {
3151
+ var currentItemsData = JSON.parse(JSON.stringify(source));
3152
+ setSelectedRowKeys(currentItemsData.map(function (i) {
3153
+ return i.value;
3154
+ }));
3155
+ setPopValue(currentItemsData);
3156
+ setSelectedRows(currentItemsData);
3157
+ });
3158
+ };
3134
3159
  var onChangeCheckAll = function onChangeCheckAll(e) {
3135
3160
  if (e.target.checked) {
3136
3161
  // 如果下拉框有所有数据就处理选中所有【items.length === itemsTotal】(最多可选100条)
3137
3162
  // 如果超过100条 就默认查出所有数据
3138
- var currentItemsData = JSON.parse(JSON.stringify(items));
3139
- var totalPage = Math.ceil(itemsTotal / (tablePagination === null || tablePagination === void 0 ? void 0 : tablePagination.pageSize));
3140
- for (var i = 0; i <= totalPage - 1; i++) {
3141
- doubleArr[i] = currentItemsData.slice((tablePagination === null || tablePagination === void 0 ? void 0 : tablePagination.pageSize) * i, (tablePagination === null || tablePagination === void 0 ? void 0 : tablePagination.pageSize) * (i + 1));
3163
+ if (items.length < itemsTotal) {
3164
+ var totalPage = Math.ceil(itemsTotal / (tablePagination === null || tablePagination === void 0 ? void 0 : tablePagination.pageSize));
3165
+ var allPageSize = totalPage * (tablePagination === null || tablePagination === void 0 ? void 0 : tablePagination.pageSize);
3166
+ onCheckAllData(allPageSize);
3167
+ } else {
3168
+ var currentItemsData = JSON.parse(JSON.stringify(items));
3169
+ setSelectedRowKeys(currentItemsData.map(function (i) {
3170
+ return i.value;
3171
+ }));
3172
+ setPopValue(currentItemsData);
3173
+ setSelectedRows(currentItemsData);
3142
3174
  }
3143
- setDoubleArr(doubleArr);
3144
- setSelectedRowKeys(currentItemsData.map(function (i) {
3145
- return i.value;
3146
- }));
3147
- setPopValue(currentItemsData);
3148
- if (items.length < itemsTotal) ;
3149
3175
  } else {
3150
3176
  setSelectedRowKeys([]);
3151
3177
  setPopValue([]);
3152
- setDoubleArr([]);
3178
+ setSelectedRows([]);
3153
3179
  }
3154
3180
  setIndeterminate(false);
3155
3181
  setCheckedAll(e.target.checked);
@@ -3157,13 +3183,13 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
3157
3183
  var LightHeightOption = function LightHeightOption(props) {
3158
3184
  var filterTxt = props.filterTxt,
3159
3185
  text = props.text;
3160
- var heightLightTxt = function heightLightTxt(txt, heightTxt) {
3186
+ var heightLightTxt = function heightLightTxt(text, heightTxt) {
3161
3187
  if (heightTxt === '') {
3162
- return txt;
3188
+ return text;
3163
3189
  }
3164
3190
  // 前面filterOption 不区分大小写,这里用i
3165
3191
  var regexp = new RegExp(heightTxt, 'gi');
3166
- return txt.replace(regexp, "<span style=\"color:red\">".concat(heightTxt, "</span>"));
3192
+ return text.replace(regexp, "<span style=\"color:red\">".concat(heightTxt, "</span>"));
3167
3193
  };
3168
3194
  return /*#__PURE__*/React.createElement(Tooltip, {
3169
3195
  title: text
@@ -3175,54 +3201,21 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
3175
3201
  }
3176
3202
  }));
3177
3203
  };
3178
- // 扁平化二维数组的方法
3179
- var mapRows = function mapRows(params) {
3180
- var res = [];
3181
- for (var i = 0; i < params.length; i++) {
3182
- if (Array.isArray(params[i])) {
3183
- // 去重
3184
- res = _.uniqBy(res.concat(mapRows(params[i])), 'value');
3185
- } else {
3186
- res.push(params[i]);
3187
- // 去重
3188
- res = _.uniqBy(res, 'value');
3189
- }
3190
- }
3191
- return res.filter(Boolean); //去掉undefined的情况
3192
- };
3193
3204
 
3194
3205
  var onChangeSelectedKeys = function onChangeSelectedKeys(selectKeys, selectRows) {
3195
- var nowPage = tablePagination === null || tablePagination === void 0 ? void 0 : tablePagination.current;
3196
- var filterRows = []; // 存放拼接后的一维数组的变量
3197
- var sksResult = [];
3198
- if (selectMode) {
3199
- // 处理多选分页累计选中
3200
- // 勾选生成二维数组
3201
- doubleArr[nowPage ? nowPage - 1 : 0] = selectRows;
3202
- // console.log(doubleArr)
3203
- setDoubleArr(doubleArr);
3204
- // 这块扁平化成为一位数组
3205
- filterRows = mapRows(doubleArr);
3206
- // console.log(filterRows)
3207
- sksResult = filterRows.map(function (i) {
3208
- return i.value;
3209
- });
3210
- } else {
3211
- // 处理单选
3212
- filterRows = selectRows;
3213
- sksResult = selectRows.map(function (i) {
3214
- return i.value;
3215
- });
3216
- // 单选 默认直接选中 不需要确定 配置了modalRadioNeedFooter就需要确定
3217
- if (!(modalTableProps === null || modalTableProps === void 0 ? void 0 : modalTableProps.modalRadioNeedFooter)) {
3218
- handleSelectOver(filterRows);
3219
- handleCancel();
3220
- }
3206
+ var sksResult = selectRows.map(function (i) {
3207
+ return i.value;
3208
+ });
3209
+ // 单选 默认直接选中 不需要确定 配置了modalRadioNeedFooter就需要确定
3210
+ if (!selectMode && !(modalTableProps === null || modalTableProps === void 0 ? void 0 : modalTableProps.modalRadioNeedFooter)) {
3211
+ handleSelectOver(selectRows);
3212
+ handleCancel();
3221
3213
  }
3222
3214
  setSelectedRowKeys(sksResult);
3223
- setPopValue(filterRows);
3224
- setIndeterminate(!!filterRows.length && filterRows.length < (tablePagination === null || tablePagination === void 0 ? void 0 : tablePagination.total));
3225
- setCheckedAll(filterRows.length === (tablePagination === null || tablePagination === void 0 ? void 0 : tablePagination.total));
3215
+ setSelectedRows(selectRows);
3216
+ setPopValue(selectRows);
3217
+ setIndeterminate(!!selectRows.length && selectRows.length < (tablePagination === null || tablePagination === void 0 ? void 0 : tablePagination.total));
3218
+ setCheckedAll(selectRows.length === (tablePagination === null || tablePagination === void 0 ? void 0 : tablePagination.total));
3226
3219
  };
3227
3220
  // 生成唯一值
3228
3221
  var makeUniqueValue = function makeUniqueValue() {
@@ -3233,8 +3226,21 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
3233
3226
  var rowSelection = {
3234
3227
  type: selectMode ? 'checkbox' : 'radio',
3235
3228
  selectedRowKeys: selectedRowKeys,
3229
+ preserveSelectedRowKeys: true,
3236
3230
  onChange: function onChange(sks, srs) {
3237
- onChangeSelectedKeys(sks, srs);
3231
+ // 处理翻页后,之前存储的selectedRows变为undefined
3232
+ // selectedRows合并新数组,过滤undefined,过滤留下对应selectedRowKeys的集合
3233
+ var tmpSelectedRows = selectedRows.concat(srs).filter(function (item) {
3234
+ return item != undefined;
3235
+ });
3236
+ var totalSelectedRows = sks.map(function (key) {
3237
+ return tmpSelectedRows.filter(function (item) {
3238
+ return item[mappingValueField] == key;
3239
+ })[0];
3240
+ }).filter(function (item) {
3241
+ return item != undefined;
3242
+ });
3243
+ onChangeSelectedKeys(sks, totalSelectedRows);
3238
3244
  },
3239
3245
  getCheckboxProps: function getCheckboxProps() {
3240
3246
  return {
@@ -3369,6 +3375,10 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
3369
3375
  })
3370
3376
  }, "+ ".concat(selectedValues === null || selectedValues === void 0 ? void 0 : selectedValues.length));
3371
3377
  };
3378
+ var handleSelectOptionsShowValue = function handleSelectOptionsShowValue(specialBracket, item) {
3379
+ var showText = Array.isArray(item.textShowText) && item.textShowText.join(' ') || item.textShowText;
3380
+ return specialBracket ? "\u3010".concat(item.textShowKey, "\u3011").concat(showText) : "".concat(item.textShowKey, " ").concat(showText);
3381
+ };
3372
3382
  return /*#__PURE__*/React.createElement("div", {
3373
3383
  className: 'search_select'
3374
3384
  }, fieldComponent ? /*#__PURE__*/React.createElement("div", {
@@ -3438,7 +3448,7 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
3438
3448
  key: item.value,
3439
3449
  label: item.text
3440
3450
  }, LightHeightOption({
3441
- text: "".concat(item.textShowKey, " ").concat(Array.isArray(item.textShowText) && item.textShowText.join(' ') || item.textShowText),
3451
+ text: handleSelectOptionsShowValue(specialBracket, item),
3442
3452
  filterTxt: searchValue
3443
3453
  }));
3444
3454
  })), needModalTable && /*#__PURE__*/React.createElement(Button, {
package/dist/index.js CHANGED
@@ -2616,7 +2616,9 @@ var SearchSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {
2616
2616
  _ref$init = _ref.init,
2617
2617
  init = _ref$init === void 0 ? true : _ref$init,
2618
2618
  _ref$extralHeaders = _ref.extralHeaders,
2619
- extralHeaders = _ref$extralHeaders === void 0 ? {} : _ref$extralHeaders;
2619
+ extralHeaders = _ref$extralHeaders === void 0 ? {} : _ref$extralHeaders,
2620
+ _ref$specialBracket = _ref.specialBracket,
2621
+ specialBracket = _ref$specialBracket === void 0 ? false : _ref$specialBracket;
2620
2622
  var resultSourceKey = handleSourceName(sourceName || (requestConfig === null || requestConfig === void 0 ? void 0 : requestConfig.sourceName) || 'supplierCode');
2621
2623
  var selectMode = selectProps === null || selectProps === void 0 ? void 0 : selectProps.mode; // 设定当前选择器 为单选或者多选模式 无设定为单选模式(默认)
2622
2624
  var initVal = value || (selectMode ? [] : null);
@@ -2718,8 +2720,8 @@ var SearchSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {
2718
2720
  setSelectedRowKeys = _useState24[1];
2719
2721
  var _useState25 = React.useState([]),
2720
2722
  _useState26 = _slicedToArray(_useState25, 2),
2721
- doubleArr = _useState26[0],
2722
- setDoubleArr = _useState26[1]; // 存放双数组的数组
2723
+ selectedRows = _useState26[0],
2724
+ setSelectedRows = _useState26[1];
2723
2725
  var _useState27 = React.useState(false),
2724
2726
  _useState28 = _slicedToArray(_useState27, 2),
2725
2727
  checkedAll = _useState28[0],
@@ -2775,6 +2777,7 @@ var SearchSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {
2775
2777
  var getData = function getData() {
2776
2778
  var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2777
2779
  var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
2780
+ var callback = arguments.length > 2 ? arguments[2] : undefined;
2778
2781
  if (!requestConfig) return;
2779
2782
  setFetching(true);
2780
2783
  // 处理dependence参数
@@ -2924,7 +2927,7 @@ var SearchSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {
2924
2927
  }
2925
2928
  }
2926
2929
  return _objectSpread2(_objectSpread2({}, item), {}, {
2927
- text: item[mappingTextField],
2930
+ text: specialBracket ? "\u3010".concat(item[mappingValueField], "\u3011").concat(item[mappingTextField]) : item[mappingTextField],
2928
2931
  textShowText: textShowText,
2929
2932
  textShowKey: item[mappingTextShowKeyField || mappingValueField],
2930
2933
  value: item[mappingValueField]
@@ -2942,7 +2945,7 @@ var SearchSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {
2942
2945
  }
2943
2946
  }
2944
2947
  return _objectSpread2(_objectSpread2({}, item), {}, {
2945
- text: item[mappingTextField],
2948
+ text: specialBracket ? "\u3010".concat(item[mappingValueField], "\u3011").concat(item[mappingTextField]) : item[mappingTextField],
2946
2949
  textShowText: textShowText,
2947
2950
  textShowKey: item[mappingTextShowKeyField || mappingValueField],
2948
2951
  value: item[mappingValueField]
@@ -2950,18 +2953,22 @@ var SearchSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {
2950
2953
  })) : [];
2951
2954
  }
2952
2955
  source = Array.isArray(source) ? source : [];
2953
- if (type === 1) {
2954
- var _ctx$form;
2955
- ctx === null || ctx === void 0 ? void 0 : (_ctx$form = ctx.form) === null || _ctx$form === void 0 ? void 0 : _ctx$form.setFieldSource(resultSourceKey, source);
2956
- setItems(source);
2957
- setItemsTotal(Number((res === null || res === void 0 ? void 0 : res.total) || (res === null || res === void 0 ? void 0 : res.totalCount) || source.length));
2956
+ if (callback) {
2957
+ callback(source);
2958
2958
  } else {
2959
- setTableData(source);
2960
- setTablePagination(_objectSpread2(_objectSpread2({}, tablePagination), {}, {
2961
- total: Number((res === null || res === void 0 ? void 0 : res.total) || (res === null || res === void 0 ? void 0 : res.totalCount) || source.length),
2962
- pageSize: Number((res === null || res === void 0 ? void 0 : res.size) || (res === null || res === void 0 ? void 0 : res.pageSize) || (params === null || params === void 0 ? void 0 : params.pageSize) || pageSize),
2963
- current: Number((res === null || res === void 0 ? void 0 : res.page) || (res === null || res === void 0 ? void 0 : res.currentPage) || (params === null || params === void 0 ? void 0 : params.currentPage) || currentPage)
2964
- }));
2959
+ if (type === 1) {
2960
+ var _ctx$form;
2961
+ ctx === null || ctx === void 0 ? void 0 : (_ctx$form = ctx.form) === null || _ctx$form === void 0 ? void 0 : _ctx$form.setFieldSource(resultSourceKey, source);
2962
+ setItems(source);
2963
+ setItemsTotal(Number((res === null || res === void 0 ? void 0 : res.total) || (res === null || res === void 0 ? void 0 : res.totalCount) || source.length));
2964
+ } else {
2965
+ setTableData(source);
2966
+ setTablePagination(_objectSpread2(_objectSpread2({}, tablePagination), {}, {
2967
+ total: Number((res === null || res === void 0 ? void 0 : res.total) || (res === null || res === void 0 ? void 0 : res.totalCount) || source.length),
2968
+ pageSize: Number((res === null || res === void 0 ? void 0 : res.size) || (res === null || res === void 0 ? void 0 : res.pageSize) || (params === null || params === void 0 ? void 0 : params.pageSize) || pageSize),
2969
+ current: Number((res === null || res === void 0 ? void 0 : res.page) || (res === null || res === void 0 ? void 0 : res.currentPage) || (params === null || params === void 0 ? void 0 : params.currentPage) || currentPage)
2970
+ }));
2971
+ }
2965
2972
  }
2966
2973
  }).catch(function (err) {
2967
2974
  setFetching(false);
@@ -3020,6 +3027,13 @@ var SearchSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {
3020
3027
  setSelectedRowKeys(labelInValue ? value.map(function (i) {
3021
3028
  return i.key;
3022
3029
  }) : value);
3030
+ setSelectedRows(labelInValue ? value.map(function (i) {
3031
+ var _ref4;
3032
+ return _ref4 = {}, _defineProperty(_ref4, mappingValueField, i.key), _defineProperty(_ref4, "value", i.key), _defineProperty(_ref4, "text", i.label), _ref4;
3033
+ }) : value.map(function (i) {
3034
+ var _ref5;
3035
+ return _ref5 = {}, _defineProperty(_ref5, mappingValueField, i), _defineProperty(_ref5, "value", i), _ref5;
3036
+ }));
3023
3037
  setPopValue(labelInValue ? value.map(function (i) {
3024
3038
  return {
3025
3039
  value: i.key,
@@ -3032,12 +3046,10 @@ var SearchSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {
3032
3046
  }));
3033
3047
  setIndeterminate(!!value.length && value.length < itemsTotal);
3034
3048
  setCheckedAll(itemsTotal && value.length === itemsTotal);
3035
- // 需清空数据
3036
- if (!value.length) {
3037
- setDoubleArr([]);
3038
- }
3039
3049
  } else {
3050
+ var _ref6, _ref7;
3040
3051
  setSelectedRowKeys(labelInValue ? [value.key] : [value]);
3052
+ setSelectedRows(labelInValue ? [(_ref6 = {}, _defineProperty(_ref6, mappingValueField, value.key), _defineProperty(_ref6, "value", value.key), _defineProperty(_ref6, "text", value.label), _ref6)] : [(_ref7 = {}, _defineProperty(_ref7, mappingValueField, value), _defineProperty(_ref7, "value", value), _ref7)]);
3041
3053
  setPopValue(labelInValue ? [{
3042
3054
  value: value.key,
3043
3055
  text: value.label
@@ -3087,7 +3099,7 @@ var SearchSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {
3087
3099
  setTableData([]);
3088
3100
  setTablePagination(tableInitPagination);
3089
3101
  setSelectedRowKeys([]);
3090
- setDoubleArr([]);
3102
+ setSelectedRows([]);
3091
3103
  setCheckedAll(false);
3092
3104
  setIndeterminate(false);
3093
3105
  };
@@ -3150,25 +3162,39 @@ var SearchSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {
3150
3162
  currentPage: pagination.current
3151
3163
  }), 2);
3152
3164
  };
3165
+ var onCheckAllData = function onCheckAllData(pSize) {
3166
+ getData(_objectSpread2(_objectSpread2({}, tableFormParams), {}, {
3167
+ pageSize: pSize,
3168
+ currentPage: 1
3169
+ }), 2, function (source) {
3170
+ var currentItemsData = JSON.parse(JSON.stringify(source));
3171
+ setSelectedRowKeys(currentItemsData.map(function (i) {
3172
+ return i.value;
3173
+ }));
3174
+ setPopValue(currentItemsData);
3175
+ setSelectedRows(currentItemsData);
3176
+ });
3177
+ };
3153
3178
  var onChangeCheckAll = function onChangeCheckAll(e) {
3154
3179
  if (e.target.checked) {
3155
3180
  // 如果下拉框有所有数据就处理选中所有【items.length === itemsTotal】(最多可选100条)
3156
3181
  // 如果超过100条 就默认查出所有数据
3157
- var currentItemsData = JSON.parse(JSON.stringify(items));
3158
- var totalPage = Math.ceil(itemsTotal / (tablePagination === null || tablePagination === void 0 ? void 0 : tablePagination.pageSize));
3159
- for (var i = 0; i <= totalPage - 1; i++) {
3160
- doubleArr[i] = currentItemsData.slice((tablePagination === null || tablePagination === void 0 ? void 0 : tablePagination.pageSize) * i, (tablePagination === null || tablePagination === void 0 ? void 0 : tablePagination.pageSize) * (i + 1));
3182
+ if (items.length < itemsTotal) {
3183
+ var totalPage = Math.ceil(itemsTotal / (tablePagination === null || tablePagination === void 0 ? void 0 : tablePagination.pageSize));
3184
+ var allPageSize = totalPage * (tablePagination === null || tablePagination === void 0 ? void 0 : tablePagination.pageSize);
3185
+ onCheckAllData(allPageSize);
3186
+ } else {
3187
+ var currentItemsData = JSON.parse(JSON.stringify(items));
3188
+ setSelectedRowKeys(currentItemsData.map(function (i) {
3189
+ return i.value;
3190
+ }));
3191
+ setPopValue(currentItemsData);
3192
+ setSelectedRows(currentItemsData);
3161
3193
  }
3162
- setDoubleArr(doubleArr);
3163
- setSelectedRowKeys(currentItemsData.map(function (i) {
3164
- return i.value;
3165
- }));
3166
- setPopValue(currentItemsData);
3167
- if (items.length < itemsTotal) ;
3168
3194
  } else {
3169
3195
  setSelectedRowKeys([]);
3170
3196
  setPopValue([]);
3171
- setDoubleArr([]);
3197
+ setSelectedRows([]);
3172
3198
  }
3173
3199
  setIndeterminate(false);
3174
3200
  setCheckedAll(e.target.checked);
@@ -3176,13 +3202,13 @@ var SearchSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {
3176
3202
  var LightHeightOption = function LightHeightOption(props) {
3177
3203
  var filterTxt = props.filterTxt,
3178
3204
  text = props.text;
3179
- var heightLightTxt = function heightLightTxt(txt, heightTxt) {
3205
+ var heightLightTxt = function heightLightTxt(text, heightTxt) {
3180
3206
  if (heightTxt === '') {
3181
- return txt;
3207
+ return text;
3182
3208
  }
3183
3209
  // 前面filterOption 不区分大小写,这里用i
3184
3210
  var regexp = new RegExp(heightTxt, 'gi');
3185
- return txt.replace(regexp, "<span style=\"color:red\">".concat(heightTxt, "</span>"));
3211
+ return text.replace(regexp, "<span style=\"color:red\">".concat(heightTxt, "</span>"));
3186
3212
  };
3187
3213
  return /*#__PURE__*/React__default['default'].createElement(antd.Tooltip, {
3188
3214
  title: text
@@ -3194,54 +3220,21 @@ var SearchSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {
3194
3220
  }
3195
3221
  }));
3196
3222
  };
3197
- // 扁平化二维数组的方法
3198
- var mapRows = function mapRows(params) {
3199
- var res = [];
3200
- for (var i = 0; i < params.length; i++) {
3201
- if (Array.isArray(params[i])) {
3202
- // 去重
3203
- res = ___default['default'].uniqBy(res.concat(mapRows(params[i])), 'value');
3204
- } else {
3205
- res.push(params[i]);
3206
- // 去重
3207
- res = ___default['default'].uniqBy(res, 'value');
3208
- }
3209
- }
3210
- return res.filter(Boolean); //去掉undefined的情况
3211
- };
3212
3223
 
3213
3224
  var onChangeSelectedKeys = function onChangeSelectedKeys(selectKeys, selectRows) {
3214
- var nowPage = tablePagination === null || tablePagination === void 0 ? void 0 : tablePagination.current;
3215
- var filterRows = []; // 存放拼接后的一维数组的变量
3216
- var sksResult = [];
3217
- if (selectMode) {
3218
- // 处理多选分页累计选中
3219
- // 勾选生成二维数组
3220
- doubleArr[nowPage ? nowPage - 1 : 0] = selectRows;
3221
- // console.log(doubleArr)
3222
- setDoubleArr(doubleArr);
3223
- // 这块扁平化成为一位数组
3224
- filterRows = mapRows(doubleArr);
3225
- // console.log(filterRows)
3226
- sksResult = filterRows.map(function (i) {
3227
- return i.value;
3228
- });
3229
- } else {
3230
- // 处理单选
3231
- filterRows = selectRows;
3232
- sksResult = selectRows.map(function (i) {
3233
- return i.value;
3234
- });
3235
- // 单选 默认直接选中 不需要确定 配置了modalRadioNeedFooter就需要确定
3236
- if (!(modalTableProps === null || modalTableProps === void 0 ? void 0 : modalTableProps.modalRadioNeedFooter)) {
3237
- handleSelectOver(filterRows);
3238
- handleCancel();
3239
- }
3225
+ var sksResult = selectRows.map(function (i) {
3226
+ return i.value;
3227
+ });
3228
+ // 单选 默认直接选中 不需要确定 配置了modalRadioNeedFooter就需要确定
3229
+ if (!selectMode && !(modalTableProps === null || modalTableProps === void 0 ? void 0 : modalTableProps.modalRadioNeedFooter)) {
3230
+ handleSelectOver(selectRows);
3231
+ handleCancel();
3240
3232
  }
3241
3233
  setSelectedRowKeys(sksResult);
3242
- setPopValue(filterRows);
3243
- setIndeterminate(!!filterRows.length && filterRows.length < (tablePagination === null || tablePagination === void 0 ? void 0 : tablePagination.total));
3244
- setCheckedAll(filterRows.length === (tablePagination === null || tablePagination === void 0 ? void 0 : tablePagination.total));
3234
+ setSelectedRows(selectRows);
3235
+ setPopValue(selectRows);
3236
+ setIndeterminate(!!selectRows.length && selectRows.length < (tablePagination === null || tablePagination === void 0 ? void 0 : tablePagination.total));
3237
+ setCheckedAll(selectRows.length === (tablePagination === null || tablePagination === void 0 ? void 0 : tablePagination.total));
3245
3238
  };
3246
3239
  // 生成唯一值
3247
3240
  var makeUniqueValue = function makeUniqueValue() {
@@ -3252,8 +3245,21 @@ var SearchSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {
3252
3245
  var rowSelection = {
3253
3246
  type: selectMode ? 'checkbox' : 'radio',
3254
3247
  selectedRowKeys: selectedRowKeys,
3248
+ preserveSelectedRowKeys: true,
3255
3249
  onChange: function onChange(sks, srs) {
3256
- onChangeSelectedKeys(sks, srs);
3250
+ // 处理翻页后,之前存储的selectedRows变为undefined
3251
+ // selectedRows合并新数组,过滤undefined,过滤留下对应selectedRowKeys的集合
3252
+ var tmpSelectedRows = selectedRows.concat(srs).filter(function (item) {
3253
+ return item != undefined;
3254
+ });
3255
+ var totalSelectedRows = sks.map(function (key) {
3256
+ return tmpSelectedRows.filter(function (item) {
3257
+ return item[mappingValueField] == key;
3258
+ })[0];
3259
+ }).filter(function (item) {
3260
+ return item != undefined;
3261
+ });
3262
+ onChangeSelectedKeys(sks, totalSelectedRows);
3257
3263
  },
3258
3264
  getCheckboxProps: function getCheckboxProps() {
3259
3265
  return {
@@ -3388,6 +3394,10 @@ var SearchSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {
3388
3394
  })
3389
3395
  }, "+ ".concat(selectedValues === null || selectedValues === void 0 ? void 0 : selectedValues.length));
3390
3396
  };
3397
+ var handleSelectOptionsShowValue = function handleSelectOptionsShowValue(specialBracket, item) {
3398
+ var showText = Array.isArray(item.textShowText) && item.textShowText.join(' ') || item.textShowText;
3399
+ return specialBracket ? "\u3010".concat(item.textShowKey, "\u3011").concat(showText) : "".concat(item.textShowKey, " ").concat(showText);
3400
+ };
3391
3401
  return /*#__PURE__*/React__default['default'].createElement("div", {
3392
3402
  className: 'search_select'
3393
3403
  }, fieldComponent ? /*#__PURE__*/React__default['default'].createElement("div", {
@@ -3457,7 +3467,7 @@ var SearchSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {
3457
3467
  key: item.value,
3458
3468
  label: item.text
3459
3469
  }, LightHeightOption({
3460
- text: "".concat(item.textShowKey, " ").concat(Array.isArray(item.textShowText) && item.textShowText.join(' ') || item.textShowText),
3470
+ text: handleSelectOptionsShowValue(specialBracket, item),
3461
3471
  filterTxt: searchValue
3462
3472
  }));
3463
3473
  })), needModalTable && /*#__PURE__*/React__default['default'].createElement(antd.Button, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bit-sun/business-component",
3
- "version": "2.3.13",
3
+ "version": "2.3.15",
4
4
  "scripts": {
5
5
  "start": "dumi dev",
6
6
  "docs:build": "dumi build",
@@ -39,6 +39,7 @@ const SearchSelect = forwardRef((props: any, ref: any) => {
39
39
  mappingTextShowTextField,
40
40
  init = true,// 是否初始请求
41
41
  extralHeaders = {},// 额外请求头参数
42
+ specialBracket = false,// 是否使用特殊括弧显示选项 【value】text
42
43
  } = requestConfig || {};
43
44
  const resultSourceKey = handleSourceName(sourceName || requestConfig?.sourceName || 'supplierCode')
44
45
 
@@ -100,7 +101,7 @@ const SearchSelect = forwardRef((props: any, ref: any) => {
100
101
  const [tableData, setTableData] = useState([]);
101
102
  const [tablePagination, setTablePagination] = useState(tableInitPagination)
102
103
  const [selectedRowKeys, setSelectedRowKeys] = useState([]);
103
- const [doubleArr, setDoubleArr] = useState([]); // 存放双数组的数组
104
+ const [selectedRows, setSelectedRows] = useState([]);
104
105
  const [checkedAll, setCheckedAll] = useState(false)
105
106
  const [indeterminate, setIndeterminate] = useState(false)
106
107
  const [tableFormParams, setTableFormParams] = useState({});
@@ -136,7 +137,7 @@ const SearchSelect = forwardRef((props: any, ref: any) => {
136
137
  }))
137
138
 
138
139
  // 获取数据源 (type: 1下拉框 2/3弹框 不传值默认为下拉框)
139
- const getData = (params = {}, type = 1) => {
140
+ const getData = (params = {}, type = 1,callback?: any) => {
140
141
  if (!requestConfig) return;
141
142
 
142
143
  setFetching(true)
@@ -311,7 +312,9 @@ const SearchSelect = forwardRef((props: any, ref: any) => {
311
312
  }
312
313
  return {
313
314
  ...item,
314
- text: item[mappingTextField],
315
+ text: specialBracket
316
+ ? `【${item[mappingValueField]}】${item[mappingTextField]}`
317
+ : item[mappingTextField],
315
318
  textShowText,
316
319
  textShowKey: item[mappingTextShowKeyField || mappingValueField],
317
320
  value: item[mappingValueField],
@@ -332,7 +335,9 @@ const SearchSelect = forwardRef((props: any, ref: any) => {
332
335
  }
333
336
  return {
334
337
  ...item,
335
- text: item[mappingTextField],
338
+ text: specialBracket
339
+ ? `【${item[mappingValueField]}】${item[mappingTextField]}`
340
+ : item[mappingTextField],
336
341
  textShowText,
337
342
  textShowKey: item[mappingTextShowKeyField || mappingValueField],
338
343
  value: item[mappingValueField],
@@ -341,13 +346,17 @@ const SearchSelect = forwardRef((props: any, ref: any) => {
341
346
  : [];
342
347
  }
343
348
  source = Array.isArray(source) ? source : []
344
- if (type === 1) {
345
- ctx?.form?.setFieldSource(resultSourceKey, source)
346
- setItems(source)
347
- setItemsTotal(Number(res?.total || res?.totalCount || source.length))
349
+ if(callback) {
350
+ callback(source)
348
351
  } else {
349
- setTableData(source)
350
- setTablePagination({ ...tablePagination, total: Number(res?.total || res?.totalCount || source.length), pageSize: Number(res?.size || res?.pageSize || (params?.pageSize || pageSize)), current: Number(res?.page || res?.currentPage || (params?.currentPage || currentPage)) })
352
+ if (type === 1) {
353
+ ctx?.form?.setFieldSource(resultSourceKey, source)
354
+ setItems(source)
355
+ setItemsTotal(Number(res?.total || res?.totalCount || source.length))
356
+ } else {
357
+ setTableData(source)
358
+ setTablePagination({ ...tablePagination, total: Number(res?.total || res?.totalCount || source.length), pageSize: Number(res?.size || res?.pageSize || (params?.pageSize || pageSize)), current: Number(res?.page || res?.currentPage || (params?.currentPage || currentPage)) })
359
+ }
351
360
  }
352
361
  })
353
362
  .catch((err) => { setFetching(false) });
@@ -401,15 +410,13 @@ const SearchSelect = forwardRef((props: any, ref: any) => {
401
410
  if (value) {
402
411
  if (selectMode) {
403
412
  setSelectedRowKeys(labelInValue ? value.map(i => i.key) : value)
413
+ setSelectedRows(labelInValue ? value.map(i => ({ [mappingValueField]: i.key, value: i.key, text: i.label })) : value.map(i => ({ [mappingValueField]: i, value: i })))
404
414
  setPopValue(labelInValue ? value.map(i => ({ value: i.key, text: i.label })) : value.map(i => ({ value: i })));
405
415
  setIndeterminate(!!value.length && value.length < itemsTotal);
406
416
  setCheckedAll(itemsTotal && value.length === itemsTotal);
407
- // 需清空数据
408
- if (!value.length) {
409
- setDoubleArr([])
410
- }
411
417
  } else {
412
418
  setSelectedRowKeys(labelInValue ? [value.key] : [value])
419
+ setSelectedRows(labelInValue ? [{ [mappingValueField]: value.key, value: value.key, text: value.label }] : [{ [mappingValueField]: value, value: value }])
413
420
  setPopValue(labelInValue ? [{ value: value.key, text: value.label }] : [{ value: value }]);
414
421
  }
415
422
  }
@@ -449,7 +456,7 @@ const SearchSelect = forwardRef((props: any, ref: any) => {
449
456
  setTableData([]);
450
457
  setTablePagination(tableInitPagination);
451
458
  setSelectedRowKeys([]);
452
- setDoubleArr([]);
459
+ setSelectedRows([]);
453
460
  setCheckedAll(false);
454
461
  setIndeterminate(false);
455
462
  };
@@ -510,25 +517,32 @@ const SearchSelect = forwardRef((props: any, ref: any) => {
510
517
  getData({ ...tableFormParams, pageSize: pagination.pageSize, currentPage: pagination.current }, 2)
511
518
  }
512
519
 
520
+ const onCheckAllData = (pSize) => {
521
+ getData({ ...tableFormParams, pageSize: pSize, currentPage: 1 }, 2,(source) => {
522
+ const currentItemsData = JSON.parse(JSON.stringify(source))
523
+ setSelectedRowKeys(currentItemsData.map(i => i.value))
524
+ setPopValue(currentItemsData);
525
+ setSelectedRows(currentItemsData)
526
+ })
527
+ }
513
528
  const onChangeCheckAll = (e) => {
514
529
  if (e.target.checked) {
515
530
  // 如果下拉框有所有数据就处理选中所有【items.length === itemsTotal】(最多可选100条)
516
531
  // 如果超过100条 就默认查出所有数据
517
- const currentItemsData = JSON.parse(JSON.stringify(items))
518
- const totalPage = Math.ceil(itemsTotal / tablePagination?.pageSize)
519
- for (let i = 0; i <= totalPage - 1; i++) {
520
- doubleArr[i] = currentItemsData.slice(tablePagination?.pageSize * i, tablePagination?.pageSize * (i + 1))
521
- }
522
- setDoubleArr(doubleArr)
523
- setSelectedRowKeys(currentItemsData.map(i => i.value))
524
- setPopValue(currentItemsData);
525
532
  if (items.length < itemsTotal) {
526
- // TODO 请求接口获取所有数据
533
+ const totalPage = Math.ceil(itemsTotal / tablePagination?.pageSize);
534
+ const allPageSize = totalPage * tablePagination?.pageSize;
535
+ onCheckAllData(allPageSize)
536
+ } else {
537
+ const currentItemsData = JSON.parse(JSON.stringify(items))
538
+ setSelectedRowKeys(currentItemsData.map(i => i.value))
539
+ setPopValue(currentItemsData);
540
+ setSelectedRows(currentItemsData)
527
541
  }
528
542
  } else {
529
543
  setSelectedRowKeys([])
530
544
  setPopValue([]);
531
- setDoubleArr([])
545
+ setSelectedRows([])
532
546
  }
533
547
  setIndeterminate(false);
534
548
  setCheckedAll(e.target.checked);
@@ -538,13 +552,13 @@ const SearchSelect = forwardRef((props: any, ref: any) => {
538
552
  const {
539
553
  filterTxt, text,
540
554
  } = props
541
- const heightLightTxt = (txt, heightTxt) => {
555
+ const heightLightTxt = (text, heightTxt) => {
542
556
  if (heightTxt === '') {
543
- return txt
557
+ return text
544
558
  }
545
559
  // 前面filterOption 不区分大小写,这里用i
546
560
  const regexp = new RegExp(heightTxt, 'gi')
547
- return txt.replace(regexp, `<span style="color:red">${heightTxt}</span>`)
561
+ return text.replace(regexp, `<span style="color:red">${heightTxt}</span>`)
548
562
  }
549
563
  return (
550
564
  <Tooltip title={text}>
@@ -575,37 +589,19 @@ const SearchSelect = forwardRef((props: any, ref: any) => {
575
589
  };
576
590
 
577
591
  const onChangeSelectedKeys = (selectKeys, selectRows) => {
578
- const nowPage = tablePagination?.current;
579
-
580
- let filterRows = []; // 存放拼接后的一维数组的变量
581
- let sksResult = [];
592
+ let sksResult = selectRows.map((i) => i.value);
582
593
 
583
- if (selectMode) {
584
- // 处理多选分页累计选中
585
- // 勾选生成二维数组
586
- doubleArr[nowPage ? nowPage - 1 : 0] = selectRows
587
- // console.log(doubleArr)
588
- setDoubleArr(doubleArr)
589
- // 这块扁平化成为一位数组
590
- filterRows = mapRows(doubleArr);
591
- // console.log(filterRows)
592
-
593
- sksResult = filterRows.map((i) => i.value)
594
- } else {
595
- // 处理单选
596
- filterRows = selectRows;
597
- sksResult = selectRows.map((i) => i.value)
598
- // 单选 默认直接选中 不需要确定 配置了modalRadioNeedFooter就需要确定
599
- if(!modalTableProps?.modalRadioNeedFooter) {
600
- handleSelectOver(filterRows)
601
- handleCancel();
602
- }
594
+ // 单选 默认直接选中 不需要确定 配置了modalRadioNeedFooter就需要确定
595
+ if(!selectMode && !modalTableProps?.modalRadioNeedFooter) {
596
+ handleSelectOver(selectRows)
597
+ handleCancel();
603
598
  }
604
599
 
605
600
  setSelectedRowKeys(sksResult)
606
- setPopValue(filterRows);
607
- setIndeterminate(!!filterRows.length && filterRows.length < tablePagination?.total);
608
- setCheckedAll(filterRows.length === tablePagination?.total);
601
+ setSelectedRows(selectRows)
602
+ setPopValue(selectRows);
603
+ setIndeterminate(!!selectRows.length && selectRows.length < tablePagination?.total);
604
+ setCheckedAll(selectRows.length === tablePagination?.total);
609
605
  }
610
606
 
611
607
  // 生成唯一值
@@ -618,8 +614,13 @@ const SearchSelect = forwardRef((props: any, ref: any) => {
618
614
  const rowSelection = {
619
615
  type: selectMode ? 'checkbox' : 'radio',
620
616
  selectedRowKeys,
617
+ preserveSelectedRowKeys: true,
621
618
  onChange: (sks, srs) => {
622
- onChangeSelectedKeys(sks, srs)
619
+ // 处理翻页后,之前存储的selectedRows变为undefined
620
+ // selectedRows合并新数组,过滤undefined,过滤留下对应selectedRowKeys的集合
621
+ let tmpSelectedRows = selectedRows.concat(srs).filter(item => item != undefined);
622
+ let totalSelectedRows = sks.map(key => tmpSelectedRows.filter(item => item[mappingValueField] == key)[0]).filter(item => item != undefined)
623
+ onChangeSelectedKeys(sks, totalSelectedRows)
623
624
  },
624
625
  getCheckboxProps: () => {
625
626
  return ({
@@ -725,6 +726,14 @@ const SearchSelect = forwardRef((props: any, ref: any) => {
725
726
  )
726
727
  }
727
728
 
729
+ const handleSelectOptionsShowValue = (specialBracket: boolean, item: object) => {
730
+ let showText = Array.isArray(item.textShowText) &&
731
+ item.textShowText.join(' ') || item.textShowText;
732
+ return specialBracket
733
+ ? `【${item.textShowKey}】${showText}`
734
+ : `${item.textShowKey} ${showText}`
735
+ };
736
+
728
737
  return (
729
738
  <div className={'search_select'}>
730
739
  {fieldComponent ?
@@ -774,7 +783,10 @@ const SearchSelect = forwardRef((props: any, ref: any) => {
774
783
  >
775
784
  {items.map(item => (
776
785
  <Option key={item.value} label={item.text}>
777
- {LightHeightOption({ text: `${item.textShowKey} ${Array.isArray(item.textShowText) && item.textShowText.join(' ') || item.textShowText}`, filterTxt: searchValue })}
786
+ {LightHeightOption({
787
+ text: handleSelectOptionsShowValue(specialBracket, item),
788
+ filterTxt: searchValue
789
+ })}
778
790
  </Option>
779
791
  ))}
780
792
  </Select>