let questionCount = 0; function toggleQueType() { const queType = document.querySelector('.quetype'); const addButton = document.querySelector('.but'); if (queType.style.display === 'none') { queType.style.display = 'flex'; addButton.style.marginTop = '0'; } } // 添加单选题 function addRadioQuestion() { questionCount++; const questionHtml = `
${questionCount}.
`; document.querySelector('.quelist').insertAdjacentHTML('beforeend', questionHtml); toggleQueType(); } // 添加选项 function addOption(questionId) { const optionHtml = `
`; document.querySelector(`#options-${questionId}`).insertAdjacentHTML('beforeend', optionHtml); } // 删除选项 function deleteOption(btn) { btn.parentElement.remove(); } // 删除问题 function deleteQuestion(questionId) { document.querySelector(`#question-${questionId}`).remove(); } // 复用问题 function copyQuestion(questionId) { const original = document.querySelector(`#question-${questionId}`); const clone = original.cloneNode(true); questionCount++; clone.id = `question-${questionCount}`; original.after(clone); } // 上移问题 function moveUp(questionId) { const question = document.querySelector(`#question-${questionId}`); const prev = question.previousElementSibling; if (prev) { prev.before(question); } } // 下移问题 function moveDown(questionId) { const question = document.querySelector(`#question-${questionId}`); const next = question.nextElementSibling; if (next) { next.after(question); } } // 添加多选题 function addCheckboxQuestion() { questionCount++; const questionHtml = `
${questionCount}.
`; document.querySelector('.quelist').insertAdjacentHTML('beforeend', questionHtml); toggleQueType(); } // 添加多选题选项 function addCheckboxOption(questionId) { const optionHtml = `
`; document.querySelector(`#options-${questionId}`).insertAdjacentHTML('beforeend', optionHtml); } // 添加文本题 function addTextQuestion() { questionCount++; const questionHtml = `
${questionCount}.
`; document.querySelector('.quelist').insertAdjacentHTML('beforeend', questionHtml); toggleQueType(); } // 获取问卷数据 function getQuestionnaireData(isPublished = false) { const now = new Date().getTime(); const questionnaire = { title: document.querySelector('.question-title').value, createTime: now, endTime: document.querySelector('#endtime').value, publishTime: isPublished ? now : null, status: isPublished ? '已发布' : '未发布', questions: [] }; const questionItems = document.querySelectorAll('.question-item'); questionItems.forEach((item, index) => { let questionType; if (item.querySelector('.question-content textarea')) { questionType = 'text'; } else if (item.querySelector('input[type="radio"]')) { questionType = 'radio'; } else { questionType = 'checkbox'; } const question = { id: index + 1, type: questionType, title: item.querySelector('.question-title-area input[type="text"]').value, required: item.querySelector('.required-checkbox').checked, options: [] }; if (questionType === 'radio' || questionType === 'checkbox') { const options = item.querySelectorAll('.option-item input[type="text"]'); options.forEach((option, optionIndex) => { question.options.push({ id: optionIndex + 1, content: option.value }); }); } questionnaire.questions.push(question); }); return questionnaire; } // 保存问卷到 localStorage function saveQuestionnaire() { // 验证问卷 if (!validateQuestionnaire()) { return; } const questionnaire = getQuestionnaireData(false); const questionnaireId = `questionnaire_${questionnaire.createTime}`; // 获取已有的问卷列表 let questionnaireList = JSON.parse(localStorage.getItem('questionnaireList') || '[]'); // 添加新问卷 questionnaireList.push({ id: questionnaireId, title: questionnaire.title, createTime: questionnaire.createTime, publishTime: questionnaire.publishTime, status: questionnaire.status, data: questionnaire }); // 保存更新后的问卷列表 localStorage.setItem('questionnaireList', JSON.stringify(questionnaireList)); alert('问卷保存成功!'); window.location.href = 'myQuestion.html'; // 添加返回功能 } // 发布问卷 function publishQuestionnaire() { // 验证问卷 if (!validateQuestionnaire()) { return; } const questionnaire = getQuestionnaireData(true); const questionnaireId = `questionnaire_${questionnaire.createTime}`; // 获取已有的问卷列表 let questionnaireList = JSON.parse(localStorage.getItem('questionnaireList') || '[]'); // 添加新问卷 questionnaireList.push({ id: questionnaireId, title: questionnaire.title, createTime: questionnaire.createTime, publishTime: questionnaire.publishTime, status: questionnaire.status, data: questionnaire }); // 保存更新后的问卷列表 localStorage.setItem('questionnaireList', JSON.stringify(questionnaireList)); alert('问卷发布成功!'); window.location.href = 'myQuestion.html'; // 添加返回功能 } // 添加问卷验证函数 function validateQuestionnaire() { const title = document.querySelector('.question-title').value.trim(); if (!title) { alert('请输入问卷标题!'); return false; } const endTime = document.querySelector('#endtime').value; if (!endTime) { alert('请设置问卷截止日期!'); return false; } const questions = document.querySelectorAll('.question-item'); if (questions.length === 0) { alert('请至少添加一个问题!'); return false; } for (let question of questions) { const questionTitle = question.querySelector('.question-title-area input[type="text"]').value.trim(); if (!questionTitle) { alert('请填写所有问题的标题!'); return false; } const questionType = question.querySelector('input[type="radio"]') ? 'radio' : question.querySelector('input[type="checkbox"]') ? 'checkbox' : 'text'; if (questionType !== 'text') { const options = question.querySelectorAll('.option-item input[type="text"]'); for (let option of options) { if (!option.value.trim()) { alert('请填写所有选项的内容!'); return false; } } } } return true; } // 初始化页面 window.onload = function() { document.querySelector('.but').style.marginTop = '20px'; // 为题型按钮添加点击事件 const buttons = document.querySelectorAll('.quetype button'); buttons[0].onclick = addRadioQuestion; buttons[1].onclick = addCheckboxQuestion; buttons[2].onclick = addTextQuestion; // 为保存和发布按钮添加点击事件 const pushbutButtons = document.querySelectorAll('.pushbut button'); pushbutButtons[0].onclick = saveQuestionnaire; // 保存按钮 pushbutButtons[1].onclick = publishQuestionnaire; // 发布按钮 }