【修改】试卷任务参数,【新增】试题数据交互

This commit is contained in:
YOHO\20373
2025-05-16 15:11:47 +08:00
committed by 陆光LG
parent 47cfdee979
commit 9e969aadc1
35 changed files with 5304 additions and 117 deletions

View File

@@ -37,21 +37,31 @@
<!-- class="!w-240px"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="状态" prop="status">-->
<!-- <el-select-->
<!-- v-model="queryParams.status"-->
<!-- placeholder="请选择用户状态"-->
<!-- clearable-->
<!-- class="!w-240px"-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="dict in getIntDictOptions(DICT_TYPE.COMMON_STATUS)"-->
<!-- :key="dict.value"-->
<!-- :label="dict.label"-->
<!-- :value="dict.value"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="审核状态" prop="audit">
<el-select
v-model="queryParams.audit"
placeholder="请选择审核状态"
class="!w-240px"
clearable
>
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.QUESTION_AUDIT)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item> -->
<el-form-item>
<!-- 状态切换单独一行 -->
<el-radio-group v-model="queryParams.audit" @change="handleQuery">
<el-radio-button :label="''">全部</el-radio-button>
<el-radio-button :label="'0'">审核通过</el-radio-button>
<el-radio-button :label="'1'">未审核</el-radio-button>
<el-radio-button :label="'2'">待审核</el-radio-button>
<el-radio-button :label="'3'">审核未通过</el-radio-button>
</el-radio-group>
</el-form-item>
<!-- <el-form-item label="创建时间" prop="createTime">-->
<!-- <el-date-picker-->
<!-- v-model="queryParams.createTime"-->
@@ -71,7 +81,11 @@
@click="openForm('create')"
>
<Icon icon="ep:plus" /> 新增
</el-button>
<el-button @click="connectTent()">连接服务器</el-button>
<el-button @click="connectTong()">同步试题</el-button>
<!-- <el-button-->
<!-- type="warning"-->
<!-- plain-->
@@ -90,41 +104,22 @@
<!-- <Icon icon="ep:download" />导出-->
<!-- </el-button>-->
</el-form-item>
<!-- 审核按钮单独显示在下一行 -->
<el-form-item v-if="queryParams.audit === '1'" >
<el-button
type="primary"
plain
@click="handleAudit()"
>
<Icon icon="ep:plus" /> 推送试题
</el-button>
</el-form-item>
</el-form>
</ContentWrap>
<ContentWrap>
<el-table v-loading="loading" :data="list">
<el-table-column label="试题编号" align="center" key="id" prop="quId" :show-overflow-tooltip="true"/>
<el-table-column
label="试题名称"
align="center"
prop="chapteridDictText"
:show-overflow-tooltip="true"
/>
<el-table-column
label="用户昵称"
align="center"
prop="nickname"
:show-overflow-tooltip="true"
/>
<el-table-column
label="难度"
align="center"
prop="quLevel"
:show-overflow-tooltip="true"
/>
<el-table-column label="状态" key="status">
<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" prop="specialtyName" width="120" />
<el-table-column
label="课程"
@@ -132,6 +127,30 @@
prop="courseName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="章节名称"
align="center"
prop="chapteridDictText"
:show-overflow-tooltip="true"
/>
<!-- <el-table-column
label="用户昵称"
align="center"
prop="nickname"
:show-overflow-tooltip="true"
/> -->
<el-table-column
label="难度"
align="center"
prop="quLevel"
:show-overflow-tooltip="true"
>
<template #default="scope">
<dict-tag :type="DICT_TYPE.EXAM_QUE_DIFF" :value="scope.row.quLevel" />
</template>
</el-table-column>
<el-table-column
label="知识点"
align="center"
@@ -143,8 +162,13 @@
align="center"
prop="audit"
:show-overflow-tooltip="true"
/>
<el-table-column
>
<template #default="scope">
<dict-tag :type="DICT_TYPE.QUESTION_AUDIT" :value="scope.row.audit" />
</template>
</el-table-column>
<!-- <el-table-column
label="来源"
align="center"
prop="resource"
@@ -155,13 +179,24 @@
align="center"
prop="type"
:show-overflow-tooltip="true"
/>
<el-table-column
/> -->
<!-- <el-table-column
label="试题版本"
align="center"
prop="version"
:show-overflow-tooltip="true"
/>
/> -->
<el-table-column label="状态" key="status">
<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"
@@ -216,7 +251,7 @@ import download from '@/utils/download'
import { CommonStatusEnum } from '@/utils/constants'
import * as UserApi from '@/api/system/user'
import * as QuestionApi from '@/api/paper/question'
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
import ChoiceForm from './ChoiceForm.vue'
import CdesignForm from './CdesignForm.vue'
@@ -238,6 +273,7 @@ const queryParams = reactive({
specialtyName: "",
courseName: "",
subjectName: "",
audit:"",
pageNo: 1,
pageSize: 10,
})
@@ -307,6 +343,53 @@ const handleSpecialtyNodeClick = async (row: any) => {
await getList()
}
/** 表格选中数据 */
const selections = ref([]);
const selectedRows = ref<string[]>([])
const handleAudit = async () => {
try {
const rows = selections.value;
if (!rows.length) {
message.error('请至少选择一条数据');
return;
}
selectedRows.value = rows.map((d: any) => d.quId);
console.log(selectedRows.value)
const requestBody = {
type: '0',
quIds: selectedRows.value
}
await QuestionApi.auditQuestion(requestBody)
message.success(t('推送成功'))
// 刷新列表
await getList()
} catch {}
}
const connectTent = async () => {
try {
const res = await QuestionApi.rabbitmqConnect();
console.log(res)
message.success(t(res));
} catch (error) {
message.error(t(`连接失败: ${error?.message || '未知错误'}`));
}
}
const connectTong = async () => {
try {
const res = await QuestionApi.receiveAll();
message.success(t('同步成功'));
} catch (error) {
message.error(t(`连接失败: ${error?.message || '未知错误'}`));
}
}
interface Tree {
id: number
name: string