diff --git a/src/glcc/api.js b/src/glcc/api.js index f15c7a951..5d930499c 100644 --- a/src/glcc/api.js +++ b/src/glcc/api.js @@ -222,4 +222,13 @@ export function deleteApplyInfo(data) { method: 'post', data }); -} \ No newline at end of file +} + +// 判断课题是否有学生报名 +export async function findStudentTaskByTaskId(params) { + return await fetch({ + url: '/api/applyInformation/findStudentTaskByTaskId', + method: 'get', + params: params, + }); +} diff --git a/src/glcc/apply/editInfo.jsx b/src/glcc/apply/editInfo.jsx index b9aed5f53..b9b836e43 100644 --- a/src/glcc/apply/editInfo.jsx +++ b/src/glcc/apply/editInfo.jsx @@ -1,7 +1,7 @@ import React , { useCallback, useEffect , useState } from 'react'; import { Button, Form, Input, Select, Upload, message, Popconfirm } from 'antd'; import {getUploadActionUrl} from 'educoder'; -import {applyGlcc, updateApplyGlcc} from '../api'; +import {applyGlcc, findStudentTaskByTaskId, updateApplyGlcc} from '../api'; import TextArea from 'antd/lib/input/TextArea'; import { main_site_url } from '../fetch'; import TaskApply from './taskApply'; @@ -13,7 +13,7 @@ function EditRepoApplyInfo(props) { const {form, applyInfo, current_user, round, cateList, setReload, isAddRepo, setIsAddRepo, setIsEdit, setEditRepoCount} = props; const phonereg = /(^|\s*\+?0?0?86|\D)(1\d{2})[-\s]{0,3}(\d{4})[-\s]{0,3}(\d{4})(?=\D|$)/ const emailreg = /^[a-zA-Z0-9]+([.\-_\\]*[a-zA-Z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/ - const {getFieldDecorator, validateFields, setFieldsValue, validateFieldsAndScroll } = form; + const {getFieldDecorator, validateFields, setFieldsValue, validateFieldsAndScroll, getFieldValue } = form; const [imageUrl, setImageUrl] = useState(undefined); // 提交按钮loading效果 const [loading, setLoading] = useState(false); @@ -159,14 +159,19 @@ function EditRepoApplyInfo(props) { // 添加课题输入框 function addTaskApplyForm(){ - setTaskCount(taskCount.concat([taskCount.length+1])); + setTaskCount(taskCount.concat([taskCount[taskCount.length-1]+1])); } // 删除课题报名 - function deleteTaskApply(index){ - const arr = [...taskCount]; - arr.splice(index-1, 1) - setTaskCount(arr); + async function deleteTaskApply(index){ + const delTaskId = getFieldValue(`taskId${index}`); + const res = delTaskId ? await findStudentTaskByTaskId({ taskId: delTaskId }) : "newTask"; + if((res && res.data && res.data.length)){ + message.error("已有学生报名,不允许删除"); + }else{ + const arr = taskCount.filter(item=>item!== index); + setTaskCount(arr); + } } // 取消编辑点击函数