@bit-sun/business-component 2.3.14 → 2.3.16

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
@@ -2711,8 +2711,8 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
2711
2711
  setSelectedRowKeys = _useState24[1];
2712
2712
  var _useState25 = useState([]),
2713
2713
  _useState26 = _slicedToArray(_useState25, 2),
2714
- doubleArr = _useState26[0],
2715
- setDoubleArr = _useState26[1]; // 存放双数组的数组
2714
+ selectedRows = _useState26[0],
2715
+ setSelectedRows = _useState26[1];
2716
2716
  var _useState27 = useState(false),
2717
2717
  _useState28 = _slicedToArray(_useState27, 2),
2718
2718
  checkedAll = _useState28[0],
@@ -2768,6 +2768,7 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
2768
2768
  var getData = function getData() {
2769
2769
  var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2770
2770
  var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
2771
+ var callback = arguments.length > 2 ? arguments[2] : undefined;
2771
2772
  if (!requestConfig) return;
2772
2773
  setFetching(true);
2773
2774
  // 处理dependence参数
@@ -2942,18 +2943,22 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
2942
2943
  })) : [];
2943
2944
  }
2944
2945
  source = Array.isArray(source) ? source : [];
2945
- if (type === 1) {
2946
- var _ctx$form;
2947
- ctx === null || ctx === void 0 ? void 0 : (_ctx$form = ctx.form) === null || _ctx$form === void 0 ? void 0 : _ctx$form.setFieldSource(resultSourceKey, source);
2948
- setItems(source);
2949
- setItemsTotal(Number((res === null || res === void 0 ? void 0 : res.total) || (res === null || res === void 0 ? void 0 : res.totalCount) || source.length));
2946
+ if (callback) {
2947
+ callback(source);
2950
2948
  } else {
2951
- setTableData(source);
2952
- setTablePagination(_objectSpread2(_objectSpread2({}, tablePagination), {}, {
2953
- total: Number((res === null || res === void 0 ? void 0 : res.total) || (res === null || res === void 0 ? void 0 : res.totalCount) || source.length),
2954
- 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),
2955
- 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)
2956
- }));
2949
+ if (type === 1) {
2950
+ var _ctx$form;
2951
+ ctx === null || ctx === void 0 ? void 0 : (_ctx$form = ctx.form) === null || _ctx$form === void 0 ? void 0 : _ctx$form.setFieldSource(resultSourceKey, source);
2952
+ setItems(source);
2953
+ setItemsTotal(Number((res === null || res === void 0 ? void 0 : res.total) || (res === null || res === void 0 ? void 0 : res.totalCount) || source.length));
2954
+ } else {
2955
+ setTableData(source);
2956
+ setTablePagination(_objectSpread2(_objectSpread2({}, tablePagination), {}, {
2957
+ total: Number((res === null || res === void 0 ? void 0 : res.total) || (res === null || res === void 0 ? void 0 : res.totalCount) || source.length),
2958
+ 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),
2959
+ 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)
2960
+ }));
2961
+ }
2957
2962
  }
