|
@@ -119,12 +119,12 @@
|
|
<el-radio label="female">女</el-radio>
|
|
<el-radio label="female">女</el-radio>
|
|
<el-radio label="secrecy">保密</el-radio>
|
|
<el-radio label="secrecy">保密</el-radio>
|
|
</el-radio-group>
|
|
</el-radio-group>
|
|
- <el-input v-show="item.type === 'text'" v-model="enrollData.enrollInfos[index].val" placeholder="请输入" />
|
|
|
|
|
|
+ <el-input v-special-char v-show="item.type === 'text'" v-model.trim="enrollData.enrollInfos[index].val" placeholder="请输入" />
|
|
|
|
|
|
- <el-select v-show="item.type === 'select'" v-model="enrollData.enrollInfos[index].val" placeholder="请选择">
|
|
|
|
|
|
+ <el-select v-show="item.type === 'select'" v-model="enrollData.enrollInfos[index].val" @change="deleteRule(item.field)" placeholder="请选择">
|
|
<el-option v-for="(value, index) in item.item" :key="index" :label="value" :value="value" />
|
|
<el-option v-for="(value, index) in item.item" :key="index" :label="value" :value="value" />
|
|
</el-select>
|
|
</el-select>
|
|
- <el-select v-if="item.field === 'school'" v-model="enrollData.enrollInfos[index].val" placeholder="请选择">
|
|
|
|
|
|
+ <el-select v-if="item.field === 'school'" v-model="enrollData.enrollInfos[index].val" @change="deleteRule(item.field)" placeholder="请选择">
|
|
<el-option v-for="(value, index) in schoolList" :key="index" :label="value.name" :value="value.schoolId" />
|
|
<el-option v-for="(value, index) in schoolList" :key="index" :label="value.name" :value="value.schoolId" />
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
@@ -140,10 +140,10 @@
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="团队名称" v-if="enrollData.leader">
|
|
<el-form-item label="团队名称" v-if="enrollData.leader">
|
|
- <el-input v-model="enrollData.teamName" />
|
|
|
|
|
|
+ <el-input v-special-char v-model.trim="enrollData.teamName" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="组队口令" v-if="!enrollData.leader" class="code-box">
|
|
<el-form-item label="组队口令" v-if="!enrollData.leader" class="code-box">
|
|
- <el-input v-model="enrollData.cipher" />
|
|
|
|
|
|
+ <el-input v-special-char v-model.trim="enrollData.cipher" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<template v-if="teamMembers.length">
|
|
<template v-if="teamMembers.length">
|
|
<el-form-item label="组队名称">
|
|
<el-form-item label="组队名称">
|
|
@@ -172,7 +172,7 @@
|
|
<div v-show="yxModule">
|
|
<div v-show="yxModule">
|
|
<el-form label-width="100px" class="join-box">
|
|
<el-form label-width="100px" class="join-box">
|
|
<el-form-item label="醍摩豆账号">
|
|
<el-form-item label="醍摩豆账号">
|
|
- <el-input v-model="enrollData.tmdid" disabled />
|
|
|
|
|
|
+ <el-input v-special-char v-model.trim="enrollData.tmdid" disabled />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-form>
|
|
</el-form>
|
|
</div>
|
|
</div>
|
|
@@ -186,7 +186,7 @@
|
|
<div v-show="jyModule">
|
|
<div v-show="jyModule">
|
|
<el-form label-width="100px" class="join-box">
|
|
<el-form label-width="100px" class="join-box">
|
|
<el-form-item label="醍摩豆账号">
|
|
<el-form-item label="醍摩豆账号">
|
|
- <el-input v-model="enrollData.tmdid" disabled />
|
|
|
|
|
|
+ <el-input v-special-char v-model.trim="enrollData.tmdid" disabled />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-form>
|
|
</el-form>
|
|
</div>
|
|
</div>
|
|
@@ -314,13 +314,13 @@ function getListInfo() {
|
|
res.contest.modules.forEach((item, index) => {
|
|
res.contest.modules.forEach((item, index) => {
|
|
res.contest[item].actState = nowTime < res.contest[item].stime ? 'notStart' : (nowTime > res.contest[item].etime ? 'finish' : 'going')
|
|
res.contest[item].actState = nowTime < res.contest[item].stime ? 'notStart' : (nowTime > res.contest[item].etime ? 'finish' : 'going')
|
|
})
|
|
})
|
|
|
|
+ registered.value = nowTime > res.contest.sign.stime && nowTime < res.contest.sign.etime ? 0 : 3
|
|
let index = res.contest.modules.findIndex(item => {
|
|
let index = res.contest.modules.findIndex(item => {
|
|
return res.contest[item].actState === 'going'
|
|
return res.contest[item].actState === 'going'
|
|
})
|
|
})
|
|
- contestStep.value = index === -1 ? 4 : index
|
|
|
|
|
|
+ contestStep.value = index === -1 ? (registered.value === 3 ? -1 : 4) : index
|
|
contest.value = res.contest
|
|
contest.value = res.contest
|
|
enrollData.type = res.contest.sign.type
|
|
enrollData.type = res.contest.sign.type
|
|
- registered.value = nowTime > res.contest.sign.stime && nowTime < res.contest.sign.etime ? 0 : 3
|
|
|
|
enrollData.enrollInfos = contest.value.sign.fields.map(item => {
|
|
enrollData.enrollInfos = contest.value.sign.fields.map(item => {
|
|
return {
|
|
return {
|
|
code: item.field,
|
|
code: item.field,
|
|
@@ -359,16 +359,36 @@ function getEnroll() {
|
|
registered.value = schoolList.length ? (res.code === 200 ? 1 : 0) : 2
|
|
registered.value = schoolList.length ? (res.code === 200 ? 1 : 0) : 2
|
|
contestStep.value = (!contestStep.value && registered.value === 1 && contest.value.upload.actState === 'going') ? 1 : contestStep.value
|
|
contestStep.value = (!contestStep.value && registered.value === 1 && contest.value.upload.actState === 'going') ? 1 : contestStep.value
|
|
}
|
|
}
|
|
|
|
+ if(!registered.value) {
|
|
|
|
+ getTeaEnroll()
|
|
|
|
+ }
|
|
}).finally(() => {
|
|
}).finally(() => {
|
|
})
|
|
})
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+function getTeaEnroll() {
|
|
|
|
+ let params = {
|
|
|
|
+ grant_type: 'get-teacher-enroll'
|
|
|
|
+ }
|
|
|
|
+ proxy.$api.teaContest(params).then(res => {
|
|
|
|
+ if(res.code === 200) {
|
|
|
|
+ res.teacherEnroll.enrollInfos.forEach(item => {
|
|
|
|
+ let fieldsIndex = contest.value.sign.fields.findIndex(fields => fields.field === item.code)
|
|
|
|
+ if(fieldsIndex != -1) {
|
|
|
|
+ if((item.code === 'period' || item.code === 'subject') && contest.value.sign.fields[fieldsIndex].type === 'select') {
|
|
|
|
+ enrollData.enrollInfos[fieldsIndex].val = contest.value.sign.fields[fieldsIndex].item.includes(item.val) ? item.val : ''
|
|
|
|
+ } else {
|
|
|
|
+ enrollData.enrollInfos[fieldsIndex].val = item.val
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ schoolIndex.value = schoolList.findIndex(school => school.schoolId === res.teacherEnroll.schoolId)
|
|
|
|
+ schoolIndex.value = schoolIndex.value === -1 ? '' : schoolIndex.value
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+}
|
|
|
|
+
|
|
function searchCipher() {
|
|
function searchCipher() {
|
|
- /* loading = ElLoading.service({
|
|
|
|
- lock: true,
|
|
|
|
- text: '加载中',
|
|
|
|
- background: 'rgba(0, 0, 0, 0.7)'
|
|
|
|
- }) */
|
|
|
|
let params = {
|
|
let params = {
|
|
grant_type: 'search-team-by-cipher',
|
|
grant_type: 'search-team-by-cipher',
|
|
activityId: infoId.value,
|
|
activityId: infoId.value,
|
|
@@ -392,19 +412,13 @@ function searchCipher() {
|
|
})
|
|
})
|
|
}
|
|
}
|
|
}).finally(() => {
|
|
}).finally(() => {
|
|
- // loading.close()
|
|
|
|
})
|
|
})
|
|
}
|
|
}
|
|
|
|
|
|
// 队长身份要先生成组队口令
|
|
// 队长身份要先生成组队口令
|
|
async function genCipher(formEl) {
|
|
async function genCipher(formEl) {
|
|
formEl.validate(async (valid, ddd) => {
|
|
formEl.validate(async (valid, ddd) => {
|
|
- if(valid) {
|
|
|
|
- /* loading = ElLoading.service({
|
|
|
|
- lock: true,
|
|
|
|
- text: '加载中',
|
|
|
|
- background: 'rgba(0, 0, 0, 0.7)'
|
|
|
|
- }) */
|
|
|
|
|
|
+ if(valid && schoolIndex.value !== '') {
|
|
if(contest.value.sign.type && enrollData.leader) {
|
|
if(contest.value.sign.type && enrollData.leader) {
|
|
let params = {
|
|
let params = {
|
|
grant_type: 'gen-cipher',
|
|
grant_type: 'gen-cipher',
|
|
@@ -417,12 +431,12 @@ async function genCipher(formEl) {
|
|
await signContest()
|
|
await signContest()
|
|
}
|
|
}
|
|
}).catch(() => {
|
|
}).catch(() => {
|
|
- // loading.close()
|
|
|
|
})
|
|
})
|
|
} else {
|
|
} else {
|
|
await signContest()
|
|
await signContest()
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
|
|
+ console.log('fegjmj,', valid, schoolIndex.value);
|
|
ElMessage({
|
|
ElMessage({
|
|
type: 'warning',
|
|
type: 'warning',
|
|
message: '请完善信息'
|
|
message: '请完善信息'
|
|
@@ -499,7 +513,6 @@ function signContest() {
|
|
}
|
|
}
|
|
}).finally(() => {
|
|
}).finally(() => {
|
|
}).finally(() => {
|
|
}).finally(() => {
|
|
- // loading.close()
|
|
|
|
})
|
|
})
|
|
})
|
|
})
|
|
}
|
|
}
|
|
@@ -539,6 +552,10 @@ async function onPreview(item) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+function deleteRule(type) {
|
|
|
|
+ enrollForm.value.clearValidate(type)
|
|
|
|
+}
|
|
|
|
+
|
|
watch(() => enrollData.cipher, (newdata) => {
|
|
watch(() => enrollData.cipher, (newdata) => {
|
|
codeSearch.value = true
|
|
codeSearch.value = true
|
|
teamMembers.value = []
|
|
teamMembers.value = []
|