课程/教学班归档
This commit is contained in:
1 parent
df87aa16d3
commit
e165964a77
6 files changed
+111
-27
No files matched your search
@@ -692,7 +692,7 @@ onMounted(async () => {
|
||||
<el-table-column label="操作" width="130" align="right">
|
||||
<template #default="{ row }">
|
||||
<el-button v-if="row.sheet" type="primary" text :icon="EditPen" @click="openDetail(row)">打开成绩单</el-button>
|
||||
<el-button v-else type="primary" text :icon="Plus" @click="openCreate(row)">建立成绩单</el-button>
|
||||
<el-button v-else type="primary" text :icon="Plus" :disabled="row.taskStatus !== 'Published'" @click="openCreate(row)">建立成绩单</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
@@ -928,7 +928,7 @@ onMounted(async () => {
|
||||
<div v-for="session in row.sessions" :key="session.id" class="student-session-option">
|
||||
<div><b>{{ formatSessionTime(session) }}</b><span>{{ session.campusName }} · {{ session.buildingName }} {{ session.classroomName }} · 指导:{{ session.instructorNames?.join('、') || '待指定' }}</span></div>
|
||||
<el-button v-if="session.canManage" size="small" text @click="showParticipants(row, session)">预约名单</el-button>
|
||||
<el-button v-if="session.canManage && session.status !== 'Cancelled'" size="small" text type="danger" @click="cancelSession(row, session)">{{ row.status === 'Draft' ? '删除' : '取消' }}</el-button>
|
||||
<el-button v-if="session.canManage && session.status !== 'Cancelled'" size="small" text type="danger" :disabled="row.teachingTaskStatus !== 'Published'" @click="cancelSession(row, session)">{{ row.status === 'Draft' ? '删除' : '取消' }}</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</el-popover>
|
||||
@@ -945,18 +945,18 @@ onMounted(async () => {
|
||||
<el-table-column label="操作" width="244" fixed="right" align="right">
|
||||
<template #default="{ row }">
|
||||
<template v-if="row.status === 'Draft'">
|
||||
<el-button size="small" text @click="openEditProject(row)">编辑</el-button>
|
||||
<el-button size="small" text type="danger" @click="deleteProject(row)">删除</el-button>
|
||||
<el-button size="small" text :disabled="row.teachingTaskStatus !== 'Published'" @click="openEditProject(row)">编辑</el-button>
|
||||
<el-button size="small" text type="danger" :disabled="row.teachingTaskStatus !== 'Published'" @click="deleteProject(row)">删除</el-button>
|
||||
<el-button
|
||||
size="small"
|
||||
type="primary"
|
||||
:disabled="row.arrangementMode === 'Centralized' ? !row.scheduleEntry : !row.sessions.some((item: any) => item.status !== 'Cancelled')"
|
||||
:disabled="row.teachingTaskStatus !== 'Published' || (row.arrangementMode === 'Centralized' ? !row.scheduleEntry : !row.sessions.some((item: any) => item.status !== 'Cancelled'))"
|
||||
@click="publishProject(row)"
|
||||
>发布</el-button>
|
||||
</template>
|
||||
<template v-else-if="row.status === 'Published'">
|
||||
<el-button size="small" text @click="openCorrectPublishedProject(row)">修正内容</el-button>
|
||||
<el-button size="small" text @click="closeProject(row)">关闭项目</el-button>
|
||||
<el-button size="small" text :disabled="row.teachingTaskStatus !== 'Published'" @click="openCorrectPublishedProject(row)">修正内容</el-button>
|
||||
<el-button size="small" text :disabled="row.teachingTaskStatus !== 'Published'" @click="closeProject(row)">关闭项目</el-button>
|
||||
</template>
|
||||
<el-button
|
||||
v-if="row.status !== 'Closed' && row.arrangementMode === 'SelfScheduled'"
|
||||
@@ -1028,12 +1028,12 @@ onMounted(async () => {
|
||||
</div>
|
||||
<el-tag :type="sessionTagType(session)" size="small" effect="plain">余 {{ session.remainingCount }} / {{ session.capacity }}</el-tag>
|
||||
<el-button v-if="row.myBooking?.experimentSessionId === session.id" size="small" type="success" :icon="Check" disabled>已预约</el-button>
|
||||
<el-button v-else size="small" type="primary" plain :disabled="row.status !== 'Published' || !!row.myBooking || session.remainingCount <= 0" @click="book(row, session)">预约</el-button>
|
||||
<el-button v-else size="small" type="primary" plain :disabled="row.status !== 'Published' || row.teachingTaskStatus !== 'Published' || !!row.myBooking || session.remainingCount <= 0" @click="book(row, session)">预约</el-button>
|
||||
</div>
|
||||
<el-empty v-if="!row.sessions.length" :image-size="42" description="暂无有效实验场次" />
|
||||
</div>
|
||||
</el-popover>
|
||||
<el-button v-if="row.myBooking && row.status === 'Published'" size="small" text type="danger" @click="cancelBooking(row)">取消</el-button>
|
||||
<el-button v-if="row.myBooking && row.status === 'Published' && row.teachingTaskStatus === 'Published'" size="small" text type="danger" @click="cancelBooking(row)">取消</el-button>
|
||||
</template>
|
||||
<span v-else class="table-muted">无需预约</span>
|
||||
</template>
|
||||
@@ -1067,11 +1067,11 @@ onMounted(async () => {
|
||||
</div>
|
||||
<el-tag :type="sessionTagType(session)" size="small" effect="plain">余 {{ session.remainingCount }} / {{ session.capacity }}</el-tag>
|
||||
<el-button v-if="row.myBooking?.experimentSessionId === session.id" size="small" type="success" disabled>已预约</el-button>
|
||||
<el-button v-else size="small" type="primary" plain :disabled="row.status !== 'Published' || !!row.myBooking || session.remainingCount <= 0" @click="book(row, session)">预约</el-button>
|
||||
<el-button v-else size="small" type="primary" plain :disabled="row.status !== 'Published' || row.teachingTaskStatus !== 'Published' || !!row.myBooking || session.remainingCount <= 0" @click="book(row, session)">预约</el-button>
|
||||
</article>
|
||||
</div>
|
||||
<span v-else class="table-muted">暂无有效实验场次</span>
|
||||
<el-button v-if="row.myBooking && row.status === 'Published'" class="mobile-cancel-booking" size="small" text type="danger" @click="cancelBooking(row)">取消预约</el-button>
|
||||
<el-button v-if="row.myBooking && row.status === 'Published' && row.teachingTaskStatus === 'Published'" class="mobile-cancel-booking" size="small" text type="danger" @click="cancelBooking(row)">取消预约</el-button>
|
||||
</template>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
@@ -779,12 +779,12 @@ onUnmounted(() => {
|
||||
v-for="task in tasks"
|
||||
:key="task.id"
|
||||
type="button"
|
||||
:class="{ active: selectedTask?.id === task.id }"
|
||||
:class="{ active: selectedTask?.id === task.id, 'is-archived': task.status === 'Closed' }"
|
||||
@click="selectTask(task)"
|
||||
>
|
||||
<span>{{ task.courseCode }} · {{ task.taskNumber }}</span>
|
||||
<b>{{ task.courseName }}</b>
|
||||
<small>{{ task.termName }} · {{ task.studentCount }} 名学生 · {{ task.sheetCount }} 张考勤表</small>
|
||||
<small>{{ task.termName }} · {{ task.studentCount }} 名学生 · {{ task.sheetCount }} 张考勤表{{ task.status === 'Closed' ? ' · 已归档' : '' }}</small>
|
||||
</button>
|
||||
<el-empty v-if="!tasks.length" description="没有可点名的教学班" />
|
||||
<el-pagination
|
||||
@@ -810,7 +810,7 @@ onUnmounted(() => {
|
||||
<strong>{{ selectedTask.courseName }}</strong>
|
||||
<span>{{ selectedTask.taskNumber }} · {{ selectedTask.studentCount }} 名学生</span>
|
||||
</div>
|
||||
<el-button type="primary" :icon="Plus" @click="openCreate">新建考勤表</el-button>
|
||||
<el-button type="primary" :icon="Plus" :disabled="selectedTask.status !== 'Published'" @click="openCreate">新建考勤表</el-button>
|
||||
</header>
|
||||
<div class="attendance-sheet-filters">
|
||||
<el-input
|
||||
@@ -1344,6 +1344,7 @@ onUnmounted(() => {
|
||||
background: #e9f3f5;
|
||||
border-left: 3px solid #176b87;
|
||||
}
|
||||
.attendance-task-list button.is-archived { opacity: .58; }
|
||||
.attendance-task-list button > span {
|
||||
color: var(--teal);
|
||||
font: 700 10px/1.2 Consolas, monospace;
|
||||
|
||||
Reference in new issue
Block a user