no message
Showing
32 changed files
with
470 additions
and
413 deletions
| ... | @@ -13,7 +13,7 @@ | ... | @@ -13,7 +13,7 @@ |
| 13 | <el-menu-item index="/">{{ language==0?'首页':'HOME' }}</el-menu-item> | 13 | <el-menu-item index="/">{{ language==0?'首页':'HOME' }}</el-menu-item> |
| 14 | <el-menu-item index="/news">{{ language==0?'新闻资讯':'NEWS' }}</el-menu-item> | 14 | <el-menu-item index="/news">{{ language==0?'新闻资讯':'NEWS' }}</el-menu-item> |
| 15 | <el-menu-item index="/notice">{{ language==0?'通知公告':'NOTICEBOARD' }}</el-menu-item> | 15 | <el-menu-item index="/notice">{{ language==0?'通知公告':'NOTICEBOARD' }}</el-menu-item> |
| 16 | <el-menu-item index="/match/list/0">{{ language==0?'大赛报名':'SIGN UP' }}</el-menu-item> | 16 | <el-menu-item index="/match/list">{{ language==0?'大赛报名':'SIGN UP' }}</el-menu-item> |
| 17 | <el-menu-item index="/saiC">{{ language==0?'赛程安排':'COMPETITIONS' }}</el-menu-item> | 17 | <el-menu-item index="/saiC">{{ language==0?'赛程安排':'COMPETITIONS' }}</el-menu-item> |
| 18 | <el-menu-item index="/meta">{{ language==0?'媒体中心':'MEDIA' }}</el-menu-item> | 18 | <el-menu-item index="/meta">{{ language==0?'媒体中心':'MEDIA' }}</el-menu-item> |
| 19 | <el-menu-item index="/guide">{{ language==0?'参赛指南':'GUIDELINE' }}</el-menu-item> | 19 | <el-menu-item index="/guide">{{ language==0?'参赛指南':'GUIDELINE' }}</el-menu-item> |
| ... | @@ -31,7 +31,7 @@ | ... | @@ -31,7 +31,7 @@ |
| 31 | <el-menu-item index="/">{{ language==0?'首页':'HOME' }}</el-menu-item> | 31 | <el-menu-item index="/">{{ language==0?'首页':'HOME' }}</el-menu-item> |
| 32 | <el-menu-item index="/news">{{ language==0?'新闻资讯':'NEWS' }}</el-menu-item> | 32 | <el-menu-item index="/news">{{ language==0?'新闻资讯':'NEWS' }}</el-menu-item> |
| 33 | <el-menu-item index="/notice">{{ language==0?'通知公告':'NOTICEBOARD' }}</el-menu-item> | 33 | <el-menu-item index="/notice">{{ language==0?'通知公告':'NOTICEBOARD' }}</el-menu-item> |
| 34 | <el-menu-item index="/match/list/0">{{ language==0?'大赛报名':'SIGN UP' }}</el-menu-item> | 34 | <el-menu-item index="/match/list">{{ language==0?'大赛报名':'SIGN UP' }}</el-menu-item> |
| 35 | <el-menu-item index="/saiC">{{ language==0?'赛程安排':'COMPETITIONS' }}</el-menu-item> | 35 | <el-menu-item index="/saiC">{{ language==0?'赛程安排':'COMPETITIONS' }}</el-menu-item> |
| 36 | <el-menu-item index="/meta">{{ language==0?'媒体中心':'MEDIA' }}</el-menu-item> | 36 | <el-menu-item index="/meta">{{ language==0?'媒体中心':'MEDIA' }}</el-menu-item> |
| 37 | <el-menu-item index="/guide">{{ language==0?'参赛指南':'GUIDELINE' }}</el-menu-item> | 37 | <el-menu-item index="/guide">{{ language==0?'参赛指南':'GUIDELINE' }}</el-menu-item> |
| ... | @@ -94,7 +94,7 @@ | ... | @@ -94,7 +94,7 @@ |
| 94 | <el-menu-item index="/">首页</el-menu-item> | 94 | <el-menu-item index="/">首页</el-menu-item> |
| 95 | <el-menu-item index="/news">新闻资讯</el-menu-item> | 95 | <el-menu-item index="/news">新闻资讯</el-menu-item> |
| 96 | <el-menu-item index="/notice">通知公告</el-menu-item> | 96 | <el-menu-item index="/notice">通知公告</el-menu-item> |
| 97 | <el-menu-item index="/match/list/0">大赛报名</el-menu-item> | 97 | <el-menu-item index="/match/list">大赛报名</el-menu-item> |
| 98 | <el-menu-item index="/saiC">赛程安排</el-menu-item> | 98 | <el-menu-item index="/saiC">赛程安排</el-menu-item> |
| 99 | <el-menu-item index="/meta">媒体中心</el-menu-item> | 99 | <el-menu-item index="/meta">媒体中心</el-menu-item> |
| 100 | <el-menu-item index="/guide">参赛指南</el-menu-item> | 100 | <el-menu-item index="/guide">参赛指南</el-menu-item> |
| ... | @@ -112,7 +112,7 @@ | ... | @@ -112,7 +112,7 @@ |
| 112 | <el-menu-item index="/">HOME</el-menu-item> | 112 | <el-menu-item index="/">HOME</el-menu-item> |
| 113 | <el-menu-item index="/news">NEWS</el-menu-item> | 113 | <el-menu-item index="/news">NEWS</el-menu-item> |
| 114 | <el-menu-item index="/notice">NOTICEBOARD</el-menu-item> | 114 | <el-menu-item index="/notice">NOTICEBOARD</el-menu-item> |
| 115 | <el-menu-item index="/match/list/0">SIGN UP</el-menu-item> | 115 | <el-menu-item index="/match/list">SIGN UP</el-menu-item> |
| 116 | <el-menu-item index="/saiC">COMPETITIONS</el-menu-item> | 116 | <el-menu-item index="/saiC">COMPETITIONS</el-menu-item> |
| 117 | <el-menu-item index="/meta">MEDIA</el-menu-item> | 117 | <el-menu-item index="/meta">MEDIA</el-menu-item> |
| 118 | <el-menu-item index="/guide">GUIDELINE</el-menu-item> | 118 | <el-menu-item index="/guide">GUIDELINE</el-menu-item> |
| ... | @@ -174,7 +174,7 @@ onMounted(() => { | ... | @@ -174,7 +174,7 @@ onMounted(() => { |
| 174 | } else if (route.fullPath.indexOf('saiC') > -1) { | 174 | } else if (route.fullPath.indexOf('saiC') > -1) { |
| 175 | activeIndex.value = '/saiC' | 175 | activeIndex.value = '/saiC' |
| 176 | } else if (route.fullPath.indexOf('match') > -1) { | 176 | } else if (route.fullPath.indexOf('match') > -1) { |
| 177 | activeIndex.value = '/match/list/0' | 177 | activeIndex.value = '/match/list' |
| 178 | } | 178 | } |
| 179 | console.log(activeIndex.value) | 179 | console.log(activeIndex.value) |
| 180 | }) | 180 | }) |
| ... | @@ -341,7 +341,7 @@ function getCode() { | ... | @@ -341,7 +341,7 @@ function getCode() { |
| 341 | } | 341 | } |
| 342 | @media (max-width: 1250px) { | 342 | @media (max-width: 1250px) { |
| 343 | .home-menu .el-menu--horizontal > .el-menu-item{font-size: 14px} | 343 | .home-menu .el-menu--horizontal > .el-menu-item{font-size: 14px} |
| 344 | .topNav .logo{height: 50px} | 344 | .topNav .logo{height: 50px;margin-left: 20px} |
| 345 | } | 345 | } |
| 346 | @media (max-width: 1000px) { | 346 | @media (max-width: 1000px) { |
| 347 | .box { | 347 | .box { | ... | ... |
| ... | @@ -16,6 +16,6 @@ import { AppMain, AppHeader, AppBottom } from './components' | ... | @@ -16,6 +16,6 @@ import { AppMain, AppHeader, AppBottom } from './components' |
| 16 | .el-radio-button{ margin: 0 14px 0 0;} | 16 | .el-radio-button{ margin: 0 14px 0 0;} |
| 17 | .el-radio-button__inner{border: none!important;} | 17 | .el-radio-button__inner{border: none!important;} |
| 18 | .el-radio-button__original-radio:checked+.el-radio-button__inner{ | 18 | .el-radio-button__original-radio:checked+.el-radio-button__inner{ |
| 19 | background: #CA171D;border-radius: 0;} | 19 | background: #453DEA;border-radius: 0;box-shadow: none;} |
| 20 | } | 20 | } |
| 21 | </style> | 21 | </style> | ... | ... |
| ... | @@ -16,6 +16,6 @@ import { AppMain, AppTop, AppBottom } from './components' | ... | @@ -16,6 +16,6 @@ import { AppMain, AppTop, AppBottom } from './components' |
| 16 | .el-radio-button{ margin: 0 14px 0 0;} | 16 | .el-radio-button{ margin: 0 14px 0 0;} |
| 17 | .el-radio-button__inner{border: none!important;} | 17 | .el-radio-button__inner{border: none!important;} |
| 18 | .el-radio-button__original-radio:checked+.el-radio-button__inner{ | 18 | .el-radio-button__original-radio:checked+.el-radio-button__inner{ |
| 19 | background: #CA171D;border-radius: 0;} | 19 | color: #453DEA;border-radius: 0;background: none;box-shadow: none;} |
| 20 | } | 20 | } |
| 21 | </style> | 21 | </style> | ... | ... |
| ... | @@ -261,12 +261,6 @@ export const constantRoutes = [ | ... | @@ -261,12 +261,6 @@ export const constantRoutes = [ |
| 261 | meta: { title: '会员服务' } | 261 | meta: { title: '会员服务' } |
| 262 | }, | 262 | }, |
| 263 | { | 263 | { |
| 264 | path: 'index/teamVip', | ||
| 265 | component: () => import('@/viewsPc/vip/teamVip'), | ||
| 266 | name: 'teamVip', | ||
| 267 | meta: { title: '会员服务' } | ||
| 268 | }, | ||
| 269 | { | ||
| 270 | path: 'index/examPoints', | 264 | path: 'index/examPoints', |
| 271 | component: () => import('@/viewsPc/vip/examPoints'), | 265 | component: () => import('@/viewsPc/vip/examPoints'), |
| 272 | name: 'examPoints', | 266 | name: 'examPoints', |
| ... | @@ -340,15 +334,20 @@ export const constantRoutes = [ | ... | @@ -340,15 +334,20 @@ export const constantRoutes = [ |
| 340 | name: 'teamRegister', | 334 | name: 'teamRegister', |
| 341 | meta: { title: '团体注册' } | 335 | meta: { title: '团体注册' } |
| 342 | },{ | 336 | },{ |
| 337 | path: '2', | ||
| 338 | component: () => import('@/viewsPc/register/beauty'), | ||
| 339 | name: 'beautyRegister', | ||
| 340 | meta: { title: '化妆师注册' } | ||
| 341 | },{ | ||
| 343 | path: 'userAgreement', | 342 | path: 'userAgreement', |
| 344 | component: () => import('@/viewsPc/register/userAgreement'), | 343 | component: () => import('@/viewsPc/register/userAgreement'), |
| 345 | name: 'userAgreement', | 344 | name: 'userAgreement', |
| 346 | meta: { title: '团体注册' } | 345 | meta: { title: '用户协议' } |
| 347 | },{ | 346 | },{ |
| 348 | path: 'policy', | 347 | path: 'policy', |
| 349 | component: () => import('@/viewsPc/register/policy'), | 348 | component: () => import('@/viewsPc/register/policy'), |
| 350 | name: 'policy', | 349 | name: 'policy', |
| 351 | meta: { title: '团体注册' } | 350 | meta: { title: '隐私协议' } |
| 352 | } | 351 | } |
| 353 | ] | 352 | ] |
| 354 | }, | 353 | }, | ... | ... |
| ... | @@ -285,12 +285,6 @@ export const constantRoutes = [ | ... | @@ -285,12 +285,6 @@ export const constantRoutes = [ |
| 285 | meta: { title: '会员服务' } | 285 | meta: { title: '会员服务' } |
| 286 | }, | 286 | }, |
| 287 | { | 287 | { |
| 288 | path: 'index/teamVip', | ||
| 289 | component: () => import('@/viewsPc/vip/teamVip'), | ||
| 290 | name: 'teamVip', | ||
| 291 | meta: { title: '会员服务' } | ||
| 292 | }, | ||
| 293 | { | ||
| 294 | path: 'index/examPoints', | 288 | path: 'index/examPoints', |
| 295 | component: () => import('@/viewsPc/vip/examPoints'), | 289 | component: () => import('@/viewsPc/vip/examPoints'), |
| 296 | name: 'examPoints', | 290 | name: 'examPoints', | ... | ... |
src/viewsPc/booking/hotelDetail.vue
0 → 100644
| ... | @@ -48,7 +48,7 @@ | ... | @@ -48,7 +48,7 @@ |
| 48 | <a class="more" @click="goFileList">MORE⇀</a> | 48 | <a class="more" @click="goFileList">MORE⇀</a> |
| 49 | </div> | 49 | </div> |
| 50 | <el-card class="mb20"> | 50 | <el-card class="mb20"> |
| 51 | <el-row gutter="30"> | 51 | <el-row :gutter="30"> |
| 52 | <el-col :lg="12" :xs="24" v-for="n in fileList" :key="n.noteId"> | 52 | <el-col :lg="12" :xs="24" v-for="n in fileList" :key="n.noteId"> |
| 53 | <a class="file-item" target="_blank" :href="fillImgUrl_webSite(n.attacthJsonObj[0]?.url)"> | 53 | <a class="file-item" target="_blank" :href="fillImgUrl_webSite(n.attacthJsonObj[0]?.url)"> |
| 54 | <h3 class="esp"> | 54 | <h3 class="esp"> | ... | ... |
| ... | @@ -11,11 +11,11 @@ | ... | @@ -11,11 +11,11 @@ |
| 11 | <div class="pt30"> | 11 | <div class="pt30"> |
| 12 | <el-form-item :label="language==0?'选择机构类型':'Select institution type'" required> | 12 | <el-form-item :label="language==0?'选择机构类型':'Select institution type'" required> |
| 13 | <el-radio-group v-model="form.type"> | 13 | <el-radio-group v-model="form.type"> |
| 14 | <el-radio-button label="0">{{ language==0?'普通院校':'School' }}</el-radio-button> | 14 | <el-radio-button value="0">{{ language==0?'普通院校':'School' }}</el-radio-button> |
| 15 | <el-radio-button label="1">{{ language==0?'专业舞蹈学校':'Professional dance school' }}</el-radio-button> | 15 | <el-radio-button value="1">{{ language==0?'专业舞蹈学校':'Professional dance school' }}</el-radio-button> |
| 16 | <el-radio-button label="2">{{ language==0?'培训机构/俱乐部':'Company/Club' }}</el-radio-button> | 16 | <el-radio-button value="2">{{ language==0?'培训机构/俱乐部':'Company/Club' }}</el-radio-button> |
| 17 | <el-radio-button label="3">{{ language==0?'地方协会':'Local Association' }}</el-radio-button> | 17 | <el-radio-button value="3">{{ language==0?'地方协会':'Local Association' }}</el-radio-button> |
| 18 | <el-radio-button label="4">{{ language==0?'国家协会':'National Association' }}</el-radio-button> | 18 | <el-radio-button value="4">{{ language==0?'国家协会':'National Association' }}</el-radio-button> |
| 19 | </el-radio-group> | 19 | </el-radio-group> |
| 20 | </el-form-item> | 20 | </el-form-item> |
| 21 | </div> | 21 | </div> | ... | ... |
| ... | @@ -22,8 +22,8 @@ | ... | @@ -22,8 +22,8 @@ |
| 22 | </el-form-item> | 22 | </el-form-item> |
| 23 | <el-form-item :label="language==0?'性别':'Sex'" required > | 23 | <el-form-item :label="language==0?'性别':'Sex'" required > |
| 24 | <el-radio-group v-model="myform.sex"> | 24 | <el-radio-group v-model="myform.sex"> |
| 25 | <el-radio label="0">{{ language == 0 ? '女' : 'female' }}</el-radio> | 25 | <el-radio value="0">{{ language == 0 ? '女' : 'female' }}</el-radio> |
| 26 | <el-radio label="1">{{ language == 0 ? '男' : 'male' }}</el-radio> | 26 | <el-radio value="1">{{ language == 0 ? '男' : 'male' }}</el-radio> |
| 27 | </el-radio-group> | 27 | </el-radio-group> |
| 28 | </el-form-item> | 28 | </el-form-item> |
| 29 | <el-form-item :label="language==0?'出生日期':'Birthday'" required> | 29 | <el-form-item :label="language==0?'出生日期':'Birthday'" required> | ... | ... |
| ... | @@ -99,7 +99,12 @@ const query = ref({ | ... | @@ -99,7 +99,12 @@ const query = ref({ |
| 99 | }) | 99 | }) |
| 100 | const total = ref(0) | 100 | const total = ref(0) |
| 101 | const group = useUserStore().group || {} | 101 | const group = useUserStore().group || {} |
| 102 | const user = useUserStore().user || {} | 102 | const props = defineProps({ |
| 103 | user: { | ||
| 104 | type: Object, | ||
| 105 | required: true | ||
| 106 | } | ||
| 107 | }) | ||
| 103 | const groupId = ref(group.id|| 0) | 108 | const groupId = ref(group.id|| 0) |
| 104 | onMounted(() => { | 109 | onMounted(() => { |
| 105 | getList(groupId.value) | 110 | getList(groupId.value) |
| ... | @@ -124,14 +129,14 @@ function importSportman() { | ... | @@ -124,14 +129,14 @@ function importSportman() { |
| 124 | 129 | ||
| 125 | function getList() { | 130 | function getList() { |
| 126 | query.value.label =labelArr.value.toString() | 131 | query.value.label =labelArr.value.toString() |
| 127 | if(user.utype=='2'){ | 132 | if(props.user.utype=='2'){ |
| 128 | getGroupPersonList(query.value, groupId.value).then(res => { | 133 | getGroupPersonList(query.value, groupId.value).then(res => { |
| 129 | tableData.value = res.rows | 134 | tableData.value = res.rows |
| 130 | total.value = res.total | 135 | total.value = res.total |
| 131 | }) | 136 | }) |
| 132 | } | 137 | } |
| 133 | if(user.utype=='1'){ | 138 | if(props.user.utype=='1'){ |
| 134 | getPerPersonList(query.value,user.userId).then(res => { | 139 | getPerPersonList(query.value,props.user.userId).then(res => { |
| 135 | tableData.value = res.rows | 140 | tableData.value = res.rows |
| 136 | total.value = res.total | 141 | total.value = res.total |
| 137 | }) | 142 | }) | ... | ... |
| ... | @@ -129,7 +129,7 @@ | ... | @@ -129,7 +129,7 @@ |
| 129 | <a class="more" @click="goList(query4,kindList[3]?.name)">MORE⇀</a> | 129 | <a class="more" @click="goList(query4,kindList[3]?.name)">MORE⇀</a> |
| 130 | </div> | 130 | </div> |
| 131 | <el-card class="mb20"> | 131 | <el-card class="mb20"> |
| 132 | <el-row gutter="20"> | 132 | <el-row :gutter="20"> |
| 133 | <el-col v-for="n in list4" :span="12"> | 133 | <el-col v-for="n in list4" :span="12"> |
| 134 | <div class="news-newtag"> | 134 | <div class="news-newtag"> |
| 135 | <div class="item" @click="goDetail(n)"> | 135 | <div class="item" @click="goDetail(n)"> | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <div> | 2 | <div> |
| 3 | <el-row gutter="30"> | 3 | <el-row :gutter="30"> |
| 4 | <el-col :span="12" class="newsimgcover" v-for="n in newsList" v-show="n.picUrl"> | 4 | <el-col :span="12" class="newsimgcover" v-for="n in newsList" v-show="n.picUrl"> |
| 5 | <a class="item" :href="n.jumpUrl" target="_blank"> | 5 | <a class="item" :href="n.jumpUrl" target="_blank"> |
| 6 | <div class="imgbox" v-if="n.picUrl"> | 6 | <div class="imgbox" v-if="n.picUrl"> | ... | ... |
| ... | @@ -97,7 +97,7 @@ | ... | @@ -97,7 +97,7 @@ |
| 97 | 97 | ||
| 98 | </el-card> | 98 | </el-card> |
| 99 | 99 | ||
| 100 | <el-row class="mb20 linkrow" gutter="20"> | 100 | <el-row class="mb20 linkrow" :gutter="20"> |
| 101 | <el-col :lg="8"> | 101 | <el-col :lg="8"> |
| 102 | <h2>违规举报</h2> | 102 | <h2>违规举报</h2> |
| 103 | <a href="http://www.chinada.cn/jbly/index.jhtml" target="_blank"> | 103 | <a href="http://www.chinada.cn/jbly/index.jhtml" target="_blank"> |
| ... | @@ -247,7 +247,7 @@ | ... | @@ -247,7 +247,7 @@ |
| 247 | 247 | ||
| 248 | </div> | 248 | </div> |
| 249 | 249 | ||
| 250 | <el-row class="mb20 linkrow" gutter="20"> | 250 | <el-row class="mb20 linkrow" :gutter="20"> |
| 251 | <el-col :lg="8" :xs="8"> | 251 | <el-col :lg="8" :xs="8"> |
| 252 | <h2>违规举报</h2> | 252 | <h2>违规举报</h2> |
| 253 | <a href="http://www.chinada.cn/jbly/index.jhtml" target="_blank"> | 253 | <a href="http://www.chinada.cn/jbly/index.jhtml" target="_blank"> | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <div> | 2 | <div> |
| 3 | <div class="banner"> | 3 | <div class="banner"> |
| 4 | <el-carousel height="450px" :autoplay="false" arrow="hover"> | 4 | <el-carousel height="450px" :autoplay="false" arrow="hover" @change="carouselChange"> |
| 5 | <el-carousel-item style="height: 450px;"> | 5 | <el-carousel-item style="height: 450px;" v-for="n in maList" :key="n.id"> |
| 6 | <div class="bannerItem"> | 6 | <div class="bannerItem"> |
| 7 | <div class="h100"> | 7 | <div class="h100"> |
| 8 | <img v-if="matchData.bgImgUrl" class="bannerImg" :src="fillImgUrl(matchData.bgImgUrl)"> | 8 | <img v-if="n.bgImgUrl" class="bannerImg" :src="fillImgUrl(n.bgImgUrl)"> |
| 9 | <img v-else class="bannerImg" src="@/assets/dance/banner.png"> | 9 | <img v-else class="bannerImg" src="@/assets/dance/banner.png"> |
| 10 | <div class="box" style="position: absolute;top: 0;left: 0;right: 0;margin: auto;"> | 10 | <div class="box forPc" style="position: absolute;top: 0;left: 0;right: 0;margin: auto;"> |
| 11 | <div class="banner-count"> | 11 | <div class="banner-count"> |
| 12 | 距离开始还有 | 12 | 距离开始还有 |
| 13 | <van-count-down :time="time" format="DD 天 HH 时 mm 分 ss 秒"> | 13 | <van-count-down :time="n.time" format="DD 天 HH 时 mm 分 ss 秒"> |
| 14 | <template #default="timeData"> | 14 | <template #default="timeData"> |
| 15 | <div class="block">{{ timeData.days }} | 15 | <div class="block">{{ timeData.days }} |
| 16 | <span class="colon">天</span> | 16 | <span class="colon">天</span> |
| ... | @@ -412,6 +412,7 @@ const scores = ref([]) | ... | @@ -412,6 +412,7 @@ const scores = ref([]) |
| 412 | const nowscores = ref([]) | 412 | const nowscores = ref([]) |
| 413 | const livelist = ref([]) | 413 | const livelist = ref([]) |
| 414 | const matchData = ref({}) | 414 | const matchData = ref({}) |
| 415 | const maList = ref([]) | ||
| 415 | const loading = ref(false) | 416 | const loading = ref(false) |
| 416 | const picList = ref([]) | 417 | const picList = ref([]) |
| 417 | const calendarValue = ref(dayjs('2024-07-22').toDate()) | 418 | const calendarValue = ref(dayjs('2024-07-22').toDate()) |
| ... | @@ -447,14 +448,18 @@ const init = () => { | ... | @@ -447,14 +448,18 @@ const init = () => { |
| 447 | newest2.value = res.rows | 448 | newest2.value = res.rows |
| 448 | }) | 449 | }) |
| 449 | match.getMaList().then((res) => { | 450 | match.getMaList().then((res) => { |
| 450 | match.getMatchById({id: res.rows[0].id}).then(resposn => { | 451 | maList.value = res.rows |
| 451 | matchData.value = resposn.data | 452 | for(let n of maList.value){ |
| 452 | // var today = dayjs().format('YYYY-MM-DD HH:mm:ss') | 453 | var today = dayjs().format('YYYY-MM-DD HH:mm:ss') |
| 453 | // time.value = dayjs(resposn.data.signEndTime).diff(today, 'millisecond') | 454 | n.time = dayjs(n.signEndTime).diff(today, 'millisecond') |
| 454 | }) | 455 | } |
| 456 | matchData.value = maList.value[0] | ||
| 455 | }) | 457 | }) |
| 456 | } | 458 | } |
| 457 | 459 | const carouselChange = (e) => { | |
| 460 | console.log(e) | ||
| 461 | matchData.value = maList.value[e] | ||
| 462 | } | ||
| 458 | const goDetail = (n) => { | 463 | const goDetail = (n) => { |
| 459 | if (n.isOut == '1') { | 464 | if (n.isOut == '1') { |
| 460 | window.open(n.jumpUrl) | 465 | window.open(n.jumpUrl) | ... | ... |
| ... | @@ -37,8 +37,8 @@ | ... | @@ -37,8 +37,8 @@ |
| 37 | </el-form-item> | 37 | </el-form-item> |
| 38 | <el-form-item :label="language==0?'性别':'sex'" prop="sex"> | 38 | <el-form-item :label="language==0?'性别':'sex'" prop="sex"> |
| 39 | <el-radio-group v-model="form.sex"> | 39 | <el-radio-group v-model="form.sex"> |
| 40 | <el-radio label="0">{{ language == 0 ? '女' : 'female' }}</el-radio> | 40 | <el-radio value="0">{{ language == 0 ? '女' : 'female' }}</el-radio> |
| 41 | <el-radio label="1">{{ language == 0 ? '男' : 'male' }}</el-radio> | 41 | <el-radio value="1">{{ language == 0 ? '男' : 'male' }}</el-radio> |
| 42 | </el-radio-group> | 42 | </el-radio-group> |
| 43 | </el-form-item> | 43 | </el-form-item> |
| 44 | 44 | ... | ... |
| ... | @@ -5,7 +5,7 @@ | ... | @@ -5,7 +5,7 @@ |
| 5 | destroy-on-close | 5 | destroy-on-close |
| 6 | > | 6 | > |
| 7 | <el-form ref="dialogRef" :model="form" :rules="language==0?rules:rules_cn" label-width="120px" inline> | 7 | <el-form ref="dialogRef" :model="form" :rules="language==0?rules:rules_cn" label-width="120px" inline> |
| 8 | <el-row :gutter="30"> | 8 | <el-row :gutter="30" class="mt30"> |
| 9 | <el-col :lg="12" class="touxiang"> | 9 | <el-col :lg="12" class="touxiang"> |
| 10 | 10 | ||
| 11 | <el-form-item :label="language==0?'姓氏':'surname'" prop="xing" required> | 11 | <el-form-item :label="language==0?'姓氏':'surname'" prop="xing" required> |
| ... | @@ -29,8 +29,8 @@ | ... | @@ -29,8 +29,8 @@ |
| 29 | </el-form-item> | 29 | </el-form-item> |
| 30 | <el-form-item :label="language==0?'性别':'sex'" prop="sex"> | 30 | <el-form-item :label="language==0?'性别':'sex'" prop="sex"> |
| 31 | <el-radio-group v-model="form.sex"> | 31 | <el-radio-group v-model="form.sex"> |
| 32 | <el-radio label="0">{{ language==0?'女':'female' }}</el-radio> | 32 | <el-radio value="0">{{ language==0?'女':'female' }}</el-radio> |
| 33 | <el-radio label="1">{{ language==0?'男':'male' }}</el-radio> | 33 | <el-radio value="1">{{ language==0?'男':'male' }}</el-radio> |
| 34 | </el-radio-group> | 34 | </el-radio-group> |
| 35 | </el-form-item> | 35 | </el-form-item> |
| 36 | 36 | ||
| ... | @@ -214,10 +214,15 @@ const open = (params) => { | ... | @@ -214,10 +214,15 @@ const open = (params) => { |
| 214 | defineExpose({open}) | 214 | defineExpose({open}) |
| 215 | watch(show, (value) => { | 215 | watch(show, (value) => { |
| 216 | if (!value) { | 216 | if (!value) { |
| 217 | form.value = {} | 217 | form.value = { |
| 218 | sex:'0' | ||
| 219 | } | ||
| 220 | if(language.value == 0){ | ||
| 221 | form.value.countryId = 240 | ||
| 222 | } | ||
| 218 | } | 223 | } |
| 219 | nextTick(() => { | 224 | nextTick(() => { |
| 220 | proxy.$refs['dialogRef'].clearValidate() | 225 | // proxy.$refs['dialogRef'].clearValidate() |
| 221 | }) | 226 | }) |
| 222 | }) | 227 | }) |
| 223 | 228 | ... | ... |
| ... | @@ -52,8 +52,8 @@ | ... | @@ -52,8 +52,8 @@ |
| 52 | <div class="h20"></div> | 52 | <div class="h20"></div> |
| 53 | <el-form-item :label="language==0?'性别':'Sex'" required> | 53 | <el-form-item :label="language==0?'性别':'Sex'" required> |
| 54 | <el-radio-group v-model="form.sex"> | 54 | <el-radio-group v-model="form.sex"> |
| 55 | <el-radio label="0">{{ language == 0 ? '女' : 'female' }}</el-radio> | 55 | <el-radio value="0">{{ language == 0 ? '女' : 'female' }}</el-radio> |
| 56 | <el-radio label="1">{{ language == 0 ? '男' : 'male' }}</el-radio> | 56 | <el-radio value="1">{{ language == 0 ? '男' : 'male' }}</el-radio> |
| 57 | </el-radio-group> | 57 | </el-radio-group> |
| 58 | </el-form-item> | 58 | </el-form-item> |
| 59 | 59 | ... | ... |
| ... | @@ -25,7 +25,7 @@ | ... | @@ -25,7 +25,7 @@ |
| 25 | </div> | 25 | </div> |
| 26 | </template> | 26 | </template> |
| 27 | </el-table-column> | 27 | </el-table-column> |
| 28 | <el-table-column :label="language==0?'WDSF会员号':'WDSF code'" prop="wdsfMin" width="200"/> | 28 | <el-table-column :label="language==0?'WDSF会员号':'WDSF code'" prop="wdsfMin" width="110"/> |
| 29 | <!-- <el-table-column :label="language==0?'详细地址':'Detailed Address'" prop="address" min-width="140"/>--> | 29 | <!-- <el-table-column :label="language==0?'详细地址':'Detailed Address'" prop="address" min-width="140"/>--> |
| 30 | <el-table-column :label="language==0?'操作':'Actions'" fixed="right" width="160" header-align="center" | 30 | <el-table-column :label="language==0?'操作':'Actions'" fixed="right" width="160" header-align="center" |
| 31 | align="center"> | 31 | align="center"> | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <el-row :gutter="14" v-if="language==0"> | 2 | <el-row :gutter="14" v-if="language==0"> |
| 3 | <el-col :lg="4"> | 3 | <el-col :lg="4" :md="8" :sm="12" :xs="12"> |
| 4 | <div class="funcBtn" @click="goBooking(0)"> | 4 | <div class="funcBtn" @click="goBooking(0)"> |
| 5 | <img src="@/assets/dance/btn04.png"/> | 5 | <img src="@/assets/dance/btn04.png"/> |
| 6 | <h4>票务预订</h4> | 6 | <h4>票务预订</h4> |
| 7 | </div> | 7 | </div> |
| 8 | </el-col> | 8 | </el-col> |
| 9 | <el-col :lg="4"> | 9 | <el-col :lg="4" :md="8" :sm="12" :xs="12"> |
| 10 | <div class="funcBtn" @click="goBooking(1)"> | 10 | <div class="funcBtn" @click="goBooking(1)"> |
| 11 | <img src="@/assets/dance/btn01.png"/> | 11 | <img src="@/assets/dance/btn01.png"/> |
| 12 | <h4>酒店预约</h4> | 12 | <h4>酒店预约</h4> |
| 13 | </div> | 13 | </div> |
| 14 | </el-col> | 14 | </el-col> |
| 15 | <el-col :lg="4"> | 15 | <el-col :lg="4" :md="8" :sm="12" :xs="12"> |
| 16 | <div class="funcBtn" @click="goBooking(2)"> | 16 | <div class="funcBtn" @click="goBooking(2)"> |
| 17 | <img src="@/assets/dance/btn02.png"/> | 17 | <img src="@/assets/dance/btn02.png"/> |
| 18 | <h4>车辆预约</h4> | 18 | <h4>车辆预约</h4> |
| 19 | </div> | 19 | </div> |
| 20 | </el-col> | 20 | </el-col> |
| 21 | <el-col :lg="4"> | 21 | <el-col :lg="4" :md="8" :sm="12" :xs="12"> |
| 22 | <div class="funcBtn" @click="goBooking(3)"> | 22 | <div class="funcBtn" @click="goBooking(3)"> |
| 23 | <img src="@/assets/dance/btn03.png"/> | 23 | <img src="@/assets/dance/btn03.png"/> |
| 24 | <h4>餐饮预订</h4> | 24 | <h4>餐饮预订</h4> |
| 25 | </div> | 25 | </div> |
| 26 | </el-col> | 26 | </el-col> |
| 27 | <el-col :lg="4"> | 27 | <el-col :lg="4" :md="8" :sm="12" :xs="12"> |
| 28 | <div class="funcBtn" @click="goBooking(4)"> | 28 | <div class="funcBtn" @click="goBooking(4)"> |
| 29 | <img src="@/assets/dance/btn05.png"/> | 29 | <img src="@/assets/dance/btn05.png"/> |
| 30 | <h4>化妆预约</h4> | 30 | <h4>化妆预约</h4> |
| 31 | </div> | 31 | </div> |
| 32 | </el-col> | 32 | </el-col> |
| 33 | <el-col :lg="4"> | 33 | <el-col :lg="4" :md="8" :sm="12" :xs="12"> |
| 34 | <div class="funcBtn" @click="goBooking(5)"> | 34 | <div class="funcBtn" @click="goBooking(5)"> |
| 35 | <img src="@/assets/dance/btn06.png"/> | 35 | <img src="@/assets/dance/btn06.png"/> |
| 36 | <h4>拍照预约</h4> | 36 | <h4>拍照预约</h4> |
| ... | @@ -38,37 +38,37 @@ | ... | @@ -38,37 +38,37 @@ |
| 38 | </el-col> | 38 | </el-col> |
| 39 | </el-row> | 39 | </el-row> |
| 40 | <el-row :gutter="14" v-else> | 40 | <el-row :gutter="14" v-else> |
| 41 | <el-col :lg="4" :md="8" :xs="12"> | 41 | <el-col :lg="4" :md="8" :sm="12" :xs="12"> |
| 42 | <div class="funcBtn" @click="building"> | 42 | <div class="funcBtn" @click="building"> |
| 43 | <img src="@/assets/dance/btn04.png"/> | 43 | <img src="@/assets/dance/btn04.png"/> |
| 44 | <h4>Ticket Booking</h4> | 44 | <h4>Ticket Booking</h4> |
| 45 | </div> | 45 | </div> |
| 46 | </el-col> | 46 | </el-col> |
| 47 | <el-col :lg="4" :md="8" :xs="12"> | 47 | <el-col :lg="4" :md="8" :sm="12" :xs="12"> |
| 48 | <div class="funcBtn" @click="building"> | 48 | <div class="funcBtn" @click="building"> |
| 49 | <img src="@/assets/dance/btn01.png"/> | 49 | <img src="@/assets/dance/btn01.png"/> |
| 50 | <h4>Hotel Reservation</h4> | 50 | <h4>Hotel Reservation</h4> |
| 51 | </div> | 51 | </div> |
| 52 | </el-col> | 52 | </el-col> |
| 53 | <el-col :lg="4" :md="8" :xs="12"> | 53 | <el-col :lg="4" :md="8" :sm="12" :xs="12"> |
| 54 | <div class="funcBtn" @click="building"> | 54 | <div class="funcBtn" @click="building"> |
| 55 | <img src="@/assets/dance/btn02.png"/> | 55 | <img src="@/assets/dance/btn02.png"/> |
| 56 | <h4>Vehicle Reservation</h4> | 56 | <h4>Vehicle Reservation</h4> |
| 57 | </div> | 57 | </div> |
| 58 | </el-col> | 58 | </el-col> |
| 59 | <el-col :lg="4" :md="8" :xs="12"> | 59 | <el-col :lg="4" :md="8" :sm="12" :xs="12"> |
| 60 | <div class="funcBtn" @click="building"> | 60 | <div class="funcBtn" @click="building"> |
| 61 | <img src="@/assets/dance/btn03.png"/> | 61 | <img src="@/assets/dance/btn03.png"/> |
| 62 | <h4>Dining Reservation</h4> | 62 | <h4>Dining Reservation</h4> |
| 63 | </div> | 63 | </div> |
| 64 | </el-col> | 64 | </el-col> |
| 65 | <el-col :lg="4" :md="8" :xs="12"> | 65 | <el-col :lg="4" :md="8" :sm="12" :xs="12"> |
| 66 | <div class="funcBtn" @click="building"> | 66 | <div class="funcBtn" @click="building"> |
| 67 | <img src="@/assets/dance/btn05.png"/> | 67 | <img src="@/assets/dance/btn05.png"/> |
| 68 | <h4>Makeup Appointment</h4> | 68 | <h4>Makeup Appointment</h4> |
| 69 | </div> | 69 | </div> |
| 70 | </el-col> | 70 | </el-col> |
| 71 | <el-col :lg="4" :md="8" :xs="12"> | 71 | <el-col :lg="4" :md="8" :sm="12" :xs="12"> |
| 72 | <div class="funcBtn" @click="building"> | 72 | <div class="funcBtn" @click="building"> |
| 73 | <img src="@/assets/dance/btn06.png"/> | 73 | <img src="@/assets/dance/btn06.png"/> |
| 74 | <h4>Photography Appointment</h4> | 74 | <h4>Photography Appointment</h4> |
| ... | @@ -94,32 +94,32 @@ function building() { | ... | @@ -94,32 +94,32 @@ function building() { |
| 94 | ElMessage.warning('Building!') | 94 | ElMessage.warning('Building!') |
| 95 | } | 95 | } |
| 96 | function goBooking(n) { | 96 | function goBooking(n) { |
| 97 | switch (n) { | 97 | // switch (n) { |
| 98 | case 0: | 98 | // case 0: |
| 99 | // 票务 | 99 | // // 票务 |
| 100 | router.push({path: `/booking/ticket/${props.matchId}`}) | 100 | // router.push({path: `/booking/ticket/${props.matchId}`}) |
| 101 | break; | 101 | // break; |
| 102 | case 1: | 102 | // case 1: |
| 103 | //酒店 | 103 | // //酒店 |
| 104 | router.push({path: `/booking/hotel/${props.matchId}`}) | 104 | // router.push({path: `/booking/hotel/${props.matchId}`}) |
| 105 | break; | 105 | // break; |
| 106 | case 2: | 106 | // case 2: |
| 107 | //车辆 | 107 | // //车辆 |
| 108 | router.push({path: `/booking/car/${props.matchId}`}) | 108 | // router.push({path: `/booking/car/${props.matchId}`}) |
| 109 | break; | 109 | // break; |
| 110 | case 3: | 110 | // case 3: |
| 111 | //餐饮 | 111 | // //餐饮 |
| 112 | router.push({path: `/booking/dining/${props.matchId}`}) | 112 | // router.push({path: `/booking/dining/${props.matchId}`}) |
| 113 | break; | 113 | // break; |
| 114 | case 4: | 114 | // case 4: |
| 115 | //化妆 | 115 | // //化妆 |
| 116 | router.push({path: `/booking/makeup/${props.matchId}`}) | 116 | // router.push({path: `/booking/makeup/${props.matchId}`}) |
| 117 | break; | 117 | // break; |
| 118 | case 5: | 118 | // case 5: |
| 119 | //拍照 | 119 | // //拍照 |
| 120 | router.push({path: `/booking/photography/${props.matchId}`}) | 120 | // router.push({path: `/booking/photography/${props.matchId}`}) |
| 121 | break; | 121 | // break; |
| 122 | } | 122 | // } |
| 123 | } | 123 | } |
| 124 | </script> | 124 | </script> |
| 125 | 125 | ... | ... |
| ... | @@ -71,7 +71,7 @@ onMounted(()=>{ | ... | @@ -71,7 +71,7 @@ onMounted(()=>{ |
| 71 | }) | 71 | }) |
| 72 | function goDetail(id) { | 72 | function goDetail(id) { |
| 73 | const routeData = router.resolve({ | 73 | const routeData = router.resolve({ |
| 74 | path: `${id}` | 74 | path: `/match/list/${id}` |
| 75 | }) | 75 | }) |
| 76 | window.open(routeData.href, '_blank') | 76 | window.open(routeData.href, '_blank') |
| 77 | } | 77 | } | ... | ... |
| ... | @@ -13,11 +13,11 @@ | ... | @@ -13,11 +13,11 @@ |
| 13 | <div class="box mb20 " v-else> | 13 | <div class="box mb20 " v-else> |
| 14 | <el-card class="mb20"> | 14 | <el-card class="mb20"> |
| 15 | <el-row :gutter="20"> | 15 | <el-row :gutter="20"> |
| 16 | <el-col :lg="7" :md="24" :xl="6"> | 16 | <el-col :lg="7" :md="matchData.type=='0'?24:12" :xl="matchData.type=='0'?6:6"> |
| 17 | <img class="mauto w100" :src="fillImgUrl(matchData.coverUrl)"> | 17 | <img class="mauto w100" :src="fillImgUrl(matchData.coverUrl)"> |
| 18 | </el-col> | 18 | </el-col> |
| 19 | <el-col :lg="9" :md="12" :xl="10"> | 19 | <el-col :lg="matchData.type=='0'?9:17" :md="matchData.type=='0'?12:12" :xl="matchData.type=='0'?10:10"> |
| 20 | <h3> | 20 | <h3 class="mtitle"> |
| 21 | {{ matchData.name }} | 21 | {{ matchData.name }} |
| 22 | </h3> | 22 | </h3> |
| 23 | <p class="ppl"><label class="bm1">比赛时间:</label>{{ matchData.beginTime?.slice(0, 10) }} 至 | 23 | <p class="ppl"><label class="bm1">比赛时间:</label>{{ matchData.beginTime?.slice(0, 10) }} 至 |
| ... | @@ -386,6 +386,7 @@ function checkIsSign() { | ... | @@ -386,6 +386,7 @@ function checkIsSign() { |
| 386 | 386 | ||
| 387 | <style scoped lang="scss"> | 387 | <style scoped lang="scss"> |
| 388 | .app-container{min-height: 80vh;} | 388 | .app-container{min-height: 80vh;} |
| 389 | .mtitle{margin:5px 0 0;line-height: 1.4;} | ||
| 389 | .indexTitle { | 390 | .indexTitle { |
| 390 | margin: 20px 0 12px; | 391 | margin: 20px 0 12px; |
| 391 | 392 | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <div class="app-container"> | 2 | <div class="app-container"> |
| 3 | <!-- 我是 赛事 --> | 3 | <!-- 我是 赛事 --> |
| 4 | <div class="adBanner"> | ||
| 5 | <img src="/img/banner.jpg"> | ||
| 6 | </div> | ||
| 7 | <div class="kind mt20"> | 4 | <div class="kind mt20"> |
| 8 | 5 | ||
| 9 | <div class="box"> | 6 | <div class="box"> |
| 10 | <el-card> | 7 | <el-card> |
| 11 | <ul> | 8 | <ul> |
| 12 | <li> | 9 | <li> |
| 10 | <label>类型:</label> | ||
| 11 | <el-radio-group v-model="query.type" @change="getList"> | ||
| 12 | <el-radio-button value="-1">全部</el-radio-button> | ||
| 13 | <el-radio-button value="0">联赛</el-radio-button> | ||
| 14 | <el-radio-button value="1">分站赛</el-radio-button> | ||
| 15 | </el-radio-group> | ||
| 16 | </li> | ||
| 17 | <li> | ||
| 13 | <label>状态:</label> | 18 | <label>状态:</label> |
| 14 | <el-radio-group | 19 | <el-radio-group |
| 15 | v-model="query.progressStatusCode" | 20 | v-model="query.progressStatusCode" |
| 16 | @change="getList" | 21 | @change="getList" |
| 17 | > | 22 | > |
| 18 | <el-radio-button label="-1">全部</el-radio-button> | 23 | <el-radio-button value="-1">全部</el-radio-button> |
| 19 | <el-radio-button label="2">报名中</el-radio-button> | 24 | <el-radio-button value="2">报名中</el-radio-button> |
| 20 | <el-radio-button label="4">赛事进行中</el-radio-button> | 25 | <el-radio-button value="4">赛事进行中</el-radio-button> |
| 21 | <el-radio-button label="3">即将开始</el-radio-button> | 26 | <el-radio-button value="3">即将开始</el-radio-button> |
| 22 | <el-radio-button label="5">已结束</el-radio-button> | 27 | <el-radio-button value="5">已结束</el-radio-button> |
| 23 | </el-radio-group> | 28 | </el-radio-group> |
| 24 | </li> | 29 | </li> |
| 25 | <li> | 30 | <li> |
| 26 | <label>时间:</label> | 31 | <label>时间:</label> |
| 27 | <el-radio-group v-model="query.month" @change="getList"> | 32 | <el-radio-group v-model="query.month" @change="getList"> |
| 28 | <el-radio-button label="">全部</el-radio-button> | 33 | <el-radio-button value="">全部</el-radio-button> |
| 29 | <el-radio-button v-for="m in monthList" :key="m" :label="m" /> | 34 | <el-radio-button v-for="m in monthList" :key="m" :value="m">{{m}}</el-radio-button> |
| 30 | </el-radio-group> | 35 | </el-radio-group> |
| 31 | </li> | 36 | </li> |
| 32 | </ul> | 37 | </ul> |
| ... | @@ -50,62 +55,56 @@ | ... | @@ -50,62 +55,56 @@ |
| 50 | </div> | 55 | </div> |
| 51 | </div> | 56 | </div> |
| 52 | 57 | ||
| 53 | <el-row :gutter="30" class="pt-20"> | 58 | <div class="matchItem" v-for="n in list" :key="n.id" @click="goDetail(n.id)"> |
| 54 | <el-col v-for="n in list" :key="n" :md="8" :sm="12" :xs="24"> | 59 | <el-row :gutter="15"> |
| 55 | <div class="matchItem" @click="goDetail(n.id)"> | 60 | <el-col :lg="7" :md="24" :xl="6"> |
| 56 | <el-image class="matchCover" :src="n.coverUrl" style="width:100%; height: 190px" fit="contain" /> | 61 | <img class="mauto w100" :src="fillImgUrl(n.coverUrl)"> |
| 62 | </el-col> | ||
| 63 | <el-col :lg="9" :md="12" :xl="12"> | ||
| 57 | <div class="info"> | 64 | <div class="info"> |
| 58 | <h3 class="esp">{{ n.name }} | 65 | <h3>{{ n.name }}</h3> |
| 59 | </h3> | 66 | <p class="ppl"><label>{{ language==0?'比赛时间':'Playing Time' }}:</label>{{n.beginTime?.slice(0,10)}} ~ {{ n.endTime?.slice(0,10) }}</p> |
| 60 | <p v-if="n.type == '1'" class="esp"> | 67 | <p class="ppl"><label>{{ language==0?'地    点':'Location' }}:</label>{{ n.address }}</p> |
| 61 | <el-icon :size="20"> | 68 | <p class="ppl"><label>{{ language==0?'报名截止':'Registration Deadline' }}:</label>{{ n.signEndTime?.slice(0,10) }}</p> |
| 62 | <Checked /> | 69 | |
| 63 | </el-icon> | 70 | <p class="ppl"><label>{{ language==0?'联系人员':'Contact Person' }}:</label>{{ n.contactPerson }}</p> |
| 64 | 报名时间:{{ n.signBeginTime?.substring(0, 10) }} - {{ n.signEndTime?.substring(0, 10) }} | 71 | <p class="ppl"><label>{{ language==0?'联系电话':'Phone' }}:</label>{{ n.contactTelno }}</p> |
| 65 | </p> | 72 | <p class="ppl"><label>{{ language==0?'邮    箱':'E-mail' }}:</label>{{ n.contactEmail }}</p> |
| 66 | <p v-if="n.type == '0'" class="esp"> | 73 | |
| 67 | <el-icon :size="20"> | ||
| 68 | <Failed /> | ||
| 69 | </el-icon> | ||
| 70 | 报名截止:{{ n.signEndTime.substring(0, 10) }} | ||
| 71 | </p> | ||
| 72 | <p class="esp"> | ||
| 73 | <el-icon :size="20"> | ||
| 74 | <Flag /> | ||
| 75 | </el-icon> | ||
| 76 | 比赛时间:{{ n.beginTime.substring(0, 10) }} - {{ n.endTime.substring(0, 10) }} | ||
| 77 | </p> | ||
| 78 | <p v-if="n.type == '1'" class="esp"> | ||
| 79 | <el-icon :size="20"> | ||
| 80 | <Opportunity /> | ||
| 81 | </el-icon> | ||
| 82 | 分站赛:<span class="text-primary">{{ n.cptsSize }}</span> 场 | ||
| 83 | </p> | ||
| 84 | <p v-if="n.type == '0'" class="esp"> | ||
| 85 | <el-icon :size="20"> | ||
| 86 | <LocationFilled /> | ||
| 87 | </el-icon> | ||
| 88 | 比赛地点:{{ n.address }} | ||
| 89 | </p> | ||
| 90 | <span v-if="n.type == '0'" class="typeTag blue">独立赛</span> | ||
| 91 | <span v-else class="typeTag">联赛</span> | ||
| 92 | <div class="mtag"> | ||
| 93 | <el-button v-if="n.progressStatusCode == 3" round type="warning">即将开始</el-button> | ||
| 94 | <el-button v-if="n.progressStatusCode == 2" round type="primary">报名中</el-button> | ||
| 95 | <el-button v-if="n.progressStatusCode == 4" round class="goldbtn">赛事进行中</el-button> | ||
| 96 | <el-button v-if="n.progressStatusCode == 5" round type="info">已结束</el-button> | ||
| 97 | <el-button v-if="n.progressStatusCode == 1" round type="info">报名未开始</el-button> | ||
| 98 | <el-button v-if="n.progressStatusCode == 1" round type="info">报名未开始</el-button> | ||
| 99 | </div> | ||
| 100 | </div> | 74 | </div> |
| 101 | </div> | 75 | </el-col> |
| 102 | </el-col> | 76 | <el-col :lg="8" :md="12" :xl="6"> |
| 103 | </el-row> | 77 | <p class="countDownTitle"> |
| 104 | <el-empty v-if="list.length == 0" description="暂无数据" /> | 78 | <span v-if="language==0">报名截止倒计时</span> |
| 79 | <span v-else>Registration deadline countdown</span> | ||
| 80 | </p> | ||
| 81 | <van-count-down :time="n.time" format="DD 天 HH 时 mm 分 ss 秒"> | ||
| 82 | <template #default="timeData"> | ||
| 83 | <span class="block">{{ timeData.days }}</span> | ||
| 84 | <span class="colon">{{ language==0?'天':'Days' }}</span> | ||
| 85 | <span class="block">{{ timeData.hours }}</span> | ||
| 86 | <span class="colon">{{ language==0?'时':'Hrs' }}</span> | ||
| 87 | <span class="block">{{ timeData.minutes }}</span> | ||
| 88 | <span class="colon">{{ language==0?'分':'Min' }}</span> | ||
| 89 | <span class="block">{{ timeData.seconds }}</span> | ||
| 90 | <span class="colon">{{ language==0?'秒':'Sec' }}</span> | ||
| 91 | </template> | ||
| 92 | </van-count-down> | ||
| 105 | 93 | ||
| 106 | <div v-if="total>18" class="pc-page-box mb20"> | 94 | <div class="text-center mt30"> |
| 95 | <a class="btn-lineG mb20 mauto" v-if="n.time>0" style="display: block;"> | ||
| 96 | {{ language==0?'我要报名':'Register' }}</a> | ||
| 97 | <div v-else style="opacity: 0.5;" class="btn-lineG mb20 mauto">报名已结束</div> | ||
| 98 | </div> | ||
| 99 | </el-col> | ||
| 100 | </el-row> | ||
| 101 | </div> | ||
| 102 | |||
| 103 | <div v-if="total>10" class="pc-page-box mb20"> | ||
| 107 | <PaginationPc v-model:page="query.pageNum" v-model:limit="query.pageSize" :total="total" @pagination="getList" /> | 104 | <PaginationPc v-model:page="query.pageNum" v-model:limit="query.pageSize" :total="total" @pagination="getList" /> |
| 108 | </div> | 105 | </div> |
| 106 | <div class="mb20"></div> | ||
| 107 | |||
| 109 | </div> | 108 | </div> |
| 110 | </div> | 109 | </div> |
| 111 | </template> | 110 | </template> |
| ... | @@ -119,7 +118,8 @@ import { dayjs } from 'element-plus' | ... | @@ -119,7 +118,8 @@ import { dayjs } from 'element-plus' |
| 119 | const router = useRouter() | 118 | const router = useRouter() |
| 120 | const { proxy } = getCurrentInstance() | 119 | const { proxy } = getCurrentInstance() |
| 121 | import * as match from '@/apiPc/match' | 120 | import * as match from '@/apiPc/match' |
| 122 | 121 | import {useStorage} from "@vueuse/core/index"; | |
| 122 | const language= useStorage('language',0) | ||
| 123 | const typeList = ref([{ label: '全部', id: '0' }]) | 123 | const typeList = ref([{ label: '全部', id: '0' }]) |
| 124 | const list = ref([]) | 124 | const list = ref([]) |
| 125 | const projectList = ref([]) | 125 | const projectList = ref([]) |
| ... | @@ -127,6 +127,7 @@ const monthList = ref([]) | ... | @@ -127,6 +127,7 @@ const monthList = ref([]) |
| 127 | const activeName = ref('') | 127 | const activeName = ref('') |
| 128 | const total = ref(0) | 128 | const total = ref(0) |
| 129 | const query = ref({ | 129 | const query = ref({ |
| 130 | type:'-1', | ||
| 130 | projectId: '', | 131 | projectId: '', |
| 131 | progressStatusCode: '-1', | 132 | progressStatusCode: '-1', |
| 132 | month: '', | 133 | month: '', |
| ... | @@ -168,6 +169,10 @@ function getMonthList() { | ... | @@ -168,6 +169,10 @@ function getMonthList() { |
| 168 | function getList() { | 169 | function getList() { |
| 169 | match.getMaList(query.value).then((res) => { | 170 | match.getMaList(query.value).then((res) => { |
| 170 | list.value = res.rows | 171 | list.value = res.rows |
| 172 | for(let n of list.value){ | ||
| 173 | var today = dayjs().format('YYYY-MM-DD HH:mm:ss') | ||
| 174 | n.time = dayjs(n.signEndTime).diff(today, 'millisecond') | ||
| 175 | } | ||
| 171 | total.value = res.total | 176 | total.value = res.total |
| 172 | }) | 177 | }) |
| 173 | } | 178 | } |
| ... | @@ -188,71 +193,106 @@ function goDetail(id) { | ... | @@ -188,71 +193,106 @@ function goDetail(id) { |
| 188 | background: #f5f7f9; | 193 | background: #f5f7f9; |
| 189 | padding: 0; | 194 | padding: 0; |
| 190 | } | 195 | } |
| 191 | |||
| 192 | .matchItem { | 196 | .matchItem { |
| 193 | padding: 20px; | 197 | cursor: pointer;padding:10px 20px 20px;box-shadow: 0 0 6px #eee; |
| 194 | cursor: pointer; | 198 | background: #FFFFFF;margin: 0 0 20px; |
| 195 | box-shadow: 0px 0px 24px 1px rgba(99, 99, 99, 0.22); | ||
| 196 | margin-bottom: 40px; | ||
| 197 | min-height: 180px; | ||
| 198 | background: #ffffff; | ||
| 199 | position: relative; | 199 | position: relative; |
| 200 | border-radius: 10px; | 200 | .el-col{padding-top: 20px} |
| 201 | 201 | .countDownTitle{margin: 0} | |
| 202 | .el-icon { | 202 | &:last-child { |
| 203 | color: rgba(210, 215, 217, 1); | 203 | border-bottom: none; |
| 204 | position: relative; | ||
| 205 | top: 4px; | ||
| 206 | } | ||
| 207 | |||
| 208 | .el-tag { | ||
| 209 | margin-left: 6px; | ||
| 210 | } | 204 | } |
| 205 | .el-avatar { | ||
| 206 | position: absolute; | ||
| 207 | left: 20px; | ||
| 208 | top: 30px; | ||
| 211 | 209 | ||
| 212 | :deep(.matchCover) { | 210 | img { |
| 213 | --el-avatar-bg-color: #fff; | 211 | background: #fff; |
| 212 | } | ||
| 214 | } | 213 | } |
| 215 | 214 | ||
| 216 | .info { | 215 | .info { |
| 217 | p { | 216 | p { |
| 218 | margin: 0 0 5px; | ||
| 219 | font-size: 14px; | 217 | font-size: 14px; |
| 220 | } | 218 | } |
| 221 | } | 219 | } |
| 222 | 220 | ||
| 223 | .typeTag { | 221 | .typeTag { |
| 224 | position: absolute; | 222 | position: absolute; |
| 225 | left: 20px; | 223 | right: 0; |
| 226 | bottom: 20px; | 224 | top: 0; |
| 227 | border-radius: 5px; | ||
| 228 | padding: 2px 12px; | ||
| 229 | background: #ff8124; | ||
| 230 | font-size: 14px; | ||
| 231 | color: #fff; | ||
| 232 | } | ||
| 233 | |||
| 234 | .typeTag.blue { | ||
| 235 | background: #00a0e9; | ||
| 236 | } | 225 | } |
| 237 | 226 | ||
| 238 | h3 { | 227 | h3 { |
| 239 | font-weight: 500; | 228 | font-weight: 500;margin: 0 0 10px; |
| 240 | font-size: 18px; | 229 | font-size: 18px; |
| 241 | color: #000000; | 230 | color: #000000; |
| 242 | margin: 10px 0; | ||
| 243 | text-overflow: ellipsis; | 231 | text-overflow: ellipsis; |
| 244 | } | 232 | } |
| 245 | 233 | ||
| 246 | &:hover { | 234 | &:hover h3 { |
| 247 | box-shadow: 0 0 10px 0px #e7e7e7; | 235 | color: var(--el-color-primary); |
| 248 | } | 236 | } |
| 237 | } | ||
| 238 | .countDownTitle { | ||
| 239 | text-align: center; | ||
| 240 | color: #525F6B; | ||
| 241 | position: relative; | ||
| 242 | width: 100%; | ||
| 243 | left: 0; | ||
| 244 | font-size: 14px; | ||
| 245 | } | ||
| 249 | 246 | ||
| 250 | .mtag { | 247 | .countDownTitle span { |
| 251 | text-align: right; | 248 | background: #fff; |
| 252 | margin-top: 10px; | 249 | padding: 0 10px; |
| 253 | } | 250 | position: relative; |
| 251 | z-index: 1; | ||
| 254 | } | 252 | } |
| 255 | 253 | ||
| 254 | .countDownTitle::after { | ||
| 255 | position: absolute; | ||
| 256 | background: #ccc; | ||
| 257 | height: 1px; | ||
| 258 | content: ''; | ||
| 259 | top: 0; | ||
| 260 | bottom: 0; | ||
| 261 | margin: auto; | ||
| 262 | width: 100%; | ||
| 263 | left: 0; | ||
| 264 | } | ||
| 265 | .info .ppl{margin: 5px 0;} | ||
| 266 | .ppl{color: #29343C; | ||
| 267 | label{color: #929AA0;} | ||
| 268 | } | ||
| 269 | .van-count-down { | ||
| 270 | text-align: center; | ||
| 271 | margin: 20px 0; | ||
| 272 | } | ||
| 273 | |||
| 274 | .colon { | ||
| 275 | display: inline-block; | ||
| 276 | font-size: 16px; | ||
| 277 | margin: 0 8px; | ||
| 278 | color: #7B7F83; | ||
| 279 | } | ||
| 280 | |||
| 281 | .block { | ||
| 282 | display: inline-block; opacity: 0.7; | ||
| 283 | width: 52px; | ||
| 284 | color: #fff; | ||
| 285 | font-size: 26px; | ||
| 286 | font-weight: bold; | ||
| 287 | border-radius: 10px; | ||
| 288 | background: url(@/assets/img/djs_bg.png) left; | ||
| 289 | background-size: 100% 100%; | ||
| 290 | line-height: 50px; | ||
| 291 | text-align: center; | ||
| 292 | } | ||
| 293 | @media (max-width: 1450px) { | ||
| 294 | .block{width: 44px;font-size: 20px;} | ||
| 295 | } | ||
| 256 | .el-pagination { | 296 | .el-pagination { |
| 257 | --el-pagination-button-disabled-bg-color: transparent; | 297 | --el-pagination-button-disabled-bg-color: transparent; |
| 258 | justify-content: center; | 298 | justify-content: center; |
| ... | @@ -266,15 +306,13 @@ function goDetail(id) { | ... | @@ -266,15 +306,13 @@ function goDetail(id) { |
| 266 | list-style: none; | 306 | list-style: none; |
| 267 | 307 | ||
| 268 | li { | 308 | li { |
| 269 | margin: 0 0 20px; | 309 | margin: 0 0 10px; |
| 270 | display: flex;padding-bottom: 15px; | 310 | display: flex;padding-bottom: 15px; |
| 271 | align-items: center; | 311 | align-items: center; |
| 272 | border-bottom: 1px solid #e6e6e6; | ||
| 273 | & > label { | 312 | & > label { |
| 274 | width:5em;text-align: right; | 313 | width:5em;text-align: right;font-weight: normal; |
| 275 | border-left: 4px solid var(--el-color-primary); | ||
| 276 | } | 314 | } |
| 277 | .el-radio-button{width: 90px;text-align: center;margin: 5px} | 315 | .el-radio-button{width: 90px;text-align: center;} |
| 278 | &:last-child{border-bottom: none;margin: 0} | 316 | &:last-child{border-bottom: none;margin: 0} |
| 279 | } | 317 | } |
| 280 | } | 318 | } | ... | ... |
src/viewsPc/register/beauty.vue
0 → 100644
| 1 | <template> | ||
| 2 | <div> | ||
| 3 | <div class="mt30"></div> | ||
| 4 | <div class="box"> | ||
| 5 | <beauty-step :active-step="activeStep"/> | ||
| 6 | |||
| 7 | <el-card class="mt20 mb20" v-if="activeStep == 0"> | ||
| 8 | <div class="pt30"> | ||
| 9 | <el-form class="d-form" size="large" :label-width="language==0?120:200" style="max-width: 500px;margin: auto"> | ||
| 10 | <el-form-item :label="language==0?'邮箱':'E-mail'" required> | ||
| 11 | <el-input type="text" v-model="form.account" @change="resetCode" @blur="verifyCode" | ||
| 12 | /> | ||
| 13 | <div class="tip" v-if="language==0"> | ||
| 14 | (请填写正确的邮箱信息,邮箱信息在注册完成后无法修改。 | ||
| 15 | 该邮箱后续会会作为您登录的账户) | ||
| 16 | </div> | ||
| 17 | <div v-else class="tip"> | ||
| 18 | Please fill in a correct mailbox information, which cannot be modified after registration. | ||
| 19 | The mailbox will receive your registration review. | ||
| 20 | </div> | ||
| 21 | </el-form-item> | ||
| 22 | <el-form-item :label="language==0?'验证码':'Code'" required> | ||
| 23 | <el-input v-model="form.code"> | ||
| 24 | <template #append> | ||
| 25 | <el-button type="primary" plain style="width: 110px" @click="sendsmsMsg"> | ||
| 26 | <count-down v-if="counting" v-slot="{ totalSeconds }" :time="60000" @end="counting=false"> | ||
| 27 | {{ totalSeconds }} {{ language == 0 ? '秒' : 's' }} | ||
| 28 | </count-down> | ||
| 29 | <span v-else> | ||
| 30 | {{ language == 0 ? '发送验证码' : 'Send code' }} | ||
| 31 | </span> | ||
| 32 | </el-button> | ||
| 33 | </template> | ||
| 34 | </el-input> | ||
| 35 | <div class="vcodeBox" :style="isShow?'height:240px':'height:0'"> | ||
| 36 | <Vcode :show="isShow" :successText="successVcode" :failText="failVcode" :slider-text="sliderText" | ||
| 37 | type="inside" @success="codeSuccess"></Vcode> | ||
| 38 | </div> | ||
| 39 | </el-form-item> | ||
| 40 | </el-form> | ||
| 41 | </div> | ||
| 42 | </el-card> | ||
| 43 | </div> | ||
| 44 | </div> | ||
| 45 | </template> | ||
| 46 | |||
| 47 | <script setup> | ||
| 48 | import {ref} from "vue" | ||
| 49 | import BeautyStep from "./components/beauty-step" | ||
| 50 | import {useStorage} from "@vueuse/core/index"; | ||
| 51 | |||
| 52 | const activeStep = ref(0) | ||
| 53 | const form = ref({}) | ||
| 54 | const language = useStorage('language', 0) | ||
| 55 | |||
| 56 | |||
| 57 | </script> | ||
| 58 | <style scoped lang="scss"> | ||
| 59 | .tip{line-height: 1.6;margin-top: 10px;} | ||
| 60 | </style> |
| 1 | <template> | ||
| 2 | <el-card> | ||
| 3 | <el-steps :active="activeStep" finish-status="success" align-center> | ||
| 4 | <el-step :title="language==0?'创建账号':'Check WDSF ID'"/> | ||
| 5 | <el-step :title="language==0?'账号信息':'Participant Registration'" /> | ||
| 6 | <!-- <el-step :title="language==0?'提交审核':'Submit for review'" />--> | ||
| 7 | <el-step :title="language==0?'注册完成':'stered successfully'" /> | ||
| 8 | </el-steps> | ||
| 9 | </el-card> | ||
| 10 | </template> | ||
| 11 | |||
| 12 | <script setup> | ||
| 13 | import {ref} from "vue"; | ||
| 14 | import cache from "@/plugins/cache"; | ||
| 15 | import {useStorage} from "@vueuse/core/index"; | ||
| 16 | |||
| 17 | const language = useStorage('language', 0) | ||
| 18 | |||
| 19 | const props = defineProps({ | ||
| 20 | activeStep: { | ||
| 21 | type: Number, | ||
| 22 | required: true | ||
| 23 | } | ||
| 24 | }) | ||
| 25 | </script> | ||
| 26 | |||
| 27 | <style scoped> | ||
| 28 | |||
| 29 | </style> |
| ... | @@ -52,8 +52,8 @@ | ... | @@ -52,8 +52,8 @@ |
| 52 | <div class="h20"></div> | 52 | <div class="h20"></div> |
| 53 | <el-form-item :label="language==0?'性别':'Sex'" required> | 53 | <el-form-item :label="language==0?'性别':'Sex'" required> |
| 54 | <el-radio-group v-model="wdsfData.sex"> | 54 | <el-radio-group v-model="wdsfData.sex"> |
| 55 | <el-radio label="0">{{ language == 0 ? '女' : 'female' }}</el-radio> | 55 | <el-radio value="0">{{ language == 0 ? '女' : 'female' }}</el-radio> |
| 56 | <el-radio label="1">{{ language == 0 ? '男' : 'male' }}</el-radio> | 56 | <el-radio value="1">{{ language == 0 ? '男' : 'male' }}</el-radio> |
| 57 | </el-radio-group> | 57 | </el-radio-group> |
| 58 | </el-form-item> | 58 | </el-form-item> |
| 59 | 59 | ... | ... |
| ... | @@ -2,107 +2,115 @@ | ... | @@ -2,107 +2,115 @@ |
| 2 | <el-card style="min-height: 50vh"> | 2 | <el-card style="min-height: 50vh"> |
| 3 | <div class="pt30"> | 3 | <div class="pt30"> |
| 4 | <el-form class="d-form" size="large" :label-width="language==0?120:200" style="max-width: 500px;margin: auto"> | 4 | <el-form class="d-form" size="large" :label-width="language==0?120:200" style="max-width: 500px;margin: auto"> |
| 5 | <el-form-item :label="language==0?'邮箱':'E-mail'" required> | 5 | <el-form-item :label="language==0?'邮箱':'E-mail'" required> |
| 6 | <el-input type="text" v-model="form.account" @change="resetCode" @blur="verifyCode" | 6 | <el-input type="text" v-model="form.account" @change="resetCode" @blur="verifyCode" |
| 7 | /> | 7 | /> |
| 8 | <div class="tip" v-if="language==0"> | 8 | <div class="tip" v-if="language==0"> |
| 9 | (请填写正确的邮箱信息,邮箱信息在注册完成后无法修改。 | 9 | (请填写正确的邮箱信息,邮箱信息在注册完成后无法修改。 |
| 10 | 该邮箱后续会会作为您登录的账户,并接收您报名审核、支付账单、比赛邀请函等。) | 10 | 该邮箱后续会会作为您登录的账户,并接收您报名审核、支付账单、比赛邀请函等。) |
| 11 | </div> | 11 | </div> |
| 12 | <div v-else class="tip"> | 12 | <div v-else class="tip"> |
| 13 | Please fill in a correct mailbox information, which cannot be modified after registration. | 13 | Please fill in a correct mailbox information, which cannot be modified after registration. |
| 14 | The mailbox will receive your registration review, payment of bills, competition invitation and so | 14 | The mailbox will receive your registration review, payment of bills, competition invitation and so |
| 15 | on. | 15 | on. |
| 16 | </div> | 16 | </div> |
| 17 | </el-form-item> | 17 | </el-form-item> |
| 18 | <el-form-item :label="language==0?'验证码':'Code'" required> | 18 | <el-form-item :label="language==0?'验证码':'Code'" required> |
| 19 | <el-input v-model="form.code"> | 19 | <el-input v-model="form.code"> |
| 20 | <template #append> | 20 | <template #append> |
| 21 | <el-button type="primary" plain style="width: 110px" @click="sendsmsMsg"> | 21 | <el-button type="primary" plain style="width: 110px" @click="sendsmsMsg"> |
| 22 | <count-down v-if="counting" v-slot="{ totalSeconds }" :time="60000" @end="counting=false"> | 22 | <count-down v-if="counting" v-slot="{ totalSeconds }" :time="60000" @end="counting=false"> |
| 23 | {{ totalSeconds }} {{ language==0?'秒':'s' }} | 23 | {{ totalSeconds }} {{ language == 0 ? '秒' : 's' }} |
| 24 | </count-down> | 24 | </count-down> |
| 25 | <span v-else> | 25 | <span v-else> |
| 26 | {{ language==0?'发送验证码':'Send code' }} | 26 | {{ language == 0 ? '发送验证码' : 'Send code' }} |
| 27 | </span> | 27 | </span> |
| 28 | </el-button> | 28 | </el-button> |
| 29 | </template> | 29 | </template> |
| 30 | </el-input> | 30 | </el-input> |
| 31 | <div class="vcodeBox" :style="isShow?'height:240px':'height:0'"> | 31 | <div class="vcodeBox" :style="isShow?'height:240px':'height:0'"> |
| 32 | <Vcode :show="isShow" :successText="successVcode" :failText="failVcode" :slider-text="sliderText" | 32 | <Vcode :show="isShow" :successText="successVcode" :failText="failVcode" :slider-text="sliderText" |
| 33 | type="inside" @success="codeSuccess"></Vcode> | 33 | type="inside" @success="codeSuccess"></Vcode> |
| 34 | </div> | 34 | </div> |
| 35 | </el-form-item> | 35 | </el-form-item> |
| 36 | </el-form> | 36 | </el-form> |
| 37 | </div> | 37 | </div> |
| 38 | <div class="text-center"> | 38 | <div class="text-center"> |
| 39 | <!-- <el-button class="primary-kx" round @click="goBack">取消</el-button>--> | 39 | <!-- <el-button class="primary-kx" round @click="goBack">取消</el-button>--> |
| 40 | <el-button type="primary" class="btn-lineG w200px" round @click="next">{{language==0?'下一步':'NEXT' }}</el-button> | 40 | <el-button type="primary" class="btn-lineG w200px" round @click="next">{{ |
| 41 | language == 0 ? '下一步' : 'NEXT' | ||
| 42 | }} | ||
| 43 | </el-button> | ||
| 41 | </div> | 44 | </div> |
| 42 | </el-card> | 45 | </el-card> |
| 43 | </template> | 46 | </template> |
| 44 | 47 | ||
| 45 | <script setup> | 48 | <script setup> |
| 46 | import {reactive,toRefs} from 'vue' | 49 | import {reactive, toRefs} from 'vue' |
| 47 | import Vcode from "vue3-puzzle-vcode" | 50 | import Vcode from "vue3-puzzle-vcode" |
| 48 | import { ElMessage } from 'element-plus' | 51 | import {ElMessage} from 'element-plus' |
| 49 | import CountDown from '@chenfengyuan/vue-countdown' | 52 | import CountDown from '@chenfengyuan/vue-countdown' |
| 50 | import {getCaptchaSms,checkRegisterCode} from "@/apiPc/match"; | 53 | import {getCaptchaSms, checkRegisterCode} from "@/apiPc/match"; |
| 51 | import {onMounted} from "@vue/runtime-core"; | 54 | import {onMounted} from "@vue/runtime-core"; |
| 52 | import {useStorage} from "@vueuse/core/index"; | 55 | import {useStorage} from "@vueuse/core/index"; |
| 53 | const language= useStorage('language',0) | 56 | |
| 57 | const language = useStorage('language', 0) | ||
| 54 | 58 | ||
| 55 | const data = reactive({ | 59 | const data = reactive({ |
| 56 | isShow:false, | 60 | isShow: false, |
| 57 | isCodeTrue:false, | 61 | isCodeTrue: false, |
| 58 | counting:false, | 62 | counting: false, |
| 59 | form:{}, | 63 | form: {}, |
| 60 | activeStep: 0, | 64 | activeStep: 0, |
| 61 | failVcode:'验证失败,请重试', | 65 | failVcode: '验证失败,请重试', |
| 62 | successVcode:'验证通过!', | 66 | successVcode: '验证通过!', |
| 63 | sliderText: '拖动滑块完成拼图', | 67 | sliderText: '拖动滑块完成拼图', |
| 64 | }) | 68 | }) |
| 65 | const {isShow,isCodeTrue,counting,form,activeStep,failVcode,successVcode,sliderText} = toRefs(data) | 69 | const {isShow, isCodeTrue, counting, form, activeStep, failVcode, successVcode, sliderText} = toRefs(data) |
| 66 | const emit = defineEmits(['submit','userName']) | 70 | const emit = defineEmits(['submit', 'userName']) |
| 67 | onMounted(()=>{ | 71 | onMounted(() => { |
| 68 | if(language.value==1){ | 72 | if (language.value == 1) { |
| 69 | failVcode.value = 'Error!' | 73 | failVcode.value = 'Error!' |
| 70 | successVcode.value = 'Success!' | 74 | successVcode.value = 'Success!' |
| 71 | sliderText.value = 'Drag the slider to complete the puzzle' | 75 | sliderText.value = 'Drag the slider to complete the puzzle' |
| 72 | } | 76 | } |
| 73 | }) | 77 | }) |
| 78 | |||
| 74 | function sendsmsMsg() { | 79 | function sendsmsMsg() { |
| 75 | if(!form.value.account){ | 80 | if (!form.value.account) { |
| 76 | if(language.value==0){ | 81 | if (language.value == 0) { |
| 77 | ElMessage.error('请填写手机/邮箱') | 82 | ElMessage.error('请填写手机/邮箱') |
| 78 | } else { | 83 | } else { |
| 79 | ElMessage.error('Please fill in your phone/email address') | 84 | ElMessage.error('Please fill in your phone/email address') |
| 80 | } | 85 | } |
| 81 | return | 86 | return |
| 82 | } | 87 | } |
| 83 | if(counting.value){ | 88 | if (counting.value) { |
| 84 | return | 89 | return |
| 85 | } else { | 90 | } else { |
| 86 | isShow.value = true | 91 | isShow.value = true |
| 87 | } | 92 | } |
| 88 | } | 93 | } |
| 94 | |||
| 89 | function verifyCode() { | 95 | function verifyCode() { |
| 90 | if(!form.value.account){ | 96 | if (!form.value.account) { |
| 91 | return | 97 | return |
| 92 | } | 98 | } |
| 93 | if(form.value.account.indexOf('@')>-1){ | 99 | if (form.value.account.indexOf('@') > -1) { |
| 94 | //邮箱 | 100 | //邮箱 |
| 95 | } | 101 | } |
| 96 | } | 102 | } |
| 103 | |||
| 97 | function codeSuccess(msg) { | 104 | function codeSuccess(msg) { |
| 98 | console.log('验证通过' + msg); | 105 | console.log('验证通过' + msg); |
| 99 | isShow.value = false | 106 | isShow.value = false |
| 100 | isCodeTrue.value = true | 107 | isCodeTrue.value = true |
| 101 | counting.value = true | 108 | counting.value = true |
| 102 | getCaptchaSms({account:form.value.account}).then(res=>{ | 109 | getCaptchaSms({account: form.value.account}).then(res => { |
| 103 | 110 | ||
| 104 | }) | 111 | }) |
| 105 | } | 112 | } |
| 113 | |||
| 106 | function resetCode() { | 114 | function resetCode() { |
| 107 | isCodeTrue.value = false | 115 | isCodeTrue.value = false |
| 108 | } | 116 | } |
| ... | @@ -111,42 +119,51 @@ const goBack = () => { | ... | @@ -111,42 +119,51 @@ const goBack = () => { |
| 111 | router.go(-1) | 119 | router.go(-1) |
| 112 | } | 120 | } |
| 113 | const next = () => { | 121 | const next = () => { |
| 114 | if(!form.value.account){ | 122 | if (!form.value.account) { |
| 115 | if(language.value==0){ | 123 | if (language.value == 0) { |
| 116 | ElMessage.error('请填写手机/邮箱') | 124 | ElMessage.error('请填写邮箱') |
| 117 | } else { | 125 | } else { |
| 118 | ElMessage.error('Please fill in your phone/email address') | 126 | ElMessage.error('Please fill in your phone/email address') |
| 119 | } | 127 | } |
| 120 | return | 128 | return |
| 121 | } | 129 | } |
| 122 | if(!form.value.code){ | 130 | if (!form.value.code) { |
| 123 | if(language.value==0){ | 131 | if (language.value == 0) { |
| 124 | ElMessage.error('请填写验证码') | 132 | ElMessage.error('请填写验证码') |
| 125 | } else { | 133 | } else { |
| 126 | ElMessage.error('Please fill in Code') | 134 | ElMessage.error('Please fill in Code') |
| 127 | } | 135 | } |
| 128 | return | 136 | return |
| 129 | } | 137 | } |
| 130 | if(!isCodeTrue.value){ | 138 | if (!isCodeTrue.value) { |
| 131 | return | 139 | return |
| 132 | } | 140 | } |
| 133 | checkRegisterCode(form.value).then(res=>{ | 141 | checkRegisterCode(form.value).then(res => { |
| 134 | emit('submit') | 142 | emit('submit') |
| 135 | emit('userName',form.value.account) | 143 | emit('userName', form.value.account) |
| 136 | }) | 144 | }) |
| 137 | } | 145 | } |
| 138 | 146 | ||
| 139 | </script> | 147 | </script> |
| 140 | 148 | ||
| 141 | <style scoped lang="scss"> | 149 | <style scoped lang="scss"> |
| 142 | .el-input-group__append button.el-button, .el-input-group__append button.el-button:hover{ | 150 | .el-input-group__append button.el-button, .el-input-group__append button.el-button:hover { |
| 143 | color: var(--el-color-primary); | 151 | color: var(--el-color-primary); |
| 144 | background: #efefff; | 152 | background: #efefff; |
| 145 | border: var(--el-color-primary) solid 1px; | 153 | border: var(--el-color-primary) solid 1px; |
| 146 | border-radius: 0; | 154 | border-radius: 0; |
| 147 | } | 155 | } |
| 148 | .vcodeBox{ position: relative;margin: 20px 0 0; | 156 | |
| 149 | width: 320px;overflow: hidden; | 157 | .vcodeBox { |
| 150 | height: auto;} | 158 | position: relative; |
| 151 | .tip{line-height: 1.6;margin-top: 10px;} | 159 | margin: 20px 0 0; |
| 160 | width: 320px; | ||
| 161 | overflow: hidden; | ||
| 162 | height: auto; | ||
| 163 | } | ||
| 164 | |||
| 165 | .tip { | ||
| 166 | line-height: 1.6; | ||
| 167 | margin-top: 10px; | ||
| 168 | } | ||
| 152 | </style> | 169 | </style> | ... | ... |
| ... | @@ -25,8 +25,9 @@ import Step2 from "./step2"; | ... | @@ -25,8 +25,9 @@ import Step2 from "./step2"; |
| 25 | import Step3 from "./step3"; | 25 | import Step3 from "./step3"; |
| 26 | import {onMounted,toRefs,reactive} from "vue" | 26 | import {onMounted,toRefs,reactive} from "vue" |
| 27 | import {useStorage} from "@vueuse/core/index"; | 27 | import {useStorage} from "@vueuse/core/index"; |
| 28 | import {useRoute} from "vue-router"; | ||
| 28 | const language= useStorage('language',0) | 29 | const language= useStorage('language',0) |
| 29 | 30 | const route = useRoute() | |
| 30 | const data = reactive({ | 31 | const data = reactive({ |
| 31 | isShow:false, | 32 | isShow:false, |
| 32 | isCodeTrue:false, | 33 | isCodeTrue:false, |
| ... | @@ -38,6 +39,11 @@ const data = reactive({ | ... | @@ -38,6 +39,11 @@ const data = reactive({ |
| 38 | }) | 39 | }) |
| 39 | const {isShow,isCodeTrue,counting,form,activeStep} = toRefs(data) | 40 | const {isShow,isCodeTrue,counting,form,activeStep} = toRefs(data) |
| 40 | 41 | ||
| 42 | onMounted(() => { | ||
| 43 | if(route.query.step){ | ||
| 44 | activeStep.value = Number(route.query.step) | ||
| 45 | } | ||
| 46 | }) | ||
| 41 | const toStep1 = () => { | 47 | const toStep1 = () => { |
| 42 | activeStep.value = 0 | 48 | activeStep.value = 0 |
| 43 | } | 49 | } | ... | ... |
| ... | @@ -41,8 +41,8 @@ | ... | @@ -41,8 +41,8 @@ |
| 41 | </el-form-item> | 41 | </el-form-item> |
| 42 | <el-form-item label="性别" prop="sex" required> | 42 | <el-form-item label="性别" prop="sex" required> |
| 43 | <el-radio-group v-model="form.sex" disabled> | 43 | <el-radio-group v-model="form.sex" disabled> |
| 44 | <el-radio label="0" size="large">男</el-radio> | 44 | <el-radio value="0" size="large">男</el-radio> |
| 45 | <el-radio label="1" size="large">女</el-radio> | 45 | <el-radio value="1" size="large">女</el-radio> |
| 46 | </el-radio-group> | 46 | </el-radio-group> |
| 47 | </el-form-item> | 47 | </el-form-item> |
| 48 | <el-form-item label="证件类型" prop="idcType" required> | 48 | <el-form-item label="证件类型" prop="idcType" required> | ... | ... |
| ... | @@ -25,17 +25,17 @@ | ... | @@ -25,17 +25,17 @@ |
| 25 | <el-col v-if="activity.invoiceFlag=='1'" :span="12"> | 25 | <el-col v-if="activity.invoiceFlag=='1'" :span="12"> |
| 26 | <el-form-item label="是否需要发票" prop="invoiceFlag" required> | 26 | <el-form-item label="是否需要发票" prop="invoiceFlag" required> |
| 27 | <el-radio-group v-model="form.invoiceFlag"> | 27 | <el-radio-group v-model="form.invoiceFlag"> |
| 28 | <el-radio label="1" size="large">是</el-radio> | 28 | <el-radio value="1" size="large">是</el-radio> |
| 29 | <el-radio label="0" size="large">否</el-radio> | 29 | <el-radio value="0" size="large">否</el-radio> |
| 30 | </el-radio-group> | 30 | </el-radio-group> |
| 31 | </el-form-item> | 31 | </el-form-item> |
| 32 | </el-col> | 32 | </el-col> |
| 33 | <el-col v-if="activity.invoiceFlag=='1'" :span="12"> | 33 | <el-col v-if="activity.invoiceFlag=='1'" :span="12"> |
| 34 | <el-form-item v-if="form.invoiceFlag=='1'" label="发票形式" prop="invoiceType" required> | 34 | <el-form-item v-if="form.invoiceFlag=='1'" label="发票形式" prop="invoiceType" required> |
| 35 | <el-radio-group v-model="form.invoiceType"> | 35 | <el-radio-group v-model="form.invoiceType"> |
| 36 | <el-radio v-if="activity.invoiceType.indexOf('0')>-1" label="0" size="large">电子票</el-radio> | 36 | <el-radio v-if="activity.invoiceType.indexOf('0')>-1" value="0" size="large">电子票</el-radio> |
| 37 | <el-radio v-if="activity.invoiceType.indexOf('1')>-1" label="1" size="large">纸质专票</el-radio> | 37 | <el-radio v-if="activity.invoiceType.indexOf('1')>-1" value="1" size="large">纸质专票</el-radio> |
| 38 | <el-radio v-if="activity.invoiceType.indexOf('2')>-1" label="2" size="large">纸质普票</el-radio> | 38 | <el-radio v-if="activity.invoiceType.indexOf('2')>-1" value="2" size="large">纸质普票</el-radio> |
| 39 | </el-radio-group> | 39 | </el-radio-group> |
| 40 | </el-form-item> | 40 | </el-form-item> |
| 41 | </el-col> | 41 | </el-col> | ... | ... |
| ... | @@ -16,24 +16,24 @@ | ... | @@ -16,24 +16,24 @@ |
| 16 | <li> | 16 | <li> |
| 17 | <label>状态:</label> | 17 | <label>状态:</label> |
| 18 | <el-radio-group v-model="query.flag" @change="searchList"> | 18 | <el-radio-group v-model="query.flag" @change="searchList"> |
| 19 | <el-radio-button label="">全部</el-radio-button> | 19 | <el-radio-button value="">全部</el-radio-button> |
| 20 | <el-radio-button label="1">未开始</el-radio-button> | 20 | <el-radio-button value="1">未开始</el-radio-button> |
| 21 | <el-radio-button label="2">进行中</el-radio-button> | 21 | <el-radio-button value="2">进行中</el-radio-button> |
| 22 | <el-radio-button label="3">已结束</el-radio-button> | 22 | <el-radio-button value="3">已结束</el-radio-button> |
| 23 | </el-radio-group> | 23 | </el-radio-group> |
| 24 | </li> | 24 | </li> |
| 25 | <li> | 25 | <li> |
| 26 | <label>省份:</label> | 26 | <label>省份:</label> |
| 27 | <el-radio-group v-model="query.projectId" @change="searchList"> | 27 | <el-radio-group v-model="query.projectId" @change="searchList"> |
| 28 | <el-radio-button label="">全部</el-radio-button> | 28 | <el-radio-button value="">全部</el-radio-button> |
| 29 | <el-radio-button v-for="p in projectList" :key="p.provinceId" :label="p.provinceId">{{ p.provinceName }}</el-radio-button> | 29 | <el-radio-button v-for="p in projectList" :key="p.provinceId" :value="p.provinceId">{{ p.provinceName }}</el-radio-button> |
| 30 | </el-radio-group> | 30 | </el-radio-group> |
| 31 | </li> | 31 | </li> |
| 32 | <li> | 32 | <li> |
| 33 | <label>时间:</label> | 33 | <label>时间:</label> |
| 34 | <el-radio-group v-model="query.yearMonth" @change="searchList"> | 34 | <el-radio-group v-model="query.yearMonth" @change="searchList"> |
| 35 | <el-radio-button label="">全部</el-radio-button> | 35 | <el-radio-button value="">全部</el-radio-button> |
| 36 | <el-radio-button v-for="m in monthList" :key="m" :label="m" /> | 36 | <el-radio-button v-for="m in monthList" :key="m" :value="m" /> |
| 37 | </el-radio-group> | 37 | </el-radio-group> |
| 38 | </li> | 38 | </li> |
| 39 | </ul> | 39 | </ul> | ... | ... |
src/viewsPc/vip/teamVip.vue
deleted
100644 → 0
| 1 | <template> | ||
| 2 | <div> | ||
| 3 | <div class="box"> | ||
| 4 | <el-breadcrumb class="mt20" :separator-icon="ArrowRight"> | ||
| 5 | <el-breadcrumb-item :to="{ path: '/' }"> | ||
| 6 | <el-icon> | ||
| 7 | <HomeFilled/> | ||
| 8 | </el-icon> | ||
| 9 | 首页 | ||
| 10 | </el-breadcrumb-item> | ||
| 11 | <el-breadcrumb-item :to="{ name: 'vip' }">会员服务</el-breadcrumb-item> | ||
| 12 | <el-breadcrumb-item>团体会员</el-breadcrumb-item> | ||
| 13 | </el-breadcrumb> | ||
| 14 | <el-card class="mt20"> | ||
| 15 | <div class="queryBox"> | ||
| 16 | <el-form v-model="query"> | ||
| 17 | <el-form-item label="省份/城市:"> | ||
| 18 | <el-select class="mr10"> | ||
| 19 | <el-option | ||
| 20 | v-for="item in cities" | ||
| 21 | :key="item.value" | ||
| 22 | :label="item.label" | ||
| 23 | :value="item.value" | ||
| 24 | /> | ||
| 25 | </el-select> | ||
| 26 | <el-select> | ||
| 27 | <el-option | ||
| 28 | v-for="item in cities" | ||
| 29 | :key="item.value" | ||
| 30 | :label="item.label" | ||
| 31 | :value="item.value" | ||
| 32 | /> | ||
| 33 | </el-select> | ||
| 34 | </el-form-item> | ||
| 35 | <el-form-item label="团体级别:"> | ||
| 36 | <el-radio-group v-model="query.level"> | ||
| 37 | <el-radio-button label="-1">全部</el-radio-button> | ||
| 38 | <el-radio-button label="0">一级团体会员</el-radio-button> | ||
| 39 | <el-radio-button label="1">二级团体会员</el-radio-button> | ||
| 40 | <el-radio-button label="2">职业性团体会员</el-radio-button> | ||
| 41 | </el-radio-group> | ||
| 42 | </el-form-item> | ||
| 43 | <el-form-item label="当前状态:"> | ||
| 44 | <el-radio-group v-model="query.level"> | ||
| 45 | <el-radio-button label="-1">全部</el-radio-button> | ||
| 46 | <el-radio-button label="0">正常</el-radio-button> | ||
| 47 | <el-radio-button label="1">已过期</el-radio-button> | ||
| 48 | </el-radio-group> | ||
| 49 | </el-form-item> | ||
| 50 | </el-form> | ||
| 51 | |||
| 52 | <div class="search"> | ||
| 53 | <el-input | ||
| 54 | v-model="query.name" | ||
| 55 | placeholder="请输入团体会员名称查询" | ||
| 56 | :suffix-icon="Search" | ||
| 57 | /> | ||
| 58 | </div> | ||
| 59 | </div> | ||
| 60 | </el-card> | ||
| 61 | |||
| 62 | <el-card class="mb20 mt20"> | ||
| 63 | <template #header> | ||
| 64 | <div class="card-header"> | ||
| 65 | <span>团体会员列表</span> | ||
| 66 | <span class="fontsize14"><i class="text-danger">35</i> 条数据</span> | ||
| 67 | </div> | ||
| 68 | </template> | ||
| 69 | <div class="teamVipItem" v-for="n in 3"> | ||
| 70 | <div class="imgbox"><img/></div> | ||
| 71 | <div class="info"> | ||
| 72 | <h3 class="esp">北京市跆拳道协会1</h3> | ||
| 73 | <p class="esp"> | ||
| 74 | <el-icon> | ||
| 75 | <LocationFilled/> | ||
| 76 | </el-icon> | ||
| 77 | 北京市丰台区芳城园一区日月天地大厦B座506 拷贝 | ||
| 78 | </p> | ||
| 79 | <p class="esp"> | ||
| 80 | <span><el-icon><PhoneFilled/></el-icon>13912345678</span> | ||
| 81 | <span><el-icon><Checked/></el-icon>注册时间: 2021-08-05</span> | ||
| 82 | <span><el-icon><Failed/></el-icon>到期时间:2023-11-05<i class="text-info">(正常)</i></span> | ||
| 83 | </p> | ||
| 84 | </div> | ||
| 85 | </div> | ||
| 86 | |||
| 87 | <div class="pc-page-box"> | ||
| 88 | <PaginationPc v-model:page="query.pageNum" v-model:limit="query.pageSize" :total="total" @pagination="getList"/> | ||
| 89 | </div> | ||
| 90 | </el-card> | ||
| 91 | |||
| 92 | </div> | ||
| 93 | </div> | ||
| 94 | </template> | ||
| 95 | <script setup> | ||
| 96 | import { Search,ArrowRight } from '@element-plus/icons-vue' | ||
| 97 | import { onMounted, ref } from 'vue' | ||
| 98 | import { useRoute, useRouter } from 'vue-router' | ||
| 99 | |||
| 100 | const route = useRoute() | ||
| 101 | const router = useRouter() | ||
| 102 | const query = ref({}) | ||
| 103 | const total = ref(0) | ||
| 104 | const cities = ref([]) | ||
| 105 | onMounted(() => { | ||
| 106 | |||
| 107 | }) | ||
| 108 | const goDetail = (id) => { | ||
| 109 | router.push({ | ||
| 110 | path: `/news/detail/${id}` | ||
| 111 | }) | ||
| 112 | } | ||
| 113 | </script> | ||
| 114 | <style lang="scss" scoped> | ||
| 115 | .card-header { | ||
| 116 | display: flex; | ||
| 117 | justify-content: space-between; | ||
| 118 | align-items: center; | ||
| 119 | } | ||
| 120 | |||
| 121 | </style> |
-
Please register or sign in to post a comment