feat: Implement detailed semester management components
This commit is contained in:
@@ -192,7 +192,7 @@
|
|||||||
class="detail-panel-wrapper"
|
class="detail-panel-wrapper"
|
||||||
:class="{ 'is-active': !!selectedSemesterId, 'is-mobile': isMobile }"
|
:class="{ 'is-active': !!selectedSemesterId, 'is-mobile': isMobile }"
|
||||||
>
|
>
|
||||||
<master-detail-semester-panel
|
<DetailSidePanel
|
||||||
v-model:detail-form="detailForm"
|
v-model:detail-form="detailForm"
|
||||||
:is-detail-editing="isDetailEditing"
|
:is-detail-editing="isDetailEditing"
|
||||||
:is-mobile="isMobile"
|
:is-mobile="isMobile"
|
||||||
@@ -268,7 +268,7 @@
|
|||||||
:class="{ 'form-readonly': isFormReadonly }"
|
:class="{ 'form-readonly': isFormReadonly }"
|
||||||
@submit.prevent="requestSaveConfirmation"
|
@submit.prevent="requestSaveConfirmation"
|
||||||
>
|
>
|
||||||
<master-form-fields
|
<MasterFileFormFields
|
||||||
:departments="departments"
|
:departments="departments"
|
||||||
:enroll-years="enrollYears"
|
:enroll-years="enrollYears"
|
||||||
:field-errors="fieldErrors"
|
:field-errors="fieldErrors"
|
||||||
@@ -284,7 +284,7 @@
|
|||||||
|
|
||||||
<!-- 學期成績紀錄區塊 -->
|
<!-- 學期成績紀錄區塊 -->
|
||||||
<!-- 說明:顯示該學生的所有學期紀錄,並提供新增與選取功能 -->
|
<!-- 說明:顯示該學生的所有學期紀錄,並提供新增與選取功能 -->
|
||||||
<master-detail-semester-list
|
<DetailNavigation
|
||||||
:is-mobile="isMobile"
|
:is-mobile="isMobile"
|
||||||
:is-view-mode="isViewMode"
|
:is-view-mode="isViewMode"
|
||||||
:selected-semester-id="selectedSemesterId"
|
:selected-semester-id="selectedSemesterId"
|
||||||
@@ -424,9 +424,9 @@ import { computed, nextTick, ref, watch } from 'vue'
|
|||||||
import { useDisplay } from 'vuetify'
|
import { useDisplay } from 'vuetify'
|
||||||
|
|
||||||
import ConfirmDialog from '@/components/maint/CommonConfirmDialog.vue'
|
import ConfirmDialog from '@/components/maint/CommonConfirmDialog.vue'
|
||||||
import MasterFormFields from '@/components/maint/MasterFormFields.vue'
|
import DetailNavigation from '@/components/maint/master-detail/DetailNavigation.vue'
|
||||||
import MasterDetailSemesterList from '@/components/maint/master-detail/SemesterList.vue'
|
import DetailSidePanel from '@/components/maint/master-detail/DetailSidePanel.vue'
|
||||||
import MasterDetailSemesterPanel from '@/components/maint/master-detail/SemesterPanel.vue'
|
import MasterFileFormFields from '@/components/maint/MasterFileFormFields.vue'
|
||||||
import MntDialogCard from '@/components/maint/MntDialogCard.vue'
|
import MntDialogCard from '@/components/maint/MntDialogCard.vue'
|
||||||
import MntRecordNavToolbar from '@/components/maint/MntRecordNavToolbar.vue'
|
import MntRecordNavToolbar from '@/components/maint/MntRecordNavToolbar.vue'
|
||||||
import PageMaint from '@/components/maint/PageMaint.vue'
|
import PageMaint from '@/components/maint/PageMaint.vue'
|
||||||
|
|||||||
@@ -185,7 +185,7 @@
|
|||||||
@update:model-value="handleDialogVisibility"
|
@update:model-value="handleDialogVisibility"
|
||||||
>
|
>
|
||||||
<div class="dialog-panel" :class="{ 'is-mobile': isMobile }">
|
<div class="dialog-panel" :class="{ 'is-mobile': isMobile }">
|
||||||
<master-detail-b-semester-mobile-panel
|
<DetailFullHeightPanel
|
||||||
v-if="isMobile && activeMobilePanel === 'detail'"
|
v-if="isMobile && activeMobilePanel === 'detail'"
|
||||||
:is-form-locked="isFormLocked"
|
:is-form-locked="isFormLocked"
|
||||||
:is-view-mode="isViewMode"
|
:is-view-mode="isViewMode"
|
||||||
@@ -267,7 +267,7 @@
|
|||||||
]"
|
]"
|
||||||
@submit.prevent="requestSaveConfirmation"
|
@submit.prevent="requestSaveConfirmation"
|
||||||
>
|
>
|
||||||
<master-form-fields
|
<MasterFileFormFields
|
||||||
:departments="departments"
|
:departments="departments"
|
||||||
:enroll-years="enrollYears"
|
:enroll-years="enrollYears"
|
||||||
:field-errors="fieldErrors"
|
:field-errors="fieldErrors"
|
||||||
@@ -281,7 +281,7 @@
|
|||||||
|
|
||||||
<v-divider />
|
<v-divider />
|
||||||
|
|
||||||
<master-detail-b-semester-section
|
<DetailCollapseGropus
|
||||||
:is-form-locked="isFormLocked"
|
:is-form-locked="isFormLocked"
|
||||||
:is-form-readonly="isFormReadonly"
|
:is-form-readonly="isFormReadonly"
|
||||||
:is-mobile="isMobile"
|
:is-mobile="isMobile"
|
||||||
@@ -503,9 +503,9 @@ import { computed, nextTick, ref, watch } from 'vue'
|
|||||||
import { useDisplay } from 'vuetify'
|
import { useDisplay } from 'vuetify'
|
||||||
|
|
||||||
import ConfirmDialog from '@/components/maint/CommonConfirmDialog.vue'
|
import ConfirmDialog from '@/components/maint/CommonConfirmDialog.vue'
|
||||||
import MasterFormFields from '@/components/maint/MasterFormFields.vue'
|
import DetailCollapseGropus from '@/components/maint/master-detail/DetailCollapseGropus.vue'
|
||||||
import MasterDetailBSemesterMobilePanel from '@/components/maint/master-detail/SemesterMobilePanel.vue'
|
import DetailFullHeightPanel from '@/components/maint/master-detail/DetailFullHeightPanel.vue'
|
||||||
import MasterDetailBSemesterSection from '@/components/maint/master-detail/SemesterSection.vue'
|
import MasterFileFormFields from '@/components/maint/MasterFileFormFields.vue'
|
||||||
import MntDialogCard from '@/components/maint/MntDialogCard.vue'
|
import MntDialogCard from '@/components/maint/MntDialogCard.vue'
|
||||||
import MntRecordNavToolbar from '@/components/maint/MntRecordNavToolbar.vue'
|
import MntRecordNavToolbar from '@/components/maint/MntRecordNavToolbar.vue'
|
||||||
import PageMaint from '@/components/maint/PageMaint.vue'
|
import PageMaint from '@/components/maint/PageMaint.vue'
|
||||||
|
|||||||
@@ -266,7 +266,7 @@
|
|||||||
]"
|
]"
|
||||||
@submit.prevent="requestSaveConfirmation"
|
@submit.prevent="requestSaveConfirmation"
|
||||||
>
|
>
|
||||||
<master-form-fields
|
<MasterFileFormFields
|
||||||
:departments="departments"
|
:departments="departments"
|
||||||
:enroll-years="enrollYears"
|
:enroll-years="enrollYears"
|
||||||
:field-errors="fieldErrors"
|
:field-errors="fieldErrors"
|
||||||
@@ -279,7 +279,7 @@
|
|||||||
/>
|
/>
|
||||||
|
|
||||||
<v-divider />
|
<v-divider />
|
||||||
<master-detail-c-course-section
|
<DetailSimpleList
|
||||||
:is-form-locked="isFormLocked"
|
:is-form-locked="isFormLocked"
|
||||||
:is-form-readonly="isFormReadonly"
|
:is-form-readonly="isFormReadonly"
|
||||||
:is-mobile="isMobile"
|
:is-mobile="isMobile"
|
||||||
@@ -490,9 +490,9 @@ import { computed, nextTick, ref, watch } from 'vue'
|
|||||||
import { useDisplay } from 'vuetify'
|
import { useDisplay } from 'vuetify'
|
||||||
|
|
||||||
import ConfirmDialog from '@/components/maint/CommonConfirmDialog.vue'
|
import ConfirmDialog from '@/components/maint/CommonConfirmDialog.vue'
|
||||||
import MasterFormFields from '@/components/maint/MasterFormFields.vue'
|
|
||||||
import MasterDetailCCourseMobilePanel from '@/components/maint/master-detail/CourseMobilePanel.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 MntDialogCard from '@/components/maint/MntDialogCard.vue'
|
||||||
import MntRecordNavToolbar from '@/components/maint/MntRecordNavToolbar.vue'
|
import MntRecordNavToolbar from '@/components/maint/MntRecordNavToolbar.vue'
|
||||||
import PageMaint from '@/components/maint/PageMaint.vue'
|
import PageMaint from '@/components/maint/PageMaint.vue'
|
||||||
|
|||||||
Reference in New Issue
Block a user