UNPKG

vite-uni-dev-tool

Version:

vite-uni-dev-tool, debug, uni-app, 一处编写,到处调试

50 lines (44 loc) 1.18 kB
import type { ComponentInternalInstance, ComponentPublicInstance } from 'vue'; export function getRect( selector: string, context: ComponentInternalInstance | null | any, node: boolean = false, ) { // 之前是个对象,现在改成实例,防止旧版会报错 if (context == null) { return Promise.reject('context is null'); } if (context?.context) { context = context.context; } return new Promise<UniNamespace.NodeInfo>((resolve, reject) => { const dom = uni.createSelectorQuery().in(context).select(selector); const result: any = (rect: UniNamespace.NodeInfo) => { if (rect) { resolve(rect); } else { reject('no rect'); } }; if (!node) { dom.boundingClientRect(result).exec(); } else { dom .fields( { node: true, size: true, rect: true, }, result, ) .exec(); } }); } export function addUnit(value?: string | number): string { if (!value) { return '0px'; } return typeof value === 'number' ? `${value}px` : value; }