feat: Implement detailed semester management components

This commit is contained in:
skytek_xinliang
2026-03-30 14:44:53 +08:00
parent edf664fbb8
commit f7413111c0
9 changed files with 16 additions and 16 deletions
+6 -6
View File
@@ -192,7 +192,7 @@
class="detail-panel-wrapper"
:class="{ 'is-active': !!selectedSemesterId, 'is-mobile': isMobile }"
>
<master-detail-semester-panel
<DetailSidePanel
v-model:detail-form="detailForm"
:is-detail-editing="isDetailEditing"
:is-mobile="isMobile"
@@ -268,7 +268,7 @@
:class="{ 'form-readonly': isFormReadonly }"
@submit.prevent="requestSaveConfirmation"
>
<master-form-fields
<MasterFileFormFields
:departments="departments"
:enroll-years="enrollYears"
:field-errors="fieldErrors"
@@ -284,7 +284,7 @@
<!-- 學期成績紀錄區塊 -->
<!-- 說明顯示該學生的所有學期紀錄並提供新增與選取功能 -->
<master-detail-semester-list
<DetailNavigation
:is-mobile="isMobile"
:is-view-mode="isViewMode"
:selected-semester-id="selectedSemesterId"
@@ -424,9 +424,9 @@ import { computed, nextTick, ref, watch } from 'vue'
import { useDisplay } from 'vuetify'
import ConfirmDialog from '@/components/maint/CommonConfirmDialog.vue'
import MasterFormFields from '@/components/maint/MasterFormFields.vue'
import MasterDetailSemesterList from '@/components/maint/master-detail/SemesterList.vue'
import MasterDetailSemesterPanel from '@/components/maint/master-detail/SemesterPanel.vue'
import DetailNavigation from '@/components/maint/master-detail/DetailNavigation.vue'
import DetailSidePanel from '@/components/maint/master-detail/DetailSidePanel.vue'
import MasterFileFormFields from '@/components/maint/MasterFileFormFields.vue'
import MntDialogCard from '@/components/maint/MntDialogCard.vue'
import MntRecordNavToolbar from '@/components/maint/MntRecordNavToolbar.vue'
import PageMaint from '@/components/maint/PageMaint.vue'
+6 -6
View File
@@ -185,7 +185,7 @@
@update:model-value="handleDialogVisibility"
>
<div class="dialog-panel" :class="{ 'is-mobile': isMobile }">
<master-detail-b-semester-mobile-panel
<DetailFullHeightPanel
v-if="isMobile && activeMobilePanel === 'detail'"
:is-form-locked="isFormLocked"
:is-view-mode="isViewMode"
@@ -267,7 +267,7 @@
]"
@submit.prevent="requestSaveConfirmation"
>
<master-form-fields
<MasterFileFormFields
:departments="departments"
:enroll-years="enrollYears"
:field-errors="fieldErrors"
@@ -281,7 +281,7 @@
<v-divider />
<master-detail-b-semester-section
<DetailCollapseGropus
:is-form-locked="isFormLocked"
:is-form-readonly="isFormReadonly"
:is-mobile="isMobile"
@@ -503,9 +503,9 @@ import { computed, nextTick, ref, watch } from 'vue'
import { useDisplay } from 'vuetify'
import ConfirmDialog from '@/components/maint/CommonConfirmDialog.vue'
import MasterFormFields from '@/components/maint/MasterFormFields.vue'
import MasterDetailBSemesterMobilePanel from '@/components/maint/master-detail/SemesterMobilePanel.vue'
import MasterDetailBSemesterSection from '@/components/maint/master-detail/SemesterSection.vue'
import DetailCollapseGropus from '@/components/maint/master-detail/DetailCollapseGropus.vue'
import DetailFullHeightPanel from '@/components/maint/master-detail/DetailFullHeightPanel.vue'
import MasterFileFormFields from '@/components/maint/MasterFileFormFields.vue'
import MntDialogCard from '@/components/maint/MntDialogCard.vue'
import MntRecordNavToolbar from '@/components/maint/MntRecordNavToolbar.vue'
import PageMaint from '@/components/maint/PageMaint.vue'
+4 -4
View File
@@ -266,7 +266,7 @@
]"
@submit.prevent="requestSaveConfirmation"
>
<master-form-fields
<MasterFileFormFields
:departments="departments"
:enroll-years="enrollYears"
:field-errors="fieldErrors"
@@ -279,7 +279,7 @@
/>
<v-divider />
<master-detail-c-course-section
<DetailSimpleList
:is-form-locked="isFormLocked"
:is-form-readonly="isFormReadonly"
:is-mobile="isMobile"
@@ -490,9 +490,9 @@ import { computed, nextTick, ref, watch } from 'vue'
import { useDisplay } from 'vuetify'
import ConfirmDialog from '@/components/maint/CommonConfirmDialog.vue'
import MasterFormFields from '@/components/maint/MasterFormFields.vue'
import MasterDetailCCourseMobilePanel from '@/components/maint/master-detail/CourseMobilePanel.vue'
import MasterDetailCCourseSection from '@/components/maint/master-detail/CourseSection.vue'
import DetailSimpleList from '@/components/maint/master-detail/DetailSimpleList.vue'
import MasterFileFormFields from '@/components/maint/MasterFileFormFields.vue'
import MntDialogCard from '@/components/maint/MntDialogCard.vue'
import MntRecordNavToolbar from '@/components/maint/MntRecordNavToolbar.vue'
import PageMaint from '@/components/maint/PageMaint.vue'