2958
2963
  }).catch(function (err) {
2959
2964
  setFetching(false);
@@ -3012,6 +3017,13 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
3012
3017
  setSelectedRowKeys(labelInValue ? value.map(function (i) {
3013
3018
  return i.key;
3014
3019
  }) : value);
3020
+ setSelectedRows(labelInValue ? value.map(function (i) {
3021
+ var _ref4;
3022
+ return _ref4 = {}, _defineProperty(_ref4, mappingValueField, i.key), _defineProperty(_ref4, "value", i.key), _defineProperty(_ref4, "text", i.label), _ref4;
3023
+ }) : value.map(function (i) {
3024
+ var _ref5;
3025
+ return _ref5 = {}, _defineProperty(_ref5, mappingValueField, i), _defineProperty(_ref5, "value", i), _ref5;
3026
+ }));
3015
3027
  setPopValue(labelInValue ? value.map(function (i) {
3016
3028
  return {
3017
3029
  value: i.key,
@@ -3024,12 +3036,10 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
3024
3036
  }));
3025
3037
  setIndeterminate(!!value.length && value.length < itemsTotal);
3026
3038
  setCheckedAll(itemsTotal && value.length === itemsTotal);
3027
- // 需清空数据
3028
- if (!value.length) {
3029
- setDoubleArr([]);
3030
- }
3031
3039
  } else {
3040
+ var _ref6, _ref7;
3032
3041
  setSelectedRowKeys(labelInValue ? [value.key] : [value]);
3042
+ 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)]);
3033
3043
  setPopValue(labelInValue ? [{
3034
3044
  value: value.key,
3035
3045
  text: value.label
@@ -3079,7 +3089,7 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
3079
3089
  setTableData([]);
3080
3090
  setTablePagination(tableInitPagination);
3081
3091
  setSelectedRowKeys([]);
3082
- setDoubleArr([]);
3092
+ setSelectedRows([]);
3083
3093
  setCheckedAll(false);
3084
3094
  setIndeterminate(false);
3085
3095
  };
@@ -3142,25 +3152,39 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
3142
3152
  currentPage: pagination.current
3143
3153
  }), 2);
3144
3154
  };
3155
+ var onCheckAllData = function onCheckAllData(pSize) {
3156
+ getData(_objectSpread2(_objectSpread2({}, tableFormParams), {}, {
3157
+ pageSize: pSize,
3158
+ currentPage: 1
3159
+ }), 2, function (source) {
3160
+ var currentItemsData = JSON.parse(JSON.stringify(source));
3161
+ setSelectedRowKeys(currentItemsData.map(function (i) {
3162
+ return i.value;
3163
+ }));
3164
+ setPopValue(currentItemsData);
3165
+ setSelectedRows(currentItemsData);
3166
+ });
3167
+ };
3145
3168
  var onChangeCheckAll = function onChangeCheckAll(e) {
3146
3169
  if (e.target.checked) {
3147
3170
  // 如果下拉框有所有数据就处理选中所有【items.length === itemsTotal】(最多可选100条)
3148
3171
  // 如果超过100条 就默认查出所有数据
3149
- var currentItemsData = JSON.parse(JSON.stringify(items));
3150
- var totalPage = Math.ceil(itemsTotal / (tablePagination === null || tablePagination === void 0 ? void 0 : tablePagination.pageSize));
3151
- for (var i = 0; i <= totalPage - 1; i++) {
3152
- 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));
3172
+ if (items.length < itemsTotal) {
3173
+ var totalPage = Math.ceil(itemsTotal / (tablePagination === null || tablePagination === void 0 ? void 0 : tablePagination.pageSize));
3174
+ var allPageSize = totalPage * (tablePagination === null || tablePagination === void 0 ? void 0 : tablePagination.pageSize);
3175
+ onCheckAllData(allPageSize);
3176
+ } else {
3177
+ var currentItemsData = JSON.parse(JSON.stringify(items));
3178
+ setSelectedRowKeys(currentItemsData.map(function (i) {
3179
+ return i.value;
3180
+ }));
3181
+ setPopValue(currentItemsData);
3182
+ setSelectedRows(currentItemsData);
3153
3183
  }
3154
- setDoubleArr(doubleArr);
3155
- setSelectedRowKeys(currentItemsData.map(function (i) {
3156
- return i.value;
3157
- }));
3158
- setPopValue(currentItemsData);
3159
- if (items.length < itemsTotal) ;
3160
3184
  } else {
3161
3185
  setSelectedRowKeys([]);
3162
3186
  setPopValue([]);
3163
- setDoubleArr([]);
3187
+ setSelectedRows([]);
3164
3188
  }
3165
3189
  setIndeterminate(false);
3166
3190
  setCheckedAll(e.target.checked);
@@ -3186,54 +3210,21 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
3186
3210
  }
3187
3211
  }));
3188
3212
  };
