0a1abe64 by zhangmeng

空格

1 parent 11925936
......@@ -24,7 +24,7 @@
</el-col>
<el-col :span="24" style="border-top: 1px solid #d0d0d0">
<div class="text-center copyright pd10">版权所有@无锡和畅赛事运营有限公司
&ensp;&ensp
&nbsp;&nbsp
<a href="https://beian.miit.gov.cn/" target="_blank">ICP备案号:苏ICP备2023054420号-2</a></div>
</el-col>
</el-row>
......@@ -88,20 +88,20 @@
</div>
</div>
<a v-show="false" ref="aRef" :href="fillImgUrl(file[0]?.url)" target="_blank" />
<a v-show="false" ref="aRef" :href="fillImgUrl(file[0]?.url)" target="_blank"/>
</div>
</template>
<script setup>
import { useStorage } from '@vueuse/core/index'
import { useRouter } from 'vue-router'
import { ElMessage } from 'element-plus'
import { getCurrentInstance, ref } from '@vue/runtime-core'
import {useStorage} from '@vueuse/core/index'
import {useRouter} from 'vue-router'
import {ElMessage} from 'element-plus'
import {getCurrentInstance, ref} from '@vue/runtime-core'
import { getMatchById, getppInfo, getZNList } from '@/apiPc/match'
import { fillImgUrl } from '/@/utils/ruoyi'
import {getMatchById, getppInfo, getZNList} from '@/apiPc/match'
import {fillImgUrl} from '/@/utils/ruoyi'
const { proxy } = getCurrentInstance()
const {proxy} = getCurrentInstance()
const router = useRouter()
const language = useStorage('language', 0)
const goHelp = () => {
......@@ -115,7 +115,7 @@ const goHelp = () => {
const file = ref({})
const goHelpZH = async() => {
const goHelpZH = async () => {
// ElMessage.success('已下载文件')
// router.push({
// name: 'guide',
......@@ -123,7 +123,7 @@ const goHelpZH = async() => {
// index: 8
// }
// })
const res = await getZNList({ sortId: 30000009, language: 1 })
const res = await getZNList({sortId: 30000009, language: 1})
if (res.rows.length > 0) {
file.value = JSON.parse(res.rows[0].picUrl)
proxy.$refs['aRef'].click()
......
......@@ -4,40 +4,40 @@
<el-col :span="6" :xs="24" class="colHight">
<div>
<div class="avatarBox">
<userAvatar :user="state.user" />
<userAvatar :user="state.user"/>
<h3 class="">{{ state.user.userName }}</h3>
</div>
<div>
<ul class="list-group list-group-striped">
<li
class="list-group-item"
:class="{ btn: index == 1 }"
class="list-group-item"
@click="index = 1"
>
<i class="user01" />团体信息&ensp;&ensp;&ensp;&ensp;
<i class="user01"/>团体信息&nbsp;&nbsp;&nbsp;&nbsp;
</li>
<li
class="list-group-item"
:class="{ btn: index == 2 }"
class="list-group-item"
@click="index = 2"
>
<i class="user02" />会员认证&ensp;&ensp;&ensp;&ensp;
<i class="user02"/>会员认证&nbsp;&nbsp;&nbsp;&nbsp;
</li>
<li
v-if="deptType==2||deptType==3"
class="list-group-item"
:class="{ btn: index == 3 }"
class="list-group-item"
@click="index = 3"
>
<i class="user03" />账户信息&ensp;&ensp;&ensp;&ensp;
<i class="user03"/>账户信息&nbsp;&nbsp;&nbsp;&nbsp;
</li>
<li
class="list-group-item"
:class="{ btn: index == 4 }"
class="list-group-item"
@click="index = 4"
>
<i class="user04" />账号与安全&ensp;&ensp;
<i class="user04"/>账号与安全&nbsp;&nbsp;
</li>
<!-- <li class="list-group-item">
<svg-icon icon-class="peoples" />
......@@ -60,21 +60,21 @@
</div>
</template> -->
<div v-if="index == 1">
<Group />
<Group/>
</div>
<div v-if="index == 2">
<Member :id="id" />
<Member :id="id"/>
</div>
<div v-if="index == 3">
<Rates />
<Rates/>
</div>
<div v-if="index == 4">
<el-tabs v-model="activeTab">
<el-tab-pane label="基本资料" name="userinfo">
<userInfo style="min-height: 454px" :user="state.user" />
<userInfo :user="state.user" style="min-height: 454px"/>
</el-tab-pane>
<el-tab-pane label="修改密码" name="resetPwd">
<resetPwd style="min-height: 454px" />
<resetPwd style="min-height: 454px"/>
</el-tab-pane>
</el-tabs>
</div>
......@@ -83,8 +83,8 @@
</div>
</template>
<script setup name="Profile">
import { ref, reactive, computed, onMounted } from 'vue'
<script name="Profile" setup>
import {ref, reactive, computed, onMounted} from 'vue'
import UserAvatar from './userAvatar'
import UserInfo from './userInfo'
import ResetPwd from './resetPwd'
......@@ -92,8 +92,9 @@ import Group from './group.vue'
import Member from './member.vue'
import Rates from './rates.vue'
import useUserStore from '@/store/modules/user'
import { useRoute } from 'vue-router'
import { getUserProfile } from '@/api/system/user'
import {useRoute} from 'vue-router'
import {getUserProfile} from '@/api/system/user'
const route = useRoute()
const deptType = computed(() => useUserStore().deptType)
const index = ref(1)
......@@ -119,29 +120,83 @@ function getUser() {
</script>
<style lang="scss" scoped>
.user01{background: url("@/assets/admin/user01@2x.png") no-repeat center;background-size: contain;}
.user02{background: url("@/assets/admin/user02@2x.png") no-repeat center;background-size: contain;}
.user03{background: url("@/assets/admin/user03@2x.png") no-repeat center;background-size: contain;}
.user04{background: url("@/assets/admin/user04@2x.png") no-repeat center;background-size: contain;}
.user01 {
background: url("@/assets/admin/user01@2x.png") no-repeat center;
background-size: contain;
}
.user02 {
background: url("@/assets/admin/user02@2x.png") no-repeat center;
background-size: contain;
}
.user03 {
background: url("@/assets/admin/user03@2x.png") no-repeat center;
background-size: contain;
}
.user04 {
background: url("@/assets/admin/user04@2x.png") no-repeat center;
background-size: contain;
}
.list-group-item {
text-align: center;height: 60px;line-height: 60px;
background: #FFFFFF;cursor: pointer;
font-size: 18px;display: flex;align-items: center;justify-content: center;
color: #000000;padding: 0;border: none;
border-radius: 5px;margin-bottom: 17px;
i{display: inline-block;width: 34px;height: 34px;margin-right: 20px;}
text-align: center;
height: 60px;
line-height: 60px;
background: #FFFFFF;
cursor: pointer;
font-size: 18px;
display: flex;
align-items: center;
justify-content: center;
color: #000000;
padding: 0;
border: none;
border-radius: 5px;
margin-bottom: 17px;
i {
display: inline-block;
width: 34px;
height: 34px;
margin-right: 20px;
}
&.btn {
color: #fff;background: #1561CB;
.user01{background: url("@/assets/admin/user01_dwn@2x.png") no-repeat center;background-size: contain;}
.user02{background: url("@/assets/admin/user02_dwn@2x.png") no-repeat center;background-size: contain;}
.user03{background: url("@/assets/admin/user03_dwn@2x.png") no-repeat center;background-size: contain;}
.user04{background: url("@/assets/admin/user04_dwn@2x.png") no-repeat center;background-size: contain;}
color: #fff;
background: #1561CB;
.user01 {
background: url("@/assets/admin/user01_dwn@2x.png") no-repeat center;
background-size: contain;
}
.user02 {
background: url("@/assets/admin/user02_dwn@2x.png") no-repeat center;
background-size: contain;
}
.user03 {
background: url("@/assets/admin/user03_dwn@2x.png") no-repeat center;
background-size: contain;
}
.user04 {
background: url("@/assets/admin/user04_dwn@2x.png") no-repeat center;
background-size: contain;
}
}
}
.colHight {
height: 800px;
}
.avatarBox{background: url("@/assets/admin/user_bg@2x.png") no-repeat center;background-size: cover;
text-align: center;padding: 30px 0 10px;
.avatarBox {
background: url("@/assets/admin/user_bg@2x.png") no-repeat center;
background-size: cover;
text-align: center;
padding: 30px 0 10px;
}
</style>
......
......@@ -4,20 +4,29 @@
<el-row>
<el-col v-for="(d,i) in listData" :key="i" :lg="24" :sm="24">
<div class="person-item">
<img v-if="d.photo" class="photo" :src="fillImgUrl(d.photo)">
<img v-else class="photo" style="object-fit: contain;background: #fff;" src="@/assets/v1/default.png">
<img v-if="d.photo" :src="fillImgUrl(d.photo)" class="photo">
<img v-else class="photo" src="@/assets/v1/default.png" style="object-fit: contain;background: #fff;">
<div class="info">
<div class="name">{{ d.name }}
<el-image v-if="d.sex=='0'||d.sex=='1'" style="width: 20px;height: 20px;margin-left: 10px" :src="d.sex=='0'?male:female" />
<el-image
v-if="d.sex=='0'||d.sex=='1'" :src="d.sex=='0'?male:female"
style="width: 20px;height: 20px;margin-left: 10px"
/>
</div>
<div class="flex">
<div>
<el-form-item label="会员编号:">{{ d.perCode }}</el-form-item>
<el-form-item label="出生日期:">{{ parseTime(d.birth,'{y}-{m}-{d}') }}</el-form-item>
<el-form-item label="出生日期:">{{ parseTime(d.birth, '{y}-{m}-{d}') }}</el-form-item>
</div>
<div>
<el-form-item label="&ensp;&ensp;注册时间:">{{ parseTime(d.createTime,'{y}-{m}-{d}') }}</el-form-item>
<el-form-item label="有效期截止:">{{ parseTime(d.validityDate,'{y}-{m}-{d}')||'--' }}</el-form-item>
<el-form-item label="&nbsp;&nbsp;注册时间:">{{
parseTime(d.createTime, '{y}-{m}-{d}')
}}
</el-form-item>
<el-form-item label="有效期截止:">{{
parseTime(d.validityDate, '{y}-{m}-{d}') || '--'
}}
</el-form-item>
</div>
<div style="width: 170px">
......@@ -36,18 +45,21 @@
<el-row>
<el-col v-for="(d,i) in listData" :key="i" :lg="24" :sm="24">
<div class="person-item">
<img v-if="d.photo" class="photo" :src="fillImgUrl(d.photo)">
<img v-if="d.photo" :src="fillImgUrl(d.photo)" class="photo">
<img v-else src="@/assets/v1/default.png">
<div class="info">
<div class="name">{{ d.name }}
<el-image v-if="d.sex=='0'||d.sex=='1'" style="width: 20px;height: 20px;margin-left: 10px" :src="d.sex=='0'?male:female" />
<el-image
v-if="d.sex=='0'||d.sex=='1'" :src="d.sex=='0'?male:female"
style="width: 20px;height: 20px;margin-left: 10px"
/>
</div>
<div>
<el-form-item label="编号:">{{ d.perCode }}</el-form-item>
<el-form-item label="出生日期:">{{ parseTime(d.birth,'{y}-{m}-{d}') }}</el-form-item>
<el-form-item label="注册时间:">{{ parseTime(d.createTime,'{y}-{m}-{d}') }}</el-form-item>
<el-form-item label="有效期截止:">{{ parseTime(d.validityDate,'{y}-{m}-{d}') }}</el-form-item>
<el-form-item label="出生日期:">{{ parseTime(d.birth, '{y}-{m}-{d}') }}</el-form-item>
<el-form-item label="注册时间:">{{ parseTime(d.createTime, '{y}-{m}-{d}') }}</el-form-item>
<el-form-item label="有效期截止:">{{ parseTime(d.validityDate, '{y}-{m}-{d}') }}</el-form-item>
</div>
<div v-if="d.canDownCert=='1'" class="vipDownLoad" @click="vipDownLoad(d.perId)">
<i />会员证
......@@ -56,7 +68,8 @@
</div>
</el-col>
</el-row></div>
</el-row>
</div>
<div v-if="!loading" class="text-center pd20">
<el-divider>
<span v-if="showMore" @click="handleQuery">加载更多</span>
......@@ -80,13 +93,15 @@ const props = defineProps({
query: {
required: true,
type: Object,
default: () => {}
default: () => {
}
}
})
const listData = ref([])
const showMore = ref(false)
const loading = ref(false)
function handleQuery() {
loading.value = true
queryParams.pageNum++
......@@ -106,6 +121,7 @@ function vipDownLoad(perId) {
}
let queryParams = {}
function init() {
queryParams = {
pageNum: 0,
......@@ -117,36 +133,76 @@ function init() {
handleQuery()
}
defineExpose({
init
})
</script>
<style scoped lang="scss">
.flex{display: flex;justify-content: space-between;}
.person-item{position:relative;
display: flex;margin: 30px 0;background: #F5F7F9;
border-radius: 2px;padding: 10px 20px;
.photo{width: 100px; height: 130px}
.info{margin-left: 20px;width: 90%;
.name{font-size: 24px;display: flex;align-items: center;
margin: 10px 0;}
.el-form-item--default{margin-bottom: 0;}
<style lang="scss" scoped>
.flex {
display: flex;
justify-content: space-between;
}
.person-item {
position: relative;
display: flex;
margin: 30px 0;
background: #F5F7F9;
border-radius: 2px;
padding: 10px 20px;
.photo {
width: 100px;
height: 130px
}
.info {
margin-left: 20px;
width: 90%;
.name {
font-size: 24px;
display: flex;
align-items: center;
margin: 10px 0;
}
.el-form-item--default {
margin-bottom: 0;
}
}
.el-form-item__content{
.el-form-item__content {
font-size: 18px;
color: #95A1A6;}
color: #95A1A6;
}
@media (max-width: 500px) {
.forWei{background: #F7F8FA;}
.person-item{margin: 15px 0;background: #fff;
.photo{width: 120px;height: 140px;}
.info{margin-left: 15px;
.name{font-size: 18px}
}
@media (max-width: 500px) {
.forWei {
background: #F7F8FA;
}
.person-item {
margin: 15px 0;
background: #fff;
.photo {
width: 120px;
height: 140px;
}
.info {
margin-left: 15px;
.name {
font-size: 18px
}
:deep(.el-form-item--default .el-form-item__label){
padding: 0;
}
}
:deep(.el-form-item--default .el-form-item__label) {
padding: 0;
}
}
</style>
......
<template>
<div class="pv20">
<div class="matchItem" v-for="n in list" :key="n.id" @click="goDetail(n.id)">
<div v-for="n in list" :key="n.id" class="matchItem" @click="goDetail(n.id)">
<el-row :gutter="15">
<el-col :lg="7" :md="24" :xl="6">
<div class="popo">
<el-tag v-if="n.signType==0">{{ language==0?'个人':'Individual' }}</el-tag>
<el-tag v-if="n.signType==1">{{ language==0?'团体':'Team' }}</el-tag>
<el-tag v-if="n.signType==2">{{ language==0?'个人/团体':'Individual/Team' }}</el-tag>
<el-tag v-if="n.signType==0">{{ language == 0 ? '个人' : 'Individual' }}</el-tag>
<el-tag v-if="n.signType==1">{{ language == 0 ? '团体' : 'Team' }}</el-tag>
<el-tag v-if="n.signType==2">{{ language == 0 ? '个人/团体' : 'Individual/Team' }}</el-tag>
</div>
<img class="mauto mw100 coverLimitHeight" :src="fillImgUrl(n.coverUrl)">
<img :src="fillImgUrl(n.coverUrl)" class="mauto mw100 coverLimitHeight">
</el-col>
<el-col :lg="9" :md="12" :xl="12">
<div class="info">
<h3 class="esp">{{ n.name }}</h3>
<p class="ppl"><label>{{language==0?'赛事级别':'EVENT LEVEL'}}</label>{{n.level}}</p>
<p class="ppl"><label>{{ language==0?'赛事时间':'COMPETITION DATE' }}</label>{{n.beginTime?.slice(0,10)}} ~ {{ n.endTime?.slice(0,10) }}</p>
<p class="ppl esp"><label>{{ language==0?'地&ensp;&ensp;&ensp;&ensp;点':'LOCATION' }}</label>{{ n.address }}</p>
<!-- <p class="ppl"><label>{{ language==0?'报名截止':'Registration Deadline' }}</label>{{ n.signEndTime?.slice(0,10) }}</p>-->
<p class="ppl" v-if="n.contactPerson"><label>{{ language==0?'联&ensp;系&ensp;人':'CONTACT PERSON' }}</label>{{ n.contactPerson }}</p>
<p class="ppl"><label>{{ language==0?'联系电话':'TEL' }}</label>086-{{ n.contactTelno }}</p>
<p class="ppl" v-if="n.contactEmail"><label>{{ language==0?'邮&ensp;&ensp;&ensp;&ensp;箱':'EMAIL' }}</label>{{ n.contactEmail }}</p>
<p class="ppl"><label>{{ language == 0 ? '赛事级别' : 'EVENT LEVEL' }}</label>{{ n.level }}</p>
<p class="ppl"><label>{{
language == 0 ? '赛事时间' : 'COMPETITION DATE'
}}</label>{{ n.beginTime?.slice(0, 10) }} ~ {{ n.endTime?.slice(0, 10) }}</p>
<p class="ppl esp"><label>{{
language == 0 ? '地&nbsp;&nbsp;&nbsp;&nbsp;点' : 'LOCATION'
}}</label>{{ n.address }}</p>
<!-- <p class="ppl"><label>{{ language==0?'报名截止':'Registration Deadline' }}</label>{{ n.signEndTime?.slice(0,10) }}</p>-->
<p v-if="n.contactPerson" class="ppl"><label>{{
language == 0 ? '联&nbsp;系&nbsp;人' : 'CONTACT PERSON'
}}</label>{{ n.contactPerson }}</p>
<p class="ppl"><label>{{ language == 0 ? '联系电话' : 'TEL' }}</label>086-{{ n.contactTelno }}</p>
<p v-if="n.contactEmail" class="ppl"><label>{{
language == 0 ? '邮&nbsp;&nbsp;&nbsp;&nbsp;箱' : 'EMAIL'
}}</label>{{ n.contactEmail }}</p>
</div>
</el-col>
......@@ -31,41 +39,44 @@
<van-count-down :time="n.time" format="DD 天 HH 时 mm 分 ss 秒">
<template #default="timeData">
<span class="block">{{ timeData.days }}</span>
<span class="colon">{{ language==0?'天':'Days' }}</span>
<span class="colon">{{ language == 0 ? '天' : 'Days' }}</span>
<span class="block">{{ timeData.hours }}</span>
<span class="colon">{{ language==0?'时':'Hrs' }}</span>
<span class="colon">{{ language == 0 ? '时' : 'Hrs' }}</span>
<span class="block">{{ timeData.minutes }}</span>
<span class="colon">{{ language==0?'分':'Min' }}</span>
<span class="colon">{{ language == 0 ? '分' : 'Min' }}</span>
<span class="block">{{ timeData.seconds }}</span>
<span class="colon">{{ language==0?'秒':'Sec' }}</span>
<span class="colon">{{ language == 0 ? '秒' : 'Sec' }}</span>
</template>
</van-count-down>
<div class="text-center mt30">
<a class="btn-lineG mb20 mauto" style="display: block;" v-if="n.time>0">
<span v-if="n.time>0 && n.startSign<=0"> {{ language==0?'我要报名':'REGISTER' }}</span>
<a v-if="n.time>0" class="btn-lineG mb20 mauto" style="display: block;">
<span v-if="n.time>0 && n.startSign<=0"> {{ language == 0 ? '我要报名' : 'REGISTER' }}</span>
<span v-if="n.startSign>0"> {{ language==0?'报名未开始':'Not started yet' }}</span>
<span v-if="n.startSign>0"> {{ language == 0 ? '报名未开始' : 'Not started yet' }}</span>
</a>
<div v-else style="opacity: 0.5;" class="btn-lineG mb20 mauto text-center">
<div v-else class="btn-lineG mb20 mauto text-center" style="opacity: 0.5;">
{{ language == 0 ? '报名已结束' : 'Registration has ended' }}
</div>
<p class="text-gray uppercase">{{ language==0?'报名截止':'Registration Deadline' }}:{{ n.signEndTime?.slice(0,10) }}</p>
<p class="text-gray uppercase">{{
language == 0 ? '报名截止' : 'Registration Deadline'
}}:{{ n.signEndTime?.slice(0, 10) }}</p>
</div>
</el-col>
</el-row>
</div>
</div>
<el-empty :image="`/img/order_no.png`" :image-size="228" v-if="list?.length == 0" description=" "/>
<el-empty v-if="list?.length == 0" :image="`/img/order_no.png`" :image-size="228" description=" " />
</template>
<script setup>
import {ref} from "vue";
import {onMounted} from "@vue/runtime-core";
import {dayjs} from "element-plus"
import {useStorage} from "@vueuse/core/index";
const language= useStorage('language',0)
import { ref } from 'vue'
import { onMounted } from '@vue/runtime-core'
import { dayjs } from 'element-plus'
import { useStorage } from '@vueuse/core/index'
const language = useStorage('language', 0)
const router = useRouter()
const time = ref(0)
......@@ -75,13 +86,14 @@ const props = defineProps({
required: true
}
})
onMounted(()=>{
for(let n of props.list){
onMounted(() => {
for (const n of props.list) {
var today = dayjs().format('YYYY-MM-DD HH:mm:ss')
n.time = dayjs(n.signEndTime).diff(today, 'millisecond')
n.startSign = dayjs(n.signBeginTime).diff(today, 'millisecond')
}
})
function goDetail(id) {
const routeData = router.resolve({
path: `/match/list/${id}`
......@@ -90,22 +102,39 @@ function goDetail(id) {
}
</script>
<style scoped lang="scss">
.pv20{padding: 0 20px;}
.mt60{margin-top: 60px}
<style lang="scss" scoped>
.pv20 {
padding: 0 20px;
}
.mt60 {
margin-top: 60px
}
.matchItem {
cursor: pointer;padding: 0 0 20px;
background: #FFFFFF;border-bottom: 1px solid #e5e5e5;
cursor: pointer;
padding: 0 0 20px;
background: #FFFFFF;
border-bottom: 1px solid #e5e5e5;
position: relative;
.el-col{padding-top: 20px}
.countDownTitle{margin: 0}
.el-col {
padding-top: 20px
}
.countDownTitle {
margin: 0
}
&:last-child {
border-bottom: none;
}
.el-avatar {
position: absolute;
left: 20px;
top: 30px;
img {
background: #fff;
}
......@@ -124,7 +153,8 @@ function goDetail(id) {
}
h3 {
font-weight: 500;margin: 0 0 10px;
font-weight: 500;
margin: 0 0 10px;
font-size: 18px;
color: #000000;
text-overflow: ellipsis;
......@@ -134,6 +164,7 @@ function goDetail(id) {
color: var(--el-color-primary);
}
}
.countDownTitle {
text-align: center;
color: #525F6B;
......@@ -161,10 +192,19 @@ function goDetail(id) {
width: 100%;
left: 0;
}
.info .ppl{margin: 5px 0;}
.ppl{color: #29343C;
label{color: #929AA0;}
.info .ppl {
margin: 5px 0;
}
.ppl {
color: #29343C;
label {
color: #929AA0;
}
}
.van-count-down {
text-align: center;
margin: 20px 0;
......@@ -178,7 +218,8 @@ function goDetail(id) {
}
.block {
display: inline-block; opacity: 0.7;
display: inline-block;
opacity: 0.7;
width: 52px;
color: #fff;
font-size: 26px;
......@@ -189,7 +230,11 @@ function goDetail(id) {
line-height: 50px;
text-align: center;
}
@media (max-width: 1450px) {
.block{width: 44px;font-size: 20px;}
.block {
width: 44px;
font-size: 20px;
}
}
</style>
......
<template>
<div v-loading="loading" class="app-container">
<div class="mt30" />
<div class="mt30"/>
<div v-if="error">
<el-result
:title="language==0?'未找到赛事':'No Data'"
icon="error"
>
<template #extra />
<template #extra/>
</el-result>
</div>
<div v-else class="box mb20">
......@@ -33,7 +33,7 @@
{{ matchData.endTime?.slice(0, 10) }}</p>
<p v-if="matchData.address" class="ppl">
<label class="bm3">
{{ language == 0 ? '地&ensp;&ensp;&ensp;&ensp;点' : 'LOCATION' }}
{{ language == 0 ? '地&nbsp;&nbsp;&nbsp;&nbsp;点' : 'LOCATION' }}
</label>
{{ matchData.address }}</p>
<!-- <p class="ppl" v-if="matchData.signEndTime"><label class="bm4">Registration Deadline:</label>{{ matchData.signEndTime?.slice(0, 10) }}</p>-->
......@@ -49,7 +49,7 @@
fill="#d3d8d9" p-id="37236"
/>
</svg>
{{ language == 0 ? '联&ensp;系&ensp;人' : 'CONTACT PERSON' }}</label>{{ matchData.contactPerson }}
{{ language == 0 ? '联&nbsp;系&nbsp;人' : 'CONTACT PERSON' }}</label>{{ matchData.contactPerson }}
</p>
<p class="ppl">
......@@ -78,7 +78,7 @@
fill="#d3d8d9" p-id="40178"
/>
</svg>
{{ language == 0 ? '邮&ensp;&ensp;&ensp;&ensp;箱' : 'EMAIL' }}
{{ language == 0 ? '邮&nbsp;&nbsp;&nbsp;&nbsp;箱' : 'EMAIL' }}
</label>
{{ matchData.contactEmail }}
</p>
......@@ -94,7 +94,7 @@
fill="#d3d8d9" p-id="6579"
/>
</svg>
{{ language == 0 ? '分&ensp;站&ensp;赛' : 'NO. OF TOURNAMENTS' }}</label>
{{ language == 0 ? '分&nbsp;站&nbsp;赛' : 'NO. OF TOURNAMENTS' }}</label>
{{ matchData.cpts.length }}
</p>
</div>
......@@ -105,7 +105,7 @@
{{ matchData.beginTime?.slice(0, 10) }} ~ {{ matchData.endTime?.slice(0, 10) }}
</p>
<p class="ppl esp">
<label>{{ language == 0 ? '地&ensp;&ensp;&ensp;&ensp;点' : 'LOCATION' }}</label>
<label>{{ language == 0 ? '地&nbsp;&nbsp;&nbsp;&nbsp;点' : 'LOCATION' }}</label>
{{ matchData.address }}
</p>
<p class="ppl"><label>{{ language == 0 ? '赛事级别' : 'EVENT LEVEL' }}</label>{{ matchData.level }}</p>
......@@ -114,17 +114,17 @@
<!-- {{ matchData.signEndTime?.slice(0, 10) }}-->
<!-- </p>-->
<p v-if="matchData.contactPerson" class="ppl">
<label>{{ language == 0 ? '联&ensp;系&ensp;人' : 'CONTACT PERSON' }}</label>
<label>{{ language == 0 ? '联&nbsp;系&nbsp;人' : 'CONTACT PERSON' }}</label>
{{ matchData.contactPerson }}
</p>
<p class="ppl"><label>{{ language == 0 ? '联系电话' : 'TEL' }}</label>
086-{{ matchData.contactTelno }}
</p>
<p v-if="matchData.contactEmail" class="ppl">
<label>{{ language == 0 ? '邮&ensp;&ensp;&ensp;&ensp;箱' : 'EMAIL' }}</label>
<label>{{ language == 0 ? '邮&nbsp;&nbsp;&nbsp;&nbsp;箱' : 'EMAIL' }}</label>
{{ matchData.contactEmail }}</p>
</div>
<div style="height: 30px" />
<div style="height: 30px"/>
<div class="ppl_pb">
<el-link
v-if="matchData.signKnowUrl&&JSON.parse(matchData.signKnowUrl)?.length>0"
......@@ -133,7 +133,7 @@
target="_blank" type="primary"
>
<el-icon :size="20">
<Download />
<Download/>
</el-icon>
{{ language == 0 ? '报名须知' : 'Notes' }}
</el-link>
......@@ -145,7 +145,7 @@
target="_blank" type="primary"
>
<el-icon :size="20">
<Download />
<Download/>
</el-icon>
{{ language == 0 ? '免责声明' : 'Disclaimers' }}
</el-link>
......@@ -156,7 +156,7 @@
type="primary"
>
<el-icon :size="20">
<Download />
<Download/>
</el-icon>
{{ language == 0 ? '赛事规程' : 'Competition Regulations' }}
</el-link>
......@@ -210,7 +210,7 @@
</el-card>
<!-- 只联赛有-->
<quick-row v-if="matchData.leagueId==0" :match-id="matchId" />
<quick-row v-if="matchData.leagueId==0" :match-id="matchId"/>
<el-row v-if="matchData.type=='0'" :gutter="20">
<el-col :lg="18">
......@@ -222,11 +222,11 @@
</li>
</ul>
</div>
<matchInfo v-if="menu[0].active==1" :form="matchData" />
<matchInfo v-if="menu[0].active==1" :form="matchData"/>
<div v-if="menu[1].active==1">
<match-info-project-list :is-national="isNational" :match-id="matchData.id" />
<match-info-project-list :is-national="isNational" :match-id="matchData.id"/>
</div>
<match-schedule-list v-if="menu[2].active==1" :match-data="matchData" />
<match-schedule-list v-if="menu[2].active==1" :match-data="matchData"/>
<div v-if="menu[3].active==1">
<div v-if="matchData.showPersonFlag=='1'">
<!-- <el-row :gutter="20" v-if="matchData.signType == '0'">-->
......@@ -299,24 +299,24 @@
</el-row>
</div>
<div v-else>
<el-empty :image="`/img/order_no.png`" :image-size="228" description="" />
<el-empty :image="`/img/order_no.png`" :image-size="228" description=""/>
</div>
</div>
<div v-if="menu[4].active==1">
<!--成绩-->
<el-empty :image="`/img/order_no.png`" :image-size="228" description="" />
<el-empty :image="`/img/order_no.png`" :image-size="228" description=""/>
</div>
<div v-if="menu[5].active==1" class="pd20">
<div class="xzbox">
<div v-html="matchData.signKnow" />
<div v-html="matchData.signKnow"/>
<div v-if="matchData.signKnowUrl">
<el-link
v-for="(item,index) in JSON.parse(matchData.signKnowUrl)" :href="fillImgUrl(item.url)"
target="_blank" type="primary"
>
<el-icon :size="20">
<Download />
<Download/>
</el-icon>
{{ item.name }}
</el-link>
......@@ -324,11 +324,11 @@
</div>
</div>
</el-card>
<div style="height: 20px" />
<div style="height: 20px"/>
</el-col>
<el-col :lg="6">
<match-news :match-id="matchId" />
<match-news :match-id="matchId"/>
</el-col>
</el-row>
......@@ -343,9 +343,9 @@
</ul>
</div>
<!-- 分站赛-->
<substation-list v-if="menu1[0].active==1" :list="matchData.cpts" />
<matchInfo v-if="menu1[1].active==1" :form="matchData" />
<match-schedule-list v-if="menu1[2].active==1" :match-data="matchData" />
<substation-list v-if="menu1[0].active==1" :list="matchData.cpts"/>
<matchInfo v-if="menu1[1].active==1" :form="matchData"/>
<match-schedule-list v-if="menu1[2].active==1" :match-data="matchData"/>
</el-card>
</el-col>
</el-row>
......@@ -356,8 +356,8 @@
<img v-else src="@/assets/logo/Invitation_e.png">
</div>
<affix-invitation ref="dialogInvitationRef" />
<div style="height: 50px" />
<affix-invitation ref="dialogInvitationRef"/>
<div style="height: 50px"/>
<el-dialog
v-model="signTypePop" center class="pcloginpop"
......@@ -391,9 +391,9 @@
v-if="matchData.isAirView" class="ding"
@click="openPickup"
>{{ language == 0 ? '接 / 送机服务' : 'Pick-up/drop-off service' }}</a>
<pickup ref="pickupRef" />
<pickup ref="pickupRef"/>
<checkAllSportsman ref="checkAllSportsmanRef" />
<checkAllSportsman ref="checkAllSportsmanRef"/>
</div>
</template>
......@@ -405,9 +405,9 @@ 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 Pickup from '@/viewsPc/components/pickup'
import { getCurrentInstance, ref } from 'vue'
import { reactive, onMounted } from '@vue/runtime-core'
import { useRoute, useRouter } from 'vue-router'
import {getCurrentInstance, ref} from 'vue'
import {reactive, onMounted} from '@vue/runtime-core'
import {useRoute, useRouter} from 'vue-router'
import AffixInvitation from '@/viewsPc/match/components/affix-invitation'
import checkAllSportsman from '@/viewsPc/match/components/checkAllSportsman'
......@@ -415,14 +415,14 @@ import checkAllSportsman from '@/viewsPc/match/components/checkAllSportsman'
const language = useStorage('language', 0)
const route = useRoute()
const router = useRouter()
const { proxy } = getCurrentInstance()
const {proxy} = getCurrentInstance()
import * as match from '@/apiPc/match'
import { toRefs } from '@vueuse/shared'
import { dayjs, ElMessage, ElMessageBox } from 'element-plus'
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 { Search } from '@element-plus/icons-vue'
import { preCheckForGroup } from '@/apiPc/match'
import {useStorage} from '@vueuse/core/index'
import {Search} from '@element-plus/icons-vue'
import {preCheckForGroup} from '@/apiPc/match'
const user = useUserStore().user
const group = useUserStore().group
......@@ -434,16 +434,16 @@ const data = reactive({
groupId: '',
activeName2: 'first',
menu: [
{ name: 'Event details', cn: '赛事详情', active: 1 },
{ name: 'Event settings', cn: '赛事设项', active: 0 },
{ name: 'Schedule', cn: '日程', active: 0 },
{ name: 'Participating teams', cn: '参赛人员', active: 0 },
{ name: 'Achievement', cn: '成绩', active: 0 },
{ name: 'Notes', cn: '报名须知', active: 0 }],
{name: 'Event details', cn: '赛事详情', active: 1},
{name: 'Event settings', cn: '赛事设项', active: 0},
{name: 'Schedule', cn: '日程', active: 0},
{name: 'Participating teams', cn: '参赛人员', active: 0},
{name: 'Achievement', cn: '成绩', active: 0},
{name: 'Notes', cn: '报名须知', active: 0}],
menu1: [
{ name: 'Tournaments', cn: '分站赛', active: 1 },
{ name: 'Event details', cn: '赛事详情', active: 0 },
{ name: 'Schedule', cn: '日程', active: 0 }],
{name: 'Tournaments', cn: '分站赛', active: 1},
{name: 'Event details', cn: '赛事详情', active: 0},
{name: 'Schedule', cn: '日程', active: 0}],
signDoneGroupList: [],
signDoneGroupListToTal: 0,
queryGroupList: {
......@@ -484,7 +484,7 @@ onMounted(() => {
})
function getMatchId() {
match.getMaList({ topFlag: 1, status: 1 }).then((res) => {
match.getMaList({topFlag: 1, status: 1}).then((res) => {
matchId.value = res.rows[0].id
getMatch(matchId.value)
getGroupListByCptId()
......@@ -493,7 +493,7 @@ function getMatchId() {
function getMatch(id) {
loading.value = true
match.getMatchById({ id: id }).then(res => {
match.getMatchById({id: id}).then(res => {
matchData.value = res.data
loading.value = false
var today = dayjs().format('YYYY-MM-DD HH:mm:ss')
......@@ -505,7 +505,7 @@ function getMatch(id) {
isNational.value = true
}
}).catch(res => {
router.push({ path: '/match/list' })
router.push({path: '/match/list'})
loading.value = false
// setTimeout("window.location.reload()", 1000)
})
......@@ -656,7 +656,7 @@ function goGeren() {
// 注册
router.push({
name: 'personalRegister',
query: { matchId: matchId.value }
query: {matchId: matchId.value}
})
}
......@@ -829,7 +829,7 @@ function switchSignType() {
// 个人报名校验
async function handelGeRenNext() {
const res = await match.preCheckForPerson({ type: '1' })
const res = await match.preCheckForPerson({type: '1'})
// 不给报名
if (res.data == 0) {
await proxy.$modal.confirm(
......@@ -841,7 +841,7 @@ async function handelGeRenNext() {
}
// 正常报名
if (res.data == 1) {
const flag = await getCheckOcr({ type: '1' })
const flag = await getCheckOcr({type: '1'})
if (flag) await goPersonalSign()
}
// 提示
......@@ -851,8 +851,8 @@ async function handelGeRenNext() {
? '运动员的WDSF会员号已变更,是否更新?'
: 'The athlete`s WDSF membership number has been changed. Should it be updated?'
)
await match.preCheckForPerson({ type: '2' })
const flag = await getCheckOcr({ type: '1' })
await match.preCheckForPerson({type: '2'})
const flag = await getCheckOcr({type: '1'})
if (flag) await goPersonalSign()
}
}
......@@ -877,7 +877,7 @@ const openPickup = () => {
async function handelPreCheckForGroup(fn) {
const res = await match.preCheckForGroup(groupId.value, '1')
if (res.data == 1 || res.data == 0) {
const flag = await getCheckOcr({ type: '2', groupId: groupId.value })
const flag = await getCheckOcr({type: '2', groupId: groupId.value})
if (flag) await fn()
}
if (res.data == 2) {
......@@ -886,13 +886,13 @@ async function handelPreCheckForGroup(fn) {
? '运动员的WDSF会员号已变更,是否更新?'
: 'The athlete`s WDSF membership number has been changed. Should it be updated?')
await match.preCheckForGroup(groupId.value, '2')
const flag = await getCheckOcr({ type: '2', groupId: groupId.value })
const flag = await getCheckOcr({type: '2', groupId: groupId.value})
if (flag) await fn()
}
}
async function getCheckOcr(obj) {
const { data } = await match.checkOcr(obj)
const {data} = await match.checkOcr(obj)
if (!data) {
// 人员ocr未通过
await proxy.$modal.confirm(language.value == 0 ? '请完善人员信息' : 'Please complete the personnel information')
......
......@@ -7,31 +7,31 @@
<el-card>
<ul>
<li>
<label>{{ language==0?'类型':'Type' }}</label>
<label>{{ language == 0 ? '类型' : 'Type' }}</label>
<el-radio-group v-model="query.type" @change="getList">
<el-radio-button value="-1">{{ language==0?'全部':'All' }}</el-radio-button>
<el-radio-button value="0">{{ language==0?'独立赛':'Tournaments' }}</el-radio-button>
<el-radio-button value="1">{{ language==0?'联赛':'League' }}</el-radio-button>
<el-radio-button value="-1">{{ language == 0 ? '全部' : 'All' }}</el-radio-button>
<el-radio-button value="0">{{ language == 0 ? '独立赛' : 'Tournaments' }}</el-radio-button>
<el-radio-button value="1">{{ language == 0 ? '联赛' : 'League' }}</el-radio-button>
</el-radio-group>
</li>
<li>
<label>{{ language==0?'状态':'Status' }}</label>
<label>{{ language == 0 ? '状态' : 'Status' }}</label>
<el-radio-group
v-model="query.progressStatusCode"
@change="getList"
>
<el-radio-button value="-1">{{ language==0?'全部':'All' }}</el-radio-button>
<el-radio-button value="2">{{ language==0?'报名中':'Registering now' }}</el-radio-button>
<el-radio-button value="3">{{ language==0?'赛事即将开始':'Begin in a minute' }}</el-radio-button>
<el-radio-button value="4">{{ language==0?'赛事进行中':'In progress' }}</el-radio-button>
<el-radio-button value="5">{{ language==0?'已结束':'Ended' }}</el-radio-button>
<el-radio-button value="-1">{{ language == 0 ? '全部' : 'All' }}</el-radio-button>
<el-radio-button value="2">{{ language == 0 ? '报名中' : 'Registering now' }}</el-radio-button>
<el-radio-button value="3">{{ language == 0 ? '赛事即将开始' : 'Begin in a minute' }}</el-radio-button>
<el-radio-button value="4">{{ language == 0 ? '赛事进行中' : 'In progress' }}</el-radio-button>
<el-radio-button value="5">{{ language == 0 ? '已结束' : 'Ended' }}</el-radio-button>
</el-radio-group>
</li>
<li>
<label>{{ language==0?'时间':'Date' }}</label>
<label>{{ language == 0 ? '时间' : 'Date' }}</label>
<el-radio-group v-model="query.month" @change="getList">
<el-radio-button value="">{{ language==0?'全部':'All' }}</el-radio-button>
<el-radio-button v-for="m in monthList" :key="m" :value="m">{{m}}</el-radio-button>
<el-radio-button value="">{{ language == 0 ? '全部' : 'All' }}</el-radio-button>
<el-radio-button v-for="m in monthList" :key="m" :value="m">{{ m }}</el-radio-button>
</el-radio-group>
</li>
</ul>
......@@ -41,7 +41,7 @@
</div>
<div class="box">
<div class="listTitle">
<h3>{{ language==0?'赛事列表':'List' }}</h3>
<h3>{{ language == 0 ? '赛事列表' : 'List' }}</h3>
<div class="search">
<el-input
v-model="query.name"
......@@ -49,36 +49,42 @@
class="input-with-select" @change="getList"
>
<template #append>
<el-button type="success" round @click="getList">{{ language==0?'查询':'Search' }}</el-button>
<el-button round type="success" @click="getList">{{ language == 0 ? '查询' : 'Search' }}</el-button>
</template>
</el-input>
</div>
</div>
<div v-loading="loading">
<div class="matchItem" v-for="n in list" :key="n.id" @click="goDetail(n.id)">
<div v-for="n in list" :key="n.id" class="matchItem" @click="goDetail(n.id)">
<el-row :gutter="15" align="middle">
<el-col :lg="7" :md="24" :xl="6">
<div class="popo">
<el-tag v-if="n.signType==0">{{ language==0?'个人':'Individual' }}</el-tag>
<el-tag v-if="n.signType==1">{{ language==0?'团体':'Team' }}</el-tag>
<el-tag v-if="n.signType==2">{{ language==0?'个人/团体':'Individual/Team' }}</el-tag>
<el-tag v-if="n.signType==0">{{ language == 0 ? '个人' : 'Individual' }}</el-tag>
<el-tag v-if="n.signType==1">{{ language == 0 ? '团体' : 'Team' }}</el-tag>
<el-tag v-if="n.signType==2">{{ language == 0 ? '个人/团体' : 'Individual/Team' }}</el-tag>
</div>
<img class="mauto mw100 coverLimitHeight" :src="fillImgUrl(n.coverUrl)">
<img :src="fillImgUrl(n.coverUrl)" class="mauto mw100 coverLimitHeight">
</el-col>
<el-col :lg="9" :md="12" :xl="12">
<div class="info">
<h3 class="esp">{{ n.name }}</h3>
<p class="ppl"><label>{{language==0?'赛事级别':'EVENT LEVEL'}}:</label>{{n.level}}</p>
<p class="ppl esp"><label>{{ language==0?'赛事时间':'COMPETITION DATE' }}:</label>{{n.beginTime?.slice(0,10)}} ~ {{ n.endTime?.slice(0,10) }}</p>
<!-- <p class="ppl" v-if="n.address"><label>{{ language==0?'地&ensp;&ensp;&ensp;&ensp;点':'Location' }}:</label>{{ n.address }}</p>-->
<!-- <p class="ppl"><label>{{ language==0?'报名截止':'Registration Deadline' }}:</label>{{ n.signEndTime?.slice(0,10) }}</p>-->
<p class="ppl"><label>{{ language==0?'联&ensp;&ensp;人':'CONTACT PERSON' }}:</label>{{ n.contactPerson }}</p>
<p class="ppl"><label>{{ language==0?'联系电话':'TEL' }}:</label>086-{{ n.contactTelno }}</p>
<p class="ppl esp"><label>{{ language==0?'邮&ensp;&ensp;&ensp;&ensp;箱':'EMAIL' }}:</label>{{ n.contactEmail }}</p>
<p class="ppl" v-if="n.type=='1'">
<label>{{ language==0?'分&ensp;&ensp;赛':'NO. OF TOURNAMENTS' }}:</label>{{n.cptsSize}}
<p class="ppl"><label>{{ language == 0 ? '赛事级别' : 'EVENT LEVEL' }}:</label>{{ n.level }}</p>
<p class="ppl esp"><label>{{
language == 0 ? '赛事时间' : 'COMPETITION DATE'
}}:</label>{{ n.beginTime?.slice(0, 10) }} ~ {{ n.endTime?.slice(0, 10) }}</p>
<!-- <p class="ppl" v-if="n.address"><label>{{ language==0?'地&nbsp;&nbsp;&nbsp;&nbsp;点':'Location' }}:</label>{{ n.address }}</p>-->
<!-- <p class="ppl"><label>{{ language==0?'报名截止':'Registration Deadline' }}:</label>{{ n.signEndTime?.slice(0,10) }}</p>-->
<p class="ppl"><label>{{
language == 0 ? '联&nbsp;&nbsp;人' : 'CONTACT PERSON'
}}:</label>{{ n.contactPerson }}</p>
<p class="ppl"><label>{{ language == 0 ? '联系电话' : 'TEL' }}:</label>086-{{ n.contactTelno }}</p>
<p class="ppl esp"><label>{{
language == 0 ? '邮&nbsp;&nbsp;&nbsp;&nbsp;箱' : 'EMAIL'
}}:</label>{{ n.contactEmail }}</p>
<p v-if="n.type=='1'" class="ppl">
<label>{{ language == 0 ? '分&nbsp;&nbsp;赛' : 'NO. OF TOURNAMENTS' }}:</label>{{ n.cptsSize }}
</p>
</div>
</el-col>
......@@ -90,32 +96,36 @@
<van-count-down :time="n.time" format="DD 天 HH 时 mm 分 ss 秒">
<template #default="timeData">
<span class="block">{{ timeData.days }}</span>
<span class="colon">{{ language==0?'天':'Days' }}</span>
<span class="colon">{{ language == 0 ? '天' : 'Days' }}</span>
<span class="block">{{ timeData.hours }}</span>
<span class="colon">{{ language==0?'时':'Hrs' }}</span>
<span class="colon">{{ language == 0 ? '时' : 'Hrs' }}</span>
<span class="block">{{ timeData.minutes }}</span>
<span class="colon">{{ language==0?'分':'Min' }}</span>
<span class="colon">{{ language == 0 ? '分' : 'Min' }}</span>
<span class="block">{{ timeData.seconds }}</span>
<span class="colon">{{ language==0?'秒':'Sec' }}</span>
<span class="colon">{{ language == 0 ? '秒' : 'Sec' }}</span>
</template>
</van-count-down>
<div class="text-center mt30">
<a class="btn-lineG mb20 mauto" v-if="n.time>0" style="display: block;">
{{ language==0?'我要报名':'REGISTER' }}</a>
<div v-else style="opacity: 0.5;" class="btn-lineG mb20 mauto">{{ language==0?'报名已结束':'Registration has ended' }}</div>
<p class="text-gray uppercase">{{ language==0?'报名截止':'Registration Deadline' }}:{{ n.signEndTime?.slice(0,10) }}</p>
<a v-if="n.time>0" class="btn-lineG mb20 mauto" style="display: block;">
{{ language == 0 ? '我要报名' : 'REGISTER' }}</a>
<div v-else class="btn-lineG mb20 mauto" style="opacity: 0.5;">
{{ language == 0 ? '报名已结束' : 'Registration has ended' }}
</div>
<p class="text-gray uppercase">{{
language == 0 ? '报名截止' : 'Registration Deadline'
}}:{{ n.signEndTime?.slice(0, 10) }}</p>
</div>
</el-col>
</el-row>
</div>
<el-empty :image="`/img/order_no.png`" :image-size="228" v-if="list?.length == 0" description=" "/>
<el-empty v-if="list?.length == 0" :image="`/img/order_no.png`" :image-size="228" description=" "/>
</div>
<div v-if="total>10" class="pc-page-box mb20">
<PaginationPc v-model:page="query.pageNum" v-model:limit="query.pageSize" :total="total" @pagination="getList" />
<PaginationPc v-model:limit="query.pageSize" v-model:page="query.pageNum" :total="total" @pagination="getList"/>
</div>
<div class="mb20"></div>
</div>
......@@ -123,17 +133,18 @@
</template>
<script setup>
import { getCurrentInstance, ref } from 'vue'
import { reactive, onMounted } from '@vue/runtime-core'
import { useRouter } from 'vue-router'
import { dayjs } from 'element-plus'
import {getCurrentInstance, ref} from 'vue'
import {reactive, onMounted} from '@vue/runtime-core'
import {useRouter} from 'vue-router'
import {dayjs} from 'element-plus'
const router = useRouter()
const { proxy } = getCurrentInstance()
const {proxy} = getCurrentInstance()
import * as match from '@/apiPc/match'
import {useStorage} from "@vueuse/core/index";
const language= useStorage('language',0)
const typeList = ref([{ label: '全部', id: '0' }])
const language = useStorage('language', 0)
const typeList = ref([{label: '全部', id: '0'}])
const list = ref([])
const projectList = ref([])
const monthList = ref([])
......@@ -141,7 +152,7 @@ const loading = ref(false)
const activeName = ref('')
const total = ref(0)
const query = ref({
type:'-1',
type: '-1',
projectId: '',
progressStatusCode: '-1',
month: '',
......@@ -184,7 +195,7 @@ function getList() {
loading.value = true
match.getMaList(query.value).then((res) => {
list.value = res.rows
for(let n of list.value){
for (let n of list.value) {
var today = dayjs().format('YYYY-MM-DD HH:mm:ss')
n.time = dayjs(n.signEndTime).diff(today, 'millisecond')
}
......@@ -204,20 +215,32 @@ function goDetail(id) {
}
</script>
<style scoped lang="scss">
<style lang="scss" scoped>
.app-container {
background: #f5f7f9;
padding: 0;
}
.matchItem {
cursor: pointer;padding:10px 20px 20px;box-shadow: 0 0 6px #eee;
background: #FFFFFF;margin: 0 0 20px;
cursor: pointer;
padding: 10px 20px 20px;
box-shadow: 0 0 6px #eee;
background: #FFFFFF;
margin: 0 0 20px;
position: relative;
.el-col{padding-top: 20px}
.countDownTitle{margin: 0}
.el-col {
padding-top: 20px
}
.countDownTitle {
margin: 0
}
&:last-child {
border-bottom: none;
}
.el-avatar {
position: absolute;
left: 20px;
......@@ -241,7 +264,8 @@ function goDetail(id) {
}
h3 {
font-weight: 500;margin: 0 0 10px;
font-weight: 500;
margin: 0 0 10px;
font-size: 18px;
color: #000000;
text-overflow: ellipsis;
......@@ -251,6 +275,7 @@ function goDetail(id) {
color: var(--el-color-primary);
}
}
.countDownTitle {
text-align: center;
color: #525F6B;
......@@ -278,11 +303,23 @@ function goDetail(id) {
width: 100%;
left: 0;
}
.info h3{margin: 0 0 15px}
.info .ppl{margin: 6px 0;}
.ppl{color: #29343C;
label{color: #929AA0;}
.info h3 {
margin: 0 0 15px
}
.info .ppl {
margin: 6px 0;
}
.ppl {
color: #29343C;
label {
color: #929AA0;
}
}
.van-count-down {
text-align: center;
margin: 20px 0;
......@@ -296,7 +333,8 @@ function goDetail(id) {
}
.block {
display: inline-block; opacity: 0.7;
display: inline-block;
opacity: 0.7;
width: 52px;
color: #fff;
font-size: 26px;
......@@ -307,9 +345,14 @@ function goDetail(id) {
line-height: 50px;
text-align: center;
}
@media (max-width: 1450px) {
.block{width: 44px;font-size: 20px;}
.block {
width: 44px;
font-size: 20px;
}
}
.el-pagination {
--el-pagination-button-disabled-bg-color: transparent;
justify-content: center;
......@@ -318,7 +361,10 @@ function goDetail(id) {
}
.kind {
.el-radio-group{width: 90%;}
.el-radio-group {
width: 90%;
}
ul {
list-style: none;
......@@ -326,11 +372,23 @@ function goDetail(id) {
margin: 0 0 10px;
display: flex;
align-items: flex-start;
& > label {padding: 8px 0;
width:5em;text-align: right;font-weight: normal;
& > label {
padding: 8px 0;
width: 5em;
text-align: right;
font-weight: normal;
}
.el-radio-button {
min-width: 90px;
text-align: center;
}
&:last-child {
border-bottom: none;
margin: 0
}
.el-radio-button{min-width: 90px;text-align: center;}
&:last-child{border-bottom: none;margin: 0}
}
}
}
......@@ -351,5 +409,7 @@ function goDetail(id) {
background: var(--el-color-primary)
}
.mw100{max-width: 100%;}
.mw100 {
max-width: 100%;
}
</style>
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!