// 答题数据本地存储工具
|
|
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
|