跳绳比赛远程报名系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

270 lines
6.7 KiB

<template>
<view>
<view class="fixed-box">
<scroll-view scroll-x class="bg-white nav text-center">
<view class="cu-item" :class="index==TabCur?'bor':''" v-for="(item,index) in list" :key="index" @tap="tabSelect" :data-id="index">
{{ item }}
</view>
</scroll-view>
<view class="num-box">
<text v-if="TabCur === 0">已填 {{ competeCompanyCoachList.length }} / 2 人</text>
<text v-if="TabCur === 1">已填 {{ competeCompanyLeadersList.length }} / 3 人</text>
</view>
<button v-show="TabCur === 0 && cha1 !== 2" class="change" :class="cha === 1 ? 'delsure' : ''" @click="change1">
<text v-show="cha1 === 0">编辑</text>
<text v-show="cha1 === 1">确定</text>
</button>
<button v-show="TabCur === 1 && cha !== 2" class="change" :class="cha === 1 ? 'delsure' : ''" @click="change">
<text v-show="cha === 0">编辑</text>
<text v-show="cha === 1">确定</text>
</button>
</view>
<view class="content-box">
<view v-show="TabCur === 0">
<view class="infor-box" v-for="(item,index) in competeCompanyCoachList" :key="index">
<view class="click-box" @click="details(item.coachId)">
<view class="infor-content"><text>姓名:</text><text class="con">{{ item.coachName }}</text></view>
<view class="infor-content" v-if="item.gender === 0"><text>性别:</text><text class="con">女</text></view>
<view class="infor-content" v-else-if="item.gender === 1"><text>性别:</text><text class="con">男</text></view>
<view class="infor-content"><text>联系电话:</text><text class="con">{{ item.phone }}</text></view>
</view>
<icon v-show="cha1 === 1" type="icon" class="cuIcon-roundclosefill del" @click="del(item.coachId)"></icon>
</view>
</view>
<view v-show="TabCur === 1">
<view class="infor-box" v-for="(item,index) in competeCompanyLeadersList" :key="index">
<view class="click-box" @click="details1(item.guideId)">
<view class="infor-content"><text>姓名</text><text class="con">{{ item.guideName }}</text></view>
<view class="infor-content" v-if="item.gender === 0"><text>性别:</text><text class="con">女</text></view>
<view class="infor-content" v-else-if="item.gender === 1"><text>性别:</text><text class="con">男</text></view>
<view class="infor-content"><text>联系电话:</text><text class="con">{{ item.phone }}</text></view>
</view>
<icon v-show="cha === 1" type="icon" class="cuIcon-roundclosefill del" @click="del(item.guideId)"></icon>
</view>
</view>
</view>
<view v-show="TabCur === 0 && competeCompanyCoachList.length < 2" class="choice" @tap="jump">
+添加领队
</view>
<view v-show="TabCur === 1 && competeCompanyLeadersList.length < 3" class="choice" @tap="jump">
+添加教练
</view>
</view>
</template>
<script>
import { querycoach } from 'api/querycoach'
import { deletecoach } from 'api/deletecoach'
export default {
onLoad () {
this.query()
},
data() {
return {
list: ['领队', '教练'],
TabCur: 0,
competeCompanyCoachList: [],
competeCompanyLeadersList: [],
cha: 2,
cha1: 2
}
},
methods: {
tabSelect(e) {
this.TabCur = e.currentTarget.dataset.id - 0;
this.scrollLeft = (e.currentTarget.dataset.id - 1) * 60
console.log(this.TabCur,this.cha,this.cha1)
},
async del(num) {
console.log(num)
const that = this
uni.showModal({
title: '提示',
content: '确认要删除吗?',
success: async function (res) {
if (res.confirm) {
try{
const params = {
param: {
coachId: num
}
}
const data = await deletecoach(params)
uni.showToast({
title: '删除成功',
icon: 'success',
duration: 1500
})
that.$store.state.project.num++
that.query()
}catch(e){
//TODO handle the exception
}
}
}
})
},
change() {
const that = this
if(that.cha - 0 === 0) {
that.cha = 1
} else {
that.cha = 0
}
},
change1() {
const that = this
if(that.cha1 - 0 === 0) {
that.cha1 = 1
} else {
that.cha1 = 0
}
},
jump() {
const that = this
if (that.TabCur === 1) {
uni.navigateTo({
url:`../Coach/Coach`
})
} else if (that.TabCur === 0) {
uni.navigateTo({
url:`../Leader/Leader`
})
}
},
async query() {
const that = this
try{
const params = {
param: {
companyId: that.$store.state.project.companyId
}
}
const data = await querycoach(params)
if (data.competeCompanyCoachList[0]) {
that.competeCompanyCoachList = data.competeCompanyCoachList
that.cha1 = 0
} else {
that.cha1 = 2
that.competeCompanyCoachList = []
}
if (data.competeCompanyLeadersList[0]) {
that.competeCompanyLeadersList = data.competeCompanyLeadersList
that.cha = 0
} else {
that.cha = 2
that.competeCompanyLeadersList = []
}
}catch(e){
//TODO handle the exception
that.cha = 2
}
},
details(id) {
uni.navigateTo({
url:`../Leader/Leader?id=${id}`
})
},
details1(id) {
uni.navigateTo({
url:`../Coach/Coach?id=${id}`
})
}
},
watch:{
'$store.state.project.num'(val) {
const that = this
that.query()
}
}
}
</script>
<style lang="scss" scoped>
.nav{
display: flex !important;
}
.cu-item {
width: 325rpx;
}
.bor {
border-bottom: 4px solid #709AFC;
color: #709AFC;
}
.infor-box {
position: relative;
box-shadow: 0px 0px 5px $grey;
background: #fff;
margin-top: 10px;
width: 670rpx;
margin-left: 40rpx;
border-radius: 10px;
padding-left: 75rpx;
}
.infor-content {
// margin-top: 10px;
padding: 10px 0 10px 0;
// margin-bottom: 20px;
}
.con {
position: absolute;
left: 350rpx;
}
.choice {
width: 300rpx;
margin: 20px auto;
background: $white;
box-shadow: 0 0 5px $grey;
border-radius: 5px;
color: $gray;
text-align: center;
height: 40px;
line-height: 40px;
font-size: 14px;
}
.num-box {
position: relative;
width: auto;
text-align: left;
height: 30px;
line-height: 40px;
font-size: 14px;
color: $gray;
margin-left: 35rpx;
}
.del {
font-size: 22px;
position: absolute;
right: 10px;
z-index: 10;
top: 10px;
font-weight: 700;
color: $red;
}
.change {
position: absolute;
margin-top: -30px;
height: 30px;
line-height: 30px;
background: #eee;
font-size: 14px;
right: 40rpx;
}
.delsure {
background: $green;
color: $white;
}
.click-box {
margin-right: 50px;
}
.fixed-box {
position: fixed;
z-index: 100;
background-color: $white;
top: 44px;
width: 100%;
}
.content-box {
margin-top: 90px;
}
</style>