@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 +78 -74
- package/dist/index.js +78 -74
- package/package.json +1 -1
- package/src/components/Functional/SearchSelect/index.tsx +47 -51
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
|
-
|
|
2715
|
-
|
|
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 (
|
|
2946
|
-
|
|
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
|
-
|
|
2952
|
-
|
|
2953
|
-
|
|
2954
|
-
|
|
2955
|
-
|
|
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
|
-
|
|
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
|
-
|
|
3150
|
-
|
|
3151
|
-
|
|
3152
|
-
|
|
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
|
-
|
|
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
|
|
3207
|
-
|
|
3208
|
-
|
|
3209
|
-
|
|
3210
|
-
|
|
3211
|
-
|
|
3212
|
-
|
|
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
|
-
|
|
3235
|
-
|
|
3236
|
-
|
|
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
|
-
|
|
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
|
-
|
|
2734
|
-
|
|
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 (
|
|
2965
|
-
|
|
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
|
-
|
|
2971
|
-
|
|
2972
|
-
|
|
2973
|
-
|
|
2974
|
-
|
|
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
|
-
|
|
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
|
-
|
|
3169
|
-
|
|
3170
|
-
|
|
3171
|
-
|
|
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
|
-
|
|
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
|
|
3226
|
-
|
|
3227
|
-
|
|
3228
|
-
|
|
3229
|
-
|
|
3230
|
-
|
|
3231
|
-
|
|
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
|
-
|
|
3254
|
-
|
|
3255
|
-
|
|
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
|
-
|
|
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
|
@@ -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 [
|
|
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
|
|
350
|
-
|
|
351
|
-
setItems(source)
|
|
352
|
-
setItemsTotal(Number(res?.total || res?.totalCount || source.length))
|
|
349
|
+
if(callback) {
|
|
350
|
+
callback(source)
|
|
353
351
|
} else {
|
|
354
|
-
|
|
355
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
592
|
+
let sksResult = selectRows.map((i) => i.value);
|
|
584
593
|
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
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
|
-
|
|
612
|
-
|
|
613
|
-
|
|
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
|
-
|
|
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 ({
|