no message
Showing
8 changed files
with
439 additions
and
174 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", | ... | ... |
| ... | @@ -32,7 +32,9 @@ | ... | @@ -32,7 +32,9 @@ |
| 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"> |
| ... | @@ -62,16 +64,19 @@ | ... | @@ -62,16 +64,19 @@ |
| 62 | <div class="text-center mt10">周边活动</div> | 64 | <div class="text-center mt10">周边活动</div> |
| 63 | </a> | 65 | </a> |
| 64 | </div> | 66 | </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="客服" > | 67 | <div |
| 68 | style="display: none" title="客服" | ||
| 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')" | ||
| 70 | > | ||
| 66 | <img class="kf" src="@/assets/logo/btn01.png"/> | 71 | <img class="kf" src="@/assets/logo/btn01.png"/> |
| 67 | <div class="text-center mt10">在线客服</div> | 72 | <div class="text-center mt10">在线客服</div> |
| 68 | </div> | 73 | </div> |
| 69 | <!-- <div @click="goHelpZH">--> | 74 | <!-- <div @click="goHelpZH">--> |
| 70 | <!-- <a>--> | 75 | <!-- <a>--> |
| 71 | <!-- <img class="kf" src="@/assets/logo/btn02.png"/>--> | 76 | <!-- <img class="kf" src="@/assets/logo/btn02.png"/>--> |
| 72 | <!-- <div class="text-center mt10">周边活动</div>--> | 77 | <!-- <div class="text-center mt10">周边活动</div>--> |
| 73 | <!-- </a>--> | 78 | <!-- </a>--> |
| 74 | <!-- </div>--> | 79 | <!-- </div>--> |
| 75 | </div> | 80 | </div> |
| 76 | <div class="mlb" v-else> | 81 | <div class="mlb" v-else> |
| 77 | <div @click="goAround" class="mb10 pb5"> | 82 | <div @click="goAround" class="mb10 pb5"> |
| ... | @@ -80,14 +85,16 @@ | ... | @@ -80,14 +85,16 @@ |
| 80 | <div class="text-center mt10">ACTIVITIES</div> | 85 | <div class="text-center mt10">ACTIVITIES</div> |
| 81 | </a> | 86 | </a> |
| 82 | </div> | 87 | </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"> | 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"> | ||
| 84 | <img class="kf" src="@/assets/logo/btn01.png"/> | 91 | <img class="kf" src="@/assets/logo/btn01.png"/> |
| 85 | <div class="text-center ">LIVE CHAT</div> | 92 | <div class="text-center ">LIVE CHAT</div> |
| 86 | </div> | 93 | </div> |
| 87 | <!-- <div @click="goHelp">--> | 94 | <!-- <div @click="goHelp">--> |
| 88 | <!-- <img class="kf" src="@/assets/logo/btn02.png"/>--> | 95 | <!-- <img class="kf" src="@/assets/logo/btn02.png"/>--> |
| 89 | <!-- <div class="text-center uppercase">Video Guide</div>--> | 96 | <!-- <div class="text-center uppercase">Video Guide</div>--> |
| 90 | <!-- </div>--> | 97 | <!-- </div>--> |
| 91 | </div> | 98 | </div> |
| 92 | </div> | 99 | </div> |
| 93 | </template> | 100 | </template> |
| ... | @@ -96,13 +103,14 @@ | ... | @@ -96,13 +103,14 @@ |
| 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 | } |
| ... | @@ -111,63 +119,144 @@ const goHelpZH = () => { | ... | @@ -111,63 +119,144 @@ const goHelpZH = () => { |
| 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; |
| 223 | } | ||
| 224 | .footAll { | ||
| 225 | padding: 10px 0; | ||
| 226 | |||
| 160 | ul { | 227 | ul { |
| 161 | li { | 228 | li { |
| 162 | font-size: 10px;line-height: 1.4; | 229 | font-size: 10px; |
| 230 | line-height: 1.4; | ||
| 163 | } | 231 | } |
| 164 | } | 232 | } |
| 165 | img{height: 60px;} | 233 | |
| 166 | p{font-size: 10px;line-height: 1.4;} | 234 | img { |
| 167 | .copyright{font-size: 10px;line-height: 1.4;} | 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 | } | ||
| 168 | } | 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> | ... | ... |
| 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"> |
| ... | @@ -9,7 +9,8 @@ | ... | @@ -9,7 +9,8 @@ |
| 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> | ||
| 13 | </div> | 14 | </div> |
| 14 | </div> | 15 | </div> |
| 15 | 16 | ||
| ... | @@ -25,146 +26,268 @@ | ... | @@ -25,146 +26,268 @@ |
| 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/> |
| 40 | </el-icon> | ||
| 41 | {{ h.address }} | ||
| 39 | </p> | 42 | </p> |
| 40 | </el-col> | 43 | </el-col> |
| 41 | <el-col :lg="4" :md="4" class="text-right"> | 44 | <el-col :lg="4" :md="4" class="text-right"> |
| 42 | <div class="price">{{ language==0?'¥':'$' }}<span>{{ h.price }}</span> | 45 | <div class="price">{{ language == 0 ? '¥' : '$' }}<span>{{ h.price }}</span> |
| 43 | <i v-if="language==0">起</i> | 46 | <i v-if="language==0">起</i> |
| 44 | </div> | 47 | </div> |
| 45 | <el-button class="w200px blackBtn" round type="primary" >{{ language==0?'立即预订':'Select' }} ⇀</el-button> | 48 | <el-button class="w200px blackBtn" round type="primary">{{ language == 0 ? '立即预订' : 'Select' }} ⇀ |
| 49 | </el-button> | ||
| 46 | </el-col> | 50 | </el-col> |
| 47 | </el-row> | 51 | </el-row> |
| 48 | </el-card> | 52 | </el-card> |
| 49 | </el-col> | 53 | </el-col> |
| 50 | </el-row> | 54 | </el-row> |
| 51 | <el-empty v-show="!loading&&list.length==0" :image="`/img/order_no.png`" :image-size="228" description="" /> | 55 | <el-empty v-show="!loading&&list.length==0" :image="`/img/order_no.png`" :image-size="228" description=""/> |
| 52 | <div style="height: 50px"></div> | 56 | <div style="height: 50px"></div> |
| 53 | </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() | 70 | |
| 67 | const user = useUserStore().user | 71 | const router = useRouter() |
| 68 | const useStore = useUserStore | 72 | const route = useRoute() |
| 69 | const language= useStorage('language',0) | 73 | |
| 70 | const query = ref({ | 74 | const useStore = useUserStore() |
| 71 | name:'' | 75 | const user = useStore.user |
| 72 | }) | 76 | |
| 73 | const cptId = ref('') | 77 | const flag = useRouteQuery('flag') |
| 74 | const list = ref([]) | 78 | |
| 75 | const loading = ref(false) | 79 | const language = useStorage('language', 0) |
| 76 | onMounted(()=>{ | 80 | const query = ref({ |
| 81 | name: '' | ||
| 82 | }) | ||
| 83 | const cptId = ref('') | ||
| 84 | const list = ref([]) | ||
| 85 | const loading = ref(false) | ||
| 86 | onMounted(() => { | ||
| 77 | query.value.activityId = route.params.cptId | 87 | query.value.activityId = route.params.cptId |
| 78 | getList() | 88 | getList() |
| 79 | }) | 89 | }) |
| 80 | 90 | ||
| 81 | function getList() { | 91 | function getList() { |
| 82 | loading.value = true | 92 | loading.value = true |
| 83 | booking.getHotelList(query.value).then(res=>{ | 93 | booking.getHotelList(Object.assign({ |
| 94 | meeting: flag.value, | ||
| 95 | },query.value)).then(res => { | ||
| 84 | list.value = res.rows | 96 | list.value = res.rows |
| 85 | loading.value = false | 97 | loading.value = false |
| 86 | console.log(list.value) | 98 | console.log(list.value) |
| 87 | 99 | ||
| 88 | }).catch(e=>{ | 100 | }).catch(e => { |
| 89 | loading.value = false | 101 | loading.value = false |
| 90 | }) | 102 | }) |
| 91 | } | 103 | } |
| 92 | function goDetail(item) { | 104 | |
| 93 | if(!user){ | 105 | function goDetail(item) { |
| 94 | useStore().setVisitor() | 106 | if (!user) { |
| 107 | useStore.setVisitor() | ||
| 95 | return | 108 | return |
| 96 | } | 109 | } |
| 97 | if(item.meeting=='1'){ | 110 | if (item.meeting == '1') { |
| 98 | ElMessageBox.confirm( item.meetText,'',{ | 111 | ElMessageBox.confirm(item.meetText, '', { |
| 99 | cancelButtonText: language.value==1?'Close ':'关闭', | 112 | cancelButtonText: language.value == 1 ? 'Close ' : '关闭', |
| 100 | confirmButtonText: language.value==1?'Continue to book':'继续预订', | 113 | confirmButtonText: language.value == 1 ? 'Continue to book' : '继续预订', |
| 101 | type: 'warning', | 114 | type: 'warning', |
| 102 | }).then((res) => { | 115 | }).then((res) => { |
| 103 | router.push({ | 116 | router.push({ |
| 104 | name:'hotelDetail', | 117 | name: 'hotelDetail', |
| 105 | params:{ | 118 | params: { |
| 106 | hotelId:item.hotelId, | 119 | hotelId: item.hotelId, |
| 107 | }, | 120 | }, |
| 108 | query:{ | 121 | query: { |
| 109 | id:item.id | 122 | id: item.id |
| 110 | } | 123 | } |
| 111 | }) | 124 | }) |
| 112 | }) | 125 | }) |
| 113 | } else { | 126 | } else { |
| 114 | router.push({ | 127 | router.push({ |
| 115 | name:'hotelDetail', | 128 | name: 'hotelDetail', |
| 116 | params:{ | 129 | params: { |
| 117 | hotelId:item.hotelId, | 130 | hotelId: item.hotelId, |
| 118 | }, | 131 | }, |
| 119 | query:{ | 132 | query: { |
| 120 | id:item.id | 133 | id: item.id |
| 121 | } | 134 | } |
| 122 | }) | 135 | }) |
| 123 | } | 136 | } |
| 124 | } | 137 | } |
| 125 | </script> | 138 | </script> |
| 126 | 139 | ||
| 127 | <style scoped lang="scss"> | 140 | <style scoped lang="scss"> |
| 128 | .hotel{ | 141 | .hotel { |
| 129 | h3{margin: 0 0 10px;} | 142 | h3 { |
| 130 | img.w100{object-fit: cover;aspect-ratio: 16/9} | 143 | margin: 0 0 10px; |
| 131 | .addr{font-size: 14px;color: #929AA0;font-weight: 400;margin: 0 0 10px;} | 144 | } |
| 132 | .price{margin: 0 0 8px; | 145 | |
| 133 | color: #FF8124;font-size: 18px; | 146 | img.w100 { |
| 134 | span{font-size: 36px;margin: 0 8px;font-family: 'DINAlternate-Bold';font-weight: 600;} | 147 | object-fit: cover; |
| 135 | i{font-style: normal;color: #929AA0;} | 148 | aspect-ratio: 16/9 |
| 136 | } | 149 | } |
| 137 | .blackBtn{background: #000;border: #000;} | 150 | |
| 138 | } | 151 | .addr { |
| 139 | .banner{height: 140px;background-size: cover;text-align: center; | 152 | font-size: 14px; |
| 140 | background: url("@/assets/booking/jd_bg.png") center;display: flex;align-items: center; | 153 | color: #929AA0; |
| 154 | font-weight: 400; | ||
| 155 | margin: 0 0 10px; | ||
| 156 | } | ||
| 157 | |||
| 158 | .price { | ||
| 159 | margin: 0 0 8px; | ||
| 160 | color: #FF8124; | ||
| 161 | font-size: 18px; | ||
| 162 | |||
| 163 | span { | ||
| 164 | font-size: 36px; | ||
| 165 | margin: 0 8px; | ||
| 166 | font-family: 'DINAlternate-Bold'; | ||
| 167 | font-weight: 600; | ||
| 168 | } | ||
| 169 | |||
| 170 | i { | ||
| 171 | font-style: normal; | ||
| 172 | color: #929AA0; | ||
| 173 | } | ||
| 174 | } | ||
| 175 | |||
| 176 | .blackBtn { | ||
| 177 | background: #000; | ||
| 178 | border: #000; | ||
| 179 | } | ||
| 180 | } | ||
| 181 | |||
| 182 | .banner { | ||
| 183 | height: 140px; | ||
| 184 | background-size: cover; | ||
| 185 | text-align: center; | ||
| 186 | background: url("@/assets/booking/jd_bg.png") center; | ||
| 187 | display: flex; | ||
| 188 | align-items: center; | ||
| 141 | justify-content: center; | 189 | justify-content: center; |
| 142 | img{display: block;margin:-30px auto 0;width: auto;} | 190 | |
| 191 | img { | ||
| 192 | display: block; | ||
| 193 | margin: -30px auto 0; | ||
| 194 | width: auto; | ||
| 195 | } | ||
| 196 | } | ||
| 197 | |||
| 198 | .searchBar { | ||
| 199 | position: relative; | ||
| 200 | top: -30px; | ||
| 201 | background: #FFFFFF; | ||
| 202 | display: flex; | ||
| 203 | padding: 20px; | ||
| 204 | border-radius: 10px; | ||
| 205 | } | ||
| 206 | |||
| 207 | .no-border { | ||
| 208 | border: none; | ||
| 209 | background: #F5F7F9; | ||
| 210 | |||
| 211 | :deep(.el-input__wrapper) { | ||
| 212 | border: none; | ||
| 213 | box-shadow: none; | ||
| 214 | background: #F5F7F9; | ||
| 143 | } | 215 | } |
| 144 | .searchBar{position: relative;top: -30px; | 216 | } |
| 145 | background: #FFFFFF;display: flex;padding: 20px; | 217 | |
| 146 | border-radius: 10px;} | 218 | .imgbox { |
| 147 | .no-border{border: none;background: #F5F7F9; | 219 | width: 100%; |
| 148 | :deep(.el-input__wrapper){border: none;box-shadow: none;background: #F5F7F9;} | 220 | height: 100%; |
| 221 | position: relative; | ||
| 222 | |||
| 223 | img { | ||
| 224 | width: 100%; | ||
| 225 | height: 100%; | ||
| 149 | } | 226 | } |
| 150 | .imgbox {width: 100%;height: 100%;position: relative; | 227 | |
| 151 | img{width: 100%;height: 100%;} | 228 | .starBox { |
| 152 | .starBox{position: absolute;bottom: 0;right: 0;background: rgba(0,0,0,0.4);padding: 10px 15px 3px;} | 229 | position: absolute; |
| 230 | bottom: 0; | ||
| 231 | right: 0; | ||
| 232 | background: rgba(0, 0, 0, 0.4); | ||
| 233 | padding: 10px 15px 3px; | ||
| 153 | } | 234 | } |
| 154 | .po-r-b{} | 235 | } |
| 155 | .starBox{ | 236 | |
| 237 | .po-r-b { | ||
| 238 | } | ||
| 239 | |||
| 240 | .starBox { | ||
| 156 | border-radius: 14px 0 0 0; | 241 | border-radius: 14px 0 0 0; |
| 157 | img{display: inline-block;margin-right: 4px;width: 24px;} | 242 | |
| 243 | img { | ||
| 244 | display: inline-block; | ||
| 245 | margin-right: 4px; | ||
| 246 | width: 24px; | ||
| 247 | } | ||
| 248 | } | ||
| 249 | |||
| 250 | .tagbox { | ||
| 251 | margin: 10px 0; | ||
| 252 | |||
| 253 | a { | ||
| 254 | color: #AFB5B9; | ||
| 255 | font-size: 12px; | ||
| 256 | } | ||
| 257 | |||
| 258 | span { | ||
| 259 | border-radius: 13px; | ||
| 260 | font-size: 12px; | ||
| 261 | padding: 3px 10px; | ||
| 262 | margin-right: 10px; | ||
| 263 | font-weight: 400; | ||
| 264 | } | ||
| 265 | |||
| 266 | span:nth-child(4n) { | ||
| 267 | background: rgba(50, 177, 108, 0.2); | ||
| 268 | color: rgba(50, 177, 108, 1); | ||
| 158 | } | 269 | } |
| 159 | .tagbox{margin: 10px 0; | 270 | |
| 160 | a{color: #AFB5B9;font-size: 12px;} | 271 | span:nth-child(4n+1) { |
| 161 | span{border-radius: 13px;font-size: 12px;padding: 3px 10px;margin-right:10px;font-weight: 400;} | 272 | background: rgba(243, 152, 0, 0.2); |
| 162 | span:nth-child(4n){background: rgba(50, 177, 108, 0.2);color: rgba(50, 177, 108, 1);} | 273 | color: rgba(243, 152, 0, 1); |
| 163 | span:nth-child(4n+1){background:rgba(243, 152, 0, 0.2);color: rgba(243, 152, 0, 1);} | 274 | } |
| 164 | span:nth-child(4n+2){background: rgba(0, 160, 233, 0.2);color: rgba(0, 160, 233, 1);} | 275 | |
| 165 | span:nth-child(4n+3){background: rgba(247, 64, 166, 0.2);color:rgba(247, 64, 166, 1);} | 276 | span:nth-child(4n+2) { |
| 277 | background: rgba(0, 160, 233, 0.2); | ||
| 278 | color: rgba(0, 160, 233, 1); | ||
| 166 | } | 279 | } |
| 167 | @media screen and (max-width: 768px) { | 280 | |
| 168 | .hotel h3{margin: 20px 0 10px; font-size: 18px;} | 281 | span:nth-child(4n+3) { |
| 282 | background: rgba(247, 64, 166, 0.2); | ||
| 283 | color: rgba(247, 64, 166, 1); | ||
| 284 | } | ||
| 285 | } | ||
| 286 | |||
| 287 | @media screen and (max-width: 768px) { | ||
| 288 | .hotel h3 { | ||
| 289 | margin: 20px 0 10px; | ||
| 290 | font-size: 18px; | ||
| 169 | } | 291 | } |
| 292 | } | ||
| 170 | </style> | 293 | </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 | ... | ... |
| ... | @@ -16,12 +16,12 @@ | ... | @@ -16,12 +16,12 @@ |
| 16 | <el-col :sm="12" :lg="4" :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">--> |
| 20 | <!-- <div class="item" @click="goAround"><img src="@/assets/dance/btn06.png">周边活动</div>--> | 20 | <!-- <div class="item" @click="goAround"><img src="@/assets/dance/btn06.png">周边活动</div>--> |
| 21 | <!-- </el-col>--> | 21 | <!-- </el-col>--> |
| 22 | <!-- <el-col :sm="12" :lg="4" :xs="12">--> | 22 | <!-- <el-col :sm="12" :lg="4" :xs="12">--> |
| 23 | <!-- <div class="item" @click="liveClick"><img src="@/assets/dance/btn05.png">赛事直播</div>--> | 23 | <!-- <div class="item" @click="liveClick"><img src="@/assets/dance/btn05.png">赛事直播</div>--> |
| 24 | <!-- </el-col>--> | 24 | <!-- </el-col>--> |
| 25 | </el-row> | 25 | </el-row> |
| 26 | </div> | 26 | </div> |
| 27 | <div class="itemBox_en" v-else> | 27 | <div class="itemBox_en" v-else> |
| ... | @@ -41,18 +41,18 @@ | ... | @@ -41,18 +41,18 @@ |
| 41 | <el-col :sm="12" :lg="4" :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>--> |
| 51 | </el-row> | 51 | </el-row> |
| 52 | </div> | 52 | </div> |
| 53 | <order-remark ref="orderRemarkRef" @submit="goBooking"/> | 53 | <order-remark ref="orderRemarkRef" @submit="goBooking"/> |
| 54 | <affix-invitation ref="dialogInvitationRef"/> | 54 | <affix-invitation ref="dialogInvitationRef"/> |
| 55 | <!-- 媒体注册--> | 55 | <!-- 媒体注册--> |
| 56 | <media-register ref="mediaRegisterRef"/> | 56 | <media-register ref="mediaRegisterRef"/> |
| 57 | </template> | 57 | </template> |
| 58 | 58 | ||
| ... | @@ -99,16 +99,16 @@ watch(matchId, (val) => { | ... | @@ -99,16 +99,16 @@ watch(matchId, (val) => { |
| 99 | form.value = null | 99 | form.value = null |
| 100 | }) | 100 | }) |
| 101 | 101 | ||
| 102 | match.getInfoByCptId({ cptId:props.matchId }).then((res) => { | 102 | match.getInfoByCptId({cptId: props.matchId}).then((res) => { |
| 103 | liveData.value = res.data || {} | 103 | liveData.value = res.data || {} |
| 104 | }) | 104 | }) |
| 105 | } | 105 | } |
| 106 | }) | 106 | }) |
| 107 | 107 | ||
| 108 | const liveClick = () => { | 108 | const liveClick = () => { |
| 109 | if (liveData.value.videoStatus=="1") { | 109 | if (liveData.value.videoStatus == "1") { |
| 110 | 110 | ||
| 111 | if(language.value==0){ | 111 | if (language.value == 0) { |
| 112 | 112 | ||
| 113 | window.open(liveData.value.videoUrlCn) | 113 | window.open(liveData.value.videoUrlCn) |
| 114 | } else { | 114 | } else { |
| ... | @@ -124,7 +124,7 @@ const goAbout = () => { | ... | @@ -124,7 +124,7 @@ const goAbout = () => { |
| 124 | } | 124 | } |
| 125 | const goAround = () => { | 125 | const goAround = () => { |
| 126 | //周边活动 | 126 | //周边活动 |
| 127 | router.push({path: `/about/wuDao`,query: {activeIndex: '2'}}) | 127 | router.push({path: `/about/wuDao`, query: {activeIndex: '2'}}) |
| 128 | } | 128 | } |
| 129 | 129 | ||
| 130 | onMounted(() => { | 130 | onMounted(() => { |
| ... | @@ -135,6 +135,7 @@ function building() { | ... | @@ -135,6 +135,7 @@ function building() { |
| 135 | ElMessage.warning(language.value == 0 ? '感谢您对本次比赛的关注,该服务暂无可预订信息,敬请期待。' : 'Thank you for your attention to this competition. The service is currently unavailable for booking. Please stay tuned.') | 135 | ElMessage.warning(language.value == 0 ? '感谢您对本次比赛的关注,该服务暂无可预订信息,敬请期待。' : 'Thank you for your attention to this competition. The service is currently unavailable for booking. Please stay tuned.') |
| 136 | return | 136 | return |
| 137 | } | 137 | } |
| 138 | |||
| 138 | function applyInvitation() { | 139 | function applyInvitation() { |
| 139 | var obj = { | 140 | var obj = { |
| 140 | title: language.value == 0 ? '邀请函申请' : 'Visa Invitation Letter ', | 141 | title: language.value == 0 ? '邀请函申请' : 'Visa Invitation Letter ', |
| ... | @@ -142,13 +143,18 @@ function applyInvitation() { | ... | @@ -142,13 +143,18 @@ function applyInvitation() { |
| 142 | } | 143 | } |
| 143 | proxy.$refs['dialogInvitationRef'].open(obj) | 144 | proxy.$refs['dialogInvitationRef'].open(obj) |
| 144 | } | 145 | } |
| 146 | |||
| 145 | const user = useUserStore().user | 147 | const user = useUserStore().user |
| 148 | |||
| 146 | function goMedia() { | 149 | function goMedia() { |
| 150 | proxy.$modal.msgWarning(language.value == 0 ? '暂未开放' :'Not yet open') | ||
| 151 | return; | ||
| 152 | |||
| 147 | //如果没登录 | 153 | //如果没登录 |
| 148 | if (!user) { | 154 | if (!user) { |
| 149 | ElMessage({ | 155 | ElMessage({ |
| 150 | type: 'warning', | 156 | type: 'warning', |
| 151 | message: language.value == 0 ? '请先登录' : 'Please log in first', | 157 | message: language.value == 0 ? '请先登录' : 'Please login first', |
| 152 | }) | 158 | }) |
| 153 | return | 159 | return |
| 154 | } | 160 | } |
| ... | @@ -162,16 +168,16 @@ function popRemark(type) { | ... | @@ -162,16 +168,16 @@ function popRemark(type) { |
| 162 | return | 168 | return |
| 163 | } | 169 | } |
| 164 | 170 | ||
| 165 | if(type == '0'){ | 171 | if (type == '0') { |
| 166 | // 签证 | 172 | // 签证 |
| 167 | if(language.value === 0){ | 173 | if (language.value === 0) { |
| 168 | ElMessage.warning('请切换英文页面办理') | 174 | ElMessage.warning('请切换英文页面办理') |
| 169 | return | 175 | return |
| 170 | } else { | 176 | } else { |
| 171 | if (!user) { | 177 | if (!user) { |
| 172 | ElMessage({ | 178 | ElMessage({ |
| 173 | type: 'warning', | 179 | type: 'warning', |
| 174 | message: language.value == 0 ? '请先登录' : 'Please log in first', | 180 | message: language.value == 0 ? '请先登录' : 'Please login first', |
| 175 | }) | 181 | }) |
| 176 | return | 182 | return |
| 177 | } | 183 | } |
| ... | @@ -200,7 +206,7 @@ function popRemark(type) { | ... | @@ -200,7 +206,7 @@ function popRemark(type) { |
| 200 | proxy.$refs['orderRemarkRef'].open(params) | 206 | proxy.$refs['orderRemarkRef'].open(params) |
| 201 | } | 207 | } |
| 202 | 208 | ||
| 203 | function goBooking(n) { | 209 | function goBooking(n, f) { |
| 204 | switch (n) { | 210 | switch (n) { |
| 205 | case 10: | 211 | case 10: |
| 206 | // 票务 | 212 | // 票务 |
| ... | @@ -213,7 +219,7 @@ function goBooking(n) { | ... | @@ -213,7 +219,7 @@ function goBooking(n) { |
| 213 | break; | 219 | break; |
| 214 | case 1: | 220 | case 1: |
| 215 | //酒店 | 221 | //酒店 |
| 216 | router.push({path: `/booking/hotel/${props.matchId}`}) | 222 | router.push({path: `/booking/hotel/${props.matchId}`, query: {flag: f}}) |
| 217 | break; | 223 | break; |
| 218 | case 2: | 224 | case 2: |
| 219 | //车辆 | 225 | //车辆 |
| ... | @@ -236,29 +242,43 @@ function goBooking(n) { | ... | @@ -236,29 +242,43 @@ function goBooking(n) { |
| 236 | </script> | 242 | </script> |
| 237 | 243 | ||
| 238 | <style scoped lang="scss"> | 244 | <style scoped lang="scss"> |
| 239 | .itemBox,.itemBox_en { | 245 | .itemBox, .itemBox_en { |
| 240 | padding: 20px;background: #fff;box-shadow: 0 0 46px 0 rgba(1,16,64,0.08); | 246 | padding: 20px; |
| 247 | background: #fff; | ||
| 248 | box-shadow: 0 0 46px 0 rgba(1, 16, 64, 0.08); | ||
| 241 | border-radius: 20px; | 249 | border-radius: 20px; |
| 242 | } | 250 | } |
| 243 | 251 | ||
| 244 | :deep(.el-col){ max-width: 20%;flex: 0 0 20%;} | 252 | :deep(.el-col) { |
| 253 | max-width: 20%; | ||
| 254 | flex: 0 0 20%; | ||
| 255 | } | ||
| 256 | |||
| 245 | .item { | 257 | .item { |
| 246 | //box-shadow: 0px 0px 21px 0px rgba(41, 23, 101, 0.14); | 258 | //box-shadow: 0px 0px 21px 0px rgba(41, 23, 101, 0.14); |
| 247 | padding: 10px 0; | 259 | padding: 10px 0; |
| 248 | display: flex; | 260 | display: flex; |
| 249 | align-items: center;justify-content: center; | 261 | align-items: center; |
| 262 | justify-content: center; | ||
| 250 | font-size: 20px; | 263 | font-size: 20px; |
| 251 | background: url("@/assets/dance/btn_bg.png") no-repeat left #FFFFFF; | 264 | background: url("@/assets/dance/btn_bg.png") no-repeat left #FFFFFF; |
| 252 | background-size: 100% 100%; | 265 | background-size: 100% 100%; |
| 253 | border-radius: 15px;gap: 10px; | 266 | border-radius: 15px; |
| 267 | gap: 10px; | ||
| 254 | 268 | ||
| 255 | img {object-fit: contain; | 269 | img { |
| 256 | width: 75px;height: 75px; | 270 | object-fit: contain; |
| 271 | width: 75px; | ||
| 272 | height: 75px; | ||
| 257 | } | 273 | } |
| 258 | } | 274 | } |
| 275 | |||
| 259 | .itemBox_en .item { | 276 | .itemBox_en .item { |
| 260 | flex-direction: column;text-align: center;text-transform: uppercase; | 277 | flex-direction: column; |
| 261 | height: 100%; | 278 | text-align: center; |
| 279 | text-transform: uppercase; | ||
| 280 | height: 100%; | ||
| 281 | |||
| 262 | img { | 282 | img { |
| 263 | position: relative; | 283 | position: relative; |
| 264 | transition: all 0.2s; | 284 | transition: all 0.2s; |
| ... | @@ -278,11 +298,23 @@ height: 100%; | ... | @@ -278,11 +298,23 @@ height: 100%; |
| 278 | } | 298 | } |
| 279 | 299 | ||
| 280 | @media screen and (max-width: 768px) { | 300 | @media screen and (max-width: 768px) { |
| 281 | .itemBox,.itemBox_en{padding: 0 20px 0} | 301 | .itemBox, .itemBox_en { |
| 282 | .item{font-size: 16px;height: auto !important; | 302 | padding: 0 20px 0 |
| 283 | padding: 15px 0;margin: 10px 0; | 303 | } |
| 284 | img{width: 50px;height: 50px} | 304 | .item { |
| 305 | font-size: 16px; | ||
| 306 | height: auto !important; | ||
| 307 | padding: 15px 0; | ||
| 308 | margin: 10px 0; | ||
| 309 | |||
| 310 | img { | ||
| 311 | width: 50px; | ||
| 312 | height: 50px | ||
| 313 | } | ||
| 314 | } | ||
| 315 | :deep(.el-col) { | ||
| 316 | max-width: 50%; | ||
| 317 | flex: 0 0 50%; | ||
| 285 | } | 318 | } |
| 286 | :deep(.el-col){ max-width: 50%;flex: 0 0 50%;} | ||
| 287 | } | 319 | } |
| 288 | </style> | 320 | </style> | ... | ... |
| 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> | ... | ... |
This diff is collapsed.
Click to expand it.
| 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 | > |
| ... | @@ -24,7 +24,7 @@ | ... | @@ -24,7 +24,7 @@ |
| 24 | <el-form :model="form" :rules="rules" ref="iformRef" label-position="top" v-else> | 24 | <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"> | 25 | <el-form-item :label="language==0?'申请人类别':'Applicant Type'" required prop="applicatType"> |
| 26 | <el-select v-model="form.applicatType"> | 26 | <el-select v-model="form.applicatType"> |
| 27 | <el-option label="MNA" value="1"/> | 27 | <el-option label="MNA/Team" value="1"/> |
| 28 | <el-option label="Technical Officials" value="2"/> | 28 | <el-option label="Technical Officials" value="2"/> |
| 29 | <el-option label="WT Staff" value="3"/> | 29 | <el-option label="WT Staff" value="3"/> |
| 30 | <el-option label="Supplier" value="4"/> | 30 | <el-option label="Supplier" value="4"/> |
| ... | @@ -38,6 +38,11 @@ | ... | @@ -38,6 +38,11 @@ |
| 38 | <el-option :label="language==0?'TE/PU(外办)邀请函':'TE/PU Invitation'" value="2"/> | 38 | <el-option :label="language==0?'TE/PU(外办)邀请函':'TE/PU Invitation'" value="2"/> |
| 39 | </el-select> | 39 | </el-select> |
| 40 | </el-form-item> | 40 | </el-form-item> |
| 41 | <el-form-item v-if="form.invitationType=='2'" label="Proof of Employment" required prop="invitationFile"> | ||
| 42 | <el-text type="danger">Proof of Employment(Note: This document must be issued by the invitee’s association and must bear an official stamp or signature.)</el-text> | ||
| 43 | <br/> | ||
| 44 | <file-upload v-model="form.invitationFile" :is-show-tip="false" :limit="1"></file-upload> | ||
| 45 | </el-form-item> | ||
| 41 | <el-form-item :label="language==0?'是否需要中文邀请函':'Do you need a Chinese invitation?'" required prop="chinese"> | 46 | <el-form-item :label="language==0?'是否需要中文邀请函':'Do you need a Chinese invitation?'" required prop="chinese"> |
| 42 | <el-radio-group v-model="form.chinese"> | 47 | <el-radio-group v-model="form.chinese"> |
| 43 | <el-radio :value="1">{{ language == 0 ? '是' : 'Yes' }}</el-radio> | 48 | <el-radio :value="1">{{ language == 0 ? '是' : 'Yes' }}</el-radio> |
| ... | @@ -46,18 +51,19 @@ | ... | @@ -46,18 +51,19 @@ |
| 46 | </el-form-item> | 51 | </el-form-item> |
| 47 | 52 | ||
| 48 | <!-- 一般信息--> | 53 | <!-- 一般信息--> |
| 49 | <el-form-item :label="language==0?'国家/地区协会名':'MNA Name'" :required="form.applicatType!=2" | 54 | <el-form-item :label="language==0?'国家/地区协会名':'MNA/Team Name'" :required="form.applicatType==1" |
| 50 | prop="associationCode"> | 55 | prop="associationCode"> |
| 51 | <el-select v-model="form.associationCode" filterable> | 56 | <el-select v-model="form.associationCode" filterable> |
| 52 | <el-option v-for="item in mnaList" :key="item.code" :label="language==0?item.nameCn:item.nameEn" | 57 | <el-option v-for="item in mnaList" :key="item.code" :label="language==0?item.nameCn:item.nameEn" |
| 53 | :value="item.code"/> | 58 | :value="item.code"/> |
| 54 | </el-select> | 59 | </el-select> |
| 55 | </el-form-item> | 60 | </el-form-item> |
| 56 | <el-form-item :label="language==0?'国家/地区协会地址':'MNA Address'" :required="form.applicatType!=2" | 61 | <el-form-item :label="language==0?'国家/地区协会地址':'MNA/Team Address'" :required="form.applicatType==1" |
| 57 | prop="associationAddress"> | 62 | prop="associationAddress"> |
| 58 | <el-input v-model="form.associationAddress"/> | 63 | <el-input v-model="form.associationAddress"/> |
| 59 | </el-form-item> | 64 | </el-form-item> |
| 60 | <el-form-item :label="language==0?'邮箱':'Contact Email'" required prop="email"> | 65 | <el-form-item :label="language==0?'邮箱':'Contact Email'" required prop="email"> |
| 66 | <el-text type="danger">Note: Notifications from the organizing committee will be sent to this email address.</el-text> | ||
| 61 | <el-input v-model="form.email" type="email"> | 67 | <el-input v-model="form.email" type="email"> |
| 62 | <template #append> | 68 | <template #append> |
| 63 | <el-button @click="sendEmail" v-loading="codeloading"> | 69 | <el-button @click="sendEmail" v-loading="codeloading"> |
| ... | @@ -95,7 +101,8 @@ | ... | @@ -95,7 +101,8 @@ |
| 95 | <!--上传护照,多张--> | 101 | <!--上传护照,多张--> |
| 96 | <div class="cptVisaInfoBosTable"> | 102 | <div class="cptVisaInfoBosTable"> |
| 97 | <el-form-item :label="language==0?'有效证件':'Passport Copy'" required> | 103 | <el-form-item :label="language==0?'有效证件':'Passport Copy'" required> |
| 98 | <ImageUpload v-model="form.passportCopy" :is-show-tip="false" :limit="100" | 104 | <el-text type="danger">Please ensure that the uploaded passport image is clear, complete, and free from glare or reflections.</el-text> |
| 105 | <ImageUpload v-model="form.passportCopy" :is-show-tip="false" :limit="20" | ||
| 99 | :action="'/league/visa/getPersonInfoFromCert/3'" | 106 | :action="'/league/visa/getPersonInfoFromCert/3'" |
| 100 | paramName="pic" list-type="text" :show-file-list="false" | 107 | paramName="pic" list-type="text" :show-file-list="false" |
| 101 | :button-text="language==0?'上传':'Upload'" @response="getPassportInfo" | 108 | :button-text="language==0?'上传':'Upload'" @response="getPassportInfo" |
| ... | @@ -230,7 +237,6 @@ | ... | @@ -230,7 +237,6 @@ |
| 230 | </el-table-column> | 237 | </el-table-column> |
| 231 | </el-table> | 238 | </el-table> |
| 232 | </div> | 239 | </div> |
| 233 | |||
| 234 | </div> | 240 | </div> |
| 235 | <!-- 补充材料--> | 241 | <!-- 补充材料--> |
| 236 | <el-form-item :label="language==0?'补充材料':'Additional Documents'" prop="files"> | 242 | <el-form-item :label="language==0?'补充材料':'Additional Documents'" prop="files"> |
| ... | @@ -266,7 +272,8 @@ const {proxy} = getCurrentInstance() | ... | @@ -266,7 +272,8 @@ const {proxy} = getCurrentInstance() |
| 266 | const language = useStorage('language', 0) | 272 | const language = useStorage('language', 0) |
| 267 | const form = ref({ | 273 | const form = ref({ |
| 268 | gender: '0', | 274 | gender: '0', |
| 269 | cptVisaInfoBos: [] | 275 | cptVisaInfoBos: [], |
| 276 | email: user?.email, | ||
| 270 | }) | 277 | }) |
| 271 | const show = ref(false) | 278 | const show = ref(false) |
| 272 | const codeloading = ref(false) | 279 | const codeloading = ref(false) |
| ... | @@ -294,7 +301,7 @@ const open = (params) => { | ... | @@ -294,7 +301,7 @@ const open = (params) => { |
| 294 | form.value.cptId = params.cptId | 301 | form.value.cptId = params.cptId |
| 295 | getCountryList() | 302 | getCountryList() |
| 296 | getMNAList() | 303 | getMNAList() |
| 297 | getVisa() | 304 | // getVisa() |
| 298 | } | 305 | } |
| 299 | defineExpose({open}) | 306 | defineExpose({open}) |
| 300 | 307 | ... | ... |
-
Please register or sign in to post a comment