|
|
|
@ -72,6 +72,36 @@ |
|
|
|
|
</div> |
|
|
|
|
</el-card> |
|
|
|
|
</div> |
|
|
|
|
<el-acrd> |
|
|
|
|
<div> |
|
|
|
|
<el-form |
|
|
|
|
ref="ruleFormRef" |
|
|
|
|
style="max-width: 600px" |
|
|
|
|
:model="ruleForm" |
|
|
|
|
status-icon |
|
|
|
|
label-width="auto" |
|
|
|
|
class="demo-ruleForm" |
|
|
|
|
> |
|
|
|
|
<el-form-item label="年度比赛项目"> |
|
|
|
|
<el-input v-model="ruleForm.objName" type="text" disabled /> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="参赛形式"> |
|
|
|
|
<el-input v-model="ruleForm.entryFormat" type="text" disabled /> |
|
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
|
<el-form-item label="选择题目" prop="topicId"> |
|
|
|
|
<el-select v-model="ruleForm.topicId" placeholder="请选择题目" :disabled="isDisable"> |
|
|
|
|
<el-option |
|
|
|
|
v-for="item in options" |
|
|
|
|
:key="item.value" |
|
|
|
|
:label="item.label" |
|
|
|
|
:value="item.value" |
|
|
|
|
/> |
|
|
|
|
</el-select> |
|
|
|
|
</el-form-item> |
|
|
|
|
</el-form> |
|
|
|
|
</div> |
|
|
|
|
</el-acrd> |
|
|
|
|
<el-card class="center"> |
|
|
|
|
<div class="personage-info"> |
|
|
|
|
<div class="head"> |
|
|
|
@ -138,28 +168,33 @@ |
|
|
|
|
</el-card> |
|
|
|
|
|
|
|
|
|
<div class="bottom"> |
|
|
|
|
<el-button class="btn" @click="() => router.back()">取消报名</el-button> |
|
|
|
|
<el-button class="btn cyan" :loading="subLoading" @click="submit"> |
|
|
|
|
确认报名 |
|
|
|
|
<el-button class="btn" @click="() => router.back()">{{ isDisable ? '返回' : isEdit ? '取消修改' : '取消报名' }}</el-button> |
|
|
|
|
<el-button class="btn cyan" :loading="subLoading" @click="submit" :disabled="isDisable"> |
|
|
|
|
{{ isEdit ? '确认修改' : '确认报名' }} |
|
|
|
|
</el-button> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
<script lang="ts" setup> |
|
|
|
|
import { ref, toRefs } from 'vue' |
|
|
|
|
import { ref, toRefs, reactive, nextTick } from 'vue' |
|
|
|
|
import { getSignUpApi } from '@/api/person' |
|
|
|
|
import { ElMessage } from 'element-plus' |
|
|
|
|
import { useRoute, useRouter } from 'vue-router' |
|
|
|
|
import userStore from '@/store/module/user' |
|
|
|
|
import { getNdbswxqList, getComppxqList } from '@/api/person' |
|
|
|
|
import { getOldRaceList, getOldRaceInfo } from '@/api/oldRace' |
|
|
|
|
import { getTopicList } from '@/api/race' |
|
|
|
|
|
|
|
|
|
const user = userStore() |
|
|
|
|
const route = useRoute() |
|
|
|
|
const router = useRouter() |
|
|
|
|
|
|
|
|
|
const { userInfo: info } = toRefs(user) |
|
|
|
|
|
|
|
|
|
const isDisable = ref(false) |
|
|
|
|
isDisable.value = route.query.info as any |
|
|
|
|
const isEdit = ref(false) |
|
|
|
|
isEdit.value = route.query.edit as any |
|
|
|
|
// 解析性别 |
|
|
|
|
function pasSex(num: number) { |
|
|
|
|
if (num == 1) return '男' |
|
|
|
@ -171,27 +206,22 @@ function pasSex(num: number) { |
|
|
|
|
const upData = ref<Parameters<typeof getSignUpApi>[0]>({ |
|
|
|
|
annualCompid: route.query.objName as string, |
|
|
|
|
entryFormat: '个人', |
|
|
|
|
id: route.query.id, |
|
|
|
|
id: route.query.edit ? route.query.annualCompid : route.query.id, |
|
|
|
|
instructorSheetList: [], |
|
|
|
|
teamManagementList: [{ realname: '', captain: '', teamSeq: '', userId: '' }], |
|
|
|
|
teamName: '', |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
// 比赛信息、项目信息 |
|
|
|
|
const ndbs = ref<any>({}) |
|
|
|
|
const ndbsXm = ref<any>({}) |
|
|
|
|
getNdbswxqList(route.query.bcId as string).then((res: any) => { |
|
|
|
|
if (res.result) ndbs.value = res.result |
|
|
|
|
}) |
|
|
|
|
getComppxqList(route.query.id as string).then((res: any) => { |
|
|
|
|
console.log(res.result, 'xm') |
|
|
|
|
if (res.result) ndbsXm.value = res.result |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
const subLoading = ref(false) |
|
|
|
|
async function submit() { |
|
|
|
|
if (!ruleForm.topicId) return ElMessage.warning('请选择题目') |
|
|
|
|
upData.value.teamManagementList[0].realname = info.value.realname |
|
|
|
|
upData.value.teamManagementList[0].userId = info.value.id |
|
|
|
|
upData.value.annualCompid = route.query.annualCompid |
|
|
|
|
upData.value.topicId = ruleForm.topicId |
|
|
|
|
// if (!upData.value.teamName) { |
|
|
|
|
// ElMessage({ |
|
|
|
|
// message: '队伍名称不能为空', |
|
|
|
@ -218,6 +248,67 @@ async function submit() { |
|
|
|
|
subLoading.value = false |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
// form表单 |
|
|
|
|
const ruleFormRef = ref<FormInstance>() |
|
|
|
|
|
|
|
|
|
const ruleForm = reactive<any>({ |
|
|
|
|
annualCompid: '', |
|
|
|
|
entryFormat: '个人', |
|
|
|
|
id: route.query.id, |
|
|
|
|
topicId: '', |
|
|
|
|
objName:route.query.objName |
|
|
|
|
}) |
|
|
|
|
const options = ref([]) |
|
|
|
|
if (route.query.edit) { |
|
|
|
|
const getOldRaceListEvent = async () => { |
|
|
|
|
const res: any = await getOldRaceList({ id: route.query.id }) |
|
|
|
|
ndbs.value = res.result.annualComp |
|
|
|
|
ndbsXm.value = res.result.annualCompPoint |
|
|
|
|
} |
|
|
|
|
const getOldRaceInfoEvent = async () => { |
|
|
|
|
const res: any = await getOldRaceInfo({ id: route.query.id }) |
|
|
|
|
console.log(res, 'res~~~') |
|
|
|
|
ruleForm.annualCompid = route.query.annualCompid |
|
|
|
|
ruleForm.teamName = res.result.teamName |
|
|
|
|
ruleForm.topicId = res.result.topicObj ? res.result.topicObj.id : '' |
|
|
|
|
ruleForm.objName = res.result.annualCompPointName |
|
|
|
|
|
|
|
|
|
options.value = res.result.topicList.map((item) => { |
|
|
|
|
return { |
|
|
|
|
value: item.id, |
|
|
|
|
label: item.name, |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
getOldRaceListEvent() |
|
|
|
|
getOldRaceInfoEvent() |
|
|
|
|
} else { |
|
|
|
|
getNdbswxqList(route.query.bcId as string).then((res: any) => { |
|
|
|
|
if (res.result) ndbs.value = res.result |
|
|
|
|
}) |
|
|
|
|
getComppxqList(route.query.id as string).then((res: any) => { |
|
|
|
|
console.log(res.result, 'xm') |
|
|
|
|
if (res.result) ndbsXm.value = res.result |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
const getTopicListApi = async () => { |
|
|
|
|
const res: any = await getTopicList({ annualCompid: route.query.id }) |
|
|
|
|
console.log(res) |
|
|
|
|
|
|
|
|
|
nextTick(() => { |
|
|
|
|
if (res.result.length != 0) { |
|
|
|
|
ruleForm.topicId = res.result[0].id |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
options.value = res.result.map((item) => { |
|
|
|
|
return { |
|
|
|
|
value: item.id, |
|
|
|
|
label: item.name, |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
getTopicListApi() |
|
|
|
|
</script> |
|
|
|
|
|
|
|
|
|
<style lang="scss" scoped> |
|
|
|
|