Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
jijin
/
dance-pc
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
4a7f9634
authored
2024-08-23 10:55:04 +0800
by
zhangmeng
Browse Files
Options
Browse Files
Tag
Download
Plain Diff
Merge branch 'refs/heads/购票修改' into dev
2 parents
dab5de01
d5cb2ae2
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
137 additions
and
40 deletions
src/viewsPc/booking/pay.vue
src/viewsPc/booking/ticket/confirmOrder.vue
src/viewsPc/booking/ticket/index.vue
src/viewsPc/center/myReservation.vue
src/viewsPc/booking/pay.vue
View file @
4a7f963
...
...
@@ -133,6 +133,12 @@
form
.
extJson
?.
ticketDate
?.
ticketType
==
1
?
'~'
+
dayjs
(
form
?.
extJson
?.
ticketDate
?.
ticketEnd
).
format
(
'YYYY-MM-DD'
)
:
''
}}
</el-col>
<el-col
v-if=
"form?.extJson?.ticketDate?.isCountSale==1"
>
{{
language
==
0
?
`满${form?.extJson?.ticketDate.counts
}
人优惠`
:
`Discount for up to ${form?.extJson?.ticketDate.counts
}
people`
}}
<
span
v
-
if
=
"language == 0"
>
{{
form
?.
extJson
?.
ticketDate
.
discount
}}
折
<
/span
>
<
span
v
-
else
>
{{
(
10
-
form
?.
extJson
?.
ticketDate
.
discount
)
*
10
+
'%'
}}
off
<
/span
>
<
/el-col
>
<!--
<
el
-
col
>-->
<!--
{{
-->
<!--
language
==
0
?
'原价票'
:
'Cost Ticket'
-->
...
...
src/viewsPc/booking/ticket/confirmOrder.vue
View file @
4a7f963
...
...
@@ -104,6 +104,21 @@
x
{{
customerArr_b
.
length
}}
{{
languageFormat
(
language
,
"张"
,
"tickets"
)
}}
</div>
<div
v-if=
"tickType.isCountSale == 1"
style=
"border-top: 1px solid #dcdfe6;margin-top: 20px"
>
<p>
{{
language
==
0
?
`满${tickType.counts
}
人优惠`
:
`Discount for up to ${tickType.counts
}
people`
}}
<
/p
>
<
div
class
=
"ticket"
>
<
div
v
-
if
=
"language==0"
style
=
"color: orange;font-weight: 600"
>
{{
tickType
.
discount
}}
折
<
/div
>
<
div
v
-
else
style
=
"color: orange;font-weight: 600"
>
{{
(
10
-
tickType
.
discount
)
*
10
+
'%'
}}
off
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
div
class
=
"detail_b"
>
<
div
class
=
"sum_txt"
>
...
...
@@ -114,6 +129,13 @@
{{
language
==
0
?
(
price
.
total_cn
*
1
).
toFixed
(
2
)
:
(
price
.
total_en
*
1
).
toFixed
(
2
)
}}
<
span
v
-
if
=
"tickType.isCountSale==1&&orderForm.message.length>=tickType.counts"
class
=
"total"
>
{{
language
==
0
?
"¥"
:
"€"
}}
{{
language
==
0
?
(
price
.
total_cnY
*
1
).
toFixed
(
2
)
:
(
price
.
total_enY
*
1
).
toFixed
(
2
)
}}
<
/span
>
<
/div
>
<
/div
>
<
/div
>
...
...
@@ -187,7 +209,9 @@ const orderForm = ref({
}
)
const
price
=
ref
({
total_en
:
0
,
total_cn
:
0
total_cn
:
0
,
total_enY
:
0
,
total_cnY
:
0
,
}
)
const
tickType
=
ref
({
}
)
const
matchType
=
ref
({
}
)
...
...
@@ -195,21 +219,21 @@ const rules = ref({
contacts
:
[
{
required
:
true
,
message
:
languageFormat
(
language
,
"请输入联系人"
,
"Please enter the contact person"
),
message
:
languageFormat
(
language
.
value
,
"请输入联系人"
,
"Please enter the contact person"
),
trigger
:
"blur"
}
,
],
phone
:
[
{
required
:
true
,
message
:
languageFormat
(
language
,
"请输入联系电话"
,
"Please enter the contact phone number"
),
message
:
languageFormat
(
language
.
value
,
"请输入联系电话"
,
"Please enter the contact phone number"
),
trigger
:
"blur"
}
,
],
message
:
[
{
required
:
true
,
message
:
languageFormat
(
language
,
"请选择观众"
,
"Please select the audience"
),
message
:
languageFormat
(
language
.
value
,
"请选择观众"
,
"Please select the audience"
),
trigger
:
"blur"
}
,
],
...
...
@@ -235,17 +259,26 @@ function changeGroup(e) {
// 计算价格
price
.
value
=
{
total_en
:
0
,
total_cn
:
0
total_cn
:
0
,
total_enY
:
0
,
total_cnY
:
0
,
}
orderForm
.
value
.
message
.
forEach
(
v
=>
{
if
(
v
.
discount
)
{
price
.
value
.
total_cn
+=
(
tickType
.
value
.
rebatePrice
*
1
)
price
.
value
.
total_en
+=
(
tickType
.
value
.
rebatePriceEn
*
1
)
price
.
value
.
total_cnY
=
price
.
value
.
total_cn
+=
(
tickType
.
value
.
rebatePrice
*
1
)
price
.
value
.
total_enY
=
price
.
value
.
total_en
+=
(
tickType
.
value
.
rebatePriceEn
*
1
)
}
else
{
price
.
value
.
total_cn
+=
(
tickType
.
value
.
price
*
1
)
price
.
value
.
total_en
+=
(
tickType
.
value
.
priceEn
*
1
)
price
.
value
.
total_cn
Y
=
price
.
value
.
total_cn
+=
(
tickType
.
value
.
price
*
1
)
price
.
value
.
total_en
Y
=
price
.
value
.
total_en
+=
(
tickType
.
value
.
priceEn
*
1
)
}
}
)
// 计算购票优惠
if
(
tickType
.
value
.
isCountSale
==
1
&&
orderForm
.
value
.
message
.
length
>=
tickType
.
value
.
counts
)
{
price
.
value
.
total_cn
=
((
price
.
value
.
total_cn
*
(
tickType
.
value
.
discount
*
10
))
/
100
).
toFixed
(
2
)
price
.
value
.
total_en
=
((
price
.
value
.
total_en
*
(
tickType
.
value
.
discount
*
10
))
/
100
).
toFixed
(
2
)
}
}
console
.
log
(
orderForm
.
value
.
message
)
...
...
@@ -368,6 +401,12 @@ div {
box
-
sizing
:
border
-
box
;
}
.
total
{
color
:
#
9
f9c9c
;
font
-
size
:
20
px
;
text
-
decoration
:
line
-
through
}
.
qrcode
{
width
:
200
px
;
height
:
200
px
;
...
...
src/viewsPc/booking/ticket/index.vue
View file @
4a7f963
...
...
@@ -60,64 +60,94 @@
</van-count-down>
</div>
<div
v-else
>
<!-- 时间 -->
<!-- 票档 -->
<div
class=
"select_item_box"
>
<div
class=
"label"
>
{{ triggerLanguage(language, "场次", "Session") }}
{{ triggerLanguage(language, "票档", "Tickets") }} :
</div>
<div
v-if=
"matchForm.ticketLayout"
>
<span
style=
"color: #493ceb;cursor:pointer;font-weight:600;font-size: 14px"
@
click=
"show=true"
>
<span
style=
"color: red;font-size: 18px"
>
*
</span>
{{
language == 0 ? '点击查看场馆布局' : 'View Venue Layout'
}}
</span>
</div>
</div>
<div
class=
"select_item_box"
>
<div
class=
"select_item"
>
<div
v-for=
"(it, index) in tick
List
"
v-for=
"(it, index) in tick
Class
"
:key=
"index"
:class=
"[
it.id == selectForm.id ? 'tagActive' : 'tag',
it.isView==0?'forbid':''
it.id == selectForm.latId ? 'tagActive' : 'tag',
]"
@
click=
"select
Tick
(it)"
@
click=
"select(it)"
>
{{ it.name }}
<span
v-if=
"it.ticketType==1"
class=
"tao"
>
{{
language == 0 ? '套票' : 'Package ticket'
}}
</span>
{{ it.name }}
</div>
</div>
</div>
<!-- 票档 -->
<!-- 时间 -->
<div
class=
"select_item_box"
>
<div
class=
"label"
>
{{ triggerLanguage(language, "
票档", "Tickets") }}
{{ triggerLanguage(language, "
场次", "Session") }} :
</div>
</div>
<div
class=
"select_item_box"
>
<div
class=
"select_item"
>
<div
v-for=
"(it, index) in tick
Class
"
v-for=
"(it, index) in tick
List
"
:key=
"index"
:class=
"[
it.id == selectForm.latId ? 'tagActive' : 'tag',
it.id == selectForm.id ? 'tagActive' : 'tag',
it.isView==0?'forbid':''
]"
@
click=
"select(it)"
@
click=
"select
Tick
(it)"
>
{{ it.name }}
{{ it.name }}
<span
v-if=
"it.ticketType==1"
class=
"tao"
>
{{
language == 0 ? '套票' : 'Package ticket'
}}
</span>
</div>
</div>
</div>
<!-- 价格 -->
<div
class=
"select_item_box"
>
<div
class=
"label"
>
{{ triggerLanguage(language, '价格', "Price") }}
{{ triggerLanguage(language, '价格', "Price") }}
:
</div>
</div>
<div
class=
"select_item_box"
>
<div
class=
"select_item"
>
<div
class=
"tagActive"
style=
"min-width: 80px"
>
{{ language == 0 ? '¥' : '€' }} {{ language == 0 ? selectForm.price : selectForm.priceEn }}
</div>
</div>
</div>
<!-- 购票备注-->
<div
v-if=
"matchForm.ticketRemark"
class=
"select_item_box"
>
<div
class=
"label"
>
{{
triggerLanguage(language, '购票备注', "Ticket Purchase Note")
}} :
</div>
</div>
<div
v-if=
"matchForm.ticketRemark"
class=
"select_item_box"
>
<div
class=
"select_item"
>
{{ matchForm.ticketRemark }}
</div>
</div>
<div
v-if=
"endTime<=0"
class=
"btn"
style=
"margin-left: 40px;opacity: 0.5;cursor: not-allowed;"
<div
v-if=
"endTime<=0"
class=
"btn"
style=
"margin-left: 40px;opacity: 0.5;cursor: not-allowed;
margin-top: 10px
"
@
click=
"toSelectClosed"
>
{{
triggerLanguage(language, "售票结束", "Sale closed")
}}
</div>
<div
v-else
class=
"btn"
style=
"margin-left: 40px"
@
click=
"toSelectSeat()"
>
<div
v-else
class=
"btn"
style=
"margin-left: 40px
;margin-top: 10px
"
@
click=
"toSelectSeat()"
>
{{
triggerLanguage(language, "立即购票", "Buy tickets now")
}}
...
...
@@ -135,6 +165,12 @@
</div>
<div
v-show=
"active==1"
class=
"rich_content"
v-html=
"matchForm.ticketDes"
/>
<div
v-show=
"active==2"
class=
"rich_content"
v-html=
"matchForm.ticketNotice"
/>
<el-dialog
v-model=
"show"
title=
""
width=
"1000px"
>
<div>
<img
:src=
"fillImgUrl(matchForm.ticketLayout)"
alt=
""
style=
"width: 100%"
>
</div>
</el-dialog>
</div>
</div>
</template>
...
...
@@ -157,6 +193,7 @@ const useStore = useUserStore()
const
user
=
computed
(()
=>
useUserStore
().
user
)
const
route
=
useRoute
();
const
router
=
useRouter
();
const
show
=
ref
(
false
)
const
activeId
=
ref
(
route
.
params
.
activeId
)
const
flag
=
ref
(
false
)
const
active
=
ref
(
1
)
...
...
@@ -202,15 +239,21 @@ async function getTicketList() {
// 根据票档获取场次
async
function
getTicketListType
()
{
let
arr
=
[]
const
res
=
await
listApi
({
latId
:
selectForm
.
value
.
latId
})
tickList
.
value
=
res
.
rows
flag
.
value
=
tickList
.
value
.
some
((
item
)
=>
{
return
item
.
isView
==
0
})
tickList
.
value
.
forEach
(
v
=>
{
if
(
flag
.
value
&&
v
.
ticketType
==
1
)
v
.
isView
=
0
})
for
(
const
v
of
res
.
rows
)
{
if
(
v
.
isView
==
0
)
arr
.
push
(
v
)
}
for
(
const
v
of
res
.
rows
)
{
if
(
arr
.
length
>
0
&&
v
.
ticketType
==
1
)
{
for
(
const
c
of
arr
)
{
if
((
c
.
ticketStart
>=
v
.
ticketStart
)
&&
(
c
.
ticketStart
<=
v
.
ticketEnd
))
{
v
.
isView
=
0
}
}
}
}
}
function
select
(
v
)
{
...
...
@@ -314,7 +357,7 @@ function toSelectClosed() {
font-size
:
28px
;
color
:
#000000
;
line-height
:
1.6
;
margin-bottom
:
34
px
;
margin-bottom
:
15
px
;
}
.time
{
...
...
@@ -330,12 +373,12 @@ function toSelectClosed() {
font-size
:
16px
;
color
:
#000
;
line-height
:
24px
;
margin-bottom
:
33
px
;
margin-bottom
:
15
px
;
}
.select_item_box
{
display
:
flex
;
margin-bottom
:
3
0px
;
margin-bottom
:
1
0px
;
&:last-child
{
margin-bottom
:
0
;
...
...
@@ -468,9 +511,12 @@ function toSelectClosed() {
margin-right
:
15px
;
}
.info
{
padding
:
0
;
.info
{
padding
:
0
;
.title
{
font-size
:
14px
;
margin
:
0
;
font-size
:
14px
;
margin
:
0
;
}
.time
,
.address
,
.label
,
.tip
{
...
...
@@ -501,7 +547,9 @@ function toSelectClosed() {
font-size
:
12px
;
}
}
.btn
{
display
:
inline-block
;
.btn
{
display
:
inline-block
;
margin
:
10px
0
0
;
background
:
linear-gradient
(
270deg
,
#493ceb
0%
,
#8623fc
100%
);
border-radius
:
20px
;
...
...
src/viewsPc/center/myReservation.vue
View file @
4a7f963
...
...
@@ -38,6 +38,9 @@
<span
v-if=
"b.status == '7'"
class=
"bg-danger"
>
{{
language
==
0
?
'退款审核中'
:
'Refund in review'
}}
</span>
<span
v-if=
"b.status == '-1'"
class=
"bg-blue"
>
{{
language
==
0
?
'已核销'
:
'Completed'
}}
</span>
</div>
<el-row
align=
"middle"
class=
"pd20 mt10"
justify=
"space-between"
>
...
...
@@ -140,6 +143,7 @@
<el-button
v-if=
"b.viewStatus==5"
class=
"mb10"
plain
round
size=
"small"
type=
""
@
click=
"unsubscribe(b)"
>
{{
language
==
0
?
'退订'
:
'Unsubscribe'
}}
</el-button>
</div>
</el-col>
</el-row>
...
...
Write
Preview
Styling with
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment