|
@ -0,0 +1,98 @@ |
|
|
|
|
|
// 答题数据本地存储工具
|
|
|
|
|
|
const EXAM_STORAGE_KEY = 'exam_answers_data' |
|
|
|
|
|
|
|
|
|
|
|
const examStorage = { |
|
|
|
|
|
// 保存答题数据
|
|
|
|
|
|
saveAnswer: function(examType, questionId, value) { |
|
|
|
|
|
try { |
|
|
|
|
|
let examData = uni.getStorageSync(EXAM_STORAGE_KEY) || {} |
|
|
|
|
|
|
|
|
|
|
|
// 确保examType存在
|
|
|
|
|
|
if (!examData[examType]) { |
|
|
|
|
|
examData[examType] = {} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 保存答案
|
|
|
|
|
|
examData[examType][questionId] = { |
|
|
|
|
|
value: value, |
|
|
|
|
|
timestamp: Date.now() |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
uni.setStorageSync(EXAM_STORAGE_KEY, examData) |
|
|
|
|
|
} catch (error) { |
|
|
|
|
|
console.error('保存答题数据失败:', error) |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
// 获取答题数据
|
|
|
|
|
|
getAnswer: function(examType, questionId) { |
|
|
|
|
|
try { |
|
|
|
|
|
let examData = uni.getStorageSync(EXAM_STORAGE_KEY) || {} |
|
|
|
|
|
|
|
|
|
|
|
if (examData[examType] && examData[examType][questionId]) { |
|
|
|
|
|
return examData[examType][questionId].value |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return null |
|
|
|
|
|
} catch (error) { |
|
|
|
|
|
console.error('获取答题数据失败:', error) |
|
|
|
|
|
return null |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
// 获取某个考试类型的所有答题数据
|
|
|
|
|
|
getAllAnswers: function(examType) { |
|
|
|
|
|
try { |
|
|
|
|
|
let examData = uni.getStorageSync(EXAM_STORAGE_KEY) || {} |
|
|
|
|
|
return examData[examType] || {} |
|
|
|
|
|
} catch (error) { |
|
|
|
|
|
console.error('获取所有答题数据失败:', error) |
|
|
|
|
|
return {} |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
// 清除某个考试类型的答题数据
|
|
|
|
|
|
clearExamAnswers: function(examType) { |
|
|
|
|
|
try { |
|
|
|
|
|
let examData = uni.getStorageSync(EXAM_STORAGE_KEY) || {} |
|
|
|
|
|
|
|
|
|
|
|
if (examData[examType]) { |
|
|
|
|
|
delete examData[examType] |
|
|
|
|
|
uni.setStorageSync(EXAM_STORAGE_KEY, examData) |
|
|
|
|
|
} |
|
|
|
|
|
} catch (error) { |
|
|
|
|
|
console.error('清除答题数据失败:', error) |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
// 清除所有答题数据
|
|
|
|
|
|
clearAllAnswers: function() { |
|
|
|
|
|
try { |
|
|
|
|
|
uni.removeStorageSync(EXAM_STORAGE_KEY) |
|
|
|
|
|
} catch (error) { |
|
|
|
|
|
console.error('清除所有答题数据失败:', error) |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
// 检查答题数据是否过期(可选功能,比如24小时后过期)
|
|
|
|
|
|
isAnswerExpired: function(examType, questionId, expireHours = 24) { |
|
|
|
|
|
try { |
|
|
|
|
|
let examData = uni.getStorageSync(EXAM_STORAGE_KEY) || {} |
|
|
|
|
|
|
|
|
|
|
|
if (examData[examType] && examData[examType][questionId]) { |
|
|
|
|
|
const timestamp = examData[examType][questionId].timestamp |
|
|
|
|
|
const now = Date.now() |
|
|
|
|
|
const expireTime = expireHours * 60 * 60 * 1000 // 转换为毫秒
|
|
|
|
|
|
|
|
|
|
|
|
return (now - timestamp) > expireTime |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return true // 没有数据视为过期
|
|
|
|
|
|
} catch (error) { |
|
|
|
|
|
console.error('检查答题数据过期失败:', error) |
|
|
|
|
|
return true |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
export default examStorage |