@bit-sun/business-component 4.2.1-alpha.22-aiwei → 4.2.1-alpha.23-aiwei

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -5347,10 +5347,17 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
5347
5347
  searchStartLength: searchStartLength
5348
5348
  }, rCTemp);
5349
5349
  var resultSourceKey = handleSourceName(sourceName || (requestConfig === null || requestConfig === void 0 ? void 0 : requestConfig.sourceName) || (ctx === null || ctx === void 0 ? void 0 : ctx.name) || 'supplierCode');
5350
+ var TABLE_PAGE_SIZE_OPTIONS = [10, 20, 50, 100, 200, 500, 1000, 2000, 3000];
5351
+ var resolveTablePageSize = function resolveTablePageSize(pageSize) {
5352
+ if (TABLE_PAGE_SIZE_OPTIONS.includes(Number(pageSize))) {
5353
+ return Number(pageSize);
5354
+ }
5355
+ return 20;
5356
+ };
5350
5357
  var selectMode = selectProps === null || selectProps === void 0 ? void 0 : selectProps.mode; // 设定当前选择器 为单选或者多选模式 无设定为单选模式(默认)
5351
5358
  var initVal = value || (selectMode ? [] : null);
5352
5359
  var pageSize = 100; // 下拉框默认分页 条数
5353
- var tableInitPageSize = 20; // 弹框默认分页 条数
5360
+ var tableInitPageSize = resolveTablePageSize((props === null || props === void 0 ? void 0 : props.pageSize) || null); // 弹框默认分页 条数
5354
5361
  var currentPage = 1;
5355
5362
  var selectParamsKey = (requestConfig === null || requestConfig === void 0 ? void 0 : requestConfig.filter) || 'qp-codeAndName-like';
5356
5363
  var selectParamsInitKey = (requestConfig === null || requestConfig === void 0 ? void 0 : requestConfig.filterInit) || selectParamsKey;
@@ -5381,7 +5388,7 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
5381
5388
  var tableInitPagination = _objectSpread2(_objectSpread2({}, initPagination), {}, {
5382
5389
  total: 0,
5383
5390
  current: 1,
5384
- pageSizeOptions: [10, 20, 50, 100, 500, 1000]
5391
+ pageSizeOptions: TABLE_PAGE_SIZE_OPTIONS.map(String)
5385
5392
  });
5386
5393
  var disabled = !!noOperate || (selectProps === null || selectProps === void 0 ? void 0 : selectProps.disabled) || (props === null || props === void 0 ? void 0 : props.disabled);
5387
5394
  var isHaveDependency = fixedparameter && fieldValToParam && ctx;
@@ -5436,6 +5443,10 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
5436
5443
  _useState18 = _slicedToArray(_useState17, 2),
5437
5444
  uniqueValue = _useState18[0],
5438
5445
  setUniqueValue = _useState18[1];
5446
+ var _useState19 = useState({}),
5447
+ _useState20 = _slicedToArray(_useState19, 2),
5448
+ selectToggleMap = _useState20[0],
5449
+ setSelectToggleMap = _useState20[1];
5439
5450
  var _useDebounceFn = useDebounceFn(function (v) {
5440
5451
  // 优化搜索参数 支持传多个
5441
5452
  var searchParams = {};
@@ -5464,58 +5475,58 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
5464
5475
  var _Form$useForm = Form.useForm(),
5465
5476
  _Form$useForm2 = _slicedToArray(_Form$useForm, 1),
5466
5477
  form = _Form$useForm2[0];
5467
- var _useState19 = useState(true),
5468
- _useState20 = _slicedToArray(_useState19, 2),
5469
- collapsed = _useState20[0],
5470
- setCollapsed = _useState20[1];
5471
5478
  var _useState21 = useState(true),
5472
5479
  _useState22 = _slicedToArray(_useState21, 2),
5473
- caretLeftFlag = _useState22[0],
5474
- setCaretLeftFlag = _useState22[1];
5475
- var _useState23 = useState([]),
5480
+ collapsed = _useState22[0],
5481
+ setCollapsed = _useState22[1];
5482
+ var _useState23 = useState(true),
5476
5483
  _useState24 = _slicedToArray(_useState23, 2),
5477
- tableData = _useState24[0],
5478
- setTableData = _useState24[1];
5479
- var _useState25 = useState(tableInitPagination),
5484
+ caretLeftFlag = _useState24[0],
5485
+ setCaretLeftFlag = _useState24[1];
5486
+ var _useState25 = useState([]),
5480
5487
  _useState26 = _slicedToArray(_useState25, 2),
5481
- tablePagination = _useState26[0],
5482
- setTablePagination = _useState26[1];
5483
- var _useState27 = useState([]),
5488
+ tableData = _useState26[0],
5489
+ setTableData = _useState26[1];
5490
+ var _useState27 = useState(tableInitPagination),
5484
5491
  _useState28 = _slicedToArray(_useState27, 2),
5485
- selectedRowKeys = _useState28[0],
5486
- setSelectedRowKeys = _useState28[1];
5492
+ tablePagination = _useState28[0],
5493
+ setTablePagination = _useState28[1];
5487
5494
  var _useState29 = useState([]),
5488
5495
  _useState30 = _slicedToArray(_useState29, 2),
5489
- selectedRows = _useState30[0],
5490
- setSelectedRows = _useState30[1];
5491
- var _useState31 = useState(false),
5496
+ selectedRowKeys = _useState30[0],
5497
+ setSelectedRowKeys = _useState30[1];
5498
+ var _useState31 = useState([]),
5492
5499
  _useState32 = _slicedToArray(_useState31, 2),
5493
- checkedAll = _useState32[0],
5494
- setCheckedAll = _useState32[1];
5500
+ selectedRows = _useState32[0],
5501
+ setSelectedRows = _useState32[1];
5495
5502
  var _useState33 = useState(false),
5496
5503
  _useState34 = _slicedToArray(_useState33, 2),
5497
- indeterminate = _useState34[0],
5498
- setIndeterminate = _useState34[1];
5499
- var _useState35 = useState({}),
5504
+ checkedAll = _useState34[0],
5505
+ setCheckedAll = _useState34[1];
5506
+ var _useState35 = useState(false),
5500
5507
  _useState36 = _slicedToArray(_useState35, 2),
5501
- tableFormParams = _useState36[0],
5502
- setTableFormParams = _useState36[1];
5503
- var _useState37 = useState(false),
5508
+ indeterminate = _useState36[0],
5509
+ setIndeterminate = _useState36[1];
5510
+ var _useState37 = useState({}),
5504
5511
  _useState38 = _slicedToArray(_useState37, 2),
5505
- tooltipVisible = _useState38[0],
5506
- setTooltipVisible = _useState38[1];
5507
- var _useState39 = useState(handleTableColumns(modalTableProps === null || modalTableProps === void 0 ? void 0 : modalTableProps.tableColumns)),
5512
+ tableFormParams = _useState38[0],
5513
+ setTableFormParams = _useState38[1];
5514
+ var _useState39 = useState(false),
5508
5515
  _useState40 = _slicedToArray(_useState39, 2),
5509
- tableShowColumns = _useState40[0],
5510
- setTabletShowColumns = _useState40[1]; // 默认展示表头-modalTableProps?.tableColumns
5511
- var _useState41 = useState(false),
5516
+ tooltipVisible = _useState40[0],
5517
+ setTooltipVisible = _useState40[1];
5518
+ var _useState41 = useState(handleTableColumns(modalTableProps === null || modalTableProps === void 0 ? void 0 : modalTableProps.tableColumns)),
5512
5519
  _useState42 = _slicedToArray(_useState41, 2),
5513
- confirmLoading = _useState42[0],
5514
- setConfirmLoading = _useState42[1];
5520
+ tableShowColumns = _useState42[0],
5521
+ setTabletShowColumns = _useState42[1]; // 默认展示表头-modalTableProps?.tableColumns
5515
5522
  var _useState43 = useState(false),
5516
5523
  _useState44 = _slicedToArray(_useState43, 2),
5517
- modalSearched = _useState44[0],
5518
- setModalSearched = _useState44[1];
5524
+ confirmLoading = _useState44[0],
5525
+ setConfirmLoading = _useState44[1];
5526
+ var _useState45 = useState(false),
5527
+ _useState46 = _slicedToArray(_useState45, 2),
5528
+ modalSearched = _useState46[0],
5529
+ setModalSearched = _useState46[1];
5519
5530
  var setSelectDataSource = function setSelectDataSource(list, total) {
5520
5531
  setItems(list);
5521
5532
  setItemsTotal(total);
@@ -6003,13 +6014,13 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
6003
6014
  })) || [];
