|
@@ -1,6 +1,13 @@
|
|
|
-import { reactive, ref, computed, watch, toRefs } from 'vue'
|
|
|
-import { useRouter } from 'vue-router'
|
|
|
+import { reactive, ref, computed, watch, toRefs, onMounted, onBeforeUnmount } from 'vue'
|
|
|
+import { useRouter, useRoute } from 'vue-router'
|
|
|
import bus from '@/utils/bus'
|
|
|
+function getParentNodeIsScroll(el: any): any {
|
|
|
+ if (el.className.includes('scroll-auto')) {
|
|
|
+ return el
|
|
|
+ } else {
|
|
|
+ return getParentNodeIsScroll(el.parentNode)
|
|
|
+ }
|
|
|
+}
|
|
|
const useMarkHeader = () => {
|
|
|
const { back, push } = useRouter()
|
|
|
|
|
@@ -59,7 +66,88 @@ const useMarkHeader = () => {
|
|
|
// push({ name: 'MarkStandard' })
|
|
|
bus.emit('showStandard')
|
|
|
}
|
|
|
-
|
|
|
+ function markKeyBoardEvents(e: any) {
|
|
|
+ console.log('eee', e)
|
|
|
+ if (e.key === 'F7') {
|
|
|
+ e.preventDefault()
|
|
|
+ bus.emit('scale-up')
|
|
|
+ } else if (e.key === 'F8') {
|
|
|
+ e.preventDefault()
|
|
|
+ bus.emit('scale-down')
|
|
|
+ } else if (e.key === 'F9') {
|
|
|
+ e.preventDefault()
|
|
|
+ bus.emit('init-scale')
|
|
|
+ } else if (e.key === 'F10') {
|
|
|
+ e.preventDefault()
|
|
|
+ bus.emit('fast-send-msg')
|
|
|
+ } else if (e.key === 'F12') {
|
|
|
+ e.preventDefault()
|
|
|
+ bus.emit('mark-method-toggle')
|
|
|
+ } else if (e.code === 'Space') {
|
|
|
+ const imgWrap = document.querySelector('.img-wrap')
|
|
|
+ if (!imgWrap) {
|
|
|
+ return
|
|
|
+ } else {
|
|
|
+ const pWrap = getParentNodeIsScroll(imgWrap)
|
|
|
+ let t = (pWrap as any).scrollTop
|
|
|
+ t += 100
|
|
|
+ pWrap.scrollTo({
|
|
|
+ left: 0,
|
|
|
+ top: t,
|
|
|
+ behavior: 'smooth',
|
|
|
+ })
|
|
|
+ }
|
|
|
+ } else if (e.keyCode == 36) {
|
|
|
+ const imgWrap = document.querySelector('.img-wrap')
|
|
|
+ if (!imgWrap) {
|
|
|
+ return
|
|
|
+ } else {
|
|
|
+ const pWrap = getParentNodeIsScroll(imgWrap)
|
|
|
+ pWrap.scrollTo({
|
|
|
+ left: 0,
|
|
|
+ top: 0,
|
|
|
+ behavior: 'smooth',
|
|
|
+ })
|
|
|
+ }
|
|
|
+ } else if (e.keyCode == 35) {
|
|
|
+ const imgWrap = document.querySelector('.img-wrap')
|
|
|
+ if (!imgWrap) {
|
|
|
+ return
|
|
|
+ } else {
|
|
|
+ const pWrap = getParentNodeIsScroll(imgWrap)
|
|
|
+ pWrap.scrollTo({
|
|
|
+ left: 0,
|
|
|
+ top: pWrap.scrollHeight,
|
|
|
+ behavior: 'smooth',
|
|
|
+ })
|
|
|
+ }
|
|
|
+ } else if (e.key == 'Backspace') {
|
|
|
+ if (e.target.tagName === 'INPUT' || e.target.className.includes('contenteditable-ele')) {
|
|
|
+ return false
|
|
|
+ } else {
|
|
|
+ bus.emit('mark-prev')
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ function paperDblClick(e: any) {
|
|
|
+ if ((e.target.className || '').includes('paper-img')) {
|
|
|
+ bus.emit('scale-up')
|
|
|
+ }
|
|
|
+ }
|
|
|
+ onMounted(() => {
|
|
|
+ const route = useRoute()
|
|
|
+ if (route.name === 'MarkingMark') {
|
|
|
+ document.addEventListener('keydown', markKeyBoardEvents)
|
|
|
+ document.addEventListener('dblclick', paperDblClick)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ onBeforeUnmount(() => {
|
|
|
+ const route = useRoute()
|
|
|
+ if (route.name === 'MarkingMark') {
|
|
|
+ document.removeEventListener('keydown', markKeyBoardEvents)
|
|
|
+ document.removeEventListener('dblclick', paperDblClick)
|
|
|
+ }
|
|
|
+ })
|
|
|
return {
|
|
|
...toRefs(imgOperation),
|
|
|
onBack,
|