diff --git a/src/views/martial/project/index.vue b/src/views/martial/project/index.vue index 5d37d4b..e6a440a 100644 --- a/src/views/martial/project/index.vue +++ b/src/views/martial/project/index.vue @@ -235,6 +235,7 @@ placeholder="请选择赛事" filterable style="width: 100%" + @change="handleCompetitionChangeInForm" > + + + + + + + + + { } } +// 表单中赛事变更时加载场地列表 +const handleCompetitionChangeInForm = async (competitionId) => { + form.venueId = null + venueList.value = [] + if (competitionId) { + try { + const res = await getVenuesByCompetition(competitionId) + venueList.value = res.data?.data?.records || [] + } catch (error) { + console.error('加载场地列表失败:', error) + } + } +} + // 查询数据 const fetchData = async () => { loading.value = true @@ -617,7 +654,7 @@ const handleAdd = () => { } // 编辑 -const handleEdit = (row) => { +const handleEdit = async (row) => { dialogTitle.value = '编辑项目' Object.keys(form).forEach((key) => { form[key] = row[key] @@ -626,6 +663,15 @@ const handleEdit = (row) => { if (row.price !== undefined) { form.registrationFee = row.price } + // 加载该赛事的场地列表 + if (row.competitionId) { + try { + const res = await getVenuesByCompetition(row.competitionId) + venueList.value = res.data?.data?.records || [] + } catch (error) { + console.error('加载场地列表失败:', error) + } + } dialogVisible.value = true }