Merge remote-tracking branch 'origin/世锦赛' into 世锦赛
# Conflicts: # src/viewsPc/components/homeQuick.vue # src/viewsPc/index.vue # src/viewsPc/index_en.vue
Showing
24 changed files
with
1585 additions
and
1228 deletions
| ... | @@ -15,7 +15,8 @@ | ... | @@ -15,7 +15,8 @@ |
| 15 | "@element-plus/icons-vue": "2.0.10", | 15 | "@element-plus/icons-vue": "2.0.10", |
| 16 | "@videojs-player/vue": "^1.0.0", | 16 | "@videojs-player/vue": "^1.0.0", |
| 17 | "@vueup/vue-quill": "1.1.1", | 17 | "@vueup/vue-quill": "1.1.1", |
| 18 | "@vueuse/core": "^10.1.2", | 18 | "@vueuse/core": "^13.4.0", |
| 19 | "@vueuse/router": "^13.4.0", | ||
| 19 | "axios": "0.27.2", | 20 | "axios": "0.27.2", |
| 20 | "crypto-js": "^4.1.1", | 21 | "crypto-js": "^4.1.1", |
| 21 | "echarts": "5.4.0", | 22 | "echarts": "5.4.0", | ... | ... |
| ... | @@ -790,6 +790,30 @@ export function getVisaInfo(query) { | ... | @@ -790,6 +790,30 @@ export function getVisaInfo(query) { |
| 790 | }) | 790 | }) |
| 791 | } | 791 | } |
| 792 | 792 | ||
| 793 | export function downInvite(params) { | ||
| 794 | return request({ | ||
| 795 | url: '/league/visa/downInvite', | ||
| 796 | method: 'get', | ||
| 797 | params | ||
| 798 | }) | ||
| 799 | } | ||
| 800 | |||
| 801 | export function getUplaodFile(params) { | ||
| 802 | return request({ | ||
| 803 | url: '/league/visa/getUplaodFile', | ||
| 804 | method: 'get', | ||
| 805 | params | ||
| 806 | }) | ||
| 807 | } | ||
| 808 | |||
| 809 | export function listVisaInfo(query) { | ||
| 810 | return request({ | ||
| 811 | url: '/league/visaInfo/list', | ||
| 812 | method: 'get', | ||
| 813 | params: query | ||
| 814 | }) | ||
| 815 | } | ||
| 816 | |||
| 793 | // 酒店预约查询 | 817 | // 酒店预约查询 |
| 794 | export function hotelList(params) { | 818 | export function hotelList(params) { |
| 795 | return request({ | 819 | return request({ | ... | ... |
src/assets/img/svg/tag21.png
0 → 100644
1.05 KB
src/assets/img/svg/tag21.svg
0 → 100644
| 1 | <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24px" height="23px"><path fill-rule="evenodd" fill="rgb(146, 154, 160)" d="M1.242,17.158 C2.102,17.158 2.498,17.424 2.998,17.759 C3.558,18.134 4.257,18.601 5.551,18.601 C6.846,18.601 7.543,18.134 8.103,17.759 C8.603,17.424 8.998,17.158 9.857,17.158 C10.718,17.158 11.113,17.424 11.615,17.759 C12.175,18.134 12.873,18.601 14.168,18.601 C15.464,18.601 16.162,18.134 16.722,17.759 C17.224,17.424 17.620,17.158 18.481,17.158 C19.342,17.158 19.738,17.424 20.240,17.759 C20.801,18.134 21.498,18.601 22.794,18.601 C23.191,18.601 23.513,18.278 23.513,17.880 C23.513,17.481 23.191,17.158 22.794,17.158 C21.934,17.158 21.537,16.893 21.036,16.558 C20.474,16.183 19.777,15.715 18.481,15.715 C17.185,15.715 16.487,16.183 15.926,16.558 C15.425,16.893 15.028,17.158 14.168,17.158 C13.307,17.158 12.912,16.893 12.411,16.558 C11.850,16.183 11.152,15.715 9.857,15.715 C8.563,15.715 7.866,16.183 7.306,16.558 C6.806,16.893 6.411,17.158 5.551,17.158 C4.692,17.158 4.296,16.893 3.796,16.558 C3.235,16.183 2.537,15.715 1.242,15.715 C0.846,15.715 0.524,16.038 0.524,16.437 C0.524,16.835 0.846,17.158 1.242,17.158 L1.242,17.158 ZM22.794,21.038 C21.934,21.038 21.537,20.773 21.036,20.438 C20.474,20.063 19.777,19.595 18.481,19.595 C17.185,19.595 16.487,20.063 15.926,20.438 C15.425,20.773 15.028,21.038 14.168,21.038 C13.307,21.038 12.912,20.773 12.411,20.438 C11.850,20.063 11.152,19.595 9.857,19.595 C8.563,19.595 7.866,20.063 7.306,20.438 C6.806,20.773 6.411,21.038 5.551,21.038 C4.692,21.038 4.296,20.773 3.796,20.438 C3.235,20.063 2.537,19.595 1.242,19.595 C0.846,19.595 0.524,19.918 0.524,20.317 C0.524,20.715 0.846,21.038 1.242,21.038 C2.102,21.038 2.498,21.304 2.998,21.638 C3.558,22.014 4.257,22.481 5.551,22.481 C6.846,22.481 7.543,22.014 8.103,21.638 C8.603,21.304 8.998,21.038 9.857,21.038 C10.718,21.038 11.113,21.304 11.615,21.638 C12.175,22.014 12.873,22.481 14.168,22.481 C15.464,22.481 16.162,22.014 16.722,21.638 C17.224,21.304 17.620,21.038 18.481,21.038 C19.342,21.038 19.738,21.304 20.240,21.638 C20.801,22.014 21.498,22.481 22.794,22.481 C23.191,22.481 23.513,22.158 23.513,21.760 C23.513,21.361 23.191,21.038 22.794,21.038 L22.794,21.038 ZM3.527,14.664 C3.924,14.664 3.1000,14.399 3.1000,14.000 L3.1000,9.1000 L13.1000,9.1000 L13.1000,14.000 C13.1000,14.399 14.004,14.664 14.401,14.664 C14.797,14.664 15.000,14.399 15.000,14.000 L15.000,5.000 C15.000,3.286 16.508,2.338 18.215,2.338 C19.922,2.338 21.312,3.734 21.312,5.449 C21.312,5.848 21.633,6.171 22.030,6.171 C22.427,6.171 22.748,5.848 22.748,5.449 C22.748,2.939 20.714,0.896 18.215,0.896 C15.717,0.896 13.1000,2.489 13.1000,5.000 L13.1000,9.000 L3.1000,9.000 L3.1000,5.000 C3.1000,3.286 5.635,2.338 7.342,2.338 C9.049,2.338 10.439,3.734 10.439,5.449 C10.439,5.848 10.761,6.171 11.158,6.171 C11.554,6.171 11.876,5.848 11.876,5.449 C11.873,2.936 9.845,0.899 7.342,0.896 C4.839,0.899 3.002,2.487 3.000,5.000 L3.000,14.000 C3.000,14.399 3.130,14.664 3.527,14.664 L3.527,14.664 Z"/></svg> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
src/assets/img/svg/tag21@2x.png
0 → 100644
2.09 KB
src/assets/img/svg/tag22.png
0 → 100644
535 Bytes
src/assets/img/svg/tag22.svg
0 → 100644
| 1 | <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="26px" height="17px"><path fill-rule="evenodd" fill="rgb(146, 154, 160)" d="M23.1000,13.1000 L23.1000,15.000 C23.1000,16.263 22.595,17.002 21.297,17.002 C19.999,17.002 18.1000,16.263 18.1000,15.000 L18.1000,10.1000 L6.1000,10.1000 L6.1000,15.000 C6.1000,16.263 6.004,17.002 4.706,17.002 C3.408,17.002 2.356,15.978 2.356,14.715 L2.356,13.859 C1.979,13.989 1.483,14.002 1.000,13.1000 C0.571,13.998 0.006,13.947 0.006,13.000 L0.006,4.997 C0.006,4.050 0.795,3.282 1.768,3.282 C2.005,3.282 2.197,3.329 2.356,3.412 L2.356,3.282 C2.356,2.676 2.604,2.094 3.044,1.666 C3.485,1.237 4.083,0.996 4.706,0.996 C4.706,0.996 5.465,0.787 6.368,1.666 C6.809,2.094 6.1000,2.394 6.1000,3.000 L6.1000,6.1000 L18.1000,6.1000 L18.1000,3.1000 C18.1000,1.780 19.927,0.996 21.297,0.996 C22.472,0.926 23.952,1.658 23.1000,3.000 L23.1000,3.320 C24.075,3.301 24.152,3.286 24.235,3.282 C25.208,3.282 25.997,4.050 25.997,4.997 L25.997,13.000 C25.997,13.947 24.973,13.1000 23.1000,13.1000 ZM1.768,4.426 C1.768,4.426 1.000,4.382 1.000,5.000 L1.000,12.1000 C0.1000,13.571 1.988,13.387 1.1000,12.1000 L1.1000,5.000 C1.1000,4.684 2.093,4.426 1.768,4.426 ZM6.000,10.1000 L6.000,6.1000 L6.000,3.1000 C6.048,1.941 4.1000,2.000 4.1000,2.000 C4.098,1.853 2.905,2.276 3.000,3.1000 L3.000,5.000 L3.000,12.1000 L3.000,13.1000 C3.148,15.694 4.351,15.1000 4.1000,15.1000 C5.649,15.1000 6.000,14.631 6.000,13.1000 L6.000,10.1000 ZM6.1000,8.000 L6.1000,9.1000 L18.1000,9.1000 L18.1000,8.000 L6.1000,8.000 ZM21.297,2.139 C20.810,2.139 19.1000,2.412 19.1000,3.1000 L19.1000,6.1000 L19.1000,10.1000 L19.1000,15.000 C19.1000,15.631 20.648,15.858 21.297,15.858 C21.946,15.858 23.000,15.631 23.000,15.000 L23.000,12.1000 L23.000,5.000 L23.000,3.1000 C23.162,2.860 22.369,1.955 21.297,2.139 ZM25.000,5.000 C25.000,4.848 24.760,4.700 24.650,4.593 C24.540,4.486 24.391,4.426 24.235,4.426 C24.078,4.426 24.020,4.488 23.1000,4.586 L23.1000,5.000 L23.1000,12.1000 C23.1000,13.176 24.138,13.484 25.000,12.1000 L25.000,5.000 Z"/></svg> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
src/assets/img/svg/tag22@2x.png
0 → 100644
1.2 KB
| ... | @@ -13,7 +13,7 @@ | ... | @@ -13,7 +13,7 @@ |
| 13 | <el-col :lg="10" :md="10" :xs="10"> | 13 | <el-col :lg="10" :md="10" :xs="10"> |
| 14 | <ul style="text-align: right"> | 14 | <ul style="text-align: right"> |
| 15 | <li>客服及报障电话:15606190026</li> | 15 | <li>客服及报障电话:15606190026</li> |
| 16 | <li>客服及报障邮箱: info@wdsfwuxicenter.com</li> | 16 | <li>客服及报障邮箱: office@2025wtcwuxi.com</li> |
| 17 | </ul> | 17 | </ul> |
| 18 | </el-col> | 18 | </el-col> |
| 19 | <el-col :lg="4" :md="4" :xs="4"> | 19 | <el-col :lg="4" :md="4" :xs="4"> |
| ... | @@ -32,13 +32,15 @@ | ... | @@ -32,13 +32,15 @@ |
| 32 | <el-col :span="14"> | 32 | <el-col :span="14"> |
| 33 | <ul> | 33 | <ul> |
| 34 | <li>Postal code:214000</li> | 34 | <li>Postal code:214000</li> |
| 35 | <li>Address:100 meters northeast of the intersection of Hefeng Road and Qingshu, the Taihu Lake New Town, Wuxi, Jiangsu</li> | 35 | <li>Address:100 meters northeast of the intersection of Hefeng Road and Qingshu, the Taihu Lake New Town, |
| 36 | Wuxi, Jiangsu | ||
| 37 | </li> | ||
| 36 | </ul> | 38 | </ul> |
| 37 | </el-col> | 39 | </el-col> |
| 38 | <el-col :span="6"> | 40 | <el-col :span="6"> |
| 39 | <ul style="text-align: right"> | 41 | <ul style="text-align: right"> |
| 40 | <li>Telephone:086-15606190026</li> | 42 | <li>Telephone:086-15606190026</li> |
| 41 | <li>E-mail:info@wdsfwuxicenter.com</li> | 43 | <li>E-mail:office@2025wtcwuxi.com</li> |
| 42 | </ul> | 44 | </ul> |
| 43 | </el-col> | 45 | </el-col> |
| 44 | <el-col :span="4"> | 46 | <el-col :span="4"> |
| ... | @@ -54,120 +56,207 @@ | ... | @@ -54,120 +56,207 @@ |
| 54 | </el-row> | 56 | </el-row> |
| 55 | </div> | 57 | </div> |
| 56 | </div> | 58 | </div> |
| 57 | <div class="fixed-right forPc"> | 59 | <!-- <div class="fixed-right forPc">--> |
| 58 | <div class="mlb" v-if="language===0"> | 60 | <!-- <div class="mlb" v-if="language===0">--> |
| 59 | <div @click="goAround" class="mb10 pb5"> | 61 | <!-- <div @click="goAround" class="mb10 pb5">--> |
| 60 | <a> | ||
| 61 | <img class="kf" src="@/assets/logo/btn02.png"/> | ||
| 62 | <div class="text-center mt10">周边活动</div> | ||
| 63 | </a> | ||
| 64 | </div> | ||
| 65 | <div onclick="window.open('https://ykf-weixin01.7moor.com/wapchat.html?accessId=6c500b60-02c6-11ef-9a4d-85cd5dacc5bf&fromUrl=&urlTitle=&language=ZHCN','_blank','height=700px,width=700px,top=50,left=0,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no')" title="客服" > | ||
| 66 | <img class="kf" src="@/assets/logo/btn01.png"/> | ||
| 67 | <div class="text-center mt10">在线客服</div> | ||
| 68 | </div> | ||
| 69 | <!-- <div @click="goHelpZH">--> | ||
| 70 | <!-- <a>--> | 62 | <!-- <a>--> |
| 71 | <!-- <img class="kf" src="@/assets/logo/btn02.png"/>--> | 63 | <!-- <img class="kf" src="@/assets/logo/btn02.png"/>--> |
| 72 | <!-- <div class="text-center mt10">周边活动</div>--> | 64 | <!-- <div class="text-center mt10">周边活动</div>--> |
| 73 | <!-- </a>--> | 65 | <!-- </a>--> |
| 74 | <!-- </div>--> | 66 | <!-- </div>--> |
| 75 | </div> | 67 | <!-- <div--> |
| 76 | <div class="mlb" v-else> | 68 | <!-- style="display: none" title="客服"--> |
| 77 | <div @click="goAround" class="mb10 pb5"> | 69 | <!-- onclick="window.open('https://ykf-weixin01.7moor.com/wapchat.html?accessId=6c500b60-02c6-11ef-9a4d-85cd5dacc5bf&fromUrl=&urlTitle=&language=ZHCN','_blank','height=700px,width=700px,top=50,left=0,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no')"--> |
| 78 | <a> | 70 | <!-- >--> |
| 79 | <img class="kf" src="@/assets/logo/btn02.png"/> | 71 | <!-- <img class="kf" src="@/assets/logo/btn01.png"/>--> |
| 80 | <div class="text-center mt10">ACTIVITIES</div> | 72 | <!-- <div class="text-center mt10">在线客服</div>--> |
| 81 | </a> | ||
| 82 | </div> | ||
| 83 | <div onclick="window.open('https://ykf-weixin01.7moor.com/wapchat.html?accessId=707daf80-02c6-11ef-9a4d-85cd5dacc5bf&fromUrl=&urlTitle=&language=EN','_blank','height=700px,width=700px,top=100,left=150,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no')" title="Live Chat"> | ||
| 84 | <img class="kf" src="@/assets/logo/btn01.png"/> | ||
| 85 | <div class="text-center ">LIVE CHAT</div> | ||
| 86 | </div> | ||
| 87 | <!-- <div @click="goHelp">--> | ||
| 88 | <!-- <img class="kf" src="@/assets/logo/btn02.png"/>--> | ||
| 89 | <!-- <div class="text-center uppercase">Video Guide</div>--> | ||
| 90 | <!-- </div>--> | 73 | <!-- </div>--> |
| 91 | </div> | 74 | <!-- <!– <div @click="goHelpZH">–>--> |
| 92 | </div> | 75 | <!-- <!– <a>–>--> |
| 76 | <!-- <!– <img class="kf" src="@/assets/logo/btn02.png"/>–>--> | ||
| 77 | <!-- <!– <div class="text-center mt10">周边活动</div>–>--> | ||
| 78 | <!-- <!– </a>–>--> | ||
| 79 | <!-- <!– </div>–>--> | ||
| 80 | <!-- </div>--> | ||
| 81 | <!-- <div class="mlb" v-else>--> | ||
| 82 | <!-- <div @click="goAround" class="mb10 pb5">--> | ||
| 83 | <!-- <a>--> | ||
| 84 | <!-- <img class="kf" src="@/assets/logo/btn02.png"/>--> | ||
| 85 | <!-- <div class="text-center mt10">ACTIVITIES</div>--> | ||
| 86 | <!-- </a>--> | ||
| 87 | <!-- </div>--> | ||
| 88 | <!--<!– <div–>--> | ||
| 89 | <!--<!– onclick="window.open('https://ykf-weixin01.7moor.com/wapchat.html?accessId=707daf80-02c6-11ef-9a4d-85cd5dacc5bf&fromUrl=&urlTitle=&language=EN','_blank','height=700px,width=700px,top=100,left=150,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no')"–>--> | ||
| 90 | <!--<!– title="Live Chat">–>--> | ||
| 91 | <!--<!– <img class="kf" src="@/assets/logo/btn01.png"/>–>--> | ||
| 92 | <!--<!– <div class="text-center ">LIVE CHAT</div>–>--> | ||
| 93 | <!--<!– </div>–>--> | ||
| 94 | <!-- <!– <div @click="goHelp">–>--> | ||
| 95 | <!-- <!– <img class="kf" src="@/assets/logo/btn02.png"/>–>--> | ||
| 96 | <!-- <!– <div class="text-center uppercase">Video Guide</div>–>--> | ||
| 97 | <!-- <!– </div>–>--> | ||
| 98 | <!-- </div>--> | ||
| 99 | <!-- </div>--> | ||
| 93 | </template> | 100 | </template> |
| 94 | 101 | ||
| 95 | <script setup> | 102 | <script setup> |
| 96 | import {useStorage} from "@vueuse/core/index"; | 103 | import {useStorage} from "@vueuse/core/index"; |
| 97 | import {useRouter} from "vue-router"; | 104 | import {useRouter} from "vue-router"; |
| 98 | import {ElMessage} from "element-plus"; | 105 | import {ElMessage} from "element-plus"; |
| 106 | |||
| 99 | const router = useRouter() | 107 | const router = useRouter() |
| 100 | const language = useStorage('language', 0) | 108 | const language = useStorage('language', 0) |
| 101 | const goHelp = () => { | 109 | const goHelp = () => { |
| 102 | router.push({ | 110 | router.push({ |
| 103 | path: `/news/list/20000100`, | 111 | path: `/news/list/20000100`, |
| 104 | query:{ | 112 | query: { |
| 105 | kindName: language.value===0?'操作指引':'Video Guide' | 113 | kindName: language.value === 0 ? '操作指引' : 'Video Guide' |
| 106 | } | 114 | } |
| 107 | }) | 115 | }) |
| 108 | } | 116 | } |
| 109 | const goHelpZH = () => { | 117 | const goHelpZH = () => { |
| 110 | // ElMessage.success('已下载文件') | 118 | // ElMessage.success('已下载文件') |
| 111 | router.push({ | 119 | router.push({ |
| 112 | name: 'guide', | 120 | name: 'guide', |
| 113 | query: { | 121 | query: { |
| 114 | index:8 | 122 | index: 8 |
| 115 | } | 123 | } |
| 116 | }) | 124 | }) |
| 117 | } | 125 | } |
| 118 | const goAround = () => { | 126 | const goAround = () => { |
| 119 | //周边活动 | 127 | //周边活动 |
| 120 | router.push({path: `/about/wuDao`,query: {activeIndex: '2'}}) | 128 | router.push({path: `/about/wuDao`, query: {activeIndex: '2'}}) |
| 121 | } | 129 | } |
| 122 | </script> | 130 | </script> |
| 123 | 131 | ||
| 124 | <style lang="scss" scoped> | 132 | <style lang="scss" scoped> |
| 125 | .kf{width: 45px;margin: auto;height: auto; | 133 | .kf { |
| 134 | width: 45px; | ||
| 135 | margin: auto; | ||
| 136 | height: auto; | ||
| 126 | //animation: pop 2s infinite; | 137 | //animation: pop 2s infinite; |
| 127 | } | 138 | } |
| 128 | .fixed-right{position: fixed;right: 0;top: 65%;z-index: 9; | 139 | |
| 129 | .mlb{background: #fff;border-radius: 10px 0 0 10px;box-shadow: 0 2px 8px #aaa; | 140 | .fixed-right { |
| 130 | padding: 10px 8px;text-align: center;cursor: pointer; | 141 | position: fixed; |
| 131 | div{text-transform: uppercase;} | 142 | right: 0; |
| 132 | div:first-child{border-bottom: 0.5px solid #eee; | 143 | top: 65%; |
| 144 | z-index: 9; | ||
| 145 | |||
| 146 | .mlb { | ||
| 147 | background: #fff; | ||
| 148 | border-radius: 10px 0 0 10px; | ||
| 149 | box-shadow: 0 2px 8px #aaa; | ||
| 150 | padding: 10px 8px; | ||
| 151 | text-align: center; | ||
| 152 | cursor: pointer; | ||
| 153 | |||
| 154 | div { | ||
| 155 | text-transform: uppercase; | ||
| 156 | } | ||
| 157 | |||
| 158 | div:first-child { | ||
| 159 | border-bottom: 0.5px solid #eee; | ||
| 133 | //padding: 0 0 10px;margin-bottom: 10px; | 160 | //padding: 0 0 10px;margin-bottom: 10px; |
| 134 | } | 161 | } |
| 135 | div:hover{.gradient-text{font-weight: bold;}} | 162 | |
| 163 | div:hover { | ||
| 164 | .gradient-text { | ||
| 165 | font-weight: bold; | ||
| 166 | } | ||
| 167 | } | ||
| 136 | } | 168 | } |
| 137 | } | 169 | } |
| 138 | .copyright{font-size: 14px;opacity: 0.88;color: #4C5359;} | 170 | |
| 139 | .footAll{background: #E0E3E5;;padding: 36px 0 5px; | 171 | .copyright { |
| 140 | p{font-size: 14px;opacity: 0.88;color: #4C5359;} | 172 | font-size: 14px; |
| 141 | ul{list-style: none; | 173 | opacity: 0.88; |
| 142 | li{line-height: 30px;font-size: 14px;opacity: 0.88;color: #4C5359; | 174 | color: #4C5359; |
| 143 | a{margin-left: 15px; | 175 | } |
| 144 | &:hover{text-decoration: underline;} | 176 | |
| 177 | .footAll { | ||
| 178 | background: #E0E3E5;; | ||
| 179 | padding: 36px 0 5px; | ||
| 180 | |||
| 181 | p { | ||
| 182 | font-size: 14px; | ||
| 183 | opacity: 0.88; | ||
| 184 | color: #4C5359; | ||
| 185 | } | ||
| 186 | |||
| 187 | ul { | ||
| 188 | list-style: none; | ||
| 189 | |||
| 190 | li { | ||
| 191 | line-height: 30px; | ||
| 192 | font-size: 14px; | ||
| 193 | opacity: 0.88; | ||
| 194 | color: #4C5359; | ||
| 195 | |||
| 196 | a { | ||
| 197 | margin-left: 15px; | ||
| 198 | |||
| 199 | &:hover { | ||
| 200 | text-decoration: underline; | ||
| 201 | } | ||
| 145 | } | 202 | } |
| 146 | } | 203 | } |
| 147 | } | 204 | } |
| 148 | img{height: 80px;} | 205 | |
| 206 | img { | ||
| 207 | height: 80px; | ||
| 208 | } | ||
| 149 | } | 209 | } |
| 210 | |||
| 150 | .gradient-text { | 211 | .gradient-text { |
| 151 | font-family: FZJunHeiS-B-GB; | 212 | font-family: FZJunHeiS-B-GB; |
| 152 | font-weight: 600;font-size: 17px; | 213 | font-weight: 600; |
| 214 | font-size: 17px; | ||
| 153 | background: linear-gradient(0deg, #8226FC 0%, #483BEB 100%); | 215 | background: linear-gradient(0deg, #8226FC 0%, #483BEB 100%); |
| 154 | -webkit-background-clip: text; | 216 | -webkit-background-clip: text; |
| 155 | -webkit-text-fill-color: transparent; | 217 | -webkit-text-fill-color: transparent; |
| 156 | } | 218 | } |
| 219 | |||
| 157 | @media (max-width: 500px) { | 220 | @media (max-width: 500px) { |
| 158 | .forWei{display: none;} | 221 | .forWei { |
| 159 | .footAll{padding:10px 0; | 222 | display: none; |
| 160 | ul { | 223 | } |
| 161 | li { | 224 | .footAll { |
| 162 | font-size: 10px;line-height: 1.4; | 225 | padding: 10px 0; |
| 163 | } | 226 | |
| 227 | ul { | ||
| 228 | li { | ||
| 229 | font-size: 10px; | ||
| 230 | line-height: 1.4; | ||
| 164 | } | 231 | } |
| 165 | img{height: 60px;} | ||
| 166 | p{font-size: 10px;line-height: 1.4;} | ||
| 167 | .copyright{font-size: 10px;line-height: 1.4;} | ||
| 168 | } | 232 | } |
| 233 | |||
| 234 | img { | ||
| 235 | height: 60px; | ||
| 236 | } | ||
| 237 | |||
| 238 | p { | ||
| 239 | font-size: 10px; | ||
| 240 | line-height: 1.4; | ||
| 241 | } | ||
| 242 | |||
| 243 | .copyright { | ||
| 244 | font-size: 10px; | ||
| 245 | line-height: 1.4; | ||
| 246 | } | ||
| 247 | } | ||
| 169 | } | 248 | } |
| 170 | .ffoot{display: inline-flex; | 249 | |
| 171 | img{width: 20px;height: 20px;display: inline-block;position: relative;top: 4px;margin-right: 4px;} | 250 | .ffoot { |
| 251 | display: inline-flex; | ||
| 252 | |||
| 253 | img { | ||
| 254 | width: 20px; | ||
| 255 | height: 20px; | ||
| 256 | display: inline-block; | ||
| 257 | position: relative; | ||
| 258 | top: 4px; | ||
| 259 | margin-right: 4px; | ||
| 260 | } | ||
| 172 | } | 261 | } |
| 173 | </style> | 262 | </style> | ... | ... |
| ... | @@ -13,7 +13,7 @@ | ... | @@ -13,7 +13,7 @@ |
| 13 | <el-menu-item index="/">{{ language==0?'首页':'HOME' }}</el-menu-item> | 13 | <el-menu-item index="/">{{ language==0?'首页':'HOME' }}</el-menu-item> |
| 14 | <el-menu-item index="/news">{{ language==0?'新闻资讯':'NEWS' }}</el-menu-item> | 14 | <el-menu-item index="/news">{{ language==0?'新闻资讯':'NEWS' }}</el-menu-item> |
| 15 | <el-menu-item index="/notice">{{ language==0?'通知公告':'NOTICEBOARD' }}</el-menu-item> | 15 | <el-menu-item index="/notice">{{ language==0?'通知公告':'NOTICEBOARD' }}</el-menu-item> |
| 16 | <el-menu-item index="/match/list">{{ language==0?'赛事服务':'REGISTRATION' }}</el-menu-item> | 16 | <!-- <el-menu-item index="/match/list">{{ language==0?'赛事服务':'REGISTRATION' }}</el-menu-item>--> |
| 17 | <el-menu-item index="/saiC">{{ language==0?'竞赛日程':'COMPETITIONS' }}</el-menu-item> | 17 | <el-menu-item index="/saiC">{{ language==0?'竞赛日程':'COMPETITIONS' }}</el-menu-item> |
| 18 | <el-menu-item index="/meta">{{ language==0?'媒体中心':'MEDIA' }}</el-menu-item> | 18 | <el-menu-item index="/meta">{{ language==0?'媒体中心':'MEDIA' }}</el-menu-item> |
| 19 | <!-- <el-menu-item index="/guide">{{ language==0?'参赛指南':'GUIDELINE' }}</el-menu-item>--> | 19 | <!-- <el-menu-item index="/guide">{{ language==0?'参赛指南':'GUIDELINE' }}</el-menu-item>--> |
| ... | @@ -32,7 +32,7 @@ | ... | @@ -32,7 +32,7 @@ |
| 32 | <el-menu-item index="/">{{ language==0?'首页':'HOME' }}</el-menu-item> | 32 | <el-menu-item index="/">{{ language==0?'首页':'HOME' }}</el-menu-item> |
| 33 | <el-menu-item index="/news">{{ language==0?'新闻资讯':'NEWS' }}</el-menu-item> | 33 | <el-menu-item index="/news">{{ language==0?'新闻资讯':'NEWS' }}</el-menu-item> |
| 34 | <el-menu-item index="/notice">{{ language==0?'通知公告':'NOTICEBOARD' }}</el-menu-item> | 34 | <el-menu-item index="/notice">{{ language==0?'通知公告':'NOTICEBOARD' }}</el-menu-item> |
| 35 | <el-menu-item index="/match/list">{{ language==0?'赛事服务':'COMPETITION INFO' }}</el-menu-item> | 35 | <!-- <el-menu-item index="/match/list">{{ language==0?'赛事服务':'COMPETITION INFO' }}</el-menu-item>--> |
| 36 | <el-menu-item index="/saiC">{{ language==0?'竞赛日程':'COMPETITION SCHEDULE' }}</el-menu-item> | 36 | <el-menu-item index="/saiC">{{ language==0?'竞赛日程':'COMPETITION SCHEDULE' }}</el-menu-item> |
| 37 | <el-menu-item index="/meta">{{ language==0?'媒体中心':'MEDIA' }}</el-menu-item> | 37 | <el-menu-item index="/meta">{{ language==0?'媒体中心':'MEDIA' }}</el-menu-item> |
| 38 | <!-- <el-menu-item index="/guide">{{ language==0?'参赛指南':'GUIDELINE' }}</el-menu-item>--> | 38 | <!-- <el-menu-item index="/guide">{{ language==0?'参赛指南':'GUIDELINE' }}</el-menu-item>--> | ... | ... |
| ... | @@ -567,6 +567,12 @@ export const constantRoutes = [ | ... | @@ -567,6 +567,12 @@ export const constantRoutes = [ |
| 567 | meta: {title: 'My reservation'} | 567 | meta: {title: 'My reservation'} |
| 568 | }, | 568 | }, |
| 569 | { | 569 | { |
| 570 | path: 'myVisa', | ||
| 571 | component: () => import('@/viewsPc/center/myVisa'), | ||
| 572 | name: 'myVisa', | ||
| 573 | meta: {title: 'My visa'} | ||
| 574 | }, | ||
| 575 | { | ||
| 570 | path: 'mySms', | 576 | path: 'mySms', |
| 571 | component: () => import('@/viewsPc/center/mySms'), | 577 | component: () => import('@/viewsPc/center/mySms'), |
| 572 | name: 'mySms', | 578 | name: 'mySms', | ... | ... |
| ... | @@ -76,7 +76,7 @@ const contact = ref([ | ... | @@ -76,7 +76,7 @@ const contact = ref([ |
| 76 | {name:'电话',ename:'Phone',value:'武先生:15606190026',evalue:'Mr.WU:15606190026'}, | 76 | {name:'电话',ename:'Phone',value:'武先生:15606190026',evalue:'Mr.WU:15606190026'}, |
| 77 | {name:'地址',ename:'Address',value:'江苏省 无锡市太湖新城和风路与清舒交叉口东北100米', | 77 | {name:'地址',ename:'Address',value:'江苏省 无锡市太湖新城和风路与清舒交叉口东北100米', |
| 78 | evalue:'No.88 Qingshu Road,Economic Development District, Wuxi City,Jiangsu Province,China'}, | 78 | evalue:'No.88 Qingshu Road,Economic Development District, Wuxi City,Jiangsu Province,China'}, |
| 79 | {name:'邮箱',ename:'Email',value:'info@wdsfwuxicenter.com',evalue:'info@wdsfwuxicenter.com'}, | 79 | {name:'邮箱',ename:'Email',value:'office@2025wtcwuxi.com',evalue:'office@2025wtcwuxi.com'}, |
| 80 | ]) | 80 | ]) |
| 81 | 81 | ||
| 82 | onMounted(()=>{ | 82 | onMounted(()=>{ | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <div> | 2 | <div> |
| 3 | <div class="banner"> | 3 | <div class="banner"> |
| 4 | <img v-if="language==0" src="@/assets/booking/jd_text_c.png"> | 4 | <img v-if="language==0" src="@/assets/booking/jd_text_c.png"> |
| 5 | <img v-else src="@/assets/booking/jd_text_e.png"> | 5 | <img v-else src="@/assets/booking/jd_text_e.png"> |
| 6 | </div> | 6 | </div> |
| 7 | <div class="box"> | 7 | <div class="box"> |
| 8 | <div class="searchBar"> | 8 | <div class="searchBar"> |
| 9 | <el-input :placeholder="language==0?'请输入关键字搜索':'Search'" v-model="query.name" class="no-border"> | 9 | <el-input :placeholder="language==0?'请输入关键字搜索':'Search'" v-model="query.name" class="no-border"> |
| 10 | </el-input> | 10 | </el-input> |
| 11 | <el-button size="large" type="primary" class="btn-lineG" icon="search" @click="getList"> | 11 | <el-button size="large" type="primary" class="btn-lineG" icon="search" @click="getList"> |
| 12 | {{ language==0?'搜索':'Search' }}</el-button> | 12 | {{ language == 0 ? '搜索' : 'Search' }} |
| 13 | </el-button> | ||
| 14 | </div> | ||
| 13 | </div> | 15 | </div> |
| 14 | </div> | ||
| 15 | 16 | ||
| 16 | <div class="box" v-loading="loading"> | 17 | <div class="box" v-loading="loading"> |
| 17 | <el-row :gutter="20"> | 18 | <el-row :gutter="20"> |
| 18 | <el-col :lg="24" :md="24" :sm="24" :xs="24" :xl="24" v-for="(h,index) in list" class="mb20"> | 19 | <el-col :lg="24" :md="24" :sm="24" :xs="24" :xl="24" v-for="(h,index) in list" class="mb20"> |
| 19 | <el-card @click="goDetail(h)"> | 20 | <el-card @click="goDetail(h)"> |
| 20 | <!-- 酒店列表--> | 21 | <!-- 酒店列表--> |
| 21 | <el-row class="hotel" align="middle" :gutter="20"> | 22 | <el-row class="hotel" align="middle" :gutter="20"> |
| 22 | <el-col :lg="6" :md="6"> | 23 | <el-col :lg="6" :md="6"> |
| 23 | <div class="imgbox"> | 24 | <div class="imgbox"> |
| 24 | <img class="w100" :src="fillImgUrl(h.photos?.split(',')[0])"/> | 25 | <img class="w100" :src="fillImgUrl(h.photos?.split(',')[0])"/> |
| 25 | </div> | 26 | </div> |
| 26 | </el-col> | 27 | </el-col> |
| 27 | <el-col :lg="12" :md="12"> | 28 | <el-col :lg="12" :md="12"> |
| 28 | <h3 class="esp">{{h.name}}</h3> | 29 | <h3 class="esp">{{ h.name }}</h3> |
| 29 | <div class="starBox"> | 30 | <div class="starBox"> |
| 30 | <img v-for="i in Number(h.starLevel||0)" src="@/assets/booking/star.png"> | 31 | <img v-for="i in Number(h.starLevel||0)" src="@/assets/booking/star.png"> |
| 31 | </div> | 32 | </div> |
| 32 | <div class="tagbox esp"> | 33 | <div class="tagbox esp"> |
| 33 | <span v-for="(t,index) in h.label?.split(',')" v-show="index<4">{{t}}</span> | 34 | <span v-for="(t,index) in h.label?.split(',')" v-show="index<4">{{ t }}</span> |
| 34 | <a v-show="h.label?.split(',').length>4">{{ language==0?'更多':'MORE' }} ></a> | 35 | <a v-show="h.label?.split(',').length>4">{{ language == 0 ? '更多' : 'MORE' }} ></a> |
| 35 | </div> | 36 | </div> |
| 36 | <p class="esp addr mt20"> | 37 | <p class="esp addr mt20"> |
| 37 | <el-icon size="16" style="position: relative;top: 2px" color="#929AA0"><LocationFilled /></el-icon> | 38 | <el-icon size="16" style="position: relative;top: 2px" color="#929AA0"> |
| 38 | {{h.address}} | 39 | <LocationFilled/> |
| 39 | </p> | 40 | </el-icon> |
| 40 | </el-col> | 41 | {{ h.address }} |
| 41 | <el-col :lg="4" :md="4" class="text-right"> | 42 | </p> |
| 42 | <div class="price">{{ language==0?'¥':'$' }}<span>{{ h.price }}</span> | 43 | </el-col> |
| 43 | <i v-if="language==0">起</i> | 44 | <el-col :lg="4" :md="4" class="text-right"> |
| 44 | </div> | 45 | <div class="price">{{ language == 0 ? '¥' : '$' }}<span>{{ h.price }}</span> |
| 45 | <el-button class="w200px blackBtn" round type="primary" >{{ language==0?'立即预订':'Select' }} ⇀</el-button> | 46 | <i v-if="language==0">起</i> |
| 46 | </el-col> | 47 | </div> |
| 47 | </el-row> | 48 | <el-button class="w200px blackBtn" round type="primary">{{ language == 0 ? '立即预订' : 'Select' }} ⇀ |
| 48 | </el-card> | 49 | </el-button> |
| 49 | </el-col> | 50 | </el-col> |
| 50 | </el-row> | 51 | </el-row> |
| 51 | <el-empty v-show="!loading&&list.length==0" :image="`/img/order_no.png`" :image-size="228" description="" /> | 52 | </el-card> |
| 52 | <div style="height: 50px"></div> | 53 | </el-col> |
| 53 | </div> | 54 | </el-row> |
| 55 | <el-empty v-show="!loading&&list.length==0" :image="`/img/order_no.png`" :image-size="228" description=""/> | ||
| 56 | <div style="height: 50px"></div> | ||
| 57 | </div> | ||
| 54 | 58 | ||
| 55 | </div> | 59 | </div> |
| 56 | </template> | 60 | </template> |
| 57 | 61 | ||
| 58 | <script setup> | 62 | <script setup> |
| 59 | import {onMounted} from "@vue/runtime-core" | 63 | import * as booking from "@/apiPc/booking" |
| 60 | import * as booking from "@/apiPc/booking" | 64 | import {useRouter, useRoute} from "vue-router"; |
| 61 | import {useRouter,useRoute} from "vue-router"; | 65 | import {useStorage} from "@vueuse/core"; |
| 62 | import {useStorage} from "@vueuse/core/index"; | 66 | import useUserStore from "@/store/modules/user"; |
| 63 | import useUserStore from "@/store/modules/user"; | 67 | import {ElMessageBox} from "element-plus"; |
| 64 | import {ElMessageBox} from "element-plus"; | 68 | import {useRouteQuery} from '@vueuse/router' |
| 65 | const router = useRouter() | 69 | import {onMounted} from "vue"; |
| 66 | const route = useRoute() | ||
| 67 | const user = useUserStore().user | ||
| 68 | const useStore = useUserStore | ||
| 69 | const language= useStorage('language',0) | ||
| 70 | const query = ref({ | ||
| 71 | name:'' | ||
| 72 | }) | ||
| 73 | const cptId = ref('') | ||
| 74 | const list = ref([]) | ||
| 75 | const loading = ref(false) | ||
| 76 | onMounted(()=>{ | ||
| 77 | query.value.activityId = route.params.cptId | ||
| 78 | getList() | ||
| 79 | }) | ||
| 80 | 70 | ||
| 81 | function getList() { | 71 | const router = useRouter() |
| 82 | loading.value = true | 72 | const route = useRoute() |
| 83 | booking.getHotelList(query.value).then(res=>{ | ||
| 84 | list.value = res.rows | ||
| 85 | loading.value = false | ||
| 86 | console.log(list.value) | ||
| 87 | 73 | ||
| 88 | }).catch(e=>{ | 74 | const useStore = useUserStore() |
| 89 | loading.value = false | 75 | const user = useStore.user |
| 90 | }) | 76 | |
| 77 | const flag = useRouteQuery('flag') | ||
| 78 | |||
| 79 | const language = useStorage('language', 0) | ||
| 80 | const query = ref({ | ||
| 81 | name: '' | ||
| 82 | }) | ||
| 83 | const cptId = ref('') | ||
| 84 | const list = ref([]) | ||
| 85 | const loading = ref(false) | ||
| 86 | onMounted(() => { | ||
| 87 | query.value.activityId = route.params.cptId | ||
| 88 | getList() | ||
| 89 | }) | ||
| 90 | |||
| 91 | function getList() { | ||
| 92 | loading.value = true | ||
| 93 | booking.getHotelList(Object.assign({ | ||
| 94 | meeting: flag.value, | ||
| 95 | },query.value)).then(res => { | ||
| 96 | list.value = res.rows | ||
| 97 | loading.value = false | ||
| 98 | console.log(list.value) | ||
| 99 | |||
| 100 | }).catch(e => { | ||
| 101 | loading.value = false | ||
| 102 | }) | ||
| 103 | } | ||
| 104 | |||
| 105 | function goDetail(item) { | ||
| 106 | if (!user) { | ||
| 107 | useStore.setVisitor() | ||
| 108 | return | ||
| 91 | } | 109 | } |
| 92 | function goDetail(item) { | 110 | if (item.meeting == '1') { |
| 93 | if(!user){ | 111 | ElMessageBox.confirm(item.meetText, '', { |
| 94 | useStore().setVisitor() | 112 | cancelButtonText: language.value == 1 ? 'Close ' : '关闭', |
| 95 | return | 113 | confirmButtonText: language.value == 1 ? 'Continue to book' : '继续预订', |
| 96 | } | 114 | dangerouslyUseHTMLString: true, |
| 97 | if(item.meeting=='1'){ | 115 | type: 'warning', |
| 98 | ElMessageBox.confirm( item.meetText,'',{ | 116 | }).then((res) => { |
| 99 | cancelButtonText: language.value==1?'Close ':'关闭', | ||
| 100 | confirmButtonText: language.value==1?'Continue to book':'继续预订', | ||
| 101 | type: 'warning', | ||
| 102 | }).then((res) => { | ||
| 103 | router.push({ | ||
| 104 | name:'hotelDetail', | ||
| 105 | params:{ | ||
| 106 | hotelId:item.hotelId, | ||
| 107 | }, | ||
| 108 | query:{ | ||
| 109 | id:item.id | ||
| 110 | } | ||
| 111 | }) | ||
| 112 | }) | ||
| 113 | } else { | ||
| 114 | router.push({ | 117 | router.push({ |
| 115 | name:'hotelDetail', | 118 | name: 'hotelDetail', |
| 116 | params:{ | 119 | params: { |
| 117 | hotelId:item.hotelId, | 120 | hotelId: item.hotelId, |
| 118 | }, | 121 | }, |
| 119 | query:{ | 122 | query: { |
| 120 | id:item.id | 123 | id: item.id |
| 121 | } | 124 | } |
| 122 | }) | 125 | }) |
| 123 | } | 126 | }) |
| 127 | } else { | ||
| 128 | router.push({ | ||
| 129 | name: 'hotelDetail', | ||
| 130 | params: { | ||
| 131 | hotelId: item.hotelId, | ||
| 132 | }, | ||
| 133 | query: { | ||
| 134 | id: item.id | ||
| 135 | } | ||
| 136 | }) | ||
| 124 | } | 137 | } |
| 138 | } | ||
| 125 | </script> | 139 | </script> |
| 126 | 140 | ||
| 127 | <style scoped lang="scss"> | 141 | <style scoped lang="scss"> |
| 128 | .hotel{ | 142 | .hotel { |
| 129 | h3{margin: 0 0 10px;} | 143 | h3 { |
| 130 | img.w100{object-fit: cover;aspect-ratio: 16/9} | 144 | margin: 0 0 10px; |
| 131 | .addr{font-size: 14px;color: #929AA0;font-weight: 400;margin: 0 0 10px;} | 145 | } |
| 132 | .price{margin: 0 0 8px; | 146 | |
| 133 | color: #FF8124;font-size: 18px; | 147 | img.w100 { |
| 134 | span{font-size: 36px;margin: 0 8px;font-family: 'DINAlternate-Bold';font-weight: 600;} | 148 | object-fit: cover; |
| 135 | i{font-style: normal;color: #929AA0;} | 149 | aspect-ratio: 16/9 |
| 150 | } | ||
| 151 | |||
| 152 | .addr { | ||
| 153 | font-size: 14px; | ||
| 154 | color: #929AA0; | ||
| 155 | font-weight: 400; | ||
| 156 | margin: 0 0 10px; | ||
| 157 | } | ||
| 158 | |||
| 159 | .price { | ||
| 160 | margin: 0 0 8px; | ||
| 161 | color: #FF8124; | ||
| 162 | font-size: 18px; | ||
| 163 | |||
| 164 | span { | ||
| 165 | font-size: 36px; | ||
| 166 | margin: 0 8px; | ||
| 167 | font-family: 'DINAlternate-Bold'; | ||
| 168 | font-weight: 600; | ||
| 136 | } | 169 | } |
| 137 | .blackBtn{background: #000;border: #000;} | 170 | |
| 138 | } | 171 | i { |
| 139 | .banner{height: 140px;background-size: cover;text-align: center; | 172 | font-style: normal; |
| 140 | background: url("@/assets/booking/jd_bg.png") center;display: flex;align-items: center; | 173 | color: #929AA0; |
| 141 | justify-content: center; | 174 | } |
| 142 | img{display: block;margin:-30px auto 0;width: auto;} | 175 | } |
| 143 | } | 176 | |
| 144 | .searchBar{position: relative;top: -30px; | 177 | .blackBtn { |
| 145 | background: #FFFFFF;display: flex;padding: 20px; | 178 | background: #000; |
| 146 | border-radius: 10px;} | 179 | border: #000; |
| 147 | .no-border{border: none;background: #F5F7F9; | 180 | } |
| 148 | :deep(.el-input__wrapper){border: none;box-shadow: none;background: #F5F7F9;} | 181 | } |
| 149 | } | 182 | |
| 150 | .imgbox {width: 100%;height: 100%;position: relative; | 183 | .banner { |
| 151 | img{width: 100%;height: 100%;} | 184 | height: 140px; |
| 152 | .starBox{position: absolute;bottom: 0;right: 0;background: rgba(0,0,0,0.4);padding: 10px 15px 3px;} | 185 | background-size: cover; |
| 153 | } | 186 | text-align: center; |
| 154 | .po-r-b{} | 187 | background: url("@/assets/booking/jd_bg.png") center; |
| 155 | .starBox{ | 188 | display: flex; |
| 156 | border-radius: 14px 0 0 0; | 189 | align-items: center; |
| 157 | img{display: inline-block;margin-right: 4px;width: 24px;} | 190 | justify-content: center; |
| 158 | } | 191 | |
| 159 | .tagbox{margin: 10px 0; | 192 | img { |
| 160 | a{color: #AFB5B9;font-size: 12px;} | 193 | display: block; |
| 161 | span{border-radius: 13px;font-size: 12px;padding: 3px 10px;margin-right:10px;font-weight: 400;} | 194 | margin: -30px auto 0; |
| 162 | span:nth-child(4n){background: rgba(50, 177, 108, 0.2);color: rgba(50, 177, 108, 1);} | 195 | width: auto; |
| 163 | span:nth-child(4n+1){background:rgba(243, 152, 0, 0.2);color: rgba(243, 152, 0, 1);} | 196 | } |
| 164 | span:nth-child(4n+2){background: rgba(0, 160, 233, 0.2);color: rgba(0, 160, 233, 1);} | 197 | } |
| 165 | span:nth-child(4n+3){background: rgba(247, 64, 166, 0.2);color:rgba(247, 64, 166, 1);} | 198 | |
| 166 | } | 199 | .searchBar { |
| 167 | @media screen and (max-width: 768px) { | 200 | position: relative; |
| 168 | .hotel h3{margin: 20px 0 10px; font-size: 18px;} | 201 | top: -30px; |
| 202 | background: #FFFFFF; | ||
| 203 | display: flex; | ||
| 204 | padding: 20px; | ||
| 205 | border-radius: 10px; | ||
| 206 | } | ||
| 207 | |||
| 208 | .no-border { | ||
| 209 | border: none; | ||
| 210 | background: #F5F7F9; | ||
| 211 | |||
| 212 | :deep(.el-input__wrapper) { | ||
| 213 | border: none; | ||
| 214 | box-shadow: none; | ||
| 215 | background: #F5F7F9; | ||
| 216 | } | ||
| 217 | } | ||
| 218 | |||
| 219 | .imgbox { | ||
| 220 | width: 100%; | ||
| 221 | height: 100%; | ||
| 222 | position: relative; | ||
| 223 | |||
| 224 | img { | ||
| 225 | width: 100%; | ||
| 226 | height: 100%; | ||
| 227 | } | ||
| 228 | |||
| 229 | .starBox { | ||
| 230 | position: absolute; | ||
| 231 | bottom: 0; | ||
| 232 | right: 0; | ||
| 233 | background: rgba(0, 0, 0, 0.4); | ||
| 234 | padding: 10px 15px 3px; | ||
| 235 | } | ||
| 236 | } | ||
| 237 | |||
| 238 | .po-r-b { | ||
| 239 | } | ||
| 240 | |||
| 241 | .starBox { | ||
| 242 | border-radius: 14px 0 0 0; | ||
| 243 | |||
| 244 | img { | ||
| 245 | display: inline-block; | ||
| 246 | margin-right: 4px; | ||
| 247 | width: 24px; | ||
| 248 | } | ||
| 249 | } | ||
| 250 | |||
| 251 | .tagbox { | ||
| 252 | margin: 10px 0; | ||
| 253 | |||
| 254 | a { | ||
| 255 | color: #AFB5B9; | ||
| 256 | font-size: 12px; | ||
| 257 | } | ||
| 258 | |||
| 259 | span { | ||
| 260 | border-radius: 13px; | ||
| 261 | font-size: 12px; | ||
| 262 | padding: 3px 10px; | ||
| 263 | margin-right: 10px; | ||
| 264 | font-weight: 400; | ||
| 265 | } | ||
| 266 | |||
| 267 | span:nth-child(4n) { | ||
| 268 | background: rgba(50, 177, 108, 0.2); | ||
| 269 | color: rgba(50, 177, 108, 1); | ||
| 270 | } | ||
| 271 | |||
| 272 | span:nth-child(4n+1) { | ||
| 273 | background: rgba(243, 152, 0, 0.2); | ||
| 274 | color: rgba(243, 152, 0, 1); | ||
| 275 | } | ||
| 276 | |||
| 277 | span:nth-child(4n+2) { | ||
| 278 | background: rgba(0, 160, 233, 0.2); | ||
| 279 | color: rgba(0, 160, 233, 1); | ||
| 280 | } | ||
| 281 | |||
| 282 | span:nth-child(4n+3) { | ||
| 283 | background: rgba(247, 64, 166, 0.2); | ||
| 284 | color: rgba(247, 64, 166, 1); | ||
| 285 | } | ||
| 286 | } | ||
| 287 | |||
| 288 | @media screen and (max-width: 768px) { | ||
| 289 | .hotel h3 { | ||
| 290 | margin: 20px 0 10px; | ||
| 291 | font-size: 18px; | ||
| 169 | } | 292 | } |
| 293 | } | ||
| 170 | </style> | 294 | </style> | ... | ... |
| ... | @@ -92,6 +92,8 @@ | ... | @@ -92,6 +92,8 @@ |
| 92 | <div v-if="labelObj.tv==1"><img src="@/assets/img/svg/tag18@2x.png"/>{{ language==0 ?'电视': 'tv' }}</div> | 92 | <div v-if="labelObj.tv==1"><img src="@/assets/img/svg/tag18@2x.png"/>{{ language==0 ?'电视': 'tv' }}</div> |
| 93 | <div v-if="labelObj.hours==1"><img src="@/assets/img/svg/tag19@2x.png"/>{{ language==0 ?'24小时前台': '24Hours Available' }}</div> | 93 | <div v-if="labelObj.hours==1"><img src="@/assets/img/svg/tag19@2x.png"/>{{ language==0 ?'24小时前台': '24Hours Available' }}</div> |
| 94 | <div v-if="labelObj.breakfast==1"><img src="@/assets/img/svg/tag20@2x.png"/>{{ language==0 ?'早餐': 'breakfast' }}</div> | 94 | <div v-if="labelObj.breakfast==1"><img src="@/assets/img/svg/tag20@2x.png"/>{{ language==0 ?'早餐': 'breakfast' }}</div> |
| 95 | <div v-if="labelObj.ntatorium==1"><img src="@/assets/img/svg/tag21@2x.png"/>{{ language==0 ?'泳池': 'ntatorium' }}</div> | ||
| 96 | <div v-if="labelObj.gymnasium==1"><img src="@/assets/img/svg/tag22@2x.png"/>{{ language==0 ?'健身房': 'gymnasium' }}</div> | ||
| 95 | </div> | 97 | </div> |
| 96 | </el-card> | 98 | </el-card> |
| 97 | 99 | ... | ... |
| ... | @@ -47,7 +47,8 @@ import {onMounted} from '@vue/runtime-core' | ... | @@ -47,7 +47,8 @@ import {onMounted} from '@vue/runtime-core' |
| 47 | import useUserStore from '@/store/modules/user' | 47 | import useUserStore from '@/store/modules/user' |
| 48 | import _ from 'lodash' | 48 | import _ from 'lodash' |
| 49 | import {useStorage} from "@vueuse/core/index"; | 49 | import {useStorage} from "@vueuse/core/index"; |
| 50 | const language= useStorage('language',0) | 50 | |
| 51 | const language = useStorage('language', 0) | ||
| 51 | 52 | ||
| 52 | const route = useRoute() | 53 | const route = useRoute() |
| 53 | const router = useRouter() | 54 | const router = useRouter() |
| ... | @@ -63,14 +64,14 @@ const menus3 = ref([ | ... | @@ -63,14 +64,14 @@ const menus3 = ref([ |
| 63 | // isActive: false | 64 | // isActive: false |
| 64 | // }, | 65 | // }, |
| 65 | { | 66 | { |
| 66 | name: language.value==0?'修改密码':'Change Password', | 67 | name: language.value == 0 ? '修改密码' : 'Change Password', |
| 67 | routeName: 'myPassword', | 68 | routeName: 'myPassword', |
| 68 | picUrl1: '/img/nav_27.png', | 69 | picUrl1: '/img/nav_27.png', |
| 69 | picUrl2: '/img/nav_27_dwn.png', | 70 | picUrl2: '/img/nav_27_dwn.png', |
| 70 | isActive: false | 71 | isActive: false |
| 71 | }, | 72 | }, |
| 72 | { | 73 | { |
| 73 | name: language.value==0?'我的预订':'My Reservation', | 74 | name: language.value == 0 ? '我的预订' : 'My Reservation', |
| 74 | routeName: 'myReservation', | 75 | routeName: 'myReservation', |
| 75 | picUrl1: '/img/nav_29.png', | 76 | picUrl1: '/img/nav_29.png', |
| 76 | picUrl2: '/img/nav_29_dwn.png', | 77 | picUrl2: '/img/nav_29_dwn.png', |
| ... | @@ -84,7 +85,7 @@ const menus3 = ref([ | ... | @@ -84,7 +85,7 @@ const menus3 = ref([ |
| 84 | // isActive: false | 85 | // isActive: false |
| 85 | // }, | 86 | // }, |
| 86 | { | 87 | { |
| 87 | name: language.value==0?'发票申请':'Electronic invoice', | 88 | name: language.value == 0 ? '发票申请' : 'Electronic invoice', |
| 88 | routeName: 'myKP', | 89 | routeName: 'myKP', |
| 89 | picUrl1: '/img/fp.svg', | 90 | picUrl1: '/img/fp.svg', |
| 90 | picUrl2: '/img/fp_dwn.svg', | 91 | picUrl2: '/img/fp_dwn.svg', |
| ... | @@ -100,19 +101,26 @@ const menus3En = ref([ | ... | @@ -100,19 +101,26 @@ const menus3En = ref([ |
| 100 | // isActive: false | 101 | // isActive: false |
| 101 | // }, | 102 | // }, |
| 102 | { | 103 | { |
| 103 | name: language.value==0?'修改密码':'Change Password', | 104 | name: language.value == 0 ? '修改密码' : 'Change Password', |
| 104 | routeName: 'myPassword', | 105 | routeName: 'myPassword', |
| 105 | picUrl1: '/img/nav_27.png', | 106 | picUrl1: '/img/nav_27.png', |
| 106 | picUrl2: '/img/nav_27_dwn.png', | 107 | picUrl2: '/img/nav_27_dwn.png', |
| 107 | isActive: false | 108 | isActive: false |
| 108 | }, | 109 | }, |
| 109 | { | 110 | { |
| 110 | name: language.value==0?'我的预订':'My Reservation', | 111 | name: language.value == 0 ? '我的预订' : 'My Reservation', |
| 111 | routeName: 'myReservation', | 112 | routeName: 'myReservation', |
| 112 | picUrl1: '/img/nav_29.png', | 113 | picUrl1: '/img/nav_29.png', |
| 113 | picUrl2: '/img/nav_29_dwn.png', | 114 | picUrl2: '/img/nav_29_dwn.png', |
| 114 | isActive: false | 115 | isActive: false |
| 115 | }, | 116 | }, |
| 117 | { | ||
| 118 | name: language.value == 0 ? '签证审核记录' : 'Visa Review record', | ||
| 119 | routeName: 'myVisa', | ||
| 120 | picUrl1: '/img/fp.svg', | ||
| 121 | picUrl2: '/img/fp_dwn.svg', | ||
| 122 | isActive: false | ||
| 123 | }, | ||
| 116 | // { | 124 | // { |
| 117 | // name: language.value==0?'票务预订':'Ticket Reservation', | 125 | // name: language.value==0?'票务预订':'Ticket Reservation', |
| 118 | // routeName: 'seat_order', | 126 | // routeName: 'seat_order', |
| ... | @@ -125,18 +133,19 @@ const menus3En = ref([ | ... | @@ -125,18 +133,19 @@ const menus3En = ref([ |
| 125 | let currMenu | 133 | let currMenu |
| 126 | onMounted(() => { | 134 | onMounted(() => { |
| 127 | console.log(route.query) | 135 | console.log(route.query) |
| 128 | if(!user.utype){ | 136 | if (!user.utype) { |
| 129 | router.push({name: 'home'}) | 137 | router.push({name: 'home'}) |
| 130 | return | 138 | return |
| 131 | } | 139 | } |
| 132 | currMenu = _.find(menus3.value, (m) => { | 140 | |
| 133 | return m.routeName === route.name | 141 | currMenu = _.find((language.value == 0? menus3.value: menus3En.value), (m) => { |
| 134 | }) | 142 | return m.routeName === route.name |
| 135 | currMenu.isActive = true | 143 | }) |
| 144 | currMenu.isActive = true | ||
| 136 | 145 | ||
| 137 | }) | 146 | }) |
| 138 | 147 | ||
| 139 | const toInfo = (item,list) => { | 148 | const toInfo = (item, list) => { |
| 140 | _.each(list, (m) => { | 149 | _.each(list, (m) => { |
| 141 | m.isActive = false | 150 | m.isActive = false |
| 142 | }) | 151 | }) |
| ... | @@ -159,11 +168,23 @@ const toInfo = (item,list) => { | ... | @@ -159,11 +168,23 @@ const toInfo = (item,list) => { |
| 159 | li { | 168 | li { |
| 160 | margin-bottom: 15px; | 169 | margin-bottom: 15px; |
| 161 | } | 170 | } |
| 162 | &.en-menu{text-align: left; | 171 | |
| 163 | li{padding: 6px 0 6px 14px; | 172 | &.en-menu { |
| 164 | a{display: flex;align-items: center;} | 173 | text-align: left; |
| 174 | |||
| 175 | li { | ||
| 176 | padding: 6px 0 6px 14px; | ||
| 177 | |||
| 178 | a { | ||
| 179 | display: flex; | ||
| 180 | align-items: center; | ||
| 181 | } | ||
| 182 | } | ||
| 183 | |||
| 184 | img { | ||
| 185 | padding: 0; | ||
| 186 | width: 26px; | ||
| 165 | } | 187 | } |
| 166 | img{padding: 0;width: 26px;} | ||
| 167 | } | 188 | } |
| 168 | } | 189 | } |
| 169 | 190 | ||
| ... | @@ -179,24 +200,61 @@ li img { | ... | @@ -179,24 +200,61 @@ li img { |
| 179 | background: #000; | 200 | background: #000; |
| 180 | border-radius: 20px; | 201 | border-radius: 20px; |
| 181 | } | 202 | } |
| 203 | |||
| 182 | @media (max-width: 500px) { | 204 | @media (max-width: 500px) { |
| 183 | .pd20{padding: 8px;} | 205 | .pd20 { |
| 184 | .el-card{box-shadow: none!important; | 206 | padding: 8px; |
| 185 | :deep(.el-card__body){padding: 0!important;} | 207 | } |
| 208 | .el-card { | ||
| 209 | box-shadow: none !important; | ||
| 210 | |||
| 211 | :deep(.el-card__body) { | ||
| 212 | padding: 0 !important; | ||
| 213 | } | ||
| 214 | } | ||
| 215 | .el-col { | ||
| 216 | padding: 0 !important; | ||
| 186 | } | 217 | } |
| 187 | .el-col{padding: 0!important;} | 218 | .center-menu { |
| 188 | .center-menu{height: 100vh;padding: 20px 0;position: fixed;left: 0;z-index: 1; | 219 | height: 100vh; |
| 189 | background: #F5F7F9;top: 80px;width: 100px;border-right: 1px solid #eee; | 220 | padding: 20px 0; |
| 190 | li{font-size: 13px;padding:8px 10px;border-radius: 0; | 221 | position: fixed; |
| 191 | img{display: none} | 222 | left: 0; |
| 192 | &.active{background: #fff; | 223 | z-index: 1; |
| 224 | background: #F5F7F9; | ||
| 225 | top: 80px; | ||
| 226 | width: 100px; | ||
| 227 | border-right: 1px solid #eee; | ||
| 228 | |||
| 229 | li { | ||
| 230 | font-size: 13px; | ||
| 231 | padding: 8px 10px; | ||
| 232 | border-radius: 0; | ||
| 233 | |||
| 234 | img { | ||
| 235 | display: none | ||
| 236 | } | ||
| 237 | |||
| 238 | &.active { | ||
| 239 | background: #fff; | ||
| 193 | border-left: 2px solid var(--el-color-primary); | 240 | border-left: 2px solid var(--el-color-primary); |
| 194 | color: var(--el-color-primary);} | 241 | color: var(--el-color-primary); |
| 242 | } | ||
| 195 | } | 243 | } |
| 196 | } | 244 | } |
| 197 | .rightPart{width: calc(100vw - 100px);left: 100px;position: fixed; z-index: 1; | 245 | .rightPart { |
| 198 | height: calc(100vh - 80px);overflow: auto;top: 80px;background: #fff; | 246 | width: calc(100vw - 100px); |
| 247 | left: 100px; | ||
| 248 | position: fixed; | ||
| 249 | z-index: 1; | ||
| 250 | height: calc(100vh - 80px); | ||
| 251 | overflow: auto; | ||
| 252 | top: 80px; | ||
| 253 | background: #fff; | ||
| 199 | } | 254 | } |
| 200 | } | 255 | } |
| 201 | .app-container{min-height: 80vh;} | 256 | |
| 257 | .app-container { | ||
| 258 | min-height: 80vh; | ||
| 259 | } | ||
| 202 | </style> | 260 | </style> | ... | ... |
src/viewsPc/center/myVisa.vue
0 → 100644
| 1 | <template> | ||
| 2 | <div> | ||
| 3 | <el-card :body-style="{'padding':'0'}"> | ||
| 4 | <div class="indexTitle"> | ||
| 5 | <h3 class="leftboderTT">{{ language == 0 ? '我的签证' : 'My visa' }} | ||
| 6 | </h3> | ||
| 7 | |||
| 8 | <!-- <el-button class="fr" type="primary" plain @click="toInvoice">{{ language==0?'发票开具':'Invoice' }}</el-button>--> | ||
| 9 | <!-- <el-button class="fr" type="primary" plain @click="toInvoice">{{ language==0?'我的发票':'My Invoice' }}</el-button>--> | ||
| 10 | </div> | ||
| 11 | <el-empty v-if="list?.length == 0" :image="`/img/order_no.png`" :image-size="228"/> | ||
| 12 | |||
| 13 | <div class="pd20"> | ||
| 14 | <div v-for="b in list" class="item"> | ||
| 15 | <div class="title"> | ||
| 16 | <label class="orangeTag"> {{ b.applicatTypeName }} </label> | ||
| 17 | <span>{{ language == 0 ? '订单编号:' : 'No.' }} {{ b.id }}</span> | ||
| 18 | </div> | ||
| 19 | |||
| 20 | <div class="status-po"> | ||
| 21 | <span v-if="b.status == '0'" class="bg-gary">{{ 'Under Review' }}</span> | ||
| 22 | <span v-if="b.status == '1'" class="bg-blue">{{ 'Approved' }}</span> | ||
| 23 | <span v-if="b.status == '2'" class="bg-danger">{{ 'Rejected' }}</span> | ||
| 24 | </div> | ||
| 25 | |||
| 26 | <el-row align="middle" class="pd20 mt10" justify="space-between"> | ||
| 27 | <el-col :lg="9" :md="12" :sm="12" :xs="24"> | ||
| 28 | <div> | ||
| 29 | <h3 class="name">{{ b.fullName }}</h3> | ||
| 30 | <p>{{ b.email }}</p> | ||
| 31 | <p>{{ b.createTime }}</p> | ||
| 32 | </div> | ||
| 33 | </el-col> | ||
| 34 | <el-col :lg="3" :md="6" :sm="6" :xs="6" class="text-center"> | ||
| 35 | <span class="text-warning"> {{ b.invitationTypeName }} </span> | ||
| 36 | </el-col> | ||
| 37 | <el-col :lg="6" :md="16" :sm="16" :xs="16"> | ||
| 38 | <div class="text-right"> | ||
| 39 | <el-button class="mb10" :disabled="b.emailFlag!='1'" plain round size="small" type="primary" | ||
| 40 | @click="handleDownload(b)"> | ||
| 41 | {{ language == 0 ? '下载邀请函' : 'Download Invitation' }} | ||
| 42 | </el-button> | ||
| 43 | <el-button class="mb10" plain round size="small" type="primary" @click="goDetail(b)"> | ||
| 44 | {{ language == 0 ? '详情' : 'Detail' }} | ||
| 45 | </el-button> | ||
| 46 | </div> | ||
| 47 | </el-col> | ||
| 48 | </el-row> | ||
| 49 | </div> | ||
| 50 | </div> | ||
| 51 | </el-card> | ||
| 52 | <affix-invitation-view ref="affixInvitationRef"></affix-invitation-view> | ||
| 53 | </div> | ||
| 54 | </template> | ||
| 55 | |||
| 56 | <script setup> | ||
| 57 | import {onMounted, getCurrentInstance} from "@vue/runtime-core"; | ||
| 58 | import {useStorage} from "@vueuse/core/index"; | ||
| 59 | // import {newbilllist} from "@/apiPc/common"; | ||
| 60 | import useUserStore from "@/store/modules/user"; | ||
| 61 | // import dayjs from 'dayjs' | ||
| 62 | import {cancelOrder2, cancelOrder} from "/@/apiPc/booking"; | ||
| 63 | |||
| 64 | import {ElMessage} from "element-plus"; | ||
| 65 | import {downInvite, getUplaodFile, getVisaInfo} from "/@/apiPc/match"; | ||
| 66 | import AffixInvitationView from "/@/viewsPc/match/components/affix-invitation-view.vue"; | ||
| 67 | import {ref} from "vue"; | ||
| 68 | import {useRouter} from "vue-router"; | ||
| 69 | import {fillImgUrl} from "/@/utils/ruoyi"; | ||
| 70 | |||
| 71 | const router = useRouter() | ||
| 72 | const language = useStorage('language', 0) | ||
| 73 | const list = ref([]) | ||
| 74 | const user = useUserStore().user | ||
| 75 | const {proxy} = getCurrentInstance() | ||
| 76 | |||
| 77 | const affixInvitationRef = ref(null) | ||
| 78 | |||
| 79 | onMounted(() => { | ||
| 80 | getList() | ||
| 81 | }) | ||
| 82 | |||
| 83 | function finish(bill) { | ||
| 84 | bill.status = '2' | ||
| 85 | // getList() | ||
| 86 | } | ||
| 87 | |||
| 88 | function getList() { | ||
| 89 | getVisaInfo({userId: user.userId}).then(res => { | ||
| 90 | list.value = res.rows || [] | ||
| 91 | }) | ||
| 92 | } | ||
| 93 | |||
| 94 | function goDetail(b) { | ||
| 95 | affixInvitationRef.value.open(b) | ||
| 96 | // router.push({ | ||
| 97 | // name: 'bookingPay', | ||
| 98 | // query: { | ||
| 99 | // orderId: b.id, | ||
| 100 | // orderType: b.orderType | ||
| 101 | // } | ||
| 102 | // }) | ||
| 103 | } | ||
| 104 | |||
| 105 | function handleDownload(b) { | ||
| 106 | getUplaodFile({id: b.id}).then(res => { | ||
| 107 | window.open(fillImgUrl(res.msg), '_blank') | ||
| 108 | }) | ||
| 109 | } | ||
| 110 | |||
| 111 | function Rebook(row) { | ||
| 112 | console.log(row) | ||
| 113 | if (row.orderType == 0) { | ||
| 114 | router.push({ | ||
| 115 | name: 'hotelDetail', | ||
| 116 | params: { | ||
| 117 | cptId: row.activeId, | ||
| 118 | hotelId: row.hotelId | ||
| 119 | }, | ||
| 120 | query: { | ||
| 121 | id: row.extId | ||
| 122 | } | ||
| 123 | }) | ||
| 124 | } else { | ||
| 125 | router.push({ | ||
| 126 | name: 'ticket', | ||
| 127 | params: { | ||
| 128 | activeId: row.activeId, | ||
| 129 | } | ||
| 130 | }) | ||
| 131 | } | ||
| 132 | } | ||
| 133 | |||
| 134 | const cancel = (row) => { | ||
| 135 | //取消订单 | ||
| 136 | proxy.$modal.confirm(language.value == 0 ? '确定取消订单吗 ?' : `Are you sure to cancel the order?`).then(() => { | ||
| 137 | return cancelOrder2(row.id).then(res => { | ||
| 138 | getList() | ||
| 139 | ElMessage({ | ||
| 140 | message: language.value == 0 ? '操作成功' : 'Successful operation!', | ||
| 141 | type: 'success' | ||
| 142 | }) | ||
| 143 | }) | ||
| 144 | }) | ||
| 145 | } | ||
| 146 | |||
| 147 | const unsubscribe = (row) => { | ||
| 148 | proxy.$modal.confirm(language.value == 0 ? `确定退款吗 ?` : 'Are you sure to refund?').then(() => { | ||
| 149 | return cancelOrder(row.id).then(res => { | ||
| 150 | getList() | ||
| 151 | ElMessage({ | ||
| 152 | message: language.value == 0 ? '已提交退款,请等待审核!' : 'Refund has been submitted, please wait for review!', | ||
| 153 | type: 'success' | ||
| 154 | }) | ||
| 155 | }) | ||
| 156 | }) | ||
| 157 | } | ||
| 158 | |||
| 159 | |||
| 160 | function toInvoice() { | ||
| 161 | router.push({ | ||
| 162 | name: 'invoice' | ||
| 163 | }) | ||
| 164 | } | ||
| 165 | </script> | ||
| 166 | |||
| 167 | <style lang="scss" scoped> | ||
| 168 | .bigMoney { | ||
| 169 | font-size: 24px; | ||
| 170 | font-family: "DIN Alternate"; | ||
| 171 | } | ||
| 172 | |||
| 173 | .name { | ||
| 174 | font-size: 18px; | ||
| 175 | margin: 0; | ||
| 176 | } | ||
| 177 | |||
| 178 | .status-po { | ||
| 179 | position: absolute; | ||
| 180 | right: 0; | ||
| 181 | top: 0; | ||
| 182 | font-size: 12px; | ||
| 183 | color: #FFFFFF; | ||
| 184 | |||
| 185 | span { | ||
| 186 | border-radius: 0px 10px 0px 10px; | ||
| 187 | padding: 4px 10px; | ||
| 188 | } | ||
| 189 | |||
| 190 | .bg-danger { | ||
| 191 | background: #E60012; | ||
| 192 | } | ||
| 193 | |||
| 194 | .bg-warning { | ||
| 195 | background: #e89f39; | ||
| 196 | } | ||
| 197 | |||
| 198 | .bg-pink { | ||
| 199 | background: #F740A6; | ||
| 200 | } | ||
| 201 | |||
| 202 | .bg-primary { | ||
| 203 | background: var(--el-color-primary) | ||
| 204 | } | ||
| 205 | |||
| 206 | .bg-blue { | ||
| 207 | background: #00a0e9 | ||
| 208 | } | ||
| 209 | } | ||
| 210 | |||
| 211 | .indexTitle { | ||
| 212 | margin: 20px 0 12px; | ||
| 213 | overflow: visible; | ||
| 214 | padding: 0 20px 15px; | ||
| 215 | border-bottom: 1px solid #e5e5e5; | ||
| 216 | |||
| 217 | .fr { | ||
| 218 | margin: -8px 0 0 | ||
| 219 | } | ||
| 220 | |||
| 221 | h3 { | ||
| 222 | display: inline-block; | ||
| 223 | font-size: 16px; | ||
| 224 | color: var(--el-color-primary); | ||
| 225 | } | ||
| 226 | } | ||
| 227 | |||
| 228 | .item { | ||
| 229 | .name { | ||
| 230 | font-size: 18px; | ||
| 231 | color: #000000; | ||
| 232 | margin: 0 0 10px; | ||
| 233 | } | ||
| 234 | |||
| 235 | p { | ||
| 236 | margin: 8px 0 0; | ||
| 237 | color: #707070; | ||
| 238 | font-size: 14px; | ||
| 239 | } | ||
| 240 | |||
| 241 | margin: 0 0 20px; | ||
| 242 | border: 1px solid #E5E5E5; | ||
| 243 | border-radius: 10px; | ||
| 244 | position: relative; | ||
| 245 | |||
| 246 | .bbody { | ||
| 247 | padding: 0 15px 20px; | ||
| 248 | } | ||
| 249 | |||
| 250 | .title { | ||
| 251 | background: #F7F7F7; | ||
| 252 | border-bottom: 1px solid #E5E5E5; | ||
| 253 | |||
| 254 | span { | ||
| 255 | font-size: 14px; | ||
| 256 | color: #4C5359; | ||
| 257 | } | ||
| 258 | } | ||
| 259 | |||
| 260 | .title label { | ||
| 261 | border-radius: 5px 0 5px 0; | ||
| 262 | font-size: 12px; | ||
| 263 | color: #fff; | ||
| 264 | padding: 4px 10px; | ||
| 265 | margin-right: 10px; | ||
| 266 | } | ||
| 267 | |||
| 268 | .blueTag { | ||
| 269 | background-color: #1EC886; | ||
| 270 | } | ||
| 271 | |||
| 272 | .purpleTag { | ||
| 273 | background-color: #717bef; | ||
| 274 | } | ||
| 275 | |||
| 276 | .orangeTag { | ||
| 277 | background-color: #ff8124; | ||
| 278 | } | ||
| 279 | } | ||
| 280 | |||
| 281 | .billFoot { | ||
| 282 | .price { | ||
| 283 | width: 100%; | ||
| 284 | justify-content: space-between; | ||
| 285 | } | ||
| 286 | } | ||
| 287 | |||
| 288 | .billFoot .tip { | ||
| 289 | font-size: 24px; | ||
| 290 | color: #999; | ||
| 291 | font-weight: 500; | ||
| 292 | margin: 0 20px; | ||
| 293 | } | ||
| 294 | |||
| 295 | .status { | ||
| 296 | position: absolute; | ||
| 297 | right: 10px; | ||
| 298 | bottom: 60px; | ||
| 299 | white-space: nowrap; | ||
| 300 | |||
| 301 | .warning { | ||
| 302 | color: #ff8124; | ||
| 303 | } | ||
| 304 | |||
| 305 | .danger { | ||
| 306 | color: #da2a2a; | ||
| 307 | } | ||
| 308 | |||
| 309 | .gary { | ||
| 310 | color: #666; | ||
| 311 | } | ||
| 312 | |||
| 313 | .success { | ||
| 314 | color: #1EC886; | ||
| 315 | } | ||
| 316 | } | ||
| 317 | |||
| 318 | </style> | ||
| 319 |
| 1 | <template> | 1 | <template> |
| 2 | <div v-if="language === 0" class="itemBox"> | 2 | <div class="itemBox" v-if="language === 0"> |
| 3 | <el-row :gutter="20"> | 3 | <el-row :gutter="20"> |
| 4 | <el-col :lg="4" :sm="12" :xs="12"> | 4 | <el-col :sm="12" :lg="4" :xs="12"> |
| 5 | <div class="item" @click="popRemark(0)"><img src="@/assets/dance/btn01.png">签证服务</div> | 5 | <div class="item" @click="popRemark(0)"><img src="@/assets/dance/btn01.png">签证服务</div> |
| 6 | </el-col> | 6 | </el-col> |
| 7 | <el-col :lg="4" :sm="12" :xs="12"> | 7 | <el-col :sm="12" :lg="4" :xs="12"> |
| 8 | <div class="item" @click="popRemark(1)"><img src="@/assets/dance/btn02.png">酒店预订</div> | 8 | <div class="item" @click="popRemark(1)"><img src="@/assets/dance/btn02.png">酒店预订</div> |
| 9 | </el-col> | 9 | </el-col> |
| 10 | <el-col :lg="4" :sm="12" :xs="12"> | 10 | <el-col :sm="12" :lg="4" :xs="12"> |
| 11 | <div class="item" @click="popRemark(2)"><img src="@/assets/dance/btn03.png">接送服务</div> | 11 | <div class="item" @click="popRemark(2)"><img src="@/assets/dance/btn03.png">接送服务</div> |
| 12 | </el-col> | 12 | </el-col> |
| 13 | <el-col :lg="4" :sm="12" :xs="12"> | 13 | <el-col :sm="12" :lg="4" :xs="12"> |
| 14 | <div class="item" @click="popRemark(10)"><img src="@/assets/dance/btn04.png">票务服务</div> | 14 | <div class="item" @click="popRemark(10)"><img src="@/assets/dance/btn04.png">票务服务</div> |
| 15 | </el-col> | 15 | </el-col> |
| 16 | <el-col :lg="4" :sm="12" :xs="12"> | 16 | <el-col :sm="12" :lg="4" :xs="12"> |
| 17 | <div class="item" @click="goMedia"><img src="@/assets/dance/btn07.png">媒体注册</div> | 17 | <div class="item" @click="goMedia"><img src="@/assets/dance/btn07.png">媒体注册</div> |
| 18 | </el-col> | 18 | </el-col> |
| 19 | <!-- <el-col :sm="12" :lg="4" :xs="12">--> | 19 | <!-- <el-col :sm="12" :lg="4" :xs="12">--> |
| ... | @@ -24,27 +24,27 @@ | ... | @@ -24,27 +24,27 @@ |
| 24 | <!-- </el-col>--> | 24 | <!-- </el-col>--> |
| 25 | </el-row> | 25 | </el-row> |
| 26 | </div> | 26 | </div> |
| 27 | <div v-else class="itemBox_en"> | 27 | <div class="itemBox_en" v-else> |
| 28 | <el-row :gutter="20" justify="space-around"> | 28 | <el-row :gutter="20" justify="space-around"> |
| 29 | <el-col :lg="4" :sm="12" :xs="12"> | 29 | <el-col :sm="12" :lg="4" :xs="12"> |
| 30 | <div class="item" @click="popRemark(0)"><img src="@/assets/dance/btn01.png">Visa Services</div> | 30 | <div class="item" @click="popRemark(0)"><img src="@/assets/dance/btn01.png">Visa Services</div> |
| 31 | </el-col> | 31 | </el-col> |
| 32 | <el-col :lg="4" :sm="12" :xs="12"> | 32 | <el-col :sm="12" :lg="4" :xs="12"> |
| 33 | <div class="item" @click="popRemark(1)"><img src="@/assets/dance/btn02.png">HOTEL RESERVATION</div> | 33 | <div class="item" @click="popRemark(1)"><img src="@/assets/dance/btn02.png">HOTEL RESERVATION</div> |
| 34 | </el-col> | 34 | </el-col> |
| 35 | <el-col :lg="4" :sm="12" :xs="12"> | 35 | <el-col :sm="12" :lg="4" :xs="12"> |
| 36 | <div class="item" @click="popRemark(2)"><img src="@/assets/dance/btn03.png">TRANSPORTATION RESERVATION</div> | 36 | <div class="item" @click="popRemark(2)"><img src="@/assets/dance/btn03.png">TRANSPORTATION RESERVATION</div> |
| 37 | </el-col> | 37 | </el-col> |
| 38 | <el-col :lg="4" :sm="12" :xs="12"> | 38 | <el-col :sm="12" :lg="4" :xs="12"> |
| 39 | <div class="item" @click="popRemark(10)"><img src="@/assets/dance/btn04.png">TICKET SERVICES</div> | 39 | <div class="item" @click="popRemark(10)"><img src="@/assets/dance/btn04.png">TICKET SERVICES</div> |
| 40 | </el-col> | 40 | </el-col> |
| 41 | <el-col :lg="4" :sm="12" :xs="12"> | 41 | <el-col :sm="12" :lg="4" :xs="12"> |
| 42 | <div class="item" @click="goMedia"><img src="@/assets/dance/btn07.png">Media Registration</div> | 42 | <div class="item" @click="goMedia"><img src="@/assets/dance/btn07.png">Media Registration</div> |
| 43 | </el-col> | 43 | </el-col> |
| 44 | <!-- <el-col :sm="12" :lg="4" :xs="12">--> | 44 | <!-- <el-col :sm="12" :lg="4" :xs="12">--> |
| 45 | <!-- <div class="item" @click="goAround"><img src="@/assets/dance/btn06.png">Around Activity</div>--> | 45 | <!-- <div class="item" @click="goAround"><img src="@/assets/dance/btn06.png">Around Activity</div>--> |
| 46 | <!-- </el-col>--> | 46 | <!-- </el-col>--> |
| 47 | 47 | ||
| 48 | <!-- <el-col :sm="12" :lg="4" :xs="12">--> | 48 | <!-- <el-col :sm="12" :lg="4" :xs="12">--> |
| 49 | <!-- <div class="item" @click="liveClick"><img src="@/assets/dance/btn05.png">live streaming</div>--> | 49 | <!-- <div class="item" @click="liveClick"><img src="@/assets/dance/btn05.png">live streaming</div>--> |
| 50 | <!-- </el-col>--> | 50 | <!-- </el-col>--> |
| ... | @@ -73,6 +73,8 @@ import {getBaseInfoByActiveId} from "@/apiPc/booking"; | ... | @@ -73,6 +73,8 @@ import {getBaseInfoByActiveId} from "@/apiPc/booking"; |
| 73 | import * as match from "@/apiPc/match"; | 73 | import * as match from "@/apiPc/match"; |
| 74 | import useUserStore from "@/store/modules/user"; | 74 | import useUserStore from "@/store/modules/user"; |
| 75 | 75 | ||
| 76 | const emit = defineEmits(['pickUp']) | ||
| 77 | |||
| 76 | const props = defineProps({ | 78 | const props = defineProps({ |
| 77 | matchId: { | 79 | matchId: { |
| 78 | type: String, | 80 | type: String, |
| ... | @@ -94,12 +96,11 @@ watch(matchId, (val) => { | ... | @@ -94,12 +96,11 @@ watch(matchId, (val) => { |
| 94 | if (val && val != '0') { | 96 | if (val && val != '0') { |
| 95 | getBaseInfoByActiveId(props.matchId).then(res => { | 97 | getBaseInfoByActiveId(props.matchId).then(res => { |
| 96 | form.value = res.data || null | 98 | form.value = res.data || null |
| 97 | console.log(form.value) | ||
| 98 | }).catch(err => { | 99 | }).catch(err => { |
| 99 | console.log(err) | 100 | console.log(err) |
| 100 | form.value = null | 101 | form.value = null |
| 101 | }) | 102 | }) |
| 102 | 103 | ||
| 103 | match.getInfoByCptId({cptId: props.matchId}).then((res) => { | 104 | match.getInfoByCptId({cptId: props.matchId}).then((res) => { |
| 104 | liveData.value = res.data || {} | 105 | liveData.value = res.data || {} |
| 105 | }) | 106 | }) |
| ... | @@ -108,9 +109,9 @@ watch(matchId, (val) => { | ... | @@ -108,9 +109,9 @@ watch(matchId, (val) => { |
| 108 | 109 | ||
| 109 | const liveClick = () => { | 110 | const liveClick = () => { |
| 110 | if (liveData.value.videoStatus == "1") { | 111 | if (liveData.value.videoStatus == "1") { |
| 111 | 112 | ||
| 112 | if (language.value == 0) { | 113 | if (language.value == 0) { |
| 113 | 114 | ||
| 114 | window.open(liveData.value.videoUrlCn) | 115 | window.open(liveData.value.videoUrlCn) |
| 115 | } else { | 116 | } else { |
| 116 | window.open(liveData.value.videoUrlEn) | 117 | window.open(liveData.value.videoUrlEn) |
| ... | @@ -134,7 +135,7 @@ onMounted(() => { | ... | @@ -134,7 +135,7 @@ onMounted(() => { |
| 134 | 135 | ||
| 135 | function building() { | 136 | function building() { |
| 136 | ElMessage.warning(language.value == 0 ? '感谢您对本次比赛的关注,该服务暂无可预订信息,敬请期待。' : 'Thank you for your attention to this competition. The service is currently unavailable for booking. Please stay tuned.') | 137 | ElMessage.warning(language.value == 0 ? '感谢您对本次比赛的关注,该服务暂无可预订信息,敬请期待。' : 'Thank you for your attention to this competition. The service is currently unavailable for booking. Please stay tuned.') |
| 137 | 138 | return | |
| 138 | } | 139 | } |
| 139 | 140 | ||
| 140 | function applyInvitation() { | 141 | function applyInvitation() { |
| ... | @@ -148,19 +149,18 @@ function applyInvitation() { | ... | @@ -148,19 +149,18 @@ function applyInvitation() { |
| 148 | const user = useUserStore().user | 149 | const user = useUserStore().user |
| 149 | 150 | ||
| 150 | function goMedia() { | 151 | function goMedia() { |
| 152 | proxy.$modal.msgWarning(language.value == 0 ? '暂未开放' : 'Not yet open') | ||
| 153 | return; | ||
| 154 | |||
| 151 | //如果没登录 | 155 | //如果没登录 |
| 152 | if (form.value.isMedia == 0) { | ||
| 153 | building() | ||
| 154 | return | ||
| 155 | } | ||
| 156 | if (!user) { | 156 | if (!user) { |
| 157 | ElMessage({ | 157 | ElMessage({ |
| 158 | type: 'warning', | 158 | type: 'warning', |
| 159 | message: language.value == 0 ? '请先登录' : 'Please log in first', | 159 | message: language.value == 0 ? '请先登录' : 'Please login first', |
| 160 | }) | 160 | }) |
| 161 | return | 161 | return |
| 162 | } | 162 | } |
| 163 | 163 | ||
| 164 | proxy.$refs['mediaRegisterRef'].open({cptId: matchId.value}) | 164 | proxy.$refs['mediaRegisterRef'].open({cptId: matchId.value}) |
| 165 | } | 165 | } |
| 166 | 166 | ||
| ... | @@ -169,42 +169,45 @@ function popRemark(type) { | ... | @@ -169,42 +169,45 @@ function popRemark(type) { |
| 169 | building() | 169 | building() |
| 170 | return | 170 | return |
| 171 | } | 171 | } |
| 172 | 172 | ||
| 173 | if (type == '0') { | 173 | if (type == '0') { |
| 174 | ElMessage.warning('The visa invitation letter application will be available soon. Thank you for your patience.') | ||
| 175 | return; | ||
| 174 | // 签证 | 176 | // 签证 |
| 175 | if (language.value === 0) { | 177 | if (language.value === 0) { |
| 176 | ElMessage.warning('请切换英文页面办理') | 178 | ElMessage.warning('请切换英文页面办理') |
| 177 | return | 179 | return |
| 178 | } else { | 180 | } else { |
| 179 | if (form.value.isVisa == 0) { | ||
| 180 | building() | ||
| 181 | return | ||
| 182 | } | ||
| 183 | |||
| 184 | if (!user) { | 181 | if (!user) { |
| 185 | ElMessage({ | 182 | ElMessage({ |
| 186 | type: 'warning', | 183 | type: 'warning', |
| 187 | message: language.value == 0 ? '请先登录' : 'Please log in first', | 184 | message: language.value == 0 ? '请先登录' : 'Please login first', |
| 188 | }) | 185 | }) |
| 189 | return | 186 | return |
| 190 | } | 187 | } |
| 191 | 188 | ||
| 192 | |||
| 193 | applyInvitation() | 189 | applyInvitation() |
| 194 | return | 190 | return |
| 195 | } | 191 | } |
| 196 | } | 192 | } |
| 197 | 193 | ||
| 198 | if ((form.value.isJdView == 0 && type == '1') | 194 | if ((form.value.isJdView == 0 && type == '1') |
| 199 | || (form.value.isCarView == 0 && type == '2') | 195 | || (form.value.isCarView == 0 && type == '2') |
| 200 | || (form.value.isFoodView == 0 && type == '3') | 196 | || (form.value.isFoodView == 0 && type == '3') |
| 201 | || (form.value.isMealView == 0 && type == '4') | 197 | || (form.value.isMealView == 0 && type == '4') |
| 202 | || (form.value.isPhotoView == 0 && type == '5') | 198 | || (form.value.isPhotoView == 0 && type == '5') |
| 203 | || (form.value.isTicketView == 0 && type == '10') | 199 | || (form.value.isTicketView == 0 && type == '10') |
| 204 | ) { | 200 | ) { |
| 205 | building() | 201 | building() |
| 206 | return | 202 | return |
| 207 | } | 203 | } |
| 204 | |||
| 205 | if (type == '2') { | ||
| 206 | emit("pickUp") | ||
| 207 | return; | ||
| 208 | } | ||
| 209 | |||
| 210 | |||
| 208 | const params = { | 211 | const params = { |
| 209 | matchId: props.matchId, | 212 | matchId: props.matchId, |
| 210 | title: language.value == 0 ? '预订说明' : 'Booking Instructions', | 213 | title: language.value == 0 ? '预订说明' : 'Booking Instructions', |
| ... | @@ -214,11 +217,11 @@ function popRemark(type) { | ... | @@ -214,11 +217,11 @@ function popRemark(type) { |
| 214 | proxy.$refs['orderRemarkRef'].open(params) | 217 | proxy.$refs['orderRemarkRef'].open(params) |
| 215 | } | 218 | } |
| 216 | 219 | ||
| 217 | function goBooking(n) { | 220 | function goBooking(n, f) { |
| 218 | switch (n) { | 221 | switch (n) { |
| 219 | case 10: | 222 | case 10: |
| 220 | // 票务 | 223 | // 票务 |
| 221 | 224 | ||
| 222 | // router.push({ | 225 | // router.push({ |
| 223 | // path: `/booking/ticket/${props.matchId}`, | 226 | // path: `/booking/ticket/${props.matchId}`, |
| 224 | // params: {id:props.matchId}, | 227 | // params: {id:props.matchId}, |
| ... | @@ -227,7 +230,7 @@ function goBooking(n) { | ... | @@ -227,7 +230,7 @@ function goBooking(n) { |
| 227 | break; | 230 | break; |
| 228 | case 1: | 231 | case 1: |
| 229 | //酒店 | 232 | //酒店 |
| 230 | router.push({path: `/booking/hotel/${props.matchId}`}) | 233 | router.push({path: `/booking/hotel/${props.matchId}`, query: {flag: f}}) |
| 231 | break; | 234 | break; |
| 232 | case 2: | 235 | case 2: |
| 233 | //车辆 | 236 | //车辆 |
| ... | @@ -249,7 +252,7 @@ function goBooking(n) { | ... | @@ -249,7 +252,7 @@ function goBooking(n) { |
| 249 | } | 252 | } |
| 250 | </script> | 253 | </script> |
| 251 | 254 | ||
| 252 | <style lang="scss" scoped> | 255 | <style scoped lang="scss"> |
| 253 | .itemBox, .itemBox_en { | 256 | .itemBox, .itemBox_en { |
| 254 | padding: 20px; | 257 | padding: 20px; |
| 255 | background: #fff; | 258 | background: #fff; |
| ... | @@ -273,7 +276,7 @@ function goBooking(n) { | ... | @@ -273,7 +276,7 @@ function goBooking(n) { |
| 273 | background-size: 100% 100%; | 276 | background-size: 100% 100%; |
| 274 | border-radius: 15px; | 277 | border-radius: 15px; |
| 275 | gap: 10px; | 278 | gap: 10px; |
| 276 | 279 | ||
| 277 | img { | 280 | img { |
| 278 | object-fit: contain; | 281 | object-fit: contain; |
| 279 | width: 75px; | 282 | width: 75px; |
| ... | @@ -286,19 +289,19 @@ function goBooking(n) { | ... | @@ -286,19 +289,19 @@ function goBooking(n) { |
| 286 | text-align: center; | 289 | text-align: center; |
| 287 | text-transform: uppercase; | 290 | text-transform: uppercase; |
| 288 | height: 100%; | 291 | height: 100%; |
| 289 | 292 | ||
| 290 | img { | 293 | img { |
| 291 | position: relative; | 294 | position: relative; |
| 292 | transition: all 0.2s; | 295 | transition: all 0.2s; |
| 293 | } | 296 | } |
| 294 | 297 | ||
| 295 | &:hover { | 298 | &:hover { |
| 296 | box-shadow: 0 0 10px #eee; | 299 | box-shadow: 0 0 10px #eee; |
| 297 | 300 | ||
| 298 | img { | 301 | img { |
| 299 | transform: rotateY(180deg); | 302 | transform: rotateY(180deg); |
| 300 | } | 303 | } |
| 301 | 304 | ||
| 302 | p { | 305 | p { |
| 303 | color: #000; | 306 | color: #000; |
| 304 | } | 307 | } |
| ... | @@ -314,7 +317,7 @@ function goBooking(n) { | ... | @@ -314,7 +317,7 @@ function goBooking(n) { |
| 314 | height: auto !important; | 317 | height: auto !important; |
| 315 | padding: 15px 0; | 318 | padding: 15px 0; |
| 316 | margin: 10px 0; | 319 | margin: 10px 0; |
| 317 | 320 | ||
| 318 | img { | 321 | img { |
| 319 | width: 50px; | 322 | width: 50px; |
| 320 | height: 50px | 323 | height: 50px | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <el-dialog :title="title" v-model="show" width="400px" @close="close"> | 2 | <el-dialog :title="title" v-model="show" @close="close"> |
| 3 | <div> | 3 | <div> |
| 4 | <h2 class="text-warning text-center" v-if="cptName">{{cptName}}</h2> | 4 | <h2 class="text-warning text-center" v-if="cptName">{{cptName}}</h2> |
| 5 | 5 | ||
| ... | @@ -9,6 +9,15 @@ | ... | @@ -9,6 +9,15 @@ |
| 9 | <div v-if="type==4" class="plr20" v-html="form.reserveDesMeal"></div> | 9 | <div v-if="type==4" class="plr20" v-html="form.reserveDesMeal"></div> |
| 10 | <div v-if="type==5" class="plr20" v-html="form.reserveDesPhoto"></div> | 10 | <div v-if="type==5" class="plr20" v-html="form.reserveDesPhoto"></div> |
| 11 | <div v-if="type==10" class="plr20" v-html="form.reserveDesTitck"></div> | 11 | <div v-if="type==10" class="plr20" v-html="form.reserveDesTitck"></div> |
| 12 | |||
| 13 | |||
| 14 | <el-row v-if="type==1" justify="center"> | ||
| 15 | <el-radio-group v-model="hotelType"> | ||
| 16 | <el-radio label="0">{{language==0?'运动队酒店':'Team Hotel Reservation'}}</el-radio> | ||
| 17 | <el-radio label="1">{{language==0?'执委大会酒店':'Conference Hotel Reservation'}}</el-radio> | ||
| 18 | </el-radio-group> | ||
| 19 | </el-row> | ||
| 20 | |||
| 12 | </div> | 21 | </div> |
| 13 | <template #footer> | 22 | <template #footer> |
| 14 | <div class="dialog-footer text-center"> | 23 | <div class="dialog-footer text-center"> |
| ... | @@ -31,6 +40,8 @@ const title = ref('') | ... | @@ -31,6 +40,8 @@ const title = ref('') |
| 31 | const cptName = ref('') | 40 | const cptName = ref('') |
| 32 | const show = ref(false) | 41 | const show = ref(false) |
| 33 | const form = ref({}) | 42 | const form = ref({}) |
| 43 | const hotelType= ref('1') | ||
| 44 | |||
| 34 | let matchId = '' | 45 | let matchId = '' |
| 35 | let type = '' | 46 | let type = '' |
| 36 | const open = (params) => { | 47 | const open = (params) => { |
| ... | @@ -64,7 +75,7 @@ function ok() { | ... | @@ -64,7 +75,7 @@ function ok() { |
| 64 | // if(!user){ | 75 | // if(!user){ |
| 65 | // useUserStore().setVisitor() | 76 | // useUserStore().setVisitor() |
| 66 | // } else { | 77 | // } else { |
| 67 | emit('submit', type) | 78 | emit('submit', type, hotelType.value) |
| 68 | // } | 79 | // } |
| 69 | } | 80 | } |
| 70 | </script> | 81 | </script> | ... | ... |
| ... | @@ -22,15 +22,20 @@ | ... | @@ -22,15 +22,20 @@ |
| 22 | </div> | 22 | </div> |
| 23 | <div v-if="form.type?.some(v=>v==1)"> | 23 | <div v-if="form.type?.some(v=>v==1)"> |
| 24 | <h3 class="leftboderTT">{{ language == 0 ? '接机信息' : 'Pick-up information' }}</h3> | 24 | <h3 class="leftboderTT">{{ language == 0 ? '接机信息' : 'Pick-up information' }}</h3> |
| 25 | <el-form-item :label="language==0?'抵达人员身份':'Role of Person-Arrival'" prop="pickUpBo.standing" | 25 | <!-- <el-form-item :label="language==0?'抵达人员身份':'Role of Person-Arrival'" prop="pickUpBo.standing"--> |
| 26 | required> | 26 | <!-- required>--> |
| 27 | <el-checkbox-group v-model="form.pickUpBo.standing"> | 27 | <!-- <el-checkbox-group v-model="form.pickUpBo.standing">--> |
| 28 | <el-checkbox :label="language==0?'运动员':'Athlete'" name="1"/> | 28 | <!-- <el-checkbox :label="language==0?'运动员':'Athlete'" name="1"/>--> |
| 29 | <el-checkbox :label="language==0?'随队人员':'Accompanying Person'" name="2"/> | 29 | <!-- <el-checkbox :label="language==0?'随队人员':'Accompanying Person'" name="2"/>--> |
| 30 | <el-checkbox :label="language==0?'官员':'Official'" name="3"/> | 30 | <!-- <el-checkbox :label="language==0?'官员':'Official'" name="3"/>--> |
| 31 | <el-checkbox :label="language==0?'其他':'Others'" name="4"/> | 31 | <!-- <el-checkbox :label="language==0?'其他':'Others'" name="4"/>--> |
| 32 | </el-checkbox-group> | 32 | <!-- </el-checkbox-group>--> |
| 33 | <!-- </el-form-item>--> | ||
| 34 | |||
| 35 | <el-form-item :label="language==0?'队伍俱乐部':'Team/Club Name'" prop="pickUpBo.standing" required> | ||
| 36 | <el-input v-model="form.pickUpBo.standing"/> | ||
| 33 | </el-form-item> | 37 | </el-form-item> |
| 38 | |||
| 34 | <el-form-item :label="language==0?'国家/地区':'Country/Region'" prop="pickUpBo.nationalitys" required> | 39 | <el-form-item :label="language==0?'国家/地区':'Country/Region'" prop="pickUpBo.nationalitys" required> |
| 35 | <el-select v-model="form.pickUpBo.nationalitys" filterable multiple style="width: 100%;"> | 40 | <el-select v-model="form.pickUpBo.nationalitys" filterable multiple style="width: 100%;"> |
| 36 | <el-option v-for="item in countrys" | 41 | <el-option v-for="item in countrys" |
| ... | @@ -97,23 +102,35 @@ | ... | @@ -97,23 +102,35 @@ |
| 97 | :is-show-tip="false" | 102 | :is-show-tip="false" |
| 98 | :limit="1"/> | 103 | :limit="1"/> |
| 99 | </el-form-item> | 104 | </el-form-item> |
| 105 | |||
| 106 | <el-form-item :label="language==0?'酒店预订单':'Hotel Reservation'" prop="pickUpBo.hotleFile" required> | ||
| 107 | <image-upload v-model="form.pickUpBo.hotleFile" :button-text="language==0?'上传':'Upload'" | ||
| 108 | :is-show-tip="false" | ||
| 109 | :limit="1"/> | ||
| 110 | </el-form-item> | ||
| 111 | |||
| 100 | </div> | 112 | </div> |
| 101 | 113 | ||
| 102 | <div v-if="form.type?.some(v=>v==2)"> | 114 | <div v-if="form.type?.some(v=>v==2)"> |
| 103 | <!-- <el-form-item :label="language == 0 ? '送机信息' : 'Delivery information' ">--> | 115 | <!-- <el-form-item :label="language == 0 ? '送机信息' : 'Delivery information' ">--> |
| 104 | <!-- </el-form-item>--> | 116 | <!-- </el-form-item>--> |
| 105 | <h3 class="leftboderTT">{{ language == 0 ? '送机信息' : 'Delivery information' }}</h3> | 117 | <h3 class="leftboderTT">{{ language == 0 ? '送机信息' : 'Delivery information' }}</h3> |
| 106 | <el-form-item | 118 | <!-- <el-form-item--> |
| 107 | :label="language==0?'离会人员身份':'Role of Person-Departure'" | 119 | <!-- :label="language==0?'离会人员身份':'Role of Person-Departure'"--> |
| 108 | prop="downOffBo.standing" required> | 120 | <!-- prop="downOffBo.standing" required>--> |
| 109 | <!-- <el-input v-model="form.downOffBo.standing"/>--> | 121 | <!-- <!– <el-input v-model="form.downOffBo.standing"/>–>--> |
| 110 | <el-checkbox-group v-model="form.downOffBo.standing"> | 122 | <!-- <el-checkbox-group v-model="form.downOffBo.standing">--> |
| 111 | <el-checkbox :label="language==0?'运动员':'Athlete'" name="1"/> | 123 | <!-- <el-checkbox :label="language==0?'运动员':'Athlete'" name="1"/>--> |
| 112 | <el-checkbox :label="language==0?'随队人员':'Accompanying Person'" name="2"/> | 124 | <!-- <el-checkbox :label="language==0?'随队人员':'Accompanying Person'" name="2"/>--> |
| 113 | <el-checkbox :label="language==0?'官员':'Official'" name="3"/> | 125 | <!-- <el-checkbox :label="language==0?'官员':'Official'" name="3"/>--> |
| 114 | <el-checkbox :label="language==0?'其他':'Others'" name="4"/> | 126 | <!-- <el-checkbox :label="language==0?'其他':'Others'" name="4"/>--> |
| 115 | </el-checkbox-group> | 127 | <!-- </el-checkbox-group>--> |
| 128 | <!-- </el-form-item>--> | ||
| 129 | |||
| 130 | <el-form-item :label="language==0?'队伍俱乐部':'Team/Club Name'" prop="pickUpBo.standing" required> | ||
| 131 | <el-input v-model="form.pickUpBo.standing"/> | ||
| 116 | </el-form-item> | 132 | </el-form-item> |
| 133 | |||
| 117 | <el-form-item :label="language==0?'国家/地区':'Country/Region'" prop="downOffBo.nationalitys" required> | 134 | <el-form-item :label="language==0?'国家/地区':'Country/Region'" prop="downOffBo.nationalitys" required> |
| 118 | <el-select v-model="form.downOffBo.nationalitys" filterable multiple style="width: 100%;"> | 135 | <el-select v-model="form.downOffBo.nationalitys" filterable multiple style="width: 100%;"> |
| 119 | <el-option v-for="item in countrys" | 136 | <el-option v-for="item in countrys" |
| ... | @@ -181,6 +198,13 @@ | ... | @@ -181,6 +198,13 @@ |
| 181 | :is-show-tip="false" | 198 | :is-show-tip="false" |
| 182 | :limit="1"/> | 199 | :limit="1"/> |
| 183 | </el-form-item> | 200 | </el-form-item> |
| 201 | |||
| 202 | <el-form-item :label="language==0?'酒店预订单':'Hotel Reservation'" prop="pickUpBo.hotleFile" required> | ||
| 203 | <image-upload v-model="form.pickUpBo.hotleFile" :button-text="language==0?'上传':'Upload'" | ||
| 204 | :is-show-tip="false" | ||
| 205 | :limit="1"/> | ||
| 206 | </el-form-item> | ||
| 207 | |||
| 184 | </div> | 208 | </div> |
| 185 | 209 | ||
| 186 | <div class="text-center"> | 210 | <div class="text-center"> | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <div class="syBg"> | 2 | <div class="syBg"> |
| 3 | <div class="banner"> | 3 | <div class="banner"> |
| 4 | <el-carousel :autoplay="false" :interval="2000" arrow="hover" autoplay class="forPc" height="450px" | 4 | <el-carousel class="forPc" autoplay :interval="2000" height="450px" :autoplay="false" arrow="hover" |
| 5 | @change="carouselChange"> | 5 | @change="carouselChange"> |
| 6 | <el-carousel-item v-for="n in maList" :key="n.id" style="height: 450px;"> | 6 | <el-carousel-item style="height: 450px;" v-for="n in maList" :key="n.id"> |
| 7 | <div class="bannerItem"> | 7 | <div class="bannerItem"> |
| 8 | <div class="h100" @click.stop="goMatch(n)"> | 8 | <div class="h100" @click.stop="goMatch(n)"> |
| 9 | <img :src="fillImgUrl(n.bgImgUrl)" class="bannerImg"> | 9 | <img class="bannerImg" :src="fillImgUrl(n.bgImgUrl)"> |
| 10 | <div class="box forPc" style="position: absolute;top: 0;left: 0;right: 0;margin: auto;"> | 10 | <div class="box forPc" style="position: absolute;top: 0;left: 0;right: 0;margin: auto;"> |
| 11 | <img class="slogen" src="@/assets/logo/banner-text.png"/> | 11 | <img class="slogen" src="@/assets/logo/banner-text.png"/> |
| 12 | 12 | ||
| 13 | <div class="btabs"> | 13 | <div class="btabs"> |
| 14 | <div v-for="tab in tabList" @click.stop="goMatchWithTab(n,tab.id)">{{ tab.customTitle }}</div> | 14 | <div v-for="tab in tabList" @click.stop="goMatchWithTab(n,tab.id)">{{ tab.customTitle }}</div> |
| 15 | </div> | 15 | </div> |
| 16 | 16 | ||
| 17 | 17 | ||
| 18 | <div v-if="!liveData || liveData.videoStatus==0"> | 18 | <div v-if="!liveData || liveData.videoStatus==0"> |
| 19 | <!-- <div class="banner-count bb"></div>--> | 19 | <!-- <div class="banner-count bb"></div>--> |
| 20 | </div> | 20 | </div> |
| 21 | <div v-if="currentDateTime < liveData.videoStart&&form.isLiveVideo==1" class="banner-count" | 21 | <div class="banner-count" v-if="currentDateTime < liveData.videoStart" @click.stop="goliveUrl"> |
| 22 | @click.stop="goliveUrl"> | ||
| 23 | 距离直播开始 | 22 | 距离直播开始 |
| 24 | <van-count-down :time="liveStartTime" format="DD 天 HH 时 mm 分 ss 秒"> | 23 | <van-count-down :time="liveStartTime" format="DD 天 HH 时 mm 分 ss 秒"> |
| 25 | <template #default="timeData"> | 24 | <template #default="timeData"> |
| ... | @@ -43,34 +42,33 @@ | ... | @@ -43,34 +42,33 @@ |
| 43 | </div> | 42 | </div> |
| 44 | <!--如果有直播--> | 43 | <!--如果有直播--> |
| 45 | <div v-if="liveData&& liveData.videoStatus==1" @click.stop="goliveUrl"> | 44 | <div v-if="liveData&& liveData.videoStatus==1" @click.stop="goliveUrl"> |
| 46 | <div v-if="(currentDateTime>liveData.videoStart)&&(currentDateTime<liveData.videoEnd)" | 45 | <div class="banner-count bb" |
| 47 | class="banner-count bb">直播进行中 | 46 | v-if="(currentDateTime>liveData.videoStart)&&(currentDateTime<liveData.videoEnd)">直播进行中 |
| 48 | </div> | 47 | </div> |
| 49 | <div v-if="currentDateTime > liveData.videoEnd" class="banner-count bb">直播已结束</div> | 48 | <div class="banner-count bb" v-if="currentDateTime > liveData.videoEnd">直播已结束</div> |
| 50 | <!-- <div class="banner-count bb" v-if="currentDateTime < liveData.videoStart">直播即将开始</div>--> | 49 | <!-- <div class="banner-count bb" v-if="currentDateTime < liveData.videoStart">直播即将开始</div>--> |
| 51 | </div> | 50 | </div> |
| 52 | 51 | <div v-if="liveData&& liveData.picStatus==1" @click.stop="gopicliveUrl"> | |
| 53 | <div v-if="liveData&& liveData.picStatus==1&&form.isLivePic==1" @click.stop="gopicliveUrl"> | 52 | <div class="picliveBtn" v-if="(currentDateTime>liveData.picStart)&&(currentDateTime<liveData.picEnd)"> |
| 54 | <div v-if="(currentDateTime>liveData.picStart)&&(currentDateTime<liveData.picEnd)" class="picliveBtn"> | ||
| 55 | 图片直播中 | 53 | 图片直播中 |
| 56 | </div> | 54 | </div> |
| 57 | <div v-if="currentDateTime > liveData.picEnd" class="picliveBtn">图片直播</div> | 55 | <div class="picliveBtn" v-if="currentDateTime > liveData.picEnd">图片直播</div> |
| 58 | <div v-if="currentDateTime < liveData.picStart" class="picliveBtn">图片直播</div> | 56 | <div class="picliveBtn" v-if="currentDateTime < liveData.picStart">图片直播</div> |
| 59 | </div> | 57 | </div> |
| 60 | </div> | 58 | </div> |
| 61 | </div> | 59 | </div> |
| 62 | </div> | 60 | </div> |
| 63 | </el-carousel-item> | 61 | </el-carousel-item> |
| 64 | </el-carousel> | 62 | </el-carousel> |
| 65 | <el-carousel arrow="hover" autoplay class="forWei" height="160px" @change="carouselChange"> | 63 | <el-carousel class="forWei" height="160px" autoplay arrow="hover" @change="carouselChange"> |
| 66 | <el-carousel-item v-for="n in maList" :key="n.id" style="height: 160px;"> | 64 | <el-carousel-item style="height: 160px;" v-for="n in maList" :key="n.id"> |
| 67 | <div class="bannerItem" style="height:100%"> | 65 | <div class="bannerItem" style="height:100%"> |
| 68 | <div class="h100" style="position: relative"> | 66 | <div class="h100" style="position: relative"> |
| 69 | <img :src="fillImgUrl(n.bgImgUrl)" class="bannerImg"> | 67 | <img class="bannerImg" :src="fillImgUrl(n.bgImgUrl)"> |
| 70 | <div style="position: absolute;left: 0;right: 0;bottom: 0;margin: auto;"> | 68 | <div style="position: absolute;left: 0;right: 0;bottom: 0;margin: auto;"> |
| 71 | <!-- <img class="slogen" src="@/assets/logo/banner-text.png"/>--> | 69 | <!-- <img class="slogen" src="@/assets/logo/banner-text.png"/>--> |
| 72 | 70 | ||
| 73 | <div v-if="currentDateTime < liveData.videoStart" class="banner-count" @click="goliveUrl"> | 71 | <div class="banner-count" v-if="currentDateTime < liveData.videoStart" @click="goliveUrl"> |
| 74 | 距离直播开始 | 72 | 距离直播开始 |
| 75 | <van-count-down :time="liveStartTime" format="DD 天 HH 时 mm 分 ss 秒"> | 73 | <van-count-down :time="liveStartTime" format="DD 天 HH 时 mm 分 ss 秒"> |
| 76 | <template #default="timeData"> | 74 | <template #default="timeData"> |
| ... | @@ -93,10 +91,10 @@ | ... | @@ -93,10 +91,10 @@ |
| 93 | </van-count-down> | 91 | </van-count-down> |
| 94 | </div> | 92 | </div> |
| 95 | <div v-if="liveData&& liveData.videoStatus==1" @click.stop="goliveUrl"> | 93 | <div v-if="liveData&& liveData.videoStatus==1" @click.stop="goliveUrl"> |
| 96 | <div v-if="(currentDateTime>liveData.videoStart)&&(currentDateTime<liveData.videoEnd)" | 94 | <div class="banner-count" |
| 97 | class="banner-count">直播进行中 | 95 | v-if="(currentDateTime>liveData.videoStart)&&(currentDateTime<liveData.videoEnd)">直播进行中 |
| 98 | </div> | 96 | </div> |
| 99 | <div v-if="currentDateTime > liveData.videoEnd" class="banner-count">直播已结束</div> | 97 | <div class="banner-count" v-if="currentDateTime > liveData.videoEnd">直播已结束</div> |
| 100 | </div> | 98 | </div> |
| 101 | </div> | 99 | </div> |
| 102 | </div> | 100 | </div> |
| ... | @@ -104,18 +102,18 @@ | ... | @@ -104,18 +102,18 @@ |
| 104 | </el-carousel-item> | 102 | </el-carousel-item> |
| 105 | </el-carousel> | 103 | </el-carousel> |
| 106 | </div> | 104 | </div> |
| 107 | 105 | ||
| 108 | <div class="mb30"> | 106 | <div class="mb30"> |
| 109 | <home-weather-bar/> | 107 | <home-weather-bar/> |
| 110 | </div> | 108 | </div> |
| 111 | 109 | ||
| 112 | <div class="box"> | 110 | <div class="box"> |
| 113 | <HomeQuick :cpt-name="matchData?.name" :match-id="matchData?.id"/> | 111 | <HomeQuick :match-id="matchData?.id" :cpt-name="matchData?.name" @pick-up="handlePickup"/> |
| 114 | </div> | 112 | </div> |
| 115 | 113 | ||
| 116 | <div id="part0" class="box part"> | 114 | <div id="part0" class="box part"> |
| 117 | <el-row :gutter="20"> | 115 | <el-row :gutter="20"> |
| 118 | <el-col :lg="12" :sm="24"> | 116 | <el-col :sm="24" :lg="12"> |
| 119 | <div class="indexTitle"> | 117 | <div class="indexTitle"> |
| 120 | <h3 class="leftboderTT">通知公告</h3> | 118 | <h3 class="leftboderTT">通知公告</h3> |
| 121 | <a class="more" href="#/notice">MORE</a> | 119 | <a class="more" href="#/notice">MORE</a> |
| ... | @@ -127,7 +125,7 @@ | ... | @@ -127,7 +125,7 @@ |
| 127 | </div> | 125 | </div> |
| 128 | </el-card> | 126 | </el-card> |
| 129 | </el-col> | 127 | </el-col> |
| 130 | <el-col :lg="12" :sm="24"> | 128 | <el-col :sm="24" :lg="12"> |
| 131 | <div class="indexTitle"> | 129 | <div class="indexTitle"> |
| 132 | <h3 class="leftboderTT">竞赛日程</h3> | 130 | <h3 class="leftboderTT">竞赛日程</h3> |
| 133 | <a class="more" href="#/saiC">MORE</a> | 131 | <a class="more" href="#/saiC">MORE</a> |
| ... | @@ -137,12 +135,12 @@ | ... | @@ -137,12 +135,12 @@ |
| 137 | <home-calendar/> | 135 | <home-calendar/> |
| 138 | </el-card> | 136 | </el-card> |
| 139 | </el-col> | 137 | </el-col> |
| 140 | 138 | ||
| 141 | </el-row> | 139 | </el-row> |
| 142 | </div> | 140 | </div> |
| 143 | <!-- 新闻 --> | 141 | <!-- 新闻 --> |
| 144 | <div id="part1" class="part"> | 142 | <div id="part1" class="part"> |
| 145 | 143 | ||
| 146 | <div class="box"> | 144 | <div class="box"> |
| 147 | <div class="indexTitle"> | 145 | <div class="indexTitle"> |
| 148 | <h3 class="leftboderTT">新闻资讯</h3> | 146 | <h3 class="leftboderTT">新闻资讯</h3> |
| ... | @@ -150,9 +148,9 @@ | ... | @@ -150,9 +148,9 @@ |
| 150 | </div> | 148 | </div> |
| 151 | <el-row :gutter="20"> | 149 | <el-row :gutter="20"> |
| 152 | <el-col | 150 | <el-col |
| 153 | v-for="(n,index) in newest2" | 151 | v-for="(n,index) in newest2" |
| 154 | :key="n.id" :lg="8" :sm="8" | 152 | :key="n.id" :xs="24" :sm="8" |
| 155 | :xs="24" | 153 | :lg="8" |
| 156 | > | 154 | > |
| 157 | <div class="activeItem" @click="goDetail(n)"> | 155 | <div class="activeItem" @click="goDetail(n)"> |
| 158 | <div class="imgbox"> | 156 | <div class="imgbox"> |
| ... | @@ -215,9 +213,9 @@ | ... | @@ -215,9 +213,9 @@ |
| 215 | <el-col :lg="16"> | 213 | <el-col :lg="16"> |
| 216 | <div class="swiperPic"> | 214 | <div class="swiperPic"> |
| 217 | <swiper | 215 | <swiper |
| 218 | :autoplay="true" :loop="true" :modules="modules" :navigation="navigationPic" | 216 | class="swiper-wrapper" :modules="modules" :slides-per-view="3" :space-between="20" |
| 219 | :slides-per-view="3" | 217 | :navigation="navigationPic" |
| 220 | :space-between="20" class="swiper-wrapper" | 218 | :autoplay="true" :loop="true" |
| 221 | > | 219 | > |
| 222 | <swiper-slide v-for="(n,i) in picList" :key="i"> | 220 | <swiper-slide v-for="(n,i) in picList" :key="i"> |
| 223 | <div class="picbox" @click="goDetail(n)"> | 221 | <div class="picbox" @click="goDetail(n)"> |
| ... | @@ -231,7 +229,7 @@ | ... | @@ -231,7 +229,7 @@ |
| 231 | </el-col> | 229 | </el-col> |
| 232 | </el-row> | 230 | </el-row> |
| 233 | <el-row class="news-l-r"> | 231 | <el-row class="news-l-r"> |
| 234 | <el-col v-for="(n,index) in livelist" v-show="index>0" :lg="8"> | 232 | <el-col v-for="(n,index) in livelist" :lg="8" v-show="index>0"> |
| 235 | <div class="item" style="padding: 0;margin: 20px 0 0" @click="goDetail(n)"> | 233 | <div class="item" style="padding: 0;margin: 20px 0 0" @click="goDetail(n)"> |
| 236 | <div class="imgbox"> | 234 | <div class="imgbox"> |
| 237 | <i class="playIcon"></i> | 235 | <i class="playIcon"></i> |
| ... | @@ -249,7 +247,7 @@ | ... | @@ -249,7 +247,7 @@ |
| 249 | </el-card> | 247 | </el-card> |
| 250 | </div> | 248 | </div> |
| 251 | </div> | 249 | </div> |
| 252 | 250 | ||
| 253 | <div class="box"> | 251 | <div class="box"> |
| 254 | <el-row :gutter="20"> | 252 | <el-row :gutter="20"> |
| 255 | <el-col :lg="12"> | 253 | <el-col :lg="12"> |
| ... | @@ -263,9 +261,9 @@ | ... | @@ -263,9 +261,9 @@ |
| 263 | </div> | 261 | </div> |
| 264 | <div class="mt30 text-center"> | 262 | <div class="mt30 text-center"> |
| 265 | <a class="btn-black" href="#/about/wuDao" style="display: inline-flex;align-items: center;">了解更多<img | 263 | <a class="btn-black" href="#/about/wuDao" style="display: inline-flex;align-items: center;">了解更多<img |
| 266 | src="@/assets/v1/more.png" style="filter: brightness(2);height: 8px"/></a> | 264 | style="filter: brightness(2);height: 8px" src="@/assets/v1/more.png"/></a> |
| 267 | </div> | 265 | </div> |
| 268 | 266 | ||
| 269 | </div> | 267 | </div> |
| 270 | </el-col> | 268 | </el-col> |
| 271 | <el-col :lg="12"> | 269 | <el-col :lg="12"> |
| ... | @@ -285,20 +283,20 @@ | ... | @@ -285,20 +283,20 @@ |
| 285 | </div> | 283 | </div> |
| 286 | <div class="email"> | 284 | <div class="email"> |
| 287 | <h4>邮箱</h4> | 285 | <h4>邮箱</h4> |
| 288 | <p>info@wdsfwuxicenter.com</p> | 286 | <p>office@2025wtcwuxi.com</p> |
| 289 | </div> | 287 | </div> |
| 290 | </div> | 288 | </div> |
| 291 | </div> | 289 | </div> |
| 292 | </el-col> | 290 | </el-col> |
| 293 | </el-row> | 291 | </el-row> |
| 294 | </div> | 292 | </div> |
| 295 | 293 | ||
| 296 | <div class="box"> | 294 | <div class="box"> |
| 297 | <div class="indexTitle"> | 295 | <div class="indexTitle"> |
| 298 | <h3 class="leftboderTT">合作伙伴</h3> | 296 | <h3 class="leftboderTT">合作伙伴</h3> |
| 299 | </div> | 297 | </div> |
| 300 | <el-row :gutter="20"> | 298 | <el-row :gutter="20"> |
| 301 | <el-col v-for="p in partners" :lg="6" :sm="6" :xs="12"> | 299 | <el-col :lg="6" :sm="6" :xs="12" v-for="p in partners"> |
| 302 | <div class="logobox"> | 300 | <div class="logobox"> |
| 303 | <img :src="fillImgUrl(JSON.parse(p.picUrl))"> | 301 | <img :src="fillImgUrl(JSON.parse(p.picUrl))"> |
| 304 | </div> | 302 | </div> |
| ... | @@ -321,10 +319,8 @@ import {Autoplay, Navigation} from 'swiper' | ... | @@ -321,10 +319,8 @@ import {Autoplay, Navigation} from 'swiper' |
| 321 | import 'swiper/css' | 319 | import 'swiper/css' |
| 322 | import {dayjs, ElMessage} from 'element-plus' | 320 | import {dayjs, ElMessage} from 'element-plus' |
| 323 | import * as match from "@/apiPc/match"; | 321 | import * as match from "@/apiPc/match"; |
| 324 | // import {getAboutUs, getInfoByCptId, getppInfo, getZNList} from "@/apiPc/match"; | 322 | import {getAboutUs, getInfoByCptId, getppInfo, getZNList} from "@/apiPc/match"; |
| 325 | import HomeWeatherBar from "@/viewsPc/components/homeWeatherBar"; | 323 | import HomeWeatherBar from "@/viewsPc/components/homeWeatherBar"; |
| 326 | import {getBaseInfoByActiveId} from "@/apiPc/booking"; | ||
| 327 | |||
| 328 | 324 | ||
| 329 | const modules = [Autoplay, Navigation] | 325 | const modules = [Autoplay, Navigation] |
| 330 | const navigationPic = ref({ | 326 | const navigationPic = ref({ |
| ... | @@ -356,7 +352,6 @@ const partners = ref([]) | ... | @@ -356,7 +352,6 @@ const partners = ref([]) |
| 356 | const liveData = ref({}) | 352 | const liveData = ref({}) |
| 357 | const aboutUsContent = ref('') | 353 | const aboutUsContent = ref('') |
| 358 | const liveStartTime = ref(0) | 354 | const liveStartTime = ref(0) |
| 359 | const form = ref({}) | ||
| 360 | 355 | ||
| 361 | onMounted(() => { | 356 | onMounted(() => { |
| 362 | init() | 357 | init() |
| ... | @@ -364,44 +359,38 @@ onMounted(() => { | ... | @@ -364,44 +359,38 @@ onMounted(() => { |
| 364 | 359 | ||
| 365 | const init = () => { | 360 | const init = () => { |
| 366 | var today = dayjs().format('YYYY-MM-DD HH:mm:ss') | 361 | var today = dayjs().format('YYYY-MM-DD HH:mm:ss') |
| 367 | time.value = dayjs('2025-07-17 07:00:00').diff(today, 'millisecond') | 362 | time.value = dayjs('2024-07-17 07:00:00').diff(today, 'millisecond') |
| 368 | etime.value = dayjs('2025-07-22 12:00:00').diff(today, 'millisecond') | 363 | etime.value = dayjs('2024-07-22 12:00:00').diff(today, 'millisecond') |
| 369 | getNewsListById({ | 364 | getNewsListById({ |
| 370 | pageSize: time.value > 0 ? 3 : 4, | 365 | pageSize: time.value > 0 ? 3 : 4, |
| 371 | pageNum: 1, | 366 | pageNum: 1, |
| 372 | sortId: '30000006' | 367 | sortId: '30000006' |
| 373 | } | 368 | } |
| 374 | ).then(res => { | 369 | ).then(res => { |
| 375 | livelist.value = res.rows | 370 | livelist.value = res.rows |
| 376 | }) | 371 | }) |
| 377 | getNewsListById({ | 372 | getNewsListById({ |
| 378 | pageSize: 5, | 373 | pageSize: 5, |
| 379 | pageNum: 1, | 374 | pageNum: 1, |
| 380 | sortId: '30000007' | 375 | sortId: '30000007' |
| 381 | } | 376 | } |
| 382 | ).then(res => { | 377 | ).then(res => { |
| 383 | picList.value = res.rows | 378 | picList.value = res.rows |
| 384 | }) | 379 | }) |
| 385 | getNewsList({ | 380 | getNewsList({ |
| 386 | pageSize: 3, | 381 | pageSize: 3, |
| 387 | pageNum: 1, | 382 | pageNum: 1, |
| 388 | language: 1, | 383 | language: 1, |
| 389 | code: '1000' | 384 | code: '1000' |
| 390 | } | 385 | } |
| 391 | ).then(res => { | 386 | ).then(res => { |
| 392 | newest2.value = res.rows | 387 | newest2.value = res.rows |
| 393 | }) | 388 | }) |
| 394 | 389 | ||
| 395 | getNewsListById({pageSize: 6, pageNum: 1, sortId: '20000000'}).then(res => { | 390 | getNewsListById({pageSize: 6, pageNum: 1, sortId: '20000000'}).then(res => { |
| 396 | newsList.value = res.rows | 391 | newsList.value = res.rows |
| 397 | }) | 392 | }) |
| 398 | 393 | ||
| 399 | async function getMatchSet(id) { | ||
| 400 | const res = await getBaseInfoByActiveId(id) | ||
| 401 | form.value = res.data ?? null | ||
| 402 | console.log(form.value) | ||
| 403 | } | ||
| 404 | |||
| 405 | match.getMaList({topFlag: 1}).then((res) => { | 394 | match.getMaList({topFlag: 1}).then((res) => { |
| 406 | maList.value = res.rows | 395 | maList.value = res.rows |
| 407 | for (let n of maList.value) { | 396 | for (let n of maList.value) { |
| ... | @@ -419,9 +408,8 @@ const init = () => { | ... | @@ -419,9 +408,8 @@ const init = () => { |
| 419 | } | 408 | } |
| 420 | matchData.value = maList.value[0] | 409 | matchData.value = maList.value[0] |
| 421 | getMatchInfo(matchData.value.id) | 410 | getMatchInfo(matchData.value.id) |
| 422 | getMatchSet(matchData.value.id) | ||
| 423 | }) | 411 | }) |
| 424 | 412 | ||
| 425 | match.getLabelList().then(res => { | 413 | match.getLabelList().then(res => { |
| 426 | tabList.value = res.data | 414 | tabList.value = res.data |
| 427 | }) | 415 | }) |
| ... | @@ -526,22 +514,28 @@ const handlePickup = () => { | ... | @@ -526,22 +514,28 @@ const handlePickup = () => { |
| 526 | } | 514 | } |
| 527 | 515 | ||
| 528 | const goliveUrl = () => { | 516 | const goliveUrl = () => { |
| 529 | if (liveData.value.videoStatus == "1") { | 517 | ElMessage.warning('暂未开放') |
| 530 | window.open(liveData.value.videoUrlCn) | 518 | |
| 531 | } else { | 519 | // if (liveData.value.videoStatus == "1") { |
| 532 | ElMessage.warning('暂无直播') | 520 | // window.open(liveData.value.videoUrlCn) |
| 533 | } | 521 | // } else { |
| 522 | // ElMessage.warning('暂无直播') | ||
| 523 | // } | ||
| 534 | } | 524 | } |
| 535 | const gopicliveUrl = () => { | 525 | const gopicliveUrl = () => { |
| 526 | proxy.$modal.msgWarning('暂未开放') | ||
| 527 | return | ||
| 528 | |||
| 536 | if (liveData.value.picStatus == "1") { | 529 | if (liveData.value.picStatus == "1") { |
| 537 | window.open(liveData.value.picUrlCn) | 530 | window.open(liveData.value.picUrlCn) |
| 538 | } else { | 531 | } else { |
| 539 | ElMessage.warning('暂无直播') | 532 | ElMessage.warning('暂无直播') |
| 540 | } | 533 | } |
| 541 | } | 534 | } |
| 535 | |||
| 542 | </script> | 536 | </script> |
| 543 | 537 | ||
| 544 | <style lang="scss" scoped> | 538 | <style scoped lang="scss"> |
| 545 | .syBg { | 539 | .syBg { |
| 546 | background: url("@/assets/dance/logo_l.png") no-repeat bottom left, | 540 | background: url("@/assets/dance/logo_l.png") no-repeat bottom left, |
| 547 | url("@/assets/dance/logo_r1.png") no-repeat bottom right; | 541 | url("@/assets/dance/logo_r1.png") no-repeat bottom right; |
| ... | @@ -552,7 +546,7 @@ const gopicliveUrl = () => { | ... | @@ -552,7 +546,7 @@ const gopicliveUrl = () => { |
| 552 | position: absolute; | 546 | position: absolute; |
| 553 | bottom: 60px; | 547 | bottom: 60px; |
| 554 | gap: 10px; | 548 | gap: 10px; |
| 555 | 549 | ||
| 556 | div { | 550 | div { |
| 557 | color: #fff; | 551 | color: #fff; |
| 558 | background-color: rgba(0, 0, 0, 0.5); | 552 | background-color: rgba(0, 0, 0, 0.5); |
| ... | @@ -561,7 +555,7 @@ const gopicliveUrl = () => { | ... | @@ -561,7 +555,7 @@ const gopicliveUrl = () => { |
| 561 | border-radius: 50px; | 555 | border-radius: 50px; |
| 562 | padding: 6px 20px; | 556 | padding: 6px 20px; |
| 563 | } | 557 | } |
| 564 | 558 | ||
| 565 | div:hover { | 559 | div:hover { |
| 566 | cursor: pointer; | 560 | cursor: pointer; |
| 567 | background: #fff; | 561 | background: #fff; |
| ... | @@ -580,18 +574,18 @@ const gopicliveUrl = () => { | ... | @@ -580,18 +574,18 @@ const gopicliveUrl = () => { |
| 580 | .zn-Box { | 574 | .zn-Box { |
| 581 | .bgbg { | 575 | .bgbg { |
| 582 | padding: 5%; | 576 | padding: 5%; |
| 583 | 577 | ||
| 584 | img { | 578 | img { |
| 585 | margin: 5% 0 | 579 | margin: 5% 0 |
| 586 | } | 580 | } |
| 587 | } | 581 | } |
| 588 | 582 | ||
| 589 | .itemBox { | 583 | .itemBox { |
| 590 | padding: 20px 0; | 584 | padding: 20px 0; |
| 591 | } | 585 | } |
| 592 | 586 | ||
| 593 | border-radius: 15px; | 587 | border-radius: 15px; |
| 594 | 588 | ||
| 595 | .zn-btn { | 589 | .zn-btn { |
| 596 | background: #FFFFFF; | 590 | background: #FFFFFF; |
| 597 | font-size: 18px; | 591 | font-size: 18px; |
| ... | @@ -601,8 +595,8 @@ const gopicliveUrl = () => { | ... | @@ -601,8 +595,8 @@ const gopicliveUrl = () => { |
| 601 | display: inline-flex; | 595 | display: inline-flex; |
| 602 | align-items: center; | 596 | align-items: center; |
| 603 | } | 597 | } |
| 604 | 598 | ||
| 605 | 599 | ||
| 606 | } | 600 | } |
| 607 | 601 | ||
| 608 | .app-main { | 602 | .app-main { |
| ... | @@ -619,12 +613,12 @@ const gopicliveUrl = () => { | ... | @@ -619,12 +613,12 @@ const gopicliveUrl = () => { |
| 619 | height: 450px; | 613 | height: 450px; |
| 620 | background: #000; | 614 | background: #000; |
| 621 | position: relative; | 615 | position: relative; |
| 622 | 616 | ||
| 623 | .slogen { | 617 | .slogen { |
| 624 | position: relative; | 618 | position: relative; |
| 625 | top: 130px; | 619 | top: 130px; |
| 626 | } | 620 | } |
| 627 | 621 | ||
| 628 | .picliveBtn { | 622 | .picliveBtn { |
| 629 | position: absolute; | 623 | position: absolute; |
| 630 | cursor: pointer; | 624 | cursor: pointer; |
| ... | @@ -636,7 +630,7 @@ const gopicliveUrl = () => { | ... | @@ -636,7 +630,7 @@ const gopicliveUrl = () => { |
| 636 | border: 2px solid rgba(255, 255, 255, 0.5); | 630 | border: 2px solid rgba(255, 255, 255, 0.5); |
| 637 | border-radius: 50px; | 631 | border-radius: 50px; |
| 638 | } | 632 | } |
| 639 | 633 | ||
| 640 | .banner-count { | 634 | .banner-count { |
| 641 | cursor: pointer; | 635 | cursor: pointer; |
| 642 | position: absolute; | 636 | position: absolute; |
| ... | @@ -651,7 +645,7 @@ const gopicliveUrl = () => { | ... | @@ -651,7 +645,7 @@ const gopicliveUrl = () => { |
| 651 | flex-wrap: nowrap; | 645 | flex-wrap: nowrap; |
| 652 | right: 5%; | 646 | right: 5%; |
| 653 | color: #fff; | 647 | color: #fff; |
| 654 | 648 | ||
| 655 | .van-count-down { | 649 | .van-count-down { |
| 656 | display: flex; | 650 | display: flex; |
| 657 | color: #fff; | 651 | color: #fff; |
| ... | @@ -659,7 +653,7 @@ const gopicliveUrl = () => { | ... | @@ -659,7 +653,7 @@ const gopicliveUrl = () => { |
| 659 | width: 360px; | 653 | width: 360px; |
| 660 | font-size: 41px; | 654 | font-size: 41px; |
| 661 | } | 655 | } |
| 662 | 656 | ||
| 663 | .block { | 657 | .block { |
| 664 | color: #fff; | 658 | color: #fff; |
| 665 | text-align: center; | 659 | text-align: center; |
| ... | @@ -667,7 +661,7 @@ const gopicliveUrl = () => { | ... | @@ -667,7 +661,7 @@ const gopicliveUrl = () => { |
| 667 | font-size: 41px; | 661 | font-size: 41px; |
| 668 | font-family: DIN Alternate; | 662 | font-family: DIN Alternate; |
| 669 | } | 663 | } |
| 670 | 664 | ||
| 671 | .colon { | 665 | .colon { |
| 672 | color: #fff; | 666 | color: #fff; |
| 673 | display: block; | 667 | display: block; |
| ... | @@ -675,27 +669,27 @@ const gopicliveUrl = () => { | ... | @@ -675,27 +669,27 @@ const gopicliveUrl = () => { |
| 675 | font-size: 20px; | 669 | font-size: 20px; |
| 676 | } | 670 | } |
| 677 | } | 671 | } |
| 678 | 672 | ||
| 679 | .bb { | 673 | .bb { |
| 680 | width: 580px; | 674 | width: 580px; |
| 681 | justify-content: center; | 675 | justify-content: center; |
| 682 | height: 100px; | 676 | height: 100px; |
| 683 | font-size: 30px; | 677 | font-size: 30px; |
| 684 | } | 678 | } |
| 685 | 679 | ||
| 686 | .banner-count.bb:hover { | 680 | .banner-count.bb:hover { |
| 687 | box-shadow: 0 0 20px #453DEA; | 681 | box-shadow: 0 0 20px #453DEA; |
| 688 | border-radius: 100px; | 682 | border-radius: 100px; |
| 689 | background: #000 | 683 | background: #000 |
| 690 | } | 684 | } |
| 691 | 685 | ||
| 692 | .box { | 686 | .box { |
| 693 | position: absolute; | 687 | position: absolute; |
| 694 | height: 100%; | 688 | height: 100%; |
| 695 | left: 0; | 689 | left: 0; |
| 696 | right: 0; | 690 | right: 0; |
| 697 | } | 691 | } |
| 698 | 692 | ||
| 699 | h3 { | 693 | h3 { |
| 700 | position: absolute; | 694 | position: absolute; |
| 701 | color: #fff; | 695 | color: #fff; |
| ... | @@ -704,7 +698,7 @@ const gopicliveUrl = () => { | ... | @@ -704,7 +698,7 @@ const gopicliveUrl = () => { |
| 704 | bottom: 50px; | 698 | bottom: 50px; |
| 705 | font-size: 3vw; | 699 | font-size: 3vw; |
| 706 | } | 700 | } |
| 707 | 701 | ||
| 708 | video { | 702 | video { |
| 709 | width: 100%; | 703 | width: 100%; |
| 710 | height: 100%; | 704 | height: 100%; |
| ... | @@ -719,26 +713,26 @@ const gopicliveUrl = () => { | ... | @@ -719,26 +713,26 @@ const gopicliveUrl = () => { |
| 719 | .banner { | 713 | .banner { |
| 720 | position: relative; | 714 | position: relative; |
| 721 | margin: 0 0 30px; | 715 | margin: 0 0 30px; |
| 722 | 716 | ||
| 723 | :deep(.el-carousel__arrow) { | 717 | :deep(.el-carousel__arrow) { |
| 724 | border-radius: 0; | 718 | border-radius: 0; |
| 725 | 719 | ||
| 726 | .el-icon { | 720 | .el-icon { |
| 727 | color: transparent; | 721 | color: transparent; |
| 728 | } | 722 | } |
| 729 | 723 | ||
| 730 | &:hover { | 724 | &:hover { |
| 731 | filter: brightness(1.5) | 725 | filter: brightness(1.5) |
| 732 | } | 726 | } |
| 733 | } | 727 | } |
| 734 | 728 | ||
| 735 | :deep(.el-carousel__arrow--left) { | 729 | :deep(.el-carousel__arrow--left) { |
| 736 | background: url("@/assets/images/prev2@2x.png") no-repeat center; | 730 | background: url("@/assets/images/prev2@2x.png") no-repeat center; |
| 737 | width: 78px; | 731 | width: 78px; |
| 738 | height: 45px; | 732 | height: 45px; |
| 739 | background-size: contain; | 733 | background-size: contain; |
| 740 | } | 734 | } |
| 741 | 735 | ||
| 742 | :deep(.el-carousel__arrow--right) { | 736 | :deep(.el-carousel__arrow--right) { |
| 743 | background: url("@/assets/images/next2@2x.png") no-repeat center; | 737 | background: url("@/assets/images/next2@2x.png") no-repeat center; |
| 744 | width: 78px; | 738 | width: 78px; |
| ... | @@ -759,7 +753,7 @@ const gopicliveUrl = () => { | ... | @@ -759,7 +753,7 @@ const gopicliveUrl = () => { |
| 759 | .ggbond { | 753 | .ggbond { |
| 760 | height: 230px; | 754 | height: 230px; |
| 761 | position: relative; | 755 | position: relative; |
| 762 | 756 | ||
| 763 | img { | 757 | img { |
| 764 | height: 100%; | 758 | height: 100%; |
| 765 | object-fit: cover; | 759 | object-fit: cover; |
| ... | @@ -777,17 +771,17 @@ const gopicliveUrl = () => { | ... | @@ -777,17 +771,17 @@ const gopicliveUrl = () => { |
| 777 | position: relative; | 771 | position: relative; |
| 778 | border-radius: 10px; | 772 | border-radius: 10px; |
| 779 | overflow: hidden; | 773 | overflow: hidden; |
| 780 | 774 | ||
| 781 | .imgbox { | 775 | .imgbox { |
| 782 | background: linear-gradient(0, #C8AAFC, #fff) | 776 | background: linear-gradient(0, #C8AAFC, #fff) |
| 783 | } | 777 | } |
| 784 | 778 | ||
| 785 | img { | 779 | img { |
| 786 | height: 350px; | 780 | height: 350px; |
| 787 | width: 100%; | 781 | width: 100%; |
| 788 | object-fit: cover; | 782 | object-fit: cover; |
| 789 | } | 783 | } |
| 790 | 784 | ||
| 791 | h3 { | 785 | h3 { |
| 792 | color: #fff; | 786 | color: #fff; |
| 793 | background: url("@/assets/dance/name_bg.png") no-repeat center; | 787 | background: url("@/assets/dance/name_bg.png") no-repeat center; |
| ... | @@ -800,7 +794,7 @@ const gopicliveUrl = () => { | ... | @@ -800,7 +794,7 @@ const gopicliveUrl = () => { |
| 800 | width: 100%; | 794 | width: 100%; |
| 801 | bottom: 30px; | 795 | bottom: 30px; |
| 802 | } | 796 | } |
| 803 | 797 | ||
| 804 | p { | 798 | p { |
| 805 | text-align: center; | 799 | text-align: center; |
| 806 | margin: 25px 0 0; | 800 | margin: 25px 0 0; |
| ... | @@ -811,7 +805,7 @@ const gopicliveUrl = () => { | ... | @@ -811,7 +805,7 @@ const gopicliveUrl = () => { |
| 811 | @media screen and (max-width: 1650px) { | 805 | @media screen and (max-width: 1650px) { |
| 812 | .teacher { | 806 | .teacher { |
| 813 | height: 320px; | 807 | height: 320px; |
| 814 | 808 | ||
| 815 | .imgbox { | 809 | .imgbox { |
| 816 | img { | 810 | img { |
| 817 | height: 260px | 811 | height: 260px |
| ... | @@ -824,7 +818,7 @@ const gopicliveUrl = () => { | ... | @@ -824,7 +818,7 @@ const gopicliveUrl = () => { |
| 824 | .teacher { | 818 | .teacher { |
| 825 | height: 450px; | 819 | height: 450px; |
| 826 | margin: 0 0 20px; | 820 | margin: 0 0 20px; |
| 827 | 821 | ||
| 828 | .imgbox { | 822 | .imgbox { |
| 829 | img { | 823 | img { |
| 830 | height: 390px | 824 | height: 390px |
| ... | @@ -837,7 +831,7 @@ const gopicliveUrl = () => { | ... | @@ -837,7 +831,7 @@ const gopicliveUrl = () => { |
| 837 | .teacher { | 831 | .teacher { |
| 838 | height: 400px; | 832 | height: 400px; |
| 839 | margin: 0 0 20px; | 833 | margin: 0 0 20px; |
| 840 | 834 | ||
| 841 | .imgbox { | 835 | .imgbox { |
| 842 | img { | 836 | img { |
| 843 | height: 340px | 837 | height: 340px |
| ... | @@ -850,7 +844,7 @@ const gopicliveUrl = () => { | ... | @@ -850,7 +844,7 @@ const gopicliveUrl = () => { |
| 850 | .teacher { | 844 | .teacher { |
| 851 | height: 400px; | 845 | height: 400px; |
| 852 | margin: 0 0 20px; | 846 | margin: 0 0 20px; |
| 853 | 847 | ||
| 854 | .imgbox { | 848 | .imgbox { |
| 855 | img { | 849 | img { |
| 856 | height: 260px | 850 | height: 260px |
| ... | @@ -865,7 +859,7 @@ const gopicliveUrl = () => { | ... | @@ -865,7 +859,7 @@ const gopicliveUrl = () => { |
| 865 | background-size: cover; | 859 | background-size: cover; |
| 866 | padding: 40px 60px; | 860 | padding: 40px 60px; |
| 867 | position: relative; | 861 | position: relative; |
| 868 | 862 | ||
| 869 | .content { | 863 | .content { |
| 870 | font-size: 18px; | 864 | font-size: 18px; |
| 871 | line-height: 2.2; | 865 | line-height: 2.2; |
| ... | @@ -874,7 +868,7 @@ const gopicliveUrl = () => { | ... | @@ -874,7 +868,7 @@ const gopicliveUrl = () => { |
| 874 | text-align: left; | 868 | text-align: left; |
| 875 | text-indent: 2em; | 869 | text-indent: 2em; |
| 876 | } | 870 | } |
| 877 | 871 | ||
| 878 | .shadowbox { | 872 | .shadowbox { |
| 879 | position: absolute; | 873 | position: absolute; |
| 880 | left: 0; | 874 | left: 0; |
| ... | @@ -883,7 +877,7 @@ const gopicliveUrl = () => { | ... | @@ -883,7 +877,7 @@ const gopicliveUrl = () => { |
| 883 | width: 100%; | 877 | width: 100%; |
| 884 | background: linear-gradient(0deg, rgba(255, 255, 255, 1), rgba(255, 255, 255, 0)); | 878 | background: linear-gradient(0deg, rgba(255, 255, 255, 1), rgba(255, 255, 255, 0)); |
| 885 | } | 879 | } |
| 886 | 880 | ||
| 887 | .btn-lineG { | 881 | .btn-lineG { |
| 888 | } | 882 | } |
| 889 | } | 883 | } |
| ... | @@ -895,7 +889,7 @@ const gopicliveUrl = () => { | ... | @@ -895,7 +889,7 @@ const gopicliveUrl = () => { |
| 895 | padding: 1px; | 889 | padding: 1px; |
| 896 | position: relative; | 890 | position: relative; |
| 897 | display: flex; | 891 | display: flex; |
| 898 | 892 | ||
| 899 | .content { | 893 | .content { |
| 900 | background: #fff; | 894 | background: #fff; |
| 901 | width: 60%; | 895 | width: 60%; |
| ... | @@ -907,33 +901,33 @@ const gopicliveUrl = () => { | ... | @@ -907,33 +901,33 @@ const gopicliveUrl = () => { |
| 907 | bottom: 0; | 901 | bottom: 0; |
| 908 | margin: auto; | 902 | margin: auto; |
| 909 | } | 903 | } |
| 910 | 904 | ||
| 911 | div { | 905 | div { |
| 912 | padding-left: 60px; | 906 | padding-left: 60px; |
| 913 | } | 907 | } |
| 914 | 908 | ||
| 915 | .phone { | 909 | .phone { |
| 916 | background: url("@/assets/dance/map01.png") no-repeat left; | 910 | background: url("@/assets/dance/map01.png") no-repeat left; |
| 917 | background-size: 30px; | 911 | background-size: 30px; |
| 918 | } | 912 | } |
| 919 | 913 | ||
| 920 | .address { | 914 | .address { |
| 921 | background: url("@/assets/dance/map02.png") no-repeat left; | 915 | background: url("@/assets/dance/map02.png") no-repeat left; |
| 922 | background-size: 30px; | 916 | background-size: 30px; |
| 923 | margin: 50px 0; | 917 | margin: 50px 0; |
| 924 | } | 918 | } |
| 925 | 919 | ||
| 926 | .email { | 920 | .email { |
| 927 | background: url("@/assets/dance/map03.png") no-repeat left; | 921 | background: url("@/assets/dance/map03.png") no-repeat left; |
| 928 | background-size: 30px; | 922 | background-size: 30px; |
| 929 | } | 923 | } |
| 930 | 924 | ||
| 931 | h4 { | 925 | h4 { |
| 932 | margin: 0; | 926 | margin: 0; |
| 933 | font-size: 16px; | 927 | font-size: 16px; |
| 934 | color: #AAAAAA; | 928 | color: #AAAAAA; |
| 935 | } | 929 | } |
| 936 | 930 | ||
| 937 | p { | 931 | p { |
| 938 | margin: 13px 0 0; | 932 | margin: 13px 0 0; |
| 939 | } | 933 | } |
| ... | @@ -944,7 +938,7 @@ const gopicliveUrl = () => { | ... | @@ -944,7 +938,7 @@ const gopicliveUrl = () => { |
| 944 | height: 180px; | 938 | height: 180px; |
| 945 | border-radius: 10px; | 939 | border-radius: 10px; |
| 946 | margin: 0 0 30px; | 940 | margin: 0 0 30px; |
| 947 | 941 | ||
| 948 | img { | 942 | img { |
| 949 | width: 100%; | 943 | width: 100%; |
| 950 | height: 100%; | 944 | height: 100%; |
| ... | @@ -957,7 +951,7 @@ const gopicliveUrl = () => { | ... | @@ -957,7 +951,7 @@ const gopicliveUrl = () => { |
| 957 | position: relative; | 951 | position: relative; |
| 958 | height: 100%; | 952 | height: 100%; |
| 959 | padding: 20px 45px; | 953 | padding: 20px 45px; |
| 960 | 954 | ||
| 961 | .picprev { | 955 | .picprev { |
| 962 | position: absolute; | 956 | position: absolute; |
| 963 | left: 5px; | 957 | left: 5px; |
| ... | @@ -966,12 +960,12 @@ const gopicliveUrl = () => { | ... | @@ -966,12 +960,12 @@ const gopicliveUrl = () => { |
| 966 | margin: auto; | 960 | margin: auto; |
| 967 | height: 33px; | 961 | height: 33px; |
| 968 | cursor: pointer; | 962 | cursor: pointer; |
| 969 | 963 | ||
| 970 | &:hover { | 964 | &:hover { |
| 971 | filter: brightness(2) | 965 | filter: brightness(2) |
| 972 | } | 966 | } |
| 973 | } | 967 | } |
| 974 | 968 | ||
| 975 | .picnext { | 969 | .picnext { |
| 976 | position: absolute; | 970 | position: absolute; |
| 977 | right: 5px; | 971 | right: 5px; |
| ... | @@ -980,7 +974,7 @@ const gopicliveUrl = () => { | ... | @@ -980,7 +974,7 @@ const gopicliveUrl = () => { |
| 980 | margin: auto; | 974 | margin: auto; |
| 981 | height: 33px; | 975 | height: 33px; |
| 982 | cursor: pointer; | 976 | cursor: pointer; |
| 983 | 977 | ||
| 984 | &:hover { | 978 | &:hover { |
| 985 | filter: brightness(2) | 979 | filter: brightness(2) |
| 986 | } | 980 | } |
| ... | @@ -991,7 +985,7 @@ const gopicliveUrl = () => { | ... | @@ -991,7 +985,7 @@ const gopicliveUrl = () => { |
| 991 | .teacher { | 985 | .teacher { |
| 992 | height: 460px; | 986 | height: 460px; |
| 993 | margin: 0 0 20px; | 987 | margin: 0 0 20px; |
| 994 | 988 | ||
| 995 | img { | 989 | img { |
| 996 | height: 400px | 990 | height: 400px |
| 997 | } | 991 | } |
| ... | @@ -1002,11 +996,11 @@ const gopicliveUrl = () => { | ... | @@ -1002,11 +996,11 @@ const gopicliveUrl = () => { |
| 1002 | .box { | 996 | .box { |
| 1003 | width: 94% | 997 | width: 94% |
| 1004 | } | 998 | } |
| 1005 | 999 | ||
| 1006 | 1000 | ||
| 1007 | .calendarList { | 1001 | .calendarList { |
| 1008 | padding: 0; | 1002 | padding: 0; |
| 1009 | 1003 | ||
| 1010 | ul { | 1004 | ul { |
| 1011 | li { | 1005 | li { |
| 1012 | margin: 10px | 1006 | margin: 10px |
| ... | @@ -1022,7 +1016,7 @@ const gopicliveUrl = () => { | ... | @@ -1022,7 +1016,7 @@ const gopicliveUrl = () => { |
| 1022 | .teacher { | 1016 | .teacher { |
| 1023 | height: 320px; | 1017 | height: 320px; |
| 1024 | margin: 0 0 20px; | 1018 | margin: 0 0 20px; |
| 1025 | 1019 | ||
| 1026 | img { | 1020 | img { |
| 1027 | height: 260px | 1021 | height: 260px |
| 1028 | } | 1022 | } |
| ... | @@ -1034,17 +1028,17 @@ const gopicliveUrl = () => { | ... | @@ -1034,17 +1028,17 @@ const gopicliveUrl = () => { |
| 1034 | div { | 1028 | div { |
| 1035 | padding-left: 40px; | 1029 | padding-left: 40px; |
| 1036 | } | 1030 | } |
| 1037 | 1031 | ||
| 1038 | .content { | 1032 | .content { |
| 1039 | width: 80%; | 1033 | width: 80%; |
| 1040 | left: 10%; | 1034 | left: 10%; |
| 1041 | padding: 10px 20px 0 20px; | 1035 | padding: 10px 20px 0 20px; |
| 1042 | } | 1036 | } |
| 1043 | 1037 | ||
| 1044 | .address { | 1038 | .address { |
| 1045 | margin: 30px 0; | 1039 | margin: 30px 0; |
| 1046 | } | 1040 | } |
| 1047 | 1041 | ||
| 1048 | p { | 1042 | p { |
| 1049 | text-align: left; | 1043 | text-align: left; |
| 1050 | word-break: break-all; | 1044 | word-break: break-all; |
| ... | @@ -1059,19 +1053,19 @@ const gopicliveUrl = () => { | ... | @@ -1059,19 +1053,19 @@ const gopicliveUrl = () => { |
| 1059 | width: auto; | 1053 | width: auto; |
| 1060 | left: 0; | 1054 | left: 0; |
| 1061 | right: 0; | 1055 | right: 0; |
| 1062 | 1056 | ||
| 1063 | .van-count-down { | 1057 | .van-count-down { |
| 1064 | margin: 30px 0 0; | 1058 | margin: 30px 0 0; |
| 1065 | } | 1059 | } |
| 1066 | } | 1060 | } |
| 1067 | 1061 | ||
| 1068 | .bgbg { | 1062 | .bgbg { |
| 1069 | text-align: center; | 1063 | text-align: center; |
| 1070 | 1064 | ||
| 1071 | img { | 1065 | img { |
| 1072 | max-width: 100%; | 1066 | max-width: 100%; |
| 1073 | } | 1067 | } |
| 1074 | 1068 | ||
| 1075 | h1 { | 1069 | h1 { |
| 1076 | text-align: center | 1070 | text-align: center |
| 1077 | } | 1071 | } |
| ... | @@ -1084,7 +1078,7 @@ const gopicliveUrl = () => { | ... | @@ -1084,7 +1078,7 @@ const gopicliveUrl = () => { |
| 1084 | z-index: 2; | 1078 | z-index: 2; |
| 1085 | background: #F04035; | 1079 | background: #F04035; |
| 1086 | padding: 2px 4px; | 1080 | padding: 2px 4px; |
| 1087 | 1081 | ||
| 1088 | &::after { | 1082 | &::after { |
| 1089 | content: ''; | 1083 | content: ''; |
| 1090 | width: 0; | 1084 | width: 0; |
| ... | @@ -1095,12 +1089,12 @@ const gopicliveUrl = () => { | ... | @@ -1095,12 +1089,12 @@ const gopicliveUrl = () => { |
| 1095 | border-top: 24px solid #F04035; | 1089 | border-top: 24px solid #F04035; |
| 1096 | border-right: 15px solid transparent; | 1090 | border-right: 15px solid transparent; |
| 1097 | } | 1091 | } |
| 1098 | 1092 | ||
| 1099 | .van-count-down { | 1093 | .van-count-down { |
| 1100 | display: flex; | 1094 | display: flex; |
| 1101 | color: #fff; | 1095 | color: #fff; |
| 1102 | font-size: 14px; | 1096 | font-size: 14px; |
| 1103 | 1097 | ||
| 1104 | .block { | 1098 | .block { |
| 1105 | color: #fff; | 1099 | color: #fff; |
| 1106 | text-align: center; | 1100 | text-align: center; |
| ... | @@ -1116,7 +1110,7 @@ const gopicliveUrl = () => { | ... | @@ -1116,7 +1110,7 @@ const gopicliveUrl = () => { |
| 1116 | height: 56px; | 1110 | height: 56px; |
| 1117 | justify-content: space-between; | 1111 | justify-content: space-between; |
| 1118 | cursor: pointer; | 1112 | cursor: pointer; |
| 1119 | 1113 | ||
| 1120 | h3 { | 1114 | h3 { |
| 1121 | font-weight: 400; | 1115 | font-weight: 400; |
| 1122 | margin: 0; | 1116 | margin: 0; |
| ... | @@ -1127,13 +1121,13 @@ const gopicliveUrl = () => { | ... | @@ -1127,13 +1121,13 @@ const gopicliveUrl = () => { |
| 1127 | font-size: 18px; | 1121 | font-size: 18px; |
| 1128 | color: #030303; | 1122 | color: #030303; |
| 1129 | } | 1123 | } |
| 1130 | 1124 | ||
| 1131 | span { | 1125 | span { |
| 1132 | font-weight: 400; | 1126 | font-weight: 400; |
| 1133 | font-size: 14px; | 1127 | font-size: 14px; |
| 1134 | color: #B4B6B8; | 1128 | color: #B4B6B8; |
| 1135 | } | 1129 | } |
| 1136 | 1130 | ||
| 1137 | &:hover { | 1131 | &:hover { |
| 1138 | background: #F7F8FC; | 1132 | background: #F7F8FC; |
| 1139 | } | 1133 | } |
| ... | @@ -1148,12 +1142,12 @@ const gopicliveUrl = () => { | ... | @@ -1148,12 +1142,12 @@ const gopicliveUrl = () => { |
| 1148 | } | 1142 | } |
| 1149 | .newline { | 1143 | .newline { |
| 1150 | height: 40px; | 1144 | height: 40px; |
| 1151 | 1145 | ||
| 1152 | h3 { | 1146 | h3 { |
| 1153 | width: 70%; | 1147 | width: 70%; |
| 1154 | font-size: 14px; | 1148 | font-size: 14px; |
| 1155 | } | 1149 | } |
| 1156 | 1150 | ||
| 1157 | span { | 1151 | span { |
| 1158 | font-size: 12px; | 1152 | font-size: 12px; |
| 1159 | } | 1153 | } | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <div class="syBg"> | 2 | <div class="syBg"> |
| 3 | <div class="banner"> | 3 | <div class="banner"> |
| 4 | <el-carousel :autoplay="false" :interval="2000" arrow="hover" autoplay class="forPc" height="450px" | 4 | <el-carousel height="450px" autoplay :interval="2000" class="forPc" :autoplay="false" arrow="hover" @change="carouselChange"> |
| 5 | @change="carouselChange"> | 5 | <el-carousel-item style="height: 450px;" v-for="n in maList" :key="n.id"> |
| 6 | <el-carousel-item v-for="n in maList" :key="n.id" style="height: 450px;"> | ||
| 7 | <div class="bannerItem"> | 6 | <div class="bannerItem"> |
| 8 | <div class="h100" @click.stop="goMatch(n)"> | 7 | <div class="h100" @click.stop="goMatch(n)"> |
| 9 | <img :src="fillImgUrl(n.bgImgUrl)" class="bannerImg"> | 8 | <img class="bannerImg" :src="fillImgUrl(n.bgImgUrl)"> |
| 10 | <div class="box" style="position: absolute;top: 0;left: 0;right: 0;margin: auto;"> | 9 | <div class="box" style="position: absolute;top: 0;left: 0;right: 0;margin: auto;"> |
| 11 | <img class="slogen" src="@/assets/logo/banner-text.png"/> | 10 | <img class="slogen" src="@/assets/logo/banner-text.png"/> |
| 12 | 11 | ||
| 13 | <div class="btabs"> | 12 | <div class="btabs"> |
| 14 | <div v-for="tab in tabList" @click.stop="goMatchWithTab(n,tab.id)">{{ tab.customTitle }}</div> | 13 | <div v-for="tab in tabList" @click.stop="goMatchWithTab(n,tab.id)">{{tab.customTitle}}</div> |
| 15 | </div> | 14 | </div> |
| 16 | <div v-if="currentDateTime < liveData.videoStart&&form.isLiveVideo==1" class="banner-count" | 15 | <div class="banner-count" v-if="currentDateTime < liveData.videoStart" @click.stop="goliveUrl"> |
| 17 | @click.stop="goliveUrl"> | ||
| 18 | Live Countdown | 16 | Live Countdown |
| 19 | <van-count-down :time="liveStartTime" format="DD 天 HH 时 mm 分 ss 秒"> | 17 | <van-count-down :time="liveStartTime" format="DD 天 HH 时 mm 分 ss 秒"> |
| 20 | <template #default="timeData"> | 18 | <template #default="timeData"> |
| ... | @@ -36,13 +34,12 @@ | ... | @@ -36,13 +34,12 @@ |
| 36 | </template> | 34 | </template> |
| 37 | </van-count-down> | 35 | </van-count-down> |
| 38 | </div> | 36 | </div> |
| 39 | 37 | ||
| 40 | <div v-if="liveData&& liveData.videoStatus==1&&form.isLivePic==1" @click.stop="goliveUrl"> | 38 | <div v-if="liveData&& liveData.videoStatus==1" @click.stop="goliveUrl"> |
| 41 | <div v-if="(currentDateTime>liveData.videoStart)&&(currentDateTime<liveData.videoEnd)" | 39 | <div class="banner-count" v-if="(currentDateTime>liveData.videoStart)&&(currentDateTime<liveData.videoEnd)"> |
| 42 | class="banner-count"> | ||
| 43 | Live Now | 40 | Live Now |
| 44 | </div> | 41 | </div> |
| 45 | <div v-if="currentDateTime > liveData.videoEnd" class="banner-count"> | 42 | <div class="banner-count" v-if="currentDateTime > liveData.videoEnd"> |
| 46 | Live End | 43 | Live End |
| 47 | </div> | 44 | </div> |
| 48 | </div> | 45 | </div> |
| ... | @@ -51,40 +48,36 @@ | ... | @@ -51,40 +48,36 @@ |
| 51 | </div> | 48 | </div> |
| 52 | </el-carousel-item> | 49 | </el-carousel-item> |
| 53 | </el-carousel> | 50 | </el-carousel> |
| 54 | <el-carousel arrow="hover" autoplay class="forWei" height="160px" @change="carouselChange"> | 51 | <el-carousel class="forWei" height="160px" autoplay arrow="hover" @change="carouselChange"> |
| 55 | <el-carousel-item v-for="n in maList" :key="n.id" style="height: 160px;"> | 52 | <el-carousel-item style="height: 160px;" v-for="n in maList" :key="n.id"> |
| 56 | <div class="bannerItem" style="height:100%"> | 53 | <div class="bannerItem" style="height:100%"> |
| 57 | <div class="h100" style="position: relative"> | 54 | <div class="h100" style="position: relative"> |
| 58 | <img :src="fillImgUrl(n.bgImgUrl)" class="bannerImg"> | 55 | <img class="bannerImg" :src="fillImgUrl(n.bgImgUrl)"> |
| 59 | <div style="position: absolute;left: 0;right: 0;bottom: 0;margin: auto;"> | 56 | <div style="position: absolute;left: 0;right: 0;bottom: 0;margin: auto;"> |
| 60 | <div v-if="currentDateTime < liveData.videoStart" class="banner-count" @click="goliveUrl"> | 57 | <div class="banner-count" v-if="currentDateTime < liveData.videoStart" @click="goliveUrl"> |
| 61 | Live Countdown | 58 | Live Countdown |
| 62 | <van-count-down :time="liveStartTime" format="DD 天 HH 时 mm 分 ss 秒"> | 59 | <van-count-down :time="liveStartTime" format="DD 天 HH 时 mm 分 ss 秒"> |
| 63 | <template #default="timeData"> | 60 | <template #default="timeData"> |
| 64 | <div class="block">{{ timeData.days }} | 61 | <div class="block">{{ timeData.days }} |
| 65 | <span class="colon">Days</span> | 62 | <span class="colon">Days</span> |
| 66 | </div> | 63 | </div>: |
| 67 | : | ||
| 68 | <div class="block">{{ timeData.hours }} | 64 | <div class="block">{{ timeData.hours }} |
| 69 | <span class="colon">Hrs</span> | 65 | <span class="colon">Hrs</span> |
| 70 | </div> | 66 | </div>: |
| 71 | : | ||
| 72 | <div class="block">{{ timeData.minutes }} | 67 | <div class="block">{{ timeData.minutes }} |
| 73 | <span class="colon">Min</span> | 68 | <span class="colon">Min</span> |
| 74 | </div> | 69 | </div>: |
| 75 | : | ||
| 76 | <div class="block">{{ timeData.seconds }} | 70 | <div class="block">{{ timeData.seconds }} |
| 77 | <span class="colon">Sec</span> | 71 | <span class="colon">Sec</span> |
| 78 | </div> | 72 | </div> |
| 79 | </template> | 73 | </template> |
| 80 | </van-count-down> | 74 | </van-count-down> |
| 81 | </div> | 75 | </div> |
| 82 | <div v-if="liveData&& liveData.videoStatus==1&&form.isLivePic==1" @click.stop="goliveUrl"> | 76 | <div v-if="liveData&& liveData.videoStatus==1" @click.stop="goliveUrl"> |
| 83 | <div v-if="(currentDateTime>liveData.videoStart)&&(currentDateTime<liveData.videoEnd)" | 77 | <div class="banner-count" v-if="(currentDateTime>liveData.videoStart)&&(currentDateTime<liveData.videoEnd)"> |
| 84 | class="banner-count"> | ||
| 85 | Live Now | 78 | Live Now |
| 86 | </div> | 79 | </div> |
| 87 | <div v-if="currentDateTime > liveData.videoEnd" class="banner-count"> | 80 | <div class="banner-count" v-if="currentDateTime > liveData.videoEnd"> |
| 88 | Live End | 81 | Live End |
| 89 | </div> | 82 | </div> |
| 90 | </div> | 83 | </div> |
| ... | @@ -94,19 +87,19 @@ | ... | @@ -94,19 +87,19 @@ |
| 94 | </el-carousel-item> | 87 | </el-carousel-item> |
| 95 | </el-carousel> | 88 | </el-carousel> |
| 96 | </div> | 89 | </div> |
| 97 | 90 | ||
| 98 | <div class="mb30"> | 91 | <div class="mb30"> |
| 99 | <home-weather-bar :lang="1"/> | 92 | <home-weather-bar :lang="1"/> |
| 100 | </div> | 93 | </div> |
| 101 | 94 | ||
| 102 | <div class="box"> | 95 | <div class="box"> |
| 103 | <HomeQuick :cpt-name="matchData?.name" :match-id="matchData?.id"/> | 96 | <HomeQuick :match-id="matchData?.id" :cpt-name="matchData?.name" @pick-up="handlePickup"/> |
| 104 | </div> | 97 | </div> |
| 105 | 98 | ||
| 106 | 99 | ||
| 107 | <div id="part0" class="box part"> | 100 | <div id="part0" class="box part"> |
| 108 | <el-row :gutter="20"> | 101 | <el-row :gutter="20"> |
| 109 | <el-col :lg="12" :sm="24"> | 102 | <el-col :sm="24" :lg="12"> |
| 110 | <div class="indexTitle"> | 103 | <div class="indexTitle"> |
| 111 | <h3 class="leftboderTT">NOTICEBOARD</h3> | 104 | <h3 class="leftboderTT">NOTICEBOARD</h3> |
| 112 | <a class="more" href="#/notice">MORE</a> | 105 | <a class="more" href="#/notice">MORE</a> |
| ... | @@ -114,11 +107,11 @@ | ... | @@ -114,11 +107,11 @@ |
| 114 | <el-card :body-style="{'padding':'10px 20px 18px'}"> | 107 | <el-card :body-style="{'padding':'10px 20px 18px'}"> |
| 115 | <div v-for="(n,index) in newsList" :key="index" class="newline" @click="goDetail(n)"> | 108 | <div v-for="(n,index) in newsList" :key="index" class="newline" @click="goDetail(n)"> |
| 116 | <h3>{{ n.name }}</h3> | 109 | <h3>{{ n.name }}</h3> |
| 117 | <span class="date">{{ n.belongTime }}</span> | 110 | <span class="date">{{n.belongTime}}</span> |
| 118 | </div> | 111 | </div> |
| 119 | </el-card> | 112 | </el-card> |
| 120 | </el-col> | 113 | </el-col> |
| 121 | <el-col :lg="12" :sm="24"> | 114 | <el-col :sm="24" :lg="12"> |
| 122 | <div class="indexTitle"> | 115 | <div class="indexTitle"> |
| 123 | <h3 class="leftboderTT">COMPETITION SCHEDULE</h3> | 116 | <h3 class="leftboderTT">COMPETITION SCHEDULE</h3> |
| 124 | <a class="more" @click="gosaiC">MORE</a> | 117 | <a class="more" @click="gosaiC">MORE</a> |
| ... | @@ -128,12 +121,12 @@ | ... | @@ -128,12 +121,12 @@ |
| 128 | <home-calendar/> | 121 | <home-calendar/> |
| 129 | </el-card> | 122 | </el-card> |
| 130 | </el-col> | 123 | </el-col> |
| 131 | 124 | ||
| 132 | </el-row> | 125 | </el-row> |
| 133 | </div> | 126 | </div> |
| 134 | <!-- NEWS --> | 127 | <!-- NEWS --> |
| 135 | <div id="part1" class="part"> | 128 | <div id="part1" class="part"> |
| 136 | 129 | ||
| 137 | <div class="box"> | 130 | <div class="box"> |
| 138 | <div class="indexTitle"> | 131 | <div class="indexTitle"> |
| 139 | <h3 class="leftboderTT">NEWS</h3> | 132 | <h3 class="leftboderTT">NEWS</h3> |
| ... | @@ -142,20 +135,20 @@ | ... | @@ -142,20 +135,20 @@ |
| 142 | <el-row :gutter="20"> | 135 | <el-row :gutter="20"> |
| 143 | <el-col | 136 | <el-col |
| 144 | v-for="(n,index) in newest2" | 137 | v-for="(n,index) in newest2" |
| 145 | :key="n.id" :lg="8" :sm="8" | 138 | :key="n.id" :xs="24" :sm="8" |
| 146 | :xs="24" | 139 | :lg="8" |
| 147 | > | 140 | > |
| 148 | <div class="activeItem" @click="goNewsDetail(n)"> | 141 | <div class="activeItem" @click="goNewsDetail(n)"> |
| 149 | <div class="imgbox"> | 142 | <div class="imgbox"> |
| 150 | <img :src="fillImgUrl_webSite(n.picUrl)"> | 143 | <img :src="fillImgUrl_webSite(n.picUrl)"> |
| 151 | </div> | 144 | </div> |
| 152 | <div class="info"> | 145 | <div class="info"> |
| 153 | <div class="date"> | 146 | <div class="date"> |
| 154 | {{ n.sortName }} | {{ n.belongTime }} | 147 | {{ n.sortName }} | {{ n.belongTime }} |
| 155 | </div> | 148 | </div> |
| 156 | <h3 class="esp">{{ n.name }}</h3> | 149 | <h3 class="esp">{{ n.name }}</h3> |
| 157 | <p class="esp_2" style="height: 40px"> | 150 | <p class="esp_2" style="height: 40px"> |
| 158 | {{ n.subName }} | 151 | {{n.subName}} |
| 159 | </p> | 152 | </p> |
| 160 | <a>DETAIL</a> | 153 | <a>DETAIL</a> |
| 161 | </div> | 154 | </div> |
| ... | @@ -183,14 +176,14 @@ | ... | @@ -183,14 +176,14 @@ |
| 183 | </a> | 176 | </a> |
| 184 | </el-col> | 177 | </el-col> |
| 185 | <el-col :lg="16"> | 178 | <el-col :lg="16"> |
| 186 | 179 | ||
| 187 | <div class="swiperPic forPx"> | 180 | <div class="swiperPic forPx"> |
| 188 | <swiper | 181 | <swiper |
| 189 | :autoplay="true" :loop="true" :modules="modules" :navigation="navigationPic" | 182 | class="swiper-wrapper" :modules="modules" :slides-per-view="3" :space-between="20" |
| 190 | :slides-per-view="3" | 183 | :navigation="navigationPic" |
| 191 | :space-between="20" class="swiper-wrapper" | 184 | :autoplay="true" :loop="true" |
| 192 | > | 185 | > |
| 193 | <swiper-slide v-for="(n,i) in picList" :key="i"> | 186 | <swiper-slide v-for="(n,i) in picList" :key="i" > |
| 194 | <div class="picbox" @click="goNewsDetail(n)"> | 187 | <div class="picbox" @click="goNewsDetail(n)"> |
| 195 | <img :src="fillImgUrl_webSite(n.picUrl)"> | 188 | <img :src="fillImgUrl_webSite(n.picUrl)"> |
| 196 | </div> | 189 | </div> |
| ... | @@ -199,30 +192,29 @@ | ... | @@ -199,30 +192,29 @@ |
| 199 | <div class="picprev"><img src="@/assets/dance/prev1.png"></div> | 192 | <div class="picprev"><img src="@/assets/dance/prev1.png"></div> |
| 200 | <div class="picnext"><img src="@/assets/dance/next1.png"></div> | 193 | <div class="picnext"><img src="@/assets/dance/next1.png"></div> |
| 201 | </div> | 194 | </div> |
| 202 | 195 | ||
| 203 | </el-col> | 196 | </el-col> |
| 204 | </el-row> | 197 | </el-row> |
| 205 | <el-row class="news-l-r"> | 198 | <el-row class="news-l-r"> |
| 206 | <el-col v-for="(n,index) in livelist" v-show="index>0" :lg="8"> | 199 | <el-col v-for="(n,index) in livelist" v-show="index>0" :lg="8"> |
| 207 | <div class="item" style="padding: 0;margin: 20px 0 0" @click="goNewsDetail(n)"> | 200 | <div class="item" style="padding: 0;margin: 20px 0 0" @click="goNewsDetail(n)"> |
| 208 | <div class="imgbox"> | 201 | <div class="imgbox"> |
| 209 | <i class="playIcon"/> | 202 | <i class="playIcon" /> |
| 210 | <img :src="fillImgUrl_webSite(n.picUrl)"></div> | 203 | <img :src="fillImgUrl_webSite(n.picUrl)"></div> |
| 211 | <div class="info"> | 204 | <div class="info"> |
| 212 | <div class="text-primary small-size"> | 205 | <div class="text-primary small-size"> |
| 213 | <span v-if="n.subName">{{ n.subName + ' | ' }}</span> | 206 | <span v-if="n.subName">{{n.subName + ' | '}}</span> |
| 214 | {{ n.belongTime }} | 207 | {{ n.belongTime }}</div> |
| 215 | </div> | ||
| 216 | <h2 class="esp_2">{{ n.name }}</h2> | 208 | <h2 class="esp_2">{{ n.name }}</h2> |
| 217 | </div> | 209 | </div> |
| 218 | </div> | 210 | </div> |
| 219 | </el-col> | 211 | </el-col> |
| 220 | </el-row> | 212 | </el-row> |
| 221 | </el-card> | 213 | </el-card> |
| 222 | 214 | ||
| 223 | </div> | 215 | </div> |
| 224 | </div> | 216 | </div> |
| 225 | 217 | ||
| 226 | <div hidden> | 218 | <div hidden> |
| 227 | <div class="box"> | 219 | <div class="box"> |
| 228 | <div class="indexTitle"> | 220 | <div class="indexTitle"> |
| ... | @@ -230,8 +222,8 @@ | ... | @@ -230,8 +222,8 @@ |
| 230 | </div> | 222 | </div> |
| 231 | <el-row :gutter="20"> | 223 | <el-row :gutter="20"> |
| 232 | <el-col | 224 | <el-col |
| 233 | v-for="n in personList" :key="n.name" :lg="4" :sm="8" :xl="4" | 225 | v-for="n in personList" :key="n.name" :sm="8" :xl="4" :xs="12" |
| 234 | :xs="12" | 226 | :lg="4" |
| 235 | > | 227 | > |
| 236 | <div class="teacher"> | 228 | <div class="teacher"> |
| 237 | <div class="imgbox"><img :src="n.src"></div> | 229 | <div class="imgbox"><img :src="n.src"></div> |
| ... | @@ -242,7 +234,7 @@ | ... | @@ -242,7 +234,7 @@ |
| 242 | </el-row> | 234 | </el-row> |
| 243 | </div> | 235 | </div> |
| 244 | </div> | 236 | </div> |
| 245 | 237 | ||
| 246 | <div class="box"> | 238 | <div class="box"> |
| 247 | <el-row :gutter="20"> | 239 | <el-row :gutter="20"> |
| 248 | <el-col :lg="12"> | 240 | <el-col :lg="12"> |
| ... | @@ -253,19 +245,18 @@ | ... | @@ -253,19 +245,18 @@ |
| 253 | <div class="aboutBox"> | 245 | <div class="aboutBox"> |
| 254 | <div class="content"> | 246 | <div class="content"> |
| 255 | <div v-html="aboutUsContent"></div> | 247 | <div v-html="aboutUsContent"></div> |
| 256 | <div class="shadowbox"/> | 248 | <div class="shadowbox" /> |
| 257 | </div> | 249 | </div> |
| 258 | <div class="mt30 text-center"> | 250 | <div class="mt30 text-center"> |
| 259 | <a class="btn-lineG" href="#/about/wuDao" style="display: inline-flex;align-items: center;">Learn more | 251 | <a class="btn-lineG" href="#/about/wuDao" style="display: inline-flex;align-items: center;">Learn more <img style="filter: brightness(2);height: 8px;margin-left: 10px" src="@/assets/v1/more.png"></a> |
| 260 | <img src="@/assets/v1/more.png" style="filter: brightness(2);height: 8px;margin-left: 10px"></a> | ||
| 261 | </div> | 252 | </div> |
| 262 | 253 | ||
| 263 | </div> | 254 | </div> |
| 264 | </el-col> | 255 | </el-col> |
| 265 | <el-col :lg="12"> | 256 | <el-col :lg="12"> |
| 266 | <div class="indexTitle"> | 257 | <div class="indexTitle"> |
| 267 | <h3 class="leftboderTT">CONTACT US</h3> | 258 | <h3 class="leftboderTT">CONTACT US</h3> |
| 268 | <a class="more" href="#/about/wuDao" style="filter: brightness(10)">MORE</a> | 259 | <a class="more" style="filter: brightness(10)" href="#/about/wuDao">MORE</a> |
| 269 | </div> | 260 | </div> |
| 270 | <div class="mapBox"> | 261 | <div class="mapBox"> |
| 271 | <div class="content"> | 262 | <div class="content"> |
| ... | @@ -279,40 +270,40 @@ | ... | @@ -279,40 +270,40 @@ |
| 279 | </div> | 270 | </div> |
| 280 | <div class="email"> | 271 | <div class="email"> |
| 281 | <h4>Email</h4> | 272 | <h4>Email</h4> |
| 282 | <p>info@wdsfwuxicenter.com</p> | 273 | <p>office@2025wtcwuxi.com</p> |
| 283 | </div> | 274 | </div> |
| 284 | </div> | 275 | </div> |
| 285 | </div> | 276 | </div> |
| 286 | </el-col> | 277 | </el-col> |
| 287 | </el-row> | 278 | </el-row> |
| 288 | </div> | 279 | </div> |
| 289 | 280 | ||
| 290 | <div class="box"> | 281 | <div class="box"> |
| 291 | <div class="indexTitle"> | 282 | <div class="indexTitle"> |
| 292 | <h3 class="leftboderTT">PARTNERS</h3> | 283 | <h3 class="leftboderTT">PARTNERS</h3> |
| 293 | </div> | 284 | </div> |
| 294 | <el-row :gutter="20"> | 285 | <el-row :gutter="20"> |
| 295 | <el-col v-for="p in partners" :lg="6" :sm="12" :xs="6"> | 286 | <el-col :lg="6" :sm="12" :xs="6" v-for="p in partners"> |
| 296 | <div class="logobox"> | 287 | <div class="logobox"> |
| 297 | <img :src="fillImgUrl(JSON.parse(p.picUrl))"> | 288 | <img :src="fillImgUrl(JSON.parse(p.picUrl))"> |
| 298 | </div> | 289 | </div> |
| 299 | </el-col> | 290 | </el-col> |
| 300 | </el-row> | 291 | </el-row> |
| 301 | </div> | 292 | </div> |
| 302 | 293 | ||
| 303 | 294 | ||
| 304 | </div> | 295 | </div> |
| 305 | </template> | 296 | </template> |
| 306 | <script setup> | 297 | <script setup> |
| 307 | import {ref, nextTick, onMounted, watch} from 'vue' | 298 | import { ref, nextTick, onMounted, watch } from 'vue' |
| 308 | import {getCurrentInstance} from '@vue/runtime-core' | 299 | import { getCurrentInstance } from '@vue/runtime-core' |
| 309 | import {getNewsListById, getNewsList, getWeather} from '@/apiPc/webSite' | 300 | import { getNewsListById, getNewsList,getWeather} from '@/apiPc/webSite' |
| 310 | import {useRouter} from 'vue-router' | 301 | import { useRouter } from 'vue-router' |
| 311 | import _ from 'lodash' | 302 | import _ from 'lodash' |
| 312 | import HomeQuick from '@/viewsPc/components/homeQuick' | 303 | import HomeQuick from '@/viewsPc/components/homeQuick' |
| 313 | import HomeCalendar from '@/viewsPc/components/homeCalendar' | 304 | import HomeCalendar from '@/viewsPc/components/homeCalendar' |
| 314 | import {Swiper, SwiperSlide} from 'swiper/vue' | 305 | import { Swiper, SwiperSlide } from 'swiper/vue' |
| 315 | import {Autoplay, Navigation} from 'swiper' | 306 | import { Autoplay, Navigation } from 'swiper' |
| 316 | import 'swiper/css' | 307 | import 'swiper/css' |
| 317 | import {dayjs, ElMessage} from 'element-plus' | 308 | import {dayjs, ElMessage} from 'element-plus' |
| 318 | import * as match from "@/apiPc/match"; | 309 | import * as match from "@/apiPc/match"; |
| ... | @@ -320,26 +311,24 @@ import HomeWeatherBar from "@/viewsPc/components/homeWeatherBar"; | ... | @@ -320,26 +311,24 @@ import HomeWeatherBar from "@/viewsPc/components/homeWeatherBar"; |
| 320 | 311 | ||
| 321 | 312 | ||
| 322 | import {rankList} from '@/assets/js/data' | 313 | import {rankList} from '@/assets/js/data' |
| 323 | import {getBaseInfoByActiveId} from "/@/apiPc/booking"; | ||
| 324 | |||
| 325 | const modules = [Autoplay, Navigation] | 314 | const modules = [Autoplay, Navigation] |
| 326 | const navigationPic = ref({ | 315 | const navigationPic = ref({ |
| 327 | nextEl: '.picnext', | 316 | nextEl: '.picnext', |
| 328 | prevEl: '.picprev' | 317 | prevEl: '.picprev' |
| 329 | }) | 318 | }) |
| 330 | const router = useRouter() | 319 | const router = useRouter() |
| 331 | const {proxy} = getCurrentInstance() | 320 | const { proxy } = getCurrentInstance() |
| 332 | const emit = defineEmits(['pop', 'backNumber', 'schSearch']) | 321 | const emit = defineEmits(['pop','backNumber','schSearch']) |
| 333 | const time = ref(0) | 322 | const time = ref(0) |
| 334 | const etime = ref(0) | 323 | const etime = ref(0) |
| 335 | 324 | ||
| 336 | const personList = ref([ | 325 | const personList = ref([ |
| 337 | {name: 'Wolfgang Eliasch', pp: 'Chairperson for Latin AUT', src: '/img/1.png'}, | 326 | { name: 'Wolfgang Eliasch', pp: 'Chairperson for Latin AUT', src: '/img/1.png' }, |
| 338 | {name: 'Nenad Jeftic', pp: 'Chairperson for Standard SRB', src: '/img/2.png'}, | 327 | { name: 'Nenad Jeftic', pp: 'Chairperson for Standard SRB', src: '/img/2.png' }, |
| 339 | {name: 'Dorel Bagiu', pp: 'ROU', src: '/img/3.png'}, | 328 | { name: 'Dorel Bagiu', pp: 'ROU', src: '/img/3.png' }, |
| 340 | {name: 'Eduard Korotin', pp: ' EST', src: '/img/4.png'}, | 329 | { name: 'Eduard Korotin', pp: ' EST', src: '/img/4.png' }, |
| 341 | {name: 'Ana Cristina Silva', pp: 'POR', src: '/img/5.png'}, | 330 | { name: 'Ana Cristina Silva', pp: 'POR', src: '/img/5.png'}, |
| 342 | {name: 'Dallas Leslie Williams', pp: 'Scrutineer AUS', src: '/img/6.png'} | 331 | { name: 'Dallas Leslie Williams', pp: 'Scrutineer AUS', src: '/img/6.png' } |
| 343 | ]) | 332 | ]) |
| 344 | const activeNews = ref(0) | 333 | const activeNews = ref(0) |
| 345 | const banners = ref([]) | 334 | const banners = ref([]) |
| ... | @@ -363,7 +352,7 @@ const newsList = ref([]) | ... | @@ -363,7 +352,7 @@ const newsList = ref([]) |
| 363 | const currentDateTime = dayjs().format('YYYY-MM-DD HH:mm:ss') | 352 | const currentDateTime = dayjs().format('YYYY-MM-DD HH:mm:ss') |
| 364 | const liveStartTime = ref(0) | 353 | const liveStartTime = ref(0) |
| 365 | const liveData = ref({}) | 354 | const liveData = ref({}) |
| 366 | const form = ref({}) | 355 | |
| 367 | const matchData = ref({}) | 356 | const matchData = ref({}) |
| 368 | onMounted(() => { | 357 | onMounted(() => { |
| 369 | init() | 358 | init() |
| ... | @@ -371,68 +360,53 @@ onMounted(() => { | ... | @@ -371,68 +360,53 @@ onMounted(() => { |
| 371 | 360 | ||
| 372 | const init = () => { | 361 | const init = () => { |
| 373 | var today = dayjs().format('YYYY-MM-DD HH:mm:ss') | 362 | var today = dayjs().format('YYYY-MM-DD HH:mm:ss') |
| 374 | getNewsListById({pageSize: 6, pageNum: 1, sortId: '20000001'}).then(res => { | 363 | getNewsListById({pageSize: 6, pageNum: 1,sortId: '20000001'}).then(res => { |
| 375 | newsList.value = res.rows | 364 | newsList.value = res.rows |
| 376 | }) | 365 | }) |
| 377 | getNewsListById( | 366 | getNewsListById( |
| 378 | { | 367 | { pageSize: 4, |
| 379 | pageSize: 4, | ||
| 380 | pageNum: 1, | 368 | pageNum: 1, |
| 381 | sortId: '30000008' | 369 | sortId: '30000008' } |
| 382 | } | ||
| 383 | ).then(res => { | 370 | ).then(res => { |
| 384 | livelist.value = res.rows | 371 | livelist.value = res.rows |
| 385 | }) | 372 | }) |
| 386 | getNewsListById({ | 373 | getNewsListById({ pageSize: 5, |
| 387 | pageSize: 5, | ||
| 388 | pageNum: 1, | 374 | pageNum: 1, |
| 389 | sortId: '30000009' | 375 | sortId: '30000009' } |
| 390 | } | ||
| 391 | ).then(res => { | 376 | ).then(res => { |
| 392 | picList.value = res.rows | 377 | picList.value = res.rows |
| 393 | }) | 378 | }) |
| 394 | getNewsList({ | 379 | getNewsList({ pageSize: 3, |
| 395 | pageSize: 3, | 380 | pageNum: 1, |
| 396 | pageNum: 1, | 381 | language:2, |
| 397 | language: 2, | 382 | code: '1000' } |
| 398 | code: '1000' | ||
| 399 | } | ||
| 400 | ).then(res => { | 383 | ).then(res => { |
| 401 | newest2.value = res.rows | 384 | newest2.value = res.rows |
| 402 | }) | 385 | }) |
| 403 | match.getMaList({topFlag: 1}).then((res) => { | 386 | match.getMaList({topFlag:1}).then((res) => { |
| 404 | maList.value = res.rows | 387 | maList.value = res.rows |
| 405 | matchData.value = maList.value[0] | 388 | matchData.value = maList.value[0] |
| 406 | getMatchInfo(matchData.value.id) | 389 | getMatchInfo(matchData.value.id) |
| 407 | getMatchSet(matchData.value.id) | ||
| 408 | }) | 390 | }) |
| 409 | match.getLabelList().then(res => { | 391 | match.getLabelList().then(res=> { |
| 410 | tabList.value = res.data | 392 | tabList.value = res.data |
| 411 | }) | 393 | }) |
| 412 | 394 | ||
| 413 | getpartners() | 395 | getpartners() |
| 414 | } | 396 | } |
| 415 | const getMatchInfo = (id) => { | 397 | const getMatchInfo = (id) => { |
| 416 | match.getInfoByCptId({cptId: id}).then((res) => { | 398 | match.getInfoByCptId({ cptId:id }).then((res) => { |
| 417 | liveData.value = res.data || {} | 399 | liveData.value = res.data || {} |
| 418 | console.log(333333, liveData.value) | 400 | if(liveData.value.videoStart){ |
| 419 | if (liveData.value.videoStart) { | ||
| 420 | liveStartTime.value = dayjs(liveData.value.videoStart).diff(currentDateTime.value, 'millisecond') | 401 | liveStartTime.value = dayjs(liveData.value.videoStart).diff(currentDateTime.value, 'millisecond') |
| 421 | } | 402 | } |
| 422 | }) | 403 | }) |
| 423 | } | 404 | } |
| 424 | |||
| 425 | async function getMatchSet(id) { | ||
| 426 | const res = await getBaseInfoByActiveId(id) | ||
| 427 | form.value = res.data ?? null | ||
| 428 | console.log(form.value) | ||
| 429 | } | ||
| 430 | |||
| 431 | const getpartners = () => { | 405 | const getpartners = () => { |
| 432 | match.getAboutUs().then((res) => { | 406 | match.getAboutUs().then((res) => { |
| 433 | aboutUsContent.value = res.data.contextEn | 407 | aboutUsContent.value = res.data.contextEn |
| 434 | }) | 408 | }) |
| 435 | match.getZNList({sortId: '2000', language: 2}).then((res) => { | 409 | match.getZNList({sortId:'2000',language:2}).then((res) => { |
| 436 | partners.value = res.rows | 410 | partners.value = res.rows |
| 437 | }) | 411 | }) |
| 438 | } | 412 | } |
| ... | @@ -485,48 +459,49 @@ const building = () => { | ... | @@ -485,48 +459,49 @@ const building = () => { |
| 485 | const goGuide = () => { | 459 | const goGuide = () => { |
| 486 | router.push({ | 460 | router.push({ |
| 487 | path: `/guide`, | 461 | path: `/guide`, |
| 488 | query: { | 462 | query:{ |
| 489 | index: 8 | 463 | index:8 |
| 490 | } | 464 | } |
| 491 | }) | 465 | }) |
| 492 | } | 466 | } |
| 493 | const popMaster = () => { | 467 | const popMaster = () => { |
| 494 | var params = { | 468 | var params = { |
| 495 | cptId: matchData.value.id | 469 | cptId:matchData.value.id |
| 496 | } | 470 | } |
| 497 | emit('pop', params) | 471 | emit('pop',params) |
| 498 | } | 472 | } |
| 499 | const backNumberSearch = () => { | 473 | const backNumberSearch = () => { |
| 500 | var params = { | 474 | var params = { |
| 501 | cptId: matchData.value.id | 475 | cptId:matchData.value.id |
| 502 | } | 476 | } |
| 503 | emit('backNumber', params) | 477 | emit('backNumber',params) |
| 504 | } | 478 | } |
| 505 | const schSearchSearch = () => { | 479 | const schSearchSearch = () => { |
| 506 | var params = { | 480 | var params = { |
| 507 | cptId: matchData.value.id | 481 | cptId:matchData.value.id |
| 508 | } | 482 | } |
| 509 | emit('schSearch', params) | 483 | emit('schSearch',params) |
| 510 | } | 484 | } |
| 511 | const handlePickup = () => { | 485 | const handlePickup=()=>{ |
| 512 | const params = { | 486 | const params={ |
| 513 | cptId: matchData.value.id | 487 | cptId :matchData.value.id |
| 514 | } | 488 | } |
| 515 | emit('pickup', params) | 489 | emit('pickup',params) |
| 516 | } | 490 | } |
| 517 | 491 | ||
| 518 | const goliveUrl = () => { | 492 | const goliveUrl = () => { |
| 519 | if (liveData.value.videoStatus == "1") { | 493 | ElMessage.warning('This function is temporarily closed.' ) |
| 520 | window.open(liveData.value.videoUrlCn) | 494 | // if (liveData.value.videoStatus=="1") { |
| 521 | } else { | 495 | // window.open(liveData.value.videoUrlCn) |
| 522 | ElMessage.warning('No live') | 496 | // } else { |
| 523 | } | 497 | // ElMessage.warning('No live' ) |
| 498 | // } | ||
| 524 | } | 499 | } |
| 525 | const gopicliveUrl = () => { | 500 | const gopicliveUrl = () => { |
| 526 | if (liveData.value.picStatus == "1") { | 501 | if (liveData.value.picStatus=="1") { |
| 527 | window.open(liveData.value.picUrlCn) | 502 | window.open(liveData.value.picUrlCn) |
| 528 | } else { | 503 | } else { |
| 529 | ElMessage.warning('No live') | 504 | ElMessage.warning( 'No live' ) |
| 530 | } | 505 | } |
| 531 | } | 506 | } |
| 532 | 507 | ||
| ... | @@ -541,110 +516,46 @@ const goDetail = (n) => { | ... | @@ -541,110 +516,46 @@ const goDetail = (n) => { |
| 541 | } | 516 | } |
| 542 | </script> | 517 | </script> |
| 543 | 518 | ||
| 544 | <style lang="scss" scoped> | 519 | <style scoped lang="scss"> |
| 545 | .syBg { | 520 | .syBg{ |
| 546 | background: url("@/assets/dance/logo_l.png") no-repeat left 98%, | 521 | background: url("@/assets/dance/logo_l.png") no-repeat left 98%, |
| 547 | url("@/assets/dance/logo_r1.png") no-repeat right 98%; | 522 | url("@/assets/dance/logo_r1.png") no-repeat right 98%; |
| 548 | background-size: 30%; | 523 | background-size: 30%; |
| 549 | } | 524 | } |
| 550 | 525 | .btabs{display: flex;position: absolute;bottom: 60px;gap: 10px; | |
| 551 | .btabs { | 526 | div{color: #fff; background-color: rgba(0, 0, 0, 0.5); |
| 552 | display: flex; | 527 | backdrop-filter: blur(4px);border: 2px solid #9ba6d4;border-radius: 50px; |
| 553 | position: absolute; | 528 | padding:6px 20px; |
| 554 | bottom: 60px; | ||
| 555 | gap: 10px; | ||
| 556 | |||
| 557 | div { | ||
| 558 | color: #fff; | ||
| 559 | background-color: rgba(0, 0, 0, 0.5); | ||
| 560 | backdrop-filter: blur(4px); | ||
| 561 | border: 2px solid #9ba6d4; | ||
| 562 | border-radius: 50px; | ||
| 563 | padding: 6px 20px; | ||
| 564 | } | ||
| 565 | |||
| 566 | div:hover { | ||
| 567 | cursor: pointer; | ||
| 568 | background: #fff; | ||
| 569 | color: #000; | ||
| 570 | border: 2px solid #fff; | ||
| 571 | } | 529 | } |
| 530 | div:hover{cursor: pointer;background: #fff;color: #000;border:2px solid #fff;} | ||
| 572 | } | 531 | } |
| 573 | 532 | .zn-bg{background: linear-gradient(90deg, #8623FC, #8623FC, #8623FC, #8623FC, #8623FC, #8623FC, #453DEA, #8623FC); | |
| 574 | .zn-bg { | 533 | border-radius: 15px;} |
| 575 | background: linear-gradient(90deg, #8623FC, #8623FC, #8623FC, #8623FC, #8623FC, #8623FC, #453DEA, #8623FC); | 534 | .zn-Box{background-size: contain;position: relative;overflow: hidden; |
| 576 | border-radius: 15px; | 535 | .bbbg{position: absolute;width: 100%;height: 100%;object-fit: cover;} |
| 577 | } | 536 | .bgbg{height: 100%; |
| 578 | 537 | padding: 5%;display: flex; | |
| 579 | .zn-Box { | ||
| 580 | background-size: contain; | ||
| 581 | position: relative; | ||
| 582 | overflow: hidden; | ||
| 583 | |||
| 584 | .bbbg { | ||
| 585 | position: absolute; | ||
| 586 | width: 100%; | ||
| 587 | height: 100%; | ||
| 588 | object-fit: cover; | ||
| 589 | } | ||
| 590 | |||
| 591 | .bgbg { | ||
| 592 | height: 100%; | ||
| 593 | padding: 5%; | ||
| 594 | display: flex; | ||
| 595 | flex-direction: column; | 538 | flex-direction: column; |
| 596 | justify-content: center; | 539 | justify-content: center; |
| 597 | 540 | img{margin: 5% 0} | |
| 598 | img { | ||
| 599 | margin: 5% 0 | ||
| 600 | } | ||
| 601 | } | 541 | } |
| 602 | 542 | .itemBox{ | |
| 603 | .itemBox { | ||
| 604 | padding: 20px 40px; | 543 | padding: 20px 40px; |
| 605 | 544 | p{margin: 0;height: 40px;line-height: 20px;display: flex;align-items: center;} | |
| 606 | p { | ||
| 607 | margin: 0; | ||
| 608 | height: 40px; | ||
| 609 | line-height: 20px; | ||
| 610 | display: flex; | ||
| 611 | align-items: center; | ||
| 612 | } | ||
| 613 | } | 545 | } |
| 614 | |||
| 615 | border-radius: 15px; | 546 | border-radius: 15px; |
| 616 | 547 | .zn-btn{background: #FFFFFF;text-transform: uppercase; | |
| 617 | .zn-btn { | 548 | font-size: 16px; width: fit-content; margin: 5px 5px 5px 0; |
| 618 | background: #FFFFFF; | ||
| 619 | text-transform: uppercase; | ||
| 620 | font-size: 16px; | ||
| 621 | width: fit-content; | ||
| 622 | margin: 5px 5px 5px 0; | ||
| 623 | color: #453DEA; | 549 | color: #453DEA; |
| 624 | border-radius: 23px; | 550 | border-radius: 23px;padding: 10px 20px;display: inline-flex;align-items: center;} |
| 625 | padding: 10px 20px; | 551 | .item{box-shadow: 0px 0px 21px 0px rgba(41,23,101,0.14);margin: 40px 0 0; |
| 626 | display: inline-flex; | 552 | display: flex;align-items: center;text-align: center; |
| 627 | align-items: center; | 553 | font-size: 18px; flex-direction: column;padding: 35px 10px 20px; |
| 628 | } | 554 | background:url("@/assets/dance/znbb.png") no-repeat left #FFFFFF; |
| 629 | |||
| 630 | .item { | ||
| 631 | box-shadow: 0px 0px 21px 0px rgba(41, 23, 101, 0.14); | ||
| 632 | margin: 40px 0 0; | ||
| 633 | display: flex; | ||
| 634 | align-items: center; | ||
| 635 | text-align: center; | ||
| 636 | font-size: 18px; | ||
| 637 | flex-direction: column; | ||
| 638 | padding: 35px 10px 20px; | ||
| 639 | background: url("@/assets/dance/znbb.png") no-repeat left #FFFFFF; | ||
| 640 | background-size: cover; | 555 | background-size: cover; |
| 641 | position: relative; | 556 | position: relative; |
| 642 | border-radius: 15px; | 557 | border-radius: 15px; |
| 643 | 558 | img{position: absolute;top: -30px} | |
| 644 | img { | ||
| 645 | position: absolute; | ||
| 646 | top: -30px | ||
| 647 | } | ||
| 648 | } | 559 | } |
| 649 | } | 560 | } |
| 650 | 561 | ||
| ... | @@ -657,29 +568,14 @@ const goDetail = (n) => { | ... | @@ -657,29 +568,14 @@ const goDetail = (n) => { |
| 657 | clear: both; | 568 | clear: both; |
| 658 | overflow: hidden; | 569 | overflow: hidden; |
| 659 | } | 570 | } |
| 660 | 571 | .banner-pp{ position: absolute; bottom: 40%;right: 5%;width: 200px;} | |
| 661 | .banner-pp { | ||
| 662 | position: absolute; | ||
| 663 | bottom: 40%; | ||
| 664 | right: 5%; | ||
| 665 | width: 200px; | ||
| 666 | } | ||
| 667 | 572 | ||
| 668 | .bannerItem { | 573 | .bannerItem { |
| 669 | height: 450px; | 574 | height: 450px; |
| 670 | background: #000; | 575 | background: #000;position: relative; |
| 671 | position: relative; | 576 | .slogen{position: relative;top: 130px;} |
| 672 | 577 | .banner-count{position: absolute;padding: 20px 40px; | |
| 673 | .slogen { | 578 | font-size: 20px;align-items: center; |
| 674 | position: relative; | ||
| 675 | top: 130px; | ||
| 676 | } | ||
| 677 | |||
| 678 | .banner-count { | ||
| 679 | position: absolute; | ||
| 680 | padding: 20px 40px; | ||
| 681 | font-size: 20px; | ||
| 682 | align-items: center; | ||
| 683 | overflow: hidden; | 579 | overflow: hidden; |
| 684 | background: url("@/assets/dance/time_bg.png") no-repeat center; | 580 | background: url("@/assets/dance/time_bg.png") no-repeat center; |
| 685 | background-size: 100% 100%; | 581 | background-size: 100% 100%; |
| ... | @@ -689,56 +585,29 @@ const goDetail = (n) => { | ... | @@ -689,56 +585,29 @@ const goDetail = (n) => { |
| 689 | //border-image-width:4px; | 585 | //border-image-width:4px; |
| 690 | //border-image-outset:4px; | 586 | //border-image-outset:4px; |
| 691 | //background: rgba(0,0,0,0.3); | 587 | //background: rgba(0,0,0,0.3); |
| 692 | bottom: 40%; | 588 | bottom: 40%;display: flex;flex-wrap: nowrap; |
| 693 | display: flex; | ||
| 694 | flex-wrap: nowrap; | ||
| 695 | right: 5%; | 589 | right: 5%; |
| 696 | color: #fff; | 590 | color: #fff; |
| 697 | 591 | .van-count-down{display: flex;color: #fff;margin: 0 0 0 20px; | |
| 698 | .van-count-down { | ||
| 699 | display: flex; | ||
| 700 | color: #fff; | ||
| 701 | margin: 0 0 0 20px; | ||
| 702 | width: 360px; | 592 | width: 360px; |
| 593 | font-size: 41px;} | ||
| 594 | .block{ color: #fff;text-align: center;width: 3em; | ||
| 703 | font-size: 41px; | 595 | font-size: 41px; |
| 704 | } | 596 | font-family: DIN Alternate;} |
| 705 | 597 | .colon{ color: #fff;display: block;margin: 20px 0 0; | |
| 706 | .block { | 598 | font-size: 20px;} |
| 707 | color: #fff; | ||
| 708 | text-align: center; | ||
| 709 | width: 3em; | ||
| 710 | font-size: 41px; | ||
| 711 | font-family: DIN Alternate; | ||
| 712 | } | ||
| 713 | |||
| 714 | .colon { | ||
| 715 | color: #fff; | ||
| 716 | display: block; | ||
| 717 | margin: 20px 0 0; | ||
| 718 | font-size: 20px; | ||
| 719 | } | ||
| 720 | } | 599 | } |
| 721 | 600 | .bb{width: 580px;justify-content: center;height: 100px;font-size: 30px;} | |
| 722 | .bb { | 601 | .banner-count.bb:hover{box-shadow: 0 0 20px #453DEA;border-radius: 100px; |
| 723 | width: 580px; | ||
| 724 | justify-content: center; | ||
| 725 | height: 100px; | ||
| 726 | font-size: 30px; | ||
| 727 | } | ||
| 728 | |||
| 729 | .banner-count.bb:hover { | ||
| 730 | box-shadow: 0 0 20px #453DEA; | ||
| 731 | border-radius: 100px; | ||
| 732 | background: #000 | 602 | background: #000 |
| 733 | } | 603 | } |
| 734 | |||
| 735 | .box { | 604 | .box { |
| 736 | position: absolute; | 605 | position: absolute; |
| 737 | height: 100%; | 606 | height: 100%; |
| 738 | left: 0; | 607 | left: 0; |
| 739 | right: 0; | 608 | right: 0; |
| 740 | } | 609 | } |
| 741 | 610 | ||
| 742 | h3 { | 611 | h3 { |
| 743 | position: absolute; | 612 | position: absolute; |
| 744 | color: #fff; | 613 | color: #fff; |
| ... | @@ -747,7 +616,7 @@ const goDetail = (n) => { | ... | @@ -747,7 +616,7 @@ const goDetail = (n) => { |
| 747 | bottom: 50px; | 616 | bottom: 50px; |
| 748 | font-size: 3vw; | 617 | font-size: 3vw; |
| 749 | } | 618 | } |
| 750 | 619 | ||
| 751 | video { | 620 | video { |
| 752 | width: 100%; | 621 | width: 100%; |
| 753 | height: 100%; | 622 | height: 100%; |
| ... | @@ -760,28 +629,27 @@ const goDetail = (n) => { | ... | @@ -760,28 +629,27 @@ const goDetail = (n) => { |
| 760 | } | 629 | } |
| 761 | 630 | ||
| 762 | .banner { | 631 | .banner { |
| 763 | position: relative; | 632 | position: relative;margin:0 0 30px; |
| 764 | margin: 0 0 30px; | 633 | |
| 765 | |||
| 766 | :deep(.el-carousel__arrow) { | 634 | :deep(.el-carousel__arrow) { |
| 767 | border-radius: 0; | 635 | border-radius: 0; |
| 768 | 636 | ||
| 769 | .el-icon { | 637 | .el-icon { |
| 770 | color: transparent; | 638 | color: transparent; |
| 771 | } | 639 | } |
| 772 | 640 | ||
| 773 | &:hover { | 641 | &:hover { |
| 774 | filter: brightness(1.5) | 642 | filter: brightness(1.5) |
| 775 | } | 643 | } |
| 776 | } | 644 | } |
| 777 | 645 | ||
| 778 | :deep(.el-carousel__arrow--left) { | 646 | :deep(.el-carousel__arrow--left) { |
| 779 | background: url("@/assets/images/prev2@2x.png") no-repeat center; | 647 | background: url("@/assets/images/prev2@2x.png") no-repeat center; |
| 780 | width: 78px; | 648 | width: 78px; |
| 781 | height: 45px; | 649 | height: 45px; |
| 782 | background-size: contain; | 650 | background-size: contain; |
| 783 | } | 651 | } |
| 784 | 652 | ||
| 785 | :deep(.el-carousel__arrow--right) { | 653 | :deep(.el-carousel__arrow--right) { |
| 786 | background: url("@/assets/images/next2@2x.png") no-repeat center; | 654 | background: url("@/assets/images/next2@2x.png") no-repeat center; |
| 787 | width: 78px; | 655 | width: 78px; |
| ... | @@ -789,121 +657,41 @@ const goDetail = (n) => { | ... | @@ -789,121 +657,41 @@ const goDetail = (n) => { |
| 789 | background-size: contain | 657 | background-size: contain |
| 790 | } | 658 | } |
| 791 | } | 659 | } |
| 792 | 660 | .el-calendar{--el-calendar-border:none;--el-calendar-cell-width:40px;text-align:center; | |
| 793 | .el-calendar { | 661 | --el-text-color-regular:#8E8D94; |
| 794 | --el-calendar-border: none; | 662 | :deep(.el-calendar__header){justify-content: center;padding: 0 0 10px} |
| 795 | --el-calendar-cell-width: 40px; | 663 | :deep(.el-calendar__body){border: 1px solid #F0F0F0;padding: 0} |
| 796 | text-align: center; | 664 | :deep(.el-calendar-table .el-calendar-day){padding: 1px;} |
| 797 | --el-text-color-regular: #8E8D94; | 665 | :deep(.el-calendar-table td.is-selected){background: transparent;} |
| 798 | 666 | :deep(.el-calendar__button-group){display: none;} | |
| 799 | :deep(.el-calendar__header) { | 667 | :deep(.el-calendar-table thead th){padding: 5px 0 0} |
| 800 | justify-content: center; | 668 | .primaryDate{color: #fff; |
| 801 | padding: 0 0 10px | 669 | background: #000;} |
| 802 | } | 670 | .date{ margin:auto;border-radius: 50%;width: 30px;height: 30px;line-height: 30px; |
| 803 | |||
| 804 | :deep(.el-calendar__body) { | ||
| 805 | border: 1px solid #F0F0F0; | ||
| 806 | padding: 0 | ||
| 807 | } | ||
| 808 | |||
| 809 | :deep(.el-calendar-table .el-calendar-day) { | ||
| 810 | padding: 1px; | ||
| 811 | } | ||
| 812 | |||
| 813 | :deep(.el-calendar-table td.is-selected) { | ||
| 814 | background: transparent; | ||
| 815 | } | ||
| 816 | |||
| 817 | :deep(.el-calendar__button-group) { | ||
| 818 | display: none; | ||
| 819 | } | ||
| 820 | |||
| 821 | :deep(.el-calendar-table thead th) { | ||
| 822 | padding: 5px 0 0 | ||
| 823 | } | ||
| 824 | |||
| 825 | .primaryDate { | ||
| 826 | color: #fff; | ||
| 827 | background: #000; | ||
| 828 | } | ||
| 829 | |||
| 830 | .date { | ||
| 831 | margin: auto; | ||
| 832 | border-radius: 50%; | ||
| 833 | width: 30px; | ||
| 834 | height: 30px; | ||
| 835 | line-height: 30px; | ||
| 836 | font-weight: bold; | 671 | font-weight: bold; |
| 837 | } | 672 | } |
| 838 | } | 673 | } |
| 839 | 674 | ||
| 840 | .calendarList { | 675 | .calendarList{border: 1px solid #F0F0F0;padding:12px 20px;overflow: auto;height: 233px; |
| 841 | border: 1px solid #F0F0F0; | 676 | ul{ |
| 842 | padding: 12px 20px; | 677 | li{background: #F6F9FE;margin:7px 0 7px 0;position: relative;padding: 13px; |
| 843 | overflow: auto; | ||
| 844 | height: 233px; | ||
| 845 | |||
| 846 | ul { | ||
| 847 | li { | ||
| 848 | background: #F6F9FE; | ||
| 849 | margin: 7px 0 7px 0; | ||
| 850 | position: relative; | ||
| 851 | padding: 13px; | ||
| 852 | border-radius: 10px; | 678 | border-radius: 10px; |
| 853 | font-weight: 500; | 679 | font-weight: 500; |
| 854 | font-size: 15px; | 680 | font-size: 15px; |
| 855 | 681 | label{color: #000;margin-right: 15px; | |
| 856 | label { | 682 | &::before{content: '';background:#fff;left: -17px;top: 0px;bottom: 0;margin: auto; |
| 857 | color: #000; | 683 | border-radius: 50%;width: 2px;height: 2px;position: absolute;z-index: 1} |
| 858 | margin-right: 15px; | ||
| 859 | |||
| 860 | &::before { | ||
| 861 | content: ''; | ||
| 862 | background: #fff; | ||
| 863 | left: -17px; | ||
| 864 | top: 0px; | ||
| 865 | bottom: 0; | ||
| 866 | margin: auto; | ||
| 867 | border-radius: 50%; | ||
| 868 | width: 2px; | ||
| 869 | height: 2px; | ||
| 870 | position: absolute; | ||
| 871 | z-index: 1 | ||
| 872 | } | ||
| 873 | } | 684 | } |
| 874 | } | 685 | } |
| 875 | 686 | li::before{content: '';background: #000; | |
| 876 | li::before { | 687 | border-radius: 50%;width: 8px;height: 8px;position: absolute; |
| 877 | content: ''; | 688 | left: -20px;top: 0;bottom: 0;margin: auto;z-index: 1; |
| 878 | background: #000; | ||
| 879 | border-radius: 50%; | ||
| 880 | width: 8px; | ||
| 881 | height: 8px; | ||
| 882 | position: absolute; | ||
| 883 | left: -20px; | ||
| 884 | top: 0; | ||
| 885 | bottom: 0; | ||
| 886 | margin: auto; | ||
| 887 | z-index: 1; | ||
| 888 | } | ||
| 889 | |||
| 890 | li::after { | ||
| 891 | content: ''; | ||
| 892 | left: -16px; | ||
| 893 | width: 1px; | ||
| 894 | height: 100%; | ||
| 895 | background: #EBEBEB; | ||
| 896 | position: absolute; | ||
| 897 | top: 20px | ||
| 898 | } | 689 | } |
| 899 | 690 | li::after{content: ''; left: -16px;width: 1px;height: 100%; | |
| 900 | li:hover { | 691 | background: #EBEBEB; position: absolute;top: 20px} |
| 901 | color: #fff; | 692 | li:hover{color: #fff; |
| 902 | background: #000; | 693 | background: #000; |
| 903 | 694 | label{color: #fff;} | |
| 904 | label { | ||
| 905 | color: #fff; | ||
| 906 | } | ||
| 907 | } | 695 | } |
| 908 | } | 696 | } |
| 909 | } | 697 | } |
| ... | @@ -917,7 +705,7 @@ const goDetail = (n) => { | ... | @@ -917,7 +705,7 @@ const goDetail = (n) => { |
| 917 | .ggbond { | 705 | .ggbond { |
| 918 | height: 230px; | 706 | height: 230px; |
| 919 | position: relative; | 707 | position: relative; |
| 920 | 708 | ||
| 921 | img { | 709 | img { |
| 922 | height: 100%; | 710 | height: 100%; |
| 923 | object-fit: cover; | 711 | object-fit: cover; |
| ... | @@ -929,336 +717,131 @@ const goDetail = (n) => { | ... | @@ -929,336 +717,131 @@ const goDetail = (n) => { |
| 929 | } | 717 | } |
| 930 | } | 718 | } |
| 931 | 719 | ||
| 932 | .teacher { | 720 | .teacher{height: 410px;background: #fff; |
| 933 | height: 410px; | 721 | position: relative;border-radius: 10px;overflow: hidden; |
| 934 | background: #fff; | 722 | .imgbox{background: linear-gradient(0,#C8AAFC,#fff)} |
| 935 | position: relative; | 723 | img{height: 350px;width: 100%;object-fit: cover;} |
| 936 | border-radius: 10px; | 724 | h3{color: #fff;background: url("@/assets/dance/name_bg.png") no-repeat center; |
| 937 | overflow: hidden; | 725 | background-size:110% 100%;text-align: center;height: 30px;line-height: 30px; |
| 938 | 726 | font-size: 18px;position: absolute;width: 100%;bottom: 30px;} | |
| 939 | .imgbox { | 727 | p{text-align: center;margin: 25px 0 0; |
| 940 | background: linear-gradient(0, #C8AAFC, #fff) | 728 | font-size: 14px;} |
| 941 | } | ||
| 942 | |||
| 943 | img { | ||
| 944 | height: 350px; | ||
| 945 | width: 100%; | ||
| 946 | object-fit: cover; | ||
| 947 | } | ||
| 948 | |||
| 949 | h3 { | ||
| 950 | color: #fff; | ||
| 951 | background: url("@/assets/dance/name_bg.png") no-repeat center; | ||
| 952 | background-size: 110% 100%; | ||
| 953 | text-align: center; | ||
| 954 | height: 30px; | ||
| 955 | line-height: 30px; | ||
| 956 | font-size: 18px; | ||
| 957 | position: absolute; | ||
| 958 | width: 100%; | ||
| 959 | bottom: 30px; | ||
| 960 | } | ||
| 961 | |||
| 962 | p { | ||
| 963 | text-align: center; | ||
| 964 | margin: 25px 0 0; | ||
| 965 | font-size: 14px; | ||
| 966 | } | ||
| 967 | } | 729 | } |
| 968 | |||
| 969 | @media screen and (max-width: 1650px) { | 730 | @media screen and (max-width: 1650px) { |
| 970 | .teacher { | 731 | .teacher{height: 320px; |
| 971 | height: 320px; | 732 | .imgbox{ |
| 972 | 733 | img{height: 260px} | |
| 973 | .imgbox { | ||
| 974 | img { | ||
| 975 | height: 260px | ||
| 976 | } | ||
| 977 | } | 734 | } |
| 978 | } | 735 | } |
| 979 | } | 736 | } |
| 980 | |||
| 981 | @media screen and (max-width: 1200px) { | 737 | @media screen and (max-width: 1200px) { |
| 982 | .teacher { | 738 | .teacher{height: 450px;margin: 0 0 20px; |
| 983 | height: 450px; | 739 | .imgbox{ |
| 984 | margin: 0 0 20px; | 740 | img{height: 390px} |
| 985 | |||
| 986 | .imgbox { | ||
| 987 | img { | ||
| 988 | height: 390px | ||
| 989 | } | ||
| 990 | } | 741 | } |
| 991 | } | 742 | } |
| 992 | } | 743 | } |
| 993 | |||
| 994 | @media screen and (max-width: 900px) { | 744 | @media screen and (max-width: 900px) { |
| 995 | .teacher { | 745 | .teacher{height: 400px;margin: 0 0 20px; |
| 996 | height: 400px; | 746 | .imgbox{ |
| 997 | margin: 0 0 20px; | 747 | img{height: 340px} |
| 998 | |||
| 999 | .imgbox { | ||
| 1000 | img { | ||
| 1001 | height: 340px | ||
| 1002 | } | ||
| 1003 | } | 748 | } |
| 1004 | } | 749 | } |
| 1005 | } | 750 | } |
| 1006 | |||
| 1007 | @media screen and (max-width: 800px) { | 751 | @media screen and (max-width: 800px) { |
| 1008 | .teacher { | 752 | .teacher{height: 400px;margin: 0 0 20px; |
| 1009 | height: 400px; | 753 | .imgbox{ |
| 1010 | margin: 0 0 20px; | 754 | img{height: 260px} |
| 1011 | |||
| 1012 | .imgbox { | ||
| 1013 | img { | ||
| 1014 | height: 260px | ||
| 1015 | } | ||
| 1016 | } | 755 | } |
| 1017 | } | 756 | } |
| 1018 | } | 757 | } |
| 1019 | 758 | .aboutBox{background: url("@/assets/dance/about_bg.png") no-repeat center;height: 375px; | |
| 1020 | .aboutBox { | 759 | background-size: cover;padding: 40px 60px; position: relative; |
| 1021 | background: url("@/assets/dance/about_bg.png") no-repeat center; | 760 | .content{font-size: 18px;line-height: 2.2;height: 240px;overflow: hidden; |
| 1022 | height: 375px; | 761 | text-align: left;text-indent: 2em;} |
| 1023 | background-size: cover; | 762 | .shadowbox{position: absolute;left: 0;bottom: 90px;height: 100px;width: 100%; |
| 1024 | padding: 40px 60px; | 763 | background: linear-gradient(0deg,rgba(255,255,255,1),rgba(255,255,255,0)); |
| 1025 | position: relative; | ||
| 1026 | |||
| 1027 | .content { | ||
| 1028 | font-size: 18px; | ||
| 1029 | line-height: 2.2; | ||
| 1030 | height: 240px; | ||
| 1031 | overflow: hidden; | ||
| 1032 | text-align: left; | ||
| 1033 | text-indent: 2em; | ||
| 1034 | } | ||
| 1035 | |||
| 1036 | .shadowbox { | ||
| 1037 | position: absolute; | ||
| 1038 | left: 0; | ||
| 1039 | bottom: 90px; | ||
| 1040 | height: 100px; | ||
| 1041 | width: 100%; | ||
| 1042 | background: linear-gradient(0deg, rgba(255, 255, 255, 1), rgba(255, 255, 255, 0)); | ||
| 1043 | } | ||
| 1044 | |||
| 1045 | .btn-lineG { | ||
| 1046 | } | 764 | } |
| 765 | .btn-lineG{} | ||
| 1047 | } | 766 | } |
| 1048 | 767 | .mapBox{background: url("@/assets/dance/map.png") no-repeat center;height: 375px; | |
| 1049 | .mapBox { | 768 | background-size: cover;padding: 1px;position: relative;display: flex; |
| 1050 | background: url("@/assets/dance/map.png") no-repeat center; | 769 | .content{background: #fff;width: 60%;left: 40px;padding: 30px; |
| 1051 | height: 375px; | 770 | position: absolute;height: 90%;top: 0;bottom: 0;margin: auto; |
| 1052 | background-size: cover; | ||
| 1053 | padding: 1px; | ||
| 1054 | position: relative; | ||
| 1055 | display: flex; | ||
| 1056 | |||
| 1057 | .content { | ||
| 1058 | background: #fff; | ||
| 1059 | width: 60%; | ||
| 1060 | left: 40px; | ||
| 1061 | padding: 30px; | ||
| 1062 | position: absolute; | ||
| 1063 | height: 90%; | ||
| 1064 | top: 0; | ||
| 1065 | bottom: 0; | ||
| 1066 | margin: auto; | ||
| 1067 | } | ||
| 1068 | |||
| 1069 | div { | ||
| 1070 | padding-left: 60px; | ||
| 1071 | } | ||
| 1072 | |||
| 1073 | .phone { | ||
| 1074 | background: url("@/assets/dance/map01.png") no-repeat left; | ||
| 1075 | background-size: 30px; | ||
| 1076 | } | 771 | } |
| 1077 | 772 | div{padding-left: 60px;} | |
| 1078 | .address { | 773 | .phone{background: url("@/assets/dance/map01.png") no-repeat left;background-size: 30px;} |
| 1079 | background: url("@/assets/dance/map02.png") no-repeat left; | 774 | .address{background: url("@/assets/dance/map02.png") no-repeat left;background-size: 30px; |
| 1080 | background-size: 30px; | 775 | margin:50px 0; |
| 1081 | margin: 50px 0; | ||
| 1082 | } | 776 | } |
| 1083 | 777 | .email{background: url("@/assets/dance/map03.png") no-repeat left;background-size: 30px;} | |
| 1084 | .email { | 778 | h4{margin: 0; |
| 1085 | background: url("@/assets/dance/map03.png") no-repeat left; | ||
| 1086 | background-size: 30px; | ||
| 1087 | } | ||
| 1088 | |||
| 1089 | h4 { | ||
| 1090 | margin: 0; | ||
| 1091 | font-size: 16px; | 779 | font-size: 16px; |
| 1092 | color: #AAAAAA; | 780 | color: #AAAAAA;} |
| 1093 | } | 781 | p{margin: 13px 0 0;} |
| 1094 | |||
| 1095 | p { | ||
| 1096 | margin: 13px 0 0; | ||
| 1097 | } | ||
| 1098 | } | 782 | } |
| 1099 | 783 | .logobox{background: #fff;height: 180px;border-radius: 10px;margin: 0 0 30px; | |
| 1100 | .logobox { | 784 | img{width: 100%;height: 100%;object-fit: contain;} |
| 1101 | background: #fff; | ||
| 1102 | height: 180px; | ||
| 1103 | border-radius: 10px; | ||
| 1104 | margin: 0 0 30px; | ||
| 1105 | |||
| 1106 | img { | ||
| 1107 | width: 100%; | ||
| 1108 | height: 100%; | ||
| 1109 | object-fit: contain; | ||
| 1110 | } | ||
| 1111 | } | 785 | } |
| 1112 | 786 | .swiperPic{background: #F3F1FE;position: relative; height: 100%; | |
| 1113 | .swiperPic { | ||
| 1114 | background: #F3F1FE; | ||
| 1115 | position: relative; | ||
| 1116 | height: 100%; | ||
| 1117 | padding: 20px 45px; | 787 | padding: 20px 45px; |
| 1118 | 788 | .picprev{position: absolute; left: 5px;top: 0;bottom:0;margin: auto;height: 33px; | |
| 1119 | .picprev { | ||
| 1120 | position: absolute; | ||
| 1121 | left: 5px; | ||
| 1122 | top: 0; | ||
| 1123 | bottom: 0; | ||
| 1124 | margin: auto; | ||
| 1125 | height: 33px; | ||
| 1126 | cursor: pointer; | 789 | cursor: pointer; |
| 1127 | 790 | &:hover{filter:brightness(2)} | |
| 1128 | &:hover { | ||
| 1129 | filter: brightness(2) | ||
| 1130 | } | ||
| 1131 | } | 791 | } |
| 1132 | 792 | .picnext{position: absolute;right: 5px;top: 0;bottom:0;margin: auto;height: 33px; | |
| 1133 | .picnext { | ||
| 1134 | position: absolute; | ||
| 1135 | right: 5px; | ||
| 1136 | top: 0; | ||
| 1137 | bottom: 0; | ||
| 1138 | margin: auto; | ||
| 1139 | height: 33px; | ||
| 1140 | cursor: pointer; | 793 | cursor: pointer; |
| 1141 | 794 | &:hover{filter:brightness(2)}} | |
| 1142 | &:hover { | ||
| 1143 | filter: brightness(2) | ||
| 1144 | } | ||
| 1145 | } | ||
| 1146 | } | 795 | } |
| 1147 | 796 | .newline{display: flex;align-items: center;height: 56px;justify-content: space-between; | |
| 1148 | .newline { | ||
| 1149 | display: flex; | ||
| 1150 | align-items: center; | ||
| 1151 | height: 56px; | ||
| 1152 | justify-content: space-between; | ||
| 1153 | cursor: pointer; | 797 | cursor: pointer; |
| 1154 | 798 | h3{font-weight: 400;margin: 0;width: 80%;text-overflow: ellipsis;white-space: nowrap;overflow: hidden; | |
| 1155 | h3 { | ||
| 1156 | font-weight: 400; | ||
| 1157 | margin: 0; | ||
| 1158 | width: 80%; | ||
| 1159 | text-overflow: ellipsis; | ||
| 1160 | white-space: nowrap; | ||
| 1161 | overflow: hidden; | ||
| 1162 | font-size: 18px; | 799 | font-size: 18px; |
| 1163 | color: #030303; | 800 | color: #030303;} |
| 1164 | } | 801 | span{font-weight: 400; |
| 1165 | |||
| 1166 | span { | ||
| 1167 | font-weight: 400; | ||
| 1168 | font-size: 14px; | 802 | font-size: 14px; |
| 1169 | color: #B4B6B8; | 803 | color: #B4B6B8;} |
| 1170 | } | 804 | &:hover{ |
| 1171 | |||
| 1172 | &:hover { | ||
| 1173 | background: #F7F8FC; | 805 | background: #F7F8FC; |
| 1174 | } | 806 | } |
| 1175 | } | 807 | } |
| 1176 | 808 | ||
| 1177 | @media (max-width: 800px) { | 809 | @media (max-width: 800px) { |
| 1178 | .newline { | 810 | .newline{height: 40px; |
| 1179 | height: 40px; | 811 | h3{width: 70%;font-size: 14px;} |
| 1180 | 812 | span{font-size: 12px;} | |
| 1181 | h3 { | ||
| 1182 | width: 70%; | ||
| 1183 | font-size: 14px; | ||
| 1184 | } | ||
| 1185 | |||
| 1186 | span { | ||
| 1187 | font-size: 12px; | ||
| 1188 | } | ||
| 1189 | } | 813 | } |
| 1190 | .box { | 814 | .box{width: 94%} |
| 1191 | width: 94% | 815 | .calendarList{padding: 0; |
| 1192 | } | 816 | ul{ |
| 1193 | .calendarList { | 817 | li{margin: 10px} |
| 1194 | padding: 0; | ||
| 1195 | |||
| 1196 | ul { | ||
| 1197 | li { | ||
| 1198 | margin: 10px | ||
| 1199 | } | ||
| 1200 | } | 818 | } |
| 1201 | } | 819 | } |
| 1202 | .aboutBox { | 820 | .aboutBox{padding: 20px 30px;} |
| 1203 | padding: 20px 30px; | 821 | .indexTitle{margin: 30px 0 20px} |
| 822 | .teacher{height: 320px;margin: 0 0 20px; | ||
| 823 | img{height: 260px} | ||
| 1204 | } | 824 | } |
| 1205 | .indexTitle { | 825 | .activeItem{margin: 0 0 20px;} |
| 1206 | margin: 30px 0 20px | 826 | .mapBox{ |
| 1207 | } | 827 | div{padding-left: 40px;} |
| 1208 | .teacher { | 828 | .content{ width: 80%;left: 10%;padding:10px 20px 0 20px;} |
| 1209 | height: 320px; | 829 | .address{margin: 30px 0;} |
| 1210 | margin: 0 0 20px; | 830 | p{text-align: left;word-break: break-all;} |
| 1211 | |||
| 1212 | img { | ||
| 1213 | height: 260px | ||
| 1214 | } | ||
| 1215 | } | ||
| 1216 | .activeItem { | ||
| 1217 | margin: 0 0 20px; | ||
| 1218 | } | ||
| 1219 | .mapBox { | ||
| 1220 | div { | ||
| 1221 | padding-left: 40px; | ||
| 1222 | } | ||
| 1223 | |||
| 1224 | .content { | ||
| 1225 | width: 80%; | ||
| 1226 | left: 10%; | ||
| 1227 | padding: 10px 20px 0 20px; | ||
| 1228 | } | ||
| 1229 | |||
| 1230 | .address { | ||
| 1231 | margin: 30px 0; | ||
| 1232 | } | ||
| 1233 | |||
| 1234 | p { | ||
| 1235 | text-align: left; | ||
| 1236 | word-break: break-all; | ||
| 1237 | } | ||
| 1238 | } | 831 | } |
| 1239 | .fixed_gg { | 832 | .fixed_gg { |
| 1240 | display: none; | 833 | display: none; |
| 1241 | } | 834 | } |
| 1242 | .bannerItem .banner-count { | 835 | .bannerItem .banner-count{flex-direction: column; |
| 1243 | flex-direction: column; | 836 | transform: scale(0.5); width: auto; |
| 1244 | transform: scale(0.5); | ||
| 1245 | width: auto; | ||
| 1246 | left: 0; | 837 | left: 0; |
| 1247 | right: 0; | 838 | right: 0; |
| 1248 | 839 | .van-count-down{margin: 30px 0 0;} | |
| 1249 | .van-count-down { | ||
| 1250 | margin: 30px 0 0; | ||
| 1251 | } | ||
| 1252 | } | 840 | } |
| 1253 | .bgbg { | 841 | .bgbg{ text-align: center; |
| 1254 | text-align: center; | 842 | h1{text-align: center} |
| 1255 | |||
| 1256 | h1 { | ||
| 1257 | text-align: center | ||
| 1258 | } | ||
| 1259 | } | 843 | } |
| 1260 | } | 844 | } |
| 1261 | |||
| 1262 | :deep(.btn-q) { | 845 | :deep(.btn-q) { |
| 1263 | //background: #FFFFFF; | 846 | //background: #FFFFFF; |
| 1264 | //font-size: 18px; | 847 | //font-size: 18px; |
| ... | @@ -1267,7 +850,7 @@ const goDetail = (n) => { | ... | @@ -1267,7 +850,7 @@ const goDetail = (n) => { |
| 1267 | //padding: 10px 20px; | 850 | //padding: 10px 20px; |
| 1268 | //display: inline-flex; | 851 | //display: inline-flex; |
| 1269 | //align-items: center; | 852 | //align-items: center; |
| 1270 | 853 | ||
| 1271 | padding: 20px 40px; | 854 | padding: 20px 40px; |
| 1272 | font-size: 20px; | 855 | font-size: 20px; |
| 1273 | align-items: center; | 856 | align-items: center; |
| ... | @@ -1281,16 +864,16 @@ const goDetail = (n) => { | ... | @@ -1281,16 +864,16 @@ const goDetail = (n) => { |
| 1281 | box-sizing: inherit; | 864 | box-sizing: inherit; |
| 1282 | } | 865 | } |
| 1283 | 866 | ||
| 1284 | .btn-q:hover { | 867 | .btn-q:hover{ |
| 1285 | box-shadow: 0 0 20px #453DEA; | 868 | box-shadow: 0 0 20px #453DEA; |
| 1286 | border-radius: 100px; | 869 | border-radius: 100px; |
| 1287 | background: #000 !important; | 870 | background: #000 !important; |
| 1288 | } | 871 | } |
| 1289 | 872 | ||
| 1290 | .ding { | 873 | .ding{ |
| 1291 | position: fixed; | 874 | position: fixed; |
| 1292 | right: 0px; | 875 | right:0px; |
| 1293 | z-index: 99; | 876 | z-index:99; |
| 1294 | top: 40%; | 877 | top: 40%; |
| 1295 | background: #000 !important; | 878 | background: #000 !important; |
| 1296 | box-shadow: none; | 879 | box-shadow: none; |
| ... | @@ -1299,34 +882,16 @@ const goDetail = (n) => { | ... | @@ -1299,34 +882,16 @@ const goDetail = (n) => { |
| 1299 | //height: 100px; | 882 | //height: 100px; |
| 1300 | padding: 20px; | 883 | padding: 20px; |
| 1301 | } | 884 | } |
| 1302 | 885 | .mb30{margin-bottom: 30px;} | |
| 1303 | .mb30 { | 886 | .livetimecount{position: absolute;top: 0;z-index: 2;background: #F04035; |
| 1304 | margin-bottom: 30px; | ||
| 1305 | } | ||
| 1306 | |||
| 1307 | .livetimecount { | ||
| 1308 | position: absolute; | ||
| 1309 | top: 0; | ||
| 1310 | z-index: 2; | ||
| 1311 | background: #F04035; | ||
| 1312 | padding: 2px 4px; | 887 | padding: 2px 4px; |
| 1313 | 888 | &::after{content: ''; width: 0; | |
| 1314 | &::after { | 889 | height: 0;position: absolute;right: -15px;top: 0; |
| 1315 | content: ''; | ||
| 1316 | width: 0; | ||
| 1317 | height: 0; | ||
| 1318 | position: absolute; | ||
| 1319 | right: -15px; | ||
| 1320 | top: 0; | ||
| 1321 | border-top: 24px solid #F04035; | 890 | border-top: 24px solid #F04035; |
| 1322 | border-right: 15px solid transparent; | 891 | border-right: 15px solid transparent;} |
| 1323 | } | 892 | .van-count-down { display: flex; |
| 1324 | |||
| 1325 | .van-count-down { | ||
| 1326 | display: flex; | ||
| 1327 | color: #fff; | 893 | color: #fff; |
| 1328 | font-size: 14px; | 894 | font-size: 14px; |
| 1329 | |||
| 1330 | .block { | 895 | .block { |
| 1331 | color: #fff; | 896 | color: #fff; |
| 1332 | text-align: center; | 897 | text-align: center; |
| ... | @@ -1335,23 +900,13 @@ const goDetail = (n) => { | ... | @@ -1335,23 +900,13 @@ const goDetail = (n) => { |
| 1335 | } | 900 | } |
| 1336 | } | 901 | } |
| 1337 | } | 902 | } |
| 1338 | |||
| 1339 | @media (max-width: 500px) { | 903 | @media (max-width: 500px) { |
| 1340 | .forPc { | 904 | .forPc{display: none!important;} |
| 1341 | display: none !important; | 905 | .zn-Box .bgbg{padding: 10px 0 0; |
| 1342 | } | 906 | .mb30{margin: 0} |
| 1343 | .zn-Box .bgbg { | 907 | .zn-btn{margin-top: 10px} |
| 1344 | padding: 10px 0 0; | ||
| 1345 | |||
| 1346 | .mb30 { | ||
| 1347 | margin: 0 | ||
| 1348 | } | ||
| 1349 | |||
| 1350 | .zn-btn { | ||
| 1351 | margin-top: 10px | ||
| 1352 | } | ||
| 1353 | } | 908 | } |
| 1354 | .logobox { | 909 | .logobox{ |
| 1355 | height: 60px; | 910 | height: 60px; |
| 1356 | } | 911 | } |
| 1357 | } | 912 | } | ... | ... |
| 1 | <template> | ||
| 2 | <el-dialog | ||
| 3 | v-model="show" title="Visa Invitation Letter" append-to-body close-icon="CircleClose" center | ||
| 4 | close-on-click-modal destroy-on-close width="1100" | ||
| 5 | > | ||
| 6 | <el-descriptions border> | ||
| 7 | <el-descriptions-item label="No.">{{ form.id }}</el-descriptions-item> | ||
| 8 | <el-descriptions-item label="Applicant Type">{{ form.remarks || form.applicatTypeName }}</el-descriptions-item> | ||
| 9 | <el-descriptions-item label="Invitation Type">{{ form.invitationTypeName }}</el-descriptions-item> | ||
| 10 | <el-descriptions-item label="Do you need a Chinese invitation?">{{ | ||
| 11 | form.chinese == '1' ? 'YES' : 'No' | ||
| 12 | }} | ||
| 13 | </el-descriptions-item> | ||
| 14 | <el-descriptions-item label="MNA/Team Name">{{ form.nameEn }}</el-descriptions-item> | ||
| 15 | <el-descriptions-item label="MNA/Team Address">{{ form.associationAddress }}</el-descriptions-item> | ||
| 16 | <el-descriptions-item label="Contact Email">{{ form.email }}</el-descriptions-item> | ||
| 17 | <el-descriptions-item label="Full Name">{{ form.fullName }}</el-descriptions-item> | ||
| 18 | <el-descriptions-item label="Position">{{ form.remarks1 || form.positionName }}</el-descriptions-item> | ||
| 19 | <el-descriptions-item label="Phone">{{ form.phone }}</el-descriptions-item> | ||
| 20 | <el-descriptions-item label="Chinese Embassy Visas Office">{{ form.embassy }}</el-descriptions-item> | ||
| 21 | <el-descriptions-item label="Chinese Embassy Email">{{ form.embassyEmail }}</el-descriptions-item> | ||
| 22 | <el-descriptions-item label="Additional Documents"> | ||
| 23 | <el-link v-if="form.files" :href="fillImgUrl(form.files)" target="_blank" type="primary"> | ||
| 24 | additional documents | ||
| 25 | </el-link> | ||
| 26 | </el-descriptions-item> | ||
| 27 | <el-descriptions-item label="Proof of Employment"> | ||
| 28 | <el-link v-if="form.invitationFile" target="_blank" :href="fillImgUrl(form.invitationFile)" type="primary"> | ||
| 29 | proof of employment | ||
| 30 | </el-link> | ||
| 31 | </el-descriptions-item> | ||
| 32 | </el-descriptions> | ||
| 33 | <!-- <el-divider></el-divider>--> | ||
| 34 | <br/> | ||
| 35 | <el-table :data="visaList" border stripe> | ||
| 36 | <el-table-column prop="passportCopy" label="Passport Copy"> | ||
| 37 | <template #default="{row}"> | ||
| 38 | <el-image | ||
| 39 | :src="fillImgUrl(row.passportCopy)" | ||
| 40 | :preview-src-list="[fillImgUrl(row.passportCopy)]" | ||
| 41 | :preview-teleported="true" | ||
| 42 | style="width: 50px;height: 70px" | ||
| 43 | /> | ||
| 44 | </template> | ||
| 45 | </el-table-column> | ||
| 46 | <el-table-column label="position" align="center" prop="position"/> | ||
| 47 | <el-table-column label="lastName" align="center" prop="lastName"/> | ||
| 48 | <el-table-column label="firstName" align="center" prop="fristName"/> | ||
| 49 | <el-table-column prop="sex" label="Gender" align="center"> | ||
| 50 | <template #default="{row}"> | ||
| 51 | {{ row.sex == '0' ? 'M' : 'F' }} | ||
| 52 | </template> | ||
| 53 | </el-table-column> | ||
| 54 | <el-table-column label="nationality" align="center" prop="nationality"/> | ||
| 55 | <el-table-column label="birthday" align="center" prop="birthday"/> | ||
| 56 | <el-table-column label="Passport No." align="center" prop="passportNo"/> | ||
| 57 | <el-table-column label="DATE OF ISSUE" align="center" prop="issueDate"/> | ||
| 58 | <el-table-column label="DATE OF EXPIRY" align="center" prop="expiryDate"/> | ||
| 59 | </el-table> | ||
| 60 | </el-dialog> | ||
| 61 | |||
| 62 | </template> | ||
| 63 | |||
| 64 | <script setup> | ||
| 65 | import {useStorage} from "@vueuse/core/index"; | ||
| 66 | import {getCurrentInstance, ref} from "vue"; | ||
| 67 | import {listVisaInfo} from "@/apiPc/match"; | ||
| 68 | import useUserStore from "@/store/modules/user"; | ||
| 69 | import {fillImgUrl} from "/@/utils/ruoyi"; | ||
| 70 | |||
| 71 | const user = useUserStore().user | ||
| 72 | const {proxy} = getCurrentInstance() | ||
| 73 | const language = useStorage('language', 0) | ||
| 74 | const form = ref({ | ||
| 75 | gender: '0', | ||
| 76 | cptVisaInfoBos: [], | ||
| 77 | email: user?.email, | ||
| 78 | }) | ||
| 79 | const show = ref(false) | ||
| 80 | const visaList = ref([]) | ||
| 81 | |||
| 82 | const open = (params) => { | ||
| 83 | show.value = true | ||
| 84 | form.value = params | ||
| 85 | |||
| 86 | listVisaInfo({visaId: params.id}) | ||
| 87 | .then((res) => { | ||
| 88 | visaList.value = res.rows | ||
| 89 | }) | ||
| 90 | |||
| 91 | } | ||
| 92 | defineExpose({open}) | ||
| 93 | |||
| 94 | </script> | ||
| 95 | |||
| 96 | <style scoped lang="scss"> | ||
| 97 | |||
| 98 | </style> |
| 1 | <template> | 1 | <template> |
| 2 | <el-dialog | 2 | <el-dialog |
| 3 | v-model="show" :title="title" width="600px" append-to-body close-icon="CircleClose" center | 3 | v-model="show" :title="title" append-to-body close-icon="CircleClose" center |
| 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 | > |
| ... | @@ -19,12 +19,16 @@ | ... | @@ -19,12 +19,16 @@ |
| 19 | <br/> | 19 | <br/> |
| 20 | Thank you so much for your kind patience. | 20 | Thank you so much for your kind patience. |
| 21 | </h4> | 21 | </h4> |
| 22 | |||
| 23 | <div class="red">To check your application status, please go to Account > Personal > Visa Review ReCEBOA Ror refer to your email for any updates.. | ||
| 24 | </div> | ||
| 25 | |||
| 22 | </div> | 26 | </div> |
| 23 | 27 | ||
| 24 | <el-form :model="form" :rules="rules" ref="iformRef" label-position="top" v-else> | 28 | <el-form :model="form" :rules="rules" ref="iformRef" label-position="top" v-else> |
| 25 | <el-form-item :label="language==0?'申请人类别':'Applicant Type'" required prop="applicatType"> | 29 | <el-form-item :label="language==0?'申请人类别':'Applicant Type'" required prop="applicatType"> |
| 26 | <el-select v-model="form.applicatType"> | 30 | <el-select v-model="form.applicatType"> |
| 27 | <el-option label="MNA" value="1"/> | 31 | <el-option label="MNA/Team" value="1"/> |
| 28 | <el-option label="Technical Officials" value="2"/> | 32 | <el-option label="Technical Officials" value="2"/> |
| 29 | <el-option label="WT Staff" value="3"/> | 33 | <el-option label="WT Staff" value="3"/> |
| 30 | <el-option label="Supplier" value="4"/> | 34 | <el-option label="Supplier" value="4"/> |
| ... | @@ -38,7 +42,16 @@ | ... | @@ -38,7 +42,16 @@ |
| 38 | <el-option :label="language==0?'TE/PU(外办)邀请函':'TE/PU Invitation'" value="2"/> | 42 | <el-option :label="language==0?'TE/PU(外办)邀请函':'TE/PU Invitation'" value="2"/> |
| 39 | </el-select> | 43 | </el-select> |
| 40 | </el-form-item> | 44 | </el-form-item> |
| 41 | <el-form-item :label="language==0?'是否需要中文邀请函':'Do you need a Chinese invitation?'" required prop="chinese"> | 45 | <el-form-item v-if="form.invitationType=='2'" label="Proof of Employment" required prop="invitationFileArr"> |
| 46 | <div class="red">Proof of employment is required for TE/PU invitation letters.</div> | ||
| 47 | <div class="red"> | ||
| 48 | This document must be issued by the invitee's association and must bear an official stamp orsignature.) | ||
| 49 | </div> | ||
| 50 | <br/> | ||
| 51 | <file-upload v-model="form.invitationFileArr" :is-show-tip="false" :limit="1"></file-upload> | ||
| 52 | </el-form-item> | ||
| 53 | <el-form-item :label="language==0?'是否需要中文邀请函':'Do you need a Chinese invitation?'" required | ||
| 54 | prop="chinese"> | ||
| 42 | <el-radio-group v-model="form.chinese"> | 55 | <el-radio-group v-model="form.chinese"> |
| 43 | <el-radio :value="1">{{ language == 0 ? '是' : 'Yes' }}</el-radio> | 56 | <el-radio :value="1">{{ language == 0 ? '是' : 'Yes' }}</el-radio> |
| 44 | <el-radio :value="0">{{ language == 0 ? '否' : 'No' }}</el-radio> | 57 | <el-radio :value="0">{{ language == 0 ? '否' : 'No' }}</el-radio> |
| ... | @@ -46,18 +59,20 @@ | ... | @@ -46,18 +59,20 @@ |
| 46 | </el-form-item> | 59 | </el-form-item> |
| 47 | 60 | ||
| 48 | <!-- 一般信息--> | 61 | <!-- 一般信息--> |
| 49 | <el-form-item :label="language==0?'国家/地区协会名':'MNA Name'" :required="form.applicatType!=2" | 62 | <el-form-item :label="language==0?'国家/地区协会名':'MNA/Team Name'" :required="form.applicatType==1" |
| 50 | prop="associationCode"> | 63 | prop="associationCode"> |
| 51 | <el-select v-model="form.associationCode" filterable> | 64 | <el-select v-model="form.associationCode" filterable clearable> |
| 52 | <el-option v-for="item in mnaList" :key="item.code" :label="language==0?item.nameCn:item.nameEn" | 65 | <el-option v-for="item in mnaList" :key="item.code" :label="language==0?item.nameCn:item.nameEn" |
| 53 | :value="item.code"/> | 66 | :value="item.code"/> |
| 54 | </el-select> | 67 | </el-select> |
| 55 | </el-form-item> | 68 | </el-form-item> |
| 56 | <el-form-item :label="language==0?'国家/地区协会地址':'MNA Address'" :required="form.applicatType!=2" | 69 | <el-form-item :label="language==0?'国家/地区协会地址':'MNA/Team Address'" :required="form.applicatType==1" |
| 57 | prop="associationAddress"> | 70 | prop="associationAddress"> |
| 58 | <el-input v-model="form.associationAddress"/> | 71 | <el-input v-model="form.associationAddress"/> |
| 59 | </el-form-item> | 72 | </el-form-item> |
| 60 | <el-form-item :label="language==0?'邮箱':'Contact Email'" required prop="email"> | 73 | <el-form-item :label="language==0?'邮箱':'Contact Email'" required prop="email"> |
| 74 | <div class="red">Note: Notifications from the organizing committee will be sent to this email address. | ||
| 75 | </div> | ||
| 61 | <el-input v-model="form.email" type="email"> | 76 | <el-input v-model="form.email" type="email"> |
| 62 | <template #append> | 77 | <template #append> |
| 63 | <el-button @click="sendEmail" v-loading="codeloading"> | 78 | <el-button @click="sendEmail" v-loading="codeloading"> |
| ... | @@ -65,7 +80,7 @@ | ... | @@ -65,7 +80,7 @@ |
| 65 | </el-button> | 80 | </el-button> |
| 66 | </template> | 81 | </template> |
| 67 | </el-input> | 82 | </el-input> |
| 68 | <!-- <div class="tip"></div>--> | 83 | <!-- <div class="tip"></div>--> |
| 69 | </el-form-item> | 84 | </el-form-item> |
| 70 | <el-form-item prop="code" required> | 85 | <el-form-item prop="code" required> |
| 71 | <el-input placeholder="Email verification code" v-model="form.code"/> | 86 | <el-input placeholder="Email verification code" v-model="form.code"/> |
| ... | @@ -86,6 +101,8 @@ | ... | @@ -86,6 +101,8 @@ |
| 86 | <el-input v-model="form.phone"/> | 101 | <el-input v-model="form.phone"/> |
| 87 | </el-form-item> | 102 | </el-form-item> |
| 88 | <el-form-item :label="language==0?'签证办理中国大使馆':'Chinese Embassy Visas Office'" required prop="embassy"> | 103 | <el-form-item :label="language==0?'签证办理中国大使馆':'Chinese Embassy Visas Office'" required prop="embassy"> |
| 104 | <div class="red">Ex:EMBASSY OF THE PEOPLE'S REPUBLIC OFCHINA IN THE ISLAMIC REPUBLIC OF PAKISTAN | ||
| 105 | </div> | ||
| 89 | <el-input v-model="form.embassy"/> | 106 | <el-input v-model="form.embassy"/> |
| 90 | </el-form-item> | 107 | </el-form-item> |
| 91 | <el-form-item :label="language==0?'中国大使馆邮箱':'Chinese Embassy Email'" required prop="embassyEmail"> | 108 | <el-form-item :label="language==0?'中国大使馆邮箱':'Chinese Embassy Email'" required prop="embassyEmail"> |
| ... | @@ -95,11 +112,21 @@ | ... | @@ -95,11 +112,21 @@ |
| 95 | <!--上传护照,多张--> | 112 | <!--上传护照,多张--> |
| 96 | <div class="cptVisaInfoBosTable"> | 113 | <div class="cptVisaInfoBosTable"> |
| 97 | <el-form-item :label="language==0?'有效证件':'Passport Copy'" required> | 114 | <el-form-item :label="language==0?'有效证件':'Passport Copy'" required> |
| 98 | <ImageUpload v-model="form.passportCopy" :is-show-tip="false" :limit="100" | 115 | <div class="wrap-item"> |
| 99 | :action="'/league/visa/getPersonInfoFromCert/3'" | 116 | <!-- <el-text type="success">Please ensure that the uploaded passport image is clear, complete, and free from |
| 100 | paramName="pic" list-type="text" :show-file-list="false" | 117 | glare or reflections. |
| 101 | :button-text="language==0?'上传':'Upload'" @response="getPassportInfo" | 118 | </el-text> --> |
| 102 | /> | 119 | <div class="red">Please ensure that the uploaded passport image is clear, complete, and free from |
| 120 | glare or reflections. | ||
| 121 | </div> | ||
| 122 | <div class="red">You may upload multiple passports at once to appy for multiple applicants. | ||
| 123 | </div> | ||
| 124 | <ImageUpload v-model="form.passportCopy" :is-show-tip="false" :limit="20" | ||
| 125 | :action="'/league/visa/getPersonInfoFromCert/3' " | ||
| 126 | paramName="pic" list-type="text" :show-file-list="false" | ||
| 127 | :button-text="language==0?'上传':'Upload'" @response="getPassportInfo" | ||
| 128 | /> | ||
| 129 | </div> | ||
| 103 | </el-form-item> | 130 | </el-form-item> |
| 104 | <!--识别信息--> | 131 | <!--识别信息--> |
| 105 | <div v-if="form.cptVisaInfoBos?.length>0" class="border"> | 132 | <div v-if="form.cptVisaInfoBos?.length>0" class="border"> |
| ... | @@ -122,7 +149,19 @@ | ... | @@ -122,7 +149,19 @@ |
| 122 | </div> | 149 | </div> |
| 123 | </template> | 150 | </template> |
| 124 | <template #default="scope"> | 151 | <template #default="scope"> |
| 125 | <el-input v-model="scope.row.position" size="small"/> | 152 | <el-select v-model="scope.row.position" size="small"> |
| 153 | <el-option label="Head Of Team" value="Head Of Team"/> | ||
| 154 | <el-option label="Head Coach" value="Head Coach"/> | ||
| 155 | <el-option label="Manager" value="Manager"/> | ||
| 156 | <el-option label="Coach" value="Coach"/> | ||
| 157 | <el-option label="Trainer" value="Trainer"/> | ||
| 158 | <el-option label="Team Doctor" value="Team Doctor"/> | ||
| 159 | <el-option label="Team Physiotherepaist" value="Team Physiotherepaist"/> | ||
| 160 | <el-option label="Competitor" value="Competitor"/> | ||
| 161 | <el-option label="MNA Official" value="MNA Official"/> | ||
| 162 | <el-option label="MNA Guest" value="MNA Guest"/> | ||
| 163 | </el-select> | ||
| 164 | |||
| 126 | </template> | 165 | </template> |
| 127 | </el-table-column> | 166 | </el-table-column> |
| 128 | <el-table-column prop="lastName" :label="'lastName'" min-width="100"> | 167 | <el-table-column prop="lastName" :label="'lastName'" min-width="100"> |
| ... | @@ -225,12 +264,11 @@ | ... | @@ -225,12 +264,11 @@ |
| 225 | </el-table-column> | 264 | </el-table-column> |
| 226 | <el-table-column label="Actions" fixed="right"> | 265 | <el-table-column label="Actions" fixed="right"> |
| 227 | <template #default="scope"> | 266 | <template #default="scope"> |
| 228 | <el-button type="danger" size="small" @click="delPassportInfo(scope.row)" icon="delete"/> | 267 | <el-button type="danger" size="small" @click="delPassportInfo(scope.$index)" icon="delete"/> |
| 229 | </template> | 268 | </template> |
| 230 | </el-table-column> | 269 | </el-table-column> |
| 231 | </el-table> | 270 | </el-table> |
| 232 | </div> | 271 | </div> |
| 233 | |||
| 234 | </div> | 272 | </div> |
| 235 | <!-- 补充材料--> | 273 | <!-- 补充材料--> |
| 236 | <el-form-item :label="language==0?'补充材料':'Additional Documents'" prop="files"> | 274 | <el-form-item :label="language==0?'补充材料':'Additional Documents'" prop="files"> |
| ... | @@ -240,7 +278,7 @@ | ... | @@ -240,7 +278,7 @@ |
| 240 | 278 | ||
| 241 | 279 | ||
| 242 | <div class="text-center"> | 280 | <div class="text-center"> |
| 243 | <el-button type="primary" size="large" @click="submit" round class="btn-lineG"> | 281 | <el-button type="primary" size="large" :disabled="!cptId" @click="submit" round class="btn-lineG"> |
| 244 | {{ language == 0 ? '提交' : 'SUBMIT' }} | 282 | {{ language == 0 ? '提交' : 'SUBMIT' }} |
| 245 | </el-button> | 283 | </el-button> |
| 246 | </div> | 284 | </div> |
| ... | @@ -266,7 +304,8 @@ const {proxy} = getCurrentInstance() | ... | @@ -266,7 +304,8 @@ const {proxy} = getCurrentInstance() |
| 266 | const language = useStorage('language', 0) | 304 | const language = useStorage('language', 0) |
| 267 | const form = ref({ | 305 | const form = ref({ |
| 268 | gender: '0', | 306 | gender: '0', |
| 269 | cptVisaInfoBos: [] | 307 | cptVisaInfoBos: [], |
| 308 | email: user?.email, | ||
| 270 | }) | 309 | }) |
| 271 | const show = ref(false) | 310 | const show = ref(false) |
| 272 | const codeloading = ref(false) | 311 | const codeloading = ref(false) |
| ... | @@ -290,11 +329,15 @@ const open = (params) => { | ... | @@ -290,11 +329,15 @@ const open = (params) => { |
| 290 | show.value = true | 329 | show.value = true |
| 291 | title.value = params.title | 330 | title.value = params.title |
| 292 | cptId.value = params.cptId | 331 | cptId.value = params.cptId |
| 332 | if (!cptId.value) { | ||
| 333 | proxy.$modal.msgError('参数有误'); | ||
| 334 | } | ||
| 335 | |||
| 293 | form.value.userId = user.userId | 336 | form.value.userId = user.userId |
| 294 | form.value.cptId = params.cptId | 337 | form.value.cptId = params.cptId |
| 295 | getCountryList() | 338 | getCountryList() |
| 296 | getMNAList() | 339 | getMNAList() |
| 297 | getVisa() | 340 | // getVisa() |
| 298 | } | 341 | } |
| 299 | defineExpose({open}) | 342 | defineExpose({open}) |
| 300 | 343 | ||
| ... | @@ -327,27 +370,31 @@ function getMNAList() { | ... | @@ -327,27 +370,31 @@ function getMNAList() { |
| 327 | const submit = () => { | 370 | const submit = () => { |
| 328 | console.log(form.value) | 371 | console.log(form.value) |
| 329 | if (form.value.email?.indexOf('@') == -1) { | 372 | if (form.value.email?.indexOf('@') == -1) { |
| 330 | ElMessage.warning(language.value == 0?'请填写正确的邮箱':'Invalid Emaill Address!') | 373 | ElMessage.warning(language.value == 0 ? '请填写正确的邮箱' : 'Invalid Emaill Address!') |
| 331 | return | 374 | return |
| 332 | } | 375 | } |
| 333 | if(form.value.applicatType==5 && !form.value.remarks){ | 376 | if (form.value.applicatType == 5 && !form.value.remarks) { |
| 334 | ElMessage.warning('Please specify Applicant Type') | 377 | ElMessage.warning('Please specify Applicant Type') |
| 335 | return | 378 | return |
| 336 | } | 379 | } |
| 337 | if(form.value.position==3 && !form.value.remarks1){ | 380 | if (form.value.position == 3 && !form.value.remarks1) { |
| 338 | ElMessage.warning('Please specify position') | 381 | ElMessage.warning('Please specify position') |
| 339 | return | 382 | return |
| 340 | } | 383 | } |
| 341 | for (let row of form.value.cptVisaInfoBos){ | 384 | for (let row of form.value.cptVisaInfoBos) { |
| 342 | if(!row.position){ | 385 | if (!row.position) { |
| 343 | ElMessage.warning(`Please specify ${row.fristName}'s position`) | 386 | ElMessage.warning(`Please specify ${row.fristName}'s position`) |
| 344 | return | 387 | return |
| 345 | } | 388 | } |
| 346 | } | 389 | } |
| 347 | 390 | ||
| 348 | if (form.value.files && Array.isArray(form.value.files)) { | 391 | if (form.value.files && Array.isArray(form.value.files)) { |
| 349 | form.value.files = form.value.files[0]?.url | 392 | form.value.files = form.value.files[0]?.url |
| 350 | } | 393 | } |
| 394 | if (form.value.invitationFileArr) { | ||
| 395 | form.value.invitationFile = JSON.stringify(form.value.invitationFileArr) | ||
| 396 | } | ||
| 397 | |||
| 351 | proxy.$refs.iformRef.validate(valid => { | 398 | proxy.$refs.iformRef.validate(valid => { |
| 352 | if (valid) { | 399 | if (valid) { |
| 353 | ElMessageBox.confirm( | 400 | ElMessageBox.confirm( |
| ... | @@ -359,8 +406,8 @@ const submit = () => { | ... | @@ -359,8 +406,8 @@ const submit = () => { |
| 359 | }).then(() => { | 406 | }).then(() => { |
| 360 | form.value.cptId = cptId.value | 407 | form.value.cptId = cptId.value |
| 361 | addInvitation(form.value).then((res) => { | 408 | addInvitation(form.value).then((res) => { |
| 362 | if(res.data==-200){ | 409 | if (res.data == -200) { |
| 363 | ElMessage.error(language.value == 0 ? '邮箱验证码不正确':'Invalid email verification code') | 410 | ElMessage.error(language.value == 0 ? '邮箱验证码不正确' : 'Invalid email verification code') |
| 364 | } else { | 411 | } else { |
| 365 | ElMessage.success(language.value == 0 ? '提交成功' : 'Successfully!') | 412 | ElMessage.success(language.value == 0 ? '提交成功' : 'Successfully!') |
| 366 | showR.value = true | 413 | showR.value = true |
| ... | @@ -391,20 +438,12 @@ const getPassportInfo = (res) => { | ... | @@ -391,20 +438,12 @@ const getPassportInfo = (res) => { |
| 391 | } | 438 | } |
| 392 | } | 439 | } |
| 393 | 440 | ||
| 394 | function delPassportInfo(row) { | 441 | function delPassportInfo(index) { |
| 395 | console.log(row,form.value.cptVisaInfoBos) | 442 | form.value.cptVisaInfoBos.splice(index, 1) |
| 396 | if(form.value.cptVisaInfoBos.length==1){ | ||
| 397 | form.value.cptVisaInfoBos = [] | ||
| 398 | }else { | ||
| 399 | for(let n of form.value.cptVisaInfoBos){ | ||
| 400 | if(n.passportNo==row.passportNo){ | ||
| 401 | form.value.cptVisaInfoBos.splice(form.value.cptVisaInfoBos.indexOf(n),1) | ||
| 402 | } | ||
| 403 | } | ||
| 404 | } | ||
| 405 | } | 443 | } |
| 444 | |||
| 406 | function sendEmail() { | 445 | function sendEmail() { |
| 407 | if(!form.value.email){ | 446 | if (!form.value.email) { |
| 408 | ElMessage.error(language.value == 0 ? '请输入邮箱' : 'Please enter contact Email') | 447 | ElMessage.error(language.value == 0 ? '请输入邮箱' : 'Please enter contact Email') |
| 409 | return | 448 | return |
| 410 | } | 449 | } |
| ... | @@ -413,11 +452,11 @@ function sendEmail() { | ... | @@ -413,11 +452,11 @@ function sendEmail() { |
| 413 | return | 452 | return |
| 414 | } | 453 | } |
| 415 | codeloading.value = true | 454 | codeloading.value = true |
| 416 | sendVisaCode({email:form.value.email}).then(res=>{ | 455 | sendVisaCode({email: form.value.email}).then(res => { |
| 417 | codeloading.value = false | 456 | codeloading.value = false |
| 418 | if(res.code == 200){ | 457 | if (res.code == 200) { |
| 419 | ElMessage.success(language.value == 0 ? '发送成功,请前往邮箱查看' : 'Send success, please check your email') | 458 | ElMessage.success(language.value == 0 ? '发送成功,请前往邮箱查看' : 'Send success, please check your email') |
| 420 | }else{ | 459 | } else { |
| 421 | ElMessage.error(res.msg) | 460 | ElMessage.error(res.msg) |
| 422 | } | 461 | } |
| 423 | }) | 462 | }) |
| ... | @@ -425,7 +464,10 @@ function sendEmail() { | ... | @@ -425,7 +464,10 @@ function sendEmail() { |
| 425 | </script> | 464 | </script> |
| 426 | 465 | ||
| 427 | <style scoped lang="scss"> | 466 | <style scoped lang="scss"> |
| 428 | .red{color: red!important;} | 467 | .red { |
| 468 | color: red !important; | ||
| 469 | } | ||
| 470 | |||
| 429 | :deep(.el-upload--picture-card) { | 471 | :deep(.el-upload--picture-card) { |
| 430 | --el-upload-picture-card-size: 60px; | 472 | --el-upload-picture-card-size: 60px; |
| 431 | } | 473 | } |
| ... | @@ -453,4 +495,9 @@ h4 { | ... | @@ -453,4 +495,9 @@ h4 { |
| 453 | font-size: 12px; | 495 | font-size: 12px; |
| 454 | } | 496 | } |
| 455 | } | 497 | } |
| 498 | |||
| 499 | .wrap-item { | ||
| 500 | flex-wrap: wrap; | ||
| 501 | display: block; | ||
| 502 | } | ||
| 456 | </style> | 503 | </style> | ... | ... |
-
Please register or sign in to post a comment