diff --git a/src/pages/clients/components/ClientsTable.vue b/src/pages/clients/components/ClientsTable.vue index f50a2d8..e2fdc24 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: "", @@ -160,6 +161,9 @@ export default { saveDataClients(data) { this.dataClients = data.results; }, + saveDataMedicalHistory(data) { + this.medicalHistory = data; + }, saveClientsCount(data) { if (!this.clientsCount) this.clientsCount = data.count; }, @@ -254,30 +258,34 @@ 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(id) { this.selectedClientId = id; 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 6a5a835..0fd3170 100644 --- a/src/pages/clients/components/ClientsTableRow.vue +++ b/src/pages/clients/components/ClientsTableRow.vue @@ -24,7 +24,7 @@ :client-id="client.id", :disabled-delete="!!deletedClientId && !rowOverlay", @delete-client="transmitDeleteClient", - :create-medical-card="createMedicalCard" + :create-medical-card="transmitMedicalCard" ) .flex.z-10( v-if="isOpenChange && !rowOverlay", @@ -268,7 +268,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, @@ -395,9 +395,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 }, ], }, ],