Commit cb8925a4 authored by 罗超's avatar 罗超

临时保存

parent 7ec9bdf5
...@@ -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"
}
] ]
} }
...@@ -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");
......
@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";
}
<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: 20rpx;
border-top-right-radius: 20rpx;
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: 20upx 0 30upx;
}
.bar-box-line.uninset{
padding: 20upx 0 40upx;
}
.bar-box-line.inset{
padding: 20upx 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: 50rpx;
}
.bar-box-line .bar-item .acitve{
font-size: 32rpx;
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: 60rpx;
}
</style>
\ No newline at end of file
...@@ -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: 28rpx;
font-family: 'nav-font';
}
.jz_Right { .jz_Right {
width: 432rpx; width: 432rpx;
margin-top: 5px; margin-top: 5px;
...@@ -33,10 +43,18 @@ ...@@ -33,10 +43,18 @@
.jz_LineName { .jz_LineName {
color: #111111; color: #111111;
font-size: 30rpx; font-size: 30rpx;
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: 24rpx; font-size: 24rpx;
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: 36rpx; font-size: 36rpx;
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.linePlaceList; this.lineList = res.data.LineList;
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
}
); );
}, },
//获取日期 //获取日期
......
...@@ -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
> >
<template v-if="subItem.childItem.playTimeMinutes" <text v-if="subItem.childItem.useDinnerType == '3'"
>{{ subItem.childItem.playTimeMinutes }}分钟</template >晚餐:{{ subItem.childItem.dinnerName }}</text
> >
</text> </template>
</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: 26rpx; font-size: 12px;
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: 45rpx; font-size: 45rpx;
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: 5px; margin-bottom: 5px;
} }
.time-line-box{
display: flex;
margin-top:10px
}
.time-line-box .left .icon{
width: 31px;
height: 31px;
border-radius: 31px;
color:#FFF;
line-height: 31px;
text-align: center;
font-size: 28rpx;
}
.time-line-box .left {
margin-right:20rpx;
position: relative;
min-height: 50px;
}
.time-line-box .left .icon::after{
background-color: inherit;
width: 3px;
position: absolute;
top:33px;
left:14px;
bottom: 0;
display: block;
content: ' ';
}
.time-line-box .right{
width: 1px;
flex: 1;
}
.time-line-box .right .subtitle {
font-size: 12px;
margin-bottom: 8px;
opacity: .6;
text-transform: uppercase;
letter-spacing: 1px;
/* font-weight: 700; */
}
.time-line-box .right .title{
font-size: 16px;
font-weight: 500;
letter-spacing: 0.25px;
margin-bottom: 16px;
line-height: inherit;
font-family: microsoft yahei ui light;
}
.time-line-box .right .card{
background-color: #ecf1f4;
padding: 10px;
border-radius: 8px;
}
.time-line-box .right .card p {
margin-bottom: 10px;
}
.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: 8rpx!important;
overflow: hidden;
}
.time-line-box .right .tag-play .tag-play-box .remark{
background-color: #1d1d1d;
padding: 0px 4px;
font-size: 12px;
color:#FFF;
}
.time-line-box .right .tag-play .tag-play-box .play-time{
padding: 0px 4px;
font-size: 12px;
background: rgb(240, 189, 134);
color: #1d1d1d;
}
.time-line-box .right .sec-images{
margin:10px 0 0 0;
height: 10vh;
display: flex;
align-items: center;
border-radius: 8px;
overflow: hidden;
}
.time-line-box .right .sec-images image{
width: 1px;
flex: 1;
height: 10vh;
margin-right: 1px;
}
</style> </style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment