From 953dc71460ff08dbd8c3cd190ae33ed07f7c2f0d Mon Sep 17 00:00:00 2001 From: Daria Golova Date: Fri, 25 Nov 2022 17:21:31 +0300 Subject: [PATCH] =?UTF-8?q?WIP=20=D0=9D=D0=B0=D1=81=D1=82=D1=80=D0=BE?= =?UTF-8?q?=D0=B8=D0=BB=D0=B0=20=D0=BF=D0=B0=D0=B3=D0=B8=D0=BD=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D1=8E=20=D1=81=20=D1=84=D0=B8=D0=BB=D1=8C=D1=82=D1=80?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D0=B5=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/clients/components/ClientsTable.vue | 44 ++++++++++++------- .../clients/components/ClientsTableHat.vue | 10 ++++- 2 files changed, 35 insertions(+), 19 deletions(-) diff --git a/src/pages/clients/components/ClientsTable.vue b/src/pages/clients/components/ClientsTable.vue index 02b37ee..5aafd4d 100644 --- a/src/pages/clients/components/ClientsTable.vue +++ b/src/pages/clients/components/ClientsTable.vue @@ -4,7 +4,6 @@ :is-open-actions="marked.length", :open-form="openForm", @search="filterDataClients", - @reset-search="fetchDataClients" ) .flex.flex-col.h-full.gap-y-2.table-container.w-full.mt-8.mb-3 clients-table-header(:check="selectedCheck" :is-check="selectAll") @@ -62,6 +61,7 @@ export default { currentTablePage: 1, limit: 4, count: 0, + textSearch: "", }; }, computed: { @@ -75,20 +75,29 @@ export default { this.count = data.count; }, filterDataClients(text) { - fetchWrapper - .get( - `general/person/?last_name=${text}&?limit=${this.limit}&offset=${ - (this.currentPage - 1) * this.limit - }` - ) - .then((data) => this.saveDataClients(data)); + if (text) this.textSearch = text; + else this.textSearch = ""; + if (this.currentTablePage !== 1) this.currentTablePage = 1; + else { + this.currentTablePage = 1; + this.fetchDataClients(); + } }, - async fetchDataClients(currentPage) { - let response = await fetchWrapper.get( - `general/person/?limit=${this.limit}&offset=${ - (currentPage - 1) * this.limit - }` - ); + async fetchDataClients() { + let response = {}; + if (this.textSearch) { + response = await fetchWrapper.get( + `general/person/?last_name=${this.textSearch}&limit=${ + this.limit + }&offset=${(this.currentTablePage - 1) * this.limit}` + ); + } else { + response = await fetchWrapper.get( + `general/person/?limit=${this.limit}&offset=${ + (this.currentTablePage - 1) * this.limit + }` + ); + } this.saveDataClients(response); }, selectedCheck(e) { @@ -123,18 +132,19 @@ export default { watch: { updatedClients() { if (this.updatedClients === true) { - this.fetchDataClients(this.currentTablePage).then( + this.textSearch = ""; + this.fetchDataClients().then( () => (this.currentTablePage = this.pageCount) ); this.$emit("reset-updated-clients"); } }, currentTablePage() { - this.fetchDataClients(this.currentTablePage); + this.fetchDataClients(); }, }, mounted() { - this.fetchDataClients(this.currentTablePage); + this.fetchDataClients(); }, }; diff --git a/src/pages/clients/components/ClientsTableHat.vue b/src/pages/clients/components/ClientsTableHat.vue index b4bf51f..4e93fea 100644 --- a/src/pages/clients/components/ClientsTableHat.vue +++ b/src/pages/clients/components/ClientsTableHat.vue @@ -19,7 +19,7 @@ secondary, @click="resetLastName", :size=40 - ) Очистить + ) Сбросить clients-table-header-actions(v-if="!!isOpenActions", :is-selected-one="isOpenActions===1") .flex.w-fit.h-fit.gap-x-2 base-button(left-icon="icon-download", :icon-left-size="16", :size="40", :outlined="true") @@ -53,10 +53,16 @@ export default { this.$emit("search", this.searchClient); }, resetLastName() { - this.$emit("reset-search"); this.searchClient = ""; }, }, + watch: { + searchClient() { + if (!this.searchClient) { + this.$emit("search"); + } + }, + }, };