From 86d64bc77150a3dc04b5793d95be186aac24a25f Mon Sep 17 00:00:00 2001 From: Daria Golova Date: Wed, 14 Dec 2022 17:46:24 +0300 Subject: [PATCH] =?UTF-8?q?WIP=20=D0=9F=D0=B5=D1=80=D0=B5=D0=BA=D0=BB?= =?UTF-8?q?=D1=8E=D1=87=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BD=D0=B0=20=D0=BA?= =?UTF-8?q?=D0=BB=D0=B8=D0=B5=D0=BD=D1=82=D0=B0=20=D0=BF=D0=BE=D1=81=D0=BB?= =?UTF-8?q?=D0=B5=20=D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/LoggedInLayout.vue | 9 +++++- src/components/TheHeader.vue | 2 ++ src/components/base/BaseClientFormCreate.vue | 2 ++ src/pages/clients/TheClients.vue | 4 ++- src/pages/clients/components/ClientsTable.vue | 30 +++++++++++++++---- .../clients/components/ClientsTableHat.vue | 9 ++++-- .../clients/components/ClientsTableRow.vue | 9 ++++-- .../clients/components/ClientsWrapper.vue | 4 ++- 8 files changed, 56 insertions(+), 13 deletions(-) diff --git a/src/components/LoggedInLayout.vue b/src/components/LoggedInLayout.vue index 6d6bed7..2db4834 100644 --- a/src/components/LoggedInLayout.vue +++ b/src/components/LoggedInLayout.vue @@ -6,6 +6,7 @@ :close-form="closeForm", :open-form="openForm", :set-updated-clients="setUpdatedClients", + :write-created-client-id="writeCreatedClientId" ) .flex.flex-auto the-sidebar @@ -14,7 +15,8 @@ :is-open-form="isOpenForm", :updated-clients="updatedClients", @reset-updated-clients="resetUpdatedClients", - :url="url" + :url="url", + :created-client-id="createdClientId" ) the-notification-provider @@ -32,6 +34,7 @@ export default { isOpenForm: false, updatedClients: false, url: "http://45.84.227.122:8080", + createdClientId: "", }; }, methods: { @@ -46,6 +49,10 @@ export default { }, resetUpdatedClients() { this.updatedClients = false; + this.createdClientId = ""; + }, + writeCreatedClientId(id) { + this.createdClientId = id; }, }, }; diff --git a/src/components/TheHeader.vue b/src/components/TheHeader.vue index 96f134b..35926a9 100644 --- a/src/components/TheHeader.vue +++ b/src/components/TheHeader.vue @@ -5,6 +5,7 @@ v-if="isOpenForm", :close-form="closeForm", :set-updated-clients="setUpdatedClients", + :write-created-client-id="writeCreatedClientId", ) .flex.items-center.box-border.cursor-pointer.mr-auto img.logo-img.mr-29_25px(src="@/assets/images/logo.svg", alt="Logo") @@ -60,6 +61,7 @@ export default { closeForm: Function, isOpenForm: Boolean, setUpdatedClients: Function, + writeCreatedClientId: Function, }, data() { return { diff --git a/src/components/base/BaseClientFormCreate.vue b/src/components/base/BaseClientFormCreate.vue index b3fc7f7..5595f5d 100644 --- a/src/components/base/BaseClientFormCreate.vue +++ b/src/components/base/BaseClientFormCreate.vue @@ -111,6 +111,7 @@ export default { props: { closeForm: Function, setUpdatedClients: Function, + writeCreatedClientId: Function, }, data() { return { @@ -325,6 +326,7 @@ export default { this.createIdentityDocument(result.id); this.createAddress(result.id); this.createContacts(result.id); + this.writeCreatedClientId(result.id); this.setUpdatedClients(); this.addSuccessNotification(); } else { diff --git a/src/pages/clients/TheClients.vue b/src/pages/clients/TheClients.vue index 273ad2a..62b363a 100644 --- a/src/pages/clients/TheClients.vue +++ b/src/pages/clients/TheClients.vue @@ -4,7 +4,8 @@ :is-open-form="isOpenForm", :updated-clients="updatedClients", @reset-updated-clients="transmitReset", - :url="url" + :url="url", + :created-client-id="createdClientId" ) @@ -18,6 +19,7 @@ export default { isOpenForm: Boolean, updatedClients: Boolean, url: String, + createdClientId: String, }, methods: { transmitReset() { diff --git a/src/pages/clients/components/ClientsTable.vue b/src/pages/clients/components/ClientsTable.vue index 14e40ce..e352a98 100644 --- a/src/pages/clients/components/ClientsTable.vue +++ b/src/pages/clients/components/ClientsTable.vue @@ -13,6 +13,7 @@ :clearing-text-search="clearingTextSearch", :change-clearing-text-search="changeClearingTextSearch", @search="filterDataClients", + :created-client-name="createdClientName", ) .flex.flex-col.h-full.table-container.w-full.mt-8.mb-3 base-modal(v-model="showMedicalCard") @@ -30,7 +31,9 @@ :deleted-client-id="deletedRowId", :update-data-client="updateDataClient", :fetch-data-clients="fetchDataClients", + :fetch-created-client-data="fetchCreatedClientData", :create-medical-card="createMedicalCard", + :created-client-name="createdClientName", @delete-client="deleteClientHandler", @recover-client="clearDeletedRowId", ) @@ -83,6 +86,7 @@ export default { isOpenForm: Boolean, updatedClients: Boolean, url: String, + createdClientId: String, }, data() { @@ -108,6 +112,7 @@ export default { deletedRowId: "", clearingTextSearch: false, showMedicalCard: false, + createdClientName: "", }; }, computed: { @@ -117,6 +122,7 @@ export default { }, methods: { updateDataClient() { + this.clearCreatedClientName(); if (this.textSearch) this.filteredClientsCount -= 1; else this.clientsCount -= 1; if (this.dataClients.find(({ id }) => id === this.deletedRowId)) { @@ -134,6 +140,7 @@ export default { if (!this.filteredClientsCoun) this.filteredClientsCount = data.count; }, filterDataClients(text) { + this.clearCreatedClientName(); if (text) { this.textSearch = text; this.filteredClientsCount = 0; @@ -171,6 +178,18 @@ export default { }; } }, + async fetchCreatedClientData() { + fetchWrapper + .get(`general/person/${this.createdClientId}/detail/`) + .then((response) => { + this.dataClients = [response]; + this.createdClientName = `${response.last_name} ${response.first_name} ${response.patronymic}`; + this.paginationInfo = { + currentPage: 0, + length: 0, + }; + }); + }, calculatePageCount(count) { return Math.ceil(count / this.limit); }, @@ -226,19 +245,18 @@ export default { }, changeClearingTextSearch() { this.clearingTextSearch = false; + this.clearCreatedClientName(); + }, + clearCreatedClientName() { + this.createdClientName = ""; }, }, watch: { updatedClients() { if (this.updatedClients === true) { this.textSearch = ""; - this.clearingTextSearch = true; this.clientsCount += 1; - if ( - this.currentTablePage !== this.calculatePageCount(this.clientsCount) - ) - this.currentTablePage = this.calculatePageCount(this.clientsCount); - else this.fetchDataClients(); + this.fetchCreatedClientData(); this.$emit("reset-updated-clients"); } }, diff --git a/src/pages/clients/components/ClientsTableHat.vue b/src/pages/clients/components/ClientsTableHat.vue index e9c4884..9a522a7 100644 --- a/src/pages/clients/components/ClientsTableHat.vue +++ b/src/pages/clients/components/ClientsTableHat.vue @@ -11,6 +11,7 @@ ) .icon-search base-button.font-semibold( + v-if="createdClientName === ''", @click="searchLastName", :size=40 ) Поиск @@ -43,6 +44,7 @@ export default { isOpenActions: Number, clearingTextSearch: Boolean, changeClearingTextSearch: Function, + createdClientName: String, }, data() { return { @@ -51,7 +53,7 @@ export default { }, methods: { searchLastName() { - if (this.searchClient.length >= 3) + if (this.searchClient.length >= 3 && !this.createdClientName) this.$emit("search", this.searchClient); }, resetLastName() { @@ -59,6 +61,9 @@ export default { }, }, watch: { + createdClientName() { + if (this.createdClientName) this.searchClient = this.createdClientName; + }, searchClient() { if (!this.searchClient && !this.clearingTextSearch) { this.$emit("search"); @@ -76,5 +81,5 @@ export default { diff --git a/src/pages/clients/components/ClientsTableRow.vue b/src/pages/clients/components/ClientsTableRow.vue index 48a58dc..391a9ee 100644 --- a/src/pages/clients/components/ClientsTableRow.vue +++ b/src/pages/clients/components/ClientsTableRow.vue @@ -188,6 +188,8 @@ export default { url: String, fetchDataClients: Function, createMedicalCard: Function, + fetchCreatedClientData: Function, + createdClientName: String, }, computed: { rowOverlay() { @@ -207,7 +209,7 @@ export default { this.timer = null; }, startTimer() { - this.countdown = 30; + this.countdown = 600; this.timer = setInterval(() => { this.changeCountdown(); }, 1000); @@ -260,7 +262,10 @@ export default { .post(`general/person/${this.client.id}/update/`, { ...data, }) - .then(() => this.fetchDataClients()); + .then(() => { + if (this.createdClientName) this.fetchCreatedClientData; + else this.fetchDataClients(); + }); }, postContactsClient() { let contacts = [...this.dataClient.contacts]; diff --git a/src/pages/clients/components/ClientsWrapper.vue b/src/pages/clients/components/ClientsWrapper.vue index b146d32..37c20fe 100644 --- a/src/pages/clients/components/ClientsWrapper.vue +++ b/src/pages/clients/components/ClientsWrapper.vue @@ -5,7 +5,8 @@ :is-open-form="isOpenForm", :updated-clients="updatedClients", @reset-updated-clients="transmitReset", - :url="url" + :url="url", + :created-client-id="createdClientId" ) @@ -19,6 +20,7 @@ export default { isOpenForm: Boolean, updatedClients: Boolean, url: String, + createdClientId: String, }, methods: { transmitReset() {