982b56b7 by 杨炀

no message

1 parent 99549010
......@@ -21,9 +21,12 @@
<div class="chooseForm">
<el-checkbox-group v-model="form.coachs" @change="changecoachs">
<div class="addBttn" @click="addCoach(0)">+</div>
<el-checkbox v-for="c in coachList" :label="c.id">
<el-avatar fit="cover" :size="60" :src="fillImgUrl(c.picUrl)"/>
<p class="name">{{ c.realName }}
<el-checkbox v-for="c in personAllList?.coaches" :label="c.id">
<el-avatar fit="cover" v-if="c.picUrl" :size="60" :src="fillImgUrl(c.picUrl)"/>
<el-avatar fit="cover" v-else-if="c.sex == 0" :size="60" src="/img/head1.png"/>
<el-avatar fit="cover" v-else-if="c.sex == 1" :size="60" src="/img/head0.png"/>
<p class="name">{{ c.xing }}{{c.ming}}
<el-icon @click.stop="editPerson(c.id)">
<Edit/>
</el-icon>
......@@ -46,9 +49,11 @@
<div class="chooseForm">
<el-checkbox-group v-model="form.leader">
<div class="addBttn" @click="addCoach(0)">+</div>
<el-checkbox v-for="c in leaderList" :label="c.id">
<el-avatar fit="cover" :size="60" :src="fillImgUrl(c.picUrl)"/>
<p class="name">{{ c.realName }}
<el-checkbox v-for="c in personAllList?.leaders" :label="c.id">
<el-avatar fit="cover" v-if="c.picUrl" :size="60" :src="fillImgUrl(c.picUrl)"/>
<el-avatar fit="cover" v-else-if="c.sex == 0" :size="60" src="/img/head1.png"/>
<el-avatar fit="cover" v-else-if="c.sex == 1" :size="60" src="/img/head0.png"/>
<p class="name">{{ c.xing }}{{c.ming}}
<el-icon @click.stop="editPerson(c.id)">
<Edit/>
</el-icon>
......@@ -69,9 +74,11 @@
<div class="chooseForm">
<el-checkbox-group v-model="form.doctor">
<div class="addBttn" @click="addCoach(0)">+</div>
<el-checkbox v-for="c in doctorList" :label="c.id">
<el-avatar fit="cover" :size="60" :src="fillImgUrl(c.picUrl)"/>
<p class="name">{{ c.realName }}
<el-checkbox v-for="c in personAllList?.teamDoctors" :label="c.id">
<el-avatar fit="cover" v-if="c.picUrl" :size="60" :src="fillImgUrl(c.picUrl)"/>
<el-avatar fit="cover" v-else-if="c.sex == 0" :size="60" src="/img/head1.png"/>
<el-avatar fit="cover" v-else-if="c.sex == 1" :size="60" src="/img/head0.png"/>
<p class="name">{{ c.xing }}{{c.ming}}
<el-icon @click.stop="editPerson(c.id)">
<Edit/>
</el-icon>
......@@ -92,9 +99,11 @@
<div class="chooseForm">
<el-checkbox-group v-model="form.translator">
<div class="addBttn" @click="addCoach(0)">+</div>
<el-checkbox v-for="c in translatorList" :label="c.id">
<el-avatar fit="cover" :size="60" :src="fillImgUrl(c.picUrl)"/>
<p class="name">{{ c.realName }}
<el-checkbox v-for="c in personAllList?.translators" :label="c.id">
<el-avatar fit="cover" v-if="c.picUrl" :size="60" :src="fillImgUrl(c.picUrl)"/>
<el-avatar fit="cover" v-else-if="c.sex == 0" :size="60" src="/img/head1.png"/>
<el-avatar fit="cover" v-else-if="c.sex == 1" :size="60" src="/img/head0.png"/>
<p class="name">{{ c.xing }}{{c.ming}}
<el-icon @click.stop="editPerson(c.id)">
<Edit/>
</el-icon>
......@@ -115,9 +124,11 @@
<div class="chooseForm">
<el-checkbox-group v-model="form.official">
<div class="addBttn" @click="addCoach(0)">+</div>
<el-checkbox v-for="c in officialList" :label="c.id">
<el-avatar fit="cover" :size="60" :src="fillImgUrl(c.picUrl)"/>
<p class="name">{{ c.realName }}
<el-checkbox v-for="c in personAllList?.officials" :label="c.id">
<el-avatar fit="cover" v-if="c.picUrl" :size="60" :src="fillImgUrl(c.picUrl)"/>
<el-avatar fit="cover" v-else-if="c.sex == 0" :size="60" src="/img/head1.png"/>
<el-avatar fit="cover" v-else-if="c.sex == 1" :size="60" src="/img/head0.png"/>
<p class="name">{{ c.xing }}{{c.ming}}
<el-icon @click.stop="editPerson(c.id)">
<Edit/>
</el-icon>
......@@ -138,9 +149,11 @@
<div class="chooseForm">
<el-checkbox-group v-model="form.other">
<div class="addBttn" @click="addCoach(0)">+</div>
<el-checkbox v-for="c in otherList" :label="c.id">
<el-avatar fit="cover" :size="60" :src="fillImgUrl(c.picUrl)"/>
<p class="name">{{ c.realName }}
<el-checkbox v-for="c in personAllList?.others" :label="c.id">
<el-avatar fit="cover" v-if="c.picUrl" :size="60" :src="fillImgUrl(c.picUrl)"/>
<el-avatar fit="cover" v-else-if="c.sex == 0" :size="60" src="/img/head1.png"/>
<el-avatar fit="cover" v-else-if="c.sex == 1" :size="60" src="/img/head0.png"/>
<p class="name">{{ c.xing }}{{c.ming}}
<el-icon @click.stop="editPerson(c.id)">
<Edit/>
</el-icon>
......@@ -189,25 +202,14 @@ const data = reactive({
coachs: [],
leader: []
},
coachList: [],
leaderList: [],
otherList: [],
doctorList: [],
translatorList: [],
officialList: [],
personAllList: [],
hasChooseObj: {},
groupId: '0',
signType: '',
activeStep: 1
})
const {loading,
form,
coachList,
leaderList,
otherList,
doctorList,
translatorList,
officialList,
form,personAllList,
rules,
signType,
groupId,
......@@ -246,12 +248,7 @@ function tuandui() {
match.getMyGroupForCpt(groupId.value, matchId),
match.getChooseDoneGroupCoachs(matchId, groupId.value)
]).then((res) => {
coachList.value = res[0].data.coaches
leaderList.value = res[0].data.leaders
doctorList.value = res[0].data.teamDoctors
translatorList.value = res[0].data.translators
officialList.value = res[0].data.officials
otherList.value = res[0].data.others
personAllList.value = res[0].data
loading.value = false
if (res[1].data.id != null) {
hasChooseObj.value = res[1].data
......@@ -280,12 +277,7 @@ function geren() {
match.getMyPersonInfoWithcptId(matchId),
match.getChooseDoneSingleCoachs(matchId)
]).then((res) => {
coachList.value = res[0].data.coaches
leaderList.value = res[0].data.leaders
otherList.value = res[0].data.others
doctorList.value = res[0].data.teamDoctors
translatorList.value = res[0].data.translators
officialList.value = res[0].data.officials
personAllList.value = res[0].data
loading.value = false
if (res[1].data.id != null) {
hasChooseObj.value = res[1].data
......
......@@ -7,22 +7,22 @@
<el-card :body-style="{'padding-top': '0'}">
<el-row class="mt20" :gutter="20">
<el-col :lg="8">
<el-col :lg="12">
<div class="panel border">
<div class="panel-header ">
<h3 class="panel-title" v-if="language==0">选择参赛运动员清单</h3>
<h3 class="panel-title" v-else>Select list of participating athletes</h3>
<a class="fr" @click="emptyChoosed">{{ language == 0 ? '清空' : 'Empty' }}</a>
<!-- <a class="fr" @click="emptyChoosed">{{ language == 0 ? '清空' : 'Empty' }}</a>-->
</div>
<div class="panel-body" style="padding: 10px">
<div style="margin: 0 4px 10px">
<el-input size="small" v-model="athletesQuery.name" :prefix-icon="Search"
@change="queryAthletes"
clearable/>
<el-select multiple v-model="choosedchoosed" collapse-tags-tooltip filterable
@change="getProjectList">
<el-option v-for="c in athletesList" :key="c.id" :label="c.realName" :value="c.id" ></el-option>
</el-select>
</div>
<div class="noPicChooseForm" id="chooseArr">
<el-checkbox-group v-model="choosedchoosed" @change="changechoosed">
<el-button id="addRef" plain @click="chooseSportman">+{{ language == 0 ? '选择' : 'add' }}</el-button>
<el-checkbox v-for="c in choosedListBak" :value="c.id" border>
<p class="name">{{ c.realName }}
<!-- ({{ c.sexStr }})-->
......@@ -35,39 +35,7 @@
</div>
</div>
</el-col>
<el-col :lg="8">
<div class="panel border">
<div class="panel-header ">
<h3 class="panel-title" v-if="language==0">选择一个参赛组合</h3>
<h3 class="panel-title" v-else>Select a Participating team</h3>
<a class="fr" @click="emptyChangechoosed">{{ language == 0 ? '清空' : 'Empty' }}</a>
</div>
<div class="panel-body" style="padding: 10px">
<div class="mb20">
<el-input size="small" v-model="zuQuery.name" :prefix-icon="Search"
@change="queryTeam" clearable/>
</div>
<div class="chooseForm">
<el-checkbox-group v-model="choosedchoosed" @change="changechoosed">
<!-- v-show="choosedchoosed.indexOf(c.id) !== -1"-->
<el-checkbox v-for="c in choosed2Listbak" :value="c.id" checked>
<el-avatar fit="cover" v-if="c.picUrl" :size="60" :src="fillImgUrl(c.picUrl)"/>
<el-avatar fit="cover" v-else-if="c.sex == 0" :size="60" src="/img/head1.png"/>
<el-avatar fit="cover" v-else-if="c.sex == 1" :size="60" src="/img/head0.png"/>
<p class="name">{{ c.realName }}
<img v-if="c.sex=='0'" src="@/assets/img/female.png"/>
<img v-if="c.sex=='1'" src="@/assets/img/male.png"/>
<!-- <el-icon @click.stop="editPerson(c.id)">-->
<!-- <Edit/>-->
<!-- </el-icon>-->
</p>
</el-checkbox>
</el-checkbox-group>
</div>
</div>
</div>
</el-col>
<el-col :lg="8">
<el-col :lg="12">
<div class="panel border">
<div class="panel-header ">
<h3 class="panel-title" v-if="language==0">可参与报名的项目</h3>
......@@ -78,8 +46,8 @@
clearable/>
</div>
</div>
<div v-loading="loadingProject" id="projectbox" style="height: 60vh">
<el-checkbox-group v-model="projectIds">
<div v-loading="loadingProject" id="projectbox" style="height: 60vh;overflow: auto;">
<el-checkbox-group v-model="projectIds" @change="changeProject">
<el-checkbox class="flexBetweenBox" v-for="c in projectList" :value="c.id" :key="c.id">
<div class="flexBetween w100">
<div class="l">
......@@ -158,7 +126,7 @@
</el-dialog>
<dialogExtraForm ref="popExtraForm" @submitForm="getSignInfoList"/>
<dialogWdsf ref="popWdsf" @submitForm="getSignInfoList"/>
<el-tour v-model="openTour" :current="tourCurrent">
<el-tour-step target="#addRef" title="第一步" description="点击选择运动员" :next-button-props="nextButtonProps"/>
<el-tour-step v-if="choosedList.length>0" target="#chooseArr" title="第二步" description="勾选报项运动员"/>
......@@ -172,10 +140,11 @@
import {ref, reactive, toRefs, watch} from 'vue'
import * as match from '@/apiPc/match'
import {getCurrentInstance, onMounted} from '@vue/runtime-core'
import dialogAddCoach from './components/addCoach'
import dialogAllSportsmanList from './components/allSportsmanList'
import dialogImport from './components/import'
import dialogExtraForm from './components/extraForm'
import DialogAddCoach from './components/addCoach'
import DialogAllSportsmanList from './components/allSportsmanList'
import DialogImport from './components/import'
import DialogExtraForm from './components/extraForm'
import DialogWdsf from './components/wdsfForm'
import {Search, Switch} from "@element-plus/icons-vue";
const {proxy} = getCurrentInstance()
const router = useRouter()
......@@ -197,6 +166,7 @@ const data = reactive({
signInfoList: [],
zuTableList: [],
choosedList: [],
athletesList: [],
choosedListBak: [],
athletesQuery: {
name: ''
......@@ -225,7 +195,7 @@ const data = reactive({
openTour:false
})
const {
activeTeam, names, tableData, signInfoList, zuTableList, choosedList,choosedListBak,
activeTeam, names, tableData, signInfoList, zuTableList, choosedList,choosedListBak,athletesList,
extraform, groupId, signType, coachOrLeaderFlag, showResult, noPhotoCanSign, projectIds, choosedchoosed, activeStep, projectList, choosed2List,choosed2Listbak, loadingProject,
projectQuery, tableType, athletesQuery, zuQuery,openTour,tourCurrent
} = toRefs(data)
......@@ -237,11 +207,18 @@ onMounted(() => {
getSignInfoList()
getMatch(matchId.value)
getMySignInfo()
getAthletesList()
// openTour.value = true
})
let chargeFlag
function getAthletesList() {
// athletesList.value
match.getGroupPersonList({}, groupId.value).then(res => {
athletesList.value = res.rows
})
}
function getMatch(id) {
match.getMatchById({
id: id
......@@ -301,17 +278,6 @@ function submitForm() {
}
}
}
afterRecover()
router.push({
name: 'signPreview',
query: {
matchId: matchId.value,
groupId: groupId.value
}
})
}
function afterRecover() {
if (signInfoList.value.length == 0) {
if (language.value == 0) {
ElMessage.error('请至少选择一个项目')
......@@ -320,6 +286,13 @@ function afterRecover() {
}
return
}
router.push({
name: 'signPreview',
query: {
matchId: matchId.value,
groupId: groupId.value
}
})
}
function goPrev() {
......@@ -383,15 +356,6 @@ function getProjectList() {
})
}
function queryAthletes() {
choosedListBak.value = []
for (var t of choosedList.value) {
if (t.realName.indexOf(athletesQuery.value.name) > -1) {
// 筛选
choosedListBak.value.push(t)
}
}
}
function queryTeam() {
choosed2Listbak.value = []
......@@ -444,19 +408,6 @@ function addCoach() {
proxy.$refs['dialogAddCoachRef'].open(params)
}
function emptyChoosed() {
choosedList.value = []
choosedListBak.value = []
}
function emptyChangechoosed() {
choosedchoosed.value = []
choosed2List.value = []
choosed2Listbak.value = []
projectList.value = []
projectIds.value = []
}
function signUp() {
if (projectIds.value.length == 0) {
return
......@@ -562,6 +513,22 @@ function switchTabletype() {
tableType.value = 0
}
}
function changeProject(e) {
console.log(projectIds.value,e)
var obj
obj = _.find(projectList.value, (c) => {
return e.indexOf(c.id)>-1
})
// if(obj.majorFlag==1){
//需要填wdsf
// const params = {
// title: '验证WDSF',
// list:choosed2Listbak.value
// }
// proxy.$refs['popWdsf'].open(_.cloneDeep(params))
// }
}
watch(choosedchoosed, (newVal, oldVal) => {
// console.log(choosedchoosed.value)
if(newVal.length>oldVal.length){
......@@ -604,7 +571,7 @@ watch(choosedchoosed, (newVal, oldVal) => {
.flexBetweenBox {
width: 100%;
height: auto;
height: auto;margin: 0;
border-bottom: 1px solid #eee;
padding: 0 10px;
}
......
<template>
<div>
<div class="box ph-30">
<el-card class="mb20">
<team-sign-step :activeStep="activeStep" :language="language"/>
</el-card>
<el-card :body-style="{'padding-top': '0'}">
<el-row class="mt20" :gutter="20">
<el-col :lg="8">
<div class="panel border">
<div class="panel-header ">
<h3 class="panel-title" v-if="language==0">选择参赛运动员清单</h3>
<h3 class="panel-title" v-else>Select list of participating athletes</h3>
<a class="fr" @click="emptyChoosed">{{ language == 0 ? '清空' : 'Empty' }}</a>
</div>
<div class="panel-body" style="padding: 10px">
<div style="margin: 0 4px 10px">
<el-input size="small" v-model="athletesQuery.name" :prefix-icon="Search"
@change="queryAthletes"
clearable/>
</div>
<div class="noPicChooseForm" id="chooseArr">
<el-checkbox-group v-model="choosedchoosed" @change="changechoosed">
<el-button id="addRef" plain @click="chooseSportman">+{{ language == 0 ? '选择' : 'add' }}</el-button>
<el-checkbox v-for="c in choosedListBak" :value="c.id" border>
<p class="name">{{ c.realName }}
<!-- ({{ c.sexStr }})-->
<img v-if="c.sex=='0'" src="@/assets/img/female.png"/>
<img v-if="c.sex=='1'" src="@/assets/img/male.png"/>
</p>
</el-checkbox>
</el-checkbox-group>
</div>
</div>
</div>
</el-col>
<el-col :lg="8">
<div class="panel border">
<div class="panel-header ">
<h3 class="panel-title" v-if="language==0">选择一个参赛组合</h3>
<h3 class="panel-title" v-else>Select a Participating team</h3>
<a class="fr" @click="emptyChangechoosed">{{ language == 0 ? '清空' : 'Empty' }}</a>
</div>
<div class="panel-body" style="padding: 10px">
<div class="mb20">
<el-input size="small" v-model="zuQuery.name" :prefix-icon="Search"
@change="queryTeam" clearable/>
</div>
<div class="chooseForm">
<el-checkbox-group v-model="choosedchoosed" @change="changechoosed">
<!-- v-show="choosedchoosed.indexOf(c.id) !== -1"-->
<el-checkbox v-for="c in choosed2Listbak" :value="c.id" checked>
<el-avatar fit="cover" v-if="c.picUrl" :size="60" :src="fillImgUrl(c.picUrl)"/>
<el-avatar fit="cover" v-else-if="c.sex == 0" :size="60" src="/img/head1.png"/>
<el-avatar fit="cover" v-else-if="c.sex == 1" :size="60" src="/img/head0.png"/>
<p class="name">{{ c.realName }}
<img v-if="c.sex=='0'" src="@/assets/img/female.png"/>
<img v-if="c.sex=='1'" src="@/assets/img/male.png"/>
<!-- <el-icon @click.stop="editPerson(c.id)">-->
<!-- <Edit/>-->
<!-- </el-icon>-->
</p>
</el-checkbox>
</el-checkbox-group>
</div>
</div>
</div>
</el-col>
<el-col :lg="8">
<div class="panel border">
<div class="panel-header ">
<h3 class="panel-title" v-if="language==0">可参与报名的项目</h3>
<h3 class="panel-title" v-else>Eligible Events for Registration</h3>
<div class="fr">
<el-input size="small" v-model="projectQuery.name" :prefix-icon="Search"
@change="getProjectList"
clearable/>
</div>
</div>
<div v-loading="loadingProject" id="projectbox" style="height: 60vh">
<el-checkbox-group v-model="projectIds" @change="changeProject">
<el-checkbox class="flexBetweenBox" v-for="c in projectList" :value="c.id" :key="c.id">
<div class="flexBetween w100">
<div class="l">
{{ c.code }}:{{ c.name }}
<div>{{ c.danceTypeDetailStr }}</div>
</div>
<div class="text-primary">{{ language == 0 ? '¥' : '€' }}{{ c.serviceFee }}</div>
</div>
</el-checkbox>
</el-checkbox-group>
<el-empty v-if="projectList.length==0" :image="`/img/order_no.png`" :image-size="228"
:description="language==0?'无可选项目':''"/>
</div>
</div>
</el-col>
</el-row>
<el-row class="mt20">
<el-col :span="24">
<div class="text-center">
<el-button type="primary" class="btn-lineG w200px" id="signUpBtn"
:disabled="projectIds.length==0||choosedchoosed.length==0" round @click="signUp">
{{ language == 0 ? '确定' : 'Confirm' }}
</el-button>
</div>
</el-col>
</el-row>
</el-card>
<el-card class="mt20" :body-style="{'padding': '0'}">
<coach-info-row :match-id="matchId" :group-id="groupId" :language="language"/>
<div class="m20">
<!-- <el-button type="success" @click="importSportman">批量导入人员</el-button>-->
<!-- <el-button type="success" @click="addCoach">新增运动员</el-button>-->
<div class="ttbb">
<div :class="tableType==1 ? 'active' : ''" @click="switchTabletype">
{{ language == 0 ? '按组别查看报项' : 'View Entries by Group' }}
</div>
<div :class="tableType==0 ? 'active' : ''" @click="switchTabletype">
{{ language == 0 ? '按人员查看报项' : 'View Entries by Participant' }}
</div>
</div>
<!-- <div class="fr mb20" @click="switchTabletype">-->
<!-- <el-button plain type="primary" :icon="Switch" v-if="tableType==1">-->
<!-- {{ language == 0 ? '按人员查看报项' : 'View Entries by Participant' }}-->
<!-- </el-button>-->
<!-- <el-button plain type="primary" :icon="Switch" v-else>-->
<!-- {{ language == 0 ? '按组别查看报项' : 'View Entries by Group' }}-->
<!-- </el-button>-->
<!-- </div>-->
<sign-info-table v-if="tableType==0" :match-id="matchId"
:extraform="extraform" :list="signInfoList"
@editExtra="goPersonInfo"/>
<zu-table v-else :list="zuTableList" @delete="removeThis"/>
<div class="text-center mt20">
<el-button type="primary" class="w200px" plain round @click="goPrev()">
{{ language == 0 ? "上一步" : 'Go back' }}
</el-button>
<el-button type="primary" class="btn-lineG w200px" round @click="submitForm()">
{{ language == 0 ? '预览报名信息' : 'Preview registration information' }}
</el-button>
</div>
</div>
</el-card>
</div>
<dialogAddCoach ref="dialogAddCoachRef"/>
<dialogAllSportsmanList ref="dialogAllSportsmanListRef" @transfer="getChoosed" @submitForm="getSignInfoList"/>
<dialogImport ref="dialogImportProps" @submitForm="getMySignInfo"/>
<el-dialog v-model="showResult" :close-on-click-modal="false" :show-close="false">
<el-result icon="success" :title="language==0?'报名成功':'Sign up successful'">
<template #extra>
<el-button type="primary" @click="downloadVoucher">下载凭证</el-button>
<el-button type="primary" @click="goMySign">{{ language == 0 ? '查看报项' : 'View Entries' }}</el-button>
</template>
</el-result>
</el-dialog>
<dialogExtraForm ref="popExtraForm" @submitForm="getSignInfoList"/>
<dialogWdsf ref="popWdsf" @submitForm="getSignInfoList"/>
<el-tour v-model="openTour" :current="tourCurrent">
<el-tour-step target="#addRef" title="第一步" description="点击选择运动员" :next-button-props="nextButtonProps"/>
<el-tour-step v-if="choosedList.length>0" target="#chooseArr" title="第二步" description="勾选报项运动员"/>
<el-tour-step v-if="projectList.length>0" target="#projectbox" title="第三步" description="选择报名项目"/>
<el-tour-step v-if="projectIds.length>0" target="#signUpBtn" title="第四步" description="点击报项"/>
</el-tour>
</div>
</template>
<script setup>
import {ref, reactive, toRefs, watch} from 'vue'
import * as match from '@/apiPc/match'
import {getCurrentInstance, onMounted} from '@vue/runtime-core'
import DialogAddCoach from './components/addCoach'
import DialogAllSportsmanList from './components/allSportsmanList'
import DialogImport from './components/import'
import DialogExtraForm from './components/extraForm'
import DialogWdsf from './components/wdsfForm'
import {Search, Switch} from "@element-plus/icons-vue";
const {proxy} = getCurrentInstance()
const router = useRouter()
const route = useRoute()
import _ from 'lodash'
import {ElMessage, ElMessageBox} from 'element-plus'
import cache from "@/plugins/cache"
import TeamSignStep from "@/viewsPc/match/components/teamSignStep"
import CoachInfoRow from "@/viewsPc/match/components/coachInfo-row"
import SignInfoTable from "@/viewsPc/match/components/signInfo-table"
import ZuTable from '@/viewsPc/match/components/zu-table'
import {signgetSignInfoConflict} from "@/apiPc/match";
import {useStorage} from "@vueuse/core/index";
const language= useStorage('language',0)
const data = reactive({
coachForm: {}, activeStep: 2,
tourCurrent:0,
tableData: [],
signInfoList: [],
zuTableList: [],
choosedList: [],
choosedListBak: [],
athletesQuery: {
name: ''
},
zuQuery: {
name: ''
},
extraPersonInfoMapList: [],
teamList: [],
extraform: [],
groupId: route.query.groupId || 0,
signType: '',
coachOrLeaderFlag: null,
noPhotoCanSign: null,
showResult: false,
showExtraForm: false,
loadingProject: false,
activeTeam: '',
names: {},
choosedchoosed: [],
projectIds: [],
projectList: [],
choosed2List: [],
choosed2Listbak: [],
projectQuery: {}, tableType: 1,
openTour:false
})
const {
activeTeam, names, tableData, signInfoList, zuTableList, choosedList,choosedListBak,
extraform, groupId, signType, coachOrLeaderFlag, showResult, noPhotoCanSign, projectIds, choosedchoosed, activeStep, projectList, choosed2List,choosed2Listbak, loadingProject,
projectQuery, tableType, athletesQuery, zuQuery,openTour,tourCurrent
} = toRefs(data)
const nextButtonProps = ref({})
const matchId = ref(route.query.matchId)
let signInfoType = null
onMounted(() => {
signType.value = route.query.signType || 1
getSignInfoList()
getMatch(matchId.value)
getMySignInfo()
// openTour.value = true
})
let chargeFlag
function getMatch(id) {
match.getMatchById({
id: id
}).then(res => {
chargeFlag = res.data.chargeFlag
noPhotoCanSign.value = res.data.noPhotoCanSign
coachOrLeaderFlag.value = res.data.coachOrLeaderFlag
extraform.value = JSON.parse(res.data.participantsInfo)
})
}
function getMySignInfo() {
// 获取已报
match.getMySignInfo({
cptId: matchId.value,
groupId: groupId.value
}).then(res => {
tableData.value = res.data.signInfo
signInfoType = res.data.type
})
}
function getSignInfoList() {
match.getMySignInfoList({
cptId: matchId.value,
groupId: groupId.value
}).then(res => {
signInfoList.value = res.data.singleData || []
zuTableList.value = res.data.zuData || []
})
}
function submitForm() {
if (signInfoType == '1') {
ElMessageBox.confirm(language.value == 0 ? '已报项,前往我的报项' : 'Reported items, go to my submission',
language.value == 0 ? '提示' : 'Tips', {
confirmButtonText: language.value == 0 ? '确定' : 'OK',
cancelButtonText: language.value == 0 ? '取消' : 'Cancel',
type: 'warning'
}).then(() => {
router.push({name: 'myMatch'})
})
return
}
if (extraform.value && extraform.value.length > 0) {
let needBuchong = false
for (const e of extraform.value) {
if (e.status == '0') {
needBuchong = true
}
}
for (const s of signInfoList.value) {
if (s.extraPersonInfo == null && needBuchong) {
ElMessage.error(language.value == 0 ? '请完善补充信息' : 'Please fill in the supplementary information')
tableType.value = 0
return
}
}
}
if (signInfoList.value.length == 0) {
if (language.value == 0) {
ElMessage.error('请至少选择一个项目')
} else {
ElMessage.error('select at least one project')
}
return
}
router.push({
name: 'signPreview',
query: {
matchId: matchId.value,
groupId: groupId.value
}
})
}
function goPrev() {
router.push({
name: `chooseCoach`,
query: {
matchId: matchId.value
}
})
}
function chooseSportman() {
const params = {
title: language.value == 0 ? '选择运动员' : 'Participating athletes',
matchId: matchId.value,
groupId: groupId.value,
rankId: activeTeam.value,
signType: signType.value,
noPhotoCanSign: noPhotoCanSign.value,
coachOrLeaderFlag: coachOrLeaderFlag.value,
choosedList: choosedList.value
}
proxy.$refs['dialogAllSportsmanListRef'].open(params)
}
function changechoosed(e) {
// console.log(e)
choosed2List.value = []
choosed2Listbak.value = []
for (var c of choosedList.value) {
if (choosedchoosed.value.indexOf(c.id) > -1) {
choosed2List.value.push(c)
choosed2Listbak.value.push(c)
}
}
}
function getProjectList() {
projectIds.value = []
if (choosedchoosed.value.length == 0) {
// ElMessage.error('请先选择运动员')
projectList.value = []
return
}
loadingProject.value = true
//根据已选人员id 获取项目列表
var obj = {
cptId: matchId.value,
perIds: choosedchoosed.value.toString()
}
match.getProjectPageByPerIds(obj).then(res => {
projectList.value = res.rows
loadingProject.value = false
if(choosed2Listbak.value.length>0 && projectList.value.length>0){
tourCurrent.value = 2
}
}).catch(err => {
loadingProject.value = false
ElMessage.error(err.msg)
})
}
function queryAthletes() {
choosedListBak.value = []
for (var t of choosedList.value) {
if (t.realName.indexOf(athletesQuery.value.name) > -1) {
// 筛选
choosedListBak.value.push(t)
}
}
}
function queryTeam() {
choosed2Listbak.value = []
choosedchoosed.value = []
for (var t of choosed2List.value) {
if (t.realName.indexOf(zuQuery.value.name) > -1) {
// 筛选
choosed2Listbak.value.push(t)
choosedchoosed.value.push(t.id)
}
}
}
function getChoosed(list) {
console.log(list)
choosedList.value = list
choosedListBak.value = list
if(list.length>0){
// openTour.value = false
tourCurrent.value = 1
}
// console.log('选好了', choosedchoosed.value)
}
function addCoach() {
if (signInfoType == '2') {
match.recoverMySign({
cptId: matchId.value,
groupId: groupId.value
}).then(res => {
if (res.msg.indexOf('Exception:') > -1) {
const msg = res.msg.slice(10)
ElMessageBox.confirm(msg, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
console.log('用户点击确定')
})
return
}
getMySignInfo()
})
}
const params = {
title: '新增运动员',
id: 0,
groupId: groupId.value
}
proxy.$refs['dialogAddCoachRef'].open(params)
}
function emptyChoosed() {
choosedList.value = []
choosedListBak.value = []
}
function emptyChangechoosed() {
choosedchoosed.value = []
choosed2List.value = []
choosed2Listbak.value = []
projectList.value = []
projectIds.value = []
}
function signUp() {
if (projectIds.value.length == 0) {
return
}
if (choosedchoosed.value.length == 0) {
return
}
const obj = {
athleteIds: choosedchoosed.value.toString(),
projectIds: projectIds.value.toString(),
groupId: groupId.value
}
match.sportsmanDone(obj).then(res => {
choosedchoosed.value = []
choosed2List.value = []
choosed2Listbak.value = []
projectList.value = []
projectIds.value = []
getSignInfoList()
})
}
function removeThis(id) {
ElMessageBox.confirm('确定移除这条报项吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
match.deleteSign(id).then(res => {
// 重新获取已报名信息
ElMessage.success('已移除该报项')
getSignInfoList()
})
})
}
function changeCoach(cptId, groupId) {
// 更换教练
const params = {
title: '修改教练',
groupId: groupId,
cptId: cptId
}
proxy.$refs['popChangeCoach'].open(params)
}
function importSportman() {
const params = {
title: '批量导入人员',
groupId: groupId.value
}
proxy.$refs['dialogImportProps'].open(params)
}
function goMySign() {
router.push({
name: 'myMatch'
})
}
const goPersonInfo = (row) => {
if (signInfoType == '1') {
ElMessageBox.alert('已报项,前往我的报项', '提示', {
confirmButtonText: 'OK',
callback: (Action) => {
router.push({name: 'myMatch'})
}
})
return
}
// 完善补充信息
console.log(row)
// debugger
const params = {
matchId:matchId.value,
title: language.value == 0 ? '完善补充信息' : 'Complete the supplementary information',
participantsInfoArr: extraform.value,
personId: row.personInfo.id,
extraId: row.extraPersonInfo?.id || 0
}
proxy.$refs['popExtraForm'].open(_.cloneDeep(params))
}
function downloadVoucher() {
// 下载凭证
proxy.download(
`/pdf/getPayedOrderPdf/${matchId.value}/${groupId.value || 0}`, {}, '报项凭证.pdf'
)
}
function editPerson(id) {
proxy.$refs['dialogAddCoachRef'].open({
title: '编辑人员',
id: id,
groupId: groupId.value
})
}
function switchTabletype() {
if (tableType.value == 0) {
tableType.value = 1
} else {
tableType.value = 0
}
}
function changeProject(e) {
console.log(projectIds.value,e)
var obj
obj = _.find(projectList.value, (c) => {
return e.indexOf(c.id)>-1
})
// if(obj.majorFlag==1){
//需要填wdsf
// const params = {
// title: '验证WDSF',
// list:choosed2Listbak.value
// }
// proxy.$refs['popWdsf'].open(_.cloneDeep(params))
// }
}
watch(choosedchoosed, (newVal, oldVal) => {
// console.log(choosedchoosed.value)
if(newVal.length>oldVal.length){
match.signgetSignInfoConflict({
cptId: matchId.value,
perId: _.last(newVal),
groupId: groupId.value
}).then(res => {
if(!res.data){
ElMessage.error(language.value==0?'该人员已在其他团队中报名,请重新选择':'This person has already registered in another team, please select again')
choosedchoosed.value = _.without(choosedchoosed.value,_.last(newVal))
for(var c of choosed2List.value){
if(c.id == _.last(newVal)){
choosed2List.value = _.without(choosed2List.value,c)
}
}
for(var c of choosed2Listbak.value){
if(c.id == _.last(newVal)){
choosed2Listbak.value = _.without(choosed2Listbak.value,c)
}
}
projectList.value = []
console.log(choosedchoosed.value,choosed2List.value,choosed2Listbak.value)
return
} else {
getProjectList()
}
})
} else {
getProjectList()
}
})
</script>
<style scoped lang="scss">
:deep(.el-checkbox__label) {
flex: 1 1 auto;
}
.flexBetweenBox {
width: 100%;
height: auto;
border-bottom: 1px solid #eee;
padding: 0 10px;
}
.flexBetweenBox:nth-child(odd) {
background: #FAFBFD;
}
.flexBetween {
padding: 10px;
border-left: 1px solid #eee;
.l {
div {
margin: 4px 0 0;
color: #999;
}
}
}
.app-container {
padding: 0;
background: #F5F7F9;
}
.panel-footer .el-button--success {
background: #254385;
border: none;
padding: 0 40px;
font-size: 16px;
}
.panel-footer .el-button--success.is-plain {
background: #fff;
border: 1px solid #2ED981;
color: #2ED981;
}
.hasChoose {
margin: 0 0 20px;
display: flex;
justify-content: space-between;
button {
position: relative;
margin: 10px;
}
.choseItem {
margin: 10px;
position: relative;
.poClose {
position: absolute;
right: -6px;
top: -12px;
z-index: 1;
}
}
}
.chooseForm {
:deep(.el-form-item__content) {
background: rgba(245, 247, 249, 0.38);
padding: 20px 40px 10px;
}
.el-checkbox {
height: auto;
margin-right: 20px;
}
:deep(.el-checkbox__input) {
position: absolute;
right: 0;
top: 0;
}
.name {
text-align: center;
}
}
:deep(.el-avatar) > img {
width: 100%;
}
.panel {
height: 100%;
}
.border-info {
.item {
margin: 5px 0;
color: #4C5359;
font-size: 14px;
label {
font-size: 14px;
margin-right: 14px
}
}
}
.ttbb {
font-size: 14px;
color: #4C5359;
display: flex;
justify-content: center;
div {
padding: 20px;
position: relative;
cursor: pointer;
}
div:first-child::after {
content: '';
position: absolute;
right: 0;
background: #ccc;
width: 1px;
height: 14px;
top: 0;
bottom: 0;
margin: auto;
}
.active {
color: var(--el-color-primary);
&::before {
width: 33px;
content: '';
position: absolute;
height: 2px;
bottom: 14px;
left: 0;
right: 0;
margin: auto;
background: #453DEA;
border-radius: 1px;
}
}
}
.noPicChooseForm {
overflow: auto;
//height: 70vh;
.el-checkbox-group {
display: flex;
flex-wrap: wrap;
text-align: justify;
.el-button {
width: 31%;
margin: 1%;
}
.el-checkbox {
margin: 1%;
width: 31%;
overflow: hidden;
}
.name {
justify-content: left;
}
}
}
.name {
display: flex;
align-items: center;
justify-content: center;
img {
height: 20px;
margin-left: 4px;
}
}
</style>
......@@ -7,7 +7,12 @@
<el-form ref="dialogRef" :model="form" :rules="language==0?rules:rules_cn" label-width="120px" inline>
<el-row :gutter="30" class="mt30">
<el-col :lg="12" class="touxiang">
<el-form-item prop="picUrl" :label="language==0?'个人照片':'photo'">
<ImageUpload2
v-model="form.picUrl" :crop-height="280" :crop-width="200" class="threeFour" :limit="1"
:is-show-tip="false"
/>
</el-form-item>
<el-form-item :label="language==0?'姓氏':'surname'" prop="xing" required>
<el-input v-model="form.xing"/>
</el-form-item>
......@@ -27,13 +32,15 @@
<el-form-item :label="language==0?'证件号码':'ID NO'" prop="idcCode" required>
<el-input v-model="form.idcCode" @blur="checkCode"/>
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item :label="language==0?'性别':'sex'" prop="sex">
<el-radio-group v-model="form.sex">
<el-radio value="0">{{ language==0?'女':'female' }}</el-radio>
<el-radio value="1">{{ language==0?'男':'male' }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item :label="language==0?'出生日期':'birth'" prop="birth" required>
<el-date-picker
v-model="form.birth"
......@@ -46,38 +53,31 @@
<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-col :lg="12">
<el-form-item :label="language==0?'手机号码':'Phone'" prop="phone" required>
<el-input v-model="form.phone" type="number"/>
</el-form-item>
<el-form-item :label="language==0?'所属国家':'Nationality'" prop="countryId" required>
<el-select :disabled="language==0" filterable v-model="form.countryId" style="width: 100%;" @change="changeCountryId">
<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?'所属国家':'Nationality'" prop="countryId" required>-->
<!-- <el-select :disabled="language==0" filterable v-model="form.countryId" style="width: 100%;" @change="changeCountryId">-->
<!-- <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"
style="width: 100%;margin-bottom: 15px"
:options="regionsList"
:props="{ label:'text' }"
/>
<el-input v-model="form.address" type="textarea" :rows="4"/>
<!-- <el-form-item :label="language==0?'详细地址':'Address'" prop="address" required>-->
<!-- <el-cascader v-if="form.countryId == 240"-->
<!-- v-model="form.regionId"-->
<!-- style="width: 100%;margin-bottom: 15px"-->
<!-- :options="regionsList"-->
<!-- :props="{ label:'text' }"-->
<!-- />-->
<!-- <el-input v-model="form.address" type="textarea" :rows="4"/>-->
</el-form-item>
<!-- </el-form-item>-->
<el-form-item :label="language==0?'WDSF会员号':'WDSF code'" prop="wdsfMin">
<el-input v-model="form.wdsfMin" type="number"/>
</el-form-item>
<el-form-item prop="picUrl" :label="language==0?'个人照片':'photo'">
<ImageUpload2
v-model="form.picUrl" :crop-height="280" :crop-width="200" class="threeFour" :limit="1"
:is-show-tip="false"
/>
</el-form-item>
<!-- <el-form-item :label="language==0?'邮箱':'Email'" prop="email" required>-->
<!-- <el-input v-model="form.email"/>-->
......
......@@ -8,7 +8,13 @@
</el-col>
<el-col :span="20">
<div class="item"><label>{{ language==0?'团体名称':'Team Name' }}</label>{{ groupInfo.name }}</div>
<div class="item"><label>{{ language==0?'团体类型':'Group type' }}</label>{{ groupInfo.typeStr }}</div>
<div class="item"><label>{{ language==0?'团体类型':'Group type' }}</label>
<text v-if="groupInfo.type=='0'">{{language==0?'普通院校':'School'}}</text>
<text v-if="groupInfo.type=='1'">{{language==0?'专业舞蹈学校':'Professional dance school'}}</text>
<text v-if="groupInfo.type=='2'">{{language==0?'培训机构/俱乐部':'Company/Club'}}</text>
<text v-if="groupInfo.type=='3'">{{language==0?'地方协会':'Local Association'}}</text>
<text v-if="groupInfo.type=='4'">{{language==0?'国家协会':'National Association'}}</text>
</div>
</el-col>
</el-row>
</el-col>
......
<template>
<el-dialog
v-model="show" :title="title" width="500px" append-to-body :close-on-click-modal="false"
destroy-on-close
>
<el-form label-width="120">
<el-form-item required :label="item.realName" v-for="item in list">
<el-input :disabled="item.checked"
v-model="item.wdsfMin" placeholder="输入WDSF会员号"
>
<template #append>
<view @click="checkCode(item)" class="checkbb">
<el-icon v-if="item.checked" color="#13ce66" size="24"><CircleCheck /></el-icon>
<text class="text-primary" v-else>验证</text>
</view>
</template>
</el-input>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer text-center">
<el-button type="primary" @click="submitForm">保 存</el-button>
<el-button @click="cancel">取 消</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 { SuccessFilled } from '@element-plus/icons-vue'
import { ElMessage } from 'element-plus'
import { useRoute } from 'vue-router'
const { proxy } = getCurrentInstance()
const emit = defineEmits(['submitForm'])
const uploadUrl = ref('/upload/upLoadToFileServer')
const route = useRoute()
import {useStorage} from "@vueuse/core/index";
const language= useStorage('language',0)
const data = reactive({
form: {},
show: false,
list: [],
title: '',
groupId: '0'
})
const { form, show, countryList, list, title, groupId } = toRefs(data)
let extraId = 0
let personId
let matchId
const open = (params) => {
console.log(params)
show.value = true
title.value = params.title
matchId = params.matchId
list.value = params.list
init()
}
defineExpose({ open })
watch(show, (value) => {
if (!value) {
form.value = {}
list.value = []
}
})
function init() {
for (let n of list.value){
if (n.wdsfMin) {
n.checked = true
} else {
n.checked = false
}
}
}
function checkCode(item) {
if (!item.wdsfMin) {
if (language.value == 0) {
ElMessage.error('请填写WDSF卡号')
} else {
ElMessage.error('Please fill in your WDSF code')
}
return
}
match.checkWdsf({card: item.wdsfMin}).then(res => {
if(res.data.wdsfFlag=='0'){
if (language.value == 0) {
ElMessage.error('验证失败,卡号不存在')
} else {
ElMessage.error('Verification failed, card number does not exist')
}
return
}
if(res.data.wdsfFlag=='1'){
item.checked = true
}
})
}
function submitForm() {
//list.value
show.value = false
emit('submitForm')
}
function cancel() {
show.value = false
}
</script>
<style lang="scss">
.threeFour {
width: 100%;
:deep(.el-upload--picture-card) {
width: 120px;
height: 160px;
}
:deep(.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;
}
}
.red {
color: #f56c6c;
}
.checkbb{width: 30px;display: flex;align-items: center;text-align: center;}
</style>
......@@ -25,6 +25,28 @@
<p class="ppl"><label class="bm2">赛事级别:</label>{{ matchData.level }}</p>
<p class="ppl" v-if="matchData.address"><label class="bm3">&ensp;&ensp;&ensp;&ensp;点:</label>{{ matchData.address }}</p>
<p class="ppl" v-if="matchData.signEndTime"><label class="bm4">报名截止:</label>{{ matchData.signEndTime?.slice(0, 10) }}</p>
<div>
<el-link class="mr20" v-if="matchData.signKnowUrl" type="primary" :href="fillImgUrl(JSON.parse(matchData.signKnowUrl)[0]?.url)" target="_blank">
<el-icon :size="20">
<Download />
</el-icon>
<!-- {{ JSON.parse(matchData.signKnowUrl)[0]?.name}}-->
报名须知
</el-link>
<el-link class="mr20" v-if="matchData.disclaimerUrl" type="primary" :href="fillImgUrl(JSON.parse(matchData.disclaimerUrl)[0]?.url)" target="_blank">
<el-icon :size="20">
<Download />
</el-icon>免责声明
<!-- {{ JSON.parse(matchData.disclaimerUrl)[0]?.name }}-->
</el-link>
<el-link v-if="matchData.ruleUrl" type="primary" :href="fillImgUrl(JSON.parse(matchData.ruleUrl)[0]?.url)" target="_blank">
<el-icon :size="20">
<Download />
</el-icon>赛事规程
<!-- {{ JSON.parse(matchData.ruleUrl)[0]?.name }}-->
</el-link>
</div>
</el-col>
<el-col :lg="8" :md="12" :xl="8" v-if="matchData.type=='0'">
<p class="countDownTitle"><span>报名截止倒计时</span></p>
......@@ -42,7 +64,8 @@
</van-count-down>
<div>
<a class="btn-lineG mb20" @click="choseSignType" style="display: block;text-align: center;">我要报名</a>
<a class="btn-lineG mb20" v-if="time>0" @click="choseSignType" style="display: block;text-align: center;">我要报名</a>
<div v-else style="opacity: 0.5;" class="btn-lineG mb20 mauto text-center">报名已结束</div>
</div>
</el-col>
</el-row>
......
......@@ -26,6 +26,29 @@
<p class="ppl" v-if="matchData.address"><label class="bm3">Location:</label>{{ matchData.address }}</p>
<p class="ppl" v-if="matchData.signEndTime"><label class="bm4">Registration
Deadline:</label>{{ matchData.signEndTime?.slice(0, 10) }}</p>
<div>
<el-link class="mr20" v-if="matchData.signKnowUrl" type="primary" :href="fillImgUrl(JSON.parse(matchData.signKnowUrl)[0]?.url)" target="_blank">
<el-icon :size="20">
<Download />
</el-icon>
<!-- {{ JSON.parse(matchData.signKnowUrl)[0]?.name}}-->
Notes
</el-link>
<el-link class="mr20" v-if="matchData.disclaimerUrl" type="primary" :href="fillImgUrl(JSON.parse(matchData.disclaimerUrl)[0]?.url)" target="_blank">
<el-icon :size="20">
<Download />
</el-icon>Disclaimers
<!-- {{ JSON.parse(matchData.disclaimerUrl)[0]?.name }}-->
</el-link>
<el-link v-if="matchData.ruleUrl" type="primary" :href="fillImgUrl(JSON.parse(matchData.ruleUrl)[0]?.url)" target="_blank">
<el-icon :size="20">
<Download />
</el-icon>Competition Regulations
<!-- {{ JSON.parse(matchData.ruleUrl)[0]?.name }}-->
</el-link>
</div>
</el-col>
<el-col :lg="8" :md="12" :xl="8" v-if="matchData.type=='0'">
<p class="countDownTitle"><span>Registration deadline countdown</span></p>
......@@ -43,9 +66,10 @@
</van-count-down>
<div class="flexCenter">
<el-button ref="RegisterRef" type="primary" round size="large" class="btn-lineG mb20 mt30 w100"
<el-button v-if="time>0" ref="RegisterRef" type="primary" round size="large" class="btn-lineG mb20 mt30 w100"
@click="choseSignType" style="font-size: 16px">Register
</el-button>
<div v-else style="opacity: 0.5;" class="btn-lineG mb20 mauto text-center">Registration has ended</div>
</div>
</el-col>
</el-row>
......
......@@ -7,30 +7,30 @@
<el-card>
<ul>
<li>
<label>类型</label>
<label>{{ language==0?'类型':'Type' }}</label>
<el-radio-group v-model="query.type" @change="getList">
<el-radio-button value="-1">全部</el-radio-button>
<el-radio-button value="0">联赛</el-radio-button>
<el-radio-button value="1">分站赛</el-radio-button>
<el-radio-button value="-1">{{ language==0?'全部':'All' }}</el-radio-button>
<el-radio-button value="0">{{ language==0?'联赛':'League' }}</el-radio-button>
<el-radio-button value="1">{{ language==0?'分站赛':'Station race' }}</el-radio-button>
</el-radio-group>
</li>
<li>
<label>状态</label>
<label>{{ language==0?'状态':'Status' }}</label>
<el-radio-group
v-model="query.progressStatusCode"
@change="getList"
>
<el-radio-button value="-1">全部</el-radio-button>
<el-radio-button value="2">报名中</el-radio-button>
<el-radio-button value="4">赛事进行中</el-radio-button>
<el-radio-button value="3">即将开始</el-radio-button>
<el-radio-button value="5">已结束</el-radio-button>
<el-radio-button value="-1">{{ language==0?'全部':'All' }}</el-radio-button>
<el-radio-button value="2">{{ language==0?'报名中':'Registration in progress' }}</el-radio-button>
<el-radio-button value="4">{{ language==0?'赛事进行中':'In progress' }}</el-radio-button>
<el-radio-button value="3">{{ language==0?'即将开始':'Begin in a minute' }}</el-radio-button>
<el-radio-button value="5">{{ language==0?'已结束':'Ended' }}</el-radio-button>
</el-radio-group>
</li>
<li>
<label>时间</label>
<label>{{ language==0?'时间':'Date' }}</label>
<el-radio-group v-model="query.month" @change="getList">
<el-radio-button value="">全部</el-radio-button>
<el-radio-button value="">{{ language==0?'全部':'All' }}</el-radio-button>
<el-radio-button v-for="m in monthList" :key="m" :value="m">{{m}}</el-radio-button>
</el-radio-group>
</li>
......@@ -41,15 +41,15 @@
</div>
<div class="box">
<div class="listTitle">
<h3>赛事列表</h3>
<h3>{{ language==0?'赛事列表':'List' }}</h3>
<div class="search">
<el-input
v-model="query.name"
placeholder="请输入赛事名称查询"
:placeholder="language==0?'请输入赛事名称查询':'Search'"
class="input-with-select" @change="getList"
>
<template #append>
<el-button type="success" round @click="getList">查询</el-button>
<el-button type="success" round @click="getList">{{ language==0?'查询':'Search' }}</el-button>
</template>
</el-input>
</div>
......@@ -64,12 +64,12 @@
<div class="info">
<h3>{{ n.name }}</h3>
<p class="ppl"><label>{{ language==0?'比赛时间':'Playing Time' }}:</label>{{n.beginTime?.slice(0,10)}} ~ {{ n.endTime?.slice(0,10) }}</p>
<p class="ppl"><label>{{ language==0?'地&ensp;&ensp;&ensp;&ensp;点':'Location' }}:</label>{{ n.address }}</p>
<p class="ppl" v-if="n.address"><label>{{ language==0?'地&ensp;&ensp;&ensp;&ensp;点':'Location' }}:</label>{{ n.address }}</p>
<p class="ppl"><label>{{ language==0?'报名截止':'Registration Deadline' }}:</label>{{ n.signEndTime?.slice(0,10) }}</p>
<p class="ppl"><label>{{ language==0?'联系人员':'Contact Person' }}:</label>{{ n.contactPerson }}</p>
<p class="ppl" v-if="n.contactPerson"><label>{{ language==0?'联系人员':'Contact Person' }}:</label>{{ n.contactPerson }}</p>
<p class="ppl"><label>{{ language==0?'联系电话':'Phone' }}:</label>{{ n.contactTelno }}</p>
<p class="ppl"><label>{{ language==0?'邮&ensp;&ensp;&ensp;&ensp;箱':'E-mail' }}:</label>{{ n.contactEmail }}</p>
<p class="ppl" v-if="n.contactEmail"><label>{{ language==0?'邮&ensp;&ensp;&ensp;&ensp;箱':'E-mail' }}:</label>{{ n.contactEmail }}</p>
</div>
</el-col>
......@@ -94,7 +94,7 @@
<div class="text-center mt30">
<a class="btn-lineG mb20 mauto" v-if="n.time>0" style="display: block;">
{{ language==0?'我要报名':'Register' }}</a>
<div v-else style="opacity: 0.5;" class="btn-lineG mb20 mauto">报名已结束</div>
<div v-else style="opacity: 0.5;" class="btn-lineG mb20 mauto">{{ language==0?'报名已结束':'Registration has ended' }}</div>
</div>
</el-col>
</el-row>
......
......@@ -76,14 +76,14 @@ export default defineConfig(({ mode, command }) => {
rewrite: (p) => p.replace(/^\/dev-api\/ztx-match/, '')
},
'/dev-api/ztx-webSite': {
// target: 'http://123.60.96.243:1897/stage-api/',
target: 'http://192.168.1.131:8083/',
target: 'https://dance.itechtop.cn/stage-api',
// target: 'http://192.168.1.131:8083/',
changeOrigin: true,
rewrite: (p) => p.replace(/^\/dev-api\/ztx-webSite/, '')
},
'/dev-api': {
target: 'http://192.168.1.131:8083',
// target: 'http://localhost:8787',
// target: 'http://192.168.1.131:8083',
target: 'https://dance.itechtop.cn/stage-api',
changeOrigin: true,
rewrite: (p) => p.replace(/^\/dev-api/, '')
}
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!