feat: add SingleRecord component for student maintenance with CRUD functionality
This commit is contained in:
+1
-1
@@ -304,7 +304,7 @@
|
||||
|
||||
<script setup lang="ts">
|
||||
import { mdiContentSave, mdiDelete, mdiMagnify, mdiRestore } from '@mdi/js'
|
||||
import { useEditableStudentGrid } from '@/composables/maintenance/useEditableStudentGrid'
|
||||
import { useEditableStudentGrid } from '@/composables/maint/useEditableStudentGrid'
|
||||
|
||||
const {
|
||||
departments,
|
||||
+1
-1
@@ -65,7 +65,7 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import type { SaveSummaryItem } from '@/composables/maintenance/useStudentMaintenanceForm'
|
||||
import type { SaveSummaryItem } from '@/composables/maint/useStudentMaintenanceForm'
|
||||
import { computed } from 'vue'
|
||||
import CommonConfirmDialog from './CommonConfirmDialog.vue'
|
||||
|
||||
+1
-1
@@ -103,7 +103,7 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import type { StudentFormState } from '@/composables/maintenance/useStudentMaintenanceForm'
|
||||
import type { StudentFormState } from '@/composables/maint/useStudentMaintenanceForm'
|
||||
import { toRef } from 'vue'
|
||||
|
||||
interface GradeOption {
|
||||
@@ -22,31 +22,31 @@ export const routes: RouteRecordRaw[] = [
|
||||
{
|
||||
path: '/single-record-maintenance',
|
||||
name: 'single-record-maintenance',
|
||||
component: () => import('@/views/maint/SingleRecordMnt.vue'),
|
||||
component: () => import('@/views/maint/SingleRecord.vue'),
|
||||
meta: { layout: 'default' },
|
||||
},
|
||||
{
|
||||
path: '/master-detail-maintenance',
|
||||
name: 'master-detail-maintenance-a',
|
||||
component: () => import('@/views/maint/MasterDetailMnt.vue'),
|
||||
component: () => import('@/views/maint/MasterDetailA.vue'),
|
||||
meta: { layout: 'default' },
|
||||
},
|
||||
{
|
||||
path: '/master-detail-maintenance-b',
|
||||
name: 'master-detail-maintenance-b',
|
||||
component: () => import('@/views/maint/MasterDetailMntB.vue'),
|
||||
component: () => import('@/views/maint/MasterDetailB.vue'),
|
||||
meta: { layout: 'default' },
|
||||
},
|
||||
{
|
||||
path: '/master-detail-maintenance-c',
|
||||
name: 'master-detail-maintenance-c',
|
||||
component: () => import('@/views/maint/MasterDetailMntC.vue'),
|
||||
component: () => import('@/views/maint/MasterDetailC.vue'),
|
||||
meta: { layout: 'default' },
|
||||
},
|
||||
{
|
||||
path: '/editable-grid-maintenance',
|
||||
name: 'editable-grid-maintenance',
|
||||
component: () => import('@/views/maint/EditableGridMnt.vue'),
|
||||
component: () => import('@/views/maint/EditableGrid.vue'),
|
||||
meta: { layout: 'default' },
|
||||
},
|
||||
{
|
||||
|
||||
@@ -3,5 +3,5 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import EditableStudentGrid from '@/components/maintenance/EditableStudentGrid.vue'
|
||||
import EditableStudentGrid from '@/components/maint/EditableStudentGrid.vue'
|
||||
</script>
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<mnt-page-cards
|
||||
<page-maint
|
||||
:search-panel-open="searchPanelOpen"
|
||||
:title="`主從資料維護示範A`"
|
||||
@create="openAddDialog"
|
||||
@@ -170,7 +170,7 @@
|
||||
</template>
|
||||
</v-data-table>
|
||||
</template>
|
||||
</mnt-page-cards>
|
||||
</page-maint>
|
||||
|
||||
<!-- 主從式維護視窗 -->
|
||||
<!-- 說明:包含主檔 (學生資料) 與明細檔 (學期成績) 的維護介面 -->
|
||||
@@ -380,15 +380,15 @@ import { mdiBroom, mdiDelete, mdiEye, mdiMagnify, mdiPencil } from '@mdi/js'
|
||||
import { computed, nextTick, ref, watch } from 'vue'
|
||||
import { useDisplay } from 'vuetify'
|
||||
|
||||
import MaintenanceCrudDialogs from '@/components/maintenance/MaintenanceCrudDialogs.vue'
|
||||
import MaintenanceStudentFormFields from '@/components/maintenance/MaintenanceStudentFormFields.vue'
|
||||
import MasterDetailSemesterList from '@/components/maintenance/master-detail/MasterDetailSemesterList.vue'
|
||||
import MasterDetailSemesterPanel from '@/components/maintenance/master-detail/MasterDetailSemesterPanel.vue'
|
||||
import MntDialogCard from '@/components/maintenance/MntDialogCard.vue'
|
||||
import MntPageCards from '@/components/maintenance/MntPageCards.vue'
|
||||
import MntRecordNavToolbar from '@/components/maintenance/MntRecordNavToolbar.vue'
|
||||
import { useMaintenanceCrudFlow } from '@/composables/maintenance/useMaintenanceCrudFlow'
|
||||
import { useStudentMaintenanceForm } from '@/composables/maintenance/useStudentMaintenanceForm'
|
||||
import MaintenanceCrudDialogs from '@/components/maint/MaintenanceCrudDialogs.vue'
|
||||
import MaintenanceStudentFormFields from '@/components/maint/MaintenanceStudentFormFields.vue'
|
||||
import MasterDetailSemesterList from '@/components/maint/master-detail/SemesterList.vue'
|
||||
import MasterDetailSemesterPanel from '@/components/maint/master-detail/SemesterPanel.vue'
|
||||
import MntDialogCard from '@/components/maint/MntDialogCard.vue'
|
||||
import MntRecordNavToolbar from '@/components/maint/MntRecordNavToolbar.vue'
|
||||
import PageMaint from '@/components/maint/PageMaint.vue'
|
||||
import { useMaintenanceCrudFlow } from '@/composables/maint/useMaintenanceCrudFlow'
|
||||
import { useStudentMaintenanceForm } from '@/composables/maint/useStudentMaintenanceForm'
|
||||
import { type SemesterRecord, useSemesterStore } from '@/stores/semesters'
|
||||
import { type StudentRecord, useStudentStore } from '@/stores/students'
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<mnt-page-cards
|
||||
<page-maint
|
||||
:search-panel-open="searchPanelOpen"
|
||||
:title="`主從資料維護示範B`"
|
||||
@create="openAddDialog"
|
||||
@@ -170,7 +170,7 @@
|
||||
</template>
|
||||
</v-data-table>
|
||||
</template>
|
||||
</mnt-page-cards>
|
||||
</page-maint>
|
||||
|
||||
<!-- 主從式維護視窗 -->
|
||||
<!-- 說明:包含主檔 (學生資料) 與明細檔 (學期成績) 的維護介面 -->
|
||||
@@ -459,16 +459,16 @@ import { mdiBookPlus, mdiBroom, mdiDelete, mdiEye, mdiMagnify, mdiPencil } from
|
||||
import { computed, nextTick, ref, watch } from 'vue'
|
||||
import { useDisplay } from 'vuetify'
|
||||
|
||||
import CommonConfirmDialog from '@/components/maintenance/CommonConfirmDialog.vue'
|
||||
import MaintenanceCrudDialogs from '@/components/maintenance/MaintenanceCrudDialogs.vue'
|
||||
import MaintenanceStudentFormFields from '@/components/maintenance/MaintenanceStudentFormFields.vue'
|
||||
import MasterDetailBSemesterMobilePanel from '@/components/maintenance/master-detail-b/MasterDetailBSemesterMobilePanel.vue'
|
||||
import MasterDetailBSemesterSection from '@/components/maintenance/master-detail-b/MasterDetailBSemesterSection.vue'
|
||||
import MntDialogCard from '@/components/maintenance/MntDialogCard.vue'
|
||||
import MntPageCards from '@/components/maintenance/MntPageCards.vue'
|
||||
import MntRecordNavToolbar from '@/components/maintenance/MntRecordNavToolbar.vue'
|
||||
import { useMaintenanceCrudFlow } from '@/composables/maintenance/useMaintenanceCrudFlow'
|
||||
import { useStudentMaintenanceForm } from '@/composables/maintenance/useStudentMaintenanceForm'
|
||||
import CommonConfirmDialog from '@/components/maint/CommonConfirmDialog.vue'
|
||||
import MaintenanceCrudDialogs from '@/components/maint/MaintenanceCrudDialogs.vue'
|
||||
import MaintenanceStudentFormFields from '@/components/maint/MaintenanceStudentFormFields.vue'
|
||||
import MasterDetailBSemesterMobilePanel from '@/components/maint/master-detail/SemesterMobilePanel.vue'
|
||||
import MasterDetailBSemesterSection from '@/components/maint/master-detail/SemesterSection.vue'
|
||||
import MntDialogCard from '@/components/maint/MntDialogCard.vue'
|
||||
import MntRecordNavToolbar from '@/components/maint/MntRecordNavToolbar.vue'
|
||||
import PageMaint from '@/components/maint/PageMaint.vue'
|
||||
import { useMaintenanceCrudFlow } from '@/composables/maint/useMaintenanceCrudFlow'
|
||||
import { useStudentMaintenanceForm } from '@/composables/maint/useStudentMaintenanceForm'
|
||||
import { type CourseRecord, type SemesterRecord, useSemesterStore } from '@/stores/semesters'
|
||||
import { type StudentRecord, useStudentStore } from '@/stores/students'
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<mnt-page-cards
|
||||
<page-maint
|
||||
:search-panel-open="searchPanelOpen"
|
||||
:title="`主從資料維護示範C`"
|
||||
@create="openAddDialog"
|
||||
@@ -170,7 +170,7 @@
|
||||
</template>
|
||||
</v-data-table>
|
||||
</template>
|
||||
</mnt-page-cards>
|
||||
</page-maint>
|
||||
|
||||
<!-- 主從式維護視窗 -->
|
||||
<!-- 說明:包含主檔 (學生資料) 與明細檔 (學期成績) 的維護介面 -->
|
||||
@@ -446,15 +446,15 @@ import { mdiBroom, mdiDelete, mdiEye, mdiMagnify, mdiPencil, mdiSchool } from '@
|
||||
import { computed, nextTick, ref, watch } from 'vue'
|
||||
import { useDisplay } from 'vuetify'
|
||||
|
||||
import MaintenanceCrudDialogs from '@/components/maintenance/MaintenanceCrudDialogs.vue'
|
||||
import MaintenanceStudentFormFields from '@/components/maintenance/MaintenanceStudentFormFields.vue'
|
||||
import MasterDetailCCourseMobilePanel from '@/components/maintenance/master-detail-c/MasterDetailCCourseMobilePanel.vue'
|
||||
import MasterDetailCCourseSection from '@/components/maintenance/master-detail-c/MasterDetailCCourseSection.vue'
|
||||
import MntDialogCard from '@/components/maintenance/MntDialogCard.vue'
|
||||
import MntPageCards from '@/components/maintenance/MntPageCards.vue'
|
||||
import MntRecordNavToolbar from '@/components/maintenance/MntRecordNavToolbar.vue'
|
||||
import { useMaintenanceCrudFlow } from '@/composables/maintenance/useMaintenanceCrudFlow'
|
||||
import { useStudentMaintenanceForm } from '@/composables/maintenance/useStudentMaintenanceForm'
|
||||
import MaintenanceCrudDialogs from '@/components/maint/MaintenanceCrudDialogs.vue'
|
||||
import MaintenanceStudentFormFields from '@/components/maint/MaintenanceStudentFormFields.vue'
|
||||
import MasterDetailCCourseMobilePanel from '@/components/maint/master-detail/CourseMobilePanel.vue'
|
||||
import MasterDetailCCourseSection from '@/components/maint/master-detail/CourseSection.vue'
|
||||
import MntDialogCard from '@/components/maint/MntDialogCard.vue'
|
||||
import MntRecordNavToolbar from '@/components/maint/MntRecordNavToolbar.vue'
|
||||
import PageMaint from '@/components/maint/PageMaint.vue'
|
||||
import { useMaintenanceCrudFlow } from '@/composables/maint/useMaintenanceCrudFlow'
|
||||
import { useStudentMaintenanceForm } from '@/composables/maint/useStudentMaintenanceForm'
|
||||
import { type CourseRecord, type SemesterRecord, useSemesterStore } from '@/stores/semesters'
|
||||
import { type StudentRecord, useStudentStore } from '@/stores/students'
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<mnt-page-cards
|
||||
<page-maint
|
||||
:search-panel-open="searchPanelOpen"
|
||||
:title="`單筆資料維護示範`"
|
||||
@create="openAddDialog"
|
||||
@@ -174,7 +174,7 @@
|
||||
</template>
|
||||
</v-data-table>
|
||||
</template>
|
||||
</mnt-page-cards>
|
||||
</page-maint>
|
||||
|
||||
<!-- 新增 / 編輯 / 檢視側邊欄 -->
|
||||
<teleport to="body">
|
||||
@@ -458,12 +458,12 @@
|
||||
import { mdiBroom, mdiDelete, mdiEye, mdiMagnify, mdiPencil } from '@mdi/js'
|
||||
import { computed, nextTick, ref, watch } from 'vue'
|
||||
import { useDisplay } from 'vuetify'
|
||||
import MaintenanceCrudDialogs from '@/components/maintenance/MaintenanceCrudDialogs.vue'
|
||||
import MntDialogCard from '@/components/maintenance/MntDialogCard.vue'
|
||||
import MntPageCards from '@/components/maintenance/MntPageCards.vue'
|
||||
import MntRecordNavToolbar from '@/components/maintenance/MntRecordNavToolbar.vue'
|
||||
import { useMaintenanceCrudFlow } from '@/composables/maintenance/useMaintenanceCrudFlow'
|
||||
import { useStudentMaintenanceForm } from '@/composables/maintenance/useStudentMaintenanceForm'
|
||||
import MaintenanceCrudDialogs from '@/components/maint/MaintenanceCrudDialogs.vue'
|
||||
import MntDialogCard from '@/components/maint/MntDialogCard.vue'
|
||||
import MntRecordNavToolbar from '@/components/maint/MntRecordNavToolbar.vue'
|
||||
import PageMaint from '@/components/maint/PageMaint.vue'
|
||||
import { useMaintenanceCrudFlow } from '@/composables/maint/useMaintenanceCrudFlow'
|
||||
import { useStudentMaintenanceForm } from '@/composables/maint/useStudentMaintenanceForm'
|
||||
import { type StudentRecord, useStudentStore } from '@/stores/students'
|
||||
|
||||
// 下拉選項:系所/年級/入學年度/狀態
|
||||
Reference in New Issue
Block a user