Добавил сохранение адресов и паспортных данных
This commit is contained in:
@@ -15,7 +15,13 @@
|
||||
.flex.flex-col(v-for="(item, key) in sectionInfo" class="gap-y-1.5")
|
||||
span.title-section.font-semibold.text-xs(v-if="settings[section].options") {{settings[section].options[key]}}
|
||||
span.title-section.font-semibold.text-xs(v-if="item.header") {{item.header}}
|
||||
client-detail-input.text-sm.text-sm.w-max-fit(v-if="section!=='docs' && isChange" :style="{fontWeight:key === 'numba'&&600}" v-model:value="sectionInfo[key]" :width="settings[section].width")
|
||||
client-detail-input.text-sm.text-sm.w-max-fit(
|
||||
:sharp="settings[section].sharps[key]"
|
||||
v-if="section!=='docs' && isChange"
|
||||
:style="{fontWeight:key === 'numba'&&600}"
|
||||
v-model:value="sectionInfo[key]"
|
||||
:width="settings[section].width"
|
||||
)
|
||||
.copy.icon-copy.cursor-pointer(v-if="item.copy" @click="() => copyValue(item)")
|
||||
.flex(v-if="settings[section].options && !isChange")
|
||||
span.text-sm.w-fit(:style="{fontWeight:key === 'numba'&&600}") {{item}}
|
||||
@@ -47,7 +53,9 @@ export default {
|
||||
section: String,
|
||||
deleteDoc: Function,
|
||||
updateDocument: Function,
|
||||
updateAddress: Function,
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
additionalData: {
|
||||
@@ -76,7 +84,11 @@ export default {
|
||||
saveChange() {
|
||||
this.isOpenChange = false;
|
||||
this.isChange = false;
|
||||
this.updateDocument();
|
||||
if (this.section === "pass") {
|
||||
this.updateDocument();
|
||||
} else if (this.section === "addresses") {
|
||||
this.updateAddress();
|
||||
}
|
||||
},
|
||||
openAddingWrap() {
|
||||
this.isOpenAddingWrap = true;
|
||||
|
||||
@@ -3,9 +3,14 @@
|
||||
client-detail-info-section(
|
||||
v-model:section-info="dataDocument"
|
||||
section="pass"
|
||||
:update-document="updateDocument"
|
||||
)
|
||||
.flex.flex-col
|
||||
client-detail-info-section(:section-info="dataAddress" section="addresses")
|
||||
client-detail-info-section(
|
||||
:section-info="dataAddress"
|
||||
section="addresses"
|
||||
:update-address="updateAddress"
|
||||
)
|
||||
.flex.flex-col
|
||||
client-detail-info-section(
|
||||
:section-info="dataAttachments"
|
||||
@@ -27,6 +32,8 @@ export default {
|
||||
saveNewDoc: Function,
|
||||
deleteDoc: Function,
|
||||
dataDocument: Object,
|
||||
updateDocument: Function,
|
||||
updateAddress: Function,
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
@@ -1,16 +1,25 @@
|
||||
<template lang="pug">
|
||||
.input-wrapper.flex.gap-x-2.px-3.box-border.w-max-fit(class="py-2.5")
|
||||
textarea.place-input.w-full.outline-0.text-sm.not-italic.resize-none(:rows="Math.ceil(value.length/heightInput)" :value="value" @input="$emit('update:value', $event.target.value)")
|
||||
input.place-input.w-full.outline-0.text-sm.not-italic.resize-none(
|
||||
:rows="Math.ceil(value.length/heightInput)"
|
||||
:value="value"
|
||||
@input="$emit('update:value', $event.target.value)"
|
||||
v-mask="sharp"
|
||||
)
|
||||
slot
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mask } from "vue-the-mask";
|
||||
export default {
|
||||
name: "ClientDetailInput",
|
||||
props: {
|
||||
value: String,
|
||||
width: Number,
|
||||
sharp: String,
|
||||
},
|
||||
directives: { mask },
|
||||
|
||||
computed: {
|
||||
heightInput() {
|
||||
return ((this.width / 100) * 70) / 11;
|
||||
|
||||
@@ -22,6 +22,8 @@
|
||||
:data-document="dataIdentityDocument"
|
||||
:save-new-doc="saveNewDoc"
|
||||
:delete-doc="deleteDoc"
|
||||
:update-document="postUpdateIdentityDocument"
|
||||
:update-address="postUpdateAddress"
|
||||
)
|
||||
</template>
|
||||
|
||||
@@ -40,6 +42,7 @@ import ClientDetailInfoWrapper from "@/pages/clients/components/ClientDetailInfo
|
||||
import BaseButton from "@/components/base/BaseButton";
|
||||
import { fetchWrapper } from "@/shared/fetchWrapper";
|
||||
import { column } from "@/pages/clients/utils/tableConfig";
|
||||
|
||||
export default {
|
||||
name: "ClientsTableRow",
|
||||
components: {
|
||||
@@ -68,6 +71,8 @@ export default {
|
||||
prioritySettings: column.find((el) => el.name === "priority"),
|
||||
isOpenChange: false,
|
||||
dataClient: {},
|
||||
docId: "",
|
||||
addressId: "",
|
||||
};
|
||||
},
|
||||
props: {
|
||||
@@ -114,6 +119,7 @@ export default {
|
||||
priority: this.dataClient.priority,
|
||||
});
|
||||
},
|
||||
|
||||
postContactsClient() {
|
||||
let contacts = [...this.dataClient.contacts];
|
||||
if (
|
||||
@@ -155,7 +161,6 @@ export default {
|
||||
// deleteContacts.forEach((el) => this.postDeleteContact(el));
|
||||
updateContacts.forEach((el) => this.postUpdateContact(el));
|
||||
},
|
||||
|
||||
postCreateContact(contact) {
|
||||
fetchWrapper.post("general/contact/create/", {
|
||||
kind: contact.kind,
|
||||
@@ -173,14 +178,7 @@ export default {
|
||||
postDeleteContact(contact) {
|
||||
fetchWrapper.del(`general/contact/${contact.id}/delete/`);
|
||||
},
|
||||
postUpdateIdentityDocument() {
|
||||
fetchWrapper.post(
|
||||
`general/identity_document/${this.identity_document}/update/`,
|
||||
{
|
||||
series_number: this.dataIdentityDocument.numba,
|
||||
}
|
||||
);
|
||||
},
|
||||
|
||||
addNetwork(network) {
|
||||
this.dataClient.contacts.push(network);
|
||||
},
|
||||
@@ -209,23 +207,52 @@ export default {
|
||||
},
|
||||
saveClientDetail(data) {
|
||||
this.saveIdentityDocument(
|
||||
data.identity_documents.find((el) => el.kind === "Паспорт")
|
||||
data.identity_documents.find(
|
||||
(el) => el.kind === "Паспорт" || el.kind === "PASSPORT"
|
||||
)
|
||||
);
|
||||
this.saveAddress(data.address[0]);
|
||||
this.saveAttachments([...data.attachments]);
|
||||
},
|
||||
saveIdentityDocument(data) {
|
||||
this.dataIdentityDocument = {
|
||||
numba: data?.numba || "",
|
||||
numba:
|
||||
data?.series && data?.numba
|
||||
? data?.series + " " + data?.numba || ""
|
||||
: "",
|
||||
issued_by_org: data?.issued_by_org || "",
|
||||
issued_by_org_code: data?.issued_by_org_code || "",
|
||||
issued_by_date: data?.issued_by_date || "",
|
||||
issued_by_date:
|
||||
data?.issued_by_date.split("-").reverse().join(".") || "",
|
||||
};
|
||||
this.docId = data?.id;
|
||||
},
|
||||
postUpdateIdentityDocument() {
|
||||
console.log(this.dataIdentityDocument);
|
||||
fetchWrapper
|
||||
.post(`general/identity_document/${this.docId}/update/`, {
|
||||
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));
|
||||
},
|
||||
saveAddress(data) {
|
||||
this.dataAddress = {
|
||||
join_adress: data?.join_adress || "",
|
||||
};
|
||||
this.addressId = data?.id;
|
||||
},
|
||||
postUpdateAddress() {
|
||||
fetchWrapper
|
||||
.post(`general/address/${this.addressId}/update/`, {
|
||||
full_address: this.dataAddress.join_adress,
|
||||
})
|
||||
.then(() => this.fetchClientDetail(this.id));
|
||||
},
|
||||
saveAttachments(data) {
|
||||
this.dataAttachments = [...data];
|
||||
|
||||
Reference in New Issue
Block a user