3189
- // 扁平化二维数组的方法
3190
- var mapRows = function mapRows(params) {
3191
- var res = [];
3192
- for (var i = 0; i < params.length; i++) {
3193
- if (Array.isArray(params[i])) {
3194
- // 去重
3195
- res = _.uniqBy(res.concat(mapRows(params[i])), 'value');
3196
- } else {
3197
- res.push(params[i]);
3198
- // 去重
3199
- res = _.uniqBy(res, 'value');
3200
- }
3201
- }
3202
- return res.filter(Boolean); //去掉undefined的情况
3203
- };
3204
3213
 
3205
3214
  var onChangeSelectedKeys = function onChangeSelectedKeys(selectKeys, selectRows) {
3206
- var nowPage = tablePagination === null || tablePagination === void 0 ? void 0 : tablePagination.current;
3207
- var filterRows = []; // 存放拼接后的一维数组的变量
3208
- var sksResult = [];
3209
- if (selectMode) {
3210
- // 处理多选分页累计选中
3211
- // 勾选生成二维数组
3212
- doubleArr[nowPage ? nowPage - 1 : 0] = selectRows;
3213
- // console.log(doubleArr)
3214
- setDoubleArr(doubleArr);
3215
- // 这块扁平化成为一位数组
3216
- filterRows = mapRows(doubleArr);
3217
- // console.log(filterRows)
3218
- sksResult = filterRows.map(function (i) {
3219
- return i.value;
3220
- });
3221
- } else {
3222
- // 处理单选
3223
- filterRows = selectRows;
3224
- sksResult = selectRows.map(function (i) {
3225
- return i.value;
3226
- });
3227
- // 单选 默认直接选中 不需要确定 配置了modalRadioNeedFooter就需要确定
3228
- if (!(modalTableProps === null || modalTableProps === void 0 ? void 0 : modalTableProps.modalRadioNeedFooter)) {
3229
- handleSelectOver(filterRows);
3230
- handleCancel();
3231
- }
3215
+ var sksResult = selectRows.map(function (i) {
3216
+ return i.value;
3217
+ });
3218
+ // 单选 默认直接选中 不需要确定 配置了modalRadioNeedFooter就需要确定
3219
+ if (!selectMode && !(modalTableProps === null || modalTableProps === void 0 ? void 0 : modalTableProps.modalRadioNeedFooter)) {
3220
+ handleSelectOver(selectRows);
3221
+ handleCancel();
3232
3222
  }
3233
3223
  setSelectedRowKeys(sksResult);
3234
- setPopValue(filterRows);
3235
- setIndeterminate(!!filterRows.length && filterRows.length < (tablePagination === null || tablePagination === void 0 ? void 0 : tablePagination.total));
3236
- setCheckedAll(filterRows.length === (tablePagination === null || tablePagination === void 0 ? void 0 : tablePagination.total));
3224
+ setSelectedRows(selectRows);
3225
+ setPopValue(selectRows);
3226
+ setIndeterminate(!!selectRows.length && selectRows.length < (tablePagination === null || tablePagination === void 0 ? void 0 : tablePagination.total));
3227
+ setCheckedAll(selectRows.length === (tablePagination === null || tablePagination === void 0 ? void 0 : tablePagination.total));
3237
3228
  };
3238
3229
  // 生成唯一值
3239
3230
  var makeUniqueValue = function makeUniqueValue() {
@@ -3244,8 +3235,21 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
3244
3235
  var rowSelection = {
3245
3236
  type: selectMode ? 'checkbox' : 'radio',
3246
3237
  selectedRowKeys: selectedRowKeys,
3238
+ preserveSelectedRowKeys: true,
3247
3239
  onChange: function onChange(sks, srs) {
3248
- onChangeSelectedKeys(sks, srs);
3240
+ // 处理翻页后,之前存储的selectedRows变为undefined
3241
+ // selectedRows合并新数组,过滤undefined,过滤留下对应selectedRowKeys的集合
3242
+ var tmpSelectedRows = selectedRows.concat(srs).filter(function (item) {
3243
+ return item != undefined;
3244
+ });
3245
+ var totalSelectedRows = sks.map(function (key) {
3246
+ return tmpSelectedRows.filter(function (item) {
3247
+ return item[mappingValueField] == key;
3248
+ })[0];
3249
+ }).filter(function (item) {
3250
+ return item != undefined;
3251
+ });
3252
+ onChangeSelectedKeys(sks, totalSelectedRows);
3249
3253
  },
3250
3254
  getCheckboxProps: function getCheckboxProps() {
3251
3255
  return {
package/dist/index.js CHANGED
@@ -2730,8 +2730,8 @@ var SearchSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {
2730
2730
  setSelectedRowKeys = _useState24[1];
2731
2731
  var _useState25 = React.useState([]),
2732
2732
  _useState26 = _slicedToArray(_useState25, 2),
2733
- doubleArr = _useState26[0],
2734
- setDoubleArr = _useState26[1]; // 存放双数组的数组
2733
+ selectedRows = _useState26[0],
2734
+ setSelectedRows = _useState26[1];
2735
2735
  var _useState27 = React.useState(false),
2736
2736
  _useState28 = _slicedToArray(_useState27, 2),
2737
2737
  checkedAll = _useState28[0],
@@ -2787,6 +2787,7 @@ var SearchSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {
2787
2787
  var getData = function getData() {
2788
2788
  var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2789
2789
  var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
2790
+ var callback = arguments.length > 2 ? arguments[2] : undefined;
2790
2791
  if (!requestConfig) return;
2791
2792
  setFetching(true);
2792
2793
  // 处理dependence参数
@@ -2961,18 +2962,22 @@ var SearchSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {
2961
2962
  })) : [];
2962
2963
  }
2963
2964
  source = Array.isArray(source) ? source : [];
2964
- if (type === 1) {
2965
- var _ctx$form;
2966
- ctx === null || ctx === void 0 ? void 0 : (_ctx$form = ctx.form) === null || _ctx$form === void 0 ? void 0 : _ctx$form.setFieldSource(resultSourceKey, source);
2967
- setItems(source);
2968
- setItemsTotal(Number((res === null || res === void 0 ? void 0 : res.total) || (res === null || res === void 0 ? void 0 : res.totalCount) || source.length));
2965
+ if (callback) {
2966
+ callback(source);
2969
2967
  } else {
2970
- setTableData(source);
2971
- setTablePagination(_objectSpread2(_objectSpread2({}, tablePagination), {}, {
2972
- total: Number((res === null || res === void 0 ? void 0 : res.total) || (res === null || res === void 0 ? void 0 : res.totalCount) || source.length),
2973
- 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),
2974
- 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)
2975
- }));
2968
+ if (type === 1) {
2969
+ var _ctx$form;
2970
+ ctx === null || ctx === void 0 ? void 0 : (_ctx$form = ctx.form) === null || _ctx$form === void 0 ? void 0 : _ctx$form.setFieldSource(resultSourceKey, source);
2971
+ setItems(source);
2972
+ setItemsTotal(Number((res === null || res === void 0 ? void 0 : res.total) || (res === null || res === void 0 ? void 0 : res.totalCount) || source.length));
2973
+ } else {
2974
+ setTableData(source);
2975
+ setTablePagination(_objectSpread2(_objectSpread2({}, tablePagination), {}, {
2976
+ total: Number((res === null || res === void 0 ? void 0 : res.total) || (res === null || res === void 0 ? void 0 : res.totalCount) || source.length),
2977
+ 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),
2978
+ 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)
2979
+ }));
2980
+ }
2976
2981
  }
2977
2982
  }).catch(function (err) {
2978
2983
  setFetching(false);
@@ -3031,6 +3036,13 @@ var SearchSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {
3031
3036
  setSelectedRowKeys(labelInValue ? value.map(function (i) {
3032
3037
  return i.key;
3033
3038
  }) : value);
3039
+ setSelectedRows(labelInValue ? value.map(function (i) {
3040
+ var _ref4;
3041
+ return _ref4 = {}, _defineProperty(_ref4, mappingValueField, i.key), _defineProperty(_ref4, "value", i.key), _defineProperty(_ref4, "text", i.label), _ref4;
3042
+ }) : value.map(function (i) {
3043
+ var _ref5;
3044
+ return _ref5 = {}, _defineProperty(_ref5, mappingValueField, i), _defineProperty(_ref5, "value", i), _ref5;
3045
+ }));
3034
3046
  setPopValue(labelInValue ? value.map(function (i) {
3035
3047
  return {
3036
3048
  value: i.key,
@@ -3043,12 +3055,10 @@ var SearchSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {
3043
3055
  }));
3044
3056
  setIndeterminate(!!value.length && value.length < itemsTotal);
3045
3057
  setCheckedAll(itemsTotal && value.length === itemsTotal);
3046
- // 需清空数据
3047
- if (!value.length) {
3048
- setDoubleArr([]);
3049
- }
3050
3058
  } else {
3059
+ var _ref6, _ref7;
3051
3060
  setSelectedRowKeys(labelInValue ? [value.key] : [value]);
3061
+ 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)]);
3052
3062
  setPopValue(labelInValue ? [{
3053
3063
  value: value.key,
3054
3064
  text: value.label
@@ -3098,7 +3108,7 @@ var SearchSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {
3098
3108
  setTableData([]);
3099
3109
  setTablePagination(tableInitPagination);
3100
3110
  setSelectedRowKeys([]);
3101
- setDoubleArr([]);
3111
+ setSelectedRows([]);
3102
3112
  setCheckedAll(false);
3103
3113
  setIndeterminate(false);
3104
3114
  };
@@ -3161,25 +3171,39 @@ var SearchSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {
3161
3171
  currentPage: pagination.current
3162
3172
  }), 2);
3163
3173
  };
3174
+ var onCheckAllData = function onCheckAllData(pSize) {
3175
+ getData(_objectSpread2(_objectSpread2({}, tableFormParams), {}, {
3176
+ pageSize: pSize,
3177
+ currentPage: 1
3178
+ }), 2, function (source) {
3179
+ var currentItemsData = JSON.parse(JSON.stringify(source));
3180
+ setSelectedRowKeys(currentItemsData.map(function (i) {
3181
+ return i.value;
3182
+ }));
3183
+ setPopValue(currentItemsData);
3184
+ setSelectedRows(currentItemsData);
3185
+ });
3186
+ };
3164
3187
  var onChangeCheckAll = function onChangeCheckAll(e) {
3165
3188
  if (e.target.checked) {
3166
3189
  // 如果下拉框有所有数据就处理选中所有【items.length === itemsTotal】(最多可选100条)
3167
3190
  // 如果超过100条 就默认查出所有数据
3168
- var currentItemsData = JSON.parse(JSON.stringify(items));
3169
- var totalPage = Math.ceil(itemsTotal / (tablePagination === null || tablePagination === void 0 ? void 0 : tablePagination.pageSize));
3170
- for (var i = 0; i <= totalPage - 1; i++) {
3171
- 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));
3191
+ if (items.length < itemsTotal) {
3192
+ var totalPage = Math.ceil(itemsTotal / (tablePagination === null || tablePagination === void 0 ? void 0 : tablePagination.pageSize));
3193
+ var allPageSize = totalPage * (tablePagination === null || tablePagination === void 0 ? void 0 : tablePagination.pageSize);
3194
+ onCheckAllData(allPageSize);
3195
+ } else {
3196
+ var currentItemsData = JSON.parse(JSON.stringify(items));
3197
+ setSelectedRowKeys(currentItemsData.map(function (i) {
3198
+ return i.value;
3199
+ }));
3200
+ setPopValue(currentItemsData);
3201
+ setSelectedRows(currentItemsData);
3172
3202
  }
3173
- setDoubleArr(doubleArr);
3174
- setSelectedRowKeys(currentItemsData.map(function (i) {
3175
- return i.value;
3176
- }));
3177
- setPopValue(currentItemsData);
3178
- if (items.length < itemsTotal) ;
3179
3203
  } else {
3180
3204
  setSelectedRowKeys([]);
3181
3205
  setPopValue([]);
3182
- setDoubleArr([]);
3206
+ setSelectedRows([]);
3183
3207
  }
3184
3208
  setIndeterminate(false);
3185
3209
  setCheckedAll(e.target.checked);
@@ -3205,54 +3229,21 @@ var SearchSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {
3205
3229
  }
3206
3230
  }));
