6f2459bd by zhangmeng

Merge branch 'devmatch' into 中分支

# Conflicts:
#	src/viewsPc/index.vue
#	src/viewsPc/index_en.vue
#	src/viewsPc/match/detail_en.vue
#	vite.config.js
2 parents ffb4a923 6c5ea483
...@@ -33,6 +33,7 @@ export function getExamRegionsList() { ...@@ -33,6 +33,7 @@ export function getExamRegionsList() {
33 method: 'get' 33 method: 'get'
34 }) 34 })
35 } 35 }
36
36 export function getIndexScheduleList(params) { 37 export function getIndexScheduleList(params) {
37 return request({ 38 return request({
38 url: '/league/competitionSchedule/getIndexScheduleList', 39 url: '/league/competitionSchedule/getIndexScheduleList',
...@@ -40,6 +41,7 @@ export function getIndexScheduleList(params) { ...@@ -40,6 +41,7 @@ export function getIndexScheduleList(params) {
40 params: params 41 params: params
41 }) 42 })
42 } 43 }
44
43 export function newbilllist(query) { 45 export function newbilllist(query) {
44 return request({ 46 return request({
45 url: `/ota/norder/list`, 47 url: `/ota/norder/list`,
...@@ -55,6 +57,7 @@ export function vistorRegister(data) { ...@@ -55,6 +57,7 @@ export function vistorRegister(data) {
55 data: data 57 data: data
56 }) 58 })
57 } 59 }
60
58 export function upgradePersonal(data) { 61 export function upgradePersonal(data) {
59 return request({ 62 return request({
60 url: `/upgradeAccountToSingle`, 63 url: `/upgradeAccountToSingle`,
...@@ -62,6 +65,7 @@ export function upgradePersonal(data) { ...@@ -62,6 +65,7 @@ export function upgradePersonal(data) {
62 data: data 65 data: data
63 }) 66 })
64 } 67 }
68
65 export function upgradeTeam(data) { 69 export function upgradeTeam(data) {
66 return request({ 70 return request({
67 url: `/upgradeAccountToTeam`, 71 url: `/upgradeAccountToTeam`,
...@@ -77,6 +81,7 @@ export function submitMasterApply(data) { ...@@ -77,6 +81,7 @@ export function submitMasterApply(data) {
77 data: data 81 data: data
78 }) 82 })
79 } 83 }
84
80 export function masterClassList(query) { 85 export function masterClassList(query) {
81 return request({ 86 return request({
82 // url: `/league/courseItem/list`, 87 // url: `/league/courseItem/list`,
...@@ -85,6 +90,7 @@ export function masterClassList(query) { ...@@ -85,6 +90,7 @@ export function masterClassList(query) {
85 params: query 90 params: query
86 }) 91 })
87 } 92 }
93
88 export function getByCard(query) { 94 export function getByCard(query) {
89 return request({ 95 return request({
90 url: `/league/courseUser/getByCard`, 96 url: `/league/courseUser/getByCard`,
...@@ -92,6 +98,7 @@ export function getByCard(query) { ...@@ -92,6 +98,7 @@ export function getByCard(query) {
92 params: query 98 params: query
93 }) 99 })
94 } 100 }
101
95 export function getMasterApply(query) { 102 export function getMasterApply(query) {
96 return request({ 103 return request({
97 url: `/league/courseUser/getCourseByUser`, 104 url: `/league/courseUser/getCourseByUser`,
...@@ -99,12 +106,14 @@ export function getMasterApply(query) { ...@@ -99,12 +106,14 @@ export function getMasterApply(query) {
99 params: query 106 params: query
100 }) 107 })
101 } 108 }
109
102 export function delByCard(card) { 110 export function delByCard(card) {
103 return request({ 111 return request({
104 url: `/league/courseUser/delByCard?card=${card}`, 112 url: `/league/courseUser/delByCard?card=${card}`,
105 method: 'delete' 113 method: 'delete'
106 }) 114 })
107 } 115 }
116
108 export function addPickup(data) { 117 export function addPickup(data) {
109 return request({ 118 return request({
110 url: `/league/pickup`, 119 url: `/league/pickup`,
...@@ -112,27 +121,31 @@ export function addPickup(data) { ...@@ -112,27 +121,31 @@ export function addPickup(data) {
112 data 121 data
113 }) 122 })
114 } 123 }
124
115 export function getBackNumber(qy) { 125 export function getBackNumber(qy) {
116 return request({ 126 return request({
117 url: `/league/backNumber/query`, 127 url: `/league/backNumber/query/${qy.cptId}`,
118 method: 'get', 128 method: 'get',
119 params: qy 129 params: qy
120 }) 130 })
121 } 131 }
132
122 export function getTeamBackNumber(qy) { 133 export function getTeamBackNumber(qy) {
123 return request({ 134 return request({
124 url: `/league/backNumber/teamQuery`, 135 url: `/league/backNumber/teamQuery/${qy.cptId}`,
125 method: 'get', 136 method: 'get',
126 params: qy 137 params: qy
127 }) 138 })
128 } 139 }
140
129 export function getTeamBackNumberPre(qy) { 141 export function getTeamBackNumberPre(qy) {
130 return request({ 142 return request({
131 url: `/league/backNumber/teamQueryPre`, 143 url: `/league/backNumber/teamQueryPre/${qy.cptId}`,
132 method: 'get', 144 method: 'get',
133 params: qy 145 params: qy
134 }) 146 })
135 } 147 }
148
136 export function getqySchedule(qy) { 149 export function getqySchedule(qy) {
137 return request({ 150 return request({
138 url: `/league/schedule/querySchedule`, 151 url: `/league/schedule/querySchedule`,
...@@ -140,6 +153,7 @@ export function getqySchedule(qy) { ...@@ -140,6 +153,7 @@ export function getqySchedule(qy) {
140 params: qy 153 params: qy
141 }) 154 })
142 } 155 }
156
143 export function getqySchedule2(qy) { 157 export function getqySchedule2(qy) {
144 return request({ 158 return request({
145 url: `/league/schedule/querySchedule2`, 159 url: `/league/schedule/querySchedule2`,
...@@ -147,6 +161,7 @@ export function getqySchedule2(qy) { ...@@ -147,6 +161,7 @@ export function getqySchedule2(qy) {
147 params: qy 161 params: qy
148 }) 162 })
149 } 163 }
164
150 export function getquerySchedule2Pre(qy) { 165 export function getquerySchedule2Pre(qy) {
151 return request({ 166 return request({
152 url: `/league/schedule/querySchedule2Pre`, 167 url: `/league/schedule/querySchedule2Pre`,
...@@ -154,9 +169,10 @@ export function getquerySchedule2Pre(qy) { ...@@ -154,9 +169,10 @@ export function getquerySchedule2Pre(qy) {
154 params: qy 169 params: qy
155 }) 170 })
156 } 171 }
172
157 export function queryScheduleSingle(qy) { 173 export function queryScheduleSingle(qy) {
158 return request({ 174 return request({
159 url: `/league/schedule/queryScheduleSingle`, 175 url: `/league/schedule/queryScheduleSingle/${qy.cptId}`,
160 method: 'get', 176 method: 'get',
161 params: qy 177 params: qy
162 }) 178 })
......
...@@ -381,7 +381,15 @@ ...@@ -381,7 +381,15 @@
381 </div> 381 </div>
382 </el-col> 382 </el-col>
383 <el-col :lg="24"> 383 <el-col :lg="24">
384 <div class="text-center" /> 384 <el-link
385 v-if="(form.viewStatus=='1'||form.viewStatus=='5')&&language!=0" type="primary"
386 @click="exportPdf"
387 >
388 <el-icon>
389 <Upload />
390 </el-icon>
391 {{ language == 0 ? '导出酒店预订单' : 'Export PDF' }}
392 </el-link>
385 </el-col> 393 </el-col>
386 </el-row> 394 </el-row>
387 </div> 395 </div>
......
...@@ -20,43 +20,12 @@ ...@@ -20,43 +20,12 @@
20 <label class="blueTag">{{ paymentType != 3 ? '票务订单' : 'Ticket' }}</label> 20 <label class="blueTag">{{ paymentType != 3 ? '票务订单' : 'Ticket' }}</label>
21 <h3>{{ matchForm.name }}</h3> 21 <h3>{{ matchForm.name }}</h3>
22 <div> 22 <div>
23 <p>地址:{{ matchForm.address }}</p> 23 <p>票档:{{ ticketForm.extJson?.atName }}</p>
24 <p>票档:{{ ticketForm.extJson?.ticketType?.name }}</p> 24 <p>场馆:{{ ticketForm.extJson?.atsName }}</p>
25 <p>时间:{{ ticketForm.extJson?.ticketDate.name }}</p> 25 <p>场次:{{ ticketForm.extJson?.sessionType =='1000'? '日间场' : '夜间场' }}</p>
26 <p>通票:{{ 26 <p>票型:{{ ticketForm.extJson?.atstName }}</p>
27 paymentType != 3 ? '¥' : '€'
28 }}
29 {{
30 paymentType != 3 ? ticketForm.extJson?.ticketDate.price : ticketForm.extJson?.ticketDate.priceEn
31 }}
32 /1张</p>
33 <p>优惠票:{{
34 paymentType != 3 ? '¥' : '€'
35 }}
36 {{
37 paymentType != 3 ? ticketForm.extJson?.ticketDate.rebatePrice : ticketForm.extJson?.ticketDate.rebatePriceEn
38 }}
39 /1张</p>
40
41 <p class="poPrice">{{ paymentType != 3 ? '¥' : '€' }}{{ totalMoney }}</p>
42 </div> 27 </div>
43 <div> 28 <div>
44 <el-row v-for="v in message" style="width: 100%">
45 <el-col :lg="8" :md="12" :sm="12" :xs="24">
46 <div>{{ v.name }}
47 </div>
48 </el-col>
49 <el-col :lg="8" :md="12" :sm="12" :xs="24">
50 <div>{{ !v.discount ? '通票' : '优惠票' }}
51 </div>
52 </el-col>
53 <el-col :lg="8" :md="12" :sm="12" :xs="24">
54 {{
55 !v.discount ? paymentType != 3 ? ticketForm.extJson?.ticketDate.price : ticketForm.extJson?.ticketDate.priceEn : paymentType != 3 ? ticketForm.extJson?.ticketDate.rebatePrice : ticketForm.extJson?.ticketDate.rebatePriceEn
56 }}
57 {{ paymentType != 3 ? '¥' : '€' }}/张
58 </el-col>
59 </el-row>
60 <el-row style="width: 100%"> 29 <el-row style="width: 100%">
61 <el-col :lg="8" :md="12" :sm="12" :xs="24"> 30 <el-col :lg="8" :md="12" :sm="12" :xs="24">
62 <div>购票数量:{{ ticketForm.num }} 31 <div>购票数量:{{ ticketForm.num }}
...@@ -65,14 +34,14 @@ ...@@ -65,14 +34,14 @@
65 <el-col :lg="8" :md="12" :sm="12" :xs="24">联系方式:{{ ticketForm.phone }} 34 <el-col :lg="8" :md="12" :sm="12" :xs="24">联系方式:{{ ticketForm.phone }}
66 </el-col> 35 </el-col>
67 <el-col :lg="8" :md="12" :sm="12" :xs="24"> 36 <el-col :lg="8" :md="12" :sm="12" :xs="24">
68 共计:{{ (totalMoney * 1).toFixed(2) }}{{ 37 共计:{{ (totalMoney*1).toFixed(2) }}{{
69 paymentType != 3 ? '¥' : '€' 38 paymentType == 1 ? '¥' : '€'
70 }} 39 }}
71 </el-col> 40 </el-col>
72 </el-row> 41 </el-row>
73 </div> 42 </div>
74 </div> 43 </div>
75 44
76 <div class="leftboderTT"> 45 <div class="leftboderTT">
77 {{ paymentType != 3 ? '开票信息' : 'Invoice information' }} 46 {{ paymentType != 3 ? '开票信息' : 'Invoice information' }}
78 </div> 47 </div>
...@@ -82,15 +51,15 @@ ...@@ -82,15 +51,15 @@
82 class="mw500" 51 class="mw500"
83 > 52 >
84 <el-form-item :label="language==0 ?'开票金额':'Amount'"> 53 <el-form-item :label="language==0 ?'开票金额':'Amount'">
85 <span class="bigprice">{{ paymentType != 3 ? '¥' : '€' }}{{ totalMoney }}</span> 54 <span class="bigprice">{{ paymentType != 3 ? '¥' : '€' }}{{ paymentType != 3?ticketForm.total:ticketForm.totalEn }}</span>
86 </el-form-item> 55 </el-form-item>
87 56
88 <el-form-item :label="language==0 ?`发票形式`:'Invoice Form'" prop="invoiceForm" required> 57 <el-form-item :label="language==0 ?`发票形式`:'Invoice Form'" prop="invoiceForm" required>
89 <el-radio-group v-model="form.invoiceForm"> 58 <el-radio-group v-model="form.invoiceForm">
90 <el-radio value="1">{{ language == 0 ? '电子发票' : 'E-invoice' }}</el-radio> 59 <el-radio value="1">{{ language == 0 ? '电子发票' : 'E-invoice' }}</el-radio>
91 </el-radio-group> 60 </el-radio-group>
92 </el-form-item> 61 </el-form-item>
93 62
94 <el-form-item :label="language==0 ?`发票类型`:'Invoice Type'" prop="invoiceType" required> 63 <el-form-item :label="language==0 ?`发票类型`:'Invoice Type'" prop="invoiceType" required>
95 <el-radio-group v-model="form.invoiceType"> 64 <el-radio-group v-model="form.invoiceType">
96 <el-radio value="0">{{ language == 0 ? '企业' : 'Company' }}</el-radio> 65 <el-radio value="0">{{ language == 0 ? '企业' : 'Company' }}</el-radio>
...@@ -132,7 +101,7 @@ ...@@ -132,7 +101,7 @@
132 </el-form-item> 101 </el-form-item>
133 </div> 102 </div>
134 </el-form> 103 </el-form>
135 104
136 <div v-if="remark" class="tip"> 105 <div v-if="remark" class="tip">
137 <label>{{ paymentType != 3 ? '开票须知' : 'Invoice Notice' }}:</label> 106 <label>{{ paymentType != 3 ? '开票须知' : 'Invoice Notice' }}:</label>
138 <div v-html="remark" /> 107 <div v-html="remark" />
...@@ -140,7 +109,7 @@ ...@@ -140,7 +109,7 @@
140 </div> 109 </div>
141 </el-col> 110 </el-col>
142 </el-row> 111 </el-row>
143 112
144 <el-row align="middle" class="pd20" justify="center"> 113 <el-row align="middle" class="pd20" justify="center">
145 <el-col :span="12" class="text-center"> 114 <el-col :span="12" class="text-center">
146 <el-button class="btn-lineG w200px" round size="large" type="primary" @click="submit"> 115 <el-button class="btn-lineG w200px" round size="large" type="primary" @click="submit">
...@@ -150,7 +119,7 @@ ...@@ -150,7 +119,7 @@
150 </el-row> 119 </el-row>
151 </el-card> 120 </el-card>
152 <div style="height: 60px;" /> 121 <div style="height: 60px;" />
153 122
154 </div> 123 </div>
155 </div> 124 </div>
156 <address-list-dialog ref="dialogAddressListRef" @submit="getAddress" /> 125 <address-list-dialog ref="dialogAddressListRef" @submit="getAddress" />
...@@ -248,27 +217,27 @@ async function getTickInfo() { ...@@ -248,27 +217,27 @@ async function getTickInfo() {
248 ticketForm.value = res.data 217 ticketForm.value = res.data
249 try { 218 try {
250 ticketForm.value.extJson = JSON.parse(ticketForm.value.extJson) 219 ticketForm.value.extJson = JSON.parse(ticketForm.value.extJson)
251 ticketForm.value.extJson.ticketDate = JSON.parse(ticketForm.value.extJson.ticketDate) 220 // ticketForm.value.extJson.ticketDate = JSON.parse(ticketForm.value.extJson.ticketDate)
252 ticketForm.value.extJson.ticketType = JSON.parse(ticketForm.value.extJson.ticketType) 221 // ticketForm.value.extJson.ticketType = JSON.parse(ticketForm.value.extJson.ticketType)
253 cptId = ticketForm.value.extJson.ticketDate.activityId 222 cptId = ticketForm.value.activeId
254 totalMoney.value.val = ticketForm.value.extJson.total 223 totalMoney.value = ticketForm.value.paymentType != 3 ? ticketForm.value.total : ticketForm.value.totalEn
255 message.value = JSON.parse(ticketForm.value.extJson.message) 224 // message.value = JSON.parse(ticketForm.value.extJson.message)
256 console.log(message.value) 225 // console.log(message.value)
257 paymentType.value = ticketForm.value.paymentType 226 paymentType.value = ticketForm.value.paymentType
258 totalMoney.value = paymentType.value == 3 ? ticketForm.value.totalEn : ticketForm.value.total 227
259 await getDetail(ticketForm.value.extJson.ticketDate.activityId) 228 await getDetail(ticketForm.value.activeId)
260 console.log(ticketForm.value) 229 // console.log(ticketForm.value)
261 } catch (e) { 230 } catch (e) {
262 console.log(e) 231 console.log(e)
263 } finally { 232 } finally {
264 233
265 } 234 }
266 } 235 }
267 236
268 async function getDetail(activeId) { 237 async function getDetail(activeId) {
269 const res = await getTicketInfoByActivityId({ activityId: activeId }) 238 const res = await getTicketInfoByActivityId({ activityId: activeId })
270 matchForm.value = res.data 239 matchForm.value = res.data
271 console.log(matchForm.value) 240 // console.log(matchForm.value)
272 } 241 }
273 242
274 function getList() { 243 function getList() {
...@@ -370,7 +339,7 @@ function goBack() { ...@@ -370,7 +339,7 @@ function goBack() {
370 339
371 .border-info { 340 .border-info {
372 position: relative; 341 position: relative;
373 342
374 & > label { 343 & > label {
375 position: absolute; 344 position: absolute;
376 right: 0; 345 right: 0;
...@@ -380,7 +349,7 @@ function goBack() { ...@@ -380,7 +349,7 @@ function goBack() {
380 padding: 5px 15px; 349 padding: 5px 15px;
381 font-size: 14px; 350 font-size: 14px;
382 } 351 }
383 352
384 .poPrice { 353 .poPrice {
385 position: absolute; 354 position: absolute;
386 bottom: 0px; 355 bottom: 0px;
...@@ -435,12 +404,12 @@ function goBack() { ...@@ -435,12 +404,12 @@ function goBack() {
435 404
436 .ccitemBox { 405 .ccitemBox {
437 overflow: auto; 406 overflow: auto;
438 407
439 label { 408 label {
440 margin: 10px 0; 409 margin: 10px 0;
441 display: block; 410 display: block;
442 min-height: 30px; 411 min-height: 30px;
443 412
444 span { 413 span {
445 color: #FF8124; 414 color: #FF8124;
446 font-family: DIN Alternate; 415 font-family: DIN Alternate;
...@@ -455,12 +424,12 @@ function goBack() { ...@@ -455,12 +424,12 @@ function goBack() {
455 font-size: 15px; 424 font-size: 15px;
456 color: #666; 425 color: #666;
457 margin: 5px 0 10px; 426 margin: 5px 0 10px;
458 427
459 label { 428 label {
460 font-size: 16px; 429 font-size: 16px;
461 color: #000; 430 color: #000;
462 } 431 }
463 432
464 span { 433 span {
465 font-size: 13px; 434 font-size: 13px;
466 } 435 }
......
...@@ -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
...@@ -316,10 +316,10 @@ async function customerList() { ...@@ -316,10 +316,10 @@ async function customerList() {
316 // 提交 316 // 提交
317 async function paymentHandle() { 317 async function paymentHandle() {
318 if (!user.value) { 318 if (!user.value) {
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,6 +74,8 @@ ...@@ -74,6 +74,8 @@
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.overdueView=='0' ? 'forbid' : '',
78 (it.ticketPackage==1 && overdueView=='0') ?'forbid':''
77 ]" 79 ]"
78 @click="select(it)" 80 @click="select(it)"
79 > 81 >
...@@ -83,7 +85,7 @@ ...@@ -83,7 +85,7 @@
83 </div> 85 </div>
84 </div> 86 </div>
85 </div> 87 </div>
86 88
87 <!-- 场馆 --> 89 <!-- 场馆 -->
88 <div class="select_item_box"> 90 <div class="select_item_box">
89 <div class="label"> 91 <div class="label">
...@@ -117,7 +119,7 @@ ...@@ -117,7 +119,7 @@
117 <div v-if="remarks" class="remarks">{{ remarks }}</div> 119 <div v-if="remarks" class="remarks">{{ remarks }}</div>
118 </div> 120 </div>
119 </div> 121 </div>
120 122
121 <!-- 场次 --> 123 <!-- 场次 -->
122 <div class="select_item_box"> 124 <div class="select_item_box">
123 <div class="label"> 125 <div class="label">
...@@ -145,23 +147,12 @@ ...@@ -145,23 +147,12 @@
145 </div> 147 </div>
146 </div> 148 </div>
147 </div> 149 </div>
148 150
149 <!-- 票型 --> 151 <!-- 票型 -->
150 <div class="select_item_box"> 152 <div class="select_item_box">
151 <div class="label"> 153 <div class="label">
152 {{ triggerLanguage(language, "票型", "Ticket Type") }} : 154 {{ triggerLanguage(language, "票型", "Ticket Type") }} :
153 </div> 155 </div>
154 <div>
155 <!-- <span-->
156 <!-- v-if="currTick?.images"-->
157 <!-- style="color: #493ceb;cursor:pointer;font-weight:600;font-size: 14px"-->
158 <!-- @click="showUrl=currTick.images;show=true"-->
159 <!-- > <span style="color: red;font-size: 18px">*</span>-->
160 <!-- {{-->
161 <!-- language == 0 ? '点击查看区域布局' : 'View Area Layout'-->
162 <!-- }}-->
163 <!-- </span>-->
164 </div>
165 </div> 156 </div>
166 <div class="select_item_box"> 157 <div class="select_item_box">
167 <div class="select_item"> 158 <div class="select_item">
...@@ -187,10 +178,10 @@ ...@@ -187,10 +178,10 @@
187 /> 178 />
188 </div> 179 </div>
189 </div> 180 </div>
190 181
191 </div> 182 </div>
192 183
193 184
194 <!-- 价格 --> 185 <!-- 价格 -->
195 <div class="select_item_box"> 186 <div class="select_item_box">
196 <div class="label"> 187 <div class="label">
...@@ -217,26 +208,31 @@ ...@@ -217,26 +208,31 @@
217 {{ matchForm.ticketRemark }} 208 {{ matchForm.ticketRemark }}
218 </div> 209 </div>
219 </div> 210 </div>
220 211
221 <div 212 <div
222 v-if="endTime<=0" class="btn" style="margin-left: 40px;opacity: 0.5;cursor: not-allowed;margin-top: 10px" 213 v-if="isOver" class="btn"
223 @click="toSelectClosed" 214 style="margin-left: 40px;opacity: 0.5;cursor: not-allowed;margin-top: 10px"
224 > 215 >
225 {{ 216 {{
226 triggerLanguage(language, "售票结束", "Sale closed") 217 triggerLanguage(language, "售票结束", "Sale closed")
227 }} 218 }}
228 </div> 219 </div>
229 <div v-else class="btn" style="margin-left: 40px;margin-top: 10px" @click="toSelectSeat()"> 220 <template v-else>
230 {{ 221 <div v-if="leftCount<=0 && leftCount!=-999" class="btn" style="margin-left: 40px;margin-top: 10px">
231 triggerLanguage(language, "立即购票", "Buy tickets now") 222 {{
232 }} 223 triggerLanguage(language, "票已售罄", "Sale out")
233 </div> 224 }}
234 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>
235 </div> 232 </div>
236
237 </div> 233 </div>
238 </div> 234 </div>
239 235
240 <div class="container bottom"> 236 <div class="container bottom">
241 <div style="display: flex"> 237 <div style="display: flex">
242 <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>
...@@ -247,7 +243,7 @@ ...@@ -247,7 +243,7 @@
247 </div> 243 </div>
248 <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" />
249 <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" />
250 246
251 <el-dialog v-model="show" align-center title="" width="1000px"> 247 <el-dialog v-model="show" align-center title="" width="1000px">
252 <div style="padding: 20px"> 248 <div style="padding: 20px">
253 <img :src="fillImgUrl(showUrl)" alt="" style="width: 100%"> 249 <img :src="fillImgUrl(showUrl)" alt="" style="width: 100%">
...@@ -263,25 +259,27 @@ ...@@ -263,25 +259,27 @@
263 259
264 260
265 <script setup> 261 <script setup>
266 import { ref, computed, watch } from 'vue' 262 import { ref, computed, watch, getCurrentInstance } from 'vue'
267 import { 263 import {
268 getTicketInfoByActivityId, 264 getTicketInfoByActivityId,
269 getTicketListApi, 265 getTicketListApi,
270 checkNonPayment, 266 checkNonPayment,
271 getStadiumList, 267 getStadiumList,
272 getActivityTypeVoListByLatsId, 268 getActivityTypeVoListByLatsId,
273 getBaseInfoByActiveId 269 getBaseInfoByActiveId, getListByAtstId
274 } from '@/apiPc/booking' 270 } from '@/apiPc/booking'
271 import _ from 'lodash'
272
275 273
276 import { dayjs } from 'element-plus' 274 import { dayjs } from 'element-plus'
277 import { ElMessageBox } from 'element-plus' 275 import { ElMessageBox } from 'element-plus'
278 import { getDayName } from '@/viewsPc/seat/utils/language' 276 import { getDayName } from '@/viewsPc/seat/utils/language'
279 import { fillImgUrl } from '/@/utils/ruoyi' 277 import { fillImgUrl, triggerLanguage } from '/@/utils/ruoyi'
280 import useUserStore from '/@/store/modules/user' 278 import useUserStore from '/@/store/modules/user'
281 import { triggerLanguage } from '@/utils/ruoyi'
282 import { useStorage } from '@vueuse/core/index' 279 import { useStorage } from '@vueuse/core/index'
283 import { useRoute, useRouter } from 'vue-router' 280 import { useRoute, useRouter } from 'vue-router'
284 281
282 const { proxy } = getCurrentInstance()
285 const language = useStorage('language', 0) 283 const language = useStorage('language', 0)
286 const useStore = useUserStore() 284 const useStore = useUserStore()
287 const user = computed(() => useUserStore().user) 285 const user = computed(() => useUserStore().user)
...@@ -291,9 +289,6 @@ const show = ref(false) ...@@ -291,9 +289,6 @@ const show = ref(false)
291 const showUrl = ref('') 289 const showUrl = ref('')
292 const activeId = ref(route.params.activeId) 290 const activeId = ref(route.params.activeId)
293 const active = ref(1) 291 const active = ref(1)
294 const props = defineProps({
295 activityId: [String, Number]
296 })
297 const remarks = ref() 292 const remarks = ref()
298 const timeData = ref() 293 const timeData = ref()
299 const endTime = ref() 294 const endTime = ref()
...@@ -312,6 +307,9 @@ const tickList = ref([]) ...@@ -312,6 +307,9 @@ const tickList = ref([])
312 const currVenue = ref(null) 307 const currVenue = ref(null)
313 const currTick = ref(null) 308 const currTick = ref(null)
314 const matchData = ref({}) 309 const matchData = ref({})
310 const overdueView = ref('1')
311 const isOver = ref(false)
312 const leftCount = ref(-999)
315 313
316 watch(show, (val) => { 314 watch(show, (val) => {
317 if (!val) { 315 if (!val) {
...@@ -325,7 +323,7 @@ getDetail() ...@@ -325,7 +323,7 @@ getDetail()
325 async function getDetail() { 323 async function getDetail() {
326 const res = await getTicketInfoByActivityId({ activityId: activeId.value }) 324 const res = await getTicketInfoByActivityId({ activityId: activeId.value })
327 matchForm.value = res.data 325 matchForm.value = res.data
328 console.log(res) 326 // console.log(res)
329 const today = dayjs().format('YYYY-MM-DD HH:mm:ss') 327 const today = dayjs().format('YYYY-MM-DD HH:mm:ss')
330 timeData.value = dayjs(res.data.ticketStart).diff(today, 'millisecond') 328 timeData.value = dayjs(res.data.ticketStart).diff(today, 'millisecond')
331 endTime.value = dayjs(res.data.ticketEnd).diff(today, 'millisecond') 329 endTime.value = dayjs(res.data.ticketEnd).diff(today, 'millisecond')
...@@ -341,9 +339,18 @@ async function getTicketList() { ...@@ -341,9 +339,18 @@ async function getTicketList() {
341 activityId: activeId.value, status: 1 339 activityId: activeId.value, status: 1
342 }) 340 })
343 tickClass.value = res.rows 341 tickClass.value = res.rows
344 if (tickClass.value.length > 0) { 342
345 selectForm.value.latId = tickClass.value?.[0]?.id 343 if (_.some(tickClass.value, (item) => item.overdueView == '0')
344 ) {
345 overdueView.value = '0'
346 }
347
348 const item = _.find(tickClass.value, (item) => item.overdueView == '1')
349 if (item) {
350 selectForm.value.latId = item.id
346 await getVenueList() 351 await getVenueList()
352 } else {
353 isOver.value = true
347 } 354 }
348 } 355 }
349 356
...@@ -362,14 +369,13 @@ async function getTicketListType() { ...@@ -362,14 +369,13 @@ async function getTicketListType() {
362 const res = await getActivityTypeVoListByLatsId({ latsId: selectForm.value.latsId }) 369 const res = await getActivityTypeVoListByLatsId({ latsId: selectForm.value.latsId })
363 tickList.value = res.data 370 tickList.value = res.data
364 selectForm.value.sessionType = Object.keys(res.data)[0] 371 selectForm.value.sessionType = Object.keys(res.data)[0]
365 console.log(tickList.value)
366 // currTick.value = tickList.value[selectForm.value.sessionType][0]
367 // selectForm.value.latstId = currTick.value?.id
368 // selectForm.value.price = currTick.value?.price
369 // selectForm.value.priceEn = currTick.value?.priceEn
370 } 372 }
371 373
372 function select(v) { 374 function select(v) {
375 if (v.id == selectForm.value.latId) {
376 return
377 }
378
373 selectForm.value.latId = v.id 379 selectForm.value.latId = v.id
374 selectForm.value.latsId = null 380 selectForm.value.latsId = null
375 selectForm.value.sessionType = null 381 selectForm.value.sessionType = null
...@@ -377,11 +383,16 @@ function select(v) { ...@@ -377,11 +383,16 @@ function select(v) {
377 selectForm.value.id = null 383 selectForm.value.id = null
378 selectForm.value.price = '--' 384 selectForm.value.price = '--'
379 selectForm.value.priceEn = '--' 385 selectForm.value.priceEn = '--'
380 386 currTick.value = null
387
381 getVenueList() 388 getVenueList()
382 } 389 }
383 390
384 function selectVenue(v) { 391 function selectVenue(v) {
392 if (v.id == selectForm.value.latsId) {
393 return
394 }
395
385 currVenue.value = v 396 currVenue.value = v
386 selectForm.value.latsId = v.id 397 selectForm.value.latsId = v.id
387 selectForm.value.sessionType = null 398 selectForm.value.sessionType = null
...@@ -390,27 +401,58 @@ function selectVenue(v) { ...@@ -390,27 +401,58 @@ function selectVenue(v) {
390 selectForm.value.price = '--' 401 selectForm.value.price = '--'
391 selectForm.value.priceEn = '--' 402 selectForm.value.priceEn = '--'
392 remarks.value = v.remarks 403 remarks.value = v.remarks
404 currTick.value = null
405
393 getTicketListType() 406 getTicketListType()
394 } 407 }
395 408
396 function selectSessionType(key) { 409 function selectSessionType(key) {
410 if (key == selectForm.value.sessionType) {
411 return
412 }
413
397 selectForm.value.sessionType = key 414 selectForm.value.sessionType = key
398 415
399 // currTick.value = tickList.value[selectForm.value.sessionType][0] 416 // currTick.value = tickList.value[selectForm.value.sessionType][0]
400 selectForm.value.latstId = currTick.value?.id 417 selectForm.value.latstId = currTick.value?.id
401 selectForm.value.price = currTick.value?.price 418 selectForm.value.price = currTick.value?.price
402 selectForm.value.priceEn = currTick.value?.priceEn 419 selectForm.value.priceEn = currTick.value?.priceEn
420 currTick.value = null
403 } 421 }
404 422
405 // 选择票型 423 // 选择票型
406 function selectTick(v) { 424 function selectTick(v) {
425 if (v.id == selectForm.value.latstId) {
426 return
427 }
428
407 currTick.value = v 429 currTick.value = v
408 selectForm.value.latstId = v.id 430 selectForm.value.latstId = v.id
409 selectForm.value.price = v.price 431 selectForm.value.price = v.price
410 selectForm.value.priceEn = v.priceEn 432 selectForm.value.priceEn = v.priceEn
411 // console.log(v) 433
412 showUrl.value = v.images 434 // vip票
413 show.value = true 435 if (currTick.value.ticketType == '1') {
436 showUrl.value = v.images
437 show.value = true
438 leftCount.value = -999
439 } else {
440 checkNonPayment().then(res => {
441 if (res.data) {
442 getListByAtstId({
443 atstId: selectForm.value.latstId
444 }).then(res => {
445 leftCount.value = res.data
446 if (leftCount.value > 0) {
447 showUrl.value = v.images
448 show.value = true
449 }
450 })
451 } else {
452 leftCount.value = -999
453 }
454 })
455 }
414 } 456 }
415 457
416 function toSelectSeat() { 458 function toSelectSeat() {
...@@ -420,6 +462,9 @@ function toSelectSeat() { ...@@ -420,6 +462,9 @@ function toSelectSeat() {
420 useStore.setVisitor() 462 useStore.setVisitor()
421 return 463 return
422 } 464 }
465 if (!selectForm.value.latstId) {
466 return proxy.$modal.confirm(language.value == 0 ? '请选择票型' : 'Please select a ticket type')
467 }
423 checkNonPayment().then(res => { 468 checkNonPayment().then(res => {
424 if (res.data) { 469 if (res.data) {
425 router.push({ 470 router.push({
...@@ -449,7 +494,7 @@ function toSelectClosed() { ...@@ -449,7 +494,7 @@ function toSelectClosed() {
449 async function getmatchData() { 494 async function getmatchData() {
450 const res = await getBaseInfoByActiveId(route.params.activeId) 495 const res = await getBaseInfoByActiveId(route.params.activeId)
451 matchData.value = res.data 496 matchData.value = res.data
452 console.log(res) 497 // console.log(res)
453 } 498 }
454 499
455 function handleImage() { 500 function handleImage() {
...@@ -494,18 +539,18 @@ getmatchData() ...@@ -494,18 +539,18 @@ getmatchData()
494 display: flex; 539 display: flex;
495 padding: 19px; 540 padding: 19px;
496 margin-top: 26px; 541 margin-top: 26px;
497 542
498 .cover_img { 543 .cover_img {
499 width: 500px; 544 width: 500px;
500 height: 667px; 545 height: 667px;
501 object-fit: fill; 546 object-fit: fill;
502 margin-right: 36px; 547 margin-right: 36px;
503 } 548 }
504 549
505 .info { 550 .info {
506 padding-top: 12px; 551 padding-top: 12px;
507 width: 100%; 552 width: 100%;
508 553
509 .title { 554 .title {
510 font-weight: bold; 555 font-weight: bold;
511 font-size: 28px; 556 font-size: 28px;
...@@ -513,7 +558,7 @@ getmatchData() ...@@ -513,7 +558,7 @@ getmatchData()
513 line-height: 1.6; 558 line-height: 1.6;
514 margin-bottom: 15px; 559 margin-bottom: 15px;
515 } 560 }
516 561
517 .time { 562 .time {
518 font-weight: 600; 563 font-weight: 600;
519 font-size: 16px; 564 font-size: 16px;
...@@ -521,7 +566,7 @@ getmatchData() ...@@ -521,7 +566,7 @@ getmatchData()
521 line-height: 24px; 566 line-height: 24px;
522 margin-bottom: 16px; 567 margin-bottom: 16px;
523 } 568 }
524 569
525 .address { 570 .address {
526 font-weight: 600; 571 font-weight: 600;
527 font-size: 16px; 572 font-size: 16px;
...@@ -529,15 +574,15 @@ getmatchData() ...@@ -529,15 +574,15 @@ getmatchData()
529 line-height: 24px; 574 line-height: 24px;
530 margin-bottom: 15px; 575 margin-bottom: 15px;
531 } 576 }
532 577
533 .select_item_box { 578 .select_item_box {
534 display: flex; 579 display: flex;
535 margin-bottom: 10px; 580 margin-bottom: 10px;
536 581
537 &:last-child { 582 &:last-child {
538 margin-bottom: 0; 583 margin-bottom: 0;
539 } 584 }
540 585
541 .label { 586 .label {
542 font-weight: 600; 587 font-weight: 600;
543 font-size: 16px; 588 font-size: 16px;
...@@ -546,18 +591,19 @@ getmatchData() ...@@ -546,18 +591,19 @@ getmatchData()
546 margin-right: 12px; 591 margin-right: 12px;
547 flex-shrink: 0; 592 flex-shrink: 0;
548 } 593 }
549 594
550 .forbid { 595 .forbid {
596 pointer-events: none;
551 opacity: 0.5 !important; 597 opacity: 0.5 !important;
552 cursor: not-allowed !important; 598 cursor: not-allowed !important;
553 } 599 }
554 600
555 .select_item { 601 .select_item {
556 display: flex; 602 display: flex;
557 flex-wrap: wrap; 603 flex-wrap: wrap;
558 gap: 10px; 604 gap: 10px;
559 user-select: none; 605 user-select: none;
560 606
561 .tag_t { 607 .tag_t {
562 padding: 1px 15px; 608 padding: 1px 15px;
563 font-weight: 400; 609 font-weight: 400;
...@@ -567,7 +613,7 @@ getmatchData() ...@@ -567,7 +613,7 @@ getmatchData()
567 border: 1px solid #453dea; 613 border: 1px solid #453dea;
568 margin-left: 5px; 614 margin-left: 5px;
569 } 615 }
570 616
571 .tag { 617 .tag {
572 display: flex; 618 display: flex;
573 padding: 12px 18px; 619 padding: 12px 18px;
...@@ -578,7 +624,7 @@ getmatchData() ...@@ -578,7 +624,7 @@ getmatchData()
578 color: #4a4a4a; 624 color: #4a4a4a;
579 cursor: pointer; 625 cursor: pointer;
580 } 626 }
581 627
582 .tagActive { 628 .tagActive {
583 display: flex; 629 display: flex;
584 padding: 12px 18px; 630 padding: 12px 18px;
...@@ -589,14 +635,14 @@ getmatchData() ...@@ -589,14 +635,14 @@ getmatchData()
589 color: #493ceb; 635 color: #493ceb;
590 cursor: pointer; 636 cursor: pointer;
591 } 637 }
592 638
593 .tao { 639 .tao {
594 border: 1px solid #493ceb; 640 border: 1px solid #493ceb;
595 font-size: 14px; 641 font-size: 14px;
596 color: #493ceb; 642 color: #493ceb;
597 margin-left: 10px; 643 margin-left: 10px;
598 } 644 }
599 645
600 .tagDisabled { 646 .tagDisabled {
601 padding: 12px 18px; 647 padding: 12px 18px;
602 background: #878787; 648 background: #878787;
...@@ -608,7 +654,7 @@ getmatchData() ...@@ -608,7 +654,7 @@ getmatchData()
608 } 654 }
609 } 655 }
610 } 656 }
611 657
612 .btn { 658 .btn {
613 width: 175px; 659 width: 175px;
614 height: 40px; 660 height: 40px;
...@@ -628,7 +674,7 @@ getmatchData() ...@@ -628,7 +674,7 @@ getmatchData()
628 padding: 50px; 674 padding: 50px;
629 margin-top: 30px; 675 margin-top: 30px;
630 margin-bottom: 30px; 676 margin-bottom: 30px;
631 677
632 .title { 678 .title {
633 padding: 20px 30px; 679 padding: 20px 30px;
634 background: linear-gradient(270deg, #493ceb 0%, #8623fc 100%); 680 background: linear-gradient(270deg, #493ceb 0%, #8623fc 100%);
...@@ -638,15 +684,15 @@ getmatchData() ...@@ -638,15 +684,15 @@ getmatchData()
638 line-height: 30px; 684 line-height: 30px;
639 margin-bottom: 30px; 685 margin-bottom: 30px;
640 } 686 }
641 687
642 .rich_content { 688 .rich_content {
643 margin-top: 30px; 689 margin-top: 30px;
644 690
645 :deep(img) { 691 :deep(img) {
646 width: 100% !important; 692 width: 100% !important;
647 height: auto !important; 693 height: auto !important;
648 } 694 }
649 695
650 } 696 }
651 } 697 }
652 698
...@@ -664,44 +710,44 @@ getmatchData() ...@@ -664,44 +710,44 @@ getmatchData()
664 height: 160px; 710 height: 160px;
665 margin-right: 15px; 711 margin-right: 15px;
666 } 712 }
667 713
668 .info { 714 .info {
669 padding: 0; 715 padding: 0;
670 716
671 .title { 717 .title {
672 font-size: 14px; 718 font-size: 14px;
673 margin: 0; 719 margin: 0;
674 } 720 }
675 721
676 .time, .address, .label, .tip { 722 .time, .address, .label, .tip {
677 font-size: 12px; 723 font-size: 12px;
678 } 724 }
679 725
680 .title, .time, .address, .tip, .select_item_box { 726 .title, .time, .address, .tip, .select_item_box {
681 margin-bottom: 3px; 727 margin-bottom: 3px;
682 } 728 }
683 729
684 .select_item_box { 730 .select_item_box {
685 .label { 731 .label {
686 font-size: 12px; 732 font-size: 12px;
687 } 733 }
688 734
689 .select_item .tag { 735 .select_item .tag {
690 padding: 2px 10px; 736 padding: 2px 10px;
691 font-size: 12px; 737 font-size: 12px;
692 } 738 }
693 739
694 .select_item .tagActive { 740 .select_item .tagActive {
695 padding: 2px 10px; 741 padding: 2px 10px;
696 font-size: 12px; 742 font-size: 12px;
697 } 743 }
698 744
699 .select_item .tagDisabled { 745 .select_item .tagDisabled {
700 padding: 2px 10px; 746 padding: 2px 10px;
701 font-size: 12px; 747 font-size: 12px;
702 } 748 }
703 } 749 }
704 750
705 .btn { 751 .btn {
706 display: inline-block; 752 display: inline-block;
707 margin: 10px 0 0; 753 margin: 10px 0 0;
...@@ -719,8 +765,8 @@ getmatchData() ...@@ -719,8 +765,8 @@ getmatchData()
719 .bottom { 765 .bottom {
720 padding: 0 766 padding: 0
721 } 767 }
722 768
723 769
724 } 770 }
725 771
726 .countDownTitle { 772 .countDownTitle {
...@@ -798,4 +844,10 @@ getmatchData() ...@@ -798,4 +844,10 @@ getmatchData()
798 line-height: 40px; 844 line-height: 40px;
799 color: #2b2f3a; 845 color: #2b2f3a;
800 } 846 }
847
848 .disabled {
849 background: #878787 !important;
850 color: #4a4a4a !important;
851 cursor: no-drop !important;
852 }
801 </style> 853 </style>
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
6 <div class="bg-lineg"> 6 <div class="bg-lineg">
7 <div class="pl-back" @click="goBack"> 7 <div class="pl-back" @click="goBack">
8 <el-icon> 8 <el-icon>
9 <ArrowLeftBold/> 9 <ArrowLeftBold />
10 </el-icon> 10 </el-icon>
11 返回 11 返回
12 </div> 12 </div>
...@@ -21,52 +21,22 @@ ...@@ -21,52 +21,22 @@
21 <label class="blueTag">票务订单</label> 21 <label class="blueTag">票务订单</label>
22 <h3>{{ matchForm.name }}</h3> 22 <h3>{{ matchForm.name }}</h3>
23 <div> 23 <div>
24 <p>地址:{{ matchForm.address }}</p> 24 <p>票档:{{ ticketForm.extJson?.atName }}</p>
25 <p>票档:{{ ticketForm.extJson?.ticketType?.name }}</p> 25 <p>场馆:{{ ticketForm.extJson?.atsName }}</p>
26 <p>时间:{{ ticketForm.extJson?.ticketDate.name }}</p> 26 <p>场次:{{ ticketForm.extJson?.sessionType =='1000'? '日间场' : '夜间场' }}</p>
27 <p>通票:{{ paymentType != 3 ? '¥' : '€' }} 27 <p>票型:{{ ticketForm.extJson?.atstName }}</p>
28 {{
29 paymentType != 3 ? ticketForm.extJson?.ticketDate.price : ticketForm.extJson?.ticketDate.priceEn
30 }}
31 /1张</p>
32 <p>优惠票:{{ paymentType != 3 ? '¥' : '€' }}
33 {{
34 paymentType != 3 ? ticketForm.extJson?.ticketDate.rebatePrice : ticketForm.extJson?.ticketDate.rebatePriceEn
35 }}
36 /1张</p>
37 <p class="poPrice">{{ paymentType != 3 ? '¥' : '€' }}{{ totalMoney }}</p>
38 </div> 28 </div>
39 <div> 29 <div>
40 <el-row v-for="v in message" style="width: 100%">
41 <el-col :lg="8" :md="12" :sm="12" :xs="24">
42 <div>{{ v.name }}
43 </div>
44 </el-col>
45 <el-col :lg="8" :md="12" :sm="12" :xs="24">
46 <div>{{ !v.discount ? '通票' : '优惠票' }}
47 </div>
48 </el-col>
49 <el-col :lg="8" :md="12" :sm="12" :xs="24">
50 {{
51 !v.discount ? paymentType != 3 ? ticketForm.extJson?.ticketDate.price : ticketForm.extJson?.ticketDate.priceEn : paymentType != 3 ? ticketForm.extJson?.ticketDate.rebatePrice : ticketForm.extJson?.ticketDate.rebatePriceEn
52 }}
53 {{ paymentType != 3 ? '¥' : '€' }}/张
54 </el-col>
55 </el-row>
56 <el-row style="width: 100%"> 30 <el-row style="width: 100%">
57 <el-col :lg="8" :md="12" :sm="12" :xs="24"> 31 <el-col :lg="8" :md="12" :sm="12" :xs="24">
58 <div>{{ 32 <div>购票数量:{{ ticketForm.num }}
59 language == 0 ? '购票数量' : 'Number of tickets purchased'
60 }}{{ ticketForm.num }}
61 </div> 33 </div>
62 </el-col> 34 </el-col>
63 <el-col :lg="8" :md="12" :sm="12" :xs="24">{{ 35 <el-col :lg="8" :md="12" :sm="12" :xs="24">联系方式:{{ ticketForm.phone }}
64 language == 0 ? '联系方式' : 'Contact Information'
65 }}{{ ticketForm.phone }}
66 </el-col> 36 </el-col>
67 <el-col :lg="8" :md="12" :sm="12" :xs="24"> 37 <el-col :lg="8" :md="12" :sm="12" :xs="24">
68 共计:{{ (totalMoney * 1).toFixed(2) }}{{ 38 共计:{{ (totalMoney*1).toFixed(2) }}{{
69 paymentType != 3 ? '¥' : '€' 39 paymentType == 1 ? '¥' : '€'
70 }} 40 }}
71 </el-col> 41 </el-col>
72 </el-row> 42 </el-row>
...@@ -74,8 +44,10 @@ ...@@ -74,8 +44,10 @@
74 </div> 44 </div>
75 <div class="leftboderTT">{{ language == 0 ? '开票信息' : 'Invoice information' }}</div> 45 <div class="leftboderTT">{{ language == 0 ? '开票信息' : 'Invoice information' }}</div>
76 <div class="border-rr mt20 pd20"> 46 <div class="border-rr mt20 pd20">
77 <el-form ref="formRef" :label-width="language == 0 ?'100':'150'" :model="form" :rules="rules" 47 <el-form
78 class="mw500"> 48 ref="formRef" :label-width="language == 0 ?'100':'150'" :model="form" :rules="rules"
49 class="mw500"
50 >
79 <el-form-item :label="'开票金额'"> 51 <el-form-item :label="'开票金额'">
80 <span class="bigprice">{{ paymentType != 3 ? '¥' : '€' }}{{ totalMoney }}</span> 52 <span class="bigprice">{{ paymentType != 3 ? '¥' : '€' }}{{ totalMoney }}</span>
81 </el-form-item> 53 </el-form-item>
...@@ -124,27 +96,27 @@ ...@@ -124,27 +96,27 @@
124 <el-button plain round type="primary" @click="backList">返回</el-button> 96 <el-button plain round type="primary" @click="backList">返回</el-button>
125 </div> 97 </div>
126 </el-card> 98 </el-card>
127 <div style="height: 60px;"></div> 99 <div style="height: 60px;" />
128 </div> 100 </div>
129 </div> 101 </div>
130 </template> 102 </template>
131 103
132 <script setup> 104 <script setup>
133 import {useRouter, useRoute} from "vue-router"; 105 import { useRouter, useRoute } from 'vue-router'
134 import {ref, onMounted} from "vue"; 106 import { ref, onMounted } from 'vue'
135 import {useStorage} from "@vueuse/core/index"; 107 import { useStorage } from '@vueuse/core/index'
136 import dayjs from 'dayjs' 108 import dayjs from 'dayjs'
137 import {ElMessage, ElMessageBox} from "element-plus"; 109 import { ElMessage, ElMessageBox } from 'element-plus'
138 import useUserStore from "@/store/modules/user"; 110 import useUserStore from '@/store/modules/user'
139 import {getCurrentInstance} from "@vue/runtime-core"; 111 import { getCurrentInstance } from '@vue/runtime-core'
140 import { 112 import {
141 getInvoiceDetail, 113 getInvoiceDetail,
142 getTicketOrderInfo, 114 getTicketOrderInfo,
143 getTicketInfoByActivityId 115 getTicketInfoByActivityId
144 } from "@/apiPc/booking"; 116 } from '@/apiPc/booking'
145 import {getOrderDetail} from "@/viewsPc/seat/api/index"; 117 import { getOrderDetail } from '@/viewsPc/seat/api/index'
146 118
147 const {proxy} = getCurrentInstance() 119 const { proxy } = getCurrentInstance()
148 120
149 const user = useUserStore().user 121 const user = useUserStore().user
150 const language = useStorage('language', 0) 122 const language = useStorage('language', 0)
...@@ -164,58 +136,57 @@ const invoiceId = ref() ...@@ -164,58 +136,57 @@ const invoiceId = ref()
164 136
165 const rules = ref({ 137 const rules = ref({
166 invoiceType: [ 138 invoiceType: [
167 {required: true, message: language.value == 0 ? '请选择发票类型' : 'Please select invoice type', trigger: 'change'} 139 { required: true, message: language.value == 0 ? '请选择发票类型' : 'Please select invoice type', trigger: 'change' }
168 ], 140 ],
169 invoiceEmail: [ 141 invoiceEmail: [
170 {required: true, message: language.value == 0 ? '请输入邮箱' : 'Please enter email', trigger: 'blur'} 142 { required: true, message: language.value == 0 ? '请输入邮箱' : 'Please enter email', trigger: 'blur' }
171 ], 143 ],
172 invoiceForm: [ 144 invoiceForm: [
173 {required: true, message: language.value == 0 ? '请选择发票形式' : 'Please select invoice form', trigger: 'change'} 145 { required: true, message: language.value == 0 ? '请选择发票形式' : 'Please select invoice form', trigger: 'change' }
174 ], 146 ],
175 invoiceTitle: [ 147 invoiceTitle: [
176 {required: true, message: language.value == 0 ? '请输入发票抬头' : 'Please enter invoice title', trigger: 'blur'} 148 { required: true, message: language.value == 0 ? '请输入发票抬头' : 'Please enter invoice title', trigger: 'blur' }
177 ], 149 ],
178 invoiceTfn: [ 150 invoiceTfn: [
179 {required: true, message: language.value == 0 ? '请输入税号' : 'Please enter TFN', trigger: 'blur'} 151 { required: true, message: language.value == 0 ? '请输入税号' : 'Please enter TFN', trigger: 'blur' }
180 ], 152 ],
181 invoiceAddress: [ 153 invoiceAddress: [
182 {required: true, message: language.value == 0 ? '请输入地址' : 'Please enter address', trigger: 'blur'} 154 { required: true, message: language.value == 0 ? '请输入地址' : 'Please enter address', trigger: 'blur' }
183 ], 155 ],
184 invoicePhone: [ 156 invoicePhone: [
185 {required: true, message: language.value == 0 ? '请输入电话' : 'Please enter phone', trigger: 'blur'} 157 { required: true, message: language.value == 0 ? '请输入电话' : 'Please enter phone', trigger: 'blur' }
186 ], 158 ],
187 invoiceBank: [ 159 invoiceBank: [
188 {required: true, message: language.value == 0 ? '请输入开户行' : 'Please enter bank', trigger: 'blur'} 160 { required: true, message: language.value == 0 ? '请输入开户行' : 'Please enter bank', trigger: 'blur' }
189 ], 161 ],
190 invoiceAccount: [ 162 invoiceAccount: [
191 {required: true, message: language.value == 0 ? '请输入账户' : 'Please enter account', trigger: 'blur'} 163 { required: true, message: language.value == 0 ? '请输入账户' : 'Please enter account', trigger: 'blur' }
192 ], 164 ]
193 }) 165 })
194 onMounted(() => { 166 onMounted(() => {
195 if (route.query.invoiceId) { 167 if (route.query.invoiceId) {
196 invoiceId.value = route.query.invoiceId 168 invoiceId.value = route.query.invoiceId
197 getList() 169 getList()
198 } 170 }
199 // 获取票务订单信息 171 // 获取票务订单信息
200 getTickInfo() 172 getTickInfo()
201 }) 173 })
202 174
203 175
204 // 票务订单详情 176 // 票务订单详情
205 async function getTickInfo() { 177 async function getTickInfo() {
206 const res = await getTicketOrderInfo({orderId: route.query.orderId}) 178 const res = await getTicketOrderInfo({ orderId: route.query.orderId })
207 ticketForm.value = res.data 179 ticketForm.value = res.data
208 try { 180 try {
209 ticketForm.value.extJson = JSON.parse(ticketForm.value.extJson) 181 ticketForm.value.extJson = JSON.parse(ticketForm.value.extJson)
210 ticketForm.value.extJson.ticketDate = JSON.parse(ticketForm.value.extJson.ticketDate) 182 // ticketForm.value.extJson.ticketDate = JSON.parse(ticketForm.value.extJson.ticketDate)
211 ticketForm.value.extJson.ticketType = JSON.parse(ticketForm.value.extJson.ticketType) 183 // ticketForm.value.extJson.ticketType = JSON.parse(ticketForm.value.extJson.ticketType)
212 cptId = ticketForm.value.extJson.ticketDate.activityId 184 cptId = ticketForm.value.activeId
213 totalMoney.val = ticketForm.value.extJson.total 185 totalMoney.value = ticketForm.value.paymentType != 3 ? ticketForm.value.total : ticketForm.value.totalEn
214 message.value = JSON.parse(ticketForm.value.extJson.message) 186 // message.value = JSON.parse(ticketForm.value.extJson.message)
215 paymentType.value = ticketForm.value.paymentType 187 paymentType.value = ticketForm.value.paymentType
216 totalMoney.value = paymentType.value == 3 ? ticketForm.value.totalEn : ticketForm.value.total 188 await getDetail(cptId)
217 await getDetail(ticketForm.value.extJson.ticketDate.activityId) 189 // console.log(ticketForm.value)
218 console.log(ticketForm.value)
219 } catch (e) { 190 } catch (e) {
220 console.log(e) 191 console.log(e)
221 } finally { 192 } finally {
...@@ -224,19 +195,19 @@ async function getTickInfo() { ...@@ -224,19 +195,19 @@ async function getTickInfo() {
224 } 195 }
225 196
226 async function getDetail(activeId) { 197 async function getDetail(activeId) {
227 const res = await getTicketInfoByActivityId({activityId: activeId}) 198 const res = await getTicketInfoByActivityId({ activityId: activeId })
228 matchForm.value = res.data 199 matchForm.value = res.data
229 console.log(matchForm.value) 200 console.log(matchForm.value)
230 } 201 }
231 202
232 async function getDataInfo() { 203 async function getDataInfo() {
233 const res = await getOrderDetail({orderSn: route.query.orderSn}) 204 const res = await getOrderDetail({ orderSn: route.query.orderSn })
234 formDate.value = res.data 205 formDate.value = res.data
235 } 206 }
236 207
237 function getList() { 208 function getList() {
238 getInvoiceDetail(invoiceId.value).then(res => { 209 getInvoiceDetail(invoiceId.value).then(res => {
239 form.value = res.data; 210 form.value = res.data
240 totalMoney.value = form.value.total 211 totalMoney.value = form.value.total
241 }) 212 })
242 } 213 }
......
...@@ -137,6 +137,7 @@ import { triggerLanguage } from '@/utils/ruoyi' ...@@ -137,6 +137,7 @@ import { triggerLanguage } from '@/utils/ruoyi'
137 import { useStorage } from '@vueuse/core/index' 137 import { useStorage } from '@vueuse/core/index'
138 import { useRoute, useRouter } from 'vue-router' 138 import { useRoute, useRouter } from 'vue-router'
139 import { getCurrentInstance } from '@vue/runtime-core' 139 import { getCurrentInstance } from '@vue/runtime-core'
140 import dayjs from 'dayjs'
140 141
141 const language = useStorage('language', 0) 142 const language = useStorage('language', 0)
142 const useStore = useUserStore() 143 const useStore = useUserStore()
...@@ -170,7 +171,9 @@ onMounted(() => { ...@@ -170,7 +171,9 @@ onMounted(() => {
170 async function getLogexScenicVoById() { 171 async function getLogexScenicVoById() {
171 const res = await booking.getLogexScenicVoById({ id: lasId.value }) 172 const res = await booking.getLogexScenicVoById({ id: lasId.value })
172 travel.value = res.data 173 travel.value = res.data
174 const nowDate = dayjs().format('YYYY-MM-DD')
173 selectForm.value.lasId = lasId.value 175 selectForm.value.lasId = lasId.value
176 travel.value.dateList = travel.value.dateList.filter(val => dayjs(val).format('YYYY-MM-DD') >= nowDate)
174 if (travel.value.dateList && travel.value.dateList.length > 0) { 177 if (travel.value.dateList && travel.value.dateList.length > 0) {
175 selectForm.value.scenicDate = travel.value.dateList[0] 178 selectForm.value.scenicDate = travel.value.dateList[0]
176 await getGateListByLasId() 179 await getGateListByLasId()
...@@ -183,6 +186,7 @@ async function getGateListByLasId() { ...@@ -183,6 +186,7 @@ async function getGateListByLasId() {
183 scenicDate: selectForm.value.scenicDate 186 scenicDate: selectForm.value.scenicDate
184 }) 187 })
185 ticketList.value = res.data 188 ticketList.value = res.data
189 console.log(33333, ticketList.value)
186 for (const v of ticketList.value) { 190 for (const v of ticketList.value) {
187 v.leftNum = v.num - v.orderCount 191 v.leftNum = v.num - v.orderCount
188 v.count = 0 192 v.count = 0
...@@ -230,6 +234,12 @@ async function toSelectSeat() { ...@@ -230,6 +234,12 @@ async function toSelectSeat() {
230 await proxy.$modal.confirm(language.value == 0 ? '请选择日期' : 'Please select a date') 234 await proxy.$modal.confirm(language.value == 0 ? '请选择日期' : 'Please select a date')
231 return 235 return
232 } 236 }
237
238 if (ticketList.value.length <= 0) {
239 await proxy.$modal.confirm(language.value == 0 ? `${selectForm.value.scenicDate}的票型已售完,请选择其它日期。` : `The ticket type for ${selectForm.value.scenicDate} is sold out. Please select another date.`)
240 return
241 }
242
233 if (!selectForm.value.price == '--' || selectForm.value.price == '--') { 243 if (!selectForm.value.price == '--' || selectForm.value.price == '--') {
234 await proxy.$modal.confirm(language.value == 0 ? '请选择购票数量' : 'Please select the number of tickets to purchase') 244 await proxy.$modal.confirm(language.value == 0 ? '请选择购票数量' : 'Please select the number of tickets to purchase')
235 return 245 return
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
14 <el-row :gutter="20" align="middle" class="hote "> 14 <el-row :gutter="20" align="middle" class="hote ">
15 <el-col :span="language == 0?16:24"> 15 <el-col :span="language == 0?16:24">
16 <h3 class="esp flex">{{ scenicItem?.name }} 16 <h3 class="esp flex">{{ scenicItem?.name }}
17 17
18 <!-- <el-tag class="ml20" effect="dark">{{ scenicItem?.rank || 0 }}A</el-tag>--> 18 <!-- <el-tag class="ml20" effect="dark">{{ scenicItem?.rank || 0 }}A</el-tag>-->
19 </h3> 19 </h3>
20 <div class="info"> 20 <div class="info">
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
33 <!-- ~ {{scenicItem?.workTime }}--> 33 <!-- ~ {{scenicItem?.workTime }}-->
34 </span> 34 </span>
35 </div> 35 </div>
36 36
37 <div class="info esp"> 37 <div class="info esp">
38 <el-icon> 38 <el-icon>
39 <MapLocation /> 39 <MapLocation />
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
45 </el-col> 45 </el-col>
46 </el-row> 46 </el-row>
47 </div> 47 </div>
48 48
49 <div class="leftboderTT">{{ language == 0 ? '预约信息' : 'Reservation information' }}</div> 49 <div class="leftboderTT">{{ language == 0 ? '预约信息' : 'Reservation information' }}</div>
50 <div class="border-rr mt20 pd20"> 50 <div class="border-rr mt20 pd20">
51 <el-form 51 <el-form
...@@ -120,21 +120,21 @@ ...@@ -120,21 +120,21 @@
120 </el-icon> 120 </el-icon>
121 </div> 121 </div>
122 </div> 122 </div>
123 123
124 <el-form-item :label="language==0?'联系人':'Contact'" prop="contacts"> 124 <el-form-item :label="language==0?'联系人':'Contact'" prop="contacts">
125 <el-input v-model="form.contacts" /> 125 <el-input v-model="form.contacts" />
126 </el-form-item> 126 </el-form-item>
127 <el-form-item :label="language==0?'联系电话':'Contact phone'" prop="phone" required> 127 <el-form-item :label="language==0?'联系电话':'Contact phone'" prop="phone" required>
128 <el-input v-model="form.phone" /> 128 <el-input v-model="form.phone" />
129 </el-form-item> 129 </el-form-item>
130 130
131 </el-form> 131 </el-form>
132 </div> 132 </div>
133 </el-col> 133 </el-col>
134 <el-col :span="10"> 134 <el-col :span="10">
135 <div class="leftboderTT">{{ language == 0 ? '订单明细' : 'Order details' }}</div> 135 <div class="leftboderTT">{{ language == 0 ? '订单明细' : 'Order details' }}</div>
136 <div class="border-rr mt20 pd20 ccitemBox"> 136 <div class="border-rr mt20 pd20 ccitemBox">
137 137
138 <div v-for="(c, index) in gateList" v-show="c.count>0" :key="index" class="ccitem"> 138 <div v-for="(c, index) in gateList" v-show="c.count>0" :key="index" class="ccitem">
139 {{ c.name }} 139 {{ c.name }}
140 <span v-if="language==0"> 140 <span v-if="language==0">
...@@ -143,18 +143,18 @@ ...@@ -143,18 +143,18 @@
143 <span v-else>{{ c.count }} * {{ '€' }} {{ c.priceEn }} 143 <span v-else>{{ c.count }} * {{ '€' }} {{ c.priceEn }}
144 </span> 144 </span>
145 </div> 145 </div>
146 146
147 <label>{{ language == 0 ? '共计' : 'Total' }} 147 <label>{{ language == 0 ? '共计' : 'Total' }}
148 <span class="fr bigMoney"> 148 <span class="fr bigMoney">
149 {{ language == 0 ? '¥' : '€' }} {{ money }} 149 {{ language == 0 ? '¥' : '€' }} {{ money }}
150 </span> 150 </span>
151 </label> 151 </label>
152 152
153 </div> 153 </div>
154 </el-col> 154 </el-col>
155 </el-row> 155 </el-row>
156 </el-card> 156 </el-card>
157 157
158 <el-card class="mt30"> 158 <el-card class="mt30">
159 <el-row align="middle" justify="space-between"> 159 <el-row align="middle" justify="space-between">
160 <el-col :span="12"> 160 <el-col :span="12">
...@@ -176,7 +176,7 @@ ...@@ -176,7 +176,7 @@
176 </el-card> 176 </el-card>
177 <div style="height: 60px;" /> 177 <div style="height: 60px;" />
178 </div> 178 </div>
179 179
180 <choose-person ref="choosePersonRef" @add-person="addPerson" /> 180 <choose-person ref="choosePersonRef" @add-person="addPerson" />
181 </div> 181 </div>
182 </template> 182 </template>
...@@ -319,7 +319,7 @@ function getCountInfo() { ...@@ -319,7 +319,7 @@ function getCountInfo() {
319 319
320 function changeNum(e) { 320 function changeNum(e) {
321 checkPersonNum() 321 checkPersonNum()
322 322
323 if (e.personArr.length < e.count) { 323 if (e.personArr.length < e.count) {
324 e.personArr.push({ 324 e.personArr.push({
325 customerId: '', 325 customerId: '',
...@@ -330,7 +330,7 @@ function changeNum(e) { ...@@ -330,7 +330,7 @@ function changeNum(e) {
330 } else if (e.personArr.length > e.count) { 330 } else if (e.personArr.length > e.count) {
331 e.personArr.splice(e.count) 331 e.personArr.splice(e.count)
332 } 332 }
333 333
334 countMoney() 334 countMoney()
335 } 335 }
336 336
...@@ -343,8 +343,8 @@ const showAddPerson = (item, index, person) => { ...@@ -343,8 +343,8 @@ const showAddPerson = (item, index, person) => {
343 } 343 }
344 }) 344 })
345 }) 345 })
346 346
347 347
348 choosePersonRef.value.open({ 348 choosePersonRef.value.open({
349 gateId: item.id, 349 gateId: item.id,
350 gateType: item.gateType, 350 gateType: item.gateType,
...@@ -361,13 +361,13 @@ const addPerson = (item) => { ...@@ -361,13 +361,13 @@ const addPerson = (item) => {
361 idcType: item.idcType, 361 idcType: item.idcType,
362 idCard: item.idCard 362 idCard: item.idCard
363 } 363 }
364 364
365 checkPersonNum() 365 checkPersonNum()
366 } 366 }
367 const delPerson = (item, index) => { 367 const delPerson = (item, index) => {
368 item.personArr.splice(index, 1) 368 item.personArr.splice(index, 1)
369 item.count-- 369 item.count--
370 370
371 checkPersonNum() 371 checkPersonNum()
372 countMoney() 372 countMoney()
373 } 373 }
...@@ -399,7 +399,7 @@ function submit() { ...@@ -399,7 +399,7 @@ function submit() {
399 ElMessage.warning(language.value == 0 ? '出行人数与票数不匹配' : 'The number of people travelling does not match the number of rooms') 399 ElMessage.warning(language.value == 0 ? '出行人数与票数不匹配' : 'The number of people travelling does not match the number of rooms')
400 return 400 return
401 } 401 }
402 402
403 // 提交确认 403 // 提交确认
404 ElMessageBox.confirm(language.value == 0 ? '确认提交订单吗?' : 'Confirm to submit the order?', { 404 ElMessageBox.confirm(language.value == 0 ? '确认提交订单吗?' : 'Confirm to submit the order?', {
405 confirmButtonText: language.value == 0 ? '确定' : 'Confirm', 405 confirmButtonText: language.value == 0 ? '确定' : 'Confirm',
...@@ -410,7 +410,7 @@ function submit() { ...@@ -410,7 +410,7 @@ function submit() {
410 form.value.asId = route.query.lasId 410 form.value.asId = route.query.lasId
411 form.value.orderName = scenicItem.value.name 411 form.value.orderName = scenicItem.value.name
412 form.value.dcStart = rzRange.value 412 form.value.dcStart = rzRange.value
413 413
414 const personArr = [] 414 const personArr = []
415 _.each(gateList.value, (item) => { 415 _.each(gateList.value, (item) => {
416 if (item.count > 0) { 416 if (item.count > 0) {
...@@ -433,7 +433,7 @@ function submit() { ...@@ -433,7 +433,7 @@ function submit() {
433 } 433 }
434 }) 434 })
435 form.value.touristList = personArr 435 form.value.touristList = personArr
436 436
437 submitOrderScenic(form.value).then(res => { 437 submitOrderScenic(form.value).then(res => {
438 if (res.data) { 438 if (res.data) {
439 if (res.data.orderId == -400) { 439 if (res.data.orderId == -400) {
...@@ -495,12 +495,12 @@ function handleGo() { ...@@ -495,12 +495,12 @@ function handleGo() {
495 495
496 .ccitemBox { 496 .ccitemBox {
497 overflow: auto; 497 overflow: auto;
498 498
499 label { 499 label {
500 margin: 10px 0; 500 margin: 10px 0;
501 display: block; 501 display: block;
502 min-height: 30px; 502 min-height: 30px;
503 503
504 span { 504 span {
505 color: #FF8124; 505 color: #FF8124;
506 font-family: DIN Alternate; 506 font-family: DIN Alternate;
...@@ -515,12 +515,12 @@ function handleGo() { ...@@ -515,12 +515,12 @@ function handleGo() {
515 font-size: 15px; 515 font-size: 15px;
516 color: #666; 516 color: #666;
517 margin: 5px 0 10px; 517 margin: 5px 0 10px;
518 518
519 label { 519 label {
520 font-size: 16px; 520 font-size: 16px;
521 color: #000; 521 color: #000;
522 } 522 }
523 523
524 span { 524 span {
525 font-size: 13px; 525 font-size: 13px;
526 } 526 }
...@@ -533,7 +533,7 @@ function handleGo() { ...@@ -533,7 +533,7 @@ function handleGo() {
533 .fakeFormItem { 533 .fakeFormItem {
534 display: flex; 534 display: flex;
535 padding: 10px 0; 535 padding: 10px 0;
536 536
537 label { 537 label {
538 height: 32px; 538 height: 32px;
539 font-size: var(--el-form-label-font-size); 539 font-size: var(--el-form-label-font-size);
...@@ -559,11 +559,11 @@ function handleGo() { ...@@ -559,11 +559,11 @@ function handleGo() {
559 .personIt { 559 .personIt {
560 display: flex; 560 display: flex;
561 align-items: center; 561 align-items: center;
562 562
563 .mation { 563 .mation {
564 width: 200px; 564 width: 200px;
565 font-size: 12px; 565 font-size: 12px;
566 566
567 div { 567 div {
568 font-size: 14px; 568 font-size: 14px;
569 } 569 }
...@@ -572,7 +572,7 @@ function handleGo() { ...@@ -572,7 +572,7 @@ function handleGo() {
572 572
573 .father { 573 .father {
574 position: relative; 574 position: relative;
575 575
576 } 576 }
577 577
578 .son { 578 .son {
......
...@@ -86,10 +86,10 @@ ...@@ -86,10 +86,10 @@
86 <el-col :lg="9" :md="12" :sm="12" :xs="24"> 86 <el-col :lg="9" :md="12" :sm="12" :xs="24">
87 <h3 class="m0">{{ b.name }}</h3> 87 <h3 class="m0">{{ b.name }}</h3>
88 <p> {{ language == 0 ? "时间" : "Event Date & Time" }}{{ 88 <p> {{ language == 0 ? "时间" : "Event Date & Time" }}{{
89 b.messageObj.ticketDate.name 89 b.messageObj.atName
90 }}</p> 90 }}</p>
91 <p class="common"> 91 <p class="common">
92 {{ language == 0 ? "张数" : "Location" }}{{ b.messageObj.num }}{{ language == 0 ? "张" : "tickets" }} 92 {{ language == 0 ? "张数" : "Location" }}{{ b.messageObj.orderCustomerList.length }}{{ language == 0 ? "张" : "tickets" }}
93 </p> 93 </p>
94 </el-col> 94 </el-col>
95 <el-col :lg="3" :md="6" :sm="6" :xs="6" class="text-center"> 95 <el-col :lg="3" :md="6" :sm="6" :xs="6" class="text-center">
...@@ -336,8 +336,6 @@ const getList = () => { ...@@ -336,8 +336,6 @@ const getList = () => {
336 list.value = res.rows 336 list.value = res.rows
337 for (const b of list.value) { 337 for (const b of list.value) {
338 b.messageObj = JSON.parse(b.extJson) 338 b.messageObj = JSON.parse(b.extJson)
339 b.messageObj.ticketDate = JSON.parse(b.messageObj.ticketDate)
340 b.messageObj.ticketType = JSON.parse(b.messageObj.ticketType)
341 } 339 }
342 loading.value = false 340 loading.value = false
343 console.log(list.value) 341 console.log(list.value)
......
...@@ -109,7 +109,7 @@ watch(matchId, (val) => { ...@@ -109,7 +109,7 @@ watch(matchId, (val) => {
109 }) 109 })
110 110
111 onMounted(() => { 111 onMounted(() => {
112 112
113 }) 113 })
114 114
115 function building() { 115 function building() {
...@@ -126,7 +126,7 @@ function popRemark(type) { ...@@ -126,7 +126,7 @@ function popRemark(type) {
126 (form.value.isFoodView == 0 && type == '3') || 126 (form.value.isFoodView == 0 && type == '3') ||
127 (form.value.isMealView == 0 && type == '4') || 127 (form.value.isMealView == 0 && type == '4') ||
128 (form.value.isPhotoView == 0 && type == '5') || 128 (form.value.isPhotoView == 0 && type == '5') ||
129 (form.value.isTicket == 0 && type == '0') || 129 (form.value.isTicketView == 0 && type == '0') ||
130 (form.value.isScenicView == 0 && type == '8') 130 (form.value.isScenicView == 0 && type == '8')
131 ) { 131 ) {
132 building() 132 building()
...@@ -186,7 +186,7 @@ function goBooking(n) { ...@@ -186,7 +186,7 @@ function goBooking(n) {
186 186
187 .itemBox_en { 187 .itemBox_en {
188 padding: 20px 40px; 188 padding: 20px 40px;
189 189
190 p { 190 p {
191 margin: 0; 191 margin: 0;
192 height: 40px; 192 height: 40px;
...@@ -205,7 +205,7 @@ function goBooking(n) { ...@@ -205,7 +205,7 @@ function goBooking(n) {
205 background: url("@/assets/dance/btn_bg.png") no-repeat left #FFFFFF; 205 background: url("@/assets/dance/btn_bg.png") no-repeat left #FFFFFF;
206 background-size: 100% 100%; 206 background-size: 100% 100%;
207 border-radius: 15px; 207 border-radius: 15px;
208 208
209 img { 209 img {
210 margin: 0 5%; 210 margin: 0 5%;
211 } 211 }
...@@ -226,20 +226,20 @@ function goBooking(n) { ...@@ -226,20 +226,20 @@ function goBooking(n) {
226 background-size: cover; 226 background-size: cover;
227 position: relative; 227 position: relative;
228 border-radius: 15px; 228 border-radius: 15px;
229 229
230 img { 230 img {
231 position: absolute; 231 position: absolute;
232 top: -30px; 232 top: -30px;
233 transition: all 0.2s; 233 transition: all 0.2s;
234 } 234 }
235 235
236 &:hover { 236 &:hover {
237 box-shadow: 0 0 10px #333; 237 box-shadow: 0 0 10px #333;
238 238
239 img { 239 img {
240 transform: rotateY(180deg); 240 transform: rotateY(180deg);
241 } 241 }
242 242
243 p { 243 p {
244 color: #000; 244 color: #000;
245 } 245 }
...@@ -252,7 +252,7 @@ function goBooking(n) { ...@@ -252,7 +252,7 @@ function goBooking(n) {
252 } 252 }
253 .item { 253 .item {
254 font-size: 16px; 254 font-size: 16px;
255 255
256 img { 256 img {
257 width: 50px; 257 width: 50px;
258 height: 50px 258 height: 50px
......
1 <template> 1 <template>
2 <el-dialog 2 <el-dialog
3 v-model="show" :close-on-click-modal="false" :title="language==0?'背号查询':'Competition Number'" append-to-body 3 v-model="show" :close-on-click-modal="false" :title="language==0?'背号查询':'Competition Number'" append-to-body
4 center class="pcloginpop" 4 center class="pcloginpop"
5 close-icon="CircleClose" destroy-on-close 5 close-icon="CircleClose" destroy-on-close
6 width="460px" 6 width="460px"
7 > 7 >
8 <div style="min-height: 300px" v-loading="loading"> 8 <div v-loading="loading" style="min-height: 300px">
9 9
10 <div v-if="!type||type==''"> 10 <div v-if="!type||type==''">
11 <div @click="type='0'" class="rItem">{{ language == 0 ? '个人查询' : 'Personal Query' }}</div> 11 <div class="rItem" @click="type='0'">{{ language == 0 ? '个人查询' : 'Personal Query' }}</div>
12 <div @click="type='1'" class="rItem">{{ language == 0 ? '团队查询' : 'Team Query' }}</div> 12 <div class="rItem" @click="type='1'">{{ language == 0 ? '团队查询' : 'Team Query' }}</div>
13 </div> 13 </div>
14 14
15 <div v-if="type=='0'"> 15 <div v-if="type=='0'">
16 <div class="flex mt30"> 16 <div class="flex mt30">
17 <el-input :placeholder="language==0?'输入会员号 / 姓名查询':'Enter WDSF MIN / Name to Query'" v-model="query" 17 <el-input
18 clearable 18 v-model="query" :placeholder="language==0?'输入会员号 / 姓名查询':'Enter WDSF MIN / Name to Query'"
19 @enter="search" @blur="search" @empty="search"/> 19 clearable
20 <el-button @click="search" class="btn-lineG" style="color: #fff">{{ 20 @blur="search" @empty="search" @enter="search"
21 language == 0 ? '查询' : 'Search' 21 />
22 }} 22 <el-button class="btn-lineG" style="color: #fff" @click="search">{{
23 language == 0 ? '查询' : 'Search'
24 }}
23 </el-button> 25 </el-button>
24 </div> 26 </div>
25 27
26 <div v-if="list.length>0"> 28 <div v-if="list.length>0">
27 <div class="nowteamItem" v-for="(form, index) in list" :key="index"> 29 <div v-for="(form, index) in list" :key="index" class="nowteamItem">
28 <div class="info"> 30 <div class="info">
29 <div class="nowName text-center"> 31 <div class="nowName text-center">
30 <span class="text-primary">{{ form.number }}</span> 32 <span class="text-primary">{{ form.number }}</span>
...@@ -48,36 +50,38 @@ ...@@ -48,36 +50,38 @@
48 </div> 50 </div>
49 </div> 51 </div>
50 <div v-else> 52 <div v-else>
51 <el-empty/> 53 <el-empty />
52 </div> 54 </div>
53 </div> 55 </div>
54 <div v-if="type=='1'"> 56 <div v-if="type=='1'">
55 <div class="flex mt20"> 57 <div class="flex mt20">
56 <el-input 58 <el-input
57 :placeholder="language==0?'请输入代表队名称至少两字符':'Enter the representing team name,At least two characters'" 59 v-model="query2"
58 v-model="query2" clearable 60 :placeholder="language==0?'请输入代表队名称至少两字符':'Enter the representing team name,At least two characters'"
59 @enter="searchTeam" @blur="searchTeam" @empty="searchTeam"/> 61 clearable
60 <el-button @click="searchTeam" class="btn-lineG" style="color: #fff"> 62 @blur="searchTeam" @empty="searchTeam" @enter="searchTeam"
63 />
64 <el-button class="btn-lineG" style="color: #fff" @click="searchTeam">
61 {{ language == 0 ? '查询' : 'Search' }} 65 {{ language == 0 ? '查询' : 'Search' }}
62 </el-button> 66 </el-button>
63 </div> 67 </div>
64 <span class="tip">*{{ language == 0 ? '模糊查询' : 'Fuzzy query' }}</span> 68 <span class="tip">*{{ language == 0 ? '模糊查询' : 'Fuzzy query' }}</span>
65 <div class="text-danger text-center" v-if="showGroupList"> 69 <div v-if="showGroupList" class="text-danger text-center">
66 {{ language == 0 ? '找到多个团体' : 'Found multiple teams' }} 70 {{ language == 0 ? '找到多个团体' : 'Found multiple teams' }}
67 </div> 71 </div>
68 <div class="groupList" v-if="showGroupList"> 72 <div v-if="showGroupList" class="groupList">
69 <ul> 73 <ul>
70 <li v-for="(item, index) in groupList" @click="showDetail(item)" :key="index">{{ item }} 74 <li v-for="(item, index) in groupList" :key="index" @click="showDetail(item)">{{ item }}
71 <el-icon class="fr"> 75 <el-icon class="fr">
72 <ArrowRight/> 76 <ArrowRight />
73 </el-icon> 77 </el-icon>
74 </li> 78 </li>
75 </ul> 79 </ul>
76 </div> 80 </div>
77 <div v-if="teamlist.length>0" class="temell mt20"> 81 <div v-if="teamlist.length>0" class="temell mt20">
78 <el-collapse v-model="activeNames" accordion> 82 <el-collapse v-model="activeNames" accordion>
79 <el-collapse-item :name="index" :title="team[0][0].groupName" v-for="(team,index) in teamlist" :key="index"> 83 <el-collapse-item v-for="(team,index) in teamlist" :key="index" :name="index" :title="team[0][0].groupName">
80 <div class="nowteamItem" v-for="(p,jndex) in team" :key="jndex"> 84 <div v-for="(p,jndex) in team" :key="jndex" class="nowteamItem">
81 <div class="fontSize14 text-bold">{{ p[0].zuInfo }}</div> 85 <div class="fontSize14 text-bold">{{ p[0].zuInfo }}</div>
82 <div v-for="f in p" :key="f.id"> 86 <div v-for="f in p" :key="f.id">
83 <span class="nowName text-primary">{{ f.number }}</span> 87 <span class="nowName text-primary">{{ f.number }}</span>
...@@ -94,10 +98,10 @@ ...@@ -94,10 +98,10 @@
94 </template> 98 </template>
95 99
96 <script setup> 100 <script setup>
97 import {ref} from "vue"; 101 import { ref } from 'vue'
98 import {ElMessage} from "element-plus"; 102 import { ElMessage } from 'element-plus'
99 import {getBackNumber, getTeamBackNumber, getTeamBackNumberPre} from "@/apiPc/common"; 103 import { getBackNumber, getTeamBackNumber, getTeamBackNumberPre } from '@/apiPc/common'
100 import {useStorage} from "@vueuse/core/index"; 104 import { useStorage } from '@vueuse/core/index'
101 105
102 const language = useStorage('language', 0) 106 const language = useStorage('language', 0)
103 const show = ref(false) 107 const show = ref(false)
...@@ -109,23 +113,24 @@ const teamlist = ref([]) ...@@ -109,23 +113,24 @@ const teamlist = ref([])
109 const query = ref('') 113 const query = ref('')
110 const query2 = ref('') 114 const query2 = ref('')
111 const type = ref('') 115 const type = ref('')
116 const cptId = ref('')
112 const activeNames = ref(0) 117 const activeNames = ref(0)
113 const showGroupList = ref(false) 118 const showGroupList = ref(false)
119
114 const search = () => { 120 const search = () => {
115 if (!query.value) { 121 if (!query.value) {
116 ElMessage.warning(language.value == 0 ? '请输入会员号/姓名' : 'Please enter WDSF MIN / Name') 122 ElMessage.warning(language.value == 0 ? '请输入会员号/姓名' : 'Please enter WDSF MIN / Name')
117 return 123 return
118 } 124 }
119 getBackNumber({query: query.value}).then(res => { 125 getBackNumber({ query: query.value, cptId: cptId.value }).then(res => {
120 if (!res.data || res.data.length == 0) { 126 if (!res.data || res.data.length == 0) {
121 list.value = [] 127 list.value = []
122 //提示 '未找到结果,请重新查询' 128 // 提示 '未找到结果,请重新查询'
123 ElMessage.warning(language.value == 0 ? '未找到结果,请重新查询' : 'No result') 129 ElMessage.warning(language.value == 0 ? '未找到结果,请重新查询' : 'No result')
124 return 130 return
125 } 131 }
126 list.value = res.data 132 list.value = res.data
127 }) 133 })
128
129 } 134 }
130 const searchTeam = () => { 135 const searchTeam = () => {
131 teamlist.value = [] 136 teamlist.value = []
...@@ -134,11 +139,11 @@ const searchTeam = () => { ...@@ -134,11 +139,11 @@ const searchTeam = () => {
134 return 139 return
135 } 140 }
136 loading.value = true 141 loading.value = true
137 getTeamBackNumberPre({query: query2.value}).then(res => { 142 getTeamBackNumberPre({ query: query2.value, cptId: cptId.value }).then(res => {
138 loading.value = false 143 loading.value = false
139 if (!res.data || res.data.length == 0) { 144 if (!res.data || res.data.length == 0) {
140 groupList.value = [] 145 groupList.value = []
141 //提示 '未找到结果,请重新查询' 146 // 提示 '未找到结果,请重新查询'
142 ElMessage.warning(language.value == 0 ? '未找到结果,请重新查询' : 'No result') 147 ElMessage.warning(language.value == 0 ? '未找到结果,请重新查询' : 'No result')
143 return 148 return
144 } 149 }
...@@ -149,10 +154,12 @@ const searchTeam = () => { ...@@ -149,10 +154,12 @@ const searchTeam = () => {
149 if (groupList.value.length > 1) { 154 if (groupList.value.length > 1) {
150 showGroupList.value = true 155 showGroupList.value = true
151 } 156 }
152
153 }) 157 })
154 } 158 }
159
155 const open = (param) => { 160 const open = (param) => {
161 console.log(param)
162 cptId.value = param.cptId
156 show.value = true 163 show.value = true
157 list.value = [] 164 list.value = []
158 teamlist.value = [] 165 teamlist.value = []
...@@ -168,14 +175,14 @@ function showDetail(name) { ...@@ -168,14 +175,14 @@ function showDetail(name) {
168 query2.value = name 175 query2.value = name
169 showGroupList.value = false 176 showGroupList.value = false
170 loading.value = true 177 loading.value = true
171 getTeamBackNumber({query: name}).then(res => { 178 getTeamBackNumber({ query: name, cptId: cptId.value }).then(res => {
172 loading.value = false 179 loading.value = false
173 teamlist.value = res.data 180 teamlist.value = res.data
174 }) 181 })
175 } 182 }
176 </script> 183 </script>
177 184
178 <style scoped lang="scss"> 185 <style lang="scss" scoped>
179 .tip { 186 .tip {
180 font-size: 12px; 187 font-size: 12px;
181 margin: 4px 0 0; 188 margin: 4px 0 0;
...@@ -195,7 +202,7 @@ function showDetail(name) { ...@@ -195,7 +202,7 @@ function showDetail(name) {
195 color: #fff; 202 color: #fff;
196 margin: 20px auto; 203 margin: 20px auto;
197 background: linear-gradient(90deg, #8623FC, #453DEA); 204 background: linear-gradient(90deg, #8623FC, #453DEA);
198 205
199 &:hover { 206 &:hover {
200 background: linear-gradient(90deg, #453DEA, #8623FC); 207 background: linear-gradient(90deg, #453DEA, #8623FC);
201 box-shadow: 0 4px 10px #453DEA; 208 box-shadow: 0 4px 10px #453DEA;
...@@ -212,7 +219,7 @@ function showDetail(name) { ...@@ -212,7 +219,7 @@ function showDetail(name) {
212 padding: 0 0 20px; 219 padding: 0 0 20px;
213 background: #FFFFFF; 220 background: #FFFFFF;
214 box-sizing: border-box; 221 box-sizing: border-box;
215 222
216 .info { 223 .info {
217 .nowName { 224 .nowName {
218 font-family: "DIN Alternate"; 225 font-family: "DIN Alternate";
...@@ -222,13 +229,13 @@ function showDetail(name) { ...@@ -222,13 +229,13 @@ function showDetail(name) {
222 display: block; 229 display: block;
223 margin: 10px; 230 margin: 10px;
224 } 231 }
225 232
226 label { 233 label {
227 text-align: right; 234 text-align: right;
228 font-size: 14px; 235 font-size: 14px;
229 padding-left: 7% 236 padding-left: 7%
230 } 237 }
231 238
232 div { 239 div {
233 font-size: 14px; 240 font-size: 14px;
234 color: #333; 241 color: #333;
...@@ -241,17 +248,17 @@ function showDetail(name) { ...@@ -241,17 +248,17 @@ function showDetail(name) {
241 .nowteamItem { 248 .nowteamItem {
242 padding: 10px; 249 padding: 10px;
243 margin: 0 0 10px; 250 margin: 0 0 10px;
244 251
245 .nowName { 252 .nowName {
246 font-size: 15px; 253 font-size: 15px;
247 font-weight: bold; 254 font-weight: bold;
248 margin-right: 10px 255 margin-right: 10px
249 } 256 }
250 257
251 .text-bold { 258 .text-bold {
252 font-weight: bold; 259 font-weight: bold;
253 } 260 }
254 261
255 .fontsize14 { 262 .fontsize14 {
256 font-size: 14px; 263 font-size: 14px;
257 } 264 }
...@@ -263,7 +270,7 @@ function showDetail(name) { ...@@ -263,7 +270,7 @@ function showDetail(name) {
263 overflow: auto; 270 overflow: auto;
264 border: 1px solid #e1e1e1; 271 border: 1px solid #e1e1e1;
265 margin-top: 10px; 272 margin-top: 10px;
266 273
267 li { 274 li {
268 padding: 10px; 275 padding: 10px;
269 border-bottom: 1px solid #e1e1e1; 276 border-bottom: 1px solid #e1e1e1;
......
1 <template> 1 <template>
2 <el-dialog 2 <el-dialog
3 v-model="show" :close-on-click-modal="false" :title="language==0?'日程查询':'Schedule inquiry'" append-to-body 3 v-model="show" :close-on-click-modal="false" :title="language==0?'日程查询':'Schedule inquiry'" append-to-body
4 center class="pcloginpop" 4 center class="pcloginpop"
5 close-icon="CircleClose" destroy-on-close 5 close-icon="CircleClose" destroy-on-close
6 width="460px" 6 width="460px"
7 > 7 >
8 <div style="min-height: 300px" v-loading="loading"> 8 <div v-loading="loading" style="min-height: 300px">
9 9
10 <div v-if="!type||type==''"> 10 <div v-if="!type||type==''">
11 <div @click="type='0'" class="rItem">{{ language==0?'按项目查询':'Query by project' }}</div> 11 <div class="rItem" @click="type='0'">{{ language == 0 ? '按项目查询' : 'Query by project' }}</div>
12 <div @click="type='1'" class="rItem">{{ language==0?'按团队查询':'Query by team' }}</div> 12 <div class="rItem" @click="type='1'">{{ language == 0 ? '按团队查询' : 'Query by team' }}</div>
13 <div @click="type='2'" class="rItem">{{ language==0?'按姓名查询':'Query by name' }}</div> 13 <div class="rItem" @click="type='2'">{{ language == 0 ? '按姓名查询' : 'Query by name' }}</div>
14 </div> 14 </div>
15 15
16 <div v-if="type=='0'"> 16 <div v-if="type=='0'">
17 <div class="flex mt30"> 17 <div class="flex mt30">
18 <el-input :placeholder="language==0?'输入项目/ 项目编号查询':'Enter project name or code to Query'" v-model="query" clearable 18 <el-input
19 @enter="search" @blur="search" @empty="search"/> 19 v-model="query"
20 <el-button @click="search" class="btn-lineG" style="color: #fff">{{ 20 :placeholder="language==0?'输入项目/ 项目编号查询':'Enter project name or code to Query'" clearable
21 language == 0 ? '查询' : 'Search' 21 @blur="search" @empty="search" @enter="search"
22 }} 22 />
23 <el-button class="btn-lineG" style="color: #fff" @click="search">{{
24 language == 0 ? '查询' : 'Search'
25 }}
23 </el-button> 26 </el-button>
24 </div> 27 </div>
25 28
26 <div v-if="list.length>0" class="mt30"> 29 <div v-if="list.length>0" class="mt30">
27 <el-timeline> 30 <el-timeline>
28 <el-timeline-item placement="top" 31 <el-timeline-item
29 v-for="(form, index) in list" :key="index" 32 v-for="(form, index) in list"
30 :timestamp="form.date + ' ' + form.timeStr" 33 :key="index" :timestamp="form.date + ' ' + form.timeStr"
34 placement="top"
31 > 35 >
32 <div class="text-primary"> 36 <div class="text-primary">
33 <span v-if="language==1&&form.projectNameEn">{{ form.projectNameEn }}</span> 37 <span v-if="language==1&&form.projectNameEn">{{ form.projectNameEn }}</span>
34 <span v-else-if="form.projectName">{{ form.projectName }}</span> 38 <span v-else-if="form.projectName">{{ form.projectName }}</span>
35 <span class="fr">{{form.changCi}} <i v-if="form.changCi">/ </i> {{language==0?form.lun:form.lunEn}} </span> 39 <span class="fr">{{ form.changCi }} <i
40 v-if="form.changCi"
41 >/ </i> {{ language == 0 ? form.lun : form.lunEn }} </span>
36 </div> 42 </div>
37 <div>{{form.danceType}}</div> 43 <div>{{ form.danceType }}</div>
38 <div>{{form.address}}</div> 44 <div>{{ form.address }}</div>
39 </el-timeline-item> 45 </el-timeline-item>
40 </el-timeline> 46 </el-timeline>
41 </div> 47 </div>
42 <div v-else> 48 <div v-else>
43 <el-empty/> 49 <el-empty />
44 </div> 50 </div>
45 </div> 51 </div>
46 <div v-if="type=='1'"> 52 <div v-if="type=='1'">
47 <div class="flex mt20"> 53 <div class="flex mt20">
48 <el-input :placeholder="language==0?'请输入代表队名称至少两字符':'Enter the representing team name,At least two characters'" 54 <el-input
49 v-model="query2" clearable 55 v-model="query2"
50 @enter="searchTeam" @blur="searchTeam" @empty="searchTeam"/> 56 :placeholder="language==0?'请输入代表队名称至少两字符':'Enter the representing team name,At least two characters'"
51 <el-button @click="searchTeam" class="btn-lineG" style="color: #fff"> 57 clearable
52 {{language == 0 ? '查询' : 'Search' }} 58 @blur="searchTeam" @empty="searchTeam" @enter="searchTeam"
59 />
60 <el-button class="btn-lineG" style="color: #fff" @click="searchTeam">
61 {{ language == 0 ? '查询' : 'Search' }}
53 </el-button> 62 </el-button>
54 </div> 63 </div>
55 <span class="tip">*{{ language == 0 ?'模糊查询':'Fuzzy query' }}</span> 64 <span class="tip">*{{ language == 0 ? '模糊查询' : 'Fuzzy query' }}</span>
56 <div class="text-danger text-center" v-if="showGroupList">{{ language == 0 ?'找到多个团体':'Found multiple teams' }}</div> 65 <div v-if="showGroupList" class="text-danger text-center">
57 <div class="groupList" v-if="showGroupList"> 66 {{ language == 0 ? '找到多个团体' : 'Found multiple teams' }}
67 </div>
68 <div v-if="showGroupList" class="groupList">
58 <ul> 69 <ul>
59 <li v-for="(item, index) in groupList" @click="showDetail(item)" :key="index">{{item}} 70 <li v-for="(item, index) in groupList" :key="index" @click="showDetail(item)">{{ item }}
60 <el-icon class="fr"><ArrowRight /></el-icon> 71 <el-icon class="fr">
72 <ArrowRight />
73 </el-icon>
61 </li> 74 </li>
62 </ul> 75 </ul>
63 </div> 76 </div>
64 <div v-if="teamlist.length>0" class="temell mt20"> 77 <div v-if="teamlist.length>0" class="temell mt20">
65 <el-collapse accordion> 78 <el-collapse accordion>
66 <el-collapse-item :name="index" :title="team[0].title" v-for="(team,index) in teamlist" :key="index"> 79 <el-collapse-item v-for="(team,index) in teamlist" :key="index" :name="index" :title="team[0].title">
67 <el-timeline> 80 <el-timeline>
68 <el-timeline-item placement="top" v-for="(form, index) in team" :key="index"> 81 <el-timeline-item v-for="(form, index) in team" :key="index" placement="top">
69 82
70 <div class="text-primary" style="position: relative;top:-15px"> 83 <div class="text-primary" style="position: relative;top:-15px">
71 {{ form.date + ' ' + form.timeStr + ' / '+form.address }} 84 {{ form.date + ' ' + form.timeStr + ' / ' + form.address }}
72 <span v-if="form.lunEn"> / {{ form.lunEn }}</span> 85 <span v-if="form.lunEn"> / {{ form.lunEn }}</span>
73 <span v-else-if="form.lun"> / {{ form.lun }}</span> 86 <span v-else-if="form.lun"> / {{ form.lun }}</span>
74 <span v-if="form.changCi "> / {{ language==0?'场次':'Session' }}{{ form.changCi }}</span> 87 <span v-if="form.changCi "> / {{ language == 0 ? '场次' : 'Session' }}{{ form.changCi }}</span>
75 </div> 88 </div>
76 <div class="tname" v-if="form.projectNameEn">{{ form.projectNameEn}}</div> 89 <div v-if="form.projectNameEn" class="tname">{{ form.projectNameEn }}</div>
77 <div class="tname" v-if="form.projectName">{{ form.projectName }}</div> 90 <div v-if="form.projectName" class="tname">{{ form.projectName }}</div>
78 <div>{{form.danceType}}</div> 91 <div>{{ form.danceType }}</div>
79 </el-timeline-item> 92 </el-timeline-item>
80 </el-timeline> 93 </el-timeline>
81 </el-collapse-item> 94 </el-collapse-item>
82 </el-collapse> 95 </el-collapse>
83 </div> 96 </div>
84 </div> 97 </div>
85 98
86 <div v-if="type=='2'"> 99 <div v-if="type=='2'">
87 <div class="flex mt30"> 100 <div class="flex mt30">
88 <el-input :placeholder="language==0?'输入选手姓名查询':'Enter the name of the player to Query'" 101 <el-input
89 v-model="query3" clearable 102 v-model="query3"
90 @enter="personalSearch" @blur="personalSearch" @empty="personalSearch"/> 103 :placeholder="language==0?'输入选手姓名查询':'Enter the name of the player to Query'" clearable
91 <el-button @click="personalSearch" class="btn-lineG" style="color: #fff">{{ 104 @blur="personalSearch" @empty="personalSearch" @enter="personalSearch"
92 language == 0 ? '查询' : 'Search' 105 />
93 }} 106 <el-button class="btn-lineG" style="color: #fff" @click="personalSearch">{{
107 language == 0 ? '查询' : 'Search'
108 }}
94 </el-button> 109 </el-button>
95 </div> 110 </div>
96 <div v-if="list.length>0" class="temell mt20"> 111 <div v-if="list.length>0" class="temell mt20">
97 <el-timeline> 112 <el-timeline>
98 <el-timeline-item placement="top" v-for="(team,j) in list" :key="j"> 113 <el-timeline-item v-for="(team,j) in list" :key="j" placement="top">
99 <div v-for="(form, index) in team" :key="index" v-show="index==0"> 114 <div v-for="(form, index) in team" v-show="index==0" :key="index">
100 <div class="text-primary" style="position: relative;top:-15px"> 115 <div class="text-primary" style="position: relative;top:-15px">
101 {{ form.date + ' ' + form.timeStr + ' / '+form.address }} 116 {{ form.date + ' ' + form.timeStr + ' / ' + form.address }}
102 <span v-if="form.lunEn"> / {{ form.lunEn }}</span> 117 <span v-if="form.lunEn"> / {{ form.lunEn }}</span>
103 <span v-else-if="form.lun"> / {{ form.lun }}</span> 118 <span v-else-if="form.lun"> / {{ form.lun }}</span>
104 <span v-if="form.changCi "> / {{ language==0?'场次':'Session' }}{{ form.changCi }}</span> 119 <span v-if="form.changCi "> / {{ language == 0 ? '场次' : 'Session' }}{{ form.changCi }}</span>
105 </div> 120 </div>
106 <div class="tname" v-if="form.projectNameEn">{{ form.projectNameEn}}</div> 121 <div v-if="form.projectNameEn" class="tname">{{ form.projectNameEn }}</div>
107 <div class="tname" v-if="form.projectName">{{ form.projectName }}</div> 122 <div v-if="form.projectName" class="tname">{{ form.projectName }}</div>
108 <div>{{form.danceType}}</div> 123 <div>{{ form.danceType }}</div>
109 </div> 124 </div>
110 <div v-for="(form, index) in team" :key="index" v-show="index>0" style="margin: 8px 0 0"> 125 <div v-for="(form, index) in team" v-show="index>0" :key="index" style="margin: 8px 0 0">
111 {{ form.date + ' ' + form.timeStr + ' / '+form.address }} 126 {{ form.date + ' ' + form.timeStr + ' / ' + form.address }}
112 <span v-if="form.lunEn"> / {{ form.lunEn }}</span> 127 <span v-if="form.lunEn"> / {{ form.lunEn }}</span>
113 <span v-else-if="form.lun"> / {{ form.lun }}</span> 128 <span v-else-if="form.lun"> / {{ form.lun }}</span>
114 <span v-if="form.changCi "> / {{ language==0?'场次':'Session' }}{{ form.changCi }}</span> 129 <span v-if="form.changCi "> / {{ language == 0 ? '场次' : 'Session' }}{{ form.changCi }}</span>
115 </div> 130 </div>
116 </el-timeline-item> 131 </el-timeline-item>
117 </el-timeline> 132 </el-timeline>
118 </div> 133 </div>
119 </div> 134 </div>
120 135
121 </div> 136 </div>
122 </el-dialog> 137 </el-dialog>
123 </template> 138 </template>
124 139
125 <script setup> 140 <script setup>
126 import {ref} from "vue"; 141 import { ref } from 'vue'
127 import {ElMessage} from "element-plus"; 142 import { ElMessage } from 'element-plus'
128 import { 143 import {
129 getquerySchedule2Pre, 144 getquerySchedule2Pre,
130 getqySchedule, 145 getqySchedule,
131 getqySchedule2, 146 getqySchedule2,
132 getTeamBackNumber, 147 getTeamBackNumber,
133 getTeamBackNumberPre, queryScheduleSingle 148 getTeamBackNumberPre, queryScheduleSingle
134 } from "@/apiPc/common"; 149 } from '@/apiPc/common'
135 import {useStorage} from "@vueuse/core/index"; 150 import { useStorage } from '@vueuse/core/index'
136 151
137 const language = useStorage('language', 0) 152 const language = useStorage('language', 0)
138 const show = ref(false) 153 const show = ref(false)
...@@ -146,45 +161,49 @@ const query2 = ref('') ...@@ -146,45 +161,49 @@ const query2 = ref('')
146 const query3 = ref('') 161 const query3 = ref('')
147 const type = ref('') 162 const type = ref('')
148 const showGroupList = ref(false) 163 const showGroupList = ref(false)
164 const cptId = ref()
165
149 const search = () => { 166 const search = () => {
150 if (!query.value) { 167 if (!query.value) {
151 ElMessage.warning(language.value == 0 ? '请输入搜索关键词' : 'Enter project name or code to Query') 168 ElMessage.warning(language.value == 0 ? '请输入搜索关键词' : 'Enter project name or code to Query')
152 return 169 return
153 } 170 }
154 getqySchedule({projectName: query.value}).then(res => { 171 getqySchedule({ projectName: query.value, cptId: cptId.value }).then(res => {
155 if (!res.data||res.data.length==0) { 172 if (!res.data || res.data.length == 0) {
156 list.value = [] 173 list.value = []
157 //提示 '未找到结果,请重新查询' 174 // 提示 '未找到结果,请重新查询'
158 ElMessage.warning(language.value == 0 ? '未找到结果,请重新查询' : 'No result') 175 ElMessage.warning(language.value == 0 ? '未找到结果,请重新查询' : 'No result')
159 return 176 return
160 } 177 }
161 list.value = res.data 178 list.value = res.data
179 }).catch(e => {
180 loading.value = false
162 }) 181 })
163
164 } 182 }
165 const searchTeam = () => { 183 const searchTeam = () => {
166 teamlist.value = [] 184 teamlist.value = []
167 if (!query2.value||query2.value.length < 2) { 185 if (!query2.value || query2.value.length < 2) {
168 ElMessage.warning(language.value == 0 ? '请输入代表队名称至少两字符' : 'Enter the representing team name,At least two characters') 186 ElMessage.warning(language.value == 0 ? '请输入代表队名称至少两字符' : 'Enter the representing team name,At least two characters')
169 return 187 return
170 } 188 }
171 loading.value = true 189 loading.value = true
172 getquerySchedule2Pre({groupName: query2.value}).then(res => { 190 getquerySchedule2Pre({ groupName: query2.value, cptId: cptId.value }).then(res => {
173 loading.value = false 191 loading.value = false
174 if (!res.data||res.data.length==0) { 192 if (!res.data || res.data.length == 0) {
175 groupList.value = [] 193 groupList.value = []
176 //提示 '未找到结果,请重新查询' 194 // 提示 '未找到结果,请重新查询'
177 ElMessage.warning(language.value == 0 ? '未找到结果,请重新查询' : 'No result') 195 ElMessage.warning(language.value == 0 ? '未找到结果,请重新查询' : 'No result')
178 return 196 return
179 } 197 }
180 groupList.value = res.data 198 groupList.value = res.data
181 if(groupList.value.length==1){ 199 if (groupList.value.length == 1) {
182 showDetail(groupList.value[0]) 200 showDetail(groupList.value[0])
183 } 201 }
184 if(groupList.value.length>1){ 202 if (groupList.value.length > 1) {
185 showGroupList.value = true 203 showGroupList.value = true
186 } 204 }
187 205 }).catch(e => {
206 loading.value = false
188 }) 207 })
189 } 208 }
190 const personalSearch = () => { 209 const personalSearch = () => {
...@@ -193,19 +212,20 @@ const personalSearch = () => { ...@@ -193,19 +212,20 @@ const personalSearch = () => {
193 return 212 return
194 } 213 }
195 loading.value = true 214 loading.value = true
196 queryScheduleSingle({query: query3.value}).then(res => { 215 queryScheduleSingle({ query: query3.value, cptId: cptId.value }).then(res => {
197 loading.value = false 216 loading.value = false
198 if (!res.data||res.data.length==0) { 217 if (!res.data || res.data.length == 0) {
199 list.value = [] 218 list.value = []
200 //提示 '未找到结果,请重新查询' 219 // 提示 '未找到结果,请重新查询'
201 ElMessage.warning(language.value == 0 ? '未找到结果,请重新查询' : 'No result') 220 ElMessage.warning(language.value == 0 ? '未找到结果,请重新查询' : 'No result')
202 return 221 return
203 } 222 }
204 list.value = res.data 223 list.value = res.data
205 }) 224 })
206
207 } 225 }
208 const open = (param) => { 226 const open = (param) => {
227 console.log(param)
228 cptId.value = param.cptId
209 show.value = true 229 show.value = true
210 list.value = [] 230 list.value = []
211 teamlist.value = [] 231 teamlist.value = []
...@@ -217,37 +237,65 @@ const open = (param) => { ...@@ -217,37 +237,65 @@ const open = (param) => {
217 defineExpose({ 237 defineExpose({
218 open 238 open
219 }) 239 })
240
220 function showDetail(name) { 241 function showDetail(name) {
221 query2.value = name 242 query2.value = name
222 showGroupList.value = false 243 showGroupList.value = false
223 loading.value = true 244 loading.value = true
224 getqySchedule2({groupName: name}).then(res => { 245 getqySchedule2({ groupName: name, cptId: cptId.value }).then(res => {
225 loading.value = false 246 loading.value = false
226 teamlist.value = res.data 247 teamlist.value = res.data
248 }).catch(e => {
249 loading.value = false
227 }) 250 })
228 } 251 }
229 </script> 252 </script>
230 253
231 <style scoped lang="scss"> 254 <style lang="scss" scoped>
232 .tname{font-size: 14px;font-weight: bold;position: relative;top: -8px} 255 .tname {
233 .tip{font-size: 12px;margin: 4px 0 0;display: inline-block;} 256 font-size: 14px;
234 .rItem{ 257 font-weight: bold;
258 position: relative;
259 top: -8px
260 }
261
262 .tip {
263 font-size: 12px;
264 margin: 4px 0 0;
265 display: inline-block;
266 }
267
268 .rItem {
235 height: 130px; 269 height: 130px;
236 cursor: pointer;border: 1px solid #e1e1e1;border-radius: 4px; 270 cursor: pointer;
237 width: 350px;text-align: center;line-height: 130px; 271 border: 1px solid #e1e1e1;
238 padding: 1px; font-size: 30px;color: #fff; 272 border-radius: 4px;
239 margin: 20px auto;background:linear-gradient(90deg, #8623FC, #453DEA); 273 width: 350px;
240 &:hover{ 274 text-align: center;
241 background:linear-gradient(90deg, #453DEA, #8623FC); 275 line-height: 130px;
242 box-shadow: 0 4px 10px #453DEA;border: none; 276 padding: 1px;
277 font-size: 30px;
278 color: #fff;
279 margin: 20px auto;
280 background: linear-gradient(90deg, #8623FC, #453DEA);
281
282 &:hover {
283 background: linear-gradient(90deg, #453DEA, #8623FC);
284 box-shadow: 0 4px 10px #453DEA;
285 border: none;
243 } 286 }
244 } 287 }
288
245 .nowteamItem { 289 .nowteamItem {
246 width: 100%;border: 1px solid #c8c5ff; margin-top: 20px; 290 width: 100%;
247 position: relative;border-radius: 4px;padding: 0 0 20px; 291 border: 1px solid #c8c5ff;
292 margin-top: 20px;
293 position: relative;
294 border-radius: 4px;
295 padding: 0 0 20px;
248 background: #FFFFFF; 296 background: #FFFFFF;
249 box-sizing: border-box; 297 box-sizing: border-box;
250 298
251 .info { 299 .info {
252 .nowName { 300 .nowName {
253 font-family: "DIN Alternate"; 301 font-family: "DIN Alternate";
...@@ -257,13 +305,13 @@ function showDetail(name) { ...@@ -257,13 +305,13 @@ function showDetail(name) {
257 display: block; 305 display: block;
258 margin: 10px; 306 margin: 10px;
259 } 307 }
260 308
261 label { 309 label {
262 text-align: right; 310 text-align: right;
263 font-size: 14px; 311 font-size: 14px;
264 padding-left: 7% 312 padding-left: 7%
265 } 313 }
266 314
267 div { 315 div {
268 font-size: 14px; 316 font-size: 14px;
269 color: #333; 317 color: #333;
...@@ -271,14 +319,38 @@ function showDetail(name) { ...@@ -271,14 +319,38 @@ function showDetail(name) {
271 } 319 }
272 } 320 }
273 } 321 }
322
274 .temell { 323 .temell {
275 .nowteamItem{padding: 10px;margin: 0 0 10px; 324 .nowteamItem {
276 .nowName{font-size: 15px;font-weight: bold;margin-right: 10px} 325 padding: 10px;
277 .text-bold{font-weight: bold;} 326 margin: 0 0 10px;
278 .fontsize14{font-size: 14px;} 327
328 .nowName {
329 font-size: 15px;
330 font-weight: bold;
331 margin-right: 10px
332 }
333
334 .text-bold {
335 font-weight: bold;
336 }
337
338 .fontsize14 {
339 font-size: 14px;
340 }
279 } 341 }
280 } 342 }
281 .groupList{max-height: 70vh;overflow: auto;border: 1px solid #e1e1e1;margin-top: 10px; 343
282 li{padding: 10px;border-bottom: 1px solid #e1e1e1;cursor: pointer;} 344 .groupList {
345 max-height: 70vh;
346 overflow: auto;
347 border: 1px solid #e1e1e1;
348 margin-top: 10px;
349
350 li {
351 padding: 10px;
352 border-bottom: 1px solid #e1e1e1;
353 cursor: pointer;
354 }
283 } 355 }
284 </style> 356 </style>
......
...@@ -153,10 +153,10 @@ ...@@ -153,10 +153,10 @@
153 <!-- @click="popMaster"--> 153 <!-- @click="popMaster"-->
154 <!-- >青少年公益课报名</a>--> 154 <!-- >青少年公益课报名</a>-->
155 <a 155 <a
156 v-show="matchData?.id=='1778253367748993026'" class="zn-btn ml20 btn-q" 156 v-show="matchData?.id" class="zn-btn ml20 btn-q"
157 @click="backNumberSearch" 157 @click="backNumberSearch"
158 >背号查询</a> 158 >背号查询</a>
159 <a v-show="matchData?.id=='1778253367748993026'" class="zn-btn ml20 btn-q" @click="schSearch">日程查询</a> 159 <a v-show="matchData?.id" class="zn-btn ml20 btn-q" @click="schSearch">日程查询</a>
160 </div> 160 </div>
161 </el-col> 161 </el-col>
162 <el-col :lg="14" :sm="24"> 162 <el-col :lg="14" :sm="24">
...@@ -192,8 +192,13 @@ ...@@ -192,8 +192,13 @@
192 <el-table-column label="国家" prop="name"> 192 <el-table-column label="国家" prop="name">
193 <template #default="scope"> 193 <template #default="scope">
194 <div> 194 <div>
195 <span :class="`flag-icon flag-icon-${scope.row.code}`" /> 195 <span v-if="scope.row.code!='tw'" :class="`flag-icon flag-icon-${scope.row.code}`" />
196 {{ language == 0 ? scope.row.name : scope.row.enName }} 196 <span v-else class="flag-icon">
197 <img :src="hkImage" alt="" class="hkimg">
198 </span>
199 <span>
200 {{ language == 0 ? scope.row.code != 'tw' ? scope.row.name : '中华台北' : scope.row.enName }}
201 </span>
197 </div> 202 </div>
198 </template> 203 </template>
199 </el-table-column> 204 </el-table-column>
...@@ -490,6 +495,7 @@ import 'swiper/css' ...@@ -490,6 +495,7 @@ import 'swiper/css'
490 import { dayjs } from 'element-plus' 495 import { dayjs } from 'element-plus'
491 import * as match from '@/apiPc/match' 496 import * as match from '@/apiPc/match'
492 import { getAboutUs, getppInfo, getZNList } from '@/apiPc/match' 497 import { getAboutUs, getppInfo, getZNList } from '@/apiPc/match'
498 import hkImage from '@/assets/nationalFlag/hk.png'
493 499
494 import AffixInvitation from '/@/viewsPc/match/components/affix-invitation.vue' 500 import AffixInvitation from '/@/viewsPc/match/components/affix-invitation.vue'
495 import { useStorage } from '@vueuse/core/index' 501 import { useStorage } from '@vueuse/core/index'
...@@ -1301,6 +1307,13 @@ function applyInvitation() { ...@@ -1301,6 +1307,13 @@ function applyInvitation() {
1301 top: 40%; 1307 top: 40%;
1302 } 1308 }
1303 1309
1310 .hkimg {
1311 width: 19px;
1312 height: 14px;
1313 position: absolute;
1314 top: 0;
1315 }
1316
1304 .btn2 { 1317 .btn2 {
1305 cursor: pointer; 1318 cursor: pointer;
1306 padding: 10px 80px; 1319 padding: 10px 80px;
......
...@@ -184,7 +184,11 @@ ...@@ -184,7 +184,11 @@
184 <el-table-column label="COUNTRY" min-width="200"> 184 <el-table-column label="COUNTRY" min-width="200">
185 <template #default="scope"> 185 <template #default="scope">
186 <div> 186 <div>
187 <span :class="`flag-icon flag-icon-${scope.row.code}`" /> 187 <!-- <span :class="`flag-icon flag-icon-${scope.row.code}`" />-->
188 <span v-if="scope.row.code!='tw'" :class="`flag-icon flag-icon-${scope.row.code}`" />
189 <span v-else class="flag-icon">
190 <img :src="hkImage" alt="" class="hkimg">
191 </span>
188 {{ language == 0 ? scope.row.name : scope.row.enName }} 192 {{ language == 0 ? scope.row.name : scope.row.enName }}
189 </div> 193 </div>
190 </template> 194 </template>
...@@ -472,6 +476,7 @@ import { useStorage } from '@vueuse/core/index' ...@@ -472,6 +476,7 @@ import { useStorage } from '@vueuse/core/index'
472 import useUserStore from '/@/store/modules/user' 476 import useUserStore from '/@/store/modules/user'
473 import clubImage from '@/assets/logo/club.png' 477 import clubImage from '@/assets/logo/club.png'
474 import { fillImgUrl } from '/@/utils/ruoyi' 478 import { fillImgUrl } from '/@/utils/ruoyi'
479 import hkImage from '/@/assets/nationalFlag/hk.png'
475 480
476 481
477 const language = useStorage('language', 0) 482 const language = useStorage('language', 0)
...@@ -1418,6 +1423,13 @@ function applyInvitation() { ...@@ -1418,6 +1423,13 @@ function applyInvitation() {
1418 1423
1419 } 1424 }
1420 1425
1426 .hkimg {
1427 width: 19px;
1428 height: 14px;
1429 position: absolute;
1430 top: 0;
1431 }
1432
1421 .club { 1433 .club {
1422 width: 130px; 1434 width: 130px;
1423 right: 0; 1435 right: 0;
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
20 <el-col :span="10"> 20 <el-col :span="10">
21 <el-form-item v-if="language!=0" label="WDSF code" prop="wdsfMin"> 21 <el-form-item v-if="language!=0" label="WDSF code" prop="wdsfMin">
22 <span v-if="form.wdsfMin">{{ form.wdsfMin }}</span> 22 <span v-if="form.wdsfMin">{{ form.wdsfMin }}</span>
23 <el-input v-else v-model="form.wdsfMin" type="text" /> 23 <el-input v-else v-model.trim="form.wdsfMin" type="text" />
24 </el-form-item> 24 </el-form-item>
25 <el-form-item :label="language==0?'姓名':'Name'" prop="realName" required> 25 <el-form-item :label="language==0?'姓名':'Name'" prop="realName" required>
26 <el-input v-model="form.realName" :disabled="editgay&&form.labelArr.indexOf('0')>-1" /> 26 <el-input v-model="form.realName" :disabled="editgay&&form.labelArr.indexOf('0')>-1" />
......
...@@ -101,9 +101,11 @@ ...@@ -101,9 +101,11 @@
101 <el-input v-model="form.certName" :disabled="editgay" /> 101 <el-input v-model="form.certName" :disabled="editgay" />
102 </el-form-item> 102 </el-form-item>
103 <el-form-item 103 <el-form-item
104 v-if="form.idcType!=3 "
104 :label="language==0?'证件类型':'ID Type'" :required="!form.wdsfMin&&form.labelArr.indexOf('0')>-1" 105 :label="language==0?'证件类型':'ID Type'" :required="!form.wdsfMin&&form.labelArr.indexOf('0')>-1"
105 prop="idcType" 106 prop="idcType"
106 > 107 >
108
107 <el-select v-model="form.idcType" :disabled="editgay" style="width: 100%;"> 109 <el-select v-model="form.idcType" :disabled="editgay" style="width: 100%;">
108 <el-option 110 <el-option
109 v-for="item in certificates" 111 v-for="item in certificates"
...@@ -114,6 +116,7 @@ ...@@ -114,6 +116,7 @@
114 </el-select> 116 </el-select>
115 </el-form-item> 117 </el-form-item>
116 <el-form-item 118 <el-form-item
119 v-if="form.idcType!=3 "
117 :label="language==0?'证件号码':'ID NO'" :required="!form.wdsfMin&&form.labelArr.indexOf('0')>-1" 120 :label="language==0?'证件号码':'ID NO'" :required="!form.wdsfMin&&form.labelArr.indexOf('0')>-1"
118 prop="idcCode" 121 prop="idcCode"
119 > 122 >
...@@ -286,14 +289,15 @@ const open = (params) => { ...@@ -286,14 +289,15 @@ const open = (params) => {
286 if (form.value.wdsfMin) { 289 if (form.value.wdsfMin) {
287 editDis.value = true 290 editDis.value = true
288 } 291 }
289 if (form.value.idcType == '3') { 292 // if (form.value.idcType == '3') {
290 form.value.idcType = '' 293 // form.value.idcType = ''
291 form.value.idcCode = '' 294 // form.value.idcCode = ''
292 } 295 // }
293 if (form.value.label) { 296 if (form.value.label) {
294 // {0:0,1:1,2:3} 297 // {0:0,1:1,2:3}
295 form.value.labelArr = form.value.label.split(',') 298 form.value.labelArr = form.value.label.split(',')
296 } 299 }
300 console.log(form.value)
297 }) 301 })
298 } else { 302 } else {
299 editgay.value = false 303 editgay.value = false
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
20 {{ form.wdsfMin }} 20 {{ form.wdsfMin }}
21 </el-form-item> 21 </el-form-item>
22 <el-form-item v-else :label="language==0?'WDSF会员号':'WDSF MIN'" required> 22 <el-form-item v-else :label="language==0?'WDSF会员号':'WDSF MIN'" required>
23 <el-input v-model="form.wdsfMin" type="text" @change="resetCode"> 23 <el-input v-model.trim="form.wdsfMin" type="text" @change="resetCode">
24 <template #append> 24 <template #append>
25 <el-button plain style="width: 110px" type="primary" @click="checkCard"> 25 <el-button plain style="width: 110px" type="primary" @click="checkCard">
26 <el-icon v-if="isCodeTrue" color="#67C23A" size="16"> 26 <el-icon v-if="isCodeTrue" color="#67C23A" size="16">
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
12 {{ form.wdsfMin }} 12 {{ form.wdsfMin }}
13 </el-form-item> 13 </el-form-item>
14 <el-form-item v-else :label="language==0?'WDSF卡号':'WDSF MIN'" required> 14 <el-form-item v-else :label="language==0?'WDSF卡号':'WDSF MIN'" required>
15 <el-input v-model="card" type="text" @change="resetCode"> 15 <el-input v-model.trim="card" type="text" @change="resetCode">
16 <template #append> 16 <template #append>
17 <el-button plain style="width: 110px" type="primary" @click="checkCard"> 17 <el-button plain style="width: 110px" type="primary" @click="checkCard">
18 <el-icon v-if="isCodeTrue" color="#67C23A" size="16"> 18 <el-icon v-if="isCodeTrue" color="#67C23A" size="16">
......
...@@ -157,7 +157,7 @@ const emit = defineEmits(['transfer']) ...@@ -157,7 +157,7 @@ const emit = defineEmits(['transfer'])
157 const data = reactive({ 157 const data = reactive({
158 query: { 158 query: {
159 label: '0', 159 label: '0',
160 pageSize: 10, 160 pageSize: 9999,
161 pageNum: 1 161 pageNum: 1
162 }, 162 },
163 tableData: [], 163 tableData: [],
......
1 <template>
2 <div style="padding: 30px 20px 20px">
3 <!--成绩-->
4 <div v-html="matchData.scoreUrl" />
5 <el-empty
6 v-if="!matchData.scoreUrl" :image="`/img/order_no.png`" :image-size="228"
7 description=""
8 />
9
10 </div>
11 </template>
12
13 <script setup>
14
15 const props = defineProps({
16 matchData: {
17 type: Object,
18 required: true
19 }
20 })
21 </script>
22
23 <style lang="scss" scoped>
24 .time-address {
25 color: #666;
26 }
27
28 .indexTitle {
29 margin: 20px 0 12px;
30
31 h3 {
32 font-size: 20px;
33 color: var(--el-color-primary);
34 }
35 }
36
37 p img {
38 max-width: 100%;
39 }
40
41 .table {
42 width: 100%;
43 border-left: 1px solid #e1e1e1;
44 border-top: 1px solid #e1e1e1;
45
46 th {
47 background: #eee;
48 padding: 6px 10px;
49 border-right: 1px solid #e1e1e1;
50 border-bottom: 1px solid #e1e1e1;
51 font-size: 15px;
52 }
53
54 td {
55 padding: 6px 10px;
56 border-right: 1px solid #e1e1e1;
57 font-size: 15px;
58 border-bottom: 1px solid #e1e1e1;
59 vertical-align: middle;
60 text-align: center;
61
62 span {
63 margin-right: 10px
64 }
65
66 span::after {
67 content: ','
68 }
69
70 span:last-child::after {
71 content: ''
72 }
73 }
74 }
75 </style>
1 <template> 1 <template>
2 <div style="filter: opacity(1)"> 2 <div style="filter: opacity(1)">
3 <el-row v-if="language==0" class="btnbox" justify='space-between' :gutter="15"> 3 <el-row v-if="language==0" class="btnbox" justify="space-between" :gutter="15">
4 <el-col :lg="3" :md="6" :sm="12" :xs="12"> 4 <el-col :lg="3" :md="6" :sm="12" :xs="12">
5 <div class="funcBtn" @click="popRemark(0)"> 5 <div class="funcBtn" @click="popRemark(0)">
6 <img src="@/assets/dance/btn04.png"/> 6 <img src="@/assets/dance/btn04.png">
7 <h4>票务预订</h4> 7 <h4>票务预订</h4>
8 </div> 8 </div>
9 </el-col> 9 </el-col>
10 <el-col :lg="3" :md="6" :sm="12" :xs="12"> 10 <el-col :lg="3" :md="6" :sm="12" :xs="12">
11 <div class="funcBtn" @click="popRemark(1)"> 11 <div class="funcBtn" @click="popRemark(1)">
12 <img src="@/assets/dance/btn01.png"/> 12 <img src="@/assets/dance/btn01.png">
13 <h4>酒店预订</h4> 13 <h4>酒店预订</h4>
14 </div> 14 </div>
15 </el-col> 15 </el-col>
16 <el-col :lg="3" :md="6" :sm="12" :xs="11"> 16 <el-col :lg="3" :md="6" :sm="12" :xs="11">
17 <div class="funcBtn" @click="popRemark(8)"> 17 <div class="funcBtn" @click="popRemark(8)">
18 <img src="@/assets/dance/btn08.png"/> 18 <img src="@/assets/dance/btn08.png">
19 <h4>旅游服务</h4> 19 <h4>旅游服务</h4>
20 </div> 20 </div>
21 </el-col> 21 </el-col>
22 <el-col :lg="3" :md="6" :sm="12" :xs="11"> 22 <el-col :lg="3" :md="6" :sm="12" :xs="11">
23 <div class="funcBtn" @click="popRemark(2)"> 23 <div class="funcBtn" @click="popRemark(2)">
24 <img src="@/assets/dance/btn02.png"/> 24 <img src="@/assets/dance/btn02.png">
25 <h4>车辆预订</h4> 25 <h4>车辆预订</h4>
26 </div> 26 </div>
27 </el-col> 27 </el-col>
28 <el-col :lg="3" :md="6" :sm="12" :xs="11"> 28 <el-col :lg="3" :md="6" :sm="12" :xs="11">
29 <div class="funcBtn" @click="popRemark(6)"> 29 <div class="funcBtn" @click="popRemark(6)">
30 <img src="@/assets/dance/btn07.png"/> 30 <img src="@/assets/dance/btn07.png">
31 <h4>预订查询</h4> 31 <h4>预订查询</h4>
32 </div> 32 </div>
33 </el-col> 33 </el-col>
34 <el-col :lg="3" :md="6" :sm="12" :xs="11"> 34 <el-col :lg="3" :md="6" :sm="12" :xs="11">
35 <div class="funcBtn" @click="popRemark(3)"> 35 <div class="funcBtn" @click="popRemark(3)">
36 <img src="@/assets/dance/btn03.png"/> 36 <img src="@/assets/dance/btn03.png">
37 <h4>餐饮预订</h4> 37 <h4>餐饮预订</h4>
38 </div> 38 </div>
39 </el-col> 39 </el-col>
40 <el-col :lg="3" :md="6" :sm="12" :xs="11"> 40 <el-col :lg="3" :md="6" :sm="12" :xs="11">
41 <div class="funcBtn" @click="popRemark(4)"> 41 <div class="funcBtn" @click="popRemark(4)">
42 <img src="@/assets/dance/btn05.png"/> 42 <img src="@/assets/dance/btn05.png">
43 <h4>化妆预约</h4> 43 <h4>化妆预约</h4>
44 </div> 44 </div>
45 </el-col> 45 </el-col>
46 <el-col :lg="3" :md="6" :sm="12" :xs="11"> 46 <el-col :lg="3" :md="6" :sm="12" :xs="11">
47 <div class="funcBtn" @click="popRemark(5)"> 47 <div class="funcBtn" @click="popRemark(5)">
48 <img src="@/assets/dance/btn06.png"/> 48 <img src="@/assets/dance/btn06.png">
49 <h4>拍照预约</h4> 49 <h4>拍照预约</h4>
50 </div> 50 </div>
51 </el-col> 51 </el-col>
52 </el-row> 52 </el-row>
53 53
54 54
55 <el-row v-else class="btnbox enBtnbox" justify='space-between' :gutter="15"> 55 <el-row v-else class="btnbox enBtnbox" justify="space-between" :gutter="15">
56 <el-col :lg="3" :md="8" :sm="12" :xs="12"> 56 <el-col :lg="3" :md="8" :sm="12" :xs="12">
57 <div class="funcBtn" @click="popRemark(0)"> 57 <div class="funcBtn" @click="popRemark(0)">
58 <img src="@/assets/dance/btn04.png"/> 58 <img src="@/assets/dance/btn04.png">
59 <h4>TICKET BOOKING</h4> 59 <h4>TICKET BOOKING</h4>
60 </div> 60 </div>
61 </el-col> 61 </el-col>
62 <el-col :lg="3" :md="8" :sm="12" :xs="12"> 62 <el-col :lg="3" :md="8" :sm="12" :xs="12">
63 <div class="funcBtn" @click="popRemark(1)"> 63 <div class="funcBtn" @click="popRemark(1)">
64 <img src="@/assets/dance/btn01.png"/> 64 <img src="@/assets/dance/btn01.png">
65 <h4>HOTEL RESERVATION</h4> 65 <h4>HOTEL RESERVATION</h4>
66 </div> 66 </div>
67 </el-col> 67 </el-col>
68 <el-col :lg="3" :md="8" :sm="12" :xs="12"> 68 <el-col :lg="3" :md="8" :sm="12" :xs="12">
69 <div class="funcBtn" @click="popRemark(8)"> 69 <div class="funcBtn" @click="popRemark(8)">
70 <img src="@/assets/dance/btn08.png"/> 70 <img src="@/assets/dance/btn08.png">
71 <h4>TRAVEL SERVICE</h4> 71 <h4>TRAVEL SERVICE</h4>
72 </div> 72 </div>
73 </el-col> 73 </el-col>
74 <el-col :lg="3" :md="8" :sm="12" :xs="12"> 74 <el-col :lg="3" :md="8" :sm="12" :xs="12">
75 <div class="funcBtn" @click="popRemark(2)"> 75 <div class="funcBtn" @click="popRemark(2)">
76 <img src="@/assets/dance/btn02.png"/> 76 <img src="@/assets/dance/btn02.png">
77 <h4>TRANSPORTATION RESERVATION</h4> 77 <h4>TRANSPORTATION RESERVATION</h4>
78 </div> 78 </div>
79 </el-col> 79 </el-col>
80 <el-col :lg="3" :md="8" :sm="12" :xs="12"> 80 <el-col :lg="3" :md="8" :sm="12" :xs="12">
81 <div class="funcBtn" @click="popRemark(6)"> 81 <div class="funcBtn" @click="popRemark(6)">
82 <img src="@/assets/dance/btn07.png"/> 82 <img src="@/assets/dance/btn07.png">
83 <h4>RESERVATION SEARCH</h4> 83 <h4>RESERVATION SEARCH</h4>
84 </div> 84 </div>
85 </el-col> 85 </el-col>
86 <el-col :lg="3" :md="8" :sm="12" :xs="12"> 86 <el-col :lg="3" :md="8" :sm="12" :xs="12">
87 <div class="funcBtn" @click="popRemark(3)"> 87 <div class="funcBtn" @click="popRemark(3)">
88 <img src="@/assets/dance/btn03.png"/> 88 <img src="@/assets/dance/btn03.png">
89 <h4>DINING RESERVATION</h4> 89 <h4>DINING RESERVATION</h4>
90 </div> 90 </div>
91 </el-col> 91 </el-col>
92 <el-col :lg="3" :md="8" :sm="12" :xs="12"> 92 <el-col :lg="3" :md="8" :sm="12" :xs="12">
93 <div class="funcBtn" @click="popRemark(4)"> 93 <div class="funcBtn" @click="popRemark(4)">
94 <img src="@/assets/dance/btn05.png"/> 94 <img src="@/assets/dance/btn05.png">
95 <h4>MAKEUP APPOINTMENT</h4> 95 <h4>MAKEUP APPOINTMENT</h4>
96 </div> 96 </div>
97 </el-col> 97 </el-col>
98 <el-col :lg="3" :md="8" :sm="12" :xs="12"> 98 <el-col :lg="3" :md="8" :sm="12" :xs="12">
99 <div class="funcBtn" @click="popRemark(5)"> 99 <div class="funcBtn" @click="popRemark(5)">
100 <img src="@/assets/dance/btn06.png"/> 100 <img src="@/assets/dance/btn06.png">
101 <h4>PHOTOGRAPHY APPOINTMENT</h4> 101 <h4>PHOTOGRAPHY APPOINTMENT</h4>
102 </div> 102 </div>
103 </el-col> 103 </el-col>
104 </el-row> 104 </el-row>
105 </div> 105 </div>
106 <order-remark ref="orderRemarkRef" @submit="goBooking"/> 106 <order-remark ref="orderRemarkRef" @submit="goBooking" />
107 107
108 <!-- <div class="fixedKP" @click="addInvoice">--> 108 <!-- <div class="fixedKP" @click="addInvoice">-->
109 <!-- <img src="@/assets/img/kp.svg"/>--> 109 <!-- <img src="@/assets/img/kp.svg"/>-->
...@@ -112,15 +112,15 @@ ...@@ -112,15 +112,15 @@
112 </template> 112 </template>
113 113
114 <script setup> 114 <script setup>
115 import {ElMessage} from "element-plus"; 115 import { ElMessage } from 'element-plus'
116 import {useRouter} from "vue-router"; 116 import { useRouter } from 'vue-router'
117 import {useStorage} from "@vueuse/core/index"; 117 import { useStorage } from '@vueuse/core/index'
118 import OrderRemark from '@/viewsPc/components/orderRemark' 118 import OrderRemark from '@/viewsPc/components/orderRemark'
119 import {getBaseInfoByActiveId} from "@/apiPc/booking"; 119 import { getBaseInfoByActiveId } from '@/apiPc/booking'
120 import {getCurrentInstance} from "@vue/runtime-core"; 120 import { getCurrentInstance } from '@vue/runtime-core'
121 import {onMounted} from "vue"; 121 import { onMounted } from 'vue'
122 122
123 const {proxy} = getCurrentInstance() 123 const { proxy } = getCurrentInstance()
124 124
125 const router = useRouter() 125 const router = useRouter()
126 const language = useStorage('language', 0) 126 const language = useStorage('language', 0)
...@@ -148,7 +148,6 @@ onMounted(() => { ...@@ -148,7 +148,6 @@ onMounted(() => {
148 148
149 function building() { 149 function building() {
150 ElMessage.warning(language.value == 0 ? '感谢您对本次比赛的关注,该服务暂无可预订信息,敬请期待。' : 'Thank you for your attention to this competition. The service is currently unavailable for booking. Please stay tuned.') 150 ElMessage.warning(language.value == 0 ? '感谢您对本次比赛的关注,该服务暂无可预订信息,敬请期待。' : 'Thank you for your attention to this competition. The service is currently unavailable for booking. Please stay tuned.')
151
152 } 151 }
153 152
154 function popRemark(type) { 153 function popRemark(type) {
...@@ -156,7 +155,7 @@ function popRemark(type) { ...@@ -156,7 +155,7 @@ function popRemark(type) {
156 return router.push({ 155 return router.push({
157 path: '/match/list/reservationSearch', 156 path: '/match/list/reservationSearch',
158 query: { 157 query: {
159 matchId: props.matchId, 158 matchId: props.matchId
160 } 159 }
161 }) 160 })
162 } 161 }
...@@ -165,13 +164,13 @@ function popRemark(type) { ...@@ -165,13 +164,13 @@ function popRemark(type) {
165 return 164 return
166 } 165 }
167 166
168 if ((form.value.isJdView == 0 && type == '1') 167 if ((form.value.isJdView == 0 && type == '1') ||
169 || (form.value.isCarView == 0 && type == '2') 168 (form.value.isCarView == 0 && type == '2') ||
170 || (form.value.isFoodView == 0 && type == '3') 169 (form.value.isFoodView == 0 && type == '3') ||
171 || (form.value.isMealView == 0 && type == '4') 170 (form.value.isMealView == 0 && type == '4') ||
172 || (form.value.isPhotoView == 0 && type == '5') 171 (form.value.isPhotoView == 0 && type == '5') ||
173 || (form.value.isTicket == 0 && type == '0') 172 (form.value.isTicketView == 0 && type == '0') ||
174 || (form.value.isScenicView == 0 && type == '8') 173 (form.value.isScenicView == 0 && type == '8')
175 ) { 174 ) {
176 building() 175 building()
177 return 176 return
...@@ -184,7 +183,6 @@ function popRemark(type) { ...@@ -184,7 +183,6 @@ function popRemark(type) {
184 cptName: props.cptName 183 cptName: props.cptName
185 } 184 }
186 proxy.$refs['orderRemarkRef'].open(params) 185 proxy.$refs['orderRemarkRef'].open(params)
187
188 } 186 }
189 187
190 function goBooking(n) { 188 function goBooking(n) {
...@@ -192,33 +190,33 @@ function goBooking(n) { ...@@ -192,33 +190,33 @@ function goBooking(n) {
192 case 0: 190 case 0:
193 // 票务 191 // 票务
194 router.push({ 192 router.push({
195 path: `/booking/ticket/${props.matchId}`, 193 path: `/booking/ticket/${props.matchId}`
196 }) 194 })
197 break; 195 break
198 case 1: 196 case 1:
199 //酒店 197 // 酒店
200 router.push({path: `/booking/hotel/${props.matchId}`}) 198 router.push({ path: `/booking/hotel/${props.matchId}` })
201 break; 199 break
202 case 2: 200 case 2:
203 //车辆 201 // 车辆
204 router.push({path: `/booking/car/${props.matchId}`}) 202 router.push({ path: `/booking/car/${props.matchId}` })
205 break; 203 break
206 case 3: 204 case 3:
207 //餐饮 205 // 餐饮
208 router.push({path: `/booking/dinner/${props.matchId}`}) 206 router.push({ path: `/booking/dinner/${props.matchId}` })
209 break; 207 break
210 case 4: 208 case 4:
211 //化妆 209 // 化妆
212 router.push({path: `/booking/makeup/${props.matchId}`}) 210 router.push({ path: `/booking/makeup/${props.matchId}` })
213 break; 211 break
214 case 5: 212 case 5:
215 //拍照 213 // 拍照
216 router.push({path: `/booking/photography/${props.matchId}`}) 214 router.push({ path: `/booking/photography/${props.matchId}` })
217 break; 215 break
218 case 8: 216 case 8:
219 //旅游 217 // 旅游
220 router.push({path: `/booking/travel/${props.matchId}`}) 218 router.push({ path: `/booking/travel/${props.matchId}` })
221 break; 219 break
222 } 220 }
223 } 221 }
224 222
......
...@@ -380,8 +380,10 @@ ...@@ -380,8 +380,10 @@
380 380
381 </div> 381 </div>
382 <div v-if="menu[4].active==1"> 382 <div v-if="menu[4].active==1">
383 <!--成绩--> 383 <!-- &lt;!&ndash;成绩&ndash;&gt;-->
384 <el-empty :image="`/img/order_no.png`" :image-size="228" description="" /> 384 <!-- <el-empty :image="`/img/order_no.png`" :image-size="228" description="" />-->
385
386 <matchPerformance :match-data="matchData" />
385 </div> 387 </div>
386 <div v-if="menu[5].active==1" class="pd20"> 388 <div v-if="menu[5].active==1" class="pd20">
387 <div class="xzbox"> 389 <div class="xzbox">
...@@ -422,6 +424,7 @@ ...@@ -422,6 +424,7 @@
422 <substation-list v-if="menu1[0].active==1" :list="matchData.cpts" /> 424 <substation-list v-if="menu1[0].active==1" :list="matchData.cpts" />
423 <matchInfo v-if="menu1[1].active==1" :form="matchData" /> 425 <matchInfo v-if="menu1[1].active==1" :form="matchData" />
424 <match-schedule-list v-if="menu1[2].active==1" :match-data="matchData" /> 426 <match-schedule-list v-if="menu1[2].active==1" :match-data="matchData" />
427 <matchPerformance v-if="menu1[3].active==1" :match-data="matchData" />
425 </el-card> 428 </el-card>
426 </el-col> 429 </el-col>
427 </el-row> 430 </el-row>
...@@ -482,6 +485,9 @@ import SubstationList from '@/viewsPc/match/components/substation-list' ...@@ -482,6 +485,9 @@ import SubstationList from '@/viewsPc/match/components/substation-list'
482 import MatchInfoProjectList from '@/viewsPc/match/components/matchInfo-projectList' 485 import MatchInfoProjectList from '@/viewsPc/match/components/matchInfo-projectList'
483 import QuickRow from '@/viewsPc/match/components/quick-row' 486 import QuickRow from '@/viewsPc/match/components/quick-row'
484 import Pickup from '@/viewsPc/components/pickup' 487 import Pickup from '@/viewsPc/components/pickup'
488 import matchPerformance from '@/viewsPc/match/components/matchPerformance.vue'
489
490
485 import { getCurrentInstance, ref, watch } from 'vue' 491 import { getCurrentInstance, ref, watch } from 'vue'
486 import { reactive, onMounted } from '@vue/runtime-core' 492 import { reactive, onMounted } from '@vue/runtime-core'
487 import { useRoute, useRouter } from 'vue-router' 493 import { useRoute, useRouter } from 'vue-router'
...@@ -518,11 +524,15 @@ const data = reactive({ ...@@ -518,11 +524,15 @@ const data = reactive({
518 { name: 'Schedule', cn: '日程', active: 0 }, 524 { name: 'Schedule', cn: '日程', active: 0 },
519 { name: 'Participating teams', cn: '参赛人员', active: 0 }, 525 { name: 'Participating teams', cn: '参赛人员', active: 0 },
520 { name: 'Achievement', cn: '成绩', active: 0 }, 526 { name: 'Achievement', cn: '成绩', active: 0 },
521 { name: 'Notes', cn: '报名须知', active: 0 }], 527 { name: 'Notes', cn: '报名须知', active: 0 }
528 ],
522 menu1: [ 529 menu1: [
523 { name: 'Tournaments', cn: '分站赛', active: 1 }, 530 { name: 'Tournaments', cn: '分站赛', active: 1 },
524 { name: 'Event details', cn: '赛事详情', active: 0 }, 531 { name: 'Event details', cn: '赛事详情', active: 0 },
525 { name: 'Schedule', cn: '日程', active: 0 }], 532 { name: 'Schedule', cn: '日程', active: 0 },
533 { name: 'Achievement', cn: '成绩', active: 0 }
534 ],
535
526 signDoneGroupList: [], 536 signDoneGroupList: [],
527 signDoneGroupListToTal: 0, 537 signDoneGroupListToTal: 0,
528 queryGroupList: { 538 queryGroupList: {
...@@ -577,7 +587,7 @@ function getMatch(id) { ...@@ -577,7 +587,7 @@ function getMatch(id) {
577 loading.value = true 587 loading.value = true
578 match.getMatchById({ id: id }).then(res => { 588 match.getMatchById({ id: id }).then(res => {
579 matchData.value = res.data 589 matchData.value = res.data
580 console.log(matchData.value) 590 console.log(666666, matchData.value)
581 loading.value = false 591 loading.value = false
582 const today = dayjs().format('YYYY-MM-DD HH:mm:ss') 592 const today = dayjs().format('YYYY-MM-DD HH:mm:ss')
583 time.value = dayjs(res.data.signEndTime).diff(today, 'millisecond') 593 time.value = dayjs(res.data.signEndTime).diff(today, 'millisecond')
...@@ -603,12 +613,12 @@ function getGroupListByCptId() { ...@@ -603,12 +613,12 @@ function getGroupListByCptId() {
603 613
604 function changeMenu(menu, l) { 614 function changeMenu(menu, l) {
605 console.log(matchData.value.leagueId, l.name) 615 console.log(matchData.value.leagueId, l.name)
606 if ( 616 // if (
607 matchData.value.leagueId == '1778253367748993026' && 617 // matchData.value.leagueId == '1778253367748993026' &&
608 (l.name == '成绩' || l.name == 'Achievement') 618 // (l.name == '成绩' || l.name == 'Achievement')
609 ) { 619 // ) {
610 window.open('http://www.cdsf.org.cn/h5/sscj.index?matchID=526') 620 // window.open('http://www.cdsf.org.cn/h5/sscj.index?matchID=526')
611 } 621 // }
612 for (const n of menu) { 622 for (const n of menu) {
613 if (n == l) { 623 if (n == l) {
614 n.active = 1 624 n.active = 1
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
12 size="large" style="max-width: 560px;margin: auto" 12 size="large" style="max-width: 560px;margin: auto"
13 > 13 >
14 <el-form-item :label="language==0?'WDSF会员号':'WDSF MIN'" required> 14 <el-form-item :label="language==0?'WDSF会员号':'WDSF MIN'" required>
15 <el-input v-model="form.card" type="text" @blur="verifyCode" @change="resetCode(0)"> 15 <el-input v-model.trim="form.card" type="text" @blur="verifyCode" @change="resetCode(0)">
16 <template #append> 16 <template #append>
17 <el-button plain style="width: 110px" type="primary" @click="checkCard"> 17 <el-button plain style="width: 110px" type="primary" @click="checkCard">
18 <el-icon v-if="wdsfData.wdsfFlag=='1'" color="#67C23A" size="16"> 18 <el-icon v-if="wdsfData.wdsfFlag=='1'" color="#67C23A" size="16">
......
...@@ -63,8 +63,13 @@ ...@@ -63,8 +63,13 @@
63 <el-table-column :label="language==0?'国家':'Country'" min-width="200" prop="name"> 63 <el-table-column :label="language==0?'国家':'Country'" min-width="200" prop="name">
64 <template #default="scope"> 64 <template #default="scope">
65 <div> 65 <div>
66 <span :class="`flag-icon flag-icon-${scope.row.code}`" /> 66 <span v-if="scope.row.code!='tw'" :class="`flag-icon flag-icon-${scope.row.code}`" />
67 {{ language == 0 ? scope.row.name : scope.row.enName }} 67 <span v-else class="flag-icon">
68 <img :src="hkImage" alt="" class="hkimg">
69 </span>
70 <span>
71 {{ language == 0 ? scope.row.code != 'tw' ? scope.row.name : '中华台北' : scope.row.enName }}
72 </span>
68 </div> 73 </div>
69 </template> 74 </template>
70 </el-table-column> 75 </el-table-column>
...@@ -160,6 +165,7 @@ import { cjList } from '@/assets/js/data' ...@@ -160,6 +165,7 @@ import { cjList } from '@/assets/js/data'
160 import { ArrowRight } from '@element-plus/icons-vue' 165 import { ArrowRight } from '@element-plus/icons-vue'
161 import { dayjs } from 'element-plus' 166 import { dayjs } from 'element-plus'
162 import * as match from '@/apiPc/match' 167 import * as match from '@/apiPc/match'
168 import hkImage from '@/assets/nationalFlag/hk.png'
163 169
164 const router = useRouter() 170 const router = useRouter()
165 import { useStorage } from '@vueuse/core/index' 171 import { useStorage } from '@vueuse/core/index'
...@@ -441,4 +447,11 @@ h3 { ...@@ -441,4 +447,11 @@ h3 {
441 background-clip: text; /* 标准语法 */ 447 background-clip: text; /* 标准语法 */
442 -webkit-text-fill-color: transparent; /* 文字颜色透明 */ 448 -webkit-text-fill-color: transparent; /* 文字颜色透明 */
443 } 449 }
450
451 .hkimg {
452 width: 19px;
453 height: 14px;
454 position: absolute;
455 top: 0;
456 }
444 </style> 457 </style>
......
...@@ -4,7 +4,10 @@ ...@@ -4,7 +4,10 @@
4 <div class="mt20" /> 4 <div class="mt20" />
5 <el-card class="mt20 mb20"> 5 <el-card class="mt20 mb20">
6 6
7 <h3 style="text-align: center">{{ language == 0 ? query.name : query.enName }}</h3> 7 <h3 style="text-align: center">
8 <!-- {{ // language == 0 ? query.name : query.enName }}-->
9 {{ language == 0 ? query.code != 'tw' ? query.name : '中华台北' : query.enName }}
10 </h3>
8 <div class="mt20" /> 11 <div class="mt20" />
9 <el-table :data="rank" stripe> 12 <el-table :data="rank" stripe>
10 <el-table-column :label="language==0?'组别':'Group'" align="center" min-width="200"> 13 <el-table-column :label="language==0?'组别':'Group'" align="center" min-width="200">
...@@ -20,8 +23,13 @@ ...@@ -20,8 +23,13 @@
20 <el-table-column :label="language==0?'国家':'Country'" prop="name"> 23 <el-table-column :label="language==0?'国家':'Country'" prop="name">
21 <template #default="scope"> 24 <template #default="scope">
22 <div> 25 <div>
23 <span :class="`flag-icon flag-icon-${query.code}`" /> 26 <!-- <span :class="`flag-icon flag-icon-${query.code}`" />-->
24 {{ language == 0 ? scope.row.countryName : scope.row.countryNameEn }} 27 <span v-if="query.code!='tw'" :class="`flag-icon flag-icon-${query.code}`" />
28 <span v-else class="flag-icon">
29 <img :src="hkImage" alt="" class="hkimg">
30 </span>
31 {{ language == 0 ? query.code != 'tw' ? scope.row.name : '中华台北' : scope.row.enName }}
32 <!-- {{ language == 0 ? scope.row.countryName : scope.row.countryNameEn }}-->
25 </div> 33 </div>
26 </template> 34 </template>
27 </el-table-column> 35 </el-table-column>
...@@ -49,6 +57,7 @@ ...@@ -49,6 +57,7 @@
49 import { onMounted, ref } from 'vue' 57 import { onMounted, ref } from 'vue'
50 import * as match from '@/apiPc/match' 58 import * as match from '@/apiPc/match'
51 import { useRoute } from 'vue-router' 59 import { useRoute } from 'vue-router'
60 import hkImage from '@/assets/nationalFlag/hk.png'
52 61
53 const route = useRoute() 62 const route = useRoute()
54 import { useStorage } from '@vueuse/core/index' 63 import { useStorage } from '@vueuse/core/index'
...@@ -227,4 +236,11 @@ h3 { ...@@ -227,4 +236,11 @@ h3 {
227 .w15 { 236 .w15 {
228 width: 15%; 237 width: 15%;
229 } 238 }
239
240 .hkimg {
241 width: 19px;
242 height: 14px;
243 position: absolute;
244 top: 0;
245 }
230 </style> 246 </style>
......
...@@ -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 },
...@@ -83,11 +83,10 @@ export default defineConfig(({ mode, command }) => { ...@@ -83,11 +83,10 @@ export default defineConfig(({ mode, command }) => {
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.118:8081/', 86 // target: 'http://192.168.1.213:8081/',
87 // target: 'http://192.168.1.129: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 target: 'http://7s18uou5jv74.ngrok.xiaomiqiu123.top/',
91 changeOrigin: true, 90 changeOrigin: true,
92 rewrite: (p) => p.replace(/^\/dev-api/, '') 91 rewrite: (p) => p.replace(/^\/dev-api/, '')
93 }, 92 },
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!