- 18 Jul, 2026 2 commits
-
-
Administrator authored
Task images were stored as a JSON-ish field on stdt_tasks. Spec 0004 (see docs/task-images-migration.md) splits them into a dedicated sub-resource stdt_task_images so each image is its own row with mime_type / file_name / etag / size_bytes, accessed via /api/tasks/<id>/images/. Frontend changes: - new useTaskImages composable owning image state per edit dialog, with eager-load priming in load() so thumbnails render and are clickable in the grid (fixes v-if branch gated on populated imageCache). - taskService refactored: listTaskImages / createTaskImage / deleteTaskImage / getTaskImageContent (blob fetch with responseType: 'blob' to dodge 406s). - apiEndpoints.TASKS.IMAGES added for documentation purposes only — services still hardcode paths (CLAUDE.md flags apiEndpoints as stale). - TaskView.vue: switched from inline task.images to useTaskImages(); image upload / preview / delete / carousel wired to the new composable. Explicit taskId passed to load() and commit() since useTaskImages is instantiated without a taskIdRef at module scope. - locales en/zh-CN: new image keys (addImage, pendingUpload, clickToLoad, imagePartialFailure, imageLimitReached, etc.). Tests: - src/__tests__/api/taskService.test.js - src/__tests__/composables/useTaskImages.test.js - src/__tests__/composables/useTaskImages.network.test.js Also: .claude/ added to .gitignore (Claude Code local permissions, per-dev). Co-Authored-By:Claude <noreply@anthropic.com>
-
Administrator authored
<v-img cover min-height="100dvh"> was forcing v-responsive to size itself to the image's natural aspect ratio (1692px wide × 2333/3500 ≈ 1128px tall), making the page 1128px tall on a 769px viewport. The bottom ~360px had no white overlay, so scrolling past the footer leaked the unwrapped image. Replace <v-img> with a position:fixed <div class="app-bg"> using background-image: cover, and move the white overlay from inline style to scoped .app-content CSS. Page scrollHeight dropped 1128 → 781; max scroll 359 → 12 (just v-main's slight overflow). Verified: background still renders washed-out behind content, edit dialog opens correctly (pointer-events: none doesn't block v-overlay/v-dialog), all routes still work. Co-Authored-By:Claude <noreply@anthropic.com>
-
- 15 Jul, 2026 1 commit
-
-
Administrator authored
-
- 06 Jul, 2026 3 commits
-
-
Administrator authored
-
Administrator authored
-
Administrator authored
-
- 04 Jul, 2026 1 commit
-
-
Administrator authored
UI: add Settings skeleton page with v-tabs + 6 categories UI: enlarge TaskView event fonts and replace progress bar with SVG ring UI: add native title tooltip on TaskView events UI: convert filter panel toggle to floating icon button with slide animation UI: set browser tab title to "学生管理系统"
-
- 02 Jul, 2026 1 commit
-
-
Administrator authored
-
- 04 Sep, 2025 1 commit
-
-
Administrator authored
-
- 03 Sep, 2025 1 commit
-
-
Administrator authored
-
- 02 Sep, 2025 1 commit
-
-
Administrator authored
-
- 01 Sep, 2025 1 commit
-
-
Administrator authored
-
- 30 Aug, 2025 1 commit
-
-
Administrator authored
-
- 29 Aug, 2025 2 commits
-
-
Administrator authored
-
Administrator authored
-
- 28 Aug, 2025 1 commit
-
-
Administrator authored
-
- 26 Aug, 2025 3 commits
-
-
Administrator authored
moved endpoints to /src/api; moved menu items to /src/components/constants/menuItems.js; added breadcrumbs; added Student page
-
Administrator authored
/src/components/constans/menuItems.js
-
Administrator authored
-
- 19 Aug, 2025 2 commits
-
-
Administrator authored
-
Administrator authored
-
- 13 Aug, 2025 2 commits
-
-
Administrator authored
-
Administrator authored
-