electron-vue-exam-single/electron/preload.js

72 lines
4.7 KiB
JavaScript

const { contextBridge, ipcRenderer } = require('electron');
// 暴露API给渲染进程
contextBridge.exposeInMainWorld('electronAPI', {
// 数据库相关
checkDatabaseInitialized: () => ipcRenderer.invoke('check-database-initialized'),
initializeDatabase: () => ipcRenderer.invoke('initialize-database'),
// 认证相关
adminLogin: (credentials) => ipcRenderer.invoke('admin-login', credentials),
// 系统相关
getSystemConfig: () => ipcRenderer.invoke('system-get-config'),
updateSystemConfig: (config) => ipcRenderer.invoke('system-update-config', config),
increaseQuestionBankVersion: () => ipcRenderer.invoke('system-increase-question-bank-version'),
// 配置项管理相关API
fetchAllConfigs: () => ipcRenderer.invoke('config-fetch-all'),
fetchConfigById: (id) => ipcRenderer.invoke('config-fetch-by-id', id),
saveConfig: (key, value) => ipcRenderer.invoke('config-save', { key, value }),
deleteConfig: (id) => ipcRenderer.invoke('config-delete', id),
// 字典管理相关API
fetchDictTypes: () => ipcRenderer.invoke('dict-fetch-types'),
fetchDictItemsByType: (typeCode, isActive = undefined) => ipcRenderer.invoke('dict-fetch-items-by-type', typeCode, isActive),
createDictType: (dictType) => ipcRenderer.invoke('dict-create-type', dictType),
updateDictType: (dictType) => ipcRenderer.invoke('dict-update-type', dictType),
deleteDictType: (typeCode) => ipcRenderer.invoke('dict-delete-type', typeCode),
createDictItem: (dictItem) => ipcRenderer.invoke('dict-create-item', dictItem),
updateDictItem: (dictItem) => ipcRenderer.invoke('dict-update-item', dictItem),
deleteDictItem: (id) => ipcRenderer.invoke('dict-delete-item', id),
fetchAllDictItemsWithTypes: () => ipcRenderer.invoke('dict-fetch-all-items-with-types'),
// 字典项引用校验相关API
checkDictParentCode: (parentCode) => ipcRenderer.invoke('dict-check-parent-code', parentCode),
checkDictChildReferences: (itemCode) => ipcRenderer.invoke('dict-check-child-references', itemCode),
// 题干管理相关API
createQuestion: (questionData) => ipcRenderer.invoke('question-create', questionData),
createChoiceQuestion: (choiceData) => ipcRenderer.invoke('question-create-choice', choiceData),
updateChoiceQuestion: (id, choiceData) => ipcRenderer.invoke('question-update-choice', id, choiceData),
createFillBlankQuestion: (fillBlankData) => ipcRenderer.invoke('question-create-fill-blank', fillBlankData),
fetchAllQuestions: () => ipcRenderer.invoke('question-fetch-all'),
fetchAllQuestionsWithRelations: () => ipcRenderer.invoke('question-fetch-all-with-relations'),
fetchQuestionById: (id) => ipcRenderer.invoke('question-fetch-by-id', id),
updateQuestion: (id, questionData) => ipcRenderer.invoke('question-update', id, questionData),
updateQuestionDescription: (id, questionDescription) => ipcRenderer.invoke('question-update-description', id, questionDescription),
deleteQuestion: (id) => ipcRenderer.invoke('question-delete', id),
updateFillBlankQuestion: (id, fillBlankData) => ipcRenderer.invoke('question-update-fill-blank', id, fillBlankData),
deleteFillBlankQuestion: (id) => ipcRenderer.invoke('question-delete-fill-blank', id),
fetchFillBlankQuestionsByQuestionId: (questionId) => ipcRenderer.invoke('question-fetch-fill-blank-by-question-id', questionId),
getQuestionsCountAndScore: () => ipcRenderer.invoke('question-get-count-and-score'),
// 考试管理相关API
createExam: (examData) => ipcRenderer.invoke('exam-create', examData),
fetchAllExams: () => ipcRenderer.invoke('exam-fetch-all'),
fetchExamById: (id) => ipcRenderer.invoke('exam-fetch-by-id', id),
updateExam: (id, examData) => ipcRenderer.invoke('exam-update', { id, examData }),
deleteExam: (id) => ipcRenderer.invoke('exam-delete', id),
fetchLastExam: () => ipcRenderer.invoke('exam-fetch-last'),
// 考生管理相关API
fetchAllExaminees: () => ipcRenderer.invoke('examinee-fetch-all'),
fetchExamineeById: (id) => ipcRenderer.invoke('examinee-fetch-by-id', id),
createExaminee: (examineeData) => ipcRenderer.invoke('examinee-create', examineeData),
updateExaminee: (id, examineeData) => ipcRenderer.invoke('examinee-update', { id, examineeData }),
deleteExaminee: (id) => ipcRenderer.invoke('examinee-delete', id),
userLogin: (idCard, admissionTicket) => ipcRenderer.invoke('user-login', { idCard, admissionTicket }),
// 考试进行相关API
generateExamineePaper: (examineeData, examData) => ipcRenderer.invoke('examing-generate-paper', { examineeData, examData }),
getExamineePaperStatus: (examineeId) => ipcRenderer.invoke('examing-get-paper-status', examineeId),
updatePaperStatus: (paperId, statusData) => ipcRenderer.invoke('examing-update-paper-status', { paperId, statusData }),
});