ca975928 by 华明祺

Merge branch '世锦赛' of https://code.itechtop.cn/yangyang/dance-pc into 世锦赛

# Conflicts:
#	src/viewsPc/components/homeQuick.vue
2 parents 508b1a6c 45db652c
...@@ -6,23 +6,23 @@ ...@@ -6,23 +6,23 @@
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 v-model="query.name" :placeholder="language==0?'请输入关键字搜索':'Search'" 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 class="btn-lineG" icon="search" size="large" type="primary" @click="getList">
12 {{ language == 0 ? '搜索' : 'Search' }} 12 {{ language == 0 ? '搜索' : 'Search' }}
13 </el-button> 13 </el-button>
14 </div> 14 </div>
15 </div> 15 </div>
16 16
17 <div class="box" v-loading="loading"> 17 <div v-loading="loading" class="box">
18 <el-row :gutter="20"> 18 <el-row :gutter="20">
19 <el-col :lg="24" :md="24" :sm="24" :xs="24" :xl="24" v-for="(h,index) in list" class="mb20"> 19 <el-col v-for="(h,index) in list" :lg="24" :md="24" :sm="24" :xl="24" :xs="24" class="mb20">
20 <el-card @click="goDetail(h)"> 20 <el-card @click="goDetail(h)">
21 <!-- 酒店列表--> 21 <!-- 酒店列表-->
22 <el-row class="hotel" align="middle" :gutter="20"> 22 <el-row :gutter="20" align="middle" class="hotel">
23 <el-col :lg="6" :md="6"> 23 <el-col :lg="6" :md="6">
24 <div class="imgbox"> 24 <div class="imgbox">
25 <img class="w100" :src="fillImgUrl(h.photos?.split(',')[0])"/> 25 <img :src="fillImgUrl(h.photos?.split(',')[0])" class="w100"/>
26 </div> 26 </div>
27 </el-col> 27 </el-col>
28 <el-col :lg="12" :md="12"> 28 <el-col :lg="12" :md="12">
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
35 <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>
36 </div> 36 </div>
37 <p class="esp addr mt20"> 37 <p class="esp addr mt20">
38 <el-icon size="16" style="position: relative;top: 2px" color="#929AA0"> 38 <el-icon color="#929AA0" size="16" style="position: relative;top: 2px">
39 <LocationFilled/> 39 <LocationFilled/>
40 </el-icon> 40 </el-icon>
41 {{ h.address }} 41 {{ h.address }}
...@@ -55,7 +55,7 @@ ...@@ -55,7 +55,7 @@
55 <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=""/>
56 <div style="height: 50px"></div> 56 <div style="height: 50px"></div>
57 </div> 57 </div>
58 58
59 </div> 59 </div>
60 </template> 60 </template>
61 61
...@@ -74,7 +74,7 @@ const route = useRoute() ...@@ -74,7 +74,7 @@ const route = useRoute()
74 const useStore = useUserStore() 74 const useStore = useUserStore()
75 const user = useStore.user 75 const user = useStore.user
76 76
77 const flag = useRouteQuery('flag') 77 // const flag = useRouteQuery('flag')
78 78
79 const language = useStorage('language', 0) 79 const language = useStorage('language', 0)
80 const query = ref({ 80 const query = ref({
...@@ -90,13 +90,11 @@ onMounted(() => { ...@@ -90,13 +90,11 @@ onMounted(() => {
90 90
91 function getList() { 91 function getList() {
92 loading.value = true 92 loading.value = true
93 booking.getHotelList(Object.assign({ 93 booking.getHotelList(Object.assign({}, query.value)).then(res => {
94 meeting: flag.value,
95 },query.value)).then(res => {
96 list.value = res.rows 94 list.value = res.rows
97 loading.value = false 95 loading.value = false
98 console.log(list.value) 96 console.log(list.value)
99 97
100 }).catch(e => { 98 }).catch(e => {
101 loading.value = false 99 loading.value = false
102 }) 100 })
...@@ -107,73 +105,84 @@ function goDetail(item) { ...@@ -107,73 +105,84 @@ function goDetail(item) {
107 useStore.setVisitor() 105 useStore.setVisitor()
108 return 106 return
109 } 107 }
110 if (item.meeting == '1') { 108
111 ElMessageBox.confirm(item.meetText, '', { 109 router.push({
112 cancelButtonText: language.value == 1 ? 'Close ' : '关闭', 110 name: 'hotelDetail',
113 confirmButtonText: language.value == 1 ? 'Continue to book' : '继续预订', 111 params: {
114 dangerouslyUseHTMLString: true, 112 hotelId: item.hotelId,
115 type: 'warning', 113 },
116 }).then((res) => { 114 query: {
117 router.push({ 115 id: item.id
118 name: 'hotelDetail', 116 }
119 params: { 117 })
120 hotelId: item.hotelId, 118
121 }, 119 // if (item.meeting == '1') {
122 query: { 120 // ElMessageBox.confirm(item.meetText, '', {
123 id: item.id 121 // cancelButtonText: language.value == 1 ? 'Close ' : '关闭',
124 } 122 // confirmButtonText: language.value == 1 ? 'Continue to book' : '继续预订',
125 }) 123 // dangerouslyUseHTMLString: true,
126 }) 124 // type: 'warning',
127 } else { 125 // }).then((res) => {
128 router.push({ 126 // router.push({
129 name: 'hotelDetail', 127 // name: 'hotelDetail',
130 params: { 128 // params: {
131 hotelId: item.hotelId, 129 // hotelId: item.hotelId,
132 }, 130 // },
133 query: { 131 // query: {
134 id: item.id 132 // id: item.id
135 } 133 // }
136 }) 134 // })
137 } 135 // })
136 // } else {
137 // router.push({
138 // name: 'hotelDetail',
139 // params: {
140 // hotelId: item.hotelId,
141 // },
142 // query: {
143 // id: item.id
144 // }
145 // })
146 // }
138 } 147 }
139 </script> 148 </script>
140 149
141 <style scoped lang="scss"> 150 <style lang="scss" scoped>
142 .hotel { 151 .hotel {
143 h3 { 152 h3 {
144 margin: 0 0 10px; 153 margin: 0 0 10px;
145 } 154 }
146 155
147 img.w100 { 156 img.w100 {
148 object-fit: cover; 157 object-fit: cover;
149 aspect-ratio: 16/9 158 aspect-ratio: 16/9
150 } 159 }
151 160
152 .addr { 161 .addr {
153 font-size: 14px; 162 font-size: 14px;
154 color: #929AA0; 163 color: #929AA0;
155 font-weight: 400; 164 font-weight: 400;
156 margin: 0 0 10px; 165 margin: 0 0 10px;
157 } 166 }
158 167
159 .price { 168 .price {
160 margin: 0 0 8px; 169 margin: 0 0 8px;
161 color: #FF8124; 170 color: #FF8124;
162 font-size: 18px; 171 font-size: 18px;
163 172
164 span { 173 span {
165 font-size: 36px; 174 font-size: 36px;
166 margin: 0 8px; 175 margin: 0 8px;
167 font-family: 'DINAlternate-Bold'; 176 font-family: 'DINAlternate-Bold';
168 font-weight: 600; 177 font-weight: 600;
169 } 178 }
170 179
171 i { 180 i {
172 font-style: normal; 181 font-style: normal;
173 color: #929AA0; 182 color: #929AA0;
174 } 183 }
175 } 184 }
176 185
177 .blackBtn { 186 .blackBtn {
178 background: #000; 187 background: #000;
179 border: #000; 188 border: #000;
...@@ -188,7 +197,7 @@ function goDetail(item) { ...@@ -188,7 +197,7 @@ function goDetail(item) {
188 display: flex; 197 display: flex;
189 align-items: center; 198 align-items: center;
190 justify-content: center; 199 justify-content: center;
191 200
192 img { 201 img {
193 display: block; 202 display: block;
194 margin: -30px auto 0; 203 margin: -30px auto 0;
...@@ -208,7 +217,7 @@ function goDetail(item) { ...@@ -208,7 +217,7 @@ function goDetail(item) {
208 .no-border { 217 .no-border {
209 border: none; 218 border: none;
210 background: #F5F7F9; 219 background: #F5F7F9;
211 220
212 :deep(.el-input__wrapper) { 221 :deep(.el-input__wrapper) {
213 border: none; 222 border: none;
214 box-shadow: none; 223 box-shadow: none;
...@@ -220,12 +229,12 @@ function goDetail(item) { ...@@ -220,12 +229,12 @@ function goDetail(item) {
220 width: 100%; 229 width: 100%;
221 height: 100%; 230 height: 100%;
222 position: relative; 231 position: relative;
223 232
224 img { 233 img {
225 width: 100%; 234 width: 100%;
226 height: 100%; 235 height: 100%;
227 } 236 }
228 237
229 .starBox { 238 .starBox {
230 position: absolute; 239 position: absolute;
231 bottom: 0; 240 bottom: 0;
...@@ -240,7 +249,7 @@ function goDetail(item) { ...@@ -240,7 +249,7 @@ function goDetail(item) {
240 249
241 .starBox { 250 .starBox {
242 border-radius: 14px 0 0 0; 251 border-radius: 14px 0 0 0;
243 252
244 img { 253 img {
245 display: inline-block; 254 display: inline-block;
246 margin-right: 4px; 255 margin-right: 4px;
...@@ -250,12 +259,12 @@ function goDetail(item) { ...@@ -250,12 +259,12 @@ function goDetail(item) {
250 259
251 .tagbox { 260 .tagbox {
252 margin: 10px 0; 261 margin: 10px 0;
253 262
254 a { 263 a {
255 color: #AFB5B9; 264 color: #AFB5B9;
256 font-size: 12px; 265 font-size: 12px;
257 } 266 }
258 267
259 span { 268 span {
260 border-radius: 13px; 269 border-radius: 13px;
261 font-size: 12px; 270 font-size: 12px;
...@@ -263,22 +272,22 @@ function goDetail(item) { ...@@ -263,22 +272,22 @@ function goDetail(item) {
263 margin-right: 10px; 272 margin-right: 10px;
264 font-weight: 400; 273 font-weight: 400;
265 } 274 }
266 275
267 span:nth-child(4n) { 276 span:nth-child(4n) {
268 background: rgba(50, 177, 108, 0.2); 277 background: rgba(50, 177, 108, 0.2);
269 color: rgba(50, 177, 108, 1); 278 color: rgba(50, 177, 108, 1);
270 } 279 }
271 280
272 span:nth-child(4n+1) { 281 span:nth-child(4n+1) {
273 background: rgba(243, 152, 0, 0.2); 282 background: rgba(243, 152, 0, 0.2);
274 color: rgba(243, 152, 0, 1); 283 color: rgba(243, 152, 0, 1);
275 } 284 }
276 285
277 span:nth-child(4n+2) { 286 span:nth-child(4n+2) {
278 background: rgba(0, 160, 233, 0.2); 287 background: rgba(0, 160, 233, 0.2);
279 color: rgba(0, 160, 233, 1); 288 color: rgba(0, 160, 233, 1);
280 } 289 }
281 290
282 span:nth-child(4n+3) { 291 span:nth-child(4n+3) {
283 background: rgba(247, 64, 166, 0.2); 292 background: rgba(247, 64, 166, 0.2);
284 color: rgba(247, 64, 166, 1); 293 color: rgba(247, 64, 166, 1);
......
1 <template> 1 <template>
2 <div class="itemBox" v-if="language === 0"> 2 <div v-if="language === 0" class="itemBox">
3 <el-row :gutter="20"> 3 <el-row :gutter="20">
4 <el-col :sm="12" :lg="4" :xs="12"> 4 <el-col :lg="4" :sm="12" :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 :sm="12" :lg="4" :xs="12"> 7 <el-col :lg="4" :sm="12" :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 :sm="12" :lg="4" :xs="12"> 10 <el-col :lg="4" :sm="12" :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 :sm="12" :lg="4" :xs="12"> 13 <el-col :lg="4" :sm="12" :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 :sm="12" :lg="4" :xs="12"> 16 <el-col :lg="4" :sm="12" :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 class="itemBox_en" v-else> 27 <div v-else class="itemBox_en">
28 <el-row :gutter="20" justify="space-around"> 28 <el-row :gutter="20" justify="space-around">
29 <el-col :sm="12" :lg="4" :xs="12"> 29 <el-col :lg="4" :sm="12" :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 :sm="12" :lg="4" :xs="12"> 32 <el-col :lg="4" :sm="12" :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 :sm="12" :lg="4" :xs="12"> 35 <el-col :lg="4" :sm="12" :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 :sm="12" :lg="4" :xs="12"> 38 <el-col :lg="4" :sm="12" :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 :sm="12" :lg="4" :xs="12"> 41 <el-col :lg="4" :sm="12" :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>-->
...@@ -100,7 +100,7 @@ watch(matchId, (val) => { ...@@ -100,7 +100,7 @@ watch(matchId, (val) => {
100 console.log(err) 100 console.log(err)
101 form.value = null 101 form.value = null
102 }) 102 })
103 103
104 match.getInfoByCptId({cptId: props.matchId}).then((res) => { 104 match.getInfoByCptId({cptId: props.matchId}).then((res) => {
105 liveData.value = res.data || {} 105 liveData.value = res.data || {}
106 }) 106 })
...@@ -109,9 +109,9 @@ watch(matchId, (val) => { ...@@ -109,9 +109,9 @@ watch(matchId, (val) => {
109 109
110 const liveClick = () => { 110 const liveClick = () => {
111 if (liveData.value.videoStatus == "1") { 111 if (liveData.value.videoStatus == "1") {
112 112
113 if (language.value == 0) { 113 if (language.value == 0) {
114 114
115 window.open(liveData.value.videoUrlCn) 115 window.open(liveData.value.videoUrlCn)
116 } else { 116 } else {
117 window.open(liveData.value.videoUrlEn) 117 window.open(liveData.value.videoUrlEn)
...@@ -135,7 +135,7 @@ onMounted(() => { ...@@ -135,7 +135,7 @@ onMounted(() => {
135 135
136 function building() { 136 function building() {
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 ElMessage.warning(language.value == 0 ? '感谢您对本次比赛的关注,该服务暂无可预订信息,敬请期待。' : 'Thank you for your attention to this competition. The service is currently unavailable for booking. Please stay tuned.')
138 return 138
139 } 139 }
140 140
141 function applyInvitation() { 141 function applyInvitation() {
...@@ -149,9 +149,12 @@ function applyInvitation() { ...@@ -149,9 +149,12 @@ function applyInvitation() {
149 const user = useUserStore().user 149 const user = useUserStore().user
150 150
151 function goMedia() { 151 function goMedia() {
152 proxy.$modal.msgWarning(language.value == 0 ? '暂未开放' : 'Not yet open') 152 // proxy.$modal.msgWarning(language.value == 0 ? '暂未开放' : 'Not yet open')
153 return; 153 // return;
154 154 if (form.value.isMedia == 0) {
155 building()
156 return
157 }
155 //如果没登录 158 //如果没登录
156 if (!user) { 159 if (!user) {
157 ElMessage({ 160 ElMessage({
...@@ -160,7 +163,7 @@ function goMedia() { ...@@ -160,7 +163,7 @@ function goMedia() {
160 }) 163 })
161 return 164 return
162 } 165 }
163 166
164 proxy.$refs['mediaRegisterRef'].open({cptId: matchId.value}) 167 proxy.$refs['mediaRegisterRef'].open({cptId: matchId.value})
165 } 168 }
166 169
...@@ -169,15 +172,20 @@ function popRemark(type) { ...@@ -169,15 +172,20 @@ function popRemark(type) {
169 building() 172 building()
170 return 173 return
171 } 174 }
172 175
173 if (type == '0') { 176 if (type == '0') {
174 ElMessage.warning('The visa invitation letter application will be available soon. Thank you for your patience.') 177 // ElMessage.warning('The visa invitation letter application will be available soon. Thank you for your patience.')
175 return; 178 // return;
176 // 签证 179 // 签证
177 if (language.value === 0) { 180 if (language.value == 0) {
178 ElMessage.warning('请切换英文页面办理') 181 ElMessage.warning('请切换英文页面办理')
179 return 182 return
180 } else { 183 } else {
184 if (form.value.isVisa == 0) {
185 building()
186 return
187 }
188
181 if (!user) { 189 if (!user) {
182 ElMessage({ 190 ElMessage({
183 type: 'warning', 191 type: 'warning',
...@@ -185,34 +193,29 @@ function popRemark(type) { ...@@ -185,34 +193,29 @@ function popRemark(type) {
185 }) 193 })
186 return 194 return
187 } 195 }
188 196
189 applyInvitation() 197 applyInvitation()
190 return 198 return
191 } 199 }
192 } 200 }
193 201
194 if (type == '1') {
195 proxy.$modal.msgWarning(language.value == 0 ? '暂未开放' : 'Not yet open')
196 return;
197 }
198
199 if ((form.value.isJdView == 0 && type == '1') 202 if ((form.value.isJdView == 0 && type == '1')
200 || (form.value.isCarView == 0 && type == '2') 203 || (form.value.isCarView == 0 && type == '2')
201 || (form.value.isFoodView == 0 && type == '3') 204 || (form.value.isFoodView == 0 && type == '3')
202 || (form.value.isMealView == 0 && type == '4') 205 || (form.value.isMealView == 0 && type == '4')
203 || (form.value.isPhotoView == 0 && type == '5') 206 || (form.value.isPhotoView == 0 && type == '5')
204 || (form.value.isTicketView == 0 && type == '10') 207 || (form.value.isTicketView == 0 && type == '10')
205 ) { 208 ) {
206 building() 209 building()
207 return 210 return
208 } 211 }
209 212
210 if (type == '2') { 213 if (type == '2') {
211 emit("pickUp") 214 emit("pickUp")
212 return; 215 return;
213 } 216 }
214 217
215 218
216 const params = { 219 const params = {
217 matchId: props.matchId, 220 matchId: props.matchId,
218 title: language.value == 0 ? '预订说明' : 'Booking Instructions', 221 title: language.value == 0 ? '预订说明' : 'Booking Instructions',
...@@ -220,13 +223,15 @@ function popRemark(type) { ...@@ -220,13 +223,15 @@ function popRemark(type) {
220 cptName: props.cptName 223 cptName: props.cptName
221 } 224 }
222 proxy.$refs['orderRemarkRef'].open(params) 225 proxy.$refs['orderRemarkRef'].open(params)
226
227 // goBooking(type)
223 } 228 }
224 229
225 function goBooking(n, f) { 230 function goBooking(n, f) {
226 switch (n) { 231 switch (n) {
227 case 10: 232 case 10:
228 // 票务 233 // 票务
229 234
230 // router.push({ 235 // router.push({
231 // path: `/booking/ticket/${props.matchId}`, 236 // path: `/booking/ticket/${props.matchId}`,
232 // params: {id:props.matchId}, 237 // params: {id:props.matchId},
...@@ -235,7 +240,10 @@ function goBooking(n, f) { ...@@ -235,7 +240,10 @@ function goBooking(n, f) {
235 break; 240 break;
236 case 1: 241 case 1:
237 //酒店 242 //酒店
238 router.push({path: `/booking/hotel/${props.matchId}`, query: {flag: f}}) 243 router.push({
244 path: `/booking/hotel/${props.matchId}`
245 // , query: {flag: f}
246 })
239 break; 247 break;
240 case 2: 248 case 2:
241 //车辆 249 //车辆
...@@ -257,7 +265,7 @@ function goBooking(n, f) { ...@@ -257,7 +265,7 @@ function goBooking(n, f) {
257 } 265 }
258 </script> 266 </script>
259 267
260 <style scoped lang="scss"> 268 <style lang="scss" scoped>
261 .itemBox, .itemBox_en { 269 .itemBox, .itemBox_en {
262 padding: 20px; 270 padding: 20px;
263 background: #fff; 271 background: #fff;
...@@ -281,7 +289,7 @@ function goBooking(n, f) { ...@@ -281,7 +289,7 @@ function goBooking(n, f) {
281 background-size: 100% 100%; 289 background-size: 100% 100%;
282 border-radius: 15px; 290 border-radius: 15px;
283 gap: 10px; 291 gap: 10px;
284 292
285 img { 293 img {
286 object-fit: contain; 294 object-fit: contain;
287 width: 75px; 295 width: 75px;
...@@ -294,19 +302,19 @@ function goBooking(n, f) { ...@@ -294,19 +302,19 @@ function goBooking(n, f) {
294 text-align: center; 302 text-align: center;
295 text-transform: uppercase; 303 text-transform: uppercase;
296 height: 100%; 304 height: 100%;
297 305
298 img { 306 img {
299 position: relative; 307 position: relative;
300 transition: all 0.2s; 308 transition: all 0.2s;
301 } 309 }
302 310
303 &:hover { 311 &:hover {
304 box-shadow: 0 0 10px #eee; 312 box-shadow: 0 0 10px #eee;
305 313
306 img { 314 img {
307 transform: rotateY(180deg); 315 transform: rotateY(180deg);
308 } 316 }
309 317
310 p { 318 p {
311 color: #000; 319 color: #000;
312 } 320 }
...@@ -322,7 +330,7 @@ function goBooking(n, f) { ...@@ -322,7 +330,7 @@ function goBooking(n, f) {
322 height: auto !important; 330 height: auto !important;
323 padding: 15px 0; 331 padding: 15px 0;
324 margin: 10px 0; 332 margin: 10px 0;
325 333
326 img { 334 img {
327 width: 50px; 335 width: 50px;
328 height: 50px 336 height: 50px
......
1 <template> 1 <template>
2 <el-dialog :title="title" v-model="show" @close="close"> 2 <el-dialog v-model="show" :title="title" @close="close">
3 <div> 3 <div>
4 <h2 class="text-warning text-center" v-if="cptName">{{cptName}}</h2> 4 <h2 v-if="cptName" class="text-warning text-center">{{ cptName }}</h2>
5 5
6 <div v-if="type==1" class="plr20" v-html="form.reserveDes"></div> 6 <div v-if="type==1" class="plr20" v-html="form.reserveDes"></div>
7 <div v-if="type==2" class="plr20" v-html="form.reserveDesCar"></div> 7 <div v-if="type==2" class="plr20" v-html="form.reserveDesCar"></div>
8 <div v-if="type==3" class="plr20" v-html="form.reserveDesFood"></div> 8 <div v-if="type==3" class="plr20" v-html="form.reserveDesFood"></div>
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 12
13 13
14 <el-row v-if="type==1" justify="center"> 14 <!-- <el-row v-if="type==1" justify="center">-->
15 <el-radio-group v-model="hotelType"> 15 <!-- <el-radio-group v-model="hotelType">-->
16 <el-radio label="0">{{language==0?'运动队酒店':'Team Hotel Reservation'}}</el-radio> 16 <!-- <el-radio label="0">{{language==0?'运动队酒店':'Team Hotel Reservation'}}</el-radio>-->
17 <el-radio label="1">{{language==0?'执委大会酒店':'Conference Hotel Reservation'}}</el-radio> 17 <!-- <el-radio label="1">{{language==0?'执委大会酒店':'Conference Hotel Reservation'}}</el-radio>-->
18 </el-radio-group> 18 <!-- </el-radio-group>-->
19 </el-row> 19 <!-- </el-row>-->
20 20
21 </div> 21 </div>
22 <template #footer> 22 <template #footer>
23 <div class="dialog-footer text-center"> 23 <div class="dialog-footer text-center">
24 <el-button type="primary" class="btn-lineG w200px" round @click="ok">{{language==0?'确定':'Confirm'}}</el-button> 24 <el-button class="btn-lineG w200px" round type="primary" @click="ok">{{ language == 0 ? '确定' : 'Confirm' }}
25 </div> 25 </el-button>
26 </template> 26 </div>
27 </el-dialog> 27 </template>
28 </el-dialog>
28 </template> 29 </template>
29 30
30 <script setup> 31 <script setup>
31 import {getBaseInfoByActiveId} from "@/apiPc/booking"; 32 import {getBaseInfoByActiveId} from "@/apiPc/booking";
32 import {getCurrentInstance} from "@vue/runtime-core"; 33 import {getCurrentInstance} from "@vue/runtime-core";
33 import {useStorage} from "@vueuse/core/index"; 34 import {useStorage} from "@vueuse/core/index";
34 const emit = defineEmits([ 'submit']) 35
36 const emit = defineEmits(['submit'])
35 const {proxy} = getCurrentInstance() 37 const {proxy} = getCurrentInstance()
36 const language= useStorage('language',0) 38 const language = useStorage('language', 0)
37 import useUserStore from "@/store/modules/user"; 39 import useUserStore from "@/store/modules/user";
40
38 const user = useUserStore().user 41 const user = useUserStore().user
39 const title = ref('') 42 const title = ref('')
40 const cptName = ref('') 43 const cptName = ref('')
41 const show = ref(false) 44 const show = ref(false)
42 const form = ref({}) 45 const form = ref({})
43 const hotelType= ref('1') 46 const hotelType = ref('1')
44 47
45 let matchId = '' 48 let matchId = ''
46 let type = '' 49 let type = ''
...@@ -58,28 +61,30 @@ defineExpose({ ...@@ -58,28 +61,30 @@ defineExpose({
58 61
59 function getData() { 62 function getData() {
60 console.log(matchId) 63 console.log(matchId)
61 getBaseInfoByActiveId(matchId).then(res=>{ 64 getBaseInfoByActiveId(matchId).then(res => {
62 form.value = res.data || {} 65 form.value = res.data || {}
63 console.log(form.value) 66 console.log(form.value)
64 }).catch(err=>{ 67 }).catch(err => {
65 console.log(err) 68 console.log(err)
66 }) 69 })
67 } 70 }
71
68 function close() { 72 function close() {
69 show.value = false 73 show.value = false
70 } 74 }
75
71 function ok() { 76 function ok() {
72 // type 77 // type
73 show.value = false 78 show.value = false
74 79
75 // if(!user){ 80 // if(!user){
76 // useUserStore().setVisitor() 81 // useUserStore().setVisitor()
77 // } else { 82 // } else {
78 emit('submit', type, hotelType.value) 83 emit('submit', type, hotelType.value)
79 // } 84 // }
80 } 85 }
81 </script> 86 </script>
82 87
83 <style scoped lang="scss"> 88 <style lang="scss" scoped>
84 89
85 </style> 90 </style>
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
9 <div v-if="isLogin"> 9 <div v-if="isLogin">
10 <group-info-row v-if="groupId" :group-id="groupId" :match-id="matchId"/> 10 <group-info-row v-if="groupId" :group-id="groupId" :match-id="matchId"/>
11 <coach-info-row v-if="groupId" :group-id="groupId" :match-id="matchId"/> 11 <coach-info-row v-if="groupId" :group-id="groupId" :match-id="matchId"/>
12 12
13 <div v-if="user.utype=='1'&&myMemberTable.length>0" class="pd20"> 13 <div v-if="user.utype=='1'&&myMemberTable.length>0" class="pd20">
14 <div class="leftboderTT">{{ language == 0 ? '随行人员清单' : 'List of accompanying personnel' }} 14 <div class="leftboderTT">{{ language == 0 ? '随行人员清单' : 'List of accompanying personnel' }}
15 </div> 15 </div>
...@@ -75,7 +75,7 @@ ...@@ -75,7 +75,7 @@
75 </el-icon> 75 </el-icon>
76 {{ language == 0 ? '导出设项报名清单' : 'Export LIST OF REGISTERED COMPETITIONS' }} 76 {{ language == 0 ? '导出设项报名清单' : 'Export LIST OF REGISTERED COMPETITIONS' }}
77 </el-link> 77 </el-link>
78 78
79 <el-link type="primary" @click="exportPdf"> 79 <el-link type="primary" @click="exportPdf">
80 <el-icon> 80 <el-icon>
81 <Upload/> 81 <Upload/>
...@@ -105,7 +105,7 @@ ...@@ -105,7 +105,7 @@
105 </el-button> 105 </el-button>
106 </div> 106 </div>
107 </el-card> 107 </el-card>
108 108
109 <el-card class="mt20 mb20"> 109 <el-card class="mt20 mb20">
110 <el-row class="result"> 110 <el-row class="result">
111 <el-col :lg="12"> 111 <el-col :lg="12">
...@@ -227,7 +227,7 @@ ...@@ -227,7 +227,7 @@
227 </svg> 227 </svg>
228 </el-radio> 228 </el-radio>
229 </el-radio-group> 229 </el-radio-group>
230 230
231 <div v-if="payType == '2'&&wePayCodeUrl"> 231 <div v-if="payType == '2'&&wePayCodeUrl">
232 <div class="payImgbox flexCenter"> 232 <div class="payImgbox flexCenter">
233 <div> 233 <div>
...@@ -249,9 +249,10 @@ ...@@ -249,9 +249,10 @@
249 please refresh the page 249 please refresh the page
250 </div> 250 </div>
251 </div> 251 </div>
252 252
253 <div v-if="payType == '3'"> 253 <div v-if="payType == '3'">
254 <table cellpadding="0" cellspacing="0" class="table-border table"> 254 <table cellpadding="0" cellspacing="0" class="table-border table">
255 <tbody>
255 <tr> 256 <tr>
256 <th class="head" colspan="2"> 257 <th class="head" colspan="2">
257 {{ language == 0 ? '线下缴费的收款信息' : 'Offline Payment Collection Information' }} 258 {{ language == 0 ? '线下缴费的收款信息' : 'Offline Payment Collection Information' }}
...@@ -313,8 +314,8 @@ ...@@ -313,8 +314,8 @@
313 <span v-else class="text-danger size12">*You can confirm with the contact person by phone after uploading the remittance form. The specific payment results can be viewed in the My Registration section of the personal center to check the progress</span> 314 <span v-else class="text-danger size12">*You can confirm with the contact person by phone after uploading the remittance form. The specific payment results can be viewed in the My Registration section of the personal center to check the progress</span>
314 </td> 315 </td>
315 </tr> 316 </tr>
317 </tbody>
316 </table> 318 </table>
317
318 <div class="text-center"> 319 <div class="text-center">
319 <el-button class="btn-lineG w200px" round type="primary" @click="upRR">{{ 320 <el-button class="btn-lineG w200px" round type="primary" @click="upRR">{{
320 language == 0 ? '保存' : 'Save' 321 language == 0 ? '保存' : 'Save'
...@@ -336,7 +337,7 @@ ...@@ -336,7 +337,7 @@
336 </el-icon> 337 </el-icon>
337 <p class="text-success">{{ language == 0 ? '支付成功' : 'successful!' }}</p> 338 <p class="text-success">{{ language == 0 ? '支付成功' : 'successful!' }}</p>
338 <h3 class="wePrice">{{ language == 0 ? '¥' : '$' }}{{ form.totalFee || 0 }}</h3> 339 <h3 class="wePrice">{{ language == 0 ? '¥' : '$' }}{{ form.totalFee || 0 }}</h3>
339 340
340 <el-button v-if="language != 0" class="btn-lineG w200px" round type="primary" @click="downInvoice"> 341 <el-button v-if="language != 0" class="btn-lineG w200px" round type="primary" @click="downInvoice">
341 {{ language == 0 ? '下载收据' : 'DownLoad Invoice' }} 342 {{ language == 0 ? '下载收据' : 'DownLoad Invoice' }}
342 </el-button> 343 </el-button>
...@@ -357,7 +358,7 @@ ...@@ -357,7 +358,7 @@
357 </div> 358 </div>
358 </el-card> 359 </el-card>
359 </div> 360 </div>
360 361
361 <div v-if="errorBox" class="box"> 362 <div v-if="errorBox" class="box">
362 <el-result 363 <el-result
363 :sub-title="language==0?'请确认订单号是否正确':'Please confirm if the order number is correct'" 364 :sub-title="language==0?'请确认订单号是否正确':'Please confirm if the order number is correct'"
...@@ -371,7 +372,7 @@ ...@@ -371,7 +372,7 @@
371 </template> 372 </template>
372 </el-result> 373 </el-result>
373 </div> 374 </div>
374 375
375 <el-dialog v-model="showSJDialog" :close-on-click-modal="false" :close-on-press-escape="false" 376 <el-dialog v-model="showSJDialog" :close-on-click-modal="false" :close-on-press-escape="false"
376 :title="language==0?'开收据':'Issue a receipt'" width="460px"> 377 :title="language==0?'开收据':'Issue a receipt'" width="460px">
377 <div class="flex"> 378 <div class="flex">
...@@ -389,7 +390,7 @@ ...@@ -389,7 +390,7 @@
389 </div> 390 </div>
390 </div> 391 </div>
391 </el-dialog> 392 </el-dialog>
392 393
393 </div> 394 </div>
394 </template> 395 </template>
395 396
...@@ -460,7 +461,7 @@ onMounted(() => { ...@@ -460,7 +461,7 @@ onMounted(() => {
460 } 461 }
461 var is_mobile = navigator.userAgent.toLowerCase().match(/(ipod|ipad|iphone|android|coolpad|mmp|smartphone|midp|wap|xoom|symbian|j2me|blackberry|wince)/i) != null; 462 var is_mobile = navigator.userAgent.toLowerCase().match(/(ipod|ipad|iphone|android|coolpad|mmp|smartphone|midp|wap|xoom|symbian|j2me|blackberry|wince)/i) != null;
462 console.log(is_mobile) 463 console.log(is_mobile)
463 464
464 if (is_mobile) { 465 if (is_mobile) {
465 isphone.value = true 466 isphone.value = true
466 } else { 467 } else {
...@@ -524,7 +525,7 @@ function getSignList() { ...@@ -524,7 +525,7 @@ function getSignList() {
524 }).catch(err => { 525 }).catch(err => {
525 if (isLogin.value) { 526 if (isLogin.value) {
526 router.push({name: 'myMatch'}) 527 router.push({name: 'myMatch'})
527 528
528 } 529 }
529 }) 530 })
530 } 531 }
...@@ -617,7 +618,7 @@ function exportSignList(n) { ...@@ -617,7 +618,7 @@ function exportSignList(n) {
617 ...obj 618 ...obj
618 }, `${fileName}_${new Date().getTime()}.xlsx`) 619 }, `${fileName}_${new Date().getTime()}.xlsx`)
619 } 620 }
620 621
621 } 622 }
622 623
623 function exportPdf() { 624 function exportPdf() {
...@@ -637,7 +638,7 @@ function exportPdf() { ...@@ -637,7 +638,7 @@ function exportPdf() {
637 ...obj 638 ...obj
638 }, `${fileName}_${new Date().getTime()}.pdf`) 639 }, `${fileName}_${new Date().getTime()}.pdf`)
639 } 640 }
640 641
641 } 642 }
642 643
643 function copy(str) { 644 function copy(str) {
...@@ -747,27 +748,27 @@ const showSJ = () => { ...@@ -747,27 +748,27 @@ const showSJ = () => {
747 width: 100%; 748 width: 100%;
748 max-width: 1000px; 749 max-width: 1000px;
749 margin: 20px auto; 750 margin: 20px auto;
750 751
751 .head { 752 .head {
752 background: #EFF2F7; 753 background: #EFF2F7;
753 height: 50px; 754 height: 50px;
754 font-size: 16px; 755 font-size: 16px;
755 font-weight: 400; 756 font-weight: 400;
756 } 757 }
757 758
758 th { 759 th {
759 background: #FAFBFD; 760 background: #FAFBFD;
760 font-size: 14px; 761 font-size: 14px;
761 border-bottom: 1px solid #E5E5E5; 762 border-bottom: 1px solid #E5E5E5;
762 border-right: 1px solid #E5E5E5; 763 border-right: 1px solid #E5E5E5;
763 } 764 }
764 765
765 td { 766 td {
766 border-bottom: 1px solid #E5E5E5; 767 border-bottom: 1px solid #E5E5E5;
767 border-right: 1px solid #E5E5E5; 768 border-right: 1px solid #E5E5E5;
768 padding: 10px; 769 padding: 10px;
769 } 770 }
770 771
771 &.table-border { 772 &.table-border {
772 border-top: 1px solid #E5E5E5; 773 border-top: 1px solid #E5E5E5;
773 border-left: 1px solid #E5E5E5; 774 border-left: 1px solid #E5E5E5;
...@@ -786,23 +787,23 @@ const showSJ = () => { ...@@ -786,23 +787,23 @@ const showSJ = () => {
786 787
787 .result { 788 .result {
788 font-size: 22px; 789 font-size: 22px;
789 790
790 .flex { 791 .flex {
791 display: flex; 792 display: flex;
792 align-items: center; 793 align-items: center;
793 font-weight: 500; 794 font-weight: 500;
794 795
795 img { 796 img {
796 margin-right: 10px 797 margin-right: 10px
797 } 798 }
798 } 799 }
799 800
800 .priceb { 801 .priceb {
801 color: #7B7F83; 802 color: #7B7F83;
802 font-size: 16px; 803 font-size: 16px;
803 text-align: right; 804 text-align: right;
804 line-height: 50px; 805 line-height: 50px;
805 806
806 span { 807 span {
807 font-weight: bold; 808 font-weight: bold;
808 font-size: 22px; 809 font-size: 22px;
...@@ -815,7 +816,7 @@ const showSJ = () => { ...@@ -815,7 +816,7 @@ const showSJ = () => {
815 .skeletonBox { 816 .skeletonBox {
816 position: relative; 817 position: relative;
817 overflow: hidden; 818 overflow: hidden;
818 819
819 .btn-lineG { 820 .btn-lineG {
820 position: absolute; 821 position: absolute;
821 left: 0; 822 left: 0;
...@@ -825,7 +826,7 @@ const showSJ = () => { ...@@ -825,7 +826,7 @@ const showSJ = () => {
825 bottom: 0; 826 bottom: 0;
826 width: 200px; 827 width: 200px;
827 box-shadow: 0 0 1000px 500px rgba(255, 255, 255, 0.5); 828 box-shadow: 0 0 1000px 500px rgba(255, 255, 255, 0.5);
828 829
829 } 830 }
830 } 831 }
831 832
...@@ -837,26 +838,26 @@ const showSJ = () => { ...@@ -837,26 +838,26 @@ const showSJ = () => {
837 838
838 .priceBar { 839 .priceBar {
839 padding: 0 0 20px; 840 padding: 0 0 20px;
840 841
841 .flex { 842 .flex {
842 display: flex; 843 display: flex;
843 justify-content: right; 844 justify-content: right;
844 align-items: baseline; 845 align-items: baseline;
845 846
846 .item { 847 .item {
847 font-size: 16px; 848 font-size: 16px;
848 margin-right: 15px; 849 margin-right: 15px;
849 850
850 label { 851 label {
851 color: #95A1A6; 852 color: #95A1A6;
852 } 853 }
853 854
854 span { 855 span {
855 font-family: DIN Alternate; 856 font-family: DIN Alternate;
856 } 857 }
857 } 858 }
858 } 859 }
859 860
860 .size26 { 861 .size26 {
861 font-size: 26px; 862 font-size: 26px;
862 } 863 }
......
1 import { defineConfig, loadEnv } from 'vite' 1 import {defineConfig, loadEnv} from 'vite'
2 import path, { resolve } from 'path' 2 import path, {resolve} from 'path'
3 import createVitePlugins from './vite/plugins' 3 import createVitePlugins from './vite/plugins'
4 import inject from '@rollup/plugin-inject' 4 import inject from '@rollup/plugin-inject'
5 import commonjs from '@rollup/plugin-commonjs' 5 import commonjs from '@rollup/plugin-commonjs'
6 // import legacy from '@vitejs/plugin-legacy' 6 // import legacy from '@vitejs/plugin-legacy'
7 7
8 // https://vitejs.dev/config/ 8 // https://vitejs.dev/config/
9 export default defineConfig(({ mode, command }) => { 9 export default defineConfig(({mode, command}) => {
10 const env = loadEnv(mode, process.cwd()) 10 const env = loadEnv(mode, process.cwd())
11 return { 11 return {
12 // 部署生产环境和开发环境下的URL。 12 // 部署生产环境和开发环境下的URL。
...@@ -76,24 +76,24 @@ export default defineConfig(({ mode, command }) => { ...@@ -76,24 +76,24 @@ export default defineConfig(({ mode, command }) => {
76 rewrite: (p) => p.replace(/^\/dev-api\/ztx-match/, '') 76 rewrite: (p) => p.replace(/^\/dev-api\/ztx-match/, '')
77 }, 77 },
78 '/dev-api/ztx-webSite': { 78 '/dev-api/ztx-webSite': {
79 target: 'http://192.168.1.118:8082/', 79 // target: 'http://192.168.1.118:8082/',
80 // target: 'https://ces.2025wtcwuxi.com/stage-api/', 80 target: 'https://ces.2025wtcwuxi.com/stage-api/',
81 changeOrigin: true, 81 changeOrigin: true,
82 rewrite: (p) => p.replace(/^\/dev-api\/ztx-webSite/, '') 82 rewrite: (p) => p.replace(/^\/dev-api\/ztx-webSite/, '')
83 }, 83 },
84 '/dev-api': { 84 '/dev-api': {
85 target: 'http://192.168.1.118:8082/', 85 // target: 'http://192.168.1.118:8082/',
86 // target: 'http://192.168.1.131:8081/', 86 // target: 'http://192.168.1.131:8081/',
87 // target: 'https://ces.2025wtcwuxi.com/stage-api/', 87 // target: 'https://ces.2025wtcwuxi.com/stage-api/',
88 // target: 'http://124.70.181.90:1880/stage-api', 88 // target: 'http://124.70.181.90:1880/stage-api',
89 // target: 'https://wdsfwuxicenter.com/stage-api/', 89 target: 'https://sys.2025wtcwuxi.com/stage-api/',
90 changeOrigin: true, 90 changeOrigin: true,
91 rewrite: (p) => p.replace(/^\/dev-api/, '') 91 rewrite: (p) => p.replace(/^\/dev-api/, '')
92 }, 92 },
93 '/ticket': { 93 '/ticket': {
94 // target: 'http://192.168.1.131:8098/', 94 // target: 'http://192.168.1.131:8098/',
95 // target: 'http://192.168.1.131:8081/', 95 target: 'http://36.153.235.222:8899/',
96 target: 'https://jijin.wtwuxicenter.com/h5/', 96 // target: 'https://jijin.wtwuxicenter.com/h5/',
97 // target: 'https://ticketh5.wdsfwuxicenter.com/h5/', 97 // target: 'https://ticketh5.wdsfwuxicenter.com/h5/',
98 changeOrigin: true, 98 changeOrigin: true,
99 rewrite: (p) => p.replace(/^\/ticket/, '') 99 rewrite: (p) => p.replace(/^\/ticket/, '')
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!