From 900cc7b2bae3882c946ed148f18156f39cd6e623 Mon Sep 17 00:00:00 2001 From: megavrilinvv Date: Fri, 9 Jun 2023 13:05:50 +0300 Subject: [PATCH 1/2] =?UTF-8?q?[WIP]=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D0=BB=20=D0=BD=D0=B0=20=D1=84=D0=BE=D1=80=D0=BC=D1=83=20?= =?UTF-8?q?=D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=B7=D0=B0?= =?UTF-8?q?=D0=BF=D0=B8=D1=81=D0=B8:=20=D0=A4=D0=98=D0=9E,=20=D0=9E=D1=81?= =?UTF-8?q?=D0=BD=D0=BE=D0=B2=D0=BD=D1=83=D1=8E=20=D0=B8=D0=BD=D1=84=D0=BE?= =?UTF-8?q?=D1=80=D0=BC=D0=B0=D1=86=D0=B8=D1=8E,=20=D0=94=D0=A3=D0=9B,=20?= =?UTF-8?q?=D0=90=D0=B4=D1=80=D0=B5=D1=81,=20=D0=B8=D0=B7=D0=BE=D0=B1?= =?UTF-8?q?=D1=80=D0=B0=D0=B6=D0=B5=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/base/BaseInputFullName.vue | 95 ++++++++ src/pages/newCalendar/TheCalendar.vue | 5 +- .../components/RecordCreationForm.vue | 217 ++++++++++++++---- 3 files changed, 272 insertions(+), 45 deletions(-) create mode 100644 src/components/base/BaseInputFullName.vue diff --git a/src/components/base/BaseInputFullName.vue b/src/components/base/BaseInputFullName.vue new file mode 100644 index 0000000..5625e33 --- /dev/null +++ b/src/components/base/BaseInputFullName.vue @@ -0,0 +1,95 @@ + + + + + diff --git a/src/pages/newCalendar/TheCalendar.vue b/src/pages/newCalendar/TheCalendar.vue index b3ac0e4..6476ecc 100644 --- a/src/pages/newCalendar/TheCalendar.vue +++ b/src/pages/newCalendar/TheCalendar.vue @@ -3,7 +3,8 @@ calendar-sidebar(v-if="!isOpen", :open-sidebar="openSidebar", :create-form="createForm") calendar-open-sidebar(v-else, :open-sidebar="openSidebar", :create-form="createForm") calendar-wrapper.ml-2(:open-sidebar="isOpen") - record-creation-form(:is-show-form="isShowForm") + base-modal(v-model="isShowForm", title="Создание записи") + record-creation-form(v-model="isShowForm") @@ -102,4 +221,14 @@ export default { border-radius: 6px height: 28px width: 560px + +.title-info + color: var(--font-grey-color) + border-bottom: 1.5px solid var(--font-grey-color) + &:hover + color: var(--btn-blue-color) + border-bottom: 1.5px solid var(--btn-blue-color) + &.active + color: var(--btn-blue-color) + border-bottom: 1.5px solid var(--btn-blue-color) From 10c72e8b6189295b791882a5bd5929bd7c0b20c5 Mon Sep 17 00:00:00 2001 From: megavrilinvv Date: Fri, 9 Jun 2023 19:41:04 +0300 Subject: [PATCH 2/2] =?UTF-8?q?[WIP]=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D0=BB=20=D1=84=D0=BE=D1=80=D0=BC=D1=8B=20=D0=BD=D0=B0=20?= =?UTF-8?q?=D0=BC=D0=BE=D0=B4=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE=D0=BC=20=D0=BE?= =?UTF-8?q?=D0=BA=D0=BD=D0=B5=20=D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F=20=D0=B7=D0=B0=D0=BF=D0=B8=D1=81=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/icons/locked.svg | 3 + src/components/base/BaseInput.vue | 7 +- src/components/base/BaseInputContainer.vue | 2 + src/components/base/BaseInputFullName.vue | 73 +++++------ src/components/base/BaseModal.vue | 6 +- src/components/base/BaseTimeModal.vue | 91 +++++++++++++ .../components/FormCreateBasicInfo.vue | 9 +- src/pages/newCalendar/TheCalendar.vue | 7 +- .../components/RecordCreationForm.vue | 123 ++++++++++++------ src/pages/newCalendar/utils/calendarConfig.js | 62 +++++++++ 10 files changed, 297 insertions(+), 86 deletions(-) create mode 100644 src/assets/icons/locked.svg create mode 100644 src/components/base/BaseTimeModal.vue diff --git a/src/assets/icons/locked.svg b/src/assets/icons/locked.svg new file mode 100644 index 0000000..6bbe3cc --- /dev/null +++ b/src/assets/icons/locked.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/base/BaseInput.vue b/src/components/base/BaseInput.vue index fbd8b25..6bac6b4 100644 --- a/src/components/base/BaseInput.vue +++ b/src/components/base/BaseInput.vue @@ -1,9 +1,9 @@ diff --git a/src/pages/newCalendar/components/RecordCreationForm.vue b/src/pages/newCalendar/components/RecordCreationForm.vue index 3b839c2..7671b7c 100644 --- a/src/pages/newCalendar/components/RecordCreationForm.vue +++ b/src/pages/newCalendar/components/RecordCreationForm.vue @@ -5,24 +5,42 @@ .flex.gap-x-3.items-center .text.font-semibold Статус .flex.gap-x-1 - .input.flex.items-center.pl-4 - .text-input.font-medium Не принят + .input.flex.items-center.pl-4.gap-x-1 + img(:src="currentStatus.icon") + .text-input.font-medium {{currentStatus.name}} q-btn.change.flex.w-7.h-7(dense, padding="4px 4px") img(:src="folder") + q-menu + .status.flex.items-center.gap-x-1.font-medium.text-smm( + v-for="status in patientData.statuses", + @click="choiceStatus(status)", + v-close-popup + ) + img(:src="status.icon") + span {{status.name}} .flex.gap-x-3.items-center .text.font-semibold Дата: .flex.gap-x-1 .input.flex.items-center.pl-4 - .text-input.font-medium 24 мая 2020 + .text-input.font-medium {{currentDate.format("DD MMMM YYYY")}} q-btn.change.flex.w-7.h-7(dense, padding="4px 4px") img(:src="calendar") + q-menu( + transition-show="scale", + transition-hide="scale", + self="top middle", + :offset="[118, 14]", + ) + base-calendar(v-model="currentDate") .flex.gap-x-3.items-center .text.font-semibold Время: .flex.gap-x-1 .input.flex.items-center.pl-4 .text-input.font-medium 13:00 - 14:00 - q-btn.change.flex.w-7.h-7(dense, padding="4px 4px") + q-btn.change.flex.w-7.h-7(@click="isShowTime = true", dense, padding="4px 4px") img(:src="time") + base-modal(v-model="isShowTime", title="Время", modal-padding) + base-time-modal(:times="times", :close-modal-time="closeModalTime") .flex.h-14.gap-x-3.items-center.text-smm .text.font-semibold Медкарта: .flex.gap-x-1 @@ -42,7 +60,7 @@ span Выберите услуги q-btn.change.flex.w-7.h-7(dense, padding="4px 4px") img(:src="folder") - base-input-full-name(:info-client="infoClient") + base-input-full-name(:info-client="patientData") .flex.flex-col.flex-auto.l.gap-y-8 .flex button.title-info.px-6.py-2.cursor-pointer.w-full.text-sm( @@ -54,16 +72,36 @@ ) {{form.title}} component( v-bind:is="currentForm", - :basic-info="infoClient.basic", - :phone="infoClient.phone", - :email="infoClient.email", + :basic-info="patientData.basic", + :phone="patientData.phone", + :email="patientData.email", :add-network="addNewNetwork", - :priority-list="priorityList", - :identity-document="infoClient.identity_document", - :addresses="infoClient.addresses", + :priority-list="patientData.priorityList", + :identity-document="patientData.identity_document", + :addresses="patientData.addresses", :save-file="saveDocFile", :networks-list="getNetworksList", ) + .footer.flex.gap-2 + q-btn( + color="primary", + outline, + size="16px", + no-caps, + label="Отменить" + :style="{width: '126px', height: '40px'}", + padding="0", + @click="closeForm" + ) + q-btn( + color="primary", + size="16px", + no-caps, + label="Создать запись" + :style="{width: '174px', height: '40px'}", + padding="0", + @click="closeForm" + ) @@ -231,4 +261,17 @@ export default { &.active color: var(--btn-blue-color) border-bottom: 1.5px solid var(--btn-blue-color) + +.footer + border-top: 1px solid var(--border-light-grey-color) + margin: 40px -32px 0px + padding: 16px 32px 0px 32px + +.status + border-radius: 4px + height: 28px + padding: 8px 8px 8px 5px + &:hover + background: var(--bg-light-grey) + cursor: pointer diff --git a/src/pages/newCalendar/utils/calendarConfig.js b/src/pages/newCalendar/utils/calendarConfig.js index ce35b3d..fa2c1e7 100644 --- a/src/pages/newCalendar/utils/calendarConfig.js +++ b/src/pages/newCalendar/utils/calendarConfig.js @@ -136,3 +136,65 @@ export const patientList = [ choice: false, }, ]; +export const patientData = { + basic: { + full_name: "", + birth_date: null, + priority: { + id: null, + label: "", + }, + contacts: [ + { + kind: { + id: "TELEGRAM", + icon: "app:icon-tg", + }, + username: "", + }, + ], + }, + identity_document: { + pass: { + series_number: "", + issued_by_org: "", + issued_by_date: null, + issued_by_org_code: "", + }, + snils: { + kind: "СНИЛС", + number: "", + }, + inn: { + kind: "ИНН", + number: "", + }, + }, + phone: { username: "" }, + email: { username: "" }, + addresses: {}, + priorityList: [ + { + id: 1, + label: "Высокий", + }, + { + id: 2, + label: "Средний", + }, + { + id: 3, + label: "Низкий", + }, + { + id: 4, + label: "-", + }, + ], + statuses: [ + { name: "Отказ", icon: rejected, check: false }, + { name: "Не принят", icon: not_accepted, check: true }, + { name: "На приеме", icon: reception, check: false }, + { name: "Принят", icon: accepted, check: false }, + ], +};