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