@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 +91 -81
- package/dist/index.js +91 -81
- package/package.json +1 -1
- package/src/components/Functional/SearchSelect/index.tsx +69 -57
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
|
-
|
|
2703
|
-
|
|
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 (
|
|
2935
|
-
|
|
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
|
-
|
|
2941
|
-
|
|
2942
|
-
|
|
2943
|
-
|
|
2944
|
-
|
|
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
|
-
|
|
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
|
-
|
|
3139
|
-
|
|
3140
|
-
|
|
3141
|
-
|
|
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
|
-
|
|
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(
|
|
3186
|
+
var heightLightTxt = function heightLightTxt(text, heightTxt) {
|
|
3161
3187
|
if (heightTxt === '') {
|
|
3162
|
-
return
|
|
3188
|
+
return text;
|
|
3163
3189
|
}
|
|
3164
3190
|
// 前面filterOption 不区分大小写,这里用i
|
|
3165
3191
|
var regexp = new RegExp(heightTxt, 'gi');
|
|
3166
|
-
return
|
|
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
|
|
3196
|
-
|
|
3197
|
-
|
|
3198
|
-
|
|
3199
|
-
|
|
3200
|
-
|
|
3201
|
-
|
|
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
|
-
|
|
3224
|
-
|
|
3225
|
-
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
2722
|
-
|
|
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 (
|
|
2954
|
-
|
|
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
|
-
|
|
2960
|
-
|
|
2961
|
-
|
|
2962
|
-
|
|
2963
|
-
|
|
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
|
-
|
|
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
|
-
|
|
3158
|
-
|
|
3159
|
-
|
|
3160
|
-
|
|
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
|
-
|
|
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(
|
|
3205
|
+
var heightLightTxt = function heightLightTxt(text, heightTxt) {
|
|
3180
3206
|
if (heightTxt === '') {
|
|
3181
|
-
return
|
|
3207
|
+
return text;
|
|
3182
3208
|
}
|
|
3183
3209
|
// 前面filterOption 不区分大小写,这里用i
|
|
3184
3210
|
var regexp = new RegExp(heightTxt, 'gi');
|
|
3185
|
-
return
|
|
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
|
|
3215
|
-
|
|
3216
|
-
|
|
3217
|
-
|
|
3218
|
-
|
|
3219
|
-
|
|
3220
|
-
|
|
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
|
-
|
|
3243
|
-
|
|
3244
|
-
|
|
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
|
-
|
|
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:
|
|
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
|
@@ -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 [
|
|
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:
|
|
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:
|
|
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
|
|
345
|
-
|
|
346
|
-
setItems(source)
|
|
347
|
-
setItemsTotal(Number(res?.total || res?.totalCount || source.length))
|
|
349
|
+
if(callback) {
|
|
350
|
+
callback(source)
|
|
348
351
|
} else {
|
|
349
|
-
|
|
350
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 = (
|
|
555
|
+
const heightLightTxt = (text, heightTxt) => {
|
|
542
556
|
if (heightTxt === '') {
|
|
543
|
-
return
|
|
557
|
+
return text
|
|
544
558
|
}
|
|
545
559
|
// 前面filterOption 不区分大小写,这里用i
|
|
546
560
|
const regexp = new RegExp(heightTxt, 'gi')
|
|
547
|
-
return
|
|
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
|
-
|
|
579
|
-
|
|
580
|
-
let filterRows = []; // 存放拼接后的一维数组的变量
|
|
581
|
-
let sksResult = [];
|
|
592
|
+
let sksResult = selectRows.map((i) => i.value);
|
|
582
593
|
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
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
|
-
|
|
607
|
-
|
|
608
|
-
|
|
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
|
-
|
|
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({
|
|
786
|
+
{LightHeightOption({
|
|
787
|
+
text: handleSelectOptionsShowValue(specialBracket, item),
|
|
788
|
+
filterTxt: searchValue
|
|
789
|
+
})}
|
|
778
790
|
</Option>
|
|
779
791
|
))}
|
|
780
792
|
</Select>
|