diff --git a/src/components/TheHeader.vue b/src/components/TheHeader.vue index eb36a54..d1f8132 100644 --- a/src/components/TheHeader.vue +++ b/src/components/TheHeader.vue @@ -8,7 +8,7 @@ ) header-inputs .flex.ml-auto.items-center.gap-x-4 - + q-btn( flat, dense, @@ -68,7 +68,7 @@ export default { name: "Гордеев Николай Степанович", }, showPopup: false, - userData: JSON.parse(localStorage.getItem("userData")), + userData: {}, }; }, computed: { @@ -101,6 +101,7 @@ export default { }, async mounted() { this.userData = await fetchWrapper.get("users/me"); + this.$store.dispatch("setUserData", this.userData); }, }; diff --git a/src/pages/newCalendar/components/CalendarRecordPreview.vue b/src/pages/newCalendar/components/CalendarRecordPreview.vue index c938130..4c0b40e 100644 --- a/src/pages/newCalendar/components/CalendarRecordPreview.vue +++ b/src/pages/newCalendar/components/CalendarRecordPreview.vue @@ -124,8 +124,10 @@ export default { }, methods: { openMedicalCard(id) { - localStorage.setItem("medicalId", id); - this.$router.push("medical-card"); + this.getMedicalCardData({ + personId: id, + successCallback: (id) => this.$router.push("medical-card/" + id), + }); }, hidePreview() { this.internalPreview = false; @@ -141,7 +143,7 @@ export default { }); }, ...mapActions({ - getMedicalCardData: "getMedicalCardData", + getMedicalCardData: "getMedicalCardDataByPersonId", }), }, }; diff --git a/src/pages/newMedicalCard/TheMedicalCard.vue b/src/pages/newMedicalCard/TheMedicalCard.vue index 427c8a8..2a425b8 100644 --- a/src/pages/newMedicalCard/TheMedicalCard.vue +++ b/src/pages/newMedicalCard/TheMedicalCard.vue @@ -48,8 +48,7 @@ export default { medical: (state) => state.medical.medicalCard, }), created() { - if (!localStorage.getItem("medicalId")) this.$router.push("/calendar"); - this.$store.dispatch("getMedicalCardData"); + this.$store.dispatch("getMedicalDataById", this.$route.params.id); }, }; diff --git a/src/router.js b/src/router.js index 5ed03a7..f1baef6 100644 --- a/src/router.js +++ b/src/router.js @@ -40,7 +40,7 @@ export default createRouter({ { path: "clients", component: TheUser }, { path: "medcards", component: TheMedcards }, { path: "settings", component: TheSettings }, - { path: "medical-card", component: TheMedicalCard }, + { path: "medical-card/:id", component: TheMedicalCard }, ], }, ], diff --git a/src/store/index.js b/src/store/index.js index 85669cc..130b499 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -29,4 +29,16 @@ export default createStore({ return data; }, }, + + actions: { + setUserData({ commit }, props) { + commit("setUserData", props); + }, + }, + + mutations: { + setUserData(state, props) { + state.userData = { ...props }; + }, + }, }); diff --git a/src/store/modules/medicalCard.js b/src/store/modules/medicalCard.js index 5d4bd9e..c077372 100644 --- a/src/store/modules/medicalCard.js +++ b/src/store/modules/medicalCard.js @@ -450,29 +450,44 @@ const actions = { commit("setBenefitData", res.results); }); }, - createMedicalCard(id) { + createMedicalCard(ctx, id) { fetchWrapper.post("medical_cards", { person_id: id, number: String(Math.floor(1 + Math.random() * (100000000 + 1 - 1))), }); - return this.getMedicalCardData(id); + return this.getMedicalCardDataByPersonId(ctx, id); }, - getMedicalCardData({ commit }) { - fetchWrapper - .get(`medical_cards/person/${localStorage.getItem("medicalId")}`) - .then((data) => { - if (!data) { - return this.createMedicalCard(localStorage.getItem("medicalId")); - } - commit("setMedicalCard", data); - commit("setBasicData"); - commit("setContactsData"); - commit("setDocumentsData"); - commit("setAllergiesData"); - commit("setConfidantData"); - commit("setHealthStateData"); - commit("setEventsPersonData", data?.person?.id); - }); + getMedicalCardDataByPersonId({ commit }, { personId, successCallback }) { + fetchWrapper.get(`medical_cards/person/${personId}`).then((data) => { + if (!data) { + return this.createMedicalCard({ commit }, personId); + } + commit("setMedicalCard", data); + commit("setBasicData"); + commit("setContactsData"); + commit("setDocumentsData"); + commit("setAllergiesData"); + commit("setConfidantData"); + commit("setHealthStateData"); + commit("setEventsPersonData", personId); + successCallback?.(data?.id); + }); + }, + + getMedicalDataById({ commit }, id) { + fetchWrapper.get(`medical_cards/${id}`).then((data) => { + if (!data) { + return; + } + commit("setMedicalCard", data); + commit("setBasicData"); + commit("setContactsData"); + commit("setDocumentsData"); + commit("setAllergiesData"); + commit("setConfidantData"); + commit("setHealthStateData"); + commit("setEventsPersonData", data?.person?.id); + }); }, getPersonsFiltredList() { return fetchWrapper