Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
J
jz_Travel
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
Merge Requests
0
Merge Requests
0
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
zhengke
jz_Travel
Commits
edb6452a
Commit
edb6452a
authored
Feb 20, 2025
by
youjie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
下载签证文件
parent
d6f3ca9e
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
85 additions
and
78 deletions
+85
-78
visaDetail.vue
pages/visa/visaDetail.vue
+81
-5
visaList.vue
pages/visa/visaList.vue
+2
-41
visa_Reserve.vue
pages/visa/visa_Reserve.vue
+2
-32
No files found.
pages/visa/visaDetail.vue
View file @
edb6452a
<
template
>
<view
class=
"jz_LineDetail"
v-if=
"dataList.Name"
>
<scroll-view
scroll-y=
"true"
style=
"height: 1px; flex: 1; box-sizing: border-box"
@
scroll=
"scroll"
>
<scroll-view
scroll-y=
"true"
style=
"height: 1px; flex: 1; box-sizing: border-box
;
"
@
scroll=
"scroll"
>
<view
class=
"jz_TopImg"
>
<view
class=
"media"
:style=
"
{ opacity: 100 - boxOption + '%' }">
<u-swiper
:list=
"[dataList.CoverImageList[0]]"
:effect3d=
"false"
:height=
"535"
:interval=
"5000"
:border-radius=
"0"
...
...
@@ -109,7 +109,7 @@
<view
class=
"row-sbas-n visaDetailNumBox"
>
<view
class=
"visaDetailNum active3 col"
>
<view>
停留天数
</view>
<view>
{{ dataList.StayDays?dataList.StayDays
:'-' }}天
</view>
<view>
{{ dataList.StayDays?dataList.StayDays
+'天':'-' }}
</view>
</view>
<view
class=
"visaDetailNum active4 col"
>
<view>
签证效期
</view>
...
...
@@ -158,10 +158,10 @@
</view>
<view
style=
"display: flex; align-items: center"
>
<!-- #ifdef MP-WEIXIN -->
<button
@
click=
"
downloadTripPlanHandler"
class=
"jz_ConButton"
v-if=
"d.length>3
"
>
<button
@
click=
"
showDownload=true"
class=
"jz_ConButton"
v-if=
"dataList.VisaProductInfo&&dataList.VisaProductInfo.DownloadMaterialsFileList.length>0
"
>
<img
style=
"width: 36rpx; height: 38rpx"
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1695376860000_131.png"
alt=
""
/>
<view
style=
"color: #111111; font-size: 22rpx"
>
下载
行程
</view>
<view
style=
"color: #111111; font-size: 22rpx"
>
下载
文件
</view>
</button>
<!-- #endif -->
<!-- #ifdef MP-ALIPAY -->
...
...
@@ -210,6 +210,37 @@
}"
@
click=
"showSalePreviwe=false"
>
确定
</u-button>
</view>
</u-popup>
<u-popup
v-model=
"showDownload"
mode=
"bottom"
border-radius=
"50"
length=
"60%"
:safe-area-inset-bottom=
"true"
>
<view>
<view
style=
"font-size: 17px;text-align: center;padding: 20px 0;"
>
下载签证文件
</view>
<scroll-view
scroll-x=
"true"
style=
"width: 100%;height: 43vh;"
>
<view
class=
"SaleBox"
>
<view
v-for=
"(item,index) in dataList.VisaProductInfo.DownloadMaterialsFileList"
:key=
"index"
class=
"SaleText"
>
<view>
{{ item.Name }}
</view>
<view>
<button
@
click=
"downloadTripPlanHandler(item)"
class=
"jz_ConButton"
v-if=
"dataList.VisaProductInfo&&dataList.VisaProductInfo.DownloadMaterialsFileList.length>0"
>
<img
style=
"width: 36rpx; height: 38rpx"
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1695376860000_131.png"
alt=
""
/>
<view
style=
"color: #111111; font-size: 22rpx"
>
下载
</view>
</button>
</view>
</view>
</view>
</scroll-view>
<u-button
size=
"80"
:ripple=
"true"
shape=
"circle"
:custom-style=
"{
backgroundColor: '#333',
height: '80rpx',
color: '#fff',
fontSize: '14px',
margin: '0 auto',
width: '90vw',
}"
@
click=
"showDownload=false"
>
确定
</u-button>
</view>
</u-popup>
</view>
</template>
<
script
>
...
...
@@ -223,7 +254,8 @@
},
data
()
{
return
{
pageTitle
:
"线路详情"
,
showDownload
:
false
,
pageTitle
:
"签证详情"
,
showStartCities
:
false
,
crCount
:
1
,
etCount
:
0
,
...
...
@@ -396,6 +428,49 @@
this
.
mainColor
=
this
.
$uiConfig
.
mainColor
;
},
methods
:
{
downloadTripPlanHandler
(
item
)
{
if
(
this
.
isDownloading
)
return
;
let
that
=
this
uni
.
showLoading
({
title
:
'这可能需要30秒,请耐心等待'
})
this
.
isDownloading
=
true
let
url
=
item
.
Url
let
fileName
=
`
${
item
.
Name
.
replace
(
/
\s
+/g
,
""
).
replaceAll
(
"/"
,
""
)}
`
let
suffix
=
item
.
Url
.
split
(
'.'
)
console
.
log
(
fileName
,
"fileName"
);
const
filePath
=
wx
.
env
.
USER_DATA_PATH
+
`/
${
fileName
}
.
${
suffix
[
suffix
.
length
-
1
]}
`
uni
.
downloadFile
({
url
:
url
,
filePath
,
success
:
(
res
)
=>
{
wx
.
openDocument
({
filePath
:
filePath
,
showMenu
:
true
,
success
:
fres
=>
{
uni
.
hideLoading
()
that
.
isDownloading
=
false
},
fail
:
fres
=>
{
console
.
log
(
'downloadTripPlanHandler_打开失败'
,
fres
)
that
.
downloadFailed
(
'打开失败,请重试。如果仍然失败,请联系销售索要签证文件'
)
},
})
},
fail
(
err
)
{
console
.
log
(
"downloadTripPlanHandler_fail"
,
err
)
that
.
downloadFailed
(
'下载失败,请重试。如果仍然失败,请联系销售索要签证文件'
+
err
)
},
});
},
downloadFailed
(
msg
)
{
uni
.
showToast
({
icon
:
'none'
,
title
:
msg
})
this
.
isDownloading
=
false
;
},
calcPzCouponHandler
(){
this
.
couponList
.
forEach
((
x
)
=>
{
if
(
x
.
expansionModel
.
denomination
>
0
){
...
...
@@ -1591,6 +1666,7 @@
.visaDetailDesBox
{
background
:
#fff
;
margin-top
:
20rpx
;
padding-bottom
:
40rpx
;
}
.visaDetailDes
{
padding
:
0
41rpx
;
...
...
pages/visa/visaList.vue
View file @
edb6452a
<
template
>
<scroll-view
:scroll-y=
"true"
@
scroll=
"scrollHandler"
@
scrolltoupper=
"scrollTopHandler"
style=
"height: 100vh"
>
<!--
<view
class=
"headStatus"
v-if=
"scrollTop > 50"
:style=
"[
headStyle,
{
zIndex: scrollTop
<
10
?
'
unset
'
:
2
,
opacity:
scrollTop
<
10
?
'
100
'
:
scrollTop
,
},
]"
>
<view
class=
"title"
v-if=
"scrollTop > 50"
>
{{
pageTitle
}}
</view>
</view>
-->
<view
class=
"headStatus column"
v-if=
"scrollTop > 50&&false"
style=
"background: #F3F1EF;"
>
<view
class=
"visa_search relative"
:style=
"[
headStyle,
{
zIndex: scrollTop
<
10
?
'
unset
'
:
2
,
opacity:
scrollTop
<
10
?
'
100
'
:
scrollTop
,
},
]"
>
<view
class=
"search-box"
style=
"padding: 0 30rpx;top: 0;"
>
<view
style=
"width: 1px; flex: 1;"
>
<u-search
placeholder=
"输入目的地"
v-model=
"msg.Name"
@
search=
"getList(1)"
input-align=
"left"
:value=
"msg.Name"
text-color=
"#111"
bg-color=
"rgba(0,0,0,0)"
:show-action=
"false"
></u-search>
</view>
</view>
</view>
<view
style=
"padding: 0 30rpx 0 30rpx;"
>
<view
class=
"uDropdownBox row-sbas-n items-center"
style=
"margin-top: 0;border-bottom: 1rpx solid #F3F1EF;"
>
<view
class=
"uDropdownText col row justify-center"
style=
"text-align: center;"
v-for=
"(item,index) in optionsTitle"
@
click=
"clickType(index)"
:class=
"[showType==index?'active':'']"
>
<text>
{{
item
}}
</text>
<u-icon
style=
"margin-left: 5rpx;"
:name=
"showType==index?'arrow-up':'arrow-down'"
:color=
"showType==index?'#B99846':'#444'"
size=
"30"
/>
</view>
</view>
</view>
</view>
<view>
<view
class=
"visa_Box column"
>
<view
class=
"visa_search"
>
<view
class=
"search-box"
style=
"margin-top: 24rpx;"
>
...
...
@@ -147,7 +108,7 @@
<u-picker
mode=
"selector"
v-model=
"showEntryType"
:default-selector=
"[0]"
:range=
"EntryTypeList"
@
confirm=
'(e)=>{changeDown(e,2)}'
range-key=
"label"
@
input=
"showType=null"
></u-picker>
<auth
v-if=
"showAuth&&is_show_auth==1"
@
changeuserinfo=
"reloadUserinfo"
@
gbAuth=
"gbAuth"
></auth>
</
scroll-
view>
</view>
</template>
<
script
>
import
auth
from
"@/components/auth/index.vue"
;
...
...
pages/visa/visa_Reserve.vue
View file @
edb6452a
...
...
@@ -470,7 +470,7 @@
disabled
placeholder=
"输入"
/>
</view>
<view
class=
"addPnum"
@
click=
"editNum(
2
)"
>
<view
class=
"addPnum"
@
click=
"editNum()"
>
<image
style=
"width: 27rpx;height: 27rpx;display: block;"
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638751245974558349.png"
/>
</view>
...
...
@@ -841,39 +841,10 @@
this
.
initCountry
()
},
methods
:
{
//计算日历里的节假日
resDate
(
dates
)
{
if
(
dates
.
length
==
0
)
return
;
for
(
var
i
=
0
;
i
<
dates
.
length
;
i
++
)
{
for
(
var
j
=
0
;
j
<
this
.
festival
.
length
;
j
++
)
{
if
(
this
.
festival
[
j
].
year
==
dates
[
i
].
year
&&
this
.
festival
[
j
].
month
==
dates
[
i
].
month
)
{
for
(
var
k
=
0
;
k
<
this
.
festival
[
j
].
festival
.
length
;
k
++
)
{
if
(
dates
[
i
].
day
==
this
.
festival
[
j
].
festival
[
k
].
day
)
{
dates
[
i
].
name
=
this
.
festival
[
j
].
festival
[
k
].
name
;
}
}
}
}
}
console
.
log
(
dates
.
length
,
'====='
);
return
dates
.
le
;
},
//获取周几
getWeek
(
date
)
{
var
weekDay
=
[
'周日'
,
'周一'
,
'周二'
,
'周三'
,
'周四'
,
'周五'
,
'周六'
];
var
myDate
=
new
Date
(
Date
.
parse
(
date
));
return
weekDay
[
myDate
.
getDay
()];
},
editNum
(
type
)
{
if
(
type
==
1
)
{
if
(
this
.
orderMsg
.
AdultPeopleNum
>
1
)
this
.
orderMsg
.
AdultPeopleNum
--
;
}
if
(
type
==
2
)
{
}
else
{
this
.
orderMsg
.
AdultPeopleNum
++
;
}
this
.
calcMoney
()
...
...
@@ -1084,7 +1055,6 @@
let
dates
=
getBeforeDate
(
-
res
.
data
.
BookAdvance
,
new
Date
())
this
.
orderMsg
.
EnterCountryTime
=
dates
// this.setDates()
this
.
calcMoney
()
// this.getCouponActivityHandler(res.data)
}
...
...
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