From 99f565f4aaf3c364b27f86184a56180f451b6fdc Mon Sep 17 00:00:00 2001 From: Jonathan Chevalier Date: Tue, 13 Jun 2023 18:24:39 +0200 Subject: [PATCH] Interface SAV --- src/App.vue | 117 ++++++++++++++++++++++++++-------- src/components/TicketList.vue | 25 +++++--- src/main.js | 4 +- src/services/TicketApi.js | 17 +++++ src/style.css | 3 +- 5 files changed, 125 insertions(+), 41 deletions(-) create mode 100644 src/services/TicketApi.js diff --git a/src/App.vue b/src/App.vue index 52b45e1..048a0e5 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,43 +1,108 @@ diff --git a/src/components/TicketList.vue b/src/components/TicketList.vue index c3db619..7734bb9 100644 --- a/src/components/TicketList.vue +++ b/src/components/TicketList.vue @@ -6,6 +6,10 @@ import {fr} from 'date-fns/locale'; import {Grid, html} from "gridjs"; +const props = defineProps({ + rows: Array, +}) + const gridWrapper = ref(null) const grid = new Grid({ @@ -19,30 +23,31 @@ const grid = new Grid({ formatter: (cell) => format(new Date(cell), 'dd/MM/yyyy HH:mm:ss') }, { name: 'Origine', - formatter: (cell, row) => html(`${cell}` + ((row.cells[3].data !== null) ? `
${row.cells[3].data}` : '')) + formatter: (cell, row) => html(`${cell}` + ((row.cells[3].data !== null) ? `
${row.cells[3].data}` : '')) }, {name: 'Origine 2', hidden: true}, { name: 'Voir', - formatter: (cell, row) => html('') + formatter: (cell, row) => html(''), + width: '100px' }, { name: 'Attribuer à', formatter: (cell, row) => { - return html('') + + if (cell !== '0') { + return row.cells[4].data.advisor_name + } else { + return html('') + } } }, { name: 'Depuis', formatter: (cell) => formatDistance(new Date(cell), new Date(), {addSuffix: true, locale: fr}) - }, 'Interlocuteur'], - server: { - url: '/App/api.php?prj=pharmamp', - then: data => data.list.map(ticket => - [ticket.code, ticket.datetime, ticket.filter1, ticket.filter2, ticket, ticket.advisor, ticket.datetime, ticket.first_name + ' ' + ticket.last_name] - ) - }, + }, 'Interlocuteur', {name: 'Client', width: '120px'}], + data: props.rows, sort: true, pagination: { limit: 10, diff --git a/src/main.js b/src/main.js index 7dbec47..1aa15d6 100644 --- a/src/main.js +++ b/src/main.js @@ -2,10 +2,8 @@ import { createApp } from 'vue' import App from './App.vue' - -import './style.css' import './assets/style.scss' - +import './style.css' import '@fortawesome/fontawesome-free/css/fontawesome.css' import '@fortawesome/fontawesome-free/css/solid.css' diff --git a/src/services/TicketApi.js b/src/services/TicketApi.js new file mode 100644 index 0000000..1166963 --- /dev/null +++ b/src/services/TicketApi.js @@ -0,0 +1,17 @@ +export default { + async getTickets() { + const apiUrl = '/App/api.php?prj=pharmamp' + + if (import.meta.env.DEV) { + console.log(apiUrl) + } + + const response = await fetch(apiUrl) + + if (import.meta.env.DEV) { + console.log(response.clone().text()) + } + + return response.json(); + } +} diff --git a/src/style.css b/src/style.css index acb31f6..154bd6a 100644 --- a/src/style.css +++ b/src/style.css @@ -5,8 +5,7 @@ body{ #app { color: rgba(255, 255, 255, 0.87); margin: 0 auto; - padding: 2rem; - text-align: center; + padding: 1rem; font-size: 1rem; font-family: "Open Sans", sans-serif; color: #444444;