diff --git a/src/components/base/BaseAddingNetwork.vue b/src/components/base/BaseAddingNetwork.vue
index 8c5049a..a391d31 100644
--- a/src/components/base/BaseAddingNetwork.vue
+++ b/src/components/base/BaseAddingNetwork.vue
@@ -2,7 +2,7 @@
.flex.w-full(class="gap-x-1.5")
.flex(:id="value.id" @click="(e) => saveNetworkId(e)")
base-select-networks(:style-border="true" :list-data="listAddingNetworks" :option-data="selectedOption" :choose-option="chooseNetwork" :width-select="42")
- base-input.w-full(v-model:value="value.username" placeholder="Ссылкa")
+ base-input.w-full(v-model="value.username", placeholder="Ссылкa")
+
+
diff --git a/src/components/base/BaseInput.vue b/src/components/base/BaseInput.vue
index d65034a..4cfb358 100644
--- a/src/components/base/BaseInput.vue
+++ b/src/components/base/BaseInput.vue
@@ -1,32 +1,28 @@
- .input-wrapper.flex.gap-x-2.px-4.box-border.py-10px(
- :class="{'border-none': borderNone, 'date-input': dateInput}",
- :style="{ minWidth: widthInput + 'px' }"
- )
- input.input.w-full.outline-0.not-italic(
- :class="{date:type === 'date'}",
- :value="value",
- :type="type",
- @input="$emit('update:value', $event.target.value)",
- :placeholder="placeholder",
- :maxLength="maxLength",
- :max="maxDate",
- :disabled="disabled"
+ .flex.flex-col.gap-y-2
+ .label.font-semibold.text-sm.opacity-40(v-if="label") {{ label }}
+ .input-wrapper.flex.gap-x-2.px-4.box-border.py-10px(
+ :class="{'border-none': borderNone, 'border-error': borderError }"
+ :style="{'background-color': disabled && 'var(--bg-disable-grey-color)'}"
)
- .slot(v-if="withIcon", :class="iconPosition")
- slot.cursor-pointer
+ input.input.w-full.outline-0.not-italic(
+ v-model="value",
+ :placeholder="placeholder",
+ :disabled="disabled",
+ :type="type"
+ )
+ .slot(v-if="withIcon", :class="iconPosition")
+ slot.cursor-pointer
@@ -55,12 +61,14 @@ export default {
background-color: var(--default-white)
color: var(--font-black-color)
height: 40px
-.date
- background: url("../../assets/icons/calendar-input.svg") no-repeat 100% 50%
- &::-webkit-calendar-picker-indicator
- opacity: 0
.border-none
border: none
+.border-error
+ border-color: var(--border-red-color)
.input
background-color: inherit
+ &:disabled, &[disabled]
+ background-color: var(--bg-disable-grey-color)
+.label
+ color: var(--font-black-color)
diff --git a/src/components/base/BaseInputDate.vue b/src/components/base/BaseInputDate.vue
index bc8921d..c344d6d 100644
--- a/src/components/base/BaseInputDate.vue
+++ b/src/components/base/BaseInputDate.vue
@@ -1,5 +1,5 @@
- .flex.flex-col
+ .flex.flex-col.gap-y-2
.label(v-if="!!label") {{label}}
.field
input(
@@ -37,7 +37,7 @@ export default {
diff --git a/src/components/base/BaseInputTime.vue b/src/components/base/BaseInputTime.vue
index 539cf7f..c385234 100644
--- a/src/components/base/BaseInputTime.vue
+++ b/src/components/base/BaseInputTime.vue
@@ -1,25 +1,21 @@
- .input-wrapper.flex.gap-x-2.px-4.box-border(
- class="py-2.5"
- :style="{ minWidth: widthInput + 'px' }"
- )
- input.input.w-full.outline-0.not-italic.cursor-text(
- :value="value"
- type="time"
- @input="$emit('update:value', $event.target.value)"
- :placeholder="placeholder"
- :maxlength="maxLength"
- )
- .slot(v-if="withIcon" :class="iconPosition")
- slot.cursor-pointer
+ .flex.flex-col.gap-y-2
+ .label.font-semibold.text-sm.opacity-40(v-if="label") {{ label }}
+ .input-wrapper.flex.gap-x-2.px-4.box-border.py-2.h-10
+ input.input.w-full.outline-0.not-italic.cursor-text(
+ v-model="value"
+ type="time"
+ :placeholder="placeholder"
+ )
+ .slot(v-if="withIcon" :class="iconPosition")
+ slot.cursor-pointer
@@ -41,6 +48,7 @@ export default {
border-radius: 4px
background-color: var(--default-white)
color: var(--font-black-color)
+ border: 1.5px solid var(--border-light-grey-color)
input::-webkit-calendar-picker-indicator
cursor: pointer
diff --git a/src/components/base/BaseOptions.vue b/src/components/base/BaseOptions.vue
index 0d4787b..0d0d0d8 100644
--- a/src/components/base/BaseOptions.vue
+++ b/src/components/base/BaseOptions.vue
@@ -8,7 +8,7 @@ export default {
name: "BaseOptions",
computed: {
parent() {
- return this.$parent.$el;
+ return this.$parent.$refs.select;
},
parentSize() {
return this.parent?.getBoundingClientRect();
diff --git a/src/components/base/BaseSelect.vue b/src/components/base/BaseSelect.vue
index 1ce144d..98d7c67 100644
--- a/src/components/base/BaseSelect.vue
+++ b/src/components/base/BaseSelect.vue
@@ -1,5 +1,9 @@
- .base-select(@click="invertOpen", :class="{'open': open && !disable, 'border-none': borderNone}")
+ .base-select(
+ @click="invertOpen",
+ :class="{'open': open && !disable, 'border-none': borderNone}",
+ ref="select"
+ )
.placeholder(
:class="{'value-color': value || placeholderOpacity, ...textClass}",
:style="{'color': !disable || '#9ca3af', 'opacity': 1}"
diff --git a/src/pages/calendar/components/CalendarFormAddEvent.vue b/src/pages/calendar/components/CalendarFormAddEvent.vue
index cfb94de..f4a42bc 100644
--- a/src/pages/calendar/components/CalendarFormAddEvent.vue
+++ b/src/pages/calendar/components/CalendarFormAddEvent.vue
@@ -7,54 +7,45 @@
.flex.pt-2
.icon-cancel.close-icon.tesxt-xs.cursor-pointer(@click="clearForm")
.flex.flex-col.gap-y-8
- .flex.flex-col.gap-y-2
- span.text-xxs.opacity-40.font-bold.leading-3 Статус приема
- base-custom-select.select(
- v-if="selectedEventData.id"
- v-model="status",
- :items="eventStatuses",
- placeholder="Статус приема"
+ base-custom-select(
+ v-if="selectedEventData.id"
+ v-model="status",
+ :items="eventStatuses",
+ label="Статус приема"
+ )
+ base-input(
+ v-else,
+ disabled,
+ v-model="status.label",
+ label="Статус приема"
+ )
+ base-custom-select(
+ :items="ownersList",
+ v-model="employees.employee",
+ placeholder="Выберите сотрудника"
+ label="Сотрудник"
+ )
+ base-custom-select(
+ :items="membersList",
+ v-model="members.person",
+ placeholder="Выберите клиента",
+ label="Клиент"
+ )
+ .flex.gap-x-4
+ base-input-date(
+ v-model="eventDate",
+ label="Дата"
+ )
+ .flex.gap-x-2.items-center
+ base-input-time.item-input.text-base(
+ v-model="startTime",
+ label="Начало"
)
- base-input(
- v-else,
- disabled,
- v-model:value="status.label"
+ span.mt-4 —
+ base-input-time.item-input.text-base(
+ v-model="endTime",
+ label="Конец"
)
- .flex.flex-col(class="gap-y-1.5")
- span.text-xxs.opacity-40.font-bold Сотрудник
- base-custom-select.select(
- :items="ownersList",
- v-model="employees.employee",
- placeholder="Выберите сотрудника"
- )
-
- .flex.flex-col(class="gap-y-1.5")
- span.text-xxs.opacity-40.font-bold Клиент
- base-custom-select.select(
- :items="membersList",
- v-model="members.person",
- placeholder="Выберите клиента",
- )
- .flex.flex-col.gap-y-8
- .flex.gap-x-4
- .flex.gap-x-2
- .flex.flex-col(class="gap-y-1.5")
- span.text-xxs.opacity-40.font-bold.leading-3.font-bold Дата
- base-input-date.h-10(v-model="eventDate")
- .flex.gap-x-2.items-center
- .flex.flex-col(class="gap-y-1.5")
- span.text-xxs.opacity-40.font-bold.leading-3.font-bold Начало
- base-input-time.item-input.text-base.select(
- v-model:value="startTime",
- :width-input="72"
- )
- span.mt-4 —
- .flex.flex-col(class="gap-y-1.5")
- span.text-xxs.opacity-40.font-bold.leading-3.font-bold Конец
- base-input-time.item-input.text-base.select(
- v-model:value="endTime",
- :width-input="72"
- )
base-button.create-button.text-base.font-semibold(
v-if="!selectedEventData.id",
:size="40",
@@ -597,7 +588,6 @@ export default {
diff --git a/src/pages/clients/components/cells/TableCellBodyName.vue b/src/pages/clients/components/cells/TableCellBodyName.vue
index f7488db..894b66c 100644
--- a/src/pages/clients/components/cells/TableCellBodyName.vue
+++ b/src/pages/clients/components/cells/TableCellBodyName.vue
@@ -1,19 +1,17 @@
.flex.box-border.px-4.items-center.gap-x-3.w-full.text-sm(
- :style="{ minWidth : width + 'px', maxWidth : width + 'px' }",
+ :style="{ width : width + 'px'}",
)
base-avatar(:size="36", :color="avatarColor", v-if="!photo") {{avatar}}
base-avatar(:size="36", v-else)
img.h-full.object-cover(:src="url + photo")
span.font-semibold(v-if="!isOpenChange") {{value.fullName}}
- base-input(
- v-if="isOpenChange",
- @click.stop,
- type="text",
- v-model:value="value.fullName",
- :width-input="300",
- placeholder="Фамилия Имя Отчество"
- )
+ .name(v-if="isOpenChange")
+ base-input(
+ @click.stop,
+ v-model="value.fullName",
+ placeholder="Фамилия Имя Отчество"
+ )
+
+
diff --git a/src/pages/clients/components/cells/TableCellBodyPriority.vue b/src/pages/clients/components/cells/TableCellBodyPriority.vue
index ce51b4b..ad512d4 100644
--- a/src/pages/clients/components/cells/TableCellBodyPriority.vue
+++ b/src/pages/clients/components/cells/TableCellBodyPriority.vue
@@ -1,10 +1,15 @@
- .flex.box-border.px-4.items-center.w-full.gap-x-2(:style="{ minWidth : width + 'px', maxWidth : width + 'px' }")
+ .flex.box-border.px-4.items-center.w-full.gap-x-2(:style="{ width : width + 'px'}")
.flex.gap-x-2.items-center(v-if="!isOpenChange")
.dot.w-2.h-2(:style="{ backgroundColor: prioritySettings.settings.find((el) => el.text == value.priority).color }")
span.text-sm(:style="{ color: prioritySettings.settings.find((el) => el.text == value.priority).color }") {{value.priority}}
.flex.gap-x-2.text-sm(class="w-[164px]")
- base-select(v-if="isOpenChange", @click.stop :items="getPriorityList", v-model="value.priority")
+ base-select(
+ v-if="isOpenChange",
+ @click.stop :items="getPriorityList",
+ v-model="value.priority",
+ textStyle="text-sm"
+ )
diff --git a/src/pages/medicalCard/utils/medicalConfig.js b/src/pages/medicalCard/utils/medicalConfig.js
new file mode 100644
index 0000000..9e089ad
--- /dev/null
+++ b/src/pages/medicalCard/utils/medicalConfig.js
@@ -0,0 +1,128 @@
+export const medicalDetailConfig = {
+ identity_document: {
+ height: 366,
+ title: "Паспортные данные",
+ fields: [
+ {
+ label: "number_series",
+ title: "Серия и номер",
+ type: "input",
+ copy: true,
+ },
+ {
+ label: "issued_by_org",
+ title: "Выдан",
+ type: "input",
+ },
+ {
+ label: "issued_by_org_code",
+ title: "Код подразделения",
+ type: "input",
+ },
+ {
+ label: "issued_by_date",
+ title: "Дата выдачи",
+ type: "data",
+ },
+ ],
+ },
+ registration_address: {
+ height: 130,
+ title: "Адреес регистрации",
+ fields: [
+ {
+ label: "registration_address",
+ title: "Полный адрес",
+ type: "input",
+ },
+ ],
+ },
+ temporary_address: {
+ height: 130,
+ title: "Адреес проживания",
+ fields: [
+ {
+ label: "temporary_address",
+ title: "Полный адрес",
+ type: "input",
+ },
+ ],
+ },
+ snils: {
+ height: 108,
+ title: "СНИЛС",
+ fields: [
+ {
+ label: "insurance_number",
+ title: "Номер",
+ type: "input",
+ copy: true,
+ },
+ ],
+ },
+ policy_number_series: {
+ height: 170,
+ title: "ПОЛИС",
+ fields: [
+ {
+ label: "series",
+ title: "Серия",
+ type: "input",
+ },
+ {
+ label: "number",
+ title: "Номер",
+ type: "input",
+ },
+ ],
+ },
+ policy_organization: {
+ height: 111,
+ title: "Страховая организация",
+ fields: [
+ {
+ label: "organization",
+ title: "Название",
+ type: "input",
+ },
+ ],
+ },
+ additional: {
+ height: 202,
+ title: "Дополнительная информация",
+ fields: [
+ {
+ label: "name_confidant",
+ title: "Доверенное лицо",
+ type: "input",
+ },
+ {
+ label: "phone_confidant",
+ title: "",
+ type: "input",
+ },
+ {
+ label: "benefit_code",
+ title: "Код категории льготы",
+ type: "input",
+ },
+ ],
+ },
+ agreement_form: {
+ height: 163,
+ title:
+ "Информированное добровольное согласие на виды медицинских вмешательств, включенные в Перечень определенных видов медицинских вмешательств:",
+ fields: [
+ {
+ label: "agreement",
+ title: "Получено",
+ type: "check_box",
+ },
+ {
+ label: "agreement_date",
+ title: "Дата",
+ type: "date",
+ },
+ ],
+ },
+};
diff --git a/src/pages/schedule/components/FormChangeShift.vue b/src/pages/schedule/components/FormChangeShift.vue
index b65a0f4..4178087 100644
--- a/src/pages/schedule/components/FormChangeShift.vue
+++ b/src/pages/schedule/components/FormChangeShift.vue
@@ -7,28 +7,12 @@
.flex.pt-2
.icon-cancel.close-icon.tesxt-xs.cursor-pointer(@click="closeForm")
.flex.flex-col.gap-y-6
- .flex.flex-col.gap-y-2
- span.text-smm.font-semibold Дата
- base-input-date
- .flex.flex-col(class="gap-y-1.5")
- span.text-smm.font-semibold Текущий сотрудник
- base-custom-select.h-10(v-model="currentEmployee")
- .flex.flex-col(class="gap-y-1.5")
- span.text-smm.font-semibold Замена сотрудника
- base-custom-select.h-10(v-model="currentEmployee")
+ base-input-date(label="Дата")
+ base-custom-select(v-model="currentEmployee", label="Текущий сотрудник")
+ base-custom-select(v-model="currentEmployee", label="Замена сотрудника")
.time-wrapper.flex.justify-center
- .flex.flex-col.py-14px.px-4.gap-y-14px.items-center
- .text-xxs.opacity-40.font-bold Начало
- base-input-time.item-input.text-base.select(
- :width-input="40",
- v-model:value="timesShift.start_time"
- )
- .flex.flex-col.py-14px.px-4.gap-y-14px.items-center
- .text-xxs.opacity-40.font-bold Конец
- base-input-time.item-input.text-base.select(
- :width-input="40",
- v-model:value="timesShift.end_time"
- )
+ base-input-time.px-4.item-input.text-base(label="Начало", v-model="timesShift.start_time")
+ base-input-time.px-4.item-input.text-base(label="Конец", v-model="timesShift.end_time")
.flex.justify-center
base-button.font-semibold(:size="40") Сохранить
@@ -59,9 +43,4 @@ export default {
box-shadow: var(--default-shadow)
border-radius: 4px
z-index: 5
-
-.select
- height: 40px
- border: 1.5px solid var(--border-light-grey-color)
- border-radius: 4px
diff --git a/src/pages/schedule/components/ScheduleBar.vue b/src/pages/schedule/components/ScheduleBar.vue
index ac8cb04..b5df582 100644
--- a/src/pages/schedule/components/ScheduleBar.vue
+++ b/src/pages/schedule/components/ScheduleBar.vue
@@ -2,12 +2,8 @@
.wrapper-bar.flex.flex-col.gap-y-4
.flex.px-5.py-5.w-full.justify-around.gap-x-4
.time-wrapper.flex.justify-between
- .flex.flex-col.items-center.py-14px.px-4.gap-y-14px
- .text.text-smm Начало
- base-input-time.select(v-model:value="times.start_time")
- .flex.flex-col.items-center.py-14px.px-4.gap-y-14px
- .text.span.text-smm Конец
- base-input-time.select(v-model:value="times.end_time")
+ base-input-time.py-14px.px-4(v-model="times.start_time", label="Начало")
+ base-input-time.py-14px.px-4(v-model="times.end_time", label="Конец")
.status-wrapper.flex.flex-col
.flex.justify-center.items-center.h-10
span.font-semibold Статусы
@@ -138,9 +134,4 @@ export default {
.graph-template
width: 218px
height: 40px
-
-.select
- height: 40px
- border: 1.5px solid var(--border-light-grey-color)
- border-radius: 4px
diff --git a/tailwind.config.js b/tailwind.config.js
index 619aa66..247f020 100644
--- a/tailwind.config.js
+++ b/tailwind.config.js
@@ -28,6 +28,7 @@ module.exports = {
gap: {
"6px": "6px",
"11px": "11px",
+ "30px": "30px",
43: "43px",
},
spacing: {