刘洋 il y a 1 an
Parent
commit
9487b2476f
1 fichiers modifiés avec 18 ajouts et 0 suppressions
  1. 18 0
      src/hooks/useTableCheck.ts

+ 18 - 0
src/hooks/useTableCheck.ts

@@ -89,6 +89,24 @@ const useTableCheck = <T extends TableDataType<InputDataType>>(data: T, auto = t
         nextTick(() => {
         nextTick(() => {
           elTableRef?.value?.setCurrentRow(tableData.value[positionIndex])
           elTableRef?.value?.setCurrentRow(tableData.value[positionIndex])
         })
         })
+        //设置了高亮的行号后,还需要让表格的dom滚动到该处
+        const tBodyDomWrap: any = elTableRef?.value?.$refs.bodyWrapper
+        if (tBodyDomWrap) {
+          const index = positionIndex
+          if (index % tableData.value.length == 0) {
+            elTableRef?.value?.scrollTo({ left: 0, top: 0, behavior: 'smooth' })
+          } else {
+            const wrap = tBodyDomWrap.getElementsByClassName('el-scrollbar__wrap')[0]
+            const oHeight = wrap.offsetHeight
+            const sTop = wrap.scrollTop
+            const sHeight = wrap.scrollHeight
+            const targetRowAsHeight = 36 * ((current.value?.index || 0) + 1)
+            if (sHeight > oHeight && targetRowAsHeight - sTop > oHeight) {
+              const t = sHeight - targetRowAsHeight
+              elTableRef?.value?.scrollTo({ left: 0, top: sTop + 36, behavior: 'smooth' })
+            }
+          }
+        }
       }
       }
     },
     },
     { immediate: true }
     { immediate: true }