From f66062740f0076f73c10dfbca8b2ae116bd5d7a4 Mon Sep 17 00:00:00 2001 From: DwCay Date: Tue, 27 Dec 2022 17:34:28 +0300 Subject: [PATCH] =?UTF-8?q?WIP=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=B7=D0=B0=D0=BF=D1=80=D0=BE=D1=81=20=D0=BD=D0=B0=20?= =?UTF-8?q?=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D0=B5=20=D0=BC=D0=B5=D0=B4=D0=B8?= =?UTF-8?q?=D1=86=D0=B8=D0=BD=D1=81=D0=BA=D0=BE=D0=B9=20=D0=BA=D0=B0=D1=80?= =?UTF-8?q?=D1=82=D1=8B=20=D0=B8=20=D0=BF=D0=B5=D1=80=D0=B5=D1=85=D0=BE?= =?UTF-8?q?=D0=B4=20=D0=BD=D0=B0=20=D1=81=D1=82=D1=80=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D1=86=D1=83=20=D0=BA=D0=B0=D1=80=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/clients/components/ClientsTable.vue | 40 +++++++++++-------- .../clients/components/ClientsTableRow.vue | 13 ++++-- src/router.js | 2 +- 3 files changed, 35 insertions(+), 20 deletions(-) diff --git a/src/pages/clients/components/ClientsTable.vue b/src/pages/clients/components/ClientsTable.vue index 42d456b..e829e1f 100644 --- a/src/pages/clients/components/ClientsTable.vue +++ b/src/pages/clients/components/ClientsTable.vue @@ -32,9 +32,8 @@ :update-data-client="updateDataClient", :fetch-data-clients="fetchDataClients", :fetch-created-client-data="fetchCreatedClientData", - :create-medical-card="medicalCardHandler", + @handler-click-popup="handlerClickPopup", :created-client-name="createdClientName", - @delete-client="deleteClientHandler", @recover-client="clearDeletedRowId", ) client-table-pagination( @@ -115,6 +114,7 @@ export default { marked: [], dataClients: [ { + medical_history: [], initialization: true, }, ], @@ -127,6 +127,7 @@ export default { currentPage: 0, length: 0, }, + medicalHistory: {}, showModal: false, clientId: "", deletedRowId: "", @@ -159,6 +160,9 @@ export default { saveDataClients(data) { this.dataClients = data.results; }, + saveDataMedicalHistory(data) { + this.medicalHistory = data; + }, saveClientsCount(data) { if (!this.clientsCount) this.clientsCount = data.count; }, @@ -253,29 +257,33 @@ export default { openModal() { this.showModal = true; }, - medicalCardHandler() { + async handlerClickPopup(action, id) { this.modalConfig = this.modalConfig.map((el) => { - return el.name === "medical" + return el.name === action ? { ...el, view: true } : { ...el, view: false }; }); - this.titleModal = "Создать мед.карту"; - this.openModal(); + if (action === "delete") { + this.clientId = id; + this.titleModal = "Удалить клиента"; + this.openModal(); + } + if (action === "medical") { + if (id) { + fetchWrapper + .get(`medical_card/medical_history/${id}/detail/`) + .then((res) => this.saveDataMedicalHistory(res)); + this.$router.push("medical-card"); + } else { + this.titleModal = "Создать мед.карту"; + this.openModal(); + } + } }, createMedicalCard() { this.showMedicalCard = true; this.closeModal(); }, - deleteClientHandler(id) { - this.clientId = id; - this.modalConfig = this.modalConfig.map((el) => { - return el.name === "delete" - ? { ...el, view: true } - : { ...el, view: false }; - }); - this.titleModal = "Удалить клиента"; - this.openModal(); - }, writeDeletedRowId() { this.deletedRowId = this.clientId; this.closeModal(); diff --git a/src/pages/clients/components/ClientsTableRow.vue b/src/pages/clients/components/ClientsTableRow.vue index 7712d78..d254f28 100644 --- a/src/pages/clients/components/ClientsTableRow.vue +++ b/src/pages/clients/components/ClientsTableRow.vue @@ -23,7 +23,7 @@ :open-change-data="openChangeData", :disabled-delete="!!deletedClientId && !rowOverlay", @delete-client="transmitDeleteClient", - :create-medical-card="createMedicalCard" + :create-medical-card="transmitMedicalCard" ) .flex.z-10( v-if="isOpenChange && !rowOverlay", @@ -267,7 +267,7 @@ export default { "Дата рождения позже текущего дня" ); this.dataClient.age = this.client.birth_date || ""; - } else if (!Object.keys(data).length == 0) + } else if (!Object.keys(data).length === 0) fetchWrapper .post(`general/person/${this.client.id}/update/`, { ...data, @@ -394,9 +394,16 @@ export default { openChangeData() { this.isOpenChange = true; }, + transmitMedicalCard() { + this.$emit( + "handler-click-popup", + "medical", + this.client?.medical_history[0]?.id + ); + }, transmitDeleteClient() { this.isOpenDetailInfo = false; - this.$emit("delete-client", this.client.id); + this.$emit("handler-click-popup", "delete", this.client.id); }, async deleteClient() { await fetchWrapper.del(`general/person/${this.client.id}/delete/`); diff --git a/src/router.js b/src/router.js index da8b6de..5e11f96 100644 --- a/src/router.js +++ b/src/router.js @@ -38,7 +38,7 @@ export default createRouter({ { path: "calendar", component: TheCalendar }, { path: "clients", component: TheUser }, { path: "settings", component: TheSettings }, - { path: "medicalCard", component: TheMedicalCard }, + { path: "medical-card", component: TheMedicalCard }, ], }, ],