[WIP] Исправил баг с отсутствием выбора города, фикс модального окна создания клиента

This commit is contained in:
megavrilinvv
2022-11-16 17:12:55 +03:00
parent c1010ce60f
commit 49ef6e22c3
6 changed files with 87 additions and 12 deletions

View File

@@ -1,9 +1,9 @@
<template lang="pug">
.flex.flex-col.w-full.h-full.gap-y-2
the-header
the-header(:is-open-create-client="isOpenCreateClient", @is-close-header-form="changeCloseHeaderForm")
.flex.flex-auto
the-sidebar
router-view
router-view(@create-client="transmitOpenCreateClient", :is-close-header-form="isCloseHeaderForm")
</template>
<script>
@@ -13,5 +13,19 @@ import TheSidebar from "@/components/TheSidebar";
export default {
name: "LoggedInLayout",
components: { TheHeader, TheSidebar },
data() {
return {
isOpenCreateClient: false,
isCloseHeaderForm: true,
};
},
methods: {
transmitOpenCreateClient(value) {
this.isOpenCreateClient = value;
},
changeCloseHeaderForm(value) {
this.isCloseHeaderForm = value;
},
},
};
</script>

View File

@@ -1,6 +1,6 @@
<template lang="pug">
.header-wrapper.relative.flex.justify-center.box-border.py-2.pl-4_75px.pr-6
base-client-form-create(v-if="isOpenCreate", @blure="isOpenCreate=false", :close-form="closeFormCreate")
base-client-form-create(v-if="this.isOpenCreateClient || this.isOpenFormCreate", :close-form="closeFormCreate")
.flex.items-center.box-border.cursor-pointer.mr-auto
img.logo-img.mr-29_25px(src="@/assets/images/logo.svg", alt="Logo")
header-inputs
@@ -13,7 +13,7 @@
:size="40",
right-icon="icon-person",
:icon-right-size="18",
@click="isOpenCreate=true"
@click="openFormCreate"
)
button.header-buttons.flex.justify-center.items-center.mr-8.p-0(@click="logout")
.icon-bell.text-xxl
@@ -34,6 +34,9 @@ import BaseClientFormCreate from "@/components/base/BaseClientFormCreate";
export default {
name: "TheHeader",
components: { HeaderInputs, BaseAvatar, BaseButton, BaseClientFormCreate },
props: {
isOpenCreateClient: Boolean,
},
data() {
return {
avatarSrc: img,
@@ -41,12 +44,17 @@ export default {
avatarSrc: chargePersonAvatar,
name: "Гордеев Николай Степанович",
},
isOpenCreate: false,
isOpenFormCreate: false,
};
},
methods: {
closeFormCreate() {
this.isOpenCreate = false;
this.isOpenFormCreate = false;
this.$emit("is-close-header-form", this.isOpenFormCreate);
},
openFormCreate() {
this.isOpenFormCreate = true;
this.$emit("is-close-header-from", this.isOpenFormCreate);
},
logout() {
localStorage.clear();

View File

@@ -1,5 +1,5 @@
<template lang="pug">
clients-wrapper
clients-wrapper(@create-client="transmitOpenCreateForm", :is-close-header-form="isCloseHeaderForm")
</template>
<script>
@@ -7,5 +7,13 @@ import ClientsWrapper from "@/pages/clients/components/ClientsWrapper";
export default {
name: "TheClients",
components: { ClientsWrapper },
props: {
isCloseHeaderForm: Boolean,
},
methods: {
transmitOpenCreateForm(value) {
this.$emit("create-client", value);
},
},
};
</script>

View File

@@ -1,6 +1,6 @@
<template lang="pug">
.wrapper-table.relative.flex.flex-col.gap-y-8.px-6.py-6.h-full.w-full
base-client-form-create(v-if="isOpenFormCreate" :close-form="closeFormCreateClient")
//- base-client-form-create(v-if="isOpenFormCreate" :close-form="closeFormCreateClient")
clients-table-hat(:is-open-actions="marked.length" :open-form-create="openFormCreateClient")
.flex.flex-col.h-full.gap-y-2.table-container.w-full
clients-table-header(:check="selectedCheck" :is-check="selectAll")
@@ -32,20 +32,27 @@ export default {
ClientsTableHeader,
BaseClientFormCreate,
},
props: {
isCloseHeaderForm: Boolean,
},
data() {
return {
isOpenFormCreate: false,
selectAll: false,
marked: [],
dataClients: [],
isOpen: false,
};
},
methods: {
openFormCreateClient() {
this.isOpenFormCreate = true;
this.$emit("create-client", this.isOpenFormCreate);
},
closeFormCreateClient() {
this.isOpenFormCreate = false;
this.$emit("create-client", this.isOpenFormCreate);
this.fetchDataClients();
},
saveDataClients(data) {
@@ -79,6 +86,16 @@ export default {
mounted() {
this.fetchDataClients();
},
watch: {
isCloseHeaderForm: {
immediate: true,
handler(newValue) {
if (newValue === false) {
this.closeFormCreateClient();
}
},
},
},
};
</script>

View File

@@ -1,6 +1,10 @@
<template lang="pug">
.wrapper.flex.w-full.relative.mx-6
clients-table(:open-form-create="openFormCreateClient")
clients-table(
:open-form-create="openFormCreateClient",
@create-client="transmitOpenCreateForm",
:is-close-header-form="isCloseHeaderForm"
)
</template>
<script>
@@ -8,9 +12,12 @@ import ClientsTable from "@/pages/clients/components/ClientsTable";
export default {
name: "ClientsWrapper",
components: { ClientsTable },
props: {
isCloseHeaderForm: Boolean,
},
data() {
return {
isOpenForm: false,
isOpenForm: true,
};
},
methods: {
@@ -20,6 +27,9 @@ export default {
closeFormCreateClient() {
this.isOpenForm = false;
},
transmitOpenCreateForm(value) {
this.$emit("create-client", value);
},
},
};
</script>

View File

@@ -13,7 +13,14 @@
.grid.grid-cols-2.gap-y-6.gap-x-4
.flex.flex-col(class="gap-y-1.5")
span.text-sm.font-semibold Город
base-input.input-info(placeholder="Выберите город")
base-input.input-info(placeholder="Выберите город", :items="cities")
.flex.flex-col(class="gap-y-1.5")
.text-info.text-xxs.font-semibold Город
base-select(
placeholder="Выберите город",
:items="cities",
v-model="currentCity"
)
.flex.flex-col(class="gap-y-1.5")
span.text-sm.font-semibold Область
base-input.input-info(placeholder="Введите область")
@@ -37,16 +44,27 @@
<script>
import BaseButton from "@/components/base/BaseButton";
import BaseInput from "@/components/base/BaseInput";
import BaseSelect from "@/components/base/BaseSelect";
import { mask } from "vue-the-mask";
export default {
name: "FormCreateAddresses",
components: { BaseInput, BaseButton },
components: { BaseInput, BaseButton, BaseSelect },
props: {
addresses: Object,
saveClient: Function,
saveFile: Function,
},
directives: { mask },
data() {
return {
currentCity: "",
cities: [
{ id: 1, label: "Владивосток" },
{ id: 2, label: "Москва" },
{ id: 3, label: "Тула" },
],
};
},
};
</script>