|
|
|
@ -79,7 +79,7 @@ |
|
|
|
|
<div class="head"> |
|
|
|
|
<div class="title">个人信息</div> |
|
|
|
|
<div class="icon"> |
|
|
|
|
<img src="../../assets/images/ellipsis.png" alt=""> |
|
|
|
|
<!-- <img src="../../assets/images/ellipsis.png" alt=""> --> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
<div class="info-box"> |
|
|
|
@ -106,6 +106,12 @@ |
|
|
|
|
<div class="label">邮箱</div> |
|
|
|
|
<div class="text">{{ info.email }}</div> |
|
|
|
|
</div> |
|
|
|
|
<div class="info-box"> |
|
|
|
|
<div class="label">队伍名称</div> |
|
|
|
|
<div class="text"> |
|
|
|
|
<el-input v-model="upData.teamName"></el-input> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
<!-- <div class="info-box"> |
|
|
|
|
<div class="label">院系</div> |
|
|
|
|
<div class="text">国际教育学院</div> |
|
|
|
@ -134,20 +140,21 @@ |
|
|
|
|
</el-card> |
|
|
|
|
|
|
|
|
|
<div class="bottom"> |
|
|
|
|
<el-button class="btn">取消报名</el-button> |
|
|
|
|
<el-button class="btn" @click="() => router.push('/')">取消报名</el-button> |
|
|
|
|
<el-button class="btn cyan" :loading="subLoading" @click="submit">确认报名</el-button> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
<script lang="ts" setup> |
|
|
|
|
import { ref, toRefs, watch } from 'vue'; |
|
|
|
|
import { ref, toRefs } from 'vue'; |
|
|
|
|
import { getSignUpApi } from '@/api/person'; |
|
|
|
|
import { getHint } from '@/utils/asyncHint'; |
|
|
|
|
import { useRoute } from 'vue-router'; |
|
|
|
|
import { ElMessage } from 'element-plus'; |
|
|
|
|
import { useRoute, useRouter } from 'vue-router'; |
|
|
|
|
import userStore from '@/store/module/user'; |
|
|
|
|
const user = userStore(); |
|
|
|
|
const route = useRoute(); |
|
|
|
|
const router = useRouter(); |
|
|
|
|
|
|
|
|
|
const { userInfo: info } = toRefs(user); |
|
|
|
|
|
|
|
|
@ -160,23 +167,43 @@ function pasSex(num: number) { |
|
|
|
|
|
|
|
|
|
// 确认报名数据及逻辑 |
|
|
|
|
const upData = ref<Parameters<typeof getSignUpApi>[0]>({ |
|
|
|
|
annualCompid: route.query.id as string, |
|
|
|
|
annualCompid: route.query.objName as string, |
|
|
|
|
entryFormat: '个人', |
|
|
|
|
id: '' |
|
|
|
|
id: route.query.id, |
|
|
|
|
instructorSheetList: [], |
|
|
|
|
teamManagementList: [{ realname: "", captain: "", teamSeq: "", userId: "" }], |
|
|
|
|
teamName: "" |
|
|
|
|
}); |
|
|
|
|
watch(() => info.value.id, newVal => upData.value.id = newVal); |
|
|
|
|
|
|
|
|
|
const subLoading = ref(false); |
|
|
|
|
const options = { |
|
|
|
|
onFinish() { |
|
|
|
|
subLoading.value = false |
|
|
|
|
}, |
|
|
|
|
msgs: ['报名成功', '报名失败,请重新报名'] |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
const subLoading = ref(false); |
|
|
|
|
async function submit() { |
|
|
|
|
subLoading.value = true; |
|
|
|
|
await getHint(getSignUpApi(upData.value), options); |
|
|
|
|
upData.value.teamManagementList[0].realname = info.value.realname |
|
|
|
|
upData.value.teamManagementList[0].userId = info.value.id |
|
|
|
|
if (!upData.value.teamName) { |
|
|
|
|
ElMessage({ |
|
|
|
|
message: '队伍名称不能为空', |
|
|
|
|
type: 'warning' |
|
|
|
|
}) |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
try { |
|
|
|
|
subLoading.value = true; |
|
|
|
|
const res: any = await getSignUpApi(upData.value); |
|
|
|
|
|
|
|
|
|
ElMessage({ |
|
|
|
|
message: res?.message || res?.result || '报名成功', |
|
|
|
|
type: 'success' |
|
|
|
|
}) |
|
|
|
|
} catch (error) { |
|
|
|
|
ElMessage({ |
|
|
|
|
// @ts-ignore |
|
|
|
|
message: error?.message, |
|
|
|
|
type: 'error' |
|
|
|
|
}) |
|
|
|
|
} finally { |
|
|
|
|
subLoading.value = false |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
</script> |
|
|
|
|
|
|
|
|
|