no message
Showing
29 changed files
with
1175 additions
and
900 deletions
dance-无about.zip
0 → 100644
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> | ... | ... |
public/img/wb.jpg
0 → 100644
12.4 KB
public/img/wb2.jpg
0 → 100644
158 KB
| 1 | import {ref} from "vue"; | ||
| 2 | |||
| 1 | export const nationList = [ | 3 | export const nationList = [ |
| 2 | { | 4 | { |
| 3 | "id": "01", | 5 | "id": "01", |
| ... | @@ -231,7 +233,7 @@ export const nationList = [ | ... | @@ -231,7 +233,7 @@ export const nationList = [ |
| 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 = [ |
| ... | @@ -247,15 +249,244 @@ export const certificates = [ | ... | @@ -247,15 +249,244 @@ export const certificates = [ |
| 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 |    | ||
| 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 | ||
| ... | @@ -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> |
| ... | @@ -120,7 +129,7 @@ | ... | @@ -120,7 +129,7 @@ |
| 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> |
| ... | @@ -128,40 +137,42 @@ | ... | @@ -128,40 +137,42 @@ |
| 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> |
| 140 | |||
| 131 | <el-table-column label="国家/地区" prop="name"> | 141 | <el-table-column label="国家/地区" prop="name"> |
| 132 | <template #default="scope"> | 142 | <template #default="scope"> |
| 133 | <div> | 143 | <div> |
| 134 | <span :class="`flag-icon flag-icon-${scope.row.code}`"></span> | 144 | <span :class="`flag-icon flag-icon-${scope.row.code}`"></span> |
| 135 | {{ scope.row.gj }}</div> | 145 | {{ scope.row.gj }} |
| 146 | </div> | ||
| 136 | </template> | 147 | </template> |
| 137 | </el-table-column> | 148 | </el-table-column> |
| 138 | <el-table-column prop="score"> | 149 | <el-table-column label="队伍名称" align="center"> |
| 139 | <template #header> | ||
| 140 | <img src="@/assets/dance/1.png"> | ||
| 141 | </template> | ||
| 142 | <template #default="scope"> | 150 | <template #default="scope"> |
| 143 | <div class="text-warning">{{ scope.row.score }}</div> | 151 | <div class="text-primary esp">{{ scope.row.name }}</div> |
| 144 | </template> | 152 | </template> |
| 145 | </el-table-column> | 153 | </el-table-column> |
| 146 | <el-table-column prop="score"> | 154 | <el-table-column width="60"> |
| 147 | <template #header> | 155 | <template #header> |
| 148 | <img src="@/assets/dance/2.png"> | 156 | <img class="mauto" src="@/assets/dance/1.png"> |
| 149 | </template> | 157 | </template> |
| 150 | <template #default="scope"> | 158 | <template #default="scope"> |
| 151 | <div class="text-blue">{{ scope.row.score }}</div> | 159 | <div class="text-warning text-center">{{ scope.row.jin }}</div> |
| 152 | </template> | 160 | </template> |
| 153 | </el-table-column> | 161 | </el-table-column> |
| 154 | <el-table-column prop="score"> | 162 | <el-table-column width="60"> |
| 155 | <template #header> | 163 | <template #header> |
| 156 | <img src="@/assets/dance/3.png"> | 164 | <img class="mauto" src="@/assets/dance/2.png"> |
| 157 | </template> | 165 | </template> |
| 158 | <template #default="scope"> | 166 | <template #default="scope"> |
| 159 | <div class="text-primary">{{ scope.row.score }}</div> | 167 | <div class="text-blue text-center">{{ scope.row.yin }}</div> |
| 160 | </template> | 168 | </template> |
| 161 | </el-table-column> | 169 | </el-table-column> |
| 162 | <el-table-column label="总数" align="center"> | 170 | <el-table-column width="60"> |
| 171 | <template #header> | ||
| 172 | <img class="mauto" src="@/assets/dance/3.png"> | ||
| 173 | </template> | ||
| 163 | <template #default="scope"> | 174 | <template #default="scope"> |
| 164 | <div class="text-primary">{{ scope.row.score }}</div> | 175 | <div class="text-primary text-center">{{ scope.row.tong }}</div> |
| 165 | </template> | 176 | </template> |
| 166 | </el-table-column> | 177 | </el-table-column> |
| 167 | </el-table> | 178 | </el-table> |
| ... | @@ -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> |
| ... | @@ -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 | { |
| 438 | pageSize: 4, | ||
| 430 | pageNum: 1, | 439 | pageNum: 1, |
| 431 | sortId: '10000006' } | 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 | { |
| 447 | pageSize: 5, | ||
| 437 | pageNum: 1, | 448 | pageNum: 1, |
| 438 | sortId: '10000007' } | 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 | { |
| 456 | pageSize: 3, | ||
| 444 | pageNum: 1, | 457 | pageNum: 1, |
| 445 | language:1, | 458 | language: 1, |
| 446 | code: '1000' } | 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 | ||
| 495 | } | 529 | } |
| 496 | .itemBox{ | 530 | } |
| 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;} | ||
| 547 | .colon{ color: #fff;display: block;margin: 20px 0 0; | ||
| 548 | font-size: 20px;} | ||
| 549 | } | 605 | } |
| 606 | |||
| 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 | } | ||
| 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 | ||
| 630 | } | 760 | } |
| 631 | } | 761 | } |
| 632 | li::before{content: '';background: linear-gradient(0deg, #8623FC, #453DEA); | ||
| 633 | border-radius: 50%;width: 8px;height: 8px;position: absolute; | ||
| 634 | left: -20px;top: 0;bottom: 0;margin: auto;z-index: 1; | ||
| 635 | } | 762 | } |
| 636 | li::after{content: ''; left: -16px;width: 1px;height: 100%; | 763 | |
| 637 | background: #EBEBEB; position: absolute;top: 20px} | 764 | li::before { |
| 638 | li:hover{color: #fff; | 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 | ||
| 786 | } | ||
| 787 | |||
| 788 | li:hover { | ||
| 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 | } | ||
| 744 | } | 1036 | } |
| 1037 | .aboutBox { | ||
| 1038 | padding: 20px 30px; | ||
| 745 | } | 1039 | } |
| 746 | .aboutBox{padding: 20px 30px;} | 1040 | .indexTitle { |
| 747 | .indexTitle{margin: 30px 0 20px} | 1041 | margin: 30px 0 20px |
| 748 | .teacher{height: 320px;margin: 0 0 20px; | 1042 | } |
| 749 | img{height: 260px} | 1043 | .teacher { |
| 1044 | height: 320px; | ||
| 1045 | margin: 0 0 20px; | ||
| 1046 | |||
| 1047 | img { | ||
| 1048 | height: 260px | ||
| 1049 | } | ||
| 1050 | } | ||
| 1051 | .activeItem { | ||
| 1052 | margin: 0 0 20px; | ||
| 1053 | } | ||
| 1054 | .mapBox { | ||
| 1055 | div { | ||
| 1056 | padding-left: 40px; | ||
| 1057 | } | ||
| 1058 | |||
| 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; | ||
| 750 | } | 1072 | } |
| 751 | .activeItem{margin: 0 0 20px;} | ||
| 752 | .mapBox{ | ||
| 753 | div{padding-left: 40px;} | ||
| 754 | .content{ width: 80%;left: 10%;padding:10px 20px 0 20px;} | ||
| 755 | .address{margin: 30px 0;} | ||
| 756 | p{text-align: left;word-break: break-all;} | ||
| 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 | } | ||
| 1086 | } | ||
| 1087 | .bgbg { | ||
| 1088 | text-align: center; | ||
| 1089 | |||
| 1090 | img { | ||
| 1091 | max-width: 100%; | ||
| 1092 | } | ||
| 1093 | |||
| 1094 | h1 { | ||
| 1095 | text-align: center | ||
| 765 | } | 1096 | } |
| 766 | .bgbg{ text-align: center; | ||
| 767 | img{max-width:100%; } | ||
| 768 | h1{text-align: center} | ||
| 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 }, | ... | ... |
| ... | @@ -4,7 +4,8 @@ | ... | @@ -4,7 +4,8 @@ |
| 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 |
| ... | @@ -53,15 +54,16 @@ | ... | @@ -53,15 +54,16 @@ |
| 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; | ||
| 487 | } | 544 | } |
| 488 | &.r2{background: url("@/assets/dance/r2b.png") no-repeat left; | ||
| 489 | &:hover{background: url("@/assets/dance/r2.png") no-repeat left;} | ||
| 490 | } | 545 | } |
| 491 | &:hover{color: #fff;} | 546 | |
| 547 | &:hover { | ||
| 548 | color: #fff; | ||
| 549 | } | ||
| 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 | <div style="filter: opacity(1)"> | ||
| 2 | <el-row :gutter="14" v-if="language==0"> | 3 | <el-row :gutter="14" v-if="language==0"> |
| 3 | <el-col :lg="4" :md="8" :sm="12" :xs="12"> | 4 | <el-col :lg="4" :md="8" :sm="12" :xs="12"> |
| 4 | <div class="funcBtn" @click="goBooking(0)"> | 5 | <div class="funcBtn" @click="goBooking(0)"> |
| ... | @@ -75,6 +76,7 @@ | ... | @@ -75,6 +76,7 @@ |
| 75 | </div> | 76 | </div> |
| 76 | </el-col> | 77 | </el-col> |
| 77 | </el-row> | 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?'地    点':'Location' }}:</label>{{ n.address }}</p> | 12 | <p class="ppl"><label>{{ language==0?'地    点':'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?'邮    箱':'E-mail' }}:</label>{{ n.contactEmail }}</p> | 17 | <p class="ppl" v-if="n.contactEmail"><label>{{ language==0?'邮    箱':'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 | <h3 class="text-center">{{ m.title }}</h3> | ||
| 51 | <div class="tablebody"> | 52 | <div class="tablebody"> |
| 52 | <table class="table table-striped"> | 53 | <table class="table table-striped"> |
| 53 | <thead> | 54 | <thead> |
| 54 | <tr class="bg-lineg"> | 55 | <tr class="bg-lineg"> |
| 55 | <td>编号</td> | 56 | <td>{{ language==0?'编号':'RANK' }}</td> |
| 56 | <td>姓名</td> | 57 | <td>{{ language==0?'团体名称':'COUPLE' }}</td> |
| 57 | <td>国家</td> | 58 | <td>{{ language==0?'国家':'COUNTRY' }}</td> |
| 58 | <td>分值</td> | 59 | <td class="text-center">START #</td> |
| 59 | <td>排名</td> | 60 | <td class="text-center" v-if="index>0">BASE</td> |
| 60 | <td>结果</td> | 61 | <td class="text-center" v-if="index>0">POINTS</td> |
| 61 | </tr> | 62 | </tr> |
| 62 | </thead> | 63 | </thead> |
| 63 | <tbody> | 64 | <tbody> |
| 64 | <tr> | 65 | <tr v-for="(l,kndex) in m.rows"> |
| 65 | <td>3456</td> | 66 | <td>{{ l.RANK }}</td> |
| 66 | <td>王文文</td> | 67 | <td>{{ l.COUPLE}}</td> |
| 67 | <td>中国</td> | 68 | <td>{{ l.COUNTRY }}</td> |
| 68 | <td class="text-primary">198.00</td> | 69 | <td class="text-primary text-center">{{ l.START }}</td> |
| 69 | <td>1</td> | 70 | <td class="text-center" v-if="index>0">{{l.BASE}}</td> |
| 70 | <td class="text-primary">晋级</td> | 71 | <td v-if="index>0" class="text-primary text-center">{{ l.POINTS }}</td> |
| 71 | </tr> | 72 | </tr> |
| 72 | <tr> | ||
| 73 | <td>4567</td> | ||
| 74 | <td>张梓涵</td> | ||
| 75 | <td>中国</td> | ||
| 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> | 73 | </tbody> |
| 114 | </table> | 74 | </table> |
| 115 | </div> | 75 | </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 | |||
| 171 | |||
| 172 | </table> | ||
| 173 | </div> | 76 | </div> |
| 77 | |||
| 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) | ... | ... |
src/viewsPc/saiC/index_en.vue
deleted
100644 → 0
| 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 | } | ... | ... |
-
Please register or sign in to post a comment