eea1f9b9 by 杨炀

no message

1 parent 982b56b7
This file is too large to display.
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
7 <meta name="renderer" content="webkit"> 7 <meta name="renderer" content="webkit">
8 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> 8 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
9 <link rel="icon" href="/favicon.ico"> 9 <link rel="icon" href="/favicon.ico">
10 <title>体育舞蹈大赛</title> 10 <title>亚洲体育舞蹈大赛</title>
11 <!-- <script src="./browser.js"></script>--> 11 <!-- <script src="./browser.js"></script>-->
12 <!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]--> 12 <!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]-->
13 <style> 13 <style>
......
1 import {ref} from "vue";
2
1 export const nationList = [ 3 export const nationList = [
2 { 4 {
3 "id": "01", 5 "id": "01",
4 "name": "汉族" 6 "name": "汉族"
5 }, 7 },
6 { 8 {
7 "id": "02", 9 "id": "02",
8 "name": "蒙古族" 10 "name": "蒙古族"
9 }, 11 },
10 { 12 {
11 "id": "03", 13 "id": "03",
12 "name": "回族" 14 "name": "回族"
13 }, 15 },
14 { 16 {
15 "id": "04", 17 "id": "04",
16 "name": "藏族" 18 "name": "藏族"
17 }, 19 },
18 { 20 {
19 "id": "05", 21 "id": "05",
20 "name": "维吾尔族" 22 "name": "维吾尔族"
21 }, 23 },
22 { 24 {
23 "id": "06", 25 "id": "06",
24 "name": "苗族" 26 "name": "苗族"
25 }, 27 },
26 { 28 {
27 "id": "07", 29 "id": "07",
28 "name": "彝族" 30 "name": "彝族"
29 }, 31 },
30 { 32 {
31 "id": "08", 33 "id": "08",
32 "name": "壮族" 34 "name": "壮族"
33 }, 35 },
34 { 36 {
35 "id": "09", 37 "id": "09",
36 "name": "布依族" 38 "name": "布依族"
37 }, 39 },
38 { 40 {
39 "id": "10", 41 "id": "10",
40 "name": "朝鲜族" 42 "name": "朝鲜族"
41 }, 43 },
42 { 44 {
43 "id": "11", 45 "id": "11",
44 "name": "满族" 46 "name": "满族"
45 }, 47 },
46 { 48 {
47 "id": "12", 49 "id": "12",
48 "name": "侗族" 50 "name": "侗族"
49 }, 51 },
50 { 52 {
51 "id": "13", 53 "id": "13",
52 "name": "瑶族" 54 "name": "瑶族"
53 }, 55 },
54 { 56 {
55 "id": "14", 57 "id": "14",
56 "name": "白族" 58 "name": "白族"
57 }, 59 },
58 { 60 {
59 "id": "15", 61 "id": "15",
60 "name": "土家族" 62 "name": "土家族"
61 }, 63 },
62 { 64 {
63 "id": "16", 65 "id": "16",
64 "name": "哈尼族" 66 "name": "哈尼族"
65 }, 67 },
66 { 68 {
67 "id": "17", 69 "id": "17",
68 "name": "哈萨克族" 70 "name": "哈萨克族"
69 }, 71 },
70 { 72 {
71 "id": "18", 73 "id": "18",
72 "name": "傣族" 74 "name": "傣族"
73 }, 75 },
74 { 76 {
75 "id": "19", 77 "id": "19",
76 "name": "黎族" 78 "name": "黎族"
77 }, 79 },
78 { 80 {
79 "id": "20", 81 "id": "20",
80 "name": "傈僳族" 82 "name": "傈僳族"
81 }, 83 },
82 { 84 {
83 "id": "21", 85 "id": "21",
84 "name": "佤族" 86 "name": "佤族"
85 }, 87 },
86 { 88 {
87 "id": "22", 89 "id": "22",
88 "name": "畲族" 90 "name": "畲族"
89 }, 91 },
90 { 92 {
91 "id": "23", 93 "id": "23",
92 "name": "高山族" 94 "name": "高山族"
93 }, 95 },
94 { 96 {
95 "id": "24", 97 "id": "24",
96 "name": "拉祜族" 98 "name": "拉祜族"
97 }, 99 },
98 { 100 {
99 "id": "25", 101 "id": "25",
100 "name": "水族" 102 "name": "水族"
101 }, 103 },
102 { 104 {
103 "id": "26", 105 "id": "26",
104 "name": "东乡族" 106 "name": "东乡族"
105 }, 107 },
106 { 108 {
107 "id": "27", 109 "id": "27",
108 "name": "纳西族" 110 "name": "纳西族"
109 }, 111 },
110 { 112 {
111 "id": "28", 113 "id": "28",
112 "name": "景颇族" 114 "name": "景颇族"
113 }, 115 },
114 { 116 {
115 "id": "29", 117 "id": "29",
116 "name": "柯尔克孜族" 118 "name": "柯尔克孜族"
117 }, 119 },
118 { 120 {
119 "id": "30", 121 "id": "30",
120 "name": "土族" 122 "name": "土族"
121 }, 123 },
122 { 124 {
123 "id": "31", 125 "id": "31",
124 "name": "达斡尔族" 126 "name": "达斡尔族"
125 }, 127 },
126 { 128 {
127 "id": "32", 129 "id": "32",
128 "name": "仫佬族" 130 "name": "仫佬族"
129 }, 131 },
130 { 132 {
131 "id": "33", 133 "id": "33",
132 "name": "羌族" 134 "name": "羌族"
133 }, 135 },
134 { 136 {
135 "id": "34", 137 "id": "34",
136 "name": "布朗族" 138 "name": "布朗族"
137 }, 139 },
138 { 140 {
139 "id": "35", 141 "id": "35",
140 "name": "撒拉族" 142 "name": "撒拉族"
141 }, 143 },
142 { 144 {
143 "id": "36", 145 "id": "36",
144 "name": "毛难族" 146 "name": "毛难族"
145 }, 147 },
146 { 148 {
147 "id": "37", 149 "id": "37",
148 "name": "仡佬族" 150 "name": "仡佬族"
149 }, 151 },
150 { 152 {
151 "id": "38", 153 "id": "38",
152 "name": "锡伯族" 154 "name": "锡伯族"
153 }, 155 },
154 { 156 {
155 "id": "39", 157 "id": "39",
156 "name": "阿昌族" 158 "name": "阿昌族"
157 }, 159 },
158 { 160 {
159 "id": "40", 161 "id": "40",
160 "name": "普米族" 162 "name": "普米族"
161 }, 163 },
162 { 164 {
163 "id": "41", 165 "id": "41",
164 "name": "塔吉克族" 166 "name": "塔吉克族"
165 }, 167 },
166 { 168 {
167 "id": "42", 169 "id": "42",
168 "name": "怒族" 170 "name": "怒族"
169 }, 171 },
170 { 172 {
171 "id": "43", 173 "id": "43",
172 "name": "乌孜别克族" 174 "name": "乌孜别克族"
173 }, 175 },
174 { 176 {
175 "id": "44", 177 "id": "44",
176 "name": "俄罗斯族" 178 "name": "俄罗斯族"
177 }, 179 },
178 { 180 {
179 "id": "45", 181 "id": "45",
180 "name": "鄂温克族" 182 "name": "鄂温克族"
181 }, 183 },
182 { 184 {
183 "id": "46", 185 "id": "46",
184 "name": "崩龙族" 186 "name": "崩龙族"
185 }, 187 },
186 { 188 {
187 "id": "47", 189 "id": "47",
188 "name": "保安族" 190 "name": "保安族"
189 }, 191 },
190 { 192 {
191 "id": "48", 193 "id": "48",
192 "name": "裕固族" 194 "name": "裕固族"
193 }, 195 },
194 { 196 {
195 "id": "49", 197 "id": "49",
196 "name": "京族" 198 "name": "京族"
197 }, 199 },
198 { 200 {
199 "id": "50", 201 "id": "50",
200 "name": "塔塔尔族" 202 "name": "塔塔尔族"
201 }, 203 },
202 { 204 {
203 "id": "51", 205 "id": "51",
204 "name": "独龙族" 206 "name": "独龙族"
205 }, 207 },
206 { 208 {
207 "id": "52", 209 "id": "52",
208 "name": "鄂伦春族" 210 "name": "鄂伦春族"
209 }, 211 },
210 { 212 {
211 "id": "53", 213 "id": "53",
212 "name": "赫哲族" 214 "name": "赫哲族"
213 }, 215 },
214 { 216 {
215 "id": "54", 217 "id": "54",
216 "name": "门巴族" 218 "name": "门巴族"
217 }, 219 },
218 { 220 {
219 "id": "55", 221 "id": "55",
220 "name": "珞巴族" 222 "name": "珞巴族"
221 }, 223 },
222 { 224 {
223 "id": "56", 225 "id": "56",
224 "name": "基诺族" 226 "name": "基诺族"
225 }, 227 },
226 { 228 {
227 "id": "57", 229 "id": "57",
228 "name": "其他" 230 "name": "其他"
229 }, 231 },
230 { 232 {
231 "id": "58", 233 "id": "58",
232 "name": "外国血统中国人士" 234 "name": "外国血统中国人士"
233 } 235 }
234 ] 236 ]
235 237
236 238
237 export const certificates = [ 239 export const certificates = [
238 { 240 {
239 value: '0', 241 value: '0',
240 label: '居民身份证' 242 label: '居民身份证'
241 }, 243 },
242 { 244 {
243 value: '1', 245 value: '1',
244 label: '护照' 246 label: '护照'
245 }, 247 },
246 { 248 {
247 value: '2', 249 value: '2',
248 label: '其他' 250 label: '其他'
249 } 251 }
250 ] 252 ]
251 253
252 254
253 export const tagList = [{text: '运动员',value: '0'},{text: '教练',value: '1'},{text: '领队',value: '2'},{text: '其他',value: '3'}]; 255 export const tagList = [{text: '运动员', value: '0'}, {text: '教练', value: '1'}, {
254 export const sexs = [{text: '女',value: '0'}, {text: '男',value: '1'}]; 256 text: '领队',
257 value: '2'
258 }, {text: '其他', value: '3'}];
259 export const sexs = [{text: '女', value: '0'}, {text: '男', value: '1'}];
255 export const idcTypeList = [ 260 export const idcTypeList = [
256 { value: '0', text: "身份证" }, 261 {value: '0', text: "身份证"},
257 { value: '1', text: "护照" }, 262 {value: '1', text: "护照"},
258 { value: '2', text: "其他" }, 263 {value: '2', text: "其他"},
264 ]
265 export const typeList = [{text: '俱乐部', value: '0'}, {text: '事业单位', value: '1'}, {
266 text: '道馆',
267 value: '2'
268 }, {text: '企业', value: '3'}, {text: '机关', value: '4'}, {text: '其他', value: '5'}];
269 export const comList = [{text: '国资企业(含央企和本地)', value: '0'}, {
270 text: '外商投资企业',
271 value: '1'
272 }, {text: '港澳台企业', value: '2'}, {text: '民营企业', value: '3'}, {text: '商会组织', value: '4'}, {
273 text: '其他',
274 value: '5'
275 }];
276
277 export const rankList = [
278 {
279 index: '1',
280 code: 'lt',
281 name: 'Evaldas Sodeika - Ieva Zukauskaite',
282 gj: '立陶宛',
283 en_gj: 'LTU',
284 jin: '1',
285 yin: '0',
286 tong: '0'
287 },
288 {
289 index: '2',
290 code: 'md',
291 name: 'Alexey Glukhov - Anastasia Glazunova',
292 gj: '摩尔多瓦共和国',
293 en_gj: 'MDA',
294 jin: '1',
295 yin: '0',
296 tong: '0'
297 },
298 {
299 index: '3',
300 code: 'de',
301 name: 'Marius-Andrei Balan - Khrystyna Moshenska',
302 gj: '德国',
303 en_gj: 'GER',
304 jin: '1',
305 yin: '0',
306 tong: '0'
307 },
308 {
309 index: '4',
310 code: 'de',
311 name: 'Tomas Fainsil - Violetta Fainsil',
312 gj: '德国',
313 en_gj: 'GER',
314 jin: '0',
315 yin: '2',
316 tong: '0'
317 },
318 {
319 index: '5',
320 code: 'fr',
321 name: 'Charles-Guillaume Schmitt - Elena Salikhova',
322 gj: '法国',
323 en_gj: 'FRA',
324 jin: '0',
325 yin: '1',
326 tong: '0'
327 },
328 {
329 index: '6',
330 code: 'ro',
331 name: 'Cojoc Rares - Matei Andreea',
332 gj: '罗马尼亚',
333 en_gj: 'ROU',
334 jin: '0',
335 yin: '0',
336 tong: '2'
337 },
338 {index: '7', code: 'cn', name: 'Yan Bangbang - Du Yujun', gj: '中国', en_gj: 'China', jin: '0', yin: '0', tong: '1'}
339 ]
340 export const cjList = [
341 {
342 title: '2023 年 WDSF 世界标准舞锦标赛',
343 list: [
344 {
345 title: 'FINAL',
346 rows: [
347 {RANK: 1, COUPLE: 'Evaldas Sodeika - Ieva Zukauskaite', COUNTRY: 'LTU', START: '59'},
348 {RANK: 2, COUPLE: 'Tomas Fainsil - Violetta Fainsil', COUNTRY: 'GER', START: '25'},
349 {RANK: 3, COUPLE: 'Cojoc Rares - Matei Andreea', COUNTRY: 'ROU', START: '19'},
350 {RANK: 4, COUPLE: 'Dariusz Mycka - Madara Freiberga', COUNTRY: 'POL', START: '53'},
351 {RANK: 5, COUPLE: 'Vadim Shurin - Anastasia Meshkova', COUNTRY: 'LAT', START: '62'},
352 {RANK: 6, COUPLE: 'Yuan Shaoyang - Qi Chongxuan', COUNTRY: 'CHN', START: '71'}
353 ]
354 }, {
355 title: '4 . ROUND',
356 row: [
357 {RANK: 7, COUPLE: 'Dmitri Kolobov - Signe Busk', COUNTRY: 'DEN', START: '40'},
358 {RANK: 8, COUPLE: 'Marco Bodini - Kristina Charitonovaite', COUNTRY: 'LTU', START: '14'},
359 {RANK: 9, COUPLE: 'Marius Ilciukas - Grigore Daria', COUNTRY: 'ROU', START: '34'},
360 {RANK: 10, COUPLE: 'Evgeny Nikitin - Valeriya Menyaylo', COUNTRY: 'AZE', START: '54'},
361 {RANK: 11, COUPLE: 'Mateusz Brzozowski - Justyna Mozdzonek', COUNTRY: 'POL', START: '16'},
362 {RANK: 12, COUPLE: 'Dusan Grula - Giada Cragnolini', COUNTRY: 'SVK', START: '29'},
363 ]
364 }, {
365 title: '3 . ROUND',
366 row: [
367 {RANK: 13, COUPLE: '', COUNTRY: 'ISR', START: '42'},
368 {RANK: 14, COUPLE: '', COUNTRY: 'UKR', START: '69'},
369 {RANK: 15, COUPLE: '', COUNTRY: 'ITA', START: '27'},
370 {RANK: 16, COUPLE: '', COUNTRY: 'BUL', START: '67'},
371 {RANK: 17, COUPLE: '', COUNTRY: 'DEN', START: '70'},
372 {RANK: 18, COUPLE: '', COUNTRY: 'CHN', START: '49'},
373 {RANK: 19, COUPLE: '', COUNTRY: 'LAT', START: '21'},
374 {RANK: 20, COUPLE: '', COUNTRY: 'SUI', START: '20'},
375 {RANK: 21, COUPLE: '', COUNTRY: 'BUL', START: '22'},
376 {RANK: 22, COUPLE: '', COUNTRY: 'HUN', START: '63'},
377 {RANK: 23, COUPLE: '', COUNTRY: 'CZE', START: '15'},
378 {RANK: 24, COUPLE: '', COUNTRY: 'GER', START: '60'},
379 {RANK: 25, COUPLE: '', COUNTRY: 'CZE', START: '52'}
380 ]
381 }, {
382 title: '2 . ROUND',
383 rows:[]
384 }, {
385 title: '1 . ROUND',
386 rows:[]
387 }
388 ]
389 },
390 {
391 title: '2023 年 WDSF 世界体育舞蹈大奖赛(拉丁舞、标准舞)',
392 list: [{
393 title: 'FINAL',
394 rows: [
395 {
396 RANK: 1,
397 COUPLE: 'Alexey Glukhov - Anastasia Glazunova',
398 COUNTRY: 'MDA',
399 START: '131',
400 BASE: '400',
401 POINTS: '1040'
402 },
403 {
404 RANK: 2,
405 COUPLE: 'Tomas Fainsil - Violetta Fainsil',
406 COUNTRY: 'GER',
407 START: '123',
408 BASE: '380',
409 POINTS: '988'
410 },
411 {
412 RANK: 3,
413 COUPLE: 'Cojoc Rares - Matei Andreea',
414 COUNTRY: 'ROU',
415 START: '113',
416 BASE: '360',
417 POINTS: '936'
418 },
419 {
420 RANK: 4,
421 COUPLE: 'Dariusz Mycka - Madara Freiberga',
422 COUNTRY: 'POL',
423 START: '173',
424 BASE: '340',
425 POINTS: '884'
426 },
427 {
428 RANK: 5,
429 COUPLE: 'Vadim Shurin - Anastasia Meshkova',
430 COUNTRY: 'LAT',
431 START: '195',
432 BASE: '320',
433 POINTS: '832'
434 },
435 {
436 RANK: 6,
437 COUPLE: 'Dmitri Kolobov - Signe Busk',
438 COUNTRY: 'DEN',
439 START: '151',
440 BASE: '300',
441 POINTS: '780'
442 },
443 ]
444 }, {
445 title: '5 . ROUND',
446 rows: []
447 }, {
448 title: '4 . ROUND',
449 rows: []
450 }, {
451 title: '3 . ROUND',
452 rows: []
453 }, {
454 title: '2 . ROUND',
455 rows: []
456 }, {
457 title: '1 . ROUND',
458 rows: []
459 }]
460 }, {
461 title: '2023 WDSF GrandSlam(Standard&Latin)',
462 list: [{
463 title: 'FINAL',
464 row: [
465 {
466 RANK: 1,
467 COUPLE: 'Marius-Andrei Balan - Khrystyna Moshenska',
468 COUNTRY: 'GER',
469 START: '303',
470 BASE: '400',
471 POINTS: '1080'
472 },
473
474 ]
475 }, {
476 title: '5 . ROUND',
477 rows: []
478 }, {
479 title: '4 . ROUND',
480 rows: []
481 }, {
482 title: '3 . ROUND',
483 rows: []
484 }, {
485 title: '2 . ROUND',
486 rows: []
487 }, {
488 title: '1 . ROUND',
489 rows: []
490 }]
491 }
259 ] 492 ]
260 export const typeList = [{text: '俱乐部',value: '0'}, {text: '事业单位',value: '1'}, {text: '道馆',value: '2'}, {text: '企业',value: '3'}, {text: '机关',value: '4'}, {text: '其他',value: '5'}];
261 export const comList = [{text: '国资企业(含央企和本地)',value: '0'}, {text: '外商投资企业',value: '1'}, {text: '港澳台企业',value: '2'}, {text: '民营企业',value: '3'}, {text: '商会组织',value: '4'}, {text: '其他',value: '5'}];
......
...@@ -2,27 +2,42 @@ ...@@ -2,27 +2,42 @@
2 <div class="footAll"> 2 <div class="footAll">
3 <div class="box" style="max-width: 90%"> 3 <div class="box" style="max-width: 90%">
4 <el-row style="align-items: center;" v-if="language==0"> 4 <el-row style="align-items: center;" v-if="language==0">
5 <el-col :lg="12" :md="12" :xs="24"> 5 <el-col :lg="10" :md="12" :xs="24">
6 <ul> 6 <ul>
7 <li> 7 <li>邮编:214000</li>
8 <router-link to="/about"></router-link> 8 <li>微信: 15606190026</li>
9 </li> 9 <li>QQ: 497118883</li>
10 <li> 10 <li>江苏省 无锡市太湖新城和风路与清舒交叉口东北100米</li>
11 <a target="_blank" href="https://beian.miit.gov.cn/">ICP备案号:苏ICP备2023054420号-2</a> 11
12 <!-- <a class="ffoot" target="_blank" href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=11010102004192">-->
13 <!-- <img src="@/assets/v1/beian.png">-->
14 <!-- 京公网安备 11010102004192号</a>-->
15 </li>
16 </ul> 12 </ul>
17 </el-col> 13 </el-col>
18 <el-col :lg="12" :md="12" :xs="24"> 14 <el-col :lg="10" :md="12" :xs="24">
19 <ul style="text-align: right"> 15 <ul style="text-align: right">
20 <li>地址:江苏省无锡市滨湖区体育中心A区201 16 <li>客服及报障电话:15606190026</li>
17 <li>客服及报障邮箱: info@jinsports.com</li>
18 <li>
19
20 <!-- <a class="ffoot" target="_blank" href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=11010102004192">-->
21 <!-- <img src="@/assets/v1/beian.png">-->
22 <!-- 京公网安备 11010102004192号</a>-->
23
21 </li> 24 </li>
22 <li>邮编:214000</li>
23 </ul> 25 </ul>
24 </el-col> 26 </el-col>
27 <el-col :lg="4" :md="12" :xs="24">
28 <div>
29 <img class="mauto" src="/img/wb2.jpg"/>
30 <p class="text-center mt10">微博关注</p>
31 </div>
32 </el-col>
33 <el-col :span="24">
34 <div class="text-center copyright">版权所有@无锡和畅赛事运营有限公司
35 &ensp;&ensp;
36 <a target="_blank" href="https://beian.miit.gov.cn/">ICP备案号:苏ICP备2023054420号-2</a></div>
37 </el-col>
25 </el-row> 38 </el-row>
39
40
26 <el-row style="align-items: center;" v-if="language==1"> 41 <el-row style="align-items: center;" v-if="language==1">
27 <el-col :lg="12" :md="12" :xs="24"> 42 <el-col :lg="12" :md="12" :xs="24">
28 <ul> 43 <ul>
...@@ -54,13 +69,19 @@ const language = useStorage('language', 0) ...@@ -54,13 +69,19 @@ const language = useStorage('language', 0)
54 </script> 69 </script>
55 70
56 <style lang="scss" scoped> 71 <style lang="scss" scoped>
57 .footAll{background: #E0E3E5;;padding: 36px 0; 72 .copyright{ font-size: 14px;
73 opacity: 0.88;
74 color: #4C5359;}
75 .footAll{background: #E0E3E5;;padding: 36px 0 15px;
76 p{ font-size: 14px;
77 opacity: 0.88;
78 color: #4C5359;}
58 ul{list-style: none; 79 ul{list-style: none;
59 li{line-height: 30px; 80 li{line-height: 30px;
60 font-size: 14px; 81 font-size: 14px;
61 opacity: 0.88; 82 opacity: 0.88;
62 color: #4C5359; 83 color: #4C5359;
63 a{margin-right: 15px; 84 a{margin-left: 15px;
64 &:hover{text-decoration: underline;} 85 &:hover{text-decoration: underline;}
65 } 86 }
66 } 87 }
......
...@@ -17,12 +17,12 @@ ...@@ -17,12 +17,12 @@
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>
20 <el-sub-menu index="/about"> 20 <!-- <el-sub-menu index="/about">-->
21 <template #title>{{ language==0?'关于我们':'CONTACT & MORE' }}</template> 21 <!-- <template #title>{{ language==0?'关于我们':'CONTACT & MORE' }}</template>-->
22 <el-menu-item index="/about/wuDao">{{ language==0?'舞蹈节':'About Us' }}</el-menu-item> 22 <!-- <el-menu-item index="/about/wuDao">{{ language==0?'舞蹈节':'About Us' }}</el-menu-item>-->
23 <el-menu-item index="/about/regulations" v-if="language==1">Rules & Regulations</el-menu-item> 23 <!-- <el-menu-item index="/about/regulations" v-if="language==1">Rules & Regulations</el-menu-item>-->
24 <el-menu-item index="/about/culture">{{ language==0?'地方文化':'Culture' }}</el-menu-item> 24 <!-- <el-menu-item index="/about/culture">{{ language==0?'地方文化':'Culture' }}</el-menu-item>-->
25 </el-sub-menu> 25 <!-- </el-sub-menu>-->
26 </el-menu> 26 </el-menu>
27 <el-menu v-else class="enMenu" 27 <el-menu v-else class="enMenu"
28 router :default-active="activeIndex" :mode="mode" :ellipsis="true" 28 router :default-active="activeIndex" :mode="mode" :ellipsis="true"
...@@ -35,12 +35,12 @@ ...@@ -35,12 +35,12 @@
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>
38 <el-sub-menu index="/about"> 38 <!-- <el-sub-menu index="/about">-->
39 <template #title>{{ language==0?'关于我们':'CONTACT & MORE' }}</template> 39 <!-- <template #title>{{ language==0?'关于我们':'CONTACT & MORE' }}</template>-->
40 <el-menu-item index="/about/wuDao">{{ language==0?'舞蹈节':'About Us' }}</el-menu-item> 40 <!-- <el-menu-item index="/about/wuDao">{{ language==0?'舞蹈节':'About Us' }}</el-menu-item>-->
41 <el-menu-item index="/about/regulations" v-if="language==1">Rules & Regulations</el-menu-item> 41 <!-- <el-menu-item index="/about/regulations" v-if="language==1">Rules & Regulations</el-menu-item>-->
42 <el-menu-item index="/about/culture">{{ language==0?'地方文化':'Culture' }}</el-menu-item> 42 <!-- <el-menu-item index="/about/culture">{{ language==0?'地方文化':'Culture' }}</el-menu-item>-->
43 </el-sub-menu> 43 <!-- </el-sub-menu>-->
44 </el-menu> 44 </el-menu>
45 </div> 45 </div>
46 46
......
...@@ -99,6 +99,12 @@ export const constantRoutes = [ ...@@ -99,6 +99,12 @@ export const constantRoutes = [
99 component: () => import('@/viewsPc/about/culture'), 99 component: () => import('@/viewsPc/about/culture'),
100 name: 'culture', 100 name: 'culture',
101 meta: { title: '地方文化' } 101 meta: { title: '地方文化' }
102 },
103 {
104 path: 'leaderInfo/:id',
105 component: () => import('@/viewsPc/about/leaderInfo'),
106 name: 'leaderInfo',
107 meta: { title: '评委详情' }
102 } 108 }
103 ] 109 ]
104 }, 110 },
......
...@@ -210,7 +210,7 @@ export const constantRoutes = [ ...@@ -210,7 +210,7 @@ export const constantRoutes = [
210 children: [ 210 children: [
211 { 211 {
212 path: 'index', 212 path: 'index',
213 component: () => import('@/viewsPc/saiC/index_en'), 213 component: () => import('@/viewsPc/saiC/index'),
214 name: 'saiC', 214 name: 'saiC',
215 meta: { title: 'COMPETITIONS' } 215 meta: { title: 'COMPETITIONS' }
216 } 216 }
......
...@@ -6,17 +6,9 @@ ...@@ -6,17 +6,9 @@
6 <el-icon> 6 <el-icon>
7 <HomeFilled /> 7 <HomeFilled />
8 </el-icon> 8 </el-icon>
9 首页 9 {{ language==0?'首页':'Home' }}
10 </el-breadcrumb-item> 10 </el-breadcrumb-item>
11 <el-breadcrumb-item v-if="from=='nationalTeam'" :to="{ name: 'nationalTeam',query: {activeName:'t1'} }">国家队队员</el-breadcrumb-item> 11 <el-breadcrumb-item>{{ language==0?'评委详情':'Judge Details' }}</el-breadcrumb-item>
12 <el-breadcrumb-item v-else-if="from=='7'" to="/competition/coach/7">宣传员</el-breadcrumb-item>
13 <el-breadcrumb-item v-else-if="from=='2'" to="/competition/coach/2">裁判员</el-breadcrumb-item>
14 <el-breadcrumb-item v-else-if="from=='1'" to="/competition/coach/1">教练员</el-breadcrumb-item>
15 <el-breadcrumb-item v-else-if="from=='6'" to="/competition/coach/6">解说员</el-breadcrumb-item>
16 <el-breadcrumb-item v-else-if="from=='9'" to="/competition/coach/9">运动员</el-breadcrumb-item>
17 <el-breadcrumb-item v-else-if="from=='list'">人员列表</el-breadcrumb-item>
18 <el-breadcrumb-item v-else :to="{ name: 'about',params:{activeName:'first'} }">关于协会</el-breadcrumb-item>
19 <el-breadcrumb-item>人员信息</el-breadcrumb-item>
20 </el-breadcrumb> 12 </el-breadcrumb>
21 <el-card class="mt20"> 13 <el-card class="mt20">
22 <el-row class="mt20"> 14 <el-row class="mt20">
...@@ -78,7 +70,8 @@ import { ArrowRight } from '@element-plus/icons-vue' ...@@ -78,7 +70,8 @@ import { ArrowRight } from '@element-plus/icons-vue'
78 import { onMounted, ref } from 'vue' 70 import { onMounted, ref } from 'vue'
79 import { useRoute, useRouter } from 'vue-router' 71 import { useRoute, useRouter } from 'vue-router'
80 import { getPersonInfo } from '@/apiPc/webSite' 72 import { getPersonInfo } from '@/apiPc/webSite'
81 73 import {useStorage} from "@vueuse/core/index";
74 const language= useStorage('language',0)
82 let personId 75 let personId
83 const route = useRoute() 76 const route = useRoute()
84 const person = ref({}) 77 const person = ref({})
......
...@@ -14,13 +14,16 @@ ...@@ -14,13 +14,16 @@
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>
17 </div> 17 </div>
18
18 <div class="block">{{ timeData.hours }} 19 <div class="block">{{ timeData.hours }}
19 <span class="colon"></span> 20 <span class="colon"></span>
20 </div> 21 </div>
22
21 <div class="block">{{ timeData.minutes }} 23 <div class="block">{{ timeData.minutes }}
22 <span class="colon"></span> 24 <span class="colon"></span>
23 </div> 25 </div>
26
24 <div class="block">{{ timeData.seconds }} 27 <div class="block">{{ timeData.seconds }}
25 <span class="colon"></span> 28 <span class="colon"></span>
26 </div> 29 </div>
...@@ -42,7 +45,9 @@ ...@@ -42,7 +45,9 @@
42 <div class="bgbg"> 45 <div class="bgbg">
43 <img src="@/assets/dance/text.png"> 46 <img src="@/assets/dance/text.png">
44 <a class="zn-btn">参赛指南 47 <a class="zn-btn">参赛指南
45 <el-icon><download /></el-icon> 48 <el-icon>
49 <download/>
50 </el-icon>
46 </a> 51 </a>
47 </div> 52 </div>
48 </el-col> 53 </el-col>
...@@ -50,9 +55,11 @@ ...@@ -50,9 +55,11 @@
50 <div class="itemBox"> 55 <div class="itemBox">
51 <el-row :gutter="20"> 56 <el-row :gutter="20">
52 <el-col :sm="12" :lg="8"> 57 <el-col :sm="12" :lg="8">
53 <div class="item"><img src="@/assets/dance/btn01.png">酒店预订</div></el-col> 58 <div class="item"><img src="@/assets/dance/btn01.png">酒店预订</div>
59 </el-col>
54 <el-col :sm="12" :lg="8"> 60 <el-col :sm="12" :lg="8">
55 <div class="item"><img src="@/assets/dance/btn02.png">车辆预约</div></el-col> 61 <div class="item"><img src="@/assets/dance/btn02.png">车辆预约</div>
62 </el-col>
56 <el-col :sm="12" :lg="8"> 63 <el-col :sm="12" :lg="8">
57 <div class="item"><img src="@/assets/dance/btn03.png">餐饮预约</div> 64 <div class="item"><img src="@/assets/dance/btn03.png">餐饮预约</div>
58 </el-col> 65 </el-col>
...@@ -60,9 +67,11 @@ ...@@ -60,9 +67,11 @@
60 <div class="item"><img src="@/assets/dance/btn04.png">票务预订</div> 67 <div class="item"><img src="@/assets/dance/btn04.png">票务预订</div>
61 </el-col> 68 </el-col>
62 <el-col :sm="12" :lg="8"> 69 <el-col :sm="12" :lg="8">
63 <div class="item"><img src="@/assets/dance/btn05.png">化妆预约</div></el-col> 70 <div class="item"><img src="@/assets/dance/btn05.png">化妆预约</div>
71 </el-col>
64 <el-col :sm="12" :lg="8"> 72 <el-col :sm="12" :lg="8">
65 <div class="item"><img src="@/assets/dance/btn06.png">拍照预约</div></el-col> 73 <div class="item"><img src="@/assets/dance/btn06.png">拍照预约</div>
74 </el-col>
66 </el-row> 75 </el-row>
67 </div> 76 </div>
68 77
...@@ -77,7 +86,7 @@ ...@@ -77,7 +86,7 @@
77 <el-col :sm="24" :lg="12"> 86 <el-col :sm="24" :lg="12">
78 <div class="indexTitle"> 87 <div class="indexTitle">
79 <h3 class="leftboderTT">赛事日程</h3> 88 <h3 class="leftboderTT">赛事日程</h3>
80 <a class="more" href="#/saiC">MORE</a> 89 <a class="more" href="#/saiC">MORE</a>
81 </div> 90 </div>
82 <!--赛事日历--> 91 <!--赛事日历-->
83 <el-card :body-style="{'padding':'20px 20px'}"> 92 <el-card :body-style="{'padding':'20px 20px'}">
...@@ -85,7 +94,7 @@ ...@@ -85,7 +94,7 @@
85 <template #date-cell="data"> 94 <template #date-cell="data">
86 <div v-if="data.data.day.slice(8,10)==22" class="primaryDate date">22</div> 95 <div v-if="data.data.day.slice(8,10)==22" class="primaryDate date">22</div>
87 <div v-else class="date"> 96 <div v-else class="date">
88 {{ data.data.day.slice(8,10) }} 97 {{ data.data.day.slice(8, 10) }}
89 </div> 98 </div>
90 99
91 </template> 100 </template>
...@@ -115,56 +124,58 @@ ...@@ -115,56 +124,58 @@
115 <el-col :sm="24" :lg="12"> 124 <el-col :sm="24" :lg="12">
116 <div class="indexTitle"> 125 <div class="indexTitle">
117 <h3 class="leftboderTT">奖牌榜</h3> 126 <h3 class="leftboderTT">奖牌榜</h3>
118 <a class="more" href="#/saiC">MORE</a> 127 <a class="more" href="#/saiC">MORE</a>
119 </div> 128 </div>
120 <!--历史排名--> 129 <!--历史排名-->
121 <el-card :body-style="{'padding':'10px 20px 18px'}"> 130 <el-card :body-style="{'padding':'10px 20px 18px'}">
122 <el-table stripe :data="rankList"> 131 <el-table stripe :data="rankList">
123 <el-table-column label="名次" align="center" width="55" type="index"> 132 <el-table-column label="名次" align="center" width="50" type="index">
124 <template #default="scope"> 133 <template #default="scope">
125 <span v-if="scope.row.index == 1" style="color:#F8A617">{{ scope.row.index }}</span> 134 <span v-if="scope.row.index == 1" style="color:#F8A617">{{ scope.row.index }}</span>
126 <span v-else-if="scope.row.index == 2" style="color:#778B92">{{ scope.row.index }}</span> 135 <span v-else-if="scope.row.index == 2" style="color:#778B92">{{ scope.row.index }}</span>
127 <span v-else-if="scope.row.index == 3" style="color:#7F2D00">{{ scope.row.index }}</span> 136 <span v-else-if="scope.row.index == 3" style="color:#7F2D00">{{ scope.row.index }}</span>
128 <span v-else>{{ scope.row.index }}</span> 137 <span v-else>{{ scope.row.index }}</span>
129 </template> 138 </template>
130 </el-table-column> 139 </el-table-column>
131 <el-table-column label="国家/地区" prop="name"> 140
132 <template #default="scope"> 141 <el-table-column label="国家/地区" prop="name">
133 <div> 142 <template #default="scope">
134 <span :class="`flag-icon flag-icon-${scope.row.code}`"></span> 143 <div>
135 {{ scope.row.gj }}</div> 144 <span :class="`flag-icon flag-icon-${scope.row.code}`"></span>
136 </template> 145 {{ scope.row.gj }}
137 </el-table-column> 146 </div>
138 <el-table-column prop="score"> 147 </template>
139 <template #header> 148 </el-table-column>
140 <img src="@/assets/dance/1.png"> 149 <el-table-column label="队伍名称" align="center">
141 </template> 150 <template #default="scope">
142 <template #default="scope"> 151 <div class="text-primary esp">{{ scope.row.name }}</div>
143 <div class="text-warning">{{ scope.row.score }}</div> 152 </template>
144 </template> 153 </el-table-column>
145 </el-table-column> 154 <el-table-column width="60">
146 <el-table-column prop="score"> 155 <template #header>
147 <template #header> 156 <img class="mauto" src="@/assets/dance/1.png">
148 <img src="@/assets/dance/2.png"> 157 </template>
149 </template> 158 <template #default="scope">
150 <template #default="scope"> 159 <div class="text-warning text-center">{{ scope.row.jin }}</div>
151 <div class="text-blue">{{ scope.row.score }}</div> 160 </template>
152 </template> 161 </el-table-column>
153 </el-table-column> 162 <el-table-column width="60">
154 <el-table-column prop="score"> 163 <template #header>
155 <template #header> 164 <img class="mauto" src="@/assets/dance/2.png">
156 <img src="@/assets/dance/3.png"> 165 </template>
157 </template> 166 <template #default="scope">
158 <template #default="scope"> 167 <div class="text-blue text-center">{{ scope.row.yin }}</div>
159 <div class="text-primary">{{ scope.row.score }}</div> 168 </template>
160 </template> 169 </el-table-column>
161 </el-table-column> 170 <el-table-column width="60">
162 <el-table-column label="总数" align="center"> 171 <template #header>
163 <template #default="scope"> 172 <img class="mauto" src="@/assets/dance/3.png">
164 <div class="text-primary">{{ scope.row.score }}</div> 173 </template>
165 </template> 174 <template #default="scope">
166 </el-table-column> 175 <div class="text-primary text-center">{{ scope.row.tong }}</div>
167 </el-table> 176 </template>
177 </el-table-column>
178 </el-table>
168 179
169 </el-card> 180 </el-card>
170 </el-col> 181 </el-col>
...@@ -180,9 +191,9 @@ ...@@ -180,9 +191,9 @@
180 </div> 191 </div>
181 <el-row :gutter="20"> 192 <el-row :gutter="20">
182 <el-col 193 <el-col
183 v-for="(n,index) in newest2" 194 v-for="(n,index) in newest2"
184 :key="n.id" :xs="24" :sm="8" 195 :key="n.id" :xs="24" :sm="8"
185 :lg="8" 196 :lg="8"
186 > 197 >
187 <div class="activeItem" @click="goDetail(n)"> 198 <div class="activeItem" @click="goDetail(n)">
188 <div class="imgbox"> 199 <div class="imgbox">
...@@ -193,7 +204,8 @@ ...@@ -193,7 +204,8 @@
193 拉丁舞 | 2023-12-12 204 拉丁舞 | 2023-12-12
194 </div> 205 </div>
195 <h3 class="esp">{{ n.name }}</h3> 206 <h3 class="esp">{{ n.name }}</h3>
196 <p class="esp_2">国标拉丁舞是体育竞技舞蹈,爆发力强的风格,技巧是它的特点,有很大的竞技体育舞蹈发挥空间,已经入亚运会正式比赛项目事...</p> 207 <p class="esp_2">
208 国标拉丁舞是体育竞技舞蹈,爆发力强的风格,技巧是它的特点,有很大的竞技体育舞蹈发挥空间,已经入亚运会正式比赛项目事...</p>
197 <a>查看详情</a> 209 <a>查看详情</a>
198 </div> 210 </div>
199 </div> 211 </div>
...@@ -222,9 +234,9 @@ ...@@ -222,9 +234,9 @@
222 234
223 <div class="swiperPic"> 235 <div class="swiperPic">
224 <swiper 236 <swiper
225 class="swiper-wrapper" :modules="modules" :slides-per-view="3" :space-between="20" 237 class="swiper-wrapper" :modules="modules" :slides-per-view="3" :space-between="20"
226 :navigation="navigationPic" 238 :navigation="navigationPic"
227 :autoplay="true" :loop="true" 239 :autoplay="true" :loop="true"
228 > 240 >
229 <swiper-slide v-for="(n,i) in picList" :key="i"> 241 <swiper-slide v-for="(n,i) in picList" :key="i">
230 <div class="picbox" @click="goDetail(n)"> 242 <div class="picbox" @click="goDetail(n)">
...@@ -246,7 +258,7 @@ ...@@ -246,7 +258,7 @@
246 <img :src="fillImgUrl_webSite(n.picUrl)"></div> 258 <img :src="fillImgUrl_webSite(n.picUrl)"></div>
247 <div class="info"> 259 <div class="info">
248 <div class="text-primary small-size">拉丁舞 | {{ n.belongTime }}</div> 260 <div class="text-primary small-size">拉丁舞 | {{ n.belongTime }}</div>
249 <h2 class="esp_2">{{n.name}}</h2> 261 <h2 class="esp_2">{{ n.name }}</h2>
250 </div> 262 </div>
251 </div> 263 </div>
252 </el-col> 264 </el-col>
...@@ -263,10 +275,10 @@ ...@@ -263,10 +275,10 @@
263 </div> 275 </div>
264 <el-row :gutter="20"> 276 <el-row :gutter="20">
265 <el-col :sm="12" :xl="4" :xs="12" :lg="4" :md="8" v-for="n in personList" :key="n.name"> 277 <el-col :sm="12" :xl="4" :xs="12" :lg="4" :md="8" v-for="n in personList" :key="n.name">
266 <div class="teacher"> 278 <div class="teacher" @click="goLeaderInfo">
267 <div class="imgbox"><img :src="n.src"></div> 279 <div class="imgbox"><img :src="n.src"></div>
268 <h3 class="esp">{{ n.name }}</h3> 280 <h3 class="esp">{{ n.name }}</h3>
269 <p class="esp text-primary">{{n.pp}}</p> 281 <p class="esp text-primary">{{ n.pp }}</p>
270 </div> 282 </div>
271 </el-col> 283 </el-col>
272 </el-row> 284 </el-row>
...@@ -281,13 +293,15 @@ ...@@ -281,13 +293,15 @@
281 <a class="more" style="filter: brightness(10)">MORE</a> 293 <a class="more" style="filter: brightness(10)">MORE</a>
282 </div> 294 </div>
283 <div class="aboutBox"> 295 <div class="aboutBox">
284 <div class="content">中国体育舞蹈联合会成立于1991年,其前身为“中国体育舞蹈运动协会”。2002年与文化部所属“中国业余舞蹈竞技协会”实现联合,形成“中国体育舞蹈联合会”,并成为世界体育舞蹈联合会正式会员(该组织于1997年获得国际奥委会正式承认)。2018年从国家体育总局社体中心“五分离”脱钩,目前霹雳舞项目与总局社体中心联合进行奥运备战。 296 <div class="content">
297 中国体育舞蹈联合会成立于1991年,其前身为“中国体育舞蹈运动协会”。2002年与文化部所属“中国业余舞蹈竞技协会”实现联合,形成“中国体育舞蹈联合会”,并成为世界体育舞蹈联合会正式会员(该组织于1997年获得国际奥委会正式承认)。2018年从国家体育总局社体中心“五分离”脱钩,目前霹雳舞项目与总局社体中心联合进行奥运备战。
285 协会成立30余年来,在竞技水平上不断突破,已成为亚洲领 298 协会成立30余年来,在竞技水平上不断突破,已成为亚洲领
286 军力量并进入世界一流;在项目普及上不断夯实,已形成8千万爱好者群体;在产业发展上不断耕耘,坚持推动民族品牌国际化,年消费规模500亿左右;在体育外交上不断拓展,已成为亚洲体育舞蹈联合会主席国,并通过长期坚持举办国际重大赛事活动扩大影响;在体育文化上不断丰富,通过规范技术及礼仪标准,实现了体育舞蹈在中小学的开展,通过与民族舞蹈的结合实现中西文化的交融。 299 军力量并进入世界一流;在项目普及上不断夯实,已形成8千万爱好者群体;在产业发展上不断耕耘,坚持推动民族品牌国际化,年消费规模500亿左右;在体育外交上不断拓展,已成为亚洲体育舞蹈联合会主席国,并通过长期坚持举办国际重大赛事活动扩大影响;在体育文化上不断丰富,通过规范技术及礼仪标准,实现了体育舞蹈在中小学的开展,通过与民族舞蹈的结合实现中西文化的交融。
287 <div class="shadowbox" /> 300 <div class="shadowbox"/>
288 </div> 301 </div>
289 <div class="mt30 text-center"> 302 <div class="mt30 text-center">
290 <a class="btn-lineG" href="#/about/wuDao" style="display: inline-flex;align-items: center;">了解更多<img style="filter: brightness(2);height: 8px" src="@/assets/v1/more.png"/></a> 303 <a class="btn-lineG" href="#/about/wuDao" style="display: inline-flex;align-items: center;">了解更多<img
304 style="filter: brightness(2);height: 8px" src="@/assets/v1/more.png"/></a>
291 </div> 305 </div>
292 306
293 </div> 307 </div>
...@@ -347,22 +361,25 @@ ...@@ -347,22 +361,25 @@
347 361
348 <div v-if="showgg" class="fixed_gg"> 362 <div v-if="showgg" class="fixed_gg">
349 <!--天气--> 363 <!--天气-->
350 <el-icon @click="showgg=false"><circle-close /></el-icon> 364 <el-icon @click="showgg=false">
365 <circle-close/>
366 </el-icon>
351 <img src="@/assets/dance/weather.png"> 367 <img src="@/assets/dance/weather.png">
352 </div> 368 </div>
353 </div> 369 </div>
354 </template> 370 </template>
355 <script setup> 371 <script setup>
356 import { ref, nextTick, onMounted, watch } from 'vue' 372 import {ref, nextTick, onMounted, watch} from 'vue'
357 import { getCurrentInstance } from '@vue/runtime-core' 373 import {getCurrentInstance} from '@vue/runtime-core'
358 import { getHomePage, getNewsListById, getNewsList } from '@/apiPc/webSite' 374 import {getHomePage, getNewsListById, getNewsList} from '@/apiPc/webSite'
359 import { useRouter } from 'vue-router' 375 import {useRouter} from 'vue-router'
376 import {rankList} from '@/assets/js/data'
360 import _ from 'lodash' 377 import _ from 'lodash'
361 import { getHotActivity } from '@/apiPc/common' 378 import {getHotActivity} from '@/apiPc/common'
362 import { Swiper, SwiperSlide } from 'swiper/vue' 379 import {Swiper, SwiperSlide} from 'swiper/vue'
363 import { Autoplay, Navigation } from 'swiper' 380 import {Autoplay, Navigation} from 'swiper'
364 import 'swiper/css' 381 import 'swiper/css'
365 import { dayjs } from 'element-plus' 382 import {dayjs} from 'element-plus'
366 import r01 from '@/assets/dance/r01.png' 383 import r01 from '@/assets/dance/r01.png'
367 import r02 from '@/assets/dance/r02.png' 384 import r02 from '@/assets/dance/r02.png'
368 import r03 from '@/assets/dance/r03.png' 385 import r03 from '@/assets/dance/r03.png'
...@@ -377,29 +394,20 @@ const navigationPic = ref({ ...@@ -377,29 +394,20 @@ const navigationPic = ref({
377 prevEl: '.picprev' 394 prevEl: '.picprev'
378 }) 395 })
379 const router = useRouter() 396 const router = useRouter()
380 const { proxy } = getCurrentInstance() 397 const {proxy} = getCurrentInstance()
381 const bannerVideo = ref(null) 398 const bannerVideo = ref(null)
382 const isPlay = ref(false) 399 const isPlay = ref(false)
383 const canPrev = ref(false) 400 const canPrev = ref(false)
384 const canNext = ref(false) 401 const canNext = ref(false)
385 const activeRankName = ref(0) 402 const activeRankName = ref(0)
386 const time = ref(0) 403 const time = ref(0)
387 const rankList = ref([
388 { index: '1', code: 'cn', score: '170',gj:'中国' },
389 { index: '2', code: 'us', score: '170' ,gj:'中国'},
390 { index: '3', code: 'de', score: '170',gj:'中国' },
391 { index: '4', code: 'eg', score: '170',gj:'中国' },
392 { index: '5', code: 'ly', score: '170' ,gj:'中国'},
393 { index: '6', code: 'tn', score: '170' ,gj:'中国'},
394 { index: '7', code: 'gw', score: '170' ,gj:'中国'}
395 ])
396 const personList = ref([ 404 const personList = ref([
397 { name: '张晋', pp:'欧洲舞团团长、艺术总监',src:r01 }, 405 {name: '张晋', pp: '欧洲舞团团长、艺术总监', src: r01},
398 { name: '王晓敏', pp:'欧洲舞团团长、艺术总监',src:r02 }, 406 {name: '王晓敏', pp: '欧洲舞团团长、艺术总监', src: r02},
399 { name: '徐徐', pp:'欧洲舞团团长、艺术总监',src:r03 }, 407 {name: '徐徐', pp: '欧洲舞团团长、艺术总监', src: r03},
400 { name: '汪莉莉', pp:'欧洲舞团团长、艺术总监',src:r04}, 408 {name: '汪莉莉', pp: '欧洲舞团团长、艺术总监', src: r04},
401 { name: '蒋云澜', pp:'欧洲舞团团长、艺术总监',src:r05 }, 409 {name: '蒋云澜', pp: '欧洲舞团团长、艺术总监', src: r05},
402 { name: '钱一帆', pp:'欧洲舞团团长、艺术总监',src:r06 } 410 {name: '钱一帆', pp: '欧洲舞团团长、艺术总监', src: r06}
403 ]) 411 ])
404 const activeNews = ref(0) 412 const activeNews = ref(0)
405 const banners = ref([]) 413 const banners = ref([])
...@@ -416,7 +424,7 @@ const maList = ref([]) ...@@ -416,7 +424,7 @@ const maList = ref([])
416 const loading = ref(false) 424 const loading = ref(false)
417 const picList = ref([]) 425 const picList = ref([])
418 const calendarValue = ref(dayjs('2024-07-22').toDate()) 426 const calendarValue = ref(dayjs('2024-07-22').toDate())
419 const calendarRange = ref([dayjs('2024-07-21').toDate(),dayjs('2024-07-27').toDate()]) 427 const calendarRange = ref([dayjs('2024-07-21').toDate(), dayjs('2024-07-27').toDate()])
420 const showgg = ref(true) 428 const showgg = ref(true)
421 onMounted(() => { 429 onMounted(() => {
422 init() 430 init()
...@@ -426,30 +434,36 @@ const init = () => { ...@@ -426,30 +434,36 @@ const init = () => {
426 var today = dayjs().format('YYYY-MM-DD HH:mm:ss') 434 var today = dayjs().format('YYYY-MM-DD HH:mm:ss')
427 time.value = dayjs('2024-07-22 14:00:00').diff(today, 'millisecond') 435 time.value = dayjs('2024-07-22 14:00:00').diff(today, 'millisecond')
428 getNewsListById( 436 getNewsListById(
429 { pageSize: 4, 437 {
430 pageNum: 1, 438 pageSize: 4,
431 sortId: '10000006' } 439 pageNum: 1,
440 sortId: '10000006'
441 }
432 ).then(res => { 442 ).then(res => {
433 livelist.value = res.rows 443 livelist.value = res.rows
434 }) 444 })
435 getNewsListById( 445 getNewsListById(
436 { pageSize: 5, 446 {
437 pageNum: 1, 447 pageSize: 5,
438 sortId: '10000007' } 448 pageNum: 1,
449 sortId: '10000007'
450 }
439 ).then(res => { 451 ).then(res => {
440 picList.value = res.rows 452 picList.value = res.rows
441 }) 453 })
442 getNewsList( 454 getNewsList(
443 { pageSize: 3, 455 {
444 pageNum: 1, 456 pageSize: 3,
445 language:1, 457 pageNum: 1,
446 code: '1000' } 458 language: 1,
459 code: '1000'
460 }
447 ).then(res => { 461 ).then(res => {
448 newest2.value = res.rows 462 newest2.value = res.rows
449 }) 463 })
450 match.getMaList().then((res) => { 464 match.getMaList().then((res) => {
451 maList.value = res.rows 465 maList.value = res.rows
452 for(let n of maList.value){ 466 for (let n of maList.value) {
453 var today = dayjs().format('YYYY-MM-DD HH:mm:ss') 467 var today = dayjs().format('YYYY-MM-DD HH:mm:ss')
454 n.time = dayjs(n.signEndTime).diff(today, 'millisecond') 468 n.time = dayjs(n.signEndTime).diff(today, 'millisecond')
455 } 469 }
...@@ -469,6 +483,11 @@ const goDetail = (n) => { ...@@ -469,6 +483,11 @@ const goDetail = (n) => {
469 }) 483 })
470 } 484 }
471 } 485 }
486 const goLeaderInfo = (n) => {
487 router.push({
488 path: `/about/leaderInfo/${n.id || 0}`
489 })
490 }
472 const goList = (query, name) => { 491 const goList = (query, name) => {
473 query.sortName = name 492 query.sortName = name
474 router.push({ 493 router.push({
...@@ -485,29 +504,60 @@ const goNews = () => { ...@@ -485,29 +504,60 @@ const goNews = () => {
485 504
486 <style scoped lang="scss"> 505 <style scoped lang="scss">
487 506
488 .zn-bg{background: linear-gradient(90deg, #8623FC, #8623FC, #8623FC, #8623FC, #8623FC, #8623FC, #453DEA, #8623FC); 507 .zn-bg {
489 border-radius: 15px;} 508 background: linear-gradient(90deg, #8623FC, #8623FC, #8623FC, #8623FC, #8623FC, #8623FC, #453DEA, #8623FC);
490 .zn-Box{background-size: contain;position: relative;overflow: hidden; 509 border-radius: 15px;
491 .bbbg{position: absolute;width: 100%;height: 100%;object-fit: cover;} 510 }
492 .bgbg{ 511
512 .zn-Box {
513 background-size: contain;
514 position: relative;
515 overflow: hidden;
516
517 .bbbg {
518 position: absolute;
519 width: 100%;
520 height: 100%;
521 object-fit: cover;
522 }
523
524 .bgbg {
493 padding: 5%; 525 padding: 5%;
494 img{margin: 5% 0} 526
527 img {
528 margin: 5% 0
529 }
495 } 530 }
496 .itemBox{ 531
532 .itemBox {
497 padding: 20px 40px; 533 padding: 20px 40px;
498 } 534 }
535
499 border-radius: 15px; 536 border-radius: 15px;
500 .zn-btn{background: #FFFFFF; 537
538 .zn-btn {
539 background: #FFFFFF;
501 font-size: 18px; 540 font-size: 18px;
502 color: #453DEA; 541 color: #453DEA;
503 border-radius: 23px;padding: 10px 20px;display: inline-flex;align-items: center;} 542 border-radius: 23px;
504 .item{box-shadow: 0px 0px 21px 0px rgba(41,23,101,0.14);margin: 10px 0; 543 padding: 10px 20px;
505 display: flex;align-items: center; 544 display: inline-flex;
545 align-items: center;
546 }
547
548 .item {
549 box-shadow: 0px 0px 21px 0px rgba(41, 23, 101, 0.14);
550 margin: 10px 0;
551 display: flex;
552 align-items: center;
506 font-size: 22px; 553 font-size: 22px;
507 background:url("@/assets/dance/btn_bg.png") no-repeat left #FFFFFF; 554 background: url("@/assets/dance/btn_bg.png") no-repeat left #FFFFFF;
508 background-size: 100% 100%; 555 background-size: 100% 100%;
509 border-radius: 15px; 556 border-radius: 15px;
510 img{margin: 0 5%;} 557
558 img {
559 margin: 0 5%;
560 }
511 } 561 }
512 } 562 }
513 563
...@@ -523,9 +573,14 @@ const goNews = () => { ...@@ -523,9 +573,14 @@ const goNews = () => {
523 573
524 .bannerItem { 574 .bannerItem {
525 height: 450px; 575 height: 450px;
526 background: #000;position: relative; 576 background: #000;
527 .banner-count{position: absolute;padding: 20px 40px; 577 position: relative;
528 font-size: 20px;align-items: center; 578
579 .banner-count {
580 position: absolute;
581 padding: 20px 40px;
582 font-size: 20px;
583 align-items: center;
529 overflow: hidden; 584 overflow: hidden;
530 background: url("@/assets/dance/time_bg.png") no-repeat center; 585 background: url("@/assets/dance/time_bg.png") no-repeat center;
531 background-size: 100% 100%; 586 background-size: 100% 100%;
...@@ -535,18 +590,36 @@ const goNews = () => { ...@@ -535,18 +590,36 @@ const goNews = () => {
535 //border-image-width:4px; 590 //border-image-width:4px;
536 //border-image-outset:4px; 591 //border-image-outset:4px;
537 //background: rgba(0,0,0,0.3); 592 //background: rgba(0,0,0,0.3);
538 bottom: 40%;display: flex;flex-wrap: nowrap; 593 bottom: 40%;
594 display: flex;
595 flex-wrap: nowrap;
539 right: 5%; 596 right: 5%;
540 color: #fff; 597 color: #fff;
541 .van-count-down{display: flex;color: #fff;margin: 0 0 0 20px; 598
599 .van-count-down {
600 display: flex;
601 color: #fff;
602 margin: 0 0 0 20px;
542 width: 360px; 603 width: 360px;
543 font-size: 41px;}
544 .block{ color: #fff;text-align: center;width: 3em;
545 font-size: 41px; 604 font-size: 41px;
546 font-family: DIN Alternate;} 605 }
547 .colon{ color: #fff;display: block;margin: 20px 0 0; 606
548 font-size: 20px;} 607 .block {
608 color: #fff;
609 text-align: center;
610 width: 3em;
611 font-size: 41px;
612 font-family: DIN Alternate;
613 }
614
615 .colon {
616 color: #fff;
617 display: block;
618 margin: 20px 0 0;
619 font-size: 20px;
620 }
549 } 621 }
622
550 .box { 623 .box {
551 position: absolute; 624 position: absolute;
552 height: 100%; 625 height: 100%;
...@@ -575,7 +648,8 @@ const goNews = () => { ...@@ -575,7 +648,8 @@ const goNews = () => {
575 } 648 }
576 649
577 .banner { 650 .banner {
578 position: relative;margin:0 0 30px; 651 position: relative;
652 margin: 0 0 30px;
579 653
580 :deep(.el-carousel__arrow) { 654 :deep(.el-carousel__arrow) {
581 border-radius: 0; 655 border-radius: 0;
...@@ -603,41 +677,121 @@ const goNews = () => { ...@@ -603,41 +677,121 @@ const goNews = () => {
603 background-size: contain 677 background-size: contain
604 } 678 }
605 } 679 }
606 .el-calendar{--el-calendar-border:none;--el-calendar-cell-width:40px;text-align:center; 680
607 --el-text-color-regular:#8E8D94; 681 .el-calendar {
608 :deep(.el-calendar__header){justify-content: center;padding: 0 0 10px} 682 --el-calendar-border: none;
609 :deep(.el-calendar__body){border: 1px solid #F0F0F0;padding: 0} 683 --el-calendar-cell-width: 40px;
610 :deep(.el-calendar-table .el-calendar-day){padding: 1px;} 684 text-align: center;
611 :deep(.el-calendar-table td.is-selected){background: transparent;} 685 --el-text-color-regular: #8E8D94;
612 :deep(.el-calendar__button-group){display: none;} 686
613 :deep(.el-calendar-table thead th){padding: 5px 0 0} 687 :deep(.el-calendar__header) {
614 .primaryDate{color: #fff; 688 justify-content: center;
615 background: linear-gradient(90deg, #8623FC, #453DEA);} 689 padding: 0 0 10px
616 .date{ margin:auto;border-radius: 50%;width: 30px;height: 30px;line-height: 30px; 690 }
691
692 :deep(.el-calendar__body) {
693 border: 1px solid #F0F0F0;
694 padding: 0
695 }
696
697 :deep(.el-calendar-table .el-calendar-day) {
698 padding: 1px;
699 }
700
701 :deep(.el-calendar-table td.is-selected) {
702 background: transparent;
703 }
704
705 :deep(.el-calendar__button-group) {
706 display: none;
707 }
708
709 :deep(.el-calendar-table thead th) {
710 padding: 5px 0 0
711 }
712
713 .primaryDate {
714 color: #fff;
715 background: linear-gradient(90deg, #8623FC, #453DEA);
716 }
717
718 .date {
719 margin: auto;
720 border-radius: 50%;
721 width: 30px;
722 height: 30px;
723 line-height: 30px;
617 font-weight: bold; 724 font-weight: bold;
618 } 725 }
619 } 726 }
620 727
621 .calendarList{border: 1px solid #F0F0F0;padding:12px 20px;overflow: auto;height: 225px; 728 .calendarList {
622 ul{ 729 border: 1px solid #F0F0F0;
623 li{background: #F6F9FE;margin:7px 0 7px 20px;position: relative;padding: 13px; 730 padding: 12px 20px;
731 overflow: auto;
732 height: 225px;
733
734 ul {
735 li {
736 background: #F6F9FE;
737 margin: 7px 0 7px 20px;
738 position: relative;
739 padding: 13px;
624 border-radius: 10px; 740 border-radius: 10px;
625 font-weight: 500; 741 font-weight: 500;
626 font-size: 15px; 742 font-size: 15px;
627 label{color: #453DEA;margin-right: 15px; 743
628 &::before{content: '';background:#fff;left: -17px;top: 0px;bottom: 0;margin: auto; 744 label {
629 border-radius: 50%;width: 2px;height: 2px;position: absolute;z-index: 1} 745 color: #453DEA;
746 margin-right: 15px;
747
748 &::before {
749 content: '';
750 background: #fff;
751 left: -17px;
752 top: 0px;
753 bottom: 0;
754 margin: auto;
755 border-radius: 50%;
756 width: 2px;
757 height: 2px;
758 position: absolute;
759 z-index: 1
760 }
630 } 761 }
631 } 762 }
632 li::before{content: '';background: linear-gradient(0deg, #8623FC, #453DEA); 763
633 border-radius: 50%;width: 8px;height: 8px;position: absolute; 764 li::before {
634 left: -20px;top: 0;bottom: 0;margin: auto;z-index: 1; 765 content: '';
766 background: linear-gradient(0deg, #8623FC, #453DEA);
767 border-radius: 50%;
768 width: 8px;
769 height: 8px;
770 position: absolute;
771 left: -20px;
772 top: 0;
773 bottom: 0;
774 margin: auto;
775 z-index: 1;
776 }
777
778 li::after {
779 content: '';
780 left: -16px;
781 width: 1px;
782 height: 100%;
783 background: #EBEBEB;
784 position: absolute;
785 top: 20px
635 } 786 }
636 li::after{content: ''; left: -16px;width: 1px;height: 100%; 787
637 background: #EBEBEB; position: absolute;top: 20px} 788 li:hover {
638 li:hover{color: #fff; 789 color: #fff;
639 background: linear-gradient(-90deg, #8623FC, #453DEA); 790 background: linear-gradient(-90deg, #8623FC, #453DEA);
640 label{color: #fff;} 791
792 label {
793 color: #fff;
794 }
641 } 795 }
642 } 796 }
643 } 797 }
...@@ -654,14 +808,25 @@ const goNews = () => { ...@@ -654,14 +808,25 @@ const goNews = () => {
654 808
655 809
656 .fixed_gg { 810 .fixed_gg {
657 position: fixed;right: 0; 811 position: fixed;
812 right: 0;
658 top: 25%; 813 top: 25%;
659 z-index: 10; 814 z-index: 10;
660 width: 200px; 815 width: 200px;
661 .el-icon{font-size: 0;color: #fff; 816
662 transition: font-size 0.2s;cursor: pointer; 817 .el-icon {
663 position: absolute;right: 0;} 818 font-size: 0;
664 &:hover .el-icon{font-size: 26px;} 819 color: #fff;
820 transition: font-size 0.2s;
821 cursor: pointer;
822 position: absolute;
823 right: 0;
824 }
825
826 &:hover .el-icon {
827 font-size: 26px;
828 }
829
665 img { 830 img {
666 width: 100%; 831 width: 100%;
667 } 832 }
...@@ -682,90 +847,253 @@ const goNews = () => { ...@@ -682,90 +847,253 @@ const goNews = () => {
682 } 847 }
683 } 848 }
684 849
685 .teacher{height: 330px;background: #fff; 850 .teacher {
686 position: relative;border-radius: 10px;overflow: hidden; 851 height: 330px;
687 .imgbox{background: linear-gradient(0,#C8AAFC,#fff)} 852 background: #fff;
688 img{height: 270px;width: 100%;object-fit: cover;} 853 position: relative;
689 h3{color: #fff;background: url("@/assets/dance/name_bg.png") no-repeat center; 854 border-radius: 10px;
690 background-size:auto 100%;text-align: center;height: 30px;line-height: 30px; 855 overflow: hidden;
691 font-size: 18px;position: absolute;width: 100%;bottom: 30px;} 856
692 p{text-align: center;margin: 25px 0 0; 857 .imgbox {
693 font-size: 14px;} 858 background: linear-gradient(0, #C8AAFC, #fff)
859 }
860
861 img {
862 height: 270px;
863 width: 100%;
864 object-fit: cover;
865 }
866
867 h3 {
868 color: #fff;
869 background: url("@/assets/dance/name_bg.png") no-repeat center;
870 background-size: auto 100%;
871 text-align: center;
872 height: 30px;
873 line-height: 30px;
874 font-size: 18px;
875 position: absolute;
876 width: 100%;
877 bottom: 30px;
878 }
879
880 p {
881 text-align: center;
882 margin: 25px 0 0;
883 font-size: 14px;
884 }
694 } 885 }
695 .aboutBox{background: url("@/assets/dance/about_bg.png") no-repeat center;height: 375px; 886
696 background-size: cover;padding: 40px 60px; position: relative; 887 .aboutBox {
697 .content{font-size: 18px;line-height: 2.2;height: 240px;overflow: hidden; 888 background: url("@/assets/dance/about_bg.png") no-repeat center;
698 text-align: center;text-indent: 2em;} 889 height: 375px;
699 .shadowbox{position: absolute;left: 0;bottom: 90px;height: 100px;width: 100%; 890 background-size: cover;
700 background: linear-gradient(0deg,rgba(255,255,255,1),rgba(255,255,255,0)); 891 padding: 40px 60px;
701 } 892 position: relative;
702 .btn-lineG{} 893
894 .content {
895 font-size: 18px;
896 line-height: 2.2;
897 height: 240px;
898 overflow: hidden;
899 text-align: center;
900 text-indent: 2em;
901 }
902
903 .shadowbox {
904 position: absolute;
905 left: 0;
906 bottom: 90px;
907 height: 100px;
908 width: 100%;
909 background: linear-gradient(0deg, rgba(255, 255, 255, 1), rgba(255, 255, 255, 0));
910 }
911
912 .btn-lineG {
913 }
703 } 914 }
704 .mapBox{background: url("@/assets/dance/map.png") no-repeat center;height: 375px; 915
705 background-size: cover;padding: 1px;position: relative;display: flex; 916 .mapBox {
706 .content{background: #fff;width: 60%;left: 40px;padding: 30px; 917 background: url("@/assets/dance/map.png") no-repeat center;
707 position: absolute;height: 90%;top: 0;bottom: 0;margin: auto; 918 height: 375px;
708 } 919 background-size: cover;
709 div{padding-left: 60px;} 920 padding: 1px;
710 .phone{background: url("@/assets/dance/map01.png") no-repeat left;background-size: 30px;} 921 position: relative;
711 .address{background: url("@/assets/dance/map02.png") no-repeat left;background-size: 30px; 922 display: flex;
712 margin:50px 0; 923
713 } 924 .content {
714 .email{background: url("@/assets/dance/map03.png") no-repeat left;background-size: 30px;} 925 background: #fff;
715 h4{margin: 0; 926 width: 60%;
927 left: 40px;
928 padding: 30px;
929 position: absolute;
930 height: 90%;
931 top: 0;
932 bottom: 0;
933 margin: auto;
934 }
935
936 div {
937 padding-left: 60px;
938 }
939
940 .phone {
941 background: url("@/assets/dance/map01.png") no-repeat left;
942 background-size: 30px;
943 }
944
945 .address {
946 background: url("@/assets/dance/map02.png") no-repeat left;
947 background-size: 30px;
948 margin: 50px 0;
949 }
950
951 .email {
952 background: url("@/assets/dance/map03.png") no-repeat left;
953 background-size: 30px;
954 }
955
956 h4 {
957 margin: 0;
716 font-size: 16px; 958 font-size: 16px;
717 color: #AAAAAA;} 959 color: #AAAAAA;
718 p{margin: 13px 0 0;} 960 }
961
962 p {
963 margin: 13px 0 0;
964 }
719 } 965 }
720 .logobox{background: #fff;height: 180px;border-radius: 10px;margin: 0 0 30px; 966
721 img{width: 100%} 967 .logobox {
968 background: #fff;
969 height: 180px;
970 border-radius: 10px;
971 margin: 0 0 30px;
972
973 img {
974 width: 100%
975 }
722 } 976 }
723 .swiperPic{background: #F3F1FE;position: relative; height: 100%; 977
978 .swiperPic {
979 background: #F3F1FE;
980 position: relative;
981 height: 100%;
724 padding: 20px 45px; 982 padding: 20px 45px;
725 .picprev{position: absolute; left: 5px;top: 0;bottom:0;margin: auto;height: 33px; 983
984 .picprev {
985 position: absolute;
986 left: 5px;
987 top: 0;
988 bottom: 0;
989 margin: auto;
990 height: 33px;
726 cursor: pointer; 991 cursor: pointer;
727 &:hover{filter:brightness(2)} 992
993 &:hover {
994 filter: brightness(2)
995 }
728 } 996 }
729 .picnext{position: absolute;right: 5px;top: 0;bottom:0;margin: auto;height: 33px; 997
998 .picnext {
999 position: absolute;
1000 right: 5px;
1001 top: 0;
1002 bottom: 0;
1003 margin: auto;
1004 height: 33px;
730 cursor: pointer; 1005 cursor: pointer;
731 &:hover{filter:brightness(2)}} 1006
1007 &:hover {
1008 filter: brightness(2)
1009 }
1010 }
732 } 1011 }
1012
733 @media (max-width: 1200px) { 1013 @media (max-width: 1200px) {
734 .teacher{height: 460px;margin: 0 0 20px; 1014 .teacher {
735 img{height: 400px} 1015 height: 460px;
1016 margin: 0 0 20px;
1017
1018 img {
1019 height: 400px
1020 }
736 } 1021 }
737 } 1022 }
738 1023
739 @media (max-width: 800px) { 1024 @media (max-width: 800px) {
740 .box{width: 94%} 1025 .box {
741 .calendarList{padding: 0; 1026 width: 94%
742 ul{ 1027 }
743 li{margin: 10px} 1028 .calendarList {
1029 padding: 0;
1030
1031 ul {
1032 li {
1033 margin: 10px
1034 }
1035 }
1036 }
1037 .aboutBox {
1038 padding: 20px 30px;
1039 }
1040 .indexTitle {
1041 margin: 30px 0 20px
1042 }
1043 .teacher {
1044 height: 320px;
1045 margin: 0 0 20px;
1046
1047 img {
1048 height: 260px
744 } 1049 }
745 } 1050 }
746 .aboutBox{padding: 20px 30px;} 1051 .activeItem {
747 .indexTitle{margin: 30px 0 20px} 1052 margin: 0 0 20px;
748 .teacher{height: 320px;margin: 0 0 20px;
749 img{height: 260px}
750 } 1053 }
751 .activeItem{margin: 0 0 20px;} 1054 .mapBox {
752 .mapBox{ 1055 div {
753 div{padding-left: 40px;} 1056 padding-left: 40px;
754 .content{ width: 80%;left: 10%;padding:10px 20px 0 20px;} 1057 }
755 .address{margin: 30px 0;} 1058
756 p{text-align: left;word-break: break-all;} 1059 .content {
1060 width: 80%;
1061 left: 10%;
1062 padding: 10px 20px 0 20px;
1063 }
1064
1065 .address {
1066 margin: 30px 0;
1067 }
1068
1069 p {
1070 text-align: left;
1071 word-break: break-all;
1072 }
757 } 1073 }
758 .fixed_gg { 1074 .fixed_gg {
759 display: none; 1075 display: none;
760 } 1076 }
761 .bannerItem .banner-count{flex-direction: column; 1077 .bannerItem .banner-count {
762 transform: scale(0.8); left: 0; 1078 flex-direction: column;
1079 transform: scale(0.8);
1080 left: 0;
763 right: 0; 1081 right: 0;
764 .van-count-down{margin: 30px 0 0;} 1082
1083 .van-count-down {
1084 margin: 30px 0 0;
1085 }
765 } 1086 }
766 .bgbg{ text-align: center; 1087 .bgbg {
767 img{max-width:100%; } 1088 text-align: center;
768 h1{text-align: center} 1089
1090 img {
1091 max-width: 100%;
1092 }
1093
1094 h1 {
1095 text-align: center
1096 }
769 } 1097 }
770 } 1098 }
771 </style> 1099 </style>
......
...@@ -140,44 +140,44 @@ ...@@ -140,44 +140,44 @@
140 <span v-else>{{ scope.row.index }}</span> 140 <span v-else>{{ scope.row.index }}</span>
141 </template> 141 </template>
142 </el-table-column> 142 </el-table-column>
143 <el-table-column label="Country/Region" prop="name" min-width="100" align="center"> 143 <el-table-column label="Country/Region">
144 <template #default="scope"> 144 <template #default="scope">
145 <div> 145 <div>
146 <span :class="`flag-icon flag-icon-${scope.row.code}`"></span> 146 <span :class="`flag-icon flag-icon-${scope.row.code}`"></span>
147 {{ scope.row.gj }}</div> 147 {{ scope.row.en_gj }}
148 </div>
148 </template> 149 </template>
149 </el-table-column> 150 </el-table-column>
150 <el-table-column prop="score"> 151 <el-table-column label="COUPLE" align="center">
151 <template #header>
152 <img src="@/assets/dance/1.png">
153 </template>
154 <template #default="scope"> 152 <template #default="scope">
155 <div class="text-warning">{{ scope.row.score }}</div> 153 <div class="text-primary esp">{{ scope.row.name }}</div>
156 </template> 154 </template>
157 </el-table-column> 155 </el-table-column>
158 <el-table-column prop="score"> 156 <el-table-column width="50">
159 <template #header> 157 <template #header>
160 <img src="@/assets/dance/2.png"> 158 <img class="mauto" src="@/assets/dance/1.png">
161 </template> 159 </template>
162 <template #default="scope"> 160 <template #default="scope">
163 <div class="text-blue">{{ scope.row.score }}</div> 161 <div class="text-warning text-center">{{ scope.row.jin }}</div>
164 </template> 162 </template>
165 </el-table-column> 163 </el-table-column>
166 <el-table-column prop="score"> 164 <el-table-column width="50">
167 <template #header> 165 <template #header>
168 <img src="@/assets/dance/3.png"> 166 <img class="mauto" src="@/assets/dance/2.png">
169 </template> 167 </template>
170 <template #default="scope"> 168 <template #default="scope">
171 <div class="text-primary">{{ scope.row.score }}</div> 169 <div class="text-blue text-center">{{ scope.row.yin }}</div>
172 </template> 170 </template>
173 </el-table-column> 171 </el-table-column>
174 <el-table-column label="Total" align="center"> 172 <el-table-column width="50">
173 <template #header>
174 <img class="mauto" src="@/assets/dance/3.png">
175 </template>
175 <template #default="scope"> 176 <template #default="scope">
176 <div class="text-primary">{{ scope.row.score }}</div> 177 <div class="text-primary text-center">{{ scope.row.tong }}</div>
177 </template> 178 </template>
178 </el-table-column> 179 </el-table-column>
179 </el-table> 180 </el-table>
180
181 </el-card> 181 </el-card>
182 </el-col> 182 </el-col>
183 </el-row> 183 </el-row>
...@@ -375,7 +375,6 @@ import { getCurrentInstance } from '@vue/runtime-core' ...@@ -375,7 +375,6 @@ import { getCurrentInstance } from '@vue/runtime-core'
375 import { getNewsListById, getNewsList } from '@/apiPc/webSite' 375 import { getNewsListById, getNewsList } from '@/apiPc/webSite'
376 import { useRouter } from 'vue-router' 376 import { useRouter } from 'vue-router'
377 import _ from 'lodash' 377 import _ from 'lodash'
378 import { getHotActivity } from '@/apiPc/common'
379 import { Swiper, SwiperSlide } from 'swiper/vue' 378 import { Swiper, SwiperSlide } from 'swiper/vue'
380 import { Autoplay, Navigation } from 'swiper' 379 import { Autoplay, Navigation } from 'swiper'
381 import 'swiper/css' 380 import 'swiper/css'
...@@ -387,7 +386,7 @@ import r04 from '@/assets/dance/r04.png' ...@@ -387,7 +386,7 @@ import r04 from '@/assets/dance/r04.png'
387 import r05 from '@/assets/dance/r05.png' 386 import r05 from '@/assets/dance/r05.png'
388 import r06 from '@/assets/dance/r06.png' 387 import r06 from '@/assets/dance/r06.png'
389 import * as match from "@/apiPc/match"; 388 import * as match from "@/apiPc/match";
390 389 import {rankList} from '@/assets/js/data'
391 const modules = [Autoplay, Navigation] 390 const modules = [Autoplay, Navigation]
392 const navigationPic = ref({ 391 const navigationPic = ref({
393 nextEl: '.picnext', 392 nextEl: '.picnext',
...@@ -396,15 +395,6 @@ const navigationPic = ref({ ...@@ -396,15 +395,6 @@ const navigationPic = ref({
396 const router = useRouter() 395 const router = useRouter()
397 const { proxy } = getCurrentInstance() 396 const { proxy } = getCurrentInstance()
398 const time = ref(0) 397 const time = ref(0)
399 const rankList = ref([
400 { index: '1', code: 'cn', score: '170',gj:'China' },
401 { index: '2', code: 'us', score: '170' ,gj:'China'},
402 { index: '3', code: 'de', score: '170',gj:'China' },
403 { index: '4', code: 'eg', score: '170',gj:'China' },
404 { index: '5', code: 'ly', score: '170' ,gj:'China'},
405 { index: '6', code: 'tn', score: '170' ,gj:'China'},
406 { index: '7', code: 'gw', score: '170' ,gj:'China'}
407 ])
408 const personList = ref([ 398 const personList = ref([
409 { name: 'Zhang Jin', pp: 'artistic director', src: r01 }, 399 { name: 'Zhang Jin', pp: 'artistic director', src: r01 },
410 { name: 'Wang min', pp: 'regimental commander', src: r02 }, 400 { name: 'Wang min', pp: 'regimental commander', src: r02 },
......
1 <template> 1 <template>
2 <el-dialog close-icon="CircleClose" center 2 <el-dialog close-icon="CircleClose" center
3 v-model="show" class="pcloginpop" width="450px" :append-to-body="true" :title="title" 3 v-model="show" class="pcloginpop" width="450px" :append-to-body="true" :title="title"
4 destroy-on-close :show-close="showClose" :close-on-click-modal="false" @close="close" 4 destroy-on-close :show-close="showClose" :close-on-click-modal="false" @close="close"
5 > 5 >
6 6
7 <el-form ref="loginRef" :model="loginForm" :rules="language==0?loginRules:loginRules_en" class="login-form" v-if="loginStatus==0"> 7 <el-form ref="loginRef" :model="loginForm" :rules="language==0?loginRules:loginRules_en" class="login-form"
8 v-if="loginStatus==0">
8 <el-form-item prop="username"> 9 <el-form-item prop="username">
9 10
10 <el-input 11 <el-input
11 v-model.trim="loginForm.username" 12 v-model.trim="loginForm.username"
12 size="large" 13 size="large"
13 auto-complete="off" 14 auto-complete="off"
14 :placeholder="language==0?'账号(注册时使用的邮箱)':'Account (e-mail)'" 15 :placeholder="language==0?'账号(注册时使用的邮箱)':'Account (e-mail)'"
15 > 16 >
16 17
17 </el-input> 18 </el-input>
18 </el-form-item> 19 </el-form-item>
19 <el-form-item prop="password"> 20 <el-form-item prop="password">
20 <el-input 21 <el-input
21 v-model.trim="loginForm.password" 22 v-model.trim="loginForm.password"
22 type="password" 23 type="password"
23 size="large" show-password 24 size="large" show-password
24 auto-complete="off" 25 auto-complete="off"
25 :placeholder="language==0?'密码':'Password'" 26 :placeholder="language==0?'密码':'Password'"
26 @keyup.enter="handleLogin" 27 @keyup.enter="handleLogin"
27 > 28 >
28 </el-input> 29 </el-input>
29 </el-form-item> 30 </el-form-item>
30 <el-form-item v-if="captchaEnabled" prop="code"> 31 <el-form-item v-if="captchaEnabled" prop="code">
31 <el-input 32 <el-input
32 v-model.trim="loginForm.code" 33 v-model.trim="loginForm.code"
33 size="large" 34 size="large"
34 auto-complete="off" 35 auto-complete="off"
35 :placeholder="language==0?'验证码':'Code'" 36 :placeholder="language==0?'验证码':'Code'"
36 @keyup.enter="handleLogin" 37 @keyup.enter="handleLogin"
37 > 38 >
38 <template #append> 39 <template #append>
39 <div class="login-code"> 40 <div class="login-code">
...@@ -46,22 +47,23 @@ ...@@ -46,22 +47,23 @@
46 47
47 <el-form-item style="width:100%;"> 48 <el-form-item style="width:100%;">
48 <el-button 49 <el-button
49 class="loginBtn" 50 class="loginBtn"
50 :loading="loading" 51 :loading="loading"
51 size="large" 52 size="large"
52 type="primary" 53 type="primary"
53 style="width:100%;" 54 style="width:100%;"
54 @click.prevent="handleLogin" 55 @click.prevent="handleLogin"
55 > 56 >
56 <span v-if="!loading">{{language==0?'登 录':'Login'}}</span> 57 <span v-if="!loading">{{ language == 0 ? '登 录' : 'Login' }}</span>
57 <span v-else>{{language==0?'登 录 中...':'Logging in'}}</span> 58 <span v-else>{{ language == 0 ? '登 录 中...' : 'Logging in' }}</span>
58 </el-button> 59 </el-button>
59 </el-form-item> 60 </el-form-item>
60 <el-form-item> 61 <el-form-item>
61 <!-- <span style="color: #999;font-size: 12px;">*默认密码是会员号+证件号后四位+)*%</span>--> 62 <!-- <span style="color: #999;font-size: 12px;">*默认密码是会员号+证件号后四位+)*%</span>-->
62 <div style="display: flex;justify-content: space-between;width: 100%;"> 63 <div style="display: flex;justify-content: space-between;width: 100%;">
63 <a class="text-primary" @click="showChangePassword">{{language==0?'忘记密码':'Retrieve password'}}?</a> 64 <a class="text-primary"
64 <a @click="showRegister" class="text-primary">{{language==0?'账号注册':'Register'}}></a> 65 @click="showChangePassword">{{ language == 0 ? '忘记密码' : 'Retrieve password' }}?</a>
66 <a @click="showRegister" class="text-primary">{{ language == 0 ? '账号注册' : 'Register' }}></a>
65 </div> 67 </div>
66 </el-form-item> 68 </el-form-item>
67 <el-form-item> 69 <el-form-item>
...@@ -80,21 +82,22 @@ ...@@ -80,21 +82,22 @@
80 82
81 <div v-if="loginStatus==1"> 83 <div v-if="loginStatus==1">
82 <div class="rItem r1" @click="goRegister(1)"> 84 <div class="rItem r1" @click="goRegister(1)">
83 <h3>{{language==0?'机构用户':'Organization'}}</h3> 85 <h3>{{ language == 0 ? '机构用户' : 'Organization' }}</h3>
84 </div> 86 </div>
85 <div class="rItem r2" @click="goRegister(0)" :style="language==0?'filter:grayscale(1)':''"> 87 <div class="rItem r2" @click="goRegister(0)" :style="language==0?'filter:grayscale(1)':''">
86 <h3>{{language==0?'个人用户':'Individual'}}</h3> 88 <h3>{{ language == 0 ? '个人用户' : 'Individual' }}</h3>
87 </div> 89 </div>
88 </div> 90 </div>
89 <div v-if="loginStatus==2"> 91 <div v-if="loginStatus==2">
90 <el-form ref="changePasswordRef" :model="changePasswordForm" :rules="language==0?changePasswordRules:changePasswordRules_en" class="login-form"> 92 <el-form ref="changePasswordRef" :model="changePasswordForm"
93 :rules="language==0?changePasswordRules:changePasswordRules_en" class="login-form">
91 <el-form-item prop="username"> 94 <el-form-item prop="username">
92 95
93 <el-input 96 <el-input
94 v-model.trim="changePasswordForm.username" 97 v-model.trim="changePasswordForm.username"
95 size="large" 98 size="large"
96 auto-complete="off" @change="changePasswordFormUsername" 99 auto-complete="off" @change="changePasswordFormUsername"
97 :placeholder="language==0?'注册时使用的邮箱/手机号码':'E-mail/ Phone number'" 100 :placeholder="language==0?'注册时使用的邮箱':'E-mail'"
98 > 101 >
99 102
100 </el-input> 103 </el-input>
...@@ -104,24 +107,24 @@ ...@@ -104,24 +107,24 @@
104 v-model.trim="changePasswordForm.code" 107 v-model.trim="changePasswordForm.code"
105 size="large" 108 size="large"
106 auto-complete="off" 109 auto-complete="off"
107 :placeholder="language==0?'邮箱/手机验证码':'Code'" 110 :placeholder="language==0?'验证码':'Code'"
108 @keyup.enter="handleLogin" 111 @keyup.enter="handleLogin"
109 > 112 >
110 <template #append> 113 <template #append>
111 <el-button type="primary" plain style="width: 110px" @click="sendsmsMsg"> 114 <el-button type="primary" plain style="width: 110px" @click="sendsmsMsg">
112 <count-down v-if="counting" v-slot="{ totalSeconds }" :time="60000" @end="counting=false"> 115 <count-down v-if="counting" v-slot="{ totalSeconds }" :time="60000" @end="counting=false">
113 {{ totalSeconds }} {{ language==0?'秒':'s' }} 116 {{ totalSeconds }} {{ language == 0 ? '秒' : 's' }}
114 </count-down> 117 </count-down>
115 <span v-else> 118 <span v-else>
116 <!-- Send verification code--> 119 <!-- Send verification code-->
117 {{language==0?'发送验证码':'Send'}} 120 {{ language == 0 ? '发送验证码' : 'Send' }}
118 </span> 121 </span>
119 </el-button> 122 </el-button>
120 </template> 123 </template>
121 </el-input> 124 </el-input>
122 <!-- <div class="vcodeBox" :style="isShow?'height:240px':'height:0'">--> 125 <!-- <div class="vcodeBox" :style="isShow?'height:240px':'height:0'">-->
123 <Vcode :zIndex="9999" :show="isShow" @success="codeSuccess"></Vcode> 126 <Vcode :zIndex="9999" :show="isShow" @success="codeSuccess"></Vcode>
124 <!-- </div>--> 127 <!-- </div>-->
125 </el-form-item> 128 </el-form-item>
126 129
127 <el-form-item prop="password"> 130 <el-form-item prop="password">
...@@ -170,16 +173,18 @@ import {forgetPassword, getCodeImg} from '@/api/login' ...@@ -170,16 +173,18 @@ import {forgetPassword, getCodeImg} from '@/api/login'
170 import * as match from '@/apiPc/match' 173 import * as match from '@/apiPc/match'
171 import Cookies from 'js-cookie' 174 import Cookies from 'js-cookie'
172 import useUserStore from '@/store/modules/user' 175 import useUserStore from '@/store/modules/user'
173 const language= useStorage('language',0) 176
174 import { useRouter } from 'vue-router' 177 const language = useStorage('language', 0)
175 import { getCurrentInstance, ref, watch } from 'vue' 178 import {useRouter} from 'vue-router'
176 import { ElMessage,ElMessageBox} from 'element-plus' 179 import {getCurrentInstance, ref, watch} from 'vue'
180 import {ElMessage, ElMessageBox} from 'element-plus'
177 import cache from "@/plugins/cache"; 181 import cache from "@/plugins/cache";
178 import {useStorage} from "@vueuse/core/index"; 182 import {useStorage} from "@vueuse/core/index";
183
179 const emit = defineEmits(['submitForm']) 184 const emit = defineEmits(['submitForm'])
180 const userStore = useUserStore() 185 const userStore = useUserStore()
181 const router = useRouter() 186 const router = useRouter()
182 const { proxy } = getCurrentInstance() 187 const {proxy} = getCurrentInstance()
183 const loginForm = ref({ 188 const loginForm = ref({
184 username: '', 189 username: '',
185 password: '', 190 password: '',
...@@ -189,26 +194,26 @@ const loginForm = ref({ ...@@ -189,26 +194,26 @@ const loginForm = ref({
189 }) 194 })
190 const countDown = ref(null) 195 const countDown = ref(null)
191 const loginRules = { 196 const loginRules = {
192 username: [{ required: true, trigger: 'change', message: '请输入您的会员号' }], 197 username: [{required: true, trigger: 'change', message: '请输入您的会员号'}],
193 password: [{ required: true, trigger: 'change', message: '请输入您账号密码' }], 198 password: [{required: true, trigger: 'change', message: '请输入您账号密码'}],
194 code: [{ required: true, trigger: 'change', message: '请输入验证码' }] 199 code: [{required: true, trigger: 'change', message: '请输入验证码'}]
195 } 200 }
196 const changePasswordRules = { 201 const changePasswordRules = {
197 username: [{ required: true, trigger: 'change', message: '请输入您的账号' }], 202 username: [{required: true, trigger: 'change', message: '请输入您的账号'}],
198 password: [{ required: true, trigger: 'change', message: '请输入您的密码' }], 203 password: [{required: true, trigger: 'change', message: '请输入您的密码'}],
199 confirmPassword: [{ required: true, trigger: 'change', message: '请再次输入您的密码' }], 204 confirmPassword: [{required: true, trigger: 'change', message: '请再次输入您的密码'}],
200 code: [{ required: true, trigger: 'change', message: '请输入验证码' }] 205 code: [{required: true, trigger: 'change', message: '请输入验证码'}]
201 } 206 }
202 const loginRules_en = { 207 const loginRules_en = {
203 username: [{ required: true, trigger: 'change', message: 'Please enter ' }], 208 username: [{required: true, trigger: 'change', message: 'Please enter '}],
204 password: [{ required: true, trigger: 'change', message: 'Please enter ' }], 209 password: [{required: true, trigger: 'change', message: 'Please enter '}],
205 code: [{ required: true, trigger: 'change', message: 'Please enter ' }] 210 code: [{required: true, trigger: 'change', message: 'Please enter '}]
206 } 211 }
207 const changePasswordRules_en = { 212 const changePasswordRules_en = {
208 username: [{ required: true, trigger: 'change', message: 'Please enter ' }], 213 username: [{required: true, trigger: 'change', message: 'Please enter '}],
209 password: [{ required: true, trigger: 'change', message: 'Please enter ' }], 214 password: [{required: true, trigger: 'change', message: 'Please enter '}],
210 confirmPassword: [{ required: true, trigger: 'change', message: 'Please enter ' }], 215 confirmPassword: [{required: true, trigger: 'change', message: 'Please enter '}],
211 code: [{ required: true, trigger: 'change', message: 'Please enter ' }] 216 code: [{required: true, trigger: 'change', message: 'Please enter '}]
212 } 217 }
213 218
214 const show = ref(false) 219 const show = ref(false)
...@@ -225,15 +230,15 @@ const isShow = ref(false) ...@@ -225,15 +230,15 @@ const isShow = ref(false)
225 const isCodeTrue = ref(false) 230 const isCodeTrue = ref(false)
226 const counting = ref(false) 231 const counting = ref(false)
227 const changePasswordForm = ref({ 232 const changePasswordForm = ref({
228 username:'', 233 username: '',
229 password:'', 234 password: '',
230 confirmPassword:'' 235 confirmPassword: ''
231 }) 236 })
232 237
233 const open = (params) => { 238 const open = (params) => {
234 show.value = true 239 show.value = true
235 showClose.value = !(params?.notShowClose || false) 240 showClose.value = !(params?.notShowClose || false)
236 if(language.value==0){ 241 if (language.value == 0) {
237 title.value = '用户登录' 242 title.value = '用户登录'
238 } else { 243 } else {
239 title.value = 'LOGIN' 244 title.value = 'LOGIN'
...@@ -244,14 +249,15 @@ const open = (params) => { ...@@ -244,14 +249,15 @@ const open = (params) => {
244 defineExpose({ 249 defineExpose({
245 open 250 open
246 }) 251 })
252
247 function handleLogin() { 253 function handleLogin() {
248 proxy.$refs.loginRef.validate(valid => { 254 proxy.$refs.loginRef.validate(valid => {
249 if (valid) { 255 if (valid) {
250 loading.value = true 256 loading.value = true
251 // 勾选了需要记住密码设置在 cookie 中设置记住用户名和密码 257 // 勾选了需要记住密码设置在 cookie 中设置记住用户名和密码
252 if (loginForm.value.rememberMe) { 258 if (loginForm.value.rememberMe) {
253 Cookies.set('telno', loginForm.value.telno, { expires: 30 }) 259 Cookies.set('telno', loginForm.value.telno, {expires: 30})
254 Cookies.set('rememberMe', loginForm.value.rememberMe, { expires: 30 }) 260 Cookies.set('rememberMe', loginForm.value.rememberMe, {expires: 30})
255 } else { 261 } else {
256 // 否则移除 262 // 否则移除
257 Cookies.remove('telno') 263 Cookies.remove('telno')
...@@ -272,29 +278,33 @@ function handleLogin() { ...@@ -272,29 +278,33 @@ function handleLogin() {
272 } 278 }
273 }) 279 })
274 } 280 }
281
275 function close() { 282 function close() {
276 loginStatus.value=0 283 loginStatus.value = 0
277 title.value = '用户登录' 284 title.value = '用户登录'
278 } 285 }
286
279 function showChangePassword() { 287 function showChangePassword() {
280 loginStatus.value=2 288 loginStatus.value = 2
281 if(language.value==0){ 289 if (language.value == 0) {
282 title.value = '忘记密码/密码重置' 290 title.value = '忘记密码/密码重置'
283 } else { 291 } else {
284 title.value = 'FORGET PASSWORD' 292 title.value = 'FORGET PASSWORD'
285 } 293 }
286 } 294 }
295
287 function showRegister() { 296 function showRegister() {
288 loginStatus.value=1 297 loginStatus.value = 1
289 if(language.value==0){ 298 if (language.value == 0) {
290 title.value = '账号注册' 299 title.value = '账号注册'
291 } else { 300 } else {
292 title.value = 'REGISTER' 301 title.value = 'REGISTER'
293 } 302 }
294 } 303 }
304
295 function goRegister(n) { 305 function goRegister(n) {
296 if(n==0){ 306 if (n == 0) {
297 if(language.value==0){ 307 if (language.value == 0) {
298 // ElMessage.warning('暂不开放国内注册!') 308 // ElMessage.warning('暂不开放国内注册!')
299 return 309 return
300 } 310 }
...@@ -309,6 +319,7 @@ function goRegister(n) { ...@@ -309,6 +319,7 @@ function goRegister(n) {
309 }) 319 })
310 } 320 }
311 } 321 }
322
312 function getCode() { 323 function getCode() {
313 getCodeImg().then(res => { 324 getCodeImg().then(res => {
314 captchaEnabled.value = res.captchaEnabled === undefined ? true : res.captchaEnabled 325 captchaEnabled.value = res.captchaEnabled === undefined ? true : res.captchaEnabled
...@@ -327,35 +338,39 @@ function getCookie() { ...@@ -327,35 +338,39 @@ function getCookie() {
327 rememberMe: rememberMe === undefined ? false : Boolean(rememberMe) 338 rememberMe: rememberMe === undefined ? false : Boolean(rememberMe)
328 } 339 }
329 } 340 }
341
330 function sendsmsMsg() { 342 function sendsmsMsg() {
331 if(!changePasswordForm.value.username){ 343 if (!changePasswordForm.value.username) {
332 if(language.value==0){ 344 if (language.value == 0) {
333 ElMessage.error('请填写手机/邮箱') 345 ElMessage.error('请填写手机/邮箱')
334 } else { 346 } else {
335 ElMessage.error('Please fill in your phone/email address') 347 ElMessage.error('Please fill in your phone/email address')
336 } 348 }
337 return 349 return
338 } 350 }
339 if(counting.value){ 351 if (counting.value) {
340 return 352 return
341 } else { 353 } else {
342 isShow.value = true 354 isShow.value = true
343 } 355 }
344 } 356 }
357
345 function codeSuccess() { 358 function codeSuccess() {
346 isShow.value = false 359 isShow.value = false
347 isCodeTrue.value = true 360 isCodeTrue.value = true
348 counting.value = true 361 counting.value = true
349 } 362 }
363
350 function changePasswordFormUsername() { 364 function changePasswordFormUsername() {
351 isCodeTrue.value = false 365 isCodeTrue.value = false
352 } 366 }
367
353 function handleChangePassword() { 368 function handleChangePassword() {
354 proxy.$refs.changePasswordRef.validate(valid => { 369 proxy.$refs.changePasswordRef.validate(valid => {
355 if (valid) { 370 if (valid) {
356 if(isCodeTrue.value){ 371 if (isCodeTrue.value) {
357 delete changePasswordForm.value.confirmPassword 372 delete changePasswordForm.value.confirmPassword
358 forgetPassword(changePasswordForm.value).then(res=>{ 373 forgetPassword(changePasswordForm.value).then(res => {
359 ElMessage.success('操作成功,请登录') 374 ElMessage.success('操作成功,请登录')
360 close() 375 close()
361 }) 376 })
...@@ -394,11 +409,13 @@ function handleChangePassword() { ...@@ -394,11 +409,13 @@ function handleChangePassword() {
394 right: 0; 409 right: 0;
395 } 410 }
396 411
397 .loginBtn {height: 40px; 412 .loginBtn {
413 height: 40px;
398 background: linear-gradient(-90deg, #8623FC, #453DEA); 414 background: linear-gradient(-90deg, #8623FC, #453DEA);
399 border-radius: 20px; 415 border-radius: 20px;
400 font-size: 18px; 416 font-size: 18px;
401 &:hover{ 417
418 &:hover {
402 //background: linear-gradient(90deg, #8623FC, #453DEA); 419 //background: linear-gradient(90deg, #8623FC, #453DEA);
403 box-shadow: 0 0 10px #453DEA; 420 box-shadow: 0 0 10px #453DEA;
404 } 421 }
...@@ -426,7 +443,12 @@ function handleChangePassword() { ...@@ -426,7 +443,12 @@ function handleChangePassword() {
426 443
427 .el-input { 444 .el-input {
428 height: 40px; 445 height: 40px;
429 :deep(.el-input__wrapper){box-shadow: none;border-bottom:1px solid #E5E5E5; } 446
447 :deep(.el-input__wrapper) {
448 box-shadow: none;
449 border-bottom: 1px solid #E5E5E5;
450 }
451
430 input { 452 input {
431 height: 40px; 453 height: 40px;
432 } 454 }
...@@ -447,6 +469,7 @@ function handleChangePassword() { ...@@ -447,6 +469,7 @@ function handleChangePassword() {
447 469
448 .login-code { 470 .login-code {
449 height: 40px; 471 height: 40px;
472
450 img { 473 img {
451 cursor: pointer; 474 cursor: pointer;
452 vertical-align: middle; 475 vertical-align: middle;
...@@ -467,31 +490,70 @@ function handleChangePassword() { ...@@ -467,31 +490,70 @@ function handleChangePassword() {
467 } 490 }
468 491
469 .login-code-img { 492 .login-code-img {
470 height: 40px;float: right; 493 height: 40px;
494 float: right;
471 } 495 }
472 496
473 :deep(.el-input-group__append) { 497 :deep(.el-input-group__append) {
474 background: #fff;padding: 0; 498 background: #fff;
475 color: #fff;box-shadow: none; 499 padding: 0;
476 div{color: #fff;} 500 color: #fff;
501 box-shadow: none;
502
503 div {
504 color: #fff;
505 }
477 } 506 }
478 .agreeLine{ 507
479 a{font-weight: 600;color: #000; 508 .agreeLine {
480 &:hover{text-decoration: underline;} 509 a {
510 font-weight: 600;
511 color: #000;
512
513 &:hover {
514 text-decoration: underline;
515 }
481 } 516 }
482 } 517 }
483 .rItem{height: 130px;cursor: pointer;width: 350px;padding: 1px;margin:20px auto; 518
484 h3{font-size: 30px;margin: 50px;} 519 .rItem {
485 &.r1{background: url("@/assets/dance/r1b.png") no-repeat left; 520 height: 130px;
486 &:hover{background: url("@/assets/dance/r1.png") no-repeat left;} 521 cursor: pointer;
522 width: 350px;
523 padding: 1px;
524 margin: 20px auto;
525
526 h3 {
527 font-size: 30px;
528 margin: 50px;
529 }
530
531 &.r1 {
532 background: url("@/assets/dance/r1b.png") no-repeat left;
533
534 &:hover {
535 background: url("@/assets/dance/r1.png") no-repeat left;
536 }
537 }
538
539 &.r2 {
540 background: url("@/assets/dance/r2b.png") no-repeat left;
541
542 &:hover {
543 background: url("@/assets/dance/r2.png") no-repeat left;
544 }
487 } 545 }
488 &.r2{background: url("@/assets/dance/r2b.png") no-repeat left; 546
489 &:hover{background: url("@/assets/dance/r2.png") no-repeat left;} 547 &:hover {
548 color: #fff;
490 } 549 }
491 &:hover{color: #fff;}
492 } 550 }
493 .el-input-group__append{ flex: 1 1 auto;} 551
494 .el-input-group__append button.el-button, .el-input-group__append button.el-button:hover{ 552 .el-input-group__append {
553 flex: 1 1 auto;
554 }
555
556 .el-input-group__append button.el-button, .el-input-group__append button.el-button:hover {
495 color: var(--el-color-primary); 557 color: var(--el-color-primary);
496 background: #efefff; 558 background: #efefff;
497 border: var(--el-color-primary) solid 1px; 559 border: var(--el-color-primary) solid 1px;
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
20 </template> 20 </template>
21 <div class="chooseForm"> 21 <div class="chooseForm">
22 <el-checkbox-group v-model="form.coachs" @change="changecoachs"> 22 <el-checkbox-group v-model="form.coachs" @change="changecoachs">
23 <div class="addBttn" @click="addCoach(0)">+</div> 23 <div class="addBttn" @click="addCoach('1')">+</div>
24 <el-checkbox v-for="c in personAllList?.coaches" :label="c.id"> 24 <el-checkbox v-for="c in personAllList?.coaches" :label="c.id">
25 <el-avatar fit="cover" v-if="c.picUrl" :size="60" :src="fillImgUrl(c.picUrl)"/> 25 <el-avatar fit="cover" v-if="c.picUrl" :size="60" :src="fillImgUrl(c.picUrl)"/>
26 <el-avatar fit="cover" v-else-if="c.sex == 0" :size="60" src="/img/head1.png"/> 26 <el-avatar fit="cover" v-else-if="c.sex == 0" :size="60" src="/img/head1.png"/>
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
48 </template> 48 </template>
49 <div class="chooseForm"> 49 <div class="chooseForm">
50 <el-checkbox-group v-model="form.leader"> 50 <el-checkbox-group v-model="form.leader">
51 <div class="addBttn" @click="addCoach(0)">+</div> 51 <div class="addBttn" @click="addCoach('2')">+</div>
52 <el-checkbox v-for="c in personAllList?.leaders" :label="c.id"> 52 <el-checkbox v-for="c in personAllList?.leaders" :label="c.id">
53 <el-avatar fit="cover" v-if="c.picUrl" :size="60" :src="fillImgUrl(c.picUrl)"/> 53 <el-avatar fit="cover" v-if="c.picUrl" :size="60" :src="fillImgUrl(c.picUrl)"/>
54 <el-avatar fit="cover" v-else-if="c.sex == 0" :size="60" src="/img/head1.png"/> 54 <el-avatar fit="cover" v-else-if="c.sex == 0" :size="60" src="/img/head1.png"/>
...@@ -73,7 +73,7 @@ ...@@ -73,7 +73,7 @@
73 </template> 73 </template>
74 <div class="chooseForm"> 74 <div class="chooseForm">
75 <el-checkbox-group v-model="form.doctor"> 75 <el-checkbox-group v-model="form.doctor">
76 <div class="addBttn" @click="addCoach(0)">+</div> 76 <div class="addBttn" @click="addCoach('4')">+</div>
77 <el-checkbox v-for="c in personAllList?.teamDoctors" :label="c.id"> 77 <el-checkbox v-for="c in personAllList?.teamDoctors" :label="c.id">
78 <el-avatar fit="cover" v-if="c.picUrl" :size="60" :src="fillImgUrl(c.picUrl)"/> 78 <el-avatar fit="cover" v-if="c.picUrl" :size="60" :src="fillImgUrl(c.picUrl)"/>
79 <el-avatar fit="cover" v-else-if="c.sex == 0" :size="60" src="/img/head1.png"/> 79 <el-avatar fit="cover" v-else-if="c.sex == 0" :size="60" src="/img/head1.png"/>
...@@ -98,7 +98,7 @@ ...@@ -98,7 +98,7 @@
98 </template> 98 </template>
99 <div class="chooseForm"> 99 <div class="chooseForm">
100 <el-checkbox-group v-model="form.translator"> 100 <el-checkbox-group v-model="form.translator">
101 <div class="addBttn" @click="addCoach(0)">+</div> 101 <div class="addBttn" @click="addCoach('5')">+</div>
102 <el-checkbox v-for="c in personAllList?.translators" :label="c.id"> 102 <el-checkbox v-for="c in personAllList?.translators" :label="c.id">
103 <el-avatar fit="cover" v-if="c.picUrl" :size="60" :src="fillImgUrl(c.picUrl)"/> 103 <el-avatar fit="cover" v-if="c.picUrl" :size="60" :src="fillImgUrl(c.picUrl)"/>
104 <el-avatar fit="cover" v-else-if="c.sex == 0" :size="60" src="/img/head1.png"/> 104 <el-avatar fit="cover" v-else-if="c.sex == 0" :size="60" src="/img/head1.png"/>
...@@ -123,7 +123,7 @@ ...@@ -123,7 +123,7 @@
123 </template> 123 </template>
124 <div class="chooseForm"> 124 <div class="chooseForm">
125 <el-checkbox-group v-model="form.official"> 125 <el-checkbox-group v-model="form.official">
126 <div class="addBttn" @click="addCoach(0)">+</div> 126 <div class="addBttn" @click="addCoach('6')">+</div>
127 <el-checkbox v-for="c in personAllList?.officials" :label="c.id"> 127 <el-checkbox v-for="c in personAllList?.officials" :label="c.id">
128 <el-avatar fit="cover" v-if="c.picUrl" :size="60" :src="fillImgUrl(c.picUrl)"/> 128 <el-avatar fit="cover" v-if="c.picUrl" :size="60" :src="fillImgUrl(c.picUrl)"/>
129 <el-avatar fit="cover" v-else-if="c.sex == 0" :size="60" src="/img/head1.png"/> 129 <el-avatar fit="cover" v-else-if="c.sex == 0" :size="60" src="/img/head1.png"/>
...@@ -148,7 +148,7 @@ ...@@ -148,7 +148,7 @@
148 </template> 148 </template>
149 <div class="chooseForm"> 149 <div class="chooseForm">
150 <el-checkbox-group v-model="form.other"> 150 <el-checkbox-group v-model="form.other">
151 <div class="addBttn" @click="addCoach(0)">+</div> 151 <div class="addBttn" @click="addCoach('3')">+</div>
152 <el-checkbox v-for="c in personAllList?.others" :label="c.id"> 152 <el-checkbox v-for="c in personAllList?.others" :label="c.id">
153 <el-avatar fit="cover" v-if="c.picUrl" :size="60" :src="fillImgUrl(c.picUrl)"/> 153 <el-avatar fit="cover" v-if="c.picUrl" :size="60" :src="fillImgUrl(c.picUrl)"/>
154 <el-avatar fit="cover" v-else-if="c.sex == 0" :size="60" src="/img/head1.png"/> 154 <el-avatar fit="cover" v-else-if="c.sex == 0" :size="60" src="/img/head1.png"/>
...@@ -365,10 +365,11 @@ function editPerson(id) { ...@@ -365,10 +365,11 @@ function editPerson(id) {
365 }) 365 })
366 } 366 }
367 367
368 function addCoach() { 368 function addCoach(n) {
369 proxy.$refs['dialogAddCoachRef'].open({ 369 proxy.$refs['dialogAddCoachRef'].open({
370 title: language.value==0?'新建人员':'Add', 370 title: language.value==0?'新建人员':'Add',
371 id: 0, 371 id: 0,
372 label: n,
372 groupId: groupId.value 373 groupId: groupId.value
373 }) 374 })
374 } 375 }
......
...@@ -7,22 +7,22 @@ ...@@ -7,22 +7,22 @@
7 7
8 <el-card :body-style="{'padding-top': '0'}"> 8 <el-card :body-style="{'padding-top': '0'}">
9 <el-row class="mt20" :gutter="20"> 9 <el-row class="mt20" :gutter="20">
10 <el-col :lg="12"> 10 <el-col :lg="8">
11 <div class="panel border"> 11 <div class="panel border">
12 <div class="panel-header "> 12 <div class="panel-header ">
13 <h3 class="panel-title" v-if="language==0">选择参赛运动员清单</h3> 13 <h3 class="panel-title" v-if="language==0">选择参赛运动员清单</h3>
14 <h3 class="panel-title" v-else>Select list of participating athletes</h3> 14 <h3 class="panel-title" v-else>Select list of participating athletes</h3>
15 <!-- <a class="fr" @click="emptyChoosed">{{ language == 0 ? '清空' : 'Empty' }}</a>--> 15 <a class="fr" @click="emptyChoosed">{{ language == 0 ? '清空' : 'Empty' }}</a>
16 </div> 16 </div>
17 <div class="panel-body" style="padding: 10px"> 17 <div class="panel-body" style="padding: 10px">
18 <div style="margin: 0 4px 10px"> 18 <div style="margin: 0 4px 10px">
19 <el-select multiple v-model="choosedchoosed" collapse-tags-tooltip filterable 19 <el-input size="small" v-model="athletesQuery.name" :prefix-icon="Search"
20 @change="getProjectList"> 20 @change="queryAthletes"
21 <el-option v-for="c in athletesList" :key="c.id" :label="c.realName" :value="c.id" ></el-option> 21 clearable/>
22 </el-select>
23 </div> 22 </div>
24 <div class="noPicChooseForm" id="chooseArr"> 23 <div class="noPicChooseForm" id="chooseArr">
25 <el-checkbox-group v-model="choosedchoosed" @change="changechoosed"> 24 <el-checkbox-group v-model="choosedchoosed" @change="changechoosed">
25 <el-button id="addRef" plain @click="chooseSportman">+{{ language == 0 ? '选择' : 'add' }}</el-button>
26 <el-checkbox v-for="c in choosedListBak" :value="c.id" border> 26 <el-checkbox v-for="c in choosedListBak" :value="c.id" border>
27 <p class="name">{{ c.realName }} 27 <p class="name">{{ c.realName }}
28 <!-- ({{ c.sexStr }})--> 28 <!-- ({{ c.sexStr }})-->
...@@ -35,7 +35,39 @@ ...@@ -35,7 +35,39 @@
35 </div> 35 </div>
36 </div> 36 </div>
37 </el-col> 37 </el-col>
38 <el-col :lg="12"> 38 <el-col :lg="8">
39 <div class="panel border">
40 <div class="panel-header ">
41 <h3 class="panel-title" v-if="language==0">选择一个参赛组合</h3>
42 <h3 class="panel-title" v-else>Select a Participating team</h3>
43 <a class="fr" @click="emptyChangechoosed">{{ language == 0 ? '清空' : 'Empty' }}</a>
44 </div>
45 <div class="panel-body" style="padding: 10px">
46 <div class="mb20">
47 <el-input size="small" v-model="zuQuery.name" :prefix-icon="Search"
48 @change="queryTeam" clearable/>
49 </div>
50 <div class="chooseForm">
51 <el-checkbox-group v-model="choosedchoosed" @change="changechoosed">
52 <!-- v-show="choosedchoosed.indexOf(c.id) !== -1"-->
53 <el-checkbox v-for="c in choosed2Listbak" :value="c.id" checked>
54 <el-avatar fit="cover" v-if="c.picUrl" :size="60" :src="fillImgUrl(c.picUrl)"/>
55 <el-avatar fit="cover" v-else-if="c.sex == 0" :size="60" src="/img/head1.png"/>
56 <el-avatar fit="cover" v-else-if="c.sex == 1" :size="60" src="/img/head0.png"/>
57 <p class="name">{{ c.realName }}
58 <img v-if="c.sex=='0'" src="@/assets/img/female.png"/>
59 <img v-if="c.sex=='1'" src="@/assets/img/male.png"/>
60 <!-- <el-icon @click.stop="editPerson(c.id)">-->
61 <!-- <Edit/>-->
62 <!-- </el-icon>-->
63 </p>
64 </el-checkbox>
65 </el-checkbox-group>
66 </div>
67 </div>
68 </div>
69 </el-col>
70 <el-col :lg="8">
39 <div class="panel border"> 71 <div class="panel border">
40 <div class="panel-header "> 72 <div class="panel-header ">
41 <h3 class="panel-title" v-if="language==0">可参与报名的项目</h3> 73 <h3 class="panel-title" v-if="language==0">可参与报名的项目</h3>
...@@ -46,7 +78,7 @@ ...@@ -46,7 +78,7 @@
46 clearable/> 78 clearable/>
47 </div> 79 </div>
48 </div> 80 </div>
49 <div v-loading="loadingProject" id="projectbox" style="height: 60vh;overflow: auto;"> 81 <div v-loading="loadingProject" id="projectbox" style="height: 60vh">
50 <el-checkbox-group v-model="projectIds" @change="changeProject"> 82 <el-checkbox-group v-model="projectIds" @change="changeProject">
51 <el-checkbox class="flexBetweenBox" v-for="c in projectList" :value="c.id" :key="c.id"> 83 <el-checkbox class="flexBetweenBox" v-for="c in projectList" :value="c.id" :key="c.id">
52 <div class="flexBetween w100"> 84 <div class="flexBetween w100">
...@@ -166,7 +198,6 @@ const data = reactive({ ...@@ -166,7 +198,6 @@ const data = reactive({
166 signInfoList: [], 198 signInfoList: [],
167 zuTableList: [], 199 zuTableList: [],
168 choosedList: [], 200 choosedList: [],
169 athletesList: [],
170 choosedListBak: [], 201 choosedListBak: [],
171 athletesQuery: { 202 athletesQuery: {
172 name: '' 203 name: ''
...@@ -195,7 +226,7 @@ const data = reactive({ ...@@ -195,7 +226,7 @@ const data = reactive({
195 openTour:false 226 openTour:false
196 }) 227 })
197 const { 228 const {
198 activeTeam, names, tableData, signInfoList, zuTableList, choosedList,choosedListBak,athletesList, 229 activeTeam, names, tableData, signInfoList, zuTableList, choosedList,choosedListBak,
199 extraform, groupId, signType, coachOrLeaderFlag, showResult, noPhotoCanSign, projectIds, choosedchoosed, activeStep, projectList, choosed2List,choosed2Listbak, loadingProject, 230 extraform, groupId, signType, coachOrLeaderFlag, showResult, noPhotoCanSign, projectIds, choosedchoosed, activeStep, projectList, choosed2List,choosed2Listbak, loadingProject,
200 projectQuery, tableType, athletesQuery, zuQuery,openTour,tourCurrent 231 projectQuery, tableType, athletesQuery, zuQuery,openTour,tourCurrent
201 } = toRefs(data) 232 } = toRefs(data)
...@@ -207,18 +238,11 @@ onMounted(() => { ...@@ -207,18 +238,11 @@ onMounted(() => {
207 getSignInfoList() 238 getSignInfoList()
208 getMatch(matchId.value) 239 getMatch(matchId.value)
209 getMySignInfo() 240 getMySignInfo()
210 getAthletesList()
211 // openTour.value = true 241 // openTour.value = true
212 }) 242 })
213 243
214 let chargeFlag 244 let chargeFlag
215 245
216 function getAthletesList() {
217 // athletesList.value
218 match.getGroupPersonList({}, groupId.value).then(res => {
219 athletesList.value = res.rows
220 })
221 }
222 function getMatch(id) { 246 function getMatch(id) {
223 match.getMatchById({ 247 match.getMatchById({
224 id: id 248 id: id
...@@ -356,6 +380,15 @@ function getProjectList() { ...@@ -356,6 +380,15 @@ function getProjectList() {
356 }) 380 })
357 } 381 }
358 382
383 function queryAthletes() {
384 choosedListBak.value = []
385 for (var t of choosedList.value) {
386 if (t.realName.indexOf(athletesQuery.value.name) > -1) {
387 // 筛选
388 choosedListBak.value.push(t)
389 }
390 }
391 }
359 392
360 function queryTeam() { 393 function queryTeam() {
361 choosed2Listbak.value = [] 394 choosed2Listbak.value = []
...@@ -408,6 +441,19 @@ function addCoach() { ...@@ -408,6 +441,19 @@ function addCoach() {
408 proxy.$refs['dialogAddCoachRef'].open(params) 441 proxy.$refs['dialogAddCoachRef'].open(params)
409 } 442 }
410 443
444 function emptyChoosed() {
445 choosedList.value = []
446 choosedListBak.value = []
447 }
448
449 function emptyChangechoosed() {
450 choosedchoosed.value = []
451 choosed2List.value = []
452 choosed2Listbak.value = []
453 projectList.value = []
454 projectIds.value = []
455 }
456
411 function signUp() { 457 function signUp() {
412 if (projectIds.value.length == 0) { 458 if (projectIds.value.length == 0) {
413 return 459 return
...@@ -571,7 +617,7 @@ watch(choosedchoosed, (newVal, oldVal) => { ...@@ -571,7 +617,7 @@ watch(choosedchoosed, (newVal, oldVal) => {
571 617
572 .flexBetweenBox { 618 .flexBetweenBox {
573 width: 100%; 619 width: 100%;
574 height: auto;margin: 0; 620 height: auto;
575 border-bottom: 1px solid #eee; 621 border-bottom: 1px solid #eee;
576 padding: 0 10px; 622 padding: 0 10px;
577 } 623 }
......
...@@ -7,22 +7,22 @@ ...@@ -7,22 +7,22 @@
7 7
8 <el-card :body-style="{'padding-top': '0'}"> 8 <el-card :body-style="{'padding-top': '0'}">
9 <el-row class="mt20" :gutter="20"> 9 <el-row class="mt20" :gutter="20">
10 <el-col :lg="8"> 10 <el-col :lg="12">
11 <div class="panel border"> 11 <div class="panel border">
12 <div class="panel-header "> 12 <div class="panel-header ">
13 <h3 class="panel-title" v-if="language==0">选择参赛运动员清单</h3> 13 <h3 class="panel-title" v-if="language==0">选择参赛运动员清单</h3>
14 <h3 class="panel-title" v-else>Select list of participating athletes</h3> 14 <h3 class="panel-title" v-else>Select list of participating athletes</h3>
15 <a class="fr" @click="emptyChoosed">{{ language == 0 ? '清空' : 'Empty' }}</a> 15 <!-- <a class="fr" @click="emptyChoosed">{{ language == 0 ? '清空' : 'Empty' }}</a>-->
16 </div> 16 </div>
17 <div class="panel-body" style="padding: 10px"> 17 <div class="panel-body" style="padding: 10px">
18 <div style="margin: 0 4px 10px"> 18 <div style="margin: 0 4px 10px">
19 <el-input size="small" v-model="athletesQuery.name" :prefix-icon="Search" 19 <el-select multiple v-model="choosedchoosed" collapse-tags-tooltip filterable
20 @change="queryAthletes" 20 @change="getProjectList">
21 clearable/> 21 <el-option v-for="c in athletesList" :key="c.id" :label="c.realName" :value="c.id" ></el-option>
22 </el-select>
22 </div> 23 </div>
23 <div class="noPicChooseForm" id="chooseArr"> 24 <div class="noPicChooseForm" id="chooseArr">
24 <el-checkbox-group v-model="choosedchoosed" @change="changechoosed"> 25 <el-checkbox-group v-model="choosedchoosed" @change="changechoosed">
25 <el-button id="addRef" plain @click="chooseSportman">+{{ language == 0 ? '选择' : 'add' }}</el-button>
26 <el-checkbox v-for="c in choosedListBak" :value="c.id" border> 26 <el-checkbox v-for="c in choosedListBak" :value="c.id" border>
27 <p class="name">{{ c.realName }} 27 <p class="name">{{ c.realName }}
28 <!-- ({{ c.sexStr }})--> 28 <!-- ({{ c.sexStr }})-->
...@@ -35,39 +35,7 @@ ...@@ -35,39 +35,7 @@
35 </div> 35 </div>
36 </div> 36 </div>
37 </el-col> 37 </el-col>
38 <el-col :lg="8"> 38 <el-col :lg="12">
39 <div class="panel border">
40 <div class="panel-header ">
41 <h3 class="panel-title" v-if="language==0">选择一个参赛组合</h3>
42 <h3 class="panel-title" v-else>Select a Participating team</h3>
43 <a class="fr" @click="emptyChangechoosed">{{ language == 0 ? '清空' : 'Empty' }}</a>
44 </div>
45 <div class="panel-body" style="padding: 10px">
46 <div class="mb20">
47 <el-input size="small" v-model="zuQuery.name" :prefix-icon="Search"
48 @change="queryTeam" clearable/>
49 </div>
50 <div class="chooseForm">
51 <el-checkbox-group v-model="choosedchoosed" @change="changechoosed">
52 <!-- v-show="choosedchoosed.indexOf(c.id) !== -1"-->
53 <el-checkbox v-for="c in choosed2Listbak" :value="c.id" checked>
54 <el-avatar fit="cover" v-if="c.picUrl" :size="60" :src="fillImgUrl(c.picUrl)"/>
55 <el-avatar fit="cover" v-else-if="c.sex == 0" :size="60" src="/img/head1.png"/>
56 <el-avatar fit="cover" v-else-if="c.sex == 1" :size="60" src="/img/head0.png"/>
57 <p class="name">{{ c.realName }}
58 <img v-if="c.sex=='0'" src="@/assets/img/female.png"/>
59 <img v-if="c.sex=='1'" src="@/assets/img/male.png"/>
60 <!-- <el-icon @click.stop="editPerson(c.id)">-->
61 <!-- <Edit/>-->
62 <!-- </el-icon>-->
63 </p>
64 </el-checkbox>
65 </el-checkbox-group>
66 </div>
67 </div>
68 </div>
69 </el-col>
70 <el-col :lg="8">
71 <div class="panel border"> 39 <div class="panel border">
72 <div class="panel-header "> 40 <div class="panel-header ">
73 <h3 class="panel-title" v-if="language==0">可参与报名的项目</h3> 41 <h3 class="panel-title" v-if="language==0">可参与报名的项目</h3>
...@@ -78,7 +46,7 @@ ...@@ -78,7 +46,7 @@
78 clearable/> 46 clearable/>
79 </div> 47 </div>
80 </div> 48 </div>
81 <div v-loading="loadingProject" id="projectbox" style="height: 60vh"> 49 <div v-loading="loadingProject" id="projectbox" style="height: 60vh;overflow: auto;">
82 <el-checkbox-group v-model="projectIds" @change="changeProject"> 50 <el-checkbox-group v-model="projectIds" @change="changeProject">
83 <el-checkbox class="flexBetweenBox" v-for="c in projectList" :value="c.id" :key="c.id"> 51 <el-checkbox class="flexBetweenBox" v-for="c in projectList" :value="c.id" :key="c.id">
84 <div class="flexBetween w100"> 52 <div class="flexBetween w100">
...@@ -198,6 +166,7 @@ const data = reactive({ ...@@ -198,6 +166,7 @@ const data = reactive({
198 signInfoList: [], 166 signInfoList: [],
199 zuTableList: [], 167 zuTableList: [],
200 choosedList: [], 168 choosedList: [],
169 athletesList: [],
201 choosedListBak: [], 170 choosedListBak: [],
202 athletesQuery: { 171 athletesQuery: {
203 name: '' 172 name: ''
...@@ -226,7 +195,7 @@ const data = reactive({ ...@@ -226,7 +195,7 @@ const data = reactive({
226 openTour:false 195 openTour:false
227 }) 196 })
228 const { 197 const {
229 activeTeam, names, tableData, signInfoList, zuTableList, choosedList,choosedListBak, 198 activeTeam, names, tableData, signInfoList, zuTableList, choosedList,choosedListBak,athletesList,
230 extraform, groupId, signType, coachOrLeaderFlag, showResult, noPhotoCanSign, projectIds, choosedchoosed, activeStep, projectList, choosed2List,choosed2Listbak, loadingProject, 199 extraform, groupId, signType, coachOrLeaderFlag, showResult, noPhotoCanSign, projectIds, choosedchoosed, activeStep, projectList, choosed2List,choosed2Listbak, loadingProject,
231 projectQuery, tableType, athletesQuery, zuQuery,openTour,tourCurrent 200 projectQuery, tableType, athletesQuery, zuQuery,openTour,tourCurrent
232 } = toRefs(data) 201 } = toRefs(data)
...@@ -238,11 +207,18 @@ onMounted(() => { ...@@ -238,11 +207,18 @@ onMounted(() => {
238 getSignInfoList() 207 getSignInfoList()
239 getMatch(matchId.value) 208 getMatch(matchId.value)
240 getMySignInfo() 209 getMySignInfo()
210 getAthletesList()
241 // openTour.value = true 211 // openTour.value = true
242 }) 212 })
243 213
244 let chargeFlag 214 let chargeFlag
245 215
216 function getAthletesList() {
217 // athletesList.value
218 match.getGroupPersonList({}, groupId.value).then(res => {
219 athletesList.value = res.rows
220 })
221 }
246 function getMatch(id) { 222 function getMatch(id) {
247 match.getMatchById({ 223 match.getMatchById({
248 id: id 224 id: id
...@@ -380,15 +356,6 @@ function getProjectList() { ...@@ -380,15 +356,6 @@ function getProjectList() {
380 }) 356 })
381 } 357 }
382 358
383 function queryAthletes() {
384 choosedListBak.value = []
385 for (var t of choosedList.value) {
386 if (t.realName.indexOf(athletesQuery.value.name) > -1) {
387 // 筛选
388 choosedListBak.value.push(t)
389 }
390 }
391 }
392 359
393 function queryTeam() { 360 function queryTeam() {
394 choosed2Listbak.value = [] 361 choosed2Listbak.value = []
...@@ -441,19 +408,6 @@ function addCoach() { ...@@ -441,19 +408,6 @@ function addCoach() {
441 proxy.$refs['dialogAddCoachRef'].open(params) 408 proxy.$refs['dialogAddCoachRef'].open(params)
442 } 409 }
443 410
444 function emptyChoosed() {
445 choosedList.value = []
446 choosedListBak.value = []
447 }
448
449 function emptyChangechoosed() {
450 choosedchoosed.value = []
451 choosed2List.value = []
452 choosed2Listbak.value = []
453 projectList.value = []
454 projectIds.value = []
455 }
456
457 function signUp() { 411 function signUp() {
458 if (projectIds.value.length == 0) { 412 if (projectIds.value.length == 0) {
459 return 413 return
...@@ -617,7 +571,7 @@ watch(choosedchoosed, (newVal, oldVal) => { ...@@ -617,7 +571,7 @@ watch(choosedchoosed, (newVal, oldVal) => {
617 571
618 .flexBetweenBox { 572 .flexBetweenBox {
619 width: 100%; 573 width: 100%;
620 height: auto; 574 height: auto;margin: 0;
621 border-bottom: 1px solid #eee; 575 border-bottom: 1px solid #eee;
622 padding: 0 10px; 576 padding: 0 10px;
623 } 577 }
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
4 :close-on-click-modal="false" class="pcloginpop" 4 :close-on-click-modal="false" class="pcloginpop"
5 destroy-on-close 5 destroy-on-close
6 > 6 >
7 <!-- 舞伴-->
7 <el-form ref="dialogRef" :model="form" :rules="language==0?rules:rules_cn" label-width="160px" inline> 8 <el-form ref="dialogRef" :model="form" :rules="language==0?rules:rules_cn" label-width="160px" inline>
8 <el-row :gutter="30"> 9 <el-row :gutter="30">
9 <el-col :lg="24"> 10 <el-col :lg="24">
......
...@@ -32,15 +32,14 @@ ...@@ -32,15 +32,14 @@
32 <el-form-item :label="language==0?'证件号码':'ID NO'" prop="idcCode" required> 32 <el-form-item :label="language==0?'证件号码':'ID NO'" prop="idcCode" required>
33 <el-input v-model="form.idcCode" @blur="checkCode"/> 33 <el-input v-model="form.idcCode" @blur="checkCode"/>
34 </el-form-item> 34 </el-form-item>
35
36 </el-col>
37 <el-col :lg="12">
38 <el-form-item :label="language==0?'性别':'sex'" prop="sex"> 35 <el-form-item :label="language==0?'性别':'sex'" prop="sex">
39 <el-radio-group v-model="form.sex"> 36 <el-radio-group v-model="form.sex">
40 <el-radio value="0">{{ language==0?'女':'female' }}</el-radio> 37 <el-radio value="0">{{ language==0?'女':'female' }}</el-radio>
41 <el-radio value="1">{{ language==0?'男':'male' }}</el-radio> 38 <el-radio value="1">{{ language==0?'男':'male' }}</el-radio>
42 </el-radio-group> 39 </el-radio-group>
43 </el-form-item> 40 </el-form-item>
41 </el-col>
42 <el-col :lg="12">
44 <el-form-item :label="language==0?'出生日期':'birth'" prop="birth" required> 43 <el-form-item :label="language==0?'出生日期':'birth'" prop="birth" required>
45 <el-date-picker 44 <el-date-picker
46 v-model="form.birth" 45 v-model="form.birth"
...@@ -58,22 +57,22 @@ ...@@ -58,22 +57,22 @@
58 </el-form-item> 57 </el-form-item>
59 58
60 59
61 <!-- <el-form-item :label="language==0?'所属国家':'Nationality'" prop="countryId" required>--> 60 <el-form-item :label="language==0?'所属国家':'Nationality'" prop="countryId">
62 <!-- <el-select :disabled="language==0" filterable v-model="form.countryId" style="width: 100%;" @change="changeCountryId">--> 61 <el-select :disabled="language==0" filterable v-model="form.countryId" style="width: 100%;" @change="changeCountryId">
63 <!-- <el-option v-for="item in countryList" :key="item.id" :label="language==0?item.name:item.enName" :value="item.id"/>--> 62 <el-option v-for="item in countryList" :key="item.id" :label="language==0?item.name:item.enName" :value="item.id"/>
64 <!-- </el-select>--> 63 </el-select>
65 <!-- </el-form-item>--> 64 </el-form-item>
66 65
67 <!-- <el-form-item :label="language==0?'详细地址':'Address'" prop="address" required>--> 66 <el-form-item :label="language==0?'详细地址':'Address'" prop="address">
68 <!-- <el-cascader v-if="form.countryId == 240"--> 67 <el-cascader v-if="form.countryId == 240"
69 <!-- v-model="form.regionId"--> 68 v-model="form.regionId"
70 <!-- style="width: 100%;margin-bottom: 15px"--> 69 style="width: 100%;margin-bottom: 15px"
71 <!-- :options="regionsList"--> 70 :options="regionsList"
72 <!-- :props="{ label:'text' }"--> 71 :props="{ label:'text' }"
73 <!-- />--> 72 />
74 <!-- <el-input v-model="form.address" type="textarea" :rows="4"/>--> 73 <el-input v-model="form.address" type="textarea" :rows="4"/>
75 74
76 <!-- </el-form-item>--> 75 </el-form-item>
77 <el-form-item :label="language==0?'WDSF会员号':'WDSF code'" prop="wdsfMin"> 76 <el-form-item :label="language==0?'WDSF会员号':'WDSF code'" prop="wdsfMin">
78 <el-input v-model="form.wdsfMin" type="number"/> 77 <el-input v-model="form.wdsfMin" type="number"/>
79 </el-form-item> 78 </el-form-item>
...@@ -127,13 +126,13 @@ const data = reactive({ ...@@ -127,13 +126,13 @@ const data = reactive({
127 rules: { 126 rules: {
128 xing: [{required: true, message: '必填', trigger: 'blur'}], 127 xing: [{required: true, message: '必填', trigger: 'blur'}],
129 ming: [{required: true, message: '必填', trigger: 'blur'}], 128 ming: [{required: true, message: '必填', trigger: 'blur'}],
130 countryId: [{required: true, message: '必填', trigger: 'change'}], 129 // countryId: [{required: true, message: '必填', trigger: 'change'}],
131 idcType: [{required: true, message: '必填', trigger: 'change'}], 130 idcType: [{required: true, message: '必填', trigger: 'change'}],
132 idcCode: [{required: true, message: '必填', trigger: 'blur'}], 131 idcCode: [{required: true, message: '必填', trigger: 'blur'}],
133 phone: [{required: true, message: '必填', trigger: 'blur'}], 132 phone: [{required: true, message: '必填', trigger: 'blur'}],
134 // regionId: [{ required: true, message: '必填', trigger: 'change' }], 133 // regionId: [{ required: true, message: '必填', trigger: 'change' }],
135 birth: [{required: true, message: '必填', trigger: 'change'}], 134 birth: [{required: true, message: '必填', trigger: 'change'}],
136 address: [{ required: true, message: '必填', trigger: 'blur' }], 135 // address: [{ required: true, message: '必填', trigger: 'blur' }],
137 // picUrl: [{required: true, message: '必填', trigger: 'blur'}], 136 // picUrl: [{required: true, message: '必填', trigger: 'blur'}],
138 sex: [{required: true, message: '必填', trigger: 'change'}], 137 sex: [{required: true, message: '必填', trigger: 'change'}],
139 labelArr: [{required: true, message: '必填', trigger: 'change'}] 138 labelArr: [{required: true, message: '必填', trigger: 'change'}]
...@@ -141,13 +140,13 @@ const data = reactive({ ...@@ -141,13 +140,13 @@ const data = reactive({
141 rules_cn:{ 140 rules_cn:{
142 xing: [{required: true, message: 'required', trigger: 'blur'}], 141 xing: [{required: true, message: 'required', trigger: 'blur'}],
143 ming: [{required: true, message: 'required', trigger: 'blur'}], 142 ming: [{required: true, message: 'required', trigger: 'blur'}],
144 countryId: [{required: true, message: 'required', trigger: 'change'}], 143 // countryId: [{required: true, message: 'required', trigger: 'change'}],
145 idcType: [{required: true, message: 'required', trigger: 'change'}], 144 idcType: [{required: true, message: 'required', trigger: 'change'}],
146 idcCode: [{required: true, message: 'required', trigger: 'blur'}], 145 idcCode: [{required: true, message: 'required', trigger: 'blur'}],
147 phone: [{required: true, message: 'required', trigger: 'blur'}], 146 phone: [{required: true, message: 'required', trigger: 'blur'}],
148 // regionId: [{ required: true, message: 'required', trigger: 'change' }], 147 // regionId: [{ required: true, message: 'required', trigger: 'change' }],
149 birth: [{required: true, message: 'required', trigger: 'change'}], 148 birth: [{required: true, message: 'required', trigger: 'change'}],
150 address: [{ required: true, message: 'required', trigger: 'blur' }], 149 // address: [{ required: true, message: 'required', trigger: 'blur' }],
151 // picUrl: [{required: true, message: 'required', trigger: 'blur'}], 150 // picUrl: [{required: true, message: 'required', trigger: 'blur'}],
152 sex: [{required: true, message: 'required', trigger: 'change'}], 151 sex: [{required: true, message: 'required', trigger: 'change'}],
153 labelArr: [{required: true, message: 'required', trigger: 'change'}] 152 labelArr: [{required: true, message: 'required', trigger: 'change'}]
...@@ -177,13 +176,17 @@ onMounted(() => { ...@@ -177,13 +176,17 @@ onMounted(() => {
177 }) 176 })
178 let editgay = false 177 let editgay = false
179 const open = (params) => { 178 const open = (params) => {
180 console.log(params) 179 console.log(params.label)
181 show.value = true 180 show.value = true
182 title.value = params.title 181 title.value = params.title
183 groupId.value = params.groupId || '0' 182 groupId.value = params.groupId || '0'
184 isMe.value = params.isMe 183 isMe.value = params.isMe
184 if(params.label){
185 form.value.labelArr= [params.label]
186 }
185 if(language.value == 0){ 187 if(language.value == 0){
186 form.value.countryId = 240 188 form.value.countryId = 240
189 form.value.idcType = '0'
187 } 190 }
188 if(isMe.value){ 191 if(isMe.value){
189 //个人 192 //个人
...@@ -245,21 +248,22 @@ function getRegionsList() { ...@@ -245,21 +248,22 @@ function getRegionsList() {
245 } 248 }
246 249
247 function checkCode() { 250 function checkCode() {
248 if (form.value.idcType && form.value.idcCode) { 251
252 if (form.value.idcType=='0' && form.value.idcCode) {
249 giveBirthDay() 253 giveBirthDay()
250 var obj = { 254 var obj = {
251 idcType: form.value.idcType, 255 idcType: form.value.idcType,
252 idcCode: form.value.idcCode 256 idcCode: form.value.idcCode
253 } 257 }
254 match.checkPerson(obj).then(res => { 258 // match.checkPerson(obj).then(res => {
255 if (res.data.idcCode != null) { 259 // if (res.data.idcCode != null) {
256 form.value = res.data 260 // form.value = res.data
257 if (form.value.label != null) { 261 // if (form.value.label != null) {
258 form.value.labelArr = form.value.label.split(',') 262 // form.value.labelArr = form.value.label.split(',')
259 } 263 // }
260 form.value.groupId = groupId.value 264 // form.value.groupId = groupId.value
261 } 265 // }
262 }) 266 // })
263 } 267 }
264 } 268 }
265 269
...@@ -305,7 +309,7 @@ function submitForm() { ...@@ -305,7 +309,7 @@ function submitForm() {
305 if (showRequire.value) { 309 if (showRequire.value) {
306 var pattern = /^1[3456789]\d{9}$/ 310 var pattern = /^1[3456789]\d{9}$/
307 if (!pattern.test(form.value.phone)) { 311 if (!pattern.test(form.value.phone)) {
308 ElMessage.error('请输入正确的手机号') 312 ElMessage.error(language.value == 0 ?'请输入正确的手机号':'Please enter the correct mobile phone number')
309 return 313 return
310 } 314 }
311 } 315 }
...@@ -319,7 +323,7 @@ function submitForm() { ...@@ -319,7 +323,7 @@ function submitForm() {
319 // 团队 323 // 团队
320 form.value.groupId = groupId.value 324 form.value.groupId = groupId.value
321 match.savePersonForMyGroup(form.value).then(res => { 325 match.savePersonForMyGroup(form.value).then(res => {
322 ElMessage.success('保存成功') 326 ElMessage.success(language.value == 0 ?'保存成功':'Save successful')
323 show.value = false 327 show.value = false
324 emit('submitForm') 328 emit('submitForm')
325 }) 329 })
...@@ -327,20 +331,20 @@ function submitForm() { ...@@ -327,20 +331,20 @@ function submitForm() {
327 if (editgay) { 331 if (editgay) {
328 // id不是0 332 // id不是0
329 match.editPersonInfo(form.value).then(res => { 333 match.editPersonInfo(form.value).then(res => {
330 ElMessage.success('保存成功') 334 ElMessage.success(language.value == 0 ?'保存成功':'Save successful')
331 show.value = false 335 show.value = false
332 emit('submitForm') 336 emit('submitForm')
333 }) 337 })
334 } else { 338 } else {
335 if(isMe.value){ 339 if(isMe.value){
336 match.saveMyBaseInfo(form.value).then(res => { 340 match.saveMyBaseInfo(form.value).then(res => {
337 ElMessage.success('保存成功') 341 ElMessage.success(language.value == 0 ?'保存成功':'Save successful')
338 show.value = false 342 show.value = false
339 emit('submitForm') 343 emit('submitForm')
340 }) 344 })
341 } else { 345 } else {
342 match.savePersonForMyPerson(form.value).then(res => { 346 match.savePersonForMyPerson(form.value).then(res => {
343 ElMessage.success('保存成功') 347 ElMessage.success(language.value == 0 ?'保存成功':'Save successful')
344 show.value = false 348 show.value = false
345 emit('submitForm') 349 emit('submitForm')
346 }) 350 })
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
4 :close-on-click-modal="false" class="pcloginpop" @close="cancel" 4 :close-on-click-modal="false" class="pcloginpop" @close="cancel"
5 destroy-on-close 5 destroy-on-close
6 > 6 >
7 <!-- 随行人员-->
7 <el-form ref="dialogRef" :model="form" :label-width="language==0?120:180" inline> 8 <el-form ref="dialogRef" :model="form" :label-width="language==0?120:180" inline>
8 <el-form-item :label="language==0?'WDSF卡号':'WDSF ID'" v-if="form.id"> 9 <el-form-item :label="language==0?'WDSF卡号':'WDSF ID'" v-if="form.id">
9 {{ form.wdsfMin }} 10 {{ form.wdsfMin }}
......
...@@ -34,7 +34,6 @@ ...@@ -34,7 +34,6 @@
34 /> 34 />
35 <!-- 文件 2--> 35 <!-- 文件 2-->
36 <FileUpload v-if="s.type == '2'" v-model="s.fixWxFile" :action="uploadUrl" /> 36 <FileUpload v-if="s.type == '2'" v-model="s.fixWxFile" :action="uploadUrl" />
37
38 </el-form-item> 37 </el-form-item>
39 </el-form> 38 </el-form>
40 </el-col> 39 </el-col>
......
...@@ -16,25 +16,25 @@ ...@@ -16,25 +16,25 @@
16 {{ JSON.parse(form.signKnowUrl)[0]?.name }} 16 {{ JSON.parse(form.signKnowUrl)[0]?.name }}
17 </el-link> 17 </el-link>
18 </div> 18 </div>
19 <div class="indexTitle"><h3 class="leftboderTT">免责声明</h3></div> 19 <!-- <div class="indexTitle"><h3 class="leftboderTT">免责声明</h3></div>-->
20 <div class="xzbox"> 20 <!-- <div class="xzbox">-->
21 <el-link v-if="form.disclaimerUrl" type="primary" :href="fillImgUrl(JSON.parse(form.disclaimerUrl)[0]?.url)" target="_blank"> 21 <!-- <el-link v-if="form.disclaimerUrl" type="primary" :href="fillImgUrl(JSON.parse(form.disclaimerUrl)[0]?.url)" target="_blank">-->
22 <el-icon :size="20"> 22 <!-- <el-icon :size="20">-->
23 <Download /> 23 <!-- <Download />-->
24 </el-icon> 24 <!-- </el-icon>-->
25 {{ JSON.parse(form.disclaimerUrl)[0]?.name }} 25 <!-- {{ JSON.parse(form.disclaimerUrl)[0]?.name }}-->
26 </el-link> 26 <!-- </el-link>-->
27 </div> 27 <!-- </div>-->
28 <div class="indexTitle"><h3 class="leftboderTT">赛事规程</h3></div> 28 <!-- <div class="indexTitle"><h3 class="leftboderTT">赛事规程</h3></div>-->
29 <div class="xzbox"> 29 <!-- <div class="xzbox">-->
30 30
31 <el-link v-if="form.ruleUrl" type="primary" :href="fillImgUrl(JSON.parse(form.ruleUrl)[0]?.url)" target="_blank"> 31 <!-- <el-link v-if="form.ruleUrl" type="primary" :href="fillImgUrl(JSON.parse(form.ruleUrl)[0]?.url)" target="_blank">-->
32 <el-icon :size="20"> 32 <!-- <el-icon :size="20">-->
33 <Download /> 33 <!-- <Download />-->
34 </el-icon> 34 <!-- </el-icon>-->
35 {{ JSON.parse(form.ruleUrl)[0]?.name }} 35 <!-- {{ JSON.parse(form.ruleUrl)[0]?.name }}-->
36 </el-link> 36 <!-- </el-link>-->
37 </div> 37 <!-- </div>-->
38 <div class="indexTitle" v-if="form.type==1&&form.cptProjectList?.length > 0"><h3 class="leftboderTT">竞赛项目</h3></div> 38 <div class="indexTitle" v-if="form.type==1&&form.cptProjectList?.length > 0"><h3 class="leftboderTT">竞赛项目</h3></div>
39 <div v-if="form.type==1&&form.cptProjectList?.length > 0"> 39 <div v-if="form.type==1&&form.cptProjectList?.length > 0">
40 40
...@@ -58,28 +58,28 @@ ...@@ -58,28 +58,28 @@
58 {{ JSON.parse(form.signKnowUrl)[0]?.name }} 58 {{ JSON.parse(form.signKnowUrl)[0]?.name }}
59 </el-link> 59 </el-link>
60 </div> 60 </div>
61 <div class="indexTitle"><h3 class="leftboderTT">Disclaimers</h3></div> 61 <!-- <div class="indexTitle"><h3 class="leftboderTT">Disclaimers</h3></div>-->
62 <div class="xzbox"> 62 <!-- <div class="xzbox">-->
63 <el-link v-if="form.disclaimerUrl" type="primary" :href="fillImgUrl(JSON.parse(form.disclaimerUrl)[0]?.url)" target="_blank"> 63 <!-- <el-link v-if="form.disclaimerUrl" type="primary" :href="fillImgUrl(JSON.parse(form.disclaimerUrl)[0]?.url)" target="_blank">-->
64 <el-icon :size="20"> 64 <!-- <el-icon :size="20">-->
65 <Download /> 65 <!-- <Download />-->
66 </el-icon> 66 <!-- </el-icon>-->
67 {{ JSON.parse(form.disclaimerUrl)[0]?.name }} 67 <!-- {{ JSON.parse(form.disclaimerUrl)[0]?.name }}-->
68 </el-link> 68 <!-- </el-link>-->
69 </div> 69 <!-- </div>-->
70 70
71 <div class="indexTitle"><h3 class="leftboderTT">Competition Regulations</h3></div> 71 <!-- <div class="indexTitle"><h3 class="leftboderTT">Competition Regulations</h3></div>-->
72 <div class="xzbox"> 72 <!-- <div class="xzbox">-->
73 <div v-html="form.ruleContent"> 73 <!-- <div v-html="form.ruleContent">-->
74 74
75 </div> 75 <!-- </div>-->
76 <el-link v-if="form.ruleUrl" type="primary" :href="fillImgUrl(JSON.parse(form.ruleUrl)[0]?.url)" target="_blank"> 76 <!-- <el-link v-if="form.ruleUrl" type="primary" :href="fillImgUrl(JSON.parse(form.ruleUrl)[0]?.url)" target="_blank">-->
77 <el-icon :size="20"> 77 <!-- <el-icon :size="20">-->
78 <Download /> 78 <!-- <Download />-->
79 </el-icon> 79 <!-- </el-icon>-->
80 {{ JSON.parse(form.ruleUrl)[0]?.name }} 80 <!-- {{ JSON.parse(form.ruleUrl)[0]?.name }}-->
81 </el-link> 81 <!-- </el-link>-->
82 </div> 82 <!-- </div>-->
83 <div class="indexTitle" v-if="form.type==1 && form.cptProjectList?.length > 0"><h3 class="leftboderTT">Event settings</h3></div> 83 <div class="indexTitle" v-if="form.type==1 && form.cptProjectList?.length > 0"><h3 class="leftboderTT">Event settings</h3></div>
84 <div v-if="form.type==1 && form.cptProjectList?.length > 0"> 84 <div v-if="form.type==1 && form.cptProjectList?.length > 0">
85 <match-info-project-list :list="form.cptProjectList" /> 85 <match-info-project-list :list="form.cptProjectList" />
......
1 <template> 1 <template>
2 <el-row :gutter="14" v-if="language==0"> 2 <div style="filter: opacity(1)">
3 <el-col :lg="4" :md="8" :sm="12" :xs="12"> 3 <el-row :gutter="14" v-if="language==0">
4 <div class="funcBtn" @click="goBooking(0)"> 4 <el-col :lg="4" :md="8" :sm="12" :xs="12">
5 <img src="@/assets/dance/btn04.png"/> 5 <div class="funcBtn" @click="goBooking(0)">
6 <h4>票务预订</h4> 6 <img src="@/assets/dance/btn04.png"/>
7 </div> 7 <h4>票务预订</h4>
8 </el-col> 8 </div>
9 <el-col :lg="4" :md="8" :sm="12" :xs="12"> 9 </el-col>
10 <div class="funcBtn" @click="goBooking(1)"> 10 <el-col :lg="4" :md="8" :sm="12" :xs="12">
11 <img src="@/assets/dance/btn01.png"/> 11 <div class="funcBtn" @click="goBooking(1)">
12 <h4>酒店预约</h4> 12 <img src="@/assets/dance/btn01.png"/>
13 </div> 13 <h4>酒店预约</h4>
14 </el-col> 14 </div>
15 <el-col :lg="4" :md="8" :sm="12" :xs="12"> 15 </el-col>
16 <div class="funcBtn" @click="goBooking(2)"> 16 <el-col :lg="4" :md="8" :sm="12" :xs="12">
17 <img src="@/assets/dance/btn02.png"/> 17 <div class="funcBtn" @click="goBooking(2)">
18 <h4>车辆预约</h4> 18 <img src="@/assets/dance/btn02.png"/>
19 </div> 19 <h4>车辆预约</h4>
20 </el-col> 20 </div>
21 <el-col :lg="4" :md="8" :sm="12" :xs="12"> 21 </el-col>
22 <div class="funcBtn" @click="goBooking(3)"> 22 <el-col :lg="4" :md="8" :sm="12" :xs="12">
23 <img src="@/assets/dance/btn03.png"/> 23 <div class="funcBtn" @click="goBooking(3)">
24 <h4>餐饮预订</h4> 24 <img src="@/assets/dance/btn03.png"/>
25 </div> 25 <h4>餐饮预订</h4>
26 </el-col> 26 </div>
27 <el-col :lg="4" :md="8" :sm="12" :xs="12"> 27 </el-col>
28 <div class="funcBtn" @click="goBooking(4)"> 28 <el-col :lg="4" :md="8" :sm="12" :xs="12">
29 <img src="@/assets/dance/btn05.png"/> 29 <div class="funcBtn" @click="goBooking(4)">
30 <h4>化妆预约</h4> 30 <img src="@/assets/dance/btn05.png"/>
31 </div> 31 <h4>化妆预约</h4>
32 </el-col> 32 </div>
33 <el-col :lg="4" :md="8" :sm="12" :xs="12"> 33 </el-col>
34 <div class="funcBtn" @click="goBooking(5)"> 34 <el-col :lg="4" :md="8" :sm="12" :xs="12">
35 <img src="@/assets/dance/btn06.png"/> 35 <div class="funcBtn" @click="goBooking(5)">
36 <h4>拍照预约</h4> 36 <img src="@/assets/dance/btn06.png"/>
37 </div> 37 <h4>拍照预约</h4>
38 </el-col> 38 </div>
39 </el-row> 39 </el-col>
40 <el-row :gutter="14" v-else> 40 </el-row>
41 <el-col :lg="4" :md="8" :sm="12" :xs="12"> 41 <el-row :gutter="14" v-else>
42 <div class="funcBtn" @click="building"> 42 <el-col :lg="4" :md="8" :sm="12" :xs="12">
43 <img src="@/assets/dance/btn04.png"/> 43 <div class="funcBtn" @click="building">
44 <h4>Ticket Booking</h4> 44 <img src="@/assets/dance/btn04.png"/>
45 </div> 45 <h4>Ticket Booking</h4>
46 </el-col> 46 </div>
47 <el-col :lg="4" :md="8" :sm="12" :xs="12"> 47 </el-col>
48 <div class="funcBtn" @click="building"> 48 <el-col :lg="4" :md="8" :sm="12" :xs="12">
49 <img src="@/assets/dance/btn01.png"/> 49 <div class="funcBtn" @click="building">
50 <h4>Hotel Reservation</h4> 50 <img src="@/assets/dance/btn01.png"/>
51 </div> 51 <h4>Hotel Reservation</h4>
52 </el-col> 52 </div>
53 <el-col :lg="4" :md="8" :sm="12" :xs="12"> 53 </el-col>
54 <div class="funcBtn" @click="building"> 54 <el-col :lg="4" :md="8" :sm="12" :xs="12">
55 <img src="@/assets/dance/btn02.png"/> 55 <div class="funcBtn" @click="building">
56 <h4>Vehicle Reservation</h4> 56 <img src="@/assets/dance/btn02.png"/>
57 </div> 57 <h4>Vehicle Reservation</h4>
58 </el-col> 58 </div>
59 <el-col :lg="4" :md="8" :sm="12" :xs="12"> 59 </el-col>
60 <div class="funcBtn" @click="building"> 60 <el-col :lg="4" :md="8" :sm="12" :xs="12">
61 <img src="@/assets/dance/btn03.png"/> 61 <div class="funcBtn" @click="building">
62 <h4>Dining Reservation</h4> 62 <img src="@/assets/dance/btn03.png"/>
63 </div> 63 <h4>Dining Reservation</h4>
64 </el-col> 64 </div>
65 <el-col :lg="4" :md="8" :sm="12" :xs="12"> 65 </el-col>
66 <div class="funcBtn" @click="building"> 66 <el-col :lg="4" :md="8" :sm="12" :xs="12">
67 <img src="@/assets/dance/btn05.png"/> 67 <div class="funcBtn" @click="building">
68 <h4>Makeup Appointment</h4> 68 <img src="@/assets/dance/btn05.png"/>
69 </div> 69 <h4>Makeup Appointment</h4>
70 </el-col> 70 </div>
71 <el-col :lg="4" :md="8" :sm="12" :xs="12"> 71 </el-col>
72 <div class="funcBtn" @click="building"> 72 <el-col :lg="4" :md="8" :sm="12" :xs="12">
73 <img src="@/assets/dance/btn06.png"/> 73 <div class="funcBtn" @click="building">
74 <h4>Photography Appointment</h4> 74 <img src="@/assets/dance/btn06.png"/>
75 </div> 75 <h4>Photography Appointment</h4>
76 </el-col> 76 </div>
77 </el-row> 77 </el-col>
78 </el-row>
79 </div>
78 </template> 80 </template>
79 81
80 <script setup> 82 <script setup>
......
...@@ -58,7 +58,7 @@ ...@@ -58,7 +58,7 @@
58 {{ scope.row.signInfo[0].extraPersonInfoMapList[index].value.name }} 58 {{ scope.row.signInfo[0].extraPersonInfoMapList[index].value.name }}
59 </el-link> 59 </el-link>
60 <img v-else-if="scope.row.signInfo[0].extraPersonInfoMapList[index]?.type=='3'" style="width: 50px;" 60 <img v-else-if="scope.row.signInfo[0].extraPersonInfoMapList[index]?.type=='3'" style="width: 50px;"
61 :src="scope.row.signInfo[0].extraPersonInfoMapList[index].value.url||scope.row.signInfo[0].extraPersonInfoMapList[index].value"> 61 :src="fillImgUrl(scope.row.signInfo[0].extraPersonInfoMapList[index].value.url||scope.row.signInfo[0].extraPersonInfoMapList[index].value)">
62 <span v-else>{{ scope.row.signInfo[0].extraPersonInfoMapList[index]?.value }}</span> 62 <span v-else>{{ scope.row.signInfo[0].extraPersonInfoMapList[index]?.value }}</span>
63 </template> 63 </template>
64 </el-table-column> 64 </el-table-column>
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
3 <div class="matchItem" v-for="n in list" :key="n.id" @click="goDetail(n.id)"> 3 <div class="matchItem" v-for="n in list" :key="n.id" @click="goDetail(n.id)">
4 <el-row :gutter="15"> 4 <el-row :gutter="15">
5 <el-col :lg="7" :md="24" :xl="6"> 5 <el-col :lg="7" :md="24" :xl="6">
6 <img class="mauto w100" :src="fillImgUrl(n.coverUrl)"> 6 <img class="mauto w100 coverLimitHeight" :src="fillImgUrl(n.coverUrl)">
7 </el-col> 7 </el-col>
8 <el-col :lg="9" :md="12" :xl="12"> 8 <el-col :lg="9" :md="12" :xl="12">
9 <div class="info"> 9 <div class="info">
...@@ -12,9 +12,9 @@ ...@@ -12,9 +12,9 @@
12 <p class="ppl"><label>{{ language==0?'地&ensp;&ensp;&ensp;&ensp;点':'Location' }}</label>{{ n.address }}</p> 12 <p class="ppl"><label>{{ language==0?'地&ensp;&ensp;&ensp;&ensp;点':'Location' }}</label>{{ n.address }}</p>
13 <p class="ppl"><label>{{ language==0?'报名截止':'Registration Deadline' }}</label>{{ n.signEndTime?.slice(0,10) }}</p> 13 <p class="ppl"><label>{{ language==0?'报名截止':'Registration Deadline' }}</label>{{ n.signEndTime?.slice(0,10) }}</p>
14 14
15 <p class="ppl"><label>{{ language==0?'联系人员':'Contact Person' }}</label>{{ n.contactPerson }}</p> 15 <p class="ppl" v-if="n.contactPerson"><label>{{ language==0?'联系人员':'Contact Person' }}</label>{{ n.contactPerson }}</p>
16 <p class="ppl"><label>{{ language==0?'联系电话':'Phone' }}</label>{{ n.contactTelno }}</p> 16 <p class="ppl"><label>{{ language==0?'联系电话':'Phone' }}</label>{{ n.contactTelno }}</p>
17 <p class="ppl"><label>{{ language==0?'邮&ensp;&ensp;&ensp;&ensp;箱':'E-mail' }}</label>{{ n.contactEmail }}</p> 17 <p class="ppl" v-if="n.contactEmail"><label>{{ language==0?'邮&ensp;&ensp;&ensp;&ensp;箱':'E-mail' }}</label>{{ n.contactEmail }}</p>
18 18
19 </div> 19 </div>
20 </el-col> 20 </el-col>
...@@ -180,4 +180,5 @@ function goDetail(id) { ...@@ -180,4 +180,5 @@ function goDetail(id) {
180 @media (max-width: 1450px) { 180 @media (max-width: 1450px) {
181 .block{width: 44px;font-size: 20px;} 181 .block{width: 44px;font-size: 20px;}
182 } 182 }
183 .coverLimitHeight{max-height: 165px;object-fit: cover;}
183 </style> 184 </style>
......
...@@ -58,7 +58,7 @@ ...@@ -58,7 +58,7 @@
58 <div class="matchItem" v-for="n in list" :key="n.id" @click="goDetail(n.id)"> 58 <div class="matchItem" v-for="n in list" :key="n.id" @click="goDetail(n.id)">
59 <el-row :gutter="15"> 59 <el-row :gutter="15">
60 <el-col :lg="7" :md="24" :xl="6"> 60 <el-col :lg="7" :md="24" :xl="6">
61 <img class="mauto w100" :src="fillImgUrl(n.coverUrl)"> 61 <img class="mauto w100 coverLimitHeight" :src="fillImgUrl(n.coverUrl)">
62 </el-col> 62 </el-col>
63 <el-col :lg="9" :md="12" :xl="12"> 63 <el-col :lg="9" :md="12" :xl="12">
64 <div class="info"> 64 <div class="info">
...@@ -307,12 +307,12 @@ function goDetail(id) { ...@@ -307,12 +307,12 @@ function goDetail(id) {
307 307
308 li { 308 li {
309 margin: 0 0 10px; 309 margin: 0 0 10px;
310 display: flex;padding-bottom: 15px; 310 display: flex;
311 align-items: center; 311 align-items: flex-start;
312 & > label { 312 & > label {padding: 8px 0;
313 width:5em;text-align: right;font-weight: normal; 313 width:5em;text-align: right;font-weight: normal;
314 } 314 }
315 .el-radio-button{width: 90px;text-align: center;} 315 .el-radio-button{min-width: 90px;text-align: center;}
316 &:last-child{border-bottom: none;margin: 0} 316 &:last-child{border-bottom: none;margin: 0}
317 } 317 }
318 } 318 }
...@@ -333,4 +333,5 @@ function goDetail(id) { ...@@ -333,4 +333,5 @@ function goDetail(id) {
333 .el-button--primary:hover { 333 .el-button--primary:hover {
334 background: var(--el-color-primary) 334 background: var(--el-color-primary)
335 } 335 }
336 .coverLimitHeight{max-height: 165px;object-fit: cover;}
336 </style> 337 </style>
......
...@@ -85,6 +85,14 @@ function sendsmsMsg() { ...@@ -85,6 +85,14 @@ function sendsmsMsg() {
85 } 85 }
86 return 86 return
87 } 87 }
88 if (form.value.account.indexOf('@') == -1) {
89 if (language.value == 0) {
90 ElMessage.error('请填写正确的邮箱')
91 } else {
92 ElMessage.error('Please fill in the correct email')
93 }
94 return
95 }
88 if (counting.value) { 96 if (counting.value) {
89 return 97 return
90 } else { 98 } else {
...@@ -147,6 +155,7 @@ const next = () => { ...@@ -147,6 +155,7 @@ const next = () => {
147 </script> 155 </script>
148 156
149 <style scoped lang="scss"> 157 <style scoped lang="scss">
158 .d-form{min-height: 50vh}
150 .el-input-group__append button.el-button, .el-input-group__append button.el-button:hover { 159 .el-input-group__append button.el-button, .el-input-group__append button.el-button:hover {
151 color: var(--el-color-primary); 160 color: var(--el-color-primary);
152 background: #efefff; 161 background: #efefff;
......
...@@ -45,133 +45,38 @@ ...@@ -45,133 +45,38 @@
45 </el-row> 45 </el-row>
46 </el-card> 46 </el-card>
47 47
48 <el-card class="mt20 mb20"> 48 <el-card class="mt20 mb20" v-for="(n,index) in cjList">
49 <div class="leftboderTT">2023.07.22 赛事成绩</div> 49 <div class="leftboderTT">{{ n.title }}</div>
50 <h3 class="text-center">08:00-09:30 拉丁舞第一组比赛结果</h3> 50 <div v-for="(m,jndex) in n.list">
51 <div class="tablebody"> 51 <h3 class="text-center">{{ m.title }}</h3>
52 <table class="table table-striped"> 52 <div class="tablebody">
53 <thead> 53 <table class="table table-striped">
54 <tr class="bg-lineg"> 54 <thead>
55 <td>编号</td> 55 <tr class="bg-lineg">
56 <td>姓名</td> 56 <td>{{ language==0?'编号':'RANK' }}</td>
57 <td>国家</td> 57 <td>{{ language==0?'团体名称':'COUPLE' }}</td>
58 <td>分值</td> 58 <td>{{ language==0?'国家':'COUNTRY' }}</td>
59 <td>排名</td> 59 <td class="text-center">START #</td>
60 <td>结果</td> 60 <td class="text-center" v-if="index>0">BASE</td>
61 </tr> 61 <td class="text-center" v-if="index>0">POINTS</td>
62 </thead> 62 </tr>
63 <tbody> 63 </thead>
64 <tr> 64 <tbody>
65 <td>3456</td> 65 <tr v-for="(l,kndex) in m.rows">
66 <td>王文文</td> 66 <td>{{ l.RANK }}</td>
67 <td>中国</td> 67 <td>{{ l.COUPLE}}</td>
68 <td class="text-primary">198.00</td> 68 <td>{{ l.COUNTRY }}</td>
69 <td>1</td> 69 <td class="text-primary text-center">{{ l.START }}</td>
70 <td class="text-primary">晋级</td> 70 <td class="text-center" v-if="index>0">{{l.BASE}}</td>
71 </tr> 71 <td v-if="index>0" class="text-primary text-center">{{ l.POINTS }}</td>
72 <tr> 72 </tr>
73 <td>4567</td> 73 </tbody>
74 <td>张梓涵</td> 74 </table>
75 <td>中国</td> 75 </div>
76 <td class="text-primary">191.00</td>
77 <td>2</td>
78 <td class="text-primary">晋级</td>
79 </tr>
80 <tr>
81 <td>3456</td>
82 <td>Sdehj Lijukl</td>
83 <td>乌兹别克斯坦</td>
84 <td class="text-primary">190.00</td>
85 <td>3</td>
86 <td class="text-primary">晋级</td>
87 </tr>
88 <tr>
89 <td>1255</td>
90 <td>许昌度</td>
91 <td>中国香港</td>
92 <td class="text-primary">188.00</td>
93 <td>4</td>
94 <td class="text-primary">晋级</td>
95 </tr>
96 <tr>
97 <td>1299</td>
98 <td>Alice Luyr</td>
99 <td>泰国</td>
100 <td class="text-primary">180.00</td>
101 <td>5</td>
102 <td class="text-primary">晋级</td>
103 </tr>
104 <tr>
105 <td>1652</td>
106 <td>吴遇安</td>
107 <td>中国香港</td>
108 <td class="text-primary">188.00</td>
109 <td>6</td>
110 <td>淘汰</td>
111 </tr>
112
113 </tbody>
114 </table>
115 </div> 76 </div>
116 <br><br>
117 <div class="leftboderTT">2023.07.22 赛事成绩</div>
118
119 <h3 class="text-center">08:00-09:30 拉丁舞第一组比赛结果</h3>
120 <div class="tablebody">
121 <table class="table table-striped">
122 <tr class="bg-lineg">
123 <td>编号</td>
124 <td>姓名</td>
125 <td>国家</td>
126 <td>分值</td>
127 <td>排名</td>
128 <td>结果</td>
129 </tr>
130 <tr>
131 <td>3456</td>
132 <td>陈莎莎</td>
133 <td>中国</td>
134 <td class="text-primary">198.00</td>
135 <td>1</td>
136 <td class="text-primary">晋级</td>
137 </tr>
138 <tr>
139 <td>3001</td>
140 <td>赵倩</td>
141 <td>中国</td>
142 <td class="text-primary">196.00</td>
143 <td>2</td>
144 <td class="text-primary">晋级</td>
145 </tr>
146 <tr>
147 <td>1005</td>
148 <td>张楚楚</td>
149 <td>中国</td>
150 <td class="text-primary">190.00</td>
151 <td>3</td>
152 <td class="text-primary">晋级</td>
153 </tr>
154 <tr>
155 <td>1544</td>
156 <td>刘意晚</td>
157 <td>中国</td>
158 <td class="text-primary">186.90</td>
159 <td>4</td>
160 <td class="text-primary">晋级</td>
161 </tr>
162 <tr>
163 <td>1293</td>
164 <td>李涵</td>
165 <td>中国</td>
166 <td class="text-primary">186.90</td>
167 <td>5</td>
168 <td>淘汰</td>
169 </tr>
170 77
171
172 </table>
173 </div>
174 </el-card> 78 </el-card>
79 <br><br>
175 </div> 80 </div>
176 </div> 81 </div>
177 </template> 82 </template>
...@@ -179,9 +84,12 @@ ...@@ -179,9 +84,12 @@
179 <script setup> 84 <script setup>
180 import { onMounted, ref, watch } from 'vue' 85 import { onMounted, ref, watch } from 'vue'
181 import { getPlanYears, getYearZtxPlanList } from '@/apiPc/train' 86 import { getPlanYears, getYearZtxPlanList } from '@/apiPc/train'
87 import {cjList} from '@/assets/js/data'
182 import { ArrowRight } from '@element-plus/icons-vue' 88 import { ArrowRight } from '@element-plus/icons-vue'
183 import { dayjs } from 'element-plus' 89 import { dayjs } from 'element-plus'
184 import { szToHz } from '@/utils/ruoyi' 90 import { szToHz } from '@/utils/ruoyi'
91 import {useStorage} from "@vueuse/core/index";
92 const language = useStorage('language', 0)
185 93
186 const years = ref([]) 94 const years = ref([])
187 const currYear = ref(null) 95 const currYear = ref(null)
......
1 <template>
2 <div>
3 <div class="box">
4
5 <div class="mt20" />
6 <el-card>
7 <el-row :gutter="20">
8 <el-col :sm="24" :lg="12">
9 <!--赛事日历-->
10
11 <el-calendar v-model="calendarValue">
12 <template #date-cell="data">
13 <div v-if="data.data.day.slice(8,10)==22" class="primaryDate date">22</div>
14 <div v-else class="date">
15 {{ data.data.day.slice(8,10) }}
16 </div>
17
18 </template>
19 </el-calendar>
20
21 </el-col>
22 <el-col :sm="24" :lg="12">
23 <div class="calendarList">
24 <ul>
25 <li>
26 <label>08:00~10:30</label> Wuxi Open
27 </li>
28 <li>
29 <label>11:00</label> the WDSF ASIAN DANCESPORT FESTIVAL .WUXI 2024 group A
30 </li>
31 <li>
32 <label>12:00</label> the WDSF ASIAN DANCESPORT FESTIVAL .WUXI 2024 group B
33 </li>
34 <li>
35 <label>13:00</label> the WDSF ASIAN DANCESPORT FESTIVAL .WUXI 2024 group C
36 </li>
37 <li>
38 <label>15:00</label> the WDSF ASIAN DANCESPORT FESTIVAL .WUXI 2024 group D
39 </li>
40 </ul>
41
42 </div>
43
44 </el-col>
45 </el-row>
46 </el-card>
47
48 <el-card class="mt20 mb20">
49 <div class="leftboderTT">2023.07.22 Result</div>
50 <h3 class="text-center">08:00-09:30 The results of the group A of Latin dance competitions</h3>
51 <div class="tablebody">
52 <table class="table table-striped">
53 <thead>
54 <tr class="bg-lineg">
55 <td>Number</td>
56 <td>Name</td>
57 <td>Country</td>
58 <td>Score</td>
59 <td>Ranking</td>
60 <td>Final result</td>
61 </tr>
62 </thead>
63 <tbody>
64 <tr>
65 <td>3456</td>
66 <td>Wang wenwen</td>
67 <td>China</td>
68 <td class="text-primary">198.00</td>
69 <td>1</td>
70 <td class="text-primary">advancement</td>
71 </tr>
72 <tr>
73 <td>4567</td>
74 <td>Zhang</td>
75 <td>China</td>
76 <td class="text-primary">191.00</td>
77 <td>2</td>
78 <td class="text-primary">advancement</td>
79 </tr>
80 <tr>
81 <td>3456</td>
82 <td>Sdehj Lijukl</td>
83 <td>Uzbekistan</td>
84 <td class="text-primary">190.00</td>
85 <td>3</td>
86 <td class="text-primary">advancement</td>
87 </tr>
88 <tr>
89 <td>1255</td>
90 <td>XuDu</td>
91 <td>Hong Kong, China</td>
92 <td class="text-primary">188.00</td>
93 <td>4</td>
94 <td class="text-primary">advancement</td>
95 </tr>
96 <tr>
97 <td>1299</td>
98 <td>Alice Luyr</td>
99 <td>Thailand</td>
100 <td class="text-primary">180.00</td>
101 <td>5</td>
102 <td class="text-primary">advancement</td>
103 </tr>
104 <tr>
105 <td>1652</td>
106 <td>Wu Yuan</td>
107 <td>Hong Kong, China</td>
108 <td class="text-primary">188.00</td>
109 <td>6</td>
110 <td>Out</td>
111 </tr>
112
113 </tbody>
114 </table>
115 </div>
116 <br><br>
117 <div class="leftboderTT">2023.07.22 Result</div>
118
119 <h3 class="text-center">08:00-09:30 The results of the group A of Latin dance competitions</h3>
120 <div class="tablebody">
121 <table class="table table-striped">
122 <tr class="bg-lineg">
123 <td>Number</td>
124 <td>Name</td>
125 <td>Country</td>
126 <td>Score</td>
127 <td>Ranking</td>
128 <td>Final result</td>
129 </tr>
130 <tr>
131 <td>3456</td>
132 <td>Chen Sha</td>
133 <td>China</td>
134 <td class="text-primary">198.00</td>
135 <td>1</td>
136 <td class="text-primary">advancement</td>
137 </tr>
138 <tr>
139 <td>3001</td>
140 <td>ZhaoQian</td>
141 <td>China</td>
142 <td class="text-primary">196.00</td>
143 <td>2</td>
144 <td class="text-primary">advancement</td>
145 </tr>
146 <tr>
147 <td>1005</td>
148 <td>ZhangChuChu</td>
149 <td>China</td>
150 <td class="text-primary">190.00</td>
151 <td>3</td>
152 <td class="text-primary">advancement</td>
153 </tr>
154 <tr>
155 <td>1544</td>
156 <td>LiuYiwan</td>
157 <td>China</td>
158 <td class="text-primary">186.90</td>
159 <td>4</td>
160 <td class="text-primary">advancement</td>
161 </tr>
162 <tr>
163 <td>1293</td>
164 <td>LiHan</td>
165 <td>China</td>
166 <td class="text-primary">186.90</td>
167 <td>5</td>
168 <td>Out</td>
169 </tr>
170
171
172 </table>
173 </div>
174 </el-card>
175 </div>
176 </div>
177 </template>
178
179 <script setup>
180 import { onMounted, ref, watch } from 'vue'
181 import { getPlanYears, getYearZtxPlanList } from '@/apiPc/train'
182 import { ArrowRight } from '@element-plus/icons-vue'
183 import { dayjs } from 'element-plus'
184 import { szToHz } from '@/utils/ruoyi'
185
186 const years = ref([])
187 const currYear = ref(null)
188 const ztxPlanList = ref([])
189 const planList = ref([])
190 const loading = ref(false)
191 const calendarValue = ref('2024-07-22')
192
193
194 // onMounted(() => {
195 // currYear.value = dayjs().year()
196 // getPlanYears().then(res => {
197 // years.value = res.data
198 // })
199 // })
200 //
201 // watch(currYear, (val) => {
202 // if (val) {
203 // getPlanList()
204 // }
205 // })
206
207 function getPlanList() {
208 loading.value = true
209
210 Promise.all([
211 getYearZtxPlanList({
212 year: currYear.value,
213 type: 1// 中跆协
214 }),
215 getYearZtxPlanList({
216 year: currYear.value,
217 type: 0 // 省
218 })
219 ]).then(res => {
220 loading.value = false
221 ztxPlanList.value = res[0].rows
222 planList.value = res[1].rows
223 })
224 }
225
226 </script>
227
228 <style scoped lang="scss">
229 .leftboderTT{margin: 0 0 20px;color: var(--el-color-primary);
230 font-size: 20px;}
231 h3{background: #F5F0FF;margin: 0;padding: 10px 0;
232 color: var(--el-color-primary);
233 font-size: 18px;}
234 .table { border-spacing: 0;
235 border-collapse: collapse;
236 width: 100%;
237 max-width: 100%;
238 margin-bottom: 20px;
239 td,th{ padding: 8px; font-size: 14px;}
240 }
241 :deep(.table-striped > tbody > tr:nth-of-type(odd)){
242 background: #F6F9FE;
243 }
244
245 .el-calendar{--el-calendar-border:none;--el-calendar-cell-width:51px;text-align:center;
246 --el-text-color-regular:#8E8D94;
247 :deep(.el-calendar__header){justify-content: center;}
248 :deep(.el-calendar__body){border: 1px solid #F0F0F0;padding: 0}
249 :deep(.el-calendar-table .el-calendar-day){padding: 1px;}
250 :deep(.el-calendar-table td.is-selected){background: transparent;}
251 :deep(.el-calendar__button-group){display: none;}
252 }
253 .primaryDate{color: #fff;
254 background: linear-gradient(90deg, #8623FC, #453DEA);}
255 .date{ margin:5px auto;border-radius: 50%;width: 30px;height: 30px;line-height: 30px;
256 font-weight: bold;
257 }
258 .calendarList{border: 1px solid #F0F0F0;padding:12px 20px;overflow: hidden;
259 margin: 46px 0 0;
260 ul{
261 li{background: #F6F9FE;margin:7px 0 7px 20px;position: relative;padding: 13px;
262 border-radius: 10px;
263 font-weight: 500;
264 font-size: 15px;
265 label{color: #453DEA;margin-right: 15px;
266 &::before{content: '';background:#fff;left: -17px;top: 0px;bottom: 0;margin: auto;
267 border-radius: 50%;width: 2px;height: 2px;position: absolute;z-index: 1}
268 }
269 }
270 li::before{content: '';background: linear-gradient(0deg, #8623FC, #453DEA);
271 border-radius: 50%;width: 8px;height: 8px;position: absolute;
272 left: -20px;top: 0;bottom: 0;margin: auto;z-index: 1;
273 }
274 li::after{content: ''; left: -16px;width: 1px;height: 100%;
275 background: #EBEBEB; position: absolute;top: 20px}
276 li:hover{color: #fff;
277 background: linear-gradient(-90deg, #8623FC, #453DEA);
278 label{color: #fff;}
279 }
280 }
281 }
282
283 </style>
...@@ -76,14 +76,14 @@ export default defineConfig(({ mode, command }) => { ...@@ -76,14 +76,14 @@ export default defineConfig(({ mode, command }) => {
76 rewrite: (p) => p.replace(/^\/dev-api\/ztx-match/, '') 76 rewrite: (p) => p.replace(/^\/dev-api\/ztx-match/, '')
77 }, 77 },
78 '/dev-api/ztx-webSite': { 78 '/dev-api/ztx-webSite': {
79 target: 'https://dance.itechtop.cn/stage-api', 79 // target: 'https://dance.itechtop.cn/stage-api',
80 // target: 'http://192.168.1.131:8083/', 80 target: 'http://192.168.1.96:9083/',
81 changeOrigin: true, 81 changeOrigin: true,
82 rewrite: (p) => p.replace(/^\/dev-api\/ztx-webSite/, '') 82 rewrite: (p) => p.replace(/^\/dev-api\/ztx-webSite/, '')
83 }, 83 },
84 '/dev-api': { 84 '/dev-api': {
85 // target: 'http://192.168.1.131:8083', 85 target: 'http://192.168.1.96:9083/',
86 target: 'https://dance.itechtop.cn/stage-api', 86 // target: 'https://dance.itechtop.cn/stage-api',
87 changeOrigin: true, 87 changeOrigin: true,
88 rewrite: (p) => p.replace(/^\/dev-api/, '') 88 rewrite: (p) => p.replace(/^\/dev-api/, '')
89 } 89 }
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!