Merge branch '9-reschedule-calendar-interval' into 'master'
Перенесла интервал календаря в параметры и починила запрос See merge request astra/astra-frontend!504
This commit is contained in:
@@ -70,17 +70,9 @@ export default {
|
|||||||
return this.pageSettings.find((el) => el.id === "settings");
|
return this.pageSettings.find((el) => el.id === "settings");
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
mounted() {
|
|
||||||
let href = window.location.href.slice(22);
|
|
||||||
this.pageSettings.forEach((el, index) => {
|
|
||||||
el.path === href.substr(href.lastIndexOf("#"))
|
|
||||||
? (this.pageSettings[index].active = true)
|
|
||||||
: (this.pageSettings[index].active = false);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
watch: {
|
watch: {
|
||||||
"$route.path"() {
|
"$route.path"(value) {
|
||||||
if (this.$router.currentRoute._value.fullPath === "/calendar") {
|
if (value === "/calendar") {
|
||||||
this.currentPageBorder = true;
|
this.currentPageBorder = true;
|
||||||
this.pageSettings.forEach((el) =>
|
this.pageSettings.forEach((el) =>
|
||||||
el.path === "#/calendar" ? (el.active = true) : (el.active = false)
|
el.path === "#/calendar" ? (el.active = true) : (el.active = false)
|
||||||
@@ -88,6 +80,13 @@ export default {
|
|||||||
} else this.currentPageBorder = false;
|
} else this.currentPageBorder = false;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
mounted() {
|
||||||
|
this.pageSettings.forEach((el, index) => {
|
||||||
|
el.path === "#" + this.$route.path
|
||||||
|
? (this.pageSettings[index].active = true)
|
||||||
|
: (this.pageSettings[index].active = false);
|
||||||
|
});
|
||||||
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ export default {
|
|||||||
computed: {
|
computed: {
|
||||||
...mapState({
|
...mapState({
|
||||||
selectedRecordId: (state) => state.calendar.selectedRecordId,
|
selectedRecordId: (state) => state.calendar.selectedRecordId,
|
||||||
|
selectedDates: (state) => state.calendar.selectedDates,
|
||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@@ -53,7 +54,12 @@ export default {
|
|||||||
},
|
},
|
||||||
...mapActions({
|
...mapActions({
|
||||||
changeSelectedRecordId: "changeSelectedRecordId",
|
changeSelectedRecordId: "changeSelectedRecordId",
|
||||||
|
changeSelectedDates: "changeSelectedDates",
|
||||||
|
getEvents: "getEvents",
|
||||||
}),
|
}),
|
||||||
|
convertDate(date) {
|
||||||
|
return moment(date?.split(".")?.reverse()?.join("-"));
|
||||||
|
},
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
selectedRecordId(value) {
|
selectedRecordId(value) {
|
||||||
@@ -62,6 +68,59 @@ export default {
|
|||||||
previewVisibility(value) {
|
previewVisibility(value) {
|
||||||
if (!value) this.changeSelectedRecordId(null);
|
if (!value) this.changeSelectedRecordId(null);
|
||||||
},
|
},
|
||||||
|
"$route.query": {
|
||||||
|
immediate: true,
|
||||||
|
deep: true,
|
||||||
|
handler(value) {
|
||||||
|
if (this.$route.path === "/calendar") {
|
||||||
|
if (!value?.start || !value?.end) {
|
||||||
|
this.changeSelectedDates({
|
||||||
|
from: moment().clone().startOf("week"),
|
||||||
|
to: moment().clone().endOf("week"),
|
||||||
|
});
|
||||||
|
this.$router.replace({
|
||||||
|
query: {
|
||||||
|
start: this.selectedDates?.from?.format("DD.MM.YYYY"),
|
||||||
|
end: this.selectedDates?.to?.format("DD.MM.YYYY"),
|
||||||
|
},
|
||||||
|
});
|
||||||
|
} else if (
|
||||||
|
value?.start !== this.selectedDates?.from?.format("DD.MM.YYYY") ||
|
||||||
|
value?.end !== this.selectedDates?.to?.format("DD.MM.YYYY")
|
||||||
|
)
|
||||||
|
this.changeSelectedDates({
|
||||||
|
from: this.convertDate(value?.start),
|
||||||
|
to: this.convertDate(value?.end),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
selectedDates: {
|
||||||
|
deep: true,
|
||||||
|
immediate: true,
|
||||||
|
handler(newVal, oldVal) {
|
||||||
|
if (
|
||||||
|
!newVal?.from?.isSame(oldVal?.from) ||
|
||||||
|
!newVal?.to?.isSame(oldVal?.to)
|
||||||
|
) {
|
||||||
|
this.getEvents();
|
||||||
|
if (
|
||||||
|
this.$route.query?.start !== newVal?.from?.format("DD.MM.YYYY") &&
|
||||||
|
this.$route.query?.end !== newVal?.to?.format("DD.MM.YYYY")
|
||||||
|
) {
|
||||||
|
this.$router.replace({
|
||||||
|
query: {
|
||||||
|
start: newVal?.from?.format("DD.MM.YYYY"),
|
||||||
|
end: newVal?.to?.format("DD.MM.YYYY"),
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
beforeUnmount() {
|
||||||
|
this.$route.query = {};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -111,15 +111,18 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
previousWeek() {
|
previousWeek() {
|
||||||
this.dates.from = this.dates.from.clone().subtract(1, "week");
|
const diff = this.dates?.to?.diff(this.dates?.from, "days") + 1;
|
||||||
this.dates.to = this.dates.to.clone().subtract(1, "week");
|
this.dates.from = this.dates.from.clone().subtract(diff, "day");
|
||||||
|
this.dates.to = this.dates.to.clone().subtract(diff, "day");
|
||||||
},
|
},
|
||||||
nextWeek() {
|
nextWeek() {
|
||||||
this.dates.from = this.dates.from.clone().add(1, "week");
|
const diff = this.dates?.to?.diff(this.dates?.from, "days") + 1;
|
||||||
this.dates.to = this.dates.to.clone().add(1, "week");
|
this.dates.from = this.dates.from.clone().add(diff, "day");
|
||||||
|
this.dates.to = this.dates.to.clone().add(diff, "day");
|
||||||
},
|
},
|
||||||
...mapActions({
|
...mapActions({
|
||||||
changeSelectedDates: "changeSelectedDates",
|
changeSelectedDates: "changeSelectedDates",
|
||||||
|
getEvents: "getEvents",
|
||||||
}),
|
}),
|
||||||
saveDatesChange() {
|
saveDatesChange() {
|
||||||
this.calendarVisibility = false;
|
this.calendarVisibility = false;
|
||||||
@@ -142,9 +145,17 @@ export default {
|
|||||||
this.changeSelectedDates(val);
|
this.changeSelectedDates(val);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
selectedDates: {
|
||||||
mounted() {
|
deep: true,
|
||||||
this.initializeDates();
|
immediate: true,
|
||||||
|
handler(val) {
|
||||||
|
if (
|
||||||
|
!val?.from.isSame(this.dates?.from) ||
|
||||||
|
!val?.to.isSame(this.dates?.to)
|
||||||
|
)
|
||||||
|
this.initializeDates();
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -239,7 +239,6 @@ export default {
|
|||||||
this.changeCurrentTime();
|
this.changeCurrentTime();
|
||||||
this.timeCoilInitialization();
|
this.timeCoilInitialization();
|
||||||
this.startTimer();
|
this.startTimer();
|
||||||
this.getEvents();
|
|
||||||
},
|
},
|
||||||
beforeUnmount() {
|
beforeUnmount() {
|
||||||
this.stopTimer();
|
this.stopTimer();
|
||||||
|
|||||||
@@ -25,8 +25,8 @@ const actions = {
|
|||||||
commit("setSelectedRecordId", id);
|
commit("setSelectedRecordId", id);
|
||||||
},
|
},
|
||||||
getEvents({ commit, state }) {
|
getEvents({ commit, state }) {
|
||||||
const start = state.selectedDates.from.toISOString();
|
const start = state.selectedDates.from.format("YYYY-MM-DDTHH:mm:ss");
|
||||||
const end = state.selectedDates.to.toISOString();
|
const end = state.selectedDates.to.format("YYYY-MM-DDTHH:mm:ss");
|
||||||
fetchWrapper.get(`events?start=${start}&end=${end}`).then((data) => {
|
fetchWrapper.get(`events?start=${start}&end=${end}`).then((data) => {
|
||||||
if (Array.isArray(data)) {
|
if (Array.isArray(data)) {
|
||||||
commit("setEvents", data);
|
commit("setEvents", data);
|
||||||
|
|||||||
Reference in New Issue
Block a user