feat: 按键事件处理

pull/190/head
zhouxiaoan 1 year ago
parent 99545f481a
commit 428663af5c

@ -16,7 +16,7 @@ import { useInfiniteScroll } from '@vueuse/core'
import { format } from 'date-fns' import { format } from 'date-fns'
import imagesloaded from 'imagesloaded' import imagesloaded from 'imagesloaded'
import { clone, cloneDeep, debounce, pickBy } from 'lodash-es' import { clone, cloneDeep, debounce, pickBy } from 'lodash-es'
import { useDialog, useMessage } from 'naive-ui' import { useDialog, useMessage, useModal } from 'naive-ui'
import { import {
computed, computed,
onMounted, onMounted,
@ -90,6 +90,9 @@ let processItems: any[] = []
const passDialog = ref(false) const passDialog = ref(false)
// //
const rejectDialog = ref(false) const rejectDialog = ref(false)
const rejectDialogCom = ref < (null)
//
const modal = useModal()
let keyPlastKeyTime = 0 let keyPlastKeyTime = 0
let keyXLastTime = 0 let keyXLastTime = 0
// let keyPressTimer // let keyPressTimer
@ -282,15 +285,23 @@ function leaveTaskHandler() {
function onEsc(event) { function onEsc(event) {
const eles = ['INPUT', 'TEXTAREA'] const eles = ['INPUT', 'TEXTAREA']
const keys = ['KeyC', 'KeyP', 'KeyX'] const keys = ['KeyC', 'KeyP', 'KeyX']
console.log(event.code)
const code = event.code const code = event.code
if (eles.includes(event.target.targName)) if (eles.includes(event.target.tagName))
return return
if (!keys.includes(event.code)) if (!keys.includes(event.code))
return return
if (event.code === 'KeyC') { if (event.code === 'KeyC') {
if (isFullScreen.value && !document.querySelector('.n-modal-container')) { //
const modalClasss = [
document.querySelector('.n-modal'),
document.querySelector('.n-dialog'),
]
const hasModal = modalClasss.some(i => i)
if (isFullScreen.value && !hasModal) {
isFullScreen.value = false isFullScreen.value = false
return
} }
else { else {
const notPassModal = unref(notPassModalRef)! as any const notPassModal = unref(notPassModalRef)! as any
@ -299,6 +310,7 @@ function onEsc(event) {
mainImageModal.closeModal(false) mainImageModal.closeModal(false)
confrimModal.closeModal(false) confrimModal.closeModal(false)
notPassModal.closeModal(false) notPassModal.closeModal(false)
dialog.destroyAll()
} }
} }
// //
@ -328,8 +340,8 @@ function onEsc(event) {
function resizeImage() { function resizeImage() {
const container = document.querySelector('.image-container')! const container = document.querySelector('.image-container')!
const containerWidth = container.offsetWidth const containerWidth = container?.offsetWidth
const containerHeight = container.offsetHeight const containerHeight = container?.offsetHeight
} }
onUnmounted(() => { onUnmounted(() => {
@ -539,6 +551,14 @@ function handleRejectdubiousfileyd(pictureid) {
onPositiveClick: () => { onPositiveClick: () => {
dubiousfileyd(pictureid).then(() => { dubiousfileyd(pictureid).then(() => {
refreshHandler() refreshHandler()
const packageid = workStore.getActiveId
if (isEmpty(packageid)) {
listData.value.length = 0
totalCount.value = 0
taskDetailInfo.value = {}
return
}
queryDetail(packageid)
}) })
}, },
onNegativeClick: () => {}, onNegativeClick: () => {},

@ -1,6 +1,6 @@
<script lang="ts" setup> <script lang="ts" setup>
import { difference } from 'lodash-es' import { difference } from 'lodash-es'
import { computed, defineEmits, defineProps, onMounted, ref, watch } from 'vue' import { computed, defineEmits, defineProps, onMounted, onUnmounted, ref, watch } from 'vue'
import { VueDraggable } from 'vue-draggable-plus' import { VueDraggable } from 'vue-draggable-plus'
import { getAllfieldList, getfieldList, savefield } from '@/api/home/filter' import { getAllfieldList, getfieldList, savefield } from '@/api/home/filter'
import { workPackageMap } from '@/config/workorder' import { workPackageMap } from '@/config/workorder'
@ -36,6 +36,9 @@ const showOffList = computed(() => {
const showFixList = computed(() => { const showFixList = computed(() => {
return fixList.value.filter(i => i.name.includes(searchFixVal.value)) return fixList.value.filter(i => i.name.includes(searchFixVal.value))
}) })
const showOnList = computed(() => {
return onList.value.filter(i => i.name.includes(searchFixVal.value))
})
const selectCount = computed(() => { const selectCount = computed(() => {
return `显示字段(共${onList.value.length}个)` return `显示字段(共${onList.value.length}个)`
}) })
@ -178,6 +181,9 @@ watch(
searchKey.value = '' searchKey.value = ''
searchFixVal.value = '' searchFixVal.value = ''
} }
else {
emit('showDialog', val)
}
}, },
) )
watch( watch(
@ -315,11 +321,21 @@ async function getData() {
} }
}) })
} }
function handleKeydown(event: KeyboardEvent) {
//
const eles = ['INPUT', 'TEXTAREA']
if (eles.includes(event?.target?.tagName))
return
if (event.code === 'KeyC')
closeModal()
}
onMounted(async () => { onMounted(async () => {
getData() getData()
document.addEventListener('keydown', handleKeydown)
})
onUnmounted(() => {
document.removeEventListener('keydown', handleKeydown)
}) })
const indeterminate = computed(() => { const indeterminate = computed(() => {
let baseNum = 0 let baseNum = 0
offList.value.map((v) => { offList.value.map((v) => {
@ -418,13 +434,13 @@ const indeterminate = computed(() => {
</div> </div>
</div> </div>
<VueDraggable <VueDraggable
v-model="onList" v-model="showOnList"
class="draggable-ul" class="draggable-ul"
:animation="150" :animation="150"
group="shared" group="shared"
> >
<div <div
v-for="item in onList" v-for="item in showOnList"
:key="item.id" :key="item.id"
:class="{ fix: item.fix }" :class="{ fix: item.fix }"
class="cursor-move draggable-item" class="cursor-move draggable-item"

Loading…
Cancel
Save