71d17dcf by zhangmeng

Merge branch 'dev' into devdev

2 parents f4ddf436 9cbbd2b9
......@@ -628,6 +628,13 @@ export function createWePay(data) {
data:data
})
}
export function createWePayPhone(data) {
return request({
url: `/league/signOrder/wxH5Pay`,
method: 'post',
data:data
})
}
export function createPalPay(data) {
return request({
url: `/league/signOrder/palPay`,
......
import {createPinia} from "pinia";
const store = createPinia()
export default store
......
......@@ -120,7 +120,12 @@ function addMember() {
id: 0,
groupId: groupId.value
}
if(language.value==1){
proxy.$refs['dialogAddCoachEn'].open(params)
} else {
proxy.$refs['dialogAddCoach'].open(params)
}
}
function importSportman() {
......@@ -156,6 +161,8 @@ function editCoach(row,title) {
}
if(row.label=='0'&&row.wdsfMin){
proxy.$refs['dialogAddWDSF'].open(params)
} else if(row.idcType == '0'){
proxy.$refs['dialogAddCoach'].open(params)
} else {
proxy.$refs['dialogAddCoachEn'].open(params)
}
......
......@@ -7,7 +7,7 @@
{{userName}}
</el-form-item>
<el-form-item :label="language==0?'所属国家/地区':'Country'" required>
<el-select filterable v-model="form.countryId">
<el-select filterable v-model="form.countryId" :disabled="form.type!='4'">
<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>
......
......@@ -33,7 +33,7 @@
<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}}
<p class="name">{{ c.realName }}
<el-icon @click.stop="editPerson(c.id)">
<Edit/>
</el-icon>
......@@ -60,7 +60,7 @@
<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}}
<p class="name">{{ c.realName }}
<el-icon @click.stop="editPerson(c.id)">
<Edit/>
</el-icon>
......@@ -85,7 +85,7 @@
<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}}
<p class="name">{{ c.realName }}
<el-icon @click.stop="editPerson(c.id)">
<Edit/>
</el-icon>
......@@ -110,7 +110,7 @@
<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}}
<p class="name">{{ c.realName }}
<el-icon @click.stop="editPerson(c.id)">
<Edit/>
</el-icon>
......@@ -135,7 +135,7 @@
<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}}
<p class="name">{{ c.realName }}
<el-icon @click.stop="editPerson(c.id)">
<Edit/>
</el-icon>
......@@ -160,7 +160,7 @@
<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}}
<p class="name">{{ c.realName }}
<el-icon @click.stop="editPerson(c.id)">
<Edit/>
</el-icon>
......
......@@ -18,52 +18,16 @@
</div>
<div class="panel-body">
<div class="chooseForm" style="display: flex;flex-wrap: wrap;">
<!-- <div @click="editPerson" class="mb20" style="width: 50%;text-align: center;">-->
<!-- <el-avatar fit="cover" v-if="form.picUrl" :size="60" :src="fillImgUrl(form.picUrl)"/>-->
<!-- <div v-else>-->
<!-- <el-avatar fit="cover" v-if="form.sex == 0" :size="60" src="/img/head1.png"/>-->
<!-- <el-avatar fit="cover" v-if="form.sex == 1" :size="60" src="/img/head0.png"/>-->
<!-- </div>-->
<!-- <div class="text-center mt10">-->
<!-- <span class="mName">{{ form.realName }}</span>-->
<!-- <el-icon size="20">-->
<!-- <Edit/>-->
<!-- </el-icon>-->
<!-- </div>-->
<!-- </div>-->
<!-- &lt;!&ndash;舞伴&ndash;&gt;-->
<!-- <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.danceMate.picUrl" :size="60" :src="fillImgUrl(form.danceMate.picUrl)"/>-->
<!-- <el-avatar fit="cover" v-else-if="form.danceMate.sex == 0" :size="60"-->
<!-- src="/img/head1.png"/>-->
<!-- <el-avatar fit="cover" v-else-if="form.danceMate.sex == 1" :size="60"-->
<!-- src="/img/head0.png"/>-->
<!-- <div class="text-center mt10" @click="editMate(form.danceMate)">-->
<!-- <span class="mName">{{ form.danceMate.realName }}</span>-->
<!-- <el-icon @click.stop="editMate(form.danceMate)" size="20">-->
<!-- <Edit/>-->
<!-- </el-icon>-->
<!--&lt;!&ndash; <el-icon @click.stop="delMate(form.danceMate)">&ndash;&gt;-->
<!--&lt;!&ndash; <Delete/>&ndash;&gt;-->
<!--&lt;!&ndash; </el-icon>&ndash;&gt;-->
<!-- </div>-->
<!-- </div>-->
<!-- </el-checkbox>-->
<!-- </el-checkbox-group>-->
<!-- </div>-->
<div style="width:50%;text-align: center;" v-for="s in choosedList">
<div>
<el-avatar fit="cover" v-if="s.picUrl" :size="60" :src="fillImgUrl(form.danceMate.picUrl)"/>
<el-avatar fit="cover" v-if="s.picUrl" :size="60" :src="fillImgUrl(s.picUrl)"/>
<el-avatar fit="cover" v-else-if="s.sex == 0" :size="60"
src="/img/head1.png"/>
<el-avatar fit="cover" v-else-if="s.sex == 1" :size="60"
src="/img/head0.png"/>
<div class="text-center mt10" @click="editMate(s)">
<span class="mName">{{ s.realName }}</span>
<el-icon @click.stop="editMate(s)" size="20">
<el-icon size="20">
<Edit/>
</el-icon>
</div>
......@@ -241,7 +205,6 @@ const data = reactive({
teamList: [],
extraform: [],
groupId: 0,
signType: '',
coachOrLeaderFlag: null,
noPhotoCanSign: null,
showResult: false,
......@@ -270,7 +233,6 @@ const {
choosedList,isNational,
extraform,
groupId,
signType,
coachOrLeaderFlag,
noPhotoCanSign,
projectIds,
......@@ -292,7 +254,6 @@ onMounted(() => {
if (useUserStore().user) {
userId.value = useUserStore().user.userId
}
signType.value = route.query.signType || null
getSignInfoList()
getMatch(matchId.value)
getMyInfo()
......@@ -340,7 +301,7 @@ function addAccompany() {
function changeMeDone(mateId) {
console.log(mateId)
getMyInfo()
// getMyInfo()
getProjectList()
}
......@@ -475,6 +436,9 @@ function getChoosed(list) {
getProjectList()
}
function getProjectList() {
if(choosedList.value.length==0){
return
}
let arr = []
for(var l of choosedList.value){
arr.push(l.id)
......@@ -596,10 +560,10 @@ function removeThis(id) {
}
function switchPerson(){
console.log( choosedList.value)
const params = {
title: language.value == 0 ? '选择运动员' : 'Participating athletes',
matchId: matchId.value,
signType: signType.value,
noPhotoCanSign: noPhotoCanSign.value,
coachOrLeaderFlag: coachOrLeaderFlag.value,
choosedList: choosedList.value,
......
......@@ -24,7 +24,7 @@
<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">
<el-option v-for="c in athletesList" :key="c.id" :label="c.realName" :value="c.id">
<div class="flexOption">
{{ c.realName }}
<img v-if="c.sex=='0'" src="@/assets/img/female.png"/>
......@@ -602,9 +602,10 @@ function removeCurproject() {
projectIds.value = _.without(projectIds.value, currProjectId.value)
}
function checkTwo(a,b) {
match.checkMate({per1Id:a,per2Id:b,cptId:matchId.value}).then(res=>{
match.checkMate({per1Id:a.id,per2Id:b.id,cptId:matchId.value}).then(res=>{
if(!res.data){
ElMessage.warning(language.value == 0 ? '他们不是固定组合':'They\'re not a couple')
// ElMessage.warning(language.value == 0 ? '他们不是固定组合':'They\'re not a couple')
ElMessage.warning(language.value == 0 ? `${a.realName} 已经和其他人组成舞伴,无法报名:请重新选择`:`${a.realName} has already formed a dancer with another person, cannot sign up: please select again`)
}
})
}
......@@ -614,7 +615,7 @@ watch(choosedchoosed, (newVal, oldVal) => {
//如果一男一女,判断是否舞伴
if(choosed2List.value.length==2){
if(choosed2List.value[0].sex!=choosed2List.value[1].sex){
checkTwo(newVal[0],newVal[1])
checkTwo(choosed2List.value[0],choosed2List.value[1])
}
}
}
......
......@@ -319,10 +319,10 @@ function submitForm() {
return
}
}
// if(!form.value.passportUrl){
// ElMessage.warning(language.value == 0 ? '请上传有效证件' :'Please upload your passport file')
// return
// }
if(form.value.idcType != 0&&!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)
}
......
......@@ -40,8 +40,9 @@
<!-- <el-table-column type="selection" :label="language==0?'选择':'Selection'" :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"/>
<el-table-column align="center" v-if="!isNational" :label="language==0?'姓名':'Real Name'" prop="realName" min-width="100"/>
<el-table-column align="center" v-if="isNational" :label="language==0?'姓氏':'Surname'" prop="xing" min-width="100"/>
<el-table-column align="center" v-if="isNational" :label="language==0?'名':'Name'" prop="ming" min-width="100"/>
<el-table-column align="center" v-if="isNational" :label="language==0?'代表':'Representing'" prop="representing" min-width="120"/>
<el-table-column align="center" v-if="!isNational" :label="language==0?'所属国家/地区':'Nationality'" prop="countryName" min-width="110"/>
<el-table-column :label="language==0?'性别':'Gender'" prop="sexStr"/>
......
......@@ -214,7 +214,7 @@ function handleSelectionChange(val) {
//判断是否队友
if(val.length==2){
if(val[0].sex!=val[1].sex){
checkTwo(val[0].id,val[1].id)
checkTwo(val[0],val[1])
}
}
if(val.length>0){
......@@ -232,9 +232,9 @@ function handleSelectionChange(val) {
}
}
function checkTwo(a,b) {
match.checkMate({per1Id:a,per2Id:b,cptId:matchId}).then(res=>{
match.checkMate({per1Id:a.id,per2Id:b.id,cptId:matchId}).then(res=>{
if(!res.data){
ElMessage.warning(language.value == 0 ? '他们不是固定组合':'They\'re not a couple')
ElMessage.warning(language.value == 0 ? `${a.realName} 已经和其他人组成舞伴,无法报名:请重新选择`:`${a.realName} has already formed a dancer with another person, cannot sign up: please select again`)
proxy.$refs['allSportmenTable'].clearSelection()
}
})
......
......@@ -8,7 +8,7 @@
</el-col>
<el-col :span="20">
<div class="item" v-if="groupInfo.type=='4'"><label>{{ language==0?'代表队':'Represent' }}</label>{{ groupInfo.name?.substring(0,3) }}</div>
<div class="item" v-if="groupInfo.type!='4'"><label>{{ language==0?'团体名称':'Team name' }}</label>{{ groupInfo.name?.substring(0,3) }}</div>
<div class="item" v-if="groupInfo.type!='4'"><label>{{ language==0?'团体名称':'Team name' }}</label>{{ groupInfo.name }}</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>
......@@ -39,7 +39,7 @@ import {useStorage} from "@vueuse/core/index";
const language= useStorage('language',0)
const props = defineProps({
groupId: {
type: Object,
type: String,
required: false
},
matchId: {
......
......@@ -2,6 +2,7 @@
<!-- 人员表格-->
<el-table :data="tableData" class="mt20">
<el-table-column type="index" :label="language==0?'序号':'Index'" width="80" align="center"/>
<el-table-column :label="language==0?'姓名':'RealName'" prop="realName" min-width="140"/>
<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="language==0?'所属国家/地区':'Nationality'" prop="countryName" min-width="120"/>
......
......@@ -4,8 +4,9 @@
</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?'姓氏':'Surname'" prop="personInfo.xing" min-width="100"/>
<el-table-column :label="language==0?'名':'Name'" prop="personInfo.ming" min-width="100"/>
<el-table-column v-if="!isNational" :label="language==0?'姓名':'Real Name'" prop="personInfo.realName" min-width="100"/>
<el-table-column v-if="isNational" :label="language==0?'姓氏':'Surname'" prop="personInfo.xing" min-width="100"/>
<el-table-column v-if="isNational" :label="language==0?'名':'Name'" prop="personInfo.ming" min-width="100"/>
<el-table-column :label="language==0?'所属国家/地区':'Country'" min-width="120">
<template #default="scope">
<span v-if="scope.row.personInfo.countryName">{{scope.row.personInfo.countryName}}</span>
......
......@@ -190,19 +190,25 @@
<match-schedule-list :match-data="matchData" v-if="menu[2].active==1"/>
<div v-if="menu[3].active==1">
<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-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">
<el-col :span="24">
<div class="fr mb20">
<el-input size="small" v-model="queryGroupList.name" :prefix-icon="Search"
<div class="flex">
<el-input class="mr10" size="small" v-model="queryGroupList.groupName" :prefix-icon="Search"
:placeholder="language == 0 ? '请输入参赛队名称' :'Please enter the Team name'"
@change="getGroupListByCptId" clearable/>
<el-input size="small" v-model="queryGroupList.athleteName" :prefix-icon="Search"
:placeholder=" language == 0 ? '请输入运动员查询' :'Please enter the athlete name'"
@change="getGroupListByCptId" clearable/>
</div>
</div>
<el-table :data="signDoneGroupList">
<el-table-column prop="groupCode" align="center" :label="language == 0 ? '组别代码' :'EVENT CODE'" min-width="120"/>
......
......@@ -361,6 +361,7 @@ const upForm = ref({
})
const errorBox = ref(false)
const hideconfirmbtn = ref(false)
const isphone = ref(false)
const insuranceFeeTotal = ref(0)
const serviceFeeTotal = ref(0)
const zuQuery = ref({
......@@ -382,6 +383,14 @@ onMounted(() => {
language.value = 1
}
}
var is_mobile = navigator.userAgent.toLowerCase().match(/(ipod|ipad|iphone|android|coolpad|mmp|smartphone|midp|wap|xoom|symbian|j2me|blackberry|wince)/i) != null;
console.log(is_mobile)
if (is_mobile) {
isphone.value = true
} else {
isphone.value = false
}
})
if (useUserStore().user) {
isLogin.value = true
......@@ -453,11 +462,19 @@ function changePaytype() {
}
function goPay(){
if(payType.value=='2' && form.value.payTypeArr.indexOf('2')>-1){
if(isphone.value){
//拉起移动支付
match.createWePayPhone({orderId:orderId.value}).then(res=>{
hideconfirmbtn.value = true
window.location.href = res.data
})
} else {
match.createWePay({orderId:orderId.value}).then(res=>{
wePayCodeUrl.value = res.data
hideconfirmbtn.value = true
startforGetData()
})
}
} else if(payType.value=='2' && form.value.payTypeArr.indexOf('2')==-1){
ElMessage.warning(language.value == 0 ? '请选择支付方式' : 'Please select payment method')
return
......
......@@ -23,8 +23,9 @@
</el-form-item>
</el-col>
<el-col :lg="10">
<el-form-item :label="language==0?'代表国家/地区':'Representing'" required>
<el-select filterable v-model="form.countryId" @change="changeCountryId">
<el-form-item :label="language==0?'代表国家/地区':'Representing'">
<el-select filterable v-model="form.countryId" @change="changeCountryId"
:disabled="form.type!='4'">
<!-- <el-option v-for="item in countryList" :key="item.id" :label="language==0?item.name:item.enName" :value="item.id"/>-->
<el-option v-for="item in countryList" :key="item.id" :label="item.noc||item.enName" :value="item.id"/>
</el-select>
......@@ -195,7 +196,6 @@ onMounted(() => {
console.log(cptId.value,route.query,route.params)
// 获取团体信息
getGroupInfo()
signType.value = route.query.signType
isNational.value = route.query.isNational
languageSource.value = route.query.languageSource
......
......@@ -30,7 +30,7 @@
<el-input v-model="form.name" :placeholder="language==0?'请输入团体名称':''" />
</el-form-item>
<el-form-item :label="language==0?'所属国家/地区':'Country'" required>
<el-select filterable v-model="form.countryId">
<el-select filterable v-model="form.countryId" :disabled="form.type!='4'">
<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>
......@@ -50,9 +50,9 @@
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item :label="language==0?'团体类型':'Group type'" prop="type">
<el-select :disabled="language==1" v-model="form.type" :placeholder="typeOptions[language].selectPlaceholder" style="width: 100%;">
<el-select :disabled="form.type=='4'" v-model="form.type" :placeholder="typeOptions[language].selectPlaceholder" style="width: 100%;">
<el-option v-for="(o,index) in typeOptions[language].options" :label="o.text"
:key="index" :value="o.value" />
:key="index" :value="o.value" :disabled="o.disabled"/>
</el-select>
</el-form-item>
<el-form-item :label="language==0?'详细地址':'Detailed Address'" prop="address">
......@@ -131,7 +131,7 @@ const data = reactive({
{value:'1',text:'专业舞蹈学校'},
{value:'2',text:'培训机构/俱乐部'},
{value:'3',text:'地方协会'},
{value:'4',text:'国家协会'},
{value:'4',text:'国家协会',disabled:true},
]
},
1: {
......
......@@ -35,7 +35,7 @@
</div>
</el-form-item>
<el-form-item :label="language==0?'代表国家/地区':'Representing'" required prop="countryId">
<el-select filterable v-model="form.countryId">
<el-select filterable v-model="form.countryId" :disabled="language==0&&form.is=='0'">
<!-- <el-option v-for="item in countryList" :key="item.id" :label="language==0?item.name:item.enName" :value="item.id"/>-->
<el-option v-for="item in countryList" :key="item.id" :label="item.noc||item.enName" :value="item.id"/>
</el-select>
......@@ -321,6 +321,9 @@ const changeIs = (e) => {
if(e == 1){
form.value.type = '4'
} else {
if(language.value == '0'){
form.value.countryId = 240
}
form.value.type = ''
}
}
......
......@@ -82,8 +82,8 @@ export default defineConfig(({ mode, command }) => {
rewrite: (p) => p.replace(/^\/dev-api\/ztx-webSite/, '')
},
'/dev-api': {
target: 'http://192.168.1.118:8081/',
// target: 'https://dance.itechtop.cn/stage-api',
// target: 'http://192.168.1.131:8081/',
target: 'https://dance.itechtop.cn/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!