Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
B
bigwood
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
罗超
bigwood
Commits
d5d69925
Commit
d5d69925
authored
Apr 18, 2025
by
罗超
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改
parent
99eb9318
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
269 additions
and
123 deletions
+269
-123
quasar.conf.js
quasar.conf.js
+2
-2
login-bg.jpg
src/assets/img/login-bg.jpg
+0
-0
ListTable.vue
src/components/hotel/list/ListTable.vue
+1
-1
passbookHead.vue
src/components/passbook/passbookHead.vue
+1
-1
rebate.vue
src/components/passbook/rebate.vue
+1
-1
redEnvelope.vue
src/components/passbook/redEnvelope.vue
+12
-13
useDetails.vue
src/components/passbook/useDetails.vue
+1
-1
DidaListTable.vue
src/components/scattered/dida/DidaListTable.vue
+1
-1
ListTable.vue
src/components/scattered/list/ListTable.vue
+1
-1
index.ts
src/i18n/en-US/index.ts
+13
-6
index.ts
src/i18n/ja-RB/index.ts
+8
-1
index.ts
src/i18n/zh-SW/index.ts
+9
-2
index.ts
src/i18n/zh-TW/index.ts
+9
-2
MainLayout.vue
src/layouts/MainLayout.vue
+52
-16
login.vue
src/pages/auth/login.vue
+2
-1
passbook.vue
src/pages/passbook/passbook.vue
+7
-4
OrderPayList.vue
src/pages/travel/OrderPayList.vue
+5
-5
OrderList.vue
src/pages/travel/components/OrderList.vue
+2
-0
addOrder.vue
src/pages/travel/components/addOrder.vue
+6
-4
productHeader.vue
src/pages/travel/components/productHeader.vue
+20
-5
productList.vue
src/pages/travel/components/productList.vue
+116
-56
No files found.
quasar.conf.js
View file @
d5d69925
...
...
@@ -64,13 +64,13 @@ module.exports = configure(function (ctx) {
publicPath
:
ctx
.
dev
?
'/'
:
'./'
,
env
:
ctx
.
dev
?
{
BASE_APP_API
:
'http
://192.168.5.46:
/api/common/post'
,
BASE_APP_API
:
'http
s://reborn.oytour.com
/api/common/post'
,
JAVA_URL_API
:
'http://efficient.oytour.com'
,
VERSION
:
require
(
'./package.json'
).
version
,
}
:
{
BASE_APP_API
:
"http://reborn.oytour.com/api/common/post"
,
//和平使用
BASE_APP_API
:
"http
s
://reborn.oytour.com/api/common/post"
,
//和平使用
JAVA_URL_API
:
'http://efficient.oytour.com'
,
VERSION
:
require
(
'./package.json'
).
version
},
...
...
src/assets/img/login-bg.jpg
0 → 100644
View file @
d5d69925
2.57 MB
src/components/hotel/list/ListTable.vue
View file @
d5d69925
...
...
@@ -256,7 +256,7 @@ export default defineComponent({
name
:
"LowerPrice"
,
label
:
t
(
"hotel.col.four"
),
field
:
(
row
:
any
)
=>
`
¥
${
row
.
LowerPrice
.
toFixed
(
2
)}${
$t
(
"unit.jp"
)}
${
t
(
"hotel.col.low"
)}
`
,
`
Rp
${
row
.
LowerPrice
.
toFixed
(
2
)}${
$t
(
"unit.jp"
)}
${
t
(
"hotel.col.low"
)}
`
,
},
],
showPriceList
:
false
,
...
...
src/components/passbook/passbookHead.vue
View file @
d5d69925
...
...
@@ -23,7 +23,7 @@
<div
class=
"text-white"
style=
"opacity: .5;"
>
{{
$t
(
'v104.passbook.available'
)
}}
</div>
<div
class=
"row items-end text-white"
style=
"position: relative;"
>
<div
:class=
"[$q.platform.is.desktop?'fz22':'fz32']"
>
¥
Rp
</div>
<div
class=
"fz40 q-pl-md "
>
<span
style=
"position: relative;z-index: 2;"
:style=
"
{'top':$q.platform.is.desktop?'11px':'4px'}">
{{
Client_Balance
.
toFixed
(
2
)
}}
</span>
...
...
src/components/passbook/rebate.vue
View file @
d5d69925
...
...
@@ -39,7 +39,7 @@
<div>
{{
item
.
teamSeries
}}
</div>
<div>
{{
item
.
peopleNum
}}
</div>
<div><span
:class=
"
{'text-red':item.money>0}">
<template
v-if=
"item.type==1"
>
+
</
template
>
<
template
v-else-if=
"item.type==2"
>
-
</
template
>
¥
{{item.money}}
</span></div>
<
template
v-else-if=
"item.type==2"
>
-
</
template
>
Rp
{{item.money}}
</span></div>
</div>
</div>
<div
class=
"text-center q-pb-lg"
...
...
src/components/passbook/redEnvelope.vue
View file @
d5d69925
...
...
@@ -16,7 +16,7 @@
<div
class=
"row items-end"
:class=
"[$q.platform.is.desktop ? 'q-pt-sm q-pb-lg' : 'justify-center']"
>
<span
class=
"fz12"
></span>
<div
class=
"fz32 q-pl-sm"
>
<span
style=
"position: relative; top: 9px"
>
{{
datainfo
.
Amount
}}
</span>
<span
style=
"position: relative; top: 9px"
>
{{
datainfo
.
GuestNum
?
datainfo
.
GuestNum
:
datainfo
.
Amount
}}
</span>
</div>
</div>
</div>
...
...
@@ -24,7 +24,7 @@
<div
:class=
"[$q.platform.is.desktop ? 'q-pb-sm' : 'col-6 text-center']"
>
<div
class=
"fz14 text-grey-7"
:class=
"[$q.platform.is.desktop ? 'q-pb-xs q-pt-lg' : '']"
>
{{
$t
(
'v104.passbook.titles.text10'
)
}}
</div>
<div
class=
"row items-end"
:class=
"[$q.platform.is.desktop ? 'q-pt-sm q-pb-lg' : 'justify-center']"
>
<span
class=
"fz12"
>
¥
</span>
<span
class=
"fz12"
>
Rp
</span>
<div
class=
"fz32 q-pl-sm"
>
<span
style=
"position: relative; top: 9px"
>
{{
datainfo
.
TotalMoney
}}
</span>
</div>
...
...
@@ -35,20 +35,20 @@
<q-separator
v-if=
"$q.platform.is.mobile"
color=
"grey-3"
/>
</div>
<div
:class=
"[$q.platform.is.desktop ? 'q-pb-lg q-px-lg' : 'q-py-md q-px-md']"
>
<span>
{{
$t
(
'v104.passbook.titles.text11'
)
}}
:
</span><span
class=
"q-pl-lg"
></span><span
class=
"fz32 q-pl-sm"
>
{{
datainfo
.
Amount
.
toFixed
(
0
)
}}
</span>
<span>
{{
$t
(
'v104.passbook.titles.text11'
)
}}
:
</span><span
class=
"q-pl-lg"
></span><span
class=
"fz32 q-pl-sm"
>
{{
datainfo
.
CurGuestNum
?
datainfo
.
CurGuestNum
:
datainfo
.
Amount
.
toFixed
(
0
)
}}
</span>
</div>
<div
class=
"q-pt-sm"
:class=
"[$q.platform.is.desktop ? 'q-px-lg' : 'q-px-md']"
>
<div
class=
"q-pb-lg"
v-for=
"(item, index) in datainfo.RatioList"
:key=
"index"
:class=
"[$q.platform.is.desktop ? 'row items-center no-wrap' : 'column']"
>
<div
class=
"col"
>
<template
v-if=
"$q.platform.is.desktop"
>
<q-linear-progress
style=
"border-radius: 15px"
v-if=
"item.percent > 1"
stripe
rounded
size=
"20px"
:value=
"item.width / 100
0
"
color=
"orange-9"
/>
<q-linear-progress
style=
"border-radius: 15px"
v-else-if=
"item.percent
<
1
"
stripe
rounded
size=
"20px"
:value=
"item.width / 100
0
"
color=
"red-5"
/>
<q-linear-progress
style=
"border-radius: 15px"
v-if=
"item.percent > 1"
stripe
rounded
size=
"20px"
:value=
"item.width / 100"
color=
"orange-9"
/>
<q-linear-progress
style=
"border-radius: 15px"
v-else-if=
"item.percent
<
1
"
stripe
rounded
size=
"20px"
:value=
"item.width / 100"
color=
"red-5"
/>
<q-linear-progress
style=
"border-radius: 15px"
v-else
stripe
rounded
size=
"20px"
:value=
"item.width / 1000"
color=
"cyan-4"
/>
</
template
>
<
template
v-else
>
<q-linear-progress
style=
"border-radius: 15px"
v-if=
"item.percent > 1"
stripe
rounded
size=
"10px"
:value=
"item.width / 100
0
"
color=
"orange-9"
/>
<q-linear-progress
style=
"border-radius: 15px"
v-else-if=
"item.percent
<
1
"
stripe
rounded
size=
"10px"
:value=
"item.width / 100
0
"
color=
"red-5"
/>
<q-linear-progress
style=
"border-radius: 15px"
v-else
stripe
rounded
size=
"10px"
:value=
"item.width / 100
0
"
color=
"cyan-4"
/>
<q-linear-progress
style=
"border-radius: 15px"
v-if=
"item.percent > 1"
stripe
rounded
size=
"10px"
:value=
"item.width / 100"
color=
"orange-9"
/>
<q-linear-progress
style=
"border-radius: 15px"
v-else-if=
"item.percent
<
1
"
stripe
rounded
size=
"10px"
:value=
"item.width / 100"
color=
"red-5"
/>
<q-linear-progress
style=
"border-radius: 15px"
v-else
stripe
rounded
size=
"10px"
:value=
"item.width / 100"
color=
"cyan-4"
/>
</
template
>
</div>
<div
class=
"row items-center no-wrap"
:class=
"[$q.platform.is.desktop ? 'col-4 q-ml-lg' : 'col']"
>
...
...
@@ -71,9 +71,9 @@
<
template
v-if=
"item.percent < 1"
>
{{
$t
(
'v104.passbook.titles.text13'
)
}}
{{
item
.
Money
-
datainfo
.
GuestNum
}}
/
{{
$t
(
'travel.people'
)
}}
,
{{
item
.
Money
-
datainfo
.
Cur
GuestNum
}}
/
{{
$t
(
'travel.people'
)
}}
,
{{
$t
(
'v104.passbook.titles.text14'
)
}}
¥
{{
item
.
Ratio
}}
/
{{
$t
(
'travel.people'
)
}}
Rp
{{
item
.
Ratio
.
toLocaleString
()
}}
/
{{
$t
(
'travel.people'
)
}}
</
template
>
</span>
...
...
@@ -87,7 +87,7 @@
{{ $t('v104.passbook.titles.text17') }}
</span>
{{ $t('v104.passbook.titles.text16') }}
{{ item.Ratio }}/{{ $t('travel.people') }}
{{ item.Ratio
.toLocaleString()
}}/{{ $t('travel.people') }}
</span>
</div>
</div>
...
...
@@ -96,10 +96,9 @@
</div>
</template>
<
script
lang=
"ts"
>
import
{
ref
,
toRefs
,
onMounted
,
onBeforeUnmount
}
from
'vue'
import
{
ref
,
toRefs
,
onMounted
,
onBeforeUnmount
,
defineComponent
,
reactive
}
from
'vue'
import
{
useRouter
}
from
'vue-router'
import
{
useQuasar
}
from
'quasar'
import
{
defineComponent
,
ref
,
reactive
,
toRefs
}
from
'vue'
import
{
useI18n
}
from
'vue-i18n'
import
*
as
echarts
from
'echarts'
import
rebatehead
from
'../../components/passbook/rebate/rebatehead.vue'
...
...
src/components/passbook/useDetails.vue
View file @
d5d69925
...
...
@@ -56,7 +56,7 @@
<div>
{{
item
.
description
}}
</div>
<div><span
:class=
"
{'text-red':item.money>0}">
<template
v-if=
"item.type==1"
>
+
</
template
>
<
template
v-else-if=
"item.type==2"
>
-
</
template
>
¥
{{item.money}}
</span></div>
Rp
{{item.money}}
</span></div>
</div>
</template>
<
template
v-else
>
...
...
src/components/scattered/dida/DidaListTable.vue
View file @
d5d69925
...
...
@@ -284,7 +284,7 @@ export default defineComponent({
name
:
"LowerPrice"
,
label
:
t
(
"hotel.col.four"
),
field
:
(
row
:
any
)
=>
`
¥
${
row
.
LowerPrice
.
toFixed
(
2
)}${
t
(
"unit.jp"
)}
{t('hotel.col.low')}`
,
`
Rp
${
row
.
LowerPrice
.
toFixed
(
2
)}${
t
(
"unit.jp"
)}
{t('hotel.col.low')}`
,
},
],
showPriceList
:
false
,
...
...
src/components/scattered/list/ListTable.vue
View file @
d5d69925
...
...
@@ -290,7 +290,7 @@ export default defineComponent({
name
:
"LowerPrice"
,
label
:
t
(
"hotel.col.four"
),
field
:
(
row
:
any
)
=>
`
¥
${
row
.
LowerPrice
.
toFixed
(
2
)}${
t
(
"unit.jp"
)}
{t('hotel.col.low')}`
,
`
Rp
${
row
.
LowerPrice
.
toFixed
(
2
)}${
t
(
"unit.jp"
)}
{t('hotel.col.low')}`
,
},
],
showPriceList
:
false
,
...
...
src/i18n/en-US/index.ts
View file @
d5d69925
export
default
{
lanuage
:
'Language'
,
failed
:
'
Execu
tion failed'
,
success
:
'
Execu
tion successful'
,
failed
:
'
Opera
tion failed'
,
success
:
'
Opera
tion successful'
,
appsuffix
:
'PIC Interbank Booking System'
,
siteName
:
'Interbank Booking System'
,
language
:
'Language'
,
...
...
@@ -359,7 +359,7 @@ export default {
three
:
'Remittance instructions'
},
travel
:
{
first
:
'
Consortium
'
,
first
:
'
Group Information
'
,
second
:
'Group Detail'
,
three
:
'Booking list'
,
four
:
'Settlement'
,
...
...
@@ -390,8 +390,15 @@ export default {
}
},
travel
:
{
startCityList
:{
all
:
'All'
,
ss
:
'Surabaya'
,
ml
:
'Medan'
,
yjd
:
'Jakarta'
,
bld
:
'Bali'
},
type
:
'Type'
,
b2cPirce
:
'
Normal Pp
rice'
,
b2cPirce
:
'
Selling P
rice'
,
b2bPirce
:
'Member Price'
,
MiddlePrice
:
'Consortium'
,
priceDetail
:
'Price Details'
,
...
...
@@ -462,7 +469,7 @@ export default {
CSeat
:
'Business Class'
,
FSeat
:
'First Class'
,
priceInfo
:
'Price information'
,
midPrice
:
'Consortium
Price
'
,
midPrice
:
'Consortium'
,
BabyChargePrice
:
"Children's Surcharge"
,
OldManChargePrice
:
'Elderly Surcharge'
,
VisaPrice
:
'Visa'
,
...
...
@@ -1527,7 +1534,7 @@ export default {
text9
:
'Number of people this year'
,
text10
:
'Accumulated revenue'
,
text11
:
'Month Number'
,
text12
:
'Activated
, expected revenue
'
,
text12
:
'Activated'
,
text13
:
'Still lacking'
,
text14
:
'Estimated Revenue'
,
text15
:
'Monthly transaction amount has been reached'
,
...
...
src/i18n/ja-RB/index.ts
View file @
d5d69925
...
...
@@ -388,6 +388,13 @@ export default {
}
},
travel
:
{
startCityList
:{
all
:
'すべて'
,
ss
:
'泗水'
,
ml
:
'棉蘭'
,
yjd
:
'雅加達'
,
bld
:
'巴厘島'
},
type
:
'タイプ'
,
b2cPirce
:
'B2C価格'
,
b2bPirce
:
'B2B価格'
,
...
...
@@ -1525,7 +1532,7 @@ export default {
text9
:
'本年の累計人数'
,
text10
:
'累積収益'
,
text11
:
'現在の人数'
,
text12
:
'活性化しています
,収益見込み
'
,
text12
:
'活性化しています'
,
text13
:
'まだまだ'
,
text14
:
'収益予想'
,
text15
:
'月の取引額はすでに達しました'
,
...
...
src/i18n/zh-SW/index.ts
View file @
d5d69925
...
...
@@ -389,6 +389,13 @@ export default {
},
travel
:
{
startCityList
:{
all
:
'全部'
,
ss
:
'泗水'
,
ml
:
'棉蘭'
,
yjd
:
'雅加達'
,
bld
:
'巴厘島'
},
type
:
'类型'
,
b2cPirce
:
'直客价格'
,
b2bPirce
:
'代理价格'
,
...
...
@@ -1528,10 +1535,10 @@ export default {
text9
:
'本年累计人数'
,
text10
:
'累计收益'
,
text11
:
'当前人数'
,
text12
:
'已激活
,预计收益
'
,
text12
:
'已激活'
,
text13
:
'还差'
,
text14
:
'预计收益'
,
text15
:
'月交
易额
已达'
,
text15
:
'月交
客数
已达'
,
text16
:
'返'
,
text17
:
'以上'
,
},
...
...
src/i18n/zh-TW/index.ts
View file @
d5d69925
...
...
@@ -389,6 +389,13 @@ export default {
}
},
travel
:
{
startCityList
:{
all
:
'全部'
,
ss
:
'泗水'
,
ml
:
'棉蘭'
,
yjd
:
'雅加達'
,
bld
:
'巴厘島'
},
b2cPirce
:
'直客價格'
,
b2bPirce
:
'代理價格'
,
MiddlePrice
:
'中心價'
,
...
...
@@ -1530,10 +1537,10 @@ export default {
text9
:
'本年累計人數'
,
text10
:
'累計收益'
,
text11
:
'當前人數'
,
text12
:
'已激活
,預計收益
'
,
text12
:
'已激活'
,
text13
:
'還差'
,
text14
:
'預計收益'
,
text15
:
'月交
易額
已達'
,
text15
:
'月交
客數
已達'
,
text16
:
'返'
,
text17
:
'以上'
,
},
...
...
src/layouts/MainLayout.vue
View file @
d5d69925
...
...
@@ -74,7 +74,7 @@
<div
class=
"text-center"
style=
"font-size: 12px; font-weight: 400;"
>
<span
class=
"text-grey-500"
>
{{
$t
(
'notice.column.releaseDate'
)
}}
{{
noticeDialogData
.
notice_date
}}
</span>
</div>
<div
style=
"overflow-y: auto;"
class=
"text-body2 q-mt-md full-width col q-pa-md"
v-html=
"noticeDialogData.content"
></div>
<div
style=
"overflow-y: auto;"
class=
"text-body2 q-mt-md full-width col q-pa-md
notice-content
"
v-html=
"noticeDialogData.content"
></div>
<div
class=
"q-mt-md row items-center"
v-if=
"noticeDialogData.fileList.length > 0"
>
<span
class=
"text-grey-500"
>
{{
$t
(
'notice.detail.file'
)
}}
:
</span>
<q-btn
v-for=
"(x,i) in noticeDialogData.fileList"
class=
"q-mr-md"
dense
:key=
"i"
color=
"primary"
flat
unelevated
:label=
"x.name"
@
click=
"downloadFile(x)"
/>
...
...
@@ -121,22 +121,20 @@ export default {
})
const
{
t
}
=
useI18n
()
const
downloadFile
=
async
(
file
:
any
)
=>
{
const
url
=
'http://imgfile.oytour.com/'
+
file
.
url
try
{
const
response
=
await
fetch
(
url
)
const
blob
=
await
response
.
blob
()
const
filename
=
url
.
split
(
'/'
).
pop
()
||
'download'
const
link
=
document
.
createElement
(
'a'
)
link
.
href
=
window
.
URL
.
createObjectURL
(
blob
)
link
.
download
=
filename
document
.
body
.
appendChild
(
link
)
link
.
click
()
document
.
body
.
removeChild
(
link
)
window
.
URL
.
revokeObjectURL
(
link
.
href
)
}
catch
(
error
)
{
//message.errorMsg(t('downloadFailed'))
}
const
url
=
`http://
${
window
.
location
.
host
}
/webfile/
${
file
.
url
}
`
try
{
const
filename
=
url
.
split
(
'/'
).
pop
()
||
'download'
const
link
=
document
.
createElement
(
'a'
)
link
.
href
=
url
link
.
download
=
filename
document
.
body
.
appendChild
(
link
)
link
.
click
()
document
.
body
.
removeChild
(
link
)
}
catch
(
error
)
{
message
.
errorMsg
(
t
(
'downloadFailed'
))
}
}
// 根据域名渲染logo
data
.
isDomainName_PIC
=
inject
(
DirtionmaryHelper
.
DOMAIN_NAME
)
...
...
@@ -274,4 +272,42 @@ export default {
position
:
absolute
;
margin-top
:
-40px
;
}
.notice-content
h1
{
font-size
:
unset
!important
;
line-height
:
unset
!important
;
font-weight
:
bold
!important
;
}
.notice-content
h2
{
font-size
:
unset
!important
;
line-height
:
unset
!important
;
font-weight
:
bold
!important
;
}
.notice-content
h3
{
font-size
:
unset
!important
;
line-height
:
unset
!important
;
font-weight
:
bold
!important
;
}
.notice-content
h4
{
font-size
:
unset
!important
;
line-height
:
unset
!important
;
font-weight
:
bold
!important
;
}
.notice-content
h5
{
font-size
:
unset
!important
;
line-height
:
unset
!important
;
font-weight
:
bold
!important
;
}
.notice-content
p
{
font-size
:
unset
!important
;
line-height
:
unset
!important
;
}
.notice-content
ul
{
font-size
:
unset
!important
;
line-height
:
unset
!important
;
}
.notice-content
ol
{
font-size
:
unset
!important
;
line-height
:
unset
!important
;
}
</
style
>
src/pages/auth/login.vue
View file @
d5d69925
...
...
@@ -132,7 +132,8 @@ export default defineComponent({
width
:
450px
;
}
.right-bg
{
background-image
:
url(../../assets/images/login-right-bg.png)
;
background-image
:
url(../../assets/img/login-bg.jpg)
;
/* url(../../assets/images/login-right-bg.png); */
background-position-x
:
left
;
background-position-y
:
center
;
background-repeat
:
no-repeat
;
...
...
src/pages/passbook/passbook.vue
View file @
d5d69925
...
...
@@ -3,7 +3,7 @@
<div
class=
"q-mt-sm q-mb-lg"
:class=
"[$q.platform.is.desktop ? 'passbook-form' : '']"
:style=
"
{ width: $q.platform.is.mobile ? '100%' : '' }">
<transition-group
v-if=
"!isUseDetails"
appear
enter-active-class=
"animated fadeInRight"
leave-active-class=
"animated fadeInLeft"
>
<template
v-if=
"MonthObj && datainfo"
>
<
passbookHead
:dataNum=
"datainfo ? datainfo.Client_Balance : 0"
/
>
<
!--
<passbookHead
:dataNum=
"datainfo ? datainfo.Client_Balance : 0"
/>
--
>
<!--
<rebate/>
-->
<redEnvelope
:Obj=
"MonthObj"
:info=
"datainfo"
/>
</
template
>
...
...
@@ -94,11 +94,14 @@ export default defineComponent({
}
})
data
.
datainfo
.
RatioList
=
ratioListBase
.
value
data
.
datainfo
.
GuestNum
=
data
.
datainfo
.
GuestNum
?
data
.
datainfo
.
GuestNum
:
0
data
.
datainfo
.
RatioList
.
forEach
(
item
=>
{
item
.
percent
=
data
.
datainfo
.
GuestNum
/
item
.
Money
//data.datainfo.GuestNum = data.datainfo.GuestNum ? data.datainfo.GuestNum : 0
data
.
datainfo
.
RatioList
.
forEach
((
item
,
index
)
=>
{
const
maxNum
=
item
.
Money
item
.
percent
=
parseFloat
((
data
.
datainfo
.
CurGuestNum
/
maxNum
).
toFixed
(
2
))
item
.
width
=
item
.
percent
*
100
})
console
.
log
(
data
.
datainfo
.
RatioList
)
data
.
yMoney1
=
data
.
yMoney1
.
concat
([
'-'
])
data
.
MonthObj
=
{
...
...
src/pages/travel/OrderPayList.vue
View file @
d5d69925
...
...
@@ -105,11 +105,11 @@ export default defineComponent({
{
name
:
'ContactName'
,
label
:
t
(
'travel.ContactNamePay'
),
align
:
'left'
,
field
:
'ContactName'
},
{
name
:
'EntGuestNum'
,
label
:
t
(
'travel.EntGuestNum'
),
align
:
'left'
,
field
:
'EntGuestNum'
},
{
name
:
'GuestNum'
,
label
:
t
(
'travel.GuestNum'
),
align
:
'left'
,
field
:
'GuestNum'
},
{
name
:
'PreferPrice'
,
label
:
t
(
'travel.PreferPricePay'
),
align
:
'left'
,
field
:
'PreferPrice'
},
{
name
:
'Refund'
,
label
:
t
(
'travel.Refund'
),
align
:
'left'
,
field
:
'Refund'
},
{
name
:
'Income'
,
label
:
t
(
'travel.Income'
),
align
:
'left'
,
field
:
'Income'
},
{
name
:
'DiscountMoney'
,
label
:
t
(
'travel.DiscountMoney'
),
align
:
'left'
,
field
:
'DiscountMoney'
},
{
name
:
'CommissionRate'
,
label
:
t
(
'travel.CommissionRate'
),
align
:
'left'
,
field
:
'CommissionRate'
},
{
name
:
'PreferPrice'
,
label
:
t
(
'travel.PreferPricePay'
),
align
:
'left'
,
field
:
'PreferPrice'
,
format
:
(
val
:
any
)
=>
val
.
toLocaleString
()
},
{
name
:
'Refund'
,
label
:
t
(
'travel.Refund'
),
align
:
'left'
,
field
:
'Refund'
,
format
:
(
val
:
any
)
=>
val
.
toLocaleString
()
},
{
name
:
'Income'
,
label
:
t
(
'travel.Income'
),
align
:
'left'
,
field
:
'Income'
,
format
:
(
val
:
any
)
=>
val
.
toLocaleString
()
},
{
name
:
'DiscountMoney'
,
label
:
t
(
'travel.DiscountMoney'
),
align
:
'left'
,
field
:
'DiscountMoney'
,
format
:
(
val
:
any
)
=>
val
.
toLocaleString
()
},
{
name
:
'CommissionRate'
,
label
:
t
(
'travel.CommissionRate'
),
align
:
'left'
,
field
:
'CommissionRate'
,
format
:
(
val
:
any
)
=>
val
.
toLocaleString
()
},
])
const
{
query
,
params
}
=
useRoute
()
const
search
=
{
...
...
src/pages/travel/components/OrderList.vue
View file @
d5d69925
...
...
@@ -289,12 +289,14 @@ export default defineComponent({
field
:
"tC_Price"
,
label
:
t
(
"travel.tC_Price"
),
align
:
"left"
,
format
:
(
val
:
any
)
=>
val
.
toLocaleString
(),
},
{
name
:
"unit_Price"
,
field
:
"unit_Price"
,
label
:
t
(
"travel.unit_Price"
),
align
:
"left"
,
format
:
(
val
:
any
)
=>
val
.
toLocaleString
(),
},
{
name
:
"tradeWay"
,
...
...
src/pages/travel/components/addOrder.vue
View file @
d5d69925
...
...
@@ -216,7 +216,7 @@
></q-input>
</div>
</div>
<div
class=
"row"
>
<
!--
<
div
class=
"row"
>
<div
class=
"col"
>
<div
class=
"title"
>
{{
$t
(
"travel.FSeatNum"
)
}}
</div>
<q-input
...
...
@@ -243,7 +243,7 @@
@
update:model-value=
"getNumber()"
></q-input>
</div>
</div>
</div>
-->
<!--
<div
class=
"row"
>
<div
class=
"col"
>
<div
class=
"title"
>
{{
$t
(
'travel.ContactName'
)
}}
</div>
...
...
@@ -285,7 +285,7 @@
<div
class=
"row justify-between items-center"
>
<div
class=
"title"
>
{{
$t
(
"travel.PreferPrice"
)
}}
</div>
<div
class=
"text-subtitle2 text-weight-bolder text-primary"
>
{{
addMsg
.
PreferPrice
}}
{{
addMsg
.
PreferPrice
.
toLocaleString
()
}}
</div>
</div>
<div
class=
"row justify-end"
>
...
...
@@ -312,10 +312,12 @@ import travelService from "../../../api/travel";
import
{
ApiResult
}
from
"../../../@types/enumHelper"
;
import
message
from
"../../../utils/message"
;
import
{
getStoreGetter
}
from
"../../../store/utils"
;
import
{
useI18n
}
from
'vue-i18n'
export
default
defineComponent
({
props
:
[
"info"
],
components
:
{},
setup
(
props
,
context
)
{
const
{
t
}
=
useI18n
()
const
addMsg
=
reactive
({
OrderSource
:
2
,
price
:
0
,
...
...
@@ -760,7 +762,7 @@ export default defineComponent({
.
then
((
r
)
=>
{
data
.
loading
=
false
;
if
(
r
.
data
.
resultCode
==
ApiResult
.
SUCCESS
)
{
message
.
successMsg
(
r
.
data
.
message
);
message
.
successMsg
(
t
(
'success'
)
);
context
.
emit
(
"close"
);
}
else
{
message
.
errorMsg
(
r
.
data
.
message
);
...
...
src/pages/travel/components/productHeader.vue
View file @
d5d69925
...
...
@@ -10,7 +10,8 @@
</q-popup-proxy>
</q-field>
<q-input
class=
"q-mr-md q-ml-md"
v-model=
"search.TCID"
dense
standout
:label=
"$t('travel.id')"
/>
<q-input
class=
"q-mr-md q-ml-md"
v-model=
"search.StartAddress"
dense
standout
:label=
"$t('travel.startCity')"
/>
<!--
<q-input
class=
"q-mr-md q-ml-md"
v-model=
"search.StartAddress"
dense
standout
:label=
"$t('travel.startCity')"
/>
-->
<q-select
class=
"q-mr-md q-ml-md"
style=
"min-width: 190px"
v-model=
"defaultStartCity"
dense
standout
@
update:model-value=
"startCityHandler"
:label=
"$t('travel.startCity')"
:options=
"startCityOptions"
/>
</
template
>
<div
class=
"col"
></div>
<q-btn
unelevated
class=
"bg-grey-3 hover q-mr-md"
:title=
"$t('morequery')"
v-if=
"$q.platform.is.mobile"
>
...
...
@@ -37,8 +38,7 @@
<q-input
class=
"q-mr-md q-ml-md"
v-model=
"search.TCID"
dense
standout
:label=
"$t('travel.id')"
/>
</div>
<div
class=
"q-my-md"
>
<q-input
class=
"q-mr-md q-ml-md"
v-model=
"search.StartAddress"
dense
standout
:label=
"$t('travel.startCity')"
/>
<q-select
class=
"q-mr-md q-ml-md"
style=
"min-width: 190px"
v-model=
"defaultStartCity"
dense
standout
@
update:model-value=
"startCityHandler"
:label=
"$t('travel.startCity')"
:options=
"startCityOptions"
/>
</div>
</q-card>
</q-popup-proxy>
...
...
@@ -52,10 +52,11 @@ import { DirtionmaryHelper } from '../../../config/dictionary'
import
{
computed
,
defineComponent
,
inject
,
reactive
,
ref
}
from
'vue'
import
{
date
}
from
'quasar'
import
svgIcon
from
'src/components/global/svg-icon.vue'
import
{
useI18n
}
from
'vue-i18n'
export
default
defineComponent
({
components
:
{
svgIcon
},
setup
(
props
)
{
const
{
t
}
=
useI18n
()
const
qDateProxy
=
ref
(
null
)
as
any
const
realSearch
=
inject
(
DirtionmaryHelper
.
TRAVEL_ORDER_OBJ
)
as
any
const
search
=
reactive
(
JSON
.
parse
(
JSON
.
stringify
(
realSearch
)))
...
...
@@ -68,6 +69,14 @@ export default defineComponent({
if
(
search
.
SelectEndDate
!=
''
)
cnt
++
return
cnt
})
const
startCityOptions
=
ref
([
{
label
:
t
(
'travel.startCityList.all'
),
value
:
''
},
{
label
:
t
(
'travel.startCityList.ss'
),
value
:
'Surabaya'
},
{
label
:
t
(
'travel.startCityList.ml'
),
value
:
'Medan'
},
{
label
:
t
(
'travel.startCityList.yjd'
),
value
:
'Jakarta'
},
{
label
:
t
(
'travel.startCityList.bld'
),
value
:
'Bali'
},
])
const
defaultStartCity
=
ref
(
startCityOptions
.
value
[
0
])
// dateRange.to = date.formatDate(date.addToDate(new Date(), { days: 50 }), 'YYYY/MM/DD')
// dateRange.from = date.formatDate(date.addToDate(new Date(), { days: 20 }), 'YYYY/MM/DD')
const
dateRangeFormat
=
ref
(
`
${
dateRange
.
from
}
-
${
dateRange
.
to
}
`
)
...
...
@@ -96,6 +105,10 @@ export default defineComponent({
optionsFn
(
cd
:
any
)
{
return
cd
>=
date
.
formatDate
(
date
.
adjustDate
(
new
Date
(),
{
year
:
2000
,
month
:
1
,
days
:
1
}),
'YYYY/MM/DD'
)
},
startCityHandler
(
e
:
any
)
{
console
.
log
(
e
)
search
.
StartAddress
=
e
.
value
}
}
return
{
...
methods
,
...
...
@@ -103,7 +116,9 @@ export default defineComponent({
dateRange
,
dateRangeFormat
,
searchCnt
,
canHide
canHide
,
startCityOptions
,
defaultStartCity
}
}
})
...
...
src/pages/travel/components/productList.vue
View file @
d5d69925
<
template
>
<div>
<q-card
class=
"light-shadow q-pa-md bg-white rounded-borders q-mb-md"
flat
:class=
"$q.platform.is.desktop ? 'row' : ''"
v-for=
"(x, index) in orders"
>
<q-card
class=
"light-shadow q-pa-md bg-white rounded-borders q-mb-md"
flat
:class=
"$q.platform.is.desktop ? 'row' : ''"
v-for=
"(x, index) in orders"
>
<div
class=
"col-2 "
>
<div
class=
"mb-title"
>
<i
class=
"iconfont icon-biaoti1"
></i><span>
{{
$t
(
'travel.airInfo'
)
}}
</span>
...
...
@@ -16,7 +17,8 @@
{{
$t
(
'travel.groupInfo'
)
}}
:
<span>
{{
x
.
TCNUM
}}
(
{{
x
.
TCID
}}
)
</span>
</div>
<div>
<span
v-if=
"x.StartAddress"
class=
"q-mt-md text-weight-bold text-negative"
>
{{
x
.
StartAddress
}}
{{
$t
(
'travel.start'
)
}}
</span>
<span
v-if=
"x.StartAddress"
class=
"q-mt-md text-weight-bold text-negative"
>
{{
x
.
StartAddress
}}
{{
$t
(
'travel.start'
)
}}
</span>
</div>
</div>
<div
class=
"col-4"
:class=
"$q.platform.is.desktop ? 'q-pl-md' : ''"
>
...
...
@@ -27,9 +29,8 @@
<div
v-for=
"(subItem, subIndex) in x.SelfFlightList"
:key=
"subIndex"
class=
"TCL-flighInfoList"
>
<span
class=
"travelnowrap"
>
<span
class=
"TCL-FlightNumber"
>
{{
subItem
.
Flight_number
}}
</span>
<span
><template
v-if=
"subItem.DIATA"
>
(
{{
subItem
.
DIATA
}}
)
</
template
>
<
template
v-else
>
(
{{
subItem
.
dName
}}
)
</
template
></span
>
<span><template
v-if=
"subItem.DIATA"
>
(
{{
subItem
.
DIATA
}}
)
</
template
>
<
template
v-else
>
(
{{
subItem
.
dName
}}
)
</
template
></span>
{{ subItem.DepartureName }}
<!-- {{ subItem.StopoverName == '' ? '' : '-(' + subItem.StopoverIATA + ')' + subItem.StopoverName }} -->
<
template
v-if=
"subItem.ArrivalCityName"
>
...
...
@@ -53,33 +54,44 @@
<i
class=
"iconfont icon-jiage"
></i><span>
{{ $t('travel.airSeatInfo') }}
</span>
</div>
<div
class=
"mb bold"
>
<span
class=
"item-title"
>
{{ $t('travel.totalSeat') }}:
</span
><span
>
{{ x.YSeat }}
<span
class=
"item-title q-ml-md"
>
{{ $t('travel.unUseNum') }}:
</span>
{{ x.SurplusYSeatNum }}
</span
>
<span
class=
"item-title"
>
{{ $t('travel.totalSeat') }}:
</span>
<span>
{{ x.YSeat }}
</span>
</div>
<div
class=
"mb bold"
>
<span
class=
"item-title "
>
{{ $t('travel.unUseNum') }}:
</span>
<span>
{{ x.SurplusYSeatNum }}
</span>
</div>
<div
class=
"mb bold"
>
<span
class=
"item-title"
>
{{ $t('travel.status.waiting') }}:
</span
><span
>
0
</span>
<span
class=
"item-title"
>
{{ $t('travel.status.waiting') }}:
</span><span>
{{ x.WatingNum }}
</span>
</div>
<div
class=
"q-mt-sm"
v-if=
"isMember"
>
<span
class=
"item-title"
>
{{ $t('travel.returnMoney') }}:
</span><span
class=
"text-negative"
>
{{ x.RakeBackRatio }} / pax
</span>
<span
class=
"item-title"
>
{{ $t('travel.returnMoney') }}:
</span><span
class=
"text-negative"
>
{{
x.RakeBackRatio.toLocaleString() }} /
pax
</span>
</div>
<div
class=
"q-mt-sm"
v-if=
"isMember"
>
<span
class=
"item-title text-primary cursor-pointer"
>
{{ $t('travel.queryDetail') }}
</span>
<q-popup-proxy
:offset=
"[0, 10]"
>
<q-card
class=
""
flat
>
<div
class=
""
>
<div
class=
""
>
<div
class=
"row items-center bg-grey-2"
>
<div
class=
"q-pa-sm text-center col"
style=
"border-right: 1px solid #eee;"
>
{{ $t('travel.peopleRequired') }}
</div>
<div
class=
"q-pa-sm text-center col"
style=
"border-right: 1px solid #eee;"
>
{{ $t('travel.ratio') }}
</div>
<div
class=
"q-pa-sm text-center col"
style=
"border-right: 1px solid #eee;"
>
{{
$t('travel.peopleRequired')
}}
</div>
<div
class=
"q-pa-sm text-center col"
style=
"border-right: 1px solid #eee;"
>
{{ $t('travel.ratio') }}
</div>
</div>
<div
class=
"row items-center"
v-for=
"(item, index) in x.RakeBackList"
:key=
"index"
:class=
"{'bg-green-2': x.RakeBackRatio == item.Ratio}"
>
<div
class=
"q-pa-sm text-center col"
style=
"border-right: 1px solid #eee;"
>
{{ item.MinGuest }}-{{ item.MaxGuest }}
<div
class=
"row items-center"
v-for=
"(item, index) in x.RakeBackList"
:key=
"index"
:class=
"{ 'bg-green-2': x.RakeBackRatio == item.Ratio }"
>
<div
class=
"q-pa-sm text-center col"
style=
"border-right: 1px solid #eee;"
>
{{ item.MinGuest }}-{{
item.MaxGuest }}
pax
</div>
<div
class=
"q-pa-sm text-center col"
style=
"border-right: 1px solid #eee;"
>
{{ item.Ratio }}/pax
</div>
<div
class=
"q-pa-sm text-center col"
style=
"border-right: 1px solid #eee;"
>
{{ item.Ratio.toLocaleString() }}/pax
</div>
<!-- <div class="q-pa-sm text-center col">
<div class="bg-green" style="width:10px;height:10px;border-radius:50%; display: inline-block;" v-if="x.RakeBackRatio == item.Ratio"></div>
</div> -->
...
...
@@ -112,49 +124,62 @@
<i
class=
"iconfont icon-jiage"
></i><span>
{{ $t('travel.priceInfo') }}
</span>
</div>
<div
class=
"bold"
v-if=
"isMember"
>
<span
class=
"item-title"
>
{{ $t('travel.
MiddlePrice') }}:
</span>
{{ x.B2BMemberPrice
}}
<span
class=
"item-title"
>
{{ $t('travel.
midPrice') }}:
</span>
{{ x.MiddlePrice.toLocaleString()
}}
</div>
<div
class=
"q-mt-sm bold"
>
<span
class=
"item-title"
>
{{ $t('travel.b2bPirce') }}:
</span>
{{ x.B2BShowPrice }}
<span
class=
"item-title"
>
{{ $t('travel.b2bPirce') }}:
</span>
{{ x.B2BShowPrice
.toLocaleString()
}}
</div>
<div
class=
"q-mt-sm bold"
>
<span
class=
"item-title"
>
{{ $t('travel.b2cPirce') }}:
</span>
{{ x.B2CShowPrice }}
<span
class=
"item-title"
>
{{ $t('travel.b2cPirce') }}:
</span>
{{ x.B2CShowPrice
.toLocaleString()
}}
</div>
<div
class=
"q-mt-sm"
>
<q-btn
color=
"primary"
flat
dense
>
{{ $t('travel.priceDetail') }}
</q-btn>
<q-btn
color=
"primary"
flat
dense
>
{{ $t('travel.priceDetail') }}
</q-btn>
<q-popup-proxy
:offset=
"[0, 10]"
>
<q-card
style=
"min-width: 375px; width: 40vw;"
class=
"q-pa-none"
flat
>
<div
class=
"row items-center bg-grey-2"
>
<div
class=
"q-pa-sm text-center col"
style=
"border-right: 1px solid #eee;"
>
{{ $t('travel.type') }}
</div>
<div
class=
"q-pa-sm text-center col"
style=
"border-right: 1px solid #eee;"
v-if=
"isMember"
>
{{ $t('travel.MiddlePrice') }}
</div>
<div
class=
"q-pa-sm text-center col"
style=
"border-right: 1px solid #eee;"
>
{{ $t('travel.b2bPirce') }}
</div>
<div
class=
"q-pa-sm text-center col"
style=
"border-right: 1px solid #eee;"
v-if=
"isMember"
>
{{
$t('travel.MiddlePrice') }}
</div>
<div
class=
"q-pa-sm text-center col"
style=
"border-right: 1px solid #eee;"
>
{{ $t('travel.b2bPirce') }}
</div>
<div
class=
"q-pa-sm text-center col"
>
{{ $t('travel.b2cPirce') }}
</div>
</div>
<div
class=
"row items-center"
style=
"border-top: 1px solid #eee;"
>
<div
class=
"q-pa-sm text-center col"
style=
"border-right: 1px solid #eee;"
>
{{ $t('travel.man') }}
</div>
<div
class=
"q-pa-sm text-center col"
v-if=
"isMember"
style=
"border-right: 1px solid #eee;"
>
{{ x.MiddlePrice }}
</div>
<div
class=
"q-pa-sm text-center col"
style=
"border-right: 1px solid #eee;"
>
{{ x.B2BShowPrice }}
</div>
<div
class=
"q-pa-sm text-center col"
>
{{ x.B2CShowPrice }}
</div>
<div
class=
"q-pa-sm text-center col"
v-if=
"isMember"
style=
"border-right: 1px solid #eee;"
>
{{
x.MiddlePrice.toLocaleString() }}
</div>
<div
class=
"q-pa-sm text-center col"
style=
"border-right: 1px solid #eee;"
>
{{
x.B2BShowPrice.toLocaleString()
}}
</div>
<div
class=
"q-pa-sm text-center col"
>
{{ x.B2CShowPrice.toLocaleString() }}
</div>
</div>
<div
class=
"row items-center"
style=
"border-top: 1px solid #eee;"
>
<div
class=
"q-pa-sm text-center col"
style=
"border-right: 1px solid #eee;"
>
{{ $t('travel.childNeedBed') }}
</div>
<div
class=
"q-pa-sm text-center col"
v-if=
"isMember"
style=
"border-right: 1px solid #eee;"
>
{{ x.MiddlePrice+x.ChildNeedPrice }}
</div>
<div
class=
"q-pa-sm text-center col"
style=
"border-right: 1px solid #eee;"
>
{{ x.B2BShowPrice+x.ChildNeedPrice }}
</div>
<div
class=
"q-pa-sm text-center col"
>
{{ x.B2CShowPrice+x.ChildNeedPrice }}
</div>
<div
class=
"q-pa-sm text-center col"
style=
"border-right: 1px solid #eee;"
>
{{ $t('travel.childNeedBed')
}}
</div>
<div
class=
"q-pa-sm text-center col"
v-if=
"isMember"
style=
"border-right: 1px solid #eee;"
>
{{
(x.MiddlePrice + x.ChildNeedPrice).toLocaleString() }}
</div>
<div
class=
"q-pa-sm text-center col"
style=
"border-right: 1px solid #eee;"
>
{{
(x.B2BShowPrice + x.ChildNeedPrice).toLocaleString() }}
</div>
<div
class=
"q-pa-sm text-center col"
>
{{ (x.B2CShowPrice + x.ChildNeedPrice).toLocaleString() }}
</div>
</div>
<div
class=
"row items-center"
style=
"border-top: 1px solid #eee;"
>
<div
class=
"q-pa-sm text-center col"
style=
"border-right: 1px solid #eee;"
>
{{ $t('travel.NoNeedBed') }}
</div>
<div
class=
"q-pa-sm text-center col"
v-if=
"isMember"
style=
"border-right: 1px solid #eee;"
>
{{ x.MiddlePrice+x.ChildNoNeedPrice }}
</div>
<div
class=
"q-pa-sm text-center col"
style=
"border-right: 1px solid #eee;"
>
{{ x.B2BShowPrice+x.ChildNoNeedPrice }}
</div>
<div
class=
"q-pa-sm text-center col"
>
{{ x.B2CShowPrice+x.ChildNoNeedPrice }}
</div>
<div
class=
"q-pa-sm text-center col"
style=
"border-right: 1px solid #eee;"
>
{{ $t('travel.NoNeedBed') }}
</div>
<div
class=
"q-pa-sm text-center col"
v-if=
"isMember"
style=
"border-right: 1px solid #eee;"
>
{{
(x.MiddlePrice + x.ChildNoNeedPrice).toLocaleString() }}
</div>
<div
class=
"q-pa-sm text-center col"
style=
"border-right: 1px solid #eee;"
>
{{
(x.B2BShowPrice + x.ChildNoNeedPrice).toLocaleString() }}
</div>
<div
class=
"q-pa-sm text-center col"
>
{{ (x.B2CShowPrice + x.ChildNoNeedPrice).toLocaleString() }}
</div>
</div>
<div
class=
"row items-center"
style=
"border-top: 1px solid #eee;"
>
<div
class=
"q-pa-sm text-center col"
style=
"border-right: 1px solid #eee;"
>
{{ $t('travel.Baby') }}
</div>
<div
class=
"q-pa-sm text-center col"
>
{{ x.BabyPrice }}
</div>
<div
class=
"q-pa-sm text-center col"
style=
"border-right: 1px solid #eee;"
>
{{ $t('travel.Baby') }}
</div>
<div
class=
"q-pa-sm text-center col"
>
{{ x.BabyPrice.toLocaleString() }}
</div>
<div
class=
"q-pa-sm text-center col"
>
</div>
<div
class=
"q-pa-sm text-center col"
v-if=
"isMember"
>
</div>
</div>
...
...
@@ -162,15 +187,21 @@
{{ $t('travel.OtherPrice') }}
</div>
<div
class=
"row items-center bg-grey-2"
>
<div
class=
"q-pa-sm text-center col"
style=
"border-right: 1px solid #eee;"
>
{{ $t('travel.VisaPrice') }}
</div>
<div
class=
"q-pa-sm text-center col"
style=
"border-right: 1px solid #eee;"
>
{{ $t('travel.SingleRoomPrice') }}
</div>
<div
class=
"q-pa-sm text-center col"
>
{{ $t('travel.OtherPrice') }}
</div>
<div
class=
"q-pa-sm text-center col"
style=
"border-right: 1px solid #eee;"
>
{{ $t('travel.VisaPrice') }}
</div>
<div
class=
"q-pa-sm text-center col"
style=
"border-right: 1px solid #eee;"
>
{{
$t('travel.SingleRoomPrice') }}
</div>
<div
class=
"q-pa-sm text-center col"
>
{{ $t('travel.OtherPrice') }}
</div>
</div>
<div
class=
"row items-center"
style=
"border-top: 1px solid #eee;"
>
<div
class=
"q-pa-sm text-center col"
style=
"border-right: 1px solid #eee;"
>
{{ x.VisaPrice }}
</div>
<div
class=
"q-pa-sm text-center col"
style=
"border-right: 1px solid #eee;"
>
{{ x.SingleRoomPrice }}
</div>
<div
class=
"q-pa-sm text-center col"
>
{{ x.OtherPrice }}
</div>
<div
class=
"q-pa-sm text-center col"
style=
"border-right: 1px solid #eee;"
>
{{
x.VisaPrice.toLocaleString() }}
</div>
<div
class=
"q-pa-sm text-center col"
style=
"border-right: 1px solid #eee;"
>
{{
x.SingleRoomPrice.toLocaleString() }}
</div>
<div
class=
"q-pa-sm text-center col"
>
{{ x.OtherPrice.toLocaleString() }}
</div>
</div>
</q-card>
</q-popup-proxy>
...
...
@@ -197,8 +228,13 @@
</div> -->
</div>
<div
class=
"col-1"
>
<q-btn
color=
"primary"
flat
dense
@
click=
"ViewPayment(x)"
>
{{ $t('travel.buy') }}
</q-btn>
<q-btn
v-if=
"isMember"
flat
dense
:class=
"$q.platform.is.desktop ? 'q-mt-md' : 'q-ml-md'"
color=
"primary"
@
click=
"gotoUrl(x)"
>
{{ $t('travel.payOrder') }}
</q-btn>
<q-btn
color=
"primary"
:style=
"$q.platform.is.desktop ? 'width: 100%' : ''"
flat
dense
@
click=
"ViewPayment(x)"
>
{{
$t('travel.buy') }}
</q-btn>
<q-btn
v-if=
"isMember"
flat
dense
:style=
"$q.platform.is.desktop ? 'width: 100%' : ''"
:class=
"$q.platform.is.desktop ? 'q-mt-md' : 'q-ml-md'"
color=
"primary"
@
click=
"gotoUrl(x)"
>
{{
$t('travel.payOrder')
}}
</q-btn>
</div>
<q-dialog
width=
"900"
v-model=
"showItem"
trigger=
"click"
>
<div
class=
"TC_tripDetails"
style=
"width: 900px; background-color: #fff"
>
...
...
@@ -213,8 +249,11 @@
<tr
v-for=
"(fItem, fIndex) in dialogObj.SelfFlightList"
:key=
"fIndex"
style=
"text-align: center"
>
<td
class=
"_d_name _color_666"
>
<span
v-if=
"fIndex == 0"
>
{{ $t('Airticket.Air_go') }}
</span>
<span
v-else-if=
"fIndex == dialogObj.SelfFlightList.length - 1"
>
{{ $t('Airticket.Air_returnTrip') }}
</span>
<span
v-else-if=
"fIndex > 0 && fIndex != dialogObj.SelfFlightList.length - 1"
>
{{ $t('Airticket.Air_transit') }}
</span>
<span
v-else-if=
"fIndex == dialogObj.SelfFlightList.length - 1"
>
{{ $t('Airticket.Air_returnTrip')
}}
</span>
<span
v-else-if=
"fIndex > 0 && fIndex != dialogObj.SelfFlightList.length - 1"
>
{{
$t('Airticket.Air_transit')
}}
</span>
</td>
<td>
<div>
{{ fItem.Flight_number }}
</div>
...
...
@@ -229,7 +268,8 @@
</td>
<td>
<div>
{{ fItem.FlightArrivalTime }} {{ fItem.Arrival_time }}
<span
v-if=
"fItem.aDay && fItem.aDay != '' && fItem.aDay != '0'"
class=
"text-negative q-ml-sm f12"
>
+{{ fItem.aDay }}
</span>
<span
v-if=
"fItem.aDay && fItem.aDay != '' && fItem.aDay != '0'"
class=
"text-negative q-ml-sm f12"
>
+{{
fItem.aDay }}
</span>
</div>
<div
style=
"margin-top: 5px"
>
<span
v-if=
"fItem.AIATA"
>
({{ fItem.AIATA }})
</span>
...
...
@@ -245,7 +285,8 @@
</q-dialog>
</q-card>
<q-card
class=
"light-shadow q-pa-md bg-white rounded-borders q-mb-md"
v-if=
"pages.pageCount > 0"
flat
>
<q-pagination
class=
"full-width justify-end"
v-model=
"pages.pageIndex"
color=
"primary"
:max=
"pages.pageCount"
:input=
"true"
@
update:model-value=
"changePageHandler"
/>
<q-pagination
class=
"full-width justify-end"
v-model=
"pages.pageIndex"
color=
"primary"
:max=
"pages.pageCount"
:input=
"true"
@
update:model-value=
"changePageHandler"
/>
</q-card>
<q-inner-loading
:showing=
"loading"
:label=
"$t('loading')"
label-class=
"text-grey-6 f12"
/>
</div>
...
...
@@ -289,7 +330,7 @@ export default defineComponent({
const
{
t
}
=
useI18n
()
const
$q
=
useQuasar
()
const
userInfo
=
getStoreGetter
<
UserGetter
>
(
'user'
,
'getUser'
)
const
isMember
=
userInfo
.
isMember
==
1
const
isMember
=
userInfo
.
isMember
==
1
console
.
log
(
userInfo
)
watch
(
search
,
(
n
,
o
)
=>
{
if
(
data
.
loading
)
return
...
...
@@ -324,21 +365,21 @@ export default defineComponent({
data
.
showItem
=
true
data
.
dialogObj
=
item
},
async
download
(
url
:
string
)
{
download
(
url
:
string
)
{
url
=
url
.
replace
(
'http://imgfile.oytour.com/'
,
`http://
${
window
.
location
.
host
}
/webfile/`
)
url
=
url
.
replace
(
'https://imgfile.oytour.com/'
,
`https://
${
window
.
location
.
host
}
/webfile/`
)
try
{
const
response
=
await
fetch
(
url
)
const
blob
=
await
response
.
blob
()
const
filename
=
url
.
split
(
'/'
).
pop
()
||
'download'
const
link
=
document
.
createElement
(
'a'
)
link
.
href
=
window
.
URL
.
createObjectURL
(
blob
)
link
.
href
=
url
link
.
download
=
filename
document
.
body
.
appendChild
(
link
)
link
.
click
()
document
.
body
.
removeChild
(
link
)
window
.
URL
.
revokeObjectURL
(
link
.
href
)
}
catch
(
error
)
{
message
.
errorMsg
(
t
(
'downloadFailed'
))
}
},
closeAdd
()
{
data
.
showAddOrder
=
false
...
...
@@ -466,35 +507,43 @@ export default defineComponent({
border-color
:
#eee
!important
;
white-space
:
wrap
;
}
.light-border
.room-item
{
height
:
28px
;
line-height
:
28px
;
border-bottom
:
1px
solid
#eee
;
}
.light-border
.room-item
:last-child
{
border-bottom
:
none
;
}
.light-border
.max-hotelname
{
width
:
140px
;
height
:
28px
;
line-height
:
28px
;
}
.orderListDialog-title
{
position
:
relative
;
}
.orderListDialog-title
span
{
font-size
:
20px
;
}
.orderListDialog-close
{
position
:
absolute
;
right
:
0
;
top
:
-10px
;
font-size
:
26px
;
}
.orderListDialog-bg
{
background
:
#5098ff
;
border-radius
:
10px
;
}
.orderListDialog-img
{
background
:
url('../../../assets/images/wallet.png')
no-repeat
right
#5098ff
;
background-size
:
97px
100%
;
...
...
@@ -507,9 +556,11 @@ export default defineComponent({
max-height
:
400px
;
overflow-y
:
auto
;
}
.TC_tripDetails
.popper__arrow
::after
{
border-bottom-color
:
#ededed
!important
;
}
.TC_tripDetails
table
{
padding
:
10px
0
0
20px
;
background-color
:
#ededed
;
...
...
@@ -517,35 +568,44 @@ export default defineComponent({
border
:
1px
solid
#d2d2d2
;
font-size
:
12px
;
}
.TC_tripDetails
table
th
{
background-color
:
#ededed
;
padding
:
5px
;
}
.TC_tripDetails
table
td
{
background-color
:
#ffffff
;
padding
:
9px
15px
;
color
:
#333333
;
border
:
1px
solid
#d2d2d2
;
}
.TC_tripDetails
table
td
._d_name
{
background-color
:
#ededed
;
}
.TC_tripDetails
table
._color_666
{
color
:
#666666
;
}
.TC_tripDetails
table
tr
._color_666
th
{
padding
:
9px
15px
;
}
.mb-title
{
font-weight
:
bold
;
margin-bottom
:
10px
;
}
.mb
{
margin-bottom
:
10px
;
}
.bold
{
font-weight
:
bold
;
}
.item-title
{
font-size
:
12px
;
color
:
#666
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
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 comment