6004
6015
  var searchList = (modalTableProps === null || modalTableProps === void 0 ? void 0 : modalTableProps.noEmptySearchField) ? list : list === null || list === void 0 ? void 0 : list.concat(addKong);
6005
6016
  return searchList.map(function (i, index) {
6006
- var _i$field, _i$field3, _i$field5, _i$field7, _i$field9, _i$field0, _i$field1, _i$field10, _i$field12, _i$field13;
6017
+ var _i$field, _i$field6, _i$field8, _i$field0, _i$field10, _i$field11, _i$field12, _i$field13, _i$field15, _i$field16;
6007
6018
  if ((i === null || i === void 0 ? void 0 : i.type) === 'kong') return /*#__PURE__*/React$1.createElement(Col, {
6008
6019
  span: ColSpan,
6009
6020
  key: i
6010
6021
  });
6011
6022
  if ((i === null || i === void 0 ? void 0 : i.type) === 'select' || (i === null || i === void 0 ? void 0 : (_i$field = i.field) === null || _i$field === void 0 ? void 0 : _i$field.type) === 'select') {
6012
- var _i$field2, _i$initialSource;
6023
+ var _i$field2, _i$field3, _i$field3$props, _i$initialSource;
6013
6024
  return /*#__PURE__*/React$1.createElement(Col, {
6014
6025
  span: ColSpan,
6015
6026
  key: i.name
@@ -6026,7 +6037,63 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
6026
6037
  return onSearchTable();
6027
6038
  }
6028
6039
  }, i === null || i === void 0 ? void 0 : (_i$field2 = i.field) === null || _i$field2 === void 0 ? void 0 : _i$field2.props), {}, {
6029
- disabled: setDisabled(i.name)
6040
+ disabled: setDisabled(i.name),
6041
+ mode: i === null || i === void 0 ? void 0 : (_i$field3 = i.field) === null || _i$field3 === void 0 ? void 0 : (_i$field3$props = _i$field3.props) === null || _i$field3$props === void 0 ? void 0 : _i$field3$props.mode,
6042
+ dropdownRender: function dropdownRender(menu) {
6043
+ var _i$field4, _i$field4$props, _i$field5, _i$field5$props;
6044
+ // 候选项数组(去重)
6045
+ var allValues = Array.isArray(i === null || i === void 0 ? void 0 : i.initialSource) ? Array.from(new Set(i.initialSource.map(function (s) {
6046
+ return s.value;
6047
+ }).filter(function (v) {
6048
+ return v !== undefined && v !== null;
6049
+ }))) : [];
6050
+ var isMulti = (i === null || i === void 0 ? void 0 : (_i$field4 = i.field) === null || _i$field4 === void 0 ? void 0 : (_i$field4$props = _i$field4.props) === null || _i$field4$props === void 0 ? void 0 : _i$field4$props.mode) === 'multiple' || (i === null || i === void 0 ? void 0 : (_i$field5 = i.field) === null || _i$field5 === void 0 ? void 0 : (_i$field5$props = _i$field5.props) === null || _i$field5$props === void 0 ? void 0 : _i$field5$props.mode) === 'tags';
6051
+ // 当前 toggle 状态(true 表示下一次点击是反选 -> 显示为“反选”)
6052
+ var toggled = !!selectToggleMap[i.name];
6053
+ var label = toggled ? '反选' : '全选';
6054
+ // 通过 props.allSelectValues 控制按钮是否显示
6055
+ var showSelectAllButton = props.showAllSelectBtn && isMulti && allValues.length > 0;
6056
+ return /*#__PURE__*/React$1.createElement("div", null, showSelectAllButton && (/*#__PURE__*/React$1.createElement("div", {
6057
+ style: {
6058
+ padding: 6,
6059
+ display: 'flex',
6060
+ justifyContent: 'flex-end',
6061
+ alignItems: 'center'
6062
+ }
6063
+ }, /*#__PURE__*/React$1.createElement(Button, {
6064
+ type: "link",
6065
+ size: "small",
6066
+ onMouseDown: function onMouseDown(e) {
6067
+ return e.preventDefault();
6068
+ },
6069
+ onClick: function onClick(e) {
6070
+ e.stopPropagation();
6071
+ var cur = form.getFieldValue(i.name) || [];
6072
+ var curArr = Array.isArray(cur) ? cur : [cur].filter(Boolean);
6073
+ if (!toggled) {
6074
+ // 全选:把所有候选值写入表单
6075
+ form.setFieldsValue(_defineProperty({}, i.name, allValues));
6076
+ setSelectToggleMap(function (prev) {
6077
+ return _objectSpread2(_objectSpread2({}, prev || {}), {}, _defineProperty({}, i.name, true));
6078
+ });
6079
+ } else {
6080
+ // 反选:当前实现为“把候选项中未被选中的项选上”(基于当前值取补集)
6081
+ var newVals = allValues.filter(function (v) {
6082
+ return !curArr.includes(v);
6083
+ });
6084
+ form.setFieldsValue(_defineProperty({}, i.name, newVals));
6085
+ setSelectToggleMap(function (prev) {
6086
+ return _objectSpread2(_objectSpread2({}, prev || {}), {}, _defineProperty({}, i.name, false));
6087
+ });
6088
+ }
6089
+ },
6090
+ style: {
6091
+ padding: '0 6px',
6092
+ height: 20,
6093
+ lineHeight: '20px'
6094
+ }
6095
+ }, label))), /*#__PURE__*/React$1.createElement("div", null, menu));
6096
+ }
6030
6097
  }), (i === null || i === void 0 ? void 0 : (_i$initialSource = i.initialSource) === null || _i$initialSource === void 0 ? void 0 : _i$initialSource.length) && (i === null || i === void 0 ? void 0 : i.initialSource.map(function (m) {
6031
6098
  return /*#__PURE__*/React$1.createElement(Option$1, {
6032
6099
  value: m.value,
@@ -6034,8 +6101,8 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
6034
6101
  }, m.text);
6035
6102
  })))));
6036
6103
  }
6037
- if ((i === null || i === void 0 ? void 0 : i.type) === 'treeSelect' || (i === null || i === void 0 ? void 0 : (_i$field3 = i.field) === null || _i$field3 === void 0 ? void 0 : _i$field3.type) === 'treeSelect') {
6038
- var _i$field4;
6104
+ if ((i === null || i === void 0 ? void 0 : i.type) === 'treeSelect' || (i === null || i === void 0 ? void 0 : (_i$field6 = i.field) === null || _i$field6 === void 0 ? void 0 : _i$field6.type) === 'treeSelect') {
6105
+ var _i$field7;
6039
6106
  return /*#__PURE__*/React$1.createElement(Col, {
6040
6107
  span: ColSpan,
6041
6108
  key: i.name
@@ -6048,12 +6115,12 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
6048
6115
  width: '100%'
6049
6116
  },
6050
6117
  placeholder: "\u8BF7\u9009\u62E9"
6051
- }, i === null || i === void 0 ? void 0 : (_i$field4 = i.field) === null || _i$field4 === void 0 ? void 0 : _i$field4.props), {}, {
6118
+ }, i === null || i === void 0 ? void 0 : (_i$field7 = i.field) === null || _i$field7 === void 0 ? void 0 : _i$field7.props), {}, {
6052
6119
  disabled: setDisabled(i.name)
6053
6120
  }))));
6054
6121
  }
6055
- if ((i === null || i === void 0 ? void 0 : i.type) === 'rangepicker' || (i === null || i === void 0 ? void 0 : (_i$field5 = i.field) === null || _i$field5 === void 0 ? void 0 : _i$field5.type) === 'rangepicker') {
6056
- var _i$initialValue, _i$field6;
6122
+ if ((i === null || i === void 0 ? void 0 : i.type) === 'rangepicker' || (i === null || i === void 0 ? void 0 : (_i$field8 = i.field) === null || _i$field8 === void 0 ? void 0 : _i$field8.type) === 'rangepicker') {
6123
+ var _i$initialValue, _i$field9;
6057
6124
  return /*#__PURE__*/React$1.createElement(Col, {
6058
6125
  span: ColSpan,
6059
6126
  key: i.name
@@ -6067,12 +6134,12 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
6067
6134
  width: '100%'
6068
6135
  },
6069
6136
  placeholder: "\u8BF7\u9009\u62E9"
6070
- }, i === null || i === void 0 ? void 0 : (_i$field6 = i.field) === null || _i$field6 === void 0 ? void 0 : _i$field6.props), {}, {
6137
+ }, i === null || i === void 0 ? void 0 : (_i$field9 = i.field) === null || _i$field9 === void 0 ? void 0 : _i$field9.props), {}, {
6071
6138
  disabled: setDisabled(i.name)
6072
6139
  }))));
