quasar-factory-lib 0.1.19 → 0.1.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -98,6 +98,6 @@
98
98
  "release": "standard-version"
99
99
  },
100
100
  "type": "module",
101
- "version": "0.1.19",
101
+ "version": "0.1.21",
102
102
  "author": ""
103
103
  }
@@ -1,7 +1,7 @@
1
1
  <template lang="">
2
2
  <div>
3
3
  <q-table
4
- v-show="!showSkeleton"
4
+ v-if="!showSkeleton && rowsData.length"
5
5
  ref="myTable"
6
6
  v-model:selected="selected"
7
7
  v-model:pagination="pagination"
@@ -9,7 +9,7 @@
9
9
  :style="tableStyle"
10
10
  flat
11
11
  bordered
12
- :rows="rowsData"
12
+ :rows="rowsDataComputed"
13
13
  :columns="columns"
14
14
  :filter-method="customFilter"
15
15
  :filter="filterComputed"
@@ -25,9 +25,13 @@
25
25
  :selected-rows-label="getSelectedString"
26
26
  :loading="loading"
27
27
  virtual-scroll
28
+ :virtual-scroll-item-size="48"
29
+ :virtual-scroll-sticky-size-start="48"
30
+ @virtual-scroll="onVirtualScroll"
28
31
  @update:selected="(details) => {
29
32
  $emit('onUpdateSelected', details)
30
33
  }"
34
+
31
35
  >
32
36
  <template #top-right="props">
33
37
  <q-separator />
@@ -270,7 +274,8 @@ export default defineComponent({
270
274
  draggableInstance: null,
271
275
  disabled: false,
272
276
  enableDragAndDrop: false,
273
- dragAndDropDelay: 0
277
+ dragAndDropDelay: 0,
278
+ nextPage: 2,
274
279
  }
275
280
  },
276
281
  computed: {
@@ -298,7 +303,13 @@ export default defineComponent({
298
303
  },
299
304
  pageLength (): number {
300
305
  return (this.totalPage + 1) * this.pageSize
301
- }
306
+ },
307
+ lastPage () {
308
+ return Math.ceil(this.rowsData.length / this.pageSize)
309
+ },
310
+ rowsDataComputed () {
311
+ return this.rowsData.slice(0, this.pageSize * (this.nextPage - 1))
312
+ }
302
313
  },
303
314
  watch: {
304
315
  rows (val) {
@@ -321,16 +332,6 @@ export default defineComponent({
321
332
  this.dragAndDropDelay = 0
322
333
  }
323
334
  },
324
- /* showSkeleton (val: boolean): void {
325
- if (!val) {
326
- this.handleInfiniteScrollTableCompositionAPi()
327
- }
328
- },
329
- '$q.screen.width' (): void {
330
- setTimeout(() => {
331
- this.handleInfiniteScrollTableCompositionAPi()
332
- }, 500)
333
- } */
334
335
  },
335
336
  mounted () {
336
337
  this.getAdvancedFilterColumns()
@@ -558,6 +559,21 @@ export default defineComponent({
558
559
  elementToScroll.removeEventListener('scroll', fnAddScroll)
559
560
  elementToScroll.addEventListener('scroll', fnAddScroll)
560
561
  })
562
+ },
563
+ onVirtualScroll ({to, ref}) {
564
+ const lastIndex = this.rowsDataComputed.length - 1
565
+ console.log(to, lastIndex)
566
+ if (!this.loading && this.nextPage < this.lastPage && to === lastIndex) {
567
+ this.loading = true
568
+
569
+ setTimeout(async () => {
570
+ this.nextPage++
571
+ await this.$nextTick(() => {
572
+ ref.refresh()
573
+ this.loading = false
574
+ })
575
+ }, 500)
576
+ }
561
577
  }
562
578
  }
563
579
  })
@@ -61,6 +61,10 @@
61
61
  .my-table .itemsFontSize{
62
62
  font-size: 14px;
63
63
  }
64
+ .my-table tbody {
65
+ /* height of all previous header rows */
66
+ scroll-margin-top: 48px;
67
+ }
64
68
  @media only screen and (max-width: 1100px) {
65
69
 
66
70
  .my-table .q-table__grid-content {