diff --git a/src/components/LoggedInLayout.vue b/src/components/LoggedInLayout.vue index 6fe976e..6d6bed7 100644 --- a/src/components/LoggedInLayout.vue +++ b/src/components/LoggedInLayout.vue @@ -1,6 +1,7 @@ @@ -49,6 +55,7 @@ export default { BaseClientFormCreate, }, props: { + url: String, openForm: Function, closeForm: Function, isOpenForm: Boolean, @@ -62,8 +69,16 @@ export default { name: "Гордеев Николай Степанович", }, showPopup: false, + userData: JSON.parse(localStorage.getItem("userData")), }; }, + computed: { + changeName() { + return `${this.userData.last_name || ""} ${ + this.userData.first_name || "" + } ${this.userData.patronymic || ""}`; + }, + }, methods: { logout() { localStorage.removeItem("tokenAccess"); diff --git a/src/components/base/BasePopup.vue b/src/components/base/BasePopup.vue index 758d101..82825b4 100644 --- a/src/components/base/BasePopup.vue +++ b/src/components/base/BasePopup.vue @@ -1,6 +1,6 @@ @@ -12,6 +12,7 @@ export default { width: Number, top: Number, right: Number, + corner: Boolean, }, }; diff --git a/src/pages/clients/components/ClientsTableRow.vue b/src/pages/clients/components/ClientsTableRow.vue index 8a2e57c..48a58dc 100644 --- a/src/pages/clients/components/ClientsTableRow.vue +++ b/src/pages/clients/components/ClientsTableRow.vue @@ -271,9 +271,22 @@ export default { contacts.push(this.dataClient.email); if ( this.dataClient.phone.username && + this.dataClient.phone.username.length === 18 && !contacts.find((el) => el.kind === "PHONE") ) contacts.push(this.dataClient.phone); + else if ( + this.dataClient.phone.username && + this.dataClient.phone.username.length < 18 + ) { + this.dataClient.phone.username = + this.client.contacts.find((el) => el.kind === "PHONE")?.username || + ""; + this.addErrorNotification( + "Некорректный номер телефона", + "Введите мобильный номер состоящий из 11 цифр" + ); + } let mapCreateContacts = this.client.contacts.map((el) => el.kind); let mapDeleteContacts = contacts.map((el) => el.kind); let createContacts = contacts.filter((el) => @@ -288,9 +301,20 @@ export default { this.client.contacts.forEach((el) => { if ( el.kind === "PHONE" && + this.dataClient.phone.username.length === 18 && el.username !== this.dataClient.phone.username ) updateContacts.push(this.dataClient.phone); + else if (this.dataClient.phone.username.length < 18) { + this.dataClient.phone.username = + this.client.contacts.find((el) => el.kind === "PHONE")?.username || + ""; + this.addErrorNotification( + "Некорректный номер телефона", + "Введите мобильный номер состоящий из 11 цифр" + ); + } + if ( el.kind === "EMAIL" && el.username !== this.dataClient.email.username diff --git a/src/pages/clients/components/FormCreateMedicalCard.vue b/src/pages/clients/components/FormCreateMedicalCard.vue index 3796c1e..1162e72 100644 --- a/src/pages/clients/components/FormCreateMedicalCard.vue +++ b/src/pages/clients/components/FormCreateMedicalCard.vue @@ -4,57 +4,20 @@ span.text-center.font-bold.text-xl Создание медицинской карты стоматологического пациента .flex.justify-center.items-center.gap-x-2 base-button.button(:size="32", :rounded="true") - span(v-if="!isServices") 1 + span(v-if="isBaseData") 1 .icon-ok.text-xs(v-else) span(:style="{color: 'var(--btn-blue-color)'}") Основное .line.flex.mx-2 - base-button.button(:class="{'active-button': !isServices}", :size="32", :rounded="true") 2 - span(:style="{color: isServices ? 'var(--btn-blue-color)' : 'var(--font-dark-blue-color)' }") Услуги - medical-base-data(v-if="!isServices") - .services.flex.flex-col.gap-y-6(v-else) - .flex.flex-col.gap-y-6 - .flex.flex-col.gap-y-2 - .font-bold Услуги - .counter.text-smm Выберите подходищие из списка - .services-wrapper.flex.flex-col.pt-4.px-4 - .flex.gap-x-2 - base-input( - :with-icon="true", - icon-position="left", - :width-input="310", - placeholder="Поиск" - ) - .counter.icon-search - base-select.h-10(placeholder="Вид услуги") - .flex.items-center.px-11px.py-9px( - :style="{borderBottom: '1px solid var(--btn-grey-color)'}" - ) - .flex.items-center.gap-x-3 - input.counter.w-4.h-4.checkbox.cursor-pointer( - type="checkbox", - @click="selectAll", - v-model="isAllServices" - ) - .counter.flex.p-2(:style="{width: '358px'}") Название услуги - .counter Вид услуги - .list-services.flex.flex-col.px-11px.py-9px - .flex.items-center(v-for="service in services", :key="service.id") - .flex.items-center.gap-x-3 - input.w-4.h-4.checkbox.cursor-pointer( - type="checkbox", - v-model="userIds", - :value="service.id" - ) - .flex.p-2(:style="{width: '358px'}") {{service.name}} - .counter {{service.type}} - base-button.custom-button( - v-if="!isServices", - :size="40", - @click="changeServices" - ) - span.font-semibold Далее - base-button.custom-button(:size="40", v-else) - span.font-semibold Создать медицинскую карту + base-button.button(:class="{'active-button': !isIdentityDoc && isBaseData}", :size="32", :rounded="true") + span(v-if="isBaseData") 2 + .icon-ok.text-xs(v-else) + span(:style="{color: !isBaseData ? 'var(--btn-blue-color)' : 'var(--font-dark-blue-color)' }") ДУЛ + .line.flex.mx-2 + base-button.button(:class="{'active-button': !isPolicyDoc }", :size="32", :rounded="true") 3 + span(:style="{color: isPolicyDoc ? 'var(--btn-blue-color)' : 'var(--font-dark-blue-color)' }") Полис + medical-base-data(v-if="isBaseData", :change-base-data="changeBaseData") + medical-identity-documents(v-if="isIdentityDoc", :change-identity-doc="changeIdentityDoc") + medical-policy-documents(v-if="isPolicyDoc") diff --git a/src/pages/medicalCard/components/MedicalIdentityDocuments.vue b/src/pages/medicalCard/components/MedicalIdentityDocuments.vue new file mode 100644 index 0000000..4b74de2 --- /dev/null +++ b/src/pages/medicalCard/components/MedicalIdentityDocuments.vue @@ -0,0 +1,48 @@ + + + + + diff --git a/src/pages/medicalCard/components/MedicalPolicyDocuments.vue b/src/pages/medicalCard/components/MedicalPolicyDocuments.vue new file mode 100644 index 0000000..9bd7389 --- /dev/null +++ b/src/pages/medicalCard/components/MedicalPolicyDocuments.vue @@ -0,0 +1,51 @@ + + + + +