From fc99c79dfa16b1130d9a29258ede26c71340649c Mon Sep 17 00:00:00 2001 From: megavrilinvv Date: Tue, 15 Nov 2022 12:18:30 +0300 Subject: [PATCH 1/4] =?UTF-8?q?[WIP]=20=D0=98=D1=81=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=B8=D0=BB=20=D0=BB=D0=BE=D0=B3=D0=B8=D0=BA=D1=83=20?= =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20?= =?UTF-8?q?=D0=B0=D0=B4=D1=80=D0=B5=D1=81=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/ClientDetailInfoSection.vue | 33 ++++++++++--------- .../components/ClientDetailInfoWrapper.vue | 2 ++ .../clients/components/ClientsTableRow.vue | 12 ++++++- 3 files changed, 30 insertions(+), 17 deletions(-) diff --git a/src/pages/clients/components/ClientDetailInfoSection.vue b/src/pages/clients/components/ClientDetailInfoSection.vue index f5e5836..65e0ac2 100644 --- a/src/pages/clients/components/ClientDetailInfoSection.vue +++ b/src/pages/clients/components/ClientDetailInfoSection.vue @@ -4,23 +4,24 @@ ) .section-header.flex.items-center.justify-between.pl-4.pr-3(:class="{small:settings[section].rowFlex}") span.text-sm.font-semibold.whitespace-nowrap {{settings[section].title}} - .flex.items-center.gap-x-8(v-if="this.isData") + .flex.items-center.gap-x-8 base-button( - v-if="isChange && !this.isData", + v-if="isChange", @click="saveChange", confirm, rounded, outlined, :size="20" ) - base-button( - v-if="isChange && this.isData", - @click="createNewAddress", - confirm, - rounded, - outlined, - :size="20" - ) + .icon-ok.text-xsm(class="pt-[3px]") + //- base-button( + //- v-if="isChange && this.isData", + //- @click="createNewAddress", + //- confirm, + //- rounded, + //- outlined, + //- :size="20" + //- ) .icon-ok.text-xsm(class="pt-[3px]") .edit.icon-edit.cursor-pointer.text-sm( v-if="!isChange", @@ -145,6 +146,7 @@ export default { lackData: Boolean, dopeAddress: Object, createAddress: Function, + createDocument: Function, }, directives: { mask }, @@ -173,6 +175,11 @@ export default { changeData() { this.isData = true; this.isChange = true; + if (this.section === "pass") { + this.createDocument(); + } else if (this.section === "addresses") { + this.createAddress(); + } }, copyValue(text) { navigator.clipboard.writeText(text); @@ -191,12 +198,6 @@ export default { this.updateAddress(); } }, - createNewAddress() { - this.isOpenChange = false; - this.isChange = false; - this.createAddress(); - this.updateAddress(); - }, openAddingWrap() { if (!this.isChange) { this.isOpenAddingWrap = !this.isOpenAddingWrap; diff --git a/src/pages/clients/components/ClientDetailInfoWrapper.vue b/src/pages/clients/components/ClientDetailInfoWrapper.vue index b19ca9a..ec2438a 100644 --- a/src/pages/clients/components/ClientDetailInfoWrapper.vue +++ b/src/pages/clients/components/ClientDetailInfoWrapper.vue @@ -5,6 +5,7 @@ section="pass" :update-document="updateDocument" :lack-data="lackData" + :create-document="createDocument" ) .flex.flex-col client-detail-info-section( @@ -42,6 +43,7 @@ export default { lackData: Boolean, dopeAddress: Object, createAddress: Function, + createDocument: Function, }, }; diff --git a/src/pages/clients/components/ClientsTableRow.vue b/src/pages/clients/components/ClientsTableRow.vue index f0b1a6f..b22986c 100644 --- a/src/pages/clients/components/ClientsTableRow.vue +++ b/src/pages/clients/components/ClientsTableRow.vue @@ -78,6 +78,7 @@ :lack-data="lackData" :dope-address="dopeAddress" :create-address="postCreateAddress" + :create-document="postCreateIdentityDocument" ) @@ -128,6 +129,7 @@ export default { docId: "", addressId: "", lackData: true, + lackAddress: true, dopeAddress: { city: "", region: "", @@ -321,10 +323,11 @@ export default { }, saveAddress(data) { this.addressId = data?.id; - if (data?.join_adress) { + if (data?.join_adress && data?.join_adress.substr(0, 4) !== "None") { this.dataAddress = { join_adress: data?.join_adress, }; + this.lackData = true; } else { this.lackData = false; this.dataAddress = { @@ -387,6 +390,13 @@ export default { }) .then(() => this.fetchClientDetail(this.id)); }, + postCreateIdentityDocument() { + fetchWrapper + .post("general/identity_document/create/", { + person_id: this.id, + }) + .then(() => this.fetchClientDetail(this.id)); + }, }, }; From 6894aa0a14de8ca19098d042b30f1c0f7d166eaf Mon Sep 17 00:00:00 2001 From: megavrilinvv Date: Tue, 15 Nov 2022 13:27:08 +0300 Subject: [PATCH 2/4] =?UTF-8?q?[WIP]=20=D0=9F=D1=80=D0=B0=D0=B2=D0=BA?= =?UTF-8?q?=D0=B0=20=D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD=D0=B8=D1=8F=20?= =?UTF-8?q?=D0=B0=D0=B4=D1=80=D0=B5=D1=81=D0=BE=D0=B2=20=D0=B8=20=D0=BF?= =?UTF-8?q?=D0=B0=D1=81=D0=BF=D0=BE=D1=80=D1=82=D0=BD=D1=8B=D1=85=20=D0=B4?= =?UTF-8?q?=D0=B0=D0=BD=D0=BD=D1=8B=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/ClientDetailInfoSection.vue | 25 ++++++++----------- .../components/ClientDetailInfoWrapper.vue | 4 +-- .../clients/components/ClientsTableRow.vue | 14 +++++++++-- 3 files changed, 25 insertions(+), 18 deletions(-) diff --git a/src/pages/clients/components/ClientDetailInfoSection.vue b/src/pages/clients/components/ClientDetailInfoSection.vue index 65e0ac2..3879f3f 100644 --- a/src/pages/clients/components/ClientDetailInfoSection.vue +++ b/src/pages/clients/components/ClientDetailInfoSection.vue @@ -14,15 +14,6 @@ :size="20" ) .icon-ok.text-xsm(class="pt-[3px]") - //- base-button( - //- v-if="isChange && this.isData", - //- @click="createNewAddress", - //- confirm, - //- rounded, - //- outlined, - //- :size="20" - //- ) - .icon-ok.text-xsm(class="pt-[3px]") .edit.icon-edit.cursor-pointer.text-sm( v-if="!isChange", @click="changeClientData" @@ -49,7 +40,7 @@ :add-new-additional="addDocAdditional", :save-additional="saveDocs" ) - .section-body.w-full.flex.flex-col.px-4.pt-3.pb-4.gap-y-4(v-if="this.isData") + .section-body.w-full.flex.flex-col.px-4.pt-3.pb-4.gap-y-4(v-if="this.isData || this.isAddress") .flex.flex-col(class="gap-y-1.5") .flex.flex-col(v-for="(item, key) in sectionInfo", class="gap-y-1.5") span.title-section.font-semibold.text-xs( @@ -144,6 +135,7 @@ export default { updateDocument: Function, updateAddress: Function, lackData: Boolean, + lackAddress: Boolean, dopeAddress: Object, createAddress: Function, createDocument: Function, @@ -160,7 +152,6 @@ export default { }, docData: [], isOpenAddingWrap: false, - isOpenChange: false, isChange: false, settings: detail, cities: [ @@ -169,15 +160,17 @@ export default { { id: 1, label: "Луховицы" }, ], isData: true, + isAddress: true, }; }, methods: { changeData() { - this.isData = true; this.isChange = true; if (this.section === "pass") { + this.isData = true; this.createDocument(); } else if (this.section === "addresses") { + this.isAddress = true; this.createAddress(); } }, @@ -190,7 +183,6 @@ export default { } }, saveChange() { - this.isOpenChange = false; this.isChange = false; if (this.section === "pass") { this.updateDocument(); @@ -217,7 +209,6 @@ export default { this.saveNewDoc(this.section, this.docData); } this.isOpenAddingWrap = false; - this.isOpenChange = false; this.docData = []; this.additionalData = { header: "", @@ -234,6 +225,12 @@ export default { this.isData = newValue; }, }, + lackAddress: { + immediate: true, + handler(newValue) { + this.isAddress = newValue; + }, + }, }, }; diff --git a/src/pages/clients/components/ClientDetailInfoWrapper.vue b/src/pages/clients/components/ClientDetailInfoWrapper.vue index ec2438a..12de812 100644 --- a/src/pages/clients/components/ClientDetailInfoWrapper.vue +++ b/src/pages/clients/components/ClientDetailInfoWrapper.vue @@ -12,7 +12,7 @@ :section-info="dataAddress" section="addresses" :update-address="updateAddress" - :lack-data="lackData" + :lack-address="lackAddress" :dope-address="dopeAddress" :create-address="createAddress" ) @@ -22,7 +22,6 @@ section="docs" :save-new-doc="saveNewDoc" :delete-doc="deleteDoc" - :lack-data="lackData" ) @@ -41,6 +40,7 @@ export default { updateDocument: Function, updateAddress: Function, lackData: Boolean, + lackAddress: Boolean, dopeAddress: Object, createAddress: Function, createDocument: Function, diff --git a/src/pages/clients/components/ClientsTableRow.vue b/src/pages/clients/components/ClientsTableRow.vue index b22986c..2308699 100644 --- a/src/pages/clients/components/ClientsTableRow.vue +++ b/src/pages/clients/components/ClientsTableRow.vue @@ -76,6 +76,7 @@ :update-document="postUpdateIdentityDocument" :update-address="postUpdateAddress" :lack-data="lackData" + :lack-address="lackAddress" :dope-address="dopeAddress" :create-address="postCreateAddress" :create-document="postCreateIdentityDocument" @@ -297,6 +298,7 @@ export default { ? data?.issued_by_date.split("-").reverse().join(".") : "", }; + this.lackData = true; } else { this.lackData = false; this.dataIdentityDocument = { @@ -327,9 +329,9 @@ export default { this.dataAddress = { join_adress: data?.join_adress, }; - this.lackData = true; + this.lackAddress = true; } else { - this.lackData = false; + this.lackAddress = false; this.dataAddress = { join_adress: "", }; @@ -394,6 +396,14 @@ export default { fetchWrapper .post("general/identity_document/create/", { person_id: this.id, + kind: "ПАСПОРТ", + series_number: this.dataIdentityDocument.numba, + issued_by_org: this.dataIdentityDocument.issued_by_org, + issued_by_org_code: this.dataIdentityDocument.issued_by_org_code, + issued_by_date: this.dataIdentityDocument.issued_by_date + .split(".") + .reverse() + .join("-"), }) .then(() => this.fetchClientDetail(this.id)); }, From f3979e9e24ee01384e6a74b44ab8e6cf5b7424c5 Mon Sep 17 00:00:00 2001 From: megavrilinvv Date: Tue, 15 Nov 2022 16:16:36 +0300 Subject: [PATCH 3/4] =?UTF-8?q?[WIP]=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D0=BB=20=D1=81=D0=BE=D1=85=D1=80=D0=B0=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=B0=D0=B4=D1=80=D0=B5=D1=81=D0=BE=D0=B2=20?= =?UTF-8?q?=D0=B8=20=D0=BF=D0=B0=D1=81=D0=BF=D0=BE=D1=80=D1=82=D0=BD=D1=8B?= =?UTF-8?q?=D1=85=20=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/ClientDetailInfoSection.vue | 59 +++++++------------ .../components/ClientDetailInfoWrapper.vue | 4 ++ .../components/ClientDetailSectionAddress.vue | 51 ++++++++++++++++ .../clients/components/ClientsTableRow.vue | 21 ++++--- 4 files changed, 87 insertions(+), 48 deletions(-) create mode 100644 src/pages/clients/components/ClientDetailSectionAddress.vue diff --git a/src/pages/clients/components/ClientDetailInfoSection.vue b/src/pages/clients/components/ClientDetailInfoSection.vue index 3879f3f..b98bd7f 100644 --- a/src/pages/clients/components/ClientDetailInfoSection.vue +++ b/src/pages/clients/components/ClientDetailInfoSection.vue @@ -7,7 +7,7 @@ .flex.items-center.gap-x-8 base-button( v-if="isChange", - @click="saveChange", + @click="changeDoc", confirm, rounded, outlined, @@ -69,29 +69,10 @@ .line.absolute .text-separation.span.text-sm.separator.px-2 или .flex.flex-col.gap-y-4(v-if="section === 'addresses' && isChange") - .flex.flex-col(class="gap-y-1.5") - .text-info.text-xxs.font-semibold Город - base-select( - placeholder="Выберите город", - :items="cities", - v-model="dopeAddress.city" - ) - .flex.flex-col(class="gap-y-1.5") - .text-info.text-xxs.font-semibold Область - base-input.input-info(placeholder="Введите область", v-model:value="dopeAddress.region") - .flex.flex-col(class="gap-y-1.5") - .text-info.text-xxs.font-semibold Улица - base-input.input-info(placeholder="Введите улицу", v-model:value="dopeAddress.street") - .flex.gap-x-4 - .flex.flex-col(class="gap-y-1.5") - .text-info.text-xxs.font-semibold Дом - base-input.input-info(placeholder="Дом", v-model:value="dopeAddress.house") - .flex.flex-col(class="gap-y-1.5") - .text-info.text-xxs.font-semibold Квартира - base-input.input-info(placeholder="Квартира", v-model:value="dopeAddress.flat") - .flex.flex-col(class="gap-y-1.5") - .text-info.text-xxs.font-semibold Индекс - base-input.input-info(v-mask="'######'", placeholder="000000", v-model:value="dopeAddress.index") + client-detail-section-address( + :dope-address="dopeAddress" + :cities="cities" + ) .flex(v-if="item.name && !isChange") span.text-sm.w-fit {{item.title}} .flex.items-center(v-if="item.title") @@ -103,7 +84,7 @@ span.text-sm {{item.title}} .section-add-doc.flex.justify-center.items-center.cursor-pointer( v-else, - @click="changeData" + @click="openAddDoc" ) span Добавить данные @@ -111,21 +92,18 @@ diff --git a/src/pages/clients/components/ClientDetailSectionAddress.vue b/src/pages/clients/components/ClientDetailSectionAddress.vue new file mode 100644 index 0000000..a1eef23 --- /dev/null +++ b/src/pages/clients/components/ClientDetailSectionAddress.vue @@ -0,0 +1,51 @@ + + + + + diff --git a/src/pages/clients/components/ClientsTableRow.vue b/src/pages/clients/components/ClientsTableRow.vue index 2308699..f9d7378 100644 --- a/src/pages/clients/components/ClientsTableRow.vue +++ b/src/pages/clients/components/ClientsTableRow.vue @@ -80,6 +80,8 @@ :dope-address="dopeAddress" :create-address="postCreateAddress" :create-document="postCreateIdentityDocument" + :address-id="addressId" + :doc-id="docId" ) @@ -280,13 +282,8 @@ export default { this.saveAttachments([...data.attachments]); }, saveIdentityDocument(data) { - if ( - data?.series || - data?.numba || - data?.issued_by_org || - data?.issued_by_org_code || - data?.issued_by_date - ) { + if (data?.id) { + this.docId = data.id; this.dataIdentityDocument = { numba: data.series && data.numba ? data?.series + " " + data?.numba : "", @@ -308,7 +305,6 @@ export default { issued_by_date: "", }; } - this.docId = data?.id; }, postUpdateIdentityDocument() { fetchWrapper @@ -389,6 +385,13 @@ export default { fetchWrapper .post("general/address/create/", { person_id: this.id, + full_address: + this.dopeAddress.city + + this.dopeAddress.region + + this.dopeAddress.street + + this.dopeAddress.house + + this.dopeAddress.flat + + this.dopeAddress.index || this.dataAddress.join_adress, }) .then(() => this.fetchClientDetail(this.id)); }, @@ -396,7 +399,7 @@ export default { fetchWrapper .post("general/identity_document/create/", { person_id: this.id, - kind: "ПАСПОРТ", + kind: "PASSPORT", series_number: this.dataIdentityDocument.numba, issued_by_org: this.dataIdentityDocument.issued_by_org, issued_by_org_code: this.dataIdentityDocument.issued_by_org_code, From 040312c0351fbe0d00e9db6f3f6891d45cd07071 Mon Sep 17 00:00:00 2001 From: megavrilinvv Date: Tue, 15 Nov 2022 18:27:35 +0300 Subject: [PATCH 4/4] Small fix --- .../clients/components/ClientsTableRow.vue | 26 +++++++++---------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/src/pages/clients/components/ClientsTableRow.vue b/src/pages/clients/components/ClientsTableRow.vue index f9d7378..0a69efe 100644 --- a/src/pages/clients/components/ClientsTableRow.vue +++ b/src/pages/clients/components/ClientsTableRow.vue @@ -333,6 +333,16 @@ export default { }; } }, + mergeFullAddress() { + if ( + this.dopeAddress.region && + this.dopeAddress.city && + this.dopeAddress.street && + this.dopeAddress.house + ) { + return `${this.dopeAddress.region}.обл, г.${this.dopeAddress.city}, ул.${this.dopeAddress.street}, ${this.dopeAddress.house}, ${this.dopeAddress.flat}, ${this.dopeAddress.index}`; + } + }, clearAddress() { this.dopeAddress = { city: "", @@ -346,13 +356,7 @@ export default { postUpdateAddress() { fetchWrapper .post(`general/address/${this.addressId}/update/`, { - full_address: - this.dopeAddress.city + - this.dopeAddress.region + - this.dopeAddress.street + - this.dopeAddress.house + - this.dopeAddress.flat + - this.dopeAddress.index || this.dataAddress.join_adress, + full_address: this.mergeFullAddress() || this.dataAddress.join_adress, }) .then(() => this.fetchClientDetail(this.id)); this.clearAddress(); @@ -385,13 +389,7 @@ export default { fetchWrapper .post("general/address/create/", { person_id: this.id, - full_address: - this.dopeAddress.city + - this.dopeAddress.region + - this.dopeAddress.street + - this.dopeAddress.house + - this.dopeAddress.flat + - this.dopeAddress.index || this.dataAddress.join_adress, + full_address: this.mergeFullAddress() || this.dataAddress.join_adress, }) .then(() => this.fetchClientDetail(this.id)); },