@gm-pc/react 1.28.0-beta.11 → 1.28.0-beta.13

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gm-pc/react",
3
- "version": "1.28.0-beta.11",
3
+ "version": "1.28.0-beta.13",
4
4
  "description": "观麦前端基础组件库",
5
5
  "author": "liyatang <liyatang@qq.com>",
6
6
  "homepage": "https://github.com/gmfe/gm-pc#readme",
@@ -24,7 +24,7 @@
24
24
  "dependencies": {
25
25
  "@gm-common/hooks": "^2.10.0",
26
26
  "@gm-common/tool": "^2.10.0",
27
- "@gm-pc/locales": "^1.28.0-beta.11",
27
+ "@gm-pc/locales": "^1.28.0-beta.13",
28
28
  "big.js": "^6.0.1",
29
29
  "classnames": "^2.2.5",
30
30
  "lodash": "^4.17.19",
@@ -48,5 +48,5 @@
48
48
  "react-router-dom": "^5.2.0",
49
49
  "react-window": "^1.8.5"
50
50
  },
51
- "gitHead": "740fa35594c216a01956599921e3ed94038ffdb3"
51
+ "gitHead": "c8234f419681aca5321788b5e0cf39a36716e30d"
52
52
  }
@@ -402,46 +402,47 @@ class MoreSelectBase<V extends string | number = string> extends Component<
402
402
  listHeight,
403
403
  } = this.props
404
404
 
405
- const selectedValues = new Set(selected.map((v) => v.value))
405
+ const selectedValues = new Set(selected?.map((v) => v.value))
406
406
 
407
407
  // 分离已勾选和未勾选的数据
408
- const selectedGroups: MoreSelectGroupDataItem<V>[] = []
409
408
  const availableGroups: MoreSelectGroupDataItem<V>[] = []
409
+ // 已选中区域直接使用 selected 构建,不受筛选影响
410
+ const selectedGroups: MoreSelectGroupDataItem<V>[] = []
410
411
 
411
- filterData.forEach((group) => {
412
- const selectedChildren = group.children.filter((item) =>
413
- selectedValues.has(item.value)
414
- )
415
- const availableChildren = group.children.filter(
416
- (item) => !selectedValues.has(item.value)
417
- )
412
+ if (multiple) {
413
+ filterData.forEach((group) => {
414
+ const availableChildren = group.children.filter(
415
+ (item) => !selectedValues.has(item.value)
416
+ )
417
+
418
+ if (availableChildren.length > 0) {
419
+ availableGroups.push({
420
+ ...group,
421
+ children: availableChildren,
422
+ })
423
+ }
424
+ })
418
425
 
419
- if (selectedChildren.length > 0) {
426
+ if (selected.length > 0) {
420
427
  selectedGroups.push({
421
- ...group,
422
- children: selectedChildren,
423
- })
424
- }
425
- if (availableChildren.length > 0) {
426
- availableGroups.push({
427
- ...group,
428
- children: availableChildren,
428
+ label: '',
429
+ children: selected,
429
430
  })
430
431
  }
431
- })
432
+ }
432
433
 
433
434
  return (
434
435
  <div style={{ height: listHeight, overflow: 'auto' }}>
435
- {selectedGroups.length > 0 && (
436
+ {selected.length > 0 && multiple && (
436
437
  <>
437
438
  <div className='gm-more-select-section-title gm-padding-5 gm-text-desc gm-text-12'>
438
- 已勾选
439
+ 已选中
439
440
  </div>
440
441
  <ListBase
441
442
  selected={selected.map((v) => v.value)}
442
443
  data={selectedGroups}
443
444
  multiple={multiple}
444
- isGroupList={isGroupList}
445
+ isGroupList={false}
445
446
  className='gm-border-0'
446
447
  renderItem={renderListItem}
447
448
  onSelect={this._handleSelect}
@@ -450,24 +451,25 @@ class MoreSelectBase<V extends string | number = string> extends Component<
450
451
  />
451
452
  </>
452
453
  )}
453
- {availableGroups.length > 0 && (
454
- <>
454
+ <>
455
+ {multiple && (
455
456
  <div className='gm-more-select-section-title gm-padding-5 gm-text-desc gm-text-12'>
456
- 可选择的筛选项
457
+ 未选中
457
458
  </div>
458
- <ListBase
459
- selected={selected.map((v) => v.value)}
460
- data={availableGroups}
461
- multiple={multiple}
462
- isGroupList={isGroupList}
463
- className='gm-border-0'
464
- renderItem={renderListItem}
465
- onSelect={this._handleSelect}
466
- isScrollTo={false}
467
- willActiveIndex={willActiveIndex!}
468
- />
469
- </>
470
- )}
459
+ )}
460
+
461
+ <ListBase
462
+ selected={selected.map((v) => v.value)}
463
+ data={multiple ? availableGroups : filterData}
464
+ multiple={multiple}
465
+ isGroupList={isGroupList}
466
+ className='gm-border-0'
467
+ renderItem={renderListItem}
468
+ onSelect={this._handleSelect}
469
+ isScrollTo
470
+ willActiveIndex={willActiveIndex!}
471
+ />
472
+ </>
471
473
  </div>
472
474
  )
473
475
  }