fix(FE): show time comp funcs
This commit is contained in:
parent
87daec73d0
commit
150f1b5f91
1 changed files with 8 additions and 18 deletions
|
@ -2,7 +2,8 @@
|
||||||
import {onMounted, type PropType} from "vue";
|
import {onMounted, type PropType} from "vue";
|
||||||
import { ref, watch } from 'vue';
|
import { ref, watch } from 'vue';
|
||||||
import {getShowInstances} from "@models/show/showInstance.ts";
|
import {getShowInstances} from "@models/show/showInstance.ts";
|
||||||
|
import {getHoursMinutesFromString, getTimeDiff} from "@/helpers/DateFormatter.ts";
|
||||||
|
// Emits, props and models
|
||||||
const emits = defineEmits(['update:duration'])
|
const emits = defineEmits(['update:duration'])
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
|
@ -25,37 +26,26 @@ const props = defineProps({
|
||||||
})
|
})
|
||||||
|
|
||||||
const startTime = defineModel({default: '08:00'});
|
const startTime = defineModel({default: '08:00'});
|
||||||
|
|
||||||
|
// Data
|
||||||
const duration = ref('0:0');
|
const duration = ref('0:0');
|
||||||
const endTime = ref('');
|
const endTime = ref('');
|
||||||
const startMenu = ref(false);
|
const startMenu = ref(false);
|
||||||
const endMenu = ref(false);
|
const endMenu = ref(false);
|
||||||
|
|
||||||
|
|
||||||
const getDuration = (startTime: Date, endTime: Date) => {
|
// Func
|
||||||
const diffInMilliseconds = Math.abs(startTime.getTime() - endTime.getTime());
|
|
||||||
const remainingHours = Math.floor((diffInMilliseconds % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
|
|
||||||
const remainingMinutes = Math.floor((diffInMilliseconds % (1000 * 60 * 60)) / (1000 * 60));
|
|
||||||
|
|
||||||
return `${remainingHours}:${remainingMinutes}`;
|
|
||||||
};
|
|
||||||
|
|
||||||
const getHoursMinutes = (timeString: string) => {
|
|
||||||
const [ h, m ] = timeString.split(":");
|
|
||||||
const ms = new Date().setHours(h,m);
|
|
||||||
return new Date(ms)
|
|
||||||
};
|
|
||||||
|
|
||||||
const checkTime = () => {
|
const checkTime = () => {
|
||||||
if (startTime.value && endTime) {
|
if (startTime.value && endTime) {
|
||||||
const start = getHoursMinutes(startTime.value);
|
const start: Date = getHoursMinutesFromString(startTime.value);
|
||||||
let end = getHoursMinutes(endTime.value);
|
let end: Date = getHoursMinutesFromString(endTime.value);
|
||||||
|
|
||||||
if (end.getTime() <= start.getTime()) {
|
if (end.getTime() <= start.getTime()) {
|
||||||
end = new Date(start);
|
end = new Date(start);
|
||||||
end.setMinutes(start.getMinutes() + 60);
|
end.setMinutes(start.getMinutes() + 60);
|
||||||
endTime.value = end.toLocaleTimeString('en-US', { hour12: false, hour: '2-digit', minute: '2-digit' });;
|
endTime.value = end.toLocaleTimeString('en-US', { hour12: false, hour: '2-digit', minute: '2-digit' });;
|
||||||
}
|
}
|
||||||
duration.value = getDuration(start, end);
|
duration.value = getTimeDiff(start, end);
|
||||||
emits('update:duration', duration.value);
|
emits('update:duration', duration.value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue