接机
Showing
5 changed files
with
500 additions
and
4 deletions
| ... | @@ -105,5 +105,14 @@ export function delByCard(card) { | ... | @@ -105,5 +105,14 @@ export function delByCard(card) { |
| 105 | method: 'delete' | 105 | method: 'delete' |
| 106 | }) | 106 | }) |
| 107 | } | 107 | } |
| 108 | export function addPickup(data) { | ||
| 109 | return request({ | ||
| 110 | url: `/league/pickup`, | ||
| 111 | method: 'post', | ||
| 112 | data | ||
| 113 | }) | ||
| 114 | } | ||
| 115 | |||
| 116 | |||
| 108 | 117 | ||
| 109 | 118 | ... | ... |
src/viewsPc/components/pickup.vue
0 → 100644
| 1 | <template> | ||
| 2 | <el-dialog | ||
| 3 | v-model="show" :close-on-click-modal="false" :title="title" append-to-body center class="pcloginpop" | ||
| 4 | close-icon="CircleClose" destroy-on-close | ||
| 5 | width="800px" | ||
| 6 | > | ||
| 7 | <div class="boxInvitation pd20" > | ||
| 8 | <div v-if="!showR" > | ||
| 9 | <el-form ref="iformRef" :label-width="language==0?'120px':'240px'" :model="form" :rules="rules" | ||
| 10 | label-position="right"> | ||
| 11 | <el-form-item :label="language==0?'服务类型':'Service Type (Pick-Up/Drop-Off)'" prop="type" required> | ||
| 12 | <el-checkbox-group v-model="form.type"> | ||
| 13 | <el-checkbox label="1">{{ language == 0 ? '接机' : 'airport pickup' }}</el-checkbox> | ||
| 14 | <el-checkbox label="2">{{ language == 0 ? '送机' : 'airport drop-off' }}</el-checkbox> | ||
| 15 | </el-checkbox-group> | ||
| 16 | </el-form-item> | ||
| 17 | <div v-if="form.type?.some(v=>v==1)"> | ||
| 18 | <h3 style="text-align: center">{{ language == 0 ? '接机' : 'airport pickup' }}</h3> | ||
| 19 | |||
| 20 | <el-form-item :label="language==0?'抵达人员身份':'Role of Person-Arrival'" prop="pickUpBo.standing" required> | ||
| 21 | <el-checkbox-group v-model="form.pickUpBo.standing"> | ||
| 22 | <el-checkbox :label="language==0?'运动员':'Athlete'" name="1"/> | ||
| 23 | <el-checkbox :label="language==0?'随队人员':'Accompanying Person'" name="2"/> | ||
| 24 | <el-checkbox :label="language==0?'官员':'Official'" name="3"/> | ||
| 25 | <el-checkbox :label="language==0?'其他':'Others'" name="4"/> | ||
| 26 | </el-checkbox-group> | ||
| 27 | </el-form-item> | ||
| 28 | <el-form-item :label="language==0?'国家/地区':'Country/Region'" prop="pickUpBo.nationalitys" required> | ||
| 29 | <el-select v-model="form.pickUpBo.nationalitys" filterable multiple style="width: 100%;"> | ||
| 30 | <el-option v-for="item in countrys" | ||
| 31 | :key="item.id" | ||
| 32 | :label="language==0?item.name:item.enName" | ||
| 33 | :value="language==0?item.name :item.enName"/> | ||
| 34 | </el-select> | ||
| 35 | </el-form-item> | ||
| 36 | <el-form-item :label="language==0?'联系人':'Contact Person'" prop="pickUpBo.name" required> | ||
| 37 | <el-input v-model="form.pickUpBo.name"/> | ||
| 38 | </el-form-item> | ||
| 39 | <el-form-item :label="language==0?'联系电话':'Contact Phone Number'" prop="pickUpBo.phone" required> | ||
| 40 | <el-input v-model="form.pickUpBo.phone"/> | ||
| 41 | </el-form-item> | ||
| 42 | <el-form-item :label="language==0?'人数':'Number of People'" prop="pickUpBo.counts" required> | ||
| 43 | <el-input-number v-model="form.pickUpBo.counts"/> | ||
| 44 | </el-form-item> | ||
| 45 | <el-form-item :label="language==0?'抵达日期':'Flight/Train Arrival Date'" prop="pickUpBo.arrivalDate" | ||
| 46 | required> | ||
| 47 | <el-date-picker | ||
| 48 | v-model="form.pickUpBo.arrivalDate" format="YYYY-MM-DD" | ||
| 49 | placeholder="YYYY-MM-DD" | ||
| 50 | style="width: 100%;" type="date" value-format="YYYY-MM-DD" | ||
| 51 | /> | ||
| 52 | </el-form-item> | ||
| 53 | <el-form-item :label="language==0?'抵达时间':'Flight/Train Arrival Time'" prop="pickUpBo.arrivaTime" | ||
| 54 | required> | ||
| 55 | <!-- <el-date-picker--> | ||
| 56 | <!-- v-model="form.pickUpBo.arrivaTime"--> | ||
| 57 | <!-- format="YYYY-MM-DD" placeholder="YYYY-MM-DD"--> | ||
| 58 | <!-- style="width: 100%;" type="date" value-format="YYYY-MM-DD"--> | ||
| 59 | <!-- />--> | ||
| 60 | <el-time-picker v-model="form.pickUpBo.arrivaTime" placeholder="HH:mm:ss" value-format="HH:mm:ss" format="HH:mm:ss" style="width: 100%;"/> | ||
| 61 | </el-form-item> | ||
| 62 | |||
| 63 | <el-form-item :label="language==0?'航班/车次':'Flight/Train Number'" prop="pickUpBo.flight" required> | ||
| 64 | <el-input v-model="form.pickUpBo.flight"/> | ||
| 65 | </el-form-item> | ||
| 66 | <el-form-item :label="language==0?'机场/火车站':'Airport/Train Station'" prop="pickUpBo.stationName" | ||
| 67 | required> | ||
| 68 | <el-input v-model="form.pickUpBo.stationName"/> | ||
| 69 | </el-form-item> | ||
| 70 | <el-form-item :label="language==0?'航站楼':'Air Terminal'" prop="pickUpBo.terminal" required> | ||
| 71 | <el-input v-model="form.pickUpBo.terminal"/> | ||
| 72 | </el-form-item> | ||
| 73 | <el-form-item :label="language==0?'送达酒店':'Destination Hotel'" prop="pickUpBo.hotle" required> | ||
| 74 | <el-input v-model="form.pickUpBo.hotle"/> | ||
| 75 | </el-form-item> | ||
| 76 | <el-form-item :label="language==0?'行程单':'Round-Trip Itinerary'" prop="pickUpBo.itinerary" required> | ||
| 77 | <image-upload v-model="form.pickUpBo.itinerary" :button-text="language==0?'上传':'Upload'" | ||
| 78 | :is-show-tip="false" | ||
| 79 | :limit="1"/> | ||
| 80 | </el-form-item> | ||
| 81 | </div> | ||
| 82 | |||
| 83 | <div v-if="form.type?.some(v=>v==2)"> | ||
| 84 | <h3 style="text-align: center">{{ language == 0 ? '送机' : 'airport drop-off' }}</h3> | ||
| 85 | <el-form-item | ||
| 86 | :label="language==0?'离会人员身份':'Role of Person-Departure'" | ||
| 87 | prop="downOffBo.standing" required> | ||
| 88 | <!-- <el-input v-model="form.downOffBo.standing"/>--> | ||
| 89 | <el-checkbox-group v-model="form.downOffBo.standing"> | ||
| 90 | <el-checkbox :label="language==0?'运动员':'Athlete'" name="1"/> | ||
| 91 | <el-checkbox :label="language==0?'随队人员':'Accompanying Person'" name="2"/> | ||
| 92 | <el-checkbox :label="language==0?'官员':'Official'" name="3"/> | ||
| 93 | <el-checkbox :label="language==0?'其他':'Others'" name="4"/> | ||
| 94 | </el-checkbox-group> | ||
| 95 | </el-form-item> | ||
| 96 | <el-form-item :label="language==0?'国家/地区':'Nationality'" prop="downOffBo.nationalitys" required > | ||
| 97 | <el-select v-model="form.downOffBo.nationalitys" filterable multiple style="width: 100%;"> | ||
| 98 | <el-option v-for="item in countrys" | ||
| 99 | :key="item.id" | ||
| 100 | :label="language==0?item.name:item.enName" | ||
| 101 | :value="language==0?item.name:item.enName"/> | ||
| 102 | </el-select> | ||
| 103 | </el-form-item> | ||
| 104 | <el-form-item :label="language==0?'联系人':'Contact Person'" prop="downOffBo.name" required> | ||
| 105 | <el-input v-model="form.downOffBo.name"/> | ||
| 106 | </el-form-item> | ||
| 107 | <el-form-item :label="language==0?'联系电话':'Contact Phone Number'" prop="downOffBo.phone" required> | ||
| 108 | <el-input v-model="form.downOffBo.phone"/> | ||
| 109 | </el-form-item> | ||
| 110 | <el-form-item :label="language==0?'人数':'Number of People'" prop="downOffBo.counts" required> | ||
| 111 | <el-input-number v-model="form.downOffBo.counts"/> | ||
| 112 | </el-form-item> | ||
| 113 | <el-form-item :label="language==0?'离开日期':'Departure Date from Hotel'" prop="downOffBo.arrivalDate" | ||
| 114 | required> | ||
| 115 | <el-date-picker | ||
| 116 | v-model="form.downOffBo.arrivalDate" format="YYYY-MM-DD" | ||
| 117 | placeholder="YYYY-MM-DD" | ||
| 118 | style="width: 100%;" type="date" value-format="YYYY-MM-DD" | ||
| 119 | /> | ||
| 120 | </el-form-item> | ||
| 121 | <el-form-item :label="language==0?'离开时间':'Departure Time from Hotel'" prop="downOffBo.arrivaTime" required> | ||
| 122 | <!-- <el-date-picker--> | ||
| 123 | <!-- v-model="form.downOffBo.rrivaTime"--> | ||
| 124 | <!-- format="YYYY-MM-DD" placeholder="YYYY-MM-DD"--> | ||
| 125 | <!-- style="width: 100%;" type="date" value-format="YYYY-MM-DD"--> | ||
| 126 | <!-- />--> | ||
| 127 | <el-time-picker v-model="form.downOffBo.arrivaTime" placeholder="HH:mm:ss" value-format="HH:mm:ss" format="HH:mm:ss" style="width: 100%;"/> | ||
| 128 | </el-form-item> | ||
| 129 | |||
| 130 | <el-form-item :label="language==0?'航班/车次':'Flight/Train Number'" prop="downOffBo.flight" required> | ||
| 131 | <el-input v-model="form.downOffBo.flight"/> | ||
| 132 | </el-form-item> | ||
| 133 | <el-form-item :label="language==0?'机场/火车站':'Airport/Train Station'" prop="downOffBo.stationName" | ||
| 134 | required> | ||
| 135 | <el-input v-model="form.downOffBo.stationName"/> | ||
| 136 | </el-form-item> | ||
| 137 | <el-form-item :label="language==0?'航站楼':'Air Terminal'" prop="downOffBo.terminal" required> | ||
| 138 | <el-input v-model="form.downOffBo.terminal"/> | ||
| 139 | </el-form-item> | ||
| 140 | <el-form-item :label="language==0?'出发酒店':'Departure Hotel'" prop="downOffBo.hotle" required> | ||
| 141 | <el-input v-model="form.downOffBo.hotle"/> | ||
| 142 | </el-form-item> | ||
| 143 | <el-form-item :label="language==0?'行程单':'Round-Trip Itinerary'" prop="downOffBo.itinerary" required> | ||
| 144 | <image-upload v-model="form.downOffBo.itinerary" :button-text="language==0?'上传':'Upload'" | ||
| 145 | :is-show-tip="false" | ||
| 146 | :limit="1"/> | ||
| 147 | </el-form-item> | ||
| 148 | </div> | ||
| 149 | |||
| 150 | <div class="text-center"> | ||
| 151 | <el-button class="btn-lineG" round size="large" type="primary" @click="submitForm()"> | ||
| 152 | {{ language == 0 ? '提交' : 'submit' }} | ||
| 153 | </el-button> | ||
| 154 | </div> | ||
| 155 | </el-form> | ||
| 156 | </div> | ||
| 157 | <div > | ||
| 158 | <div v-if="showR" class="text-center pd20"> | ||
| 159 | <img class="mauto" src="@/assets/dance/ok.png"/> | ||
| 160 | <h2 class="text-center">{{ language == 0 ? '境外及港澳台选手接送信息登记已提交' : 'Request Form for Overseas, HKT, Mau, China and TPE Athletes Arrival and Departure' }}</h2> | ||
| 161 | <h4 v-if="language == 0" class="text-center"> | ||
| 162 | 我们已收到您的申请 | ||
| 163 | </h4> | ||
| 164 | <h4 v-else> | ||
| 165 | Your application has been received | ||
| 166 | <!-- <br/>--> | ||
| 167 | <!-- Please register in Wuxi on July 14.--> | ||
| 168 | </h4> | ||
| 169 | </div> | ||
| 170 | </div> | ||
| 171 | </div> | ||
| 172 | </el-dialog> | ||
| 173 | |||
| 174 | </template> | ||
| 175 | |||
| 176 | <script setup> | ||
| 177 | import {useStorage} from "@vueuse/core/index"; | ||
| 178 | import {getCurrentInstance, watch, ref} from "vue"; | ||
| 179 | import {nextTick} from "@vue/runtime-core"; | ||
| 180 | import {ElMessage, ElMessageBox} from "element-plus"; | ||
| 181 | import {addInvitation, countryList} from "@/apiPc/match"; | ||
| 182 | import ImageUpload from "@/components/ImageUpload"; | ||
| 183 | import {masterClassList, getByCard, submitMasterApply, getMasterApply, delByCard,addPickup} from "@/apiPc/common"; | ||
| 184 | const {proxy} = getCurrentInstance() | ||
| 185 | const language = useStorage('language', 0) | ||
| 186 | const form = ref({ | ||
| 187 | pickUpBo: { | ||
| 188 | serviceType:1 | ||
| 189 | }, | ||
| 190 | downOffBo: { | ||
| 191 | serviceType:2 | ||
| 192 | }, | ||
| 193 | type: ['1'] | ||
| 194 | }) | ||
| 195 | const show = ref(false) | ||
| 196 | const showR = ref(false) | ||
| 197 | const title = ref('') | ||
| 198 | const activeStep = ref(0) | ||
| 199 | const countrys = ref([]) | ||
| 200 | const courseList = ref([]) | ||
| 201 | const cptId = ref('') | ||
| 202 | const rules = ref( | ||
| 203 | { | ||
| 204 | type: [{required: true, trigger: 'change', message: language.value == 0 ? '请选择' : 'Please choose'},], | ||
| 205 | 'pickUpBo.standing': [{ | ||
| 206 | required: true, | ||
| 207 | trigger: 'change', | ||
| 208 | message: language.value == 0 ? '请选择' : 'Please choose' | ||
| 209 | },], | ||
| 210 | 'pickUpBo.nationalitys': [{ | ||
| 211 | required: true, | ||
| 212 | trigger: 'change', | ||
| 213 | message: language.value == 0 ? '请选择' : 'Please choose' | ||
| 214 | },], | ||
| 215 | 'pickUpBo.name': [{required: true, trigger: 'change', message: language.value == 0 ? '请选择' : 'Please choose'},], | ||
| 216 | 'pickUpBo.phone': [{required: true, trigger: 'change', message: language.value == 0 ? '请选择' : 'Please choose'},], | ||
| 217 | 'pickUpBo.counts': [{ | ||
| 218 | required: true, | ||
| 219 | trigger: 'change', | ||
| 220 | message: language.value == 0 ? '请选择' : 'Please choose' | ||
| 221 | },], | ||
| 222 | 'pickUpBo.arrivalDate': [{ | ||
| 223 | required: true, | ||
| 224 | trigger: 'change', | ||
| 225 | message: language.value == 0 ? '请选择' : 'Please choose' | ||
| 226 | },], | ||
| 227 | 'pickUpBo.arrivaTime': [{ | ||
| 228 | required: true, | ||
| 229 | trigger: 'change', | ||
| 230 | message: language.value == 0 ? '请选择' : 'Please choose' | ||
| 231 | },], | ||
| 232 | 'pickUpBo.flight': [{ | ||
| 233 | required: true, | ||
| 234 | trigger: 'change', | ||
| 235 | message: language.value == 0 ? '请选择' : 'Please choose' | ||
| 236 | },], | ||
| 237 | 'pickUpBo.stationName': [{ | ||
| 238 | required: true, | ||
| 239 | trigger: 'change', | ||
| 240 | message: language.value == 0 ? '请选择' : 'Please choose' | ||
| 241 | },], | ||
| 242 | 'pickUpBo.terminal': [{ | ||
| 243 | required: true, | ||
| 244 | trigger: 'change', | ||
| 245 | message: language.value == 0 ? '请选择' : 'Please choose' | ||
| 246 | },], | ||
| 247 | 'pickUpBo.hotle': [{required: true, trigger: 'change', message: language.value == 0 ? '请选择' : 'Please choose'},], | ||
| 248 | 'pickUpBo.itinerary': [{ | ||
| 249 | required: true, | ||
| 250 | trigger: 'change', | ||
| 251 | message: language.value == 0 ? '请选择' : 'Please choose' | ||
| 252 | },], | ||
| 253 | 'downOffBo.nationalitys': [{ | ||
| 254 | required: true, | ||
| 255 | trigger: 'change', | ||
| 256 | message: language.value == 0 ? '请选择' : 'Please choose' | ||
| 257 | },], | ||
| 258 | 'downOffBo.standing': [{ | ||
| 259 | required: true, | ||
| 260 | trigger: 'change', | ||
| 261 | message: language.value == 0 ? '请选择' : 'Please choose' | ||
| 262 | },], | ||
| 263 | 'downOffBo.name': [{required: true, trigger: 'change', message: language.value == 0 ? '请选择' : 'Please choose'},], | ||
| 264 | 'downOffBo.phone': [{ | ||
| 265 | required: true, | ||
| 266 | trigger: 'change', | ||
| 267 | message: language.value == 0 ? '请选择' : 'Please choose' | ||
| 268 | },], | ||
| 269 | 'downOffBo.counts': [{ | ||
| 270 | required: true, | ||
| 271 | trigger: 'change', | ||
| 272 | message: language.value == 0 ? '请选择' : 'Please choose' | ||
| 273 | },], | ||
| 274 | 'downOffBo.arrivalDate': [{ | ||
| 275 | required: true, | ||
| 276 | trigger: 'change', | ||
| 277 | message: language.value == 0 ? '请选择' : 'Please choose' | ||
| 278 | },], | ||
| 279 | 'downOffBo.arrivaTime': [{ | ||
| 280 | required: true, | ||
| 281 | trigger: 'change', | ||
| 282 | message: language.value == 0 ? '请选择' : 'Please choose' | ||
| 283 | },], | ||
| 284 | 'downOffBo.flight': [{ | ||
| 285 | required: true, | ||
| 286 | trigger: 'change', | ||
| 287 | message: language.value == 0 ? '请选择' : 'Please choose' | ||
| 288 | },], | ||
| 289 | 'downOffBo.stationName': [{ | ||
| 290 | required: true, | ||
| 291 | trigger: 'change', | ||
| 292 | message: language.value == 0 ? '请选择' : 'Please choose' | ||
| 293 | },], | ||
| 294 | 'downOffBo.terminal': [{ | ||
| 295 | required: true, | ||
| 296 | trigger: 'change', | ||
| 297 | message: language.value == 0 ? '请选择' : 'Please choose' | ||
| 298 | },], | ||
| 299 | 'downOffBo.hotle': [{ | ||
| 300 | required: true, | ||
| 301 | trigger: 'change', | ||
| 302 | message: language.value == 0 ? '请选择' : 'Please choose' | ||
| 303 | },], | ||
| 304 | 'downOffBo.itinerary': [{ | ||
| 305 | required: true, | ||
| 306 | trigger: 'change', | ||
| 307 | message: language.value == 0 ? '请选择' : 'Please choose' | ||
| 308 | },], | ||
| 309 | name: [{required: true, trigger: 'blur', message: language.value == 0 ? '请输入' : 'Please enter'},], | ||
| 310 | email: [{required: true, trigger: 'blur', message: language.value == 0 ? '请输入' : 'Please enter'},], | ||
| 311 | birth: [{required: true, trigger: 'change', message: language.value == 0 ? '请选择' : 'Please choose'},], | ||
| 312 | passportNo: [{required: true, trigger: 'blur', message: language.value == 0 ? '请输入' : 'Please enter'},], | ||
| 313 | passportCopy: [{required: true, trigger: 'blur', message: language.value == 0 ? '请上传' : 'Please Upload'},], | ||
| 314 | arrival: [{required: true, trigger: 'change', message: language.value == 0 ? '请选择' : 'Please choose'},], | ||
| 315 | departure: [{required: true, trigger: 'change', message: language.value == 0 ? '请选择' : 'Please choose'},], | ||
| 316 | }) | ||
| 317 | const open = (params) => { | ||
| 318 | show.value = true | ||
| 319 | showR.value=false | ||
| 320 | form.value={ | ||
| 321 | pickUpBo: { | ||
| 322 | serviceType:1 | ||
| 323 | }, | ||
| 324 | downOffBo: { | ||
| 325 | serviceType:2 | ||
| 326 | }, | ||
| 327 | type: ['1'], | ||
| 328 | } | ||
| 329 | title.value = language.value == 0 ? '境外及港澳台选手接送信息登记已提交' : 'Request Form for Overseas, HKT, Mau, China and TPE Athletes Arrival and Departure' | ||
| 330 | cptId.value = params.cptId | ||
| 331 | getCourse() | ||
| 332 | // proxy.$refs['iformRef'] | ||
| 333 | } | ||
| 334 | defineExpose({open}) | ||
| 335 | watch(show, (value) => { | ||
| 336 | if (!value) { | ||
| 337 | form.value = { | ||
| 338 | sex: '0' | ||
| 339 | } | ||
| 340 | if (language.value == 0) { | ||
| 341 | form.value.countryId = 240 | ||
| 342 | } | ||
| 343 | } | ||
| 344 | }) | ||
| 345 | |||
| 346 | function getCourse() { | ||
| 347 | masterClassList({cptId: cptId.value}).then(res => { | ||
| 348 | courseList.value = res.data | ||
| 349 | }) | ||
| 350 | } | ||
| 351 | |||
| 352 | function setActive(n) { | ||
| 353 | activeStep.value = n | ||
| 354 | } | ||
| 355 | |||
| 356 | function submitForm() { | ||
| 357 | proxy.$refs['iformRef'].validate(async valid => { | ||
| 358 | if (valid) { | ||
| 359 | form.value.pickUpBo.cptId=cptId.value | ||
| 360 | form.value.downOffBo.cptId=cptId.value | ||
| 361 | // form.value.pickUpBo.serviceType=1 | ||
| 362 | // form.value.downOffBo.serviceType=2 | ||
| 363 | console.log(form.value) | ||
| 364 | let forms=JSON.parse(JSON.stringify(form.value)) | ||
| 365 | forms.pickUpBo.nationalitys=forms.pickUpBo.nationalitys?.join(',') | ||
| 366 | forms.pickUpBo.standing=forms.pickUpBo.standing?.join(',') | ||
| 367 | forms.downOffBo.nationalitys=forms.downOffBo.nationalitys?.join(',') | ||
| 368 | forms.downOffBo.standing=forms.downOffBo.standing?.join(',') | ||
| 369 | forms.type=null | ||
| 370 | if(!form.value.type.includes('1')) forms.pickUpBo={} | ||
| 371 | if(!form.value.type.includes('2')) forms.downOffBo={} | ||
| 372 | const res=await addPickup(forms) | ||
| 373 | if (res.code==200) { | ||
| 374 | proxy.$modal.msgSuccess('操作成功!') | ||
| 375 | showR.value=true | ||
| 376 | // show.value=false | ||
| 377 | } | ||
| 378 | } else { | ||
| 379 | proxy.$modal.msgError('请完善信息!') | ||
| 380 | } | ||
| 381 | } | ||
| 382 | ) | ||
| 383 | } | ||
| 384 | |||
| 385 | // function checkApplyCourse(n) { | ||
| 386 | // getMasterApply({card: form.value.passportNo}).then(res => { | ||
| 387 | // if (res.data?.length > 0) { | ||
| 388 | // form.value.courseId = [] | ||
| 389 | // for (var n of res.data) { | ||
| 390 | // form.value.courseId.push(n.itemId) | ||
| 391 | // } | ||
| 392 | // ElMessageBox.confirm( | ||
| 393 | // language.value == 0 ? '您已提交过信息,是否更新?' : 'You have submitted the information, do you want to update?', | ||
| 394 | // language.value == 0 ? '提示' : 'Tips', { | ||
| 395 | // confirmButtonText: language.value == 0 ? '是' : 'Confirm', | ||
| 396 | // cancelButtonText: language.value == 0 ? '否' : 'Cancel', | ||
| 397 | // type: 'warning' | ||
| 398 | // }).then(() => { | ||
| 399 | // //删除原记录 | ||
| 400 | // delByCard(form.value.passportNo).then(res => { | ||
| 401 | // form.value.courseId = [] | ||
| 402 | // disChoose.value = false | ||
| 403 | // to2() | ||
| 404 | // }) | ||
| 405 | // }).catch(() => { | ||
| 406 | // disChoose.value = true | ||
| 407 | // to2() | ||
| 408 | // }) | ||
| 409 | // } else { | ||
| 410 | // to2() | ||
| 411 | // } | ||
| 412 | // }) | ||
| 413 | // | ||
| 414 | // } | ||
| 415 | |||
| 416 | function to2() { | ||
| 417 | proxy.$refs.iformRef.validate(valid => { | ||
| 418 | if (form.value.email.indexOf('@') == -1) { | ||
| 419 | if (language.value == 0) { | ||
| 420 | ElMessage.warning('请填写正确的邮箱') | ||
| 421 | } else { | ||
| 422 | ElMessage.warning('Please fill in the correct email') | ||
| 423 | } | ||
| 424 | return | ||
| 425 | } | ||
| 426 | if (valid) { | ||
| 427 | setActive(2) | ||
| 428 | } | ||
| 429 | }) | ||
| 430 | } | ||
| 431 | |||
| 432 | getCountryList() | ||
| 433 | |||
| 434 | function getCountryList() { | ||
| 435 | countryList().then(res => { | ||
| 436 | countrys.value = res.data | ||
| 437 | }) | ||
| 438 | } | ||
| 439 | |||
| 440 | </script> | ||
| 441 | |||
| 442 | <style scoped> | ||
| 443 | .xzRich { | ||
| 444 | line-height: 2; | ||
| 445 | font-size: 14px; | ||
| 446 | } | ||
| 447 | |||
| 448 | .boxInvitation { | ||
| 449 | width: 90%; | ||
| 450 | margin: auto | ||
| 451 | } | ||
| 452 | |||
| 453 | h4 { | ||
| 454 | font-size: 15px; | ||
| 455 | line-height: 1.6; | ||
| 456 | } | ||
| 457 | </style> |
| 1 | <template> | 1 | <template> |
| 2 | <div> | 2 | <div> |
| 3 | <index-Ch v-if="language ==0" @pop="openMaster"/> | 3 | <index-Ch v-if="language ==0" @pop="openMaster" @pickup="openPickup"/> |
| 4 | <index-En v-else @pop="openMaster"/> | 4 | <index-En v-else @pop="openMaster" @pickup="openPickup"/> |
| 5 | <div v-if="showgg" class="fixed_gg"> | 5 | <div v-if="showgg" class="fixed_gg"> |
| 6 | <!--天气--> | 6 | <!--天气--> |
| 7 | <el-icon class="cclose" @click.stop="showgg=false"><circle-close /></el-icon> | 7 | <el-icon class="cclose" @click.stop="showgg=false"><circle-close /></el-icon> |
| ... | @@ -61,6 +61,7 @@ | ... | @@ -61,6 +61,7 @@ |
| 61 | </div> | 61 | </div> |
| 62 | 62 | ||
| 63 | <dialog-master-class ref="masterClassRef"/> | 63 | <dialog-master-class ref="masterClassRef"/> |
| 64 | <pickup ref="pickupRef"></pickup> | ||
| 64 | </div> | 65 | </div> |
| 65 | 66 | ||
| 66 | </template> | 67 | </template> |
| ... | @@ -70,6 +71,7 @@ import IndexCh from '/src/viewsPc/index' | ... | @@ -70,6 +71,7 @@ import IndexCh from '/src/viewsPc/index' |
| 70 | import IndexEn from '/src/viewsPc/index_en' | 71 | import IndexEn from '/src/viewsPc/index_en' |
| 71 | import WeatherIcon from '@/viewsPc/components/weatherIcon' | 72 | import WeatherIcon from '@/viewsPc/components/weatherIcon' |
| 72 | import DialogMasterClass from '@/viewsPc/components/masterClass' | 73 | import DialogMasterClass from '@/viewsPc/components/masterClass' |
| 74 | import pickup from '@/viewsPc/components/pickup' | ||
| 73 | import {useStorage} from "@vueuse/core/index"; | 75 | import {useStorage} from "@vueuse/core/index"; |
| 74 | import {ref} from "vue"; | 76 | import {ref} from "vue"; |
| 75 | import {getWeather} from "@/apiPc/webSite"; | 77 | import {getWeather} from "@/apiPc/webSite"; |
| ... | @@ -103,6 +105,15 @@ const openMaster = (params) => { | ... | @@ -103,6 +105,15 @@ const openMaster = (params) => { |
| 103 | } | 105 | } |
| 104 | proxy.$refs['masterClassRef'].open(obj) | 106 | proxy.$refs['masterClassRef'].open(obj) |
| 105 | } | 107 | } |
| 108 | |||
| 109 | const openPickup= (params) => { | ||
| 110 | console.log(params) | ||
| 111 | const obj = { | ||
| 112 | title:'接送机服务', | ||
| 113 | cptId:params.cptId | ||
| 114 | } | ||
| 115 | proxy.$refs['pickupRef'].open(obj) | ||
| 116 | } | ||
| 106 | </script> | 117 | </script> |
| 107 | 118 | ||
| 108 | <style scoped lang="scss"> | 119 | <style scoped lang="scss"> | ... | ... |
| ... | @@ -95,6 +95,8 @@ | ... | @@ -95,6 +95,8 @@ |
| 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 | |||
| 99 | <a class="zn-btn ml20 btn-q" @click="handlePickup">接/送机服务</a> | ||
| 98 | </div> | 100 | </div> |
| 99 | </el-col> | 101 | </el-col> |
| 100 | <el-col :sm="24" :lg="14"> | 102 | <el-col :sm="24" :lg="14"> |
| ... | @@ -377,7 +379,7 @@ const navigationPic = ref({ | ... | @@ -377,7 +379,7 @@ const navigationPic = ref({ |
| 377 | }) | 379 | }) |
| 378 | const router = useRouter() | 380 | const router = useRouter() |
| 379 | const {proxy} = getCurrentInstance() | 381 | const {proxy} = getCurrentInstance() |
| 380 | const emit = defineEmits(['pop']) | 382 | const emit = defineEmits(['pop','pickup']) |
| 381 | const time = ref(0) | 383 | const time = ref(0) |
| 382 | const personList = ref([ | 384 | const personList = ref([ |
| 383 | { name: 'Wolfgang Eliasch', pp: '拉丁舞裁判长 奥地利', src: '/img/1.png' }, | 385 | { name: 'Wolfgang Eliasch', pp: '拉丁舞裁判长 奥地利', src: '/img/1.png' }, |
| ... | @@ -500,6 +502,13 @@ const popMaster = () => { | ... | @@ -500,6 +502,13 @@ const popMaster = () => { |
| 500 | emit('pop',params) | 502 | emit('pop',params) |
| 501 | } | 503 | } |
| 502 | 504 | ||
| 505 | const handlePickup=()=>{ | ||
| 506 | const params={ | ||
| 507 | cptId :matchData.value.id | ||
| 508 | } | ||
| 509 | emit('pickup',params) | ||
| 510 | } | ||
| 511 | |||
| 503 | </script> | 512 | </script> |
| 504 | 513 | ||
| 505 | <style scoped lang="scss"> | 514 | <style scoped lang="scss"> | ... | ... |
| ... | @@ -88,7 +88,10 @@ | ... | @@ -88,7 +88,10 @@ |
| 88 | <div style="margin-bottom: 30px"> | 88 | <div style="margin-bottom: 30px"> |
| 89 | <a class="zn-btn" style="font-size: 15px" @click="goGuide">GUIDELINE<el-icon><download /></el-icon> | 89 | <a class="zn-btn" style="font-size: 15px" @click="goGuide">GUIDELINE<el-icon><download /></el-icon> |
| 90 | </a> | 90 | </a> |
| 91 | <a class="zn-btn ml20 btn-q" style="font-size: 15px" @click="popMaster">Junior &Youth Camp REGISTER<el-icon><Edit /></el-icon> | 91 | <a class="zn-btn ml20 btn-q" style="font-size: 15px;margin-right: 20px" @click="popMaster">Junior &Youth Camp REGISTER<el-icon><Edit /></el-icon> |
| 92 | </a> | ||
| 93 | |||
| 94 | <a class="zn-btn btn-q" style="font-size: 15px;margin-top: 10px" @click="handlePickup">Pick-up/drop-off service | ||
| 92 | </a> | 95 | </a> |
| 93 | </div> | 96 | </div> |
| 94 | 97 | ||
| ... | @@ -508,6 +511,13 @@ const popMaster = () => { | ... | @@ -508,6 +511,13 @@ const popMaster = () => { |
| 508 | } | 511 | } |
| 509 | emit('pop',params) | 512 | emit('pop',params) |
| 510 | } | 513 | } |
| 514 | |||
| 515 | const handlePickup=()=>{ | ||
| 516 | const params={ | ||
| 517 | cptId :matchData.value.id | ||
| 518 | } | ||
| 519 | emit('pickup',params) | ||
| 520 | } | ||
| 511 | </script> | 521 | </script> |
| 512 | 522 | ||
| 513 | <style scoped lang="scss"> | 523 | <style scoped lang="scss"> | ... | ... |
-
Please register or sign in to post a comment