Generate question bank domain model from JDL

This commit is contained in:
jieun committed 2026-10-20 18:46:29 +09:00
1 parent 1d97cc4e31
commit 1d74d8f04b
160 files changed
+26900 -2

No files matched your search

@@ -0,0 +1,78 @@
import { type Ref, defineComponent, inject, onMounted, ref } from 'vue';
import { useI18n } from 'vue-i18n';
import { useAlertService } from '@/shared/alert/alert.service';
import { type IExamAnswer } from '@/shared/model/exam-answer.model';
import ExamAnswerService from './exam-answer.service';
export default defineComponent({
name: 'ExamAnswer',
setup() {
const { t: t$ } = useI18n();
const examAnswerService = inject('examAnswerService', () => new ExamAnswerService());
const alertService = inject('alertService', () => useAlertService(), true);
const examAnswers: Ref<IExamAnswer[]> = ref([]);
const isFetching = ref(false);
const clear = () => {};
const retrieveExamAnswers = async () => {
isFetching.value = true;
try {
const res = await examAnswerService().retrieve();
examAnswers.value = res.data;
} catch (err) {
alertService.showHttpError(err.response);
} finally {
isFetching.value = false;
}
};
const handleSyncList = () => {
retrieveExamAnswers();
};
onMounted(async () => {
await retrieveExamAnswers();
});
const removeId: Ref<number> = ref(null);
const removeEntity = ref<any>(null);
const prepareRemove = (instance: IExamAnswer) => {
removeId.value = instance.id;
removeEntity.value.show();
};
const closeDialog = () => {
removeEntity.value.hide();
};
const removeExamAnswer = async () => {
try {
await examAnswerService().delete(removeId.value);
const message = t$('questionBankApp.examAnswer.deleted', { param: removeId.value }).toString();
alertService.showInfo(message, { variant: 'danger' });
removeId.value = null;
retrieveExamAnswers();
closeDialog();
} catch (error) {
alertService.showHttpError(error.response);
}
};
return {
examAnswers,
handleSyncList,
isFetching,
retrieveExamAnswers,
clear,
removeId,
removeEntity,
prepareRemove,
closeDialog,
removeExamAnswer,
t$,
};
},
});