[WIP] Добавил переход на медкарту, возможность редактирования основных данных
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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:
|
||||
"Номер квартиры должен начинатся не с нуля и только с цифробуквенного символа",
|
||||
|
||||
Reference in New Issue
Block a user