生成的测评链接
This commit is contained in:
parent
e22a116872
commit
63b004412a
@ -2370,28 +2370,37 @@
|
||||
generateBtn.querySelector('.button-text').textContent = '正在生成链接...';
|
||||
generateBtn.disabled = true;
|
||||
|
||||
// 调用后端API创建会话(和开始答题一样的逻辑)
|
||||
const response = await fetch('/api/create-session', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
body: JSON.stringify({
|
||||
name: studentName,
|
||||
school: studentSchool,
|
||||
grade: studentGrade,
|
||||
phone: studentPhone,
|
||||
selectedSubject: document.getElementById('subjectFilterSelect').value || '',
|
||||
selectedSemester: document.getElementById('gradeFilterSelect').value || '',
|
||||
selectedExamType: '',
|
||||
selectedUnit: document.getElementById('unitFilterSelect').value || '',
|
||||
selectedCategory: '',
|
||||
selectedQuestionType: '',
|
||||
selectedTag: this.selectedTag,
|
||||
selectedTagsList: [],
|
||||
questionsConfig: this.currentRules,
|
||||
scoreRange: scoreRange
|
||||
})
|
||||
// iOS兼容性:使用setTimeout确保请求是用户直接触发的
|
||||
const response = await new Promise((resolve, reject) => {
|
||||
setTimeout(async () => {
|
||||
try {
|
||||
const fetchResponse = await fetch('/api/create-session', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
body: JSON.stringify({
|
||||
name: studentName,
|
||||
school: studentSchool,
|
||||
grade: studentGrade,
|
||||
phone: studentPhone,
|
||||
selectedSubject: document.getElementById('subjectFilterSelect').value || '',
|
||||
selectedSemester: document.getElementById('gradeFilterSelect').value || '',
|
||||
selectedExamType: '',
|
||||
selectedUnit: document.getElementById('unitFilterSelect').value || '',
|
||||
selectedCategory: '',
|
||||
selectedQuestionType: '',
|
||||
selectedTag: this.selectedTag,
|
||||
selectedTagsList: [],
|
||||
questionsConfig: this.currentRules,
|
||||
scoreRange: scoreRange
|
||||
})
|
||||
});
|
||||
resolve(fetchResponse);
|
||||
} catch (error) {
|
||||
reject(error);
|
||||
}
|
||||
}, 0);
|
||||
});
|
||||
|
||||
if (!response.ok) {
|
||||
@ -2437,11 +2446,19 @@
|
||||
|
||||
} catch (error) {
|
||||
console.error('生成测评链接失败:', error);
|
||||
this.showErrorDialog('生成测评链接失败',
|
||||
`创建测评链接时发生错误:<br><br>
|
||||
const isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent);
|
||||
const errorMessage = error.message.includes('not allowed') && isIOS
|
||||
? `iOS设备权限限制:请确保:<br><br>
|
||||
• 在Safari设置中允许网页访问网络<br>
|
||||
• 尝试在Safari中"重新加载页面"<br>
|
||||
• 检查是否启用了"限制网页跟踪"<br>
|
||||
• 如仍失败,请尝试使用其他浏览器(如Chrome)<br><br>
|
||||
技术细节:${error.message}`
|
||||
: `创建测评链接时发生错误:<br><br>
|
||||
错误信息:${error.message}<br><br>
|
||||
请检查网络连接或联系技术支持。`
|
||||
);
|
||||
请检查网络连接或联系技术支持。`;
|
||||
|
||||
this.showErrorDialog('生成测评链接失败', errorMessage);
|
||||
} finally {
|
||||
// 恢复按钮状态
|
||||
const generateBtn = document.getElementById('generateLinkBtn');
|
||||
@ -2506,28 +2523,37 @@
|
||||
startBtn.querySelector('.button-text').textContent = '正在创建答题会话...';
|
||||
startBtn.disabled = true;
|
||||
|
||||
// 调用后端API创建会话
|
||||
const response = await fetch('/api/create-session', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
body: JSON.stringify({
|
||||
name: studentName,
|
||||
school: studentSchool,
|
||||
grade: studentGrade,
|
||||
phone: studentPhone,
|
||||
selectedSubject: document.getElementById('subjectFilterSelect').value || '',
|
||||
selectedSemester: document.getElementById('gradeFilterSelect').value || '',
|
||||
selectedExamType: '',
|
||||
selectedUnit: document.getElementById('unitFilterSelect').value || '',
|
||||
selectedCategory: '',
|
||||
selectedQuestionType: '',
|
||||
selectedTag: this.selectedTag,
|
||||
selectedTagsList: [],
|
||||
questionsConfig: this.currentRules,
|
||||
scoreRange: scoreRange
|
||||
})
|
||||
// iOS兼容性:使用setTimeout确保请求是用户直接触发的
|
||||
const response = await new Promise((resolve, reject) => {
|
||||
setTimeout(async () => {
|
||||
try {
|
||||
const fetchResponse = await fetch('/api/create-session', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
body: JSON.stringify({
|
||||
name: studentName,
|
||||
school: studentSchool,
|
||||
grade: studentGrade,
|
||||
phone: studentPhone,
|
||||
selectedSubject: document.getElementById('subjectFilterSelect').value || '',
|
||||
selectedSemester: document.getElementById('gradeFilterSelect').value || '',
|
||||
selectedExamType: '',
|
||||
selectedUnit: document.getElementById('unitFilterSelect').value || '',
|
||||
selectedCategory: '',
|
||||
selectedQuestionType: '',
|
||||
selectedTag: this.selectedTag,
|
||||
selectedTagsList: [],
|
||||
questionsConfig: this.currentRules,
|
||||
scoreRange: scoreRange
|
||||
})
|
||||
});
|
||||
resolve(fetchResponse);
|
||||
} catch (error) {
|
||||
reject(error);
|
||||
}
|
||||
}, 0);
|
||||
});
|
||||
|
||||
if (!response.ok) {
|
||||
@ -2549,11 +2575,19 @@
|
||||
|
||||
} catch (error) {
|
||||
console.error('开始答题失败:', error);
|
||||
this.showErrorDialog('开始答题失败',
|
||||
`创建答题会话时发生错误:<br><br>
|
||||
const isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent);
|
||||
const errorMessage = error.message.includes('not allowed') && isIOS
|
||||
? `iOS设备权限限制:请确保:<br><br>
|
||||
• 在Safari设置中允许网页访问网络<br>
|
||||
• 尝试在Safari中"重新加载页面"<br>
|
||||
• 检查是否启用了"限制网页跟踪"<br>
|
||||
• 如仍失败,请尝试使用其他浏览器(如Chrome)<br><br>
|
||||
技术细节:${error.message}`
|
||||
: `创建答题会话时发生错误:<br><br>
|
||||
错误信息:${error.message}<br><br>
|
||||
请检查网络连接或联系技术支持。`
|
||||
);
|
||||
请检查网络连接或联系技术支持。`;
|
||||
|
||||
this.showErrorDialog('开始答题失败', errorMessage);
|
||||
|
||||
// 恢复按钮状态
|
||||
const startBtn = document.getElementById('startSurvey');
|
||||
|
||||
Loading…
Reference in New Issue
Block a user