diff --git a/packages/base/data/list-table-v2/list-table-v2.vue b/packages/base/data/list-table-v2/list-table-v2.vue new file mode 100644 index 0000000..dde0152 --- /dev/null +++ b/packages/base/data/list-table-v2/list-table-v2.vue @@ -0,0 +1,519 @@ + + + + + diff --git a/packages/base/data/list-table-v2/useVirtualRows.ts b/packages/base/data/list-table-v2/useVirtualRows.ts index 824f141..e02b67a 100644 --- a/packages/base/data/list-table-v2/useVirtualRows.ts +++ b/packages/base/data/list-table-v2/useVirtualRows.ts @@ -105,14 +105,24 @@ export function useVirtualRows( // Get visible rows with their positions const visibleRows = computed(() => { - const { startIndex, endIndex, offsetY } = range.value; + const { startIndex, endIndex } = range.value; const rows: VirtualRow[] = []; + // Safety check: ensure indices are valid + if (startIndex < 0 || endIndex < startIndex) { + return rows; + } + for (let i = startIndex; i < endIndex; i++) { + const offsetY = offsets.value[i]; + const height = rowHeights.value[i]; + if (offsetY === undefined || height === undefined) { + continue; // Skip invalid entries + } rows.push({ index: i, - offsetY: offsets.value[i], - height: rowHeights.value[i], + offsetY, + height, }); } diff --git a/packages/base/index.ts b/packages/base/index.ts index 4eb1b2c..0e0b36b 100644 --- a/packages/base/index.ts +++ b/packages/base/index.ts @@ -11,7 +11,7 @@ import TzDateTime from "./item/tzDateTime.vue"; import WsMonitorToggle from "./item/ws-monitor-toggle.vue"; import SearchRow from "./data/search-row.vue"; import ListTable from "./data/list-table.vue"; -import ListTableV2 from "./data/list-table-v2.vue"; +import ListTableV2 from "./data/list-table-v2/list-table-v2.vue"; import Infomation from "./data/infomation.vue"; import ModifyForm from "./data/modify-form.vue"; import Descriptions from "./data/descriptions.vue";