12d621d3 by zhangmeng

Merge branch 'order' of https://code.itechtop.cn/yangyang/dance-pc into order

2 parents 73dc0e6e 182c235a
......@@ -39,11 +39,12 @@ export function getMySignDetailById(params) {
}
// 获取赛事下的已报团队
export function getGroupListByCptId(cptId) {
export function getGroupListByCptId(cptId,query) {
return request({
// url: `/league/group/getGroupListByCptId/${cptId}`,
url: `/league/sign/getSignInfoDataByCptId/${cptId}`,
method: 'get'
method: 'get',
params: query
})
}
......@@ -363,6 +364,13 @@ export function savePersonForMyPerson(data) {
data: data
})
}
export function savePersonForMyPerson2(data) {
return request({
url: `/systemj/personInfo/savePersonForMyPerson2`,
method: 'post',
data: data
})
}
// 人员修改
export function editPersonInfo(params) {
......@@ -380,6 +388,13 @@ export function delPerson(id) {
method: 'delete'
})
}
//个人账号
export function delPersonForPersonal(id) {
return request({
url: `/systemj/personInfo/singleDelete/${id}`,
method: 'delete'
})
}
export function singleSignSavePerson(data) {
return request({
......@@ -650,6 +665,20 @@ export function checkMate(query) {
params:query
})
}
export function checkIdcCode(query) {
return request({
url: `/systemj/personInfo/extractInfo`,
method: 'get',
params:query
})
}
export function getProjectByCptId(cptId,query) {
return request({
url: `/league/competitionProject/getTableByLanguageSourceAndCptId/${cptId}`,
method: 'get',
params: query
})
}
export function addInvitation(data) {
return request({
url: `/league/person`,
......

57.3 KB | W: | H:

43.9 KB | W: | H:

src/assets/logo/Invitation_c.png
src/assets/logo/Invitation_c.png
src/assets/logo/Invitation_c.png
src/assets/logo/Invitation_c.png
  • 2-up
  • Swipe
  • Onion skin

56 KB | W: | H:

44.3 KB | W: | H:

src/assets/logo/Invitation_e.png
src/assets/logo/Invitation_e.png
src/assets/logo/Invitation_e.png
src/assets/logo/Invitation_e.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -83,7 +83,7 @@
<div @click="goHelpZH">
<a target="_blank" href="/file/操作指引.zip">
<img class="kf" src="@/assets/logo/btn02.png"/>
<div class="text-center mt10 gradient-text">操作指引</div>
<div class="text-center mt10 gradient-text">指南下载</div>
</a>
</div>
</div>
......@@ -95,7 +95,7 @@
</div>
<div @click="goHelp">
<img class="kf" src="@/assets/logo/btn02.png"/>
<div class="text-center gradient-text">GUIDELINE</div>
<div class="text-center gradient-text uppercase">Video Guide</div>
</div>
</div>
</div>
......@@ -104,18 +104,19 @@
<script setup>
import {useStorage} from "@vueuse/core/index";
import {useRouter} from "vue-router";
import {ElMessage} from "element-plus";
const router = useRouter()
const language = useStorage('language', 0)
const goHelp = () => {
router.push({
path: `/news/list/20000100`,
query:{
kindName: language.value==0?'操作指引':'GUIDELINE'
kindName: language.value==0?'操作指引':'Video Guide'
}
})
}
const goHelpZH = () => {
ElMessage.success('已下载文件')
}
</script>
......
......@@ -324,7 +324,7 @@ function getCode() {
.ropenbtn{padding: 10px;display: none;
img{ width: 50px;}
img{ width: 44px;}
}
:deep(.el-input){height: 100%}
......
......@@ -257,7 +257,7 @@ function getCode() {
.ropenbtn{padding: 10px;display: none;
img{ width: 50px;}
img{ width: 44px;}
}
:deep(.el-input){height: 100%}
......
......@@ -133,8 +133,6 @@ function goBooking(n) {
break;
case 4:
//化妆
building()
router.push({path: `/booking/makeup/${props.matchId}`})
break;
case 5:
......
<template>
<div>
<div class="banner">
<el-carousel height="450px" :autoplay="false" arrow="hover" @change="carouselChange">
<el-carousel class="forPc" height="450px" :autoplay="false" arrow="hover" @change="carouselChange">
<el-carousel-item style="height: 450px;" v-for="n in maList" :key="n.id">
<div class="bannerItem">
<div class="h100">
......@@ -40,6 +40,45 @@
</div>
</el-carousel-item>
</el-carousel>
<el-carousel class="forWei" height="160px" :autoplay="false" arrow="hover" @change="carouselChange">
<el-carousel-item style="height: 160px;" v-for="n in maList" :key="n.id">
<div class="bannerItem" style="height:100%">
<div class="h100" style="position: relative">
<img v-if="n.bgImgUrl" class="bannerImg" :src="fillImgUrl(n.bgImgUrl)">
<img v-else class="bannerImg" src="@/assets/dance/banner.png">
<div style="position: absolute;left: 0;right: 0;bottom: 0;margin: auto;">
<div class="banner-count" v-if="n.time>0" @click="goMatch(n)">
距离开始还有
<van-count-down :time="n.time" format="DD 天 HH 时 mm 分 ss 秒">
<template #default="timeData">
<div class="block">{{ timeData.days }}
<span class="colon"></span>
</div>
<div class="block">{{ timeData.hours }}
<span class="colon"></span>
</div>
<div class="block">{{ timeData.minutes }}
<span class="colon"></span>
</div>
<div class="block">{{ timeData.seconds }}
<span class="colon"></span>
</div>
</template>
</van-count-down>
</div>
<div class="banner-count bb" v-else @click="goMatch(n)">
开始报名
<!-- <el-button class="btn-lineG" style="font-size: 17px;height: 40px" round type="primary">开始报名</el-button>-->
</div>
</div>
</div>
</div>
</el-carousel-item>
</el-carousel>
</div>
<div class="box zn-bg">
......@@ -885,7 +924,8 @@ const goGuide = () => {
}
.bannerItem .banner-count {
flex-direction: column;
transform: scale(0.8);
transform: scale(0.5);
width: auto;
left: 0;
right: 0;
......
<template>
<div>
<div class="banner">
<el-carousel height="450px" :autoplay="false" arrow="hover" @change="carouselChange">
<el-carousel height="450px" class="forPc" :autoplay="false" arrow="hover" @change="carouselChange">
<el-carousel-item style="height: 450px;" v-for="n in maList" :key="n.id">
<div class="bannerItem">
<div class="h100">
......@@ -37,6 +37,45 @@
</div>
</el-carousel-item>
</el-carousel>
<el-carousel class="forWei" height="160px" :autoplay="false" arrow="hover" @change="carouselChange">
<el-carousel-item style="height: 160px;" v-for="n in maList" :key="n.id">
<div class="bannerItem" style="height:100%">
<div class="h100" style="position: relative">
<img v-if="n.bgImgUrl" class="bannerImg" :src="fillImgUrl(n.bgImgUrl)">
<img v-else class="bannerImg" src="@/assets/dance/banner.png">
<div style="position: absolute;left: 0;right: 0;bottom: 0;margin: auto;">
<div class="banner-count" v-if="n.time>0" @click="goMatch(n)">
距离开始还有
<van-count-down :time="n.time" format="DD 天 HH 时 mm 分 ss 秒">
<template #default="timeData">
<div class="block">{{ timeData.days }}
<span class="colon"></span>
</div>
<div class="block">{{ timeData.hours }}
<span class="colon"></span>
</div>
<div class="block">{{ timeData.minutes }}
<span class="colon"></span>
</div>
<div class="block">{{ timeData.seconds }}
<span class="colon"></span>
</div>
</template>
</van-count-down>
</div>
<div class="banner-count bb" v-else @click="goMatch(n)">
开始报名
<!-- <el-button class="btn-lineG" style="font-size: 17px;height: 40px" round type="primary">开始报名</el-button>-->
</div>
</div>
</div>
</div>
</el-carousel-item>
</el-carousel>
</div>
<div class="box zn-bg">
......@@ -749,7 +788,8 @@ const goGuide = () => {
display: none;
}
.bannerItem .banner-count{flex-direction: column;
transform: scale(0.8); left: 0;
transform: scale(0.5); width: auto;
left: 0;
right: 0;
.van-count-down{margin: 30px 0 0;}
}
......
......@@ -361,6 +361,7 @@ function goNext() {
}
function goPrev() {
console.log(languageSource.value)
if(languageSource.value=='100'){
router.push({
name: `teamSignCn`,
......@@ -388,10 +389,10 @@ function editPerson(id) {
id: id,
groupId: groupId.value || 0
}
if(language.value==0){
if(isNational.value){
proxy.$refs['dialogAddCoachRef_En'].open(obj)
}else {
proxy.$refs['dialogAddCoachRef_En'].open(obj)
proxy.$refs['dialogAddCoachRef'].open(obj)
}
}
......@@ -402,11 +403,11 @@ function addCoach(n) {
label: n,
groupId: groupId.value
}
// if(language.value==0){
// proxy.$refs['dialogAddCoachRef'].open(obj)
// }else {
if(isNational.value){
proxy.$refs['dialogAddCoachRef_En'].open(obj)
// }
}else {
proxy.$refs['dialogAddCoachRef'].open(obj)
}
}
</script>
......
......@@ -18,9 +18,10 @@
</el-button>
</div>
<div class="panel-body" style="padding: 10px">
<div class="tip text-right">
*{{ language == 0?'可通过[选手管理],增加和编辑运动员':'You can add and edit athletes through [Athlete Management]' }}
</div>
<div style="margin: 0 4px 10px;display: flex">
<!-- 可通过选手管理,增加和编辑运动员-->
<el-select multiple v-model="choosedchoosed" collapse-tags-tooltip filterable
@change="changechoosed">
<el-option v-for="c in athletesList" :key="c.id" :label="c.xing + c.ming" :value="c.id">
......@@ -601,7 +602,7 @@ function removeCurproject() {
projectIds.value = _.without(projectIds.value, currProjectId.value)
}
function checkTwo(a,b) {
match.checkMate({per1Id:a,per2Id:b}).then(res=>{
match.checkMate({per1Id:a,per2Id:b,cptId:matchId.value}).then(res=>{
if(!res.data){
ElMessage.warning(language.value == 0 ? '他们不是固定组合':'They\'re not a couple')
}
......
......@@ -8,7 +8,7 @@
<el-row :gutter="30" class="mt30">
<el-col :lg="12" class="touxiang">
<el-form-item prop="picUrl" :label="language==0?'个人照片':'photo'">
<el-form-item prop="picUrl" :label="language==0?'个人照片':'photo'" required>
<ImageUpload2
v-model="form.picUrl" :crop-height="280" :crop-width="200" class="threeFour" :limit="1"
:is-show-tip="false"
......@@ -18,14 +18,11 @@
<span v-if="form.wdsfMin">{{form.wdsfMin}}</span>
<el-input v-else v-model="form.wdsfMin" type="number"/>
</el-form-item>
<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 :label="language==0?'姓名':'Name'" prop="realName" required>
<el-input v-model="form.realName"/>
</el-form-item>
<el-form-item :label="language==0?'证件类型':'ID type'" prop="idcType" required>
<el-select v-model="form.idcType" style="width: 100%;" :disabled="editgay">
<el-select v-model="form.idcType" style="width: 100%;" :disabled="editgay&&form.idcType=='0'">
<el-option
v-for="item in certificates"
:key="item.value"
......@@ -35,10 +32,11 @@
</el-select>
</el-form-item>
<el-form-item :label="language==0?'证件号码':'ID NO'" prop="idcCode" required>
<el-input v-model="form.idcCode" @blur="checkCode" :disabled="editgay"/>
<el-input v-model="form.idcCode" @blur="checkCode" :disabled="editgay&&form.idcType=='0'"/>
</el-form-item>
<el-form-item :label="language==0?'有效证件':'Valid Passport'" required :required="form.idcType!='0'">
<el-form-item :label="language==0?'有效证件':'Valid Passport'" :required="form.idcType!='0'">
<file-upload v-model="form.passportUrl" :limit="1" :is-show-tip="false" />
<span class="tip">*请上传有效证件扫描件</span>
</el-form-item>
<el-form-item :label="language==0?'性别':'Gender'" prop="sex">
<el-radio-group v-model="form.sex" :disabled="form.idcType=='0'">
......@@ -60,8 +58,9 @@
<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-form-item :label="language==0?'手机号码':'Phone'" prop="phone">
<el-form-item :label="language==0?'手机号码':'Phone'" prop="phone" required>
<el-input v-model="form.phone" type="number"/>
<span class="tip">*若未成年人没有手机号,请填写家长号码</span>
</el-form-item>
......@@ -133,8 +132,7 @@ const data = reactive({
sex:'0'
},
rules: {
xing: [{required: true, message: '必填', trigger: 'blur'}],
ming: [{required: true, message: '必填', trigger: 'blur'}],
realName: [{required: true, message: '必填', trigger: 'blur'}],
// countryId: [{required: true, message: '必填', trigger: 'change'}],
idcType: [{required: true, message: '必填', trigger: 'change'}],
idcCode: [{required: true, message: '必填', trigger: 'blur'}],
......@@ -142,13 +140,12 @@ const data = reactive({
// regionId: [{ required: true, message: '必填', trigger: 'change' }],
birth: [{required: true, message: '必填', trigger: 'change'}],
// address: [{ required: true, message: '必填', trigger: 'blur' }],
// picUrl: [{required: true, message: '必填', trigger: 'blur'}],
picUrl: [{required: true, message: '必填', trigger: 'blur'}],
sex: [{required: true, message: '必填', trigger: 'change'}],
labelArr: [{required: true, message: '必填', trigger: 'change'}]
},
rules_cn:{
xing: [{required: true, message: 'required', trigger: 'blur'}],
ming: [{required: true, message: 'required', trigger: 'blur'}],
realName: [{required: true, message: 'required', trigger: 'blur'}],
// countryId: [{required: true, message: 'required', trigger: 'change'}],
idcType: [{required: true, message: 'required', trigger: 'change'}],
idcCode: [{required: true, message: 'required', trigger: 'blur'}],
......@@ -156,7 +153,7 @@ const data = reactive({
// regionId: [{ required: true, message: 'required', trigger: 'change' }],
birth: [{required: true, message: 'required', trigger: 'change'}],
// address: [{ required: true, message: 'required', trigger: 'blur' }],
// picUrl: [{required: true, message: 'required', trigger: 'blur'}],
picUrl: [{required: true, message: 'required', trigger: 'blur'}],
sex: [{required: true, message: 'required', trigger: 'change'}],
labelArr: [{required: true, message: 'required', trigger: 'change'}]
},
......@@ -185,13 +182,14 @@ onMounted(() => {
})
const editgay = ref(false)
const open = (params) => {
console.log(params.label)
show.value = true
title.value = params.title
groupId.value = params.groupId || '0'
isMe.value = params.isMe
if(params.label){
form.value.labelArr= [params.label]
} else {
form.value.labelArr = []
}
if(language.value == 0){
form.value.countryId = 240
......@@ -261,20 +259,17 @@ function getRegionsList() {
function checkCode() {
if (form.value.idcType=='0' && form.value.idcCode) {
giveBirthDay()
// giveBirthDay()
var obj = {
idcType: form.value.idcType,
idcCode: form.value.idcCode
idcCode: form.value.idcCode,
name: form.value.realName
}
// match.checkPerson(obj).then(res => {
// if (res.data.idcCode != null) {
// form.value = res.data
// if (form.value.label != null) {
// form.value.labelArr = form.value.label.split(',')
// }
// form.value.groupId = groupId.value
// }
// })
match.checkIdcCode(obj).then(res => {
if (res.data) {
form.value.birth = res.data.birth
form.value.sex = res.data.sex
}
})
}
}
......@@ -324,10 +319,10 @@ function submitForm() {
return
}
}
if(!form.value.passportUrl){
ElMessage.warning(language.value == 0 ? '请上传有效证件' :'Please upload your passport file')
return
}
// if(!form.value.passportUrl){
// ElMessage.warning(language.value == 0 ? '请上传有效证件' :'Please upload your passport file')
// return
// }
if (typeof (form.value.regionId) === 'object') {
form.value.regionId = _.last(form.value.regionId)
}
......
......@@ -281,7 +281,7 @@ function submitForm() {
}
}
function addPersonal() {
match.savePersonForMyPerson(form.value).then(res => {
match.savePersonForMyPerson2(form.value).then(res => {
ElMessage.success('保存成功')
show.value = false
emit('submitForm', res.data)
......
......@@ -38,7 +38,7 @@
<el-table ref="allSportmenTable" v-loading="loading" :data="tableData" height="60vh"
@selection-change="handleSelectionChange">
<!-- <el-table-column type="selection" :label="language==0?'选择':'Selection'" :selectable="selectable"/>-->
<el-table-column align="center" type="index" :label="language==0?'序号':'Index'" width="60" :selectable="selectable"/>
<el-table-column align="center" type="index" :label="language==0?'序号':'Index'" width="70" :selectable="selectable"/>
<el-table-column v-if="isNational" :label="language==0?'WDSF 会员号':'WDSF MIN'" prop="wdsfMin" width="100"/>
<el-table-column align="center" :label="language==0?'姓氏':'Surname'" prop="xing" min-width="100"/>
<el-table-column align="center" :label="language==0?'名':'Name'" prop="ming" min-width="100"/>
......@@ -92,7 +92,9 @@
<!-- </template>-->
</el-dialog>
<!-- 国内赛运动员-->
<add-coach ref="dialogAddCoach" @submitForm="getList"/>
<!-- 国际赛运动员-->
<add-wdsf ref="dialogAddWdsf" @submitForm="getList"/>
<Import ref="dialogImportProps" @submitForm="getList"/>
</template>
......
<template>
<div class="collapsebox">
<div class="pd20">
<div class="fr mb20">
<el-input size="small" v-model="query.projectName" :prefix-icon="Search"
@change="getList" clearable/>
</div>
<el-table :data="list" border>
<el-table-column :label="language==0?'组别编号':'Event Code'" prop="code" align="center"></el-table-column>
<el-table-column :label="language==0?'组别编号':'Event Code'" prop="code" align="center" :min-width="language==0?70:100">
</el-table-column>
<el-table-column :label="language==0?'组别名称':'Event'" min-width="150" prop="name" align="center"></el-table-column>
<el-table-column :label="language==0?'舞种':'DISCIPLINE'" width="110" prop="danceType" align="center">
</el-table-column>
<el-table-column :label="language==0?'舞种明细':'Dance Detail'" width="120" prop="danceTypeDetailStr" align="center"></el-table-column>
<el-table-column :label="language==0?'舞种明细':'Dance Detail'" width="120" prop="danceTypeDetailStr" align="center">
</el-table-column>
<el-table-column :label="language==0?'参赛性别':'Sex'" align="center">
<template #default="scope">
......@@ -14,7 +22,7 @@
<span v-else>{{ scope.row.playType }}</span>
</template>
</el-table-column>
<el-table-column :label="language==0?'参赛年龄':'Age'" align="center" min-width="100">
<el-table-column :label="language==0?'参赛年龄':'Age'" align="center" :min-width="isNational?100:240">
<template #default="scope">
<div v-if="isNational">
<span v-if="scope.row.ageGroup == '0'" >{{ language==0?'不限制':'Unlimited' }}</span>
......@@ -34,8 +42,8 @@
<span v-if="scope.row.ageGroup == '14'" >Senior V</span>
</div>
<div v-else>
<div>{{ scope.row.birthPeriod }}</div>
<div>{{scope.row.birthPeriodSecond}}</div>
<div>{{ scope.row.birthPeriod.replace(',',language==0?' 至 ':' to ') }}</div>
<div>{{scope.row.birthPeriodSecond?.replace(',',language==0?' 至 ':' to ')}}</div>
</div>
</template>
</el-table-column>
......@@ -45,76 +53,40 @@
</template>
</el-table-column>
</el-table>
<!-- <table class="table" cellspacing="0" cellpadding="0" v-if="list.length > 0">-->
<!-- <tr v-if="language==0">-->
<!-- <th>组别编号</th>-->
<!-- <th>组别名称</th>-->
<!-- <th>舞种</th>-->
<!-- <th>舞种明细</th>-->
<!-- <th>参赛性别</th>-->
<!-- <th>参赛年龄</th>-->
<!-- <th>服务费(元)</th>-->
<!-- </tr>-->
<!-- <tr v-else>-->
<!-- <th>EVENT code</th>-->
<!-- <th>EVENT</th>-->
<!-- <th>DISCIPLINE</th>-->
<!-- <th>Dance Detail</th>-->
<!-- <th>Sex</th>-->
<!-- <th>Age</th>-->
<!-- <th>Registration Fee</th>-->
<!-- </tr>-->
<!-- <tr v-for="(p,index) in list" :key="index">-->
<!-- <td>{{ p.code }}</td>-->
<!-- <td>{{ p.name }}</td>-->
<!-- <td>{{ p.danceType }}</td>-->
<!-- <td>{{ p.danceTypeDetailStr }}</td>-->
<!-- <td>{{ p.playTypeStr }}</td>-->
<!-- <td>-->
<!--&lt;!&ndash; {{ isNational }}&ndash;&gt;-->
<!-- <div v-if="isNational">-->
<!-- <span v-if="p.ageGroup == '0'" >{{ language==0?'不限制':'Unlimited' }}</span>-->
<!-- <span v-if="p.ageGroup == '1'" >Juvenile I</span>-->
<!-- <span v-if="p.ageGroup == '2'" >Juvenile II</span>-->
<!-- <span v-if="p.ageGroup == '3'" >Juv1& II (comb.)</span>-->
<!-- <span v-if="p.ageGroup == '4'" >Junior I</span>-->
<!-- <span v-if="p.ageGroup == '5'" >Junior II</span>-->
<!-- <span v-if="p.ageGroup == '6'" >Juv I & II (comb.)</span>-->
<!-- <span v-if="p.ageGroup == '7'" >Youth</span>-->
<!-- <span v-if="p.ageGroup == '8'" >Under 21</span>-->
<!-- <span v-if="p.ageGroup == '9'" >Adult</span>-->
<!-- <span v-if="p.ageGroup == '10'" >Senior I</span>-->
<!-- <span v-if="p.ageGroup == '11'" >Senior II</span>-->
<!-- <span v-if="p.ageGroup == '12'" >Senior III</span>-->
<!-- <span v-if="p.ageGroup == '13'" >Senior IV</span>-->
<!-- <span v-if="p.ageGroup == '14'" >Senior V</span>-->
<!-- </div>-->
<!-- <div v-else>-->
<!-- <div>{{ p.birthPeriod }}</div>-->
<!-- <div>{{p.birthPeriodSecond}}</div>-->
<!-- </div>-->
<!-- &lt;!&ndash; <div>{{ p.birthAgeGroup }};{{p.birthAgeSecondGroup}}</div>&ndash;&gt;-->
<!-- </td>-->
<!-- <td>{{ language==0?'¥':'€' }}{{ p.serviceFee }}</td>-->
<!-- </tr>-->
<!-- </table>-->
<PaginationPc
v-show="total>0"
:total="total"
v-model:page="query.pageNum"
v-model:limit="query.pageSize"
@pagination="getList"
/>
</div>
<!-- <el-empty :image="`/img/order_no.png`" :image-size="228" v-if="list.length == 0" description=""/>-->
</div>
</template>
<script setup>
import {Search} from "@element-plus/icons-vue";
import {useStorage} from "@vueuse/core/index"
import {getProjectByCptId} from "@/apiPc/match";
import PaginationPc from "@/components/PaginationPc";
const language= useStorage('language',0)
const list = ref([])
const total = ref(0)
const query = ref({
projectName:'',
pageSize:10,
pageNum:1
})
const props = defineProps({
list: {
type: Array,
required: true,
default:[]
// list: {
// type: Array,
// required: true,
// default:[]
// },
matchId: {
type: String,
required: false
},
isNational: {
type: Boolean,
......@@ -122,6 +94,13 @@ const props = defineProps({
default: false
},
})
getList()
function getList() {
getProjectByCptId(props.matchId,query.value).then(res=>{
list.value = res.rows
total.value = res.total
})
}
</script>
<style scoped lang="scss">
......
......@@ -82,7 +82,7 @@
<!-- </div>-->
<div class="indexTitle" v-if="form.type==1 && form.cptProjectList?.length > 0"><h3 class="leftboderTT">Event settings</h3></div>
<div v-if="form.type==1 && form.cptProjectList?.length > 0">
<match-info-project-list :list="form.cptProjectList" :is-national="form.languageSource!='100'"/>
<match-info-project-list :match-id="form.id" :is-national="form.languageSource!='100'"/>
</div>
</div>
</template>
......
<template>
<!-- 已废弃-->
<div class="app-container" v-loading="loading">
<div class="mt30"/>
<div v-if="error">
......@@ -99,7 +100,7 @@
</div>
<matchInfo :form="matchData" v-if="menu[0].active==1"/>
<div v-if="menu[1].active==1">
<match-info-project-list :list="matchData.cptProjectList" />
<match-info-project-list :match-id="matchData.id" />
</div>
<match-schedule-list :match-data="matchData" v-if="menu[2].active==1"/>
<div v-if="menu[3].active==1">
......
......@@ -185,31 +185,48 @@
</div>
<matchInfo :form="matchData" v-if="menu[0].active==1"/>
<div v-if="menu[1].active==1">
<match-info-project-list :list="matchData.cptProjectList" :is-national="isNational"/>
<match-info-project-list :match-id="matchData.id" :is-national="isNational"/>
</div>
<match-schedule-list :match-data="matchData" v-if="menu[2].active==1"/>
<div v-if="menu[3].active==1">
<el-row :gutter="20" v-if="matchData.signType == '0'">
<el-col v-for="t in signDoneGroupList" :key="t.id" :span="8">
<div class="teamItem">
<el-avatar :size="60" :src="fillImgUrl(t.imgUrl||t.avatar)"/>
<span class="name">{{ t.name }}</span>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="pd20" v-else>
<el-col :span="24">
<el-table :data="signDoneGroupList">
<el-table-column prop="groupCode" :label="language == 0 ? '组别代码' :'EVENT CODE'" min-width="120"/>
<el-table-column prop="EVENT" :label="language == 0 ?'组别':'Group'" min-width="120"/>
<el-table-column prop="maleAthName" :label="language == 0 ?'男运动员':'man name'" min-width="150"/>
<el-table-column prop="femaleAthName" :label="language == 0 ?'女运动员':'woman name'" min-width="150"/>
<el-table-column prop="danceType" :label="language == 0 ?'舞种':'Division'" min-width="120"/>
<el-table-column prop="countryName" :label="language == 0 ?'国籍':'Representing'" min-width="130"/>
<el-table-column prop="groupName" :label="language == 0 ?'参赛队名称':'Team name'" min-width="150"/>
</el-table>
</el-col>
</el-row>
<div v-if="matchData.showPersonFlag=='1'">
<el-row :gutter="20" v-if="matchData.signType == '0'">
<el-col v-for="t in signDoneGroupList" :key="t.id" :span="8">
<div class="teamItem">
<el-avatar :size="60" :src="fillImgUrl(t.imgUrl||t.avatar)"/>
<span class="name">{{ t.name }}</span>
</div>
</el-col>
</el-row>
<el-row :gutter="20" class="pd20" v-else>
<el-col :span="24">
<div class="fr mb20">
<el-input size="small" v-model="queryGroupList.name" :prefix-icon="Search"
@change="getGroupListByCptId" clearable/>
</div>
<el-table :data="signDoneGroupList">
<el-table-column prop="groupCode" align="center" :label="language == 0 ? '组别代码' :'EVENT CODE'" min-width="120"/>
<el-table-column prop="group" :label="language == 0 ?'组别':'EVENT'" min-width="120"/>
<el-table-column prop="maleAthName" :label="language == 0 ?'男运动员':'man name'" min-width="150"/>
<el-table-column prop="femaleAthName" :label="language == 0 ?'女运动员':'woman name'" min-width="150"/>
<el-table-column prop="danceType" :label="language == 0 ?'舞种':'Division'" min-width="120"/>
<el-table-column prop="countryName" align="center" :label="language == 0 ?'国籍':'Representing'" min-width="130"/>
<el-table-column prop="groupName" align="center" :label="language == 0 ?'参赛队名称':'Team name'" min-width="150"/>
</el-table>
<PaginationPc
v-show="signDoneGroupListToTal>0"
:total="signDoneGroupListToTal"
v-model:page="queryGroupList.pageNum"
v-model:limit="queryGroupList.pageSize"
@pagination="getGroupListByCptId"
/>
</el-col>
</el-row>
</div>
<div v-else>
<el-empty :image="`/img/order_no.png`" :image-size="228" description=""/>
</div>
</div>
<div v-if="menu[4].active==1">
<!--成绩-->
......@@ -309,9 +326,9 @@ const {proxy} = getCurrentInstance()
import * as match from '@/apiPc/match'
import {toRefs} from '@vueuse/shared'
import {dayjs, ElMessage, ElMessageBox} from 'element-plus'
import useUserStore from "@/store/modules/user";
import {useStorage} from "@vueuse/core/index";
import useUserStore from "@/store/modules/user"
import {useStorage} from "@vueuse/core/index"
import {Search} from "@element-plus/icons-vue"
const user = useUserStore().user
const group = useUserStore().group
const data = reactive({
......@@ -333,6 +350,12 @@ const data = reactive({
{name: 'Event details', cn: '赛事详情', active: 0},
{name: 'Schedule', cn: '日程', active: 0}],
signDoneGroupList: [],
signDoneGroupListToTal:0,
queryGroupList:{
name:'',
pageSize:10,
pageNum:1
},
time: '',
startSign: '',
isNational:false
......@@ -343,10 +366,9 @@ const {
matchData,
matchId,
groupId,
activeName2,
menu,
menu1,
signDoneGroupList,
signDoneGroupList,signDoneGroupListToTal,queryGroupList,
time, startSign,isNational
} = toRefs(data)
const signTypePop = ref(false)
......@@ -370,7 +392,7 @@ function getMatchId() {
match.getMaList({topFlag: 1, status: 1}).then((res) => {
matchId.value = res.rows[0].id
getMatch(matchId.value)
getGroupListByCptId(matchId.value)
getGroupListByCptId()
})
}
......@@ -394,9 +416,10 @@ function getMatch(id) {
})
}
function getGroupListByCptId(id) {
match.getGroupListByCptId(id).then(res => {
signDoneGroupList.value = res.data
function getGroupListByCptId() {
match.getGroupListByCptId(matchId.value,queryGroupList.value).then(res => {
signDoneGroupList.value = res.rows
signDoneGroupListToTal.value = res.total
})
}
......@@ -552,7 +575,7 @@ function checkIsSign() {
).then(() => {
withDraw(res.data.orderId)
})
// return Promise.reject('rejected message')
return Promise.reject('rejected message')
break
case '2':
ElMessageBox.confirm(
......
......@@ -335,9 +335,6 @@ import MatchInfoRow from "@/viewsPc/match/components/matchInfo-row";
const {proxy} = getCurrentInstance()
const route = useRoute()
const router = useRouter()
const matchInfo = ref({})
const approved = ref(true)
const tableData = ref([])
const payType = ref('2')
const orderId = ref(route.query.orderId)
const matchId = ref()
......
......@@ -174,7 +174,8 @@ const data = reactive({
// address: { required: true, message: 'required', trigger: 'blur' }
},
coachOrLeaderFlag: '',
matchInfo:{}
matchInfo:{},
languageSource:''
})
const {
isNational,matchData,
......@@ -186,7 +187,7 @@ const {
cptId,
rules,rules_en,
regionsList,countryList,matchInfo,
coachOrLeaderFlag, accept,typeOptions
coachOrLeaderFlag, accept,typeOptions,languageSource
} = toRefs(data)
const uploadUrl = ref('/upload/upLoadToFileServer')
......@@ -196,6 +197,7 @@ onMounted(() => {
getGroupInfo()
signType.value = route.query.signType
isNational.value = route.query.isNational
languageSource.value = route.query.languageSource
getRegionsList()
getCountryList()
......@@ -325,7 +327,8 @@ function goNext() {
query: {
matchId: cptId.value,
groupId: groupId.value,
isNational: isNational.value
isNational: isNational.value,
languageSource:languageSource.value
}
})
}
......
......@@ -37,6 +37,9 @@
<el-form-item :label="language==0?'负责人姓名':'Contact Person'" prop="contactPerson">
<el-input v-model="form.contactPerson" :placeholder="language==0?'请输入联系人':''" />
</el-form-item>
<el-form-item :label="language==0?'联系电话':'Contact Phone'" required prop="contactTelno">
<el-input v-model="form.contactTelno" type="phone" :placeholder="language==0?'请输入内容':''"/>
</el-form-item>
<el-form-item :label="language==0?'邮箱':'Email'" required prop="contactEmail">
<el-input v-model="form.contactEmail" type="email" :placeholder="language==0?'请输入内容':''"/>
</el-form-item>
......@@ -148,13 +151,13 @@ const data = reactive({
regionsList: [],
countryList: [],
participantsInfoArr: [],
rankList: [],
accept: '.doc, .pdf, .docx, .zip',
rules: {
imgUrl: { required: true, message: '请上传', trigger: 'blur' },
name: { required: true, message: '请填写', trigger: 'blur' },
type: { required: true, message: '请选择', trigger: 'change' },
contactPerson: { required: true, message: '请填写内容', trigger: 'blur' },
contactTelno: { required: true, message: '请填写内容', trigger: 'blur' },
contactEmail: { required: true, message: '请填写内容', trigger: 'blur' },
abreviations: { required: true, message: '请填写内容', trigger: 'blur' },
address: { required: true, message: '请填写内容', trigger: 'blur' }
......@@ -169,11 +172,11 @@ const data = reactive({
address: { required: true, message: 'required', trigger: 'blur' }
},
coachOrLeaderFlag: '',
languageSource: '',
matchInfo:{}
})
const {
isRanks,matchData,
rankList,
matchData,
form,
groupId,
signType,
......@@ -181,7 +184,7 @@ const {
cptId,
rules,rules_en,
regionsList,countryList,matchInfo,
coachOrLeaderFlag, accept,typeOptions
coachOrLeaderFlag, accept,typeOptions,languageSource
} = toRefs(data)
const uploadUrl = ref('/upload/upLoadToFileServer')
......@@ -190,7 +193,7 @@ onMounted(() => {
// 获取团体信息
getGroupInfo()
signType.value = route.query.signType
languageSource.value = route.query.languageSource
getRegionsList()
getCountryList()
match.getMatchById({ id: cptId.value }).then(res => {
......@@ -249,11 +252,6 @@ function getGroupInfo() {
})
}
function getTeamList() {
return match.getMyTeamList(cptId.value, groupId.value).then(response => {
rankList.value = response.data
})
}
function goPrev() {
router.go(-1)
......@@ -315,7 +313,8 @@ function goNext() {
query: {
matchId: cptId.value,
groupId: groupId.value,
signType: signType.value
signType: signType.value,
languageSource:languageSource.value
}
})
}
......
......@@ -330,7 +330,7 @@ function bigNext(){
ElMessage.warning(language.value == 0 ? '请选择性别' : 'Please select your gender')
return
}
if(user.utype=='3'){
if(user&&user.utype=='3'){
let obj = {
card: form.value.card,
userId: user.userId,
......
......@@ -93,7 +93,7 @@
</el-icon>
<div v-if="language==0">
我已阅读并接受<a class="text-primary" @click.stop="showAgreeMent">《注册协议》</a>
<a class="text-primary" @click.stop="showAgreeMent">《个人信息保护政策》</a>
<a class="text-primary" @click.stop="showPolicy">《个人信息保护政策》</a>
</div>
<div v-else style="white-space: nowrap">
I have read and agree to the User
......
......@@ -76,15 +76,15 @@ export default defineConfig(({ mode, command }) => {
rewrite: (p) => p.replace(/^\/dev-api\/ztx-match/, '')
},
'/dev-api/ztx-webSite': {
// target: 'https://dance.itechtop.cn/stage-api',
target: 'http://192.168.1.118:8081/',
target: 'https://dance.itechtop.cn/stage-api',
// target: 'http://192.168.1.118:8081/',
changeOrigin: true,
rewrite: (p) => p.replace(/^\/dev-api\/ztx-webSite/, '')
},
'/dev-api': {
// target: 'http://192.168.1.118:8081/',
target: 'http://192.168.1.118:8081/',
// target: 'https://dance.itechtop.cn/stage-api',
target: 'https://wdsfwuxicenter.com/stage-api',
// target: 'https://wdsfwuxicenter.com/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!