diff --git a/packages/fineui/src/base/combination/combo.js b/packages/fineui/src/base/combination/combo.js index 0721ba9e0..e3c5f5db8 100644 --- a/packages/fineui/src/base/combination/combo.js +++ b/packages/fineui/src/base/combination/combo.js @@ -267,34 +267,34 @@ export class Combo extends Bubble { belowMouse && isNotNull(e) ? { element: { - 0: e.target, - offset: () => { + 0: extend({}, e.target, { + getBoundingClientRect: function () { + return { + left: e.pageX, + top: e.pageY, + width: 0, + height: 0, + }; + } + }), + offset: function () { return { left: e.pageX, top: e.pageY, }; }, - bounds: () => { - // offset为其相对于父定位元素的偏移 - return { - x: e.offsetX, - y: e.offsetY, - width: 0, - height: 24, - }; - }, - outerWidth: () => 0, - outerHeight: () => 24, }, } : this.combo; - const positionRelativeElement = supportCSSTransform - ? DOM.getPositionRelativeContainingBlock( - isNull(container) - ? this.element[0] - : Widget._renderEngine.createElement(isFunction(container) ? container() : container)[0] - ) - : null; + + const positionRelativeElement = DOM.getPositionRelativeContainingBlock( + isNull(container) + ? this.element[0] + : BI.isWidget(container) + ? container.element[0] + : BI.Widget._renderEngine.createElement(isFunction(container) ? container() : container)[0] + ); + const TRIANGLE_LENGTH = 12; switch (direction) { case "bottom": @@ -513,8 +513,14 @@ export class Combo extends Bubble { const scaleX = positonedRect.width / positionRelativeElement.offsetWidth; const scaleY = positonedRect.height / positionRelativeElement.offsetHeight; - p.top && (p.top = p.top / scaleY); - p.left && (p.left = p.left / scaleX); + p.top && (p.top = Math.round(p.top / scaleY + positionRelativeElement.scrollTop)); + p.left && (p.left = Math.round(p.left / scaleX + positionRelativeElement.scrollLeft)); + + p.adaptHeight && (p.adaptHeight = Math.round(p.adaptHeight / scaleY)); + } + + if ("adaptHeight" in p) { + this.resetListHeight(p.adaptHeight); } if ("left" in p) { diff --git a/packages/fineui/webpack/webpack.prod.js b/packages/fineui/webpack/webpack.prod.js index 712a39d10..2fc6ceb37 100644 --- a/packages/fineui/webpack/webpack.prod.js +++ b/packages/fineui/webpack/webpack.prod.js @@ -5,6 +5,7 @@ const attachments = require("./attachments"); module.exports = merge(common, { mode: "production", + target: ["web", "es5"], entry: { "fineui.min": attachments.fineui, @@ -14,8 +15,8 @@ module.exports = merge(common, { output: { path: dirs.DEST, - filename: "[name].js", + filename: "[name].js" }, - devtool: "hidden-source-map", + devtool: "hidden-source-map" });