diff --git a/src/components/PatientCreationForm.vue b/src/components/PatientCreationForm.vue
new file mode 100644
index 0000000..0ee342b
--- /dev/null
+++ b/src/components/PatientCreationForm.vue
@@ -0,0 +1,183 @@
+
+ .flex.flex-col.pt-6.gap-y-4(:style="{maxWidth: '682px'}")
+ base-input-full-name(v-model="patientData" )
+ .flex.flex-col.flex-auto.l.gap-y-8
+ .flex
+ button.title-info.px-6.py-2.cursor-pointer.w-full.text-sm(
+ v-for="form in forms",
+ @click="selectForm(form.component)",
+ :class="{active: form.component === currentForm}",
+ :key="form.id",
+ :id="form.id",
+ :disabled="form.disabled"
+ ) {{form.title}}
+ component(
+ v-bind:is="currentForm",
+ v-model="patientData"
+ )
+ .footer.flex.gap-2
+ base-button(type="secondary", label="Отменить", width="126px", @click="$emit('close')")
+ base-button(width="168px", label="Создать", @click="createPatient")
+
+
+
+
+
diff --git a/src/components/base/BaseInputFullName.vue b/src/components/base/BaseInputFullName.vue
index b3182e6..a7d56e0 100644
--- a/src/components/base/BaseInputFullName.vue
+++ b/src/components/base/BaseInputFullName.vue
@@ -41,7 +41,7 @@
padding="2px 0 0 0"
)
q-icon(name="app:ok", size="20px")
- base-input.w-full(v-model="infoClient.basic.full_name", placeholder="ФИО пациента*", size="M")
+ base-input.w-full(v-model="value.full_name", placeholder="ФИО пациента*", size="M")
diff --git a/src/pages/clients/components/FormCreateAddresses.vue b/src/pages/clients/components/FormCreateAddresses.vue
index fdf0274..ed65d43 100644
--- a/src/pages/clients/components/FormCreateAddresses.vue
+++ b/src/pages/clients/components/FormCreateAddresses.vue
@@ -1,8 +1,8 @@
- .wrapper-addresses.h-full
+ .wrapper-form.h-full
.flex.flex-col.gap-y-6
base-input(
- v-model="addresses.full_address",
+ v-model="form.full_address",
placeholder="Введите адрес целиком",
label="Полный адрес",
size="M"
@@ -12,42 +12,42 @@
span.text-sm.separator.px-2 или
.grid.grid-cols-2.gap-y-6.gap-x-4
base-input(
- v-model="addresses.city",
+ v-model="form.city",
label="Город",
placeholder="Введите город",
disabled,
size="M"
)
base-input(
- v-model="addresses.region",
+ v-model="form.region",
label="Область",
placeholder="Введите область",
disabled,
size="M"
)
base-input(
- v-model="addresses.street",
+ v-model="form.street",
label="Улица",
placeholder="Введите улицу",
disabled,
size="M"
)
base-input(
- v-model="addresses.house",
+ v-model="form.house",
label="Дом",
placeholder="Номер дома",
disabled,
size="M"
)
base-input(
- v-model="addresses.flat",
+ v-model="form.flat",
label="Квартира",
placeholder="Номер квартиры",
disabled,
size="M"
)
base-input(
- v-model="addresses.zip_code",
+ v-model="form.zip_code",
label="Индекс",
mask="######",
placeholder="000000",
@@ -63,17 +63,32 @@ import BaseInput from "@/components/base/BaseInput.vue";
export default {
name: "FormCreateAddresses",
components: { BaseInput, BaseCustomSelect },
- props: {
- addresses: Object,
- saveClient: Function,
- saveFile: Function,
+ emits: ["change"],
+ data() {
+ return {
+ form: {
+ full_address: "",
+ city: "",
+ region: "",
+ street: "",
+ house: "",
+ flat: "",
+ zip_code: "",
+ },
+ };
+ },
+ watch: {
+ form(val) {
+ this.$emit("change", val);
+ },
},
};
diff --git a/src/store/modules/medicalCard.js b/src/store/modules/medicalCard.js
index cc08a6f..76d5019 100644
--- a/src/store/modules/medicalCard.js
+++ b/src/store/modules/medicalCard.js
@@ -425,17 +425,26 @@ const actions = {
commit("setBenefitData", res.results);
});
},
- createMedicalCard(ctx, id) {
- fetchWrapper.post("medical_cards", {
- person_id: id,
- number: String(Math.floor(1 + Math.random() * (100000000 + 1 - 1))),
- });
- return this.getMedicalCardDataByPersonId(ctx, id);
+ createMedicalCard(ctx, { personId, successCallback }) {
+ fetchWrapper
+ .post("medical_cards", {
+ person_id: personId,
+ number: String(Math.floor(1 + Math.random() * (100000000 + 1 - 1))),
+ })
+ .then(() => {
+ this.dispatch("getMedicalCardDataByPersonId", {
+ personId,
+ successCallback,
+ });
+ });
},
getMedicalCardDataByPersonId({ commit }, { personId, successCallback }) {
fetchWrapper.get(`medical_cards/person/${personId}`).then((data) => {
- if (!data) {
- return this.createMedicalCard({ commit }, personId);
+ if (!data || data?.detail) {
+ return this.dispatch("createMedicalCard", {
+ personId,
+ successCallback,
+ });
}
commit("setMedicalCard", data);
commit("setBasicData");
diff --git a/test/specs/test.e2e.js b/test/specs/test.e2e.js
index 90bc82f..0cf764c 100644
--- a/test/specs/test.e2e.js
+++ b/test/specs/test.e2e.js
@@ -8,7 +8,7 @@ describe("Smoke test", function () {
expect(await browser.getUrl()).toMatch("/#/login");
});
- it("should display login page", async function () {
+ it("should auth to system", async function () {
await browser.url("/");
await $("#app").waitForDisplayed();