Showing
2 changed files
with
28 additions
and
6 deletions
| ... | ... | @@ -173,6 +173,7 @@ var VirtualList = function VirtualList(_ref) { |
| 173 | 173 | searchName = _useState12[0], |
| 174 | 174 | setSearchName = _useState12[1]; |
| 175 | 175 | |
| 176 | + var btnMap = useRef({}); | |
| 176 | 177 | var padding = useMemo(function () { |
| 177 | 178 | return size === 'default' ? 32 : 16; |
| 178 | 179 | }, [size]); |
| ... | ... | @@ -547,13 +548,15 @@ var VirtualList = function VirtualList(_ref) { |
| 547 | 548 | needConfirm = item.needConfirm, |
| 548 | 549 | confirmContent = item.confirmContent, |
| 549 | 550 | icon = item.icon; |
| 551 | + var display = handleState(record, code, props.originWidget); | |
| 552 | + btnMap.current[code] = display; | |
| 550 | 553 | return /*#__PURE__*/React.createElement(_Tooltip, { |
| 551 | 554 | title: name |
| 552 | 555 | }, /*#__PURE__*/React.createElement(_Button, _extends({ |
| 553 | 556 | key: code, |
| 554 | 557 | style: { |
| 555 | 558 | marginLeft: 8, |
| 556 | - display: "".concat(handleState(record, code, props.originWidget)) | |
| 559 | + display: display | |
| 557 | 560 | } |
| 558 | 561 | }, item, { |
| 559 | 562 | icon: icon && style !== 'TEXT' ? BUTTON_ICONS_MAP[icon] : null, |
| ... | ... | @@ -606,7 +609,13 @@ var VirtualList = function VirtualList(_ref) { |
| 606 | 609 | }; |
| 607 | 610 | |
| 608 | 611 | if (style === "ICON" || props.originWidget === 'subform') { |
| 609 | - action.width = len * 32 + padding - 8; | |
| 612 | + var effectiveLength = 0; | |
| 613 | + Object.keys(btnMap.current || {}).forEach(function (code) { | |
| 614 | + if (btnMap.current[code] !== 'none') { | |
| 615 | + effectiveLength += 1; | |
| 616 | + } | |
| 617 | + }); | |
| 618 | + action.width = effectiveLength * 32 + padding - 8; | |
| 610 | 619 | } else { |
| 611 | 620 | var div = document.createElement('div'); |
| 612 | 621 | div.style.position = 'absolute'; |
| ... | ... | @@ -615,8 +624,10 @@ var VirtualList = function VirtualList(_ref) { |
| 615 | 624 | window.document.body.appendChild(div); |
| 616 | 625 | var leng = 0; |
| 617 | 626 | line.buttons.map(function (item) { |
| 627 | + var _btnMap$current; | |
| 628 | + | |
| 618 | 629 | div.innerHTML = item.name; |
| 619 | - leng += div.clientWidth + padding + (style !== 'TEXT' && item.icon ? 22 : 0); | |
| 630 | + leng += ((_btnMap$current = btnMap.current) === null || _btnMap$current === void 0 ? void 0 : _btnMap$current[item.code]) === 'none' ? 0 : div.clientWidth + padding + (style !== 'TEXT' && item.icon ? 22 : 0); | |
| 620 | 631 | }); |
| 621 | 632 | action.width = leng + padding - 8; |
| 622 | 633 | div.remove(); | ... | ... |
| ... | ... | @@ -222,6 +222,7 @@ var VirtualList = function VirtualList(_ref) { |
| 222 | 222 | searchName = _useState12[0], |
| 223 | 223 | setSearchName = _useState12[1]; |
| 224 | 224 | |
| 225 | + var btnMap = (0, _react.useRef)({}); | |
| 225 | 226 | var padding = (0, _react.useMemo)(function () { |
| 226 | 227 | return size === 'default' ? 32 : 16; |
| 227 | 228 | }, [size]); |
| ... | ... | @@ -598,13 +599,15 @@ var VirtualList = function VirtualList(_ref) { |
| 598 | 599 | needConfirm = item.needConfirm, |
| 599 | 600 | confirmContent = item.confirmContent, |
| 600 | 601 | icon = item.icon; |
| 602 | + var display = handleState(record, code, props.originWidget); | |
| 603 | + btnMap.current[code] = display; | |
| 601 | 604 | return /*#__PURE__*/_react.default.createElement(_tooltip.default, { |
| 602 | 605 | title: name |
| 603 | 606 | }, /*#__PURE__*/_react.default.createElement(_button.default, _extends({ |
| 604 | 607 | key: code, |
| 605 | 608 | style: { |
| 606 | 609 | marginLeft: 8, |
| 607 | - display: "".concat(handleState(record, code, props.originWidget)) | |
| 610 | + display: display | |
| 608 | 611 | } |
| 609 | 612 | }, item, { |
| 610 | 613 | icon: icon && style !== 'TEXT' ? BUTTON_ICONS_MAP[icon] : null, |
| ... | ... | @@ -657,7 +660,13 @@ var VirtualList = function VirtualList(_ref) { |
| 657 | 660 | }; |
| 658 | 661 | |
| 659 | 662 | if (style === "ICON" || props.originWidget === 'subform') { |
| 660 | - action.width = len * 32 + padding - 8; | |
| 663 | + var effectiveLength = 0; | |
| 664 | + Object.keys(btnMap.current || {}).forEach(function (code) { | |
| 665 | + if (btnMap.current[code] !== 'none') { | |
| 666 | + effectiveLength += 1; | |
| 667 | + } | |
| 668 | + }); | |
| 669 | + action.width = effectiveLength * 32 + padding - 8; | |
| 661 | 670 | } else { |
| 662 | 671 | var div = document.createElement('div'); |
| 663 | 672 | div.style.position = 'absolute'; |
| ... | ... | @@ -666,8 +675,10 @@ var VirtualList = function VirtualList(_ref) { |
| 666 | 675 | window.document.body.appendChild(div); |
| 667 | 676 | var leng = 0; |
| 668 | 677 | line.buttons.map(function (item) { |
| 678 | + var _btnMap$current; | |
| 679 | + | |
| 669 | 680 | div.innerHTML = item.name; |
| 670 | - leng += div.clientWidth + padding + (style !== 'TEXT' && item.icon ? 22 : 0); | |
| 681 | + leng += ((_btnMap$current = btnMap.current) === null || _btnMap$current === void 0 ? void 0 : _btnMap$current[item.code]) === 'none' ? 0 : div.clientWidth + padding + (style !== 'TEXT' && item.icon ? 22 : 0); | |
| 671 | 682 | }); |
| 672 | 683 | action.width = leng + padding - 8; |
| 673 | 684 | div.remove(); | ... | ... |