[WIP] Добавил переход на медкарту, возможность редактирования основных данных

This commit is contained in:
megavrilinvv
2023-08-16 16:44:03 +03:00
parent 37f4fdf507
commit 2ab0c765d7
5 changed files with 81 additions and 24 deletions

View File

@@ -4,7 +4,7 @@
:is-check-change="isCheckChange"
:is-loading-data="isLoadingData"
:is-edit="isEdit"
:save="saveChange"
:save="updateBasicData"
:cancel="cancelEdit"
:open-edit="openEdit"
)
@@ -29,7 +29,7 @@
)
.select(v-else-if="field.type === 'select'")
base-select(
:readonly="!isEdit"
readonly,
v-model="basic[data.dataKey][field.key]"
@update:model-value="checkChangeInput"
:hide-dropdown-icon="!isEdit"
@@ -43,13 +43,13 @@
v-else-if="field.type === 'date'",
v-model="basic[data.dataKey][field.key]",
size="M",
:readonly="!isEdit",
readonly
@update:model-value="checkChangeInput",
:width="302"
)
base-input(
v-else,
:readonly="!isEdit"
:readonly="checkRow(data.dataLabel)"
v-model="basic[data.dataKey][field.key]"
@update:model-value="checkChangeInput"
:type="field.type"
@@ -81,6 +81,8 @@ import {
import { mapGetters, mapState } from "vuex";
import BaseInput from "@/components/base/BaseInput.vue";
import BaseInputDate from "@/components/base/BaseInputDate.vue";
import { mapActions } from "vuex";
import { removeEmptyFields } from "@/shared/utils/changesObjects";
export default {
name: "BasicDataForm",
@@ -118,6 +120,46 @@ export default {
}),
},
methods: {
...mapActions({
postAddress: "postAddress",
}),
updateBasicData() {
const photoFormData = new FormData();
if (
this.basic.personalData.photo.file &&
this.basic.personalData.photo.photo !==
this.initDataBasic.personalData.photo.photo
) {
photoFormData.append("photo", this.basic.personalData?.photo?.file[0]);
console.log("photo_update");
}
Object.keys(this.basic).map((key) => {
if (key === "registrationAddress")
this.getRequestChangeData(
this.basic.registrationAddress,
this.initDataBasic[key]
);
if (key === "residenceAddress")
this.getRequestChangeData(
this.basic.residenceAddress,
this.initDataBasic[key]
);
});
this.isEdit = false;
},
getRequestChangeData(updateData, initData) {
if (
Object.keys(removeEmptyFields(updateData)).length &&
JSON.stringify(updateData) !== JSON.stringify(initData)
)
return this.postAddress({
id: this.basic.personalData.id,
address: updateData,
});
},
checkRow(label) {
return label === "Личные данные" ? true : !this.isEdit;
},
checkChangeInput() {
this.isCheckChange = checkChangeData(this.initDataBasic, this.basic);
},
@@ -130,7 +172,7 @@ export default {
this.isEdit = false;
this.isCheckChange = false;
},
updateBasicData() {
oldUpdateBasicData() {
let registration = this.basic.registrationAddress;
let residence = this.basic.residenceAddress;
let personal = this.basic.personalData;

View File

@@ -67,7 +67,7 @@ export const baseDataForm = [
type: "text",
},
{
key: "house_number",
key: "house",
label: "Дом",
type: "text",
rules: [(val) => !/^[\W0]/.test(val)],
@@ -75,7 +75,7 @@ export const baseDataForm = [
"Номер дома должен начинатся не с нуля и только с цифробуквенного символа",
},
{
key: "apartment_number",
key: "flat",
label: "Квартира",
type: "text",
rules: [(val) => !/^[\W0]/.test(val)],
@@ -104,7 +104,7 @@ export const baseDataForm = [
type: "text",
},
{
key: "house_number",
key: "house",
label: "Дом",
type: "text",
rules: [(val) => !/^[\W0]/.test(val)],
@@ -112,7 +112,7 @@ export const baseDataForm = [
"Номер дома должен начинатся не с нуля и только с цифробуквенного символа",
},
{
key: "apartment_number",
key: "flat",
label: "Квартира",
type: "text",
rules: [(val) => !/^[\W0]/.test(val)],
@@ -124,12 +124,12 @@ export const baseDataForm = [
];
export const errorMap = {
house_number: {
house: {
title: "Дом",
error:
"Номер дома должен начинатся не с нуля и только с цифробуквенного символа",
},
apartment_number: {
flat: {
title: "Квартира",
error:
"Номер квартиры должен начинатся не с нуля и только с цифробуквенного символа",