[WIP] Исправил баг с отсутствием выбора города, фикс модального окна создания клиента
This commit is contained in:
@@ -1,9 +1,9 @@
|
|||||||
<template lang="pug">
|
<template lang="pug">
|
||||||
.flex.flex-col.w-full.h-full.gap-y-2
|
.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
|
.flex.flex-auto
|
||||||
the-sidebar
|
the-sidebar
|
||||||
router-view
|
router-view(@create-client="transmitOpenCreateClient", :is-close-header-form="isCloseHeaderForm")
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
@@ -13,5 +13,19 @@ import TheSidebar from "@/components/TheSidebar";
|
|||||||
export default {
|
export default {
|
||||||
name: "LoggedInLayout",
|
name: "LoggedInLayout",
|
||||||
components: { TheHeader, TheSidebar },
|
components: { TheHeader, TheSidebar },
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
isOpenCreateClient: false,
|
||||||
|
isCloseHeaderForm: true,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
transmitOpenCreateClient(value) {
|
||||||
|
this.isOpenCreateClient = value;
|
||||||
|
},
|
||||||
|
changeCloseHeaderForm(value) {
|
||||||
|
this.isCloseHeaderForm = value;
|
||||||
|
},
|
||||||
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<template lang="pug">
|
<template lang="pug">
|
||||||
.header-wrapper.relative.flex.justify-center.box-border.py-2.pl-4_75px.pr-6
|
.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
|
.flex.items-center.box-border.cursor-pointer.mr-auto
|
||||||
img.logo-img.mr-29_25px(src="@/assets/images/logo.svg", alt="Logo")
|
img.logo-img.mr-29_25px(src="@/assets/images/logo.svg", alt="Logo")
|
||||||
header-inputs
|
header-inputs
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
:size="40",
|
:size="40",
|
||||||
right-icon="icon-person",
|
right-icon="icon-person",
|
||||||
:icon-right-size="18",
|
:icon-right-size="18",
|
||||||
@click="isOpenCreate=true"
|
@click="openFormCreate"
|
||||||
)
|
)
|
||||||
button.header-buttons.flex.justify-center.items-center.mr-8.p-0(@click="logout")
|
button.header-buttons.flex.justify-center.items-center.mr-8.p-0(@click="logout")
|
||||||
.icon-bell.text-xxl
|
.icon-bell.text-xxl
|
||||||
@@ -34,6 +34,9 @@ import BaseClientFormCreate from "@/components/base/BaseClientFormCreate";
|
|||||||
export default {
|
export default {
|
||||||
name: "TheHeader",
|
name: "TheHeader",
|
||||||
components: { HeaderInputs, BaseAvatar, BaseButton, BaseClientFormCreate },
|
components: { HeaderInputs, BaseAvatar, BaseButton, BaseClientFormCreate },
|
||||||
|
props: {
|
||||||
|
isOpenCreateClient: Boolean,
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
avatarSrc: img,
|
avatarSrc: img,
|
||||||
@@ -41,12 +44,17 @@ export default {
|
|||||||
avatarSrc: chargePersonAvatar,
|
avatarSrc: chargePersonAvatar,
|
||||||
name: "Гордеев Николай Степанович",
|
name: "Гордеев Николай Степанович",
|
||||||
},
|
},
|
||||||
isOpenCreate: false,
|
isOpenFormCreate: false,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
closeFormCreate() {
|
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() {
|
logout() {
|
||||||
localStorage.clear();
|
localStorage.clear();
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template lang="pug">
|
<template lang="pug">
|
||||||
clients-wrapper
|
clients-wrapper(@create-client="transmitOpenCreateForm", :is-close-header-form="isCloseHeaderForm")
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
@@ -7,5 +7,13 @@ import ClientsWrapper from "@/pages/clients/components/ClientsWrapper";
|
|||||||
export default {
|
export default {
|
||||||
name: "TheClients",
|
name: "TheClients",
|
||||||
components: { ClientsWrapper },
|
components: { ClientsWrapper },
|
||||||
|
props: {
|
||||||
|
isCloseHeaderForm: Boolean,
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
transmitOpenCreateForm(value) {
|
||||||
|
this.$emit("create-client", value);
|
||||||
|
},
|
||||||
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<template lang="pug">
|
<template lang="pug">
|
||||||
.wrapper-table.relative.flex.flex-col.gap-y-8.px-6.py-6.h-full.w-full
|
.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")
|
clients-table-hat(:is-open-actions="marked.length" :open-form-create="openFormCreateClient")
|
||||||
.flex.flex-col.h-full.gap-y-2.table-container.w-full
|
.flex.flex-col.h-full.gap-y-2.table-container.w-full
|
||||||
clients-table-header(:check="selectedCheck" :is-check="selectAll")
|
clients-table-header(:check="selectedCheck" :is-check="selectAll")
|
||||||
@@ -32,20 +32,27 @@ export default {
|
|||||||
ClientsTableHeader,
|
ClientsTableHeader,
|
||||||
BaseClientFormCreate,
|
BaseClientFormCreate,
|
||||||
},
|
},
|
||||||
|
props: {
|
||||||
|
isCloseHeaderForm: Boolean,
|
||||||
|
},
|
||||||
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
isOpenFormCreate: false,
|
isOpenFormCreate: false,
|
||||||
selectAll: false,
|
selectAll: false,
|
||||||
marked: [],
|
marked: [],
|
||||||
dataClients: [],
|
dataClients: [],
|
||||||
|
isOpen: false,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
openFormCreateClient() {
|
openFormCreateClient() {
|
||||||
this.isOpenFormCreate = true;
|
this.isOpenFormCreate = true;
|
||||||
|
this.$emit("create-client", this.isOpenFormCreate);
|
||||||
},
|
},
|
||||||
closeFormCreateClient() {
|
closeFormCreateClient() {
|
||||||
this.isOpenFormCreate = false;
|
this.isOpenFormCreate = false;
|
||||||
|
this.$emit("create-client", this.isOpenFormCreate);
|
||||||
this.fetchDataClients();
|
this.fetchDataClients();
|
||||||
},
|
},
|
||||||
saveDataClients(data) {
|
saveDataClients(data) {
|
||||||
@@ -79,6 +86,16 @@ export default {
|
|||||||
mounted() {
|
mounted() {
|
||||||
this.fetchDataClients();
|
this.fetchDataClients();
|
||||||
},
|
},
|
||||||
|
watch: {
|
||||||
|
isCloseHeaderForm: {
|
||||||
|
immediate: true,
|
||||||
|
handler(newValue) {
|
||||||
|
if (newValue === false) {
|
||||||
|
this.closeFormCreateClient();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,10 @@
|
|||||||
<template lang="pug">
|
<template lang="pug">
|
||||||
.wrapper.flex.w-full.relative.mx-6
|
.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>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
@@ -8,9 +12,12 @@ import ClientsTable from "@/pages/clients/components/ClientsTable";
|
|||||||
export default {
|
export default {
|
||||||
name: "ClientsWrapper",
|
name: "ClientsWrapper",
|
||||||
components: { ClientsTable },
|
components: { ClientsTable },
|
||||||
|
props: {
|
||||||
|
isCloseHeaderForm: Boolean,
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
isOpenForm: false,
|
isOpenForm: true,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@@ -20,6 +27,9 @@ export default {
|
|||||||
closeFormCreateClient() {
|
closeFormCreateClient() {
|
||||||
this.isOpenForm = false;
|
this.isOpenForm = false;
|
||||||
},
|
},
|
||||||
|
transmitOpenCreateForm(value) {
|
||||||
|
this.$emit("create-client", value);
|
||||||
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -13,7 +13,14 @@
|
|||||||
.grid.grid-cols-2.gap-y-6.gap-x-4
|
.grid.grid-cols-2.gap-y-6.gap-x-4
|
||||||
.flex.flex-col(class="gap-y-1.5")
|
.flex.flex-col(class="gap-y-1.5")
|
||||||
span.text-sm.font-semibold Город
|
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")
|
.flex.flex-col(class="gap-y-1.5")
|
||||||
span.text-sm.font-semibold Область
|
span.text-sm.font-semibold Область
|
||||||
base-input.input-info(placeholder="Введите область")
|
base-input.input-info(placeholder="Введите область")
|
||||||
@@ -37,16 +44,27 @@
|
|||||||
<script>
|
<script>
|
||||||
import BaseButton from "@/components/base/BaseButton";
|
import BaseButton from "@/components/base/BaseButton";
|
||||||
import BaseInput from "@/components/base/BaseInput";
|
import BaseInput from "@/components/base/BaseInput";
|
||||||
|
import BaseSelect from "@/components/base/BaseSelect";
|
||||||
import { mask } from "vue-the-mask";
|
import { mask } from "vue-the-mask";
|
||||||
export default {
|
export default {
|
||||||
name: "FormCreateAddresses",
|
name: "FormCreateAddresses",
|
||||||
components: { BaseInput, BaseButton },
|
components: { BaseInput, BaseButton, BaseSelect },
|
||||||
props: {
|
props: {
|
||||||
addresses: Object,
|
addresses: Object,
|
||||||
saveClient: Function,
|
saveClient: Function,
|
||||||
saveFile: Function,
|
saveFile: Function,
|
||||||
},
|
},
|
||||||
directives: { mask },
|
directives: { mask },
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
currentCity: "",
|
||||||
|
cities: [
|
||||||
|
{ id: 1, label: "Владивосток" },
|
||||||
|
{ id: 2, label: "Москва" },
|
||||||
|
{ id: 3, label: "Тула" },
|
||||||
|
],
|
||||||
|
};
|
||||||
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user