Commit 2e5a7791 authored by youjie's avatar youjie

线路列表

parent e9e48fbc
......@@ -536,7 +536,13 @@
{
"root": "pages/jiuzhai",
"pages": [{
"path": "jz_Line" //九寨-线路
"path": "jz_Line", //九寨-线路
"style": {
"navigationStyle": "custom"
},
"globalStyle": {
"navigationStyle": "custom"
}
}, {
"path": "jz_LineDetail",
"enablePullDownRefresh": true,
......
<template>
<view class="lienHeader" :style="[titleStyle]">
<view class="lienHeaderBox">
<view class="lienHeader-left">
<view class="lienHeader-left-icon" @click="goBack">
<u-icon name="arrow-left" size="38" :color="type==1?'#000':'#000'"></u-icon>
</view>
</view>
<!-- <view class="lienHeader-title" :style="{'color':type==1?'#FFF':'#000'}">
<slot>{{title}}</slot>
</view> -->
</view>
</view>
</template>
<script>
export default {
props:['title','type'],
data() {
return {
titleStyle:{}
}
},
mounted() {
const that = this
uni.getSystemInfo({
success(res) {
that.titleStyle = {
paddingTop: `${res.statusBarHeight}px`
};
},
});
},
methods:{
goBack(){
uni.navigateBack({delta:-1})
}
}
}
</script>
<style>
.lienHeader-title{
width: 100%;
position: relative;
left: 0;
right: 0;
text-align: center;
font-size: 32rpx;
}
.lienHeader-left{
position: absolute;
left: 32rpx;
top: 83rpx;
z-index: 3;
}
.lienHeaderBox{
width: 100%;
height: 88rpx;
padding: 0 32rpx;
display: flex;
align-items: center;
justify-content: space-between;
position: relative;
}
.lienHeader{
padding-top: 48rpx;
}
</style>
\ No newline at end of file
<style>
.jz_LineHeadeBox{
position: fixed;
left: 0;
right: 0;
top: 0;
z-index: 1;
}
.jz_LineHeade{
height: 310rpx;
}
.jz_LineHeade.active0{
background: url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638731577125637216.png') no-repeat;
background-size: 100% auto;
}
.jz_LineHeade.active1{
background: url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638731577133752446.png') no-repeat;
background-size: 100% auto;
}
.jz_LineHeade.active2{
background: url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638731577175977264.png') no-repeat;
background-size: 100% auto;
}
.jz_Line {}
.jz_Content {
......@@ -165,8 +187,8 @@
.jz_Content .search-box {
height: 88rpx;
background: #ECF1F4;
border-radius: 44rpx;
background: #FFF;
border-radius:18rpx;
display: flex;
align-items: center;
padding: 19rpx 30rpx;
......@@ -303,159 +325,178 @@
<template>
<div class="jz_Line">
<view class="jz_Content">
<view class="search-box">
<view class="date" @click="showBranch=true">
<u-icon name="location" color="#111" size="24"></u-icon>
<text style="margin-left: 20rpx;">{{currentBrachName}}</text>
</view>
<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" bg-color="rgba(0,0,0,0)" :show-action="false"></u-search>
<view class="jz_LineHeadeBox"
>
<view class="jz_LineHeade" :class="{
'active0':msg.teamType==0,
'active1':msg.teamType==1,
'active2':msg.teamType==2}">
<headerLine :type="msg.teamType" :title="msg.teamType==1?'小包团':''"></headerLine>
<view class="search-box" style="margin-top: 76rpx;">
<view class="date" @click="showBranch=true">
<u-icon name="location" color="#B99846" size="24"></u-icon>
<text style="margin-left: 20rpx;color: #B99846;">{{currentBrachName}}</text>
</view>
<view style="width: 1px;height: 26rpx;margin-right: 10rpx; background: #E5E3E1;flex-shrink: 0;">
<view style="opacity: 0;">
1
</view>
</view>
<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" bg-color="rgba(0,0,0,0)" :show-action="false"></u-search>
</view>
</view>
</view>
</view>
<view>
<u-dropdown ref="uDropdown" @open="open" @close="close" active-color="#000" inactive-color="#444">
<u-dropdown-item v-model="msg.orderBy" :title="optionsTitle[0]" :options="orderBys" @change="changeOrderBy">
</u-dropdown-item>
<u-dropdown-item :title="optionsTitle[1]">
<view class="slot-content" style="padding:0 30rpx 30rpx 0;padding-top:0;background-color: #FFF;">
<view style="height: 50vh;display: flex;">
<view style="background-color: #f1f1f1;margin-right: 30rpx;height:100%">
<scroll-view scroll-y="true" style="height:100%">
<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==2" :key="x.LineID">{{x.LineShortName}}</view>
</template>
<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 style="height: 100rpx;">
<u-dropdown ref="uDropdown" @open="open" @close="close" active-color="#000" inactive-color="#444">
<u-dropdown-item v-model="msg.orderBy" :title="optionsTitle[0]" :options="orderBys" @change="changeOrderBy">
</u-dropdown-item>
<u-dropdown-item :title="optionsTitle[1]">
<view class="slot-content" style="padding:0 30rpx 30rpx 0;padding-top:0;background-color: #FFF;">
<view style="height: 50vh;display: flex;">
<view style="background-color: #f1f1f1;margin-right: 30rpx;height:100%">
<scroll-view scroll-y="true" style="height:100%">
<view style="text-align: center; padding: 15px 0;">
<u-tag mode="plain" border-color="#DFBE6E" color="#DFBE6E" text="出境游" size="mini"></u-tag>
</view>
<view class="team-box">
<view v-for="(y,yi) in x.Teams" :key="yi" class="team" :class="{'active':msg.team.indexOf(y.TeamId)!=-1}"
@click="setTeams(y.TeamId)">
<view class="team-content">{{y.TeamName}}</view>
</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==2" :key="x.LineID">{{x.LineShortName}}</view>
</template>
<view style="text-align: center; padding: 15px 0;">
<u-tag mode="plain" border-color="#DFBE6E" color="#DFBE6E" text="当地游" size="mini"></u-tag>
</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;">
<u-button :custom-style="btnStyle" @click="clearTeams">清除</u-button>
<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="yi" 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="flex:1;">
<u-button :custom-style="btnStyle2" @click="changeTeams">完成</u-button>
<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;">
<u-button :custom-style="btnStyle" @click="clearTeams">清除</u-button>
</view>
<view style="flex:1;">
<u-button :custom-style="btnStyle2" @click="changeTeams">完成</u-button>
</view>
</view>
</view>
</view>
</u-dropdown-item>
<u-dropdown-item :title="optionsTitle[2]">
<view class="slot-content" style="padding: 30rpx;padding-top:0;background-color: #FFF;">
<scroll-view scroll-y="true" style="max-height: 50vh;">
<view style="padding-top:30rpx">
<text style="font-size: 28rpx;color:#111;font-weight: 800;margin-right: 10rpx;">行程天数</text>
</view>
<view class="team-box">
<view v-for="x in days" class="team" style="width:calc(25% - 30rpx);" :class="{'active':msg.days.indexOf(x.day)!=-1}"
@click="setDays(x.day)">{{x.name}}</view>
</view>
<view style="padding-top:30rpx">
<text style="font-size: 28rpx;color:#111;font-weight: 800;margin-right: 10rpx;">出发日期</text>
</view>
<view class="start-range-box" @click="showTimePopup=true">
<view class="date-box">
<view class="label">最早出发日期</view>
<view class="date" style="font-weight: 400;" v-if="msg.startDate==''">选择日期</view>
<view class="date" v-else>{{msg.startDate}}</view>
</u-dropdown-item>
<u-dropdown-item :title="optionsTitle[2]">
<view class="slot-content" style="padding: 30rpx;padding-top:0;background-color: #FFF;">
<scroll-view scroll-y="true" style="max-height: 50vh;">
<view style="padding-top:30rpx">
<text style="font-size: 28rpx;color:#111;font-weight: 800;margin-right: 10rpx;">行程天数</text>
</view>
<view class="split-box">-至-</view>
<view class="date-box right">
<view class="label">最晚出发日期</view>
<view class="date" style="font-weight: 400;" v-if="msg.endDate==''">选择日期</view>
<view class="date" v-else>{{msg.endDate}}</view>
<view class="team-box">
<view v-for="x in days" class="team" style="width:calc(25% - 30rpx);" :class="{'active':msg.days.indexOf(x.day)!=-1}"
@click="setDays(x.day)">{{x.name}}</view>
</view>
</view>
</scroll-view>
<view style="padding-top:30rpx">
<text style="font-size: 28rpx;color:#111;font-weight: 800;margin-right: 10rpx;">出发日期</text>
</view>
<view class="start-range-box" @click="showTimePopup=true">
<view class="date-box">
<view class="label">最早出发日期</view>
<view class="date" style="font-weight: 400;" v-if="msg.startDate==''">选择日期</view>
<view class="date" v-else>{{msg.startDate}}</view>
</view>
<view class="split-box">-至-</view>
<view class="date-box right">
<view class="label">最晚出发日期</view>
<view class="date" style="font-weight: 400;" v-if="msg.endDate==''">选择日期</view>
<view class="date" v-else>{{msg.endDate}}</view>
</view>
</view>
</scroll-view>
<view style="box-shadow: 0px -10px 30px 0px rgba(36, 36, 36, 0.06);margin-top:40rpx;display: flex;">
<view style="flex:1;margin-right: 30rpx;">
<u-button :custom-style="btnStyle" @click="clearDayAndDate">清除</u-button>
</view>
<view style="flex:1;">
<u-button :custom-style="btnStyle2" @click="changeDayAndDate">完成</u-button>
<view style="box-shadow: 0px -10px 30px 0px rgba(36, 36, 36, 0.06);margin-top:40rpx;display: flex;">
<view style="flex:1;margin-right: 30rpx;">
<u-button :custom-style="btnStyle" @click="clearDayAndDate">清除</u-button>
</view>
<view style="flex:1;">
<u-button :custom-style="btnStyle2" @click="changeDayAndDate">完成</u-button>
</view>
</view>
</view>
</view>
</u-dropdown-item>
<u-dropdown-item v-model="msg.startCityId" :title="optionsTitle[3]" :options="startCitys" @change="changeStartCity">
</u-dropdown-item>
</u-dropdown>
</u-dropdown-item>
<u-dropdown-item v-model="msg.startCityId" :title="optionsTitle[3]" :options="startCitys" @change="changeStartCity">
</u-dropdown-item>
</u-dropdown>
</view>
</view>
<view v-if="screenshow==true" class="Jz_Mask" @click="screenshow=false"></view>
<u-empty v-if="dataList.length==0 && !loading" text="暂无数据" mode="data"></u-empty>
<template v-else>
<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%' }">
<view class="jz_ListMain" v-for="(item,index) in dataList" :key="index" @click="goJzDetail(item)">
<view class="jz_List">
<view class="jz_TuDiv">
<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 class="jz_Right">
<view class="jz_LineName">{{item.title}}</view>
<view class="jz_Recommend" v-if="item.productRecommend && item.productRecommend!='null'">
{{item.productRecommend}}
<view style="margin-top: 390rpx;">
<view v-if="screenshow==true" class="Jz_Mask" @click="screenshow=false"></view>
<u-empty v-if="dataList.length==0 && !loading" text="暂无数据" mode="data"></u-empty>
<template v-else>
<view style="height: calc(100vh - 230px);overflow: hidden;">
<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)">
<view class="jz_List">
<view class="jz_TuDiv">
<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 style="margin:10px 0;display: flex;align-items: center;">
<view class="start-city" style="margin-right: 20rpx;" v-if="item.startCityName">
<text>{{item.startCityName}}出发</text>
<view class="jz_Right">
<view class="jz_LineName">{{item.title}}</view>
<view class="jz_Recommend" v-if="item.productRecommend && item.productRecommend!='null'">
{{item.productRecommend}}
</view>
<view style="margin-right: 20rpx;" v-if="item.companyUnions && item.companyUnions.length>1">
<u-tag border-color="#DFBE6E" color="#FFF" bg-color="#DFBE6E" text="多个出发城市" size="mini"></u-tag>
<view style="margin:10px 0;display: flex;align-items: center;">
<view class="start-city" style="margin-right: 20rpx;" v-if="item.startCityName">
<text>{{item.startCityName}}出发</text>
</view>
<view style="margin-right: 20rpx;" v-if="item.companyUnions && item.companyUnions.length>1">
<u-tag border-color="#DFBE6E" color="#FFF" bg-color="#DFBE6E" text="多个出发城市" size="mini"></u-tag>
</view>
<view>
<u-tag mode="plain" border-color="#DFBE6E" color="#DFBE6E" :text="`${item.dayNum}天`" size="mini"></u-tag>
</view>
</view>
<view>
<u-tag mode="plain" border-color="#DFBE6E" color="#DFBE6E" :text="`${item.dayNum}天`" size="mini"></u-tag>
<view class="price" style="display:flex;justify-content: space-between;align-items: center;">
<view style="font-size:24rpx;color:#999999;">
最近团期:{{item.startDate}}
</view>
</view>
</view>
<view class="price" style="display:flex;justify-content: space-between;align-items: center;">
<view style="font-size:24rpx;color:#999999;">
最近团期:{{item.startDate}}
<view class="price" style="text-align: unset;">
<text></text>
<text class="money">{{parseFloat($utils.getretailer()?item.b2BPrice:item.b2CPrice).toFixed(2)}}</text>
</view>
</view>
<view class="price" style="text-align: unset;">
<text></text>
<text class="money">{{parseFloat($utils.getretailer()?item.b2BPrice:item.b2CPrice).toFixed(2)}}</text>
</view>
</view>
</view>
</view>
</scroll-view>
</view>
</template>
</scroll-view>
</view>
</template>
</view>
</view>
<auth v-if="showAuth&&is_show_auth==1" @changeuserinfo="reloadUserinfo" @gbAuth="gbAuth"></auth>
<u-picker mode="time" v-model="isShowDate" @confirm='getStratDate' :params="params"></u-picker>
......@@ -469,10 +510,12 @@
<script>
import canlendar from "./components/time/index.vue"
import auth from "@/components/auth/index.vue";
import headerLine from "./components/headerLine";
export default {
components: {
canlendar,
auth
auth,
headerLine
},
data() {
return {
......@@ -605,7 +648,8 @@
if (option && option.PlaceIds) {
this.msg.PlaceIds = option.PlaceIds;
}
if (option && option.teamType && option.teamType == "1") {
// && option.teamType == "1"
if (option && option.teamType) {
this.msg.teamType = option.teamType;
}
let basedata = uni.getStorageSync("basedata");
......@@ -837,9 +881,11 @@
},
open(index) {
this.$refs.uDropdown.highlight();
console.log(this.$refs.uDropdown.active,'-----')
},
close(index) {
this.$refs.uDropdown.highlight(index);
console.log(this.$refs.uDropdown.highlight(index),'-----33')
},
research() {
this.msg.pageIndex = 1;
......
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