14224f92 by 华明祺

购票状态的相关调整

1 parent ec06da2a
...@@ -12,8 +12,8 @@ ...@@ -12,8 +12,8 @@
12 <div class="name">{{ TickForm.name }}</div> 12 <div class="name">{{ TickForm.name }}</div>
13 <div class="address">{{ TickForm.address }}</div> 13 <div class="address">{{ TickForm.address }}</div>
14 </div> 14 </div>
15 15
16 16
17 <div class="ticket_info mb20"> 17 <div class="ticket_info mb20">
18 <div class="tit_box"> 18 <div class="tit_box">
19 <div class="line" /> 19 <div class="line" />
...@@ -21,12 +21,12 @@ ...@@ -21,12 +21,12 @@
21 {{ languageFormat(language, "订票信息", "Ticket Info") }} 21 {{ languageFormat(language, "订票信息", "Ticket Info") }}
22 </div> 22 </div>
23 </div> 23 </div>
24 24
25 <div class="form"> 25 <div class="form">
26 <el-form ref="formRef" :model="orderForm" :rules="rules" label-width="140px"> 26 <el-form ref="formRef" :model="orderForm" :rules="rules" label-width="140px">
27 <div v-if="TickForm2.ticketType == '1'"> 27 <div v-if="TickForm2.ticketType == '1'">
28 <el-form-item :label="language == 0 ? '桌号' : 'Table'"> 28 <el-form-item :label="language == 0 ? '桌号' : 'Table'">
29 29
30 <!-- <el-popover :width="400" placement="right" trigger="hover">--> 30 <!-- <el-popover :width="400" placement="right" trigger="hover">-->
31 <!-- <template #reference>--> 31 <!-- <template #reference>-->
32 <!-- <div class="text-primary underline pointer" @click="showImg">--> 32 <!-- <div class="text-primary underline pointer" @click="showImg">-->
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
39 <!-- />--> 39 <!-- />-->
40 <!-- </el-popover>--> 40 <!-- </el-popover>-->
41 <!-- --> 41 <!-- -->
42 42
43 <el-radio-group v-model="currDesk"> 43 <el-radio-group v-model="currDesk">
44 <el-radio-button 44 <el-radio-button
45 v-for="(it, index) in deskList" :key="index" :disabled="it.status!=0" :label="it.deskNo" 45 v-for="(it, index) in deskList" :key="index" :disabled="it.status!=0" :label="it.deskNo"
...@@ -105,7 +105,7 @@ ...@@ -105,7 +105,7 @@
105 </div> 105 </div>
106 </div> 106 </div>
107 </el-col> 107 </el-col>
108 108
109 <el-col :lg="8" class="right"> 109 <el-col :lg="8" class="right">
110 <div class="tit_box"> 110 <div class="tit_box">
111 <div class="line" /> 111 <div class="line" />
...@@ -113,7 +113,7 @@ ...@@ -113,7 +113,7 @@
113 {{ languageFormat(language, "订单明细", "Order summary") }} 113 {{ languageFormat(language, "订单明细", "Order summary") }}
114 </div> 114 </div>
115 </div> 115 </div>
116 116
117 <div class="detail"> 117 <div class="detail">
118 <div class="detail_top"> 118 <div class="detail_top">
119 <div class="time"> 119 <div class="time">
...@@ -148,14 +148,14 @@ ...@@ -148,14 +148,14 @@
148 <span v-else>{{ language == 0 ? '夜间场' : 'Night' }}</span> 148 <span v-else>{{ language == 0 ? '夜间场' : 'Night' }}</span>
149 | {{ TickForm2.ticketName }} 149 | {{ TickForm2.ticketName }}
150 </div> 150 </div>
151 151
152 <div v-if="TickForm2.ticketType=='0'" class="address">{{ 152 <div v-if="TickForm2.ticketType=='0'" class="address">{{
153 language == 0 ? '剩余数量' : 'Remaining Quantity' 153 language == 0 ? '剩余数量' : 'Remaining Quantity'
154 }}: {{ leftCount }} 154 }}: {{ leftCount }}
155 </div> 155 </div>
156 </div> 156 </div>
157 </div> 157 </div>
158 158
159 <!-- 场馆布局图--> 159 <!-- 场馆布局图-->
160 <div style="margin-top: 30px"> 160 <div style="margin-top: 30px">
161 <el-image 161 <el-image
...@@ -256,7 +256,7 @@ onMounted(() => { ...@@ -256,7 +256,7 @@ onMounted(() => {
256 tickImg.value = route.query.tickImg 256 tickImg.value = route.query.tickImg
257 customerList() 257 customerList()
258 getDetail() 258 getDetail()
259 259
260 getActivityTypeVoById({ 260 getActivityTypeVoById({
261 id: route.params.latstId 261 id: route.params.latstId
262 }).then((res) => { 262 }).then((res) => {
...@@ -292,12 +292,12 @@ function changeGroup(e) { ...@@ -292,12 +292,12 @@ function changeGroup(e) {
292 }).then(res => { 292 }).then(res => {
293 if (res.data.length > 0) { 293 if (res.data.length > 0) {
294 const names = _.map(res.data, (d) => d.name).join(',') 294 const names = _.map(res.data, (d) => d.name).join(',')
295 295
296 ElMessage({ 296 ElMessage({
297 message: language.value == 0 ? `${names} 已购买该票` : 'The user has purchased the ticket', 297 message: language.value == 0 ? `${names} 已购买该票` : 'The user has purchased the ticket',
298 type: 'error' 298 type: 'error'
299 }) 299 })
300 300
301 _.each(res.data, (d) => { 301 _.each(res.data, (d) => {
302 _.remove(orderForm.value.customerIds, (c) => c == d.id) 302 _.remove(orderForm.value.customerIds, (c) => c == d.id)
303 _.find(personnelList.value, (p) => p.id == d.id).disabled = true 303 _.find(personnelList.value, (p) => p.id == d.id).disabled = true
...@@ -319,7 +319,7 @@ async function paymentHandle() { ...@@ -319,7 +319,7 @@ async function paymentHandle() {
319 useStore().setVisitor() 319 useStore().setVisitor()
320 return 320 return
321 } 321 }
322 322
323 if (TickForm2.value.ticketType == '1') { 323 if (TickForm2.value.ticketType == '1') {
324 if (currSeat.value.length == 0) { 324 if (currSeat.value.length == 0) {
325 ElMessage({ 325 ElMessage({
...@@ -336,9 +336,9 @@ async function paymentHandle() { ...@@ -336,9 +336,9 @@ async function paymentHandle() {
336 return 336 return
337 } 337 }
338 } 338 }
339 339
340 await formRef.value.validate() 340 await formRef.value.validate()
341 341
342 await ElMessageBox.confirm(language.value == 0 ? '确认提交订单吗?' : 'Confirm to submit the order?', { 342 await ElMessageBox.confirm(language.value == 0 ? '确认提交订单吗?' : 'Confirm to submit the order?', {
343 confirmButtonText: language.value == 0 ? '确定' : 'Confirm', 343 confirmButtonText: language.value == 0 ? '确定' : 'Confirm',
344 cancelButtonText: language.value == 0 ? '取消' : 'Cancel', 344 cancelButtonText: language.value == 0 ? '取消' : 'Cancel',
...@@ -359,7 +359,7 @@ async function paymentHandle() { ...@@ -359,7 +359,7 @@ async function paymentHandle() {
359 seatNo: tempSeat.seatNo 359 seatNo: tempSeat.seatNo
360 }) 360 })
361 }) 361 })
362 362
363 const res = await submitOrderTicket({ 363 const res = await submitOrderTicket({
364 activeId: orderForm.value.activeId, 364 activeId: orderForm.value.activeId,
365 orderName: TickForm2.value.ticketTypeName, 365 orderName: TickForm2.value.ticketTypeName,
...@@ -406,7 +406,7 @@ async function paymentHandle() { ...@@ -406,7 +406,7 @@ async function paymentHandle() {
406 } catch (e) { 406 } catch (e) {
407 ElMessage.error(language.value == 0 ? '下单失败,' : 'Order failure') 407 ElMessage.error(language.value == 0 ? '下单失败,' : 'Order failure')
408 } finally { 408 } finally {
409 409
410 } 410 }
411 }) 411 })
412 } 412 }
...@@ -450,7 +450,7 @@ div { ...@@ -450,7 +450,7 @@ div {
450 //padding: 20px 0; 450 //padding: 20px 0;
451 width: 1200px; 451 width: 1200px;
452 margin: 20px auto; 452 margin: 20px auto;
453 453
454 .tag_t { 454 .tag_t {
455 padding: 1px 10px; 455 padding: 1px 10px;
456 font-weight: 400; 456 font-weight: 400;
...@@ -460,7 +460,7 @@ div { ...@@ -460,7 +460,7 @@ div {
460 border: 1px solid #453dea; 460 border: 1px solid #453dea;
461 margin-left: 5px; 461 margin-left: 5px;
462 } 462 }
463 463
464 .title { 464 .title {
465 padding: 11px; 465 padding: 11px;
466 text-align: center; 466 text-align: center;
...@@ -468,18 +468,18 @@ div { ...@@ -468,18 +468,18 @@ div {
468 font-size: 18px; 468 font-size: 18px;
469 color: #ffffff; 469 color: #ffffff;
470 } 470 }
471 471
472 .content { 472 .content {
473 background-color: #fff; 473 background-color: #fff;
474 } 474 }
475 475
476 .line { 476 .line {
477 width: 4px; 477 width: 4px;
478 height: 18px; 478 height: 18px;
479 background: linear-gradient(180deg, #493ceb 0%, #8623fc 100%); 479 background: linear-gradient(180deg, #493ceb 0%, #8623fc 100%);
480 border-radius: 4px; 480 border-radius: 4px;
481 } 481 }
482 482
483 .left { 483 .left {
484 .info { 484 .info {
485 background: rgba(69, 61, 234, 0.04); 485 background: rgba(69, 61, 234, 0.04);
...@@ -487,54 +487,54 @@ div { ...@@ -487,54 +487,54 @@ div {
487 border: 1px solid #d3d1f6; 487 border: 1px solid #d3d1f6;
488 padding: 20px 0 28px 33px; 488 padding: 20px 0 28px 33px;
489 margin-bottom: 20px; 489 margin-bottom: 20px;
490 490
491 .name { 491 .name {
492 font-weight: 500; 492 font-weight: 500;
493 font-size: 18px; 493 font-size: 18px;
494 color: #000000; 494 color: #000000;
495 margin-bottom: 20px; 495 margin-bottom: 20px;
496 } 496 }
497 497
498 .address { 498 .address {
499 font-weight: 400; 499 font-weight: 400;
500 font-size: 14px; 500 font-size: 14px;
501 color: #929aa0; 501 color: #929aa0;
502 } 502 }
503 } 503 }
504 504
505 .ticket_info { 505 .ticket_info {
506 .tit_box { 506 .tit_box {
507 display: flex; 507 display: flex;
508 align-items: center; 508 align-items: center;
509 gap: 10px; 509 gap: 10px;
510 margin-bottom: 14px; 510 margin-bottom: 14px;
511 511
512 .txt { 512 .txt {
513 font-weight: bold; 513 font-weight: bold;
514 font-size: 16px; 514 font-size: 16px;
515 color: #493ceb; 515 color: #493ceb;
516 } 516 }
517 } 517 }
518 518
519 .form { 519 .form {
520 min-height: 464px; 520 min-height: 464px;
521 padding: 20px 60px; 521 padding: 20px 60px;
522 border-radius: 5px; 522 border-radius: 5px;
523 border: 1px solid #dcdfe6; 523 border: 1px solid #dcdfe6;
524 524
525 .p_box { 525 .p_box {
526 display: flex; 526 display: flex;
527 width: 100%; 527 width: 100%;
528 gap: 10px; 528 gap: 10px;
529 max-width: 400px; 529 max-width: 400px;
530 530
531 .people { 531 .people {
532 width: 100%; 532 width: 100%;
533 background: #fbfcfd; 533 background: #fbfcfd;
534 border-radius: 2px; 534 border-radius: 2px;
535 border: 1px solid #dcdfe6; 535 border: 1px solid #dcdfe6;
536 padding: 0 14px; 536 padding: 0 14px;
537 537
538 .prople_item { 538 .prople_item {
539 display: flex; 539 display: flex;
540 justify-content: space-between; 540 justify-content: space-between;
...@@ -543,30 +543,30 @@ div { ...@@ -543,30 +543,30 @@ div {
543 border-bottom: 1px solid #dcdfe6; 543 border-bottom: 1px solid #dcdfe6;
544 width: 100%; 544 width: 100%;
545 position: relative; 545 position: relative;
546 546
547 &:last-child { 547 &:last-child {
548 border: none; 548 border: none;
549 } 549 }
550 550
551 .name { 551 .name {
552 font-size: 16px; 552 font-size: 16px;
553 //color: #929aa0; 553 //color: #929aa0;
554 margin-bottom: 20px; 554 margin-bottom: 20px;
555 555
556 .tag_t { 556 .tag_t {
557 position: absolute; 557 position: absolute;
558 right: 30px; 558 right: 30px;
559 padding: 8px; 559 padding: 8px;
560 } 560 }
561 } 561 }
562 562
563 .idcard { 563 .idcard {
564 font-size: 10px; 564 font-size: 10px;
565 color: #929aa0; 565 color: #929aa0;
566 } 566 }
567 } 567 }
568 } 568 }
569 569
570 .btn { 570 .btn {
571 width: 90px; 571 width: 90px;
572 height: 40px; 572 height: 40px;
...@@ -585,30 +585,30 @@ div { ...@@ -585,30 +585,30 @@ div {
585 } 585 }
586 } 586 }
587 } 587 }
588 588
589 .right { 589 .right {
590 .tit_box { 590 .tit_box {
591 display: flex; 591 display: flex;
592 align-items: center; 592 align-items: center;
593 gap: 10px; 593 gap: 10px;
594 margin-bottom: 20px; 594 margin-bottom: 20px;
595 595
596 .txt { 596 .txt {
597 font-weight: bold; 597 font-weight: bold;
598 font-size: 16px; 598 font-size: 16px;
599 color: #493ceb; 599 color: #493ceb;
600 } 600 }
601 } 601 }
602 602
603 .detail { 603 .detail {
604 padding: 15px 26px; 604 padding: 15px 26px;
605 border-radius: 5px; 605 border-radius: 5px;
606 border: 1px solid #dcdfe6; 606 border: 1px solid #dcdfe6;
607 607
608 .detail_top { 608 .detail_top {
609 padding-bottom: 13px; 609 padding-bottom: 13px;
610 border-bottom: 1px solid #dcdfe6; 610 border-bottom: 1px solid #dcdfe6;
611 611
612 .time { 612 .time {
613 font-weight: 500; 613 font-weight: 500;
614 font-size: 20px; 614 font-size: 20px;
...@@ -616,13 +616,13 @@ div { ...@@ -616,13 +616,13 @@ div {
616 line-height: 25px; 616 line-height: 25px;
617 margin-bottom: 8px; 617 margin-bottom: 8px;
618 } 618 }
619 619
620 .ticket { 620 .ticket {
621 font-size: 16px; 621 font-size: 16px;
622 color: #2d373f; 622 color: #2d373f;
623 } 623 }
624 } 624 }
625 625
626 .detail_center { 626 .detail_center {
627 margin-top: 14px; 627 margin-top: 14px;
628 display: flex; 628 display: flex;
...@@ -630,26 +630,26 @@ div { ...@@ -630,26 +630,26 @@ div {
630 padding-bottom: 13px; 630 padding-bottom: 13px;
631 border-bottom: 1px solid #dcdfe6; 631 border-bottom: 1px solid #dcdfe6;
632 gap: 8px; 632 gap: 8px;
633 633
634 .ticket { 634 .ticket {
635 font-size: 16px; 635 font-size: 16px;
636 color: #2d373f; 636 color: #2d373f;
637 } 637 }
638 } 638 }
639 639
640 .detail_b { 640 .detail_b {
641 display: flex; 641 display: flex;
642 justify-content: space-between; 642 justify-content: space-between;
643 align-items: center; 643 align-items: center;
644 margin-top: 16px; 644 margin-top: 16px;
645 645
646 .sum_txt { 646 .sum_txt {
647 font-weight: 600; 647 font-weight: 600;
648 font-size: 18px; 648 font-size: 18px;
649 color: #2d373f; 649 color: #2d373f;
650 line-height: 25px; 650 line-height: 25px;
651 } 651 }
652 652
653 .price_num { 653 .price_num {
654 font-weight: 600; 654 font-weight: 600;
655 font-size: 36px; 655 font-size: 36px;
...@@ -659,7 +659,7 @@ div { ...@@ -659,7 +659,7 @@ div {
659 } 659 }
660 } 660 }
661 } 661 }
662 662
663 .footer { 663 .footer {
664 display: flex; 664 display: flex;
665 justify-content: space-between; 665 justify-content: space-between;
...@@ -669,20 +669,20 @@ div { ...@@ -669,20 +669,20 @@ div {
669 box-shadow: 0px 0px 46px 0px rgba(1, 16, 64, 0.08); 669 box-shadow: 0px 0px 46px 0px rgba(1, 16, 64, 0.08);
670 margin-top: 9px; 670 margin-top: 9px;
671 padding: 0 30px; 671 padding: 0 30px;
672 672
673 .label { 673 .label {
674 font-size: 16px; 674 font-size: 16px;
675 color: #7b7f83; 675 color: #7b7f83;
676 line-height: 22px; 676 line-height: 22px;
677 } 677 }
678 678
679 .value { 679 .value {
680 font-size: 22px; 680 font-size: 22px;
681 color: #ff8124; 681 color: #ff8124;
682 line-height: 30px; 682 line-height: 30px;
683 font-weight: 600; 683 font-weight: 600;
684 } 684 }
685 685
686 .pay { 686 .pay {
687 width: 200px; 687 width: 200px;
688 height: 40px; 688 height: 40px;
...@@ -696,7 +696,7 @@ div { ...@@ -696,7 +696,7 @@ div {
696 cursor: pointer; 696 cursor: pointer;
697 user-select: none; 697 user-select: none;
698 } 698 }
699 699
700 .goBack { 700 .goBack {
701 width: 200px; 701 width: 200px;
702 height: 40px; 702 height: 40px;
......
...@@ -37,11 +37,11 @@ ...@@ -37,11 +37,11 @@
37 <div class="address"> 37 <div class="address">
38 {{ triggerLanguage(language, "地址", "Location") }}{{ matchForm.address }} 38 {{ triggerLanguage(language, "地址", "Location") }}{{ matchForm.address }}
39 </div> 39 </div>
40 40
41 41
42 <div v-if="timeData>0"> 42 <div v-if="timeData>0">
43 <!-- 倒计时--> 43 <!-- 倒计时-->
44 44
45 <p class="countDownTitle"> 45 <p class="countDownTitle">
46 <span v-if="language==0">售票倒计时</span> 46 <span v-if="language==0">售票倒计时</span>
47 <span v-else>TICKET COUNTDOWN</span> 47 <span v-else>TICKET COUNTDOWN</span>
...@@ -60,7 +60,7 @@ ...@@ -60,7 +60,7 @@
60 </van-count-down> 60 </van-count-down>
61 </div> 61 </div>
62 <div v-else> 62 <div v-else>
63 63
64 <!-- 票档 --> 64 <!-- 票档 -->
65 <div class="select_item_box"> 65 <div class="select_item_box">
66 <div class="label"> 66 <div class="label">
...@@ -74,18 +74,18 @@ ...@@ -74,18 +74,18 @@
74 :key="index" 74 :key="index"
75 :class="[ 75 :class="[
76 it.id == selectForm.latId ? 'tagActive' : 'tag', 76 it.id == selectForm.latId ? 'tagActive' : 'tag',
77 it.disabled ? 'forbid' : '', 77 it.overdueView=='0' ? 'forbid' : '',
78 it.ticketPackage==1&& tickArr?.length<=0?'forbid':'' 78 (it.ticketPackage==1 && overdueView=='0') ?'forbid':''
79 ]" 79 ]"
80 @click="select(it)" 80 @click="select(it)"
81 > 81 >
82 {{ it.ticketTypeName }}{{ it.disabled }}<span v-if="it.ticketPackage==1" class="tao">{{ 82 {{ it.ticketTypeName }}<span v-if="it.ticketPackage==1" class="tao">{{
83 language == 0 ? '套票' : 'Package ticket' 83 language == 0 ? '套票' : 'Package ticket'
84 }}</span> 84 }}</span>
85 </div> 85 </div>
86 </div> 86 </div>
87 </div> 87 </div>
88 88
89 <!-- 场馆 --> 89 <!-- 场馆 -->
90 <div class="select_item_box"> 90 <div class="select_item_box">
91 <div class="label"> 91 <div class="label">
...@@ -119,7 +119,7 @@ ...@@ -119,7 +119,7 @@
119 <div v-if="remarks" class="remarks">{{ remarks }}</div> 119 <div v-if="remarks" class="remarks">{{ remarks }}</div>
120 </div> 120 </div>
121 </div> 121 </div>
122 122
123 <!-- 场次 --> 123 <!-- 场次 -->
124 <div class="select_item_box"> 124 <div class="select_item_box">
125 <div class="label"> 125 <div class="label">
...@@ -147,23 +147,12 @@ ...@@ -147,23 +147,12 @@
147 </div> 147 </div>
148 </div> 148 </div>
149 </div> 149 </div>
150 150
151 <!-- 票型 --> 151 <!-- 票型 -->
152 <div class="select_item_box"> 152 <div class="select_item_box">
153 <div class="label"> 153 <div class="label">
154 {{ triggerLanguage(language, "票型", "Ticket Type") }} : 154 {{ triggerLanguage(language, "票型", "Ticket Type") }} :
155 </div> 155 </div>
156 <div>
157 <!-- <span-->
158 <!-- v-if="currTick?.images"-->
159 <!-- style="color: #493ceb;cursor:pointer;font-weight:600;font-size: 14px"-->
160 <!-- @click="showUrl=currTick.images;show=true"-->
161 <!-- > <span style="color: red;font-size: 18px">*</span>-->
162 <!-- {{-->
163 <!-- language == 0 ? '点击查看区域布局' : 'View Area Layout'-->
164 <!-- }}-->
165 <!-- </span>-->
166 </div>
167 </div> 156 </div>
168 <div class="select_item_box"> 157 <div class="select_item_box">
169 <div class="select_item"> 158 <div class="select_item">
...@@ -189,10 +178,10 @@ ...@@ -189,10 +178,10 @@
189 /> 178 />
190 </div> 179 </div>
191 </div> 180 </div>
192 181
193 </div> 182 </div>
194 183
195 184
196 <!-- 价格 --> 185 <!-- 价格 -->
197 <div class="select_item_box"> 186 <div class="select_item_box">
198 <div class="label"> 187 <div class="label">
...@@ -219,27 +208,31 @@ ...@@ -219,27 +208,31 @@
219 {{ matchForm.ticketRemark }} 208 {{ matchForm.ticketRemark }}
220 </div> 209 </div>
221 </div> 210 </div>
222 211
223 <div 212 <div
224 v-if="endTime<=0||tickArr?.length<=0" class="btn" 213 v-if="isOver" class="btn"
225 style="margin-left: 40px;opacity: 0.5;cursor: not-allowed;margin-top: 10px" 214 style="margin-left: 40px;opacity: 0.5;cursor: not-allowed;margin-top: 10px"
226 @click="toSelectClosed"
227 > 215 >
228 {{ 216 {{
229 triggerLanguage(language, "售票结束", "Sale closed") 217 triggerLanguage(language, "售票结束", "Sale closed")
230 }} 218 }}
231 </div> 219 </div>
232 <div v-else class="btn" style="margin-left: 40px;margin-top: 10px" @click="toSelectSeat()"> 220 <template v-else>
233 {{ 221 <div v-if="leftCount<=0 && leftCount!=-999" class="btn" style="margin-left: 40px;margin-top: 10px">
234 triggerLanguage(language, "立即购票", "Buy tickets now") 222 {{
235 }} 223 triggerLanguage(language, "票已售罄", "Sale out")
236 </div> 224 }}
237 225 </div>
226 <div v-else class="btn" style="margin-left: 40px;margin-top: 10px" @click="toSelectSeat()">
227 {{
228 triggerLanguage(language, "立即购票", "Buy tickets now")
229 }}
230 </div>
231 </template>
238 </div> 232 </div>
239
240 </div> 233 </div>
241 </div> 234 </div>
242 235
243 <div class="container bottom"> 236 <div class="container bottom">
244 <div style="display: flex"> 237 <div style="display: flex">
245 <div :class="{'bg':active==1}" class="buBg" @click="active=1">{{ language == 0 ? '购票说明' : 'Notice' }}</div> 238 <div :class="{'bg':active==1}" class="buBg" @click="active=1">{{ language == 0 ? '购票说明' : 'Notice' }}</div>
...@@ -250,7 +243,7 @@ ...@@ -250,7 +243,7 @@
250 </div> 243 </div>
251 <div v-show="active==1" class="rich_content" v-html="matchForm.ticketDes" /> 244 <div v-show="active==1" class="rich_content" v-html="matchForm.ticketDes" />
252 <div v-show="active==2" class="rich_content" v-html="matchForm.ticketNotice" /> 245 <div v-show="active==2" class="rich_content" v-html="matchForm.ticketNotice" />
253 246
254 <el-dialog v-model="show" align-center title="" width="1000px"> 247 <el-dialog v-model="show" align-center title="" width="1000px">
255 <div style="padding: 20px"> 248 <div style="padding: 20px">
256 <img :src="fillImgUrl(showUrl)" alt="" style="width: 100%"> 249 <img :src="fillImgUrl(showUrl)" alt="" style="width: 100%">
...@@ -273,8 +266,9 @@ import { ...@@ -273,8 +266,9 @@ import {
273 checkNonPayment, 266 checkNonPayment,
274 getStadiumList, 267 getStadiumList,
275 getActivityTypeVoListByLatsId, 268 getActivityTypeVoListByLatsId,
276 getBaseInfoByActiveId 269 getBaseInfoByActiveId, getListByAtstId
277 } from '@/apiPc/booking' 270 } from '@/apiPc/booking'
271 import _ from 'lodash'
278 272
279 273
280 import { dayjs } from 'element-plus' 274 import { dayjs } from 'element-plus'
...@@ -314,7 +308,9 @@ const tickList = ref([]) ...@@ -314,7 +308,9 @@ const tickList = ref([])
314 const currVenue = ref(null) 308 const currVenue = ref(null)
315 const currTick = ref(null) 309 const currTick = ref(null)
316 const matchData = ref({}) 310 const matchData = ref({})
317 const tickArr = ref([]) 311 const overdueView = ref('1')
312 const isOver = ref(false)
313 const leftCount = ref(-999)
318 314
319 watch(show, (val) => { 315 watch(show, (val) => {
320 if (!val) { 316 if (!val) {
...@@ -328,7 +324,7 @@ getDetail() ...@@ -328,7 +324,7 @@ getDetail()
328 async function getDetail() { 324 async function getDetail() {
329 const res = await getTicketInfoByActivityId({ activityId: activeId.value }) 325 const res = await getTicketInfoByActivityId({ activityId: activeId.value })
330 matchForm.value = res.data 326 matchForm.value = res.data
331 console.log(res) 327 // console.log(res)
332 const today = dayjs().format('YYYY-MM-DD HH:mm:ss') 328 const today = dayjs().format('YYYY-MM-DD HH:mm:ss')
333 timeData.value = dayjs(res.data.ticketStart).diff(today, 'millisecond') 329 timeData.value = dayjs(res.data.ticketStart).diff(today, 'millisecond')
334 endTime.value = dayjs(res.data.ticketEnd).diff(today, 'millisecond') 330 endTime.value = dayjs(res.data.ticketEnd).diff(today, 'millisecond')
...@@ -344,24 +340,18 @@ async function getTicketList() { ...@@ -344,24 +340,18 @@ async function getTicketList() {
344 activityId: activeId.value, status: 1 340 activityId: activeId.value, status: 1
345 }) 341 })
346 tickClass.value = res.rows 342 tickClass.value = res.rows
347 if (tickClass.value.length > 0) { 343
348 const nowDay = dayjs().format('YYYY-MM-DD') 344 if (_.some(tickClass.value, (item) => item.overdueView == '0')
349 tickArr.value = [] 345 ) {
350 for (const val of tickClass.value) { 346 overdueView.value = '0'
351 const tickDay = dayjs(val.name).format('YYYY-MM-DD') 347 }
352 if (tickDay < nowDay) { 348
353 val.disabled = true 349 const item = _.find(tickClass.value, (item) => item.overdueView == '1')
354 } else { 350 if (item) {
355 val.disabled = false 351 selectForm.value.latId = item.id
356 if (val.ticketPackage != 1) { 352 await getVenueList()
357 tickArr.value.push(val) 353 } else {
358 } 354 isOver.value = true
359 }
360 }
361 if (tickArr.value.length > 0) {
362 selectForm.value.latId = tickArr.value?.[0]?.id
363 await getVenueList()
364 }
365 } 355 }
366 } 356 }
367 357
...@@ -380,14 +370,13 @@ async function getTicketListType() { ...@@ -380,14 +370,13 @@ async function getTicketListType() {
380 const res = await getActivityTypeVoListByLatsId({ latsId: selectForm.value.latsId }) 370 const res = await getActivityTypeVoListByLatsId({ latsId: selectForm.value.latsId })
381 tickList.value = res.data 371 tickList.value = res.data
382 selectForm.value.sessionType = Object.keys(res.data)[0] 372 selectForm.value.sessionType = Object.keys(res.data)[0]
383 console.log(tickList.value)
384 // currTick.value = tickList.value[selectForm.value.sessionType][0]
385 // selectForm.value.latstId = currTick.value?.id
386 // selectForm.value.price = currTick.value?.price
387 // selectForm.value.priceEn = currTick.value?.priceEn
388 } 373 }
389 374
390 function select(v) { 375 function select(v) {
376 if (v.id == selectForm.value.latId) {
377 return
378 }
379
391 selectForm.value.latId = v.id 380 selectForm.value.latId = v.id
392 selectForm.value.latsId = null 381 selectForm.value.latsId = null
393 selectForm.value.sessionType = null 382 selectForm.value.sessionType = null
...@@ -395,11 +384,16 @@ function select(v) { ...@@ -395,11 +384,16 @@ function select(v) {
395 selectForm.value.id = null 384 selectForm.value.id = null
396 selectForm.value.price = '--' 385 selectForm.value.price = '--'
397 selectForm.value.priceEn = '--' 386 selectForm.value.priceEn = '--'
398 387 currTick.value = null
388
399 getVenueList() 389 getVenueList()
400 } 390 }
401 391
402 function selectVenue(v) { 392 function selectVenue(v) {
393 if (v.id == selectForm.value.latsId) {
394 return
395 }
396
403 currVenue.value = v 397 currVenue.value = v
404 selectForm.value.latsId = v.id 398 selectForm.value.latsId = v.id
405 selectForm.value.sessionType = null 399 selectForm.value.sessionType = null
...@@ -408,27 +402,51 @@ function selectVenue(v) { ...@@ -408,27 +402,51 @@ function selectVenue(v) {
408 selectForm.value.price = '--' 402 selectForm.value.price = '--'
409 selectForm.value.priceEn = '--' 403 selectForm.value.priceEn = '--'
410 remarks.value = v.remarks 404 remarks.value = v.remarks
405 currTick.value = null
406
411 getTicketListType() 407 getTicketListType()
412 } 408 }
413 409
414 function selectSessionType(key) { 410 function selectSessionType(key) {
411 if (key == selectForm.value.sessionType) {
412 return
413 }
414
415 selectForm.value.sessionType = key 415 selectForm.value.sessionType = key
416 416
417 // currTick.value = tickList.value[selectForm.value.sessionType][0] 417 // currTick.value = tickList.value[selectForm.value.sessionType][0]
418 selectForm.value.latstId = currTick.value?.id 418 selectForm.value.latstId = currTick.value?.id
419 selectForm.value.price = currTick.value?.price 419 selectForm.value.price = currTick.value?.price
420 selectForm.value.priceEn = currTick.value?.priceEn 420 selectForm.value.priceEn = currTick.value?.priceEn
421 currTick.value = null
421 } 422 }
422 423
423 // 选择票型 424 // 选择票型
424 function selectTick(v) { 425 function selectTick(v) {
426 if (v.id == selectForm.value.latstId) {
427 return
428 }
429
425 currTick.value = v 430 currTick.value = v
426 selectForm.value.latstId = v.id 431 selectForm.value.latstId = v.id
427 selectForm.value.price = v.price 432 selectForm.value.price = v.price
428 selectForm.value.priceEn = v.priceEn 433 selectForm.value.priceEn = v.priceEn
429 // console.log(v) 434
430 showUrl.value = v.images 435 checkNonPayment().then(res => {
431 show.value = true 436 if (res.data) {
437 getListByAtstId({
438 atstId: selectForm.value.latstId
439 }).then(res => {
440 leftCount.value = res.data
441 if (leftCount.value > 0) {
442 showUrl.value = v.images
443 show.value = true
444 }
445 })
446 } else {
447 leftCount.value = -999
448 }
449 })
432 } 450 }
433 451
434 function toSelectSeat() { 452 function toSelectSeat() {
...@@ -470,7 +488,7 @@ function toSelectClosed() { ...@@ -470,7 +488,7 @@ function toSelectClosed() {
470 async function getmatchData() { 488 async function getmatchData() {
471 const res = await getBaseInfoByActiveId(route.params.activeId) 489 const res = await getBaseInfoByActiveId(route.params.activeId)
472 matchData.value = res.data 490 matchData.value = res.data
473 console.log(res) 491 // console.log(res)
474 } 492 }
475 493
476 function handleImage() { 494 function handleImage() {
...@@ -515,18 +533,18 @@ getmatchData() ...@@ -515,18 +533,18 @@ getmatchData()
515 display: flex; 533 display: flex;
516 padding: 19px; 534 padding: 19px;
517 margin-top: 26px; 535 margin-top: 26px;
518 536
519 .cover_img { 537 .cover_img {
520 width: 500px; 538 width: 500px;
521 height: 667px; 539 height: 667px;
522 object-fit: fill; 540 object-fit: fill;
523 margin-right: 36px; 541 margin-right: 36px;
524 } 542 }
525 543
526 .info { 544 .info {
527 padding-top: 12px; 545 padding-top: 12px;
528 width: 100%; 546 width: 100%;
529 547
530 .title { 548 .title {
531 font-weight: bold; 549 font-weight: bold;
532 font-size: 28px; 550 font-size: 28px;
...@@ -534,7 +552,7 @@ getmatchData() ...@@ -534,7 +552,7 @@ getmatchData()
534 line-height: 1.6; 552 line-height: 1.6;
535 margin-bottom: 15px; 553 margin-bottom: 15px;
536 } 554 }
537 555
538 .time { 556 .time {
539 font-weight: 600; 557 font-weight: 600;
540 font-size: 16px; 558 font-size: 16px;
...@@ -542,7 +560,7 @@ getmatchData() ...@@ -542,7 +560,7 @@ getmatchData()
542 line-height: 24px; 560 line-height: 24px;
543 margin-bottom: 16px; 561 margin-bottom: 16px;
544 } 562 }
545 563
546 .address { 564 .address {
547 font-weight: 600; 565 font-weight: 600;
548 font-size: 16px; 566 font-size: 16px;
...@@ -550,15 +568,15 @@ getmatchData() ...@@ -550,15 +568,15 @@ getmatchData()
550 line-height: 24px; 568 line-height: 24px;
551 margin-bottom: 15px; 569 margin-bottom: 15px;
552 } 570 }
553 571
554 .select_item_box { 572 .select_item_box {
555 display: flex; 573 display: flex;
556 margin-bottom: 10px; 574 margin-bottom: 10px;
557 575
558 &:last-child { 576 &:last-child {
559 margin-bottom: 0; 577 margin-bottom: 0;
560 } 578 }
561 579
562 .label { 580 .label {
563 font-weight: 600; 581 font-weight: 600;
564 font-size: 16px; 582 font-size: 16px;
...@@ -567,19 +585,19 @@ getmatchData() ...@@ -567,19 +585,19 @@ getmatchData()
567 margin-right: 12px; 585 margin-right: 12px;
568 flex-shrink: 0; 586 flex-shrink: 0;
569 } 587 }
570 588
571 .forbid { 589 .forbid {
572 pointer-events: none; 590 pointer-events: none;
573 opacity: 0.5 !important; 591 opacity: 0.5 !important;
574 cursor: not-allowed !important; 592 cursor: not-allowed !important;
575 } 593 }
576 594
577 .select_item { 595 .select_item {
578 display: flex; 596 display: flex;
579 flex-wrap: wrap; 597 flex-wrap: wrap;
580 gap: 10px; 598 gap: 10px;
581 user-select: none; 599 user-select: none;
582 600
583 .tag_t { 601 .tag_t {
584 padding: 1px 15px; 602 padding: 1px 15px;
585 font-weight: 400; 603 font-weight: 400;
...@@ -589,7 +607,7 @@ getmatchData() ...@@ -589,7 +607,7 @@ getmatchData()
589 border: 1px solid #453dea; 607 border: 1px solid #453dea;
590 margin-left: 5px; 608 margin-left: 5px;
591 } 609 }
592 610
593 .tag { 611 .tag {
594 display: flex; 612 display: flex;
595 padding: 12px 18px; 613 padding: 12px 18px;
...@@ -600,7 +618,7 @@ getmatchData() ...@@ -600,7 +618,7 @@ getmatchData()
600 color: #4a4a4a; 618 color: #4a4a4a;
601 cursor: pointer; 619 cursor: pointer;
602 } 620 }
603 621
604 .tagActive { 622 .tagActive {
605 display: flex; 623 display: flex;
606 padding: 12px 18px; 624 padding: 12px 18px;
...@@ -611,14 +629,14 @@ getmatchData() ...@@ -611,14 +629,14 @@ getmatchData()
611 color: #493ceb; 629 color: #493ceb;
612 cursor: pointer; 630 cursor: pointer;
613 } 631 }
614 632
615 .tao { 633 .tao {
616 border: 1px solid #493ceb; 634 border: 1px solid #493ceb;
617 font-size: 14px; 635 font-size: 14px;
618 color: #493ceb; 636 color: #493ceb;
619 margin-left: 10px; 637 margin-left: 10px;
620 } 638 }
621 639
622 .tagDisabled { 640 .tagDisabled {
623 padding: 12px 18px; 641 padding: 12px 18px;
624 background: #878787; 642 background: #878787;
...@@ -630,7 +648,7 @@ getmatchData() ...@@ -630,7 +648,7 @@ getmatchData()
630 } 648 }
631 } 649 }
632 } 650 }
633 651
634 .btn { 652 .btn {
635 width: 175px; 653 width: 175px;
636 height: 40px; 654 height: 40px;
...@@ -650,7 +668,7 @@ getmatchData() ...@@ -650,7 +668,7 @@ getmatchData()
650 padding: 50px; 668 padding: 50px;
651 margin-top: 30px; 669 margin-top: 30px;
652 margin-bottom: 30px; 670 margin-bottom: 30px;
653 671
654 .title { 672 .title {
655 padding: 20px 30px; 673 padding: 20px 30px;
656 background: linear-gradient(270deg, #493ceb 0%, #8623fc 100%); 674 background: linear-gradient(270deg, #493ceb 0%, #8623fc 100%);
...@@ -660,15 +678,15 @@ getmatchData() ...@@ -660,15 +678,15 @@ getmatchData()
660 line-height: 30px; 678 line-height: 30px;
661 margin-bottom: 30px; 679 margin-bottom: 30px;
662 } 680 }
663 681
664 .rich_content { 682 .rich_content {
665 margin-top: 30px; 683 margin-top: 30px;
666 684
667 :deep(img) { 685 :deep(img) {
668 width: 100% !important; 686 width: 100% !important;
669 height: auto !important; 687 height: auto !important;
670 } 688 }
671 689
672 } 690 }
673 } 691 }
674 692
...@@ -686,44 +704,44 @@ getmatchData() ...@@ -686,44 +704,44 @@ getmatchData()
686 height: 160px; 704 height: 160px;
687 margin-right: 15px; 705 margin-right: 15px;
688 } 706 }
689 707
690 .info { 708 .info {
691 padding: 0; 709 padding: 0;
692 710
693 .title { 711 .title {
694 font-size: 14px; 712 font-size: 14px;
695 margin: 0; 713 margin: 0;
696 } 714 }
697 715
698 .time, .address, .label, .tip { 716 .time, .address, .label, .tip {
699 font-size: 12px; 717 font-size: 12px;
700 } 718 }
701 719
702 .title, .time, .address, .tip, .select_item_box { 720 .title, .time, .address, .tip, .select_item_box {
703 margin-bottom: 3px; 721 margin-bottom: 3px;
704 } 722 }
705 723
706 .select_item_box { 724 .select_item_box {
707 .label { 725 .label {
708 font-size: 12px; 726 font-size: 12px;
709 } 727 }
710 728
711 .select_item .tag { 729 .select_item .tag {
712 padding: 2px 10px; 730 padding: 2px 10px;
713 font-size: 12px; 731 font-size: 12px;
714 } 732 }
715 733
716 .select_item .tagActive { 734 .select_item .tagActive {
717 padding: 2px 10px; 735 padding: 2px 10px;
718 font-size: 12px; 736 font-size: 12px;
719 } 737 }
720 738
721 .select_item .tagDisabled { 739 .select_item .tagDisabled {
722 padding: 2px 10px; 740 padding: 2px 10px;
723 font-size: 12px; 741 font-size: 12px;
724 } 742 }
725 } 743 }
726 744
727 .btn { 745 .btn {
728 display: inline-block; 746 display: inline-block;
729 margin: 10px 0 0; 747 margin: 10px 0 0;
...@@ -741,8 +759,8 @@ getmatchData() ...@@ -741,8 +759,8 @@ getmatchData()
741 .bottom { 759 .bottom {
742 padding: 0 760 padding: 0
743 } 761 }
744 762
745 763
746 } 764 }
747 765
748 .countDownTitle { 766 .countDownTitle {
......
...@@ -64,8 +64,8 @@ export default defineConfig(({ mode, command }) => { ...@@ -64,8 +64,8 @@ export default defineConfig(({ mode, command }) => {
64 proxy: { 64 proxy: {
65 // https://cn.vitejs.dev/config/#server-proxy 65 // https://cn.vitejs.dev/config/#server-proxy
66 '/dev-api/ztx-train': { 66 '/dev-api/ztx-train': {
67 // target: 'http://192.168.1.118:1896/stage-api', 67 target: 'http://192.168.1.118:1896/stage-api',
68 target: 'https://jijin.wtwuxicenter.com/stage-api', 68 // target: 'https://jijin.wtwuxicenter.com/stage-api',
69 changeOrigin: true, 69 changeOrigin: true,
70 rewrite: (p) => p.replace(/^\/dev-api\/ztx-train/, '') 70 rewrite: (p) => p.replace(/^\/dev-api\/ztx-train/, '')
71 }, 71 },
...@@ -77,15 +77,15 @@ export default defineConfig(({ mode, command }) => { ...@@ -77,15 +77,15 @@ export default defineConfig(({ mode, command }) => {
77 rewrite: (p) => p.replace(/^\/dev-api\/ztx-match/, '') 77 rewrite: (p) => p.replace(/^\/dev-api\/ztx-match/, '')
78 }, 78 },
79 '/dev-api/ztx-webSite': { 79 '/dev-api/ztx-webSite': {
80 // target: 'http://192.168.1.118:8081', 80 target: 'http://192.168.1.118:8081',
81 target: 'https://jijin.wtwuxicenter.com/stage-api', 81 // target: 'https://jijin.wtwuxicenter.com/stage-api',
82 changeOrigin: true, 82 changeOrigin: true,
83 rewrite: (p) => p.replace(/^\/dev-api\/ztx-webSite/, '') 83 rewrite: (p) => p.replace(/^\/dev-api\/ztx-webSite/, '')
84 }, 84 },
85 '/dev-api': { 85 '/dev-api': {
86 // target: 'http://192.168.1.213:8081/', 86 // target: 'http://192.168.1.213:8081/',
87 // target: 'http://192.168.1.118:8081', 87 target: 'http://192.168.1.118:8081',
88 target: 'https://jijin.wtwuxicenter.com/stage-api', 88 // target: 'https://jijin.wtwuxicenter.com/stage-api',
89 // target: 'https://wdsfwuxicenter.com/stage-api/', 89 // target: 'https://wdsfwuxicenter.com/stage-api/',
90 changeOrigin: true, 90 changeOrigin: true,
91 rewrite: (p) => p.replace(/^\/dev-api/, '') 91 rewrite: (p) => p.replace(/^\/dev-api/, '')
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!