|
@@ -1,11 +1,11 @@
|
|
<template>
|
|
<template>
|
|
<div
|
|
<div
|
|
class="cover-layout"
|
|
class="cover-layout"
|
|
- @click="clickHandler"
|
|
|
|
- @mousedown.stop.prevent="downHandler"
|
|
|
|
- @touchstart.stop.prevent="downHandler"
|
|
|
|
|
|
+ @mousedown="downHandler"
|
|
|
|
+ @touchstart="downHandler"
|
|
:class="{ move: move }"
|
|
:class="{ move: move }"
|
|
:style="style"
|
|
:style="style"
|
|
|
|
+ v-show="style"
|
|
ref="dom"
|
|
ref="dom"
|
|
>
|
|
>
|
|
<slot />
|
|
<slot />
|
|
@@ -50,6 +50,7 @@ updatePos()
|
|
|
|
|
|
const move = ref(false)
|
|
const move = ref(false)
|
|
const downHandler = (sev: MouseEvent | TouchEvent) => {
|
|
const downHandler = (sev: MouseEvent | TouchEvent) => {
|
|
|
|
+ const start = new Date().getTime()
|
|
const el = sev.target as HTMLElement
|
|
const el = sev.target as HTMLElement
|
|
const mountEl = document.documentElement
|
|
const mountEl = document.documentElement
|
|
const preset = {
|
|
const preset = {
|
|
@@ -78,7 +79,7 @@ const downHandler = (sev: MouseEvent | TouchEvent) => {
|
|
y: (ev instanceof TouchEvent ? ev.touches[0].pageY : ev.pageY) + preset.y,
|
|
y: (ev instanceof TouchEvent ? ev.touches[0].pageY : ev.pageY) + preset.y,
|
|
inDrag: true
|
|
inDrag: true
|
|
})
|
|
})
|
|
- if (pos.position) {
|
|
|
|
|
|
+ if (pos?.position) {
|
|
emit('changePos', pos.position);
|
|
emit('changePos', pos.position);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -88,6 +89,9 @@ const downHandler = (sev: MouseEvent | TouchEvent) => {
|
|
mountEl.removeEventListener('touchmove', moveHandler)
|
|
mountEl.removeEventListener('touchmove', moveHandler)
|
|
mountEl.removeEventListener('touchend', upHandler)
|
|
mountEl.removeEventListener('touchend', upHandler)
|
|
move.value = false
|
|
move.value = false
|
|
|
|
+ if (new Date().getTime() - start < 300) {
|
|
|
|
+ clickHandler(ev)
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
mountEl.addEventListener('mousemove', moveHandler)
|
|
mountEl.addEventListener('mousemove', moveHandler)
|
|
@@ -100,12 +104,15 @@ const clickHandler = ev => {
|
|
emit("focus")
|
|
emit("focus")
|
|
|
|
|
|
const handler = (ev: MouseEvent) => {
|
|
const handler = (ev: MouseEvent) => {
|
|
|
|
+ console.log("????????")
|
|
if (!dom.value.contains(ev.target as HTMLElement) && ev.target !== dom.value) {
|
|
if (!dom.value.contains(ev.target as HTMLElement) && ev.target !== dom.value) {
|
|
emit("blur")
|
|
emit("blur")
|
|
- document.documentElement.removeEventListener("click", handler)
|
|
|
|
|
|
+ // document.documentElement.removeEventListener("click", handler)
|
|
|
|
+ document.documentElement.removeEventListener("touchstart", handler)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- document.documentElement.addEventListener("click", handler, { passive: true })
|
|
|
|
|
|
+ // document.documentElement.addEventListener("click", handler, { passive: true })
|
|
|
|
+ document.documentElement.addEventListener("touchstart", handler, { passive: true })
|
|
}
|
|
}
|
|
|
|
|
|
onUnmounted(() => {
|
|
onUnmounted(() => {
|