6073
6140
  }
6074
- if ((i === null || i === void 0 ? void 0 : i.type) === 'datepicker' || (i === null || i === void 0 ? void 0 : (_i$field7 = i.field) === null || _i$field7 === void 0 ? void 0 : _i$field7.type) === 'datepicker') {
6075
- var _i$field8;
6141
+ if ((i === null || i === void 0 ? void 0 : i.type) === 'datepicker' || (i === null || i === void 0 ? void 0 : (_i$field0 = i.field) === null || _i$field0 === void 0 ? void 0 : _i$field0.type) === 'datepicker') {
6142
+ var _i$field1;
6076
6143
  return /*#__PURE__*/React$1.createElement(Col, {
6077
6144
  span: ColSpan,
6078
6145
  key: i.name
@@ -6085,11 +6152,11 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
6085
6152
  width: '100%'
6086
6153
  },
6087
6154
  placeholder: "\u8BF7\u9009\u62E9"
6088
- }, i === null || i === void 0 ? void 0 : (_i$field8 = i.field) === null || _i$field8 === void 0 ? void 0 : _i$field8.props), {}, {
6155
+ }, i === null || i === void 0 ? void 0 : (_i$field1 = i.field) === null || _i$field1 === void 0 ? void 0 : _i$field1.props), {}, {
6089
6156
  disabled: setDisabled(i.name)
6090
6157
  }))));
6091
6158
  }
6092
- if ((i === null || i === void 0 ? void 0 : i.type) === 'businessSearchSelect' || (i === null || i === void 0 ? void 0 : (_i$field9 = i.field) === null || _i$field9 === void 0 ? void 0 : _i$field9.type) === 'businessSearchSelect') {
6159
+ if ((i === null || i === void 0 ? void 0 : i.type) === 'businessSearchSelect' || (i === null || i === void 0 ? void 0 : (_i$field10 = i.field) === null || _i$field10 === void 0 ? void 0 : _i$field10.type) === 'businessSearchSelect') {
6093
6160
  return /*#__PURE__*/React$1.createElement(Col, {
6094
6161
  span: ColSpan,
6095
6162
  key: i.name
@@ -6101,7 +6168,7 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
6101
6168
  disabled: setDisabled(i.name)
6102
6169
  }))));
6103
6170
  }
6104
- if ((i === null || i === void 0 ? void 0 : i.type) === 'multipleQueryInput' || (i === null || i === void 0 ? void 0 : (_i$field0 = i.field) === null || _i$field0 === void 0 ? void 0 : _i$field0.type) === 'multipleQueryInput') {
6171
+ if ((i === null || i === void 0 ? void 0 : i.type) === 'multipleQueryInput' || (i === null || i === void 0 ? void 0 : (_i$field11 = i.field) === null || _i$field11 === void 0 ? void 0 : _i$field11.type) === 'multipleQueryInput') {
6105
6172
  return /*#__PURE__*/React$1.createElement(Col, {
6106
6173
  span: ColSpan,
6107
6174
  key: i.name
@@ -6115,7 +6182,7 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
6115
6182
  }
6116
6183
  })));
6117
6184
  }
6118
- if ((i === null || i === void 0 ? void 0 : (_i$field1 = i.field) === null || _i$field1 === void 0 ? void 0 : _i$field1.type) === 'proppertySelector') {
6185
+ if ((i === null || i === void 0 ? void 0 : (_i$field12 = i.field) === null || _i$field12 === void 0 ? void 0 : _i$field12.type) === 'proppertySelector') {
6119
6186
  return /*#__PURE__*/React$1.createElement(Col, {
6120
6187
  span: ColSpan,
6121
6188
  key: i.name
@@ -6125,8 +6192,8 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
6125
6192
  key: i.name
6126
6193
  }, /*#__PURE__*/React$1.createElement(PropertySelector, null)));
6127
6194
  }
6128
- if ((i === null || i === void 0 ? void 0 : i.type) === 'itemPropertySelector' || (i === null || i === void 0 ? void 0 : (_i$field10 = i.field) === null || _i$field10 === void 0 ? void 0 : _i$field10.type) === 'itemPropertySelector') {
6129
- var _i$field11;
6195
+ if ((i === null || i === void 0 ? void 0 : i.type) === 'itemPropertySelector' || (i === null || i === void 0 ? void 0 : (_i$field13 = i.field) === null || _i$field13 === void 0 ? void 0 : _i$field13.type) === 'itemPropertySelector') {
6196
+ var _i$field14;
6130
6197
  return /*#__PURE__*/React$1.createElement(Col, {
6131
6198
  span: ColSpan,
6132
6199
  key: i.name
@@ -6139,9 +6206,9 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
6139
6206
  width: '100%'
6140
6207
  },
6141
6208
  placeholder: "\u8BF7\u9009\u62E9"
6142
- }, i === null || i === void 0 ? void 0 : (_i$field11 = i.field) === null || _i$field11 === void 0 ? void 0 : _i$field11.props))));
6209
+ }, i === null || i === void 0 ? void 0 : (_i$field14 = i.field) === null || _i$field14 === void 0 ? void 0 : _i$field14.props))));
6143
6210
  }
6144
- if ((i === null || i === void 0 ? void 0 : (_i$field12 = i.field) === null || _i$field12 === void 0 ? void 0 : _i$field12.type) === 'multipleQuerySearchSelect') {
6211
+ if ((i === null || i === void 0 ? void 0 : (_i$field15 = i.field) === null || _i$field15 === void 0 ? void 0 : _i$field15.type) === 'multipleQuerySearchSelect') {
6145
6212
  return /*#__PURE__*/React$1.createElement(Col, {
6146
6213
  span: ColSpan,
6147
6214
  key: i.name
@@ -6170,7 +6237,7 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
6170
6237
  placeholder: "\u8BF7\u8F93\u5165",
6171
6238
  allowClear: true,
6172
6239
  maxLength: 100
6173
- }, i === null || i === void 0 ? void 0 : (_i$field13 = i.field) === null || _i$field13 === void 0 ? void 0 : _i$field13.props), {}, {
6240
+ }, i === null || i === void 0 ? void 0 : (_i$field16 = i.field) === null || _i$field16 === void 0 ? void 0 : _i$field16.props), {}, {
6174
6241
  disabled: setDisabled(i.name)
6175
6242
  }))));
6176
6243
  });
package/dist/index.js CHANGED
@@ -5370,10 +5370,17 @@ var SearchSelect = /*#__PURE__*/React$1.forwardRef(function (props, ref) {
5370
5370
  searchStartLength: searchStartLength
5371
5371
  }, rCTemp);
5372
5372
  var resultSourceKey = handleSourceName(sourceName || (requestConfig === null || requestConfig === void 0 ? void 0 : requestConfig.sourceName) || (ctx === null || ctx === void 0 ? void 0 : ctx.name) || 'supplierCode');
5373
+ var TABLE_PAGE_SIZE_OPTIONS = [10, 20, 50, 100, 200, 500, 1000, 2000, 3000];
5374
+ var resolveTablePageSize = function resolveTablePageSize(pageSize) {
5375
+ if (TABLE_PAGE_SIZE_OPTIONS.includes(Number(pageSize))) {
5376
+ return Number(pageSize);
5377
+ }
5378
+ return 20;
5379
+ };
5373
5380
  var selectMode = selectProps === null || selectProps === void 0 ? void 0 : selectProps.mode; // 设定当前选择器 为单选或者多选模式 无设定为单选模式(默认)
5374
5381
  var initVal = value || (selectMode ? [] : null);
5375
5382
  var pageSize = 100; // 下拉框默认分页 条数
