00bdea3a by 李婷婷

首页配置

1 parent 25d06fa3
1 <template>
2 <el-dialog
3 v-model="show"
4 :close-on-click-modal="false"
5 :title="language==0?'日程查询':'Schedule inquiry'"
6 align-center
7 append-to-body
8 center
9 class="pcloginpop"
10 close-icon="CircleClose"
11 destroy-on-close
12 style="min-width:350px;max-width: 500px"
13 >
14 <div v-loading="loading" style="min-height: 500px;height: 50vh;">
15
16 <div v-if="!type||type==''">
17 <div class="rItem" @click="type='0'">{{ language == 0 ? '按项目查询' : 'Query by project' }}</div>
18 <div class="rItem" @click="type='1'">{{ language == 0 ? '按团队查询' : 'Query by team' }}</div>
19 <div class="rItem" @click="type='2'">{{ language == 0 ? '按姓名查询' : 'Query by name' }}</div>
20 </div>
21
22 <div v-if="type=='0'">
23 <div class="flex mt30">
24 <el-input
25 v-model="query"
26 :placeholder="language==0?'输入项目/ 项目编号查询':'Enter project name or code to Query'" clearable
27 @blur="search" @empty="search" @enter="search"
28 />
29 <el-button class="btn-lineG" style="color: #fff" @click="search">{{
30 language == 0 ? '查询' : 'Search'
31 }}
32 </el-button>
33 </div>
34
35 <div v-if="list.length>0" class="mt30 rollY">
36 <el-timeline>
37 <el-timeline-item
38 v-for="(form, index) in list"
39 :key="index" :timestamp="form.date + ' ' + form.timeStr"
40 placement="top"
41 >
42 <div class="text-primary">
43 <span v-if="language==1&&form.projectNameEn">{{ form.projectNameEn }}</span>
44 <span v-else-if="form.projectName">{{ form.projectName }}</span>
45 <span class="fr">{{ form.changCi }} <i
46 v-if="form.changCi"
47 >/ </i> {{ language == 0 ? form.lun : form.lunEn }} </span>
48 </div>
49 <div>{{ form.danceType }}</div>
50 <div>{{ form.address }}</div>
51 </el-timeline-item>
52 </el-timeline>
53 </div>
54 <div v-else>
55 <el-empty />
56 </div>
57 </div>
58 <div class="searchBox">
59 <div v-if="type=='1'">
60 <div class="flex mt20">
61 <el-input
62 v-model="query2"
63 :placeholder="language==0?'请输入代表队名称至少两字符':'Enter the representing team name,At least two characters'"
64 clearable
65 @blur="searchTeam" @empty="searchTeam" @enter="searchTeam"
66 />
67 <el-button class="btn-lineG" style="color: #fff" @click="searchTeam">
68 {{ language == 0 ? '查询' : 'Search' }}
69 </el-button>
70 </div>
71 <span class="tip">*{{ language == 0 ? '模糊查询' : 'Fuzzy query' }}</span>
72 <div v-if="showGroupList" class="text-danger text-center">
73 {{ language == 0 ? '找到多个团体' : 'Found multiple teams' }}
74 </div>
75 <div v-if="showGroupList" class="groupList rollY">
76 <ul>
77 <li v-for="(item, index) in groupList" :key="index" @click="showDetail(item)">{{ item }}
78 <el-icon class="fr">
79 <ArrowRight />
80 </el-icon>
81 </li>
82 </ul>
83 </div>
84 <div v-if="teamlist.length>0" class="temell mt20 rollY">
85 <el-collapse accordion>
86 <el-collapse-item v-for="(team,index) in teamlist" :key="index" :name="index" :title="team[0].title">
87 <el-timeline>
88 <el-timeline-item v-for="(form, index) in team" :key="index" placement="top">
89
90 <div class="text-primary" style="position: relative;top:-15px">
91 {{ form.date + ' ' + form.timeStr + ' / ' + form.address }}
92 <span v-if="form.lunEn"> / {{ form.lunEn }}</span>
93 <span v-else-if="form.lun"> / {{ form.lun }}</span>
94 <span v-if="form.changCi "> / {{ language == 0 ? '场次' : 'Session' }}{{ form.changCi }}</span>
95 </div>
96 <div v-if="form.projectNameEn" class="tname">{{ form.projectNameEn }}</div>
97 <div v-if="form.projectName" class="tname">{{ form.projectName }}</div>
98 <div>{{ form.danceType }}</div>
99 </el-timeline-item>
100 </el-timeline>
101 </el-collapse-item>
102 </el-collapse>
103 </div>
104 </div>
105
106 <div v-if="type=='2'">
107 <div class="flex mt30">
108 <el-input
109 v-model="query3"
110 :placeholder="language==0?'输入选手姓名查询':'Enter the name of the player to Query'" clearable
111 @blur="personalSearch" @empty="personalSearch" @enter="personalSearch"
112 />
113 <el-button class="btn-lineG" style="color: #fff" @click="personalSearch">{{
114 language == 0 ? '查询' : 'Search'
115 }}
116 </el-button>
117 </div>
118 <div v-if="list.length>0" class="temell mt20 rollY">
119 <el-timeline>
120 <el-timeline-item v-for="(team,j) in list" :key="j" placement="top">
121 <div v-for="(form, index) in team" v-show="index==0" :key="index">
122 <div class="text-primary" style="position: relative;top:-15px">
123 {{ form.date + ' ' + form.timeStr + ' / ' + form.address }}
124 <span v-if="form.lunEn"> / {{ form.lunEn }}</span>
125 <span v-else-if="form.lun"> / {{ form.lun }}</span>
126 <span v-if="form.changCi "> / {{ language == 0 ? '场次' : 'Session' }}{{ form.changCi }}</span>
127 </div>
128 <div v-if="form.projectNameEn" class="tname">{{ form.projectNameEn }}</div>
129 <div v-if="form.projectName" class="tname">{{ form.projectName }}</div>
130 <div>{{ form.danceType }}</div>
131 </div>
132 <div v-for="(form, index) in team" v-show="index>0" :key="index" style="margin: 8px 0 0">
133 {{ form.date + ' ' + form.timeStr + ' / ' + form.address }}
134 <span v-if="form.lunEn"> / {{ form.lunEn }}</span>
135 <span v-else-if="form.lun"> / {{ form.lun }}</span>
136 <span v-if="form.changCi "> / {{ language == 0 ? '场次' : 'Session' }}{{ form.changCi }}</span>
137 </div>
138 </el-timeline-item>
139 </el-timeline>
140 </div>
141 </div>
142 </div>
143 </div>
144 <div v-if="list.length>0||showGroupList.length>0||teamlist.length>0||groupList.length>0" class="text-center">
145 {{
146 language == 0 ? '下滑查看更多' : 'Scroll down to view more'
147 }}
148 </div>
149 </el-dialog>
150 </template>
151
152 <script setup>
153 import { ref } from 'vue'
154 import { ElMessage } from 'element-plus'
155 import {
156 getquerySchedule2Pre,
157 getqySchedule,
158 getqySchedule2,
159 getTeamBackNumber,
160 getTeamBackNumberPre, queryScheduleSingle
161 } from '@/apiPc/common'
162 import { useStorage } from '@vueuse/core/index'
163
164 const language = useStorage('language', 0)
165 const show = ref(false)
166 // const form = ref({})
167 const list = ref([])
168 const loading = ref(false)
169 const groupList = ref([])
170 const teamlist = ref([])
171 const query = ref('')
172 const query2 = ref('')
173 const query3 = ref('')
174 const type = ref('')
175 const showGroupList = ref(false)
176 const cptId = ref()
177
178 const search = () => {
179 if (!query.value) {
180 ElMessage.warning(language.value == 0 ? '请输入搜索关键词' : 'Enter project name or code to Query')
181 return
182 }
183 getqySchedule({ projectName: query.value, cptId: cptId.value }).then(res => {
184 if (!res.data || res.data.length == 0) {
185 list.value = []
186 // 提示 '未找到结果,请重新查询'
187 ElMessage.warning(language.value == 0 ? '未找到结果,请重新查询' : 'No result')
188 return
189 }
190 list.value = res.data
191 }).catch(e => {
192 loading.value = false
193 })
194 }
195 const searchTeam = () => {
196 teamlist.value = []
197 if (!query2.value || query2.value.length < 2) {
198 ElMessage.warning(language.value == 0 ? '请输入代表队名称至少两字符' : 'Enter the representing team name,At least two characters')
199 return
200 }
201 loading.value = true
202 getquerySchedule2Pre({ groupName: query2.value, cptId: cptId.value }).then(res => {
203 loading.value = false
204 if (!res.data || res.data.length == 0) {
205 groupList.value = []
206 // 提示 '未找到结果,请重新查询'
207 ElMessage.warning(language.value == 0 ? '未找到结果,请重新查询' : 'No result')
208 return
209 }
210 groupList.value = res.data
211 if (groupList.value.length == 1) {
212 showDetail(groupList.value[0])
213 }
214 if (groupList.value.length > 1) {
215 showGroupList.value = true
216 }
217 }).catch(e => {
218 loading.value = false
219 })
220 }
221 const personalSearch = () => {
222 if (!query3.value) {
223 ElMessage.warning(language.value == 0 ? '请输入搜索关键词' : 'Enter project name or code to Query')
224 return
225 }
226 loading.value = true
227 queryScheduleSingle({ query: query3.value, cptId: cptId.value }).then(res => {
228 loading.value = false
229 if (!res.data || res.data.length == 0) {
230 list.value = []
231 // 提示 '未找到结果,请重新查询'
232 ElMessage.warning(language.value == 0 ? '未找到结果,请重新查询' : 'No result')
233 return
234 }
235 list.value = res.data
236 })
237 }
238 const open = (param) => {
239 console.log(param)
240 cptId.value = param.cptId
241 show.value = true
242 list.value = []
243 teamlist.value = []
244 groupList.value = []
245 query.value = ''
246 type.value = ''
247 loading.value = false
248 }
249 defineExpose({
250 open
251 })
252
253 function showDetail(name) {
254 query2.value = name
255 showGroupList.value = false
256 loading.value = true
257 getqySchedule2({ groupName: name, cptId: cptId.value }).then(res => {
258 loading.value = false
259 teamlist.value = res.data
260 }).catch(e => {
261 loading.value = false
262 })
263 }
264 </script>
265
266 <style lang="scss" scoped>
267 .tname {
268 font-size: 14px;
269 font-weight: bold;
270 position: relative;
271 top: -8px
272 }
273
274 .tip {
275 font-size: 12px;
276 margin: 4px 0 0;
277 display: inline-block;
278 }
279
280 .rItem {
281 max-height: 130px;
282 cursor: pointer;
283 border: 1px solid #e1e1e1;
284 border-radius: 4px;
285 max-width: 350px;
286 text-align: center;
287 line-height: 130px;
288 padding: 1px;
289 font-size: 30px;
290 color: #fff;
291 margin: 20px auto;
292 background: linear-gradient(90deg, #8623FC, #453DEA);
293
294 &:hover {
295 background: linear-gradient(90deg, #453DEA, #8623FC);
296 box-shadow: 0 4px 10px #453DEA;
297 border: none;
298 }
299 }
300
301 .nowteamItem {
302 width: 100%;
303 border: 1px solid #c8c5ff;
304 margin-top: 20px;
305 position: relative;
306 border-radius: 4px;
307 padding: 0 0 20px;
308 background: #FFFFFF;
309 box-sizing: border-box;
310
311 .info {
312 .nowName {
313 font-family: "DIN Alternate";
314 font-size: 60px;
315 font-weight: bold;
316 overflow: hidden;
317 display: block;
318 margin: 10px;
319 }
320
321 label {
322 text-align: right;
323 font-size: 14px;
324 padding-left: 7%
325 }
326
327 div {
328 font-size: 14px;
329 color: #333;
330 margin: 6px 0 0;
331 }
332 }
333 }
334
335 .temell {
336 .nowteamItem {
337 padding: 10px;
338 margin: 0 0 10px;
339
340 .nowName {
341 font-size: 15px;
342 font-weight: bold;
343 margin-right: 10px
344 }
345
346 .text-bold {
347 font-weight: bold;
348 }
349
350 .fontsize14 {
351 font-size: 14px;
352 }
353 }
354 }
355
356 .groupList {
357 max-height: 70vh;
358 overflow: auto;
359 border: 1px solid #e1e1e1;
360 margin-top: 10px;
361
362 li {
363 padding: 10px;
364 border-bottom: 1px solid #e1e1e1;
365 cursor: pointer;
366 }
367 }
368
369 .searchBox {
370 height: 50vh;
371 //overflow-y: auto;
372 }
373
374 .rollY {
375 height: 45vh;
376 overflow-y: auto;
377 }
378 </style>
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
3 v-model="show" :close-on-click-modal="false" :title="title" append-to-body center 3 v-model="show" :close-on-click-modal="false" :title="title" append-to-body center
4 class="pcloginpop" 4 class="pcloginpop"
5 close-icon="CircleClose" destroy-on-close 5 close-icon="CircleClose" destroy-on-close
6 width="600px" 6 :width="isMobile ? '90%' : '600px'"
7 > 7 >
8 <div class="boxInvitation pd20"> 8 <div class="boxInvitation pd20">
9 <el-steps :active="activeStep" align-center class="mb20"> 9 <el-steps :active="activeStep" align-center class="mb20">
...@@ -183,7 +183,7 @@ ...@@ -183,7 +183,7 @@
183 183
184 <script setup> 184 <script setup>
185 import { useStorage } from '@vueuse/core/index' 185 import { useStorage } from '@vueuse/core/index'
186 import { getCurrentInstance, watch } from 'vue' 186 import { getCurrentInstance, watch ,onMounted} from 'vue'
187 import { nextTick } from '@vue/runtime-core' 187 import { nextTick } from '@vue/runtime-core'
188 import { ElMessage, ElMessageBox } from 'element-plus' 188 import { ElMessage, ElMessageBox } from 'element-plus'
189 import { addInvitation, countryList } from '@/apiPc/match' 189 import { addInvitation, countryList } from '@/apiPc/match'
...@@ -203,6 +203,7 @@ const countrys = ref([]) ...@@ -203,6 +203,7 @@ const countrys = ref([])
203 const courseList = ref([]) 203 const courseList = ref([])
204 const loading = ref(false) 204 const loading = ref(false)
205 const cptId = ref('') 205 const cptId = ref('')
206 const isMobile = ref(false)
206 const rules = ref( 207 const rules = ref(
207 { 208 {
208 nationality: [{ required: true, trigger: 'change', message: language.value == 0 ? '请选择' : 'Please choose' }], 209 nationality: [{ required: true, trigger: 'change', message: language.value == 0 ? '请选择' : 'Please choose' }],
...@@ -221,6 +222,13 @@ const open = (params) => { ...@@ -221,6 +222,13 @@ const open = (params) => {
221 cptId.value = params.cptId 222 cptId.value = params.cptId
222 getCourse() 223 getCourse()
223 } 224 }
225 const checkMobile = () => {
226 isMobile.value = window.innerWidth < 768
227 }
228 onMounted(() => {
229 checkMobile()
230 window.addEventListener('resize', checkMobile)
231 })
224 defineExpose({ open }) 232 defineExpose({ open })
225 watch(show, (value) => { 233 watch(show, (value) => {
226 if (!value) { 234 if (!value) {
...@@ -251,6 +259,10 @@ function setActive(n) { ...@@ -251,6 +259,10 @@ function setActive(n) {
251 return 259 return
252 } 260 }
253 activeStep.value = n 261 activeStep.value = n
262 // 在移动设备上,切换步骤时滚动到顶部
263 if (isMobile.value) {
264 window.scrollTo({ top: 0, behavior: 'smooth' })
265 }
254 } 266 }
255 267
256 function courseChange(e) { 268 function courseChange(e) {
......
...@@ -2,9 +2,9 @@ ...@@ -2,9 +2,9 @@
2 <div> 2 <div>
3 <index-Ch 3 <index-Ch
4 v-if="language ==0" @backNumber="openBackNumber" @pickup="openPickup" @pop="openMaster" 4 v-if="language ==0" @backNumber="openBackNumber" @pickup="openPickup" @pop="openMaster"
5 @schSearch="openSchSearch" 5 @schSearch="openSchSearch" @reserveSearch="bookingSearchOpen"
6 /> 6 />
7 <index-En v-else @backNumber="openBackNumber" @pickup="openPickup" @pop="openMaster" @schSearch="openSchSearch" /> 7 <index-En v-else @backNumber="openBackNumber" @pickup="openPickup" @pop="openMaster" @reserveSearch="bookingSearchOpen" @schSearch="openSchSearch" />
8 <div v-if="showgg" class="fixed_gg"> 8 <div v-if="showgg" class="fixed_gg">
9 <!--天气--> 9 <!--天气-->
10 <el-icon class="cclose" @click.stop="showgg=false"> 10 <el-icon class="cclose" @click.stop="showgg=false">
...@@ -80,6 +80,7 @@ ...@@ -80,6 +80,7 @@
80 <pick-up ref="pickupRef" /> 80 <pick-up ref="pickupRef" />
81 <back-number ref="backNumberRef" /> 81 <back-number ref="backNumberRef" />
82 <sch-search ref="schSearchRef" /> 82 <sch-search ref="schSearchRef" />
83 <bookingSearch ref="bookingSearchRef" />
83 </div> 84 </div>
84 85
85 </template> 86 </template>
...@@ -92,6 +93,7 @@ import DialogMasterClass from '@/viewsPc/components/masterClass' ...@@ -92,6 +93,7 @@ import DialogMasterClass from '@/viewsPc/components/masterClass'
92 import PickUp from '@/viewsPc/components/pickup' 93 import PickUp from '@/viewsPc/components/pickup'
93 import BackNumber from '@/viewsPc/components/querybackNumber' 94 import BackNumber from '@/viewsPc/components/querybackNumber'
94 import SchSearch from '@/viewsPc/components/schSearch' 95 import SchSearch from '@/viewsPc/components/schSearch'
96 import bookingSearch from '@/viewsPc/components/bookingSearch'
95 import { useStorage } from '@vueuse/core/index' 97 import { useStorage } from '@vueuse/core/index'
96 import { ref } from 'vue' 98 import { ref } from 'vue'
97 import { getWeather } from '@/apiPc/webSite' 99 import { getWeather } from '@/apiPc/webSite'
...@@ -152,6 +154,14 @@ const openSchSearch = (params) => { ...@@ -152,6 +154,14 @@ const openSchSearch = (params) => {
152 } 154 }
153 proxy.$refs['schSearchRef'].open(obj) 155 proxy.$refs['schSearchRef'].open(obj)
154 } 156 }
157 const bookingSearchOpen= (params) => {
158 console.log(params)
159 const obj = {
160 title: '日程查询',
161 cptId: params.cptId
162 }
163 proxy.$refs['bookingSearchRef'].open(obj)
164 }
155 </script> 165 </script>
156 166
157 <style lang="scss" scoped> 167 <style lang="scss" scoped>
......
...@@ -48,14 +48,13 @@ ...@@ -48,14 +48,13 @@
48 style="position: absolute;bottom:22%;right:5%;z-index: 999;display: flex;width: 580px;justify-content: space-around" 48 style="position: absolute;bottom:22%;right:5%;z-index: 999;display: flex;width: 580px;justify-content: space-around"
49 > 49 >
50 <a 50 <a
51 v-if="matchData.liveQrcode"
52 class=" btn2" 51 class=" btn2"
53 style="z-index: 999999" 52 style="z-index: 999999"
54 @click.stop="liveQrcodeShow=true" 53 @click.stop="liveQrcodeShowBtn"
55 >赛事直播 54 >赛事直播
56 </a> 55 </a>
57 <a 56 <a
58 v-if="matchData.isCourseView==1" 57
59 class=" btn2" 58 class=" btn2"
60 @click.stop="popMaster" 59 @click.stop="popMaster"
61 >公益课 60 >公益课
...@@ -73,7 +72,7 @@ ...@@ -73,7 +72,7 @@
73 <div class="h100" style="position: relative"> 72 <div class="h100" style="position: relative">
74 <img v-if="n.bgImgUrl" :src="fillImgUrl(n.bgImgUrl)" class="bannerImg"> 73 <img v-if="n.bgImgUrl" :src="fillImgUrl(n.bgImgUrl)" class="bannerImg">
75 <img v-else class="bannerImg" src="@/assets/dance/banner.png"> 74 <img v-else class="bannerImg" src="@/assets/dance/banner.png">
76 <div style="position: absolute;left: 0;right: 0;bottom: 0;margin: auto;"> 75 <div style="position: absolute;left: 0;right: 0;top: 100px;margin: auto;">
77 <div v-if="n.time>0" class="banner-count" @click="goMatch(n)"> 76 <div v-if="n.time>0" class="banner-count" @click="goMatch(n)">
78 距离开始还有 77 距离开始还有
79 <van-count-down :time="n.time" format="DD 天 HH 时 mm 分 ss 秒"> 78 <van-count-down :time="n.time" format="DD 天 HH 时 mm 分 ss 秒">
...@@ -97,31 +96,7 @@ ...@@ -97,31 +96,7 @@
97 </van-count-down> 96 </van-count-down>
98 </div> 97 </div>
99 <div v-if="n.timeEnd<0"> 98 <div v-if="n.timeEnd<0">
100 <!-- <a target="_blank" href="https://wx.vzan.com/live/page/1151815649?v=1720589464698" class="banner-count" v-if="time>0&&n.id=='1778253367748993026'" @click="goMatch(n)">--> 99
101 <!-- <van-count-down :time="time" format="DD 天 HH 时 mm 分 ss 秒">-->
102 <!-- <template #default="timeData">-->
103 <!-- <div class="block">{{ timeData.days }}-->
104 <!-- <span class="colon">天</span>-->
105 <!-- </div>-->
106 <!-- :-->
107 <!-- <div class="block">{{ timeData.hours }}-->
108 <!-- <span class="colon">时</span>-->
109 <!-- </div>-->
110 <!-- :-->
111 <!-- <div class="block">{{ timeData.minutes }}-->
112 <!-- <span class="colon">分</span>-->
113 <!-- </div>-->
114 <!-- :-->
115 <!-- <div class="block">{{ timeData.seconds }}-->
116 <!-- <span class="colon">秒</span>-->
117 <!-- </div>-->
118 <!-- </template>-->
119 <!-- </van-count-down>-->
120 <!-- 开始直播-->
121 <!-- </a>-->
122 <!-- <a target="_blank" href="https://wx.vzan.com/live/page/1151815649?v=1720589464698" class="banner-count bb" v-else-if="time<=0&&n.id=='1778253367748993026'" @click="goMatch(n)">-->
123 <!-- 直播进行中-->
124 <!-- </a>-->
125 <div class="banner-count bb" @click="goMatch(n)"> 100 <div class="banner-count bb" @click="goMatch(n)">
126 报名已结束 101 报名已结束
127 </div> 102 </div>
...@@ -129,7 +104,24 @@ ...@@ -129,7 +104,24 @@
129 <div v-if="n.time<=0 && n.timeEnd>=0" class="banner-count bb" @click="goMatch(n)"> 104 <div v-if="n.time<=0 && n.timeEnd>=0" class="banner-count bb" @click="goMatch(n)">
130 开始报名 105 开始报名
131 </div> 106 </div>
107
132 </div> 108 </div>
109 <div
110 style="position: absolute;bottom:20px;z-index: 999;display: flex;width: 380px;justify-content: space-around"
111 >
112 <a
113 class=" btn2-phone"
114 style="z-index: 999999"
115 @click.stop="liveQrcodeShowBtn"
116 >赛事直播
117 </a>
118 <a
119
120 class=" btn2-phone"
121 @click.stop="popMaster"
122 >公益课
123 </a>
124 </div>
133 </div> 125 </div>
134 </div> 126 </div>
135 </el-carousel-item> 127 </el-carousel-item>
...@@ -148,12 +140,13 @@ ...@@ -148,12 +140,13 @@
148 <download /> 140 <download />
149 </el-icon> 141 </el-icon>
150 </a> 142 </a>
151 <!-- <a-->
152 <!-- v-if="matchData.isCourseView==1" class="zn-btn ml20 btn-q forPc"-->
153 <!-- @click="popMaster"-->
154 <!-- >青少年公益课报名</a>-->
155 <a 143 <a
156 v-show="matchData?.id" class="zn-btn ml20 btn-q" 144 class="zn-btn ml20 btn-q"
145 @click="reserveSearch"
146 >预定查询</a>
147 <br/>
148 <a
149 v-show="matchData?.id" class="zn-btn btn-q mt20"
157 @click="backNumberSearch" 150 @click="backNumberSearch"
158 >背号查询</a> 151 >背号查询</a>
159 <a v-show="matchData?.id" class="zn-btn ml20 btn-q" @click="schSearch">日程查询</a> 152 <a v-show="matchData?.id" class="zn-btn ml20 btn-q" @click="schSearch">日程查询</a>
...@@ -440,8 +433,10 @@ ...@@ -440,8 +433,10 @@
440 433
441 <!-- 邀请函--> 434 <!-- 邀请函-->
442 <div class="fixed_gg_l yaoQing"> 435 <div class="fixed_gg_l yaoQing">
443 <img src="@/assets/logo/Invitation_c.png" @click="applyInvitation"> 436 <!-- v-if="maList.invitationSw == '1'" -->
444 <div v-if="clubImage" style="padding-left: 7px;"> 437 <img src="@/assets/logo/Invitation_c.png" @click="applyInvitation" v-if="matchData.invitationSw == '1'">
438 <!-- && maList.invitationSw == '1' -->
439 <div v-if="clubImage && matchData.visaSw == '1'" style="padding-left: 7px;">
445 <el-image 440 <el-image
446 :preview-src-list="[clubImage]" 441 :preview-src-list="[clubImage]"
447 :src="clubImage" 442 :src="clubImage"
...@@ -465,12 +460,12 @@ ...@@ -465,12 +460,12 @@
465 </div> 460 </div>
466 461
467 <affix-invitation ref="dialogInvitationRef" /> 462 <affix-invitation ref="dialogInvitationRef" />
468 <el-dialog v-model="liveQrcodeShow" :title="language==0?'赛事直播' :'Live QR Code'" width="500px"> 463 <el-dialog v-model="liveQrcodeShow" :title="language==0?'赛事直播' :'Live QR Code'" width="350px">
469 <div v-if="matchData.liveQrcode" style="display: flex;justify-content: space-between"> 464 <div v-if="matchData.liveQrcode" style="display: flex;justify-content: space-between">
470 <el-image 465 <el-image
471 :src="fillImgUrl(matchData.liveQrcode)" 466 :src="fillImgUrl(matchData.liveQrcode)"
472 fit="cover" 467 fit="cover"
473 style="width: 450px;" 468 style="width: 350px;"
474 /> 469 />
475 </div> 470 </div>
476 471
...@@ -510,7 +505,7 @@ const navigationPic = ref({ ...@@ -510,7 +505,7 @@ const navigationPic = ref({
510 }) 505 })
511 const router = useRouter() 506 const router = useRouter()
512 const { proxy } = getCurrentInstance() 507 const { proxy } = getCurrentInstance()
513 const emit = defineEmits(['pop', 'pickup', 'backNumber', 'schSearch']) 508 const emit = defineEmits(['pop', 'pickup', 'backNumber', 'schSearch','reserveSearch'])
514 const time = ref(0) 509 const time = ref(0)
515 const etime = ref(0) 510 const etime = ref(0)
516 const personList = ref([ 511 const personList = ref([
...@@ -589,6 +584,7 @@ const init = () => { ...@@ -589,6 +584,7 @@ const init = () => {
589 }) 584 })
590 match.getMaList({ topFlag: 1 }).then((res) => { 585 match.getMaList({ topFlag: 1 }).then((res) => {
591 maList.value = res.rows 586 maList.value = res.rows
587 console.log(333,maList.value)
592 for (const n of maList.value) { 588 for (const n of maList.value) {
593 const today = dayjs().format('YYYY-MM-DD HH:mm:ss') 589 const today = dayjs().format('YYYY-MM-DD HH:mm:ss')
594 if (n.signBeginTime) { 590 if (n.signBeginTime) {
...@@ -668,6 +664,14 @@ const goGuide = () => { ...@@ -668,6 +664,14 @@ const goGuide = () => {
668 } 664 }
669 }) 665 })
670 } 666 }
667 const liveQrcodeShowBtn = () => {
668 if(!matchData.value.liveQrcode){
669 ElMessage.warning('当前赛事暂无直播')
670 return
671 }else{
672 liveQrcodeShow.value=true
673 }
674 }
671 const popMaster = () => { 675 const popMaster = () => {
672 var params = { 676 var params = {
673 cptId: matchData.value.id 677 cptId: matchData.value.id
...@@ -680,6 +684,12 @@ const backNumberSearch = () => { ...@@ -680,6 +684,12 @@ const backNumberSearch = () => {
680 } 684 }
681 emit('backNumber', params) 685 emit('backNumber', params)
682 } 686 }
687 const reserveSearch = () => {
688 var params = {
689 cptId: matchData.value.id
690 }
691 emit('reserveSearch', params); // 向父组件发射事件+参数
692 };
683 const schSearch = () => { 693 const schSearch = () => {
684 var params = { 694 var params = {
685 cptId: matchData.value.id 695 cptId: matchData.value.id
...@@ -1326,6 +1336,22 @@ function applyInvitation() { ...@@ -1326,6 +1336,22 @@ function applyInvitation() {
1326 flex-wrap: nowrap; 1336 flex-wrap: nowrap;
1327 right: 5%; 1337 right: 5%;
1328 color: #fff; 1338 color: #fff;
1339 border-radius: 20px;
1340 }
1341 .btn2-phone {
1342 cursor: pointer;
1343 padding: 10px 20px;
1344 font-size: 14px;
1345 align-items: center;
1346 overflow: hidden;
1347 background: url(/src/assets/dance/time_bg.png) no-repeat center;
1348 background-size: 100% 100%;
1349 border-radius: 20px;
1350 // bottom: 40%;
1351 display: flex;
1352 flex-wrap: nowrap;
1353 // right: 5%;
1354 color: #fff;
1329 } 1355 }
1330 1356
1331 @media (max-width: 767px) { 1357 @media (max-width: 767px) {
......
...@@ -48,15 +48,13 @@ ...@@ -48,15 +48,13 @@
48 style="position: absolute;bottom:22%;right:5%;z-index: 999;display: flex;width: 580px;justify-content: space-around" 48 style="position: absolute;bottom:22%;right:5%;z-index: 999;display: flex;width: 580px;justify-content: space-around"
49 > 49 >
50 <a 50 <a
51 v-if="matchData.liveQrcode"
52 class=" btn2" 51 class=" btn2"
53 style="z-index: 999999" @click.stop="liveQrcodeShow=true" 52 style="z-index: 999999" @click.stop="liveQrcodeShowBtn"
54 > 53 >
55 <!-- 赛事直播--> 54 <!-- 赛事直播-->
56 Live Qrcode 55 Live Qrcode
57 </a> 56 </a>
58 <a 57 <a
59 v-if="matchData.isCourseView==1"
60 class=" btn2" 58 class=" btn2"
61 @click.stop="popMaster" 59 @click.stop="popMaster"
62 >Junior &Youth Camp REGISTER 60 >Junior &Youth Camp REGISTER
...@@ -73,7 +71,7 @@ ...@@ -73,7 +71,7 @@
73 <div class="h100" style="position: relative"> 71 <div class="h100" style="position: relative">
74 <img v-if="n.bgImgUrl" :src="fillImgUrl(n.bgImgUrl)" class="bannerImg"> 72 <img v-if="n.bgImgUrl" :src="fillImgUrl(n.bgImgUrl)" class="bannerImg">
75 <img v-else class="bannerImg" src="@/assets/dance/banner.png"> 73 <img v-else class="bannerImg" src="@/assets/dance/banner.png">
76 <div style="position: absolute;left: 0;right: 0;bottom: 0;margin: auto;"> 74 <div style="position: absolute;left: 0;right: 0;top: 100px;margin: auto;">
77 <div v-if="n.time>0" class="banner-count"> 75 <div v-if="n.time>0" class="banner-count">
78 Countdown 76 Countdown
79 <van-count-down :time="n.time" format="DD 天 HH 时 mm 分 ss 秒"> 77 <van-count-down :time="n.time" format="DD 天 HH 时 mm 分 ss 秒">
...@@ -107,6 +105,22 @@ ...@@ -107,6 +105,22 @@
107 </div> 105 </div>
108 106
109 </div> 107 </div>
108 <div
109 style="position: absolute;bottom:20px;z-index: 999;display: flex;width: 380px;justify-content: space-around"
110 >
111
112 <a
113 class=" btn2-phone"
114 style="z-index: 999999" @click.stop="liveQrcodeShowBtn"
115 >
116 Live Qrcode
117 </a>
118 <a
119 class=" btn2-phone"
120 @click.stop="popMaster"
121 >Junior &Youth Camp REGISTER
122 </a>
123 </div>
110 </div> 124 </div>
111 </div> 125 </div>
112 </el-carousel-item> 126 </el-carousel-item>
...@@ -127,7 +141,8 @@ ...@@ -127,7 +141,8 @@
127 <download /> 141 <download />
128 </el-icon> 142 </el-icon>
129 </a> 143 </a>
130 <a 144 <a class="zn-btn ml20 btn-q" @click="popMaster">Booking Inquiry</a>
145 <!-- <a
131 v-if="matchData.isCourseView==1" class="zn-btn ml20 btn-q forPc" 146 v-if="matchData.isCourseView==1" class="zn-btn ml20 btn-q forPc"
132 style="font-size: 15px;margin-right: 20px" @click="popMaster" 147 style="font-size: 15px;margin-right: 20px" @click="popMaster"
133 > 148 >
...@@ -135,7 +150,8 @@ ...@@ -135,7 +150,8 @@
135 <el-icon> 150 <el-icon>
136 <Edit /> 151 <Edit />
137 </el-icon> 152 </el-icon>
138 </a> 153 </a> -->
154
139 <a class="zn-btn ml20 btn-q" @click="backNumberSearch">Competition 155 <a class="zn-btn ml20 btn-q" @click="backNumberSearch">Competition
140 Number</a> 156 Number</a>
141 <a class="zn-btn ml20 btn-q" @click="schSearchSearch">Schedule 157 <a class="zn-btn ml20 btn-q" @click="schSearchSearch">Schedule
...@@ -421,10 +437,11 @@ ...@@ -421,10 +437,11 @@
421 437
422 <!-- 邀请函--> 438 <!-- 邀请函-->
423 <div class="fixed_gg_l yaoQing"> 439 <div class="fixed_gg_l yaoQing">
424 <img src="@/assets/logo/Invitation_e.png" @click="applyInvitation"> 440 <img src="@/assets/logo/Invitation_e.png" @click="applyInvitation" v-if="matchData.invitationSw == '1'">
425 <div style="padding-left: 7px;"> 441 <div style="padding-left: 7px;">
442
426 <el-image 443 <el-image
427 v-if="clubImage" 444 v-if="clubImage && matchData.visaSw == '1'"
428 :preview-src-list="[clubImage]" 445 :preview-src-list="[clubImage]"
429 :src="clubImage" 446 :src="clubImage"
430 fit="cover" 447 fit="cover"
...@@ -445,13 +462,13 @@ ...@@ -445,13 +462,13 @@
445 </div> 462 </div>
446 <affix-invitation ref="dialogInvitationRef" /> 463 <affix-invitation ref="dialogInvitationRef" />
447 464
448 <el-dialog v-model="liveQrcodeShow" :title="language==0?'赛事直播' :'Live QR Code'" width="500px"> 465 <el-dialog v-model="liveQrcodeShow" :title="language==0?'赛事直播' :'Live QR Code'" width="350px">
449 <div style="display: flex;justify-content: space-between"> 466 <div style="display: flex;justify-content: space-between">
450 <el-image 467 <el-image
451 v-if="matchData.liveQrcode" 468 v-if="matchData.liveQrcode"
452 :src="fillImgUrl(matchData.liveQrcode)" 469 :src="fillImgUrl(matchData.liveQrcode)"
453 fit="cover" 470 fit="cover"
454 style="width: 450px;" 471 style="max-width: 350px;"
455 /> 472 />
456 </div> 473 </div>
457 474
...@@ -641,6 +658,14 @@ const goGuide = () => { ...@@ -641,6 +658,14 @@ const goGuide = () => {
641 } 658 }
642 }) 659 })
643 } 660 }
661 const liveQrcodeShowBtn = () => {
662 if(!matchData.value.liveQrcode){
663 ElMessage.warning('There is currently no live broadcast of the event')
664 return
665 }else{
666 liveQrcodeShow.value=true
667 }
668 }
644 669
645 const popMaster = () => { 670 const popMaster = () => {
646 var params = { 671 var params = {
...@@ -779,7 +804,7 @@ function applyInvitation() { ...@@ -779,7 +804,7 @@ function applyInvitation() {
779 804
780 .banner-count { 805 .banner-count {
781 position: absolute; 806 position: absolute;
782 padding: 20px 40px; 807 padding: 20px;
783 font-size: 20px; 808 font-size: 20px;
784 align-items: center; 809 align-items: center;
785 overflow: hidden; 810 overflow: hidden;
...@@ -1450,6 +1475,7 @@ function applyInvitation() { ...@@ -1450,6 +1475,7 @@ function applyInvitation() {
1450 flex-wrap: nowrap; 1475 flex-wrap: nowrap;
1451 right: 5%; 1476 right: 5%;
1452 color: #fff; 1477 color: #fff;
1478 border-radius: 20px;
1453 } 1479 }
1454 1480
1455 1481
......
...@@ -65,20 +65,20 @@ export default defineConfig(({ mode, command }) => { ...@@ -65,20 +65,20 @@ export default defineConfig(({ mode, command }) => {
65 // https://cn.vitejs.dev/config/#server-proxy 65 // https://cn.vitejs.dev/config/#server-proxy
66 '/dev-api/ztx-train': { 66 '/dev-api/ztx-train': {
67 // target: 'http://192.168.1.118:1896/stage-api', 67 // target: 'http://192.168.1.118:1896/stage-api',
68 target: 'https://jijin.wtwuxicenter.com/stage-api', 68 target: 'https://wdsfwuxicenter.com/stage-api',
69 changeOrigin: true, 69 changeOrigin: true,
70 rewrite: (p) => p.replace(/^\/dev-api\/ztx-train/, '') 70 rewrite: (p) => p.replace(/^\/dev-api\/ztx-train/, '')
71 }, 71 },
72 '/dev-api/ztx-match': { 72 '/dev-api/ztx-match': {
73 // target: 'http://192.168.1.118:8081', 73 // target: 'http://192.168.1.118:8081',
74 target: 'https://jijin.wtwuxicenter.com/stage-api', 74 target: 'https://wdsfwuxicenter.com/stage-api',
75 // target: 'https://wdsfwuxicenter.com/stage-api/', 75 // target: 'https://wdsfwuxicenter.com/stage-api/',
76 changeOrigin: true, 76 changeOrigin: true,
77 rewrite: (p) => p.replace(/^\/dev-api\/ztx-match/, '') 77 rewrite: (p) => p.replace(/^\/dev-api\/ztx-match/, '')
78 }, 78 },
79 '/dev-api/ztx-webSite': { 79 '/dev-api/ztx-webSite': {
80 // target: 'http://192.168.1.118:8081', 80 // target: 'http://192.168.1.118:8081',
81 target: 'https://jijin.wtwuxicenter.com/stage-api', 81 target: 'https://wdsfwuxicenter.com/stage-api',
82 changeOrigin: true, 82 changeOrigin: true,
83 rewrite: (p) => p.replace(/^\/dev-api\/ztx-webSite/, '') 83 rewrite: (p) => p.replace(/^\/dev-api\/ztx-webSite/, '')
84 }, 84 },
...@@ -92,7 +92,7 @@ export default defineConfig(({ mode, command }) => { ...@@ -92,7 +92,7 @@ export default defineConfig(({ mode, command }) => {
92 }, 92 },
93 '/ticket': { 93 '/ticket': {
94 // target: 'http://192.168.1.242:8081/', 94 // target: 'http://192.168.1.242:8081/',
95 target: 'https://jijin.wtwuxicenter.com/h5/', 95 target: 'https://wdsfwuxicenter.com/h5/',
96 // target: 'https://ticketh5.wdsfwuxicenter.com/h5/', 96 // target: 'https://ticketh5.wdsfwuxicenter.com/h5/',
97 changeOrigin: true, 97 changeOrigin: true,
98 rewrite: (p) => p.replace(/^\/ticket/, '') 98 rewrite: (p) => p.replace(/^\/ticket/, '')
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!