a265e32a by zhangmeng

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

2 parents 03096861 5971defd
...@@ -18,12 +18,16 @@ ...@@ -18,12 +18,16 @@
18 <a v-show="form?.label?.split(',').length>4">{{ language == 0 ? '更多' : 'MORE' }} ></a> 18 <a v-show="form?.label?.split(',').length>4">{{ language == 0 ? '更多' : 'MORE' }} ></a>
19 </div> 19 </div>
20 <div class="info"> 20 <div class="info">
21 <el-icon><Clock /></el-icon> 21 <el-icon>
22 <Clock/>
23 </el-icon>
22 <span class="mr10">{{ language == 0 ? '入住时间' : 'Check-in' }}{{ form?.checkInTime }}</span> 24 <span class="mr10">{{ language == 0 ? '入住时间' : 'Check-in' }}{{ form?.checkInTime }}</span>
23 <span>{{ language == 0 ? '离店时间' : 'Check-out' }}{{ form?.checkOutTime }}</span> 25 <span>{{ language == 0 ? '离店时间' : 'Check-out' }}{{ form?.checkOutTime }}</span>
24 </div> 26 </div>
25 <div class="info esp"> 27 <div class="info esp">
26 <el-icon><MapLocation /></el-icon> 28 <el-icon>
29 <MapLocation/>
30 </el-icon>
27 <span>{{ form?.addName }}</span> 31 <span>{{ form?.addName }}</span>
28 </div> 32 </div>
29 <div v-if="form?.introduction" class="info pointer"> 33 <div v-if="form?.introduction" class="info pointer">
...@@ -43,13 +47,16 @@ ...@@ -43,13 +47,16 @@
43 <el-row :gutter="20"> 47 <el-row :gutter="20">
44 <el-col :span="10"> 48 <el-col :span="10">
45 <div class="imgbox hotelImg"> 49 <div class="imgbox hotelImg">
46 <el-image :src="fillImgUrl(form?.photos?.split(',')[0])" fit="cover" :preview-src-list="form?.photos?.split(',')"/> 50 <el-image :src="fillImgUrl(form?.photos?.split(',')[0])" fit="cover"
51 :preview-src-list="form?.photos?.split(',')"/>
47 </div> 52 </div>
48 </el-col> 53 </el-col>
49 <el-col :span="14"> 54 <el-col :span="14">
50 <el-row class="h100" :gutter="20"> 55 <el-row class="h100" :gutter="20">
51 <el-col :span="8" class="oddmb" v-for="(p,index) in form?.photos?.split(',').slice(1,7)"> 56 <el-col :span="8" class="oddmb" v-for="(p,index) in form?.photos?.split(',').slice(1,7)">
52 <div class="imgbox hotelImg"><el-image :src="fillImgUrl(p)" fit="cover"/></div> 57 <div class="imgbox hotelImg">
58 <el-image :src="fillImgUrl(p)" fit="cover"/>
59 </div>
53 </el-col> 60 </el-col>
54 </el-row> 61 </el-row>
55 </el-col> 62 </el-col>
...@@ -61,7 +68,7 @@ ...@@ -61,7 +68,7 @@
61 <ul> 68 <ul>
62 <li> 69 <li>
63 {{ language == 0 ? '房型选择' : 'Available Rooms' }} 70 {{ language == 0 ? '房型选择' : 'Available Rooms' }}
64 <span style="margin-left: 100px"> 71 <span style="margin-left: 100px" @click="initTime">
65 <el-date-picker 72 <el-date-picker
66 @change="getDaysBetween" 73 @change="getDaysBetween"
67 v-model="hotTime" 74 v-model="hotTime"
...@@ -70,13 +77,15 @@ ...@@ -70,13 +77,15 @@
70 :placeholder="language==0?'选择日期':'Select date'" 77 :placeholder="language==0?'选择日期':'Select date'"
71 format="YYYY-MM-DD" 78 format="YYYY-MM-DD"
72 :clearable="false" 79 :clearable="false"
73 value-format="YYYY-MM-DD"/> 80 value-format="YYYY-MM-DD"
81 />
74 </span> 82 </span>
75 </li> 83 </li>
76 </ul> 84 </ul>
77 </div> 85 </div>
78 <div> 86 <div>
79 <div v-for="(r,index) in roomList" :key="index" class="room" v-show="language==0?r.roomPrice>0:r.roomPriceEn>0"> 87 <div v-for="(r,index) in roomList" :key="index" class="room"
88 v-show="language==0?r.roomPrice>0:r.roomPriceEn>0">
80 <el-row :gutter="30" align="middle"> 89 <el-row :gutter="30" align="middle">
81 <el-col :span="4"> 90 <el-col :span="4">
82 <div class="roomImg"> 91 <div class="roomImg">
...@@ -87,15 +96,15 @@ ...@@ -87,15 +96,15 @@
87 <h3 class="name">{{ r.roomType }}</h3> 96 <h3 class="name">{{ r.roomType }}</h3>
88 <el-row :gutter="10"> 97 <el-row :gutter="10">
89 <el-col :span="8">{{ r.area }}</el-col> 98 <el-col :span="8">{{ r.area }}</el-col>
90 <el-col :span="8" v-show="r.windowFlag==1"> {{ language==0?'有窗':'With windows' }}</el-col> 99 <el-col :span="8" v-show="r.windowFlag==1"> {{ language == 0 ? '有窗' : 'With windows' }}</el-col>
91 <el-col :span="8" v-show="r.windowFlag==0"> {{ language==0?'无窗':'Windowless' }}</el-col> 100 <el-col :span="8" v-show="r.windowFlag==0"> {{ language == 0 ? '无窗' : 'Windowless' }}</el-col>
92 <el-col :span="8" v-show="r.bathroomFlag==1"> {{ language==0?'热水洗浴':'Shower' }}</el-col> 101 <el-col :span="8" v-show="r.bathroomFlag==1"> {{ language == 0 ? '热水洗浴' : 'Shower' }}</el-col>
93 <!-- <text v-show="r.bathroomFlag==0"> </text> --> 102 <!-- <text v-show="r.bathroomFlag==0"> </text> -->
94 <el-col :span="8" v-show="r.addBedFlag==1"> {{ language==0?'允许加床':'Extra bed' }} </el-col> 103 <el-col :span="8" v-show="r.addBedFlag==1"> {{ language == 0 ? '允许加床' : 'Extra bed' }}</el-col>
95 <el-col :span="8" v-if="r.breakfastNum&&r.breakfastNum > '0'"> 104 <el-col :span="8" v-if="r.breakfastNum&&r.breakfastNum > '0'">
96 {{ r.breakfastNum }}{{ language==0?'份早餐':' breakfasts' }} 105 {{ r.breakfastNum }}{{ language == 0 ? '份早餐' : ' breakfasts' }}
97 </el-col> 106 </el-col>
98 <el-col :span="8" v-else>{{ language==0?'无早餐':'No breakfast' }}</el-col> 107 <el-col :span="8" v-else>{{ language == 0 ? '无早餐' : 'No breakfast' }}</el-col>
99 </el-row> 108 </el-row>
100 <div class="tagbox esp"> 109 <div class="tagbox esp">
101 <span v-for="(t,index) in r.label?.split(',')" v-show="index<4">{{t}}</span> 110 <span v-for="(t,index) in r.label?.split(',')" v-show="index<4">{{t}}</span>
...@@ -103,22 +112,25 @@ ...@@ -103,22 +112,25 @@
103 </div> 112 </div>
104 </el-col> 113 </el-col>
105 <el-col :span="3"> 114 <el-col :span="3">
106 <div class="price">{{ language==0?'¥':'€' }}<span>{{language==0?r.roomPrice:r.roomPriceEn}}</span></div> 115 <div class="price">{{
116 language == 0 ? '¥' : '€'
117 }}<span>{{ language == 0 ? r.roomPrice : r.roomPriceEn }}</span></div>
107 </el-col> 118 </el-col>
108 <el-col :span="3"> 119 <el-col :span="3">
109 <el-button v-if="language==0" :disabled="r.useCount<=0" :class="{'forbid':r.useCount<=0}" @click="goOrder(r)" class="bg-lineg button"> 120 <el-button v-if="language==0" :disabled="!r.useCount && !hotTime" :class="{'forbid':(!r.useCount && !hotTime)}"
121 @click="goOrder(r)" class="bg-lineg button">
110 122
111 <div>{{ language==0?'在线付':'Online' }}</div> 123 <div>{{ language == 0 ? '在线付' : 'Online' }}</div>
112 </el-button> 124 </el-button>
113 125 <el-button v-else style="color: #fff" :disabled="!r.useCount && !hotTime" class="btn-lineG w100"
114 126 :class="{'forbid':(!r.useCount && !hotTime)}" round type="pri mary" @click="goOrder(r)">Select
115 <el-button v-else style="color: #fff" :disabled="!r.useCount" class="btn-lineG w100" :class="{'forbid':!r.useCount}" round type="pri mary" @click="goOrder(r)">Select</el-button> 127 </el-button>
116 <!-- <div class="text-center text-primary mt10 fontsize14 pointer" v-if="language == 0">--> 128 <!-- <div class="text-center text-primary mt10 fontsize14 pointer" v-if="language == 0">-->
117 <!-- 剩余 {{(r.roomCount - (r.useCount||0)).toFixed()}} 间--> 129 <!-- 剩余 {{(r.roomCount - (r.useCount||0)).toFixed()}} 间-->
118 <!-- </div>--> 130 <!-- </div>-->
119 <!-- <div class="text-center text-primary mt10 fontsize14" v-else>--> 131 <!-- <div class="text-center text-primary mt10 fontsize14" v-else>-->
120 <!-- {{(r.roomCount - (r.useCount||0)).toFixed()}} Remaining rooms--> 132 <!-- {{(r.roomCount - (r.useCount||0)).toFixed()}} Remaining rooms-->
121 <!-- </div>--> 133 <!-- </div>-->
122 </el-col> 134 </el-col>
123 </el-row> 135 </el-row>
124 </div> 136 </div>
...@@ -130,18 +142,20 @@ ...@@ -130,18 +142,20 @@
130 </div> 142 </div>
131 </template> 143 </template>
132 144
133 <script setup > 145 <script setup>
134 import {useRouter} from "vue-router"; 146 import {useRouter} from "vue-router";
135 import {ref, reactive, onMounted,getCurrentInstance} from "vue"; 147 import {ref, reactive, onMounted, getCurrentInstance} from "vue";
136 import {useRoute} from "vue-router"; 148 import {useRoute} from "vue-router";
137 import {dayjs} from 'element-plus' 149 import {dayjs} from 'element-plus'
138 import {getHotelById, getHotelRooms,checkRoomPayByUserId} from "@/apiPc/booking" 150 import {getHotelById, getHotelRooms, checkRoomPayByUserId} from "@/apiPc/booking"
139 import {getBaseInfoByActiveId} from "@/apiPc/booking"; 151 import {getBaseInfoByActiveId} from "@/apiPc/booking";
140 const { proxy } = getCurrentInstance() 152
153 const {proxy} = getCurrentInstance()
141 154
142 import {useStorage} from "@vueuse/core/index"; 155 import {useStorage} from "@vueuse/core/index";
143 import useUserStore from "@/store/modules/user"; 156 import useUserStore from "@/store/modules/user";
144 import {ElMessageBox} from "element-plus"; 157 import {ElMessageBox} from "element-plus";
158
145 const user = useUserStore().user 159 const user = useUserStore().user
146 const useStore = useUserStore 160 const useStore = useUserStore
147 const language = useStorage('language', 0) 161 const language = useStorage('language', 0)
...@@ -151,20 +165,23 @@ const form = ref({}) ...@@ -151,20 +165,23 @@ const form = ref({})
151 const query = ref({ 165 const query = ref({
152 hotelId: route.query.id 166 hotelId: route.query.id
153 }) 167 })
154 const hotTime=ref([]) 168 const hotTime = ref([])
155 const showAll = ref(false) 169 const showAll = ref(false)
156 const loading = ref(false) 170 const loading = ref(false)
157 const roomList = ref([]) 171 const roomList = ref([])
158 const map = ref(null) 172 const map = ref(null)
159 const formTime=ref({}) 173 const formTime = ref({})
174
175 let baseHotTime;
176
160 onMounted(() => { 177 onMounted(() => {
161 console.log(route.params) 178 console.log(route.params)
162 getBaseInfoByActiveId(route.params.cptId).then(res=>{ 179 getBaseInfoByActiveId(route.params.cptId).then(res => {
163 formTime.value = res.data || null 180 formTime.value = res.data || null
164 }).catch(err=>{ 181 }).catch(err => {
165 console.log(err) 182 console.log(err)
166 formTime.value = null 183 formTime.value = null
167 }).finally(()=>{ 184 }).finally(() => {
168 console.log(formTime.value) 185 console.log(formTime.value)
169 getDateTime() 186 getDateTime()
170 187
...@@ -173,14 +190,22 @@ onMounted(() => { ...@@ -173,14 +190,22 @@ onMounted(() => {
173 190
174 }) 191 })
175 192
176 function getDateTime(){ 193 function initTime() {
177 if (formTime.value){ 194 if (!hotTime.value[0]) {
178 if (dayjs().isBefore(dayjs(formTime.value.hqStart))){ 195 hotTime.value = baseHotTime
179 hotTime.value[0]=dayjs(formTime.value.hqStart).format('YYYY-MM-DD') 196 }
180 hotTime.value[1]=dayjs(formTime.value.hqStart).add(1,'day').format('YYYY-MM-DD') 197 }
181 } else{ 198
182 hotTime.value[0]=dayjs().format('YYYY-MM-DD') 199 function getDateTime() {
183 hotTime.value[1]=dayjs().add(1,'day').format('YYYY-MM-DD') 200 if (formTime.value) {
201 if (dayjs().isBefore(dayjs(formTime.value.hqStart))) {
202 // hotTime.value[0]=dayjs(formTime.value.hqStart).format('YYYY-MM-DD')
203 // hotTime.value[1]=dayjs(formTime.value.hqStart).add(1,'day').format('YYYY-MM-DD')
204 baseHotTime = [dayjs(formTime.value.hqStart).format('YYYY-MM-DD'), dayjs(formTime.value.hqStart).add(1, 'day').format('YYYY-MM-DD')]
205 } else {
206 // hotTime.value[0]=dayjs().format('YYYY-MM-DD')
207 // hotTime.value[1]=dayjs().add(1,'day').format('YYYY-MM-DD')
208 baseHotTime = [dayjs().format('YYYY-MM-DD'), dayjs().add(1, 'day').format('YYYY-MM-DD')]
184 } 209 }
185 } 210 }
186 } 211 }
...@@ -195,8 +220,8 @@ function getData() { ...@@ -195,8 +220,8 @@ function getData() {
195 console.log(err) 220 console.log(err)
196 }) 221 })
197 query.value.hotelId = route.query.id 222 query.value.hotelId = route.query.id
198 query.value.rzStart=hotTime.value?hotTime.value[0]:null 223 query.value.rzStart = hotTime.value ? hotTime.value[0] : null
199 query.value.rzEnd=hotTime.value?hotTime.value[1]:null 224 query.value.rzEnd = hotTime.value ? hotTime.value[1] : null
200 getHotelRooms(query.value).then(res => { 225 getHotelRooms(query.value).then(res => {
201 roomList.value = res.rows 226 roomList.value = res.rows
202 console.log(roomList.value) 227 console.log(roomList.value)
...@@ -246,23 +271,26 @@ function initMap() { ...@@ -246,23 +271,26 @@ function initMap() {
246 } 271 }
247 272
248 function goOrder(room) { 273 function goOrder(room) {
249 ElMessageBox.confirm(language.value == 0 ? '你当前选择的入住时间为'+hotTime.value[0]+'至'+hotTime.value[1]+',是否确定?':'Your current check-in time is'+hotTime.value[0]+'~'+hotTime.value[1]+'Are you sure?',{type:'warning'}).then({ 274 if(!hotTime.value[0]){
275 proxy.$modal.msgError(language.value == 0 ?'请先选择入住日期':'Please choose the date of check-in first')
276 return
277 }
250 278
251 }).then(()=>{ 279 ElMessageBox.confirm(language.value == 0 ? '你当前选择的入住时间为' + hotTime.value[0] + '至' + hotTime.value[1] + ',是否确定?' : 'Your current check-in time is' + hotTime.value[0] + '~' + hotTime.value[1] + 'Are you sure?', {type: 'warning'}).then({}).then(() => {
252 checkRoomPayByUserId(room.hotelId).then(res=>{ 280 checkRoomPayByUserId(room.hotelId).then(res => {
253 if(res.data == -100){ 281 if (res.data == -100) {
254 ElMessageBox.confirm( 282 ElMessageBox.confirm(
255 language.value == 0 ?'你有未支付的酒店订单,是否前往个人中心查看':'You already have an unpaid hotel order, do you want to go to the personal center to check it?', 283 language.value == 0 ? '你有未支付的酒店订单,是否前往个人中心查看' : 'You already have an unpaid hotel order, do you want to go to the personal center to check it?',
256 language.value==0?'提示':'Warning', 284 language.value == 0 ? '提示' : 'Warning',
257 { 285 {
258 confirmButtonText: language.value==1?'Go My Reservation ':'前往我的预订', 286 confirmButtonText: language.value == 1 ? 'Go My Reservation ' : '前往我的预订',
259 // cancelButtonText: language.value==1?'Continue to book':'继续预订', 287 // cancelButtonText: language.value==1?'Continue to book':'继续预订',
260 type: 'warning', 288 type: 'warning',
261 } 289 }
262 ).then((res) => { 290 ).then((res) => {
263 console.log(res) 291 console.log(res)
264 router.push({ 292 router.push({
265 name:'myReservation', 293 name: 'myReservation',
266 }) 294 })
267 }) 295 })
268 // .catch((res) => { 296 // .catch((res) => {
...@@ -276,32 +304,32 @@ function goOrder(room) { ...@@ -276,32 +304,32 @@ function goOrder(room) {
276 }) 304 })
277 305
278 306
279
280 } 307 }
308
281 function goNext(room) { 309 function goNext(room) {
282 router.push({ 310 router.push({
283 name:'hotelOrder', 311 name: 'hotelOrder',
284 params:{ 312 params: {
285 roomId:room.id 313 roomId: room.id
286 }, 314 },
287 query:{ 315 query: {
288 room:encodeURIComponent(JSON.stringify(room)), 316 room: encodeURIComponent(JSON.stringify(room)),
289 hotelName:form.value.name, 317 hotelName: form.value.name,
290 checkInTime:form.value.checkInTime, 318 checkInTime: form.value.checkInTime,
291 start:hotTime.value[0], 319 start: hotTime.value[0],
292 end:hotTime.value[1], 320 end: hotTime.value[1],
293 } 321 }
294 }) 322 })
295 } 323 }
296 324
297 function getDaysBetween(){ 325 function getDaysBetween() {
298 if (hotTime.value && hotTime.value.length==2){ 326 if (hotTime.value && hotTime.value.length == 2) {
299 const d1=dayjs(hotTime.value[0]).format('YYYY-MM-DD') 327 const d1 = dayjs(hotTime.value[0]).format('YYYY-MM-DD')
300 const d2=dayjs(hotTime.value[1]).format('YYYY-MM-DD') 328 const d2 = dayjs(hotTime.value[1]).format('YYYY-MM-DD')
301 if (d1==d2){ 329 if (d1 == d2) {
302 getDateTime() 330 getDateTime()
303 return proxy.$modal.msgError(language.value==0?'入住时间跨度需要大于一天':'The duration of the stay must be more than one day.') 331 return proxy.$modal.msgError(language.value == 0 ? '入住时间跨度需要大于一天' : 'The duration of the stay must be more than one day.')
304 }else{ 332 } else {
305 getData() 333 getData()
306 } 334 }
307 } 335 }
...@@ -312,9 +340,9 @@ function disabledDateRZ(date) { ...@@ -312,9 +340,9 @@ function disabledDateRZ(date) {
312 if (formTime.value.hqStart) { 340 if (formTime.value.hqStart) {
313 const today = dayjs().format('YYYY-MM-DD') 341 const today = dayjs().format('YYYY-MM-DD')
314 if (formTime.value.hqStart < today) { 342 if (formTime.value.hqStart < today) {
315 return !((date.getTime() >= dayjs(today).valueOf())&&(date.getTime() <= dayjs(formTime.value.hqEnd).valueOf())) 343 return !((date.getTime() >= dayjs(today).valueOf()) && (date.getTime() <= dayjs(formTime.value.hqEnd).valueOf()))
316 } else { 344 } else {
317 return !((date.getTime() >= dayjs(formTime.value.hqStart).valueOf())&&(date.getTime() <= dayjs(formTime.value.hqEnd).valueOf())) 345 return !((date.getTime() >= dayjs(formTime.value.hqStart).valueOf()) && (date.getTime() <= dayjs(formTime.value.hqEnd).valueOf()))
318 } 346 }
319 } 347 }
320 // return true 348 // return true
...@@ -325,7 +353,7 @@ function goMap() { ...@@ -325,7 +353,7 @@ function goMap() {
325 // var tencentMapUrl = "https://map.qq.com/"; 353 // var tencentMapUrl = "https://map.qq.com/";
326 // window.location.href = tencentMapUrl; 354 // window.location.href = tencentMapUrl;
327 var url = `https://map.qq.com/?type=gcj02&lat=${form.value.latitude}&lng=${form.value.longitude}` 355 var url = `https://map.qq.com/?type=gcj02&lat=${form.value.latitude}&lng=${form.value.longitude}`
328 var mapUrl_tx = "http://apis.map.qq.com/uri/v1/marker?marker=coord:"+form.value.latitude+","+form.value.longitude+"&referer=yellowpage"; 356 var mapUrl_tx = "http://apis.map.qq.com/uri/v1/marker?marker=coord:" + form.value.latitude + "," + form.value.longitude + "&referer=yellowpage";
329 window.open(url, "_blank") 357 window.open(url, "_blank")
330 } 358 }
331 359
...@@ -333,19 +361,56 @@ function goMap() { ...@@ -333,19 +361,56 @@ function goMap() {
333 361
334 <style scoped lang="scss"> 362 <style scoped lang="scss">
335 .room { 363 .room {
336 background: #FAFBFD;margin: 20px 0 0;padding: 20px; 364 background: #FAFBFD;
365 margin: 20px 0 0;
366 padding: 20px;
337 border: 1px solid #E5E5E5; 367 border: 1px solid #E5E5E5;
338 .name{font-size: 20px;margin: 0 0 10px;} 368
339 .roomImg{aspect-ratio: 16/9;border-radius: 10px;overflow: hidden; 369 .name {
340 img{width: 100%;object-fit: cover;object-position: center;height: 100%;} 370 font-size: 20px;
371 margin: 0 0 10px;
372 }
373
374 .roomImg {
375 aspect-ratio: 16/9;
376 border-radius: 10px;
377 overflow: hidden;
378
379 img {
380 width: 100%;
381 object-fit: cover;
382 object-position: center;
383 height: 100%;
384 }
385 }
386
387 .price {
388 color: #FF8124;
389 font-size: 24px;
390
391 span {
392 font-size: 36px;
393 font-family: "DIN Alternate"
394 }
341 } 395 }
342 .price{color: #FF8124;font-size: 24px; 396
343 span{font-size: 36px;font-family: "DIN Alternate"} 397 .bg-lineg {
398 margin: auto;
399 border-radius: 10px;
400 text-align: center;
401 padding: 7px 2px 2px;
402 font-size: 24px;
403 width: 66px;
404 cursor: pointer;
405
406 div {
407 background: #fff;
408 font-size: 13px;
409 border-radius: 20px;
410 padding: 0 10px;
411 color: #453DEA;
412 font-weight: 500;
344 } 413 }
345 .bg-lineg{margin: auto;border-radius: 10px;text-align: center;padding: 7px 2px 2px;
346 font-size: 24px;width:66px;cursor: pointer;
347 div{background: #fff;font-size: 13px;border-radius: 20px;padding: 0 10px;
348 color: #453DEA;font-weight: 500;}
349 } 414 }
350 } 415 }
351 416
...@@ -383,14 +448,17 @@ function goMap() { ...@@ -383,14 +448,17 @@ function goMap() {
383 } 448 }
384 } 449 }
385 } 450 }
451
386 :deep(.button) { 452 :deep(.button) {
387 display: block; 453 display: block;
388 height: 55px; 454 height: 55px;
389 width: auto; 455 width: auto;
390 color: #fff; 456 color: #fff;
391 span{ 457
458 span {
392 display: block !important; 459 display: block !important;
393 div{ 460
461 div {
394 margin-top: 3px; 462 margin-top: 3px;
395 } 463 }
396 } 464 }
...@@ -453,26 +521,45 @@ function goMap() { ...@@ -453,26 +521,45 @@ function goMap() {
453 } 521 }
454 } 522 }
455 523
456 .hotelImg{border-radius: 10px;overflow: hidden;aspect-ratio: 16/9; 524 .hotelImg {
457 img{object-fit: cover;object-position: center;width: 100%;height: 100%; 525 border-radius: 10px;
526 overflow: hidden;
527 aspect-ratio: 16/9;
528
529 img {
530 object-fit: cover;
531 object-position: center;
532 width: 100%;
533 height: 100%;
458 } 534 }
459 } 535 }
460 .info{font-weight: 400; 536
537 .info {
538 font-weight: 400;
461 font-size: 14px; 539 font-size: 14px;
462 color: #929AA0; 540 color: #929AA0;
463 .el-icon{margin-right: 5px;} 541
542 .el-icon {
543 margin-right: 5px;
544 }
545 }
546
547 .oddmb:nth-child(2) {
548 margin-bottom: 20px;
464 } 549 }
465 .oddmb:nth-child(2){margin-bottom: 20px;} 550
466 .forbid{ 551 .forbid {
467 cursor:not-allowed !important; 552 cursor: not-allowed !important;
468 color: #a8abb2 !important; 553 color: #a8abb2 !important;
469 //filter:grayscale(1); 554 //filter:grayscale(1);
470 background: #fff; 555 background: #fff;
471 div{ 556
557 div {
472 color: #a8abb2 !important; 558 color: #a8abb2 !important;
473 } 559 }
474 } 560 }
475 .forbid:hover{ 561
476 box-shadow:none; 562 .forbid:hover {
563 box-shadow: none;
477 } 564 }
478 </style> 565 </style>
......
...@@ -48,9 +48,11 @@ ...@@ -48,9 +48,11 @@
48 <span v-if="language == 0">剩余房间数:{{ canOrderNum }}</span> 48 <span v-if="language == 0">剩余房间数:{{ canOrderNum }}</span>
49 <span v-else>{{ canOrderNum }} Remaining rooms</span> 49 <span v-else>{{ canOrderNum }} Remaining rooms</span>
50 </div> 50 </div>
51 <div class="tip" v-if="language==1">If you need to make a hotel reservation, please fill in the full names of all required persons when booking the hotel. (For two or more people, please use ',')</div>
52
51 </el-form-item> 53 </el-form-item>
52 <el-form-item v-for="(n,index) in form.roomNum" :key="index" :label="language==1?`Name${index+1}`:`入住人${index+1}`" required> 54 <el-form-item v-for="(n,index) in form.roomNum" :key="index" :label="language==1?`Room${index+1}`:`入住人${index+1}`" required>
53 <el-input v-model="rzUserArr[index]" :placeholder="language==0?'每间填一位住客姓名':'Each room fill in one name of the guest'"/> 55 <el-input v-model="rzUserArr[index]" :placeholder="language==0?'请完整填写该房间所有的入住人姓名,以“,”符号分隔':'please fill in the name of the actual check-in person'"/>
54 </el-form-item> 56 </el-form-item>
55 <el-form-item :label="language==0?'预计到店':'Expected check-in'" required> 57 <el-form-item :label="language==0?'预计到店':'Expected check-in'" required>
56 <el-select v-model="form.ddDate" 58 <el-select v-model="form.ddDate"
...@@ -482,11 +484,7 @@ function submit() { ...@@ -482,11 +484,7 @@ function submit() {
482 } 484 }
483 }) 485 })
484 } 486 }
485 } else {
486 ElMessage.warning(language.value == 0 ? '无可预订的房间' : 'No rooms available to book')
487 } 487 }
488 }).catch(err => {
489 ElMessage.warning(language.value == 0 ? '无可预订的房间' : 'No rooms available to book')
490 }) 488 })
491 }) 489 })
492 } 490 }
......
...@@ -242,6 +242,11 @@ ...@@ -242,6 +242,11 @@
242 <span class="price">{{ language == 0 ? '¥' : '€' }}{{ Number(totalFee).toFixed(2) }}</span> 242 <span class="price">{{ language == 0 ? '¥' : '€' }}{{ Number(totalFee).toFixed(2) }}</span>
243 </div> 243 </div>
244 </el-col> 244 </el-col>
245 <el-col :lg="24">
246 <el-link v-if="form.viewStatus=='1'||form.viewStatus=='5'" type="primary" @click="exportPdf"><el-icon><Upload /></el-icon>
247 {{ language==0?'导出酒店预订单':'Export PDF' }}
248 </el-link>
249 </el-col>
245 </el-row> 250 </el-row>
246 </div> 251 </div>
247 </div> 252 </div>
...@@ -633,6 +638,21 @@ const unsubscribe = () => { ...@@ -633,6 +638,21 @@ const unsubscribe = () => {
633 }) 638 })
634 } 639 }
635 640
641 function exportPdf() {
642 var obj = {
643 orderId: orderId.value
644 }
645 if(language.value==0){
646 proxy.download('/ota/orderRoom/downRoomConfirmation', {
647 ...obj
648 }, `订房确认书.pdf`)
649 } else {
650 proxy.download('/ota/orderRoom/downRoomConfirmation', {
651 ...obj
652 }, `Hotel Reservation.pdf`)
653 }
654
655 }
636 656
637 </script> 657 </script>
638 658
......
...@@ -26,11 +26,13 @@ ...@@ -26,11 +26,13 @@
26 <el-col :sm="12" :lg="8"> 26 <el-col :sm="12" :lg="8">
27 <div class="item_en" @click="popRemark(1)"><img src="@/assets/dance/btn01.png"> 27 <div class="item_en" @click="popRemark(1)"><img src="@/assets/dance/btn01.png">
28 <p>HOTEL RESERVATION</p> 28 <p>HOTEL RESERVATION</p>
29 </div></el-col> 29 </div>
30 </el-col>
30 <el-col :sm="12" :lg="8"> 31 <el-col :sm="12" :lg="8">
31 <div class="item_en" @click="popRemark(2)"><img src="@/assets/dance/btn02.png"> 32 <div class="item_en" @click="popRemark(2)"><img src="@/assets/dance/btn02.png">
32 <p>TRANSPORTATION RESERVATION</p> 33 <p>TRANSPORTATION RESERVATION</p>
33 </div></el-col> 34 </div>
35 </el-col>
34 <el-col :sm="12" :lg="8"> 36 <el-col :sm="12" :lg="8">
35 <div class="item_en" @click="popRemark(3)"><img src="@/assets/dance/btn03.png"> 37 <div class="item_en" @click="popRemark(3)"><img src="@/assets/dance/btn03.png">
36 <p>DINING RESERVATION</p> 38 <p>DINING RESERVATION</p>
...@@ -45,11 +47,13 @@ ...@@ -45,11 +47,13 @@
45 <el-col :sm="12" :lg="8"> 47 <el-col :sm="12" :lg="8">
46 <div class="item_en" @click="popRemark(4)"><img src="@/assets/dance/btn05.png"> 48 <div class="item_en" @click="popRemark(4)"><img src="@/assets/dance/btn05.png">
47 <p>MAKEUP APPOINTMENT</p> 49 <p>MAKEUP APPOINTMENT</p>
48 </div></el-col> 50 </div>
51 </el-col>
49 <el-col :sm="12" :lg="8"> 52 <el-col :sm="12" :lg="8">
50 <div class="item_en" @click="popRemark(5)"><img src="@/assets/dance/btn06.png"> 53 <div class="item_en" @click="popRemark(5)"><img src="@/assets/dance/btn06.png">
51 <p>PHOTOGRAPHY APPOINTMENT</p> 54 <p>PHOTOGRAPHY APPOINTMENT</p>
52 </div></el-col> 55 </div>
56 </el-col>
53 </el-row> 57 </el-row>
54 </div> 58 </div>
55 <order-remark ref="orderRemarkRef" @submit="goBooking"/> 59 <order-remark ref="orderRemarkRef" @submit="goBooking"/>
...@@ -61,12 +65,14 @@ import {useRouter} from "vue-router"; ...@@ -61,12 +65,14 @@ import {useRouter} from "vue-router";
61 65
62 const router = useRouter() 66 const router = useRouter()
63 import OrderRemark from '@/viewsPc/components/orderRemark' 67 import OrderRemark from '@/viewsPc/components/orderRemark'
68
64 const {proxy} = getCurrentInstance() 69 const {proxy} = getCurrentInstance()
65 import {useStorage} from "@vueuse/core/index"; 70 import {useStorage} from "@vueuse/core/index";
66 import {ElMessage} from "element-plus"; 71 import {ElMessage} from "element-plus";
67 import {getCurrentInstance} from "@vue/runtime-core"; 72 import {getCurrentInstance} from "@vue/runtime-core";
68 import {computed, onMounted, watch} from "vue"; 73 import {computed, onMounted, watch} from "vue";
69 import {getBaseInfoByActiveId} from "@/apiPc/booking"; 74 import {getBaseInfoByActiveId} from "@/apiPc/booking";
75
70 const props = defineProps({ 76 const props = defineProps({
71 matchId: { 77 matchId: {
72 type: String, 78 type: String,
...@@ -74,45 +80,52 @@ const props = defineProps({ ...@@ -74,45 +80,52 @@ const props = defineProps({
74 default: '0' 80 default: '0'
75 } 81 }
76 }) 82 })
77 const language= useStorage('language',0) 83 const language = useStorage('language', 0)
78 const form = ref({}) 84 const form = ref({})
79 const matchId = computed(()=>props.matchId); 85 const matchId = computed(() => props.matchId);
80 86
81 watch(matchId,(val)=>{ 87 watch(matchId, (val) => {
82 if(val && val!='0'){ 88 if (val && val != '0') {
83 getBaseInfoByActiveId(props.matchId).then(res=>{ 89 getBaseInfoByActiveId(props.matchId).then(res => {
84 form.value = res.data || null 90 form.value = res.data || null
85 }).catch(err=>{ 91 }).catch(err => {
86 console.log(err) 92 console.log(err)
87 form.value = null 93 form.value = null
88 }) 94 })
89 } 95 }
90 }) 96 })
91 97
92 onMounted(()=>{ 98 onMounted(() => {
93 99
94 }) 100 })
101
95 function building() { 102 function building() {
96 ElMessage.warning(language.value==0?'感谢您对本次比赛的关注,该服务暂无可预订信息,敬请期待。':'Thank you for your attention to this competition. The service is currently unavailable for booking. Please stay tuned.') 103 ElMessage.warning(language.value == 0 ? '感谢您对本次比赛的关注,该服务暂无可预订信息,敬请期待。' : 'Thank you for your attention to this competition. The service is currently unavailable for booking. Please stay tuned.')
97 return 104 return
98 } 105 }
99 function popRemark(type){ 106
100 // debugger 107 function popRemark(type) {
101 if(!form.value){ 108 if (!form.value) {
102 building() 109 building()
103 return 110 return
104 } 111 }
105 if((form.value.isJdView == 0&&type=='1') || (form.value.isCarView == 0&&type=='2') || (form.value.isFoodView == 0&&type=='3') || (form.value.isMealView == 0&&type=='4') || (type=='5'&&form.value.isPhotoView == 0)){ 112 if ((form.value.isJdView == 0 && type == '1')
113 || (form.value.isCarView == 0 && type == '2')
114 || (form.value.isFoodView == 0 && type == '3')
115 || (form.value.isMealView == 0 && type == '4')
116 || (form.value.isPhotoView == 0 && type == '5')
117 ) {
106 building() 118 building()
107 return 119 return
108 } 120 }
109 const params = { 121 const params = {
110 matchId: props.matchId, 122 matchId: props.matchId,
111 title: language.value == 0 ?'预订说明':'Booking Instructions', 123 title: language.value == 0 ? '预订说明' : 'Booking Instructions',
112 type: type 124 type: type
113 } 125 }
114 proxy.$refs['orderRemarkRef'].open(params) 126 proxy.$refs['orderRemarkRef'].open(params)
115 } 127 }
128
116 function goBooking(n) { 129 function goBooking(n) {
117 switch (n) { 130 switch (n) {
118 case 0: 131 case 0:
...@@ -151,10 +164,19 @@ function goBooking(n) { ...@@ -151,10 +164,19 @@ function goBooking(n) {
151 .itemBox { 164 .itemBox {
152 padding: 20px 40px; 165 padding: 20px 40px;
153 } 166 }
154 .itemBox_en{ 167
168 .itemBox_en {
155 padding: 20px 40px; 169 padding: 20px 40px;
156 p{margin: 0;height: 40px;line-height: 20px;display: flex;align-items: center;} 170
171 p {
172 margin: 0;
173 height: 40px;
174 line-height: 20px;
175 display: flex;
176 align-items: center;
177 }
157 } 178 }
179
158 .item { 180 .item {
159 box-shadow: 0px 0px 21px 0px rgba(41, 23, 101, 0.14); 181 box-shadow: 0px 0px 21px 0px rgba(41, 23, 101, 0.14);
160 margin: 10px 0; 182 margin: 10px 0;
...@@ -169,17 +191,39 @@ function goBooking(n) { ...@@ -169,17 +191,39 @@ function goBooking(n) {
169 margin: 0 5%; 191 margin: 0 5%;
170 } 192 }
171 } 193 }
172 .item_en{box-shadow: 0px 0px 21px 0px rgba(41,23,101,0.14);margin: 40px 0 0;cursor: pointer; 194
173 display: flex;align-items: center;text-align: center;color: #333; 195 .item_en {
174 font-size: 18px; flex-direction: column;padding: 35px 10px 20px; 196 box-shadow: 0px 0px 21px 0px rgba(41, 23, 101, 0.14);
175 background:url("@/assets/dance/znbb.png") no-repeat left #FFFFFF; 197 margin: 40px 0 0;
198 cursor: pointer;
199 display: flex;
200 align-items: center;
201 text-align: center;
202 color: #333;
203 font-size: 18px;
204 flex-direction: column;
205 padding: 35px 10px 20px;
206 background: url("@/assets/dance/znbb.png") no-repeat left #FFFFFF;
176 background-size: cover; 207 background-size: cover;
177 position: relative; 208 position: relative;
178 border-radius: 15px; 209 border-radius: 15px;
179 img{position: absolute;top: -30px;transition: all 0.2s;} 210
180 &:hover{box-shadow: 0 0 10px #333; 211 img {
181 img{transform: rotateY(180deg);} 212 position: absolute;
182 p{color: #000;} 213 top: -30px;
214 transition: all 0.2s;
215 }
216
217 &:hover {
218 box-shadow: 0 0 10px #333;
219
220 img {
221 transform: rotateY(180deg);
222 }
223
224 p {
225 color: #000;
226 }
183 } 227 }
184 } 228 }
185 </style> 229 </style>
......
...@@ -6,9 +6,9 @@ ...@@ -6,9 +6,9 @@
6 > 6 >
7 <div class="boxInvitation pd20"> 7 <div class="boxInvitation pd20">
8 <el-steps :active="activeStep" align-center class="mb20"> 8 <el-steps :active="activeStep" align-center class="mb20">
9 <el-step :title="language==0?'报名须知':'Notice'" /> 9 <el-step :title="language==0?'报名须知':'Notice'"/>
10 <el-step :title="language==0?'填写信息':'Information'" /> 10 <el-step :title="language==0?'填写信息':'Information'"/>
11 <el-step :title="language==0?'选择课程':'Courses'" /> 11 <el-step :title="language==0?'选择课程':'Courses'"/>
12 </el-steps> 12 </el-steps>
13 <div v-if="activeStep==0"> 13 <div v-if="activeStep==0">
14 <div class="mb60 xzRich" style="max-height: 50vh;overflow: auto"> 14 <div class="mb60 xzRich" style="max-height: 50vh;overflow: auto">
...@@ -20,8 +20,8 @@ ...@@ -20,8 +20,8 @@
20 联系电话:15961580050<br/> 20 联系电话:15961580050<br/>
21 </div> 21 </div>
22 <div v-else style="width: 400px;margin: auto"><br/> 22 <div v-else style="width: 400px;margin: auto"><br/>
23 <!-- The age limit for Youth Session: Born between 1st Jan, 2006 and 31st Dec., 2009.<br/>--> 23 <!-- The age limit for Youth Session: Born between 1st Jan, 2006 and 31st Dec., 2009.<br/>-->
24 <!-- The age limit for Juvenile Session: Born after 1 Jan., 2010.<br/>--> 24 <!-- The age limit for Juvenile Session: Born after 1 Jan., 2010.<br/>-->
25 Training Camp venue:Worldhotel Grand Juna Wuxi<br/> 25 Training Camp venue:Worldhotel Grand Juna Wuxi<br/>
26 Address:No.111 Hefeng Road, Binhu District, Wuxi, Jiangsu<br/> 26 Address:No.111 Hefeng Road, Binhu District, Wuxi, Jiangsu<br/>
27 Check-in:From 13:30 to 17:00 on July 14, 2024.<br/> 27 Check-in:From 13:30 to 17:00 on July 14, 2024.<br/>
...@@ -30,12 +30,17 @@ ...@@ -30,12 +30,17 @@
30 </div> 30 </div>
31 </div> 31 </div>
32 <div class="text-center"> 32 <div class="text-center">
33 <el-button type="primary" v-if="courseList.length>0" class="btn-lineG" round @click="setActive(1)">{{ language == 0 ? '下一步' : 'NEXT' }}</el-button> 33 <el-button type="primary" v-if="courseList.length>0" class="btn-lineG" round @click="setActive(1)">
34 <el-button type="primary" class="btn-lineG" round v-else @click="close">{{language==0?'暂无可报课程':'No courses available for reporting'}}</el-button> 34 {{ language == 0 ? '下一步' : 'NEXT' }}
35 </el-button>
36 <el-button type="primary" class="btn-lineG" round v-else @click="close">
37 {{ language == 0 ? '暂无可报课程' : 'No courses available for reporting' }}
38 </el-button>
35 </div> 39 </div>
36 </div> 40 </div>
37 <div v-if="activeStep==1"> 41 <div v-if="activeStep==1">
38 <el-form :model="form" :rules="rules" ref="iformRef" label-position="right" :label-width="language==0?'80px':'150px'"> 42 <el-form :model="form" :rules="rules" ref="iformRef" label-position="right"
43 :label-width="language==0?'80px':'160px'">
39 <el-form-item :label="language==0?'姓名':'Name'" required prop="name"> 44 <el-form-item :label="language==0?'姓名':'Name'" required prop="name">
40 <el-input v-model="form.name"/> 45 <el-input v-model="form.name"/>
41 </el-form-item> 46 </el-form-item>
...@@ -58,36 +63,41 @@ ...@@ -58,36 +63,41 @@
58 type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" 63 type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"
59 /> 64 />
60 </el-form-item> 65 </el-form-item>
66 <el-form-item :label="language==0?'手机号':'Phone number'" required prop="phone">
67 <el-input v-model="form.phone"/>
68 </el-form-item>
61 <el-form-item :label="language==0?'邮箱':'Email'" required prop="email"> 69 <el-form-item :label="language==0?'邮箱':'Email'" required prop="email">
62 <el-input v-model="form.email" type="email"/> 70 <el-input v-model="form.email" type="email"/>
63 </el-form-item> 71 </el-form-item>
64 <el-form-item :label="language==0?'证件号':'ID No.'" required prop="passportNo"> 72 <el-form-item :label="language==0?'证件号':'National license No.'" required prop="passportNo">
65 <el-input v-model="form.passportNo" @blur="checkCard"/> 73 <el-input v-model="form.passportNo" @blur="checkCard"/>
66 </el-form-item> 74 </el-form-item>
67 <el-form-item :label="language==0?'有效证件':'Passport Copy'" required prop="passportCopy"> 75 <el-form-item :label="language==0?'有效证件':'Passport Copy'" required prop="passportCopy">
68 <image-upload v-model="form.passportCopy" :limit="1" :is-show-tip="false" 76 <image-upload v-model="form.passportCopy" :limit="1" :is-show-tip="false"
69 :button-text="language==0?'上传':'Upload'"/> 77 :button-text="language==0?'上传':'Upload'"/>
70 </el-form-item> 78 </el-form-item>
71 <!-- <el-form-item :label="language==0?'抵达日期':'Date of Arrival'" required prop="arrival">--> 79 <!-- <el-form-item :label="language==0?'抵达日期':'Date of Arrival'" required prop="arrival">-->
72 <!-- <el-date-picker--> 80 <!-- <el-date-picker-->
73 <!-- v-model="form.arrival" placeholder="YYYY-MM-DD"--> 81 <!-- v-model="form.arrival" placeholder="YYYY-MM-DD"-->
74 <!-- style="width: 100%;"--> 82 <!-- style="width: 100%;"-->
75 <!-- type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"--> 83 <!-- type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"-->
76 <!-- />--> 84 <!-- />-->
77 <!-- </el-form-item>--> 85 <!-- </el-form-item>-->
78 <!-- <el-form-item :label="language==0?'出发日期':'Date of Departure'" required prop="departure">--> 86 <!-- <el-form-item :label="language==0?'出发日期':'Date of Departure'" required prop="departure">-->
79 <!-- <el-date-picker--> 87 <!-- <el-date-picker-->
80 <!-- v-model="form.departure"--> 88 <!-- v-model="form.departure"-->
81 <!-- style="width: 100%;" placeholder="YYYY-MM-DD"--> 89 <!-- style="width: 100%;" placeholder="YYYY-MM-DD"-->
82 <!-- type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"--> 90 <!-- type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"-->
83 <!-- />--> 91 <!-- />-->
84 <!-- </el-form-item>--> 92 <!-- </el-form-item>-->
85 <el-form-item :label="language==0?'备注':'Remark '"> 93 <el-form-item :label="language==0?'备注':'Remark '">
86 <el-input type="textarea" v-model="form.remark" rows="3"/> 94 <el-input type="textarea" v-model="form.remark" rows="3"/>
87 </el-form-item> 95 </el-form-item>
88 96
89 <div class="text-center"> 97 <div class="text-center">
90 <el-button size="large" @click="setActive(0)" round plain type="primary">{{ language == 0 ? '上一步' : 'PREV' }}</el-button> 98 <el-button size="large" @click="setActive(0)" round plain type="primary">
99 {{ language == 0 ? '上一步' : 'PREV' }}
100 </el-button>
91 <el-button type="primary" size="large" @click="checkApplyCourse(2)" round class="btn-lineG"> 101 <el-button type="primary" size="large" @click="checkApplyCourse(2)" round class="btn-lineG">
92 {{ language == 0 ? '下一步' : 'NEXT' }} 102 {{ language == 0 ? '下一步' : 'NEXT' }}
93 </el-button> 103 </el-button>
...@@ -99,36 +109,44 @@ ...@@ -99,36 +109,44 @@
99 <img class="mauto" src="@/assets/dance/ok.png"/> 109 <img class="mauto" src="@/assets/dance/ok.png"/>
100 <h2 class="text-center">{{ language == 0 ? '申请已提交' : 'Submitted successfully' }}</h2> 110 <h2 class="text-center">{{ language == 0 ? '申请已提交' : 'Submitted successfully' }}</h2>
101 <h4 class="text-center" v-if="language == 0"> 111 <h4 class="text-center" v-if="language == 0">
102 我们已收到您的申请,并将尽快处理。请耐心等待 112 我们已收到您的申请,请在7月14日到无锡报到
103 </h4> 113 </h4>
104 <h4 v-else> 114 <h4 v-else>
105 Your application has been received,<br/> 115 Your application has been received,
106 and we will process it as soon as possible.
107 <br/> 116 <br/>
108 Please be patient while waiting. 117 Please register in Wuxi on July 14.
109 </h4> 118 </h4>
110 </div> 119 </div>
111 <div v-else> 120 <div v-else>
112 <div class="tip text-danger mb20" v-if="language==0">*选择参加的课程(最少一项,最多两项)</div> 121 <div class="tip text-danger mb20" v-if="language==0">*选择参加的课程(最少一项,最多两项)</div>
113 <div class="tip text-danger mb20" v-else>*Select the courses to enroll in (at least one, no more than two)</div> 122 <div class="tip text-danger mb20" v-else>*Select the courses to enroll in (at least one, no more than two)
123 </div>
114 <el-checkbox-group size="large" v-model="form.courseId" @change="courseChange"> 124 <el-checkbox-group size="large" v-model="form.courseId" @change="courseChange">
115 <div v-for="c in courseList" class="mb20"> 125 <div v-for="c in courseList" class="mb20">
116 <el-checkbox :value="c.id" border class="w100" :disabled="(form.courseId?.length>=2&&form.courseId.indexOf(c.id)==-1)||disChoose||(form.nationality==240&&c.viewStateCn == 0)||(form.nationality!=240&&c.viewStateEn == 0)"> 126 <el-checkbox :value="c.id" border class="w100"
127 :disabled="(form.courseId?.length>=2&&form.courseId.indexOf(c.id)==-1)||disChoose||(form.nationality==240&&c.viewStateCn == 0)||(form.nationality!=240&&c.viewStateEn == 0)">
117 <div v-if="language==0" style="display: flex"> 128 <div v-if="language==0" style="display: flex">
118 <div> {{c.name}}{{c.name.indexOf('青年')>-1?'(年龄在15岁~18岁)':'(年龄在14岁以下)'}}</div> 129 <div> {{ c.name }}{{ c.name.indexOf('青年') > -1 ? '(年龄在15岁~18岁)' : '(年龄在14岁以下)' }}</div>
119 </div> 130 </div>
120 <div v-else> 131 <div v-else>
121 <div> {{c.nameEn}}{{c.nameEn.indexOf('Youth')>-1?'(Between the age 15 and 18)':'(Under the age of 14)'}} </div> 132 <div>
133 {{ c.nameEn }}{{ c.nameEn.indexOf('Youth') > -1 ? '(Between the age 15 and 18)' : '(Under the age of 14)' }}
134 </div>
122 </div> 135 </div>
123 136
124 <el-tag class="ml20" v-if="(form.nationality==240&&c.viewStateCn == 0)||(form.nationality!=240&&c.viewStateEn == 0)" type="danger" effect="dark">{{language == 0 ?'已报满':'Already full'}}</el-tag> 137 <el-tag class="ml20"
138 v-if="(form.nationality==240&&c.viewStateCn == 0)||(form.nationality!=240&&c.viewStateEn == 0)"
139 type="danger" effect="dark">{{ language == 0 ? '已报满' : 'Already full' }}
140 </el-tag>
125 </el-checkbox> 141 </el-checkbox>
126 </div> 142 </div>
127 </el-checkbox-group> 143 </el-checkbox-group>
128 144
129 145
130 <div class="text-center"> 146 <div class="text-center">
131 <el-button size="large" @click="setActive(1)" round plain type="primary">{{ language == 0 ? '上一步' : 'PREV' }}</el-button> 147 <el-button size="large" @click="setActive(1)" round plain type="primary">
148 {{ language == 0 ? '上一步' : 'PREV' }}
149 </el-button>
132 <el-button type="primary" v-if="!disChoose" size="large" @click="submit" round class="btn-lineG w200px"> 150 <el-button type="primary" v-if="!disChoose" size="large" @click="submit" round class="btn-lineG w200px">
133 {{ language == 0 ? '提交' : 'SUBMIT' }} 151 {{ language == 0 ? '提交' : 'SUBMIT' }}
134 </el-button> 152 </el-button>
...@@ -153,9 +171,7 @@ import {masterClassList, getByCard, submitMasterApply, getMasterApply, delByCard ...@@ -153,9 +171,7 @@ import {masterClassList, getByCard, submitMasterApply, getMasterApply, delByCard
153 171
154 const {proxy} = getCurrentInstance() 172 const {proxy} = getCurrentInstance()
155 const language = useStorage('language', 0) 173 const language = useStorage('language', 0)
156 const form = ref({ 174 const form = ref({})
157 gender:'0'
158 })
159 const show = ref(false) 175 const show = ref(false)
160 const showR = ref(false) 176 const showR = ref(false)
161 const disChoose = ref(false) 177 const disChoose = ref(false)
...@@ -178,7 +194,7 @@ const rules = ref( ...@@ -178,7 +194,7 @@ const rules = ref(
178 const open = (params) => { 194 const open = (params) => {
179 console.log(params) 195 console.log(params)
180 show.value = true 196 show.value = true
181 title.value = language.value==0?'亚洲青少年体育舞蹈公益课':'Asian Youth DanceSport Training Camp' 197 title.value = language.value == 0 ? '亚洲青少年体育舞蹈公益课' : 'Asian Youth DanceSport Training Camp'
182 cptId.value = params.cptId 198 cptId.value = params.cptId
183 getCourse() 199 getCourse()
184 } 200 }
...@@ -196,23 +212,27 @@ watch(show, (value) => { ...@@ -196,23 +212,27 @@ watch(show, (value) => {
196 // proxy.$refs['dialogRef'].clearValidate() 212 // proxy.$refs['dialogRef'].clearValidate()
197 }) 213 })
198 }) 214 })
215
199 function getCourse() { 216 function getCourse() {
200 // '1777256058082189313' 217 // '1777256058082189313'
201 masterClassList({cptId:cptId.value}).then(res=>{ 218 masterClassList({cptId: cptId.value}).then(res => {
202 courseList.value = res.data 219 courseList.value = res.data
203 }) 220 })
204 } 221 }
222
205 function setActive(n) { 223 function setActive(n) {
206 activeStep.value = n 224 activeStep.value = n
207 } 225 }
208 function courseChange(e){ 226
209 console.log('已选',e) 227 function courseChange(e) {
228 console.log('已选', e)
210 } 229 }
230
211 function checkApplyCourse(n) { 231 function checkApplyCourse(n) {
212 getMasterApply({card:form.value.passportNo}).then(res=>{ 232 getMasterApply({card: form.value.passportNo}).then(res => {
213 if(res.data?.length>0){ 233 if (res.data?.length > 0) {
214 form.value.courseId = [] 234 form.value.courseId = []
215 for(var n of res.data){ 235 for (var n of res.data) {
216 form.value.courseId.push(n.itemId) 236 form.value.courseId.push(n.itemId)
217 } 237 }
218 ElMessageBox.confirm( 238 ElMessageBox.confirm(
...@@ -221,14 +241,14 @@ function checkApplyCourse(n) { ...@@ -221,14 +241,14 @@ function checkApplyCourse(n) {
221 confirmButtonText: language.value == 0 ? '是' : 'Confirm', 241 confirmButtonText: language.value == 0 ? '是' : 'Confirm',
222 cancelButtonText: language.value == 0 ? '否' : 'Cancel', 242 cancelButtonText: language.value == 0 ? '否' : 'Cancel',
223 type: 'warning' 243 type: 'warning'
224 }).then(()=>{ 244 }).then(() => {
225 //删除原记录 245 //删除原记录
226 delByCard(form.value.passportNo).then(res=>{ 246 delByCard(form.value.passportNo).then(res => {
227 form.value.courseId = [] 247 form.value.courseId = []
228 disChoose.value = false 248 disChoose.value = false
229 to2() 249 to2()
230 }) 250 })
231 }).catch(()=>{ 251 }).catch(() => {
232 disChoose.value = true 252 disChoose.value = true
233 to2() 253 to2()
234 }) 254 })
...@@ -238,6 +258,7 @@ function checkApplyCourse(n) { ...@@ -238,6 +258,7 @@ function checkApplyCourse(n) {
238 }) 258 })
239 259
240 } 260 }
261
241 function to2() { 262 function to2() {
242 proxy.$refs.iformRef.validate(valid => { 263 proxy.$refs.iformRef.validate(valid => {
243 if (form.value.email.indexOf('@') == -1) { 264 if (form.value.email.indexOf('@') == -1) {
...@@ -256,14 +277,15 @@ function to2() { ...@@ -256,14 +277,15 @@ function to2() {
256 277
257 278
258 function checkCard() { 279 function checkCard() {
259 getByCard({card:form.value.passportNo}).then(res=>{ 280 getByCard({card: form.value.passportNo}).then(res => {
260 if(res.data){ 281 if (res.data) {
261 form.value = res.data 282 form.value = res.data
262 } else { 283 } else {
263 form.value.courseId = [] 284 form.value.courseId = []
264 } 285 }
265 }) 286 })
266 } 287 }
288
267 getCountryList() 289 getCountryList()
268 290
269 function getCountryList() { 291 function getCountryList() {
...@@ -296,29 +318,35 @@ const submit = () => { ...@@ -296,29 +318,35 @@ const submit = () => {
296 form.value.itemIds = form.value.courseId.toString() 318 form.value.itemIds = form.value.courseId.toString()
297 delete form.value.courseId 319 delete form.value.courseId
298 submitMasterApply(form.value).then((res) => { 320 submitMasterApply(form.value).then((res) => {
299 ElMessage.success(language.value == 0 ?'提交成功':'Successfully!') 321 ElMessage.success(language.value == 0 ? '提交成功' : 'Successfully!')
300 showR.value = true 322 showR.value = true
301 }).catch(()=>{ 323 }).catch(() => {
302 324
303 }) 325 })
304 }) 326 })
305 } 327 }
306 const conti = () => { 328 const conti = () => {
307 showR.value = false 329 showR.value = false
308 form.value = { 330 form.value = {}
309 gender: '0'
310 }
311 } 331 }
312 const close = () =>{ 332 const close = () => {
313 show.value = false 333 show.value = false
314 } 334 }
315 </script> 335 </script>
316 336
317 <style scoped> 337 <style scoped>
318 .xzRich{line-height: 2;font-size: 14px;} 338 .xzRich {
339 line-height: 2;
340 font-size: 14px;
341 }
342
319 .boxInvitation { 343 .boxInvitation {
320 width: 90%; 344 width: 90%;
321 margin: auto 345 margin: auto
322 } 346 }
323 h4{font-size: 15px;line-height: 1.6;} 347
348 h4 {
349 font-size: 15px;
350 line-height: 1.6;
351 }
324 </style> 352 </style>
......
...@@ -94,7 +94,7 @@ ...@@ -94,7 +94,7 @@
94 </el-icon> 94 </el-icon>
95 </a> 95 </a>
96 <!-- <el-button type="primary" @click="popMaster">青少年公益课</el-button>--> 96 <!-- <el-button type="primary" @click="popMaster">青少年公益课</el-button>-->
97 <a class="zn-btn ml20 btn-q" @click="popMaster">青少年公益课</a> 97 <a class="zn-btn ml20 btn-q" @click="popMaster">青少年公益课报名</a>
98 </div> 98 </div>
99 </el-col> 99 </el-col>
100 <el-col :sm="24" :lg="14"> 100 <el-col :sm="24" :lg="14">
......
...@@ -85,12 +85,10 @@ ...@@ -85,12 +85,10 @@
85 <el-col :sm="24" :lg="10"> 85 <el-col :sm="24" :lg="10">
86 <div class="bgbg"> 86 <div class="bgbg">
87 <h1 style="color: #fff">{{matchData?.name}}</h1> 87 <h1 style="color: #fff">{{matchData?.name}}</h1>
88 <div> 88 <div style="margin-bottom: 30px">
89 <a class="zn-btn" @click="goGuide"> 89 <a class="zn-btn" style="font-size: 15px" @click="goGuide">GUIDELINE<el-icon><download /></el-icon>
90 GUIDELINE
91 <el-icon><download /></el-icon>
92 </a> 90 </a>
93 <a class="zn-btn ml20 btn-q " @click="popMaster">Junior &Youth Camp <el-icon><Edit /></el-icon> 91 <a class="zn-btn ml20 btn-q" style="font-size: 15px" @click="popMaster">Junior &Youth Camp REGISTER<el-icon><Edit /></el-icon>
94 </a> 92 </a>
95 </div> 93 </div>
96 94
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
7 <team-sign-step v-if="user.utype=='2'" :activeStep="1" :language="language"/> 7 <team-sign-step v-if="user.utype=='2'" :activeStep="1" :language="language"/>
8 </el-card> 8 </el-card>
9 9
10 <el-card class="mt20"> 10 <el-card class="mt20" v-if="isNational">
11 <h3 class="text-center text-danger" v-if="language==0">是否添加随行人员,如果没有,请点击下一步,跳过此步骤</h3> 11 <h3 class="text-center text-danger" v-if="language==0">是否添加随行人员,如果没有,请点击下一步,跳过此步骤</h3>
12 <h3 class="text-center text-danger" v-else> 12 <h3 class="text-center text-danger" v-else>
13 Do you need to add accompanying persons? If not, please proceed to the next step. 13 Do you need to add accompanying persons? If not, please proceed to the next step.
...@@ -49,8 +49,8 @@ ...@@ -49,8 +49,8 @@
49 <div class="card-header"> 49 <div class="card-header">
50 <img src="@/assets/sign/tag02.png"/> 50 <img src="@/assets/sign/tag02.png"/>
51 {{ language==0?'领队':'HEAD OF TEAM' }} 51 {{ language==0?'领队':'HEAD OF TEAM' }}
52 <!-- <span class="tip" v-if="language==0">(教练/领队,至少选择一项)</span>--> 52 <span class="tip" v-if="language==0&&!isNational">(必选一位领队)</span>
53 <!-- <span class="tip" v-else>(Coach/Team Leader, select at least one)</span>--> 53 <span class="tip" v-if="language==1&&!isNational">(Team Leader select at least one)</span>
54 </div> 54 </div>
55 </template> 55 </template>
56 <div class="chooseForm"> 56 <div class="chooseForm">
...@@ -313,10 +313,10 @@ function geren() { ...@@ -313,10 +313,10 @@ function geren() {
313 } 313 }
314 314
315 function goNext() { 315 function goNext() {
316 // if ((form.value.coachs.length < 1) && (form.value.leader.length < 1)) { 316 if (!isNational.value && (form.value.leader.length == 0)) {
317 // ElMessage.warning(language.value==0?'至少选一个教练或领队':'Coach/Team Leader, select at least one') 317 ElMessage.warning(language.value==0?'必选一位领队':'Team Leaders select at least one')
318 // return 318 return
319 // } 319 }
320 // (personAllList.value.coaches.length>=0 && form.value.coachs?.toString().length == 0)&& 320 // (personAllList.value.coaches.length>=0 && form.value.coachs?.toString().length == 0)&&
321 // (personAllList.value.teamDoctors.length>=0 && form.value.doctor?.toString().length == 0)&& 321 // (personAllList.value.teamDoctors.length>=0 && form.value.doctor?.toString().length == 0)&&
322 // (personAllList.value.translators.length>=0 && form.value.translator?.toString().length == 0)&& 322 // (personAllList.value.translators.length>=0 && form.value.translator?.toString().length == 0)&&
......
...@@ -620,7 +620,14 @@ function checkTwo(a,b) { ...@@ -620,7 +620,14 @@ function checkTwo(a,b) {
620 if(isNational.value){ 620 if(isNational.value){
621 ElMessage.warning(language.value == 0 ? '他们不是固定组合':'They\'re not a couple') 621 ElMessage.warning(language.value == 0 ? '他们不是固定组合':'They\'re not a couple')
622 } else { 622 } else {
623 ElMessage.warning(language.value == 0 ? `${a.realName}/${b.realName} 已经和其他人组成舞伴,无法报名,请重新选择`:`${a.realName}/${b.realName} has already formed a dancer with another person, cannot sign up: please select again`) 623 ElMessageBox.confirm(language.value == 0 ? `${a.realName}/${b.realName} 已经和其他人组成舞伴,无法报名,请重新选择`:`${a.realName}/${b.realName} has already formed a dancer with another person, cannot sign up: please select again`,
624 language.value == 0 ? '提示' : 'Tips', {
625 confirmButtonText: language.value == 0 ? '确定' : 'Confirm',
626 showCancelButton: false,
627 type: 'warning'
628 }).then(() => {
629 console.log('Confirm')
630 })
624 } 631 }
625 } 632 }
626 }) 633 })
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
8 <el-row :gutter="30" class="mt30"> 8 <el-row :gutter="30" class="mt30">
9 <el-col :lg="12" class="touxiang"> 9 <el-col :lg="12" class="touxiang">
10 10
11 <el-form-item prop="picUrl" :label="language==0?'个人照片':'photo'" required> 11 <el-form-item prop="picUrl" :label="language==0?'个人照片':'photo'" :required="form.labelArr.indexOf('0')>-1">
12 <ImageUpload2 12 <ImageUpload2
13 v-model="form.picUrl" :crop-height="280" :crop-width="200" class="threeFour" :limit="1" 13 v-model="form.picUrl" :crop-height="280" :crop-width="200" class="threeFour" :limit="1"
14 :is-show-tip="false" 14 :is-show-tip="false"
...@@ -140,7 +140,7 @@ const data = reactive({ ...@@ -140,7 +140,7 @@ const data = reactive({
140 // regionId: [{ required: true, message: '必填', trigger: 'change' }], 140 // regionId: [{ required: true, message: '必填', trigger: 'change' }],
141 birth: [{required: true, message: '必填', trigger: 'change'}], 141 birth: [{required: true, message: '必填', trigger: 'change'}],
142 // address: [{ required: true, message: '必填', trigger: 'blur' }], 142 // address: [{ required: true, message: '必填', trigger: 'blur' }],
143 picUrl: [{required: true, message: '必填', trigger: 'blur'}], 143 // picUrl: [{required: true, message: '必填', trigger: 'blur'}],
144 sex: [{required: true, message: '必填', trigger: 'change'}], 144 sex: [{required: true, message: '必填', trigger: 'change'}],
145 labelArr: [{required: true, message: '必填', trigger: 'change'}] 145 labelArr: [{required: true, message: '必填', trigger: 'change'}]
146 }, 146 },
...@@ -153,7 +153,7 @@ const data = reactive({ ...@@ -153,7 +153,7 @@ const data = reactive({
153 // regionId: [{ required: true, message: 'required', trigger: 'change' }], 153 // regionId: [{ required: true, message: 'required', trigger: 'change' }],
154 birth: [{required: true, message: 'required', trigger: 'change'}], 154 birth: [{required: true, message: 'required', trigger: 'change'}],
155 // address: [{ required: true, message: 'required', trigger: 'blur' }], 155 // address: [{ required: true, message: 'required', trigger: 'blur' }],
156 picUrl: [{required: true, message: 'required', trigger: 'blur'}], 156 // picUrl: [{required: true, message: 'required', trigger: 'blur'}],
157 sex: [{required: true, message: 'required', trigger: 'change'}], 157 sex: [{required: true, message: 'required', trigger: 'change'}],
158 labelArr: [{required: true, message: 'required', trigger: 'change'}] 158 labelArr: [{required: true, message: 'required', trigger: 'change'}]
159 }, 159 },
...@@ -304,6 +304,10 @@ function giveBirthDay() { ...@@ -304,6 +304,10 @@ function giveBirthDay() {
304 function submitForm() { 304 function submitForm() {
305 proxy.$refs['dialogRef'].validate((valid) => { 305 proxy.$refs['dialogRef'].validate((valid) => {
306 if (valid) { 306 if (valid) {
307 if(!form.value.picUrl&&form.value.labelArr.indexOf('0')>-1){
308 ElMessage.warning(language.value == 0 ? '请上传个人照片' :'Please upload your photo')
309 return
310 }
307 // 验证身份证号 311 // 验证身份证号
308 if (form.value.idcType == 0 && !(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(form.value.idcCode))) { 312 if (form.value.idcType == 0 && !(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(form.value.idcCode))) {
309 ElMessage.warning('请输入正确的身份证号码') 313 ElMessage.warning('请输入正确的身份证号码')
......
...@@ -88,10 +88,11 @@ import OrderRemark from '@/viewsPc/components/orderRemark' ...@@ -88,10 +88,11 @@ import OrderRemark from '@/viewsPc/components/orderRemark'
88 import {getBaseInfoByActiveId} from "@/apiPc/booking"; 88 import {getBaseInfoByActiveId} from "@/apiPc/booking";
89 import {getCurrentInstance} from "@vue/runtime-core"; 89 import {getCurrentInstance} from "@vue/runtime-core";
90 import {onMounted} from "vue"; 90 import {onMounted} from "vue";
91
91 const {proxy} = getCurrentInstance() 92 const {proxy} = getCurrentInstance()
92 93
93 const router = useRouter() 94 const router = useRouter()
94 const language= useStorage('language',0) 95 const language = useStorage('language', 0)
95 const props = defineProps({ 96 const props = defineProps({
96 matchId: { 97 matchId: {
97 type: String, 98 type: String,
...@@ -100,38 +101,45 @@ const props = defineProps({ ...@@ -100,38 +101,45 @@ const props = defineProps({
100 } 101 }
101 }) 102 })
102 const form = ref({}) 103 const form = ref({})
103 onMounted(()=>{ 104 onMounted(() => {
104 getBaseInfoByActiveId(props.matchId).then(res=>{ 105 getBaseInfoByActiveId(props.matchId).then(res => {
105 form.value = res.data || null 106 form.value = res.data || null
106 }).catch(err=>{ 107 }).catch(err => {
107 form.value = null 108 form.value = null
108 console.log(err) 109 console.log(err)
109 }) 110 })
110 }) 111 })
111 112
112 function building() { 113 function building() {
113 ElMessage.warning(language.value==0?'感谢您对本次比赛的关注,该服务暂无可预订信息,敬请期待。':'Thank you for your attention to this competition. The service is currently unavailable for booking. Please stay tuned.') 114 ElMessage.warning(language.value == 0 ? '感谢您对本次比赛的关注,该服务暂无可预订信息,敬请期待。' : 'Thank you for your attention to this competition. The service is currently unavailable for booking. Please stay tuned.')
114 return 115 return
115 } 116 }
116 function popRemark(type){ 117
117 if(!form.value){ 118 function popRemark(type) {
119 if (!form.value) {
118 building() 120 building()
119 return 121 return
120 } 122 }
121 123
122 if((form.value.isJdView == 0&&type=='1') || (form.value.isCarView == 0&&type=='2') || (form.value.isFoodView == 0&&type=='3')|| (form.value.isMealView == 0&&type=='4') || (type=='5'&&form.value.isPhotoView == 0)|| type=='0' ){ 124 if ((form.value.isJdView == 0 && type == '1')
125 || (form.value.isCarView == 0 && type == '2')
126 || (form.value.isFoodView == 0 && type == '3')
127 || (form.value.isMealView == 0 && type == '4')
128 || (type == '5' && form.value.isPhotoView == 0)
129 || (type == '0')) {
123 building() 130 building()
124 return 131 return
125 } 132 }
126 133
127 const params = { 134 const params = {
128 matchId: props.matchId, 135 matchId: props.matchId,
129 title: language.value == 0 ?'预订说明':'Booking Instructions', 136 title: language.value == 0 ? '预订说明' : 'Booking Instructions',
130 type: type 137 type: type
131 } 138 }
132 proxy.$refs['orderRemarkRef'].open(params) 139 proxy.$refs['orderRemarkRef'].open(params)
133 140
134 } 141 }
142
135 function goBooking(n) { 143 function goBooking(n) {
136 switch (n) { 144 switch (n) {
137 case 0: 145 case 0:
...@@ -164,5 +172,7 @@ function goBooking(n) { ...@@ -164,5 +172,7 @@ function goBooking(n) {
164 </script> 172 </script>
165 173
166 <style scoped lang="scss"> 174 <style scoped lang="scss">
167 h4{padding: 0 10px;} 175 h4 {
176 padding: 0 10px;
177 }
168 </style> 178 </style>
......
...@@ -25,12 +25,6 @@ const people = reactive({ ...@@ -25,12 +25,6 @@ const people = reactive({
25 message: languageFormat(language.value, "请输入证件号", "ID Numbe"), 25 message: languageFormat(language.value, "请输入证件号", "ID Numbe"),
26 }); 26 });
27 27
28 // 使用正则验证身份证号码格式
29 const idCardRegex =
30 /^[1-9]\d{5}(19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[\dXx]$/;
31 if (!idCardRegex.test(people.form.idCard) && language.value == 0)
32 return ElMessage({ type: "warning", message: "身份证号格式不正确" });
33
34 addViewPeople(people.form).then((res) => { 28 addViewPeople(people.form).then((res) => {
35 ElMessage({ 29 ElMessage({
36 type: "success", 30 type: "success",
...@@ -59,7 +53,7 @@ const people = reactive({ ...@@ -59,7 +53,7 @@ const people = reactive({
59 :placeholder="language == 0 ? '请输入姓名' : 'Name'" 53 :placeholder="language == 0 ? '请输入姓名' : 'Name'"
60 /> 54 />
61 </div> 55 </div>
62 <div> 56 <!-- <div>
63 <div class="label"> 57 <div class="label">
64 {{ languageFormat(language, "证件类型", "Type of Document") }} 58 {{ languageFormat(language, "证件类型", "Type of Document") }}
65 </div> 59 </div>
...@@ -69,17 +63,17 @@ const people = reactive({ ...@@ -69,17 +63,17 @@ const people = reactive({
69 placeholder="Please input" 63 placeholder="Please input"
70 readonly 64 readonly
71 /> 65 />
72 </div> 66 </div> -->
73 </div> 67 </div>
74 <div class="form-item"> 68 <div class="form-item">
75 <div> 69 <div>
76 <div class="label"> 70 <div class="label">
77 {{ languageFormat(language, "身份证号", "Identity Card") }} 71 {{ languageFormat(language, "有效证件号", "Identity Card") }}
78 </div> 72 </div>
79 <el-input 73 <el-input
80 v-model="people.form.idCard" 74 v-model="people.form.idCard"
81 style="width: 570px" 75 style="width: 570px"
82 :placeholder="language == 0 ? '请输入身份证号' : 'ID Number'" 76 :placeholder="language == 0 ? '请输入有效证件号' : 'ID Number'"
83 /> 77 />
84 </div> 78 </div>
85 </div> 79 </div>
......
...@@ -80,7 +80,7 @@ const startCheckSuccessListener = (orderSn, actId) => { ...@@ -80,7 +80,7 @@ const startCheckSuccessListener = (orderSn, actId) => {
80 clearInterval(timer); 80 clearInterval(timer);
81 timer = null; 81 timer = null;
82 }); 82 });
83 }, 3000); 83 }, 1500);
84 }; 84 };
85 85
86 const detail = reactive({ 86 const detail = reactive({
...@@ -352,7 +352,7 @@ detail.fetchData(); ...@@ -352,7 +352,7 @@ detail.fetchData();
352 > 352 >
353 <div>{{ it.name }}</div> 353 <div>{{ it.name }}</div>
354 <div class="idcard"> 354 <div class="idcard">
355 {{ languageFormat(language, "身份证", "ID number") }}{{ 355 {{ languageFormat(language, "证件号", "ID number") }}{{
356 it.idCard 356 it.idCard
357 }} 357 }}
358 </div> 358 </div>
......
...@@ -68,7 +68,7 @@ audience.fetchData(); ...@@ -68,7 +68,7 @@ audience.fetchData();
68 > 68 >
69 <div class="name">{{ it.name }}</div> 69 <div class="name">{{ it.name }}</div>
70 <div class="idcard"> 70 <div class="idcard">
71 {{ languageFormat(language, "身份证", "Identity Card") }}{{ 71 {{ languageFormat(language, "证件号", "Identity Card") }}{{
72 it.idCard 72 it.idCard
73 }} 73 }}
74 </div> 74 </div>
......
...@@ -82,8 +82,8 @@ export default defineConfig(({ mode, command }) => { ...@@ -82,8 +82,8 @@ export default defineConfig(({ mode, command }) => {
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:8081/', 85 target: 'http://192.168.1.118:8081/',
86 target: 'https://jijin.wtwuxicenter.com/stage-api', 86 // target: 'https://jijin.wtwuxicenter.com/stage-api',
87 changeOrigin: true, 87 changeOrigin: true,
88 rewrite: (p) => p.replace(/^\/dev-api/, '') 88 rewrite: (p) => p.replace(/^\/dev-api/, '')
89 } 89 }
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!