@bit-sun/business-component 4.0.12-alpha.11 → 4.0.12-alpha.12
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.
|
@@ -10,3 +10,5 @@ export declare const getVisibleFieldsCount: (modalTableProps: any) => any;
|
|
|
10
10
|
export declare const hasMoreQueryFields: (modalTableProps: any) => boolean;
|
|
11
11
|
export declare const getRealStr: (oldSelect: any, newSelect: any, record: any) => any;
|
|
12
12
|
export declare const getTableHeigth: (list: any) => number;
|
|
13
|
+
export declare const getCurrentSRKs: (selectMode: any, labelInValue: boolean, value: any) => any;
|
|
14
|
+
export declare const getRenderSource: (currentSRKs: any, items: any) => any[];
|
package/dist/index.esm.js
CHANGED
|
@@ -4083,6 +4083,7 @@ var ColSpan = 6; // 查询条件 每行col = 24 /columnsPerRow
|
|
|
4083
4083
|
var handleSourceName = function handleSourceName(sName) {
|
|
4084
4084
|
return sName;
|
|
4085
4085
|
};
|
|
4086
|
+
// ------------------------------------------处理样式相关--开始----------------------------------------
|
|
4086
4087
|
var getFormRowInfo = function getFormRowInfo(list) {
|
|
4087
4088
|
var totalRows = Math.ceil(list.length / columnsPerRow); // 计算总行数
|
|
4088
4089
|
var lastRowColumns = (list.length + 1) % columnsPerRow; // 计算最后一行的实际列数
|
|
@@ -4123,6 +4124,34 @@ var getTableHeigth = function getTableHeigth(list) {
|
|
|
4123
4124
|
if (totalRows == 1) return 358; // modal弹窗760 调整为700 适应小屏
|
|
4124
4125
|
return 411 - totalRows * 10;
|
|
4125
4126
|
};
|
|
4127
|
+
// ------------------------------------------处理样式相关--结束----------------------------------------
|
|
4128
|
+
// ------------------------------------------处理数据相关--开始----------------------------------------
|
|
4129
|
+
var getCurrentSRKs = function getCurrentSRKs(selectMode, labelInValue, value) {
|
|
4130
|
+
return selectMode ? labelInValue ? value === null || value === void 0 ? void 0 : value.map(function (s) {
|
|
4131
|
+
return (s === null || s === void 0 ? void 0 : s.value) || s;
|
|
4132
|
+
}) : value : labelInValue ? (value === null || value === void 0 ? void 0 : value.value) && [value === null || value === void 0 ? void 0 : value.value] || [] : value && [value] || [];
|
|
4133
|
+
};
|
|
4134
|
+
var getRenderSource = function getRenderSource(currentSRKs, items) {
|
|
4135
|
+
// 创建映射对象 用于记录原始选中顺序
|
|
4136
|
+
var orderMap = new Map();
|
|
4137
|
+
currentSRKs.forEach(function (value, index) {
|
|
4138
|
+
orderMap.set(value, index);
|
|
4139
|
+
});
|
|
4140
|
+
// 被选中数据集合,获取之后排序
|
|
4141
|
+
var selectedOption = (items === null || items === void 0 ? void 0 : items.filter(function (option) {
|
|
4142
|
+
return currentSRKs === null || currentSRKs === void 0 ? void 0 : currentSRKs.includes(option.value);
|
|
4143
|
+
})) || [];
|
|
4144
|
+
var selectedOptionSort = (selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.sort(function (a, b) {
|
|
4145
|
+
var _orderMap$get, _orderMap$get2;
|
|
4146
|
+
return ((_orderMap$get = orderMap.get(a.value)) !== null && _orderMap$get !== void 0 ? _orderMap$get : Infinity) - ((_orderMap$get2 = orderMap.get(b.value)) !== null && _orderMap$get2 !== void 0 ? _orderMap$get2 : Infinity);
|
|
4147
|
+
})) || [];
|
|
4148
|
+
// 未选中数据集合
|
|
4149
|
+
var otherOptions = (items === null || items === void 0 ? void 0 : items.filter(function (option) {
|
|
4150
|
+
return !(currentSRKs === null || currentSRKs === void 0 ? void 0 : currentSRKs.includes(option.value));
|
|
4151
|
+
})) || [];
|
|
4152
|
+
return [].concat(_toConsumableArray(selectedOptionSort), _toConsumableArray(otherOptions));
|
|
4153
|
+
};
|
|
4154
|
+
// ------------------------------------------处理数据相关--结束----------------------------------------
|
|
4126
4155
|
|
|
4127
4156
|
var zhankaitiaojian = "data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%3Csvg%20width%3D%2224px%22%20height%3D%2224px%22%20viewBox%3D%220%200%2024%2024%22%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%3E%20%20%20%20%3Ctitle%3Ezhankaitiaojian-icon%3C%2Ftitle%3E%20%20%20%20%3Cdefs%3E%20%20%20%20%20%20%20%20%3Crect%20id%3D%22path-1%22%20x%3D%220%22%20y%3D%220%22%20width%3D%2224%22%20height%3D%2224%22%3E%3C%2Frect%3E%20%20%20%20%3C%2Fdefs%3E%20%20%20%20%3Cg%20id%3D%22%E9%A1%B5%E9%9D%A2-1%22%20stroke%3D%22none%22%20stroke-width%3D%221%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%20%20%20%20%20%20%20%20%3Cg%20id%3D%22icon%22%20transform%3D%22translate%28-702.000000%2C%20-498.000000%29%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%3Cg%20id%3D%22zhankaitiaojian-icon%22%20transform%3D%22translate%28702.000000%2C%20498.000000%29%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cmask%20id%3D%22mask-2%22%20fill%3D%22white%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cuse%20xlink%3Ahref%3D%22%23path-1%22%3E%3C%2Fuse%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fmask%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cuse%20id%3D%22%E8%92%99%E7%89%88%22%20fill%3D%22%23D8D8D8%22%20opacity%3D%220%22%20xlink%3Ahref%3D%22%23path-1%22%3E%3C%2Fuse%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M12.0142082%2C6%20L18%2C11.9972435%20L12.0142082%2C18%20L11.04209%2C17.0260337%20L16.0562218%2C11.9972435%20L11.04209%2C6.97396631%20L12.0142082%2C6%20Z%20M6.97257658%2C6%20L12.9583683%2C11.9972435%20L6.97257658%2C18%20L6.00091666%2C17.0260337%20L11.0150485%2C11.9972435%20L6%2C6.97396631%20L6.97257658%2C6%20Z%22%20id%3D%22%E5%BD%A2%E7%8A%B6%22%20fill%3D%22%23005CFF%22%20fill-rule%3D%22nonzero%22%20mask%3D%22url%28%23mask-2%29%22%20transform%3D%22translate%2812.000000%2C%2012.000000%29%20rotate%28-270.000000%29%20translate%28-12.000000%2C%20-12.000000%29%20%22%3E%3C%2Fpath%3E%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%3C%2Fg%3E%3C%2Fsvg%3E";
|
|
4128
4157
|
|
|
@@ -4588,6 +4617,19 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
4588
4617
|
});
|
|
4589
4618
|
})) : [];
|
|
4590
4619
|
}
|
|
4620
|
+
// 补充搜索项--选中的数据添加到数据源中去
|
|
4621
|
+
var currentSRKs = getCurrentSRKs(selectMode, labelInValue, value);
|
|
4622
|
+
if ((currentSRKs === null || currentSRKs === void 0 ? void 0 : currentSRKs.length) && (currentSRKs === null || currentSRKs === void 0 ? void 0 : currentSRKs.some(function (s) {
|
|
4623
|
+
var _source;
|
|
4624
|
+
return !((_source = source) === null || _source === void 0 ? void 0 : _source.find(function (r) {
|
|
4625
|
+
return r.value == s;
|
|
4626
|
+
}));
|
|
4627
|
+
}))) {
|
|
4628
|
+
var selectedOption = items.filter(function (option) {
|
|
4629
|
+
return currentSRKs === null || currentSRKs === void 0 ? void 0 : currentSRKs.includes(option.value);
|
|
4630
|
+
}) || [];
|
|
4631
|
+
source = (source || []).concat(selectedOption);
|
|
4632
|
+
}
|
|
4591
4633
|
// 数据源 不可以有重复key
|
|
4592
4634
|
source = Array.isArray(source) ? _.uniqBy(source, 'value') : [];
|
|
4593
4635
|
if (callback) {
|
|
@@ -5168,10 +5210,15 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
5168
5210
|
setSelectOpen(visible);
|
|
5169
5211
|
// 关闭下拉框 如果首次本身就不展示数据的 没有选中数据-需要清空查询数据源; 首次展示的默认展示
|
|
5170
5212
|
if (!visible && !(value === null || value === void 0 ? void 0 : value.length)) {
|
|
5171
|
-
|
|
5213
|
+
setTimeout(function () {
|
|
5214
|
+
// 延时 是为了避免 执行时候出现下拉框弹两次的问题-可以看到数据源从展示到显示空数据框的问题
|
|
5215
|
+
resetSelectDataSource();
|
|
5216
|
+
}, 200);
|
|
5172
5217
|
}
|
|
5173
5218
|
};
|
|
5174
5219
|
var renderTable = function renderTable(dataSource) {
|
|
5220
|
+
var currentSRKs = getCurrentSRKs(selectMode, labelInValue, value);
|
|
5221
|
+
var renderSource = getRenderSource(currentSRKs, items);
|
|
5175
5222
|
return /*#__PURE__*/React$1.createElement("div", {
|
|
5176
5223
|
className: "search_select_dropdown_table ".concat(!selectMode ? 'search_select_dropdown_table1' : '')
|
|
5177
5224
|
}, /*#__PURE__*/React$1.createElement(Table, _objectSpread2(_objectSpread2({
|
|
@@ -5181,9 +5228,7 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
5181
5228
|
rowSelection: {
|
|
5182
5229
|
type: 'checkbox',
|
|
5183
5230
|
columnWidth: '24px',
|
|
5184
|
-
selectedRowKeys:
|
|
5185
|
-
return (s === null || s === void 0 ? void 0 : s.value) || s;
|
|
5186
|
-
}) : value,
|
|
5231
|
+
selectedRowKeys: currentSRKs,
|
|
5187
5232
|
preserveSelectedRowKeys: true,
|
|
5188
5233
|
onChange: function onChange(sks, srs) {
|
|
5189
5234
|
var oldSelect = (value === null || value === void 0 ? void 0 : value.map(function (s) {
|
|
@@ -5224,7 +5269,7 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
5224
5269
|
rowSelection: {
|
|
5225
5270
|
type: 'radio',
|
|
5226
5271
|
columnWidth: 0,
|
|
5227
|
-
selectedRowKeys:
|
|
5272
|
+
selectedRowKeys: currentSRKs
|
|
5228
5273
|
},
|
|
5229
5274
|
onRow: function onRow(record, rowKey) {
|
|
5230
5275
|
return {
|
|
@@ -5236,7 +5281,7 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
5236
5281
|
}
|
|
5237
5282
|
}), {}, {
|
|
5238
5283
|
columns: (selectProps === null || selectProps === void 0 ? void 0 : selectProps.renderTableColumns) || [],
|
|
5239
|
-
dataSource:
|
|
5284
|
+
dataSource: renderSource,
|
|
5240
5285
|
size: "middle",
|
|
5241
5286
|
pagination: false,
|
|
5242
5287
|
rowKey: mappingValueField,
|
package/dist/index.js
CHANGED
|
@@ -4106,6 +4106,7 @@ var ColSpan = 6; // 查询条件 每行col = 24 /columnsPerRow
|
|
|
4106
4106
|
var handleSourceName = function handleSourceName(sName) {
|
|
4107
4107
|
return sName;
|
|
4108
4108
|
};
|
|
4109
|
+
// ------------------------------------------处理样式相关--开始----------------------------------------
|
|
4109
4110
|
var getFormRowInfo = function getFormRowInfo(list) {
|
|
4110
4111
|
var totalRows = Math.ceil(list.length / columnsPerRow); // 计算总行数
|
|
4111
4112
|
var lastRowColumns = (list.length + 1) % columnsPerRow; // 计算最后一行的实际列数
|
|
@@ -4146,6 +4147,34 @@ var getTableHeigth = function getTableHeigth(list) {
|
|
|
4146
4147
|
if (totalRows == 1) return 358; // modal弹窗760 调整为700 适应小屏
|
|
4147
4148
|
return 411 - totalRows * 10;
|
|
4148
4149
|
};
|
|
4150
|
+
// ------------------------------------------处理样式相关--结束----------------------------------------
|
|
4151
|
+
// ------------------------------------------处理数据相关--开始----------------------------------------
|
|
4152
|
+
var getCurrentSRKs = function getCurrentSRKs(selectMode, labelInValue, value) {
|
|
4153
|
+
return selectMode ? labelInValue ? value === null || value === void 0 ? void 0 : value.map(function (s) {
|
|
4154
|
+
return (s === null || s === void 0 ? void 0 : s.value) || s;
|
|
4155
|
+
}) : value : labelInValue ? (value === null || value === void 0 ? void 0 : value.value) && [value === null || value === void 0 ? void 0 : value.value] || [] : value && [value] || [];
|
|
4156
|
+
};
|
|
4157
|
+
var getRenderSource = function getRenderSource(currentSRKs, items) {
|
|
4158
|
+
// 创建映射对象 用于记录原始选中顺序
|
|
4159
|
+
var orderMap = new Map();
|
|
4160
|
+
currentSRKs.forEach(function (value, index) {
|
|
4161
|
+
orderMap.set(value, index);
|
|
4162
|
+
});
|
|
4163
|
+
// 被选中数据集合,获取之后排序
|
|
4164
|
+
var selectedOption = (items === null || items === void 0 ? void 0 : items.filter(function (option) {
|
|
4165
|
+
return currentSRKs === null || currentSRKs === void 0 ? void 0 : currentSRKs.includes(option.value);
|
|
4166
|
+
})) || [];
|
|
4167
|
+
var selectedOptionSort = (selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.sort(function (a, b) {
|
|
4168
|
+
var _orderMap$get, _orderMap$get2;
|
|
4169
|
+
return ((_orderMap$get = orderMap.get(a.value)) !== null && _orderMap$get !== void 0 ? _orderMap$get : Infinity) - ((_orderMap$get2 = orderMap.get(b.value)) !== null && _orderMap$get2 !== void 0 ? _orderMap$get2 : Infinity);
|
|
4170
|
+
})) || [];
|
|
4171
|
+
// 未选中数据集合
|
|
4172
|
+
var otherOptions = (items === null || items === void 0 ? void 0 : items.filter(function (option) {
|
|
4173
|
+
return !(currentSRKs === null || currentSRKs === void 0 ? void 0 : currentSRKs.includes(option.value));
|
|
4174
|
+
})) || [];
|
|
4175
|
+
return [].concat(_toConsumableArray(selectedOptionSort), _toConsumableArray(otherOptions));
|
|
4176
|
+
};
|
|
4177
|
+
// ------------------------------------------处理数据相关--结束----------------------------------------
|
|
4149
4178
|
|
|
4150
4179
|
var zhankaitiaojian = "data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%3Csvg%20width%3D%2224px%22%20height%3D%2224px%22%20viewBox%3D%220%200%2024%2024%22%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%3E%20%20%20%20%3Ctitle%3Ezhankaitiaojian-icon%3C%2Ftitle%3E%20%20%20%20%3Cdefs%3E%20%20%20%20%20%20%20%20%3Crect%20id%3D%22path-1%22%20x%3D%220%22%20y%3D%220%22%20width%3D%2224%22%20height%3D%2224%22%3E%3C%2Frect%3E%20%20%20%20%3C%2Fdefs%3E%20%20%20%20%3Cg%20id%3D%22%E9%A1%B5%E9%9D%A2-1%22%20stroke%3D%22none%22%20stroke-width%3D%221%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%20%20%20%20%20%20%20%20%3Cg%20id%3D%22icon%22%20transform%3D%22translate%28-702.000000%2C%20-498.000000%29%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%3Cg%20id%3D%22zhankaitiaojian-icon%22%20transform%3D%22translate%28702.000000%2C%20498.000000%29%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cmask%20id%3D%22mask-2%22%20fill%3D%22white%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cuse%20xlink%3Ahref%3D%22%23path-1%22%3E%3C%2Fuse%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fmask%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cuse%20id%3D%22%E8%92%99%E7%89%88%22%20fill%3D%22%23D8D8D8%22%20opacity%3D%220%22%20xlink%3Ahref%3D%22%23path-1%22%3E%3C%2Fuse%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M12.0142082%2C6%20L18%2C11.9972435%20L12.0142082%2C18%20L11.04209%2C17.0260337%20L16.0562218%2C11.9972435%20L11.04209%2C6.97396631%20L12.0142082%2C6%20Z%20M6.97257658%2C6%20L12.9583683%2C11.9972435%20L6.97257658%2C18%20L6.00091666%2C17.0260337%20L11.0150485%2C11.9972435%20L6%2C6.97396631%20L6.97257658%2C6%20Z%22%20id%3D%22%E5%BD%A2%E7%8A%B6%22%20fill%3D%22%23005CFF%22%20fill-rule%3D%22nonzero%22%20mask%3D%22url%28%23mask-2%29%22%20transform%3D%22translate%2812.000000%2C%2012.000000%29%20rotate%28-270.000000%29%20translate%28-12.000000%2C%20-12.000000%29%20%22%3E%3C%2Fpath%3E%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%3C%2Fg%3E%3C%2Fsvg%3E";
|
|
4151
4180
|
|
|
@@ -4611,6 +4640,19 @@ var SearchSelect = /*#__PURE__*/React$1.forwardRef(function (props, ref) {
|
|
|
4611
4640
|
});
|
|
4612
4641
|
})) : [];
|
|
4613
4642
|
}
|
|
4643
|
+
// 补充搜索项--选中的数据添加到数据源中去
|
|
4644
|
+
var currentSRKs = getCurrentSRKs(selectMode, labelInValue, value);
|
|
4645
|
+
if ((currentSRKs === null || currentSRKs === void 0 ? void 0 : currentSRKs.length) && (currentSRKs === null || currentSRKs === void 0 ? void 0 : currentSRKs.some(function (s) {
|
|
4646
|
+
var _source;
|
|
4647
|
+
return !((_source = source) === null || _source === void 0 ? void 0 : _source.find(function (r) {
|
|
4648
|
+
return r.value == s;
|
|
4649
|
+
}));
|
|
4650
|
+
}))) {
|
|
4651
|
+
var selectedOption = items.filter(function (option) {
|
|
4652
|
+
return currentSRKs === null || currentSRKs === void 0 ? void 0 : currentSRKs.includes(option.value);
|
|
4653
|
+
}) || [];
|
|
4654
|
+
source = (source || []).concat(selectedOption);
|
|
4655
|
+
}
|
|
4614
4656
|
// 数据源 不可以有重复key
|
|
4615
4657
|
source = Array.isArray(source) ? ___default['default'].uniqBy(source, 'value') : [];
|
|
4616
4658
|
if (callback) {
|
|
@@ -5191,10 +5233,15 @@ var SearchSelect = /*#__PURE__*/React$1.forwardRef(function (props, ref) {
|
|
|
5191
5233
|
setSelectOpen(visible);
|
|
5192
5234
|
// 关闭下拉框 如果首次本身就不展示数据的 没有选中数据-需要清空查询数据源; 首次展示的默认展示
|
|
5193
5235
|
if (!visible && !(value === null || value === void 0 ? void 0 : value.length)) {
|
|
5194
|
-
|
|
5236
|
+
setTimeout(function () {
|
|
5237
|
+
// 延时 是为了避免 执行时候出现下拉框弹两次的问题-可以看到数据源从展示到显示空数据框的问题
|
|
5238
|
+
resetSelectDataSource();
|
|
5239
|
+
}, 200);
|
|
5195
5240
|
}
|
|
5196
5241
|
};
|
|
5197
5242
|
var renderTable = function renderTable(dataSource) {
|
|
5243
|
+
var currentSRKs = getCurrentSRKs(selectMode, labelInValue, value);
|
|
5244
|
+
var renderSource = getRenderSource(currentSRKs, items);
|
|
5198
5245
|
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
5199
5246
|
className: "search_select_dropdown_table ".concat(!selectMode ? 'search_select_dropdown_table1' : '')
|
|
5200
5247
|
}, /*#__PURE__*/React__default['default'].createElement(antd.Table, _objectSpread2(_objectSpread2({
|
|
@@ -5204,9 +5251,7 @@ var SearchSelect = /*#__PURE__*/React$1.forwardRef(function (props, ref) {
|
|
|
5204
5251
|
rowSelection: {
|
|
5205
5252
|
type: 'checkbox',
|
|
5206
5253
|
columnWidth: '24px',
|
|
5207
|
-
selectedRowKeys:
|
|
5208
|
-
return (s === null || s === void 0 ? void 0 : s.value) || s;
|
|
5209
|
-
}) : value,
|
|
5254
|
+
selectedRowKeys: currentSRKs,
|
|
5210
5255
|
preserveSelectedRowKeys: true,
|
|
5211
5256
|
onChange: function onChange(sks, srs) {
|
|
5212
5257
|
var oldSelect = (value === null || value === void 0 ? void 0 : value.map(function (s) {
|
|
@@ -5247,7 +5292,7 @@ var SearchSelect = /*#__PURE__*/React$1.forwardRef(function (props, ref) {
|
|
|
5247
5292
|
rowSelection: {
|
|
5248
5293
|
type: 'radio',
|
|
5249
5294
|
columnWidth: 0,
|
|
5250
|
-
selectedRowKeys:
|
|
5295
|
+
selectedRowKeys: currentSRKs
|
|
5251
5296
|
},
|
|
5252
5297
|
onRow: function onRow(record, rowKey) {
|
|
5253
5298
|
return {
|
|
@@ -5259,7 +5304,7 @@ var SearchSelect = /*#__PURE__*/React$1.forwardRef(function (props, ref) {
|
|
|
5259
5304
|
}
|
|
5260
5305
|
}), {}, {
|
|
5261
5306
|
columns: (selectProps === null || selectProps === void 0 ? void 0 : selectProps.renderTableColumns) || [],
|
|
5262
|
-
dataSource:
|
|
5307
|
+
dataSource: renderSource,
|
|
5263
5308
|
size: "middle",
|
|
5264
5309
|
pagination: false,
|
|
5265
5310
|
rowKey: mappingValueField,
|
package/package.json
CHANGED
|
@@ -8,7 +8,7 @@ import { stringify } from 'querystring';
|
|
|
8
8
|
import _, { escapeRegExp, isNil, values } from "lodash"
|
|
9
9
|
import './index.less';
|
|
10
10
|
import { BusinessSearchSelect, QueryMutipleInput } from '@/index';
|
|
11
|
-
import { handleSourceName, getFormRowInfo, hasMoreQueryFields, defaultVisibleFieldsCount, getRealStr, ColSpan, getTableHeigth } from './utils';
|
|
11
|
+
import { handleSourceName, getFormRowInfo, hasMoreQueryFields, defaultVisibleFieldsCount, getRealStr, ColSpan, getTableHeigth, getCurrentSRKs, getRenderSource } from './utils';
|
|
12
12
|
import { judgeIsRequestError } from '@/utils/requestUtils';
|
|
13
13
|
import zhankaitiaojian from '../../../assets/zhankaitiaojian-icon.svg';
|
|
14
14
|
|
|
@@ -403,8 +403,15 @@ const SearchSelect = forwardRef((props: any, ref: any) => {
|
|
|
403
403
|
})
|
|
404
404
|
: [];
|
|
405
405
|
}
|
|
406
|
+
// 补充搜索项--选中的数据添加到数据源中去
|
|
407
|
+
const currentSRKs = getCurrentSRKs(selectMode,labelInValue,value)
|
|
408
|
+
if(currentSRKs?.length && currentSRKs?.some(s=> !source?.find(r=> r.value==s))) {
|
|
409
|
+
const selectedOption = items.filter(option => currentSRKs?.includes(option.value))||[];
|
|
410
|
+
source = (source||[]).concat(selectedOption)
|
|
411
|
+
}
|
|
406
412
|
// 数据源 不可以有重复key
|
|
407
413
|
source = Array.isArray(source) ? _.uniqBy(source, 'value') : [];
|
|
414
|
+
|
|
408
415
|
if(callback) {
|
|
409
416
|
callback(source)
|
|
410
417
|
} else {
|
|
@@ -918,10 +925,16 @@ const SearchSelect = forwardRef((props: any, ref: any) => {
|
|
|
918
925
|
setSelectOpen(visible);
|
|
919
926
|
// 关闭下拉框 如果首次本身就不展示数据的 没有选中数据-需要清空查询数据源; 首次展示的默认展示
|
|
920
927
|
if (!visible && !value?.length) {
|
|
921
|
-
|
|
928
|
+
setTimeout(() => {
|
|
929
|
+
// 延时 是为了避免 执行时候出现下拉框弹两次的问题-可以看到数据源从展示到显示空数据框的问题
|
|
930
|
+
resetSelectDataSource()
|
|
931
|
+
}, 200)
|
|
922
932
|
}
|
|
923
933
|
}
|
|
924
934
|
const renderTable = (dataSource) => {
|
|
935
|
+
const currentSRKs = getCurrentSRKs(selectMode,labelInValue,value)
|
|
936
|
+
const renderSource = getRenderSource(currentSRKs,items)
|
|
937
|
+
|
|
925
938
|
return (
|
|
926
939
|
<div className={`search_select_dropdown_table ${!selectMode?'search_select_dropdown_table1':''}`}>
|
|
927
940
|
<Table
|
|
@@ -931,7 +944,7 @@ const SearchSelect = forwardRef((props: any, ref: any) => {
|
|
|
931
944
|
rowSelection: {
|
|
932
945
|
type: 'checkbox',
|
|
933
946
|
columnWidth: '24px',
|
|
934
|
-
selectedRowKeys:
|
|
947
|
+
selectedRowKeys: currentSRKs,
|
|
935
948
|
preserveSelectedRowKeys: true, // 避免搜索之后 没有了选中前的数据 保证sks的正确性
|
|
936
949
|
onChange: (sks, srs) => {
|
|
937
950
|
const oldSelect = value?.map(s => ({ value: s?.value||s }))||[];
|
|
@@ -955,7 +968,7 @@ const SearchSelect = forwardRef((props: any, ref: any) => {
|
|
|
955
968
|
rowSelection: {
|
|
956
969
|
type: 'radio',
|
|
957
970
|
columnWidth: 0,
|
|
958
|
-
selectedRowKeys:
|
|
971
|
+
selectedRowKeys: currentSRKs,
|
|
959
972
|
},
|
|
960
973
|
onRow: (record, rowKey) => ({
|
|
961
974
|
onClick: event => {
|
|
@@ -965,7 +978,7 @@ const SearchSelect = forwardRef((props: any, ref: any) => {
|
|
|
965
978
|
})
|
|
966
979
|
})}
|
|
967
980
|
columns={selectProps?.renderTableColumns||[]}
|
|
968
|
-
dataSource={
|
|
981
|
+
dataSource={renderSource}
|
|
969
982
|
size="middle"
|
|
970
983
|
pagination={false}
|
|
971
984
|
rowKey={mappingValueField}
|
|
@@ -4,6 +4,7 @@ export const handleSourceName = (sName: any) => {
|
|
|
4
4
|
return sName
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
+
// ------------------------------------------处理样式相关--开始----------------------------------------
|
|
7
8
|
export const getFormRowInfo = (list: any) => {
|
|
8
9
|
const totalRows = Math.ceil(list.length / columnsPerRow); // 计算总行数
|
|
9
10
|
const lastRowColumns = (list.length+1) % columnsPerRow; // 计算最后一行的实际列数
|
|
@@ -35,4 +36,36 @@ export const getTableHeigth = (list: any) => {
|
|
|
35
36
|
const totalRows = Math.ceil((list?.length+1) / 4);
|
|
36
37
|
if(totalRows == 1) return 358; // modal弹窗760 调整为700 适应小屏
|
|
37
38
|
return 411 - totalRows*10
|
|
38
|
-
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// ------------------------------------------处理样式相关--结束----------------------------------------
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
// ------------------------------------------处理数据相关--开始----------------------------------------
|
|
45
|
+
export const getCurrentSRKs = (selectMode: any,labelInValue:boolean,value: any) => {
|
|
46
|
+
return selectMode ? (labelInValue ? value?.map((s: any)=> (s?.value||s)) : value) : (labelInValue ? value?.value&&[value?.value]||[] : value&&[value]||[])
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export const getRenderSource = (currentSRKs: any, items: any) => {
|
|
50
|
+
// 创建映射对象 用于记录原始选中顺序
|
|
51
|
+
const orderMap = new Map<number, number>();
|
|
52
|
+
currentSRKs.forEach((value: any, index: number) => {
|
|
53
|
+
orderMap.set(value, index);
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
// 被选中数据集合,获取之后排序
|
|
57
|
+
const selectedOption = items?.filter((option: any) => currentSRKs?.includes(option.value))||[];
|
|
58
|
+
const selectedOptionSort = selectedOption?.sort((a: any, b: any) => {
|
|
59
|
+
return (orderMap.get(a.value) ?? Infinity) - (orderMap.get(b.value) ?? Infinity);
|
|
60
|
+
})||[];
|
|
61
|
+
|
|
62
|
+
// 未选中数据集合
|
|
63
|
+
const otherOptions = items?.filter((option: any) => !currentSRKs?.includes(option.value))||[];
|
|
64
|
+
|
|
65
|
+
return [
|
|
66
|
+
...selectedOptionSort,
|
|
67
|
+
...otherOptions
|
|
68
|
+
]
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// ------------------------------------------处理数据相关--结束----------------------------------------
|