WIP Добавил модалку для создания мед. карты

This commit is contained in:
DwCay
2022-12-26 20:47:07 +03:00
parent fa688e09e2
commit af29aadba6
2 changed files with 60 additions and 27 deletions

View File

@@ -1,6 +1,6 @@
<template lang="pug"> <template lang="pug">
.flex.flex-col.mb-1.mt-4 .flex.flex-col.mb-1.mt-4
span.font-medium.text-base.modal-text Вы действительно хотите удалить клиента? span.font-medium.text-base.modal-text {{ bodyText }}
.flex.gap-x-3.mt-6.font-semibold .flex.gap-x-3.mt-6.font-semibold
base-button( base-button(
outlined, outlined,
@@ -10,26 +10,22 @@
base-button( base-button(
outlined-red, outlined-red,
:size=40, :size=40,
@click="transmitDeleteClient" @click="clickConfirm"
) Удалить ) {{ confirmTitle }}
</template> </template>
<script> <script>
import BaseButton from "@/components/base/BaseButton.vue"; import BaseButton from "@/components/base/BaseButton.vue";
export default { export default {
name: "ClientTableDeleteModal", name: "ClientTableModal",
components: { components: {
BaseButton, BaseButton,
}, },
props: { props: {
confirmTitle: String,
bodyText: String,
closeModal: Function, closeModal: Function,
deletedClientId: String, clickConfirm: Function,
},
methods: {
transmitDeleteClient() {
this.$emit("delete-client", this.deletedClientId);
this.closeModal();
},
}, },
}; };
</script> </script>

View File

@@ -32,7 +32,7 @@
:update-data-client="updateDataClient", :update-data-client="updateDataClient",
:fetch-data-clients="fetchDataClients", :fetch-data-clients="fetchDataClients",
:fetch-created-client-data="fetchCreatedClientData", :fetch-created-client-data="fetchCreatedClientData",
:create-medical-card="createMedicalCard", :create-medical-card="medicalCardHandler",
:created-client-name="createdClientName", :created-client-name="createdClientName",
@delete-client="deleteClientHandler", @delete-client="deleteClientHandler",
@recover-client="clearDeletedRowId", @recover-client="clearDeletedRowId",
@@ -46,12 +46,15 @@
) )
base-modal( base-modal(
v-model="showModal", v-model="showModal",
title="Удалить клиента" :title="titleModal",
) )
client-table-delete-modal( client-table-modal(
v-for="modal in modalConfig"
v-show="modal.view"
:close-modal="closeModal", :close-modal="closeModal",
:deleted-client-id="deletedClientId", :click-confirm="modal.clickConfirm"
@delete-client="writeDeletedRowId" :confirm-title="modal.titleConfirm"
:body-text="modal.bodyText"
) )
</template> </template>
@@ -64,7 +67,7 @@ import ClientsTableCheckbox from "@/pages/clients/components/ClientsTableCheckbo
import BaseClientFormCreate from "@/components/base/BaseClientFormCreate"; import BaseClientFormCreate from "@/components/base/BaseClientFormCreate";
import ClientTablePagination from "./ClientTablePagination.vue"; import ClientTablePagination from "./ClientTablePagination.vue";
import BaseModal from "@/components/base/BaseModal.vue"; import BaseModal from "@/components/base/BaseModal.vue";
import ClientTableDeleteModal from "./ClientTableDeleteModal.vue"; import ClientTableModal from "./ClientTableModal.vue";
import FormCreateMedicalCard from "@/pages/clients/components/FormCreateMedicalCard"; import FormCreateMedicalCard from "@/pages/clients/components/FormCreateMedicalCard";
import BaseLoader from "@/components/Loader/BaseLoader.vue"; import BaseLoader from "@/components/Loader/BaseLoader.vue";
export default { export default {
@@ -77,7 +80,7 @@ export default {
BaseClientFormCreate, BaseClientFormCreate,
ClientTablePagination, ClientTablePagination,
BaseModal, BaseModal,
ClientTableDeleteModal, ClientTableModal,
FormCreateMedicalCard, FormCreateMedicalCard,
BaseLoader, BaseLoader,
}, },
@@ -91,6 +94,23 @@ export default {
data() { data() {
return { return {
modalConfig: [
{
name: "delete",
bodyText: "Вы действительно хотите удалить клиента?",
titleConfirm: "Удалить",
clickConfirm: this.writeDeletedRowId,
view: false,
},
{
name: "medical",
bodyText: "Медицинская карта отсутствует. Создать мед.карту?",
titleConfirm: "Создать",
clickConfirm: this.createMedicalCard,
view: false,
},
],
titleModal: "",
selectAll: false, selectAll: false,
marked: [], marked: [],
dataClients: [ dataClients: [
@@ -108,7 +128,7 @@ export default {
length: 0, length: 0,
}, },
showModal: false, showModal: false,
deletedClientId: "", clientId: "",
deletedRowId: "", deletedRowId: "",
clearingTextSearch: false, clearingTextSearch: false,
showMedicalCard: false, showMedicalCard: false,
@@ -233,21 +253,38 @@ export default {
openModal() { openModal() {
this.showModal = true; this.showModal = true;
}, },
createMedicalCard() { medicalCardHandler() {
this.showMedicalCard = true; this.modalConfig = this.modalConfig.map((el) => {
}, return el.name === "medical"
deleteClientHandler(id) { ? { ...el, view: true }
this.deletedClientId = id; : { ...el, view: false };
});
this.titleModal = "Создать мед.карту";
this.openModal(); this.openModal();
}, },
writeDeletedRowId(id) { createMedicalCard() {
this.deletedRowId = id; this.showMedicalCard = true;
this.closeModal();
},
deleteClientHandler(id) {
this.clientId = id;
this.modalConfig = this.modalConfig.map((el) => {
return el.name === "delete"
? { ...el, view: true }
: { ...el, view: false };
});
this.titleModal = "Удалить клиента";
this.openModal();
},
writeDeletedRowId() {
this.deletedRowId = this.clientId;
this.closeModal();
}, },
clearDeletedRowId() { clearDeletedRowId() {
this.deletedRowId = ""; this.deletedRowId = "";
}, },
clearDeletedClientId() { clearDeletedClientId() {
this.deletedClientId = ""; this.clientId = "";
}, },
changeClearingTextSearch() { changeClearingTextSearch() {
this.clearingTextSearch = false; this.clearingTextSearch = false;