44 lines
1.1 KiB
TypeScript
Raw Permalink Normal View History

2024-11-05 10:09:18 +08:00
import type { ComponentInternalInstance } from 'vue'
/**
* SelectorQuery
* @param instance
* @returns SelectorQuery
*/
export const createSelectorQuery = (instance: ComponentInternalInstance) => {
let query: UniApp.SelectorQuery | null = null
// #ifndef MP-ALIPAY
query = uni.createSelectorQuery().in(instance)
// #endif
// #ifdef MP-ALIPAY
query = uni.createSelectorQuery().in(null)
// #endif
return query
}
/**
*
* @param query SelectorQuery
* @param selector
* @returns
*/
export const getSelectorNodeInfo = (
query: UniApp.SelectorQuery,
selector: string
): Promise<UniApp.NodeInfo> => {
return new Promise((resolve, reject) => {
query
.select(selector)
.boundingClientRect((res) => {
const selectRes: UniApp.NodeInfo = res as UniApp.NodeInfo
if (selectRes) {
resolve(selectRes)
} else {
reject(new Error(`未找到对应节点: ${selector}`))
}
})
.exec()
})
}