8f61ec56 by 杨炀

no message

1 parent 6be47212
......@@ -105,6 +105,13 @@ export function registerSingle(data) {
data:data
})
}
export function loginSingle(data) {
return request({
url: `/userLoginAboard`,
method: 'post',
data:data
})
}
// 根据Id获取我的团队
export function getGroupInfo() {
......
......@@ -8,7 +8,7 @@
<router-link to="/about">亚洲体育舞蹈节版权所有</router-link>
</li>
<li>
<a target="_blank" href="https://beian.miit.gov.cn/">ICP备案号:苏ICP备17015770号-3</a>
<a target="_blank" href="https://beian.miit.gov.cn/">ICP备案号:苏ICP备2023054420号-2</a>
<!-- <a class="ffoot" target="_blank" href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=11010102004192">-->
<!-- <img src="@/assets/v1/beian.png">-->
<!-- 京公网安备 11010102004192号</a>-->
......
......@@ -176,7 +176,7 @@ function handleSelect(key, keyPath) {
}
const logout = () => {
proxy.$modal.confirm('确定退出?').then(function() {
proxy.$modal.confirm(language.value==0?'确定退出?':'Are you sure to exit?').then(function() {
return useUserStore().logOut()
}).then(() => {
isLogin.value = true
......
......@@ -147,7 +147,7 @@ function handleSelect(key, keyPath) {
}
const logout = () => {
proxy.$modal.confirm('确定退出?').then(function() {
proxy.$modal.confirm(language.value==0?'确定退出?':'Are you sure to exit?').then(function() {
return useUserStore().logOut()
}).then(() => {
isLogin.value = true
......
......@@ -20,26 +20,51 @@
<el-form-item :label="language==0?'姓名':'Real Name'" required prop="realName">
<el-input v-model="myform.realName"/>
</el-form-item>
<el-form-item :label="language==0?'性别':'Sex'" required prop="sex">
<el-form-item :label="language==0?'性别':'Sex'" required >
<el-radio-group v-model="myform.sex">
<el-radio label="0">{{ language == 0 ? '女' : 'female' }}</el-radio>
<el-radio label="1">{{ language == 0 ? '男' : 'male' }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item :label="language==0?'证件类型':'ID type'" required prop="idcType">
<el-select v-model="myform.idcType" style="width: 100%">
<el-option
v-for="item in certificates"
:key="item.value"
:label="item.label"
:value="item.value"
<el-form-item :label="language==0?'出生日期':'Birthday'" required>
<el-date-picker
v-model="myform.birth"
style="width: 100%;"
type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"
/>
</el-select>
</el-form-item>
<el-form-item :label="language==0?'证件号码':'ID NO'" prop="idcCode">
<el-input v-model="myform.idcCode" @blur="checkCode"/>
<el-form-item label="Representing">
<el-input v-model="myform.representing" disabled/>
</el-form-item>
<el-form-item label="Age group">
<el-input v-model="myform.ageGroup" disabled/>
</el-form-item>
<el-form-item label="Division">
<el-input v-model="myform.division" disabled/>
</el-form-item>
<el-form-item label="Status">
<el-input v-model="myform.status" disabled/>
</el-form-item>
<el-form-item :label="language==0?'类型':'Type'" prop="type">
<el-form-item label="Passport" required>
<el-input v-model="myform.passportNumber"/>
</el-form-item>
<el-form-item label="Passport File">
<file-upload v-model="myform.passportUrl" :limit="1" :is-show-tip="false" :button-text="'Upload'"/>
</el-form-item>
<!-- <el-form-item :label="language==0?'证件类型':'ID type'" required prop="idcType">-->
<!-- <el-select v-model="myform.idcType" style="width: 100%">-->
<!-- <el-option-->
<!-- v-for="item in certificates"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.value"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- <el-form-item :label="language==0?'证件号码':'ID NO'" prop="idcCode">-->
<!-- <el-input v-model="myform.idcCode" @blur="checkCode"/>-->
<!-- </el-form-item>-->
<el-form-item :label="language==0?'类型':'Type'" required>
<el-select v-model="myform.type" style="width: 100%;">
<el-option :label="language==0?'业余':'amateur'" value="0"/>
<el-option :label="language==0?'专业':'Professional'" value="1"/>
......@@ -47,9 +72,9 @@
<el-option :label="language==0?'其他':'Other'" value="3"/>
</el-select>
</el-form-item>
<el-form-item :label="language==0?'邮箱':'Email'" required prop="email">
<el-input v-model="myform.email" type="email" :placeholder="language==0?'请输入内容':''"/>
</el-form-item>
<!-- <el-form-item :label="language==0?'邮箱':'Email'" required prop="email">-->
<!-- <el-input v-model="myform.email" type="email" :placeholder="language==0?'请输入内容':''"/>-->
<!-- </el-form-item>-->
</el-form>
<div class="text-center">
<el-button type="primary" class="btn-lineG" round @click="save">
......
......@@ -10,7 +10,7 @@
<match-info-row :match-id="matchId"/>
<div class="pd20">
<el-row :gutter="20">
<el-col :lg="4">
<el-col :lg="6">
<div class="panel border">
<div class="panel-header ">
<h3 class="panel-title" v-if="language==0">完善我的信息</h3>
......@@ -18,40 +18,55 @@
</div>
<div class="panel-body">
<div class="chooseForm" style="display: flex">
<div @click="editPerson" style="width: 60px" class="mr20">
<div @click="editPerson" style="width: 50%;text-align: center;">
<el-avatar fit="cover" v-if="form.picUrl" :size="60" :src="fillImgUrl(form.picUrl)"/>
<div class="addBttn" v-else>+</div>
<div v-else>
<el-avatar fit="cover" v-if="form.sex == 0" :size="60" src="@/assets/img/head1.png"/>
<el-avatar fit="cover" v-if="form.sex == 1" :size="60" src="@/assets/img/head0.png"/>
</div>
<div class="text-center mt10">
<span>{{ form.name }}</span>
<span>{{ form.realName }}</span>
<el-icon>
<Edit/>
</el-icon>
</div>
</div>
<!-- 舞伴-->
<el-checkbox-group style="width: 60px">
<el-checkbox>
<!--舞伴-->
<div style="width:50%;text-align: center;" v-if="form.danceMate">
<el-checkbox-group v-model="mateChosed" @change="changeMate">
<el-checkbox :label="form.danceMate.id">
<div>
<el-avatar fit="cover" v-if="form.picUrl" :size="60" :src="fillImgUrl(form.picUrl)"/>
<div class="addBttn" v-else>+</div>
<div class="text-center mt10">
<span>{{ form.name }}</span>
<el-icon>
<el-avatar fit="cover" v-if="form.danceMate.sex == 0" :size="60"
src="@/assets/img/head1.png"/>
<el-avatar fit="cover" v-if="form.danceMate.sex == 1" :size="60"
src="@/assets/img/head0.png"/>
<div class="text-center mt10" @click="editMate(form.danceMate)">
<span>{{ form.danceMate.realName }}</span>
<el-icon @click.stop="editMate(form.danceMate)">
<Edit/>
</el-icon>
<el-icon @click.stop="delMate(form.danceMate)">
<Delete/>
</el-icon>
</div>
</div>
</el-checkbox>
</el-checkbox-group>
</div>
<div v-else @click="editMate()">
<div class="addBttn">+</div>
<div class="text-center mt10">
<el-icon>
<Edit/>
</el-icon>
</div>
</div>
</div>
</div>
</div>
</el-col>
<el-col :lg="20">
<el-col :lg="18">
<div class="panel border">
<div class="panel-header ">
<h3 class="panel-title" v-if="language==0">可参与报名的项目</h3>
......@@ -106,22 +121,24 @@
@editExtra="goPersonInfo"/>
<zu-table v-else :list="zuTableList" :language="language" @delete="removeThis"/>
<div v-if="showPersonList">
<div v-if="showPersonList||myMemberTable.length>0">
<el-row class="mt20">
<el-col :span="24">
<el-button type="primary" plain>{{ language == 0 ? '添加随行人员' : 'Add accompanying personnel' }}
<el-button @click="addAccompany" type="primary" plain>
{{ language == 0 ? '添加随行人员' : 'Add accompanying personnel' }}
</el-button>
</el-col>
</el-row>
<el-table class="mt20">
<el-table-column type="index" label="Index" width="60"/>
<el-table-column label="Name"/>
<el-table-column label="Passport number"/>
<el-table-column label="Birthday"/>
<el-table-column label="Sex"/>
<el-table-column label="Role">
<el-table class="mt20" :data="myMemberTable" border>
<el-table-column type="index" label="Index" width="70" align="center"/>
<el-table-column :label="language==0?'姓氏':'surname'" prop="xing" min-width="100"/>
<el-table-column :label="language==0?'名':'name'" prop="ming" min-width="100"/>
<el-table-column label="Passport number" prop="idcCode" min-width="120"/>
<el-table-column label="Birthday" prop="birth"/>
<el-table-column label="Sex" prop="sexStr"/>
<el-table-column label="Role" min-width="160">
<template #default="scope">
<div class="esp">
<div class="roletd">
<span v-for="item in scope.row.label?.split(',')" :key="item.id" class="text-primary">
<span v-if="item==='0'" class="ml5">{{ language == 0 ? '运动员' : 'athletes' }}</span>
<span v-if="item==='1'" class="ml5">{{ language == 0 ? '教练' : 'coach' }}</span>
......@@ -156,7 +173,8 @@
</el-card>
</div>
<dialogAddCoach ref="dialogAddCoachRef" @submitForm="changeMeDone"/>
<dialogEditWdsf ref="dialogEditWdsfRef" @submitForm="changeMeDone"/>
<dialogEditAccompany ref="dialogEditAccompanyRef" @submitForm="getMyMemberTable"/>
<!-- <dialogChangeCoach ref="popChangeCoach" @submitForm="getMySignInfo"/>-->
<dialogExtraForm ref="popExtraForm" @submitForm="getSignInfoList"/>
</div>
......@@ -166,7 +184,8 @@
import {ref, reactive, toRefs} from 'vue'
import * as match from '@/apiPc/match'
import {getCurrentInstance, onMounted} from '@vue/runtime-core'
import dialogAddCoach from './components/addCoach'
import dialogEditWdsf from './components/addWdsf'
import dialogEditAccompany from './components/addAccompany'
import dialogSportsmanList from './components/sportsmanList'
import dialogAllSportsmanList from './components/allSportsmanList'
import dialogChangeCoach from './components/changeCoach'
......@@ -187,6 +206,7 @@ import ZuTable from '@/viewsPc/match/components/zu-table'
import SingleSignStep from "@/viewsPc/match/components/singleSignStep";
import MatchInfoRow from "@/viewsPc/match/components/matchInfo-row";
import useUserStore from "@/store/modules/user";
import {getPerPersonList} from "@/apiPc/match";
const language = ref(cache.local.get('language') || 0)
......@@ -196,6 +216,7 @@ const data = reactive({
signInfoList: [],
zuTableList: [],
choosedList: [],
myMemberTable: [],
extraPersonInfoMapList: [],
teamList: [],
extraform: [],
......@@ -210,14 +231,39 @@ const data = reactive({
activeTeam: '',
names: {},
choosedchoosed: [],
mateChosed: [],
projectIds: [],
projectList: [],
choosed2List: [], projectQuery: {}, tableType: 1,
})
const {
activeTeam, names, tableData, signInfoList, zuTableList, choosedList, showExtraForm, extraPersonInfoMapList, teamList,
extraform, groupId, signType, coachOrLeaderFlag, showResult, noPhotoCanSign, extraTableHead,
coachForm, projectIds, choosedchoosed, activeStep, projectList, choosed2List, loadingProject, projectQuery, tableType
activeTeam,
names,
tableData,
myMemberTable,
signInfoList,
zuTableList,
choosedList,
showExtraForm,
extraPersonInfoMapList,
teamList,
extraform,
groupId,
signType,
coachOrLeaderFlag,
showResult,
noPhotoCanSign,
extraTableHead,
coachForm,
projectIds,
choosedchoosed,
mateChosed,
activeStep,
projectList,
choosed2List,
loadingProject,
projectQuery,
tableType
} = toRefs(data)
const matchId = ref(route.query.matchId)
let signInfoType = null
......@@ -234,7 +280,7 @@ onMounted(() => {
getSignInfoList()
getMatch(matchId.value)
getMyInfo()
getMyMemberTable()
getMySignInfo()
})
......@@ -246,7 +292,23 @@ function getMyInfo() {
})
}
function changeMeDone() {
function getMyMemberTable() {
//
match.getPerPersonList({cptId: matchId.value, searchLabels: '1,2,3,4,5,6'}, userId.value).then(res => {
myMemberTable.value = res.rows
})
}
function addAccompany() {
proxy.$refs['dialogEditAccompanyRef'].open({
title: 'Add accompanying personnel',
cptId: matchId.value,
id: 0
})
}
function changeMeDone(mateId) {
console.log(mateId)
getMyInfo()
getProjectList()
}
......@@ -326,13 +388,26 @@ function submitForm(n) {
}
}
if(showPersonList.value){
if (showPersonList.value) {
if (myMemberTable.value.length == 0) {
ElMessageBox.confirm(language.value == 0 ? '是否继续添加随性人员?' : 'Do you want to add casual personnel?',
language.value == 0 ? '提示' : 'Tip', {
confirmButtonText: language.value == 0 ? '确定' : 'Yes',
cancelButtonText: language.value == 0 ? '取消' : 'Cancel',
type: 'warning'
}).then(() => {
}).catch(() => {
commit()
})
} else {
commit()
}
} else {
ElMessageBox.confirm(language.value==0?'是否添加随性人员?':'Do you want to add casual personnel?',
language.value==0?'提示':'Tip', {
confirmButtonText: language.value==0?'确定':'Yes',
cancelButtonText: language.value==0?'取消':'Cancel',
ElMessageBox.confirm(language.value == 0 ? '是否添加随性人员?' : 'Do you want to add casual personnel?',
language.value == 0 ? '提示' : 'Tip', {
confirmButtonText: language.value == 0 ? '确定' : 'Yes',
cancelButtonText: language.value == 0 ? '取消' : 'Cancel',
type: 'warning'
}).then(() => {
showPersonList.value = true
......@@ -346,6 +421,12 @@ function submitForm(n) {
}
function commit() {
ElMessageBox.confirm(language.value == 0 ? '确定提交吗?' : 'Are you sure to submit?',
language.value == 0 ? '提示' : 'Tip',
{
confirmButtonText: language.value == 0 ? '确定' : 'Yes',
cancelButtonText: language.value == 0 ? '取消' : 'Cancel',
}).then(()=>{
match.commitSign({
groupId: 0,
cptId: matchId.value
......@@ -356,18 +437,29 @@ function commit() {
orderId: res.data
}
})
})
})}
)
}
function getProjectList() {
projectIds.value = []
loadingProject.value = true
//根据已选人员id 获取项目列表
var obj = {
var obj = {}
if (mateChosed.value.length > 0 && form.value.danceMate) {
obj = {
cptId: matchId.value,
perIds: `${myId.value},${form.value.danceMate?.id}`,
name: projectQuery.value.name
}
} else {
obj = {
cptId: matchId.value,
perIds: myId.value,
name: projectQuery.value.name
}
}
match.getProjectPageByPerIds(obj).then(res => {
projectList.value = res.rows
loadingProject.value = false
......@@ -402,18 +494,50 @@ function addCoach() {
id: 0,
groupId: groupId.value
}
proxy.$refs['dialogAddCoachRef'].open(params)
proxy.$refs['dialogEditWdsfRef'].open(params)
}
function delperson(p) {
//删除团队下的人
let text = ''
let t = '提示'
let s = '确定'
let c = '取消'
let msg = '操作成功'
if (language.value == 0) {
text = `确定删除${p.realName}吗?`
} else {
text = `Delete ${p.realName}?`
t = 'Tips'
s = 'Confirm'
c = 'Cancel'
msg = ' Successful!'
}
ElMessageBox.confirm(text, t, {
confirmButtonText: s,
cancelButtonText: c,
type: 'warning'
}).then(() => {
match.delPerson(p.id).then(res => {
ElMessage.success(msg)
getMyMemberTable()
getMyInfo()
})
})
}
function signUp() {
if (projectIds.value.length == 0) {
return
}
const obj = {
athleteIds: myId.value,
let obj = {
projectIds: projectIds.value.toString(),
groupId: groupId.value
groupId: 0
}
if (mateChosed.value.length > 0 && form.value.danceMate) {
obj.athleteIds= `${myId.value},${form.value.danceMate?.id}`
} else {
obj.athleteIds= myId.value
}
match.sportsmanDone(obj).then(res => {
getSignInfoList()
......@@ -456,7 +580,9 @@ function goMySign() {
const goPersonInfo = (row) => {
if (signInfoType == '1') {
ElMessageBox.alert('已报项,前往我的报项', '提示', {
ElMessageBox.alert(
language.value == 0 ? '已报项,前往我的报项' : 'Reported items, go to my submission',
language.value == 0 ? '提示' : 'Tips', {
confirmButtonText: 'OK',
callback: (Action) => {
router.push({name: 'myMatch'})
......@@ -484,12 +610,39 @@ function downloadVoucher() {
}
function editPerson() {
proxy.$refs['dialogAddCoachRef'].open({
proxy.$refs['dialogEditWdsfRef'].open({
title: language.value == 0 ? '编辑个人信息' : 'Edit My Information',
isMe: true
})
}
function editMate(obj) {
proxy.$refs['dialogEditWdsfRef'].open({
title: language.value == 0 ? '编辑舞伴' : 'Edit My Mate',
isMe: false,
form: obj || {},
cptId:matchId.value,
id: obj?.id || 0
})
}
function delMate(mate) {
delperson(mate)
// ElMessageBox.confirm(language.value == 0 ? '确定删除队友吗?' : 'Are you sure to delete the teammate?',
// language.value == 0 ? '提示' : 'Tip',
// {
// confirmButtonText: language.value == 0 ? '确定' : 'Yes',
// cancelButtonText: language.value == 0 ? '取消' : 'Cancel',
// }).then(()=>{
//
// })
}
function changeMate(e) {
console.log(e, mateChosed.value)
getProjectList()
}
function switchTabletype() {
if (tableType.value == 0) {
tableType.value = 1
......@@ -652,4 +805,10 @@ function switchTabletype() {
}
}
}
.roletd {
.ml5 {
display: inline-block
}
}
</style>
......
<template>
<el-dialog
v-model="show" :title="title" width="800px" append-to-body close-icon="CircleClose" center
:close-on-click-modal="false" class="pcloginpop"
destroy-on-close
>
<el-form ref="dialogRef" :model="form" :rules="language==0?rules:rules_cn" label-width="160px" inline>
<el-row :gutter="30">
<el-col :lg="24">
<el-form-item :label="language==0?'姓氏':'surname'" prop="xing" required>
<el-input v-model="form.xing"/>
</el-form-item>
<el-form-item :label="language==0?'名':'name'" prop="ming" required>
<el-input v-model="form.ming"/>
</el-form-item>
<!-- <el-form-item :label="language==0?'证件类型':'ID type'" prop="idcType" required>-->
<!-- <el-select v-model="form.idcType" style="width: 100%;">-->
<!-- <el-option-->
<!-- v-for="item in certificates"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.value"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item :label="language==0?'护照号':'PassPort Number'" prop="idcCode" required>
<el-input v-model="form.idcCode"/>
</el-form-item>
<el-form-item :label="language==0?'出生日期':'birth'" prop="birth" required>
<el-date-picker
v-model="form.birth"
style="width: 100%;"
type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"
/>
</el-form-item>
<el-form-item :label="language==0?'性别':'sex'" prop="sex">
<el-radio-group v-model="form.sex">
<el-radio label="0">{{ language == 0 ? '女' : 'female' }}</el-radio>
<el-radio label="1">{{ language == 0 ? '男' : 'male' }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item :label="language==0?'主要会员角色':'roles'" prop="labelArr">
<el-select v-model="form.labelArr" multiple>
<el-option v-for="l in labels" :key="l.value" :value="l.value" :label="language==0?l.label:l.enlabel"/>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<template #footer>
<div class="dialog-footer text-center">
<el-button type="primary" class="btn-lineG w200px" round @click="submitForm">{{
language == 0 ? '确定' : 'Save'
}}
</el-button>
</div>
</template>
</el-dialog>
</template>
<script setup>
import {reactive, ref, toRefs, watch} from 'vue'
import {getCurrentInstance, nextTick, onMounted} from '@vue/runtime-core'
import * as match from '@/apiPc/match'
import {ElMessage} from 'element-plus'
import {nationList} from '@/assets/js/data'
import _ from 'lodash'
import cache from "@/plugins/cache";
const language = ref(cache.local.get('language') || 0)
const certificates = ref([
{
value: '0',
label: language.value == 0 ? '居民身份证' : 'Resident ID card'
},
{
value: '1',
label: language.value == 0 ? '护照' : 'Passport'
},
{
value: '2',
label: language.value == 0 ? '其他' : 'Other'
}
])
const {proxy} = getCurrentInstance()
const emit = defineEmits(['submitForm'])
const data = reactive({
form: {
idcType: '1',
sex:'0'
},
rules: {
xing: [{required: true, message: '必填', trigger: 'blur'}],
ming: [{required: true, message: '必填', trigger: 'blur'}],
idcCode: [{required: true, message: '必填', trigger: 'blur'}],
birth: [{required: true, message: '必填', trigger: 'change'}],
sex: [{required: true, message: '必填', trigger: 'change'}],
labelArr: [{required: true, message: '必填', trigger: 'blur'}]
},
rules_cn: {
xing: [{required: true, message: 'required', trigger: 'blur'}],
ming: [{required: true, message: 'required', trigger: 'blur'}],
idcCode: [{required: true, message: 'required', trigger: 'blur'}],
birth: [{required: true, message: 'required', trigger: 'change'}],
address: [{required: true, message: 'required', trigger: 'blur'}],
sex: [{required: true, message: 'required', trigger: 'change'}],
labelArr: [{required: true, message: 'required', trigger: 'blur'}]
},
show: false,
labels: [
// {value: '0', label: '运动员', enlabel: 'Sportsman'},
{value: '1', label: '教练', enlabel: 'Coach'},
{value: '2', label: '领队', enlabel: 'Leader'},
{value: '4', label: '队医', enlabel: 'Nurse'},
{value: '5', label: '翻译', enlabel: 'Translator'},
{value: '6', label: '官员', enlabel: 'Official'},
{value: '3', label: '其他', enlabel: 'Other'}
],
title: 'Add accompanying personnel',
cptId:''
})
const {
form,
rules,
rules_cn,
show,
title,
cptId,
labels,
uType
} = toRefs(data)
let editgay = false
const open = (params) => {
console.log(params)
show.value = true
cptId.value = params.cptId
title.value = params.title
if (params.id != 0) { // 编辑
editgay = true
match.getPersonInfoById(params.id).then(res => {
form.value = res.data
form.value.id = params.id
if (form.value.label) {
// {0:0,1:1,2:3}
form.value.labelArr = form.value.label.split(',')
}
})
}
}
defineExpose({open})
watch(show, (value) => {
if (!value) {
form.value = {}
}
nextTick(() => {
proxy.$refs['dialogRef'].clearValidate()
})
})
function submitForm() {
proxy.$refs['dialogRef'].validate((valid) => {
if (valid) {
form.value.label = form.value.labelArr.toString()
if (editgay) {
// id不是0
match.editPersonInfo(form.value).then(res => {
ElMessage.success('保存成功')
show.value = false
emit('submitForm')
})
} else {
form.value.cptId = cptId.value
match.savePersonForMyPerson(form.value).then(res => {
ElMessage.success('保存成功')
show.value = false
emit('submitForm')
})
}
}
})
}
function cancel() {
show.value = false
}
</script>
<style lang="scss">
.threeFour {
width: 100%;
.el-upload--picture-card {
width: 120px;
height: 160px;
}
.el-upload-list--picture-card .el-upload-list__item {
width: 120px;
height: 160px;
}
}
.tip {
font-size: 13px;
color: #999;
margin: 10px 0;
i {
color: red;
margin: 0 4px 0 0;
}
}
.shenfen {
.el-upload--picture-card {
width: 320px;
height: 200px;
}
.el-upload-list--picture-card .el-upload-list__item {
width: 320px;
height: 200px;
}
}
.touxiang {
:deep(.el-upload--picture-card ) {
width: 140px;
height: 200px;
}
}
.touxiang {
:deep(.el-upload-list__item ) {
width: 140px;
height: 200px;
}
}
.el-form--inline .el-form-item {
width: 100%
}
.boxDialog {
.el-dialog__header {
background: linear-gradient(#ed2c22, #fe6d45);
margin-right: 0;
height: 52px;
span {
color: #fff;
}
}
}
</style>
......@@ -42,7 +42,7 @@
/>
</el-form-item>
<el-form-item :label="language==0?'主要会员角色':'roles'" prop="labelArr">
<el-select v-model="form.labelArr" multiple @change="labelvalue">
<el-select v-model="form.labelArr" multiple>
<el-option v-for="l in labels" :key="l.value" :value="l.value" :label="language==0?l.label:l.enlabel"/>
</el-select>
</el-form-item>
......@@ -63,6 +63,7 @@
<el-option v-for="item in countryList" :key="item.id" :label="language==0?item.name:item.enName" :value="item.id"/>
</el-select>
</el-form-item>
<el-form-item :label="language==0?'详细地址':'Address'" prop="address" required>
<el-cascader v-if="form.countryId == 240"
v-model="form.regionId"
......@@ -201,7 +202,8 @@ const open = (params) => {
if (form.value.label) {
// {0:0,1:1,2:3}
form.value.labelArr = form.value.label.split(',')
labelvalue(form.value.labelArr)
} else {
form.value.labelArr = ['0']
}
})
} else {
......@@ -213,7 +215,6 @@ const open = (params) => {
if (form.value.label) {
// {0:0,1:1,2:3}
form.value.labelArr = form.value.label.split(',')
labelvalue(form.value.labelArr)
}
})
}
......@@ -259,7 +260,6 @@ function checkCode() {
form.value = res.data
if (form.value.label != null) {
form.value.labelArr = form.value.label.split(',')
labelvalue(form.value.labelArr)
}
form.value.groupId = groupId.value
}
......@@ -297,16 +297,6 @@ function giveBirthDay() {
}
}
function labelvalue(e) {
if (e.indexOf('1') > -1 || e.indexOf('2') > -1) {
// 联系方式必填
showRequire.value = true
} else {
showRequire.value = false
}
console.log(showRequire.value)
}
function submitForm() {
proxy.$refs['dialogRef'].validate((valid) => {
if (valid) {
......
<template>
<el-dialog
v-model="show" :title="title" width="800px" append-to-body close-icon="CircleClose" center
:close-on-click-modal="false" class="pcloginpop" @close="cancel"
destroy-on-close
>
<el-form ref="dialogRef" :model="form" :label-width="language==0?120:180" inline>
<el-form-item :label="language==0?'WDSF卡号':'WDSF ID'" v-if="form.id">
{{ form.wdsfMin }}
</el-form-item>
<el-form-item :label="language==0?'WDSF卡号':'WDSF ID'" required v-else>
<el-input type="text" v-model="card" @change="resetCode" >
<template #append>
<el-button type="primary" plain style="width: 110px" @click="checkCard">
<el-icon v-if="isCodeTrue" size="16" color="#67C23A">
<CircleCheckFilled/>
</el-icon>
<span v-else>{{ language == 0 ? '校验卡号' : 'Check Code' }}</span>
</el-button>
</template>
</el-input>
<Vcode :show="showVcode" :z-index="2999" @success="codeSuccess()"></Vcode>
</el-form-item>
<div class="h30"></div>
<div class="leftboderTT">{{ language == 0 ? '个人信息' : 'Personal information' }}
<span v-if="language==0">(登录时需要验证,保护账户信息)</span>
<span v-else>(Obtain automatically according to the WDSF number)</span>
</div>
<div class="h20"></div>
<el-form-item :label="language==0?'名':'name'">
<el-input v-model="form.ming" disabled/>
</el-form-item>
<el-form-item :label="language==0?'姓氏':'surname'">
<el-input v-model="form.xing" disabled/>
</el-form-item>
<el-form-item label="Representing">
<el-input v-model="form.representing" disabled/>
</el-form-item>
<el-form-item label="Age group">
<el-input v-model="form.ageGroup" disabled/>
</el-form-item>
<el-form-item label="Division">
<el-input v-model="form.division" disabled/>
</el-form-item>
<el-form-item label="Status">
<el-input v-model="form.wdsfStatus" disabled/>
</el-form-item>
<div class="h30"></div>
<div class="leftboderTT">
{{ language == 0 ? '补充信息' : 'Supplementary Information' }}
</div>
<div class="h20"></div>
<el-form-item :label="language==0?'性别':'Sex'" required>
<el-radio-group v-model="form.sex">
<el-radio label="0">{{ language == 0 ? '女' : 'female' }}</el-radio>
<el-radio label="1">{{ language == 0 ? '男' : 'male' }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item :label="language==0?'出生日期':'Birthday'" required>
<el-date-picker
v-model="form.birth"
style="width: 100%;"
type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"
/>
</el-form-item>
<el-form-item label="Passport number" required>
<el-input v-model="form.passportNumber"/>
</el-form-item>
<el-form-item label="Passport File">
<file-upload v-model="form.passportUrl" :limit="1" :is-show-tip="false" :button-text="'Upload'"/>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer text-center">
<el-button type="primary" class="btn-lineG w200px" round @click="submitForm">{{
language == 0 ? '确定' : 'Save'
}}
</el-button>
</div>
</template>
</el-dialog>
</template>
<script setup>
import {reactive, ref, toRefs, watch} from 'vue'
import {getCurrentInstance, nextTick, onMounted} from '@vue/runtime-core'
import * as match from '@/apiPc/match'
import {ElMessage} from 'element-plus'
import _ from 'lodash'
import cache from "@/plugins/cache";
import Vcode from "vue3-puzzle-vcode"
import {checkWdsf} from "@/apiPc/match";
const language = ref(cache.local.get('language') || 0)
const certificates = ref([
{
value: '0',
label: language.value == 0 ? '居民身份证' : 'Resident ID card'
},
{
value: '1',
label: language.value == 0 ? '护照' : 'Passport'
},
{
value: '2',
label: language.value == 0 ? '其他' : 'Other'
}
])
const {proxy} = getCurrentInstance()
const emit = defineEmits(['submitForm'])
const data = reactive({
form: {
// countryId: 240
sex:'0'
},
card:'',
show: false,
showVcode: false,
labels: [
{value: '0', label: '运动员', enlabel: 'Sportsman'},
{value: '1', label: '教练', enlabel: 'Coach'},
{value: '2', label: '领队', enlabel: 'Leader'},
{value: '4', label: '队医', enlabel: 'Nurse'},
{value: '5', label: '翻译', enlabel: 'Translator'},
{value: '6', label: '官员', enlabel: 'Official'},
{value: '3', label: '其他', enlabel: 'Other'}
],
title: '添加选手信息',
isMe: false,
isCodeTrue: false,
cptId:''
})
const {form, show,showVcode, title, labels, uType, isMe,isCodeTrue,card,cptId} = toRefs(data)
let editgay = false
const open = (params) => {
console.log(params)
show.value = true
title.value = params.title
isMe.value = params.isMe
cptId.value = params.cptId
if (language.value == 0) {
form.value.countryId = 240
}
if (isMe.value) {
//个人
match.getMyPersonInfo().then(res => {
form.value = res.data
form.value.id = res.data.id
if (form.value.label) {
// {0:0,1:1,2:3}
form.value.labelArr = form.value.label.split(',')
} else {
form.value.labelArr = ['0']
}
})
} else {
if (params.id != 0) { // 编辑舞伴
editgay = true
form.value = params.form
}
}
}
defineExpose({open})
watch(show, (value) => {
if (!value) {
form.value = {
sex:'0'
}
}
nextTick(() => {
proxy.$refs['dialogRef'].clearValidate()
})
})
function submitForm() {
if (editgay) {
// id不是0
form.value.cptId = cptId.value
match.editPersonInfo(form.value).then(res => {
ElMessage.success('保存成功')
show.value = false
emit('submitForm')
})
} else {
if (!form.value.passportNumber) {
ElMessage.error('Please fill in your passport number')
return
}
if (!form.value.birth) {
ElMessage.error('Please fill in your birthday')
return
}
if(Array.isArray(form.value.passportUrl)){
form.value.passportUrl = form.value.passportUrl[0].url
}
if (isMe.value) {
match.saveMyBaseInfo(form.value).then(res => {
ElMessage.success('保存成功')
show.value = false
emit('submitForm')
})
} else {
delete form.value.status
delete form.value.id
form.value.label = '0'
form.value.cptId = cptId.value
form.value.wdsfMin = form.value.min
form.value.idcCode = form.value.passportNumber
form.value.idcType = '1'
match.savePersonForMyPerson(form.value).then(res => {
ElMessage.success('保存成功')
show.value = false
emit('submitForm', res.data)
})
}
}
}
function cancel() {
show.value = false
showVcode.value = false
}
function resetCode() {
isCodeTrue.value = false
}
function checkCard() {
if(isCodeTrue.value){
return
}
if (!card.value) {
if (language.value == 0) {
ElMessage.error('请填写WDSF卡号')
} else {
ElMessage.error('Please fill in your WDSF code')
}
return
}
showVcode.value = true
}
function codeSuccess(msg) {
console.log('验证通过' + msg);
showVcode.value = false
isCodeTrue.value = true
checkWdsf({card: card.value}).then(res => {
form.value = res.data
form.value.xing = form.value.surname
form.value.ming = form.value.name
form.value.wdsfStatus = form.value.status
if (!form.value.sex) {
form.value.sex = '0'
}
if (form.value.wdsfFlag == '0') {
isCodeTrue.value = false
if (language.value == 0) {
ElMessage.error('WDSF卡号错误')
} else {
ElMessage.error('WDSF ID is Error')
}
}
})
}
</script>
<style lang="scss">
.el-input-group__append button.el-button, .el-input-group__append button.el-button:hover {
color: var(--el-color-primary);
background: #efefff;
border: var(--el-color-primary) solid 1px;
border-radius: 0;
}
.leftboderTT {
color: var(--el-color-primary);
font-size: 16px;
font-weight: 600;
span {
color: #929AA0;
font-size: 14px;
}
}
.threeFour {
width: 100%;
.el-upload--picture-card {
width: 120px;
height: 160px;
}
.el-upload-list--picture-card .el-upload-list__item {
width: 120px;
height: 160px;
}
}
.tip {
font-size: 13px;
color: #999;
margin: 10px 0;
i {
color: red;
margin: 0 4px 0 0;
}
}
.shenfen {
.el-upload--picture-card {
width: 320px;
height: 200px;
}
.el-upload-list--picture-card .el-upload-list__item {
width: 320px;
height: 200px;
}
}
.touxiang {
:deep(.el-upload--picture-card ) {
width: 140px;
height: 200px;
}
}
.touxiang {
:deep(.el-upload-list__item ) {
width: 140px;
height: 200px;
}
}
.el-form--inline .el-form-item {
width: 100%
}
.boxDialog {
.el-dialog__header {
background: linear-gradient(#ed2c22, #fe6d45);
margin-right: 0;
height: 52px;
span {
color: #fff;
}
}
}
</style>
......@@ -7,10 +7,10 @@
<el-descriptions-item v-if="form.picUrl" :label="language==0?'个人照片':'photo'">
<img style="width: 60px" :src="fillImgUrl(form.picUrl)">
</el-descriptions-item>
<el-descriptions-item :label="language==0?'姓氏':'surname'">{{ form.xing }}</el-descriptions-item>
<el-descriptions-item v-if="form.xing" :label="language==0?'姓氏':'surname'">{{ form.xing }}</el-descriptions-item>
<el-descriptions-item :label="language==0?'名':'name'">{{ form.ming }}</el-descriptions-item>
<el-descriptions-item :label="language==0?'性别':'sex'">{{ form.sexStr }}</el-descriptions-item>
<el-descriptions-item :label="language==0?'所属国家':'Nationality'">{{ form.countryName }}</el-descriptions-item>
<el-descriptions-item v-if="form.countryName" :label="language==0?'所属国家':'Nationality'">{{ form.countryName }}</el-descriptions-item>
<el-descriptions-item :label="language==0?'证件类型':'ID type'">{{ form.idcTypeStr }}</el-descriptions-item>
<el-descriptions-item :label="language==0?'证件号码':'ID NO'">{{ form.idcCode }}</el-descriptions-item>
<el-descriptions-item :label="language==0?'出生日期':'birth'">{{ form.birth }}</el-descriptions-item>
......
......@@ -2,9 +2,14 @@
<div class="mt20"></div>
<el-table :data="list" :sum-text="sumText" border style="width: 100%" v-loading="loading">
<el-table-column :label="language==0?'序号':'Index'" type="index" width="70" align="center"/>
<el-table-column :label="language==0?'姓氏':'Last Name'" prop="personInfo.xing" min-width="100"/>
<el-table-column :label="language==0?'名':'First Name'" prop="personInfo.ming" min-width="100"/>
<el-table-column :label="language==0?'所属国家':'Nationality'" prop="personInfo.countryName" :min-width="language==0?'100':'120'"/>
<el-table-column :label="language==0?'姓氏':'Surname'" prop="personInfo.xing" min-width="100"/>
<el-table-column :label="language==0?'名':'Name'" prop="personInfo.ming" min-width="100"/>
<el-table-column :label="language==0?'所属国家':'Nationality'" prop="" :min-width="language==0?'100':'120'">
<template #default="scope">
<span v-if="scope.row.personInfo.countryName">{{scope.row.personInfo.countryName}}</span>
<span v-if="scope.row.personInfo.Representing">{{scope.row.personInfo.Representing}}</span>
</template>
</el-table-column>
<!-- <el-table-column :label="language==0?'短名':'Nick Name'" prop="personInfo.shortName" min-width="110"/>-->
<el-table-column :label="language==0?'性别':'Gender'" prop="personInfo.sexStr"/>
<!-- <el-table-column :label="language==0?'年龄':'Age'" prop="personInfo.age"/>-->
......
......@@ -355,10 +355,9 @@ function goTeamSign() {
function goPersonalSign() {
// 选项目
router.push({
name: `chooseCoach`,
name: 'chooseProject',
query: {
matchId: matchId.value,
signType: matchData.value.signType
matchId: matchId.value
}
})
}
......
......@@ -7,14 +7,16 @@
<div>
<el-card style="min-height: 50vh">
<div class="pt30">
<el-form class="d-form" size="large" :label-width="language==0?120:180"
style="max-width: 560px;margin: auto">
<el-form ref="wdsfDataRef" class="d-form" size="large" :label-width="language==0?120:180"
style="max-width: 560px;margin: auto" :rules="wdsfDataRule">
<el-form-item :label="language==0?'WDSF卡号':'WDSF ID'" required>
<el-input type="text" v-model="form.card" @change="resetCode(0)" @blur="verifyCode">
<template #append>
<el-button type="primary" plain style="width: 110px" @click="checkCard">
<el-icon v-if="checkStatus" size="16" color="#67C23A"><CircleCheckFilled /></el-icon>
<span v-else>{{ language==0?'校验卡号':'Check Code' }}</span>
<el-icon v-if="wdsfData.wdsfFlag=='1'" size="16" color="#67C23A">
<CircleCheckFilled/>
</el-icon>
<span v-else>{{ language == 0 ? '校验卡号' : 'Check Code' }}</span>
</el-button>
</template>
</el-input>
......@@ -25,48 +27,48 @@
<span v-else>(Obtain automatically according to the WDSF number)</span>
</div>
<div class="h20"></div>
<el-form-item :label="language==0?'姓氏':'surname'" prop="xing" required>
<el-input v-model="form.xing" disabled/>
<el-form-item :label="language==0?'姓氏':'surname'">
<el-input v-model="wdsfData.surname" disabled/>
</el-form-item>
<el-form-item :label="language==0?'名':'name'" prop="ming" required>
<el-input v-model="form.ming" disabled/>
<el-form-item :label="language==0?'名':'name'">
<el-input v-model="wdsfData.name" disabled/>
</el-form-item>
<el-form-item label="Representing" required>
<el-input v-model="form.Representing" disabled/>
<el-form-item label="Representing">
<el-input v-model="wdsfData.representing" disabled/>
</el-form-item>
<el-form-item label="Age group" required>
<el-input v-model="form.ageGroup" disabled/>
<el-form-item label="Age group">
<el-input v-model="wdsfData.ageGroup" disabled/>
</el-form-item>
<el-form-item label="Division" required>
<el-input v-model="form.division" disabled/>
<el-form-item label="Division">
<el-input v-model="wdsfData.division" disabled/>
</el-form-item>
<el-form-item label="Status" required>
<el-input v-model="form.status" disabled/>
<el-form-item label="Status">
<el-input v-model="wdsfData.status" disabled/>
</el-form-item>
<div class="h30"></div>
<div class="leftboderTT">
{{ language == 0 ? '补充信息' : 'Supplementary Information' }}
</div>
<div class="h20"></div>
<el-form-item :label="language==0?'性别':'Sex'" prop="sex" required>
<el-radio-group v-model="form.sex">
<el-radio label="0">{{ language==0?'女':'female' }}</el-radio>
<el-radio label="1">{{ language==0?'男':'male' }}</el-radio>
<el-form-item :label="language==0?'性别':'Sex'" required>
<el-radio-group v-model="wdsfData.sex">
<el-radio label="0">{{ language == 0 ? '女' : 'female' }}</el-radio>
<el-radio label="1">{{ language == 0 ? '男' : 'male' }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item :label="language==0?'出生日期':'Birthday'" prop="birth" required>
<el-form-item :label="language==0?'出生日期':'Birthday'" required>
<el-date-picker
v-model="form.birth"
v-model="wdsfData.birthday"
style="width: 100%;"
type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"
/>
</el-form-item>
<el-form-item label="Passport number" required prop="idcCode">
<el-input v-model="form.idcCode"/>
<el-form-item label="Passport number" required>
<el-input v-model="wdsfData.passportNumber"/>
</el-form-item>
<el-form-item label="Passport File">
<file-upload :is-show-tip="false" :button-text="'Upload'"/>
<file-upload v-model="wdsfData.passportUrl" :limit="1" :is-show-tip="false" :button-text="'Upload'"/>
</el-form-item>
......@@ -75,25 +77,30 @@
v-if="language==0">(登录时需要验证,保护账户信息)</span></div>
<div class="h20"></div>
<el-form-item :label="language==0?'邮箱':'E-mail'" required>
<el-input type="text" v-model="form.account" @change="resetCode(1)"
@blur="verifyCode"/>
<div class="tip" v-if="language==0">
<el-input type="text" v-model="wdsfData.email" @change="resetCode(1)"
@blur="verifyCode" :disabled="wdsfData.personFlag=='1'"/>
<div class="tip" v-if="wdsfData.personFlag=='0'">
<div v-if="language==0">
(请填写正确的邮箱信息,邮箱信息在注册完成后无法修改。
该邮箱后续会接收您报名审核、支付账单、比赛邀请函等。)
</div>
<div class="tip" v-else>
<div v-else>
Please fill in a correct mailbox information, which cannot be modified after registration.
The mailbox will receive your registration review, payment of bills, competition invitation and so on.
The mailbox will receive your registration review, payment of bills, competition invitation and so
on.
</div>
</div>
</el-form-item>
<el-form-item :label="language==0?'验证码':'Code'" required>
<el-form-item :label="language==0?'验证码':'Code'" required v-if="wdsfData.personFlag=='0'">
<el-input v-model="form.code">
<template #append>
<el-button type="primary" plain style="width: 110px" @click="sendsmsMsg">
<count-down v-if="counting" v-slot="{ totalSeconds }" :time="60000" @end="counting=false">
{{ totalSeconds }} {{ language==0?'秒':'s' }}
{{ totalSeconds }} {{ language == 0 ? '秒' : 's' }}
</count-down>
<span v-else>{{ language==0?'发送验证码':'Send code' }}</span>
<span v-else>{{ language == 0 ? '发送验证码' : 'Send code' }}</span>
</el-button>
</template>
</el-input>
......@@ -103,74 +110,88 @@
<el-input type="password" show-password v-model="form.password"
:placeholder="language==0?'6-16位密码。区分大小写':'Password'"/>
</el-form-item>
<el-form-item :label="language==0?'确认密码':'Confirm Password'" required>
<el-form-item :label="language==0?'确认密码':'Confirm Password'" required
v-if="wdsfData.personFlag=='0'">
<el-input type="password" show-password v-model="form.confirmPassword" @change="vconfirmPassword"
:placeholder="language==0?'再次输入密码':'Confirm Password'"/>
<div class="text-danger" v-if="showError">{{ language==0?'密码不一致':'Password inconsistency' }}</div>
<div class="text-danger" v-if="showError">{{
language == 0 ? '密码不一致' : 'Password inconsistency'
}}
</div>
</el-form-item>
</el-form>
</div>
<div class="text-center">
<el-button class="primary-kx" round @click="goBack"> {{ language==0?'取消':'Cancel'}}</el-button>
<el-button type="primary" class="btn-lineG w200px" round @click="next" v-if="matchId=='0'">
{{ language==0?'立即注册':'Register Now' }}
</el-button>
<el-button type="primary" class="btn-lineG w200px" round @click="next" v-else>
{{ language==0?'下一步':'Next' }}
<el-button class="primary-kx" round @click="goBack"> {{ language == 0 ? '取消' : 'Cancel' }}</el-button>
<el-button type="primary" class="btn-lineG w200px" round @click="next" v-if="wdsfData.wdsfFlag=='1'">
<span v-if="matchId=='0'">{{ language == 0 ? '立即注册' : 'Register Now' }}</span>
<span>{{ language == 0 ? '下一步' : 'Next' }}</span>
</el-button>
</div>
</el-card>
</div>
<Vcode :show="isShow" @success="codeSuccess()"></Vcode>
<Vcode :show="isShow" :z-index="3000" @success="codeSuccess()"></Vcode>
</div>
</div>
</div>
</template>
<script setup>
import {ref,toRefs,reactive} from "vue"
import {onMounted} from "@vue/runtime-core";
import {ref, toRefs, reactive} from "vue"
import {getCurrentInstance, onMounted} from "@vue/runtime-core";
import Step3 from "./team/step3"
import Vcode from "vue3-puzzle-vcode"
import { ElMessage } from 'element-plus'
import {ElMessage} from 'element-plus'
import CountDown from '@chenfengyuan/vue-countdown'
import cache from '@/plugins/cache'
import {checkWdsf, getCaptchaSms, registerSingle} from "@/apiPc/match";
import {checkWdsf, getCaptchaSms, loginSingle, registerSingle} from "@/apiPc/match";
import {setToken} from "@/utils/auth";
import PersonalStep from "@/viewsPc/register/components/personal-step";
import FileUpload from "@/components/FileUpload";
import {useRouter,useRoute} from "vue-router";
import {useRouter, useRoute} from "vue-router";
const language = ref(cache.local.get('language') || 0)
const router = useRouter()
const route = useRoute()
const {proxy} = getCurrentInstance()
const data = reactive({
isShow:false,
isCodeTrue:0,
counting:false,
checkStatus:false,
form:{
sex:'0'
},
isShow: false,
isCodeTrue: 0,
counting: false,
checkStatus: false,
form: {},
activeStep: 0,
failVcode:'验证失败,请重试',
successVcode:'验证通过!',
failVcode: '验证失败,请重试',
successVcode: '验证通过!',
sliderText: '拖动滑块完成拼图',
showError: false
showError: false,
wdsfData: {
sex: '0'
},
wdsfDataRule: {
birthday: [{required: true, message: 'required', trigger: 'blur'}],
passportNumber: [{required: true, message: 'required', trigger: 'blur'}],
}
})
const {isShow,isCodeTrue,counting,form,activeStep,failVcode,successVcode,sliderText,checkStatus,showError} = toRefs(data)
const {
isShow, isCodeTrue, counting, form, activeStep, failVcode, successVcode, sliderText,
checkStatus, showError, wdsfData, wdsfDataRule
} = toRefs(data)
const matchId = ref('0')
onMounted(()=>{
if(language.value==1){
onMounted(() => {
if (language.value == 1) {
failVcode.value = 'Error!'
successVcode.value = 'Success!'
sliderText.value = 'Drag the slider to complete the puzzle'
}
matchId.value = route.query.matchId
matchId.value = route.query.matchId || '0'
})
function sendsmsMsg() {
if(!form.value.account){
if(language.value==0){
if (!form.value.account) {
if (language.value == 0) {
ElMessage.error('请填写手机/邮箱')
} else {
ElMessage.error('Please fill in your phone/email address')
......@@ -178,15 +199,16 @@ function sendsmsMsg() {
return
}
if(counting.value){
if (counting.value) {
return
} else {
isShow.value = true
}
}
function checkCard() {
if(!form.value.card){
if(language.value==0){
if (!form.value.card) {
if (language.value == 0) {
ElMessage.error('请填写WDSF卡号')
} else {
ElMessage.error('Please fill in your WDSF code')
......@@ -195,51 +217,123 @@ function checkCard() {
}
isShow.value = true
}
function verifyCode() {
if(!form.value.account){
if (!form.value.account) {
return
}
if(form.value.account.indexOf('@')>-1){
if (form.value.account.indexOf('@') > -1) {
//邮箱
}
}
function codeSuccess(msg) {
console.log('验证通过' + msg);
isShow.value = false
isCodeTrue.value += 1
if(isCodeTrue.value==1){
checkWdsf({card:form.value.card}).then(res=>{
checkStatus.value = res.data
if (isCodeTrue.value == 1) {
checkWdsf({card: form.value.card}).then(res => {
wdsfData.value = res.data
if (!wdsfData.value.sex) {
wdsfData.value.sex = '0'
}
if (wdsfData.value.wdsfFlag == '0') {
isCodeTrue.value = 0
if (language.value == 0) {
ElMessage.error('WDSF卡号错误')
} else {
ElMessage.error('WDSF ID is Error')
}
}
}).catch(err => {
isCodeTrue.value = 0
})
}
if(isCodeTrue.value==2){
if (isCodeTrue.value == 2) {
counting.value = true
getCaptchaSms({account:form.value.account}).then(res=>{
getCaptchaSms({account: form.value.account}).then(res => {
})
}
}
function resetCode(n) {
isCodeTrue.value = n
}
function vconfirmPassword() {
if(form.value.password != form.value.confirmPassword){
if (form.value.password != form.value.confirmPassword) {
showError.value = true
} else {
showError.value = false
}
}
function goBack() {
router.go(-1)
}
function next() {
// registerSingle(form.value).then(res=>{
// setToken(res.data.token)
if(matchId.value!='0'){
// proxy.$refs['wdsfDataRef'].validate((valid) => {
// if (valid)
if (!wdsfData.value.passportNumber) {
ElMessage.error('Please fill in your passport number')
return
}
if (!wdsfData.value.birthday) {
ElMessage.error('Please fill in your birthday')
return
}
if (wdsfData.value.personFlag == '0') {
let obj = {
card: form.value.card,
account: wdsfData.value.email,
code: form.value.code,
password: form.value.password,
sex: wdsfData.value.sex,
birth: wdsfData.value.birthday,
passportUrl: wdsfData.value.passportUrl[0].url,
passportNumber: wdsfData.value.passportNumber,
}
registerSingle(obj).then(res => {
setToken(res.data.token)
console.log(matchId.value)
afterR()
})
}
if (wdsfData.value.personFlag == '1') {
if(!form.value.password){
ElMessage.error('Please fill in your password')
return
}
let obj = {
sex: wdsfData.value.sex,
passportNumber: wdsfData.value.passportNumber,
birth: wdsfData.value.birthday,
personId: wdsfData.value.personId,
username: wdsfData.value.email,
password: form.value.password,
}
if(Array.isArray(wdsfData.value.passportUrl)){
obj.passportUrl = form.value.passportUrl[0].url
} else {
obj.passportUrl = wdsfData.value.passportUrl
}
loginSingle(obj).then(res => {
setToken(res.data.token)
console.log(matchId.value)
afterR()
})
}
// })
}
function afterR() {
if (matchId.value != '0') {
router.push({
name: 'chooseProject',
params:{
params: {
id: matchId.value
},
query: {
......@@ -249,32 +343,46 @@ function next() {
} else {
router.push({
name: 'matchDetail',
params:{
params: {
id: 0
}
})
}
// })
}
</script>
<style scoped lang="scss">
.tip{line-height: 1.6;font-size: 12px;margin-top: 6px;color: #666;}
.tip {
line-height: 1.6;
font-size: 12px;
margin-top: 6px;
color: #666;
}
.leftboderTT {
color: var(--el-color-primary);
font-size: 16px;
font-weight: 600;
span {
span {
color: #929AA0;
font-size: 14px;
}
}
.h20 {
height: 20px
}
.h30 {
height: 30px
}
.el-input-group__append {
flex: 1 1 auto;
}
.h20{height: 20px}
.h30{height: 30px}
.el-input-group__append{ flex: 1 1 auto;}
.el-input-group__append button.el-button, .el-input-group__append button.el-button:hover{
.el-input-group__append button.el-button, .el-input-group__append button.el-button:hover {
color: var(--el-color-primary);
background: #efefff;
border: var(--el-color-primary) solid 1px;
......
......@@ -5,6 +5,10 @@
<el-form-item :label="language==0?'邮箱':'E-mail'" required>
<el-input type="text" v-model="form.account" @change="resetCode" @blur="verifyCode"
/>
<div class="tip">
(请填写正确的邮箱信息,邮箱信息在注册完成后无法修改。
该邮箱后续会会作为您登录的账户,并接收您报名审核、支付账单、比赛邀请函等。)
</div>
</el-form-item>
<el-form-item :label="language==0?'验证码':'Code'" required>
<el-input v-model="form.code">
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!