From 6036500b18f1c8798d9a64e8791cc04cfb1d7d9b Mon Sep 17 00:00:00 2001 From: Daria Golova Date: Tue, 29 Nov 2022 16:12:39 +0300 Subject: [PATCH] =?UTF-8?q?WIP=20=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D1=83=D0=B2=D0=B5=D0=B4=D0=BE=D0=BC=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Notifications/NotificationItem.vue | 4 ++- src/components/base/BaseClientFormCreate.vue | 24 +++++++++++++- .../components/CalendarFormAddEvent.vue | 31 +++++++++++++---- .../components/ClientTablePagination.vue | 33 ++++++++++++------- .../clients/components/ClientsActionPopup.vue | 3 +- src/pages/clients/components/ClientsTable.vue | 20 ++++++++--- .../clients/components/ClientsTableRow.vue | 6 ++++ 7 files changed, 95 insertions(+), 26 deletions(-) diff --git a/src/components/Notifications/NotificationItem.vue b/src/components/Notifications/NotificationItem.vue index ca2f851..37d610b 100644 --- a/src/components/Notifications/NotificationItem.vue +++ b/src/components/Notifications/NotificationItem.vue @@ -1,7 +1,7 @@ diff --git a/src/pages/clients/components/ClientsTable.vue b/src/pages/clients/components/ClientsTable.vue index a855968..ea34078 100644 --- a/src/pages/clients/components/ClientsTable.vue +++ b/src/pages/clients/components/ClientsTable.vue @@ -16,12 +16,12 @@ :check="selectedCheck", :client="client", :fetch-data-clients="fetchDataClients", - :current-year="currentYear" + :current-year="currentYear", + @update-clients="updateDataClient" ) client-table-pagination( - v-if="pageCount > 1" - :length="pageCount", - :current-page="currentTablePage", + v-if="paginationInfo.length > 1" + :pagination-info="paginationInfo" @previous-page="switchPreviousPage", @next-page="switchNextPage", @set-current-page="changeCurrentTablePage" @@ -62,6 +62,10 @@ export default { limit: 4, count: 0, textSearch: "", + paginationInfo: { + currentPage: 0, + length: 0, + }, }; }, computed: { @@ -70,6 +74,10 @@ export default { }, }, methods: { + updateDataClient() { + if (this.dataClients.length === 1) this.currentTablePage -= 1; + else this.fetchDataClients(); + }, saveDataClients(data) { this.dataClients = data.results; this.count = data.count; @@ -98,6 +106,10 @@ export default { ); } this.saveDataClients(response); + this.paginationInfo = { + currentPage: this.currentTablePage, + length: this.pageCount, + }; }, selectedCheck(e) { if (e.target.id === "checkbox") { diff --git a/src/pages/clients/components/ClientsTableRow.vue b/src/pages/clients/components/ClientsTableRow.vue index 814ae6e..081ac04 100644 --- a/src/pages/clients/components/ClientsTableRow.vue +++ b/src/pages/clients/components/ClientsTableRow.vue @@ -64,6 +64,7 @@ clients-action-popup( v-if="isOpenPopup", :open-change-data="openChangeData" + :delete-client="deleteClient" ) client-detail-info-wrapper( v-if="isOpenDetailInfo" @@ -270,6 +271,11 @@ export default { openChangeData() { this.isOpenChange = true; }, + async deleteClient() { + await fetchWrapper.del(`general/person/${this.dataClient.id}/delete/`); + this.handleUnFocusPopup(); + this.$emit("update-clients"); + }, fetchClientDetail(id) { fetchWrapper .get(`general/person/${id}/detail/`)