99549010 by 杨炀

no message

1 parent 25cffd01
...@@ -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',
......
1 <template> 1 <template>
2 <div> 2 <div>
3 <div class="box"> 3 <div class="box">
4 <el-card class="mt30"></el-card> 4 <el-card class="mt30">
5 <!-- 酒店列表-->
5 6
7 </el-card>
6 </div> 8 </div>
7 9
8 </div> 10 </div>
......
1 <template>
2 <div class="box">
3 <div>
4 <el-card class="mt30">
5
6 </el-card>
7 </div>
8 </div>
9 </template>
10
11 <script setup>
12
13 </script>
14
15 <style scoped>
16
17 </style>
...@@ -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?'地&ensp;&ensp;&ensp;&ensp;点':'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?'邮&ensp;&ensp;&ensp;&ensp;箱':'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>
75 </el-col>
76 <el-col :lg="8" :md="12" :xl="6">
77 <p class="countDownTitle">
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>
93
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>
101 </div> 98 </div>
102 </el-col> 99 </el-col>
103 </el-row> 100 </el-row>
104 <el-empty v-if="list.length == 0" description="暂无数据" /> 101 </div>
105 102
106 <div v-if="total>18" class="pc-page-box mb20"> 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;
200 border-radius: 10px;
201
202 .el-icon {
203 color: rgba(210, 215, 217, 1);
204 position: relative; 199 position: relative;
205 top: 4px; 200 .el-col{padding-top: 20px}
201 .countDownTitle{margin: 0}
202 &:last-child {
203 border-bottom: none;
206 } 204 }
205 .el-avatar {
206 position: absolute;
207 left: 20px;
208 top: 30px;
207 209
208 .el-tag { 210 img {
209 margin-left: 6px; 211 background: #fff;
210 } 212 }
211
212 :deep(.matchCover) {
213 --el-avatar-bg-color: #fff;
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;
252 }
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;
254 } 272 }
255 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 }
......
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
......
...@@ -20,10 +20,10 @@ ...@@ -20,10 +20,10 @@
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>
...@@ -36,73 +36,81 @@ ...@@ -36,73 +36,81 @@
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>
......
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>
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!