1
0
Files
build.ems/build/usr/local/omc/htdocs/front/js/PacketTable.DRCf4dzn.js
2024-10-25 14:59:47 +08:00

2 lines
2.3 KiB
JavaScript

import{g as $,_ as I,r as M,f as r,p as h,cB as R,k as s,D as n,J as d,H as p,G as y,R as f,F as x}from"./vendor/index.CRpmXtWV.js";import{_ as L}from"../index.D-NvtsOM.js";const T={class:"table"},E={class:"thead"},j={class:"thead-item"},A=["onClick"],P={class:"tbody-item"},z=$({__name:"PacketTable",props:{height:{type:Number,default:300},itemHeight:{type:Number,default:30},data:{type:Array,default:()=>[]},cache:{type:Number,default:2},columns:{type:Array,default:()=>[]},selectedFrame:{type:Number,default:0},onSelectedFrame:{type:Function,default:()=>{}},onScrollBottom:{type:Function,default:()=>{}}},setup(o){const e=o,a=I({start:0,end:10,scrollOffset:0,cacheData:[]}),H=M(),k=r(()=>{const{height:l}=e;return{height:`${l}px`}}),F=r(()=>({height:`${h(C)}px`,width:"100%"})),w=r(()=>({willChange:"transform",transform:`translateY(${a.scrollOffset}px)`})),b=r(()=>e.data.length),C=r(()=>h(b)*e.itemHeight),N=r(()=>Math.ceil(e.height/e.itemHeight)),v=r(()=>e.data.slice(a.start,a.end)),O=l=>{const{scrollHeight:i,scrollTop:t,clientHeight:m}=l.target;if(a.scrollOffset===t)return;const{cache:u,height:B,itemHeight:_}=e,g=Math.max(1,u);let c=Math.floor(t/_);const S=Math.max(0,Math.min(h(b),c+h(N)+g));c>g&&(c=c-g);const D=t-t%_;Object.assign(a,{start:c,end:S,scrollOffset:D}),i-t-m<B&&e.onScrollBottom(S)};return R(()=>{v.value.forEach((l,i)=>{const t=a.start+i;Object.hasOwn(a.cacheData,t)||(a.cacheData[t]={top:t*e.itemHeight,height:e.itemHeight,bottom:(t+1)*e.itemHeight,index:t})})}),(l,i)=>(s(),n("div",T,[d("div",E,[(s(!0),n(p,null,y(o.columns,t=>(s(),n("div",j,x(t),1))),256))]),d("div",{class:"virtual-list-wrapper",ref:"wrapperRef",style:f(k.value),onScroll:O},[d("div",{class:"virtual-list-inner",ref:"innerRef",style:f(F.value)},[d("div",{class:"virtual-list",style:f(w.value),ref_key:"virtualListRef",ref:H},[(s(!0),n(p,null,y(v.value,(t,m)=>(s(),n("div",{class:"tbody",key:m+a.start,style:f({height:o.itemHeight+"px",backgroundColor:t.number===e.selectedFrame?"blue":t.bg?`#${Number(t.bg).toString(16).padStart(6,"0")}`:"",color:t.number===e.selectedFrame?"white":t.fg?`#${Number(t.fg).toString(16).padStart(6,"0")}`:""}),onClick:u=>o.onSelectedFrame(t.number)},[(s(!0),n(p,null,y(t.columns,u=>(s(),n("div",P,x(u),1))),256))],12,A))),128))],4)],4)],36)]))}}),V=L(z,[["__scopeId","data-v-7198cb62"]]);export{V as default};