diff --git a/src/components/Notifications/TheNotificationProvider.vue b/src/components/Notifications/TheNotificationProvider.vue index 99cdde6..59bbef0 100644 --- a/src/components/Notifications/TheNotificationProvider.vue +++ b/src/components/Notifications/TheNotificationProvider.vue @@ -38,12 +38,6 @@ export default { return Object.entries(notifications); }, }, - - watch: { - notificationsList(val) { - console.log(val); - }, - }, }; diff --git a/src/components/base/BaseClientFormCreate.vue b/src/components/base/BaseClientFormCreate.vue index df58b62..b225f9e 100644 --- a/src/components/base/BaseClientFormCreate.vue +++ b/src/components/base/BaseClientFormCreate.vue @@ -91,6 +91,7 @@ import BaseModal from "@/components/base/BaseModal"; import addImageIcon from "@/assets/icons/photo.svg"; import TheNotificationProvider from "@/components/Notifications/TheNotificationProvider"; import { addNotification } from "@/components/Notifications/notificationContext"; +import * as moment from "moment"; export default { name: "BaseClientFormClient", components: { @@ -246,16 +247,33 @@ export default { !this.showModal ? this.closeForm() : null; }, createIdentityDocument(id) { - Object.keys( + let filteredData = Object.keys( this.filterDataEmptyProperty(this.infoClient.identity_document.pass) - ).length > 0 && - fetchWrapper.post("general/identity_document/create/", { - ...this.filterDataEmptyProperty( - this.infoClient.identity_document.pass - ), - person_id: id, - kind: "Паспорт", - }); + ); + if (filteredData.length > 0) { + if (filteredData.length < 4) { + this.addErrorNotification( + "Паспортные данные заполнены не полностью", + "Паспортные данные не будут записаны в профиль клиента" + ); + } else if ( + moment(this.infoClient.identity_document.pass.issued_by_date).isAfter( + moment().format("YYYY-MM-DD") + ) + ) { + this.addErrorNotification( + "Некорректная дата выдачи паспорта", + "Паспортные данные не будут записаны в профиль клиента" + ); + } else + fetchWrapper.post("general/identity_document/create/", { + ...this.filterDataEmptyProperty( + this.infoClient.identity_document.pass + ), + person_id: id, + kind: "Паспорт", + }); + } }, createAddress(id) { Object.keys(this.filterDataEmptyProperty(this.infoClient.addresses)) @@ -301,11 +319,18 @@ export default { fetchWrapper .post("general/person/create/", formData, "formData") .then((result) => { - this.createIdentityDocument(result.id); - this.createAddress(result.id); - this.createContacts(result.id); - this.setUpdatedClients(); - this.addSuccessNotification(); + if (result.id) { + this.createIdentityDocument(result.id); + this.createAddress(result.id); + this.createContacts(result.id); + this.setUpdatedClients(); + this.addSuccessNotification(); + } else { + this.addErrorNotification( + "Клиент не создан", + "Произошла ошибка сервера" + ); + } }); }, filterDataEmptyProperty(data) { @@ -393,21 +418,14 @@ export default { ); return false; } - if (this.infoClient.basic.full_name.split(" ").length < 3) { - this.addErrorNotification( - "Некорректное ФИО клиента", - "Пожалуйста, введите ФИО клиента правильно" - ); - return false; - } return true; }, addErrorNotification(title, message) { - addNotification(new Date().getTime(), title, message, "error", 5000); + addNotification(title, title, message, "error", 5000); }, addSuccessNotification() { addNotification( - new Date().getTime(), + "Клиент успешно создан", "Клиент успешно создан", "", "success", diff --git a/src/pages/clients/components/ClientsTable.vue b/src/pages/clients/components/ClientsTable.vue index fde1ffe..edc6cd2 100644 --- a/src/pages/clients/components/ClientsTable.vue +++ b/src/pages/clients/components/ClientsTable.vue @@ -206,7 +206,11 @@ export default { this.textSearch = ""; this.clearingTextSearch = true; this.clientsCount += 1; - this.currentTablePage = this.calculatePageCount(this.clientsCount); + if ( + this.currentTablePage !== this.calculatePageCount(this.clientsCount) + ) + this.currentTablePage = this.calculatePageCount(this.clientsCount); + else this.fetchDataClients(); this.$emit("reset-updated-clients"); } }, diff --git a/src/pages/clients/components/ClientsTableRow.vue b/src/pages/clients/components/ClientsTableRow.vue index 3069491..4f887f8 100644 --- a/src/pages/clients/components/ClientsTableRow.vue +++ b/src/pages/clients/components/ClientsTableRow.vue @@ -192,7 +192,7 @@ export default { this.timer = null; }, startTimer() { - this.countdown = 10; + this.countdown = 30; this.timer = setInterval(() => { this.changeCountdown(); }, 1000);