a265e32a by zhangmeng

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

2 parents 03096861 5971defd
...@@ -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>
......
...@@ -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('请输入正确的身份证号码')
......
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
40 </el-row> 40 </el-row>
41 <el-row :gutter="14" v-else> 41 <el-row :gutter="14" v-else>
42 <el-col :lg="4" :md="8" :sm="12" :xs="12"> 42 <el-col :lg="4" :md="8" :sm="12" :xs="12">
43 <div class="funcBtn" @click="popRemark(0)"> 43 <div class="funcBtn" @click="popRemark(0)">
44 <img src="@/assets/dance/btn04.png"/> 44 <img src="@/assets/dance/btn04.png"/>
45 <h4>TICKET BOOKING</h4> 45 <h4>TICKET BOOKING</h4>
46 </div> 46 </div>
...@@ -52,13 +52,13 @@ ...@@ -52,13 +52,13 @@
52 </div> 52 </div>
53 </el-col> 53 </el-col>
54 <el-col :lg="4" :md="8" :sm="12" :xs="12"> 54 <el-col :lg="4" :md="8" :sm="12" :xs="12">
55 <div class="funcBtn" @click="popRemark(2)"> 55 <div class="funcBtn" @click="popRemark(2)">
56 <img src="@/assets/dance/btn02.png"/> 56 <img src="@/assets/dance/btn02.png"/>
57 <h4>TRANSPORTATION RESERVATION</h4> 57 <h4>TRANSPORTATION RESERVATION</h4>
58 </div> 58 </div>
59 </el-col> 59 </el-col>
60 <el-col :lg="4" :md="8" :sm="12" :xs="12"> 60 <el-col :lg="4" :md="8" :sm="12" :xs="12">
61 <div class="funcBtn" @click="popRemark(3)"> 61 <div class="funcBtn" @click="popRemark(3)">
62 <img src="@/assets/dance/btn03.png"/> 62 <img src="@/assets/dance/btn03.png"/>
63 <h4>DINING RESERVATION</h4> 63 <h4>DINING RESERVATION</h4>
64 </div> 64 </div>
...@@ -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!