3fa14c0a by zhangmeng

Merge remote-tracking branch 'origin/dev' into dev

2 parents 87df0e78 d4261530
viewPc
测试打包 npm run build:stage
生产打包 npm run build:prod

27.9 KB | W: | H:

159 KB | W: | H:

public/img/code.jpg
public/img/code.jpg
public/img/code.jpg
public/img/code.jpg
  • 2-up
  • Swipe
  • Onion skin
......@@ -457,7 +457,7 @@ export const constantRoutes = [
},
{
path: 'list/:id',
component: () => import('@/viewsPc/match/detail'),
component: () => import('@/viewsPc/match/detail_en'),
name: 'matchDetail',
meta: { title: '赛事详情' }
}
......
......@@ -399,7 +399,7 @@ export const constantRoutes = [
},
{
path: 'list/:id',
component: () => import('@/viewsPc/match/detail'),
component: () => import('@/viewsPc/match/detail_en'),
name: 'matchDetail',
meta: { title: '赛事详情' }
},
......
......@@ -61,9 +61,9 @@
</div>
</el-dialog>
</div>
<!-- <div class="poCode">-->
<!-- <el-image :preview-src-list="['/img/code.jpg']" hide-on-click-modal="true" style="width: 120px;height: 120px;" src="/img/code.jpg"/>-->
<!-- </div>-->
<div class="poCode">
<el-image :preview-src-list="['/img/code.jpg']" hide-on-click-modal="true" style="width: 120px;height: 120px;" src="/img/code.jpg"/>
</div>
<dialog-master-class ref="masterClassRef"/>
<pick-up ref="pickupRef"></pick-up>
<back-number ref="backNumberRef"></back-number>
......
<template>
<!-- 已废弃-->
<div class="app-container" v-loading="loading">
<div class="mt30"/>
<div v-if="error">
<el-result
icon="error"
title="未找到赛事"
>
<template #extra>
</template>
</el-result>
</div>
<div class="box mb20 " v-else>
<el-card class="mb20">
<el-row :gutter="20">
<el-col :lg="7" :md="matchData.type=='0'?24:12" :xl="matchData.type=='0'?6:6">
<img class="mauto w100" :src="fillImgUrl(matchData.coverUrl)">
</el-col>
<el-col style="position: relative" :lg="matchData.type=='0'?9:17" :md="matchData.type=='0'?12:12" :xl="matchData.type=='0'?10:10">
<h3 class="mtitle">
{{ matchData.name }}
</h3>
<p class="ppl"><label class="bm1">比赛时间:</label>{{ matchData.beginTime?.slice(0, 10) }} 至
{{ matchData.endTime?.slice(0, 10) }}</p>
<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>-->
<p class="ppl" v-if="matchData.type=='1'">
<label>
<svg style="position: relative;top: 2px;" t="1711708779620" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7920" width="20" height="20"><path d="M398.652952 165.692952c-32.280381-46.006857-58.172952-61.318095-92.867047-54.808381-14.969905 2.80381-24.210286 7.850667-41.20381 22.528l-12.946285 11.361524-25.185524 20.894476-6.582857 5.753905c-3.705905 3.413333-6.38781 6.217143-9.825524 10.118095-64 72.46019-81.724952 185.782857-44.470857 292.327619 26.794667 76.55619 74.605714 152.624762 142.774857 228.644572 72.289524 80.62781 133.046857 131.364571 202.922666 168.374857 54.857143 29.013333 96.865524 41.74019 145.676191 43.227429 59.001905 1.828571 110.957714-11.50781 153.648762-39.15581a162.133333 162.133333 0 0 0 19.553524-15.189333l8.289523-7.558095 16.335239-15.213715 5.534476-4.924952 10.922666-9.435429c22.040381-19.651048 29.184-31.939048 30.646858-51.370666 2.194286-29.647238-11.215238-52.736-49.737143-85.699048l-26.063238-21.820952-12.117334-10.581334-11.459047-9.825524c-37.229714-30.744381-64.804571-40.69181-100.205715-35.35238-24.283429 3.632762-38.278095 12.141714-63.073523 38.107428l-10.947048 11.654095c-18.041905 19.017143-28.330667 26.258286-43.544381 29.305905-22.25981 4.461714-44.373333-7.046095-80.262095-36.205714-46.250667-37.546667-84.626286-80.676571-117.613715-131.949714-22.869333-35.766857-31.890286-62.902857-24.941714-87.600762 2.82819-9.99619 9.679238-17.042286 24.064-28.184381l14.994286-11.312762 2.413714-1.877334 22.747429-18.553904c20.114286-16.822857 28.281905-28.281905 32.572952-45.836191 8.899048-36.10819 0.487619-66.072381-32.426667-117.638095l-15.62819-24.234667-5.558857-8.533333-6.436572-9.435429z" p-id="7921" fill="#d3d8d9"></path></svg>
联系电话:</label>{{matchData.contactTelno}}
</p>
<p class="ppl" v-if="matchData.type=='1'">
<label>
<svg style="position: relative;top: 2px;" t="1711707785514" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6578" width="18" height="18">
<path d="M780 68H256c-71.6 0-130.2 55.5-130.2 123.2v711.2c1.5 42.8 50 69.3 90.6 50.6l227.2-105c38.5-17.8 83.4-18.5 122.6-1.9l255.4 108.6c34.8 14.8 76.1-2.7 86.3-37.6 1.6-5.4 2.4-11 2.4-16.9v-709C910.2 123.5 851.6 68 780 68zM276.9 231.3h255.9c23.9 0 43.3 18.4 43.3 41s-19.4 41-43.3 41H276.9c-23.9 0-43.3-18.4-43.3-41s19.4-41 43.3-41z m386.8 464H276.9c-23.9 0-43.3-18.4-43.3-41s19.4-41 43.3-41h386.8c23.9 0 43.3 18.4 43.3 41s-19.4 41-43.3 41z m0-191H276.9c-23.9 0-43.3-18.4-43.3-41s19.4-41 43.3-41h386.8c23.9 0 43.3 18.4 43.3 41s-19.4 41-43.3 41z" p-id="6579" fill="#d3d8d9"></path></svg>
分站赛:</label>{{matchData.cpts.length}}
</p>
<div style="height: 30px"></div>
<div class="ppl_pb">
<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>
<van-count-down :time="startSign>0?startSign:time" format="DD 天 HH 时 mm 分 ss 秒">
<template #default="timeData">
<span class="block">{{ timeData.days }}</span>
<span class="colon"></span>
<span class="block">{{ timeData.hours }}</span>
<span class="colon"></span>
<span class="block">{{ timeData.minutes }}</span>
<span class="colon"></span>
<span class="block">{{ timeData.seconds }}</span>
<span class="colon"></span>
</template>
</van-count-down>
<div class="mt30">
<a class="btn-lineG mb20" v-if="matchData.progressStatusCode=='2'" @click="choseSignType" style="display: block;text-align: center;">
我要报名
</a>
<div v-else-if="time<=0" style="opacity: 0.5;" class="btn-lineG mb20 mauto text-center">报名已结束</div>
<div v-else-if="startSign>0" style="opacity: 0.5;" class="btn-lineG mb20 mauto text-center">报名未开始</div>
</div>
</el-col>
</el-row>
</el-card>
<quick-row :match-id="matchId"/>
<el-row :gutter="20" v-if="matchData.type=='0'">
<el-col :lg="18">
<el-card :body-style="{'padding':'0'}">
<div class="lineHead">
<ul>
<li v-for="l in menu" :key="l.name" @click="changeMenu(menu,l)" :class="l.active==1?'active':''">
{{ l.name }}
</li>
</ul>
</div>
<matchInfo :form="matchData" v-if="menu[0].active==1"/>
<div v-if="menu[1].active==1">
<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">
<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" v-else>
<el-col :span="24" v-for="(t,index) in signDoneGroupList" :key="t.id">
<div class="nowteamItem">
<span>{{ index + 1 }}.</span>
<el-avatar :size="80" :src="fillImgUrl(t.imgUrl||t.avatar)" :fit="cover"/>
<div class="info">
<h3 class="name">{{ t.name }}</h3>
<p v-if="t.extraInfo">
<span v-for="(ee,index) in JSON.parse(t.extraInfo)" :key="index"
v-show="(ee?.type == '0'||ee?.type == '4')&&index<2">
{{ ee.value }}&ensp;&ensp;
</span>
</p>
</div>
<p class="rr"><span>{{ t.renCi }}</span> 人参赛</p>
</div>
</el-col>
</el-row>
<el-empty :image="`/img/order_no.png`" :image-size="228"
v-if="(signDoneGroupList==null)||(signDoneGroupList.length==0)" description=""/>
</div>
<div v-if="menu[4].active==1">
<!-- 成绩-->
<el-empty :image="`/img/order_no.png`" :image-size="228"/>
</div>
<div v-if="menu[5].active==1" class="pd20">
<div class="xzbox">
<div v-html="matchData.signKnow"></div>
<div v-if="matchData.signKnowUrl">{{JSON.parse(matchData.signKnowUrl)}}
<el-link v-for="(item,index) in JSON.parse(matchData.signKnowUrl)" type="primary"
:href="fillImgUrl(item.url)" target="_blank">
<el-icon :size="20">
<Download />
</el-icon>
{{ item.name }}
</el-link>
</div>
</div>
</div>
</el-card>
<div style="height: 20px"></div>
</el-col>
<el-col :lg="6">
<match-news :match-id="matchId"/>
</el-col>
</el-row>
<el-row v-if="matchData.type=='1'" class="mb20">
<el-col :lg="24">
<el-card :body-style="{'padding':'0'}">
<div class="lineHead">
<ul>
<li v-for="l in menu1" :key="l.name" @click="changeMenu(menu1,l)" :class="l.active==1?'active':''">
{{ l.name }}
</li>
</ul>
</div>
<!-- 分站赛-->
<substation-list v-if="menu1[0].active==1" :list="matchData.cpts"/>
<matchInfo :form="matchData" v-if="menu1[1].active==1"/>
<match-schedule-list :match-data="matchData" v-if="menu1[2].active==1"/>
</el-card>
</el-col>
</el-row>
</div>
</div>
</template>
<script setup>
import MatchInfo from '@/viewsPc/match/components/matchInfo'
import MatchScheduleList from "@/viewsPc/match/components/matchScheduleList";
import MatchNews from "@/viewsPc/match/components/matchNews";
import SubstationList from "@/viewsPc/match/components/substation-list";
import MatchInfoProjectList from "@/viewsPc/match/components/matchInfo-projectList";
import QuickRow from "@/viewsPc/match/components/quick-row";
import {getCurrentInstance, ref} from 'vue'
import {reactive, onMounted} from '@vue/runtime-core'
import {useRoute, useRouter} from 'vue-router'
const route = useRoute()
const router = useRouter()
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 {isRelogin} from "@/utils/request";
const data = reactive({
loading:false,
error:false,
matchData: {},
matchId: '0',
groupId: '',
activeName2: 'first',
popupGroupList: false,
menu: [{name: '赛事详情', active: 1}, {name: '赛事设项', active: 0}, {name: '日程', active: 0}, {
name: '参赛队',
active: 0
}, {name: '成绩', active: 0}, {name: '报名须知', active: 0}],
menu1: [{name: '分站赛', active: 1}, {name: '赛事详情', active: 0}, {name: '日程', active: 0}],
signDoneGroupList: [],
time: '',
time2: '',
startSign: ''
})
const {loading,error,time,time2,startSign, matchData, matchId, groupId, activeName2, popupGroupList, menu, menu1, signDoneGroupList} = toRefs(data)
const group = useUserStore().group
const user = useUserStore().user
onMounted(() => {
if (group) {
groupId.value = group.id
} else {
groupId.value = 0
}
match.getMaList({topFlag:1,status:1}).then((res) => {
if (route.params.id != 0) {
matchId.value = route.params.id
} else {
matchId.value = res.rows[0].id
}
getMatch(matchId.value)
getGroupListByCptId(matchId.value)
})
})
function building() {
ElMessage.warning('暂未开发,敬请期待!')
}
function getMatch(id) {
loading.value = true
match.getMatchById({id: id}).then(res => {
matchData.value = res.data
loading.value = false
var today = dayjs().format('YYYY-MM-DD HH:mm:ss')
time.value = dayjs(res.data.signEndTime).diff(today, 'millisecond')
startSign.value = dayjs(res.data.signBeginTime).diff(today, 'millisecond')
}).catch(res=>{
error.value = true
loading.value = false
})
}
function getGroupListByCptId(id) {
match.getGroupListByCptId(id).then(res => {
signDoneGroupList.value = res.data
})
}
function changeMenu(menu, l) {
for (const n of menu) {
if (n == l) {
n.active = 1
} else {
n.active = 0
}
}
}
function goLogin() {
useUserStore().setReLogin()
}
function choseSignType() {
console.log(matchData.value.signType,user)
if (!user) {
goLogin()
} else {
checkIsSign().then(() => {
switch (matchData.value.signType) {
case '0':
if (user.utype == '1') {
goPersonalSign()
} else {
ElMessageBox.confirm(
'当前活动是个人活动,无法报名',
'提示',
{
confirmButtonText: '好的',
cancelButtonText: '取消',
type: 'warning',
}
)
}
break
case '1':
if (user.utype == '1') {
ElMessageBox.confirm(
'当前活动是团队活动,无法报名',
'提示',
{
confirmButtonText: '好的',
cancelButtonText: '取消',
type: 'warning',
}
)
} else {
goTeamSign()
}
break
case '2':
if (user.utype == '1') {
goPersonalSign()
} else {
goTeamSign()
}
break
}
})
}
}
function goTeamSign() {
const routeData = router.resolve({
path: `${matchId.value}/teamSign`,
query: {
matchId: matchId.value,
groupId: groupId.value,
signType: matchData.value.signType
}
})
window.open(routeData.href, '_blank')
}
function goPersonalSign() {
// 选项目
const routeData = router.resolve({
name: `chooseProject`,
query: {
matchId: matchId.value
}
})
window.open(routeData.href, '_blank')
}
// 获取已报信息
function checkIsSign() {
var obj = {
cptId: matchId.value,
groupId: groupId.value || 0
}
return match.getMySignInfo(obj).then(res => {
if (res.data.type == '1') {
ElMessageBox.confirm(
'已报名,不能重复报名,是否前往个人中心查看',
'提示',
{
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}
).then(() => {
router.push({name: 'myMatch'})
})
return Promise.reject('rejected message')
}
if (res.data.type == '2') {
ElMessageBox.confirm(
'报名审批拒绝,是否重新报名',
'提示',
{
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}
).then(() => {
match.recoverMySignFromCancel(matchId.value).then((res)=>{
switch (matchData.value.signType) {
case '0':
if (user.utype == '1') {
goPersonalSign()
} else {
ElMessageBox.confirm(
'当前活动是个人活动,无法报名',
'提示',
{
confirmButtonText: '好的',
cancelButtonText: '取消',
type: 'warning',
}
)
}
break
case '1':
if (user.utype == '1') {
ElMessageBox.confirm(
'当前活动是团队活动,无法报名',
'提示',
{
confirmButtonText: '好的',
cancelButtonText: '取消',
type: 'warning',
}
)
} else {
goTeamSign()
}
break
case '2':
if (user.utype == '1') {
goPersonalSign()
} else {
goTeamSign()
}
break
}
})
})
return Promise.reject('rejected message')
}
})
}
</script>
<style scoped lang="scss">
.app-container{min-height: 80vh;}
.mtitle{margin:5px 0 0;line-height: 1.4;}
.indexTitle {
margin: 20px 0 12px;
h3 {
font-size: 20px;
color: var(--el-color-primary);
}
}
.ppl {
color: #29343C;margin: 10px 0 0;
label {
color: #929AA0;
}
}
.bm1 {
background: url("@/assets/dance/bm1.png") no-repeat left;
background-size: contain;
padding-left: 24px;
}
.bm2 {
background: url("@/assets/dance/bm2.png") no-repeat left;
background-size: contain;
padding-left: 24px;
}
.bm3 {
background: url("@/assets/dance/bm3.png") no-repeat left;
background-size: contain;
padding-left: 24px;
}
.bm4 {
background: url("@/assets/dance/bm4.png") no-repeat left;
background-size: contain;
padding-left: 24px;
}
.app-container {
padding: 0;
background: #F5F7F9;
}
.countDownTitle {
text-align: center;
color: #525F6B;
position: relative;
width: 100%;
left: 0;
font-size: 14px;
}
.countDownTitle span {
background: #fff;
padding: 0 10px;
position: relative;
z-index: 1;
}
.countDownTitle::after {
position: absolute;
background: #ccc;
height: 1px;
content: '';
top: 0;
bottom: 0;
margin: auto;
width: 100%;
left: 0;
}
.typeTag {
border-radius: 10px 10px 10px 0px;
padding: 2px 12px;
background: #FF8124;
font-size: 14px;
color: #fff;
}
.matchItem {
cursor: pointer;
margin-bottom: 40px;
height: 180px;
background: #FFFFFF;
position: relative;
border-radius: 10px;
.el-avatar {
position: absolute;
left: 20px;
top: 30px;
img {
background: #fff;
}
}
.info {
padding: 12px 0 0 140px;
p {
font-size: 14px;
}
}
.typeTag {
position: absolute;
right: 0;
top: 0;
}
h3 {
font-weight: 500;
font-size: 18px;
color: #000000;
text-overflow: ellipsis;
}
&:hover h3 {
font-weight: bold;
}
}
.el-pagination {
justify-content: center;
--el-pagination-bg-color: none;
}
.kind {
background: #fff;
margin: 0 0 30px;
ul {
list-style: none;
padding: 30px 0 10px;
li {
margin: 0 0 20px;
display: flex;
align-items: center;
}
}
}
.listTitle {
display: flex;
justify-content: space-between;
align-items: center;
}
.match-tabs {
background: #fff;
padding: 10px 20px 20px;
}
.teamItem {
height: 80px;
background: #FBFCFD;
border-radius: 10px;
margin: 10px 0;
display: flex;
align-items: center;
padding: 0 20px;
overflow: hidden;
text-overflow: ellipsis;
.el-avatar {
border: 1px solid #EEEEEE;
}
.name {
margin-left: 15px;
flex: 1;
font-size: 14px;
}
}
.grid-top {
background: #fff;
min-height: 300px;
padding: 28px 28px 10px;
border-radius: 10px;
margin: 30px auto;
position: relative;
.cover {
width: 420px;
height: 250px;
position: absolute;
border-radius: 10px;
background: #fff;
object-fit: cover;
}
.info {
padding-left: 440px;
h3 {
font-weight: 500;
color: #000000;
margin: 0 0 10px;
font-size: 24px;
img {
margin-right: 10px
}
.typeTag {
border-radius: 13px 13px 13px 0;
margin-left: 10px;
}
}
p {
color: #7B7F83;
font-size: 16px;
}
.countDownTitle {
font-size: 14px;
}
.el-button.el-button--primary {
background: #CA171D;
border: none;
}
}
}
.gg {
margin: 0 0 28px;
h3 {
border-left: 2px solid #BA2E29;
padding: 0 0 0 12px;
margin: 20px 0 8px;
font-weight: 500;
font-size: 16px;
}
p {
font-size: 16px;
color: #000;
margin: 0 0 8px;
line-height: 24px;
label {
color: #7D8790;
}
}
.pp {
border: 1px solid rgba(186, 46, 41, 0.3);
padding: 20px;
}
}
.van-count-down {
text-align: center;
margin: 20px 0;
}
.colon {
display: inline-block;
font-size: 16px;
margin: 0 8px;
color: #7B7F83;
}
.block {
display: inline-block;
width: 52px;
color: #fff;
font-size: 26px;
font-weight: bold;
border-radius: 10px;
background: url(@/assets/img/djs_bg.png) left;
background-size: 100% 100%;
line-height: 50px;
text-align: center;
}
.time-address {
font-size: 15px;
margin: 10px 0 0;
color: #999;
}
.popList .teamItem {
cursor: pointer;
}
.popList .teamItem:hover {
background: #e7e7e7;
}
.richContent {
overflow: hidden;
}
.richContent img {
max-width: 100%;
}
.red-center {
font-size: 24px;
text-align: center;
font-family: DIN Alternate;
padding: 30px 0;
font-weight: bold;
color: #E60012;
}
.plist {
dt {
font-size: 14px;
}
dd {
display: inline-block;
margin: 0 15px 0 0;
}
dd.t {
display: block;
margin: 15px 0 6px;
border-left: 3px solid #1ec886;
line-height: 1;
padding: 6px;
background: #f5f5f5;
}
li {
line-height: 40px;
display: flex;
justify-content: space-between;
padding: 0 20px;
align-items: center;
cursor: pointer;
}
li:hover {
background: #eee;
}
}
.pp .el-link {
margin-right: 15px;
font-size: 16px;
}
:deep(.el-collapse-item__header) {
font-weight: 500;
font-size: 16px;
}
.pobtns {
position: absolute;
right: 20px;
bottom: 20px;
}
:deep(.el-tabs__item) {
font-size: 16px;
}
.signButton {
margin: 0 0 20px;
button {
width: 90%;
background: var(--el-color-primary);
font-size: 20px;
margin: 30px auto 0;
display: block;
height: 50px;
}
}
.el-timeline-item__timestamp.is-top {
font-size: 16px;
}
.el-timeline-item__content {
font-size: 16px;
margin: 10px 0 0;
}
.typeTag.blue {
background: #00a0e9;
}
.typeTag.green {
background: #34cf96;
}
:deep(.el-tabs__nav-wrap::after) {
height: 1px;
}
.table {
width: 100%;
border-left: 1px solid #e1e1e1;
border-top: 1px solid #e1e1e1;
th {
background: #eee;
padding: 6px 10px;
border-right: 1px solid #e1e1e1;
border-bottom: 1px solid #e1e1e1;
font-size: 15px;
}
td {
padding: 6px 10px;
border-right: 1px solid #e1e1e1;
font-size: 15px;
border-bottom: 1px solid #e1e1e1;
vertical-align: middle;
text-align: center;
span {
margin-right: 10px
}
span::after {
content: ','
}
span:last-child::after {
content: ''
}
}
}
.flexLine {
display: flex;
label {
font-weight: normal
}
}
.nowteamItem {
height: 100px;
background: #FBFCFD;
border-radius: 10px;
margin: 20px 0;
display: flex;
align-items: center;
padding: 0 20px;
overflow: hidden;
text-overflow: ellipsis;
.el-avatar {
margin: 0 20px
}
.info {
h3 {
margin: 0 0 15px;
}
p {
margin: 0;
color: #1ab394
}
}
.rr {
text-align: right;
flex: 1;
span {
color: #1ab394
}
}
}
.collapsebox {
.el-collapse-item {
margin-bottom: 15px;
--el-collapse-content-bg-color: #F4F9FE;
border: 2px solid #DDECFB;
.table {
background: #fff;
}
}
.is-active {
--el-collapse-header-bg-color: #F4F9FE
}
:deep(.el-collapse-item__header) {
padding: 0 20px;
}
}
.funcBtns {
display: flex;
justify-content: space-around;
div {
text-align: center;
background: #F7FAFF;
box-shadow: 0 0 10px #d4cae4;
border-radius: 15px;
padding: 0px 10px 5px;
img {
}
h4 {
margin: 0;
font-size: 16px;
}
}
}
.table {
white-space: nowrap
}
.ppl_pb{position: absolute;bottom:0;}
@media (max-width: 1650px){
.ppl {
color: #29343C;margin: 5px 0 0;
}
}
@media (max-width: 800px) {
.van-count-down {
.block {
margin: 0 10px;
}
}
.colon {
display: none;
}
.funcBtns {
div {
padding: 0 0 10px;
margin: 0 5px;
}
}
}
</style>
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!