Merge branch 'UC-212' into 'master'

WIP Настроила очистку форм

See merge request andrusyakka/urban-couscous!282
This commit is contained in:
Daria Golova
2023-03-21 08:58:02 +00:00
8 changed files with 60 additions and 87 deletions

View File

@@ -130,7 +130,7 @@ export default {
networksSettings: column.find((el) => el.name === "networks")?.settings, networksSettings: column.find((el) => el.name === "networks")?.settings,
prioritySettings: column.find((el) => el.name === "priority"), prioritySettings: column.find((el) => el.name === "priority"),
networkId: "", networkId: "",
infoClient: { defaultInfoClient: {
basic: { basic: {
full_name: "", full_name: "",
birth_date: null, birth_date: null,
@@ -190,6 +190,7 @@ export default {
}, },
], ],
}, },
infoClient: {},
forms: [ forms: [
{ {
title: "Основное", title: "Основное",
@@ -267,9 +268,6 @@ export default {
closePopup() { closePopup() {
this.showPopup = false; this.showPopup = false;
}, },
/*closeModal() {
!this.showModal ? this.closeForm() : null;
},*/
async createIdentityDocument(id) { async createIdentityDocument(id) {
let doc = null; let doc = null;
let filteredData = Object.keys( let filteredData = Object.keys(
@@ -370,6 +368,7 @@ export default {
this.writeCreatedClientId(result.id); this.writeCreatedClientId(result.id);
this.setUpdatedClients(); this.setUpdatedClients();
this.addSuccessNotification(); this.addSuccessNotification();
this.value = false;
}); });
} else { } else {
this.addErrorNotification( this.addErrorNotification(
@@ -393,10 +392,7 @@ export default {
this.infoClient.basic.priority = e.target.id; this.infoClient.basic.priority = e.target.id;
}, },
saveClient() { saveClient() {
if (this.checkFormFullness()) { if (this.checkFormFullness()) this.postNewClient();
this.postNewClient();
//this.closeForm();
}
}, },
changeOpenModal() { changeOpenModal() {
this.showModal = true; this.showModal = true;
@@ -483,6 +479,13 @@ export default {
this.closeAddImage(); this.closeAddImage();
} }
}, },
value(newValue) {
if (newValue === false)
this.infoClient = JSON.parse(JSON.stringify(this.defaultInfoClient));
},
},
mounted() {
this.infoClient = JSON.parse(JSON.stringify(this.defaultInfoClient));
}, },
}; };
</script> </script>

View File

@@ -15,25 +15,20 @@
:events-data="eventsData", :events-data="eventsData",
:sidebar-width="sidebarWidth", :sidebar-width="sidebarWidth",
:event-statuses="eventStatuses", :event-statuses="eventStatuses",
:change-form-was-closed="changeFormWasClosed",
@previous-date="switchPreviousDate", @previous-date="switchPreviousDate",
@next-date="switchNextDate", @next-date="switchNextDate",
@selected-layout="changeCalendarLayout", @selected-layout="changeCalendarLayout",
@reset-change-form="resetChangeFormState",
@selected-event="writeEventData", @selected-event="writeEventData",
@delete-event="openModal", @delete-event="openModal",
:open-form-create-event="openFormCreateEvent" :open-form-create-event="openFormCreateEvent"
) )
transition(name="form")
calendar-form-add-event( calendar-form-add-event(
v-model="isOpenForm" v-model="isOpenForm",
:close-form="closeFormCreateEvent",
:selected-event-data="selectedEvent", :selected-event-data="selectedEvent",
:event-statuses="eventStatuses", :event-statuses="eventStatuses",
:time-information="timeInformation", :time-information="timeInformation",
:current-date="currentDate", :current-date="currentDate",
@clear-selected-event-data="clearSelectedEvent", @clear-event-data="clearSelectedEvent"
@close-change-form="setChangeFormState"
) )
base-modal( base-modal(
v-model="showModal", v-model="showModal",
@@ -56,7 +51,7 @@ import CalendarSidebar from "./components/CalendarSidebar.vue";
import CalendarFormAddEvent from "./components/CalendarFormAddEvent.vue"; import CalendarFormAddEvent from "./components/CalendarFormAddEvent.vue";
import BaseModal from "@/components/base/BaseModal.vue"; import BaseModal from "@/components/base/BaseModal.vue";
import CalendarDeleteModal from "./components/CalendarDeleteModal.vue"; import CalendarDeleteModal from "./components/CalendarDeleteModal.vue";
import { statusesDictionary } from "@/pages/calendar/utils/statusesDictionary"; import { statusesConfig } from "@/pages/calendar/utils/statusesConfig";
export default { export default {
name: "TheCalendar", name: "TheCalendar",
@@ -85,8 +80,8 @@ export default {
schedulesData: [], schedulesData: [],
isOpenForm: false, isOpenForm: false,
WORKING_STATUS: "WORKS", WORKING_STATUS: "WORKS",
changeFormWasClosed: false, //changeFormWasClosed: false,
eventStatuses: statusesDictionary, eventStatuses: statusesConfig,
}; };
}, },
methods: { methods: {
@@ -148,18 +143,19 @@ export default {
this.isOpenForm = false; this.isOpenForm = false;
this.fetchEventsData(); this.fetchEventsData();
}, },
setChangeFormState() { /*setChangeFormState() {
this.changeFormWasClosed = true; this.changeFormWasClosed = true;
}, },
resetChangeFormState() { resetChangeFormState() {
this.changeFormWasClosed = false; this.changeFormWasClosed = false;
}, },*/
writeEventData(eventData) { writeEventData(eventData) {
this.selectedEvent = eventData; this.selectedEvent = eventData;
this.openFormCreateEvent(); this.openFormCreateEvent();
}, },
clearSelectedEvent() { clearSelectedEvent() {
this.selectedEvent = {}; this.selectedEvent = {};
this.closeFormCreateEvent();
}, },
openModal(eventData) { openModal(eventData) {
this.selectedEvent = eventData; this.selectedEvent = eventData;
@@ -172,7 +168,7 @@ export default {
watch: { watch: {
showModal: function () { showModal: function () {
if (this.showModal === false) { if (this.showModal === false) {
this.setChangeFormState(); //this.setChangeFormState();
this.clearSelectedEvent(); this.clearSelectedEvent();
} }
}, },
@@ -191,23 +187,4 @@ export default {
<style lang="sass" scoped> <style lang="sass" scoped>
.calendar-container .calendar-container
width: calc(100vw - 80px) width: calc(100vw - 80px)
.form-enter-from
opacity: 0
transform: translateY(300px)
pointer-events: none
.form-enter-active
transition: 0.5s ease
.form-leave-to
opacity: 0
transform: translateY(300px)
pointer-events: none
.form-leave-active
transition: 0.5s ease
.form-move
transition: 0.5s ease
</style> </style>

View File

@@ -22,9 +22,7 @@
:ownerEvent="event", :ownerEvent="event",
:event-statuses="eventStatuses", :event-statuses="eventStatuses",
:style="eventCardPosition(event.start, event.end)", :style="eventCardPosition(event.start, event.end)",
:change-form-was-closed="changeFormWasClosed",
@selected-event="transmitEventData", @selected-event="transmitEventData",
@reset-change-form="transmitResetChangeForm",
@delete-event="transmitDeleteEvent", @delete-event="transmitDeleteEvent",
:schedule-body-ref="scheduleBodyRef", :schedule-body-ref="scheduleBodyRef",
) )
@@ -52,7 +50,7 @@ export default {
dayEndTime: Number, dayEndTime: Number,
dayStartTime: Number, dayStartTime: Number,
eventStatuses: Array, eventStatuses: Array,
changeFormWasClosed: Boolean, //changeFormWasClosed: Boolean,
scheduleBodyRef: Node, scheduleBodyRef: Node,
url: String, url: String,
openFormCreateEvent: Function, openFormCreateEvent: Function,
@@ -165,9 +163,9 @@ export default {
transmitEventData(eventData) { transmitEventData(eventData) {
this.$emit("selected-event", eventData); this.$emit("selected-event", eventData);
}, },
transmitResetChangeForm() { /*transmitResetChangeForm() {
this.$emit("reset-change-form"); this.$emit("reset-change-form");
}, },*/
transmitDeleteEvent(eventData) { transmitDeleteEvent(eventData) {
this.$emit("delete-event", eventData); this.$emit("delete-event", eventData);
}, },

View File

@@ -40,7 +40,7 @@ export default {
name: "CalendarEventCard", name: "CalendarEventCard",
components: { CalendarEventDescriptionCard }, components: { CalendarEventDescriptionCard },
props: { props: {
changeFormWasClosed: Boolean, //changeFormWasClosed: Boolean,
ownerEvent: Object, ownerEvent: Object,
eventStatuses: { eventStatuses: {
type: Array, type: Array,
@@ -244,7 +244,7 @@ export default {
this.setDefaultTheme(); this.setDefaultTheme();
}, },
}, },
watch: { /*watch: {
changeFormWasClosed: { changeFormWasClosed: {
immediate: true, immediate: true,
handler(newValue) { handler(newValue) {
@@ -254,7 +254,7 @@ export default {
} }
}, },
}, },
}, },*/
}; };
</script> </script>

View File

@@ -26,7 +26,7 @@
</template> </template>
<script> <script>
import { statusesDictionary } from "@/pages/calendar/utils/statusesDictionary"; import { statusesConfig } from "@/pages/calendar/utils/statusesConfig";
export default { export default {
name: "CalendarEventDescriptionCard", name: "CalendarEventDescriptionCard",
@@ -48,14 +48,12 @@ export default {
return { return {
isCertainType: true, isCertainType: true,
position: {}, position: {},
calendarConfig: statusesDictionary,
}; };
}, },
computed: { computed: {
status() { status() {
return this.ownerEvent.status return this.ownerEvent.status
? this.calendarConfig.find((e) => e.value === this.ownerEvent.status) ? statusesConfig.find((e) => e.value === this.ownerEvent.status).label
.label
: ""; : "";
}, },
typeColor() { typeColor() {

View File

@@ -82,7 +82,7 @@ import BaseSelect from "@/components/base/BaseSelect.vue";
import * as moment from "moment/moment"; import * as moment from "moment/moment";
import BaseModal from "@/components/base/BaseModal.vue"; import BaseModal from "@/components/base/BaseModal.vue";
import { v_model } from "@/shared/mixins/v-model"; import { v_model } from "@/shared/mixins/v-model";
import { statusesDictionary } from "@/pages/calendar/utils/statusesDictionary"; import { statusesConfig } from "@/pages/calendar/utils/statusesConfig";
export default { export default {
name: "FormChangeEvent", name: "FormChangeEvent",
@@ -93,21 +93,16 @@ export default {
TheNotificationProvider, TheNotificationProvider,
}, },
mixins: [v_model], mixins: [v_model],
emits: ["clear-selected-event-data", "close-change-form"], //emits: ["clear-selected-event-data", "close-change-form"],
emits: ["clear-event-data"],
props: { props: {
closeForm: Function, //closeForm: Function,
selectedEventData: { selectedEventData: {
type: Object, type: Object,
default() { default() {
return {}; return {};
}, },
}, },
eventStatuses: {
type: Array,
default() {
return [];
},
},
timeInformation: { timeInformation: {
type: Object, type: Object,
default() { default() {
@@ -134,11 +129,10 @@ export default {
eventDate: Date, eventDate: Date,
status: { label: "Планируется прием", id: null }, status: { label: "Планируется прием", id: null },
id: null, id: null,
ifClearedForm: true, //ifClearedForm: true,
membersData: [], membersData: [],
ownersData: [], ownersData: [],
WORKING_STATUS: "WORKS", WORKING_STATUS: "WORKS",
calendarConfig: statusesDictionary,
}; };
}, },
computed: { computed: {
@@ -178,7 +172,7 @@ export default {
}, },
statusesList() { statusesList() {
let filteredArray = []; let filteredArray = [];
this.calendarConfig.forEach((elem) => { statusesConfig.forEach((elem) => {
filteredArray.push({ filteredArray.push({
id: elem.id, id: elem.id,
label: elem.label, label: elem.label,
@@ -290,22 +284,22 @@ export default {
eventStatus() { eventStatus() {
return this.selectedEventData.status return this.selectedEventData.status
? { ? {
label: this.calendarConfig.find( label: statusesConfig.find(
(e) => e.value === this.selectedEventData.status (e) => e.value === this.selectedEventData.status
).label, ).label,
id: this.calendarConfig.find( id: statusesConfig.find(
(e) => e.value === this.selectedEventData.status (e) => e.value === this.selectedEventData.status
).id, ).id,
} }
: { : {
label: this.calendarConfig.find((e) => e.value === "PLANNED").id, label: statusesConfig.find((e) => e.value === "PLANNED").label,
id: 0, id: 0,
}; };
}, },
}, },
methods: { methods: {
findStatus(value) { findStatus(value) {
return this.calendarConfig.find((e) => e.label === value)?.value; return statusesConfig.find((e) => e.label === value)?.value;
}, },
checkTimeLimits(eventTime, scheduleTime, timeType) { checkTimeLimits(eventTime, scheduleTime, timeType) {
if (timeType === "start") if (timeType === "start")
@@ -402,6 +396,7 @@ export default {
}; };
await this.postCreateEvent(this.eventData); await this.postCreateEvent(this.eventData);
this.eventData = {}; this.eventData = {};
this.value = false;
}, },
async updateEventData() { async updateEventData() {
if (!this.checkTime()) return; if (!this.checkTime()) return;
@@ -423,17 +418,18 @@ export default {
}; };
await this.postUpdateEvent(this.id, this.eventData); await this.postUpdateEvent(this.id, this.eventData);
this.eventData = {}; this.eventData = {};
this.value = false;
} else } else
this.addErrorNotification( this.addErrorNotification(
"Событие не может быть изменено", "Событие не может быть изменено",
"Клиент был удален" "Клиент был удален"
); );
}, },
clearForm() { //clearForm() {
if (this.selectedEventData.id) this.$emit("close-change-form"); // if (this.selectedEventData.id) this.$emit("close-change-form");
this.$emit("clear-selected-event-data"); // this.$emit("clear-selected-event-data");
this.closeForm(); // this.closeForm();
}, //},
mergeDate(eventDate, time) { mergeDate(eventDate, time) {
let parseTime = time.split(":"); let parseTime = time.split(":");
return moment(eventDate.setHours(parseTime[0], parseTime[1]), 0).format( return moment(eventDate.setHours(parseTime[0], parseTime[1]), 0).format(
@@ -467,7 +463,7 @@ export default {
); );
} else { } else {
this.addSuccessNotification("Событие успешно создано"); this.addSuccessNotification("Событие успешно создано");
this.clearForm(); //this.clearForm();
} }
}, },
async postUpdateEvent(id, event) { async postUpdateEvent(id, event) {
@@ -482,7 +478,7 @@ export default {
); );
} else { } else {
this.addSuccessNotification("Изменения успешно сохранены"); this.addSuccessNotification("Изменения успешно сохранены");
this.clearForm(); //this.clearForm();
} }
}, },
personId(object, field) { personId(object, field) {
@@ -602,6 +598,9 @@ export default {
} }
}, },
}, },
value(newValue) {
if (newValue === false) this.$emit("clear-event-data");
},
}, },
mounted() { mounted() {
this.fetchOwnersData(); this.fetchOwnersData();

View File

@@ -26,9 +26,7 @@
:day-end-time="validateEndTime", :day-end-time="validateEndTime",
:style="columnSize", :style="columnSize",
:event-statuses="eventStatuses", :event-statuses="eventStatuses",
:change-form-was-closed="changeFormWasClosed",
@selected-event="transmitEventData", @selected-event="transmitEventData",
@reset-change-form="transmitResetChangeForm",
@delete-event="transmitDeleteEvent", @delete-event="transmitDeleteEvent",
:schedule-body-ref="$refs.scheduleBody", :schedule-body-ref="$refs.scheduleBody",
:open-form-create-event="openFormCreateEvent", :open-form-create-event="openFormCreateEvent",
@@ -74,7 +72,7 @@ export default {
props: { props: {
openFormCreateEvent: Function, openFormCreateEvent: Function,
url: String, url: String,
changeFormWasClosed: Boolean, //changeFormWasClosed: Boolean,
currentDate: { currentDate: {
type: Object, type: Object,
default() { default() {
@@ -314,9 +312,9 @@ export default {
}) })
); );
}, },
transmitResetChangeForm() { /*transmitResetChangeForm() {
this.$emit("reset-change-form"); this.$emit("reset-change-form");
}, },*/
transmitEventData(eventData) { transmitEventData(eventData) {
this.$emit("selected-event", eventData); this.$emit("selected-event", eventData);
}, },

View File

@@ -1,4 +1,4 @@
export const statusesDictionary = [ export const statusesConfig = [
{ {
id: 0, id: 0,
label: "Планируется прием", label: "Планируется прием",