5376
- var tableInitPageSize = 20; // 弹框默认分页 条数
5383
+ var tableInitPageSize = resolveTablePageSize((props === null || props === void 0 ? void 0 : props.pageSize) || null); // 弹框默认分页 条数
5377
5384
  var currentPage = 1;
5378
5385
  var selectParamsKey = (requestConfig === null || requestConfig === void 0 ? void 0 : requestConfig.filter) || 'qp-codeAndName-like';
5379
5386
  var selectParamsInitKey = (requestConfig === null || requestConfig === void 0 ? void 0 : requestConfig.filterInit) || selectParamsKey;
@@ -5404,7 +5411,7 @@ var SearchSelect = /*#__PURE__*/React$1.forwardRef(function (props, ref) {
5404
5411
  var tableInitPagination = _objectSpread2(_objectSpread2({}, initPagination), {}, {
5405
5412
  total: 0,
5406
5413
  current: 1,
5407
- pageSizeOptions: [10, 20, 50, 100, 500, 1000]
5414
+ pageSizeOptions: TABLE_PAGE_SIZE_OPTIONS.map(String)
5408
5415
  });
5409
5416
  var disabled = !!noOperate || (selectProps === null || selectProps === void 0 ? void 0 : selectProps.disabled) || (props === null || props === void 0 ? void 0 : props.disabled);
5410
5417
  var isHaveDependency = fixedparameter && fieldValToParam && ctx;
@@ -5459,6 +5466,10 @@ var SearchSelect = /*#__PURE__*/React$1.forwardRef(function (props, ref) {
5459
5466
  _useState18 = _slicedToArray(_useState17, 2),
5460
5467
  uniqueValue = _useState18[0],
5461
5468
  setUniqueValue = _useState18[1];
5469
+ var _useState19 = React$1.useState({}),
5470
+ _useState20 = _slicedToArray(_useState19, 2),
5471
+ selectToggleMap = _useState20[0],
5472
+ setSelectToggleMap = _useState20[1];
5462
5473
  var _useDebounceFn = ahooks.useDebounceFn(function (v) {
5463
5474
  // 优化搜索参数 支持传多个
5464
5475
  var searchParams = {};
@@ -5487,58 +5498,58 @@ var SearchSelect = /*#__PURE__*/React$1.forwardRef(function (props, ref) {
5487
5498
  var _Form$useForm = antd.Form.useForm(),
5488
5499
  _Form$useForm2 = _slicedToArray(_Form$useForm, 1),
5489
5500
  form = _Form$useForm2[0];
5490
- var _useState19 = React$1.useState(true),
5491
- _useState20 = _slicedToArray(_useState19, 2),
5492
- collapsed = _useState20[0],
5493
- setCollapsed = _useState20[1];
5494
5501
  var _useState21 = React$1.useState(true),
5495
5502
  _useState22 = _slicedToArray(_useState21, 2),
5496
- caretLeftFlag = _useState22[0],
5497
- setCaretLeftFlag = _useState22[1];
5498
- var _useState23 = React$1.useState([]),
5503
+ collapsed = _useState22[0],
5504
+ setCollapsed = _useState22[1];
5505
+ var _useState23 = React$1.useState(true),
5499
5506
  _useState24 = _slicedToArray(_useState23, 2),
5500
- tableData = _useState24[0],
5501
- setTableData = _useState24[1];
5502
- var _useState25 = React$1.useState(tableInitPagination),
5507
+ caretLeftFlag = _useState24[0],
5508
+ setCaretLeftFlag = _useState24[1];
5509
+ var _useState25 = React$1.useState([]),
5503
5510
  _useState26 = _slicedToArray(_useState25, 2),
5504
- tablePagination = _useState26[0],
5505
- setTablePagination = _useState26[1];
5506
- var _useState27 = React$1.useState([]),
5511
+ tableData = _useState26[0],
5512
+ setTableData = _useState26[1];
5513
+ var _useState27 = React$1.useState(tableInitPagination),
5507
5514
  _useState28 = _slicedToArray(_useState27, 2),
5508
- selectedRowKeys = _useState28[0],
5509
- setSelectedRowKeys = _useState28[1];
5515
+ tablePagination = _useState28[0],
5516
+ setTablePagination = _useState28[1];
5510
5517
  var _useState29 = React$1.useState([]),
5511
5518
  _useState30 = _slicedToArray(_useState29, 2),
5512
- selectedRows = _useState30[0],
5513
- setSelectedRows = _useState30[1];
5514
- var _useState31 = React$1.useState(false),
5519
+ selectedRowKeys = _useState30[0],
5520
+ setSelectedRowKeys = _useState30[1];
5521
+ var _useState31 = React$1.useState([]),
5515
5522
  _useState32 = _slicedToArray(_useState31, 2),
5516
- checkedAll = _useState32[0],
5517
- setCheckedAll = _useState32[1];
5523
+ selectedRows = _useState32[0],
5524
+ setSelectedRows = _useState32[1];
5518
5525
  var _useState33 = React$1.useState(false),
5519
5526
  _useState34 = _slicedToArray(_useState33, 2),
5520
- indeterminate = _useState34[0],
5521
- setIndeterminate = _useState34[1];
5522
- var _useState35 = React$1.useState({}),
5527
+ checkedAll = _useState34[0],
5528
+ setCheckedAll = _useState34[1];
5529
+ var _useState35 = React$1.useState(false),
5523
5530
  _useState36 = _slicedToArray(_useState35, 2),
5524
- tableFormParams = _useState36[0],
5525
- setTableFormParams = _useState36[1];
5526
- var _useState37 = React$1.useState(false),
5531
+ indeterminate = _useState36[0],
5532
+ setIndeterminate = _useState36[1];
5533
+ var _useState37 = React$1.useState({}),
5527
5534
  _useState38 = _slicedToArray(_useState37, 2),
5528
- tooltipVisible = _useState38[0],
5529
- setTooltipVisible = _useState38[1];
5530
- var _useState39 = React$1.useState(handleTableColumns(modalTableProps === null || modalTableProps === void 0 ? void 0 : modalTableProps.tableColumns)),
5535
+ tableFormParams = _useState38[0],
5536
+ setTableFormParams = _useState38[1];
5537
+ var _useState39 = React$1.useState(false),
5531
5538
  _useState40 = _slicedToArray(_useState39, 2),
5532
- tableShowColumns = _useState40[0],
5533
- setTabletShowColumns = _useState40[1]; // 默认展示表头-modalTableProps?.tableColumns
5534
- var _useState41 = React$1.useState(false),
5539
+ tooltipVisible = _useState40[0],
5540
+ setTooltipVisible = _useState40[1];
5541
+ var _useState41 = React$1.useState(handleTableColumns(modalTableProps === null || modalTableProps === void 0 ? void 0 : modalTableProps.tableColumns)),
5535
5542
  _useState42 = _slicedToArray(_useState41, 2),
5536
- confirmLoading = _useState42[0],
5537
- setConfirmLoading = _useState42[1];
5543
+ tableShowColumns = _useState42[0],
5544
+ setTabletShowColumns = _useState42[1]; // 默认展示表头-modalTableProps?.tableColumns
5538
5545
  var _useState43 = React$1.useState(false),
5539
5546
  _useState44 = _slicedToArray(_useState43, 2),
5540
- modalSearched = _useState44[0],
5541
- setModalSearched = _useState44[1];
5547
+ confirmLoading = _useState44[0],
5548
+ setConfirmLoading = _useState44[1];
5549
+ var _useState45 = React$1.useState(false),
5550
+ _useState46 = _slicedToArray(_useState45, 2),
5551
+ modalSearched = _useState46[0],
5552
+ setModalSearched = _useState46[1];
5542
5553
  var setSelectDataSource = function setSelectDataSource(list, total) {
5543
5554
  setItems(list);
5544
5555
  setItemsTotal(total);
@@ -6026,13 +6037,13 @@ var SearchSelect = /*#__PURE__*/React$1.forwardRef(function (props, ref) {
6026
6037
  })) || [];
6027
6038
  var searchList = (modalTableProps === null || modalTableProps === void 0 ? void 0 : modalTableProps.noEmptySearchField) ? list : list === null || list === void 0 ? void 0 : list.concat(addKong);
6028
6039
  return searchList.map(function (i, index) {
6029
- var _i$field, _i$field3, _i$field5, _i$field7, _i$field9, _i$field0, _i$field1, _i$field10, _i$field12, _i$field13;
6040
+ var _i$field, _i$field6, _i$field8, _i$field0, _i$field10, _i$field11, _i$field12, _i$field13, _i$field15, _i$field16;
6030
6041
  if ((i === null || i === void 0 ? void 0 : i.type) === 'kong') return /*#__PURE__*/React__default['default'].createElement(antd.Col, {
6031
6042
  span: ColSpan,
6032
6043
  key: i
6033
6044
  });
6034
6045
  if ((i === null || i === void 0 ? void 0 : i.type) === 'select' || (i === null || i === void 0 ? void 0 : (_i$field = i.field) === null || _i$field === void 0 ? void 0 : _i$field.type) === 'select') {
6035
- var _i$field2, _i$initialSource;
6046
+ var _i$field2, _i$field3, _i$field3$props, _i$initialSource;
6036
6047
  return /*#__PURE__*/React__default['default'].createElement(antd.Col, {
6037
6048
  span: ColSpan,
6038
6049
  key: i.name
@@ -6049,7 +6060,63 @@ var SearchSelect = /*#__PURE__*/React$1.forwardRef(function (props, ref) {
6049
6060
  return onSearchTable();
6050
6061
  }
6051
6062
  }, i === null || i === void 0 ? void 0 : (_i$field2 = i.field) === null || _i$field2 === void 0 ? void 0 : _i$field2.props), {}, {
6052
- disabled: setDisabled(i.name)
6063
+ disabled: setDisabled(i.name),
6064
+ mode: i === null || i === void 0 ? void 0 : (_i$field3 = i.field) === null || _i$field3 === void 0 ? void 0 : (_i$field3$props = _i$field3.props) === null || _i$field3$props === void 0 ? void 0 : _i$field3$props.mode,
6065
+ dropdownRender: function dropdownRender(menu) {
6066
+ var _i$field4, _i$field4$props, _i$field5, _i$field5$props;
6067
+ // 候选项数组(去重)
6068
+ var allValues = Array.isArray(i === null || i === void 0 ? void 0 : i.initialSource) ? Array.from(new Set(i.initialSource.map(function (s) {
6069
+ return s.value;
6070
+ }).filter(function (v) {
6071
+ return v !== undefined && v !== null;
6072
+ }))) : [];
6073
+ var isMulti = (i === null || i === void 0 ? void 0 : (_i$field4 = i.field) === null || _i$field4 === void 0 ? void 0 : (_i$field4$props = _i$field4.props) === null || _i$field4$props === void 0 ? void 0 : _i$field4$props.mode) === 'multiple' || (i === null || i === void 0 ? void 0 : (_i$field5 = i.field) === null || _i$field5 === void 0 ? void 0 : (_i$field5$props = _i$field5.props) === null || _i$field5$props === void 0 ? void 0 : _i$field5$props.mode) === 'tags';
6074
+ // 当前 toggle 状态(true 表示下一次点击是反选 -> 显示为“反选”)
6075
+ var toggled = !!selectToggleMap[i.name];
6076
+ var label = toggled ? '反选' : '全选';
6077
+ // 通过 props.allSelectValues 控制按钮是否显示
6078
+ var showSelectAllButton = props.showAllSelectBtn && isMulti && allValues.length > 0;
6079
+ return /*#__PURE__*/React__default['default'].createElement("div", null, showSelectAllButton && (/*#__PURE__*/React__default['default'].createElement("div", {
6080
+ style: {
6081
+ padding: 6,
6082
+ display: 'flex',
6083
+ justifyContent: 'flex-end',
6084
+ alignItems: 'center'
6085
+ }
6086
+ }, /*#__PURE__*/React__default['default'].createElement(antd.Button, {
6087
+ type: "link",
6088
+ size: "small",
6089
+ onMouseDown: function onMouseDown(e) {
6090
+ return e.preventDefault();
6091
+ },
6092
+ onClick: function onClick(e) {
6093
+ e.stopPropagation();
6094
+ var cur = form.getFieldValue(i.name) || [];
6095
+ var curArr = Array.isArray(cur) ? cur : [cur].filter(Boolean);
6096
+ if (!toggled) {
6097
+ // 全选:把所有候选值写入表单
6098
+ form.setFieldsValue(_defineProperty({}, i.name, allValues));
6099
+ setSelectToggleMap(function (prev) {
6100
+ return _objectSpread2(_objectSpread2({}, prev || {}), {}, _defineProperty({}, i.name, true));
6101
+ });
6102
+ } else {
6103
+ // 反选:当前实现为“把候选项中未被选中的项选上”(基于当前值取补集)
6104
+ var newVals = allValues.filter(function (v) {
6105
+ return !curArr.includes(v);
6106
+ });
6107
+ form.setFieldsValue(_defineProperty({}, i.name, newVals));
6108
+ setSelectToggleMap(function (prev) {
6109
+ return _objectSpread2(_objectSpread2({}, prev || {}), {}, _defineProperty({}, i.name, false));
6110
+ });
6111
+ }
6112
+ },
6113
+ style: {
6114
+ padding: '0 6px',
6115
+ height: 20,
6116
+ lineHeight: '20px'
6117
+ }
6118
+ }, label))), /*#__PURE__*/React__default['default'].createElement("div", null, menu));
6119
+ }
6053
6120
  }), (i === null || i === void 0 ? void 0 : (_i$initialSource = i.initialSource) === null || _i$initialSource === void 0 ? void 0 : _i$initialSource.length) && (i === null || i === void 0 ? void 0 : i.initialSource.map(function (m) {
6054
6121
  return /*#__PURE__*/React__default['default'].createElement(Option$1, {
6055
6122
  value: m.value,
@@ -6057,8 +6124,8 @@ var SearchSelect = /*#__PURE__*/React$1.forwardRef(function (props, ref) {
6057
6124
  }, m.text);
6058
6125
  })))));
6059
6126
  }
6060
- if ((i === null || i === void 0 ? void 0 : i.type) === 'treeSelect' || (i === null || i === void 0 ? void 0 : (_i$field3 = i.field) === null || _i$field3 === void 0 ? void 0 : _i$field3.type) === 'treeSelect') {
6061
- var _i$field4;
6127
+ if ((i === null || i === void 0 ? void 0 : i.type) === 'treeSelect' || (i === null || i === void 0 ? void 0 : (_i$field6 = i.field) === null || _i$field6 === void 0 ? void 0 : _i$field6.type) === 'treeSelect') {
6128
+ var _i$field7;
6062
6129
  return /*#__PURE__*/React__default['default'].createElement(antd.Col, {
6063
6130
  span: ColSpan,
6064
6131
  key: i.name
@@ -6071,12 +6138,12 @@ var SearchSelect = /*#__PURE__*/React$1.forwardRef(function (props, ref) {
6071
6138
  width: '100%'
6072
6139
  },
6073
6140
  placeholder: "\u8BF7\u9009\u62E9"
6074
- }, i === null || i === void 0 ? void 0 : (_i$field4 = i.field) === null || _i$field4 === void 0 ? void 0 : _i$field4.props), {}, {
6141
+ }, i === null || i === void 0 ? void 0 : (_i$field7 = i.field) === null || _i$field7 === void 0 ? void 0 : _i$field7.props), {}, {
6075
6142
  disabled: setDisabled(i.name)
6076
6143
  }))));
6077
6144
  }
6078
- if ((i === null || i === void 0 ? void 0 : i.type) === 'rangepicker' || (i === null || i === void 0 ? void 0 : (_i$field5 = i.field) === null || _i$field5 === void 0 ? void 0 : _i$field5.type) === 'rangepicker') {
6079
- var _i$initialValue, _i$field6;
6145
+ if ((i === null || i === void 0 ? void 0 : i.type) === 'rangepicker' || (i === null || i === void 0 ? void 0 : (_i$field8 = i.field) === null || _i$field8 === void 0 ? void 0 : _i$field8.type) === 'rangepicker') {
6146
+ var _i$initialValue, _i$field9;
6080
6147
  return /*#__PURE__*/React__default['default'].createElement(antd.Col, {
6081
6148
  span: ColSpan,
6082
6149
  key: i.name
@@ -6090,12 +6157,12 @@ var SearchSelect = /*#__PURE__*/React$1.forwardRef(function (props, ref) {
6090
6157
  width: '100%'
6091
6158
  },
6092
6159
  placeholder: "\u8BF7\u9009\u62E9"
6093
- }, i === null || i === void 0 ? void 0 : (_i$field6 = i.field) === null || _i$field6 === void 0 ? void 0 : _i$field6.props), {}, {
6160
+ }, i === null || i === void 0 ? void 0 : (_i$field9 = i.field) === null || _i$field9 === void 0 ? void 0 : _i$field9.props), {}, {
6094
6161
  disabled: setDisabled(i.name)
6095
6162
  }))));
6096
6163
  }
6097
- if ((i === null || i === void 0 ? void 0 : i.type) === 'datepicker' || (i === null || i === void 0 ? void 0 : (_i$field7 = i.field) === null || _i$field7 === void 0 ? void 0 : _i$field7.type) === 'datepicker') {
6098
- var _i$field8;
6164
+ if ((i === null || i === void 0 ? void 0 : i.type) === 'datepicker' || (i === null || i === void 0 ? void 0 : (_i$field0 = i.field) === null || _i$field0 === void 0 ? void 0 : _i$field0.type) === 'datepicker') {
6165
+ var _i$field1;
6099
6166
  return /*#__PURE__*/React__default['default'].createElement(antd.Col, {
6100
6167
  span: ColSpan,
6101
6168
  key: i.name
@@ -6108,11 +6175,11 @@ var SearchSelect = /*#__PURE__*/React$1.forwardRef(function (props, ref) {
6108
6175
  width: '100%'
6109
6176
  },
6110
6177
  placeholder: "\u8BF7\u9009\u62E9"
6111
- }, i === null || i === void 0 ? void 0 : (_i$field8 = i.field) === null || _i$field8 === void 0 ? void 0 : _i$field8.props), {}, {
6178
+ }, i === null || i === void 0 ? void 0 : (_i$field1 = i.field) === null || _i$field1 === void 0 ? void 0 : _i$field1.props), {}, {
6112
6179
  disabled: setDisabled(i.name)
6113
6180
  }))));
6114
6181
  }
