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