3207
3231
  };
3208
- // 扁平化二维数组的方法
3209
- var mapRows = function mapRows(params) {
3210
- var res = [];
3211
- for (var i = 0; i < params.length; i++) {
3212
- if (Array.isArray(params[i])) {
3213
- // 去重
3214
- res = ___default['default'].uniqBy(res.concat(mapRows(params[i])), 'value');
3215
- } else {
3216
- res.push(params[i]);
3217
- // 去重
3218
- res = ___default['default'].uniqBy(res, 'value');
3219
- }
3220
- }
3221
- return res.filter(Boolean); //去掉undefined的情况
3222
- };
3223
3232
 
3224
3233
  var onChangeSelectedKeys = function onChangeSelectedKeys(selectKeys, selectRows) {
3225
- var nowPage = tablePagination === null || tablePagination === void 0 ? void 0 : tablePagination.current;
3226
- var filterRows = []; // 存放拼接后的一维数组的变量
3227
- var sksResult = [];
3228
- if (selectMode) {
3229
- // 处理多选分页累计选中
3230
- // 勾选生成二维数组
3231
- doubleArr[nowPage ? nowPage - 1 : 0] = selectRows;
3232
- // console.log(doubleArr)
3233
- setDoubleArr(doubleArr);
3234
- // 这块扁平化成为一位数组
3235
- filterRows = mapRows(doubleArr);
3236
- // console.log(filterRows)
3237
- sksResult = filterRows.map(function (i) {
3238
- return i.value;
3239
- });
3240
- } else {
3241
- // 处理单选
3242
- filterRows = selectRows;
3243
- sksResult = selectRows.map(function (i) {
3244
- return i.value;
3245
- });
3246
- // 单选 默认直接选中 不需要确定 配置了modalRadioNeedFooter就需要确定
3247
- if (!(modalTableProps === null || modalTableProps === void 0 ? void 0 : modalTableProps.modalRadioNeedFooter)) {
3248
- handleSelectOver(filterRows);
3249
- handleCancel();
3250
- }
3234
+ var sksResult = selectRows.map(function (i) {
3235
+ return i.value;
3236
+ });
3237
+ // 单选 默认直接选中 不需要确定 配置了modalRadioNeedFooter就需要确定
3238
+ if (!selectMode && !(modalTableProps === null || modalTableProps === void 0 ? void 0 : modalTableProps.modalRadioNeedFooter)) {
3239
+ handleSelectOver(selectRows);
3240
+ handleCancel();
3251
3241
  }
3252
3242
  setSelectedRowKeys(sksResult);
3253
- setPopValue(filterRows);
3254
- setIndeterminate(!!filterRows.length && filterRows.length < (tablePagination === null || tablePagination === void 0 ? void 0 : tablePagination.total));
3255
- setCheckedAll(filterRows.length === (tablePagination === null || tablePagination === void 0 ? void 0 : tablePagination.total));
3243
+ setSelectedRows(selectRows);
3244
+ setPopValue(selectRows);
3245
+ setIndeterminate(!!selectRows.length && selectRows.length < (tablePagination === null || tablePagination === void 0 ? void 0 : tablePagination.total));
3246
+ setCheckedAll(selectRows.length === (tablePagination === null || tablePagination === void 0 ? void 0 : tablePagination.total));
3256
3247
  };
3257
3248
  // 生成唯一值
3258
3249
  var makeUniqueValue = function makeUniqueValue() {
@@ -3263,8 +3254,21 @@ var SearchSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {
3263
3254
  var rowSelection = {
3264
3255
  type: selectMode ? 'checkbox' : 'radio',
3265
3256
  selectedRowKeys: selectedRowKeys,
3257
+ preserveSelectedRowKeys: true,
3266
3258
  onChange: function onChange(sks, srs) {
3267
- onChangeSelectedKeys(sks, srs);
3259
+ // 处理翻页后,之前存储的selectedRows变为undefined
3260
+ // selectedRows合并新数组,过滤undefined,过滤留下对应selectedRowKeys的集合
3261
+ var tmpSelectedRows = selectedRows.concat(srs).filter(function (item) {
3262
+ return item != undefined;
3263
+ });
3264
+ var totalSelectedRows = sks.map(function (key) {
3265
+ return tmpSelectedRows.filter(function (item) {
3266
+ return item[mappingValueField] == key;
3267
+ })[0];
3268
+ }).filter(function (item) {
3269
+ return item != undefined;
3270
+ });
3271
+ onChangeSelectedKeys(sks, totalSelectedRows);
3268
3272
  },
3269
3273
  getCheckboxProps: function getCheckboxProps() {
3270
3274
  return {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bit-sun/business-component",
3
- "version": "2.3.14",
3
+ "version": "2.3.16",
4
4
  "scripts": {
5
5
  "start": "dumi dev",
6
6
  "docs:build": "dumi build",
@@ -101,7 +101,7 @@ const SearchSelect = forwardRef((props: any, ref: any) => {
101
101
  const [tableData, setTableData] = useState([]);
102
102
  const [tablePagination, setTablePagination] = useState(tableInitPagination)
103
103
  const [selectedRowKeys, setSelectedRowKeys] = useState([]);
104
- const [doubleArr, setDoubleArr] = useState([]); // 存放双数组的数组
104
+ const [selectedRows, setSelectedRows] = useState([]);
105
105
  const [checkedAll, setCheckedAll] = useState(false)
106
106
  const [indeterminate, setIndeterminate] = useState(false)
107
107
  const [tableFormParams, setTableFormParams] = useState({});
@@ -137,7 +137,7 @@ const SearchSelect = forwardRef((props: any, ref: any) => {
137
137
  }))
138
138
 
139
139
  // 获取数据源 (type: 1下拉框 2/3弹框 不传值默认为下拉框)
140
- const getData = (params = {}, type = 1) => {
140
+ const getData = (params = {}, type = 1,callback?: any) => {
141
141
  if (!requestConfig) return;
142
142
 
143
143
  setFetching(true)
@@ -346,13 +346,17 @@ const SearchSelect = forwardRef((props: any, ref: any) => {
346
346
  : [];
347
347
  }
348
348
  source = Array.isArray(source) ? source : []
349
- if (type === 1) {
350
- ctx?.form?.setFieldSource(resultSourceKey, source)
351
- setItems(source)
352
- setItemsTotal(Number(res?.total || res?.totalCount || source.length))
349
+ if(callback) {
350
+ callback(source)
353
351
  } else {
354
- setTableData(source)
355
- 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
+ }
356
360
  }
357
361
  })
358
362
  .catch((err) => { setFetching(false) });
@@ -406,15 +410,13 @@ const SearchSelect = forwardRef((props: any, ref: any) => {
406
410
  if (value) {
407
411
  if (selectMode) {
408
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 })))
409
414
  setPopValue(labelInValue ? value.map(i => ({ value: i.key, text: i.label })) : value.map(i => ({ value: i })));
410
415
  setIndeterminate(!!value.length && value.length < itemsTotal);
411
416
  setCheckedAll(itemsTotal && value.length === itemsTotal);
412
- // 需清空数据
413
- if (!value.length) {
414
- setDoubleArr([])
415
- }
416
417
  } else {
417
418
  setSelectedRowKeys(labelInValue ? [value.key] : [value])
419
+ setSelectedRows(labelInValue ? [{ [mappingValueField]: value.key, value: value.key, text: value.label }] : [{ [mappingValueField]: value, value: value }])
418
420
  setPopValue(labelInValue ? [{ value: value.key, text: value.label }] : [{ value: value }]);
419
421
  }
420
422
  }
@@ -454,7 +456,7 @@ const SearchSelect = forwardRef((props: any, ref: any) => {
454
456
  setTableData([]);
455
457
  setTablePagination(tableInitPagination);
456
458
  setSelectedRowKeys([]);
457
- setDoubleArr([]);
459
+ setSelectedRows([]);
458
460
  setCheckedAll(false);
459
461
  setIndeterminate(false);
460
462
  };
@@ -515,25 +517,32 @@ const SearchSelect = forwardRef((props: any, ref: any) => {
515
517
  getData({ ...tableFormParams, pageSize: pagination.pageSize, currentPage: pagination.current }, 2)
516
518
  }
517
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
+ }
518
528
  const onChangeCheckAll = (e) => {
519
529
  if (e.target.checked) {
520
530
  // 如果下拉框有所有数据就处理选中所有【items.length === itemsTotal】(最多可选100条)
521
531
  // 如果超过100条 就默认查出所有数据
522
- const currentItemsData = JSON.parse(JSON.stringify(items))
523
- const totalPage = Math.ceil(itemsTotal / tablePagination?.pageSize)
524
- for (let i = 0; i <= totalPage - 1; i++) {
525
- doubleArr[i] = currentItemsData.slice(tablePagination?.pageSize * i, tablePagination?.pageSize * (i + 1))
526
- }
527
- setDoubleArr(doubleArr)
528
- setSelectedRowKeys(currentItemsData.map(i => i.value))
529
- setPopValue(currentItemsData);
530
532
  if (items.length < itemsTotal) {
531
- // 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)
532
541
  }
533
542
  } else {
534
543
  setSelectedRowKeys([])
535
544
  setPopValue([]);
536
- setDoubleArr([])
545
+ setSelectedRows([])
537
546
  }
538
547
  setIndeterminate(false);
539
548
  setCheckedAll(e.target.checked);
@@ -580,37 +589,19 @@ const SearchSelect = forwardRef((props: any, ref: any) => {
580
589
  };
581
590
 
582
591
  const onChangeSelectedKeys = (selectKeys, selectRows) => {
583
- const nowPage = tablePagination?.current;
592
+ let sksResult = selectRows.map((i) => i.value);
584
593
 
585
- let filterRows = []; // 存放拼接后的一维数组的变量
586
- let sksResult = [];
587
-
588
- if (selectMode) {
589
- // 处理多选分页累计选中
590
- // 勾选生成二维数组
591
- doubleArr[nowPage ? nowPage - 1 : 0] = selectRows
592
- // console.log(doubleArr)
593
- setDoubleArr(doubleArr)
594
- // 这块扁平化成为一位数组
595
- filterRows = mapRows(doubleArr);
596
- // console.log(filterRows)
597
-
598
- sksResult = filterRows.map((i) => i.value)
599
- } else {
600
- // 处理单选
601
- filterRows = selectRows;
602
- sksResult = selectRows.map((i) => i.value)
603
- // 单选 默认直接选中 不需要确定 配置了modalRadioNeedFooter就需要确定
604
- if(!modalTableProps?.modalRadioNeedFooter) {
605
- handleSelectOver(filterRows)
606
- handleCancel();
607
- }
594
+ // 单选 默认直接选中 不需要确定 配置了modalRadioNeedFooter就需要确定
595
+ if(!selectMode && !modalTableProps?.modalRadioNeedFooter) {
596
+ handleSelectOver(selectRows)
597
+ handleCancel();
608
598
  }
609
599
 
610
600
  setSelectedRowKeys(sksResult)
611
- setPopValue(filterRows);
612
- setIndeterminate(!!filterRows.length && filterRows.length < tablePagination?.total);
613
- 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);
614
605
  }
615
606
 
616
607
  // 生成唯一值
@@ -623,8 +614,13 @@ const SearchSelect = forwardRef((props: any, ref: any) => {
623
614
  const rowSelection = {
624
615
  type: selectMode ? 'checkbox' : 'radio',
625
616
  selectedRowKeys,
617
+ preserveSelectedRowKeys: true,
626
618
  onChange: (sks, srs) => {
627
- 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)
628
624
  },
629
625
  getCheckboxProps: () => {
630
626
  return ({