|
|
@ -1,115 +1,211 @@ |
|
|
|
<template> |
|
|
|
<template> |
|
|
|
<!-- 报名人员 --> |
|
|
|
<!-- 报名人员 --> |
|
|
|
<div class="page-content" style="padding: 24px"> |
|
|
|
<div class="page-content" |
|
|
|
|
|
|
|
style="padding: 24px"> |
|
|
|
<div class="tool"> |
|
|
|
<div class="tool"> |
|
|
|
<ul class="filter"> |
|
|
|
<ul class="filter"> |
|
|
|
<li> |
|
|
|
<li> |
|
|
|
<label>搜索:</label> |
|
|
|
<label>搜索:</label> |
|
|
|
<el-input placeholder="请输入姓名/手机号/学号" prefix-icon="el-icon-search" v-model="keyword" clearable size="mini" style="width: 250px"></el-input> |
|
|
|
<el-input placeholder="请输入姓名/手机号/学号" |
|
|
|
|
|
|
|
prefix-icon="el-icon-search" |
|
|
|
|
|
|
|
v-model="keyword" |
|
|
|
|
|
|
|
clearable |
|
|
|
|
|
|
|
size="mini" |
|
|
|
|
|
|
|
style="width: 250px"></el-input> |
|
|
|
</li> |
|
|
|
</li> |
|
|
|
<li v-if="info.releaseType"> |
|
|
|
<li v-if="info.releaseType"> |
|
|
|
<label>参赛人员状态:</label> |
|
|
|
<label>参赛人员状态:</label> |
|
|
|
<el-select v-model="isDisable" @change="initData"> |
|
|
|
<el-select v-model="isDisable" |
|
|
|
<el-option v-for="(item, i) in statusList" :key="i" :label="item.name" :value="item.id"></el-option> |
|
|
|
@change="initData"> |
|
|
|
|
|
|
|
<el-option v-for="(item, i) in statusList" |
|
|
|
|
|
|
|
:key="i" |
|
|
|
|
|
|
|
:label="item.name" |
|
|
|
|
|
|
|
:value="item.id"></el-option> |
|
|
|
</el-select> |
|
|
|
</el-select> |
|
|
|
</li> |
|
|
|
</li> |
|
|
|
</ul> |
|
|
|
</ul> |
|
|
|
<div> |
|
|
|
<div> |
|
|
|
<el-button type="primary" round @click="add" v-auth="'/match:管理:报名人员:新增'">新增</el-button> |
|
|
|
<el-button type="primary" |
|
|
|
<el-button type="primary" round @click="exportAll" v-auth="'/match:管理:报名人员:导出'">批量导出</el-button> |
|
|
|
round |
|
|
|
|
|
|
|
@click="add" |
|
|
|
|
|
|
|
v-auth="'/match:管理:报名人员:新增'">新增</el-button> |
|
|
|
|
|
|
|
<el-button type="primary" |
|
|
|
|
|
|
|
round |
|
|
|
|
|
|
|
@click="exportAll" |
|
|
|
|
|
|
|
v-auth="'/match:管理:报名人员:导出'">批量导出</el-button> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<el-table ref="table" :data="listData" class="table" stripe header-align="center" @selection-change="handleSelectionChange" row-key="id" @sort-change="sortChange"> |
|
|
|
<el-table ref="table" |
|
|
|
<el-table-column type="selection" width="80" align="center" :reserve-selection="true"></el-table-column> |
|
|
|
:data="listData" |
|
|
|
<el-table-column type="index" width="60" label="序号" align="center"> |
|
|
|
class="table" |
|
|
|
|
|
|
|
stripe |
|
|
|
|
|
|
|
header-align="center" |
|
|
|
|
|
|
|
@selection-change="handleSelectionChange" |
|
|
|
|
|
|
|
row-key="id" |
|
|
|
|
|
|
|
@sort-change="sortChange"> |
|
|
|
|
|
|
|
<el-table-column type="selection" |
|
|
|
|
|
|
|
width="80" |
|
|
|
|
|
|
|
align="center" |
|
|
|
|
|
|
|
:reserve-selection="true"></el-table-column> |
|
|
|
|
|
|
|
<el-table-column type="index" |
|
|
|
|
|
|
|
width="60" |
|
|
|
|
|
|
|
label="序号" |
|
|
|
|
|
|
|
align="center"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
{{ scope.$index + (page - 1) * pageSize + 1 }} |
|
|
|
{{ scope.$index + (page - 1) * pageSize + 1 }} |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="school" label="学校" sortable="custom"> |
|
|
|
<el-table-column prop="school" |
|
|
|
|
|
|
|
label="学校" |
|
|
|
|
|
|
|
sortable="custom"> |
|
|
|
</el-table-column> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column v-if="info.completeCompetitionSetup.competitionType" prop="teamName" label="团队名称" sortable="custom"> |
|
|
|
<el-table-column v-if="info.completeCompetitionSetup.competitionType" |
|
|
|
|
|
|
|
prop="teamName" |
|
|
|
|
|
|
|
label="团队名称" |
|
|
|
|
|
|
|
sortable="custom"> |
|
|
|
</el-table-column> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="username" label="学生姓名"> |
|
|
|
<el-table-column prop="username" |
|
|
|
|
|
|
|
label="学生姓名"> |
|
|
|
</el-table-column> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="workNumber" label="学号"> |
|
|
|
<el-table-column prop="workNumber" |
|
|
|
|
|
|
|
label="学号"> |
|
|
|
</el-table-column> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="phone" label="手机号"> |
|
|
|
<el-table-column prop="phone" |
|
|
|
|
|
|
|
label="手机号"> |
|
|
|
</el-table-column> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="操作" align="center" width="320"> |
|
|
|
<el-table-column label="操作" |
|
|
|
|
|
|
|
align="center" |
|
|
|
|
|
|
|
width="320"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-button v-auth="'/match:管理:报名人员:编辑'" type="text" @click="edit(scope.row)">编辑</el-button> |
|
|
|
<el-button v-auth="'/match:管理:报名人员:编辑'" |
|
|
|
|
|
|
|
type="text" |
|
|
|
|
|
|
|
@click="edit(scope.row)">编辑</el-button> |
|
|
|
<template v-if="info.releaseType"> |
|
|
|
<template v-if="info.releaseType"> |
|
|
|
<el-button v-auth="'/match:管理:报名人员:参赛信息与成绩'" type="text" @click="toInfo(scope.row)">参赛信息与成绩</el-button> |
|
|
|
<el-button v-auth="'/match:管理:报名人员:参赛信息与成绩'" |
|
|
|
<el-switch |
|
|
|
type="text" |
|
|
|
v-auth="'/match:管理:报名人员:禁用'" |
|
|
|
@click="toInfo(scope.row)">参赛信息与成绩</el-button> |
|
|
|
|
|
|
|
<el-switch v-auth="'/match:管理:报名人员:禁用'" |
|
|
|
v-model="scope.row.isDisable" |
|
|
|
v-model="scope.row.isDisable" |
|
|
|
:active-text="scope.row.isDisable ? '关' : '开'" |
|
|
|
:active-text="scope.row.isDisable ? '关' : '开'" |
|
|
|
:active-value="0" |
|
|
|
:active-value="0" |
|
|
|
:inactive-value="1" |
|
|
|
:inactive-value="1" |
|
|
|
style="margin: 0 10px 0 5px" |
|
|
|
style="margin: 0 10px 0 5px" |
|
|
|
@change="switchOff($event,scope.row,scope.$index)" |
|
|
|
@change="switchOff($event,scope.row,scope.$index)"></el-switch> |
|
|
|
></el-switch> |
|
|
|
|
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
</el-table> |
|
|
|
<div class="pagination"> |
|
|
|
<div class="pagination"> |
|
|
|
<el-pagination background layout="total, prev, pager, next" :total="total" @current-change="handleCurrentChange" :current-page="page"> |
|
|
|
<el-pagination background |
|
|
|
|
|
|
|
layout="total, prev, pager, next" |
|
|
|
|
|
|
|
:total="total" |
|
|
|
|
|
|
|
@current-change="handleCurrentChange" |
|
|
|
|
|
|
|
:current-page="page"> |
|
|
|
</el-pagination> |
|
|
|
</el-pagination> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<el-dialog :title="(!isAdd ? '编辑' : '新增') + '参赛人员'" |
|
|
|
<el-dialog :title="(!isAdd ? '编辑' : '新增') + '参赛人员'" :visible.sync="addVisible" width="400px" class="dialog" :close-on-click-modal="false" @close="closeAdd"> |
|
|
|
:visible.sync="addVisible" |
|
|
|
<el-form ref="form" :model="form" :rules="rules" label-width="80px" style='margin-right: 10px;'> |
|
|
|
width="400px" |
|
|
|
<el-form-item v-if="!schoolDisable" prop="schoolId" label="院校"> |
|
|
|
class="dialog" |
|
|
|
<el-select v-model="form.schoolId" filterable style="width: 100%"> |
|
|
|
:close-on-click-modal="false" |
|
|
|
<el-option v-for="(item, i) in clients" :key="i" :label="item.schoolName" :value="item.schoolId"></el-option> |
|
|
|
@close="closeAdd"> |
|
|
|
|
|
|
|
<el-form ref="form" |
|
|
|
|
|
|
|
:model="form" |
|
|
|
|
|
|
|
:rules="rules" |
|
|
|
|
|
|
|
label-width="80px" |
|
|
|
|
|
|
|
style='margin-right: 10px;'> |
|
|
|
|
|
|
|
<el-form-item v-if="!schoolDisable" |
|
|
|
|
|
|
|
prop="schoolId" |
|
|
|
|
|
|
|
label="院校"> |
|
|
|
|
|
|
|
<el-select v-model="form.schoolId" |
|
|
|
|
|
|
|
filterable |
|
|
|
|
|
|
|
style="width: 100%"> |
|
|
|
|
|
|
|
<el-option v-for="(item, i) in clients" |
|
|
|
|
|
|
|
:key="i" |
|
|
|
|
|
|
|
:label="item.schoolName" |
|
|
|
|
|
|
|
:value="item.schoolId"></el-option> |
|
|
|
</el-select> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item prop="workNumber" label="学生学号"> |
|
|
|
<el-form-item prop="workNumber" |
|
|
|
<el-input v-model="form.workNumber" placeholder="请输入学生学号" @change="workNumberChange"></el-input> |
|
|
|
label="学生学号"> |
|
|
|
|
|
|
|
<el-input v-model="form.workNumber" |
|
|
|
|
|
|
|
placeholder="请输入学生学号" |
|
|
|
|
|
|
|
@change="workNumberChange"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item prop="userName" label="学生姓名"> |
|
|
|
<el-form-item prop="userName" |
|
|
|
<el-input v-model="form.userName" placeholder="请输入学生姓名" :disabled="isAdd"></el-input> |
|
|
|
label="学生姓名"> |
|
|
|
|
|
|
|
<el-input v-model="form.userName" |
|
|
|
|
|
|
|
placeholder="请输入学生姓名" |
|
|
|
|
|
|
|
:disabled="isAdd"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="账号角色"> |
|
|
|
<el-form-item label="账号角色"> |
|
|
|
学生 |
|
|
|
学生 |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item v-if="info.completeCompetitionSetup.competitionType" prop="teamId" label="所属团队"> |
|
|
|
<el-form-item v-if="info.completeCompetitionSetup.competitionType" |
|
|
|
|
|
|
|
prop="teamId" |
|
|
|
|
|
|
|
label="所属团队"> |
|
|
|
<div style="display: flex;align-items: center"> |
|
|
|
<div style="display: flex;align-items: center"> |
|
|
|
<el-select v-model="form.teamId" :disabled="formEnable && isAdd" filterable style="width: 240px;margin-right: 10px"> |
|
|
|
<el-select v-model="form.teamId" |
|
|
|
<el-option v-for="(item, i) in teams" :key="i" :label="item.teamName" :value="item.teamId"></el-option> |
|
|
|
:disabled="formEnable && isAdd" |
|
|
|
|
|
|
|
filterable |
|
|
|
|
|
|
|
style="width: 240px;margin-right: 10px"> |
|
|
|
|
|
|
|
<el-option v-for="(item, i) in teams" |
|
|
|
|
|
|
|
:key="i" |
|
|
|
|
|
|
|
:label="item.teamName" |
|
|
|
|
|
|
|
:value="item.teamId"></el-option> |
|
|
|
</el-select> |
|
|
|
</el-select> |
|
|
|
<el-button v-if="isAdd && !formEnable" type="text" @click="createTeam">创建团队</el-button> |
|
|
|
<el-button v-if="isAdd && !formEnable" |
|
|
|
|
|
|
|
type="text" |
|
|
|
|
|
|
|
@click="createTeam">创建团队</el-button> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item prop="phone" label="手机号"> |
|
|
|
<el-form-item prop="phone" |
|
|
|
<el-input v-model="form.phone" maxlength="11" placeholder="请输入手机号" :disabled="isAdd"></el-input> |
|
|
|
label="手机号"> |
|
|
|
|
|
|
|
<el-input v-model="form.phone" |
|
|
|
|
|
|
|
maxlength="11" |
|
|
|
|
|
|
|
placeholder="请输入手机号" |
|
|
|
|
|
|
|
:disabled="isAdd"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item prop="email" label="邮箱"> |
|
|
|
<el-form-item prop="email" |
|
|
|
<el-input v-model="form.email" placeholder="请输入邮箱" :disabled="isAdd"></el-input> |
|
|
|
label="邮箱"> |
|
|
|
|
|
|
|
<el-input v-model="form.email" |
|
|
|
|
|
|
|
placeholder="请输入邮箱" |
|
|
|
|
|
|
|
:disabled="isAdd"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
</el-form> |
|
|
|
<span slot="footer" class="dialog-footer"> |
|
|
|
<span slot="footer" |
|
|
|
|
|
|
|
class="dialog-footer"> |
|
|
|
<el-button @click="addVisible = false">取消</el-button> |
|
|
|
<el-button @click="addVisible = false">取消</el-button> |
|
|
|
<el-button type="primary" @click="submit">确定</el-button> |
|
|
|
<el-button type="primary" |
|
|
|
|
|
|
|
@click="submit">确定</el-button> |
|
|
|
</span> |
|
|
|
</span> |
|
|
|
</el-dialog> |
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
|
|
|
<el-dialog title="创建团队" :visible.sync="teamVisible" :close-on-click-modal="false" width="300px"> |
|
|
|
<el-dialog title="创建团队" |
|
|
|
|
|
|
|
:visible.sync="teamVisible" |
|
|
|
|
|
|
|
:close-on-click-modal="false" |
|
|
|
|
|
|
|
width="300px"> |
|
|
|
<el-form class="dia-form"> |
|
|
|
<el-form class="dia-form"> |
|
|
|
<el-form-item> |
|
|
|
<el-form-item> |
|
|
|
<el-input placeholder="请输入团队名称" maxlength="10" v-model="teamForm.teamName"></el-input> |
|
|
|
<el-input placeholder="请输入团队名称" |
|
|
|
|
|
|
|
maxlength="10" |
|
|
|
|
|
|
|
v-model="teamForm.teamName"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item> |
|
|
|
<el-form-item> |
|
|
|
<el-input placeholder="请设置团队邀请码" maxlength="6" v-model="teamForm.invitationCode"></el-input> |
|
|
|
<el-input placeholder="请设置团队邀请码" |
|
|
|
|
|
|
|
maxlength="6" |
|
|
|
|
|
|
|
v-model="teamForm.invitationCode"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
</el-form> |
|
|
|
<span slot="footer" class="dialog-footer"> |
|
|
|
<span slot="footer" |
|
|
|
<el-button size="small" type="primary" @click="teamSubmit">确定并使用</el-button> |
|
|
|
class="dialog-footer"> |
|
|
|
<el-button size="small" @click="teamVisible = false">取消</el-button> |
|
|
|
<el-button size="small" |
|
|
|
|
|
|
|
type="primary" |
|
|
|
|
|
|
|
@click="teamSubmit">确定并使用</el-button> |
|
|
|
|
|
|
|
<el-button size="small" |
|
|
|
|
|
|
|
@click="teamVisible = false">取消</el-button> |
|
|
|
</span> |
|
|
|
</span> |
|
|
|
</el-dialog> |
|
|
|
</el-dialog> |
|
|
|
</div> |
|
|
|
</div> |
|
|
@ -121,7 +217,7 @@ import axios from 'axios' |
|
|
|
import Setting from "@/setting"; |
|
|
|
import Setting from "@/setting"; |
|
|
|
export default { |
|
|
|
export default { |
|
|
|
name: "matchSignup", |
|
|
|
name: "matchSignup", |
|
|
|
data() { |
|
|
|
data () { |
|
|
|
return { |
|
|
|
return { |
|
|
|
token: sessionStorage.getItem('token'), |
|
|
|
token: sessionStorage.getItem('token'), |
|
|
|
id: +this.$route.query.id, |
|
|
|
id: +this.$route.query.id, |
|
|
@ -200,20 +296,20 @@ export default { |
|
|
|
}; |
|
|
|
}; |
|
|
|
}, |
|
|
|
}, |
|
|
|
watch: { |
|
|
|
watch: { |
|
|
|
keyword: function(val) { |
|
|
|
keyword: function (val) { |
|
|
|
clearTimeout(this.searchTimer); |
|
|
|
clearTimeout(this.searchTimer); |
|
|
|
this.searchTimer = setTimeout(() => { |
|
|
|
this.searchTimer = setTimeout(() => { |
|
|
|
this.initData(); |
|
|
|
this.initData(); |
|
|
|
}, 500); |
|
|
|
}, 500); |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
mounted() { |
|
|
|
mounted () { |
|
|
|
this.initData() |
|
|
|
this.initData() |
|
|
|
this.getInfo() |
|
|
|
this.getInfo() |
|
|
|
this.getTeam() |
|
|
|
this.getTeam() |
|
|
|
}, |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
methods: { |
|
|
|
getData() { |
|
|
|
getData () { |
|
|
|
this.$post(this.api.queryRegistrationByCondition, { |
|
|
|
this.$post(this.api.queryRegistrationByCondition, { |
|
|
|
pageNum: this.page, |
|
|
|
pageNum: this.page, |
|
|
|
pageSize: this.pageSize, |
|
|
|
pageSize: this.pageSize, |
|
|
@ -230,7 +326,7 @@ export default { |
|
|
|
}); |
|
|
|
}); |
|
|
|
}, |
|
|
|
}, |
|
|
|
// 获取赛事信息 |
|
|
|
// 获取赛事信息 |
|
|
|
getInfo() { |
|
|
|
getInfo () { |
|
|
|
this.$post(`${this.api.getCompetition}?competitionId=${this.id}`).then(({ competition }) => { |
|
|
|
this.$post(`${this.api.getCompetition}?competitionId=${this.id}`).then(({ competition }) => { |
|
|
|
this.info = competition |
|
|
|
this.info = competition |
|
|
|
// 非本校内则查询接口获取学校列表 |
|
|
|
// 非本校内则查询接口获取学校列表 |
|
|
@ -240,37 +336,37 @@ export default { |
|
|
|
this.schoolDisable = true |
|
|
|
this.schoolDisable = true |
|
|
|
this.form.schoolId = competition.schoolId |
|
|
|
this.form.schoolId = competition.schoolId |
|
|
|
} |
|
|
|
} |
|
|
|
}).catch(err => {}) |
|
|
|
}).catch(err => { }) |
|
|
|
}, |
|
|
|
}, |
|
|
|
initData() { |
|
|
|
initData () { |
|
|
|
this.page = 1 |
|
|
|
this.page = 1 |
|
|
|
this.getData() |
|
|
|
this.getData() |
|
|
|
}, |
|
|
|
}, |
|
|
|
handleSelectionChange(val) { |
|
|
|
handleSelectionChange (val) { |
|
|
|
this.multipleSelection = val; |
|
|
|
this.multipleSelection = val; |
|
|
|
}, |
|
|
|
}, |
|
|
|
handleCurrentChange(val) { |
|
|
|
handleCurrentChange (val) { |
|
|
|
this.page = val; |
|
|
|
this.page = val; |
|
|
|
this.getData(); |
|
|
|
this.getData(); |
|
|
|
}, |
|
|
|
}, |
|
|
|
switchOff(val, row, index) { |
|
|
|
switchOff (val, row, index) { |
|
|
|
this.$put(`${this.api.disableRegistration}?competitionRegistrationId=${row.id}&isDisable=${val}`).then(res => {}).catch(err => {}); |
|
|
|
this.$put(`${this.api.disableRegistration}?competitionRegistrationId=${row.id}&isDisable=${val}`).then(res => { }).catch(err => { }); |
|
|
|
}, |
|
|
|
}, |
|
|
|
// 排序回调 |
|
|
|
// 排序回调 |
|
|
|
sortChange(column) { |
|
|
|
sortChange (column) { |
|
|
|
// 1上2下 |
|
|
|
// 1上2下 |
|
|
|
if (column.prop === 'school') this.schoolOrder = column.order ? column.order === 'ascending' ? 2 : 1 : '' |
|
|
|
if (column.prop === 'school') this.schoolOrder = column.order ? column.order === 'ascending' ? 2 : 1 : '' |
|
|
|
if (column.prop === 'teamName') this.teamOrder = column.order ? column.order === 'ascending' ? 2 : 1 : '' |
|
|
|
if (column.prop === 'teamName') this.teamOrder = column.order ? column.order === 'ascending' ? 2 : 1 : '' |
|
|
|
this.getData() |
|
|
|
this.getData() |
|
|
|
}, |
|
|
|
}, |
|
|
|
// 新增 |
|
|
|
// 新增 |
|
|
|
add() { |
|
|
|
add () { |
|
|
|
this.notExit = 0 |
|
|
|
this.notExit = 0 |
|
|
|
this.isAdd = true |
|
|
|
this.isAdd = true |
|
|
|
this.addVisible = true |
|
|
|
this.addVisible = true |
|
|
|
}, |
|
|
|
}, |
|
|
|
// 编辑 |
|
|
|
// 编辑 |
|
|
|
edit(row) { |
|
|
|
edit (row) { |
|
|
|
this.notExit = 0 |
|
|
|
this.notExit = 0 |
|
|
|
this.isAdd = false |
|
|
|
this.isAdd = false |
|
|
|
this.addVisible = true |
|
|
|
this.addVisible = true |
|
|
@ -281,7 +377,7 @@ export default { |
|
|
|
this.form = JSON.parse(JSON.stringify(row)) |
|
|
|
this.form = JSON.parse(JSON.stringify(row)) |
|
|
|
}, |
|
|
|
}, |
|
|
|
// 学号输入完回调。学校和学号都输入完后,调这个接口查询是否有存在的学生,如果有,才能继续输入,如果不能,不让添加 |
|
|
|
// 学号输入完回调。学校和学号都输入完后,调这个接口查询是否有存在的学生,如果有,才能继续输入,如果不能,不让添加 |
|
|
|
workNumberChange() { |
|
|
|
workNumberChange () { |
|
|
|
const { form } = this |
|
|
|
const { form } = this |
|
|
|
if (this.originForm.workNumber !== form.workNumber) { |
|
|
|
if (this.originForm.workNumber !== form.workNumber) { |
|
|
|
form.schoolId && form.workNumber && this.$get(`${this.api.enquireAboutSchoolStudents}?schoolId=${form.schoolId}&workNumber=${form.workNumber}${this.isAdd ? '' : '&applyFor=1'}`).then(({ account }) => { |
|
|
|
form.schoolId && form.workNumber && this.$get(`${this.api.enquireAboutSchoolStudents}?schoolId=${form.schoolId}&workNumber=${form.workNumber}${this.isAdd ? '' : '&applyFor=1'}`).then(({ account }) => { |
|
|
@ -299,7 +395,7 @@ export default { |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
// 新增编辑人员 |
|
|
|
// 新增编辑人员 |
|
|
|
submitForm() { |
|
|
|
submitForm () { |
|
|
|
if (this.notExit) { |
|
|
|
if (this.notExit) { |
|
|
|
this.submiting = false |
|
|
|
this.submiting = false |
|
|
|
return util.errorMsg('学生不存在,无法添加!') |
|
|
|
return util.errorMsg('学生不存在,无法添加!') |
|
|
@ -365,7 +461,7 @@ export default { |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
// 新增人员 |
|
|
|
// 新增人员 |
|
|
|
submit() { |
|
|
|
submit () { |
|
|
|
this.$refs.form.validate((valid) => { |
|
|
|
this.$refs.form.validate((valid) => { |
|
|
|
if (valid) { |
|
|
|
if (valid) { |
|
|
|
if (this.submiting) return false |
|
|
|
if (this.submiting) return false |
|
|
@ -385,7 +481,7 @@ export default { |
|
|
|
}) |
|
|
|
}) |
|
|
|
}, |
|
|
|
}, |
|
|
|
// 关闭新增员工对话框 |
|
|
|
// 关闭新增员工对话框 |
|
|
|
closeAdd() { |
|
|
|
closeAdd () { |
|
|
|
this.form = { |
|
|
|
this.form = { |
|
|
|
captain: 0, |
|
|
|
captain: 0, |
|
|
|
competitionId: this.id, |
|
|
|
competitionId: this.id, |
|
|
@ -402,7 +498,7 @@ export default { |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
// 创建团队 |
|
|
|
// 创建团队 |
|
|
|
createTeam() { |
|
|
|
createTeam () { |
|
|
|
this.teamForm = { |
|
|
|
this.teamForm = { |
|
|
|
competitionId: this.id, |
|
|
|
competitionId: this.id, |
|
|
|
registrationInvitationCode: '', |
|
|
|
registrationInvitationCode: '', |
|
|
@ -414,28 +510,28 @@ export default { |
|
|
|
this.teamVisible = true |
|
|
|
this.teamVisible = true |
|
|
|
}, |
|
|
|
}, |
|
|
|
// 获取客户 |
|
|
|
// 获取客户 |
|
|
|
getClient() { |
|
|
|
getClient () { |
|
|
|
if (this.info.competitionScope === 2) { // 指定范围 |
|
|
|
if (this.info.competitionScope === 2) { // 指定范围 |
|
|
|
this.$get(`${this.api.schoolsInCompetitionArea}?competitionId=${this.id}`).then(({ schools }) => { |
|
|
|
this.$get(`${this.api.schoolsInCompetitionArea}?competitionId=${this.id}`).then(({ schools }) => { |
|
|
|
this.clients = schools |
|
|
|
this.clients = schools |
|
|
|
}).catch(res => {}) |
|
|
|
}).catch(res => { }) |
|
|
|
} else { // 本校内查询所有学校 |
|
|
|
} else { // 本校内查询所有学校 |
|
|
|
this.$get(this.api.querySchoolData).then(({ list }) => { |
|
|
|
this.$get(this.api.querySchoolData).then(({ list }) => { |
|
|
|
this.clients = list |
|
|
|
this.clients = list |
|
|
|
}).catch(res => {}) |
|
|
|
}).catch(res => { }) |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
// 获取团队列表 |
|
|
|
// 获取团队列表 |
|
|
|
getTeam() { |
|
|
|
getTeam () { |
|
|
|
this.$get(this.api.searchTeam, { |
|
|
|
this.$get(this.api.searchTeam, { |
|
|
|
teamName: '', |
|
|
|
teamName: '', |
|
|
|
competitionId: this.id |
|
|
|
competitionId: this.id |
|
|
|
}).then(({ teamList }) => { |
|
|
|
}).then(({ teamList }) => { |
|
|
|
this.teams = teamList |
|
|
|
this.teams = teamList |
|
|
|
}).catch(res => {}) |
|
|
|
}).catch(res => { }) |
|
|
|
}, |
|
|
|
}, |
|
|
|
// 团队提交 |
|
|
|
// 团队提交 |
|
|
|
teamSubmit() { |
|
|
|
teamSubmit () { |
|
|
|
const form = this.teamForm |
|
|
|
const form = this.teamForm |
|
|
|
if (!form.teamName) return util.errorMsg('请输入团队名称') |
|
|
|
if (!form.teamName) return util.errorMsg('请输入团队名称') |
|
|
|
if (form.invitationCode.length !== 6) return util.errorMsg('请输入6位数团队邀请码') |
|
|
|
if (form.invitationCode.length !== 6) return util.errorMsg('请输入6位数团队邀请码') |
|
|
@ -445,13 +541,13 @@ export default { |
|
|
|
this.addVisible = false |
|
|
|
this.addVisible = false |
|
|
|
this.getData() |
|
|
|
this.getData() |
|
|
|
util.successMsg('报名成功!') |
|
|
|
util.successMsg('报名成功!') |
|
|
|
}).catch(res => {}) |
|
|
|
}).catch(res => { }) |
|
|
|
}, |
|
|
|
}, |
|
|
|
// 参赛信息 |
|
|
|
// 参赛信息 |
|
|
|
toInfo(row) { |
|
|
|
toInfo (row) { |
|
|
|
this.$router.push(`/matchInfo?id=${this.id}&accountId=${row.accountId}`) |
|
|
|
this.$router.push(`/matchInfo?id=${this.id}&accountId=${row.accountId}`) |
|
|
|
}, |
|
|
|
}, |
|
|
|
exportAll() { |
|
|
|
exportAll () { |
|
|
|
const data = this.multipleSelection |
|
|
|
const data = this.multipleSelection |
|
|
|
if (data.length) { |
|
|
|
if (data.length) { |
|
|
|
data.map((e, i) => e.id = i + 1) |
|
|
|
data.map((e, i) => e.id = i + 1) |
|
|
@ -462,7 +558,7 @@ export default { |
|
|
|
responseType: 'blob' |
|
|
|
responseType: 'blob' |
|
|
|
}).then((res) => { |
|
|
|
}).then((res) => { |
|
|
|
util.downloadFileDirect(`报名人员.xls`, new Blob([res.data])) |
|
|
|
util.downloadFileDirect(`报名人员.xls`, new Blob([res.data])) |
|
|
|
}).catch(res => {}) |
|
|
|
}).catch(res => { }) |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
axios.get(`${this.api.excelExport}?competitionId=${this.id}`, { |
|
|
|
axios.get(`${this.api.excelExport}?competitionId=${this.id}`, { |
|
|
|
headers: { |
|
|
|
headers: { |
|
|
@ -471,7 +567,7 @@ export default { |
|
|
|
responseType: 'blob' |
|
|
|
responseType: 'blob' |
|
|
|
}).then((res) => { |
|
|
|
}).then((res) => { |
|
|
|
util.downloadFileDirect(`报名人员.xls`, new Blob([res.data])) |
|
|
|
util.downloadFileDirect(`报名人员.xls`, new Blob([res.data])) |
|
|
|
}).catch(res => {}) |
|
|
|
}).catch(res => { }) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|