后台
This commit is contained in:
@@ -64,7 +64,7 @@
|
||||
|
||||
<script setup>
|
||||
import { ref, watch, defineProps, defineEmits } from 'vue';
|
||||
import { addSignUp, updateSignUpResult } from '../../api/tournament';
|
||||
import { addSignUp, updateSignUpResult, getSignUpResultList } from '../../api/tournament';
|
||||
|
||||
const props = defineProps({
|
||||
visible: Boolean,
|
||||
@@ -130,16 +130,37 @@ const submitForm = async () => {
|
||||
|
||||
try {
|
||||
if (props.isEditMode) {
|
||||
const { id, ...dataToUpdate } = form.value;
|
||||
// updateSignUpResult API 需要 player id
|
||||
await updateSignUpResult(id, dataToUpdate);
|
||||
alert('参赛记录更新成功!');
|
||||
const { id, ...originalFormData } = form.value;
|
||||
|
||||
// 为API准备数据,确保win和lose是字符串
|
||||
const dataForApi = {
|
||||
...originalFormData,
|
||||
win: String(originalFormData.win || '0'),
|
||||
lose: String(originalFormData.lose || '0')
|
||||
};
|
||||
|
||||
try {
|
||||
const response = await getSignUpResultList();
|
||||
const existingRecord = response.find(item => item.id === id);
|
||||
if (!existingRecord) {
|
||||
throw new Error('找不到要更新的报名记录');
|
||||
}
|
||||
// 使用处理过的数据调用更新API
|
||||
await updateSignUpResult(id, dataForApi);
|
||||
alert('参赛记录更新成功!');
|
||||
} catch (error) {
|
||||
console.error('更新参赛记录失败:', error);
|
||||
errorMessage.value = error.response?.data?.detail || error.message || '更新失败,请重试';
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
// addSignUp API 需要 tournament_id as id, 和 tournament_name
|
||||
// 添加新记录的逻辑
|
||||
const dataToAdd = {
|
||||
...form.value,
|
||||
id: form.value.tournament_id, // tournament_id 作为 addSignUp 中的 id
|
||||
type: form.value.team_name ? 'teamname' : 'individual'
|
||||
id: form.value.tournament_id,
|
||||
type: form.value.team_name ? 'teamname' : 'individual',
|
||||
// 注意: form.value.win 和 form.value.lose 在 initialFormState 中默认为字符串 '0'
|
||||
// 如果 addSignUp API 也严格要求字符串,且这些值可能变为数字,也需在此处 String()
|
||||
};
|
||||
await addSignUp(dataToAdd);
|
||||
alert('参赛记录添加成功!');
|
||||
|
||||
Reference in New Issue
Block a user