|
|
|
@ -3,61 +3,42 @@ |
|
|
|
|
<div class="search"> |
|
|
|
|
<h6>赛事竞技,精彩纷呈</h6> |
|
|
|
|
<div class="input"> |
|
|
|
|
<img src="@/assets/img/search.png" |
|
|
|
|
alt=""> |
|
|
|
|
<input type="text" |
|
|
|
|
placeholder="请输入关键词" |
|
|
|
|
v-model="keyword"> |
|
|
|
|
<img src="@/assets/img/search.png" alt=""> |
|
|
|
|
<input type="text" placeholder="请输入关键词" v-model="keyword"> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<!-- 课程筛选 --> |
|
|
|
|
<div class="filter"> |
|
|
|
|
<div class="center-wrap" |
|
|
|
|
style="padding: 0;margin: 0 auto;"> |
|
|
|
|
<div class="center-wrap" style="padding: 0;margin: 0 auto;"> |
|
|
|
|
<dl> |
|
|
|
|
<dt>比赛范围:</dt> |
|
|
|
|
<dd v-for="(item, i) in scopes" |
|
|
|
|
:key="i" |
|
|
|
|
:class="{active: form.competitionScope == item.id}" |
|
|
|
|
@click="changeScope(item.id)">{{ item.name }}</dd> |
|
|
|
|
<dd v-for="(item, i) in scopes" :key="i" :class="{ active: form.competitionScope == item.id }" |
|
|
|
|
@click="changeScope(item.id)">{{ item.name }}</dd> |
|
|
|
|
<template v-if="form.competitionScope === 2"> |
|
|
|
|
<div class="select-wrap"> |
|
|
|
|
<span class="label">省份</span> |
|
|
|
|
<el-select size="small" |
|
|
|
|
v-model="form.provinceId" |
|
|
|
|
clearable |
|
|
|
|
@change="getCity"> |
|
|
|
|
<el-option label="请选择" |
|
|
|
|
value=""></el-option> |
|
|
|
|
<el-option v-for="(item,index) in provinces" |
|
|
|
|
:key="index" |
|
|
|
|
:label="item.provinceName" |
|
|
|
|
:value="item.provinceId"></el-option> |
|
|
|
|
<el-select size="small" v-model="form.provinceId" clearable @change="getCity"> |
|
|
|
|
<el-option label="请选择" value=""></el-option> |
|
|
|
|
<el-option v-for="(item, index) in provinces" :key="index" :label="item.provinceName" |
|
|
|
|
:value="item.provinceId"></el-option> |
|
|
|
|
</el-select> |
|
|
|
|
</div> |
|
|
|
|
<div class="select-wrap"> |
|
|
|
|
<span class="label">城市</span> |
|
|
|
|
<el-select size="small" |
|
|
|
|
v-model="form.cityId" |
|
|
|
|
clearable |
|
|
|
|
@change="initData"> |
|
|
|
|
<el-option label="请选择" |
|
|
|
|
value=""></el-option> |
|
|
|
|
<el-option v-for="(item,index) in cities" |
|
|
|
|
:key="index" |
|
|
|
|
:label="item.cityName" |
|
|
|
|
:value="item.cityId"></el-option> |
|
|
|
|
<el-select size="small" v-model="form.cityId" clearable @change="initData"> |
|
|
|
|
<el-option label="请选择" value=""></el-option> |
|
|
|
|
<el-option v-for="(item, index) in cities" :key="index" :label="item.cityName" |
|
|
|
|
:value="item.cityId"></el-option> |
|
|
|
|
</el-select> |
|
|
|
|
</div> |
|
|
|
|
</template> |
|
|
|
|
</dl> |
|
|
|
|
<dl> |
|
|
|
|
<dt>筛选排序:</dt> |
|
|
|
|
<dd v-for="(item, i) in sorts" |
|
|
|
|
:key="i" |
|
|
|
|
:class="{active: form.sequence == item.id}" |
|
|
|
|
@click="changeSort(item.id)">{{ item.name }}</dd> |
|
|
|
|
<dd v-for="(item, i) in sorts" :key="i" :class="{ active: form.sequence == item.id }" |
|
|
|
|
@click="changeSort(item.id)">{{ |
|
|
|
|
item.name }}</dd> |
|
|
|
|
</dl> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
@ -68,64 +49,60 @@ |
|
|
|
|
<div class="list"> |
|
|
|
|
<template v-if="listData.length"> |
|
|
|
|
<ul> |
|
|
|
|
<li v-for="(item,index) in listData" |
|
|
|
|
:key="index" |
|
|
|
|
:id="item.id" |
|
|
|
|
@click="toDetail(item)"> |
|
|
|
|
<li v-for="(item, index) in listData" :key="index" :id="item.id" @click="toDetail(item)"> |
|
|
|
|
<div class="left"> |
|
|
|
|
<el-button v-if="item.status === 2 || item.curStage" |
|
|
|
|
:class="['stage-label', {playing: item.curStage}]" |
|
|
|
|
type="primary">{{ item.status === 2 ? '报名中' : item.curStage ? '竞赛中' : '' }}</el-button> |
|
|
|
|
:class="['stage-label', { playing: item.curStage }]" type="primary">{{ item.status === 2 ? '报名中' : |
|
|
|
|
item.curStage ? '竞赛中' : '' }}</el-button> |
|
|
|
|
<div class="cover"> |
|
|
|
|
<img :src="item.coverUrl || 'https://huoran.oss-cn-shenzhen.aliyuncs.com/20220623/png/1539857403162943488.png'" |
|
|
|
|
alt=""> |
|
|
|
|
<img |
|
|
|
|
:src="item.coverUrl || 'https://huoran.oss-cn-shenzhen.aliyuncs.com/20220623/png/1539857403162943488.png'" |
|
|
|
|
alt=""> |
|
|
|
|
</div> |
|
|
|
|
<div class="info"> |
|
|
|
|
<div class="title">{{ item.competitionName }}</div> |
|
|
|
|
<div class="metas"> |
|
|
|
|
<div :class="{'flex-top': item.sponsor.split(',').length > 1}"> |
|
|
|
|
<div class="meta" :class="{ 'flex-top': item.sponsor.split(',').length > 1 }"> |
|
|
|
|
<span class="label">主办方: </span> |
|
|
|
|
<span class="val">{{ item.sponsor }}</span> |
|
|
|
|
</div> |
|
|
|
|
<div> |
|
|
|
|
<span class="label">报名时间:</span><span class="val">{{ item.signUpStartTime}} ~ {{ item.signUpEndTime }}</span> |
|
|
|
|
<div class="meta"> |
|
|
|
|
<span class="label">报名时间:</span><span class="val">{{ item.signUpStartTime }} ~ {{ |
|
|
|
|
item.signUpEndTime }}</span> |
|
|
|
|
</div> |
|
|
|
|
<div> |
|
|
|
|
<span class="label">比赛时间:</span><span class="val">{{ item.playStartTime}} ~ {{ item.playEndTime }}</span> |
|
|
|
|
<div class="meta"> |
|
|
|
|
<span class="label">比赛时间:</span><span class="val">{{ item.playStartTime }} ~ {{ |
|
|
|
|
item.playEndTime }}</span> |
|
|
|
|
</div> |
|
|
|
|
<div :title="item.locations || item.range"> |
|
|
|
|
<div class="meta" :title="item.locations || item.range"> |
|
|
|
|
<span class="label">比赛范围:</span><span class="val">{{ item.locations || item.range }}</span> |
|
|
|
|
</div> |
|
|
|
|
<div> |
|
|
|
|
<span class="label">比赛类型:</span><span class="val">{{ item.competitionType ? '团体赛' : '个人赛' }}</span> |
|
|
|
|
<div class="meta"> |
|
|
|
|
<span class="label">比赛类型:</span><span class="val">{{ item.competitionType ? '团体赛' : '个人赛' |
|
|
|
|
}}</span> |
|
|
|
|
</div> |
|
|
|
|
<div v-if="item.curStage"> |
|
|
|
|
<div v-if="item.curStage" class="meta"> |
|
|
|
|
<span class="label">当前阶段:</span><span class="val">{{ item.curStage.stageName }}</span> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
<div class="right"> |
|
|
|
|
<el-dropdown v-if="item.playingStages && item.playingStages.length > 1" |
|
|
|
|
class="m-l-10" |
|
|
|
|
@command="e => chooseStage(e, item)"> |
|
|
|
|
<el-button type="primary" |
|
|
|
|
style="background-color: #f96d6d;border: 0;"> |
|
|
|
|
<el-dropdown v-if="item.playingStages && item.playingStages.length > 1" class="m-l-10" |
|
|
|
|
@command="e => chooseStage(e, item)"> |
|
|
|
|
<el-button type="primary" style="background-color: #f96d6d;border: 0;"> |
|
|
|
|
选择竞赛<i class="el-icon-arrow-down el-icon--right"></i> |
|
|
|
|
</el-button> |
|
|
|
|
<el-dropdown-menu slot="dropdown"> |
|
|
|
|
<el-dropdown-item v-for="(stage, i) in item.playingStages" |
|
|
|
|
:key="i" |
|
|
|
|
:command="stage">进入{{ stage.stageName }}</el-dropdown-item> |
|
|
|
|
<el-dropdown-item v-for="(stage, i) in item.playingStages" :key="i" :command="stage">进入{{ |
|
|
|
|
stage.stageName }}</el-dropdown-item> |
|
|
|
|
</el-dropdown-menu> |
|
|
|
|
</el-dropdown> |
|
|
|
|
<p class="status" |
|
|
|
|
v-else-if="item.status != 4 || (item.status == 4 && item.curStage)" |
|
|
|
|
:class="{wait: item.status == 0,signing: item.status == 2,signed: item.status == 1,playing: item.status == 4 && item.curStage,finish: item.status == 3 || item.status == 5}" |
|
|
|
|
:title="item.status == 4 ? item.stageName : statusList[item.status]" |
|
|
|
|
@click.stop="signup(item)">{{ item.status == 4 ? item.stageName : statusList[item.status] }}</p> |
|
|
|
|
<p class="end-text" |
|
|
|
|
v-if="item.end"> |
|
|
|
|
<p class="status" v-else-if="item.status != 4 || (item.status == 4 && item.curStage)" |
|
|
|
|
:class="{ wait: item.status == 0, signing: item.status == 2, signed: item.status == 1, playing: item.status == 4 && item.curStage, finish: item.status == 3 || item.status == 5 }" |
|
|
|
|
:title="item.status == 4 ? item.stageName : statusList[item.status]" @click.stop="signup(item)">{{ |
|
|
|
|
item.status == 4 ? item.stageName : statusList[item.status] }}</p> |
|
|
|
|
<p class="end-text" v-if="item.end"> |
|
|
|
|
距离{{ item.status == 4 ? item.endText : endList[item.status] }}还有 |
|
|
|
|
<em>{{ item.end }}</em> |
|
|
|
|
</p> |
|
|
|
@ -133,19 +110,16 @@ |
|
|
|
|
</li> |
|
|
|
|
</ul> |
|
|
|
|
<div class="pagination"> |
|
|
|
|
<el-pagination background |
|
|
|
|
layout="total, prev, pager, next" |
|
|
|
|
:total="totals" |
|
|
|
|
@current-change="handleCurrentChange" |
|
|
|
|
:current-page="page"> |
|
|
|
|
<el-pagination background layout="total, prev, pager, next" |
|
|
|
|
:pager-count="$store.state.layout.isMobile ? 3 : 7" :total="totals" |
|
|
|
|
@current-change="handleCurrentChange" :current-page="page"> |
|
|
|
|
</el-pagination> |
|
|
|
|
</div> |
|
|
|
|
</template> |
|
|
|
|
<template v-else> |
|
|
|
|
<div class="empty"> |
|
|
|
|
<div> |
|
|
|
|
<img src="@/assets/img/none.png" |
|
|
|
|
alt=""> |
|
|
|
|
<img src="@/assets/img/none.png" alt=""> |
|
|
|
|
<p>暂无赛事</p> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
@ -155,95 +129,56 @@ |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<el-dialog title="报名" |
|
|
|
|
:visible.sync="peopleSignupVisible" |
|
|
|
|
:close-on-click-modal="false" |
|
|
|
|
width="300px"> |
|
|
|
|
<el-dialog title="报名" :visible.sync="peopleSignupVisible" :close-on-click-modal="false" width="300px"> |
|
|
|
|
<el-form class="dia-form"> |
|
|
|
|
<el-form-item> |
|
|
|
|
<el-input placeholder="请输入4位数大赛邀请码" |
|
|
|
|
maxlength="4" |
|
|
|
|
v-model="peopleSignupForm.registrationInvitationCode"></el-input> |
|
|
|
|
<el-input placeholder="请输入4位数大赛邀请码" maxlength="4" |
|
|
|
|
v-model="peopleSignupForm.registrationInvitationCode"></el-input> |
|
|
|
|
</el-form-item> |
|
|
|
|
</el-form> |
|
|
|
|
<span slot="footer" |
|
|
|
|
class="dialog-footer"> |
|
|
|
|
<el-button size="small" |
|
|
|
|
type="primary" |
|
|
|
|
@click="peopleSignupSubmit">报名</el-button> |
|
|
|
|
<el-button size="small" |
|
|
|
|
@click="peopleSignupVisible = false">取消</el-button> |
|
|
|
|
<span slot="footer" class="dialog-footer"> |
|
|
|
|
<el-button size="small" type="primary" @click="peopleSignupSubmit">报名</el-button> |
|
|
|
|
<el-button size="small" @click="peopleSignupVisible = false">取消</el-button> |
|
|
|
|
</span> |
|
|
|
|
</el-dialog> |
|
|
|
|
<el-dialog title="报名" |
|
|
|
|
:visible.sync="enterVisible" |
|
|
|
|
:close-on-click-modal="false" |
|
|
|
|
width="300px"> |
|
|
|
|
<el-dialog title="报名" :visible.sync="enterVisible" :close-on-click-modal="false" width="300px"> |
|
|
|
|
<el-form class="dia-form"> |
|
|
|
|
<p style="margin-bottom: 5px">请选择要加入的团队</p> |
|
|
|
|
<el-form-item> |
|
|
|
|
<el-select class="w-100" |
|
|
|
|
v-model="enterForm.teamId" |
|
|
|
|
filterable> |
|
|
|
|
<el-option v-for="(item, i) in teams" |
|
|
|
|
:key="i" |
|
|
|
|
:label="item.teamName" |
|
|
|
|
:value="item.teamId"></el-option> |
|
|
|
|
<el-select class="w-100" v-model="enterForm.teamId" filterable> |
|
|
|
|
<el-option v-for="(item, i) in teams" :key="i" :label="item.teamName" :value="item.teamId"></el-option> |
|
|
|
|
</el-select> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item> |
|
|
|
|
<el-input placeholder="请输入6位数团队邀请码" |
|
|
|
|
maxlength="6" |
|
|
|
|
v-model="enterForm.invitationCode"></el-input> |
|
|
|
|
<el-input placeholder="请输入6位数团队邀请码" maxlength="6" v-model="enterForm.invitationCode"></el-input> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item v-if="curItem.isNeedCode"> |
|
|
|
|
<el-input placeholder="请输入4位数大赛邀请码" |
|
|
|
|
maxlength="4" |
|
|
|
|
v-model="enterForm.registrationInvitationCode"></el-input> |
|
|
|
|
<el-input placeholder="请输入4位数大赛邀请码" maxlength="4" v-model="enterForm.registrationInvitationCode"></el-input> |
|
|
|
|
</el-form-item> |
|
|
|
|
<p class="tips"> |
|
|
|
|
查找不到团队?点击 <el-link :underline="false" |
|
|
|
|
type="primary" |
|
|
|
|
@click="toTeam">创建团队</el-link> |
|
|
|
|
查找不到团队?点击 <el-link :underline="false" type="primary" @click="toTeam">创建团队</el-link> |
|
|
|
|
</p> |
|
|
|
|
</el-form> |
|
|
|
|
<span slot="footer" |
|
|
|
|
class="dialog-footer"> |
|
|
|
|
<el-button size="small" |
|
|
|
|
type="primary" |
|
|
|
|
@click="enterSubmit">报名</el-button> |
|
|
|
|
<el-button size="small" |
|
|
|
|
@click="enterVisible = false">取消</el-button> |
|
|
|
|
<span slot="footer" class="dialog-footer"> |
|
|
|
|
<el-button size="small" type="primary" @click="enterSubmit">报名</el-button> |
|
|
|
|
<el-button size="small" @click="enterVisible = false">取消</el-button> |
|
|
|
|
</span> |
|
|
|
|
</el-dialog> |
|
|
|
|
<el-dialog title="创建团队" |
|
|
|
|
:visible.sync="teamVisible" |
|
|
|
|
:close-on-click-modal="false" |
|
|
|
|
width="300px"> |
|
|
|
|
<el-dialog title="创建团队" :visible.sync="teamVisible" :close-on-click-modal="false" width="300px"> |
|
|
|
|
<el-form class="dia-form"> |
|
|
|
|
<el-form-item> |
|
|
|
|
<el-input placeholder="请输入团队名称" |
|
|
|
|
maxlength="10" |
|
|
|
|
v-model="teamForm.teamName"></el-input> |
|
|
|
|
<el-input placeholder="请输入团队名称" maxlength="10" v-model="teamForm.teamName"></el-input> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item> |
|
|
|
|
<el-input placeholder="请输入6位数团队邀请码" |
|
|
|
|
maxlength="6" |
|
|
|
|
v-model="teamForm.invitationCode"></el-input> |
|
|
|
|
<el-input placeholder="请输入6位数团队邀请码" maxlength="6" v-model="teamForm.invitationCode"></el-input> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item v-if="curItem.isNeedCode"> |
|
|
|
|
<el-input placeholder="请输入4位数大赛邀请码" |
|
|
|
|
maxlength="4" |
|
|
|
|
v-model="teamForm.registrationInvitationCode"></el-input> |
|
|
|
|
<el-input placeholder="请输入4位数大赛邀请码" maxlength="4" v-model="teamForm.registrationInvitationCode"></el-input> |
|
|
|
|
</el-form-item> |
|
|
|
|
</el-form> |
|
|
|
|
<span slot="footer" |
|
|
|
|
class="dialog-footer"> |
|
|
|
|
<el-button size="small" |
|
|
|
|
type="primary" |
|
|
|
|
@click="teamSubmit">创建并报名</el-button> |
|
|
|
|
<el-button size="small" |
|
|
|
|
@click="teamVisible = false">取消</el-button> |
|
|
|
|
<span slot="footer" class="dialog-footer"> |
|
|
|
|
<el-button size="small" type="primary" @click="teamSubmit">创建并报名</el-button> |
|
|
|
|
<el-button size="small" @click="teamVisible = false">取消</el-button> |
|
|
|
|
</span> |
|
|
|
|
</el-dialog> |
|
|
|
|
</div> |
|
|
|
@ -748,282 +683,364 @@ export default { |
|
|
|
|
|
|
|
|
|
<style lang="scss" scoped> |
|
|
|
|
.search { |
|
|
|
|
position: relative; |
|
|
|
|
padding: 100px 0 130px; |
|
|
|
|
text-align: center; |
|
|
|
|
background: url(../../../assets/img/match-bg4.png) (27px 10px) / auto no-repeat, |
|
|
|
|
url(../../../assets/img/match-bg5.png) (98% 20px) / auto no-repeat, url(../../../assets/img/match-bg3.png) 0 0/100% 100% no-repeat; |
|
|
|
|
|
|
|
|
|
h6 { |
|
|
|
|
margin-bottom: 25px; |
|
|
|
|
font-size: 26px; |
|
|
|
|
color: #fff; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.input { |
|
|
|
|
position: relative; |
|
|
|
|
padding: 100px 0 130px; |
|
|
|
|
text-align: center; |
|
|
|
|
background: url(../../../assets/img/match-bg4.png) (27px 10px) / auto no-repeat, |
|
|
|
|
url(../../../assets/img/match-bg5.png) (98% 20px) / auto no-repeat, url(../../../assets/img/match-bg3.png) 0 0/100% 100% no-repeat; |
|
|
|
|
h6 { |
|
|
|
|
margin-bottom: 25px; |
|
|
|
|
font-size: 26px; |
|
|
|
|
color: #fff; |
|
|
|
|
} |
|
|
|
|
.input { |
|
|
|
|
position: relative; |
|
|
|
|
width: 700px; |
|
|
|
|
margin: 0 auto; |
|
|
|
|
} |
|
|
|
|
img { |
|
|
|
|
position: absolute; |
|
|
|
|
top: 19px; |
|
|
|
|
left: 14px; |
|
|
|
|
} |
|
|
|
|
input { |
|
|
|
|
width: 100%; |
|
|
|
|
height: 62px; |
|
|
|
|
line-height: 62px; |
|
|
|
|
padding: 0 50px; |
|
|
|
|
font-size: 18px; |
|
|
|
|
color: #333; |
|
|
|
|
border: 0; |
|
|
|
|
outline: none; |
|
|
|
|
border-radius: 4px; |
|
|
|
|
} |
|
|
|
|
width: 700px; |
|
|
|
|
margin: 0 auto; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
img { |
|
|
|
|
position: absolute; |
|
|
|
|
top: 19px; |
|
|
|
|
left: 14px; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
input { |
|
|
|
|
width: 100%; |
|
|
|
|
height: 62px; |
|
|
|
|
line-height: 62px; |
|
|
|
|
padding: 0 50px; |
|
|
|
|
font-size: 18px; |
|
|
|
|
color: #333; |
|
|
|
|
border: 0; |
|
|
|
|
outline: none; |
|
|
|
|
border-radius: 4px; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.main { |
|
|
|
|
background: url(../../../assets/img/match-bg1.png) (0px 95px) / auto auto no-repeat, |
|
|
|
|
url(../../../assets/img/match-bg2.png) (98% bottom) / auto auto no-repeat; |
|
|
|
|
.filter { |
|
|
|
|
width: 100%; |
|
|
|
|
background-color: #fff; |
|
|
|
|
dl { |
|
|
|
|
display: flex; |
|
|
|
|
align-items: center; |
|
|
|
|
margin: 20px 0; |
|
|
|
|
dt { |
|
|
|
|
color: #333; |
|
|
|
|
font-size: 16px; |
|
|
|
|
font-weight: 600; |
|
|
|
|
} |
|
|
|
|
dd { |
|
|
|
|
padding: 5px 20px; |
|
|
|
|
margin: 0 10px; |
|
|
|
|
color: #4c4c4c; |
|
|
|
|
font-size: 16px; |
|
|
|
|
cursor: pointer; |
|
|
|
|
border-radius: 4px; |
|
|
|
|
&.active { |
|
|
|
|
color: $main-color; |
|
|
|
|
background-color: #e6f0ff; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
background: url(../../../assets/img/match-bg1.png) (0px 95px) / auto auto no-repeat, |
|
|
|
|
url(../../../assets/img/match-bg2.png) (98% bottom) / auto auto no-repeat; |
|
|
|
|
|
|
|
|
|
.filter { |
|
|
|
|
width: 100%; |
|
|
|
|
background-color: #fff; |
|
|
|
|
|
|
|
|
|
dl { |
|
|
|
|
display: flex; |
|
|
|
|
align-items: center; |
|
|
|
|
margin: 20px 0; |
|
|
|
|
|
|
|
|
|
dt { |
|
|
|
|
color: #333; |
|
|
|
|
font-size: 16px; |
|
|
|
|
font-weight: 600; |
|
|
|
|
white-space: nowrap; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
dd { |
|
|
|
|
padding: 5px 20px; |
|
|
|
|
margin: 0 10px; |
|
|
|
|
color: #4c4c4c; |
|
|
|
|
font-size: 16px; |
|
|
|
|
cursor: pointer; |
|
|
|
|
border-radius: 4px; |
|
|
|
|
white-space: nowrap; |
|
|
|
|
|
|
|
|
|
&.active { |
|
|
|
|
color: $main-color; |
|
|
|
|
background-color: #e6f0ff; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
.select-wrap { |
|
|
|
|
display: inline-flex; |
|
|
|
|
align-items: center; |
|
|
|
|
margin: 0 20px; |
|
|
|
|
.label { |
|
|
|
|
margin-right: 10px; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.select-wrap { |
|
|
|
|
display: inline-flex; |
|
|
|
|
align-items: center; |
|
|
|
|
margin: 0 20px; |
|
|
|
|
|
|
|
|
|
.label { |
|
|
|
|
margin-right: 10px; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.el-select { |
|
|
|
|
width: 130px; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.list-inner { |
|
|
|
|
display: flex; |
|
|
|
|
justify-content: center; |
|
|
|
|
align-items: flex-start; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.nav { |
|
|
|
|
width: 156px; |
|
|
|
|
text-align: right; |
|
|
|
|
overflow: hidden; |
|
|
|
|
background-color: #fff; |
|
|
|
|
|
|
|
|
|
li { |
|
|
|
|
padding: 0 24px; |
|
|
|
|
font-size: 16px; |
|
|
|
|
color: #666; |
|
|
|
|
line-height: 48px; |
|
|
|
|
border-bottom: 2px solid #f3f6fa; |
|
|
|
|
border-right: 2px solid transparent; |
|
|
|
|
cursor: pointer; |
|
|
|
|
|
|
|
|
|
&:before { |
|
|
|
|
content: ''; |
|
|
|
|
display: inline-block; |
|
|
|
|
width: 3px; |
|
|
|
|
height: 3px; |
|
|
|
|
margin-right: 10px; |
|
|
|
|
vertical-align: middle; |
|
|
|
|
border-radius: 50%; |
|
|
|
|
background-color: #666; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
&.active { |
|
|
|
|
color: $main-color; |
|
|
|
|
border-right-color: $main-color; |
|
|
|
|
|
|
|
|
|
&:before { |
|
|
|
|
background-color: $main-color; |
|
|
|
|
} |
|
|
|
|
.el-select { |
|
|
|
|
width: 130px; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.list-wrap { |
|
|
|
|
flex: 1; |
|
|
|
|
margin-left: 24px; |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.list { |
|
|
|
|
li { |
|
|
|
|
display: flex; |
|
|
|
|
justify-content: space-between; |
|
|
|
|
padding: 16px; |
|
|
|
|
margin-bottom: 12px; |
|
|
|
|
transition: all 0.3s; |
|
|
|
|
cursor: pointer; |
|
|
|
|
border-radius: 6px; |
|
|
|
|
background-color: #fff; |
|
|
|
|
|
|
|
|
|
&:hover { |
|
|
|
|
.title { |
|
|
|
|
color: $main-color; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
.list-inner { |
|
|
|
|
display: flex; |
|
|
|
|
justify-content: center; |
|
|
|
|
align-items: flex-start; |
|
|
|
|
|
|
|
|
|
.right { |
|
|
|
|
display: flex; |
|
|
|
|
flex-direction: column; |
|
|
|
|
justify-content: center; |
|
|
|
|
align-items: flex-end; |
|
|
|
|
flex: 1; |
|
|
|
|
} |
|
|
|
|
.nav { |
|
|
|
|
width: 156px; |
|
|
|
|
text-align: right; |
|
|
|
|
overflow: hidden; |
|
|
|
|
background-color: #fff; |
|
|
|
|
li { |
|
|
|
|
padding: 0 24px; |
|
|
|
|
font-size: 16px; |
|
|
|
|
color: #666; |
|
|
|
|
line-height: 48px; |
|
|
|
|
border-bottom: 2px solid #f3f6fa; |
|
|
|
|
border-right: 2px solid transparent; |
|
|
|
|
cursor: pointer; |
|
|
|
|
&:before { |
|
|
|
|
content: ''; |
|
|
|
|
display: inline-block; |
|
|
|
|
width: 3px; |
|
|
|
|
height: 3px; |
|
|
|
|
margin-right: 10px; |
|
|
|
|
vertical-align: middle; |
|
|
|
|
border-radius: 50%; |
|
|
|
|
background-color: #666; |
|
|
|
|
} |
|
|
|
|
&.active { |
|
|
|
|
color: $main-color; |
|
|
|
|
border-right-color: $main-color; |
|
|
|
|
&:before { |
|
|
|
|
background-color: $main-color; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.status { |
|
|
|
|
max-width: 120px; |
|
|
|
|
padding: 0 23px; |
|
|
|
|
line-height: 34px; |
|
|
|
|
font-size: 14px; |
|
|
|
|
color: #fff; |
|
|
|
|
white-space: nowrap; |
|
|
|
|
background-color: #52c41a; |
|
|
|
|
border-radius: 4px; |
|
|
|
|
@include ellipsis(); |
|
|
|
|
|
|
|
|
|
&.wait { |
|
|
|
|
background-color: #faad14; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
&.signing { |
|
|
|
|
background-color: $main-color; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
&.signed { |
|
|
|
|
background-color: #52c41a; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
&.playing { |
|
|
|
|
background-color: #f96d6d; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
&.finish { |
|
|
|
|
background-color: #ccc; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
.list-wrap { |
|
|
|
|
flex: 1; |
|
|
|
|
margin-left: 24px; |
|
|
|
|
.list { |
|
|
|
|
li { |
|
|
|
|
display: flex; |
|
|
|
|
justify-content: space-between; |
|
|
|
|
padding: 16px; |
|
|
|
|
margin-bottom: 12px; |
|
|
|
|
transition: all 0.3s; |
|
|
|
|
cursor: pointer; |
|
|
|
|
border-radius: 6px; |
|
|
|
|
background-color: #fff; |
|
|
|
|
.right { |
|
|
|
|
display: flex; |
|
|
|
|
flex-direction: column; |
|
|
|
|
justify-content: center; |
|
|
|
|
align-items: flex-end; |
|
|
|
|
flex: 1; |
|
|
|
|
|
|
|
|
|
.status { |
|
|
|
|
max-width: 120px; |
|
|
|
|
padding: 0 23px; |
|
|
|
|
line-height: 34px; |
|
|
|
|
font-size: 14px; |
|
|
|
|
color: #fff; |
|
|
|
|
white-space: nowrap; |
|
|
|
|
background-color: #52c41a; |
|
|
|
|
border-radius: 4px; |
|
|
|
|
@include ellipsis(); |
|
|
|
|
&.wait { |
|
|
|
|
background-color: #faad14; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
&.signing { |
|
|
|
|
background-color: $main-color; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
&.signed { |
|
|
|
|
background-color: #52c41a; |
|
|
|
|
} |
|
|
|
|
&.playing { |
|
|
|
|
background-color: #f96d6d; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
&.finish { |
|
|
|
|
background-color: #ccc; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.btn { |
|
|
|
|
padding: 12px 20px; |
|
|
|
|
color: #fff; |
|
|
|
|
background-color: #cb221c; |
|
|
|
|
border-radius: 4px; |
|
|
|
|
cursor: pointer; |
|
|
|
|
|
|
|
|
|
&:hover { |
|
|
|
|
opacity: 0.9; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
&.disabled { |
|
|
|
|
cursor: not-allowed; |
|
|
|
|
background-color: #969696; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.end-text { |
|
|
|
|
margin-top: 10px; |
|
|
|
|
color: rgba(0, 0, 0, 0.65); |
|
|
|
|
font-size: 12px; |
|
|
|
|
white-space: nowrap; |
|
|
|
|
|
|
|
|
|
em { |
|
|
|
|
font-style: normal; |
|
|
|
|
color: #f00; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
&:hover { |
|
|
|
|
.left { |
|
|
|
|
.info { |
|
|
|
|
.title { |
|
|
|
|
color: $main-color; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
.left { |
|
|
|
|
position: relative; |
|
|
|
|
display: inline-flex; |
|
|
|
|
.stage-label { |
|
|
|
|
position: absolute; |
|
|
|
|
top: -16px; |
|
|
|
|
left: -16px; |
|
|
|
|
border: 0; |
|
|
|
|
background-color: rgb(101, 227, 181); |
|
|
|
|
&.playing { |
|
|
|
|
background-color: rgb(251, 174, 41); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
.cover { |
|
|
|
|
img { |
|
|
|
|
width: 275px; |
|
|
|
|
height: 175px; |
|
|
|
|
border-radius: 6px; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.info { |
|
|
|
|
margin-left: 16px; |
|
|
|
|
.title { |
|
|
|
|
margin-bottom: 10px; |
|
|
|
|
font-size: 20px; |
|
|
|
|
font-weight: 500; |
|
|
|
|
color: #0b1d30; |
|
|
|
|
line-height: 1; |
|
|
|
|
} |
|
|
|
|
.metas { |
|
|
|
|
font-size: 14px; |
|
|
|
|
color: #666; |
|
|
|
|
div { |
|
|
|
|
display: flex; |
|
|
|
|
align-items: center; |
|
|
|
|
margin-bottom: 5px; |
|
|
|
|
|
|
|
|
|
&.flex-top { |
|
|
|
|
align-items: flex-start; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.label, |
|
|
|
|
.val { |
|
|
|
|
font-size: 14px; |
|
|
|
|
color: #666; |
|
|
|
|
white-space: nowrap; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.val { |
|
|
|
|
max-width: 450px; |
|
|
|
|
text-overflow: ellipsis; |
|
|
|
|
overflow: hidden; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.a-line { |
|
|
|
|
display: block; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.desc { |
|
|
|
|
font-size: 14px; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.btn { |
|
|
|
|
padding: 12px 20px; |
|
|
|
|
color: #fff; |
|
|
|
|
background-color: #cb221c; |
|
|
|
|
border-radius: 4px; |
|
|
|
|
cursor: pointer; |
|
|
|
|
|
|
|
|
|
&:hover { |
|
|
|
|
opacity: 0.9; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
&.disabled { |
|
|
|
|
cursor: not-allowed; |
|
|
|
|
background-color: #969696; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.end-text { |
|
|
|
|
margin-top: 10px; |
|
|
|
|
color: rgba(0, 0, 0, 0.65); |
|
|
|
|
font-size: 12px; |
|
|
|
|
white-space: nowrap; |
|
|
|
|
|
|
|
|
|
em { |
|
|
|
|
font-style: normal; |
|
|
|
|
color: #f00; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.left { |
|
|
|
|
position: relative; |
|
|
|
|
display: inline-flex; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.stage-label { |
|
|
|
|
position: absolute; |
|
|
|
|
top: -16px; |
|
|
|
|
left: -16px; |
|
|
|
|
border: 0; |
|
|
|
|
background-color: rgb(101, 227, 181); |
|
|
|
|
|
|
|
|
|
&.playing { |
|
|
|
|
background-color: rgb(251, 174, 41); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.cover { |
|
|
|
|
img { |
|
|
|
|
width: 275px; |
|
|
|
|
height: 175px; |
|
|
|
|
border-radius: 6px; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.info { |
|
|
|
|
margin-left: 16px; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.title { |
|
|
|
|
margin-bottom: 10px; |
|
|
|
|
font-size: 20px; |
|
|
|
|
font-weight: 500; |
|
|
|
|
color: #0b1d30; |
|
|
|
|
line-height: 1; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.metas { |
|
|
|
|
font-size: 14px; |
|
|
|
|
color: #666; |
|
|
|
|
|
|
|
|
|
.meta { |
|
|
|
|
display: flex; |
|
|
|
|
align-items: center; |
|
|
|
|
margin-bottom: 5px; |
|
|
|
|
|
|
|
|
|
&.flex-top { |
|
|
|
|
align-items: flex-start; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.label, |
|
|
|
|
.val { |
|
|
|
|
font-size: 14px; |
|
|
|
|
color: #666; |
|
|
|
|
white-space: nowrap; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.val { |
|
|
|
|
max-width: 450px; |
|
|
|
|
text-overflow: ellipsis; |
|
|
|
|
overflow: hidden; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.a-line { |
|
|
|
|
display: block; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.desc { |
|
|
|
|
font-size: 14px; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/deep/.dia-form { |
|
|
|
|
.w-100 { |
|
|
|
|
width: 100%; |
|
|
|
|
.w-100 { |
|
|
|
|
width: 100%; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.tips { |
|
|
|
|
display: flex; |
|
|
|
|
justify-content: center; |
|
|
|
|
align-items: center; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@media (max-width: 1000px) { |
|
|
|
|
.main { |
|
|
|
|
.center-wrap { |
|
|
|
|
width: 90%; |
|
|
|
|
} |
|
|
|
|
.tips { |
|
|
|
|
display: flex; |
|
|
|
|
justify-content: center; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@media (max-width: 640px) { |
|
|
|
|
.search { |
|
|
|
|
.input { |
|
|
|
|
width: 90%; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.main { |
|
|
|
|
.list-wrap { |
|
|
|
|
padding: 0 20px; |
|
|
|
|
margin-left: 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.list { |
|
|
|
|
|
|
|
|
|
li, |
|
|
|
|
.left { |
|
|
|
|
flex-direction: column; |
|
|
|
|
justify-content: flex-start; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.cover { |
|
|
|
|
text-align: center; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.info { |
|
|
|
|
margin: 15px 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.metas { |
|
|
|
|
.val { |
|
|
|
|
white-space: normal; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.right { |
|
|
|
|
align-items: center; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
</style> |