Files
simrsx-fe/app/components/content/assessment-education/add.vue
T
Khafid Prayoga dd33bbac8e finish: integrasi create education assessment
note: masih perlu cek terkait new api domain
2025-10-23 16:20:50 +07:00

62 lines
1.5 KiB
Vue

<script setup lang="ts">
import type { ExposedForm } from '~/types/form'
import { type AssessmentEducationFormData, AssessmentEducationSchema, encode } from '~/schemas/assessment-education'
import Action from '~/components/pub/my-ui/nav-footer/ba-dr-su.vue'
// Handlers
import {
isReadonly,
isProcessing,
onResetState,
handleActionSave,
handleCancelForm,
} from '~/handlers/assessment-education.handler'
// Helpers
import { toast } from '~/components/pub/ui/toast'
const form = ref<ExposedForm<AssessmentEducationFormData> | null>(null)
async function saveData(values: AssessmentEducationFormData) {
const transform = encode(1, values)
handleActionSave(
transform,
() => {
window.location.reload()
},
() => {},
toast,
)
}
async function cancelData() {}
async function handleActionClick(eventType: string) {
if (eventType === 'submit') {
const formValidate = await form.value?.validate()
console.log(formValidate)
if (!formValidate?.valid) return
saveData(formValidate?.values)
}
if (eventType === 'cancel') {
cancelData()
}
}
</script>
<template>
<div class="mb-5 border-b border-b-slate-300 pb-3 text-lg font-semibold xl:text-xl">Tambah Asesmen Edukasi</div>
<AppAssessmentEducationEntryForm
ref="form"
:is-readonly="isReadonly"
:is-loading="isProcessing"
:schema="AssessmentEducationSchema"
/>
<div class="my-2 flex justify-end py-2">
<Action @click="handleActionClick" />
</div>
</template>