Merge branch '3-transition-medical-card' into 'master'

Resolve "Создание и переход в мед.карту"

Closes #3

See merge request astra/astra-frontend!500
This commit is contained in:
Vasiliy Gavrilin
2023-08-15 14:20:25 +00:00
4 changed files with 32 additions and 26 deletions

View File

@@ -124,7 +124,7 @@ export default {
}, },
methods: { methods: {
openMedicalCard(id) { openMedicalCard(id) {
this.getMedicalCardData(id); localStorage.setItem("medicalId", id);
this.$router.push("medical-card"); this.$router.push("medical-card");
}, },
hidePreview() { hidePreview() {

View File

@@ -47,5 +47,9 @@ export default {
computed: mapState({ computed: mapState({
medical: (state) => state.medical.medicalCard, medical: (state) => state.medical.medicalCard,
}), }),
created() {
if (!localStorage.getItem("medicalId")) this.$router.push("/calendar");
this.$store.dispatch("getMedicalCardData");
},
}; };
</script> </script>

View File

@@ -17,11 +17,11 @@
.flex(v-if="key === 'networks'") .flex(v-if="key === 'networks'")
.flex.rounded-full.cursor-pointer.items-center.gap-10px.py-1.pl-1.pr-2( .flex.rounded-full.cursor-pointer.items-center.gap-10px.py-1.pl-1.pr-2(
v-if="data.id || data.filled" v-if="data.id || data.filled"
@click="() => copyLinkNetwork(data.username)" @click="() => copyLinkNetwork(data.value)"
style="background-color: var(--bg-light-grey)" style="background-color: var(--bg-light-grey)"
) )
q-icon.icon(:name="mapNetworks[data.kind].icon" :class="{old: data.id, new: data.filled}") q-icon.icon(:name="mapNetworks[data.kind].icon" :class="{old: data.id, new: data.filled}")
span.text-sm.font-medium {{ mapNetworks[data.kind].title || data.username }} span.text-sm.font-medium {{ mapNetworks[data.kind].title || data.value }}
.flex.gap-10px(v-else v-click-outside="() => checkNetworksField(index)" :key="key+index") .flex.gap-10px(v-else v-click-outside="() => checkNetworksField(index)" :key="key+index")
base-select-networks( base-select-networks(
:list-data="Object.values(mapNetworks)" :list-data="Object.values(mapNetworks)"
@@ -31,7 +31,7 @@
:size-input="50" :size-input="50"
) )
base-input.w-full( base-input.w-full(
v-model="data.username", v-model="data.value",
:name="key", :name="key",
:rule="configData[key].rules", :rule="configData[key].rules",
size="M" size="M"
@@ -39,7 +39,7 @@
base-input.w-full( base-input.w-full(
v-else, v-else,
:readonly="!isEdit", :readonly="!isEdit",
v-model="data.username", v-model="data.value",
:name="key", :name="key",
:mask="configData[key].inputMask", :mask="configData[key].inputMask",
:rule="configData[key].rules", :rule="configData[key].rules",

View File

@@ -257,15 +257,18 @@ const getters = {
getContactsData(state) { getContactsData(state) {
let phones = let phones =
state.medicalCard?.person?.contacts state.medicalCard?.person?.contacts
?.filter((el) => el.kind === "PHONE") ?.filter((el) => el.category === "PHONE")
?.map((el) => ({ ...el })) || []; ?.map((el) => {
el.value = el.value.slice(1);
return { ...el };
}) || [];
let emails = let emails =
state.medicalCard?.person?.contacts state.medicalCard?.person?.contacts
?.filter((el) => el.kind === "EMAIL") ?.filter((el) => el.category === "EMAIL")
?.map((el) => ({ ...el })) || []; ?.map((el) => ({ ...el })) || [];
let networks = let networks =
state.medicalCard?.person?.contacts state.medicalCard?.person?.contacts
?.filter((el) => el.kind !== "PHONE" && el.kind !== "EMAIL") ?.filter((el) => el.category !== "PHONE" && el.category !== "EMAIL")
?.map((el) => ({ ...el })) || []; ?.map((el) => ({ ...el })) || [];
return { return {
phones, phones,
@@ -454,24 +457,23 @@ const actions = {
}); });
return this.getMedicalCardData(id); return this.getMedicalCardData(id);
}, },
getMedicalCardData({ state, commit }, id) { getMedicalCardData({ commit }) {
if (state?.personId === id) return; fetchWrapper
fetchWrapper.get(`medical_cards/person/${id}`).then((data) => { .get(`medical_cards/person/${localStorage.getItem("medicalId")}`)
if (!data) { .then((data) => {
return this.createMedicalCard(id); if (!data) {
} return this.createMedicalCard(localStorage.getItem("medicalId"));
state.personId = id; }
commit("setMedicalCard", data); commit("setMedicalCard", data);
commit("setBasicData"); commit("setBasicData");
commit("setContactsData"); commit("setContactsData");
commit("setDocumentsData"); commit("setDocumentsData");
commit("setAllergiesData"); commit("setAllergiesData");
commit("setConfidantData"); commit("setConfidantData");
commit("setHealthStateData"); commit("setHealthStateData");
commit("setEventsPersonData", data?.person?.id); commit("setEventsPersonData", data?.person?.id);
}); });
}, },
getPersonsFiltredList() { getPersonsFiltredList() {
return fetchWrapper return fetchWrapper
.get( .get(