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
cb8925a4
Commit
cb8925a4
authored
Sep 20, 2023
by
罗超
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
临时保存
parent
7ec9bdf5
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
856 additions
and
182 deletions
+856
-182
launch.json
.hbuilderx/launch.json
+10
-5
App.vue
App.vue
+7
-1
iconfont.css
asset/font/iconfont.css
+190
-0
index.vue
components/tabbar/index.vue
+120
-11
jz_Line.vue
pages/jiuzhai/jz_Line.vue
+137
-52
jz_LineDetail.vue
pages/jiuzhai/jz_LineDetail.vue
+392
-113
No files found.
.hbuilderx/launch.json
View file @
cb8925a4
...
@@ -2,10 +2,15 @@
...
@@ -2,10 +2,15 @@
//
launchtype项可配置值为local或remote
,
local代表前端连本地云函数,remote代表前端连云端云函数
//
launchtype项可配置值为local或remote
,
local代表前端连本地云函数,remote代表前端连云端云函数
"version"
:
"0.0"
,
"version"
:
"0.0"
,
"configurations"
:
[{
"configurations"
:
[{
"type"
:
"uniCloud"
,
"default"
:
"default"
:
{
{
"launchtype"
:
"remote"
"launchtype"
:
"remote"
}
},
}
"mp-weixin"
:
{
"launchtype"
:
"remote"
},
"type"
:
"uniCloud"
}
]
]
}
}
App.vue
View file @
cb8925a4
...
@@ -104,7 +104,13 @@ export default {
...
@@ -104,7 +104,13 @@ export default {
<
style
lang=
"scss"
>
<
style
lang=
"scss"
>
@import
"uview-ui/index.scss"
;
@import
"uview-ui/index.scss"
;
@import
url("./asset/font/iconfont.css")
;
/* 0123456789首页订单我的暂无图片第天 */
@font-face
{
font-family
:
"nav-font"
;
src
:
url("//at.alicdn.com/wf/webfont/MQHUV6e56ce5/uWqIjWPWlbHR.woff2")
format
(
"woff2"
)
,
url("//at.alicdn.com/wf/webfont/MQHUV6e56ce5/uBscuKyX34mb.woff")
format
(
"woff"
);
font-display
:
swap
;
}
// @font-face {
// @font-face {
// font-family: "oswald";
// font-family: "oswald";
// src: url("https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/smallapp/Oswald-Regular.ttf");
// src: url("https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/smallapp/Oswald-Regular.ttf");
...
...
asset/font/iconfont.css
0 → 100644
View file @
cb8925a4
@font-face
{
font-family
:
"iconfont"
;
/* Project id 4020685 */
src
:
url('//at.alicdn.com/t/c/font_4020685_z6jm4lhdjzo.woff2?t=1695196671783')
format
(
'woff2'
),
url('//at.alicdn.com/t/c/font_4020685_z6jm4lhdjzo.woff?t=1695196671783')
format
(
'woff'
),
url('//at.alicdn.com/t/c/font_4020685_z6jm4lhdjzo.ttf?t=1695196671783')
format
(
'truetype'
);
}
.iconfont
{
font-family
:
"iconfont"
!important
;
font-size
:
16px
;
font-style
:
normal
;
-webkit-font-smoothing
:
antialiased
;
-moz-osx-font-smoothing
:
grayscale
;
}
.icon-jiaotong
:before
{
content
:
"\e620"
;
}
.icon-huodong
:before
{
content
:
"\e60e"
;
}
.icon-canpinhui-xican
:before
{
content
:
"\e64e"
;
}
.icon-jiudian1
:before
{
content
:
"\e89b"
;
}
.icon-Arrowup
:before
{
content
:
"\e6c0"
;
}
.icon-weixinyunying
:before
{
content
:
"\e6b1"
;
}
.icon-a-dianhua1
:before
{
content
:
"\eb40"
;
}
.icon-clouddownload-fill
:before
{
content
:
"\e7d9"
;
}
.icon-yongcan
:before
{
content
:
"\e6a6"
;
}
.icon-shuijue
:before
{
content
:
"\e73d"
;
}
.icon-qizhi
:before
{
content
:
"\e627"
;
}
.icon-more
:before
{
content
:
"\e60a"
;
}
.icon--
:before
{
content
:
"\e602"
;
}
.icon--1
:before
{
content
:
"\e603"
;
}
.icon-arrow-down1
:before
{
content
:
"\e660"
;
}
.icon-time
:before
{
content
:
"\e680"
;
}
.icon-feiji
:before
{
content
:
"\e6fe"
;
}
.icon-jingdian
:before
{
content
:
"\e60c"
;
}
.icon-ly_hangbanyuding
:before
{
content
:
"\e601"
;
}
.icon-jiudian
:before
{
content
:
"\e642"
;
}
.icon-hangcheng-blue
:before
{
content
:
"\e600"
;
}
.icon-arrow-right
:before
{
content
:
"\e607"
;
}
.icon-arrow-right-
:before
{
content
:
"\e7a1"
;
}
.icon-canting
:before
{
content
:
"\e64f"
;
}
.icon-icon-test
:before
{
content
:
"\e613"
;
}
.icon-guojijiudian
:before
{
content
:
"\e8e9"
;
}
.icon-arrow-right-3
:before
{
content
:
"\e62a"
;
}
.icon-qizhi-
:before
{
content
:
"\e60b"
;
}
.icon-shouye
:before
{
content
:
"\e614"
;
}
.icon-dingwei
:before
{
content
:
"\e8c4"
;
}
.icon-dingwei1
:before
{
content
:
"\e818"
;
}
.icon-editor-line
:before
{
content
:
"\e684"
;
}
.icon-icon-question
:before
{
content
:
"\e66b"
;
}
.icon-arrow-down
:before
{
content
:
"\e665"
;
}
.icon-arrow-up
:before
{
content
:
"\ed4e"
;
}
.icon-share
:before
{
content
:
"\e63e"
;
}
.icon-paperPlane-fill
:before
{
content
:
"\e6c1"
;
}
.icon-24gl-paperclip2
:before
{
content
:
"\e94a"
;
}
.icon-home1
:before
{
content
:
"\e6b8"
;
}
.icon-arrow-left
:before
{
content
:
"\e64c"
;
}
.icon-smallcircle_fill_circle
:before
{
content
:
"\e89c"
;
}
.icon-home
:before
{
content
:
"\e875"
;
}
.icon-Work
:before
{
content
:
"\e619"
;
}
.icon-my1
:before
{
content
:
"\e6a0"
;
}
components/tabbar/index.vue
View file @
cb8925a4
<
style
scoped
>
<
style
scoped
>
.tabbarMain
{
/*
.tabbarMain {
height: 100upx;
height: 100upx;
position: fixed;
position: fixed;
z-index: 50;
z-index: 50;
...
@@ -23,10 +23,6 @@
...
@@ -23,10 +23,6 @@
z-index: 2;
z-index: 2;
bottom: 0;
bottom: 0;
flex-direction: row;
flex-direction: row;
/* #ifndef */
padding-bottom
:
constant
(
safe-area-inset-top
);
padding-bottom
:
env
(
safe-area-inset-top
);
/* #endif */
display: flex;
display: flex;
left: 0;
left: 0;
right: 0;
right: 0;
...
@@ -38,7 +34,6 @@
...
@@ -38,7 +34,6 @@
}
}
.imgse {
.imgse {
height: 48upx;
height: 48upx;
/* width: auto; */
width: 48upx;
width: 48upx;
}
}
.txtBtn {
.txtBtn {
...
@@ -50,7 +45,6 @@
...
@@ -50,7 +45,6 @@
color: #333333;
color: #333333;
}
}
.itmMain {
.itmMain {
/* width: 250upx; */
width: 150upx;
width: 150upx;
flex: 1;
flex: 1;
justify-content: center;
justify-content: center;
...
@@ -93,9 +87,9 @@
...
@@ -93,9 +87,9 @@
z-index: 1;
z-index: 1;
bottom: 10upx;
bottom: 10upx;
border-radius: 150upx;
border-radius: 150upx;
}
}
*/
</
style
>
</
style
>
<
template
>
<
!-- <
template>
<view
<view
class="tabbarMain"
class="tabbarMain"
:class="[flagTypeInfo ? 'tabbarMainIphone' : '']"
:class="[flagTypeInfo ? 'tabbarMainIphone' : '']"
...
@@ -134,9 +128,9 @@
...
@@ -134,9 +128,9 @@
</view>
</view>
</view>
</view>
</view>
</view>
</
template
>
</template>
-->
<
script
>
<
!-- <
script>
export default {
export default {
data() {
data() {
return {
return {
...
@@ -211,3 +205,118 @@ export default {
...
@@ -211,3 +205,118 @@ export default {
},
},
};
};
</script>
</script>
-->
<
template
>
<view
class=
"bar-box"
>
<div
class=
"bar-box-line"
>
<view
class=
"bar-item"
v-for=
"(x,i) in menus"
@
click=
"changeMenuHandler(x)"
>
<i
class=
"icon iconfont"
:class=
"[x.icon]"
v-if=
"current != x.page"
></i>
<view
class=
"acitve"
v-else
>
{{
x
.
name
}}
</view>
</view>
</div>
</view>
</
template
>
<
script
>
export
default
{
data
()
{
return
{
menus
:[],
current
:
''
};
},
mounted
()
{
let
pages
=
getCurrentPages
()
this
.
current
=
"/"
+
pages
[
pages
.
length
-
1
].
route
??
''
this
.
menus
=
[{
name
:
'首页'
,
icon
:
'icon-home'
,
page
:
'/pages/index/index'
},
{
name
:
'订单'
,
icon
:
'icon-Work'
,
page
:
'/pages/jiuzhai/jz_MyOrder'
},
{
name
:
'我的'
,
icon
:
'icon-my1'
,
page
:
'/pages/user-center/user-center'
}]
},
methods
:{
changeMenuHandler
(
menu
){
this
.
current
=
menu
.
page
if
(
menu
.
page
.
indexOf
(
'pages'
)
!=-
1
){
uni
.
redirectTo
({
url
:
menu
.
page
})
}
}
}
}
</
script
>
<
style
>
/* 在线链接服务仅供平台体验和调试使用,平台不承诺服务的稳定性,企业客户需下载字体包自行发布使用并做好备份。 */
@font-face
{
font-family
:
"nav-font"
;
src
:
url("//at.alicdn.com/wf/webfont/MQHUV6e56ce5/tcIItWsk6dTo.woff2")
format
(
"woff2"
),
url("//at.alicdn.com/wf/webfont/MQHUV6e56ce5/RZzswoFvsjUs.woff")
format
(
"woff"
);
font-display
:
swap
;
}
.bar-box
{
padding-bottom
:
env
(
safe-area-inset-bottom
);
background-color
:
#FFF
;
border-top-left-radius
:
20
rpx
;
border-top-right-radius
:
20
rpx
;
box-shadow
:
0
0
6px
rgba
(
0
,
0
,
0
,
.12
);
position
:
fixed
;
z-index
:
50
;
flex
:
1
;
bottom
:
0
;
left
:
0
;
right
:
0
;
z-index
:
99999999
;
}
.bar-box-line
{
display
:
flex
;
flex-direction
:
row
;
flex-wrap
:
nowrap
;
align-items
:
center
;
padding
:
20
upx
0
30
upx
;
}
.bar-box-line.uninset
{
padding
:
20
upx
0
40
upx
;
}
.bar-box-line.inset
{
padding
:
20
upx
0
;
}
.bar-box-line
.bar-item
{
flex
:
1
;
width
:
1px
;
text-align
:
center
;
color
:
#abadb9
;
position
:
relative
;
}
.bar-box-line
.bar-item
.icon
{
font-size
:
50
rpx
;
}
.bar-box-line
.bar-item
.acitve
{
font-size
:
32
rpx
;
font-weight
:
bold
;
color
:
#1F2429
;
text-align
:
center
;
font-family
:
nav-font
;
}
.bar-box-line
.bar-item
.acitve
::after
{
display
:
inline-block
;
content
:
' '
;
width
:
4px
;
height
:
4px
;
border-radius
:
4px
;
background-color
:
#1F2429
;
position
:
absolute
;
left
:
calc
(
50%
-
2px
);
top
:
60
rpx
;
}
</
style
>
\ No newline at end of file
pages/jiuzhai/jz_Line.vue
View file @
cb8925a4
...
@@ -22,7 +22,17 @@
...
@@ -22,7 +22,17 @@
width
:
100%
;
width
:
100%
;
height
:
100%
height
:
100%
}
}
.jz_TuDiv
.none-image
{
width
:
100%
;
height
:
100%
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
background-color
:
#ECF1F4
;
color
:
grey
;
font-size
:
28
rpx
;
font-family
:
'nav-font'
;
}
.jz_Right
{
.jz_Right
{
width
:
432
rpx
;
width
:
432
rpx
;
margin-top
:
5px
;
margin-top
:
5px
;
...
@@ -33,10 +43,18 @@
...
@@ -33,10 +43,18 @@
.jz_LineName
{
.jz_LineName
{
color
:
#111111
;
color
:
#111111
;
font-size
:
30
rpx
;
font-size
:
30
rpx
;
overflow
:
hidden
;
/*
overflow: hidden;
white-space: nowrap;
white-space: nowrap;
text-overflow
:
ellipsis
;
text-overflow: ellipsis;
*/
font-weight
:
600
;
font-weight
:
600
;
text-overflow
:
-o-ellipsis-lastline
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
display
:
-webkit-box
;
-webkit-line-clamp
:
2
;
line-clamp
:
2
;
-webkit-box-orient
:
vertical
;
font-family
:
microsoft
yahei
ui
light
;
}
}
.jz_Canhoubu
{
.jz_Canhoubu
{
...
@@ -139,10 +157,13 @@
...
@@ -139,10 +157,13 @@
.jz_Recommend
{
.jz_Recommend
{
color
:
#999999
;
color
:
#999999
;
font-size
:
24
rpx
;
font-size
:
24
rpx
;
display
:
-webkit-box
;
/*
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
-webkit-line-clamp: 2;
overflow
:
hidden
;
overflow: hidden; */
white-space
:
nowrap
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
margin-top
:
10px
;
margin-top
:
10px
;
line-height
:
20px
;
line-height
:
20px
;
}
}
...
@@ -281,18 +302,19 @@
...
@@ -281,18 +302,19 @@
.jz_Content
.price
.money
{
.jz_Content
.price
.money
{
font-size
:
36
rpx
;
font-size
:
36
rpx
;
color
:
#FF3166
;
color
:
#FF3166
;
font-family
:
nav-font
;
}
}
</
style
>
</
style
>
<
template
>
<
template
>
<div
class=
"jz_Line"
>
<div
class=
"jz_Line"
>
<view
class=
"jz_Content"
>
<view
class=
"jz_Content"
>
<view
class=
"search-box"
>
<view
class=
"search-box"
>
<view
class=
"date"
@
click=
"showBranch=true"
>
<
!--
<
view
class=
"date"
@
click=
"showBranch=true"
>
<u-icon
name=
"location"
color=
"#111"
size=
"24"
></u-icon>
<u-icon
name=
"location"
color=
"#111"
size=
"24"
></u-icon>
<text
style=
"margin-left: 20rpx;"
>
{{
currentBrachName
}}
</text>
<text
style=
"margin-left: 20rpx;"
>
{{
currentBrachName
}}
</text>
</view>
</view>
-->
<view
style=
"width: 1px; flex: 1;"
>
<view
style=
"width: 1px; flex: 1;"
>
<u-search
placeholder=
"
目的地名称
"
v-model=
"msg.searchKey"
@
search=
"getList(1)"
input-align=
"left"
:value=
"msg.searchKey"
text-color=
"#111"
<u-search
placeholder=
"
关键字搜索
"
v-model=
"msg.searchKey"
@
search=
"getList(1)"
input-align=
"left"
:value=
"msg.searchKey"
text-color=
"#111"
bg-color=
"rgba(0,0,0,0)"
:show-action=
"false"
></u-search>
bg-color=
"rgba(0,0,0,0)"
:show-action=
"false"
></u-search>
</view>
</view>
</view>
</view>
...
@@ -301,21 +323,48 @@
...
@@ -301,21 +323,48 @@
<u-dropdown-item
v-model=
"msg.orderBy"
:title=
"optionsTitle[0]"
:options=
"orderBys"
@
change=
"changeOrderBy"
>
<u-dropdown-item
v-model=
"msg.orderBy"
:title=
"optionsTitle[0]"
:options=
"orderBys"
@
change=
"changeOrderBy"
>
</u-dropdown-item>
</u-dropdown-item>
<u-dropdown-item
:title=
"optionsTitle[1]"
>
<u-dropdown-item
:title=
"optionsTitle[1]"
>
<view
class=
"slot-content"
style=
"padding: 30rpx;padding-top:0;background-color: #FFF;"
>
<view
class=
"slot-content"
style=
"padding:0 30rpx 30rpx 0;padding-top:0;background-color: #FFF;"
>
<scroll-view
scroll-y=
"true"
style=
"max-height: 50vh;"
>
<view
style=
"height: 50vh;display: flex;"
>
<template
v-for=
"(x,i) in lineList"
>
<view
style=
"background-color: #f1f1f1;margin-right: 30rpx;height:100%"
>
<view
style=
"padding-top:30rpx"
>
<scroll-view
scroll-y=
"true"
style=
"height:100%"
>
<text
style=
"font-size: 28rpx;color:#111;font-weight: 800;margin-right: 10rpx;"
>
{{
x
.
DestinationName
}}
</text>
<view
style=
"text-align: center; padding: 15px 0;"
>
</view>
<u-tag
mode=
"plain"
border-color=
"#DFBE6E"
color=
"#DFBE6E"
text=
"出境游"
size=
"mini"
></u-tag>
<view
class=
"team-box"
>
<view
v-for=
"(y,yi) in x.Teams"
:key=
"i"
class=
"team"
:class=
"
{'active':msg.team.indexOf(y.TeamId)!=-1}"
@click="setTeams(i,yi)">
<view
class=
"team-content"
>
{{
y
.
TeamName
}}
</view>
</view>
</view>
</view>
<template
v-for=
"x in lineList"
>
</
template
>
<view
:style=
"
{'background':x.LineID==currentLineId.LineID?'#FFF':'unset'}" @click="changeLineTeamsHandler(x)" style="font-size: 15px;color:#111;padding:30rpx;text-align: center;" v-if="x.LineDirection==2" :key="x.LineID">
{{
x
.
LineShortName
}}
</view>
</scroll-view>
</
template
>
<view
style=
"box-shadow: 0px -10px 30px 0px rgba(36, 36, 36, 0.06);margin-top:40rpx;display: flex;"
>
<view
style=
"text-align: center; padding: 15px 0;"
>
<u-tag
mode=
"plain"
border-color=
"#DFBE6E"
color=
"#DFBE6E"
text=
"当地游"
size=
"mini"
></u-tag>
</view>
<
template
v-for=
"x in lineList"
>
<view
:style=
"
{'background':x.LineID==currentLineId.LineID?'#FFF':'unset'}" @click="changeLineTeamsHandler(x)" style="font-size: 15px;color:#111;padding:30rpx;text-align: center;" v-if="x.LineDirection==3" :key="x.LineID">
{{
x
.
LineShortName
}}
</view>
</
template
>
</scroll-view>
</view>
<view
style=
"flex:1;width:1px;height:100%"
>
<scroll-view
scroll-y=
"true"
style=
"height:100%"
v-if=
"currentLineId && currentLineId.PlaceList"
>
<view
style=
"text-align: right;"
>
<checkbox-group
@
change=
"allTeamsChangeHandler"
>
<label>
<checkbox
value=
"all"
:checked=
"allTeams"
style=
"transform: scale(0.7)"
/><text
style=
"font-size: 12px;"
>
全部系列
</text>
</label>
</checkbox-group>
</view>
<
template
v-for=
"(x,i) in currentLineId.PlaceList"
>
<view
style=
"padding-top:30rpx"
>
<text
style=
"font-size: 28rpx;color:#111;font-weight: 800;margin-right: 10rpx;"
>
{{
x
.
DestinationName
}}
</text>
</view>
<view
class=
"team-box"
>
<view
v-for=
"(y,yi) in x.Teams"
:key=
"i"
class=
"team"
:class=
"
{'active':msg.team.indexOf(y.TeamId)!=-1}"
@click="setTeams(y.TeamId)">
<view
class=
"team-content"
>
{{
y
.
TeamName
}}
</view>
</view>
</view>
</
template
>
</scroll-view>
</view>
</view>
<view
style=
"box-shadow: 0px -10px 30px 0px rgba(36, 36, 36, 0.06);margin-top:40rpx;display: flex;padding-left: 30rpx;"
>
<view
style=
"flex:1;margin-right: 30rpx;"
>
<view
style=
"flex:1;margin-right: 30rpx;"
>
<u-button
:custom-style=
"btnStyle"
@
click=
"clearTeams"
>
清除
</u-button>
<u-button
:custom-style=
"btnStyle"
@
click=
"clearTeams"
>
清除
</u-button>
</view>
</view>
...
@@ -368,18 +417,19 @@
...
@@ -368,18 +417,19 @@
</u-dropdown>
</u-dropdown>
</view>
</view>
<view
v-if=
"screenshow==true"
class=
"Jz_Mask"
@
click=
"screenshow=false"
></view>
<view
v-if=
"screenshow==true"
class=
"Jz_Mask"
@
click=
"screenshow=false"
></view>
<u-empty
v-if=
"dataList.length==0"
text=
"暂无数据"
mode=
"data"
></u-empty>
<u-empty
v-if=
"dataList.length==0
&& !loading
"
text=
"暂无数据"
mode=
"data"
></u-empty>
<
template
v-else
>
<
template
v-else
>
<view
style=
"height: calc(100vh - 120px);overflow: hidden;"
>
<view
style=
"height: calc(100vh - 120px);overflow: hidden;"
>
<scroll-view
:scroll-y=
"true"
:enable-back-to-top=
"true"
:enable-flex=
"true"
@
scrolltolower=
"lower"
:style=
"
{ height: '100%' }">
<scroll-view
:scroll-y=
"true"
:enable-back-to-top=
"true"
:enable-flex=
"true"
@
scrolltolower=
"lower"
:style=
"
{ height: '100%' }">
<view
class=
"jz_ListMain"
v-for=
"(item,index) in dataList"
:key=
"index"
@
click=
"goJzDetail(item.tcid,item.configId)"
>
<view
class=
"jz_ListMain"
v-for=
"(item,index) in dataList"
:key=
"index"
@
click=
"goJzDetail(item.tcid,item.configId)"
>
<view
class=
"jz_List"
>
<view
class=
"jz_List"
>
<view
class=
"jz_TuDiv"
>
<view
class=
"jz_TuDiv"
>
<img
class=
"jz_TuBigImg"
mode=
"aspectFill"
:src=
"getImgs(item.imgCover)"
alt=
""
/>
<img
class=
"jz_TuBigImg"
mode=
"aspectFill"
:src=
"getImgs(item.imgCover)"
alt=
""
v-if=
"item.imgCover && item.imgCover.length>0 && getImgs(item.imgCover)!=''"
/>
<view
class=
"none-image"
v-else
>
暂无图片
</view>
</view>
</view>
<view
class=
"jz_Right"
>
<view
class=
"jz_Right"
>
<view
class=
"jz_LineName"
>
{{
item
.
title
}}
</view>
<view
class=
"jz_LineName"
>
{{
item
.
title
}}
</view>
<view
class=
"jz_Recommend"
>
<view
class=
"jz_Recommend"
v-if=
"item.productRecommend && item.productRecommend!='null'"
>
{{
item
.
productRecommend
}}
{{
item
.
productRecommend
}}
</view>
</view>
<view
style=
"margin:10px 0;display: flex;align-items: center;"
>
<view
style=
"margin:10px 0;display: flex;align-items: center;"
>
...
@@ -394,10 +444,11 @@
...
@@ -394,10 +444,11 @@
<view
style=
"font-size:24rpx;color:#999999;"
>
<view
style=
"font-size:24rpx;color:#999999;"
>
最近团期:
{{
item
.
startDate
}}
最近团期:
{{
item
.
startDate
}}
</view>
</view>
<view>
<text>
¥
</text>
</view>
<text
class=
"money"
>
{{
item
.
b2CPrice
}}
</text>
<view
class=
"price"
style=
"text-align: unset;"
>
</view>
<text>
¥
</text>
<text
class=
"money"
>
{{
parseFloat
(
item
.
b2CPrice
).
toFixed
(
2
)
}}
</text>
</view>
</view>
</view>
</view>
</view>
</view>
...
@@ -410,8 +461,8 @@
...
@@ -410,8 +461,8 @@
<u-popup
v-model=
"showTimePopup"
mode=
"bottom"
border-radius=
"20"
length=
"90%"
:safe-area-inset-bottom=
"true"
>
<u-popup
v-model=
"showTimePopup"
mode=
"bottom"
border-radius=
"20"
length=
"90%"
:safe-area-inset-bottom=
"true"
>
<canlendar
@
finish=
"chosenDateResult"
></canlendar>
<canlendar
@
finish=
"chosenDateResult"
></canlendar>
</u-popup>
</u-popup>
<u-picker
mode=
"selector"
v-model=
"showBranch"
:default-selector=
"[0]"
:range=
"branchList"
@
confirm=
'changeBranch'
<
!-- <
u-picker mode="selector" v-model="showBranch" :default-selector="[0]" :range="branchList" @confirm='changeBranch'
range-key=
"BName"
></u-picker>
range-key="BName"></u-picker>
-->
</div>
</div>
</template>
</template>
<
script
>
<
script
>
...
@@ -422,6 +473,8 @@
...
@@ -422,6 +473,8 @@
},
},
data
()
{
data
()
{
return
{
return
{
allTeams
:
false
,
loading
:
true
,
pageTitle
:
'线路'
,
pageTitle
:
'线路'
,
showTimePopup
:
false
,
showTimePopup
:
false
,
msg
:
{
msg
:
{
...
@@ -436,9 +489,11 @@
...
@@ -436,9 +489,11 @@
companyId
:
0
,
companyId
:
0
,
searchKey
:
''
,
//搜索数据
searchKey
:
''
,
//搜索数据
priceOrderByField
:
2
,
priceOrderByField
:
2
,
PlaceIds
:
''
PlaceIds
:
''
,
lineId
:
0
},
},
time
:
''
,
time
:
''
,
currentLineId
:
null
,
params
:
{
params
:
{
year
:
true
,
year
:
true
,
month
:
true
,
month
:
true
,
...
@@ -528,6 +583,8 @@
...
@@ -528,6 +583,8 @@
uni
.
setNavigationBarTitle
({
uni
.
setNavigationBarTitle
({
title
:
"精品旅游线路"
title
:
"精品旅游线路"
})
})
},
},
onLoad
(
option
)
{
onLoad
(
option
)
{
if
(
option
&&
option
.
LineTeamIds
){
if
(
option
&&
option
.
LineTeamIds
){
...
@@ -546,6 +603,19 @@
...
@@ -546,6 +603,19 @@
this
.
research
();
this
.
research
();
},
},
methods
:
{
methods
:
{
allTeamsChangeHandler
(
e
){
this
.
allTeams
=
e
.
detail
.
value
.
length
>
0
if
(
this
.
allTeams
&&
this
.
msg
.
team
.
length
>
0
){
this
.
msg
.
team
=
[]
}
this
.
$forceUpdate
();
},
changeLineTeamsHandler
(
item
){
this
.
allTeams
=
false
this
.
currentLineId
=
item
//changeTeam
},
//获取查询条件
//获取查询条件
getLineQuery
()
{
getLineQuery
()
{
this
.
apipost
(
this
.
apipost
(
...
@@ -555,24 +625,24 @@
...
@@ -555,24 +625,24 @@
this
.
orderBys
=
res
.
data
.
OrderByList
;
this
.
orderBys
=
res
.
data
.
OrderByList
;
this
.
branchList
=
res
.
data
.
SiteList
;
this
.
branchList
=
res
.
data
.
SiteList
;
this
.
startCitys
=
res
.
data
.
CityList
;
this
.
startCitys
=
res
.
data
.
CityList
;
this
.
lineList
=
res
.
data
.
linePlac
eList
;
this
.
lineList
=
res
.
data
.
Lin
eList
;
this
.
msg
.
companyId
=
this
.
branchList
[
0
].
BId
;
this
.
msg
.
companyId
=
-
1
;
//
this.branchList[0].BId;
this
.
currentBrachName
=
this
.
branchList
[
0
].
BName
;
this
.
currentBrachName
=
this
.
branchList
[
0
].
BName
;
this
.
CityId
=
this
.
branchList
[
0
].
CityId
;
this
.
CityId
=
this
.
branchList
[
0
].
CityId
;
this
.
currentLineId
=
this
.
lineList
[
0
]
let
temp
=
''
//
let temp = ''
if
(
this
.
msg
.
team
.
length
>
0
){
//
if(this.msg.team.length>0){
if
(
this
.
lineList
.
length
>
0
){
//
if(this.lineList.length>0){
this
.
lineList
.
forEach
(
x
=>
{
//
this.lineList.forEach(x => {
x
.
Teams
.
forEach
(
y
=>
{
//
x.Teams.forEach(y => {
if
(
this
.
msg
.
team
.
indexOf
(
y
.
TeamId
)
!=
-
1
)
{
//
if (this.msg.team.indexOf(y.TeamId) != -1) {
temp
+=
y
.
TeamName
+
","
//
temp += y.TeamName + ","
}
//
}
})
//
})
})
//
})
this
.
optionsTitle
[
1
]
=
temp
==
''
?
'线路玩法'
:
temp
;
//
this.optionsTitle[1] = temp==''?'线路玩法':temp;
}
//
}
}
//
}
}
}
},
},
null
null
...
@@ -638,6 +708,9 @@
...
@@ -638,6 +708,9 @@
clearTeams
()
{
clearTeams
()
{
this
.
msg
.
team
=
[]
this
.
msg
.
team
=
[]
this
.
optionsTitle
[
1
]
=
'线路玩法'
this
.
optionsTitle
[
1
]
=
'线路玩法'
this
.
currentLineId
=
null
this
.
msg
.
lineId
=
0
this
.
allTeams
=
false
this
.
$forceUpdate
()
this
.
$forceUpdate
()
this
.
$refs
.
uDropdown
.
close
();
this
.
$refs
.
uDropdown
.
close
();
this
.
research
();
this
.
research
();
...
@@ -645,6 +718,10 @@
...
@@ -645,6 +718,10 @@
changeTeams
()
{
changeTeams
()
{
if
(
this
.
msg
.
team
.
length
==
0
)
{
if
(
this
.
msg
.
team
.
length
==
0
)
{
this
.
optionsTitle
[
1
]
=
'线路玩法'
this
.
optionsTitle
[
1
]
=
'线路玩法'
if
(
this
.
allTeams
&&
this
.
currentLineId
){
this
.
optionsTitle
[
1
]
=
this
.
currentLineId
.
LineShortName
this
.
msg
.
lineId
=
this
.
currentLineId
.
LineID
}
}
else
{
}
else
{
let
temp
=
''
let
temp
=
''
this
.
lineList
.
forEach
(
x
=>
{
this
.
lineList
.
forEach
(
x
=>
{
...
@@ -663,14 +740,18 @@
...
@@ -663,14 +740,18 @@
this
.
$refs
.
uDropdown
.
close
();
this
.
$refs
.
uDropdown
.
close
();
this
.
research
();
this
.
research
();
},
},
setTeams
(
x
,
y
)
{
setTeams
(
teamId
)
{
let
id
=
this
.
lineList
[
x
].
Teams
[
y
].
TeamId
console
.
log
(
teamId
,
this
.
msg
.
team
)
let
id
=
teamId
let
temp
=
this
.
msg
.
team
.
indexOf
(
id
)
let
temp
=
this
.
msg
.
team
.
indexOf
(
id
)
if
(
temp
==
-
1
)
{
if
(
temp
==
-
1
)
{
this
.
msg
.
team
.
push
(
id
)
this
.
msg
.
team
.
push
(
id
)
}
else
{
}
else
{
this
.
msg
.
team
.
splice
(
temp
,
1
)
this
.
msg
.
team
.
splice
(
temp
,
1
)
}
}
if
(
this
.
allTeams
&&
this
.
msg
.
team
.
length
>
0
){
this
.
allTeams
=
false
}
this
.
$forceUpdate
();
this
.
$forceUpdate
();
},
},
changeOrderBy
(
index
)
{
changeOrderBy
(
index
)
{
...
@@ -725,17 +806,21 @@
...
@@ -725,17 +806,21 @@
title
:
'加载中'
,
title
:
'加载中'
,
icon
:
'none'
icon
:
'none'
})
})
this
.
apipost
(
this
.
apipost
(
"b2b_get_GetB2BTravelPageList"
,
"b2b_get_GetB2BTravelPageList"
,
this
.
msg
,
this
.
msg
,
res
=>
{
res
=>
{
uni
.
hideLoading
();
if
(
res
.
resultCode
==
1
)
{
if
(
res
.
resultCode
==
1
)
{
this
.
dataList
=
this
.
dataList
.
concat
(
res
.
data
.
pageData
);
this
.
dataList
=
this
.
dataList
.
concat
(
res
.
data
.
pageData
);
this
.
page_count
=
res
.
data
.
pageCount
;
this
.
page_count
=
res
.
data
.
pageCount
;
}
}
this
.
loading
=
false
uni
.
hideLoading
();
},
},
null
err
=>
{
this
.
loading
=
false
}
);
);
},
},
//获取日期
//获取日期
...
...
pages/jiuzhai/jz_LineDetail.vue
View file @
cb8925a4
...
@@ -46,7 +46,7 @@
...
@@ -46,7 +46,7 @@
<!-- 佣金显示 -->
<!-- 佣金显示 -->
<!--
<view
class=
"is_share"
v-if=
"g.share > 0 && hideshare == false && setting.is_show_korea == 0"
style=
"top: 240px"
>
-->
<!--
<view
class=
"is_share"
v-if=
"g.share > 0 && hideshare == false && setting.is_show_korea == 0"
style=
"top: 240px"
>
-->
<view
class=
"sharebox"
v-if=
" hideshare == false && shareData && shareData.IsShow && (shareData.Data.MaxShare>0|| shareData.Data.MyBuyCommission>0)"
:style=
"
{top:topheight+'px'}">
<view
class=
"sharebox"
v-if=
" hideshare == false && shareData && shareData.IsShow && (shareData.Data.MaxShare>0|| shareData.Data.MyBuyCommission>0)"
:style=
"
{top:topheight+'px'}">
<view
class=
"is_share"
v-if=
"shareData.Data.MaxShare>0"
>
<
!--
<
view
class=
"is_share"
v-if=
"shareData.Data.MaxShare>0"
>
<image
src=
"@/static/images/icon/WechatIMG424.png"
style=
"width: 18px; margin-left: 12px; opacity: 1; height: auto"
mode=
"widthFix"
/>
<image
src=
"@/static/images/icon/WechatIMG424.png"
style=
"width: 18px; margin-left: 12px; opacity: 1; height: auto"
mode=
"widthFix"
/>
<view
style=
"display: flex;
<view
style=
"display: flex;
flex-direction: column;
flex-direction: column;
...
@@ -65,7 +65,7 @@
...
@@ -65,7 +65,7 @@
size=
"36"
size=
"36"
@
click=
"hideshare = true"
@
click=
"hideshare = true"
></u-icon>
></u-icon>
</view>
</view>
罗超注释 2023-09-20 -->
<!-- 佣金返的一样这个暂时注释掉 -->
<!-- 佣金返的一样这个暂时注释掉 -->
<!--
<view
class=
"is_share"
v-if=
"shareData.Data.MyBuyCommission>0"
>
<!--
<view
class=
"is_share"
v-if=
"shareData.Data.MyBuyCommission>0"
>
<image
<image
...
@@ -159,7 +159,7 @@
...
@@ -159,7 +159,7 @@
<text>
{{
dataList
.
productRecommend
}}
</text>
<text>
{{
dataList
.
productRecommend
}}
</text>
</view>
</view>
</view>
</view>
<view
class=
"jz_Service"
>
<
!--
<
view
class=
"jz_Service"
>
<view
class=
"jz_Serflex"
>
<view
class=
"jz_Serflex"
>
<view
class=
"jz_Stitle"
>
保障
</view>
<view
class=
"jz_Stitle"
>
保障
</view>
<view
style=
"color: #111111; display: flex; align-items: center"
>
<view
style=
"color: #111111; display: flex; align-items: center"
>
...
@@ -184,7 +184,7 @@
...
@@ -184,7 +184,7 @@
<view
style=
"margin-left: 5px"
>
成团保障
</view>
<view
style=
"margin-left: 5px"
>
成团保障
</view>
</view>
</view>
</view>
</view>
</view>
</view>
罗超注释 2023-09-20 -->
<view
class=
"jz_TripDays"
>
<view
class=
"jz_TripDays"
>
<view
style=
"margin-bottom: 40px"
>
<view
style=
"margin-bottom: 40px"
>
<span
style=
"display: inline-block; position: relative"
>
<span
style=
"display: inline-block; position: relative"
>
...
@@ -507,127 +507,243 @@
...
@@ -507,127 +507,243 @@
"
"
></span>
></span>
</span>
</span>
<view
class=
"jz_TripMain"
>
<!-- <view class="jz_TripMain">
<view
class=
"jz_TripLine"
></view>
<view class="jz_TripLine"></view>
<view
v-for=
"(item, index) in dataList.dayList"
:key=
"index"
>
<view v-for="(item, index) in dataList.dayList" :key="index">
<view
class=
"jz_TripTitle"
>
<view class="jz_TripTitle">
<view
class=
"jz_TripLeft"
>
第{{ getDays(index + 1) }}天
</view>
<view class="jz_TripLeft">第{{ getDays(index + 1) }}天</view>
<view
class=
"jz_TripRight"
></view>
<view class="jz_TripRight"></view>
</view>
<view
class=
"jz_RightInner"
>
<view
v-for=
"(subItem, SubIndex) in item.dayArray"
v-if=
"subItem.type == 7"
:key=
"SubIndex"
>
<view
class=
"jz_Place"
>
<view
class=
"jz_ComDian"
></view>
<text>
{{ subItem.childItem.title }}
</text>
</view>
</view>
</view>
<
template
<
view class="jz_RightInner">
v-for=
"(subItem, index2) in item.dayArray"
<view
v-if=
"subItem.type == 2
"
v-for="(subItem, SubIndex) in item.dayArray
"
>
v-if="subItem.type == 7"
<view
class=
"jz_ImgDiv"
:key=
"index2"
>
:key="SubIndex"
<img
>
mode=
"aspectFill"
<view class="jz_Place">
:src=
"subItem.childItem.imaArray[0].url"
<view class="jz_ComDian"></view>
alt=
""
<text>{{ subItem.childItem.title }}</text>
/
>
</view
>
</view>
</view>
<view
class=
"jz_Place"
style=
"align-items: center"
>
<template
v-for="(subItem, index2) in item.dayArray"
v-if="subItem.type == 2"
>
<view class="jz_ImgDiv" :key="index2">
<img
mode="aspectFill"
:src="subItem.childItem.imaArray[0].url"
alt=""
/>
</view>
<view class="jz_Place" style="align-items: center">
<view class="jz_ComDian"></view>
<text class="jz_Canyin">景点</text>
<text class="jz_CanInner">
<template
v-if="subItem.childItem && subItem.childItem.couponsName"
>
{{ subItem.childItem.couponsName }}
</template>
<text class="jz_Fenzhong">
<template
v-if="
subItem.childItem.playTimeHour ||
subItem.childItem.playTimeMinutes
"
>约</template
>
<template v-if="subItem.childItem.playTimeHour"
>{{ subItem.childItem.playTimeHour }}小时</template
>
<template v-if="subItem.childItem.playTimeMinutes"
>{{ subItem.childItem.playTimeMinutes }}分钟</template
>
</text>
</text>
</view>
<view class="jz_Jinddian">
{{ subItem.childItem.descriptionText }}
</view>
</template>
<view class="jz_Place">温馨提示</view>
<view class="jz_Rermark">
<template
v-for="(subItem, sIndex) in item.dayArray"
v-if="subItem.type == 6"
>
<text :key="sIndex">{{
subItem.childItem.descriptionText
}}</text>
</template>
</view>
<view class="jz_Place">
<view class="jz_ComDian"></view>
<view class="jz_ComDian"></view>
<text
class=
"jz_Canyin"
>
景点
</text>
<text class="jz_Canyin">
餐饮
</text>
<text class="jz_CanInner">
<text class="jz_CanInner">
<template
<template
v-if=
"subItem.childItem && subItem.childItem.couponsName"
v-for="(subItem, sIndex2) in item.dayArray"
v-if="subItem.type == 4"
>
>
{{
subItem
.
childItem
.
couponsName
}}
<text
</
template
>
style="margin-right: 20px"
<text
class=
"jz_Fenzhong"
>
:key="sIndex2"
<
template
v-if="subItem.childItem.useDinnerType == '1'"
v-if=
"
>早餐:{{ subItem.childItem.dinnerName }}</text
subItem.childItem.playTimeHour ||
subItem.childItem.playTimeMinutes
"
>
约
</
template
>
>
<
template
v-if=
"subItem.childItem.playTimeHour"
<text
>
{{
subItem
.
childItem
.
playTimeHour
}}
小时
</
template
style="margin-right: 20px"
v-if="subItem.childItem.useDinnerType == '2'"
>午餐:{{ subItem.childItem.dinnerName }}</text
>
>
<
te
mplate
v-if=
"subItem.childItem.playTimeMinutes
"
<te
xt v-if="subItem.childItem.useDinnerType == '3'
"
>
{{
subItem
.
childItem
.
playTimeMinutes
}}
分钟
</
template
>
晚餐:{{ subItem.childItem.dinnerName }}</text
>
>
</te
xt
>
</te
mplate
>
</text>
</text>
</view>
</view>
<view
class=
"jz_Jinddian"
>
<view class="jz_Place">
{{ subItem.childItem.descriptionText }}
<view class="jz_ComDian"></view>
</view>
<text class="jz_Canyin">酒店</text>
</template>
<text class="jz_CanInner">
<view
class=
"jz_Place"
>
温馨提示
</view>
<template
<view
class=
"jz_Rermark"
>
v-for="(subItem, sIndex3) in item.dayArray"
<
template
v-if="subItem.type == 3"
v-for=
"(subItem, sIndex) in item.dayArray"
v-if=
"subItem.type == 6"
>
<text
:key=
"sIndex"
>
{{
subItem
.
childItem
.
descriptionText
}}
</text>
</
template
>
</view>
<view
class=
"jz_Place"
>
<view
class=
"jz_ComDian"
></view>
<text
class=
"jz_Canyin"
>
餐饮
</text>
<text
class=
"jz_CanInner"
>
<
template
v-for=
"(subItem, sIndex2) in item.dayArray"
v-if=
"subItem.type == 4"
>
<text
style=
"margin-right: 20px"
:key=
"sIndex2"
v-if=
"subItem.childItem.useDinnerType == '1'"
>
早餐:
{{
subItem
.
childItem
.
dinnerName
}}
</text
>
<text
style=
"margin-right: 20px"
v-if=
"subItem.childItem.useDinnerType == '2'"
>
午餐:
{{
subItem
.
childItem
.
dinnerName
}}
</text
>
<text
v-if=
"subItem.childItem.useDinnerType == '3'"
>
晚餐:
{{
subItem
.
childItem
.
dinnerName
}}
</text
>
>
</
template
>
<text :key="sIndex3"
</text>
>{{ subItem.childItem.hotelName
</view>
}}<text
<view
class=
"jz_Place"
>
v-if="index != dataList.dayList.length - 1"
<view
class=
"jz_ComDian"
></view>
style="margin: 0 5px"
<text
class=
"jz_Canyin"
>
酒店
</text>
>/</text
<text
class=
"jz_CanInner"
>
></text
<
template
>
v-for=
"(subItem, sIndex3) in item.dayArray"
</template>
v-if=
"subItem.type == 3"
<text v-if="index != dataList.dayList.length - 1"
>
>或同级</text
<text
:key=
"sIndex3"
>
{{
subItem
.
childItem
.
hotelName
}}
<text
v-if=
"index != dataList.dayList.length - 1"
style=
"margin: 0 5px"
>
/
</text
></text
>
>
</
template
>
</text>
<text
v-if=
"index != dataList.dayList.length - 1"
</view>
>
或同级
</text
>
</text>
</view>
</view>
</view>
</view>
</view>
</view> 罗超 2023-09-20 -->
</view>
<view
v-if=
"d.length<4"
>
</view>
<view
v-for=
"(x,i) in d"
:key=
"i"
>
<view
style=
"font-size: 32rpx;font-family: nav-font;font-weight: 600;display: flex;"
>
<text>
第 {{(i+1)}} 天
</text>
<text
style=
"flex:1;width:1px;margin-left:10px;font-family: microsoft yahei ui light; line-height: 1;"
>
{{x.title}}
</text>
</view>
<
template
v-for=
"(y,yi) in x.dayArray"
>
<view
class=
"time-line-box"
:key=
"yi"
v-if=
"y.type==1"
>
<view
class=
"left"
>
<view
class=
"icon"
style=
"background: #26a69a;"
>
<i
class=
"iconfont icon-jiaotong"
></i>
</view>
</view>
<view
class=
"right"
>
<view
class=
"subtitle"
>
{{
y
.
subtitle
}}
</view>
<view
class=
"title"
>
{{
y
.
title
}}
</view>
<view
class=
"card"
>
<rich-text
:nodes=
"y.childItem.description"
></rich-text>
</view>
</view>
</view>
<view
class=
"time-line-box"
:key=
"yi"
v-if=
"y.type==2"
>
<view
class=
"left"
>
<view
class=
"icon"
style=
"background: #31ccec;"
>
<i
class=
"iconfont icon-jingdian"
></i>
</view>
</view>
<view
class=
"right"
>
<view
class=
"tag-play"
>
<view
class=
"subtitle"
style=
"flex: 1;"
>
景点/场馆
</view>
<view
class=
"tag-play-box"
v-if=
"y.childItem.playTimeHour > 0 || y.childItem.playTimeMinutes > 0"
>
<view
class=
"remark"
>
推荐游玩
</view>
<view
class=
"play-time"
>
<span
v-if=
"y.childItem.playTimeHour > 0"
>
{{
y
.
childItem
.
playTimeHour
}}
小时
</span
>
<span
v-if=
"y.childItem.playTimeMinutes > 0"
>
{{
y
.
childItem
.
playTimeMinutes
}}
分钟
</span
>
</view>
</view>
</view>
<view
class=
"title"
>
{{
`游玩${y.childItem.couponsName
}
`
}}
<
/view
>
<
view
class
=
"card"
>
<
rich
-
text
:
nodes
=
"y.childItem.description"
><
/rich-text
>
<
view
class
=
"sec-images"
>
<
template
v
-
for
=
"(z,zi) in y.childItem.imaArray"
>
<
image
@
click
=
"previewImages(y.childItem.imaArray,zi)"
:
src
=
"z.url"
mode
=
"aspectFill"
v
-
if
=
"zi<3"
:
key
=
"zi"
><
/image
>
<
/template
>
<
/view
>
<
/view
>
<
/view
>
<
/view
>
<
view
class
=
"time-line-box"
:
key
=
"yi"
v
-
if
=
"y.type==4"
>
<
view
class
=
"left"
>
<
view
class
=
"icon"
style
=
"background: #9c27b0;"
>
<
i
class
=
"iconfont icon-canpinhui-xican"
><
/i
>
<
/view
>
<
/view
>
<
view
class
=
"right"
>
<
view
class
=
"subtitle"
style
=
"flex: 1;"
>
{{
`${y.childItem.timeStr
}
${y.childItem.dinnerTypeName
}
`
}}
<
/view
>
<
view
class
=
"title"
>
{{
y
.
childItem
.
dinnerName
}}
<
/view
>
<
view
class
=
"card"
>
<
rich
-
text
:
nodes
=
"y.childItem.description"
><
/rich-text
>
<
view
class
=
"sec-images"
>
<
template
v
-
for
=
"(z,zi) in y.childItem.imaArray"
>
<
image
@
tap
=
"previewImages(y.childItem.imaArray,zi)"
:
src
=
"z.url"
mode
=
"aspectFill"
v
-
if
=
"zi<3"
:
key
=
"zi"
><
/image
>
<
/template
>
<
/view
>
<
/view
>
<
/view
>
<
/view
>
<
view
class
=
"time-line-box"
:
key
=
"yi"
v
-
if
=
"y.type==5"
>
<
view
class
=
"left"
>
<
view
class
=
"icon"
style
=
"background: lightslategrey;"
>
<
i
class
=
"iconfont icon-huodong"
><
/i
>
<
/view
>
<
/view
>
<
view
class
=
"right"
>
<
view
class
=
"subtitle"
style
=
"flex: 1;"
>
放松休息,细细品味身边的风景
<
/view
>
<
view
class
=
"title"
>
自由活动
<
/view
>
<
view
class
=
"card"
>
<
rich
-
text
:
nodes
=
"y.childItem.description"
><
/rich-text
>
<
view
class
=
"sec-images"
>
<
template
v
-
for
=
"(z,zi) in y.childItem.imaArray"
>
<
image
@
tap
=
"previewImages(y.childItem.imaArray,zi)"
:
src
=
"z.url"
mode
=
"aspectFill"
v
-
if
=
"zi<3"
:
key
=
"zi"
><
/image
>
<
/template
>
<
/view
>
<
/view
>
<
/view
>
<
/view
>
<
view
class
=
"time-line-box"
:
key
=
"yi"
v
-
if
=
"y.type==3"
>
<
view
class
=
"left"
>
<
view
class
=
"icon"
style
=
"background: #1d1d1d;"
>
<
i
class
=
"iconfont icon-jiudian1"
><
/i
>
<
/view
>
<
/view
>
<
view
class
=
"right"
>
<
view
class
=
"subtitle"
style
=
"flex: 1;"
>
住宿
<
/view
>
<
view
class
=
"title"
>
{{
y
.
childItem
.
hotelName
}}
<
/view
>
<
view
class
=
"card"
>
<
rich
-
text
:
nodes
=
"y.childItem.description"
><
/rich-text
>
<
view
class
=
"sec-images"
>
<
template
v
-
for
=
"(z,zi) in y.childItem.imaArray"
>
<
image
@
tap
=
"previewImages(y.childItem.imaArray,zi)"
:
src
=
"z.url"
mode
=
"aspectFill"
v
-
if
=
"zi<3"
:
key
=
"zi"
><
/image
>
<
/template
>
<
/view
>
<
/view
>
<
/view
>
<
/view
>
<
/template
>
<
/view
>
<
/view
>
<
/view
>
<
view
<
view
class
=
"jz_TripDays"
class
=
"jz_TripDays"
v
-
if
=
"dataList.feature && dataList.feature.feeInclude"
v
-
if
=
"dataList.feature && dataList.feature.feeInclude"
...
@@ -1071,6 +1187,7 @@ export default {
...
@@ -1071,6 +1187,7 @@ export default {
tcnum
:
""
,
tcnum
:
""
,
cityId
:
0
,
cityId
:
0
,
}
,
}
,
d
:{
}
,
scenicNum
:
0
,
// 景点数量
scenicNum
:
0
,
// 景点数量
breakfastNum
:
0
,
//早餐数
breakfastNum
:
0
,
//早餐数
lunchNum
:
0
,
//午餐数
lunchNum
:
0
,
//午餐数
...
@@ -1253,6 +1370,18 @@ export default {
...
@@ -1253,6 +1370,18 @@ export default {
"&isLine=1"
,
"&isLine=1"
,
}
);
}
);
}
,
}
,
previewImages
(
images
,
cur
)
{
let
imgObj
=
images
;
if
(
images
[
0
].
url
){
imgObj
=
[]
images
.
forEach
(
x
=>
imgObj
.
push
(
x
.
url
))
}
console
.
log
(
imgObj
)
uni
.
previewImage
({
urls
:
images
,
current
:
cur
}
)
}
,
goback
()
{
goback
()
{
uni
.
navigateBack
({
uni
.
navigateBack
({
delta
:
1
,
delta
:
1
,
...
@@ -1295,9 +1424,15 @@ export default {
...
@@ -1295,9 +1424,15 @@ export default {
// res.data.priceList=tempPrice
// res.data.priceList=tempPrice
this
.
dataList
=
res
.
data
;
this
.
dataList
=
res
.
data
;
try
{
this
.
formatDay
()
}
catch
(
e
){
//TODO handle the exception
console
.
log
(
'发生错误:'
+
e
.
message
)
}
this
.
scenicNum
=
0
;
this
.
scenicNum
=
0
;
//this.dataList.productRecommend=this.dataList.productRecommend.split('\n').join('&hc')
//this.dataList.productRecommend=this.dataList.productRecommend.split('\n').join('&hc')
console
.
log
(
this
.
dataList
.
productRecommend
);
//
console.log(this.dataList.productRecommend);
this
.
dataList
.
dayList
.
forEach
((
x
)
=>
{
this
.
dataList
.
dayList
.
forEach
((
x
)
=>
{
x
.
dayArray
.
forEach
((
y
)
=>
{
x
.
dayArray
.
forEach
((
y
)
=>
{
if
(
y
.
type
==
2
)
{
if
(
y
.
type
==
2
)
{
...
@@ -1372,6 +1507,52 @@ export default {
...
@@ -1372,6 +1507,52 @@ export default {
null
null
);
);
}
,
}
,
formatDay
()
{
this
.
d
=
this
.
dataList
.
dayList
if
(
this
.
d
.
length
>
0
)
{
this
.
d
.
forEach
((
x
)
=>
{
x
.
dayArray
.
forEach
((
y
)
=>
{
if
(
y
.
type
==
7
)
{
x
.
title
=
y
.
childItem
.
title
;
}
else
if
(
y
.
type
==
1
)
{
y
.
subtitle
=
y
.
childItem
.
subTraffic
.
length
>
0
&&
y
.
childItem
.
subTraffic
[
0
].
startTime
+
" - "
+
y
.
childItem
.
subTraffic
[
y
.
childItem
.
subTraffic
.
length
-
1
]
.
endTime
;
y
.
title
=
this
.
formatTraffice
(
y
.
childItem
.
subTraffic
);
y
.
icon
=
"iconfont iconjiaotong"
;
}
else
if
(
y
.
type
==
4
)
{
let
t
=
[
"早餐"
,
"午餐"
,
"晚餐"
];
y
.
childItem
.
dinnerTypeName
=
t
[
parseInt
(
y
.
childItem
.
useDinnerType
)
-
1
];
}
// if(y.childItem.description && y.childItem.description.length>0)
{
// y.childItem.description = parseHtml(y.childItem.description)
//
}
}
);
}
);
}
}
,
formatTraffice
(
tras
)
{
let
txt
=
"从"
+
(
tras
.
length
>
0
?
tras
[
0
].
startCityName
:
''
);
tras
.
forEach
((
z
,
i
)
=>
{
if
(
i
>
0
&&
txt
!=
''
)
{
txt
+=
";再"
;
}
if
(
z
.
arrivalType
==
1
)
{
txt
+=
"搭乘航班"
;
}
else
if
(
z
.
arrivalType
==
2
)
{
txt
+=
"乘坐豪华巴士"
;
}
else
if
(
z
.
arrivalType
==
3
)
{
txt
+=
"乘坐豪华游轮"
;
}
else
{
txt
+=
"乘坐高铁"
;
}
txt
+=
" 到达"
+
z
.
arrivalCityName
;
}
);
return
txt
;
}
,
//转换图片格式
//转换图片格式
getCoverImg
(
imgCover
)
{
getCoverImg
(
imgCover
)
{
if
(
imgCover
)
{
if
(
imgCover
)
{
...
@@ -1612,8 +1793,10 @@ export default {
...
@@ -1612,8 +1793,10 @@ export default {
}
}
.
jz_LineDetail
rich
-
text
{
.
jz_LineDetail
rich
-
text
{
font-size
:
26
rpx
;
font
-
size
:
12
px
;
font-weight
:
500
;
font
-
weight
:
normal
;
line
-
height
:
1.8
;
color
:
#
666
;
}
}
.
line
-
flex
{
.
line
-
flex
{
...
@@ -1836,6 +2019,7 @@ export default {
...
@@ -1836,6 +2019,7 @@ export default {
.
jz_B2bPrice
{
.
jz_B2bPrice
{
font
-
size
:
45
rpx
;
font
-
size
:
45
rpx
;
font
-
weight
:
800
;
font
-
weight
:
800
;
font
-
family
:
nav
-
font
;
}
}
.
jz_Service
{
.
jz_Service
{
...
@@ -2103,4 +2287,99 @@ export default {
...
@@ -2103,4 +2287,99 @@ export default {
margin
-
bottom
:
5
px
;
margin
-
bottom
:
5
px
;
}
}
.
time
-
line
-
box
{
display
:
flex
;
margin
-
top
:
10
px
}
.
time
-
line
-
box
.
left
.
icon
{
width
:
31
px
;
height
:
31
px
;
border
-
radius
:
31
px
;
color
:
#
FFF
;
line
-
height
:
31
px
;
text
-
align
:
center
;
font
-
size
:
28
rpx
;
}
.
time
-
line
-
box
.
left
{
margin
-
right
:
20
rpx
;
position
:
relative
;
min
-
height
:
50
px
;
}
.
time
-
line
-
box
.
left
.
icon
::
after
{
background
-
color
:
inherit
;
width
:
3
px
;
position
:
absolute
;
top
:
33
px
;
left
:
14
px
;
bottom
:
0
;
display
:
block
;
content
:
' '
;
}
.
time
-
line
-
box
.
right
{
width
:
1
px
;
flex
:
1
;
}
.
time
-
line
-
box
.
right
.
subtitle
{
font
-
size
:
12
px
;
margin
-
bottom
:
8
px
;
opacity
:
.
6
;
text
-
transform
:
uppercase
;
letter
-
spacing
:
1
px
;
/* font-weight: 700; */
}
.
time
-
line
-
box
.
right
.
title
{
font
-
size
:
16
px
;
font
-
weight
:
500
;
letter
-
spacing
:
0.25
px
;
margin
-
bottom
:
16
px
;
line
-
height
:
inherit
;
font
-
family
:
microsoft
yahei
ui
light
;
}
.
time
-
line
-
box
.
right
.
card
{
background
-
color
:
#
ecf1f4
;
padding
:
10
px
;
border
-
radius
:
8
px
;
}
.
time
-
line
-
box
.
right
.
card
p
{
margin
-
bottom
:
10
px
;
}
.
time
-
line
-
box
.
right
.
card
strong
{
font
-
weight
:
normal
;
}
.
time
-
line
-
box
.
right
.
tag
-
play
{
display
:
flex
;
align
-
items
:
center
;
}
.
time
-
line
-
box
.
right
.
tag
-
play
.
tag
-
play
-
box
{
display
:
flex
;
align
-
items
:
center
;
border
-
radius
:
8
rpx
!
important
;
overflow
:
hidden
;
}
.
time
-
line
-
box
.
right
.
tag
-
play
.
tag
-
play
-
box
.
remark
{
background
-
color
:
#
1
d1d1d
;
padding
:
0
px
4
px
;
font
-
size
:
12
px
;
color
:
#
FFF
;
}
.
time
-
line
-
box
.
right
.
tag
-
play
.
tag
-
play
-
box
.
play
-
time
{
padding
:
0
px
4
px
;
font
-
size
:
12
px
;
background
:
rgb
(
240
,
189
,
134
);
color
:
#
1
d1d1d
;
}
.
time
-
line
-
box
.
right
.
sec
-
images
{
margin
:
10
px
0
0
0
;
height
:
10
vh
;
display
:
flex
;
align
-
items
:
center
;
border
-
radius
:
8
px
;
overflow
:
hidden
;
}
.
time
-
line
-
box
.
right
.
sec
-
images
image
{
width
:
1
px
;
flex
:
1
;
height
:
10
vh
;
margin
-
right
:
1
px
;
}
<
/style
>
<
/style
>
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