refactor: update icon usage to use mdi imports for consistency
This commit is contained in:
@@ -13,6 +13,7 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { mdiAccountSchool, mdiBookOpenPageVariant, mdiChartPie, mdiCheckDecagram, mdiCloudDownload } from '@mdi/js'
|
||||
import { ref } from 'vue'
|
||||
import SKAnalysis from '@/components/SKAnalysis.vue'
|
||||
|
||||
@@ -21,7 +22,7 @@ const stats = ref([
|
||||
{
|
||||
title: '學生總數',
|
||||
value: '2,580',
|
||||
icon: 'mdi-account-school',
|
||||
icon: mdiAccountSchool,
|
||||
color: 'primary',
|
||||
label: '總學籍人數',
|
||||
total: '120,000',
|
||||
@@ -29,7 +30,7 @@ const stats = ref([
|
||||
{
|
||||
title: '平台訪問',
|
||||
value: '20,000',
|
||||
icon: 'mdi-chart-pie',
|
||||
icon: mdiChartPie,
|
||||
color: 'error',
|
||||
label: '今日訪問量',
|
||||
total: '500,000',
|
||||
@@ -37,7 +38,7 @@ const stats = ref([
|
||||
{
|
||||
title: '教材下載',
|
||||
value: '8,000',
|
||||
icon: 'mdi-cloud-download',
|
||||
icon: mdiCloudDownload,
|
||||
color: 'warning',
|
||||
label: '本月下載次數',
|
||||
total: '120,000',
|
||||
@@ -45,7 +46,7 @@ const stats = ref([
|
||||
{
|
||||
title: '圖書館借閱',
|
||||
value: '5,000',
|
||||
icon: 'mdi-book-open-page-variant',
|
||||
icon: mdiBookOpenPageVariant,
|
||||
color: 'success',
|
||||
label: '總借閱量',
|
||||
total: '50,000',
|
||||
@@ -76,6 +77,6 @@ const pie2Data = ref({
|
||||
value: 92,
|
||||
label: '全校平均',
|
||||
color: 'teal-lighten-1',
|
||||
icon: 'mdi-check-decagram',
|
||||
icon: mdiCheckDecagram,
|
||||
})
|
||||
</script>
|
||||
|
||||
+13
-12
@@ -10,6 +10,7 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { mdiAccountGroup, mdiBookOpenVariant, mdiCalendarCheck, mdiChartBar, mdiCog, mdiHammerWrench, mdiHome, mdiLayers, mdiLock, mdiMonitorShimmer, mdiSchool, mdiViewDashboard } from '@mdi/js'
|
||||
import { ref } from 'vue'
|
||||
import SKDashboard from '@/components/SKDashboard.vue'
|
||||
|
||||
@@ -21,7 +22,7 @@ const greetingTitle = ref('早安,王校長,開始您一天的工作吧!')
|
||||
const applications = ref([
|
||||
{
|
||||
name: '校務行政系統',
|
||||
icon: 'mdi-school',
|
||||
icon: mdiSchool,
|
||||
desc: '全校教職員工生學籍資料、人事資料、財產管理等核心系統入口。',
|
||||
group: '行政組',
|
||||
date: '2025-01-05',
|
||||
@@ -29,7 +30,7 @@ const applications = ref([
|
||||
},
|
||||
{
|
||||
name: '數位學習平台',
|
||||
icon: 'mdi-monitor-shimmer',
|
||||
icon: mdiMonitorShimmer,
|
||||
desc: '提供線上課程、作業繳交、測驗評量與師生互動討論功能。',
|
||||
group: '教學組',
|
||||
date: '2025-01-02',
|
||||
@@ -37,7 +38,7 @@ const applications = ref([
|
||||
},
|
||||
{
|
||||
name: '圖書館系統',
|
||||
icon: 'mdi-book-open-variant',
|
||||
icon: mdiBookOpenVariant,
|
||||
desc: '館藏查詢、圖書借閱、還書預約與電子書資源整合平台。',
|
||||
group: '圖書館',
|
||||
date: '2024-12-28',
|
||||
@@ -45,7 +46,7 @@ const applications = ref([
|
||||
},
|
||||
{
|
||||
name: '學生請假系統',
|
||||
icon: 'mdi-calendar-check',
|
||||
icon: mdiCalendarCheck,
|
||||
desc: '學生線上請假申請、導師審核、生輔組備查流程電子化。',
|
||||
group: '學務處',
|
||||
date: '2024-12-25',
|
||||
@@ -53,7 +54,7 @@ const applications = ref([
|
||||
},
|
||||
{
|
||||
name: '報修系統',
|
||||
icon: 'mdi-hammer-wrench',
|
||||
icon: mdiHammerWrench,
|
||||
desc: '校園設施設備故障通報、維修進度查詢與滿意度調查。',
|
||||
group: '總務處',
|
||||
date: '2024-12-20',
|
||||
@@ -61,7 +62,7 @@ const applications = ref([
|
||||
},
|
||||
{
|
||||
name: '會議室預約',
|
||||
icon: 'mdi-account-group',
|
||||
icon: mdiAccountGroup,
|
||||
desc: '校內各大型會議室、視聽教室場地查詢與線上預約登記。',
|
||||
group: '總務處',
|
||||
date: '2024-12-15',
|
||||
@@ -101,12 +102,12 @@ const announcements = ref([
|
||||
])
|
||||
|
||||
const quickNavs = ref([
|
||||
{ title: '首頁', icon: 'mdi-home', color: 'primary' },
|
||||
{ title: '控制台', icon: 'mdi-view-dashboard', color: 'error' },
|
||||
{ title: '組件', icon: 'mdi-layers', color: 'warning' },
|
||||
{ title: '系統管理', icon: 'mdi-cog', color: 'success' },
|
||||
{ title: '權限', icon: 'mdi-lock', color: 'purple' },
|
||||
{ title: '圖表', icon: 'mdi-chart-bar', color: 'info' },
|
||||
{ title: '首頁', icon: mdiHome, color: 'primary' },
|
||||
{ title: '控制台', icon: mdiViewDashboard, color: 'error' },
|
||||
{ title: '組件', icon: mdiLayers, color: 'warning' },
|
||||
{ title: '系統管理', icon: mdiCog, color: 'success' },
|
||||
{ title: '權限', icon: mdiLock, color: 'purple' },
|
||||
{ title: '圖表', icon: mdiChartBar, color: 'info' },
|
||||
])
|
||||
|
||||
const todos = ref([
|
||||
|
||||
+3
-2
@@ -48,11 +48,11 @@ v-if="resolveNewsItem(wrapped).isNew" class="ml-2" color="primary" size="x-small
|
||||
</div>
|
||||
<div class="d-flex ga-4 mt-3 text-caption text-medium-emphasis">
|
||||
<div class="d-flex align-center ga-1">
|
||||
<v-icon size="14">mdi-folder-outline</v-icon>
|
||||
<v-icon size="14" :icon="mdiFolderOutline" />
|
||||
<span>{{ resolveNewsItem(wrapped).dept }}</span>
|
||||
</div>
|
||||
<div class="d-flex align-center ga-1">
|
||||
<v-icon size="14">mdi-eye-outline</v-icon>
|
||||
<v-icon size="14" :icon="mdiEyeOutline" />
|
||||
<span>{{ resolveNewsItem(wrapped).views }} 次瀏覽</span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -119,6 +119,7 @@ class="d-flex flex-column align-center ga-2 text-center py-4 px-2 quick-item" va
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { mdiEyeOutline, mdiFolderOutline } from '@mdi/js'
|
||||
import { ref } from 'vue'
|
||||
import { useMessageStore } from '@/stores/messages'
|
||||
import { useSnackbarStore } from '@/stores/snackbar'
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<v-col cols="12" md="8" sm="10">
|
||||
<v-card border class="pa-6" variant="flat">
|
||||
<v-card-title class="d-flex align-center ga-3">
|
||||
<v-icon :color="color" size="36">{{ icon }}</v-icon>
|
||||
<v-icon :color="color" size="36" :icon="icon" />
|
||||
<div class="text-h5">{{ title }}</div>
|
||||
<div class="text-caption text-medium-emphasis">{{ codeLabel }}</div>
|
||||
<v-spacer />
|
||||
@@ -35,6 +35,7 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { mdiAlertCircleOutline } from '@mdi/js'
|
||||
import { computed } from 'vue'
|
||||
import { useRoute, useRouter } from 'vue-router'
|
||||
|
||||
@@ -51,7 +52,7 @@ type Props = {
|
||||
|
||||
const props = withDefaults(defineProps<Props>(), {
|
||||
description: undefined,
|
||||
icon: 'mdi-alert-circle-outline',
|
||||
icon: mdiAlertCircleOutline,
|
||||
color: 'warning',
|
||||
showHome: true,
|
||||
showLogin: true,
|
||||
|
||||
@@ -3,11 +3,12 @@
|
||||
:code="403"
|
||||
color="warning"
|
||||
description="你沒有權限存取此頁面或操作。"
|
||||
icon="mdi-shield-lock-outline"
|
||||
:icon="mdiShieldLockOutline"
|
||||
title="沒有權限"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { mdiShieldLockOutline } from '@mdi/js'
|
||||
import ErrorShell from './ErrorShell.vue'
|
||||
</script>
|
||||
|
||||
@@ -3,13 +3,14 @@
|
||||
code="MAINTENANCE"
|
||||
color="info"
|
||||
description="目前系統正在維護,請稍後再試。"
|
||||
icon="mdi-tools"
|
||||
:icon="mdiTools"
|
||||
:show-login="false"
|
||||
title="系統維護中"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { mdiTools } from '@mdi/js'
|
||||
import ErrorShell from './ErrorShell.vue'
|
||||
</script>
|
||||
|
||||
|
||||
@@ -3,12 +3,13 @@
|
||||
code="NETWORK"
|
||||
color="warning"
|
||||
description="無法連線到伺服器,請檢查網路或稍後再試。"
|
||||
icon="mdi-wifi-off"
|
||||
:icon="mdiWifiOff"
|
||||
title="網路連線異常"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { mdiWifiOff } from '@mdi/js'
|
||||
import ErrorShell from './ErrorShell.vue'
|
||||
</script>
|
||||
|
||||
|
||||
@@ -3,12 +3,13 @@
|
||||
:code="404"
|
||||
color="info"
|
||||
description="你輸入的網址不存在,或頁面已被移除。"
|
||||
icon="mdi-map-marker-question-outline"
|
||||
:icon="mdiMapMarkerQuestionOutline"
|
||||
:show-login="false"
|
||||
title="找不到頁面"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { mdiMapMarkerQuestionOutline } from '@mdi/js'
|
||||
import ErrorShell from './ErrorShell.vue'
|
||||
</script>
|
||||
|
||||
@@ -3,12 +3,13 @@
|
||||
:code="500"
|
||||
color="error"
|
||||
description="伺服器發生非預期錯誤,請稍後再試。"
|
||||
icon="mdi-server"
|
||||
:icon="mdiServer"
|
||||
title="系統發生錯誤"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { mdiServer } from '@mdi/js'
|
||||
import ErrorShell from './ErrorShell.vue'
|
||||
</script>
|
||||
|
||||
|
||||
@@ -3,12 +3,13 @@
|
||||
:code="503"
|
||||
color="warning"
|
||||
description="服務目前無法使用,請稍後再試。"
|
||||
icon="mdi-server-off"
|
||||
:icon="mdiServerOff"
|
||||
title="服務暫時無法使用"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { mdiServerOff } from '@mdi/js'
|
||||
import ErrorShell from './ErrorShell.vue'
|
||||
</script>
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
</v-chip>
|
||||
<v-chip color="info" variant="tonal">筆數 {{ filteredStudents.length }}</v-chip>
|
||||
<v-spacer />
|
||||
<v-btn flat prepend-icon="mdi-magnify" @click="isSearchVisible = !isSearchVisible">條件搜尋</v-btn>
|
||||
<v-btn flat :prepend-icon="mdiMagnify" @click="isSearchVisible = !isSearchVisible">條件搜尋</v-btn>
|
||||
<v-switch v-model="isBulkEditEnabled" color="primary" hide-details label="啟用編輯" />
|
||||
</v-card-title>
|
||||
|
||||
@@ -40,16 +40,16 @@ v-model="search.department" :class="{ 'select-hide-arrow': !isBulkEditEnabled }"
|
||||
|
||||
<!-- 操作 -->
|
||||
<v-row v-if="isBulkEditEnabled" align="center" class="mb-2 ga-1" dense>
|
||||
<v-btn :disabled="!hasSelectedRows" prepend-icon="mdi-delete" variant="outlined" @click="deleteSelectedRows">
|
||||
<v-btn :disabled="!hasSelectedRows" :prepend-icon="mdiDelete" variant="outlined" @click="deleteSelectedRows">
|
||||
批次刪除
|
||||
</v-btn>
|
||||
<v-spacer></v-spacer>
|
||||
<v-btn
|
||||
color="primary" :disabled="!hasAnyChange" prepend-icon="mdi-content-save" variant="outlined"
|
||||
color="primary" :disabled="!hasAnyChange" :prepend-icon="mdiContentSave" variant="outlined"
|
||||
@click="saveAllRows">
|
||||
儲存變更
|
||||
</v-btn>
|
||||
<v-btn :disabled="!hasAnyChange" prepend-icon="mdi-restore" variant="text" @click="resetAllRows">
|
||||
<v-btn :disabled="!hasAnyChange" :prepend-icon="mdiRestore" variant="text" @click="resetAllRows">
|
||||
取消變更
|
||||
</v-btn>
|
||||
</v-row>
|
||||
@@ -142,6 +142,7 @@ color="error" :disabled="!isBulkEditEnabled" size="small" variant="text"
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { mdiContentSave, mdiDelete, mdiMagnify, mdiRestore } from '@mdi/js'
|
||||
import { computed, nextTick, onBeforeUnmount, onMounted, ref, watch } from 'vue'
|
||||
import { type StudentRecord, useStudentStore } from '@/stores/students'
|
||||
|
||||
|
||||
@@ -28,8 +28,8 @@ v-model="search.grade" density="compact" hide-details item-title="title" item-va
|
||||
<v-select v-model="search.status" density="compact" hide-details :items="statuses" variant="outlined" />
|
||||
</v-col>
|
||||
<v-col class="d-flex justify-end align-end flex-grow-1 ga-2" cols="12" md="auto">
|
||||
<v-btn prepend-icon="mdi-broom" variant="text" @click="resetSearch">清除</v-btn>
|
||||
<v-btn color="primary" disabled prepend-icon="mdi-magnify" variant="tonal">查詢</v-btn>
|
||||
<v-btn :prepend-icon="mdiBroom" variant="text" @click="resetSearch">清除</v-btn>
|
||||
<v-btn color="primary" disabled :prepend-icon="mdiMagnify" variant="tonal">查詢</v-btn>
|
||||
</v-col>
|
||||
</template>
|
||||
<template #table>
|
||||
@@ -47,14 +47,14 @@ class="student-table" density="compact" fixed-header :headers="tableHeaders" hei
|
||||
</template>
|
||||
<template #[`item.actions`]="{ item }">
|
||||
<div class="d-flex ga-1">
|
||||
<v-btn color="info" prepend-icon="mdi-eye" size="small" variant="text" @click="openViewDialog(item)">
|
||||
<v-btn color="info" :prepend-icon="mdiEye" size="small" variant="text" @click="openViewDialog(item)">
|
||||
檢視
|
||||
</v-btn>
|
||||
<v-btn color="primary" prepend-icon="mdi-pencil" size="small" variant="text" @click="openEditDialog(item)">
|
||||
<v-btn color="primary" :prepend-icon="mdiPencil" size="small" variant="text" @click="openEditDialog(item)">
|
||||
修改
|
||||
</v-btn>
|
||||
<v-btn
|
||||
color="error" prepend-icon="mdi-delete" size="small" variant="text"
|
||||
color="error" :prepend-icon="mdiDelete" size="small" variant="text"
|
||||
@click="requestDeleteConfirmation(item)">
|
||||
刪除
|
||||
</v-btn>
|
||||
@@ -79,11 +79,17 @@ class="dialog-overlay" :close-on-content-click="false" :model-value="dialogVisib
|
||||
v-if="!isMobile || activeMobilePanel === 'detail'" class="detail-panel-wrapper"
|
||||
:class="{ 'is-active': !!selectedSemesterId, 'is-mobile': isMobile }">
|
||||
<master-detail-semester-panel
|
||||
:detail-form="detailForm" :is-detail-editing="isDetailEditing"
|
||||
:is-mobile="isMobile" :is-view-mode="isViewMode" :selected-semester="selectedSemester"
|
||||
@add-course="addCourseToDetail" @cancel-edit="cancelDetailEdit" @close="closeDetailPanel"
|
||||
@delete="handleDeleteSemester" @remove-course="removeCourseFromDetail" @save-edit="saveDetailEdit"
|
||||
@start-edit="startDetailEdit" />
|
||||
v-model:detail-form="detailForm"
|
||||
:is-detail-editing="isDetailEditing"
|
||||
:is-mobile="isMobile"
|
||||
:is-view-mode="isViewMode"
|
||||
:selected-semester="selectedSemester"
|
||||
@cancel-edit="cancelDetailEdit"
|
||||
@close="closeDetailPanel"
|
||||
@delete="handleDeleteSemester"
|
||||
@save-edit="saveDetailEdit"
|
||||
@start-edit="startDetailEdit"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<!-- 主檔區塊 (Master Card):學生基本資料與學期列表 -->
|
||||
@@ -257,6 +263,7 @@ v-model="confirmNavigateVisible" confirm-text="確定切換" max-width="480"
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { mdiBroom, mdiDelete, mdiEye, mdiMagnify, mdiPencil } from '@mdi/js'
|
||||
import { computed, nextTick, ref } from 'vue'
|
||||
import { useDisplay } from 'vuetify'
|
||||
|
||||
|
||||
@@ -28,8 +28,8 @@ v-model="search.grade" density="compact" hide-details item-title="title" item-va
|
||||
<v-select v-model="search.status" density="compact" hide-details :items="statuses" variant="outlined" />
|
||||
</v-col>
|
||||
<v-col class="d-flex justify-end align-end flex-grow-1 ga-2" cols="12" md="auto">
|
||||
<v-btn prepend-icon="mdi-broom" variant="text" @click="resetSearch">清除</v-btn>
|
||||
<v-btn color="primary" disabled prepend-icon="mdi-magnify" variant="tonal">查詢</v-btn>
|
||||
<v-btn :prepend-icon="mdiBroom" variant="text" @click="resetSearch">清除</v-btn>
|
||||
<v-btn color="primary" disabled :prepend-icon="mdiMagnify" variant="tonal">查詢</v-btn>
|
||||
</v-col>
|
||||
</template>
|
||||
<template #table>
|
||||
@@ -47,14 +47,14 @@ class="student-table" density="compact" fixed-header :headers="tableHeaders" hei
|
||||
</template>
|
||||
<template #[`item.actions`]="{ item }">
|
||||
<div class="d-flex ga-2">
|
||||
<v-btn color="info" prepend-icon="mdi-eye" size="small" variant="text" @click="openViewDialog(item)">
|
||||
<v-btn color="info" :prepend-icon="mdiEye" size="small" variant="text" @click="openViewDialog(item)">
|
||||
檢視
|
||||
</v-btn>
|
||||
<v-btn color="primary" prepend-icon="mdi-pencil" size="small" variant="text" @click="openEditDialog(item)">
|
||||
<v-btn color="primary" :prepend-icon="mdiPencil" size="small" variant="text" @click="openEditDialog(item)">
|
||||
修改
|
||||
</v-btn>
|
||||
<v-btn
|
||||
color="error" prepend-icon="mdi-delete" size="small" variant="text"
|
||||
color="error" :prepend-icon="mdiDelete" size="small" variant="text"
|
||||
@click="requestDeleteConfirmation(item)">
|
||||
刪除
|
||||
</v-btn>
|
||||
@@ -255,7 +255,7 @@ v-model="confirmDeleteCourseVisible" confirm-color="error"
|
||||
<v-dialog v-model="addCourseDialogVisible" max-width="420" persistent>
|
||||
<v-card>
|
||||
<v-card-title class="d-flex align-center">
|
||||
<v-icon color="primary" start>mdi-book-plus</v-icon>
|
||||
<v-icon color="primary" start :icon="mdiBookPlus" />
|
||||
加入課程
|
||||
</v-card-title>
|
||||
<v-card-text>
|
||||
@@ -290,6 +290,7 @@ v-model.number="addCourseForm.score" density="comfortable" hide-spin-buttons lab
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { mdiBookPlus, mdiBroom, mdiDelete, mdiEye, mdiMagnify, mdiPencil } from '@mdi/js'
|
||||
import { computed, nextTick, ref } from 'vue'
|
||||
import { useDisplay } from 'vuetify'
|
||||
|
||||
|
||||
@@ -28,8 +28,8 @@ v-model="search.grade" density="compact" hide-details item-title="title" item-va
|
||||
<v-select v-model="search.status" density="compact" hide-details :items="statuses" variant="outlined" />
|
||||
</v-col>
|
||||
<v-col class="d-flex justify-end align-end flex-grow-1 ga-2" cols="12" md="auto">
|
||||
<v-btn prepend-icon="mdi-broom" variant="text" @click="resetSearch">清除</v-btn>
|
||||
<v-btn color="primary" disabled prepend-icon="mdi-magnify" variant="tonal">查詢</v-btn>
|
||||
<v-btn :prepend-icon="mdiBroom" variant="text" @click="resetSearch">清除</v-btn>
|
||||
<v-btn color="primary" disabled :prepend-icon="mdiMagnify" variant="tonal">查詢</v-btn>
|
||||
</v-col>
|
||||
</template>
|
||||
<template #table>
|
||||
@@ -47,14 +47,14 @@ class="student-table" density="compact" fixed-header :headers="tableHeaders" hei
|
||||
</template>
|
||||
<template #[`item.actions`]="{ item }">
|
||||
<div class="d-flex ga-2">
|
||||
<v-btn color="info" prepend-icon="mdi-eye" size="small" variant="text" @click="openViewDialog(item)">
|
||||
<v-btn color="info" :prepend-icon="mdiEye" size="small" variant="text" @click="openViewDialog(item)">
|
||||
檢視
|
||||
</v-btn>
|
||||
<v-btn color="primary" prepend-icon="mdi-pencil" size="small" variant="text" @click="openEditDialog(item)">
|
||||
<v-btn color="primary" :prepend-icon="mdiPencil" size="small" variant="text" @click="openEditDialog(item)">
|
||||
修改
|
||||
</v-btn>
|
||||
<v-btn
|
||||
color="error" prepend-icon="mdi-delete" size="small" variant="text"
|
||||
color="error" :prepend-icon="mdiDelete" size="small" variant="text"
|
||||
@click="requestDeleteConfirmation(item)">
|
||||
刪除
|
||||
</v-btn>
|
||||
@@ -253,7 +253,7 @@ v-model="confirmNavigateVisible" confirm-text="確定切換" max-width="480"
|
||||
<v-dialog v-model="addCourseDialogVisible" max-width="480" persistent>
|
||||
<v-card>
|
||||
<v-card-title class="d-flex align-center">
|
||||
<v-icon color="primary" start>mdi-school</v-icon>
|
||||
<v-icon color="primary" start :icon="mdiSchool" />
|
||||
新增成績
|
||||
</v-card-title>
|
||||
<v-card-text>
|
||||
@@ -280,6 +280,7 @@ v-model.number="addCourseForm.score" density="comfortable" label="分數" type="
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { mdiBroom, mdiDelete, mdiEye, mdiMagnify, mdiPencil, mdiSchool } from '@mdi/js'
|
||||
import { computed, nextTick, ref } from 'vue'
|
||||
import { useDisplay } from 'vuetify'
|
||||
|
||||
|
||||
@@ -28,8 +28,8 @@ v-model="search.grade" density="compact" hide-details item-title="title" item-va
|
||||
<v-select v-model="search.status" density="compact" hide-details :items="statuses" variant="outlined" />
|
||||
</v-col>
|
||||
<v-col class="d-flex justify-end align-end flex-grow-1 ga-2" cols="12" md="auto">
|
||||
<v-btn prepend-icon="mdi-broom" variant="text" @click="resetSearch">清除</v-btn>
|
||||
<v-btn color="primary" disabled prepend-icon="mdi-magnify" variant="tonal">查詢</v-btn>
|
||||
<v-btn :prepend-icon="mdiBroom" variant="text" @click="resetSearch">清除</v-btn>
|
||||
<v-btn color="primary" disabled :prepend-icon="mdiMagnify" variant="tonal">查詢</v-btn>
|
||||
</v-col>
|
||||
</template>
|
||||
<template #table>
|
||||
@@ -47,14 +47,14 @@ class="student-table" density="compact" fixed-header :headers="tableHeaders"
|
||||
</template>
|
||||
<template #[`item.actions`]="{ item }">
|
||||
<div class="d-flex ga-2">
|
||||
<v-btn color="info" prepend-icon="mdi-eye" size="small" variant="text" @click="openViewDialog(item)">
|
||||
<v-btn color="info" :prepend-icon="mdiEye" size="small" variant="text" @click="openViewDialog(item)">
|
||||
檢視
|
||||
</v-btn>
|
||||
<v-btn color="primary" prepend-icon="mdi-pencil" size="small" variant="text" @click="openEditDialog(item)">
|
||||
<v-btn color="primary" :prepend-icon="mdiPencil" size="small" variant="text" @click="openEditDialog(item)">
|
||||
修改
|
||||
</v-btn>
|
||||
<v-btn
|
||||
color="error" prepend-icon="mdi-delete" size="small" variant="text"
|
||||
color="error" :prepend-icon="mdiDelete" size="small" variant="text"
|
||||
@click="requestDeleteConfirmation(item)">
|
||||
刪除
|
||||
</v-btn>
|
||||
@@ -238,6 +238,7 @@ v-model="confirmNavigateVisible" confirm-text="確定切換" max-width="480"
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { mdiBroom, mdiDelete, mdiEye, mdiMagnify, mdiPencil } from '@mdi/js'
|
||||
import { computed, nextTick, ref } from 'vue'
|
||||
import { useDisplay } from 'vuetify'
|
||||
import CommonConfirmDialog from '@/components/maintenance/CommonConfirmDialog.vue'
|
||||
|
||||
Reference in New Issue
Block a user