diff --git a/package/layer/src/component/Notifiy.vue b/package/layer/src/component/Notifiy.vue index 3bf8f629..7359bcf6 100644 --- a/package/layer/src/component/Notifiy.vue +++ b/package/layer/src/component/Notifiy.vue @@ -17,7 +17,7 @@ export default { }; diff --git a/package/layer/src/component/index.vue b/package/layer/src/component/index.vue index 0ece2861..90e41765 100644 --- a/package/layer/src/component/index.vue +++ b/package/layer/src/component/index.vue @@ -177,7 +177,6 @@ const firstOpenDelayCalculation = function () { area.value = calculateDrawerArea(props.offset, props.area); } if (type == 5) { - // @ts-ignore area.value = await calculatePhotosArea( props.imgList[props.startIndex].src, props @@ -395,13 +394,14 @@ const boxClasses = computed(() => { const supportMove = function () { if (props.move && type != 4) { nextTick(() => { - // @ts-ignore 拖拽 - useMove(layero.value, (left, top) => { + // 拖拽 + if (!layero.value) return; + useMove(layero.value, (left: string, top: string) => { l.value = left; t.value = top; }); - // @ts-ignore 拉伸 - useResize(layero.value, (width, height) => { + // 拉伸 + useResize(layero.value, (width: string, height: string) => { h.value = height; w.value = width; }); @@ -450,6 +450,7 @@ const closeHandle = () => { //Notify 从队列中移除当前实例 if (type === 6) { + //@ts-ignore removeNotifiyFromQueen(props.id); } }; @@ -524,7 +525,7 @@ const leaveActiveClass = computed(() => { }); /** - * 打卡弹层 + * 打开弹层 *

*/ const open = () => { @@ -576,7 +577,6 @@ const showTitle = computed(() => { */ const resetCalculationPohtosArea = function (index: number) { nextTick(async () => { - // @ts-ignore area.value = await calculatePhotosArea(props.imgList[index].src, props); offset.value = calculateOffset(props.offset, area.value, props.type); w.value = area.value[0]; diff --git a/package/layer/src/utils/index.ts b/package/layer/src/utils/index.ts index 780d1595..2ae14591 100644 --- a/package/layer/src/utils/index.ts +++ b/package/layer/src/utils/index.ts @@ -264,7 +264,10 @@ export function getDrawerAnimationClass(offset: any, isClose: boolean = false) { } //计算图片大小 并缩放 -export async function calculatePhotosArea(url: string, options: object) { +export async function calculatePhotosArea( + url: string, + options: object +): Promise> { let img = new Image(); img.src = url; return new Promise((resolve, reject) => { @@ -311,10 +314,8 @@ export function calculateNotifOffset(offset: any, area: any, layerId: string) { // 间隙 let transOffsetLeft = 15; let transOffsetTop = 15; - // @ts-ignore - window.NotifiyQueen = window.NotifiyQueen || []; - // @ts-ignore - let notifiyQueen = window.NotifiyQueen; + (window as any).NotifiyQueen = (window as any).NotifiyQueen || []; + let notifiyQueen = (window as any).NotifiyQueen; if (typeof offset != "string" || arr.indexOf(offset) === -1) { offset = "rt"; } @@ -366,19 +367,14 @@ export function calculateNotifOffset(offset: any, area: any, layerId: string) { } //移除Notify队列中某项,并且重新计算其他Notify位置 -export function removeNotifiyFromQueen(layerId: string | undefined) { +export function removeNotifiyFromQueen(layerId: string) { // 间隙 let transOffsetTop = 15; - // @ts-ignore 删除项的高度 - let offsetHeight = - // @ts-ignore - // @ts-ignore - document.getElementById(layerId)?.firstElementChild?.firstElementChild - ?.offsetHeight; - // @ts-ignore - window.NotifiyQueen = window.NotifiyQueen || []; - // @ts-ignore - let notifiyQueen = window.NotifiyQueen; + // 删除项的高度 + let notifiyDom = document.getElementById(layerId)?.firstElementChild?.firstElementChild as HTMLElement; + let offsetHeight = notifiyDom.offsetHeight; + (window as any).NotifiyQueen = (window as any).NotifiyQueen || []; + let notifiyQueen = (window as any).NotifiyQueen; let index = notifiyQueen.findIndex((e: { id: string }) => e.id === layerId); let offsetType = notifiyQueen[index].offset; let list = notifiyQueen.filter((e: { offset: any }) => { @@ -390,22 +386,11 @@ export function removeNotifiyFromQueen(layerId: string | undefined) { // //得到需要修改的定位的Notifiy集合 let needCalculatelist = list.slice(findIndex + 1); needCalculatelist.forEach((e: { id: string }) => { - let dom = document.getElementById(e.id)?.firstElementChild - ?.firstElementChild; + let dom = document.getElementById(e.id)?.firstElementChild?.firstElementChild as HTMLElement; if (offsetType === "rt" || offsetType === "lt") { - // @ts-ignore - dom.style["top"] = - // @ts-ignore - parseFloat(dom.style["top"]) - transOffsetTop - offsetHeight + "px"; + dom.style["top"] = parseFloat(dom.style["top"]) - transOffsetTop - offsetHeight + "px"; } else { - // @ts-ignore - let bottom = - // @ts-ignore - parseFloat(dom.style["top"].split(" - ")[1]) - - transOffsetTop - - offsetHeight; - // @ts-ignore - dom.style["top"] = "calc(100vh - " + bottom + "px)"; + let bottom = parseFloat(dom.style["top"].split(" - ")[1]) - transOffsetTop - offsetHeight; dom.style["top"] = "calc(100vh - " + bottom + "px)"; } }); notifiyQueen.splice(index, 1); //删除