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