Merge branch 'devmatch' into 中分支
# Conflicts: # src/viewsPc/index.vue # src/viewsPc/index_en.vue # src/viewsPc/match/detail_en.vue # vite.config.js
Showing
28 changed files
with
817 additions
and
574 deletions
| ... | @@ -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 | }) | ... | ... |
src/assets/nationalFlag/hk.jpg
0 → 100644
44.6 KB
src/assets/nationalFlag/hk.png
0 → 100644
91.7 KB
| ... | @@ -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 | <!-- <!–成绩–>--> |
| 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 | }, | ... | ... |
-
Please register or sign in to post a comment