mirror of
https://github.com/ZeroCatDev/Classworks.git
synced 2025-07-06 03:59:23 +00:00
84 lines
2.7 KiB
JavaScript
84 lines
2.7 KiB
JavaScript
import { formatResponse, formatError } from '../dataProvider';
|
|
|
|
export const localStorageProvider = {
|
|
async loadData(key, date) {
|
|
try {
|
|
const classNumber = key.split("/").pop();
|
|
if (!classNumber) {
|
|
return formatError("请先设置班号", "CONFIG_ERROR");
|
|
}
|
|
|
|
const storageKey = `homework_${classNumber}_${date}`;
|
|
const rawData = localStorage.getItem(storageKey);
|
|
|
|
if (!rawData) {
|
|
const today = new Date().toISOString().split("T")[0];
|
|
if (date === today) {
|
|
return formatResponse({
|
|
homework: {},
|
|
attendance: { absent: [], late: [] },
|
|
});
|
|
}
|
|
return formatError("数据不存在", "NOT_FOUND");
|
|
}
|
|
|
|
return formatResponse(JSON.parse(rawData));
|
|
} catch (error) {
|
|
return formatError("读取本地数据失败:" + error);
|
|
}
|
|
},
|
|
|
|
async saveData(key, data, date) {
|
|
try {
|
|
const classNumber = key.split("/").pop();
|
|
if (!classNumber) {
|
|
return formatError("请先设置班号", "CONFIG_ERROR");
|
|
}
|
|
|
|
const storageKey = `homework_${classNumber}_${date}`; // 使用传入的date参数
|
|
localStorage.setItem(storageKey, JSON.stringify(data));
|
|
return formatResponse(null, "保存成功");
|
|
} catch (error) {
|
|
return formatError("保存本地数据失败:" + error);
|
|
}
|
|
},
|
|
|
|
async loadConfig(key) {
|
|
try {
|
|
const classNumber = key.split("/").pop();
|
|
if (!classNumber) {
|
|
return formatError("请先设置班号", "CONFIG_ERROR");
|
|
}
|
|
|
|
const storageKey = `config_${classNumber}`;
|
|
const rawData = localStorage.getItem(storageKey);
|
|
|
|
if (!rawData) {
|
|
return formatResponse({
|
|
studentList: [],
|
|
displayOptions: {},
|
|
});
|
|
}
|
|
|
|
return formatResponse(JSON.parse(rawData));
|
|
} catch (error) {
|
|
return formatError("读取本地配置失败:" + error);
|
|
}
|
|
},
|
|
|
|
async saveConfig(key, config) {
|
|
try {
|
|
const classNumber = key.split("/").pop();
|
|
if (!classNumber) {
|
|
return formatError("请先设置班号", "CONFIG_ERROR");
|
|
}
|
|
|
|
const storageKey = `config_${classNumber}`;
|
|
localStorage.setItem(storageKey, JSON.stringify(config));
|
|
return formatResponse(null, "保存成功");
|
|
} catch (error) {
|
|
return formatError("保存本地配置失败:" + error);
|
|
}
|
|
}
|
|
};
|