From 703d7775e3686bb8bcf80b3a5548b8e3d87c6e07 Mon Sep 17 00:00:00 2001 From: DwCay Date: Fri, 10 Mar 2023 15:47:02 +0300 Subject: [PATCH] =?UTF-8?q?WIP=20=D0=9F=D0=BE=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D0=BB=20=D0=BE=D1=82=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D1=83?= =?UTF-8?q?=20=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85=20=D1=81=20=D1=84=D0=BE?= =?UTF-8?q?=D1=80=D0=BC=D1=8B=20=D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F=20=D0=BC=D0=B5=D0=B4.=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 | 2 +- .../components/FormCreateMedicalCard.vue | 18 +++++++++++++----- src/pages/clients/utils/wrapperClientForm.js | 18 +++++++++--------- 3 files changed, 23 insertions(+), 15 deletions(-) diff --git a/src/pages/clients/components/ClientsTable.vue b/src/pages/clients/components/ClientsTable.vue index 21616fe..5fe5d6a 100644 --- a/src/pages/clients/components/ClientsTable.vue +++ b/src/pages/clients/components/ClientsTable.vue @@ -17,7 +17,7 @@ ) .flex.flex-col.h-full.table-container.w-full.mt-8.mb-3 base-modal(v-model="showMedicalCard") - form-create-medical-card(:selected-client-id="selectedClientId") + form-create-medical-card(:selected-client-id="selectedClientId" :fetch-clients="fetchDataClients" v-model="showMedicalCard") clients-table-header(:check="selectedCheck" :is-check="selectAll") .flex.flex-col clients-table-row( diff --git a/src/pages/clients/components/FormCreateMedicalCard.vue b/src/pages/clients/components/FormCreateMedicalCard.vue index 617844a..25f354f 100644 --- a/src/pages/clients/components/FormCreateMedicalCard.vue +++ b/src/pages/clients/components/FormCreateMedicalCard.vue @@ -26,10 +26,12 @@ import MedicalIdentityDocuments from "@/pages/medicalCard/components/MedicalIden import MedicalPolicyDocuments from "@/pages/medicalCard/components/MedicalPolicyDocuments"; import { requestMedicalCardData } from "@/pages/clients/utils/wrapperClientForm"; import { fetchWrapper } from "@/shared/fetchWrapper.js"; +import { v_model } from "@/shared/mixins/v-model"; import BaseStepperQuasar from "@/components/base/BaseStepperQuasar"; export default { name: "FormCreateMedicalCard", + mixins: [v_model], components: { BaseInput, BaseSelect, @@ -40,6 +42,7 @@ export default { }, props: { selectedClientId: String, + fetchClients: Function, }, data() { return { @@ -86,11 +89,16 @@ export default { finishCreateCard() { requestMedicalCardData(this.clientData, this.sourceДlientDetail).then( () => - fetchWrapper.post(`medical_card/medical_history/create/`, { - person: this.sourceДlientDetail.id, - organization: "3883e8f5-cede-4645-97a3-6d1511e63d10", - agreement: false, - }) + fetchWrapper + .post(`medical_card/medical_history/create/`, { + person: this.sourceДlientDetail.id, + organization: "3883e8f5-cede-4645-97a3-6d1511e63d10", + agreement: true, + }) + .then(() => { + this.value = false; + this.fetchClients(); + }) ); }, fetchClientDetail() { diff --git a/src/pages/clients/utils/wrapperClientForm.js b/src/pages/clients/utils/wrapperClientForm.js index acc293d..a0a958f 100644 --- a/src/pages/clients/utils/wrapperClientForm.js +++ b/src/pages/clients/utils/wrapperClientForm.js @@ -110,14 +110,14 @@ export async function requestContacts(data, dataInit) { } export async function requestIdentityDoc(data, dataInit) { - let identityInit = dataInit.identity_documents.find( + const receivedDoc = dataInit.identity_documents.find( (doc) => doc.kind === "PASSPORT" ); - identityInit = { - ...identityInit, + const transformReceivedDoc = { + ...receivedDoc, series_number: - identityInit?.series && identityInit?.number - ? `${identityInit.series} ${identityInit.number}` + receivedDoc?.series && receivedDoc?.number + ? `${receivedDoc.series} ${receivedDoc.number}` : "", }; const dataIdentity = { @@ -128,19 +128,19 @@ export async function requestIdentityDoc(data, dataInit) { }; const notEmptyIdentityDoc = {}; Object.keys(dataIdentity).forEach((key) => { - if (dataIdentity[key] && dataIdentity[key] !== identityInit[key]) { + if (dataIdentity[key] && dataIdentity[key] !== transformReceivedDoc[key]) { notEmptyIdentityDoc[key] = dataIdentity[key]; } }); if (Object.keys(notEmptyIdentityDoc).length) { - if (!identityInit) { + if (!receivedDoc) { return fetchWrapper.post(`general/identity_document/create/`, { ...notEmptyIdentityDoc, person: dataInit.id, }); } else { return fetchWrapper.post( - `general/identity_document/${identityInit.id}/update/`, + `general/identity_document/${receivedDoc.id}/update/`, { ...notEmptyIdentityDoc, } @@ -192,7 +192,7 @@ export async function requestPolicy(data, dataInit) { } } export async function requestMedicalCardData(data, init) { - return Promise.all([ + return Promise.allSettled([ updatePerson(data, init), requestAddress(data, init), requestContacts(data, init),