diff --git a/src/pages/newCalendar/components/HeaderRecordForm.vue b/src/pages/newCalendar/components/HeaderRecordForm.vue index f815467..26a4c91 100644 --- a/src/pages/newCalendar/components/HeaderRecordForm.vue +++ b/src/pages/newCalendar/components/HeaderRecordForm.vue @@ -46,13 +46,20 @@ .flex.gap-x-1 .name.flex.items-center.px-4.pt-2.pb-1.gap-x-2.rounded-md .photo.flex.h-10.w-10.items-center.justify-center - q-icon.icon(name="app:noname", size="24px") + img.w-10.h-10.rounded-full(v-if="patient", :src="patient.avatar") + q-icon.icon(v-else, name="app:noname", size="24px") .flex.flex-col.font-medium - .dark-blue Имя Фамилия - .grey-color.text-xsx.rounded-md Дата + .dark-blue {{patient ? trimPatientName(patient.last_name, patient.first_name, patient.patronymic) : "Имя Фамилия"}} + .grey-color.text-xsx.rounded-md {{patient ? patient.birthday : "Дата"}} .change.flex.items-center.rounded-md - q-btn(dense, padding="18px 4px") + q-btn(dense, padding="18px 4px", @click="isShowMedcards = true") q-icon.icon(name="app:folder", size="20px") + base-modal(v-model="isShowMedcards", title="Медкарты", modal-padding) + medcards-modal( + :save-medcard="saveMedcard", + :close-medcards="closeModalMedcards", + :patients="patients" + ) diff --git a/src/pages/newCalendar/components/MedcardsModal.vue b/src/pages/newCalendar/components/MedcardsModal.vue new file mode 100644 index 0000000..a4932b8 --- /dev/null +++ b/src/pages/newCalendar/components/MedcardsModal.vue @@ -0,0 +1,141 @@ + + + + + diff --git a/src/pages/newCalendar/components/ServicesModal.vue b/src/pages/newCalendar/components/ServicesModal.vue index 7b5c581..3e70203 100644 --- a/src/pages/newCalendar/components/ServicesModal.vue +++ b/src/pages/newCalendar/components/ServicesModal.vue @@ -1,10 +1,10 @@ @@ -178,12 +73,24 @@ export default { .wrapper width: 422px +.basic + height: 563px + .search :deep(path) fill: var(--font-grey-color) .search :deep(.q-field__prepend) padding-right: 4px +.tags-wrapper + row-gap: 8px + flex-wrap: wrap !important + column-gap: 8px + +.tag + width: fit-content + height: 32px + .base-service border-radius: 4px border: 1px solid var(--gray-secondary) @@ -218,4 +125,14 @@ export default { .grey-color color: var(--font-grey-color) + +.checkbox :deep(.q-checkbox__bg) + border-radius: 4px + border: 1.5px solid var(--font-grey-color) + +.checkbox :deep(.q-icon) + font-size: 24px + +.checkbox :deep(rect) + fill: var(--btn-blue-color) diff --git a/src/pages/newCalendar/components/del_RecordCreationForm copy.vue b/src/pages/newCalendar/components/del_RecordCreationForm copy.vue index 9942310..0cb503c 100644 --- a/src/pages/newCalendar/components/del_RecordCreationForm copy.vue +++ b/src/pages/newCalendar/components/del_RecordCreationForm copy.vue @@ -20,7 +20,7 @@ v-else, v-for="service in services", :style="{background: service.color}" - ) {{service.name}} + ) {{service.title}} .gradient.flex.absolute( :style="{background: `linear-gradient(270deg, ${otherColor} 0%, rgba(247, 217, 255, 0) 100%)`}" ) @@ -29,7 +29,7 @@ q-btn.change.flex.w-7.h-9.rounded-md(@click="isShowServices = true", dense, padding="4px 4px") q-icon.icon(name="app:folder", size="20px") base-modal(v-model="isShowServices", title="Услуги", modal-padding) - services-modal(:close-services="closeServices") + services-modal(:close-services="closeServices", :save-services="saveServices") base-input-full-name(:info-client="patientData") .flex.flex-col.flex-auto.l.gap-y-8 .flex @@ -96,15 +96,15 @@ export default { patientData: patientData, currentStatus: patientData.statuses.find((e) => e.name === "Не принят"), services: [ - { id: 0, name: "Чистка зубов", price: 500, color: "#D8E3FF" }, - { id: 1, name: "Осмотр", price: 1300, color: "#FFF0CA" }, + { id: 0, title: "Чистка зубов", price: 500, color: "#D8E3FF" }, + { id: 1, title: "Осмотр", price: 1300, color: "#FFF0CA" }, { id: 2, - name: "Лечение среднего кариеса", + title: "Лечение среднего кариеса", price: 500, color: "#F7D9FF", }, - { id: 3, name: "Осмотр зубов", price: 1300, color: "#FFF0CA" }, + { id: 3, title: "Осмотр зубов", price: 1300, color: "#FFF0CA" }, ], forms: [ { @@ -191,6 +191,10 @@ export default { closeServices() { this.isShowServices = false; }, + saveServices(selectedServices) { + this.isShowServices = false; + selectedServices.forEach((e) => this.services.push(e)); + }, }, mounted() { this.addShadow(); diff --git a/src/pages/newCalendar/utils/calendarConfig.js b/src/pages/newCalendar/utils/calendarConfig.js index 0016afe..0157dfa 100644 --- a/src/pages/newCalendar/utils/calendarConfig.js +++ b/src/pages/newCalendar/utils/calendarConfig.js @@ -374,6 +374,136 @@ export const patientData = { ], }; +export const services = [ + { + name: "Терапия", + check: true, + data: [ + { + title: "Пломбирование кариеса", + price: "350 ₽", + time: "1 ч. 30 мин.", + checked: false, + color: "var(--bg-chip-blue-color)", + }, + { + title: "Консультация стоматолога", + price: "1 350 ₽", + time: "1 ч. 30 мин.", + checked: false, + color: "var(--bg-chip-blue-color)", + }, + { + title: "Пломбирование кариеса", + price: "2 350 ₽", + time: "1 ч. 30 мин.", + checked: false, + color: "var(--bg-chip-blue-color)", + }, + { + title: "Пломбирование кариеса", + price: "3 350 ₽", + time: "1 ч. 30 мин.", + checked: false, + color: "var(--bg-chip-blue-color)", + }, + { + title: "Пломбирование кариеса", + price: "5 350 ₽", + time: "1 ч. 30 мин.", + checked: false, + color: "var(--bg-chip-blue-color)", + }, + { + title: "Пломбирование кариеса", + price: "50 ₽", + time: "1 ч. 30 мин.", + checked: false, + color: "var(--bg-chip-blue-color)", + }, + { + title: "Пломбирование кариеса", + price: "3 350 ₽", + time: "1 ч. 30 мин.", + checked: false, + color: "var(--bg-chip-blue-color)", + }, + { + title: "Пломбирование кариеса", + price: "5 350 ₽", + time: "1 ч. 30 мин.", + checked: false, + color: "var(--bg-chip-blue-color)", + }, + { + title: "Пломбирование кариеса", + price: "50 ₽", + time: "1 ч. 30 мин.", + checked: false, + color: "var(--bg-chip-blue-color)", + }, + ], + }, + { + name: "Хирургия", + check: false, + data: [ + { + title: "Пломбирование кариеса", + price: "2 350 ₽", + time: "1 ч. 30 мин.", + checked: false, + color: "var(--bg-chip-blue-color)", + }, + { + title: "Консультация стоматолога", + price: "1 350 ₽", + time: "1 ч. 30 мин.", + checked: false, + color: "var(--bg-chip-blue-color)", + }, + ], + }, + { + name: "Ортопедия ", + check: false, + data: [ + { + title: "Пломбирование кариеса", + price: "2 350 ₽", + time: "1 ч. 30 мин.", + checked: false, + color: "var(--bg-chip-blue-color)", + }, + { + title: "Консультация стоматолога", + price: "1 350 ₽", + time: "1 ч. 30 мин.", + checked: false, + color: "var(--bg-chip-blue-color)", + }, + ], + }, + { + name: "Ортодонтия", + check: false, + data: [ + { + title: "Пломбирование кариеса", + price: "2 350 ₽", + time: "1 ч. 30 мин.", + checked: false, + }, + { + title: "Консультация стоматолога", + price: "1 350 ₽", + time: "1 ч. 30 мин.", + checked: false, + }, + ], + }, +]; + export const recordList = [ { id: "c3df0a95-8093-41f1-9584-5b70ee05e71c",