22<template lang="pug">
33div
44 .q-pa-md
5- tk-SearchFilters ( :fields ="fieldsList" )
5+ tk-searchfilters ( :fields ="fieldsList" )
66 .q-pa-md
77 q-table(
88 :rows ="data?.data" : rows- per- page- options= "[5, 10, 15]" : loading= "pending" : columns= "columns" row-key ="id" : visible- columns= "visibleColumns"
2828
2929<script lang="ts" setup>
3030import { ref } from " vue" ;
31- import { useApiFetch } from " .. /composables/useApiFetch " ;
31+ import { useHttpApi } from " ~ /composables/useHttpApi " ;
3232import { computed , useDayjs , onMounted } from " #imports" ;
3333import type { QTableProps } from " quasar" ;
34- import type { schemas } from " ../composables/useApiFetch" ;
3534import { useRoute , useRouter } from " nuxt/app" ;
35+ import type { components } from ' #build/types/service-api'
3636
37- type Ticket = schemas [' TicketDto' ]
37+ type Ticket = components [ " schemas" ] [' TicketDto' ]
3838
3939const daysjs = useDayjs ()
4040const route = useRoute ()
@@ -44,8 +44,8 @@ const router = useRouter()
4444onMounted (() => {
4545 pagination .value ! .rowsNumber = getTotalRowsNumber .value
4646 const query = { ... route .query }
47- const limit = query .limit
48- const skip = query .skip
47+ const limit = query .limit ?? 10
48+ const skip = query .skip ?? 0
4949 pagination .value ! .rowsPerPage = parseInt (limit as string )
5050 pagination .value ! .page = parseInt (skip as string ) / parseInt (limit as string ) + 1
5151
@@ -59,6 +59,7 @@ onMounted(() => {
5959 }
6060 pagination .value ! .sortBy = sortKey
6161 pagination .value ! .descending = sortDirection === ' desc'
62+ paginationQuery ()
6263})
6364
6465const columns = ref <QTableProps [' columns' ]>([
@@ -72,21 +73,21 @@ const columns = ref<QTableProps['columns']>([
7273 {
7374 name: ' envelope.senders.name' ,
7475 label: ' Appelant' ,
75- field : (row : Ticket ) => row .envelope .senders [0 ].name ,
76+ field : (row : Ticket ) => row .envelope .senders . length > 0 ? row . envelope . senders [0 ].name : ' ' ,
7677 align: ' left' ,
7778 sortable: true
7879 },
7980 {
8081 name: ' envelope.observers.name' ,
8182 label: ' Concerné' ,
82- field : (row : Ticket ) => row .envelope .observers [0 ].name ,
83+ field : (row : Ticket ) => row .envelope .observers . length > 0 ? row . envelope . observers [0 ].name : ' ' ,
8384 align: ' left' ,
8485 sortable: true
8586 },
8687 {
8788 name: ' envelope.assigned.name' ,
8889 label: ' Assigné' ,
89- field : (row : Ticket ) => row .envelope .assigned [0 ].name ,
90+ field : (row : Ticket ) => row .envelope .assigned . length > 0 ? row . envelope . assigned [0 ].name : ' ' ,
9091 align: ' left' ,
9192 sortable: true
9293 },
@@ -149,8 +150,8 @@ const columnsType = ref([
149150 { name: ' actions' , type: ' text' },
150151])
151152
152- const { data, pending, error, refresh } = useApiFetch (' tickets/ticket' , {
153- method: ' GET ' ,
153+ const { data, pending, error, refresh } = useHttpApi (' tickets/ticket' , {
154+ method: ' get ' ,
154155 query: computed (() => ({
155156 ... route .query ,
156157 }))
0 commit comments