From e8c8297305794f6a0297ebee143b10093afbba3e Mon Sep 17 00:00:00 2001 From: jonathan Date: Fri, 28 Jun 2024 17:45:31 +0200 Subject: [PATCH] Archivage fiches --- src/App.vue | 44 ++++++++++- src/components/BaseElements/BaseAlert.vue | 26 +++++++ src/components/BaseElements/BaseCheckbox.vue | 27 +++++++ src/components/BaseElements/BaseGrid.vue | 24 ++++++ src/components/BaseElements/BaseInput.vue | 74 +++++++++++++++++++ src/components/BaseElements/BaseRadio.vue | 32 ++++++++ .../BaseElements/BaseRadioGroup.vue | 46 ++++++++++++ src/components/BaseElements/BaseSelect.vue | 55 ++++++++++++++ src/components/base/FetchIcon.vue | 21 ++++++ src/services/Api.js | 28 ++++++- src/services/TicketApi.js | 7 +- src/stores/global.js | 6 +- 12 files changed, 383 insertions(+), 7 deletions(-) create mode 100644 src/components/BaseElements/BaseAlert.vue create mode 100644 src/components/BaseElements/BaseCheckbox.vue create mode 100644 src/components/BaseElements/BaseGrid.vue create mode 100644 src/components/BaseElements/BaseInput.vue create mode 100644 src/components/BaseElements/BaseRadio.vue create mode 100644 src/components/BaseElements/BaseRadioGroup.vue create mode 100644 src/components/BaseElements/BaseSelect.vue create mode 100644 src/components/base/FetchIcon.vue diff --git a/src/App.vue b/src/App.vue index 3691686..f5db252 100644 --- a/src/App.vue +++ b/src/App.vue @@ -9,6 +9,8 @@ import Messenger from "@/components/Messenger.vue"; import TicketList from '@/components/TicketList.vue' import Modal from '@/components/base/Modal.vue' import FormReply from "@/components/FormReply.vue"; +import TicketApi from "@/services/TicketApi.js"; +import FetchIcon from "@/components/base/FetchIcon.vue"; const store = useGlobalStore() const storeTicket = useTicketStore(); @@ -22,7 +24,11 @@ const { } = storeToRefs(storeTicket) const apiCounter = ref(0) +const archivePeriod = ref('ALL') +const archiveFetching = ref(false) +const showModal2 = ref(0) +const hideModal2 = ref(0) const openExternalPage = async (script, params = null, features = null) => { if (store.gulliver === null) { await store.registerSession() @@ -44,6 +50,16 @@ const mapListOfTickets = (tickets) => { [ticket.code, ticket.datetime, ticket.filter1, ticket.filter2, ticket, ticket.advisor, ticket.datetime, ticket.state2, ticket.first_name + ' ' + ticket.last_name, ticket.is_customer]); } +const archiveStart = async () => { + archiveFetching.value = true + await TicketApi.archiveTickets(archivePeriod.value) + archiveFetching.value = false + hideModal2.value++ + await storeTicket.registerTicketList() + apiCounter.value++ +} + + onMounted(async () => { await store.registerUserSession(); await storeTicket.registerTicketList() @@ -74,6 +90,32 @@ onMounted(async () => { + + + + + +
@@ -101,7 +143,7 @@ onMounted(async () => { Comptoir diff --git a/src/components/BaseElements/BaseAlert.vue b/src/components/BaseElements/BaseAlert.vue new file mode 100644 index 0000000..bdf9437 --- /dev/null +++ b/src/components/BaseElements/BaseAlert.vue @@ -0,0 +1,26 @@ + + + + + \ No newline at end of file diff --git a/src/components/BaseElements/BaseCheckbox.vue b/src/components/BaseElements/BaseCheckbox.vue new file mode 100644 index 0000000..0744a2b --- /dev/null +++ b/src/components/BaseElements/BaseCheckbox.vue @@ -0,0 +1,27 @@ + + + + + diff --git a/src/components/BaseElements/BaseGrid.vue b/src/components/BaseElements/BaseGrid.vue new file mode 100644 index 0000000..7b0cb8b --- /dev/null +++ b/src/components/BaseElements/BaseGrid.vue @@ -0,0 +1,24 @@ + + + + + \ No newline at end of file diff --git a/src/components/BaseElements/BaseInput.vue b/src/components/BaseElements/BaseInput.vue new file mode 100644 index 0000000..3b3bd97 --- /dev/null +++ b/src/components/BaseElements/BaseInput.vue @@ -0,0 +1,74 @@ + + + + + diff --git a/src/components/BaseElements/BaseRadio.vue b/src/components/BaseElements/BaseRadio.vue new file mode 100644 index 0000000..547cbad --- /dev/null +++ b/src/components/BaseElements/BaseRadio.vue @@ -0,0 +1,32 @@ + + + + + diff --git a/src/components/BaseElements/BaseRadioGroup.vue b/src/components/BaseElements/BaseRadioGroup.vue new file mode 100644 index 0000000..f8a1950 --- /dev/null +++ b/src/components/BaseElements/BaseRadioGroup.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/src/components/BaseElements/BaseSelect.vue b/src/components/BaseElements/BaseSelect.vue new file mode 100644 index 0000000..69a5e95 --- /dev/null +++ b/src/components/BaseElements/BaseSelect.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/src/components/base/FetchIcon.vue b/src/components/base/FetchIcon.vue new file mode 100644 index 0000000..01a8909 --- /dev/null +++ b/src/components/base/FetchIcon.vue @@ -0,0 +1,21 @@ + + + + + diff --git a/src/services/Api.js b/src/services/Api.js index bff4bb4..6b86a67 100644 --- a/src/services/Api.js +++ b/src/services/Api.js @@ -1,6 +1,13 @@ +import {useGlobalStore} from "@/stores/global"; + export default { - async call(controller, method) { - const apiUrl = '/App/api.php?prj=pharmamp&controller='+controller+'&method='+method + buildUrl(controller, method, param = null) { + const store = useGlobalStore() + return '/App/api.php?prj=' + store.projectName + '&controller=' + controller + '&method=' + method + ((param !== null) ? param : '') + }, + async get(controller, method, param = null) { + + const apiUrl = this.buildUrl(controller, method, param) if (import.meta.env.DEV) { console.log(apiUrl) @@ -12,6 +19,23 @@ export default { console.log(response.clone().text()) } + return response.json(); + }, + async post(url, FormData) { + + if (import.meta.env.DEV) { + console.log(url) + } + + const response = await fetch(url, { + method: 'POST', + body: FormData + }); + + if (import.meta.env.DEV) { + console.log(response.clone().text()) + } + return response.json(); } } \ No newline at end of file diff --git a/src/services/TicketApi.js b/src/services/TicketApi.js index e448306..4510ab0 100644 --- a/src/services/TicketApi.js +++ b/src/services/TicketApi.js @@ -1,3 +1,5 @@ +import Api from '@/services/Api.js'; + export default { async getTickets() { const apiUrl = '/App/api.php?prj=pharmamp&controller=TicketingController&method=getTickets' @@ -78,7 +80,7 @@ export default { }, async validateBrokenIssue(code, id, claimOption) { - const apiUrl = '/App/api.php?prj=pharmamp&controller=ProxyController&method='+claimOption.method+'&code_business=' + code + '&id_business=' + id + '&parcelType=' + claimOption.parcelType + const apiUrl = '/App/api.php?prj=pharmamp&controller=ProxyController&method=' + claimOption.method + '&code_business=' + code + '&id_business=' + id + '&parcelType=' + claimOption.parcelType if (import.meta.env.DEV) { @@ -150,4 +152,7 @@ export default { return response.json(); }, + async archiveTickets(archivePeriod) { + return Api.get('TicketingController', 'archiveTickets', '&archivage_from='+archivePeriod) + } } diff --git a/src/stores/global.js b/src/stores/global.js index a568073..9eddc3c 100644 --- a/src/stores/global.js +++ b/src/stores/global.js @@ -4,7 +4,7 @@ import Api from "@/services/Api.js"; export const useGlobalStore = defineStore('global', { state: () => ({ gulliver: null, - gta: {idProject: null, projectName: null, projectUrl:null}, + gta: {idProject: null, projectName: 'pharmamp', projectUrl:null}, }), getters: { numc: (state) => state.gulliver.numc, @@ -15,10 +15,10 @@ export const useGlobalStore = defineStore('global', { }, actions: { async registerSession() { - this.gulliver = await Api.call('AdminController', 'getSession') + this.gulliver = await Api.get('AdminController', 'getSession') }, async registerUserSession() { - this.gta = {...await Api.call('AdminController', 'getUserSession')} + this.gta = {...await Api.get('AdminController', 'getUserSession')} } }, })