提交 be8d7a4f authored 作者: 王鹏飞's avatar 王鹏飞

chore: 新增实验复制功能

上级 16398b9c
......@@ -171,3 +171,8 @@ export function deleteExam(data: { id: string }) {
export function getScoreExamList(params: { experiment_id: string }) {
return httpRequest.get('/api/resource/v1/backend/experiment-score-rule/exams', { params })
}
// 复制实验
export function copyExperiment(data: { experiment_id: string }) {
return httpRequest.post('/api/resource/v1/backend/experiment/copy', data)
}
......@@ -124,7 +124,7 @@ function handleUpdate(params: ExperimentCreateItem) {
</el-select>
</el-form-item>
<el-form-item label="实验名称" prop="name">
<el-input v-model="form.name" :disabled="isUpdate" />
<el-input v-model="form.name" />
</el-form-item>
<el-form-item label="实验学时" prop="length">
<el-input-number v-model="form.length" :min="1" :max="20" step-strictly style="width: 100%" />
......
......@@ -2,10 +2,11 @@
import type { ExperimentItem } from '../types'
import { CirclePlus } from '@element-plus/icons-vue'
import AppList from '@/components/base/AppList.vue'
import { getExperimentList } from '../api'
import { getExperimentList, copyExperiment } from '../api'
import { useGetCourseList } from '../composables/useGetCourseList'
import { useGetCourseExperimentList } from '../composables/useGetCourseExperimentList'
import { useMapStore } from '@/stores/map'
import { ElMessage } from 'element-plus'
const FormDialog = defineAsyncComponent(() => import('../components/FormDialog.vue'))
const GradeRulesDialog = defineAsyncComponent(() => import('../components/GradeRulesDialog.vue'))
......@@ -128,15 +129,19 @@ function handleUpdateDML(row: ExperimentItem) {
rowData.value = row
dmlDialogVisible = true
}
async function handleCopy(row: ExperimentItem) {
await copyExperiment({ experiment_id: row.id })
ElMessage.success('复制成功')
appList?.refetch()
}
</script>
<template>
<AppCard title="实验管理">
<AppList v-bind="listOptions" ref="appList">
<template #header-buttons>
<el-button type="primary" :icon="CirclePlus" v-permission="'v1-backend-experiment-create'" @click="handleAdd"
>新增实验</el-button
>
<el-button type="primary" :icon="CirclePlus" v-permission="'v1-backend-experiment-create'" @click="handleAdd">新增实验</el-button>
</template>
<template #table-x="{ row }: { row: ExperimentItem }">
......@@ -159,11 +164,7 @@ function handleUpdateDML(row: ExperimentItem) {
v-permission="'v1-backend-experiment-scorerule-detail'"
>编辑成绩规则</el-button
><br />
<el-button
type="info"
round
style="width: 132px; margin-bottom: 12px"
v-permission="'v1-backend-experiment-report-detail'">
<el-button type="info" round style="width: 132px; margin-bottom: 12px" v-permission="'v1-backend-experiment-report-detail'">
<router-link :to="`/admin/lab/experiment/report/${row.id}`" target="_blank">编辑报告规则</router-link>
</el-button>
<br />
......@@ -174,19 +175,14 @@ function handleUpdateDML(row: ExperimentItem) {
<!-- <el-button type="primary" round v-permission="'v1-backend-experiment-view'">
<router-link :to="`/admin/lab/experiment/${row.id}`" target="_blank">关联班级与分组</router-link>
</el-button> -->
<el-button type="primary" round @click="handleUpdate(row)" v-permission="'v1-backend-experiment-update'"
>编辑</el-button
>
<el-button type="primary" round @click="handleUpdate(row)" v-permission="'v1-backend-experiment-update'">编辑</el-button>
<el-button type="primary" round @click="handleCopy(row)" style="margin-top: 12px">复制</el-button>
</template>
</AppList>
</AppCard>
<FormDialog v-model="dialogVisible" :data="rowData" @update="onUpdateSuccess" v-if="dialogVisible"></FormDialog>
<!-- 编辑实验成绩规则 -->
<GradeRulesDialog
v-model="gradeRulesDialogVisible"
:data="rowData"
@update="onUpdateSuccess"
v-if="gradeRulesDialogVisible && rowData"></GradeRulesDialog>
<GradeRulesDialog v-model="gradeRulesDialogVisible" :data="rowData" @update="onUpdateSuccess" v-if="gradeRulesDialogVisible && rowData"></GradeRulesDialog>
<!-- 配置数字营销实验 -->
<DMLFormDialog v-model="dmlDialogVisible" :data="rowData" v-if="dmlDialogVisible && rowData"></DMLFormDialog>
</template>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论