6115
- if ((i === null || i === void 0 ? void 0 : i.type) === 'businessSearchSelect' || (i === null || i === void 0 ? void 0 : (_i$field9 = i.field) === null || _i$field9 === void 0 ? void 0 : _i$field9.type) === 'businessSearchSelect') {
6182
+ if ((i === null || i === void 0 ? void 0 : i.type) === 'businessSearchSelect' || (i === null || i === void 0 ? void 0 : (_i$field10 = i.field) === null || _i$field10 === void 0 ? void 0 : _i$field10.type) === 'businessSearchSelect') {
6116
6183
  return /*#__PURE__*/React__default['default'].createElement(antd.Col, {
6117
6184
  span: ColSpan,
6118
6185
  key: i.name
@@ -6124,7 +6191,7 @@ var SearchSelect = /*#__PURE__*/React$1.forwardRef(function (props, ref) {
6124
6191
  disabled: setDisabled(i.name)
6125
6192
  }))));
6126
6193
  }
6127
- if ((i === null || i === void 0 ? void 0 : i.type) === 'multipleQueryInput' || (i === null || i === void 0 ? void 0 : (_i$field0 = i.field) === null || _i$field0 === void 0 ? void 0 : _i$field0.type) === 'multipleQueryInput') {
6194
+ if ((i === null || i === void 0 ? void 0 : i.type) === 'multipleQueryInput' || (i === null || i === void 0 ? void 0 : (_i$field11 = i.field) === null || _i$field11 === void 0 ? void 0 : _i$field11.type) === 'multipleQueryInput') {
6128
6195
  return /*#__PURE__*/React__default['default'].createElement(antd.Col, {
6129
6196
  span: ColSpan,
6130
6197
  key: i.name
@@ -6138,7 +6205,7 @@ var SearchSelect = /*#__PURE__*/React$1.forwardRef(function (props, ref) {
6138
6205
  }
6139
6206
  })));
6140
6207
  }
