|
|
|
@@ -17,11 +17,10 @@ import type { Ref } from "vue"
|
|
|
|
import Popover from "@/components/ui/popover/Popover.vue";
|
|
|
|
import Popover from "@/components/ui/popover/Popover.vue";
|
|
|
|
import PopoverTrigger from "@/components/ui/popover/PopoverTrigger.vue";
|
|
|
|
import PopoverTrigger from "@/components/ui/popover/PopoverTrigger.vue";
|
|
|
|
import PopoverContent from "@/components/ui/popover/PopoverContent.vue";
|
|
|
|
import PopoverContent from "@/components/ui/popover/PopoverContent.vue";
|
|
|
|
import { RangeCalendar } from "@/components/ui/range-calendar"
|
|
|
|
|
|
|
|
import { cn } from "@/lib/utils";
|
|
|
|
import { cn } from "@/lib/utils";
|
|
|
|
import { CalendarIcon } from "lucide-vue-next"
|
|
|
|
import { CalendarIcon } from "lucide-vue-next"
|
|
|
|
import Textarea from "@/components/ui/textarea/Textarea.vue";
|
|
|
|
import Textarea from "@/components/ui/textarea/Textarea.vue";
|
|
|
|
import { getLoaTypes, submitLOA } from "@/api/loa"; // <-- import the submit function
|
|
|
|
import { getLoaPolicy, getLoaTypes, submitLOA } from "@/api/loa"; // <-- import the submit function
|
|
|
|
import { LOARequest, LOAType } from "@shared/types/loa";
|
|
|
|
import { LOARequest, LOAType } from "@shared/types/loa";
|
|
|
|
import { useForm, Field as VeeField } from "vee-validate";
|
|
|
|
import { useForm, Field as VeeField } from "vee-validate";
|
|
|
|
import {
|
|
|
|
import {
|
|
|
|
@@ -41,6 +40,7 @@ import FieldError from "../ui/field/FieldError.vue";
|
|
|
|
|
|
|
|
|
|
|
|
const members = ref<Member[]>([])
|
|
|
|
const members = ref<Member[]>([])
|
|
|
|
const loaTypes = ref<LOAType[]>();
|
|
|
|
const loaTypes = ref<LOAType[]>();
|
|
|
|
|
|
|
|
const policyString = ref<string | null>(null);
|
|
|
|
|
|
|
|
|
|
|
|
const currentMember = ref<Member | null>(null);
|
|
|
|
const currentMember = ref<Member | null>(null);
|
|
|
|
|
|
|
|
|
|
|
|
@@ -63,7 +63,6 @@ const df = new Intl.DateTimeFormat('en-US', {
|
|
|
|
import { loaSchema } from '@shared/schemas/loaSchema'
|
|
|
|
import { loaSchema } from '@shared/schemas/loaSchema'
|
|
|
|
import { toTypedSchema } from "@vee-validate/zod";
|
|
|
|
import { toTypedSchema } from "@vee-validate/zod";
|
|
|
|
import Calendar from "../ui/calendar/Calendar.vue";
|
|
|
|
import Calendar from "../ui/calendar/Calendar.vue";
|
|
|
|
import { el } from "@fullcalendar/core/internal-common";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const { handleSubmit, values, resetForm } = useForm({
|
|
|
|
const { handleSubmit, values, resetForm } = useForm({
|
|
|
|
validationSchema: toTypedSchema(loaSchema),
|
|
|
|
validationSchema: toTypedSchema(loaSchema),
|
|
|
|
@@ -81,11 +80,15 @@ onMounted(async () => {
|
|
|
|
if (props.member) {
|
|
|
|
if (props.member) {
|
|
|
|
currentMember.value = props.member;
|
|
|
|
currentMember.value = props.member;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!props.adminMode) {
|
|
|
|
|
|
|
|
policyString.value = await getLoaPolicy();
|
|
|
|
|
|
|
|
}
|
|
|
|
members.value = await getMembers();
|
|
|
|
members.value = await getMembers();
|
|
|
|
loaTypes.value = await getLoaTypes();
|
|
|
|
loaTypes.value = await getLoaTypes();
|
|
|
|
console.log(currentMember.value);
|
|
|
|
console.log(currentMember.value);
|
|
|
|
resetForm({ values: { member_id: currentMember.value?.member_id } });
|
|
|
|
resetForm({ values: { member_id: currentMember.value?.member_id } });
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
const defaultPlaceholder = today(getLocalTimeZone())
|
|
|
|
const defaultPlaceholder = today(getLocalTimeZone())
|
|
|
|
|
|
|
|
|
|
|
|
const minEndDate = computed(() => {
|
|
|
|
const minEndDate = computed(() => {
|
|
|
|
|