From 35964757906d5a3f3723627ee1b4c409822aa47a Mon Sep 17 00:00:00 2001 From: kuaifan Date: Tue, 19 Mar 2024 03:14:09 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=B6=88=E6=81=AF=E5=A4=AA=E9=95=BF?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=E8=8F=9C=E5=8D=95=E6=97=A0=E6=B3=95=E6=AD=A3?= =?UTF-8?q?=E5=B8=B8=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../js/pages/manage/components/DialogWrapper.vue | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/resources/assets/js/pages/manage/components/DialogWrapper.vue b/resources/assets/js/pages/manage/components/DialogWrapper.vue index a4d774d38..1c5be3ce8 100644 --- a/resources/assets/js/pages/manage/components/DialogWrapper.vue +++ b/resources/assets/js/pages/manage/components/DialogWrapper.vue @@ -2748,10 +2748,20 @@ export default { } this.$nextTick(() => { const rect = el.getBoundingClientRect(); + const scrollerRect = this.$refs.scroller.$el.getBoundingClientRect(); + let top = rect.top + this.windowScrollY, + height = rect.height; + if (rect.top < scrollerRect.top) { + top = scrollerRect.top + height -= scrollerRect.top - rect.top + } + if (rect.bottom > scrollerRect.bottom) { + height -= rect.bottom - scrollerRect.bottom + } this.operateStyles = { left: `${event.clientX}px`, - top: `${rect.top + this.windowScrollY}px`, - height: rect.height + 'px', + top: `${top}px`, + height: `${height}px`, } this.operateClient = {x: event.clientX, y: event.clientY}; this.operateVisible = true;