[WIP] Изменил конфиг, исправил отображение статусов в селекте календаря
This commit is contained in:
@@ -56,7 +56,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 { calendarConfig } from "@/pages/calendar/utils/calendarConfig";
|
import { statusesDictionary } from "@/pages/calendar/utils/statusesDictionary";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "TheCalendar",
|
name: "TheCalendar",
|
||||||
@@ -86,7 +86,7 @@ export default {
|
|||||||
isOpenForm: false,
|
isOpenForm: false,
|
||||||
WORKING_STATUS: "WORKS",
|
WORKING_STATUS: "WORKS",
|
||||||
changeFormWasClosed: false,
|
changeFormWasClosed: false,
|
||||||
eventStatuses: calendarConfig,
|
eventStatuses: statusesDictionary,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|||||||
@@ -26,7 +26,8 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { statusesDictionary } from "../utils/statusesDictionary.js";
|
import { statusesDictionary } from "@/pages/calendar/utils/statusesDictionary";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "CalendarEventDescriptionCard",
|
name: "CalendarEventDescriptionCard",
|
||||||
props: {
|
props: {
|
||||||
@@ -47,12 +48,14 @@ export default {
|
|||||||
return {
|
return {
|
||||||
isCertainType: true,
|
isCertainType: true,
|
||||||
position: {},
|
position: {},
|
||||||
|
calendarConfig: statusesDictionary,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
status() {
|
status() {
|
||||||
return this.ownerEvent.status
|
return this.ownerEvent.status
|
||||||
? statusesDictionary[this.ownerEvent.status]
|
? this.calendarConfig.find((e) => e.value === this.ownerEvent.status)
|
||||||
|
.label
|
||||||
: "";
|
: "";
|
||||||
},
|
},
|
||||||
typeColor() {
|
typeColor() {
|
||||||
|
|||||||
@@ -1,11 +1,16 @@
|
|||||||
<template lang="pug">
|
<template lang="pug">
|
||||||
base-modal(v-model="value", :title="!selectedEventData.id ? 'Запись на прием' : 'Изменение записи'", draggable, hide-overlay )
|
base-modal(
|
||||||
|
v-model="value",
|
||||||
|
:title="!selectedEventData.id ? 'Запись на прием' : 'Изменение записи'",
|
||||||
|
draggable,
|
||||||
|
hide-overlay
|
||||||
|
)
|
||||||
.event-form.flex.flex-col.gap-y-6.pt-8
|
.event-form.flex.flex-col.gap-y-6.pt-8
|
||||||
.flex.flex-col.gap-y-8
|
.flex.flex-col.gap-y-8
|
||||||
base-select(
|
base-select(
|
||||||
v-if="selectedEventData.id"
|
v-if="selectedEventData.id"
|
||||||
v-model="status",
|
v-model="status",
|
||||||
:items="eventStatuses",
|
:items="statusesList",
|
||||||
label="Статус приема"
|
label="Статус приема"
|
||||||
)
|
)
|
||||||
base-input(
|
base-input(
|
||||||
@@ -75,9 +80,9 @@ import { fetchWrapper } from "@/shared/fetchWrapper.js";
|
|||||||
import BaseInput from "@/components/base/BaseInput.vue";
|
import BaseInput from "@/components/base/BaseInput.vue";
|
||||||
import BaseSelect from "@/components/base/BaseSelect.vue";
|
import BaseSelect from "@/components/base/BaseSelect.vue";
|
||||||
import * as moment from "moment/moment";
|
import * as moment from "moment/moment";
|
||||||
import { statusesDictionary } from "../utils/statusesDictionary.js";
|
|
||||||
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";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "FormChangeEvent",
|
name: "FormChangeEvent",
|
||||||
@@ -127,12 +132,13 @@ export default {
|
|||||||
members: {},
|
members: {},
|
||||||
employees: {},
|
employees: {},
|
||||||
eventDate: Date,
|
eventDate: Date,
|
||||||
status: {},
|
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: {
|
||||||
@@ -170,6 +176,16 @@ export default {
|
|||||||
}
|
}
|
||||||
return [];
|
return [];
|
||||||
},
|
},
|
||||||
|
statusesList() {
|
||||||
|
let filteredArray = [];
|
||||||
|
this.calendarConfig.forEach((elem) => {
|
||||||
|
filteredArray.push({
|
||||||
|
id: elem.id,
|
||||||
|
label: elem.label,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
return filteredArray;
|
||||||
|
},
|
||||||
disabledCreateButton() {
|
disabledCreateButton() {
|
||||||
if (
|
if (
|
||||||
this.eventDate &&
|
this.eventDate &&
|
||||||
@@ -267,26 +283,29 @@ export default {
|
|||||||
role: this.MEMBER_TYPE,
|
role: this.MEMBER_TYPE,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
|
eventId() {
|
||||||
|
return this.selectedEventData.id ? this.selectedEventData.id : "";
|
||||||
|
},
|
||||||
eventStatus() {
|
eventStatus() {
|
||||||
return this.selectedEventData.status
|
return this.selectedEventData.status
|
||||||
? {
|
? {
|
||||||
label: statusesDictionary[this.selectedEventData.status],
|
label: this.calendarConfig.find(
|
||||||
id: null,
|
(e) => e.value === this.selectedEventData.status
|
||||||
|
).label,
|
||||||
|
id: this.calendarConfig.find(
|
||||||
|
(e) => e.value === this.selectedEventData.status
|
||||||
|
).id,
|
||||||
}
|
}
|
||||||
: {
|
: {
|
||||||
label: statusesDictionary["PLANNED"],
|
label: this.calendarConfig.find((e) => e.value === "PLANNED").id,
|
||||||
id: null,
|
id: 0,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
eventId() {
|
|
||||||
return this.selectedEventData.id ? this.selectedEventData.id : "";
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
findStatus(value) {
|
findStatus(value) {
|
||||||
return Object.keys(statusesDictionary).find(
|
return this.calendarConfig.find((e) => e.label === value)?.value;
|
||||||
(key) => statusesDictionary[key] === value
|
|
||||||
);
|
|
||||||
},
|
},
|
||||||
checkTimeLimits(eventTime, scheduleTime, timeType) {
|
checkTimeLimits(eventTime, scheduleTime, timeType) {
|
||||||
if (timeType === "start")
|
if (timeType === "start")
|
||||||
|
|||||||
@@ -1,44 +0,0 @@
|
|||||||
export const calendarConfig = [
|
|
||||||
{
|
|
||||||
id: 0,
|
|
||||||
label: "Планируется прием",
|
|
||||||
value: "PLANNED",
|
|
||||||
color: "var(--default-white)",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
label: "Отменил",
|
|
||||||
value: "CANCELED",
|
|
||||||
color: "var(--bg-event-grey-color)",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 2,
|
|
||||||
label: "Ожидается прием",
|
|
||||||
value: "EXPECTED",
|
|
||||||
color: "var(--bg-event-yellow-color)",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 3,
|
|
||||||
label: "Опаздывает",
|
|
||||||
value: "LATE",
|
|
||||||
color: "var(--bg-event-orange-color)",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 4,
|
|
||||||
label: "Идет прием",
|
|
||||||
value: "RECEPTION",
|
|
||||||
color: "var(--bg-event-blue-color)",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 5,
|
|
||||||
label: "Прием завершен",
|
|
||||||
value: "COMPLETED",
|
|
||||||
color: "var(--bg-event-green-color)",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 6,
|
|
||||||
label: "Не пришел",
|
|
||||||
value: "DID_NOT_COME",
|
|
||||||
color: "var(--bg-event-red-color)",
|
|
||||||
},
|
|
||||||
];
|
|
||||||
@@ -1,9 +1,44 @@
|
|||||||
export const statusesDictionary = {
|
export const statusesDictionary = [
|
||||||
PLANNED: "Планируется прием",
|
{
|
||||||
EXPECTED: "Ожидается прием",
|
id: 0,
|
||||||
RECEPTION: "Идет прием",
|
label: "Планируется прием",
|
||||||
COMPLETED: "Прием завершен",
|
value: "PLANNED",
|
||||||
DID_NOT_COME: "Не пришел",
|
color: "var(--default-white)",
|
||||||
LATE: "Опаздывает",
|
},
|
||||||
CANCELED: "Отменил",
|
{
|
||||||
};
|
id: 1,
|
||||||
|
label: "Отменил",
|
||||||
|
value: "CANCELED",
|
||||||
|
color: "var(--bg-event-grey-color)",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 2,
|
||||||
|
label: "Ожидается прием",
|
||||||
|
value: "EXPECTED",
|
||||||
|
color: "var(--bg-event-yellow-color)",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 3,
|
||||||
|
label: "Опаздывает",
|
||||||
|
value: "LATE",
|
||||||
|
color: "var(--bg-event-orange-color)",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 4,
|
||||||
|
label: "Идет прием",
|
||||||
|
value: "RECEPTION",
|
||||||
|
color: "var(--bg-event-blue-color)",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 5,
|
||||||
|
label: "Прием завершен",
|
||||||
|
value: "COMPLETED",
|
||||||
|
color: "var(--bg-event-green-color)",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 6,
|
||||||
|
label: "Не пришел",
|
||||||
|
value: "DID_NOT_COME",
|
||||||
|
color: "var(--bg-event-red-color)",
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|||||||
Reference in New Issue
Block a user