From 335fc6b504d5648c13e7a408b0be5403f31d3869 Mon Sep 17 00:00:00 2001 From: lijisanxiong <1518062161@qq.com> Date: Fri, 8 Aug 2025 21:03:05 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix=EF=BC=9A=E4=BF=AE=E5=A4=8D=E6=97=A5?= =?UTF-8?q?=E5=8E=86=E5=A4=A9=E3=80=81=E5=91=A8=E6=A0=B7=E5=BC=8F=E6=97=B6?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E6=B0=94=E6=B3=A1=E6=98=BE=E7=A4=BA=E4=B8=8D?= =?UTF-8?q?=E5=85=A8=EF=BC=8C=E7=8E=B0=E5=B0=86=E6=B0=94=E6=B3=A1=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E9=80=BB=E8=BE=91=E8=B0=83=E6=95=B4=E4=B8=BA=E8=B7=9F?= =?UTF-8?q?=E9=9A=8F=E9=BC=A0=E6=A0=87=E7=A7=BB=E5=8A=A8=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../calendar-daily/calendar-daily.scss | 41 ++----- .../calendar-daily/calendar-daily.tsx | 100 +++++++----------- .../calendar-daily/use-calendar-daily.ts | 71 ++++++++++++- .../calendar-week/calendar-week.scss | 41 ++----- .../calendar-week/calendar-week.tsx | 99 ++++++----------- .../calendar-week/use-calendar-week.ts | 71 ++++++++++++- src/control/calendar/components/util/util.ts | 70 +++++++++++- 7 files changed, 290 insertions(+), 203 deletions(-) diff --git a/src/control/calendar/components/calendar-daily/calendar-daily.scss b/src/control/calendar/components/calendar-daily/calendar-daily.scss index 8b13c187..e931213a 100644 --- a/src/control/calendar/components/calendar-daily/calendar-daily.scss +++ b/src/control/calendar/components/calendar-daily/calendar-daily.scss @@ -235,13 +235,17 @@ } // 面板项popper @include e(event-popover) { - position: relative; width: auto; height: auto; padding: 0; - &.el-popover.el-popper { - padding: 8px; + &.#{bem('popover')} { + position: absolute; + z-index: 110; + padding: getCssVar(spacing, tight); + background: getCssVar(color, bg, 1); + border: none; + box-shadow: getCssVar('shadow', 'elevated'); } // 当配置了 showdetail 参数,只有配置了布局面板时才会显示气泡 @@ -272,36 +276,5 @@ } } } - @include m(close) { - position: absolute; - top: 8px; - right: 8px; - display: none; - cursor: pointer; - - &:hover { - .el-icon { - background: getCssVar(color, primary); - border-radius: 50%; - - svg { - fill: getCssVar(color, white); - } - } - } - } - - .el-icon { - display: flex; - align-items: center; - justify-content: center; - min-width: 24px; - min-height: 24px; - font-size: 20px; - - svg { - fill: var(--el-text-color-secondary); - } - } } } \ No newline at end of file diff --git a/src/control/calendar/components/calendar-daily/calendar-daily.tsx b/src/control/calendar/components/calendar-daily/calendar-daily.tsx index 6494e53b..8067c07d 100644 --- a/src/control/calendar/components/calendar-daily/calendar-daily.tsx +++ b/src/control/calendar/components/calendar-daily/calendar-daily.tsx @@ -3,7 +3,7 @@ import { defineComponent, onMounted, onUnmounted, watch } from 'vue'; import { useNamespace } from '@ibiz-template/vue3-util'; import { showTitle } from '@ibiz-template/core'; import { IUIEvent, calendarDailyEmits, calendarDailyProps } from '../interface'; -import { closeIcon, handlePopClose, isToday } from '../util'; +import { isToday } from '../util'; import { useCalendarDaily } from './use-calendar-daily'; import './calendar-daily.scss'; @@ -29,7 +29,10 @@ export const CalendarDaily = defineComponent({ handleCurTime, initDrawData, eventContextmenu, - } = useCalendarDaily(props, emit); + contentMousemove, + eventMouseenter, + eventMouseleave, + } = useCalendarDaily(props, emit, ns); watch( () => props.selectedData, @@ -61,6 +64,28 @@ export const CalendarDaily = defineComponent({ } }); + /** + * 绘制事件项popover内容 + * @param {IUIEvent} _event 事件项数据 + */ + const renderPopoverContent = (_event: IUIEvent) => { + // 适配弹框内详情不要背景色 + const _tempEvent = { ..._event, color: '', bkColor: '' }; + return ( +