58 lines
3.1 KiB
JavaScript
58 lines
3.1 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), // 添加这行
|
|
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), // 添加新API
|
|
deleteQuestion: (id) => ipcRenderer.invoke('question-delete', id)
|
|
});
|
|
// 这里可以添加预加载脚本
|
|
window.addEventListener('DOMContentLoaded', () => {
|
|
const replaceText = (selector, text) => {
|
|
const element = document.getElementById(selector)
|
|
if (element) element.innerText = text
|
|
}
|
|
|
|
for (const dependency of ['chrome', 'node', 'electron']) {
|
|
replaceText(`${dependency}-version`, process.versions[dependency])
|
|
}
|
|
}) |