diff --git a/src/components/RandomPicker.vue b/src/components/RandomPicker.vue index d76fbea..f02ab36 100644 --- a/src/components/RandomPicker.vue +++ b/src/components/RandomPicker.vue @@ -1,6 +1,11 @@ \ No newline at end of file + diff --git a/src/pages/index.vue b/src/pages/index.vue index e345364..8096219 100644 --- a/src/pages/index.vue +++ b/src/pages/index.vue @@ -149,6 +149,16 @@ > 随机点名 + + 列表 + student.name ); return; @@ -1390,6 +1419,7 @@ export default { if (this.state.dateString !== formattedDate) { this.state.dateString = formattedDate; this.state.selectedDate = formattedDate; + this.state.selectedDateObj = selectedDate; this.state.isToday = formattedDate === this.formatDate(this.getToday()); diff --git a/src/pages/list/[id].vue b/src/pages/list/[id].vue new file mode 100644 index 0000000..b51ec22 --- /dev/null +++ b/src/pages/list/[id].vue @@ -0,0 +1,581 @@ + + + + + diff --git a/src/pages/list/index.vue b/src/pages/list/index.vue new file mode 100644 index 0000000..e810f7d --- /dev/null +++ b/src/pages/list/index.vue @@ -0,0 +1,243 @@ + + + + + diff --git a/src/pages/settings.vue b/src/pages/settings.vue index 75e3445..524860b 100644 --- a/src/pages/settings.vue +++ b/src/pages/settings.vue @@ -383,9 +383,9 @@ export default { // Try to get student list from the dedicated key const response = await dataProvider.loadData('classworks-list-main'); - if (response.success && Array.isArray(response.data)) { + if (response.success!=false && Array.isArray(response)) { // Transform the data into a simple list of names - this.studentData.list = response.data.map(student => student.name); + this.studentData.list = response.map(student => student.name); this.studentData.text = this.studentData.list.join('\n'); this.lastSavedData = [...this.studentData.list]; this.hasUnsavedChanges = false; @@ -394,21 +394,6 @@ export default { } catch (error) { console.warn('Failed to load student list from dedicated key, falling back to config', error); } - - // Fall back to retrieving from config if the dedicated key is not available - const response = await kvProvider.local.loadConfig(); - - if (response.success && response.data && Array.isArray(response.data.studentList)) { - this.studentData.list = response.data.studentList; - this.studentData.text = response.data.studentList.join('\n'); - this.lastSavedData = [...response.data.studentList]; - this.hasUnsavedChanges = false; - } else { - // If no student list is found anywhere, initialize with empty list - this.studentData.list = []; - this.studentData.text = ''; - this.lastSavedData = []; - } } catch (error) { console.error('加载学生列表失败:', error); this.studentsError = error.message || '加载失败,请检查设置'; @@ -436,7 +421,7 @@ export default { // Save the student list to the dedicated key const response = await dataProvider.saveData("classworks-list-main", formattedStudentList); - if (!response.success) { + if (response.success==false) { throw new Error(response.error?.message || "保存失败"); } diff --git a/src/utils/dataProvider.js b/src/utils/dataProvider.js index 3b25d2e..a75b74b 100644 --- a/src/utils/dataProvider.js +++ b/src/utils/dataProvider.js @@ -1,11 +1,7 @@ import { kvProvider } from "./providers/kvProvider"; import { getSetting } from "./settings"; -export const formatResponse = (data, message = null) => ({ - success: true, - data, - message, -}); +export const formatResponse = (data, message = null) => (data); export const formatError = (message, code = "UNKNOWN_ERROR") => ({ success: false, diff --git a/src/utils/providers/kvProvider.js b/src/utils/providers/kvProvider.js index f1aa5b7..9cbfa0c 100644 --- a/src/utils/providers/kvProvider.js +++ b/src/utils/providers/kvProvider.js @@ -62,7 +62,7 @@ export const kvProvider = { const db = await initDB(); await db.put("kv", JSON.stringify(data), key); - return formatResponse(null, "保存成功"); + return formatResponse(true, "保存成功"); } catch (error) { return formatError("保存本地数据失败:" + error); } @@ -100,7 +100,7 @@ export const kvProvider = { await axios.post(`${serverUrl}/${machineId}/${key}`, data, { headers: getHeaders(), }); - return formatResponse(null, "保存成功"); + return formatResponse(true); } catch (error) { return formatError( error.response?.data?.message || "保存失败", diff --git a/src/utils/settings.js b/src/utils/settings.js index a279f6b..163f4c8 100644 --- a/src/utils/settings.js +++ b/src/utils/settings.js @@ -146,7 +146,12 @@ const settingsDefinitions = { description: "是否显示防烧屏忽悠卡片", icon: "mdi-monitor-shimmer", }, - + "display.showListCard": { + type: "boolean", + default: true, + description: "是否显示列表卡片", + icon: "mdi-list-box", + }, // 服务器设置(合并了数据提供者设置) "server.domain": { type: "string",