diff --git a/src/modules/record/components/TaskRecord.vue b/src/modules/record/components/TaskRecord.vue index 1ce667d..56bb955 100644 --- a/src/modules/record/components/TaskRecord.vue +++ b/src/modules/record/components/TaskRecord.vue @@ -1,14 +1,32 @@ diff --git a/src/modules/record/components/TaskRecordList.vue b/src/modules/record/components/TaskRecordList.vue new file mode 100644 index 0000000..762a3d8 --- /dev/null +++ b/src/modules/record/components/TaskRecordList.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/src/modules/record/interfaces/recordable.ts b/src/modules/record/interfaces/recordable.ts index 0822fd4..c630420 100644 --- a/src/modules/record/interfaces/recordable.ts +++ b/src/modules/record/interfaces/recordable.ts @@ -4,7 +4,15 @@ import type { StepRecordable } from './step-recordable' export interface Recordable { id: string taskId: string + /** + * @deprecated + * TODO: Compute this data from step records + */ start: ISODate + /** + * @deprecated + * TODO: Compute this data from step records + */ end?: ISODate stepRecords: Record } diff --git a/src/modules/record/stores/useTaskRecordStore.ts b/src/modules/record/stores/useTaskRecordStore.ts index 5ee2fe5..e459dd1 100644 --- a/src/modules/record/stores/useTaskRecordStore.ts +++ b/src/modules/record/stores/useTaskRecordStore.ts @@ -7,6 +7,7 @@ import { TaskRecord } from '../models/task-record' type RecordId = string export interface TaskRecordStoreState { + currentStepId: string | null records: { [recordId: string]: Recordable } taskRecordMaps: { [taskId: string]: RecordId[] } } @@ -14,6 +15,7 @@ export interface TaskRecordStoreState { export const useTaskRecordStore = defineStore('task-record-store', { persist: true, state: (): TaskRecordStoreState => ({ + currentStepId: null, records: {}, taskRecordMaps: {} }), @@ -41,10 +43,17 @@ export const useTaskRecordStore = defineStore('task-record-store', { stepId: string start: ISODate }) { + const record = this.records[params.recordId] + + if (Object.values(record.stepRecords).length === 0) { + record.start = params.start + } + this.records[params.recordId].stepRecords[params.stepId] = { problems: [], start: params.start } + this.currentStepId = params.stepId }, endStepRecord(params: { recordId: string; stepId: string; end: ISODate }) { const stepRecord = @@ -73,6 +82,9 @@ export const useTaskRecordStore = defineStore('task-record-store', { start: params.tick }) }, + endRecord() { + this.currentStepId = null + }, addProblemToStepRecord(recordId: string, stepId: string, problem: string) { const stepRecord = this.getStepRecord(recordId, stepId) diff --git a/src/router/index.ts b/src/router/index.ts index 459acf6..59a6038 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -24,6 +24,12 @@ export const router = createRouter({ name: 'task-view', props: true, component: () => import('../views/task/TaskView.vue') + }, + { + path: '/task/:taskId/records/:recordId', + name: 'record-view', + props: true, + component: () => import('../views/record/RecordView.vue') } ] }) diff --git a/src/views/record/RecordView.vue b/src/views/record/RecordView.vue new file mode 100644 index 0000000..98a537c --- /dev/null +++ b/src/views/record/RecordView.vue @@ -0,0 +1,19 @@ + + + + + diff --git a/src/views/task/TaskView.vue b/src/views/task/TaskView.vue index a60e768..9bb1a1c 100644 --- a/src/views/task/TaskView.vue +++ b/src/views/task/TaskView.vue @@ -1,4 +1,5 @@