diff --git a/src/assets/sass/variables.sass b/src/assets/sass/variables.sass
index b96acdc..c7dede2 100644
--- a/src/assets/sass/variables.sass
+++ b/src/assets/sass/variables.sass
@@ -5,6 +5,7 @@
--font-black-color: #090a15
--font-black-color-0: rgba(9, 10, 21, 0)
--font-black-color-1: rgba(9, 10, 21, 0.5)
+ --icon-light-blue: #d7d9ff
--btn-blue-color: #4772f2
--btn-blue-sec-color: #c6d2f6
--btn-blue-color-hover: #7e9cf6
diff --git a/src/components/base/BaseDetailInfo.vue b/src/components/base/BaseDetailInfo.vue
index 3e158fe..6691b4c 100644
--- a/src/components/base/BaseDetailInfo.vue
+++ b/src/components/base/BaseDetailInfo.vue
@@ -1,9 +1,13 @@
.section-wrapper.flex.flex-col.h-fit.cursor-pointer(:style="{height: `${height}px`}")
- .section-header.flex.items-center.justify-between.pl-4.pr-3.py-4
+ .section-header.flex.items-center.justify-between.pl-4.pr-3.py-4.mb-3
span.text-sm.font-semibold.whitespace-normal {{title}}
- .flex.items-center.gap-x-8
- .section-add.flex.justify-center.items-center.cursor-pointer Добавить данные
+ .flex.flex-col.items-center.gap-y-4.px-4
+ slot(v-if="!isNoData")
+ .section-add.flex.justify-center.items-center.cursor-pointer(
+ v-if="isNoData"
+ @click="openAddDoc"
+ ) Добавить данные
diff --git a/src/components/base/BaseDetailInput.vue b/src/components/base/BaseDetailInput.vue
new file mode 100644
index 0000000..a848023
--- /dev/null
+++ b/src/components/base/BaseDetailInput.vue
@@ -0,0 +1,44 @@
+
+ .flex.flex-col.w-full(class="gap-y-1.5")
+ span.title-section.font-semibold.text-xs(v-if="field.title" ) {{field.title}}
+ .flex.items-center(v-if="field.type === 'text' || field.type === 'textarea'" class="gap-x-2.5")
+ span.w-4.icon(v-if="field.icon" :class="field.icon")
+ base-input(v-model="data[field.label]" :with-icon="field.copy")
+ .copy.icon-copy.cursor-pointer(
+ v-if="field.copy && data[field.label]",
+ @click="() => copyValue(data[field.label])"
+ )
+ base-input-date(v-if="field.type === 'date'" v-model="data[field.label]")
+
+
+
+
+
diff --git a/src/pages/medicalCard/components/MedicalCardWrapper.vue b/src/pages/medicalCard/components/MedicalCardWrapper.vue
index bf2aec7..ffadf11 100644
--- a/src/pages/medicalCard/components/MedicalCardWrapper.vue
+++ b/src/pages/medicalCard/components/MedicalCardWrapper.vue
@@ -1,20 +1,87 @@
.wrapper.flex.w-full.relative.mx-2
.wrapper-medical.relative.flex.flex-col.px-6.py-6.h-full.w-full
- base-detail-info(:title="configData.identity_document.title" :height="configData.identity_document.height")
+ base-detail-info(
+ :title="configData.identity_document.title"
+ :height="configData.identity_document.height"
+ :data="medicalDataInit.identity_document"
+ )
+ base-detail-input(
+ v-for="field in configData.identity_document.fields"
+ :field="field"
+ :data="medicalDataInit.identity_document"
+ )
.flex.flex-col.gap-30px
- base-detail-info(:title="configData.registration_address.title" :height="configData.registration_address.height")
- base-detail-info(:title="configData.temporary_address.title" :height="configData.temporary_address.height")
+ base-detail-info(
+ :title="configData.registration_address.title"
+ :height="configData.registration_address.height"
+ :data="medicalDataInit.registration_address"
+ )
+ base-detail-input(
+ v-for="field in configData.registration_address.fields"
+ :field="field"
+ :data="medicalDataInit.registration_address"
+ )
+ base-detail-info(
+ :title="configData.temporary_address.title"
+ :height="configData.temporary_address.height"
+ :data="medicalDataInit.temporary_address"
+ )
+ base-detail-input(
+ v-for="field in configData.temporary_address.fields"
+ :field="field"
+ :data="medicalDataInit.temporary_address"
+ )
.flex.flex-col.gap-2
- base-detail-info(:title="configData.snils.title" :height="configData.snils.height")
- base-detail-info(:title="configData.policy_number_series.title" :height="configData.policy_number_series.height")
- base-detail-info(:title="configData.policy_organization.title" :height="configData.policy_organization.height")
+ base-detail-info(
+ :title="configData.snils.title"
+ :height="configData.snils.height"
+ :data="medicalDataInit.snils"
+ )
+ base-detail-input(
+ v-for="field in configData.snils.fields"
+ :field="field"
+ :data="medicalDataInit.snils"
+ )
+ base-detail-info(
+ :title="configData.policy.title"
+ :height="configData.policy.height"
+ :data="medicalDataInit.policy"
+ )
+ base-detail-input(
+ v-for="field in configData.policy.fields"
+ :field="field"
+ :data="medicalDataInit.policy"
+ )
+ base-detail-info(
+ :title="configData.policy_organization.title"
+ :height="configData.policy_organization.height"
+ :data="medicalDataInit.policy_organization"
+ )
+ base-detail-input(
+ v-for="field in configData.policy_organization.fields"
+ :field="field"
+ :data="medicalDataInit.policy_organization"
+ )
.flex.flex-col.gap-4
- base-detail-info(:title="configData.additional.title" :height="configData.additional.height")
- base-detail-info(:title="configData.agreement_form.title" :height="configData.agreement_form.height")
+ base-detail-info(
+ :title="configData.additional.title"
+ :height="configData.additional.height"
+ :data="medicalDataInit.additional"
+ )
+ base-detail-input(
+ v-for="field in configData.additional.fields"
+ :field="field"
+ :data="medicalDataInit.additional"
+ )
+ base-detail-info(
+ :title="configData.agreement_form.title"
+ :height="configData.agreement_form.height"
+ )