【新增】试卷任务前端分类,监控管理前端

This commit is contained in:
YOHO\20373
2025-05-05 00:05:46 +08:00
committed by 陆光LG
parent f796f753a8
commit eda93f9810
134 changed files with 19516 additions and 493 deletions

View File

@@ -13,11 +13,11 @@
@submit.prevent=""
>
<el-form-item label="试卷ID" prop="taskId">
<el-input clearable v-model="form.taskId" placeholder="请输入试卷ID" disabled/>
<el-input clearable v-model="form.taskId" placeholder="请输入试卷ID" disabled/>
</el-form-item>
<el-form-item label="批次" prop="batch">
<el-input clearable v-model="form.batch" placeholder="请输入批次" disabled/>
<el-input clearable v-model="form.batch" placeholder="请输入批次" disabled/>
</el-form-item>
<el-form-item label="考试开始时间" prop="startTime">

View File

@@ -3,9 +3,8 @@
<Dialog v-model="visible" :title="'试卷调整'" width="860" @open="handleOpen" center>
<div>{{rows}}</div>
<div>{{taskId}}</div>
<el-transfer v-model="value" :data="data" />
<el-transfer v-model="value" :data="data" :titles="['未选试卷', '已选试卷']" />
<template #footer>
<el-button @click="handleCancel">取消</el-button>
<el-button type="primary" :loading="loading" @click="save">保存</el-button>
@@ -18,7 +17,7 @@ import { ref, nextTick } from 'vue';
import { useFormData } from '@/utils/use-form-data';
import { getPaperListByType } from '@/api/system/paper';
import { setSessions } from '@/api/system/session';
import type { FormInstance } from 'element-plus' // ✅ 引入 FormInstance 类型
import type { FormInstance } from 'element-plus'
const message = useMessage();
const props = defineProps({
@@ -60,11 +59,12 @@ const handleOpen = async () => {
rows: props.rows
});
data.value = (res?.paperId || []).map((item: string) => ({
key: item,
label: item,
disabled: false
}));
data.value = Object.entries(res?.paperId || {}).map(([id, name]) => ({
key: id,
label: String(name), // 👈 关键在这里
disabled: false
}));
value.value = res?.selectedIds || [];

View File

@@ -44,11 +44,16 @@
<el-table-column label="开始考试前分钟,允许入场" align="center" prop="allowEntry" />
<el-table-column label="开始考试后分钟,禁止入场" align="center" prop="endAllowEntry" />
<el-table-column label="开始考试后分钟,允许交卷" align="center" prop="allowSubmission" />
<el-table-column label="是否启用" align="center" prop="status">
<template #default="scope">
<dict-tag :type="DICT_TYPE.SYS_YES_NO" :value="scope.row.status" />
</template>
</el-table-column>
<el-table-column label="启用状态" align="center" prop="status" width="120">
<template #default="scope">
<el-switch
v-model="scope.row.status"
:active-value="'0'"
:inactive-value="'1'"
@change="handleStatusChange(scope.row)"
/>
</template>
</el-table-column>
<el-table-column label="操作" align="center">
<template #default="scope">
<el-button
@@ -147,7 +152,7 @@ const getList = async () => {
try {
const res = await SmsChannelApi.pageSessions(queryParams)
console.log(res)
list.value = res
list.value = res.list
total.value = res.total
} finally {
loading.value = false
@@ -203,6 +208,25 @@ const openEdit = (type: string, row?: object) => {
}
const handleStatusChange = async (row: any) => {
try {
loading.value = true;
// 调用API更新状态
await SmsChannelApi.updateSessionStatus(row.sessionId, row.status);
message.success(row.status === '0' ? '已启用' : '已停用');
// 刷新列表
await getList();
} catch (error) {
// 如果请求失败,恢复原来的状态
row.status = row.status === '0' ? '1' : '0';
message.error('状态更新失败');
} finally {
loading.value = false;
}
};
const reload = (where) => {
getList()
};