6141
- if ((i === null || i === void 0 ? void 0 : (_i$field1 = i.field) === null || _i$field1 === void 0 ? void 0 : _i$field1.type) === 'proppertySelector') {
6208
+ if ((i === null || i === void 0 ? void 0 : (_i$field12 = i.field) === null || _i$field12 === void 0 ? void 0 : _i$field12.type) === 'proppertySelector') {
6142
6209
  return /*#__PURE__*/React__default['default'].createElement(antd.Col, {
6143
6210
  span: ColSpan,
6144
6211
  key: i.name
@@ -6148,8 +6215,8 @@ var SearchSelect = /*#__PURE__*/React$1.forwardRef(function (props, ref) {
6148
6215
  key: i.name
6149
6216
  }, /*#__PURE__*/React__default['default'].createElement(PropertySelector, null)));
6150
6217
  }
6151
- if ((i === null || i === void 0 ? void 0 : i.type) === 'itemPropertySelector' || (i === null || i === void 0 ? void 0 : (_i$field10 = i.field) === null || _i$field10 === void 0 ? void 0 : _i$field10.type) === 'itemPropertySelector') {
6152
- var _i$field11;
6218
+ if ((i === null || i === void 0 ? void 0 : i.type) === 'itemPropertySelector' || (i === null || i === void 0 ? void 0 : (_i$field13 = i.field) === null || _i$field13 === void 0 ? void 0 : _i$field13.type) === 'itemPropertySelector') {
6219
+ var _i$field14;
6153
6220
  return /*#__PURE__*/React__default['default'].createElement(antd.Col, {
6154
6221
  span: ColSpan,
6155
6222
  key: i.name
@@ -6162,9 +6229,9 @@ var SearchSelect = /*#__PURE__*/React$1.forwardRef(function (props, ref) {
6162
6229
  width: '100%'
6163
6230
  },
6164
6231
  placeholder: "\u8BF7\u9009\u62E9"
6165
- }, i === null || i === void 0 ? void 0 : (_i$field11 = i.field) === null || _i$field11 === void 0 ? void 0 : _i$field11.props))));
6232
+ }, i === null || i === void 0 ? void 0 : (_i$field14 = i.field) === null || _i$field14 === void 0 ? void 0 : _i$field14.props))));
6166
6233
  }
6167
- if ((i === null || i === void 0 ? void 0 : (_i$field12 = i.field) === null || _i$field12 === void 0 ? void 0 : _i$field12.type) === 'multipleQuerySearchSelect') {
6234
+ if ((i === null || i === void 0 ? void 0 : (_i$field15 = i.field) === null || _i$field15 === void 0 ? void 0 : _i$field15.type) === 'multipleQuerySearchSelect') {
6168
6235
  return /*#__PURE__*/React__default['default'].createElement(antd.Col, {
6169
6236
  span: ColSpan,
6170
6237
  key: i.name
@@ -6193,7 +6260,7 @@ var SearchSelect = /*#__PURE__*/React$1.forwardRef(function (props, ref) {
6193
6260
  placeholder: "\u8BF7\u8F93\u5165",
6194
6261
  allowClear: true,
6195
6262
  maxLength: 100
6196
- }, i === null || i === void 0 ? void 0 : (_i$field13 = i.field) === null || _i$field13 === void 0 ? void 0 : _i$field13.props), {}, {
6263
+ }, i === null || i === void 0 ? void 0 : (_i$field16 = i.field) === null || _i$field16 === void 0 ? void 0 : _i$field16.props), {}, {
6197
6264
  disabled: setDisabled(i.name)
6198
6265
  }))));
6199
6266
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bit-sun/business-component",
3
- "version": "4.2.1-alpha.22-aiwei",
3
+ "version": "4.2.1-alpha.23-aiwei",
4
4
  "scripts": {
5
5
  "start": "dumi dev",
6
6
  "docs:build": "dumi build",
@@ -14,126 +14,154 @@ order: 3
14
14
  Demo:
15
15
 
16
16
  ```tsx
17
- import React, { useState } from 'react';
18
- import { SearchSelect } from '../../../index';
17
+ // import React, { useState } from 'react';
18
+ // import { SearchSelect } from '../../../index';
19
19
 
20
- export default () => {
21
- const selectProps = {
22
- // mode: 'multiple',
23
- // maxTagCount: 1,
24
- }
25
- const [value, setValue] = useState(selectProps?.mode ? [] : null);
26
- const props = {
27
- value,
28
- // labelInValue: true, // 非必填 默认为false
29
- requestConfig: {
30
- url: `/bop/api/supplier`,
31
- filter: 'qp-name-like', // 过滤参数 支持'qp-name-like'和['qp-name-like', 'qp-code-like']两种结构
32
- otherParams: {}, // 默认参数
33
- // mappingTextField: 'name',
34
- // mappingValueField: 'code',
35
- },
36
- selectProps,
37
- onChange: (value: any) => {
38
- console.log(value)
39
- setValue(value)
40
- }
41
- };
42
- const DictionaryUC000013 = [{ text: '共享', value: '10' }, { text: '私有', value: '20' }]
43
- const modalTableProps = {
44
- modalTableTitle: '选择供应商',
45
- tableSearchForm: [
46
- { name: 'qp-name-like', label: '客户名称' }, // field: { type: 'input', props: { placeholder: '8888'}}
47
- { name: 'qp-code-like', label: '客户编码' },
48
- {
49
- name: 'qp-conglomerateCode-in', type: 'select', label: '归属集团', field: {
50
- type: 'select',
51
- props: {
52
- mode: 'multiple',
53
- notFoundContent: '暂无数据',
54
- allowClear: true,
55
- showSearch: true,
56
- showArrow: true,
57
- maxTagCount: 1,
58
- optionFilterProp: 'children',
59
- filterOption: (input: string, option: { props: { children: string } }) =>
60
- option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0,
61
- },
62
- },
63
- initialSource: [{ text: '英伦宝贝儿童用品有限公司', value: 'A0001' }]
64
- },
65
- {
66
- name: 'qp-accountingCode-in', type: 'select', label: '归属核算主体', field: {
67
- type: 'select',
68
- props: {
69
- mode: 'multiple',
70
- notFoundContent: '暂无数据',
71
- allowClear: true,
72
- showSearch: true,
73
- showArrow: true,
74
- maxTagCount: 1,
75
- optionFilterProp: 'children',
76
- filterOption: (input: string, option: { props: { children: string } }) =>
77
- option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0,
78
- },
79
- },
80
- initialSource: [{ text: '上海哲雄母婴用品有限公司', value: 'F002' }, { text: '上海英伦宝贝儿童用品有限公司', value: 'F001' }]
81
- },
82
- {
83
- name: 'qp-companyCode-in', type: 'select', label: '归属法人公司', field: {
84
- type: 'select',
85
- props: {
86
- mode: 'multiple',
87
- notFoundContent: '暂无数据',
88
- allowClear: true,
89
- showSearch: true,
90
- showArrow: true,
91
- maxTagCount: 1,
92
- optionFilterProp: 'children',
93
- filterOption: (input: string, option: { props: { children: string } }) =>
94
- option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0,
95
- },
96
- },
97
- initialSource: [{ text: '上海哲雄母婴用品有限公司', value: 'F002' }, { text: '上海英伦宝贝儿童用品有限公司', value: 'F001' }]
98
- },
99
- { name: 'qp-sharingType-eq', type: 'select', label: '共享类型', initialSource: DictionaryUC000013 }, // 页面可以直接使用getDictionarySource('UC000013')
100
- ],
101
- tableColumns: [
102
- {
103
- title: '客户编码',
104
- dataIndex: 'code',
105
- },
106
- {
107
- title: '客户名称',
108
- dataIndex: 'name',
109
- },
110
- {
111
- title: '归属集团',
112
- dataIndex: 'conglomerateName',
113
- },
114
- {
115
- title: '归属法人公司',
116
- dataIndex: 'legalCompanyName',
117
- },
118
- {
119
- title: '归属核算主体',
120
- dataIndex: 'accountingName',
121
- },
122
- {
123
- title: '共享类型',
124
- dataIndex: 'sharingType',
125
- render: (text) => DictionaryUC000013?.find((i) => i.value === text)?.text, // getDictionaryTextByValue('UC000013', text)
126
- },
127
- ]
128
- }
20
+ // export default () => {
21
+ // const selectProps = {
22
+ // // mode: 'multiple',
23
+ // // maxTagCount: 1,
24
+ // }
25
+ // const [value, setValue] = useState(selectProps?.mode ? [] : null);
26
+ // const props = {
27
+ // value,
28
+ // // labelInValue: true, // 非必填 默认为false
29
+ // requestConfig: {
30
+ // url: `/bop/api/supplier`,
31
+ // filter: 'qp-name-like', // 过滤参数 支持'qp-name-like'和['qp-name-like', 'qp-code-like']两种结构
32
+ // otherParams: {}, // 默认参数
33
+ // // mappingTextField: 'name',
34
+ // // mappingValueField: 'code',
35
+ // },
36
+ // selectProps,
37
+ // onChange: (value: any) => {
38
+ // console.log(value)
39
+ // setValue(value)
40
+ // }
41
+ // };
42
+ // const DictionaryUC000013 = [{ text: '共享', value: '10' }, { text: '私有', value: '20' }]
43
+ // const modalTableProps = {
44
+ // modalTableTitle: '选择供应商',
45
+ // tableSearchForm: [
46
+ // { name: 'qp-name-like', label: '客户名称' }, // field: { type: 'input', props: { placeholder: '8888'}}
47
+ // { name: 'qp-code-like', label: '客户编码' },
48
+ // {
49
+ // name: 'qp-conglomerateCode-in', type: 'select', label: '归属集团', field: {
50
+ // type: 'select',
51
+ // props: {
52
+ // mode: 'multiple',
53
+ // notFoundContent: '暂无数据',
54
+ // allowClear: true,
55
+ // showSearch: true,
56
+ // showArrow: true,
57
+ // maxTagCount: 1,
58
+ // optionFilterProp: 'children',
59
+ // filterOption: (input: string, option: { props: { children: string } }) =>
60
+ // option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0,
61
+ // },
62
+ // },
63
+ // initialSource: [{ text: '英伦宝贝儿童用品有限公司', value: 'A0001' }]
64
+ // },
65
+ // {
66
+ // name: 'qp-accountingCode-in', type: 'select', label: '归属核算主体', field: {
67
+ // type: 'select',
68
+ // props: {
69
+ // mode: 'multiple',
70
+ // notFoundContent: '暂无数据',
71
+ // allowClear: true,
72
+ // showSearch: true,
73
+ // showArrow: true,
74
+ // maxTagCount: 1,
75
+ // optionFilterProp: 'children',
76
+ // filterOption: (input: string, option: { props: { children: string } }) =>
77
+ // option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0,
78
+ // },
79
+ // },
80
+ // initialSource: [{ text: '上海哲雄母婴用品有限公司', value: 'F002' }, { text: '上海英伦宝贝儿童用品有限公司', value: 'F001' }]
81
+ // },
82
+ // {
83
+ // name: 'qp-companyCode-in', type: 'select', label: '归属法人公司', field: {
84
+ // type: 'select',
85
+ // props: {
86
+ // mode: 'multiple',
87
+ // notFoundContent: '暂无数据',
88
+ // allowClear: true,
89
+ // showSearch: true,
90
+ // showArrow: true,
91
+ // maxTagCount: 1,
92
+ // optionFilterProp: 'children',
93
+ // filterOption: (input: string, option: { props: { children: string } }) =>
94
+ // option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0,
95
+ // },
96
+ // },
97
+ // initialSource: [{ text: '上海哲雄母婴用品有限公司', value: 'F002' }, { text: '上海英伦宝贝儿童用品有限公司', value: 'F001' }]
98
+ // },
99
+ // { name: 'qp-sharingType-eq', type: 'select', label: '共享类型', initialSource: DictionaryUC000013 }, // 页面可以直接使用getDictionarySource('UC000013')
100
+ // ],
101
+ // tableColumns: [
102
+ // {
103
+ // title: '客户编码',
104
+ // dataIndex: 'code',
105
+ // },
106
+ // {
107
+ // title: '客户名称',
108
+ // dataIndex: 'name',
109
+ // },
110
+ // {
111
+ // title: '归属集团',
112
+ // dataIndex: 'conglomerateName',
113
+ // },
114
+ // {
115
+ // title: '归属法人公司',
116
+ // dataIndex: 'legalCompanyName',
117
+ // },
118
+ // {
119
+ // title: '归属核算主体',
120
+ // dataIndex: 'accountingName',
121
+ // },
122
+ // {
123
+ // title: '共享类型',
124
+ // dataIndex: 'sharingType',
125
+ // render: (text) => DictionaryUC000013?.find((i) => i.value === text)?.text, // getDictionaryTextByValue('UC000013', text)
126
+ // },
127
+ // ]
128
+ // }
129
+
130
+ // return (
131
+ // <div>
132
+ // <SearchSelect
133
+ // {...props}
134
+ // modalTableProps={modalTableProps}
135
+ // />
136
+ // </div>
137
+ // );
138
+ // };
139
+ import BusinessSearchSelect from '../../Business/SearchSelect/index.tsx';
140
+ import React, { useState, useEffect } from 'react';
141
+ import { Button } from 'antd';
129
142
 
143
+ export default () => {
144
+ const [value, setValue] = useState<any[]>([]);
130
145
  return (
131
- <div>
132
- <SearchSelect
133
- {...props}
134
- modalTableProps={modalTableProps}
135
- />
136
- </div>
146
+ <BusinessSearchSelect
147
+ selectBusinessType="skuCommodity"
148
+ prefixUrl={{
149
+ selectPrefix: '/items',
150
+ formSelectFix: '/items',
151
+ }}
152
+ selectProps={{
153
+ mode: 'multiple',
154
+ }}
155
+ value={value}
156
+ onChange={(val) => {
157
+ console.log('onChange val =>', val);
158
+ setValue(val);
159
+ }}
160
+ pageSize={2000}
161
+ showAllSelectBtn
162
+ highestPopContainer={() => document.body}
163
+ fieldComponent={<Button type="primary">选择 SKU 测试</Button>}
164
+ />
137
165
  );
138
166
  };
139
167
  ```
@@ -59,11 +59,20 @@ const SearchSelect = forwardRef((props: any, ref: any) => {
59
59
  } = rCTemp || {};
60
60
  const requestConfig = {url,method,otherParams,isMap,fixedparameter,fieldValToParam,fixedparamsDisabled,mappingTextField,mappingTextShowKeyField,mappingValueField,mappingTextShowTextField,init,extralHeaders,specialBracket,noNeedSplit,noOperate,viewShowValueStr,searchStartLength,...rCTemp};
61
61
  const resultSourceKey = handleSourceName(sourceName || requestConfig?.sourceName || ctx?.name || 'supplierCode')
62
+ const TABLE_PAGE_SIZE_OPTIONS = [
63
+ 10, 20, 50, 100, 200, 500, 1000, 2000, 3000,
64
+ ];
62
65
 
66
+ const resolveTablePageSize = (pageSize?: number) => {
67
+ if (TABLE_PAGE_SIZE_OPTIONS.includes(Number(pageSize))) {
68
+ return Number(pageSize);
69
+ }
70
+ return 20;
71
+ };
63
72
  const selectMode = selectProps?.mode // 设定当前选择器 为单选或者多选模式 无设定为单选模式(默认)
64
73
  const initVal = value || (selectMode ? [] : null);
65
74
  const pageSize = 100 // 下拉框默认分页 条数
66
- const tableInitPageSize = 20 // 弹框默认分页 条数
75
+ const tableInitPageSize = resolveTablePageSize(props?.pageSize || null) // 弹框默认分页 条数
67
76
  const currentPage = 1
68
77
  const selectParamsKey = requestConfig?.filter || 'qp-codeAndName-like'
69
78
  const selectParamsInitKey = requestConfig?.filterInit || selectParamsKey
@@ -86,7 +95,7 @@ const SearchSelect = forwardRef((props: any, ref: any) => {
86
95
  const isFormPage = pathname.match(pattern)?.length > 0;
87
96
 
88
97
  const initPagination = { showQuickJumper: true, showSizeChanger: true, showTotal: (total: any) => `共 ${total} 条`, pageSize: tableInitPageSize }
89
- const tableInitPagination = { ...initPagination, total: 0, current: 1, pageSizeOptions: [10, 20, 50, 100, 500, 1000] }
98
+ const tableInitPagination = { ...initPagination, total: 0, current: 1, pageSizeOptions:TABLE_PAGE_SIZE_OPTIONS.map(String) }
90
99
  const disabled = !!noOperate || selectProps?.disabled || props?.disabled;
91
100
  const isHaveDependency = fixedparameter && fieldValToParam && ctx;
92
101
  const isHaveDValue = () => {
@@ -109,6 +118,8 @@ const SearchSelect = forwardRef((props: any, ref: any) => {
109
118
  const [isModalVisible, setIsModalVisible] = useState(false);
110
119
  const [popvalue, setPopValue] = useState(initVal);
111
120
  const [uniqueValue, setUniqueValue] = useState(resultSourceKey)
121
+ const [selectToggleMap, setSelectToggleMap] = useState<any>({});
122
+
112
123
  const { run } = useDebounceFn(
113
124
  (v?: any) => {
114
125
  // 优化搜索参数 支持传多个
@@ -600,12 +611,66 @@ const SearchSelect = forwardRef((props: any, ref: any) => {
600
611
 
601
612
  if (i?.type === 'select' || i?.field?.type === 'select') {
602
613
  return (
603
- <Col span={ColSpan} key={i.name}>
604
- <Form.Item name={i.name} label={i.label} key={i.name}>
605
- <Select style={{ width: '100%' }} placeholder='请选择' onDeselect ={v => onSearchTable()} {...i?.field?.props} disabled={setDisabled(i.name)}>
606
- {i?.initialSource?.length && i?.initialSource.map((m: any) => (
607
- <Option value={m.value} key={m.value}>{m.text}</Option>
608
- ))}
614
+ <Col span={ColSpan}
615
+ key={i.name}>
616
+ <Form.Item name={i.name}
617
+ label={i.label} key={i.name}>
618
+ <Select style={{ width: '100%' }}
619
+ placeholder='请选择'
620
+ onDeselect ={v => onSearchTable()} {...i?.field?.props}
621
+ disabled={
622
+ setDisabled(i.name)
623
+ }
624
+ mode={i?.field?.props?.mode}
625
+ dropdownRender={(menu) => {
626
+ // 候选项数组(去重)
627
+ const allValues = Array.isArray(i?.initialSource)
628
+ ? Array.from(new Set(i.initialSource.map((s: any) => s.value).filter(v => v !== undefined && v !== null)))
629
+ : [];
630
+ const isMulti = i?.field?.props?.mode === 'multiple' || i?.field?.props?.mode === 'tags';
631
+ // 当前 toggle 状态(true 表示下一次点击是反选 -> 显示为“反选”)
632
+ const toggled = !!selectToggleMap[i.name];
633
+ const label = toggled ? '反选' : '全选';
634
+ // 通过 props.allSelectValues 控制按钮是否显示
635
+ const showSelectAllButton = props.showAllSelectBtn && isMulti && allValues.length > 0;
636
+ return (
637
+ <div>
638
+ {showSelectAllButton && (
639
+ <div style={{ padding: 6, display: 'flex', justifyContent: 'flex-end', alignItems: 'center' }}>
640
+ <Button
641
+ type="link"
642
+ size="small"
643
+ onMouseDown={(e) => e.preventDefault()} // 防止 dropdown 失焦关闭
644
+ onClick={(e) => {
645
+ e.stopPropagation();
646
+ const cur = form.getFieldValue(i.name) || [];
647
+ const curArr = Array.isArray(cur) ? cur : [cur].filter(Boolean);
648
+
649
+ if (!toggled) {
650
+ // 全选:把所有候选值写入表单
651
+ form.setFieldsValue({ [i.name]: allValues });
652
+ setSelectToggleMap(prev => ({ ...(prev || {}), [i.name]: true }));
653
+ } else {
654
+ // 反选:当前实现为“把候选项中未被选中的项选上”(基于当前值取补集)
655
+ const newVals = allValues.filter((v) => !curArr.includes(v));
656
+ form.setFieldsValue({ [i.name]: newVals });
657
+ setSelectToggleMap(prev => ({ ...(prev || {}), [i.name]: false }));
658
+ }
659
+ }}
660
+ style={{ padding: '0 6px', height: 20, lineHeight: '20px' }}
661
+ >
662
+ {label}
663
+ </Button>
664
+ </div>
665
+ )}
666
+ <div>{menu}</div>
667
+ </div>
668
+ );
669
+ }}
670
+ >
671
+ {i?.initialSource?.length && i?.initialSource.map((m: any) => (
672
+ <Option value={m.value} key={m.value}>{m.text}</Option>
673
+ ))}
609
674
  </Select>
610
675
  </Form.Item>
611
676
  </Col>